Neler yeni

Foruma hoş geldin, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Türkiye'nin İlk ve tek FiveM forum adresi

Forum adresimize hoş geldin FiveMTürk olarak amacımız siz değerli kullanıcılarımıza en aktif fikir ve paylaşım platformu sunmak bir yana en güvenilir şekilde alışveriş yapabileceğiniz bir platform sunmaktır.
DF DF
DF DF
DF DF

Fix [ak4y] - [QB]Inventory - TÜM DUPELER FIX

ugurakay

Üye
FT Kullanıcı
Katılım
4 yıl 10 ay 4 gün
Mesajlar
494
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.


  • 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.
Dupe nasıl yapılıyor?
Dupe; envanterde toItemData.amount kontrolü yapılmamasından kaynaklanıyor. Detaylandırmak gerekirse,
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 Fix
Tü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.
Fix'i oldukça detaylı anlatacağım eminim ki detaylı açıklamasam onlarca soru gelecek.
  • 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.
Bu resimde dupe sadece oyuncunun kendi envanterinden tutup, kendi envanterine koyduğu itemler için fix.
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)
72776

Envanteri kapatmanızı sağlayan event, client tarafında boş bir yere koyabilirsiniz.
72777
Kod:
RegisterNetEvent("lynx:envKapa")
AddEventHandler("lynx:envKapa", function()
    SendNUIMessage({
        action = "close",
    })
end)


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.
 
Son düzenleme:
Yorumlar için teşekkürler, Dupe log için fikir de vereyim. Tüm datalar elinizde istediğiniz gibi şekillendirebilirsiniz.

Logu denemek için kendi üzerimi aradım ve dupeyi yaptım o yüzden iki bilgi de bana ait şaşırmayın :D
72804
 
qbtoesx kullananlar için bırakayım buraya, eğer sıkıntı çıkarsa yazın bakarım. Denedim ve çalışıyor gibi, ugurakay ugurakay özelden yazdım o da çalışıyor dedi. Eğer discord log olayını yapamazsanız söyleyin yardım ederim.

Envanter
bu konudaki envanter!


 

Forumdan daha fazla yararlanmak için giriş yapın yada üye olun!

Forumdan daha fazla yararlanmak için giriş yapın veya kayıt olun!

Kayıt ol

Forumda bir hesap oluşturmak tamamen ücretsizdir.

Şimdi kayıt ol
Giriş yap

Eğer bir hesabınız var ise lütfen giriş yapın

Giriş yap

Bu konuyu görüntüleyen kullanıcılar

Tema düzenleyici

Tema özelletirmeleri

Granit arka planlar

Lütfen Javascript'i etkinleştirin!Javascript'i etkinleştirin!