[YARDIM] Tetikleyici ve Kayıt Sistemi

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı EazyE25

  • Yeni Üye
  • *
    • İleti: 18
: 03 Haziran 2019, 19:27:27
Öncelikle herkese hayırlı Ramazanlar dilerim.

Yapmış olduğum bir scriptte oyunculara 5 seçenek sundum ve bu 5 seçeneğin hepsine kayıt sistemi ekledim. Mesela bir oyuncu 5 seçenekten her birini deneyip 3. seçeneği seçti. Fakat oyuncu tüm seçenekleri denediği için hepsi ayrı ayrı kayıt edilmiş oldu ve dolayısıyla oyuncu tekrar giriş yaptığında hepsini başlattı script. Bu arada kayıt hesaba kayıt edildi. Hepsini başlattığı için dolayısıyla oyuncuya sunulan en son seçtiği değil de scriptte en son yazılan yani 5. seçenek olduğundan oyuncuya 5. seçenek yüklendi. Bu durumu düzeltmek için farklı fonksiyonlara ve eventlere baktım ama işime yarar bir şey bulamadım. Bir öneriniz varsa daima açığım. Şimdiden teşekkürler.

Client :

Kod
function seçenek1()
txd = engineLoadTXD ( "1.txd" )
engineImportTXD ( txd, 1 )
triggerServerEvent("kaydet1",localPlayer,seç1)
end

Server :

Kod
addEvent("kaydet1",true)
addEventHandler("kaydet1",root,function(seç1)
local hesap = getPlayerAccount(source)
if not isGuestAccount(hesap) then
setAccountData(hesap,"kayit1",seç1)
end
end)

addEventHandler("onPlayerLogin", root,
function(_,hesap)
        local kayit1 = getAccountData(hesap, "kayit1",seç1)
        if kayit1 then
        triggerClientEvent(source, "kay1", source, kayit1) 
end
end)

Tekrar Client :

addEvent("kay1", true)
addEventHandler("kay1", root,
function ()
txd = engineLoadTXD ( "1.txd" )
engineImportTXD ( txd, 1 )
end)

Yukarıda alıntısı yapılan bölümlerdeki tırnak içindeki isimler önemsizdir.
« Son Düzenleme: 15 Haziran 2019, 21:50:19 Gönderen: Narkoz »
Linki görebilmek için Kayıt olun yada Giriş yapın.
 


MTASATURK

[YARDIM] Tetikleyici ve Kayıt Sistemi
« : 03 Haziran 2019, 19:27:27 »

Çevrimdışı Mahlukat

  • Uzman Üye
  • *
    • İleti: 637
Yanıtla #1 : 03 Haziran 2019, 19:50:25
Kod
--Client
function seçenek1()
txd = engineLoadTXD ( "1.txd" )
engineImportTXD ( txd, 1 )
triggerServerEvent("Server.SkinKaydet",localPlayer,"1") -- kaydederken txd ismini kaydettiğin sürece alttaki fonksiyonda kolaylık olur
end

function seçenek2()
txd = engineLoadTXD ( "2.txd" )
engineImportTXD ( txd, 2 )
triggerServerEvent("Server.SkinKaydet",localPlayer,"2") -- kaydederken txd ismini kaydettiğin sürece alttaki fonksiyonda kolaylık olur
end

addEvent("Client.SkinYukle",true)
addEventHandler("Client.SkinYukle", root, function(skin)
txd = engineLoadTXD ( skin..".txd" )
engineImportTXD ( txd, tonumber(skin) )
end)
Kod
--Server
addEvent("Server.SkinKaydet",true)
addEventHandler("Server.SkinKaydet", root, function(skin)
local hesap = getPlayerAccount(source)
if not isGuestAccount(hesap) then
setAccountData(hesap,"KayıtlıSkin",skin)
end
end)

addEventHandler("onPlayerLogin",root, function(_,hesap)
local kayitliSkin = getAccountData(hesap,"KayıtlıSkin")
if kayitliSkin then
triggerClientEvent(source,"Client.SkinYukle",source,kayitliSkin)
end
end)
« Son Düzenleme: 03 Haziran 2019, 19:54:46 Gönderen: Mahlukat »
Linki görebilmek için Kayıt olun yada Giriş yapın.
 


Çevrimdışı EazyE25

  • Yeni Üye
  • *
    • İleti: 18
Yanıtla #2 : 03 Haziran 2019, 20:03:08
Kodu inceledim de benimki ile aynı gibi duruyor.

Mesaj Birleştirildi: 03 Haziran 2019, 20:07:55
Linki görebilmek için Kayıt olun yada Giriş yapın.
Kod
--Client
function seçenek1()
txd = engineLoadTXD ( "1.txd" )
engineImportTXD ( txd, 1 )
triggerServerEvent("Server.SkinKaydet",localPlayer,"1") -- kaydederken txd ismini kaydettiğin sürece alttaki fonksiyonda kolaylık olur
end

