Bayraklar Arası Hasar Bonusunu Pasif Yapma

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 49

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Öncelikle nedir bu?

Oyuncular, diğer bayraklardan olan oyuncularla kendi bayraklarında savaşırken ekstra bir bonus hasar alır.
Örneğin: "x" adlı mavi bayraklı oyuncu "y" adlı kırmızı bayraklı oyuncuya kendi bayrağının haritasında (mavi 1 ya da 2. köyde) saldırınca ekstra hasar vuruyor.
Bunu kapatmayı anlatıyorum.

Öncelikle "gamesrc/common/service.h ya da CommonDefines.h" dosyasına aşağıdaki kodu ekliyoruz.

Kod:
#define DISABLE_EMPIRE_DAMAGE_BONUS

Daha sonra "gamesrc/game/char_battle.cpp" dosyasını açıyoruz ve aşağıdaki kod bloğunu buluyoruz.


Kod:
int iEmpire = pAttacker->GetEmpire();             long lMapIndex = pAttacker->GetMapIndex();             int iMapEmpire = SECTREE_MANAGER::instance().GetEmpireFromMapIndex(lMapIndex);             if (iEmpire && iMapEmpire && iEmpire != iMapEmpire)             {                 dam = dam * 9 / 10;             }

Bu kodu bulduktan sonra da aşağıdaki kod bloğuyla değiştiriyoruz.

Kod:
#ifndef DISABLE_EMPIRE_DAMAGE_BONUS             int iEmpire = pAttacker->GetEmpire();             long lMapIndex = pAttacker->GetMapIndex();             int iMapEmpire = SECTREE_MANAGER::instance().GetEmpireFromMapIndex(lMapIndex);             if (iEmpire && iMapEmpire && iEmpire != iMapEmpire)             {                 dam = dam * 9 / 10;             } #endif

Ve artık işlem tamam. Bu işi aç kapa haline getiriyoruz. Oyunda bayrak avantajını kaldırıp taş yerinde ağırdır sözünü çürütüyor ve eşitliği sağlıyoruz. :)

Bayraklar Arası Hasar Bonusunu Pasif Yapma


Metin2 özel sunucularında bayraklar arası hasar bonusu gibi sistemler, oyuncuların birbiriyle rekabet etmesini sağlayan temel PvP unsurlarındandır. Ancak bazı durumlarda bu bonusun aktif olmaması istenebilir. Bu yazıda, C++ kaynak kod seviyesinde geliştirilen bir Metin2 özel sunucusunda bayraklar arası hasar bonusunu pasif yapma yöntemlerinden bahsedeceğiz.

Bayrak Sistemleri ve PvP Dinamikleri
Metin2 özel sunucularında bayrak sistemleri, oyuncuların birbirleriyle savaşmalarını kolaylaştırmak veya zorlaştırmak için tasarlanmıştır. Genellikle PK bayrağı, Güçlü bayrak, Savaş bayrağı gibi sistemler kullanılır. Bazı sunucularda bayrak arasında saldırı yapıldığında hasar bonusları devreye girer. Bu bonuslar genellikle PvP deneyimini artırmak için tasarlanmıştır ancak bazı sunucular bu bonusu kapatmayı tercih edebilir.

Neden Bayrak Hasar Bonusu Kapatılır?
Sunucuların bu bonusu kapatmasının birkaç nedeni olabilir:
- Oyun içi dengenin sağlanması,
- Yeni başlayan oyuncuların daha adil savaşabilmesi,
- Hasar sistemlerinin daha dengeli çalışması,
- Sunucuya özgü özel PvP mekaniklerinin entegrasyonu.

C++ Kaynak Kod Seviyesinde Değişiklikler
Bayraklar arası hasar bonusunu pasif yapmak için game server src üzerinde değişiklik yapılması gerekir. Öncelikle char_battle.cpp veya benzeri dosyalar incelenmelidir. Burada CalculateDamage fonksiyonu içinde bayrak kontrolleri yapılır. Bu fonksiyon içinde, bayrak karşılaştırması yapıldıktan sonra bonus hesaplamaları yapılır. Bu bonus hesaplamalarını iptal etmek için ilgili satırlar yorumlanabilir veya sıfırlanabilir.

Python Script Tarafında Müdahale[/PYTHON]
Eğer sunucunuzda py root üzerinden bazı hesaplamalar yapılıyorsa, calculate_attack.py gibi dosyalarda da benzer kontrol yapılabilir. Özellikle uiscript veya py gui tabanlı GUI sistemlerinde PvP bonuslarını etkileyen fonksiyonlar yer alabilir. Bu fonksiyonlardaki bonus çarpanları sıfırlanarak sistem pasif hale getirilebilir.

