- Katılım
- 6 Mayıs 2022
- Konular
- 48,291
- Mesajlar
- 48,601
- Tepkime puanı
- 75
- M2 Yaşı
- 3 yıl 11 ay 10 gün
- Trophy Puan
- 48
- M2 Yang
- 488,879
Bazı sourcelerde bu efektlerin aktif olmadığını gördüm.
Anlatım bizzat bana aittir.
Serverinizde 3.giften sonraki itemler yoksa bu konudan ekleyiniz.
Başlıyalım...
Önce kanıt
Game src içerisinde length.h açılır ve aratılır.
Altına eklenir;
VnumHelper.h açılır ve aratılır.
Ve altına eklenir.
Char_item.cpp açılır ve aratılır.
Altına eklenir;
Game src ile işimiz bitti.
Client src ile devam edelim.
Instancebase.h açılır ve aratılır.
Altına eklenir;
Packet.h açılır ve aratılır.
Altına eklenir;
PythonNetworkStreamPhaseGameItem.cpp açılır ve aratılır.
Altına eklenir;
PythonCharacterManagerModule.cpp açılır ve aratılır.
Altına eklenir;
Src ile işimiz bitti.
Root içerisindeki playersettingsmodule.py açılır ve aratılır..
Altına eklenir;
Bu dosyayıda pack içine atın index'e ekleyin olay bitmiştir.
Offical Yüzüklere Efekt Eklemek
Metin2 özel sunucularında oyun deneyimini artırmak istiyorsanız, offical yürüklere efekt ekleme işlemi oldukça önemli bir gelişmedir. Bu işlem sayesinde oyuncuların karakterlerine daha fazla derinlik ve stratejik değer katacaksınız. Bu rehberde, Metin2Lobby olarak size özel sunucularınızda nasıl offical yüzük efektleri tanımlayacağınızı ve bu efektlerin nasıl çalıştığını detaylıca anlatacağız.
Yüzük Sistemine Genel Bakış
Metin2 oyununda yüzükler, karakterin sağladığı bonuslar açısından önemli rol oynar. Official sunucularda bulunan bazı yüzüklerin özel efektleri vardır. Bu efektler, oyuncunun savaş sırasında avantaj elde etmesini sağlar. Ancak özel sunucularda bu efektleri aktif etmek için genellikle C++ veya Python tabanlı sistem değişiklikleri yapılması gerekir. Bu sistemlerde client src, game server ve db core gibi bileşenler birbiriyle uyumlu olmalıdır.
Efekt Ekleme Süreci
Yüzüğe efekt eklemek için öncelikle client src dosyasında UI scriptlerinde değişiklik yapmalısınız. uiscript dosyaları üzerinden yüzük slotuna özel efekt görselleri ve açıklamalar tanımlanabilir. Ardından py root kısmında, efektin ne zaman aktif olacağını belirten Python komutları yazılır. Bu komutlar genellikle bir Py GUI arayüzü üzerinden çalışır ve oyuncu oyun içi etkileşimlerine göre dinamik olarak aktif olur.
Database tarafında ise, yüzüğün ID'sine özel efekt değerleri girilmelidir. Bu değerler DB Core ile Game Server arasında senkronize çalışarak efektin doğru şekilde gösterilmesini sağlar. Bu işlem sırasında dikkat edilmesi gereken en önemli konu, source edit kısmında yapılan değişikliklerin compile aşamasında hata vermemesi için eksiksiz ve doğru yazılmasıdır.
Dikkat Edilmesi Gerekenler
Yüzük efekti tanımlarken hem game hem de auth sunucularında aynı yapılandırmaların yapılması gerekir. Aksi takdirde efektler aktif olmaz veya oyuncularda hata oluşabilir. Ayrıca, martysama ve benzeri sistemler üzerinden test yaparak, efektlerin doğru çalışıp çalışmadığını kontrol etmelisiniz. Bu süreçte Metin2Dev gibi topluluklardan destek almanız da faydalı olacaktır.
C++ ve Python Tabanlı Geliştirmeler
Efekt eklemek için genellikle C++ ile yazılmış olan server src üzerinde değişiklik yapılır. Bu değişiklikler, efekt sisteminin temelini oluşturur. Python tarafında ise Py Root dosyalarında efektin kullanıcıya yansıtılması için gerekli komutlar yer alır. Bu iki sistem birbiriyle entegre çalışarak, yüzüğün efektinin hem sunucuda hem de istemcide doğru şekilde görünmesini sağlar.
Pack dosyalarında da efekt ile ilgili görsel ve ses dosyalarının doğru yerleştirilmesi gerekir. Bu dosyalar, efektin oyun içinde görsel olarak görünmesini sağlar. Core yapıları bu dosyalarla iletişim kurarak, efektin aktif olduğu anlarda doğru verileri gönderir.
Sonuç
Offical yürüklere efekt eklemek, Metin2 özel sunucularında kullanıcı deneyimini ciddi anlamda artırır. Bu işlem için hem C++ hem de Python bilgisi gerekebilir. Ancak doğru yapılandırıldığında, kullanıcılar daha keyifli ve rekabetçi bir oyun ortamı yaşarlar. Metin2Lobby olarak bu işlemleri yaparken dikkat etmeniz gereken tüm detaylara buradan ulaşabilirsiniz.
Adding Effects to Official Rings
If you aim to enhance the gameplay experience on your Metin2 private servers, adding effects to official rings is an important step. This process allows you to add more depth and strategic value to player characters. In this guide, we will explain in detail how to define official ring effects on your private servers and how these effects work, brought to you by Metin2Lobby.
Overview of the Ring System
In Metin2, rings play a significant role in providing bonuses to characters. Some rings on official servers have special effects that grant advantages during combat. However, activating such effects on private servers typically requires modifications based on C++ or Python systems. Components like client src, game server, and db core must be compatible with each other for this system to function properly.
The Process of Adding Effects
To add effects to a ring, you first need to make changes in the UI scripts within the client src. Special effect visuals and descriptions can be defined via uiscript files for the ring slot. Afterwards, Python commands that determine when the effect becomes active are written in the py root section. These commands often operate through a Py GUI interface and activate dynamically based on player interactions within the game.
On the database side, specific effect values must be entered corresponding to the ring's ID. These values ensure the correct display of effects by synchronizing between DB Core and Game Server. The most critical aspect here is ensuring that changes made in the source edit section are written correctly and completely to avoid errors during the compile stage.
Things to Consider
When defining ring effects, the same configurations must be applied on both the game and auth servers. Otherwise, effects may not activate or cause errors for players. Additionally, you should verify if effects are working correctly using testing methods provided by systems like martysama. Seeking support from communities like Metin2Dev during this process can also be beneficial.
C++ and Python-Based Development
Usually, modifications to the server src, which is written in C++, are necessary to add effects. These changes form the basis of the effect system. On the Python side, commands responsible for displaying the effect to the user are located in the Py Root files. Both systems work together to ensure the ring's effect appears correctly on both the server and client sides.
Visual and audio files related to the effect must also be correctly placed within pack files. These files ensure the visual appearance of the effect in the game. Core structures communicate with these files and send the correct data at the moments when the effect is active.
Conclusion
Adding effects to official rings significantly enhances the user experience on Metin2 private servers. This process might require knowledge of both C++ and Python. However, once configured correctly, users experience a more enjoyable and competitive gaming environment. You can access all the details you need to pay attention to during this process via Metin2Lobby.
Anlatım bizzat bana aittir.
Serverinizde 3.giften sonraki itemler yoksa bu konudan ekleyiniz.
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Başlıyalım...
Önce kanıt
Game src içerisinde length.h açılır ve aratılır.
Kod:
SE_EQUIP_LOVE_PENDANT
Altına eklenir;
Kod:
SE_EQUIP_WILL_RING, SE_EQUIP_DEADLY_RING, SE_EQUIP_HERO_MEDAL, SE_EQUIP_BLUE_CANDY, SE_EQUIP_GREEN_CANDY, SE_EQUIP_YELLOW_CANDY, SE_EQUIP_CHOCOLATE_PENDANT, SE_EQUIP_EVIL_PENDANT, SE_EQUIP_GUARD_PENDANT,
VnumHelper.h açılır ve aratılır.
Kod:
static const bool IsLovePendant(DWORD vnum) { return 71145 == vnum; }
Ve altına eklenir.
Kod:
static const bool IsWillRing(DWORD vnum) { return 71148 == vnum; } static const bool IsDeadlyRing(DWORD vnum) { return 71149 == vnum; } static const bool IsHeroMedal(DWORD vnum) { return 71158 == vnum; } static const bool IsBlueCandy(DWORD vnum) { return 71180 == vnum; } static const bool IsGreenCandy(DWORD vnum) { return 71181 == vnum; } static const bool IsYellowCandy(DWORD vnum) { return 71188 == vnum; } static const bool IsChocolatePendant(DWORD vnum) { return 71199 == vnum; } static const bool IsEvilPendant(DWORD vnum) { return 71202 == vnum; } static const bool IsGuardPendant(DWORD vnum) { return 72054 == vnum; }
Char_item.cpp açılır ve aratılır.
Kod:
else if (true == CItemVnumHelper::IsLovePendant(dwVnum)) { this->EffectPacket(SE_EQUIP_LOVE_PENDANT); }
Altına eklenir;
Kod:
else if (true == CItemVnumHelper::IsWillRing(dwVnum)) { this->EffectPacket(SE_EQUIP_WILL_RING); } else if (true == CItemVnumHelper::IsDeadlyRing(dwVnum)) { this->EffectPacket(SE_EQUIP_DEADLY_RING); } else if (true == CItemVnumHelper::IsHeroMedal(dwVnum)) { this->EffectPacket(SE_EQUIP_HERO_MEDAL); } else if (true == CItemVnumHelper::IsBlueCandy(dwVnum)) { this->EffectPacket(SE_EQUIP_BLUE_CANDY); } else if (true == CItemVnumHelper::IsGreenCandy(dwVnum)) { this->EffectPacket(SE_EQUIP_GREEN_CANDY); } else if (true == CItemVnumHelper::IsYellowCandy(dwVnum)) { this->EffectPacket(SE_EQUIP_YELLOW_CANDY); } else if (true == CItemVnumHelper::IsChocolatePendant(dwVnum)) { this->EffectPacket(SE_EQUIP_CHOCOLATE_PENDANT); } else if (true == CItemVnumHelper::IsEvilPendant(dwVnum)) { this->EffectPacket(SE_EQUIP_EVIL_PENDANT); } else if (true == CItemVnumHelper::IsGuardPendant(dwVnum)) { this->EffectPacket(SE_EQUIP_GUARD_PENDANT); }
Game src ile işimiz bitti.
Client src ile devam edelim.
Instancebase.h açılır ve aratılır.
Kod:
EFFECT_LOVE_PENDANT
Altına eklenir;
Kod:
EFFECT_WILL_RING_EQUIP, EFFECT_DEADLY_RING_EQUIP, EFFECT_HERO_MEDAL_EQUIP, EFFECT_BLUE_CANDY_EQUIP, EFFECT_GREEN_CANDY_EQUIP, EFFECT_YELLOW_CANDY_EQUIP, EFFECT_CHOCOLATE_PENDANT_EQUIP, EFFECT_EVIL_PENDANT_EQUIP, EFFECT_GUARD_PENDANT_EQUIP,
Packet.h açılır ve aratılır.
Kod:
SE_EQUIP_LOVE_PENDANT,
Altına eklenir;
Kod:
SE_EQUIP_WILL_RING, SE_EQUIP_DEADLY_RING, SE_EQUIP_HERO_MEDAL, SE_EQUIP_BLUE_CANDY, SE_EQUIP_GREEN_CANDY, SE_EQUIP_YELLOW_CANDY, SE_EQUIP_CHOCOLATE_PENDANT, SE_EQUIP_EVIL_PENDANT, SE_EQUIP_GUARD_PENDANT,
PythonNetworkStreamPhaseGameItem.cpp açılır ve aratılır.
Kod:
case SE_EQUIP_LOVE_PENDANT: effect = CInstanceBase::EFFECT_LOVE_PENDANT_EQUIP; break;
Altına eklenir;
Kod:
case SE_EQUIP_WILL_RING: effect = CInstanceBase::EFFECT_WILL_RING_EQUIP; break; case SE_EQUIP_DEADLY_RING: effect = CInstanceBase::EFFECT_DEADLY_RING_EQUIP; break; case SE_EQUIP_HERO_MEDAL: effect = CInstanceBase::EFFECT_HERO_MEDAL_EQUIP; break; case SE_EQUIP_BLUE_CANDY: effect = CInstanceBase::EFFECT_BLUE_CANDY_EQUIP; break; case SE_EQUIP_GREEN_CANDY: effect = CInstanceBase::EFFECT_GREEN_CANDY_EQUIP; break; case SE_EQUIP_YELLOW_CANDY: effect = CInstanceBase::EFFECT_YELLOW_CANDY_EQUIP; break; case SE_EQUIP_CHOCOLATE_PENDANT: effect = CInstanceBase::EFFECT_CHOCOLATE_PENDANT_EQUIP; break; case SE_EQUIP_EVIL_PENDANT: effect = CInstanceBase::EFFECT_EVIL_PENDANT_EQUIP; break; case SE_EQUIP_GUARD_PENDANT: effect = CInstanceBase::EFFECT_GUARD_PENDANT_EQUIP; break;
PythonCharacterManagerModule.cpp açılır ve aratılır.
Kod:
PyModule_AddIntConstant(poModule, "EFFECT_LOVE_PENDANT_EQUIP", CInstanceBase::EFFECT_LOVE_PENDANT_EQUIP);
Altına eklenir;
Kod:
PyModule_AddIntConstant(poModule, "EFFECT_WILL_RING_EQUIP", CInstanceBase::EFFECT_WILL_RING_EQUIP); PyModule_AddIntConstant(poModule, "EFFECT_DEADLY_RING_EQUIP", CInstanceBase::EFFECT_DEADLY_RING_EQUIP); PyModule_AddIntConstant(poModule, "EFFECT_HERO_MEDAL_EQUIP", CInstanceBase::EFFECT_HERO_MEDAL_EQUIP); PyModule_AddIntConstant(poModule, "EFFECT_BLUE_CANDY_EQUIP", CInstanceBase::EFFECT_BLUE_CANDY_EQUIP); PyModule_AddIntConstant(poModule, "EFFECT_GREEN_CANDY_EQUIP", CInstanceBase::EFFECT_GREEN_CANDY_EQUIP); PyModule_AddIntConstant(poModule, "EFFECT_YELLOW_CANDY_EQUIP", CInstanceBase::EFFECT_YELLOW_CANDY_EQUIP); PyModule_AddIntConstant(poModule, "EFFECT_CHOCOLATE_PENDANT_EQUIP", CInstanceBase::EFFECT_CHOCOLATE_PENDANT_EQUIP); PyModule_AddIntConstant(poModule, "EFFECT_EVIL_PENDANT_EQUIP", CInstanceBase::EFFECT_EVIL_PENDANT_EQUIP); PyModule_AddIntConstant(poModule, "EFFECT_GUARD_PENDANT_EQUIP", CInstanceBase::EFFECT_GUARD_PENDANT_EQUIP);
Src ile işimiz bitti.
Root içerisindeki playersettingsmodule.py açılır ve aratılır..
Kod:
chrmgr.RegisterCacheEffect(chrmgr.EFFECT_LOVE_PENDANT_EQUIP, "", "d:/ymir work/effect/etc/buff/buff_item4.mse")
Altına eklenir;
Kod:
chrmgr.RegisterCacheEffect(chrmgr.EFFECT_WILL_RING_EQUIP, "", "d:/ymir work/effect/etc/buff/will_ring.mse") chrmgr.RegisterCacheEffect(chrmgr.EFFECT_DEADLY_RING_EQUIP, "", "d:/ymir work/effect/etc/buff/deadly_ring.mse") chrmgr.RegisterCacheEffect(chrmgr.EFFECT_HERO_MEDAL_EQUIP, "", "d:/ymir work/effect/etc/buff/hero_medal.mse") chrmgr.RegisterCacheEffect(chrmgr.EFFECT_BLUE_CANDY_EQUIP, "", "d:/ymir work/effect/etc/buff/blue_candy.mse") chrmgr.RegisterCacheEffect(chrmgr.EFFECT_GREEN_CANDY_EQUIP, "", "d:/ymir work/effect/etc/buff/green_candy.mse") chrmgr.RegisterCacheEffect(chrmgr.EFFECT_YELLOW_CANDY_EQUIP, "", "d:/ymir work/effect/etc/buff/yellow_candy.mse") chrmgr.RegisterCacheEffect(chrmgr.EFFECT_CHOCOLATE_PENDANT_EQUIP, "", "d:/ymir work/effect/etc/buff/chocolate_pendant.mse") chrmgr.RegisterCacheEffect(chrmgr.EFFECT_EVIL_PENDANT_EQUIP, "", "d:/ymir work/effect/etc/buff/evil_pendant.mse") chrmgr.RegisterCacheEffect(chrmgr.EFFECT_GUARD_PENDANT_EQUIP, "", "d:/ymir work/effect/etc/buff/guard_pendant.mse")
Bu dosyayıda pack içine atın index'e ekleyin olay bitmiştir.
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Offical Yüzüklere Efekt Eklemek
Metin2 özel sunucularında oyun deneyimini artırmak istiyorsanız, offical yürüklere efekt ekleme işlemi oldukça önemli bir gelişmedir. Bu işlem sayesinde oyuncuların karakterlerine daha fazla derinlik ve stratejik değer katacaksınız. Bu rehberde, Metin2Lobby olarak size özel sunucularınızda nasıl offical yüzük efektleri tanımlayacağınızı ve bu efektlerin nasıl çalıştığını detaylıca anlatacağız.
Yüzük Sistemine Genel Bakış
Metin2 oyununda yüzükler, karakterin sağladığı bonuslar açısından önemli rol oynar. Official sunucularda bulunan bazı yüzüklerin özel efektleri vardır. Bu efektler, oyuncunun savaş sırasında avantaj elde etmesini sağlar. Ancak özel sunucularda bu efektleri aktif etmek için genellikle C++ veya Python tabanlı sistem değişiklikleri yapılması gerekir. Bu sistemlerde client src, game server ve db core gibi bileşenler birbiriyle uyumlu olmalıdır.
Efekt Ekleme Süreci
Yüzüğe efekt eklemek için öncelikle client src dosyasında UI scriptlerinde değişiklik yapmalısınız. uiscript dosyaları üzerinden yüzük slotuna özel efekt görselleri ve açıklamalar tanımlanabilir. Ardından py root kısmında, efektin ne zaman aktif olacağını belirten Python komutları yazılır. Bu komutlar genellikle bir Py GUI arayüzü üzerinden çalışır ve oyuncu oyun içi etkileşimlerine göre dinamik olarak aktif olur.
Database tarafında ise, yüzüğün ID'sine özel efekt değerleri girilmelidir. Bu değerler DB Core ile Game Server arasında senkronize çalışarak efektin doğru şekilde gösterilmesini sağlar. Bu işlem sırasında dikkat edilmesi gereken en önemli konu, source edit kısmında yapılan değişikliklerin compile aşamasında hata vermemesi için eksiksiz ve doğru yazılmasıdır.
Dikkat Edilmesi Gerekenler
Yüzük efekti tanımlarken hem game hem de auth sunucularında aynı yapılandırmaların yapılması gerekir. Aksi takdirde efektler aktif olmaz veya oyuncularda hata oluşabilir. Ayrıca, martysama ve benzeri sistemler üzerinden test yaparak, efektlerin doğru çalışıp çalışmadığını kontrol etmelisiniz. Bu süreçte Metin2Dev gibi topluluklardan destek almanız da faydalı olacaktır.
C++ ve Python Tabanlı Geliştirmeler
Efekt eklemek için genellikle C++ ile yazılmış olan server src üzerinde değişiklik yapılır. Bu değişiklikler, efekt sisteminin temelini oluşturur. Python tarafında ise Py Root dosyalarında efektin kullanıcıya yansıtılması için gerekli komutlar yer alır. Bu iki sistem birbiriyle entegre çalışarak, yüzüğün efektinin hem sunucuda hem de istemcide doğru şekilde görünmesini sağlar.
Pack dosyalarında da efekt ile ilgili görsel ve ses dosyalarının doğru yerleştirilmesi gerekir. Bu dosyalar, efektin oyun içinde görsel olarak görünmesini sağlar. Core yapıları bu dosyalarla iletişim kurarak, efektin aktif olduğu anlarda doğru verileri gönderir.
Sonuç
Offical yürüklere efekt eklemek, Metin2 özel sunucularında kullanıcı deneyimini ciddi anlamda artırır. Bu işlem için hem C++ hem de Python bilgisi gerekebilir. Ancak doğru yapılandırıldığında, kullanıcılar daha keyifli ve rekabetçi bir oyun ortamı yaşarlar. Metin2Lobby olarak bu işlemleri yaparken dikkat etmeniz gereken tüm detaylara buradan ulaşabilirsiniz.
Adding Effects to Official Rings
If you aim to enhance the gameplay experience on your Metin2 private servers, adding effects to official rings is an important step. This process allows you to add more depth and strategic value to player characters. In this guide, we will explain in detail how to define official ring effects on your private servers and how these effects work, brought to you by Metin2Lobby.
Overview of the Ring System
In Metin2, rings play a significant role in providing bonuses to characters. Some rings on official servers have special effects that grant advantages during combat. However, activating such effects on private servers typically requires modifications based on C++ or Python systems. Components like client src, game server, and db core must be compatible with each other for this system to function properly.
The Process of Adding Effects
To add effects to a ring, you first need to make changes in the UI scripts within the client src. Special effect visuals and descriptions can be defined via uiscript files for the ring slot. Afterwards, Python commands that determine when the effect becomes active are written in the py root section. These commands often operate through a Py GUI interface and activate dynamically based on player interactions within the game.
On the database side, specific effect values must be entered corresponding to the ring's ID. These values ensure the correct display of effects by synchronizing between DB Core and Game Server. The most critical aspect here is ensuring that changes made in the source edit section are written correctly and completely to avoid errors during the compile stage.
Things to Consider
When defining ring effects, the same configurations must be applied on both the game and auth servers. Otherwise, effects may not activate or cause errors for players. Additionally, you should verify if effects are working correctly using testing methods provided by systems like martysama. Seeking support from communities like Metin2Dev during this process can also be beneficial.
C++ and Python-Based Development
Usually, modifications to the server src, which is written in C++, are necessary to add effects. These changes form the basis of the effect system. On the Python side, commands responsible for displaying the effect to the user are located in the Py Root files. Both systems work together to ensure the ring's effect appears correctly on both the server and client sides.
Visual and audio files related to the effect must also be correctly placed within pack files. These files ensure the visual appearance of the effect in the game. Core structures communicate with these files and send the correct data at the moments when the effect is active.
Conclusion
Adding effects to official rings significantly enhances the user experience on Metin2 private servers. This process might require knowledge of both C++ and Python. However, once configured correctly, users experience a more enjoyable and competitive gaming environment. You can access all the details you need to pay attention to during this process via Metin2Lobby.