function seçenek2()
txd = engineLoadTXD ( "2.txd" )
engineImportTXD ( txd, 2 )
triggerServerEvent("Server.SkinKaydet",localPlayer,"2") -- kaydederken txd ismini kaydettiğin sürece alttaki fonksiyonda kolaylık olur
end

addEvent("Client.SkinYukle",true)
addEventHandler("Client.SkinYukle", root, function(skin)
txd = engineLoadTXD ( skin..".txd" )
engineImportTXD ( txd, tonumber(skin) )
end)
Kod
--Server
addEvent("Server.SkinKaydet",true)
addEventHandler("Server.SkinKaydet", root, function(skin)
local hesap = getPlayerAccount(source)
if not isGuestAccount(hesap) then
setAccountData(hesap,"KayıtlıSkin",skin)
end
end)

addEventHandler("onPlayerLogin",root, function(_,hesap)
local kayitliSkin = getAccountData(hesap,"KayıtlıSkin")
if kayitliSkin then
triggerClientEvent(source,"Client.SkinYukle",source,kayitliSkin)
end
end)

Yanıtladığın için teşekkür ederim ama maalesef bu kodlar zaten bendeki kodlar ile aynı. Sorun kayıt etmesinde değil. Sistemi baştan anlatsam iyi olacak. Alıntı olarak attığım kodlar scriptin kendisi değil yani kendim göstermelik yazdığım kodlar. Sistem şu şekilde çalışıyor. 5 tane yol kaplaması var ve hepsi aynı obje üzerine kayıtlı. Hepsinin de hesaba kayıt edilme özelliği var. Diyelim oyuncu hepsine tek tek bastı ve 2-3-4 artık kaç seçtiyse onu en sonunda kararlaştırdı. Oyuncu hepsine bastığından dolayı hepsi ayrı ayrı kayıt için tetikleyici gönderiyor server'e. Sistem hepsinin tetikleyicisini algılıyor ve hepsini kayıt ediyor hesaba. Oyuncu sunucuya bir dahaki girdiğinde sistem hesaba bakıyor hepsi kayıtlı. Hepsini tek tek başlatıyor ve dolayısıyla yazılımda en son başlatılan yol oyuncuda gözüküyor.  Benim sorunum şu : Oyuncu bir yolu seçtiğinde diğer yolların tetikleyicilerini nasıl iptal edebilirim veya daha farklı bir yöntem ile bunu yapmak mümkün mü ? Yani oyuncu girdiğinde seçtiği yol gözüksün istiyorum.
« Son Düzenleme: 03 Haziran 2019, 20:07:55 Gönderen: EazyE25 »
Linki görebilmek için Kayıt olun yada Giriş yapın.
 


Çevrimdışı Mahlukat

  • Uzman Üye
  • *
    • İleti: 637
Yanıtla #3 : 03 Haziran 2019, 20:15:49
Attığım yanıt da istediğin şey tam olarak zaten

Yazı ile anlatmak gerekirse;
Her seçenek için ayrı kayıt oluşturma. Hepsini bir data üzerine kaydet.
Dolayısı ile son seçtiği aktif olacaktır

setAccountData(hesap,"kay1"..
setAccountData(hesap,"kay2"..
setAccountData(hesap,"kay3"..

diye gitme

hepsini tek bir veri üstüne kayıtla
Linki görebilmek için Kayıt olun yada Giriş yapın.
 


Çevrimdışı EazyE25

  • Yeni Üye
  • *
    • İleti: 18
Yanıtla #4 : 03 Haziran 2019, 20:18:37
Linki görebilmek için Kayıt olun yada Giriş yapın.
Attığım yanıt da istediğin şey tam olarak zaten

Yazı ile anlatmak gerekirse;
Her seçenek için ayrı kayıt oluşturma. Hepsini bir data üzerine kaydet.
Dolayısı ile son seçtiği aktif olacaktır

setAccountData(hesap,"kay1"..
setAccountData(hesap,"kay2"..
setAccountData(hesap,"kay3"..

diye gitme

hepsini tek bir veri üstüne kayıtla

Attığın kod ta seçenek2 kısmını görmemişim tamam sağ ol şimdi yapıyorum.

Mesaj Birleştirildi: 03 Haziran 2019, 20:42:25
Linki görebilmek için Kayıt olun yada Giriş yapın.
Attığım yanıt da istediğin şey tam olarak zaten

Yazı ile anlatmak gerekirse;
Her seçenek için ayrı kayıt oluşturma. Hepsini bir data üzerine kaydet.
Dolayısı ile son seçtiği aktif olacaktır

setAccountData(hesap,"kay1"..
setAccountData(hesap,"kay2"..
setAccountData(hesap,"kay3"..

diye gitme

hepsini tek bir veri üstüne kayıtla

Her şey için çok teşekkür ederim sorunumu hallettim yardımcı olduğun için sağol.  :)
« Son Düzenleme: 03 Haziran 2019, 20:42:25 Gönderen: EazyE25 »
Linki görebilmek için Kayıt olun yada Giriş yapın.