Bu durum item_proto’dan değil, tamamen
affect’in kaydedilip kaydedilmemesinden oluyor. Yüzüğü takınca sol üstte görünmesi ve etkisinin çalışması normal. Map değiştirince kaybolmasının sebebi şu: karakter başka haritaya geçerken yeniden yükleniyor ve bu yüzüğün bastığı affect, DB’ye yazılmadığı için geri gelmiyor. O yüzden ikon da gidiyor, etki de sıfırlanıyor.
Senin satırdaki şu kısım işi anlatıyor:
510 66 50 604800
Yani yüzük 510 numaralı affect’i basıyor ve 7 gün süre veriyor. Ama bu 510, server tarafında “save edilmesin” listesine takılıyor gibi duruyor.
Bakman gereken yerler:
- game/src/char_affect.cpp içinde SaveAffect / LoadAffect bölümü
- Bazı sourcelarda affect.h veya char.h içinde “şu affectleri kaydetme” diye macro/liste olur (IS_NO_SAVE_AFFECT gibi)
Orada genelde şöyle bir kontrol olur: bazı buff’lar geçici sayıldığı için “DB’ye yazma” diye filtrelenir. Senin 510 da muhtemelen o filtreden geçemiyor. Yapacağın şey 510’u o “kaydetme” kısmından çıkarmak ya da 510 için kaydetmeye izin vermek.
Hızlı test de şu: yüzüğü aç, sonra DB’de player.affect (veya sende hangi tabloysa) içine bak. 510 kayıt düşmüyorsa zaten map değişince gitmesi normal.
Özet: bu yüzüğün etkisi map değişince gitmesin istiyorsan, 510 numaralı affect’in
save edilmesini sağlaman gerekiyor.