-
Posts
999 -
Joined
-
Last visited
Everything posted by K1NG
-
. هو النافذة الي كان المؤشر عليها يوم كبست كلك يمين parent يوم تجي تسوي الزر أكبس كلكـ يمين وخل المؤشر حق الماوس بداخل النافذة عشان يكون الـ
-
شوف يوم تسوي النافذة وتجي تسوي الزر اضغط كلك يمين بداخل النافذة واختار انشاء زر وسو الزر على النافذة، لانه يوم تسوي كلكـ يمين خارج النافذة حق الزر بخارج النافذة، ومن الممكن انه يتسجل بإسم نافذة ثانية إذا كنت انت كابس كلك يمين على نافذة ثانية / أما إذا كبست كلكـ parentرح يتسجل الـ . وهذا هو الي صاير معكـ > parent = nil يمين وما كنت كابسها على نافذة معينة بكذا رح يكون الـ close مايحتاج تضيف شي انا مسويها من قبل هاذي الخاصية بداخل فنكشن لحد الآن الأزرار بخارج النافذة، وفيه عندكـ أكواد ناقصة، وأخطاء بأكواد التلوين، على كل حال هذي النافذة مع الأزرار مضبطة وتفتح بزر اف3 + : تفضل هذي الأكواد * Client Side: GUIEditor = { button = {}, window = {}, label = {} } addEventHandler ( "onClientResourceStart", resourceRoot, function ( ) GUIEditor.window[1] = guiCreateWindow(230, 271, 255, 196, "Call system v1.0", false) guiWindowSetSizable(GUIEditor.window[1], false) guiSetAlpha(GUIEditor.window[1], 1.00) guiSetVisible ( GUIEditor.window[1], false ) Medic = guiCreateButton(0.04, 0.10, 0.35, 0.17, "اتصال بالاسعاف", true, GUIEditor.window[1]) guiSetProperty(Medic, "NormalTextColour", "FFC8FEFF") Police = guiCreateButton(0.60, 0.76, 0.35, 0.17, "اتصال بالشرطة", true, GUIEditor.window[1]) guiSetProperty(Police, "NormalTextColour", "FFC8FEFF") GUIEditor.label[1] = guiCreateLabel(0.04, 0.61, 0.93, 0.12, "ملاحظة : كـل أسـبـوع يـتـم الـتـحديـث", true, GUIEditor.window[1]) guiLabelSetHorizontalAlign ( GUIEditor.label[1], "right" ) end ) bindKey ( "F3", "down", function ( ) guiSetVisible ( GUIEditor.window[1], not guiGetVisible ( GUIEditor.window[1] ) ) showCursor ( guiGetVisible ( GUIEditor.window[1] ) ) end ) function close ( theButton ) guiSetVisible ( GUIEditor.window[1], false ) showCursor ( false ) guiSetEnabled ( theButton, false ) setTimer ( guiSetEnabled, 5000, 1, theButton, true ) end addEventHandler ( "onClientGUIClick", resourceRoot, function ( ) if ( source == Medic ) then triggerServerEvent ( "call", localPlayer, "Medic" ) close ( source ) elseif ( source == Police ) then triggerServerEvent ( "call", localPlayer, "Police" ) close ( source ) end end ) * Server Side: addEvent ( "call", true ) addEventHandler ( "call", root, function ( teamName ) for _, v in ipairs ( getPlayersInTeam ( getTeamFromName ( teamName ) ) ) do outputChatBox ( teamName .. " قام بالإتصال بفريق الـ " .. getPlayerName ( client ), v, 255, 255, 255, true ) end outputChatBox ( teamName .. " تم الإتصال بفريق الـ *", client, 0, 255, 0, true ) end )
-
Event: "onClientGUIClick" guiGridListGetSelectedItem guiGridListGetItemText getPlayerFromName getPlayerSerial guiSetEnabled . طبعاً هالأكواد كلها رح تسويها بداخل لوحة الأدمن، عشان تقدر تعـرِّف القريد ليست والزر
-
@Line 3: exports.killmessages:outputMessage("* Online Players : ".. getPlayerCount() .."/".. getMaxPlayers() .."", root,250,250,0) : مفروض تنقص 1 من عدد اللاعبين الموجودين والسبب هو : يعني يصير كذا exports.killmessages:outputMessage ( "* Online Players : " .. getPlayerCount ( ) - 1 .."/" .. getMaxPlayers ( ), root, 250, 250, 0 ) امم مآفيه شي الكود : ) لاني كنت مركبه في سيرفري : ) بسس كان فيه مشكلهه وحدهه لو طلع واحد يجي العدد 35 واذا دخل يرجع مره ثانيه 35 فهمت كيف وانا عن وش اتكلم فوق؟ صححت الكود عشان يصير يجيب العدد الصحيح وشرحت لكـ السبب فقط لا غير
-
@Line 3: exports.killmessages:outputMessage("* Online Players : ".. getPlayerCount() .."/".. getMaxPlayers() .."", root,250,250,0) : مفروض تنقص 1 من عدد اللاعبين الموجودين والسبب هو : يعني يصير كذا exports.killmessages:outputMessage ( "* Online Players : " .. getPlayerCount ( ) - 1 .."/" .. getMaxPlayers ( ), root, 250, 250, 0 )
-
No Comment! No Comment! ._. ؟؟ ترا الكود تخبيص --- : بالنسبة لصاحب الموضوع كودكـ يصير كذا، ووظيفته مثل ماقالكـ أخونا دودي .. تفضل * Server Side: addEventHandler ( "onPlayerLogin", root, function ( _, acc ) if ( isObjectInACLGroup ( "user." .. getAccountName ( acc ), aclGetGroup ( "Admin" ) ) ) then outputChatBox ( getPlayerName ( source ) .. " Admin login.!", root, 255, 255, 255, true ) end end )
-
صاحب الموضوع فيه عندهـ نقص بأكواد الكلنت من ناحية اقفال الزر + يمديكـ تسوي الحدث بطريقة مختصرة لأنه بيسويها ع أكثر من تيم بدال مايسوي تريقر كل شوي --- : بالنسبة لصاحب الموضوع، جرب هذا * Client Side: function close ( theButton ) guiSetVisible ( GUIEditor.window[1], false ) showCursor ( false ) guiSetEnabled ( theButton, false ) setTimer ( guiSetEnabled, 5000, 1, theButton, true ) end addEventHandler ( "onClientGUIClick", resourceRoot, function ( ) if ( source == GUIEditor.button[1] ) then triggerServerEvent ( "call", localPlayer, "Police" ) close ( source ) --[[ elseif ( source == GUIEditor.button[2] ) then triggerServerEvent ( "call", localPlayer, "Medic" ) close ( source ) elseif ( source == GUIEditor.button[3] ) then triggerServerEvent ( "call", localPlayer, "Mechanic" ) close ( source ) --]] end end, false ) * Server Side: addEvent ( "call", true ) addEventHandler ( "call", root, function ( teamName ) for _, v in ipairs ( getPlayersInTeam ( getTeamFromName ( teamName ) ) ) do outputChatBox ( teamName .. " قام بالإتصال بفريق الـ " .. getPlayerName ( client ), v, 255, 255, 255, true ) end end ) على فكرة يوم تبي تسويها على تيم آخر مايحتاج تسوي تريقر آخر بجانب السيرفر بس تسوي شرط زيادة بجانب الكلاينت مثل ماني مسويلكـ بزر الإسعاف والميكآنيكـ كـ أمثلة
-
مثآل بسيط و الكود غير كامل فقط مثآل بسيط .. لـ التوضيح .. gVehicle = { gTruck = { }, gTrailer = { }, } local gMarker = createMarker ( x,y,z ) addEventHandler ( 'onMarkerHit',gMarker, function ( gPlayer ) if getElementType ( gPlayer ) == 'player' and not isPedInVehicle ( gPlayer ) then if gVehicle.gTruck [ gPlayer ] and isElement ( gVehicle.gTruck [ gPlayer ] ) then return destroyElement ( gVehicle.gTruck [ gPlayer ] ) end if gVehicle.gTrailer [ gPlayer ] and isElement ( gVehicle.gTrailer [ gPlayer ] ) then return destroyElement ( gVehicle.gTrailer [ gPlayer ] ) end gVehicle.gTruck [ gPlayer ] = createVehicle ( 403,x+math.random ( 1,10 ),y,z ) gVehicle.gTrailer [ gPlayer ] = createVehicle ( 435,0,0,0 ) attachTrailerToVehicle ( gVehicle.gTruck [ gPlayer ],gVehicle.gTrailer [ gPlayer ] ) warpPedIntoVehicle ( gPlayer,gVehicle.gTruck [ gPlayer ] ) outputChatBox ( '* You have get a truck & trailer!!',gPlayer,0,255,0 ) end end ) addEventHandler ( 'onTrailerDetach',root, function ( truck ) local gPlayer = getVehicleController ( truck ) if truck == gVehicle.gTruck [ gPlayer ] and gVehicle.gTrailer [ gPlayer ] and isElement ( gVehicle.gTrailer [ gPlayer ] ) then outputChatBox ( '* The Trailer Was Detached From The Truck!',gPlayer,255,0,0 ) end end ) عندكـ تحققات زايدة مره ومالها داعي ثاني وثالث تحقق بحدث دخول الماركر ليه مسوي ريتيرن وسحب المركبة بنفس الوقت؟ ياتسوي ريتيرن بدون سحب او بالأصل مايحتاج تسوي ريتيرن أساساً + لو انا دخلت اول مرة وكنت داخل الماركر من قبل، اول شي رح يسحب المركبة لانكـ مسوي ريتيرن ثم يوقف الوظيفة + بعدين يوم ادخل المرة الثانية رح يسحب المقطورة ثم يوقف الوظيفة !!! بعدين لين ادخل المرة الثالثة يعطني المركبة مع المقطورة الي طلبها صاحب الموضوع car بالإضافة إلى داتا resourceRoot عن طريق وظيفة "onTrailerDetach" كان يمديكـ تختصر كل تحققاتكـ بحدث + الي هو إذا تم جلب سائق المركبة ام لا؛ لأنه ممكن تنفك المقطورة ومافيه سائق للمركبة "onTrailerDetach" ناقصكـ تحقق بحدث + -- : بالنسبة لصاحب الموضوع، جرب هذا الكود كامل * Server Side: local marker = createMarker ( x, y, z, "type", size, r, g, b, alpha ) local trailerTower = { } local trailer = { } function _destroyElement ( theElm ) if ( isElement ( theElm ) ) then destroyElement ( theElm ) end end addEventHandler ( "onMarkerHit", marker, function ( player ) if ( getElementType ( player ) == "player" ) and not ( isPedInVehicle ( player ) ) then _destroyElement ( trailerTower [ player ] ) _destroyElement ( trailer [ player ] ) local x, y, z = getElementPosition ( player ) trailerTower [ player ] = createVehicle ( 515, x, y, z + 1 ) trailer [ player ] = createVehicle ( 435, x, y + 5, z + 1 ) warpPedIntoVehicle ( player, trailerTower [ player] ) attachTrailerToVehicle ( trailerTower [ player ], trailer [ player ] ) setElementData ( player, "car", true ) end end ) addEventHandler ( "onTrailerDetach", resourceRoot, function ( theTruck ) local player = getVehicleController ( theTruck ) if ( player ) and ( getElementData ( player, "car", true ) ) then outputChatBox ( "يجب ان ترجع الصندوق لقد فقدته", player, 255, 0, 0 ) end end ) addEventHandler ( "onVehicleExplode", resourceRoot, function ( ) destroyElement ( source ) end ) addEventHandler ( "onPlayerQuit", root, function ( ) _destroyElement ( trailerTower [ source ] ) _destroyElement ( trailer [ source ] ) trailerTower [ source ] = nil trailer [ source ] = nil end ) . عوض مكان الأرقمنتات حقت الماركر بأول سطر فقط، الي تحته لاتعدل فيه شي
-
Event: "onTrailerDetach" getVehicleController outputChatBox
-
source > root عدد اللاعبين لما يخرج لاعب رح يجي العدد بالإضافة الى واحد زيادة، لان الوظيفة لما تتنفذ يكون اللاعب لحد الآن ما خرج عشان كذا يبيلكـ تنقص واحد من العدد + : ع العموم الكود يصير كذا * Server Side: function showPlayers ( ) local numPlayers = getPlayerCount ( ) local maxPlayers = getMaxPlayers ( ) if ( eventName == "onPlayerJoin" ) then outputChatBox ( "There are " .. numPlayers .. "/" .. maxPlayers .. " players playing", root, 255, 255, 0, true ) else outputChatBox ( "There are " .. numPlayers - 1 .. "/" .. maxPlayers .. " players playing", root, 255, 255, 0, true ) end end addEventHandler ( "onPlayerJoin", root, showPlayers ) addEventHandler ( "onPlayerQuit", root, showPlayers )
-
+ outputChatBox getMaxPlayers -- إختياري
-
.. اوكي، جرب الكود الي بردي الي قبل هذا ورد خبر كفو اشتغل ( \: بسس ليه يصير لاق اذا انمسح : خلاص حليتها بس لاني مخلي يمسح 2000 سطر ذذ ! .. . حيآكـ / انا كاتب فوق عن الأسطر مايحتاج تزودها عن 10 وانا اصلاً مسويها بالكود 10 مايحتاج تزودها .. عشان تتفادى اللاق بأكبر قدر ممكن
-
.. اوكي، جرب الكود الي بردي الي قبل هذا ورد خبر
-
v -- خارج الشرط ؟؟ "* Chat Was Cleared Automatically" فيه عندكـ أخطاء بالكود، أول شي كيف مسوي مخرج الشات حق ^ بكذا رح يصير اي رسالة يكتبها اللاعب تجي معها الرسالة ذي إذا تم العثور على كلمة بمخرج النص، لانه لو كان اللاعب كاتب كلمتين بنفس المخرج بكذا رح break ثاني شي المفروض انك توقف اللوب عن طريق الدالة "* Chat Was Cleared Automatically" بكذا رح يمسح الشات مرتين ويطلع الكلام حق Word Word2 يتكرر المسح يعني لنفرض انا كتبت بالشات ... مرتين وكل مازادت الكلمات زاد التكرار لأن صندوق الشات "*Chat Was Cleared Automatically" ما يحتاج تسوي تكرار المسح 11 مره، يكفي تسويه 9 مرات والعاشرة تكون النص حق + كله يحتوي على 10 أسطر، عشان كذا نسويها 10 مخارج بالضبط تقليلاً للاق الي رح يحصل من التكرار وكذا لأنه بدون تايمر رح تتنفذ الأوامر الي مسويها قبل تجي "*Chat Was Cleared Automatically" مفروض تسوي تايمر للتكرار ومخرج النص + : الكلمة بالشات / ع العموم كودكـ يصير كذا بعد التعديل * Server Side: local gWords = { 'Word', 'Word2', } addEventHandler ( 'onPlayerChat', root, function ( gMessage ) for _, v in ipairs ( gWords ) do if ( string.find ( gMessage, v ) ) then setTimer ( function ( ) for i = 1, 9 do outputChatBox ( ' ' ) end outputChatBox ( '* Chat Was Cleared Automatically', root, 0, 255, 0 ) end, 50, 1 ) break end end end )
-
@Line 4: "Admin" > "Console" v if isObjectInACLGroup ( "user." .. accName, aclGetGroup ( "Console" ) ) then
-
: .. بالنسبة لطلبكـ الثاني https://forum.multitheftauto.com/viewtopic.php?f=160&t=67473&p=632765#p632765
-
setTimer > Event: onPlayerSpawn + getElementType table
-
. وتلصقه بعنصر محدد - ( F11ذي الوظيفة تقوم بإنشاء "بليب" - ( صورة بالردار والخريطة بـ
-
,, شوف هنا يقولكـ قصتها، كيف تطورت وكذا .. MTA:SA بعدين تطورت وصار إسمها MTA:Race إيه وكان إسمها Migrating from MTA:Race to MTA:SA 1.3
-
ما في أكواد ؟ هاك اكثر يعني ما تموت وكذا hovercars - no known equivalent PC cheat, and allows cars to drive on water. aircars - equivalent of the RIPAZHA cheat, and allows cars to fly. extrabunny - equivalent of the CJPHONEHOME or JHJOECW cheat, and allows you to bunny hop on bicycles much higher. extrajump - equivalent of the KANGAROO cheat, and allows you to jump on foot much higher.
-
الطلب الثاني : 'onClientGUIClick' blowVehicle + getPedOccupiedVehicle getVehicleController
-
Event: "onPlayerWasted" spawnPlayer
-
getPlayerName + isTimer -- Event: "onClientGUIClick" triggerServerEvent getPlayerMoney هو يقول يسحب فلوس من لاعب ماقال يسحب فلوس نفسه ! هو ماطلب كذا، يقولك لو ضغط زر تنسحب فلوس منه .getPlayerFromName غلط / الصح getPlayerName لنفرض انه كلامكـ صحيح .. ترا وظيفة +
-
getPlayerName + isTimer -- Event: "onClientGUIClick" triggerServerEvent getPlayerMoney
-
local marker = createMarker ( 2013.8099365234,1544.779296875,11.310423851013, "cylinder", 1, 255, 252, 255 ); local bind = { } addEventHandler ( "onResourceStart", resourceRoot, function ( ) for _, p in ipairs( getElementsByType ( "player" ) ) do bindKey ( p, "h", "down", Animation ); end end ); addEventHandler ( "onPlayerJoin", root, function ( ) bindKey ( source, "h", "down", Animation ); end ); function Animation ( plr ) if isElementWithinMarker ( plr, marker ) then local PlayerMoney = getPlayerMoney ( plr ); if ( PlayerMoney >= 150 ) then takePlayerMoney ( plr, 150 ); setPedAnimation ( plr, "FOOD", "EAT_Burger", _, false, _, _, false ); setPedArmor ( plr, 100 ); outputChatBox ( "* لقد قمت بشراء الدرع !", plr, 0, 255, 0, true ); else outputChatBox ( "* لا يوجد لديك المال الكافي لشراء الدرع !", plr, 255, 0, 0, true ); end bind[ plr ] = true end end addEventHandler ( "onMarkerLeave", marker, function ( player ) if ( getElementType ( player ) == "player" ) then if not ( bind[ player ] ) then outputChatBox ( "مرحبا بك", player, 255, 255, 0, true ) bind[ player ] = nil else bind[ player ] = nil end end end )