Selamlar.Bugün getElementData,setAccountData,getAccountData,setElementData hakkında bilgi vericem.Ben scripter değilim sadece insanlar bunu anlasın istedim.
Aklınıza gelebilcek her isim datadır.Değişken gibi düşünün.Dataya değişken gibi isim veririz.Daha sonra sağ kısımda dataya değer veririz.Mesela alttaki gibi:
setElementData(thePlayer,"ThanaReal",true)
Kodu herhangi bir sistem kurmadan yazdım.Bir sistem kurayım.
Serverside:
function datalar (thePlayer)
setElementData(thePlayer,"ThanaReal",true)
end
addCommandHandler("data",datalar)
Client Side:
function bind ()
if getElementData(getLocalPlayer(),"ThanaReal") == true then
outputChatBox("ThanaReal datanız true")
end
end
bindKey ( "F10", "down", bind )
Sistemde data komuduyla oyuncunun ThanaReal datasını true yapdık.Daha sonra if ile kontrol yapdık.Onu kontrol değilde ingilizce karşılığıyla okuyurum ben.Eğer oyuncunun ThanaReal datası trueysa anlamına gelir.Oyuncu f10a basdığında ThanaReal datası trueysa chate "bir oyuncunun ThanaReal datası true" yazısını atar.
Roleplay server paketlerinde setElementData(thePlayer,"vip",3) komutlarını görmüşsünüzdür.Aslında bunlar getElementDatayla oyuncunun datasını çekip eğer vip datası 3 se logo çıksın gibi yapmaya çalışıyorlar.Yani data oluşturulmaz her zaman vardır.Sadece bizler luayla uğraşanlar kontrolünü yaparız ve datasını çekip eğer ThanaReal datası mesela trueysa f10 a basınca chate çıkan bir yazı yapdık yukarda.
Şimdi gelelim setAccountDataya ve getAccountDataya.setElementData ve getElementData 2 sidedada çalışan kodlardır fakat accountla ilgili olan her şey server sideda yer alır.
setAccountData ve getAccountData,getElementData ve setElementDataya benzer.Altta para kaydetme sisteminin kodları var ve setAccountData ve getAccountData kodlarını gerektiriyor.Para kaydetme yani oyuncu oyundan çıksa bile parası gitmez.
function save ()
para = getPlayerMoney(source) -- Oyuncunun parasını çekdik
accountold = getPlayerAccount(source) -- Oyuncunun accountunu çekdik
setAccountData(accountold,"para",tonumber(para)) -- Oyuncunun accountunun parasını oyundan çıkmadan önceki parasıyla değiştirdik.
end
addEventHandler("onPlayerQuit",root,save) -- Oyuncu oyundan çıkınca olacakları belirledik
function kaydedildi ()
accountnew = getPlayerAccount(source) -- Oyuncunun accountunu çekdik
paradata = getAccountData(accountnew,"para") -- Oyuncunun accountunun para datasını çekdik.
setPlayerMoney(source,tonumber(paradata)) -- Oyuncunun parasını accountunun para datasıyla değiştirdik.
end
addEventHandler("onPlayerLogin",root,kaydedildi) -- Oyuncu hesabına giriş yapınca olacakları belirledik.
Tek fark bu kodlar sadece server sideda çalışıyor ve oyuncunun datasını çekmiyoruz.Oyuncunun accountunun datasını.Bu yüzden source veya thePlayer yazmadım nedeni hesabın datasını çekiyoruz.Oyuncunun hesabını çekdim ve hesabın para datasını çekdim.Daha sonra oyuncunun parasını hesabının datasıyla değiştirdim.Birde setAccountData kullandığımızda oyuncunun datasını çekmiyoruz hesabın datasını.Bu nedenle mysql olmadan hesabın datası sürekli aynı kalır.
setAccountDatayı ve getAccountDatayı çok ayrıntılı anlatmadım çünkü setElementData getElementDataya benziyor.
Bazı arkadaşlarımız pek anlamamış olabilir.Bunları tek tek izleyen biri olarak söylüyorum.MTASA Lua Skype Videolarını izlemenizi tavsiye ederim.Forumdada bulunmakta youtubedada.Buyrun:
Spoiler for Hiden:
Ders 1:
Ders 2:
Ders 3:
Ders 4:
Ders Table:
setTimer:
For ve Table:
interpolateBetween:
Anlatım Bu kadardı.Görüşmek üzere.