TrmPlmn Posted October 26, 2020 Share Posted October 26, 2020 عندي متغير واحتاج طريقة للحفظ بالحساب مثال Test = x كيف اقدر احفظه setAccountData Link to comment
Jw8. Posted October 27, 2020 Share Posted October 27, 2020 --#Example addCommandHandler ( 'savemoney', function ( player ) local account = getPlayerAccount ( player ) if account then setAccountData( account, "Acc;Money", getPlayerMoney ( player ) ) end end ) هذا مثال , انا م فهمت طلبك كثير . Link to comment
TrmPlmn Posted October 27, 2020 Author Share Posted October 27, 2020 مثال قريب لكن كيف بتكون طريقة وضع القيمة مره اخرى Link to comment
TrmPlmn Posted October 27, 2020 Author Share Posted October 27, 2020 بمعنى اقرب وقت يكون متصل اللاعب وتتغير عنده قيمة محدده بمجرد خروجه تتسجل بحسابه القيمه اللي تغيرت وايش صارت Link to comment
Scripting Moderators xLive Posted October 27, 2020 Scripting Moderators Share Posted October 27, 2020 onPlayerQuit إستخدم حدث واستعمل الاكونت داتا عشان تحط القيمة 1 Link to comment
TrmPlmn Posted October 27, 2020 Author Share Posted October 27, 2020 Quote -- اللي اقصده Test = Number Number هذي القيمة بتتغير لسبب معين هل فيه خطأ ؟ function onPlayerQuit ( ) local playeraccount = getPlayerAccount ( source ) if ( playeraccount ) and not isGuestAccount ( playeraccount ) then local Test = Number setAccountData ( playeraccount, "JustTest", Test ) end end function onPlayerLogin (_, playeraccount ) if ( playeraccount ) then local GetTest = getAccountData ( playeraccount, "JustTest" ) if (JustTest) then Test = Number end end end addEventHandler ( "onPlayerQuit", getRootElement ( ), onPlayerQuit ) addEventHandler ( "onPlayerLogin", getRootElement ( ), onPlayerLogin ) Link to comment
TrmPlmn Posted October 27, 2020 Author Share Posted October 27, 2020 بس المشكله ان القيم المتغيره كلاينت وهذا سيرفر Link to comment
Scripting Moderators xLive Posted October 28, 2020 Scripting Moderators Share Posted October 28, 2020 100% والله للحين مافهمت وش تبي بالضبط معرفة من قبل؟ Number بالنسبة لكودك هل إستعمل متغير نمبر مرة وحدة وخلاص Test إذا يب ليه تعرفها باسم local GetTest = getAccountData ( playeraccount, "JustTest" ) if (JustTest) then Test = Number end GetText هنا انت جالس تجيب القيمة من حساب الاعب وتعرفها بـ يلي ماشوفها بالكود ابدًا غير هنا JustTest لكن انت تحقق من قيمة اسمها بعدها انت سويت متغير عام اسمه تست ومرة ثانية خليت قيمته نمبر يلي معرف هل هي معرفة من قبل ولالا إذا انت تحاول تحفظ قيمة على الاعب إستعمل الجداول إو الالتمت داتا setElementData, getElementData 1 Link to comment
TrmPlmn Posted October 28, 2020 Author Share Posted October 28, 2020 3 hours ago, xLive said: 100% والله للحين مافهمت وش تبي بالضبط معرفة من قبل؟ Number بالنسبة لكودك هل إستعمل متغير نمبر مرة وحدة وخلاص Test إذا يب ليه تعرفها باسم local GetTest = getAccountData ( playeraccount, "JustTest" ) if (JustTest) then Test = Number end GetText هنا انت جالس تجيب القيمة من حساب الاعب وتعرفها بـ يلي ماشوفها بالكود ابدًا غير هنا JustTest لكن انت تحقق من قيمة اسمها بعدها انت سويت متغير عام اسمه تست ومرة ثانية خليت قيمته نمبر يلي معرف هل هي معرفة من قبل ولالا إذا انت تحاول تحفظ قيمة على الاعب إستعمل الجداول إو الالتمت داتا setElementData, getElementData خلاص بعيدا عن المثال حقي انا فكرتي ان فيه قيمة تتغير حسب اختيار اللاعب ومعرفه مسبقا اسمها = Number وهذي Number فيها اختيارات كثير من 1 الى 3 واذا ما اخترت منها بتكون القيمة 0 تلقائي انا ابي مثلا اول مادخلت كانت القيمة Number = 0 انا غيرتها وقلت Number = 1 ابي اذا دخلت مره ثانيه يقولي Number = 1 بالكلاينت طبعا للشخص لحاله يعني Link to comment
Scripting Moderators xLive Posted October 28, 2020 Scripting Moderators Share Posted October 28, 2020 حلوين مادامها للكلينت xml انصحك تستخدم فنكشنات الـ https://wiki.multitheftauto.com/wiki/Client_Scripting_Functions#XML_functions أو الملفات https://wiki.multitheftauto.com/wiki/Client_Scripting_Functions#File_functions كل الفنكشنين يمديك تسوي فيهم ملف بالكلينت وبذي الملف تخزن القيمة يلي عندك بجهاز الاعب ملاحظة: إذا القيمة يلي تحفظها مادامها بجهاز الاعب الاعب يقدر يعدلها ف إذا انت تحاول تحفظ شي ممكن يضر سيرفرك مثلا فلوس لا تحفظها بالكلينت يمديك تحفظها عالسيرفر بإستخدام اكونت داتا أو فنكنشات قواعد البيانات https://wiki.multitheftauto.com/wiki/Server_Scripting_Functions#SQL_functions وتقدر ترسلها للكلينت حق الاعب بإستخدام triggerClientEvent 1 Link to comment
TrmPlmn Posted October 28, 2020 Author Share Posted October 28, 2020 1 hour ago, xLive said: حلوين مادامها للكلينت xml انصحك تستخدم فنكشنات الـ https://wiki.multitheftauto.com/wiki/Client_Scripting_Functions#XML_functions أو الملفات https://wiki.multitheftauto.com/wiki/Client_Scripting_Functions#File_functions كل الفنكشنين يمديك تسوي فيهم ملف بالكلينت وبذي الملف تخزن القيمة يلي عندك بجهاز الاعب ملاحظة: إذا القيمة يلي تحفظها مادامها بجهاز الاعب الاعب يقدر يعدلها ف إذا انت تحاول تحفظ شي ممكن يضر سيرفرك مثلا فلوس لا تحفظها بالكلينت يمديك تحفظها عالسيرفر بإستخدام اكونت داتا أو فنكنشات قواعد البيانات https://wiki.multitheftauto.com/wiki/Server_Scripting_Functions#SQL_functions وتقدر ترسلها للكلينت حق الاعب بإستخدام triggerClientEvent اذا على انها تضر الخادم لا لكن ممكن تجيب خطا بالدي بق اذا حط قيمة وهميه مثلا لو حط 4 والحد اساسا 3 تقدر تسوي مثال بسيط على حفظ متغير ووقت دخول اللاعب يدخل والقيمة اللي يبيها موجوده ؟ Test = Number انا اللاعب حطيت Number = 2 ابي اذا طلعت يحفظها واذا رجعت تبقى القيمة Test = 2 ماتقصر Link to comment
Scripting Moderators xLive Posted October 28, 2020 Scripting Moderators Share Posted October 28, 2020 10 minutes ago, TrmPlmn said: لكن ممكن تجيب خطا بالدي بق اذا حط قيمة وهميه مثلا لو حط 4 والحد اساسا 3 يب ذا يلي اقصده يعني مانصح غير تحفظ زي اعدادات وزي كذا لكن اشياء زي فلوس, وغيره لا -- ذا مثال بسيط بالسيرفر بإستخدام الاكونت داتا ويرسل القيمة للكلينت -- client addCommandHandler ("nu",function () -- امر تبديل بسيط إذا كتبت الامر يبدل المتغير بين 1 و 0 number = number == 0 and 1 or 0 triggerServerEvent("saveNumber",resourceRoot,number) -- نرسلها للسيرفر عشان يحفظها الافضل ماتخلي الحفظ يصير له سبام end -- نستقبل التريقر من السيرفر ونحط القيمة addEvent("sendNumber",true) addEventHandler("sendNumber",resourceRoot, function(n) number = n outputChatBox("update number") end) -- server addEventHandler("onPlayerLogin",root, function (_,acc) local n = getAccountData(acc,"points") -- نجيب القيمة بمفتاح اسمه بوينت if n then -- نتحقق انه معاه قيمة محفوظة من قبل triggerClientEvent(source,"sendNumber",resourceRoot,n) end end) addEvent("saveNumber",true) addEventHandler("saveNumber",resourceRoot, function (n) local acc = getPlayerAccount(client) if not isGuestAccount(acc) then -- نتحقق انه مسجل دخول عشان نحفظ setAccountData(acc,"points",n) -- نحفظ القيمة بمفتاح اسمه بوينت end end) 1 Link to comment
TrmPlmn Posted October 29, 2020 Author Share Posted October 29, 2020 15 hours ago, xLive said: يب ذا يلي اقصده يعني مانصح غير تحفظ زي اعدادات وزي كذا لكن اشياء زي فلوس, وغيره لا -- ذا مثال بسيط بالسيرفر بإستخدام الاكونت داتا ويرسل القيمة للكلينت -- client addCommandHandler ("nu",function () -- امر تبديل بسيط إذا كتبت الامر يبدل المتغير بين 1 و 0 number = number == 0 and 1 or 0 triggerServerEvent("saveNumber",resourceRoot,number) -- نرسلها للسيرفر عشان يحفظها الافضل ماتخلي الحفظ يصير له سبام end -- نستقبل التريقر من السيرفر ونحط القيمة addEvent("sendNumber",true) addEventHandler("sendNumber",resourceRoot, function(n) number = n outputChatBox("update number") end) -- server addEventHandler("onPlayerLogin",root, function (_,acc) local n = getAccountData(acc,"points") -- نجيب القيمة بمفتاح اسمه بوينت if n then -- نتحقق انه معاه قيمة محفوظة من قبل triggerClientEvent(source,"sendNumber",resourceRoot,n) end end) addEvent("saveNumber",true) addEventHandler("saveNumber",resourceRoot, function (n) local acc = getPlayerAccount(client) if not isGuestAccount(acc) then -- نتحقق انه مسجل دخول عشان نحفظ setAccountData(acc,"points",n) -- نحفظ القيمة بمفتاح اسمه بوينت end end) يعطيك الف عافيه مضبوط اقدر اخلي متغير يزيد من رقم الى رقم ثم ينقص من الرقم الاخير للاول 1 > 100 ثم 1 < 100 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