Merhaba değerli TURKMMO halkı
Konunun başlığında da belirtiğim gibi farklı bayraklara
ışınlanırken NPC 'lerin veya PET 'lerin üstünde o bayrağa ait
bayrak efekti (resmi) var istiyenler aşağıdaki işlemleri yaparak kaldırabilirler.
InstanceBaseEffect.cpp
ARAT[/FONT]
voidCInstanceBase::__AttachEmpireEffect(DWORD eEmpire)
ALTINA EKLE
if (IsResource())
DWORD vnum_my_npc = 20406;
if (GetRace() == vnum_my_npc)
return;
wnum_my npc [20406] npc kodudur hangi npc'leri kapatmak istiyorsanız kodunu yazın,
Tektek NPC id'si yazmak yerine tüm NPC ler için geçerli olsun isterseniz, bunu kullanabilirsiniz.
if (IsNPC())
return;
Kanıt;
Konunun başlığında da belirtiğim gibi farklı bayraklara
ışınlanırken NPC 'lerin veya PET 'lerin üstünde o bayrağa ait
bayrak efekti (resmi) var istiyenler aşağıdaki işlemleri yaparak kaldırabilirler.
InstanceBaseEffect.cpp
ARAT[/FONT]
voidCInstanceBase::__AttachEmpireEffect(DWORD eEmpire)
ALTINA EKLE
if (IsResource())
DWORD vnum_my_npc = 20406;
if (GetRace() == vnum_my_npc)
return;
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
wnum_my npc [20406] npc kodudur hangi npc'leri kapatmak istiyorsanız kodunu yazın,
Tektek NPC id'si yazmak yerine tüm NPC ler için geçerli olsun isterseniz, bunu kullanabilirsiniz.
if (IsNPC())
return;
Kanıt;
Metin2 Sunucularında C++ ile NPC ve Pet Krallık Bayrağı Gizleme Sistemi
Metin2 özel sunucularında oyun deneyimini artırmak ve görsel kirliliği azaltmak için bazı sistemsel değişiklikler yapmak oldukça yaygın bir uygulamadır. Bu makalede, C++ programlama dili kullanarak NPC ve Pet nesnelerinin krallık bayrağını gizlemeyi ele alacağız. Bu işlem, hem oyun içi performansı artırabilir hem de oyuncu deneyimini daha estetik ve odaklı hale getirebilir.
NPC ve Pet Sistemleri Nedir?
NPC (Non-Player Character), oyuncunun kontrolü dışında olan karakterlerdir. Metin2'de görev veren, eşya satan veya savaş destekçisi olarak görev yapan NPC'ler bulunur. Pet ise oyuncunun sahip olduğu ve beraber gezdiği canavar türüdür. Her iki türde krallık sistemine göre farklı renklerde bayraklarla gösterilir.
Neden Bayrakları Gizlemek İstersiniz?
Oyuncuların PvP ya da PvE sırasında odaklanmasını engelleyebilecek görsel unsurları azaltmak, özellikle yüksek seviye sunucularda tercih edilir. Bayraklar, oyun içi krallık sistemini gösterse de, bazı sunucular estetik ya da stratejik nedenlerle bu bayrakların görünmemesini isteyebilir. Bu da C++ seviyesinde modifikasyon gerektirir.
Geliştirme Ortamı ve Gereksinimler
Bu işlem için Metin2 Client Source ve Game Server Source kodlarına erişiminiz olması gerekir. Geliştirme ortamı olarak Visual Studio gibi C++ derleyicileri kullanılır. Ayrıca, Python tabanlı sistemlerle entegrasyon için py root ve uiscript bilgisi de faydalı olabilir.
Bayrak Gösterimini Engelleme Adımları
1. Client Tarafında Bayrak Render Fonksiyonunu Bulun:
Client source kodlarında NPC ve pet bayraklarının render edildiği fonksiyonlar bulunur. Genellikle 'CInstanceBase' sınıfı altında yer alırlar. Bayrak çizimi için kullanılan fonksiyon genellikle 'RenderActor() veya 'Update()' gibi isimlerde olur.
2. Bayrak Görünürlüğünü Kontrol Eden Kodu Değiştirin:
'if' bloklarında bayrak gösterimini kontrol eden kodlar yer alır. Bu kodları bayrak türüne göre değiştirmek, belirli nesneler için bayrağın görünmesini engeller. Örneğin:
Kod:
if (m_bShowFlag && m_eType == CHARACTER_TYPE_NPC || m_eType == CHARACTER_TYPE_PET)
Bu satırda m_bShowFlag değişkenini false yaparak veya bayrak türü kontrolünü kaldırarak bayrakları gizleyebilirsiniz.
3. Sunucu Tarafında Ayarlanabilir Hale Getirin:
Sunucu tarafında bir ayar dosyası (.txt veya .lua) kullanarak bu özelliğin açılıp kapatılabilmesini sağlayabilirsiniz. Bu sayede oyun yöneticileri dinamik olarak bayrak gizleme sistemini aktif edebilir.
Ekstra Özellikler ve İpuçları
- Bayrakları tamamen gizlemek yerine, sadece belirli haritalarda veya belirli oyun modlarında gizlemek daha esnek bir çözüm olabilir.
- Bayrak gizleme işlemi sırasında performans kazancı elde edilebilir. Özellikle çok sayıda NPC'nin bulunduğu alanlarda bu fark hissedilebilir.
- Oyuncuların krallık bilgisine erişimini başka yollarla sağlamanız gerekebilir. Örneğin, fareyle üzerine gelindiğinde krallık ismini göstermek gibi.
Sonuç
Metin2 özel sunucularında NPC ve Pet krallık bayraklarını gizlemek, görsel ve stratejik açıdan sunucuyu daha özelleştirilmiş hale getirir. C++ seviyesinde yapılan bu tür değişiklikler, sunucu sahiplerine büyük avantaj sağlar. Bu makalede anlatılan adımlar takip edilerek, bayrak gizleme sistemi kolayca entegre edilebilir.
Hiding Kingdom Flags for NPCs & Pets in Metin2 with C++
In Metin2 private servers, enhancing gameplay experience and reducing visual clutter often involves making systematic changes. In this article, we will address how to hide kingdom flags of NPCs and Pets using the C++ programming language. This adjustment can both improve in-game performance and make the player experience more aesthetic and focused.
What Are NPC and Pet Systems?
NPC (Non-Player Character) refers to characters not controlled by players. In Metin2, NPCs provide quests, sell items, or act as battle companions. Pets are monster companions owned and accompanied by the player. Both types display different colored flags based on the kingdom system.
Why Hide the Flags?
Reducing visual elements that may distract players during PvP or PvE is preferred especially in high-level servers. Although flags represent the kingdom system in-game, some servers prefer hiding them for aesthetic or strategic reasons. This requires modifications at the C++ level.
Development Environment and Requirements
To implement this feature, access to Metin2 Client Source and Game Server Source codes is required. Development tools like Visual Studio are used as C++ compilers. Knowledge of py root and uiscript might also be helpful for integration with Python-based systems.
Steps to Disable Flag Display
1. Find the Function That Renders Flags on the Client Side:
Within the client source code, functions responsible for rendering NPC and pet flags can be found. These are usually located under the 'CInstanceBase' class. The function responsible for flag drawing often has names like 'RenderActor()' or 'Update()'.
2. Modify the Code Controlling Flag Visibility:
The 'if' blocks contain code controlling flag display. By changing these according to flag type, you can prevent flags from showing for specific entities. For example:
Kod:
if (m_bShowFlag && m_eType == CHARACTER_TYPE_NPC || m_eType == CHARACTER_TYPE_PET)
By setting the m_bShowFlag variable to false or removing the flag type check, you can hide flags.
3. Make It Configurable on the Server Side:
You can use a configuration file (.txt or .lua) on the server side to allow toggling this feature dynamically. This allows game administrators to enable or disable flag hiding as needed.
Additional Features and Tips
- Instead of completely hiding flags, consider hiding them only on certain maps or during specific game modes for more flexibility.
- Performance gains can occur when hiding flags. Especially in areas with many NPCs, this difference can be noticeable.
- You may need alternative ways to display kingdom information to players, such as showing the kingdom name when hovering over an entity.
Conclusion
Hiding kingdom flags for NPCs and Pets in Metin2 private servers enhances the visual and strategic aspects of the game. Modifications made at the C++ level provide significant advantages to server owners. Following the steps outlined in this article, a flag-hiding system can be easily integrated.
