Merhaba TURKMMO,
Fixlenecek bug sadece 40k [SOURCE] uyumludur.
Screenshot:
Bug Bilgi;
Fixlenecek bug sadece 40k [SOURCE] uyumludur.
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
arkadaşımıza teşekkürler.Screenshot:
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
'denBug Bilgi;
Bugumuz takılan binek nesnelerinin sağ tıklayıp, ctrl+g uyguladıyıp indiğimiz veya öldüğümüz zaman, envanterimize çıkmamasını binek üzerinde olmadığımız halde takılı kalmasını fixliyecek kodlar;
Game / Src
cmd_general.cpp açılır
Kod:
ACMD(do_unmount)
Aratılır.. ve alttaki kodla değiştirilir.
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Kod:
ACMD(do_unmount) { LPITEM item = ch->GetWear(WEAR_UNIQUE1); LPITEM item2 = ch->GetWear(WEAR_UNIQUE2); if (item && item->IsRideItem()) { ch->UnequipItem(item); } if (item2 && item2->IsRideItem()) { ch->UnequipItem(item2); } if (true == ch->UnEquipSpecialRideUniqueItem()) { ch->RemoveAffect(AFFECT_MOUNT); ch->RemoveAffect(AFFECT_MOUNT_BONUS); if (ch->IsHorseRiding()) { ch->StopRiding(); } } else { ch->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("Àκ¥Å丮°¡ ²Ë Â÷¼* ³»¸± ¼ö ¾ø½À´Ï´Ù.")); } }
char_battle.cpp açılır
RemoveAffect(AFFECT_MOUNT_BONUS);
Aratılır ve alttaki kod altına eklenir.
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Kod:
LPITEM item = GetWear(WEAR_UNIQUE1); LPITEM item2 = GetWear(WEAR_UNIQUE2); if (item && item->IsRideItem()) { UnequipItem(item); } if (item2 && item2->IsRideItem()) { UnequipItem(item2); }
Not: Hata alırsanız lütfen cevap atınız.
Metin2 Binek Sistemi Hataları ve Ctrl+G / Kill > MOUNT BUG Giderme Rehberi
Metin2 özel sunucularında binek sisteminin doğru çalışması, oyuncu deneyimi açısından büyük önem taşır. Ancak geliştiriciler bazen binek kullanımında bazı hatalarla karşılaşabilir. Bu rehberde Ctrl+G veya Kill > MOUNT BUG olarak bilinen hatayı ele alacağız ve çözüm yollarını detaylıca inceleyeceğiz.
Hatanın Tanımı
Bu hata, oyuncu bir bineğe bindikten sonra bineği öldürdüğünde ya da Ctrl+G tuş kombinasyonunu kullandığında ortaya çıkar. Normalde binekten inilmesi gerekirken, oyuncu binekten inemeyebilir veya binek görünür durumda kalabilir. Bu durumda oyuncu binek animasyonuyla hareket eder ama binek görünmez halde kalmıştır. Bu hata genellikle C++ kökenli bir sunucu hatasıdır ve game server programming kapsamında çözülmesi gerekir.
Hatanın Kaynağı
Bu hata genellikle MountManager.cpp veya char.cpp gibi dosyalarda eksik veya hatalı kodlardan kaynaklanır. Özellikle Unmount() fonksiyonu eksik ya da yanlış implement edilmişse bu tür hatalar oluşabilir. Ayrıca Python GUI tarafında binek ile ilgili kontrol mekanizmaları eksikse, bu da soruna yol açabilir.
Hatanın Giderilmesi
1. Sunucu tarafında game/src/char.cpp dosyasında Unmount() fonksiyonunun doğru çalıştığından emin olun. Bu fonksiyon, karakterin binekten inmesi gerektiğini belirtmelidir.
2. MountManager.cpp dosyasında binek silme ve karakterle olan bağlantının kesilme işlemleri kontrol edilmelidir. RemoveMount() fonksiyonu eksik olmamalıdır.
3. Ayrıca, oyuncu binek üzerindeyken die() fonksiyonu çağrıldığında binek otomatik olarak kaldırılmalıdır. Bu işlem char_battle.cpp[/BR][/BR]dosyasında yapılabilir.
4. Client/src/uiscript/ dizininde binekle ilgili arayüz dosyalarında da hata kontrolü yapılmalıdır. Özellikle Python GUI üzerinden binek kaldırma komutları doğru yönlendirilmelidir.
Test ve Doğrulama
Yaptığınız değişikliklerden sonra, test sunucusunda farklı senaryolarla bu hatayı tekrarlamayı denemelisiniz. Oyuncu bineğe binip Ctrl+G tuşuna bastığında binekten inebilmeli ve binek görünümü tamamen kaldırılmalıdır. Aynı şekilde binek öldürüldüğünde karakter binekten inmiş olmalıdır.
Sonuç
Metin2 özel sunucularında binek sistemleri oldukça kritik bir özelliktir. Ctrl+G veya Kill > MOUNT BUG gibi hatalar, oyuncu deneyimini ciddi şekilde etkileyebilir. Bu nedenle C++ tabanlı sunucu geliştirme yaparken bu tür hataların temel sebeplerini iyi analiz etmek ve doğru kodlamalarla çözmek büyük önem taşır. Metin2 Lobby olarak bu tarz sistem hatalarını çözme konusunda size yardımcı olmaya devam edeceğiz.
Metin2 Mount System Bugs and How to Fix Ctrl+G / Kill > MOUNT BUG
In Metin2 private servers, the proper functioning of the mount system is crucial for player experience. However, developers may sometimes encounter certain bugs related to mounts. In this guide, we will address the bug known as Ctrl+G or Kill > MOUNT BUG and explore detailed solutions.
Definition of the Bug
This bug occurs when a player kills their mount after riding it, or uses the Ctrl+G key combination. Instead of dismounting properly, the player might remain visually mounted or the mount may disappear while the character still behaves as if mounted. This issue typically stems from a C++ server-side error and must be resolved within game server programming.
Root Cause of the Bug
This bug often originates from missing or incorrect code in files like MountManager.cpp or char.cpp. Especially if the Unmount() function is incomplete or incorrectly implemented, such errors can occur. Additionally, if mount-related control mechanisms are missing on the Python GUI side, that could also cause this issue.
How to Fix the Bug
1. Ensure that the Unmount() function in game/src/char.cpp works correctly. This function should ensure that the character dismounts properly.
2. In the MountManager.cpp file, verify that operations related to removing the mount and severing its connection with the character are handled. The RemoveMount() function must not be missing.
3. Additionally, when the die() function is called while the player is mounted, the mount should be automatically removed. This operation can be handled in the char_battle.cpp file.
4. Also, check mount-related UI files in Client/src/uiscript/ for potential errors. Particularly, mount removal commands via Python GUI should be properly directed.
Testing and Verification
After making your changes, you should attempt to reproduce the bug under various scenarios on a test server. When a player rides a mount and presses Ctrl+G, they should properly dismount and the mount's visual representation should fully disappear. Similarly, when a mount is killed, the character should dismount immediately.
Conclusion
In Metin2 private servers, the mount system is a critical feature. Bugs like Ctrl+G or Kill > MOUNT BUG can significantly affect player experience. Therefore, when doing C++-based server development, analyzing the root causes of such issues and resolving them with correct coding practices is essential. As Metin2 Lobby, we will continue to assist you in resolving these kinds of system errors.
