HP/SP Absorbe 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 34

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
pasha37 nin konusudur isteyen daha rahat ulaşsın diye açıyorum

Önceki çalışma mantığı >
Efsun varsa her hasarda %80 oranla aktif olur


Düzenlenmiş şekilde çalışma mantığı >
Efsun varsa her hasar efsun oranı % kaç ise o oranda aktif olur


%12 oran ile tek seferde 100-300 hp/sp emer
Koşullar düzenlendi, -(eksi) hp yada sp ile ölündüğünde kendi kendilerinden absorbe etme hatası vardı giderildi
FLY küçük olduğundan big olarak düzenlendi( )



*char_battle.cpp

Arat:
Kod:
if (pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) && number(0, 4) > 0) // 80% È®·ü             {                 int i = MIN(dam, iCurHP) * pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) / 100;                 if (i)                 {                     CreateFly(FLY_HP_SMALL, pAttacker);                     pAttacker->PointChange(POINT_HP, i);                 }             }             // Ä¥ ¶§¸¶´Ù SPȸº¹             if (pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) && number(0, 4) > 0) // 80% È®·ü             {                 int i = MIN(dam, iCurHP) * pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) / 100;                 if (i)                 {                     CreateFly(FLY_SP_SMALL, pAttacker);                     pAttacker->PointChange(POINT_SP, i);                 }             }
Değiştir:
Kod:
int iAbsoHP_ptr = pAttacker->GetPoint(POINT_HIT_HP_RECOVERY);             if (iAbsoHP_ptr)             {                 if (number(1, 100) <= iAbsoHP_ptr) {                     int iHPAbso = MIN(dam, GetHP()) * pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) / 100;                     if ((pAttacker->GetHP() > 0) && (pAttacker->GetHP() + iHPAbso < pAttacker->GetMaxHP()) && (GetHP() > 0) && (iHPAbso > 0))                     {                         CreateFly(FLY_HP_BIG, pAttacker);                         pAttacker->PointChange(POINT_HP, iHPAbso);                     }                 }             }             // Ä¥ ¶§¸¶´Ù SPȸº¹             int iAbsoSP_ptr = pAttacker->GetPoint(POINT_HIT_SP_RECOVERY);             if (iAbsoSP_ptr)             {                 if (number(1, 100) <= iAbsoSP_ptr) {                     int iSPAbso = MIN(dam, GetSP()) * pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) / 100;                     if ((pAttacker->GetSP() > 0) && (pAttacker->GetSP() + iSPAbso < pAttacker->GetMaxSP()) && (GetSP() > 0) && (iSPAbso > 0))                     {                         CreateFly(FLY_SP_BIG, pAttacker);                         pAttacker->PointChange(POINT_SP, iSPAbso);                     }                 }             }
*Not:
Kod:
POINT_ERROR:

şeklinde syserr alırsanız aşağıdaki işlemi yapın;

*char.cpp açın
Bul:
Kod:
sys_err("POINT_ERROR: %s type %d val %d (max: %d)", GetName(), val, max_val);
Değiştir:
Kod:
sys_err("POINT_ERROR: %s type %d val %d (max: %d)", GetName(), type, val, max_val);

HP/SP Absorbe Sistemi Fix Nedir?
Metin2 özel sunucularında geliştirilen sistemlerden biri olan HP/SP Absorbe fix, oyuncuların hasar aldıklarında HP veya SP kazanmalarını sağlayan mekanizmaların düzeltildiği bir sistemdir. Bu sistem, özellikle PvP ortamlarında dengesizlik yaratmaması için geliştirilmiştir. Oyuncuların HP ve SP absorbsiyonu yoluyla avantaj elde etmeleri engellenerek oyun içi denge korunur. Bu yazıda HP/SP Absorbe fix sisteminin nasıl çalıştığını, neden gerekli olduğunu ve C++ tabanlı sunucularda nasıl uygulanacağını detaylı olarak ele alacağız.

