#STZ Posted August 20, 2016 Share Posted August 20, 2016 السلام عليكم و رحمة الله و بركاته عندي مشكلة بكود كلنت addEventHandler("onClientGUIClick",root,function ( ) if source == GUIEditor.button[1] then triggerServerEvent("Acc:My:Car",localPlayer,522) Cars [ source ] = nil; end end ) سيرفر Cars = {} addEvent("Acc:My:Car",true) addEventHandler("Acc:My:Car",root, function ( ID ) local x,y,z = getElementPosition(source) Cars[source] = createVehicle(ID,x,y,z) end ) ابي لما يضغط الزر و ياخذ السيارة يروح احداثيات (-1254.31653 -185.36768 14.14844) و الكود مب شغال الدي بق يقول ملف الكلنت cars is (nill value ) زي كدا اتمني الحل Link to comment
!#NssoR_) Posted August 20, 2016 Share Posted August 20, 2016 #Client. addEventHandler("onClientGUIClick",resourceRoot,function ( ) if source == GUIEditor.button[1] then triggerServerEvent("Acc:My:Car",localPlayer,522) end end ) #Server. Cars = {} addEvent("Acc:My:Car",true) addEventHandler("Acc:My:Car",root, function ( ID ) if ( Cars[client] ) then destroyElement(Cars[client]) end if ( getPedOccupiedVehicle(client) ) then removePedFromVehicle ( client ) end Cars[client] = createVehicle(ID,-1254.31653, -185.36768, 15.14844) warpPedIntoVehicle ( client, Cars[client] ) end ) Link to comment
#STZ Posted August 20, 2016 Author Share Posted August 20, 2016 ERROR: Client (MR.NaiF) triggered serverside event bikes, but event is not added serverside [DUP x2] Link to comment
#STZ Posted August 20, 2016 Author Share Posted August 20, 2016 الديبق يقول كذا انا غيرت الاسم من Acc:My:Car الي bikes Link to comment
^iiEcoo'x_) Posted August 21, 2016 Share Posted August 21, 2016 addEventHandler("onClientGUIClick",resourceRoot,function ( ) if source == GUIEditor.button[1] then triggerServerEvent("bikes",localPlayer,522) end end ) Cars = {} addEvent("bikes",true) addEventHandler("bikes",root, function ( ID ) if ( Cars[client] ) then destroyElement(Cars[client]) end if ( getPedOccupiedVehicle(client) ) then removePedFromVehicle ( client ) end Cars[client] = createVehicle(ID,-1254.31653, -185.36768, 15.14844) warpPedIntoVehicle ( client, Cars[client] ) end ) Link to comment
!#NssoR_) Posted August 21, 2016 Share Posted August 21, 2016 ^ مولازم يحذف القيمة , لأنها بتستبدل نفسها بقيمة جديده Link to comment
SycroX Posted August 21, 2016 Share Posted August 21, 2016 addEventHandler("onClientGUIClick", resourceRoot, function() if source == GUIEditor.button[1] then triggerServerEvent("bikes", getLocalPlayer(), 522) end end) Vehicles = {} addEvent("bikes", true) function CreateVehicle(ID) if isElement(Vehicles[source]) then destroyElement(Vehicles[source]) end if getPedOccupiedVehicle(source) then destroyElement(getPedOccupiedVehicle(source)) end Vehicles[source] = createVehicle(ID, YourX, YourY, YourZ, YourRx, YourRy, YourRz) warpPedIntoVehicle(source, Vehicles[source]) end addEventHandler("bikes", root, CreateVehicle) Link to comment
!#NssoR_) Posted August 21, 2016 Share Posted August 21, 2016 ^ اشرح لي كيف . table1 = {} addCommandHandler('s', function ( player ) if ( table1[player] ) then outputChatBox('you have a Value',player) return end table1[player] = createPed(0,25,25,25) if ( isElement(table1[player]) ) then outputChatBox('The ped was Created.',player) end end) addCommandHandler('g', function ( player ) if ( table1[player] ) then if ( getElementType(table1[player]) == 'ped' ) then outputChatBox('you have a ped',player) table1[player] = createVehicle(411,25,25,25) elseif ( getElementType(table1[player]) == 'vehicle' ) then outputChatBox('the Ped Was Changed to Veh.',player) end end end) addCommandHandler('w', function ( player ) if ( table1[player] ) then local x,y,z = getElementPosition(player) setElementPosition(table1[player],x,y,z+2) end end) راح يضيف للتيبل بيد s جرب هالمثال وبتفهم في حال كتبت الامر بيغير البيد الي سياره g وفي حال كتبت الامر بيسحبلك الي بالجدول لو تلاحظ لما تسوي البيد بيسحب البيد ولكن لما تغيره الي سياره بيسحب السياره وماراح يسحب البيد w و الامر طبعا بتقولي انت كذا ماحذفت البيد وو , بقولك هذا مجرد مثال وابي اوصلك فكرة تغيير القيمة في التيبل مايحتاج انك تحذفها وترجع تضيف جديده هذا والله اعلم Link to comment
#STZ Posted August 21, 2016 Author Share Posted August 21, 2016 الاكود مب شغالة الزر ما يسوي شي ): Link to comment
#STZ Posted August 21, 2016 Author Share Posted August 21, 2016 خلاص تم تم شكرا لكم جميعا المشكلة كانت اني مب معرف السيرفر في الميتا شكرا لكم Link to comment
فاّرس Posted August 22, 2016 Share Posted August 22, 2016 table1 = {} addCommandHandler('s', function ( player ) if ( table1[player] ) then outputChatBox('you have a Value',player) return end table1[player] = createPed(0,25,25,25) if ( isElement(table1[player]) ) then outputChatBox('The ped was Created.',player) end end) addCommandHandler('g', function ( player ) if ( table1[player] ) then if ( getElementType(table1[player]) == 'ped' ) then outputChatBox('you have a ped',player) table1[player] = createVehicle(411,25,25,25) elseif ( getElementType(table1[player]) == 'vehicle' ) then outputChatBox('the Ped Was Changed to Veh.',player) end end end) addCommandHandler('w', function ( player ) if ( table1[player] ) then local x,y,z = getElementPosition(player) setElementPosition(table1[player],x,y,z+2) end end) راح يضيف للتيبل بيد s جرب هالمثال وبتفهم في حال كتبت الامر بيغير البيد الي سياره g وفي حال كتبت الامر بيسحبلك الي بالجدول لو تلاحظ لما تسوي البيد بيسحب البيد ولكن لما تغيره الي سياره بيسحب السياره وماراح يسحب البيد w و الامر طبعا بتقولي انت كذا ماحذفت البيد وو , بقولك هذا مجرد مثال وابي اوصلك فكرة تغيير القيمة في التيبل مايحتاج انك تحذفها وترجع تضيف جديده هذا والله اعلم كلامك صحيح, لكن : table1[player] = ... -- هنا راح يعتبر كأنه متغير والمتغير تقدر تغير قيمته, ما نختلف بمعنى الوظيفه ما راح تكمل وراح توقف تمام؟ return ولكن لاحظ انت مستخدم طيب بما ان الوظيفه توقفت يعني ماراح يقدر يسوي بيد ثاني تمام؟ ؟ هذي اللي ما فكرت فيها return طيب كودك اللي صلحته له انت مستخدم طيب سويت لك مثال بسيط , وبمشي على نفس كلامك, وشوف وش يصير ؟ car = {}; -- جدول فاضي local var; -- nil متغير قيمته addCommandHandler ( 'cve', function ( plr ) local x,y,z = getElementPosition ( plr ) if isElement ( car [ plr ] ) then -- نتحقق ان العنصر وهو متغير للسياره موجود او لا destroyElement ( car [ plr ] ) -- نحذفه -- السطرين اللي تحت تحذف قيمة اللاعب وتحذف السياره, خلها كـ كلام توضيحي واستخدمها عشان تجرب -- car [ plr ] = nil; -- نحذف القيمه من الجدول -- var = 0; -- نرجع قيمة المتغير صفر بما اننا حذفنا القيمه اكيد لازم يكون صفر end car [ plr ] --[[ الجدول والقيمه هي اللاعب راح يكون متغير للسياره ]] = createVehicle ( 422, x, y, z ) for k,v in pairs ( car ) do -- نسوي لوب عشان نجيب محتويات الجدول var = ( var or 0 ) + 1 -- نخلي قيمته صفر مره واحده فقط وبعدها نزود قيمته nil نحط للمتغير قيمه لأنه -- طبعا اللوب راح يكرر على حسب قيم الجدول outputChatBox ( var ) -- هنا راح تظهر كم قيمه داخل الجدول ! -- بما ان اللعبه مب عندي وما اقدر اجرب, على حسب معرفتي راح تزيد القيمه وما راح تتبدل على كلامك -- بمعنى راح تضيف اللاعب للجدول اكثر من مره, بما انك حذفت المتغير (المتغير) بس يعني قيمة الجدول ما حذفتها end end) هذا اللي عندي و الله اعلم انا اكلمك من واقع معرفتي مب من واقع تجربه, لأني ما اجرب, يمكن يكون كلامي خطأ واستفيد منك هات ردك . Link to comment
!#NssoR_) Posted August 22, 2016 Share Posted August 22, 2016 شوف انا جربت هالمثال car = {}; -- جدول فاضي local var; -- nil متغير قيمته addCommandHandler ( 's', function ( plr ) local x,y,z = getElementPosition ( plr ) if isElement ( car [ plr ] ) then destroyElement ( car [ plr ] ) var = 0 -- نرجع قيمة المتغير صفر بما اننا حذفنا القيمه اكيد لازم يكون صفر end car [ plr ] = createVehicle ( 422, x, y, z ) for k,v in pairs ( car ) do var = ( var or 0 ) + 1 outputChatBox ( var ,root) end end) وكل ما اطلع سياره جديده تختفي القديمه ويقولي عدد القيم الموجوده بالجدول 1 Link to comment
فاّرس Posted August 22, 2016 Share Posted August 22, 2016 طيب سطر 8 ليه رجعت قيمة المتغير 0؟ بما انك ما حذفت القيمه بواسطه : car [ plr ] = nil; Link to comment
!#NssoR_) Posted August 22, 2016 Share Posted August 22, 2016 لأن انا ابيه يجيبلي عدد القيم الي بالجدول ولو ماصفرته ماراح يجيب العدد بيقعد يزيد المتغير علي كل مره بيزيد رقم واحد لأن عدد القيم الي بالجدول قيمه وحده فقط وبكذا كل مره بيزيد قيمه وحده Link to comment
فاّرس Posted August 22, 2016 Share Posted August 22, 2016 المفروض ماتخلي قيمته صفر الا اذا حذفت القيمه من الجدول , يعني لو خليت قيمته صفر بمعنى انك سويت كذا : addCommandHandler ( 'cve', function ( plr ) car = {}; -- خلينا الجدول داخل الكوماند local var; -- خلينا المتغير داخل الكوماند --[[ بمعنى انه اذا كان المتغير داخل الكوماند, كل مره تكتب الكوماند راح يسوي المتغير من جديد وبمعنى آخر كل مره تكتب الكوماند راح يسوي الجدول من جديد وبمعنى آخر ايضاً التحقق من ان السياره موجوده ماراح يشتغل لأن توك مسوي الجدول ]] local x,y,z = getElementPosition ( plr ) if isElement ( car [ plr ] ) then destroyElement ( car [ plr ] ) end car [ plr ] = createVehicle ( 422, x, y, z ) for k,v in pairs ( car ) do var = ( var or 0 ) + 1 outputChatBox ( var ) end end) يعني لو خليت قيمته صفر كأنك حاط المتغير داخل الكوماند وبكذا ماراح تزيد قيمته عن 1 نهائياً, كلامي صحيح او؟ Link to comment
!#NssoR_) Posted August 22, 2016 Share Posted August 22, 2016 شئ اكيد اذا حطيت الجدول داخل الكومند كل شوي بيسوي جدول جديد وهذا خطأ مادري وش الي تقصده بالضبط ولكن شوف هالمثال car = {}; addCommandHandler ( 's', function ( plr ) local x,y,z = getElementPosition ( plr ) if isElement ( car [ plr ] ) then destroyElement ( car [ plr ] ) end car [ plr ] = createVehicle ( 422, x, y, z ) for k,v in pairs ( car ) do outputChatBox ( 'test',root) end end) مره وحده فقط test لو طلعت 10 سيارات مثلا , مع كل سياره تطلعها بيقولك بالشات واذا كان قصدك تقول ليش ماتسوي كذا car [ plr ] = nil هاذي اسويها لما يخرج اللاعب من السيرفر ولكن لما تجي تبدل السياره ماشوفها ضروريه Link to comment
فاّرس Posted August 22, 2016 Share Posted August 22, 2016 ^ اعتقد كلامك صحيح, هي مجرد تبديل قيمه, العموم يعطيك العافيه ما اقدر اجرب لأن اللعبه مب عندي, كنت اعطي توقعات فقط . Link to comment
!#NssoR_) Posted August 22, 2016 Share Posted August 22, 2016 الله يعافيك , ماسوينا شي وكلنا مازلنا متعلمين Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now