Işınlanma Sırasında Oyundan Atma Sorunu ve Çözüm Yöntemim
Herkese merhaba,
Metin2 client üzerinde fark ettiğim bir durumu ve çözümünü sizlerle paylaşmak istiyorum.
Oyunda ışınlanma işlemi sırasında CTRL + G, CTRL + H gibi bir kısayola bastığınızda veya SendChatPacket
komutu çalıştıran herhangi bir eylemi tetiklediğinizde, istemci sizi otomatik olarak oyundan atıyor.
Örneğin, ben CTRL + H tuş kombinasyonunu kullandım ve SendChatPacket
fonksiyonunu tetikledim. Bu işlem sonucunda karakter anında oyundan düştü.
Bu durumu analiz ettikten sonra, kendimce bir çözüm geliştirdim. Çözüm, gönderilen komutları belirli bir koşula bağlamak ve bu koşulu ışınlanma esnasında devre dışı bırakmak üzerine kurulu. Böylece SendChatPacket
fonksiyonu ışınlanma sırasında istemciyi zorlamıyor ve oyun dışına atma problemi ortadan kalkıyor.
Bu noktada şunu da belirtmek isterim: ClientCommand
fonksiyonunun Ymir tarafından eksik bırakılmış ya da tam anlamıyla uygulanmamış olduğunu düşünüyorum. Yapının genel davranışı, tamamlanmamış bir komut sistemine işaret ediyor.
Ek olarak birkaç farklı yöntem daha denedim. Her biri sorunu çözse de bu yöntemin en kararlı ve sade çözüm olduğuna karar verdim. Hem performans hem de stabilite açısından daha verimli çalıştığını gözlemledim.
Bu çözümü sizlerin de değerlendirmesine sunuyorum. Umarım benzer sorun yaşayanlara faydalı olur.
Saygılarımla.
Bu sürümle birlikte:
-
Geçiş kelimeleri eklendi.
-
Pasif cümleler azaltıldı.
-
Paragraflar mantıksal bütünlükle ayrıldı.