Ninja Okçu Hasar Düzeltmesi Fix

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
PythonPlayerSkill.cpp açın, ekleyin;

Kod:
DWORD dwMotionIndex = pSkillData->GetSkillMotionIndex(rkSkillInst.iGrade);                 DWORD dwLoopCount = pSkillData->GetMotionLoopCount(rkSkillInst.fcurEfficientPercentage);                 if (!pkInstMain->NEW_UseSkill(rkSkillInst.dwIndex, dwMotionIndex, dwLoopCount, pSkillData->IsMovingSkill() ? true : false))                 {                     //Tracenf("CPythonPlayer::__UseSkill(%d) - pkInstMain->NEW_UseSkill - ERROR", dwSlotIndex);                     return false;                 }

devamında;
Kod:
if ( pSkillData -> IsFanRange ()) { if ( pkInstMain -> NEW_GetInstanceVectorInFanRange ( float ( dwRange ), * pkInstTarget , & kVct_pkInstTarget )) {


Eklendikten sonra aşağıdaki görsel gibi gözükecektir.

picture.png

Ninja Okçu Hasar Düzeltmesi Fix
Metin2 özel sunucularında Ninja sınıfının okçu alt sınıfı ile ilgili birçok oyuncu, hasar değerlerinin bekleneni vermediğini belirtmektedir. Özellikle PvP sistemlerinde bu durum ciddi bir denge problemine neden olabilmektedir. Ninja Okçu sınıfı, hızlı hareket kabiliyeti ve yüksek kritik vuruş potansiyeli ile bilinir. Ancak bazı sunucularda kullanılan kaynak kodlarda bu sınıfla ilgili hasar formülleri eksik veya yanlış implement edilmiş olabilir. Bu da oyuncuların beklentilerini karşılamayan performans ortaya çıkarmasına sebep olur.

Sorun Nedir?
Metin2'de Ninja Okçu'nun hasar hesaplaması sırasında bazı özel yetenekler ve silah bonusları doğru şekilde aktarılmamaktadır. Özellikle 'Tırmanıcı' yeteneği gibi pasif özellikler, hasar üzerinde olması gerektiği gibi etki etmemektedir. Ayrıca bazı özel silahlarla yapılan saldırılar, beklenen hasar değerlerini verememektedir. Bu durum, hem oyuncu memnuniyetini düşürmekte hem de PvP dengelerini bozmaktadır.

Fix Uygulaması
Hasar düzeltmesi için öncelikle C++ kaynak kodlarında bulunan hasar hesaplama fonksiyonları gözden geçirilmelidir. Ninja sınıfına özgü olan özel formüller, doğru şekilde tanımlanmalıdır. Özellikle yetenek bonusları, silah bonusları ve kritik vuruş çarpanları ayrı ayrı kontrol edilmelidir. Bunun için game_core dosyasındaki 'CalculateDamage' fonksiyonu üzerinde değişiklik yapılması gerekir. Ninja için özel olarak tanımlanan 'ApplyNinjaArcherBonus' fonksiyonu, tüm bonusları doğru şekilde uygulamalıdır.

Fix Sonrası Artılar
Doğru uygulanmış bir Ninja Okçu hasar düzeltmesi fixi, oyuncuların sınıfı daha dengeli ve rekabetçi hale getirir. Özellikle PvP ortamlarında Ninja Okçu, diğer sınıflarla daha adil bir şekilde yarışabilir. Oyuncuların sınıf tercihleri artar, PvP etkinliği artar ve sunucunuzun popülerliği olumlu yönde etkilenir. Ayrıca geliştirici tarafında kod kalitesi ve tutarlılık artar.

Fix Nasıl Uygulanır?
Fix uygulamak için öncelikle sunucu kaynak kodunuzun yedeğini almalısınız. Ardından 'game/src/char.cpp' ve 'game/src/char_battle.cpp' dosyalarında gerekli değişiklikleri yapmalısınız. Ninja sınıfına özel bonus değerlerinin doğru şekilde tanımlandığından emin olun. Gerekirse Python scriptlerle de destekleyici kontroller yapılabilir. Örneğin 'py_root' dizininde yer alan combat.py dosyasında, Ninja Okçu özel komutlar tanımlanabilir. Bu sayede hem C++ hem de Python tabanlı sistemlerde uyum sağlanabilir.

Teknik Açıklamalar
Fix işlemi sırasında dikkat edilmesi gereken bazı teknik konular vardır. Ninja Okçu'nun hasar formülü, diğer sınıflardan farklı olarak hem fiziksel hem de zeka dayalı bonusları içerir. Bu nedenle formüldeki her bir parametre, doğru şekilde tanımlanmalıdır. Özellikle 'agi', 'dex' ve 'int' gibi temel niteliklerin hasar üzerindeki etkisi, doğru şekilde hesaplanmalıdır. Ayrıca silah bonusları ve ekipman bonusları da ayrı ayrı değerlendirilmelidir. Bu süreçte 'martysama' forumundaki örnek uygulamalar referans alınabilir. Bu sayede hem güvenilir hem de test edilmiş çözümler kullanılabilir.


Ninja Archer Damage Fix
Many players on Metin2 private servers state that damage values for the Ninja Archer subclass are not performing as expected. This issue can cause serious balance problems especially in PvP systems. The Ninja Archer class is known for its fast movement ability and high critical hit potential. However, in some servers using certain source codes, the damage formulas related to this class may be missing or incorrectly implemented. This causes performance that does not meet player expectations.

What Is The Problem?
During damage calculations for the Ninja Archer in Metin2, certain special skills and weapon bonuses are not being transferred correctly. Passive abilities such as 'Climber' do not affect damage as they should. Additionally, attacks made with certain special weapons fail to deliver expected damage values. This situation decreases player satisfaction and disrupts PvP balance.

Applying The Fix
To correct the damage calculation, first review the damage calculation functions within the C++ source code. Special formulas unique to the Ninja class must be properly defined. In particular, skill bonuses, weapon bonuses, and critical hit multipliers should be checked individually. For this, modifications must be made to the 'CalculateDamage' function found in the game_core file. The 'ApplyNinjaArcherBonus' function, defined specifically for Ninja, must apply all bonuses correctly.

Benefits After The Fix
A properly applied Ninja Archer damage fix makes the class more balanced and competitive for players. Especially in PvP environments, Ninja Archer can compete fairly against other classes. Player class preferences increase, PvP activity rises, and your server's popularity improves positively. Additionally, code quality and consistency increase from the developer side.

How To Apply The Fix?
Before applying the fix, make sure to backup your server source code. Then make necessary changes in 'game/src/char.cpp' and 'game/src/char_battle.cpp'. Ensure that bonus values specific to the Ninja class are correctly defined. If needed, supporting checks can be done via Python scripts. For example, Ninja Archer-specific commands can be defined in the combat.py file located in the 'py_root' directory. This ensures compatibility in both C++ and Python-based systems.

Technical Explanations
There are technical considerations during the fix process. The Ninja Archer’s damage formula includes both physical and intelligence-based bonuses, differing from other classes. Therefore, each parameter in the formula must be defined correctly. Particularly, the effects of basic attributes like 'agi', 'dex', and 'int' on damage must be calculated accurately. Additionally, weapon and equipment bonuses should be evaluated separately. Example implementations from 'martysama' forums can be referenced during this process. This allows reliable and tested solutions to be used.
 

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

Benzer konular

Geri
Üst Alt