Üç Yol Savaşı Lv.99 Üzerindeki Karakterlerin Ölümlerini Saymama Hatası 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 37

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba arkadaşlar.
Üç Yol Savaşı yaparken Lv.99 üzerindeki karakterlerin ölümleri sayılmıyordu.
Düzeltmek için:
Kod:
//arat;     int iMinLevelFor3Point, iMaxLevelFor3Point; //altına ekle;     int iMinLevelFor4Point, iMaxLevelFor4Point; //tekrar arat;     iMinLevelFor3Point = 50; iMaxLevelFor3Point = 99; //altına ekle;     iMinLevelFor4Point = 100; iMaxLevelFor4Point = gPlayerMaxLevel; //tekrar arat;     else if (iMinLevelFor3Point <= level && level <= iMaxLevelFor3Point)     {         return 3;     } //altına ekle;     else if (iMinLevelFor4Point <= level && level <= iMaxLevelFor4Point)     {         return 4;     }

Üç Yol Savaşı Lv.99 Üzerindeki Karakterlerin Ölümlerini Saymama Hatası Fix

Metin2 özel sunucularında üç yol savaşı sistemi, oyuncuların PvP performanslarını karşılaştırmaları ve derecelerini yükseltmeleri için önemli bir özelliktir. Ancak Lv.99 üzerindeki karakterlerde bazı durumlarda ölümler doğru şekilde sayaçlara aktarılmaz. Bu durum hem oyuncu deneyimini düşürür hem de turnuvalar sırasında haksız avantajlara neden olabilir.

Hatanın Kaynağı Nedir?
Bu hata genellikle oyuncunun seviyesi 99' un üzerine çıktığında karakterin PvP sistemi tarafından farklı bir şekilde değerlendirilmesinden kaynaklanmaktadır. Özellikle game_core.cpp veya fight.cpp gibi temel dosyalarda Lv.99 ve üzeri karakterler için ayrı bir filtreleme ya da sayaç kontrolü eksik olabilir. Bu da ölümlerin global sayaçlara yazılmamasına neden olur.

Fix Nasıl Uygulanır?
Öncelikle game_src klasöründe bulunan fight.cpp dosyasına girilir. Character::Dead fonksiyonunda Lv.99 kontrolünü atlayan bir if bloğu olabilir. Bu blok şu şekilde düzeltilmelidir:

Kod:
if (GetLevel() > 99)[BR][/BR]{[BR][/BR]    // Lv.99+ karakterler için sayaç güncelleme işlemi[BR][/BR]    UpdateThreeWayWarDeathCount();[BR][/BR]}


Yan Etkiler
Bu fixin uygulanmasının ardından test aşamasında Lv.100 karakterlerin ölümleri doğru şekilde sayaçlara yazılmalıdır. Ancak bu değişikliğin diğer PvP sistemlerine etkisi dikkatlice gözlemlenmelidir. Özellikle event savaşları ve clan savaşlarında benzer sayaçlama hataları olup olmadığı kontrol edilmelidir.

Alternatif Fix Yöntemleri
Bazı geliştiriciler Lv.100 ve üzeri karakterler için ayrı bir sayaç yapısı önermektedir. Bu yapı sayesinde Lv.99 ve altı ile Lv.100 ve üzeri karakterler arasında ayrım yapılabilir. Bu yöntem daha kapsamlı bir yapı sunar ancak aynı zamanda DB tarafında ek tablolar gerektirebilir.

Sonuç
Lv.99 üzerindeki karakterlerin ölümlerinin sayaçlara yazılması, Metin2 özel sunucularda adil bir PvP ortamı sağlamak için hayati öneme sahiptir. Bu fix ile birlikte turnuva sistemlerinizde daha adil sonuçlar elde edebilirsiniz. Daha fazla C++ tabanlı Metin2 geliştirme ipuçları için Metin2Lobby sitesini takip edin.


Fix for Three Way War Not Counting Deaths of Lv.99+ Characters

In Metin2 private servers, the three-way war system is essential for players to compare their PvP performance and increase their ranks. However, sometimes characters above Lv.99 do not have their deaths counted properly. This can reduce player experience and cause unfair advantages during tournaments.

What Causes the Error?
This issue often occurs when a character’s level exceeds 99, causing the PvP system to evaluate them differently. Specifically, in core files like game_core.cpp or fight.cpp, there might be missing filters or counters for Lv.99+ characters, which prevents death counts from being written into global counters.

How to Apply the Fix?
First, open the fight.cpp file located in your game_src folder. In the Character::Dead function, you may find an if block that skips the Lv.99 check. It should be corrected as follows:

Kod:
if (GetLevel() > 99)[BR][/BR]{[BR][/BR]    // Update death counter for Lv.99+ characters[BR][/BR]    UpdateThreeWayWarDeathCount();[BR][/BR]}


Side Effects
After applying this fix, ensure that Lv.100 characters’ deaths are correctly logged into counters. However, monitor other PvP systems carefully, such as event battles and clan wars, for similar counting issues.

Alternative Fix Approaches
Some developers suggest creating separate counters for Lv.100+ characters. This allows differentiation between Lv.99 and below versus Lv.100 and above. While this approach offers more flexibility, it may require additional database tables.

Conclusion
Ensuring deaths of characters above Lv.99 are counted is crucial for maintaining a fair PvP environment on Metin2 private servers. With this fix, you can achieve more balanced tournament outcomes. For more C++ based Metin2 development tips, follow Metin2Lobby.
 

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

Geri
Üst Alt