HP/SP Absorbe Fix Neden Gereklidir?
Metin2 özel sunucularında geliştiriciler genellikle oyun deneyimini artırmak amacıyla çeşitli sistemler eklerler. Bunlardan biri de HP veya SP absorbsiyonudur. Bu sistem sayesinde oyuncular hasar verirken kendi canlarını ya da mana değerlerini geri kazanabilirler. Ancak bu durum, özellikle yüksek seviye PvP mücadelelerinde büyük bir avantaj sağlayabilir ve oyun içi adaleti bozabilir. Bu nedenle HP/SP Absorbe fix, bu tür absorbsiyonların belirli koşullarda devre dışı bırakılması için geliştirilmiştir. Bu sayede oyuncuların sadece yetenekleriyle değil, aynı zamanda stratejik oyun tarzlarıyla da kazanması sağlanır.

C++ Sunucularda HP/SP Absorbe Fix Nasıl Uygulanır?
HP/SP Absorbe fix uygulamak için genellikle oyun sunucusunun C++ kaynak kodları üzerinde değişiklik yapılması gerekir. Bu işlem sırasında 'game core' kısmında bulunan absorbsiyon fonksiyonları incelenir. Geliştiriciler, belirli PvP durumlarında bu fonksiyonların devreye girmesini engellemek için özel kontroller eklerler. Örneğin, iki oyuncu arasında PvP mücadelesi varsa, absorbsiyonun devreye girmemesi sağlanır. Bu tür sistemler genellikle 'martysama', 'metin2dev' gibi topluluklar tarafından geliştirilen kaynak kodlar üzerinden entegre edilir.

Fix Sisteminin Avantajları
Bu fix sayesinde oyuncuların dengeli bir PvP ortamında mücadele etmesi sağlanır. Özellikle turnuvalarda ve rekabetçi oyunlarda bu sistem büyük önem taşır. HP/SP absorbsiyonundan kaynaklanan aşırı avantajlar ortadan kalkar. Bu da oyunun uzun sürekliliğini ve oyuncu sadakatini artırır. Geliştiriciler içinse bu sistem, sunucularında daha profesyonel bir yapı kurmalarını sağlar.

Sonuç
HP/SP Absorbe fix sistemi, Metin2 özel sunucularında oyun içi dengeyi korumanın etkili yollarından biridir. Özellikle PvP odaklı sunucularda bu sistemin doğru bir şekilde entegrasyonu, hem oyuncular hem de geliştiriciler için büyük faydalar sağlar. Bu fix, sadece teknik bir düzeltme değil aynı zamanda oyun deneyimi kalitesini artıran stratejik bir unsurdur.


What is HP/SP Absorbe Fix?
The HP/SP Absorbe fix is a system developed for Metin2 private servers to correct mechanisms that allow players to gain HP or SP upon taking damage. This system is designed to maintain balance in PvP environments by preventing players from gaining unfair advantages through HP or SP absorption. In this article, we will detail how the HP/SP Absorbe fix works, why it's necessary, and how it is implemented on C++ based servers.

Why is HP/SP Absorbe Fix Necessary?
Developers often add various systems to enhance gameplay in Metin2 private servers. One such system is HP or SP absorption, which allows players to regain their health or mana while dealing damage. However, this can provide a significant advantage during high-level PvP battles and disrupt in-game fairness. Therefore, the HP/SP Absorbe fix is designed to disable such absorption under specific conditions. This ensures that victories are achieved not only through character stats but also through strategic gameplay.

How to Implement HP/SP Absorbe Fix on C++ Servers?
Implementing the HP/SP Absorbe fix typically requires modifications to the server’s C++ source code. During this process, the absorption functions located in the 'game core' section are reviewed. Developers add custom checks to prevent these functions from triggering under certain PvP conditions. For example, if two players engage in PvP, the absorption may be disabled. Such systems are often integrated using source codes developed by communities like 'martysama' and 'metin2dev'.

Advantages of the Fix System
This fix ensures a balanced PvP environment where players compete fairly. It is especially crucial in tournaments and competitive gameplay. Excessive advantages caused by HP/SP absorption are eliminated, enhancing both the longevity and player loyalty of the game. For developers, this system helps establish a more professional structure within their servers.

Conclusion
The HP/SP Absorbe fix system is an effective way to maintain in-game balance in Metin2 private servers. Proper integration of this system in PvP-focused servers offers great benefits for both players and developers. This fix is not just a technical correction but also a strategic element that enhances the overall quality of the gaming experience.
 

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

Benzer konular

Geri
Üst Alt