Database (DB) Entegrasyonu
Bazı sunucular, PvP bonuslarını DB üzerinden yönetebilir. Bu durumda auth veya game veritabanında ilgili tablolarda PvP bonus ayarları bulunabilir. Bu değerlerin sıfır veya null olarak ayarlanması, bonusun devre dışı kalmasını sağlayacaktır. Martysama veya diğer gelişmiş yönetim panelleri üzerinden bu değişiklikler de yapılabilir.

Sunucu Derleme ve Test Süreci
Yaptığınız değişikliklerden sonra sunucuyu yeniden derlemek (compile) önemlidir. Hataların oluşmaması için kaynak kodda yapılan değişiklikler dikkatlice test edilmelidir. Metin2 compile işlemi sırasında derleme hatası alınmaması için kod yazım kurallarına dikkat edilmelidir.

Oyun Deneyimi Üzerindeki Etkisi
Bonus sistemini pasif yapmak, PvP deneyimini ciddi anlamda etkileyebilir. Özellikle güçlü karakterlerin zayıf karakterlere karşı avantajı azalacağından, oyun içi dengeler değişebilir. Bu nedenle bu değişikliğin ardından Metin2 development ekipleri tarafından testlerin ve denge ayarlarının yapılması önerilir.

Sonuç
Bayraklar arası hasar bonusunun pasif yapılması, Metin2 özel sunucu geliştiricileri için önemli bir ayar olabilir. Bu işlem hem C++ hem de Python seviyesinde yapılabilir. Ancak bu değişikliklerin sunucu dengesi üzerinde büyük etkisi olacağı unutulmamalıdır. Metin2dev sürecinde dikkatli hareket etmek, kullanıcı memnuniyetini artıracaktır.


Passifying Inter-Flag Damage Bonus


In Metin2 private servers, systems like inter-flag damage bonuses are key elements that enable players to engage in PvP combat. However, in certain cases, it may be desired to deactivate this bonus. In this article, we will discuss methods for disabling the inter-flag damage bonus on a Metin2 private server developed at the C++ source code level.

Flag Systems and PvP Dynamics
In Metin2 private servers, flag systems are designed to facilitate or complicate player-versus-player interactions. Commonly used flags include PK flag, Strong flag, and War flag. On some servers, damage bonuses activate when attacks occur between flagged players. These bonuses are generally intended to enhance the PvP experience, but some servers prefer to disable them.

Why Disable Flag Damage Bonuses?
There are several reasons why servers might choose to disable these bonuses:
- To maintain in-game balance,
- To allow newer players to fight more fairly,
- To ensure damage systems operate more equitably,
- To integrate custom PvP mechanics unique to the server.

Modifications at the C++ Source Code Level
To disable inter-flag damage bonuses, modifications must be made within the game server src. First, files such as char_battle.cpp should be examined. Within the CalculateDamage function, flag checks are performed. After flag comparisons, damage bonuses are calculated. These bonus calculations can be disabled by commenting out or resetting the relevant lines.

Intervention via Python Scripts
If your server uses py root for certain calculations, similar checks may be performed in files like calculate_attack.py. Especially in uiscript or py gui based GUI systems, functions affecting PvP bonuses might exist. Resetting these bonus multipliers will effectively disable the bonus system.

Database (DB) Integration
Some servers manage PvP bonuses through the database. In this case, PvP bonus settings might be located in tables within the auth or game databases. Setting these values to zero or null will disable the bonuses. Such changes can also be implemented through advanced management panels like Martysama.

Server Compilation and Testing Process
After making changes, it is crucial to recompile the server (compile). To avoid errors, modifications in the source code should be tested carefully. During the Metin2 compile process, attention must be paid to coding standards to prevent build failures.

Impact on Gameplay Experience
Disabling the bonus system can significantly affect the PvP experience. Since stronger characters will have less advantage over weaker ones, in-game balances may shift. Therefore, after implementing these changes, it is recommended that Metin2 development teams conduct thorough testing and rebalancing.

Conclusion
Disabling inter-flag damage bonuses can be an important setting for Metin2 private server developers. This operation can be done both at the C++ and Python levels. However, keep in mind that these changes may have significant effects on server balance. Proceeding carefully during the Metin2dev process will enhance user satisfaction.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt