Karakterler belli bir koşma hızına gelince karakteri geri atar hah işte onun çözümü (Bütün Karakter İçin Geçerli)

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 52

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Azönce doğruladım bu yol yanlış arkadaşlar
Bay axseee'ye doğrulamamda yardımcı olduğu için buradan teşekkür ediyorum :)

case POINT_MOV_SPEED:
min_limit = 0;

if (IsPC())
limit = 200; <---- Max 255 yapabilirsiniz !
Eğer daha üstünü yaparsanız core hesaplayamaz bilginize sunulur​

Metin2 Karakter Hızı ve Geri Atma Sorunu Nedir?
Metin2 özel sunucularında geliştirme yaparken birçok geliştirici, karakterlerin belirli bir koşma hızına ulaştığında geri atma sorunuyla karşılaşabilir. Bu durum hem oyuncu deneyimini düşürür hem de sunucunun stabilitesini etkileyebilir. Bu yazıda, bu problemi detaylı olarak ele alacak ve tüm karakterler için geçerli olan kalıcı bir çözüm sunacağız.

Sorunun Temeli
Metin2 oyununda karakterlerin hareketi, istemci ile sunucu arasında gönderilen verilerle sağlanır. Ancak belirli bir koşma hızına ulaşıldığında, istemci tarafında hesaplanan pozisyon ile sunucu tarafında tutulan pozisyon arasında fark oluşabilir. Bu fark, sunucunun karakteri önceki konumuna geri çekmesine neden olur. Bu durum genellikle yüksek ping'e sahip oyuncularda ya da hız artırıcı sistemler kullanıldığında daha sık görülür.

Tüm Karakterler İçin Genel Bir Çözüm
Bu sorun, sadece belirli bir sınıfa değil, tüm karakter sınıflarında görülebilir. Bu nedenle çözüm de evrensel olmalıdır. Çözüm, hem game sunucusu hem de istemci tarafında bazı ayarlamalar yapılmasını gerektirir.

Sunucu Tarafında Uygulanması Gereken Değişiklikler
Öncelikle, game/core dosyalarında bulunan karakter hareket mekanizmasının gözden geçirilmesi gerekir. Özellikle movement.cpp ve char_movement.cpp dosyalarında hız kontrol algoritmaları incelenmeli ve gerekirse yeniden yazılmalıdır. Sunucu tarafında, istemciden gelen koordinatlar kontrol edilirken, izin verilen maksimum hız limiti ayarlanmalıdır. Bu, karakterin gerçekçi bir şekilde hareket etmesini sağlarken, hileli hızlanmaları da engeller.

İstemci Tarafında Ayarlamalar
İstemci tarafında ise, uiscript ve root klasörlerindeki hareket fonksiyonları üzerinde çalışmak gerekir. Özellikle playerSetting.py gibi dosyalarda hız parametreleri doğrudan ayarlanabildiği için burada dikkatli olunmalıdır. Oyuncunun hızını artıran item veya buff sistemleri, sunucu ile senkronize çalışacak şekilde yeniden yapılandırılmalıdır. Bu sayede karakterlerin hızı artsa bile, sunucu tarafından yasadışı hareket olarak algılanmaz.

Sunucu-İstemci Senkronizasyonu
Bu tür bir sorunun kalıcı çözümü için sunucu ile istemcinin uyumlu çalışması şarttır. Her iki tarafın da aynı protokolü kullandığından emin olunmalıdır. Özellikle auth ve game sunucuları arasında veri akışı doğru yapılandırılmadığında, bu tür sorunlar ortaya çıkabilir. Veri gönderim aralıkları (tick rate), karakter pozisyonu güncelleme frekansı gibi ayarlarda denge kurmak önemlidir.

