Martsama 5.8 üzerinde çalışıyorum fakat ortalama saatte bir oyun kapanıyor ve "0212 00:43:29992 :: Unknown packet header: 236, last: ...." hatası alıyorum.
236 numaralı paket bulunmuyor. Server packet.h, Client packet.h ve PythonNetworkStreamPhaseGame.cpp yüklüyorum, müsait olup da bakabilen olursa sevinirim, şimdiden teşekkür ederim
Merhaba,
Bu tip hata genelde
Metin2 tarafında client ile server arasında paket uyumsuzluğu olduğunda ortaya çıkıyor. Oyunun uzun süre sorunsuz çalışıp, belli aralıklarla kapanması da aslında bunu net şekilde gösteriyor.
Unknown packet header: 236 hatası, server’ın client’a 236 numaralı bir paket gönderdiğini ama client’ın bu paketi tanımadığını ifade eder. Senin de söylediğin gibi packet.h içinde böyle bir numara görünmüyorsa, bu paket büyük ihtimalle sonradan eklenmiş bir sistemden ya da arka planda periyodik çalışan bir özellikten geliyor.
Bu tarz paketler her zaman oyuna girer girmez gönderilmez. Bazıları sadece belli sürelerde, event tetiklendiğinde ya da zamanlayıcıyla çalışır. O yüzden oyunun ortalama saatte bir düşmesi oldukça normal bir durum. Genelde otomatik av, sayaçlı sistemler, battle pass benzeri yapılar veya arka planda düzenli kontrol yapan sistemler bu tür paketler gönderir.
Server tarafında sadece packet.h’ye bakmak yetmez. Paket bazen farklı bir enum içinde ya da packet_info.cpp, input_main.cpp, char.cpp gibi dosyalarda tanımlı olabilir. O paketin client tarafında da karşılığı olmak zorunda. Client’ta sadece packet.h değil, PythonNetworkStreamPhaseGame.cpp içinde de bu paketi karşılayan bir bölüm olması gerekir.
Bir diğer ihtimal de client binary’nin eski kalmasıdır. Server source güncellenip yeniden derlenmiş ama client binary yenilenmemişse, nadiren kullanılan paketlerde bu tür kopmalar yaşanır.
En sağlıklı yol, hata aldığın anın hemen öncesindeki server loglarını incelemek. Hata gelmeden önce hangi sistem çalışmış, hangi fonksiyon tetiklenmiş buna bakarsan 236 numaralı paketin nereden geldiğini daha rahat yakalarsın.
Kısaca özetlersek; bu Martsama 5.8’e özgü bir hata değil. Server tarafında aktif olan ama client tarafında karşılığı olmayan bir paket var. Bu paketi gönderen sistemi bulup, client tarafına doğru şekilde eklediğinde sorun ortadan kalkacaktır.