Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[TABLE=full][TR][TD]Rakibin Saldırı Değerini azaltma > Mevcut[/TD][TD][/TD][TD][/TD][TD][/TD][TD][/TD][/TR][TR][TD]Rakibin hesef ıskalama şansını artırma > Mevcut değil[/TD][TD][/TD][TD][/TD][TD][/TD][TD][/TD][/TR][/TABLE]
Oyun İçi açıklaması:
Rakibin saldırı değerini azaltır > Mevcut
Rakiplerin hedef ısklamasını arttırır > Mevcut değil
Sadece sana isabet ettiğinde aktifleşir > Mevcut değil[/QUOTE]
Özetle yapması gereken düşmanın saldırı gücünü azaltmak ve beceri isabet şansını düşürmek
Saldırı azaltma kısmı sorunsuz çalışıyor, Ortalama olarak gelen hasar 300se P iken bunu 200e kadar düşürüyor
Ancak nasıl bir mantıkla yaptılarsa yetenek kısmı sıkıntılı bu kısmı düzeltmeyi göstericem
*char_battle.cpp
Aratın ve silin:
Kod:
enum DamageFlag { DAMAGE_NORMAL = (1 << 0), DAMAGE_POISON = (1 << 1), DAMAGE_DODGE = (1 << 2), DAMAGE_BLOCK = (1 << 3), DAMAGE_PENETRATE= (1 << 4), DAMAGE_CRITICAL = (1 << 5), };
Aratın:
bool CHARACTER:
Üstüne ekleyin:
Kod:
enum DamageFlag { DAMAGE_NORMAL = (1 << 0), DAMAGE_POISON = (1 << 1), DAMAGE_DODGE = (1 << 2), DAMAGE_BLOCK = (1 << 3), DAMAGE_PENETRATE= (1 << 4), DAMAGE_CRITICAL = (1 << 5), };
Aratın:
Kod:
if (type != DAMAGE_TYPE_NORMAL && type != DAMAGE_TYPE_NORMAL_RANGE) { if (IsAffectFlag(AFF_TERROR)) { int pct = GetSkillPower(SKILL_TERROR) / 400; if (number(1, 100) <= pct) return false; } }
Değiştirin:
Kod:
if (IsAffectFlag(AFF_TERROR)) { if (type != DAMAGE_TYPE_NORMAL && type != DAMAGE_TYPE_NORMAL_RANGE) { int iTerrorPCT = GetSkillPower(SKILL_TERROR) / 3.3; if (number(1, 100) <= iTerrorPCT) { SendDamagePacket(pAttacker, 0, DAMAGE_BLOCK); return false; } } }
Hata 1: pct değikeni aynı fonksiyonda 3 ayrı hesaplama için kullanılıyor, yanlış hesaplama yapması mümkün
Hata 2: GetSkillPower(SKILL_TERROR)' ün verdiği değerler;
M1: 50
G1: 82
P: 125
şeklinde. orjinal kısımda bu değerleri 400'e bölüyor!? ve en yüksek seviye dehşet için 125 / 400 den 0.3125 gibi komik bir rakam çıkıyor ve sistem yuvarladığında 1 bile etmiyor direk bu kısmı pas geçiyor. düzenlemesi için 3.3 olarak değiştirildi bu şekilde tam olarak skilldesc de yansıttığı oranda uyguluyor
Hata 3: Block paketi eklenmemiş eğer oran tutturulursa pas geçer, şuan block paketi eklendiğinden oran tutturulursa miss olarak gözükür
Dehşet Bugu Fix: Metin2 Sunucularında Oyun Dışı Hataların Giderilmesi
Metin2 özel sunucularında karşılaşılan Dehşet Bugu gibi hatalar, oyuncu deneyimini ciddi şekilde etkileyebilir. Bu yazıda, Dehşet Bugu Fix konusunu detaylıca ele alarak, C++ tabanlı sistemlerde nasıl çözülebileceğini anlatacağız.
Dehşet Bugu Nedir?
Metin2 özel sunucularında, oyuncular bazen oyun içi hatalarla karşılaşabilir. Bu hatalardan biri olan 'Dehşet Bugu', karakterin bazı yeteneklerini veya durumlarını beklenmedik şekilde etkileyebilir. Bu durum, PvP sistemlerinde özellikle ciddi avantaj veya dezavantajlar yaratabilir. Bu nedenle, sunucu geliştiricileri için bu hatayı düzeltmek büyük önem taşır.
Hatanın Kaynağı: C++ ve Kaynak Kod Seviyesinde Arama
Dehşet Bugu genellikle yetenek sistemlerinin işleyişindeki mantık hatalarından doğar. Özellikle game core ve db core üzerinde yapılan değişiklikler sırasında, yetenek aktivasyonları ile ilgili kontrol mekanizmaları eksik bırakılırsa bu tür hatalar oluşabilir. Bu hatayı çözmek için src klasöründe bulunan yetenek sistemi dosyaları incelenmelidir. client src ile server src arasında senkronizasyon sağlanmalıdır.
Fix Uygulaması: Yetenek Sisteminde Değişiklikler
Yetenek sistemi genellikle C++ dilinde yazılmıştır ve Martysama gibi kaynaklar üzerinden erişilebilir. Yetenek sistemlerinde, yetenek aktivasyonundan sonra bekleme süresi (cooldown), yeteneğin tekrar kullanılabilirliğini kontrol eder. Ancak bazı özel durumlarda, bu kontrol eksik kalabilir. Bu da karakterin beklenmedik şekilde yetenek kullanmasına neden olabilir. Bu sorunun çözümü için yetenek kullanım fonksiyonuna ek kontroller eklenmelidir. Örneğin, yeteneğin aktif olup olmadığına dair bir kontrol eklenebilir.
Python ve GUI Kullanımı ile Test Ortamı Oluşturmak
Metin2 geliştiricileri, yetenek sistemlerini test etmek için Python tabanlı GUI araçları kullanabilir. Py Root ve Py Gui gibi yapılar sayesinde, yetenek sistemlerini hızlıca test edebilirsiniz. Bu test ortamları, yeteneklerin doğru çalışıp çalışmadığını kontrol etmek için idealdir. Böylece, Dehşet Bugu gibi hatalar canlı sunucuya geçmeden önceden tespit edilebilir.
Veritabanı (DB) ile İlişki
Yetenek sistemleri, genellikle db üzerinde tutulan karakter verileriyle ilişkilidir. Bu yüzden, yetenek sisteminde yapılan değişiklikler DB tarafında da yansıtılmalıdır. DB Core üzerinde yapılan eksiklikler, yeteneklerin doğru çalışmamasına neden olabilir. Bu nedenle, yetenek sistemlerinde yapılan değişiklikler DB ile de senkronize olmalıdır.
PvP Sistemlerinde Etkisi
Metin2 özel sunucularında PvP sistemleri, yeteneklerin doğru çalışmasına bağlıdır. Dehşet Bugu gibi hatalar, PvP maçlarında haksız avantajlar yaratabilir. Bu nedenle, sunucu sahipleri bu tür hataları mutlaka gidermelidir. Metin2 PVP sistem geliştiricileri, yetenek sistemlerinin tümünü test etmeli ve gerekli düzenlemeleri yapmalıdır.
Compile ve Deploy Aşaması
Yapılan değişikliklerden sonra, Metin2 Compile işlemi mutlaka yapılmalıdır. Compile işlemi sırasında hata alınmaması için, tüm dosyalar doğru şekilde yapılandırılmış olmalıdır. Compile sonrası, test sunucusunda sistemin doğru çalışıp çalışmadığı kontrol edilmelidir. Herhangi bir sorun bulunursa, tekrar kodlar gözden geçirilmelidir.
Sonuç
Dehşet Bugu Fix işlemi, Metin2 özel sunucuları için hayati öneme sahiptir. C++ tabanlı yetenek sistemlerinde yapılan eksik kontroller, oyuncu deneyimini olumsuz etkiler. Bu nedenle, yetenek sistemlerinde dikkatli kodlama ve test işlemleri yapılmalıdır. Metin2 Development süreci, hem Game hem de Auth sunucuları üzerinde detaylı kontrol gerektirir. Bu tür hataların önlenmesi için, sunucu sahipleri düzenli olarak sistemleri güncellemelidir.
Terror Bug Fix: Solving Out-of-Game Errors in Metin2 Servers
Issues like the Terror Bug in Metin2 private servers can significantly impact player experience. In this article, we will discuss the solution for the Terror Bug Fix in detail, particularly how to resolve it within C++ based systems.
What is the Terror Bug?
In Metin2 private servers, players may sometimes encounter in-game errors. One such issue is the 'Terror Bug', which unexpectedly affects certain character abilities or states. This can create significant advantages or disadvantages during PvP matches, making it crucial for server developers to address this issue.
Source of the Error: Searching at the C++ and Source Code Level
The Terror Bug often arises from logic errors in ability handling systems. Particularly during modifications to the game core and db core, if ability activation controls are not properly implemented, these types of bugs can occur. To resolve this issue, files related to ability systems located in the src folder must be reviewed. Synchronization between client src and server src should be ensured.
Implementing the Fix: Modifications in Ability Systems
Ability systems are generally written in C++, and resources like Martysama can be used for reference. Within the ability system, cooldowns control whether an ability can be used again after activation. However, in some cases, checks might be missing, causing unexpected ability usage. To fix this, additional checks can be added to the ability activation function, such as verifying whether the skill is currently active.
Creating a Testing Environment with Python and GUI
Metin2 developers can use Python-based GUI tools to test ability systems. With structures like Py Root and Py Gui, you can quickly test whether ability systems work correctly. These testing environments are ideal for detecting issues like the Terror Bug before they reach live servers.
Relationship with Database (DB)
Ability systems are often linked to character data stored in the db. Therefore, any changes made in the ability system must also be reflected in the database. Deficiencies in the DB Core can lead to abilities not functioning correctly. Thus, any updates made in the ability systems must be synchronized with the database as well.
Effect on PvP Systems
PvP systems in Metin2 private servers depend heavily on abilities working correctly. Issues like the Terror Bug can cause unfair advantages in PvP matches. Therefore, server owners must ensure that such errors are resolved. Developers working on Metin2 PVP systems should thoroughly test all abilities and make necessary adjustments.
Compilation and Deployment Stage
After implementing changes, the Metin2 Compile process must be performed. For error-free compilation, all files must be properly configured. After compiling, the system should be tested on a test server to confirm correct functionality. If any problems arise, the code should be reviewed again.
Conclusion
The Terror Bug Fix is vital for Metin2 private servers. Missing checks in C++-based ability systems negatively impact the player experience. Therefore, careful coding and thorough testing of ability systems must be conducted. The Metin2 Development process requires detailed checks on both Game and Auth servers. Server owners should regularly update their systems to prevent such errors.