Python ve C++ Entegrasyonu
Metin2 geliştirme sürecinde Python tabanlı GUI sistemlerin (py GUI) ve C++ tabanlı kaynak kodların birlikte kullanılması oldukça yaygındır. Hareket sistemi gibi kritik alanlarda, Python ile yazılmış komutlar C++ ile entegre çalışarak daha stabil çözümler üretebilir. Örneğin, hareket sırasında hız kontrolünü sağlayan bir Python modülü, C++ tabanlı core sistemiyle entegre edilerek daha verimli çalışabilir.

Test ve Debug Süreci
Yaptığınız değişikliklerin etkinliğini test etmek için farklı hız değerlerinde test sunucuları çalıştırmak faydalı olacaktır. Ayrıca loglama sistemleri ile karakterlerin hareket verileri izlenebilir ve anormal davranışlar yakalanabilir. DB Core üzerinden bu verilerin analizi yapılabilir. Bu sayede, hatalar erken aşamada tespit edilip düzeltilir.

Sonuç
Karakterlerin belirli bir koşma hızına geldiğinde geri atma sorunu, Metin2 özel sunucularında sıkça karşılaşılan ve doğru teknik bilgiyle çözülebilecek bir sorundur. Sunucu ve istemci uyumu, doğru hız kontrol algoritmaları ve veri senkronizasyonu ile bu sorun kalıcı olarak ortadan kaldırılabilir. Geliştiricilerin bu konuda dikkatli ve titiz davranması, kullanıcı dostu ve adil bir oyun ortamı oluşturmak açısından büyük önem taşır.


What Is The Character Speed And Rollback Issue In Metin2?
While developing Metin2 private servers, many developers encounter an issue where characters are rolled back to a previous position when reaching a certain running speed. This issue reduces player experience and affects server stability. In this article, we will examine this problem in detail and provide a permanent solution applicable to all character classes.

Root Of The Problem
Character movement in Metin2 relies on data transmitted between the client and the server. However, when a certain running speed is reached, discrepancies may occur between the position calculated by the client and the one stored on the server. This discrepancy causes the server to pull the character back to its previous location. This usually occurs more frequently with players having high ping or when using speed-increasing systems.

Universal Solution For All Characters
This issue is not limited to a specific class but can appear across all character classes. Therefore, the solution must be universal. It requires adjustments both on the game server and the client side.

Server-Side Changes Required
Firstly, the character movement mechanism found in game/core files should be reviewed. Files such as movement.cpp and char_movement.cpp should be examined and potentially rewritten. On the server side, when validating coordinates received from the client, the maximum allowed speed threshold should be set. This ensures realistic movement while preventing cheating attempts through excessive speed boosts.

Client-Side Adjustments
On the client side, work must be done on movement functions located within the uiscript and root folders. Since speed parameters can be directly adjusted in files like playerSetting.py, care must be taken here. Systems that increase player speed must be restructured to operate in sync with the server. This way, even if a character's speed increases, it won't be flagged as illegal movement by the server.

Server-Client Synchronization
For a permanent fix to such issues, harmony between the server and client is essential. Both sides must follow the same protocol. If data flow between auth and game servers isn't properly configured, these types of problems can arise. Balancing data transmission intervals (tick rate) and character position update frequency is crucial.

Python And C++ Integration
In Metin2 development, using both Python-based GUI systems (py GUI) and C++-based source code is common. For critical systems like movement, Python-based modules controlling speed can be integrated with the C++-based core system for more stable solutions. For example, a Python module managing speed during movement can be integrated with the C++ core for enhanced efficiency.

Testing And Debugging Process
To validate your changes, it’s beneficial to run test servers with different speed values. Additionally, logging systems can track character movement data and detect abnormal behaviors. Analysis of this data can be done via the DB Core. This allows errors to be identified and corrected early on.

Conclusion
The issue of characters rolling back upon reaching a certain running speed is a frequent and solvable problem in Metin2 private servers. With proper server-client synchronization, correct speed control algorithms, and data coordination, this issue can be permanently resolved. Careful and meticulous attention by developers in this area is vital for creating a user-friendly and fair gaming environment.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Geri
Üst Alt