Bu anlattığın durum şu tabloya uyuyor:
- Reboot sonrası eski hesaplar:
- Bineğe tıklıyorsun, tepki yok.
- CTRL+G yapınca binek envanteri bile açılmıyor.
- Yeni açılan hesaplar:
- CTRL+G geliyor, binek envanterine takılıyor, sorunsuz biniyor.
Bu da bize şunu söylüyor:
Sorun client’ten değil,
eski karakterlerin DB/quest tarafındaki binek kayıtlarından kaynaklanıyor. Yani sistem çalışıyor ama eski hesapların binekle ilgili flag/kolonları bozulmuş veya sıfırlanmış.
Şunlara bir bakmanı öneririm:
1) Sorunlu hesapların ortak noktası
Önce şunu test et:
- Reboot’tan önce açılan tüm hesaplarda mı problem var?
- Reboot’tan sonra açılan hiçbir hesapta sorun yok mu?
Cevap “evet” ise, neredeyse kesin:
- Ya player tablosuna / mount tablosuna bir kolon eklendi,
- Ya da binek questinde değişiklik yapıldı
ve eski kayıtlar buna uyum sağlamadı.
2) Binek / at questlerini resetlemeyi dene
Eski hesaplardan birini seçip, o karakter üzerinde deneme yap:
- At/binek ile ilgili questleri sıfırlayıp tekrar başlatmayı dene.
- Bazı paketlerde mount, ride, horse_xxx isimli questler oluyor; bunların flagleri bozulunca sistem karakteri “binek yokmuş” gibi görüyor.
Klasik yöntem:
- Bir karakterde bu questleri silip yeniden çalıştır,
- Sonra oyuna girip CTRL+G ve binek itemini tekrar dene.
Düzelirse, diğer hesaplar için de aynı mantıkla toplu bir SQL/quest tarafı temizliği yapman gerekecek.
3) DB tarafını kontrol et (player / mount ile ilgili kolonlar)
Kullandığın files’te binek sistemi;
- ya player.player tablosunda ekstra kolonlar üzerinden,
- ya da ayrı bir mount / riding benzeri tablo üzerinden çalışıyor.
Reboot’tan önce bir ALTER, import, backup geri dönme vs yaptıysan:
- Eski karakterlerin satırlarında binek ile ilgili alanlar NULL / 0 olabilir,
- Yeni açılan hesaplar ise default değerlerle geldiği için sorunsuz çalışır.
Yapman gereken:
- Sorunsuz çalışan yeni bir hesabın DB kaydına bak,
- Sorun yaşayan eski bir hesapla yan yana karşılaştır,
- Binek/at ile ilgili kolonlarda bariz fark göreceksin.
(Biri dolu, diğeri 0/NULL gibi.)
Bu farkı yakaladıktan sonra:
- Eski hesaplar için aynı değeri set eden bir UPDATE çekerek problemi çözebilirsin.
4) Syserr’e yine de bir göz at
Her ne kadar “hata vermiyor” desen de server syserr’de bazen şuna benzer satırlar düşebiliyor:
- invalid mount vnum
- Cannot create ride
- POINT_MOUNT … tarzı uyarılar
Binek itemine tıklarken veya CTRL+G yaparken syserr’e bakarsan, ufak bir ipucu bile işimizi çok kolaylaştırır.
Özetle:
- Client’te bir problem yok,
- Binek sistemi de çalışıyor,
- Takılan kısım tamamen eski hesapların binek/quest kayıtlarının yeni sistemle uyuşmaması.
Önce bir karakter üzerinde quest reset + DB karşılaştırma yap, düzelirse gerisi toplu işlem. İstersen bir sorunlu hesabın player satırını (binekle ilgili kolonlar sansürlü de olur) ve kullandığın binek questini paylaşırsan, nereden kırıldığını daha net söyleyebilirim.
Umarım yaşadığın sorunu çözmene yardımcı ola bilmişimdir iyi forumlar dilerim.