Rehber - Tüm Envanterlerdeki Dupe Sorunu Kesin Çözümü

Fivem.com.tr

Fivem.com.tr
Katılım
1 Eki 2022
Mesajlar
5,891
Tepki
84
Güncelleme: (06.05.2021)

Gelen yardım isteklerine bakılırsa bazı envanterlerdeki bazı eventler kendiliğinden aynı anda 1 den fazla tetikleniyor. İsterseniz bu birden fazla tetiklenen eventleri belirleyip sadece o eventlere uygulayabilir, isterseniz uğraşmayıp tüm eventleri aynı şekilde güncelleyebilirsiniz, ama hepsine yaparsanız belirlediğiniz değere göre 1 defa tetiklenen eventler için tek seferden daha fazla tetiklemeye imkan vermiş olursunuz (Her türlü log alırsınız, logları takip edip müdahale edecekseniz eğer bu size ciddi sorun teşkil etmeyecektir). Seçim size kalmış. Ben sadece çözümü paylaşıyorum.



En yukarı

local checkSource = {}

altına bir de aşağıdaki tanımı ekleyin

local toleransDegeri = 2 --(Buraya yazacağınız sayı o eventin arka arkaya tetiklenmesine izin verileceği sayıyı belirtir. Gereksiz log aldıkça sayıyı arttırabilirsiniz.)





Önceki kodlarda aşağıdaki gibi olan yerleri



Kod:


Kod:
if checkSource[source] == nil then
        checkSource[source] = true
        TriggerEvent('ExeLds:resetCooldown', source)





Bu şekilde değiştirin:



Kod:


Kod:
if checkSource[source] == nil then
        checkSource[source] = 1
    else
        checkSource[source] = checkSource[source] + 1
    end
    if checkSource[source] <= toleransDegeri then     
        TriggerEvent('ExeLds:resetCooldown', source)



else den sonrası önceki anlatımdaki gibi kalabilir.





AÇIKLAMA:

Önceki paylaşmış olduğum oyuncuların yapmış olduğu dupe işlemini kısmen engelleyip size log gönderiyordu. Bu paylaşacağım sorguları kendi envanter scriptiniz hangisiyse ona doğru bir şekilde uyguladığınızda modem fişini çekme veya arka arkaya çok hızlı işlem yapma vb. gibi yöntemlerle meydana gelen dupe ve daha bir çok açığı bu sorgular sayesinde %100 oranda engelleyeceksiniz, ek olarak dupe yapmaya çalışanların logunu alacaksınız. Kendi envanterinizde nasıl aktif edeceğiniz konusunda en alta bir kaç envanterin aktif edilmiş event örneklerini paylaşacağım.



3636-1f654ed5331d8ce321d9b5181e737fcd.jpg







Script İndirme Linki:









NOT:

Burada paylaştığım script tek başına hazır start verip geçeceğiniz bir script değildir! Scriptin doğru çalışması için size kendi yazmış olduğum sorgu kodlarını kendi envanterinize doğru bir şekilde uygulamanız gerekmektedir. Mümkün olduğunca kodlardan anlamayan arkadaşlarımızın da anlayabileceği şekilde anlatmaya çalışacağım.



Bu tarz yararlı paylaşımların devamının gelmesini istiyorsanız kullanıp beğenenler en azından teşekkür yorumu atarak destek olabilirler. Sizler bu tarz ücretsiz/hayrına yapılan paylaşımlardan alacağınızı alıp yolunuza devam ettikçe bu tarz paylaşımların arkası gelmeyecektir.





DESTEK:

Paylaşmış olduğum scriptler/kodlar ile alakalı yaşadığınız sorunlarda ticket açarak benden veya #yardım kanalından diğer scriptlerimi kullanan arkadaşlardan yardım isteyebilirsiniz.







KURULUM:

1- Öncelikle exelds_antiDupeSystem scripti içindeki config dosyasındaki webhook linkini kendinizinkiyle değiştirin.

2- Sonrasında kendi envanter scriptinizin server dosyalarında "addInventoryItem" ve "removeInventoryItem" tetiklemeleri olan eventleri belirleyiniz.

3- Bu eventlerin bulunduğu ortak lua dosyasının en üstüne aşağıdaki kodu yapıştırın. Örneğin bu eventler server.lua da ise en üste aşağıdaki kodu ekleyin sonrasında eventleri düzenlemek için sonraki adıma geçin. (Bu uygulama tüm envanterlerde aynı)



Kod:


Kod:
local checkSource = {}

AddEventHandler('ExeLds:resetCooldown', function(id)
    Citizen.Wait(500)
    checkSource[id] = nil
end)





Sonrasında aynı lua içinde "addInventoryItem" ve "removeInventoryItem" bulunan tüm eventleri aşağıdaki envanterlere göre örneklerde görebileceğiniz gibi düzenleyin. Ben ekran görüntülerinde sadece birer tane event örneği gösterdim. Sizin tüm içinde "addInventoryItem" ve "removeInventoryItem" bulunan eventlere bunu uygulamanız gerek.





m3_inventoryhud Örnek:

3637-00d2946da0813b797aef9680d4a450a7.jpg







qb-inventory Örnek:

3638-5b191d4d55ff9c5d741a0d3ddc81d773.jpg







disc-inventoryhud Örnek:

3639-1ab58d98cbfb7bfe0e060283a6b05b77.jpg







esx_inventoryhud Örnek:

3640-cd85c598a29e49da85b137724a5a704b.jpg







Özet olarak envanter scriptinizin server lua dosyasındaki düzenleme aşağıdaki gibi olacaktır:




Kod:


Kod:
local checkSource = {}

AddEventHandler('ExeLds:resetCooldown', function(id)
    Citizen.Wait(500)
    checkSource[id] = nil
end)

RegisterServerEvent('ExeLds:ornekEvent')
AddEventHandler('ExeLds:ornekEvent', function(ornekData1, ornekData2, ...)
    if checkSource[source] == nil then
        checkSource[source] = true
        TriggerEvent('ExeLds:resetCooldown', source)
        --Event kodları burada
    else
        TriggerEvent('ExeLds:sendDupeLog', source)
    end
end)




İnsan aklının doğal uçuşları zevkten zevke değil umuttan umudadır. -Samuel Johnson

Konu alıntıdır, yanlış veya hatalı bir bilgi/paylaşım var ise yanıtlayabilir veya bizimle iletişime geçebilirsiniz.
 

Şu anda bu konu'yu okuyan kullanıcılar

Benzer konular

Üst