Jump to content

setAccountData


TrmPlmn

Recommended Posts

--#Example
addCommandHandler ( 'savemoney', function ( player )
    local account = getPlayerAccount ( player )
    if account then
        setAccountData( account, "Acc;Money", getPlayerMoney ( player ) )
    end
end )

هذا مثال , انا م فهمت طلبك كثير .

Link to comment
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
  • Scripting Moderators

100% والله للحين مافهمت وش تبي بالضبط

معرفة من قبل؟ Number بالنسبة لكودك هل

إستعمل متغير نمبر مرة وحدة وخلاص Test إذا يب ليه تعرفها باسم
 

            local GetTest = getAccountData ( playeraccount, "JustTest" )
            if (JustTest) then
                  Test = Number
            end

GetText هنا انت جالس تجيب القيمة من حساب الاعب وتعرفها بـ
يلي ماشوفها بالكود ابدًا غير هنا JustTest لكن انت تحقق من قيمة اسمها

بعدها انت سويت متغير عام اسمه تست ومرة ثانية خليت قيمته  نمبر يلي معرف هل هي معرفة من قبل ولالا

إذا انت تحاول تحفظ قيمة على الاعب
إستعمل الجداول إو الالتمت داتا
setElementData, getElementData

  • Like 1
Link to comment
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

حلوين مادامها للكلينت

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

  • Like 1
Link to comment
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
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)

 

  • Like 1
Link to comment
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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...