Fivem.com.tr
Fivem.com.tr
- Katılım
- 1 Eki 2022
- Mesajlar
- 5,891
- Tepki
- 112
Merhabalar, Ben ak4y.
Bu konuyu sağda solda saçma sapan fixler gördüğüm için paylaşma kararı aldım.
Öncelikle belirteyim bu fix'den sonra sunucunuzda asla dupe yapılamayacak.
Eğer görüntü bug'ı ile oluşan fazla item, tutulup bir yere sürüklenilirse "Bu item'e sahip değilsin" uyarısı alırsınız, Çünkü fromItemData.amount kontrolü yapılıyor.
Fakat görüntü bug'ı ile oluşan fazla item'ın üzerine başka bir item sürüklerseniz, üstüne sürüklediğiniz item toData olduğu için ve kontrolü yapılmadığı için dupe başarılı olmuş olur.
Bazı arkadaşlar dupeyi fixlemek için progressbar açıkken oyuncunun envanteri açamayacağı şekilde vs. düzenlemeler yapmış. Arkadaşlar bu tarz gereksiz, oyuncuyu yoran yöntemlere hiç gerek yok, ayrıca bu metodu kullanan tüm sunucularda dupe rahatlıkla yapılabilir. Dupeleri tek tek, dupe methodlarının üstüne giderek fixleyemezsiniz. İleride bir yenisi daha çıkar başka bir methodla yaparlar.
Fix'e geçmeden önce tüm developerlardan ricam; Envanterinizdeki tüm pislikleri temizleyin.
Dupe FixTüm fix'i server > main.lua 'da SetInventoryData eventinde yapacağız.
Dupe yapılamaması için her slot değişiminde fromData gibi toDatayı da kontrol etmemiz gerekiyor.
Siz setInventoryData eventi içerisindeki tüm varyasyonlar için aynı kontrolü (toItemData.amount >= toAmount) yapacaksınız ve envanterinizdeki tüm dupeler fixlenmiş olacak. (En alttaki github linkini kontrol edebilirsiniz)
Envanteri kapatmanızı sağlayan event, client tarafında boş bir yere koyabilirsiniz.
Spoyler: Kod Bloğu
Kod:
Son sürüm dupe fix envanter:
Yukarıda anlattığım şekilde dilerseniz o printler yerine envanter kapatma eventi tetikleyebilirsiniz.
Artık sunucunuzda hiç bir şekilde envanter ile dupe yapılamaz.
Kendinizden keyif alın, çünkü sizden sadece bir tane var. -Ralph Waldo Emerson
Konu alıntıdır, yanlış veya hatalı bir bilgi/paylaşım var ise yanıtlayabilir veya bizimle iletişime geçebilirsiniz.
Bu konuyu sağda solda saçma sapan fixler gördüğüm için paylaşma kararı aldım.
Öncelikle belirteyim bu fix'den sonra sunucunuzda asla dupe yapılamayacak.
Direkt dupe fix, son sürüm envanter isteyenler konunun en altından indirebilir.
Developer arkadaşlar sorunun kaynağını öğrenmek için konuyu okuyabilir.
Eğer görüntü bug'ı ile oluşan fazla item, tutulup bir yere sürüklenilirse "Bu item'e sahip değilsin" uyarısı alırsınız, Çünkü fromItemData.amount kontrolü yapılıyor.
Fakat görüntü bug'ı ile oluşan fazla item'ın üzerine başka bir item sürüklerseniz, üstüne sürüklediğiniz item toData olduğu için ve kontrolü yapılmadığı için dupe başarılı olmuş olur.
Bazı arkadaşlar dupeyi fixlemek için progressbar açıkken oyuncunun envanteri açamayacağı şekilde vs. düzenlemeler yapmış. Arkadaşlar bu tarz gereksiz, oyuncuyu yoran yöntemlere hiç gerek yok, ayrıca bu metodu kullanan tüm sunucularda dupe rahatlıkla yapılabilir. Dupeleri tek tek, dupe methodlarının üstüne giderek fixleyemezsiniz. İleride bir yenisi daha çıkar başka bir methodla yaparlar.
Fix'e geçmeden önce tüm developerlardan ricam; Envanterinizdeki tüm pislikleri temizleyin.
Dupe FixTüm fix'i server > main.lua 'da SetInventoryData eventinde yapacağız.
Dupe yapılamaması için her slot değişiminde fromData gibi toDatayı da kontrol etmemiz gerekiyor.
toItemData.amount = slottaki gerçek item sayısı
toAmount = javascript tarafından gönderilir ui'da item kaç tane gösteriliyorsa onu belirtir.
Aşağıdaki resimde, 540. satırda toItemData.amount ile javascript tarafından event'e gönderilen toAmount kontrolününü yaptırıyorum. Dupeyi bu satır fixliyor.
Bu kontrol sonucunda eğer kişinin üzerinde olan item sayısı ui ' da gözüken item sayısına eşitse veya büyükse event istediğimiz gibi çalışıyor.
Eğer kişinin item sayısı gösterilene uymuyorsa, dupe'ye yol açan fonksiyonlar çalışmıyor, 545. satırda else altında oyuncunun envanterini kapattırıyorum, ve log gönderiyorum.
Siz setInventoryData eventi içerisindeki tüm varyasyonlar için aynı kontrolü (toItemData.amount >= toAmount) yapacaksınız ve envanterinizdeki tüm dupeler fixlenmiş olacak. (En alttaki github linkini kontrol edebilirsiniz)
Envanteri kapatmanızı sağlayan event, client tarafında boş bir yere koyabilirsiniz.
Spoyler: Kod Bloğu
Kod:
Kod:
RegisterNetEvent("lynx:envKapa")
AddEventHandler("lynx:envKapa", function()
SendNUIMessage({
action = "close",
})
end)
Son sürüm dupe fix envanter:
Ziyaretçiler için gizlenmiş link,görmek için
Giriş yap veya üye ol.
Yukarıda anlattığım şekilde dilerseniz o printler yerine envanter kapatma eventi tetikleyebilirsiniz.
Artık sunucunuzda hiç bir şekilde envanter ile dupe yapılamaz.
Kendinizden keyif alın, çünkü sizden sadece bir tane var. -Ralph Waldo Emerson
Konu alıntıdır, yanlış veya hatalı bir bilgi/paylaşım var ise yanıtlayabilir veya bizimle iletişime geçebilirsiniz.