Eğer bir gruptaysanız, sadece grup üyelerine kutsama verebilirsiniz, grupta olmayan birisini kutsayamazsınız. (etkisi olmasına rağmen), gruptan ayrılırsanız her şey normale dönecek, tüm oyunculara kutsama verebilirsiniz.
Skill.h
Arat:
Altına ekleyin:
Char_skill.cpp
Arat:
Altına ekle:
Arat:
Altına ekle:
Arat:
Altına ekle:
Wolfman var ise arat:
Değiştir:
Guild.cpp
Arat:
Altına ekle:
Navicat:
skill_proto->Design table , setFlag kutucuğuna geliyoruz Oraya PARTY ekliyoruz ya da varsa koyuyoruz. 27 numara olup olmadığını sayın ve etkinleştirin. Sadece skill_proto'muza gidip kutsama yeteneklerine PARTY eklemeli.
MaviAyGames | Grup Dışındakilerinin Kutsanmamasının Çözümü
Metin2 özel sunucularında geliştirme yaparken karşılaşılan yaygın problemlerden birisi, grup sistemi üzerinde yapılan bazı yapılandırmaların beklentiler doğrultusunda çalışmayışıdır. Özellikle MaviAyGames tarzı gelişmiş sistemlerde, grup dışındaki oyuncuların kutsanmaması gibi sorunlar ortaya çıkabilmektedir. Bu yazıda, bu sorunun neden oluştuğunu ve nasıl çözüleceğini detaylı olarak ele alacağız.
Sorun Nedir?
Metin2 oyununda grup sistemi, oyuncuların bir araya gelerek beraber hareket etmesini ve bazı bonus efektlerden yararlanmasını sağlar. Ancak bazı özel sunucu yapılandırmalarında, grup içinde olmayan oyuncuların belirli kutsama efektlerinden faydalanamaması gibi durumlar yaşanabilir. Bu özellikle PvP odaklı sunucularda ciddi bir dezavantaj yaratır.
Olası Nedenler
Bu sorun genellikle aşağıdaki sebeplerden birinden kaynaklanabilir:
- Grup kontrol mekanizmasının hatalı veya eksik programlanması
- Kutsama efektlerinin sadece grup üyeleri için aktif edilmesi
- C++ veya Python tabanlı sistemlerde hata içeren fonksiyon kullanımı
Çözüm Adımları
1. Server Side Kontrolü
Öncelikle game server source code üzerinden grup sisteminin nasıl tanımlandığına bakmalısınız. Grup kontrol mekanizması, auth ve game sunucusu arasında doğru haberleşmeli ve gerekli filtrelemeler yapılmalıdır. Özellikle C++ tabanlı kaynak kodlarda, kutsama efektlerinin hangi koşullarda çalıştığı kontrol edilmelidir.
2. Python Script Ayarları
Eğer Py Root veya UI Script tabanlı bir sistem kullanıyorsanız, grup kontrol mekanizmasının doğru çalışıp çalışmadığını kontrol edin. Kutsama efektlerinin sadece grup içindekilere mi uygulandığı, yoksa genel oyunculara da mı açık olduğu incelenmelidir. Python GUI üzerinde yapılan testlerle bu senaryolar tekrar edilebilir.
3. DB Core ve Oyun İçeriği Uyumluğu
Veritabanı tarafında, kutsama efektlerinin uygulanma mantığı kontrol edilmelidir. DB Core üzerinde yapılan yapılandırmalar, oyun içeriğinde doğru yansıtılmazsa bu tür hatalar meydana gelebilir. Özellikle Martysama gibi sistemlerde, grup dışındaki oyuncular için farklı kurallar tanımlanmış olabilir.
Pratik Kod Örneği
Aşağıda, grup dışındaki oyuncuların da kutsanabilmesi için örnek bir C++ kontrol yapısı verilmiştir:
Bu kodda, grup ID'si -1 olan oyuncular (grup olmayanlar) için kutsama kabul edilir. Gerekirse bu kontrol kaldırılabilir veya genişletilebilir.
Sonuç
Grup dışındaki oyuncuların kutsanmaması gibi bir problemle karşılaşıldığında, hem client-side hem de server-side kontroller mutlaka yapılmalıdır. Özellikle Metin2 Lobby gibi gelişmiş sistemlerde, tüm yapıların uyumlu çalışması için düzenli testler yapılmalıdır. Bu tür küçük ama önemli ayarlar, kullanıcı deneyimini ciddi şekilde etkileyebilir.
Not: Her sunucu yapılandırmasının kendine özgü ihtiyaçları vardır. Bu çözüm önerileri genel geçerdir, sunucunuzun yapılandırmasına göre uyarlanması gerekir.
MaviAyGames | Solution for Non-Group Members Not Being Blessed
One of the common problems encountered while developing custom Metin2 servers is how certain configurations on the party system do not work as expected. Especially in advanced systems like MaviAyGames, issues such as non-party members not receiving blessings can occur. In this article, we will examine in detail why this problem occurs and how it can be solved.
What is the Problem?
In the Metin2 game, the party system allows players to gather together and benefit from certain bonuses. However, in some custom server configurations, players who are not in a party may not receive specific blessing effects. This creates a significant disadvantage especially in PvP-focused servers.
Possible Causes
This issue usually stems from one of the following reasons:
- Faulty or incomplete programming of the party control mechanism
- Blessing effects only being activated for party members
- Incorrect function usage in C++ or Python-based systems
Solution Steps
1. Server Side Check
Firstly, check how the party system is defined in the game server source code. The party control mechanism must communicate correctly between the auth and game servers, and necessary filtering should be applied. Particularly in C++-based source codes, conditions under which blessing effects are triggered must be checked carefully.
2. Python Script Settings
If you are using a Py Root or UI Script-based system, verify whether the party control mechanism works properly. It must be checked whether blessing effects are applied only to party members or open to all players. These scenarios can be tested again using Python GUI.
3. DB Core and Game Content Compatibility
On the database side, the logic of how blessing effects are applied must be reviewed. If configurations made on the DB Core are not reflected correctly in-game, such errors may occur. Especially in systems like Martysama, different rules may have been defined for players outside parties.
Sample Code Example
Below is an example C++ control structure that allows non-party members to also receive blessings:
In this code, players with a group ID of -1 (not in a party) are allowed to receive blessings. This check can be removed or extended if necessary.
Conclusion
When encountering a problem such as non-party members not being blessed, both client-side and server-side checks must be performed. In advanced systems like Metin2 Lobby, regular testing must be done to ensure all components operate harmoniously. Such small but important adjustments can significantly impact user experience.
Note: Each server configuration has its own unique needs. These solution suggestions are general-purpose and must be adapted according to your server's setup.
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Skill.h
Arat:
Kod:
SKILL_FLAG_FIRE = (1 << 27),
Altına ekleyin:
Kod:
SKILL_FLAG_PARTY = (1 << 27),
Char_skill.cpp
Arat:
Kod:
SKILL_RESIST_PENETRATE };
Altına ekle:
Kod:
struct FPartyPIDCollector { std::vector <DWORD> vecPIDs; FPartyPIDCollector() { } void operator () (LPCHARACTER ch) { vecPIDs.push_back(ch->GetPlayerID()); } };
Arat:
Kod:
if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY)) pkVictim = this;
Altına ekle:
Kod:
if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && !GetParty() && !pkVictim) pkVictim = this;
Arat:
Kod:
if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY)) pkVictim = this;
Altına ekle:
Kod:
if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY)) ComputeSkill(dwVnum, this);
Wolfman var ise arat:
Kod:
#ifdef ENABLE_WOLFMAN_CHARACTER else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY)) ComputeSkillParty(dwVnum, this); #endif
Değiştir:
Kod:
#ifdef ENABLE_WOLFMAN_CHARACTER else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY)) ComputeSkillParty(dwVnum, this); #endif else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && !GetParty() && !pkVictim) ComputeSkill(dwVnum, this); else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && GetParty()) { FPartyPIDCollector f; GetParty()->ForEachOnMapMember(f, GetMapIndex()); for (std::vector <DWORD>::iterator it = f.vecPIDs.begin(); it != f.vecPIDs.end(); it++) { LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(*it); ComputeSkill(dwVnum, ch); } }
Guild.cpp
Arat:
Kod:
if ((pkSk->dwFlag & SKILL_FLAG_SELFONLY))
Altına ekle:
Kod:
if ((pkSk->dwFlag & SKILL_FLAG_PARTY)) { if (ch->FindAffect(pkSk->dwVnum)) return; victim = ch; }
Navicat:
skill_proto->Design table , setFlag kutucuğuna geliyoruz Oraya PARTY ekliyoruz ya da varsa koyuyoruz. 27 numara olup olmadığını sayın ve etkinleştirin. Sadece skill_proto'muza gidip kutsama yeteneklerine PARTY eklemeli.
MaviAyGames | Grup Dışındakilerinin Kutsanmamasının Çözümü
Metin2 özel sunucularında geliştirme yaparken karşılaşılan yaygın problemlerden birisi, grup sistemi üzerinde yapılan bazı yapılandırmaların beklentiler doğrultusunda çalışmayışıdır. Özellikle MaviAyGames tarzı gelişmiş sistemlerde, grup dışındaki oyuncuların kutsanmaması gibi sorunlar ortaya çıkabilmektedir. Bu yazıda, bu sorunun neden oluştuğunu ve nasıl çözüleceğini detaylı olarak ele alacağız.
Sorun Nedir?
Metin2 oyununda grup sistemi, oyuncuların bir araya gelerek beraber hareket etmesini ve bazı bonus efektlerden yararlanmasını sağlar. Ancak bazı özel sunucu yapılandırmalarında, grup içinde olmayan oyuncuların belirli kutsama efektlerinden faydalanamaması gibi durumlar yaşanabilir. Bu özellikle PvP odaklı sunucularda ciddi bir dezavantaj yaratır.
Olası Nedenler
Bu sorun genellikle aşağıdaki sebeplerden birinden kaynaklanabilir:
- Grup kontrol mekanizmasının hatalı veya eksik programlanması
- Kutsama efektlerinin sadece grup üyeleri için aktif edilmesi
- C++ veya Python tabanlı sistemlerde hata içeren fonksiyon kullanımı
Çözüm Adımları
1. Server Side Kontrolü
Öncelikle game server source code üzerinden grup sisteminin nasıl tanımlandığına bakmalısınız. Grup kontrol mekanizması, auth ve game sunucusu arasında doğru haberleşmeli ve gerekli filtrelemeler yapılmalıdır. Özellikle C++ tabanlı kaynak kodlarda, kutsama efektlerinin hangi koşullarda çalıştığı kontrol edilmelidir.
2. Python Script Ayarları
Eğer Py Root veya UI Script tabanlı bir sistem kullanıyorsanız, grup kontrol mekanizmasının doğru çalışıp çalışmadığını kontrol edin. Kutsama efektlerinin sadece grup içindekilere mi uygulandığı, yoksa genel oyunculara da mı açık olduğu incelenmelidir. Python GUI üzerinde yapılan testlerle bu senaryolar tekrar edilebilir.
3. DB Core ve Oyun İçeriği Uyumluğu
Veritabanı tarafında, kutsama efektlerinin uygulanma mantığı kontrol edilmelidir. DB Core üzerinde yapılan yapılandırmalar, oyun içeriğinde doğru yansıtılmazsa bu tür hatalar meydana gelebilir. Özellikle Martysama gibi sistemlerde, grup dışındaki oyuncular için farklı kurallar tanımlanmış olabilir.
Pratik Kod Örneği
Aşağıda, grup dışındaki oyuncuların da kutsanabilmesi için örnek bir C++ kontrol yapısı verilmiştir:
Kod:
[B]bool[/B] [B]canReceiveBlessing[/B](LPCHARACTER ch, LPCHARACTER target) {[BR][/BR] [B]int[/B] groupID = ch->GetPartyID();[BR][/BR] [B]int[/B] targetGroupID = target->GetPartyID();[BR][/BR][BR][/BR] [B]if[/B] (groupID == targetGroupID || groupID == -1) {[BR][/BR] [B]return true;[/B][BR][/BR] }[BR][/BR] [B]else[/B] {[BR][/BR] [B]return false;[/B][BR][/BR] }[BR][/BR]}
Bu kodda, grup ID'si -1 olan oyuncular (grup olmayanlar) için kutsama kabul edilir. Gerekirse bu kontrol kaldırılabilir veya genişletilebilir.
Sonuç
Grup dışındaki oyuncuların kutsanmaması gibi bir problemle karşılaşıldığında, hem client-side hem de server-side kontroller mutlaka yapılmalıdır. Özellikle Metin2 Lobby gibi gelişmiş sistemlerde, tüm yapıların uyumlu çalışması için düzenli testler yapılmalıdır. Bu tür küçük ama önemli ayarlar, kullanıcı deneyimini ciddi şekilde etkileyebilir.
Not: Her sunucu yapılandırmasının kendine özgü ihtiyaçları vardır. Bu çözüm önerileri genel geçerdir, sunucunuzun yapılandırmasına göre uyarlanması gerekir.
MaviAyGames | Solution for Non-Group Members Not Being Blessed
One of the common problems encountered while developing custom Metin2 servers is how certain configurations on the party system do not work as expected. Especially in advanced systems like MaviAyGames, issues such as non-party members not receiving blessings can occur. In this article, we will examine in detail why this problem occurs and how it can be solved.
What is the Problem?
In the Metin2 game, the party system allows players to gather together and benefit from certain bonuses. However, in some custom server configurations, players who are not in a party may not receive specific blessing effects. This creates a significant disadvantage especially in PvP-focused servers.
Possible Causes
This issue usually stems from one of the following reasons:
- Faulty or incomplete programming of the party control mechanism
- Blessing effects only being activated for party members
- Incorrect function usage in C++ or Python-based systems
Solution Steps
1. Server Side Check
Firstly, check how the party system is defined in the game server source code. The party control mechanism must communicate correctly between the auth and game servers, and necessary filtering should be applied. Particularly in C++-based source codes, conditions under which blessing effects are triggered must be checked carefully.
2. Python Script Settings
If you are using a Py Root or UI Script-based system, verify whether the party control mechanism works properly. It must be checked whether blessing effects are applied only to party members or open to all players. These scenarios can be tested again using Python GUI.
3. DB Core and Game Content Compatibility
On the database side, the logic of how blessing effects are applied must be reviewed. If configurations made on the DB Core are not reflected correctly in-game, such errors may occur. Especially in systems like Martysama, different rules may have been defined for players outside parties.
Sample Code Example
Below is an example C++ control structure that allows non-party members to also receive blessings:
Kod:
[B]bool[/B] [B]canReceiveBlessing[/B](LPCHARACTER ch, LPCHARACTER target) {[BR][/BR] [B]int[/B] groupID = ch->GetPartyID();[BR][/BR] [B]int[/B] targetGroupID = target->GetPartyID();[BR][/BR][BR][/BR] [B]if[/B] (groupID == targetGroupID || groupID == -1) {[BR][/BR] [B]return true;[/B][BR][/BR] }[BR][/BR] [B]else[/B] {[BR][/BR] [B]return false;[/B][BR][/BR] }[BR][/BR]}
In this code, players with a group ID of -1 (not in a party) are allowed to receive blessings. This check can be removed or extended if necessary.
Conclusion
When encountering a problem such as non-party members not being blessed, both client-side and server-side checks must be performed. In advanced systems like Metin2 Lobby, regular testing must be done to ensure all components operate harmoniously. Such small but important adjustments can significantly impact user experience.
Note: Each server configuration has its own unique needs. These solution suggestions are general-purpose and must be adapted according to your server's setup.
