Envantere aldığım her item Pickup effect sistemi sayesinde parlıyor envanterde yeni geldiği için
Ama stacklanan yanı bk yada artı basma materyalleri vs 10 adet var diyelim 11 adet oluyor AA parlama gelmiyor bunu nasıl yapabiliriz
Pickup effect dediğimiz parlama olayı genelde
envantere yeni bir item girdi mi mantığıyla çalışıyor. Yerden aldığın normal bir item slot’a ilk defa girince sistem “yeni item geldi” diye algılıyor ve efekti basıyor.
Stack itemlerde ise olay farklı.
Mesela envanterinde 10 tane BK var. Yerden bir tane daha aldığında oyunda yeni bir item oluşmuyor. O slot zaten var olduğu için sadece
sayı 10’dan 11’e çıkıyor. Slot değişmediği için sistem bunu “yeni item” olarak görmüyor, doğal olarak da parlama gelmiyor.
Yani sorun efektte değil, stack mantığında.
Bunu yapmak için pickup kontrolünü biraz genişletmek gerekiyor. Sadece “yeni slot açıldı mı” diye bakmak yetmiyor,
mevcut slotta sayı arttı mı ona da bakmak lazım.
Mantık şu şekilde ilerliyor:
- Item yerden alındı
- Envanterde aynı item varsa stacklendi
- Stacklenen itemin count değeri arttıysa
- O slot için pickup effect’i elle tetikle
Bunu yaptığında 10’dan 11’e çıktığında da efekt gelir.
Bazı sistemlerde bu tamamen client tarafında packet ile dönüyor. Server stack işlemini yaptıktan sonra client’a “bu slot güncellendi” gibi ekstra bir bilgi gönderiyorsun, client da “yeni mi eski mi” umursamadan efekti oynatıyor. Görsel olarak en temiz çözüm bu oluyor.
Şunu da söylemek lazım, herkesin düştüğü bir hata var:
Her count artışında efekt vermek özellikle oto-pickup açıkken
fazla parlama yapıyor. Ekran sürekli yanıp sönebiliyor. O yüzden çoğu kişi sadece:
- Yerden alınan itemlerde
- Market, trade, depo gibi yerlerden gelenlerde değil
şeklinde sınır koyuyor.
Bazıları stack itemi önce ayrı slotmuş gibi gösterip sonra tekrar birleştiriyor ama bu yöntem hem envanteri zıplatıyor hem de ileride saçma buglar çıkarıyor. Pek sağlıklı değil.
Özetle:
- Pickup effect yeni slot mantığıyla çalışıyor
- Stack itemde yeni slot yok, sadece sayı artıyor
- Çözüm, sayı artışını da pickup olarak kabul etmek
Bunu eklediğinde BK olsun, artı taşı olsun, stacklenen her şeyde parlama sorunsuz çalışır.