Bu durum senin bir şeyi yanlış yapmandan değil, oyunun çalışma mantığından kaynaklanıyor. O yüzden ne yaparsan yap pointer’ın her seferinde ???’ye dönmesi çok normal.
Metin2 ve özellikle PvP client’larda bellek tamamen dinamik. Client her açıldığında, bazen kanal değiştirince hatta map değiştirince bile adresler yeniden oluşturuluyor. Cheat Engine pointer scan sabit bir base + offset ister. Ama senin yakaladığın adresler genelde geçici alanlardan geliyor. Bu alanlar temizlendiği anda CE pointer’ı kaybediyor ve soru işaretine düşüyor.
Şunu da net söyleyeyim: PvP client’larda gerçek anlamda kalıcı pointer bulmak çoğu zaman mümkün değil. HP gibi ana karakter struct’larında bazen tutulur ama damage, speed, delay gibi değerlerde pointer’la uğraşmak boşa zaman olur. O yüzden pointer tarayıp saatlerce uğraşan çok kişi var ama sonuç değişmiyor.
PvP’lerde işini kolaylaştıran yöntem pointer değil. En çok kullanılan yol AOB taraması. Yani değeri değil, o değeri işleyen byte dizisini buluyorsun. Client her açıldığında o byte dizisi yer değiştirse bile tekrar bulunabiliyor. Bu yüzden ??? gibi bir problem olmaz.
Bir diğer yaygın yol da CE script kullanmak. Burada pointer tutmaya çalışmazsın, direkt ilgili kodu hooklarsın. Damage hesaplayan yer, hız kontrolü yapan kısım gibi noktalar sabit olduğu için çok daha stabil çalışır. Zaten kalıcı cheat’lerin büyük kısmı bu mantıkla yazılır.
Eğer client python tabanlı ve dosyalar açıksa, CE ile uğraşmak yerine python tarafını düzenlemek çok daha temiz olur. Relog’da bozulmaz, pointer derdi olmaz.
Özetle: pointer’ın sürekli boşa düşmesi normal. PvP’lerde kalıcı çözüm pointer değil. AOB ya da script mantığına yönelmen gerekiyor.