EMEK SERVERİMDE BAŞIMA GELEN Bİ HATAYDI OYUNCULAR SÜREKLİ BİNEKLERİN ATTAN DAHA AZ VURDUGUNU SAVUNUYORLARDI VE DOĞRUYDU
char.cpp içerisini açıyoruz
BUL:
void CHARACTER::ComputePoints()
Kod:
içinde bul if (IsPC()) { #ifdef ENABLE_MOUNT_COSTUME_SYSTEM if (GetMountVnum() && !GetWear(WEAR_COSTUME_MOUNT)) #else if (GetMountVnum()) #endif { if (GetHorseST() > GetPoint(POINT_ST)) PointChange(POINT_ST, GetHorseST() - GetPoint(POINT_ST)); if (GetHorseDX() > GetPoint(POINT_DX)) PointChange(POINT_DX, GetHorseDX() - GetPoint(POINT_DX)); if (GetHorseHT() > GetPoint(POINT_HT)) PointChange(POINT_HT, GetHorseHT() - GetPoint(POINT_HT)); if (GetHorseIQ() > GetPoint(POINT_IQ)) PointChange(POINT_IQ, GetHorseIQ() - GetPoint(POINT_IQ)); } } BU ŞEKLE ÇEVİR if (IsPC()) { if (GetMountVnum()) { if (GetHorseST() > GetPoint(POINT_ST)) PointChange(POINT_ST, GetHorseST() - GetPoint(POINT_ST)); if (GetHorseDX() > GetPoint(POINT_DX)) PointChange(POINT_DX, GetHorseDX() - GetPoint(POINT_DX)); if (GetHorseHT() > GetPoint(POINT_HT)) PointChange(POINT_HT, GetHorseHT() - GetPoint(POINT_HT)); if (GetHorseIQ() > GetPoint(POINT_IQ)) PointChange(POINT_IQ, GetHorseIQ() - GetPoint(POINT_IQ)); } }
COSTUME_MOUNT AZ VURUYOR HATASI
Metin2 özel sunucularında geliştirme yaparken karşılaşılan hatalardan birisi de COSTUME_MOUNT sisteminde az hasar verilmesidir. Bu durum, oyuncuların kostüm mount (canavar mount) sistemini kullanırken beklentileri doğrultusunda vuruş yapamamasına neden olabilir. Bu yazıda, bu hatanın nedenlerini, nasıl çözüleceğini ve hangi sistem dosyalarının kontrol edilmesi gerektiğini detaylı şekilde ele alacağız.
COSTUME_MOUNT Nedir?
Metin2 oyununda COSTUME_MOUNT, oyuncuların kullandıkları mount sistemine estetik amaçlı olarak giydirilen kostüm sistemidir. Oyuncu bu kostümü giyse de mountun işlevsel özellikleri değişmez. Ancak bazı özel sunucularda yapılmış yanlış entegrasyonlar veya kodlama hataları sonucu bu sistem istenmeyen davranışlar gösterebilir. Bunlardan birisi de az vurma problemidir.
Hatanın Nedenleri
Bu hatanın ortaya çıkmasının birkaç temel sebebi olabilir:
- Mount ve costume sistemleri arasında hasar çoğaltma mantığının yanlış tanımlanması
- Costume mount aktifken item bonusları veya skill değerlerinin doğru aktarılamaması
- Python tarafında costume mount için tanımlanan özel fonksiyonların eksik ya da yanlış çalışması
- Game core içinde mount sistemine ait damage calculation kısmında eksiklikler
Hata Ayıklama Adımları
Bu sorunu çözmek için öncelikle aşağıdaki adımları izlemek gerekir:
1. Client tarafında costume mount aktifken karakterin normal mount gibi davrandığından emin olunur.
2. Py Root içindeki mount ve costume sistemleri kontrol edilir.
3. Game Server Source üzerinde MountManager.cpp ve Character.cpp dosyalarında costume mount ile ilgili fonksiyonlar incelenir.
4. Costume mount aktifken vurus gücü ve skill bonus değerlerinin doğru aktarıldığından emin olunur.
Teknik Çözüm Önerileri
Aşağıda, costume mount sisteminin düzgün çalışması için yapılması gereken bazı teknik düzenlemeler yer almaktadır:
- Python tarafında costume mount aktifken GetStatusPoint ve GetSkillPower fonksiyonlarının doğru çalıştığından emin olunur.
- C++ tarafında ComputeBattlePoints fonksiyonuna costume mount için özel bir kontrol eklenmelidir.
- Item bonuses costume mountta devreye giriyorsa, bu bonusların mount bonuslarıyla çarpılmamasına dikkat edilmelidir.
Sonuç
COSTUME_MOUNT sistemi, Metin2 özel sunucularında popüler bir özelliktir. Ancak bu sistemin düzgün çalışabilmesi için hem client, hem game server hem de python tarafında dikkatli kodlama yapılması gerekir. Az vurma hatası genellikle bu sistemlerin uyumsuzluğundan kaynaklanır. Sistemdeki damage calculation mekanizması doğru ayarlandığında costume mount sistemi normal mount gibi aynı performansı sağlayacaktır.
COSTUME_MOUNT LOW DAMAGE ERROR
One of the issues encountered during development on Metin2 private servers is low damage dealt when using the COSTUME_MOUNT system. This issue causes players not to deal expected damage while using costume mounts (monster mounts). In this article, we will discuss the reasons behind this error, how to fix it, and which system files need to be checked in detail.
What is COSTUME_MOUNT?
In Metin2, COSTUME_MOUNT is an aesthetic addition to the mount system worn by players. While wearing the costume, the functional features of the mount remain unchanged. However, incorrect integrations or coding errors on some private servers may cause unexpected behaviors from this system, including the low damage issue.
Causes of the Error
There are several potential causes for this error:
- Incorrect definition of damage multiplication logic between mount and costume systems
- Failure to correctly transfer item bonuses or skill values when costume mount is active
- Missing or incorrectly functioning costume mount functions in Python side
- Deficiencies in damage calculation section of game core related to mount system
Debugging Steps
To resolve this issue, follow these steps:
1. Ensure that the character behaves like a normal mount while costume mount is active on the Client side.
2. Check mount and costume systems inside Py Root.
3. Examine functions related to costume mount in MountManager.cpp and Character.cpp files in the Game Server Source.
4. Verify that attack power and skill bonus values are properly transferred when costume mount is active.
Technical Solution Suggestions
Below are some technical adjustments required for the costume mount system to work properly:
- Ensure that GetStatusPoint and GetSkillPower functions work correctly in Python when costume mount is active.
- Add a special check for costume mount within the ComputeBattlePoints function in C++.
- Ensure that item bonuses do not multiply with mount bonuses when applied during costume mount usage.
Conclusion
The COSTUME_MOUNT system is a popular feature in Metin2 private servers. However, proper coding on both client, game server, and python sides is required for it to work correctly. The low damage error usually stems from incompatibilities between these systems. When the damage calculation mechanism is adjusted properly, the costume mount system will deliver the same performance as a regular mount.
