Merhaba dostlarım bu konu daha önce paylaşılmış ancak vereceğim anlatım eğer dikkatli bakılırsa farklı. Bazıları o konudakilerini yapmasına rağmen çözememiş birde böyle denemenizi tavsiye ediyorum. Umarım işinize yarar iyi forumlar dilerim.
Game sourcede bulunan input_main.cpp açılır ;
DEĞİŞTİR :
İdeal Olanı (Tavsiye Edilen) :
Game sourcede bulunan input_main.cpp açılır ;
Kod:
if (((false == ch->IsRiding() && fDist > 25) || fDist > 40) && OXEVENT_MAP_INDEX != ch->GetMapIndex())
DEĞİŞTİR :
Kod:
if (((false == ch->IsRiding() && fDist > 750) || fDist > 999) && OXEVENT_MAP_INDEX != ch->GetMapIndex())
İdeal Olanı (Tavsiye Edilen) :
Kod:
if (((false == ch->IsRiding() && fDist > 30) || fDist > 60) && OXEVENT_MAP_INDEX != ch->GetMapIndex())
HappyClaws - Bineklerin Koşarken Geriye Atma Sorunu Fix
Metin2 özel sunucularında geliştirme yaparken binek sistemleri üzerinde çalışan geliştiriciler zaman zaman bazı hatalarla karşılaşabilir. Bunlardan birisi de bineklerin koşarken oyuncuyu geriye atma problemidir. Bu durum genellikle HappyClaws adı verilen bir sistemle ilişkilendirilir. Bu sistem, Metin2 oyununda bineklerin hareketlerini düzenlemek ve daha akıcı hale getirmek için geliştirilmiştir. Ancak bazen bu sistemde meydana gelen küçük eksiklikler, oyuncuların bineklerden düşmesine neden olabilmektedir.
Fix Nedir?
Bu sorunun çözümü, genellikle game_core üzerinde yapılan küçük değişikliklerle sağlanır. Özellikle client_src ve game modüllerinde yer alan binek sınıflarının kontrol edilmesi gerekir. Bu sınıfların koordinat güncellemeleri ve senkronizasyon süreçleri incelenmelidir. Oyuncu ve binek arasında zaman farkı oluşması, bu gibi durumlarda düşüşe sebep olabilir.
Nasıl Uygulanır?
Öncelikle C++ kaynak kodları üzerinden horse_riding.cpp ve benzeri dosyalarda yer alan fonksiyonlar gözden geçirilmelidir. Özellikle horse_rider_update gibi fonksiyonlarda zamanlayıcı ve pozisyon senkronizasyonları kontrol edilmelidir. Oyuncu binek üzerindeyken, bineğin hızı ile oyuncu konumu arasında bir uyumsuzluk varsa, bu sorun yaşanacaktır. Bu uyumsuzluk giderildiğinde, oyuncuların binekten düşmesi engellenmiş olacaktır.
Python Tarafında Desteği
PyRoot tarafında da binek sistemleriyle ilgili kontroller yapılmalıdır. Özellikle uiscript ve py_gui ile binek durumu kontrol edilmeli ve kullanıcı arayüzünde binek ile ilgili veriler doğru şekilde aktarılmalıdır. Eğer GUI üzerinden binek bilgileri eksik veya hatalı aktarılırsa, bu da senkronizasyon sorunlarına yol açabilir.
Test Süreci ve Gözlemler
Fix uygulandıktan sonra, binek sistemleri üzerinde kapsamlı testler yapılmalıdır. Martysama gibi test ortamlarında, farklı koşu senaryoları ile oyuncu-binek senkronizasyonu test edilmelidir. Özellikle PvP alanlarında bu tür hatalar daha çok dikkat çeker çünkü hızlı hareketler bu sistem üzerinde ekstra yük oluşturur. Testler sonucunda düşüş oranı sıfıra yakın seviyeye indirilebilir.
Sonuç
HappyClaws fixi, Metin2 özel sunucularında binek sistemlerinin daha stabil ve güvenli çalışmasını sağlar. Geliştiricilerin dikkat etmesi gereken en önemli konulardan birisi de koordinat ve senkronizasyon uyumudur. Bu fix sayesinde oyuncuların binekten düşmesi engellenir ve oyun deneyimi ciddi anlamda artırılır. Metin2 Lobby olarak bu tür gelişmeleri takip ediyor ve geliştiriciler için rehberler hazırlamaya devamlıyoruz.
HappyClaws - Fix for Mounts Throwing Player Back While Running
While developing on Metin2 private servers, developers working on mount systems may occasionally encounter certain bugs. One of these issues is the problem of mounts throwing players off while running. This issue is often associated with a system called HappyClaws. This system was developed to regulate and make the movements of mounts more fluid in the Metin2 game. However, sometimes small glitches within this system can cause players to fall off their mounts.
What is the Fix?
The solution to this problem is usually achieved by making minor changes to the game_core. In particular, the mount classes located in the client_src[/BR] and game modules should be examined. The coordinate updates and synchronization processes of these classes must be reviewed. A time discrepancy between the player and the mount may lead to such falls.
How to Apply?
Firstly, functions in files like horse_riding.cpp should be reviewed from the C++ source code. Specifically, timing and position synchronization in functions like horse_rider_update should be checked. If there is a mismatch between the speed of the mount and the player's position while the player is mounted, this issue will occur. When this mismatch is resolved, players falling off their mounts will be prevented.
Python Side Support
Checks related to mount systems must also be performed on the PyRoot side. Especially, mount status should be checked via uiscript and py_gui, and mount-related data must be correctly transmitted to the user interface. If mount information is transferred incompletely or incorrectly through GUI, this could also lead to synchronization issues.
Testing Process and Observations
After applying the fix, comprehensive tests should be conducted on the mount systems. In testing environments like Martysama, player-mount synchronization should be tested with various running scenarios. Especially in PvP areas, such errors are more noticeable because fast movements create extra load on the system. As a result of the tests, the fall rate can be reduced to near zero.
Conclusion
The HappyClaws fix ensures that mount systems operate more stably and securely on Metin2 private servers. One of the most important aspects developers need to pay attention to is the harmony of coordinates and synchronization. With this fix, players falling off their mounts are prevented, significantly enhancing the gameplay experience. Metin2 Lobby continues to follow such developments and prepare guides for developers.
