Account Data Eğitim Dersi

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı MertA178

  • Oh,shit! What is these cringes? These are LUA codes bro! LUA is a terrible scripting language.
  • Deneyimli Üye
  • *
    • İleti: 381
: 28 Aralık 2019, 18:48:56
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:

Kod
setElementData(thePlayer,"ThanaReal",true)

Kodu herhangi bir sistem kurmadan yazdım.Bir sistem kurayım.

Serverside:
Kod
function datalar (thePlayer)
setElementData(thePlayer,"ThanaReal",true)
end
addCommandHandler("data",datalar)

Client Side:
Kod
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.

Kod
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:
Spoiler for Hiden:
Ders 2:
Spoiler for Hiden:
Ders 3:
Spoiler for Hiden:
Ders 4:
Spoiler for Hiden:
Ders Table:
Spoiler for Hiden:
setTimer:
Spoiler for Hiden:
For ve Table:
Spoiler for Hiden:
interpolateBetween:
Spoiler for Hiden:

Anlatım Bu kadardı.Görüşmek üzere.
« Son Düzenleme: 31 Ocak 2020, 13:47:45 Gönderen: MertA178 »
 


MTASATURK

Account Data Eğitim Dersi
« : 28 Aralık 2019, 18:48:56 »

Çevrimdışı GrandX

  • Yeni Üye
  • *
    • İleti: 55
Yeniler için iyi ama şurayı anlamadım;
Kod
function save ()
para = getPlayerName(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)

Kod
para = getPlayerName(source)
 


Çevrimdışı MertA178

  • Oh,shit! What is these cringes? These are LUA codes bro! LUA is a terrible scripting language.
  • Deneyimli Üye
  • *
    • İleti: 381
Linki görebilmek için Kayıt olun yada Giriş yapın.
Yeniler için iyi ama şurayı anlamadım;
Kod
function save ()
para = getPlayerName(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)

Kod
para = getPlayerName(source)
Kafanın karışması normal.thePlayer felan kullanırız normalde komuda atadığımızda.Fakat serverda event kullandığımızda veya clientte eventlere özel argümanlar vardır.Bu nedenle source oyuncuya denk gelir.Clientte görmüşsündür localPlayer gibi kodları.Bu localPlayer cliente özel oyuncuya denk gelir aynı şekilde.Source=Oyuncu öyle yani.Ama komuta atadığımızda fonksiyonu source diye bir şey kalmaz.Argüman girmelisin.

Kod
function fonksiyon(oyuncu, cmd)

Event oyundan çıkınca  anlamına gelir ama şöyle bir olay var.Oyuncunun verileri oyuna tekrar girince gider.Bunu kendim fark ettim.

Mesaj Birleştirildi: 29 Aralık 2019, 10:26:34
Anladın mı?
« Son Düzenleme: 29 Aralık 2019, 10:26:34 Gönderen: MertA178 »
 


Çevrimdışı #CrawL

  • Acemi Üye
  • *
    • İleti: 138
  • Skype: mtacrawl | Discord: crawl</>#2808
Kod
para = getPlayerName(source)

Bu kısım;

Kod
para = getPlayerMoney(source)

bu şekilde olacak. Ufak bir hata. Eline sağlık bilmeyenler için yararlı. ::)
« Son Düzenleme: 29 Aralık 2019, 10:53:43 Gönderen: #CrawL »
 


Çevrimdışı MertA178

  • Oh,shit! What is these cringes? These are LUA codes bro! LUA is a terrible scripting language.
  • Deneyimli Üye
  • *
    • İleti: 381
Linki görebilmek için Kayıt olun yada Giriş yapın.
Kod
para = getPlayerName(source)

Bu kısım;

Kod
para = getPlayerMoney(source)

bu şekilde olacak. Ufak bir hata. Eline sağlık bilmeyenler için yararlı. ::)
Haklısın.Arada oluyor yanlışlıkla oyuncu adını çekmişim.Yorumun için teşekkürler.
 


Çevrimdışı MertA178

  • Oh,shit! What is these cringes? These are LUA codes bro! LUA is a terrible scripting language.
  • Deneyimli Üye
  • *
    • İleti: 381
Yanıtla #5 : 31 Ocak 2020, 13:45:55
Artık anlamadığım bir sebepten dolayı serverda bindKey hata veriyor bu nedenden dolayı dersdeki bindKey bulunan functionu clientte yazmalısınız ve bir kaç şey değiştirilmeli.

Client:

Kod
function bind ()
if getElementData(getLocalPlayer(),"ThanaReal") == true then
    outputChatBox("ThanaReal datanız true")
end
end
bindKey ( "F10", "down", bind )

Böyle olmalı ve getLocalPlayer kısmı localPlayerda olabilir.getLocalPlayer() hoş olduğundan kullanmak istedim.
 


MTASATURK

Ynt: Account Data Eğitim Dersi
« Yanıtla #5 : 31 Ocak 2020, 13:45:55 »