Dehşet Becerisi Düzenlemesi C++

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

Admin

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


[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

Ö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:
Kod:
bool CHARACTER::Damage(LPCHARACTER pAttacker, int dam, EDamageType type)
Ü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
Metin2'de Dehşet Becerisi Düzenlemesi C++

Metin2 özel sunucularında oyun deneyimini artırmak adına birçok beceri düzenlenebilir. Bu yazıda, Dehşet becerisinin nasıl C++ üzerinde düzenleneceği ele alınacaktır. Metin2 geliştirme sürecinde, özellikle game core üzerinde değişiklik yaparak bu gibi becerileri özelleştirmek mümkündür. Bu işlem hem client src hem de server src üzerinde çalışmayı gerektirir.

Dehşet Becerisi Nedir?
Dehşet, Metin2 oyununda bir karakterin rakibini kısa süreliğine hareket ettiremez hale getiren güçlü bir beceridir. Bu beceri, PvP sistemlerinde stratejik olarak büyük önem taşır. Sunucu tarafında, bu becerinin etki süresi, hasarı veya etki alanı gibi parametreler özelleştirilebilir.

C++ ile Beceri Düzenleme
Metin2 sunucularında beceriler genellikle game core içinde tanımlanır. C++ dilinde yazılmış bu yapılar sayesinde geliştiriciler beceri davranışlarını kontrol edebilir. Dehşet becerisi için skill.cpp dosyası incelenmelidir. Bu dosya içinde beceri ID'ye göre tanımlanan fonksiyonlar bulunur. Özel efekt, hasar miktarı, etki süresi gibi değerler burada belirlenir.

Python ve UI Script Entegrasyonu
Becerilerin istemci tarafında doğru gösterimi için uiscript ve py root üzerinde de değişiklikler yapılmalıdır. Py GUI arayüzü üzerinden beceri simgesi, açıklaması ve seviye bilgileri güncellenir. Bu sayede oyuncular beceriyle etkileşim kurarken doğru bilgi alırlar. Python sistemleri, beceri animasyonları ve ses efektleri için de kullanılabilir.

Martysama ve Kaynak Kod Paylaşımı
Metin2 geliştiricileri arasında popüler olan martysama platformları, birçok beceri düzenlemesi için örnek C++ kaynak kod sağlar. Bu kodlar doğrudan source edit süreçlerinde kullanılabilir. Dehşet becerisi için örnek bir düzenlemeyi bu kaynaklardan alarak kendi projenize entegre edebilirsiniz.

Veritabanı ve Yetkilendirme
Oyun becerileri, DB üzerinde de tanımlıdır. Auth ve Game sunucularındaki veritabanlarında beceri parametreleri yer alabilir. Bu sayede beceri sistemi sunucu çapında yönetilebilir. Metin2 lobby sistemleri bu verileri kullanarak beceri seviyesini dinamik olarak ayarlayabilir.

Derleme ve Test
Yaptığınız değişikliklerden sonra, Metin2 compile işlemi yapmanız gerekir. Channel sunucularında test ederek becerinin doğru çalışıp çalışmadığını kontrol edin. Hatalar varsa log dosyalarını inceleyerek düzeltebilirsiniz.

Sonuç
Metin2 özel sunucularında dehşet becerisi gibi becerileri düzenlemek, oyun deneyimini ciddi anlamda artırabilir. C++ tabanlı game server programming ile bu gibi geliştirmeler yapmak mümkündür. Client src ve server src üzerinde uyumlu çalışmak, sistemin kararlılığını korur.


Editing Horror Skill in Metin2 with C++

In Metin2 private servers, many skills can be customized to enhance gameplay. In this article, we will focus on how to edit the Horror skill using C++. During Metin2 development, customizing such skills by modifying the game core is possible. This process involves working on both client src and server src.

What is the Horror Skill?
Horror is a powerful skill in Metin2 that temporarily immobilizes an opponent. This skill holds strategic importance in PvP systems. On the server side, parameters like its duration, damage, or area of effect can be customized.

Editing Skills with C++
In Metin2 servers, skills are generally defined inside the game core. With C++ code, developers can control skill behaviors. For the Horror skill, you should examine the skill.cpp file. Within this file, functions related to the skill ID define values like damage amount, effect duration, and special effects.

Python and UI Script Integration
For proper display of skills on the client side, changes must also be made in uiscript and py root. The skill icon, description, and level information can be updated through the Py GUI interface. This ensures players receive accurate information during interactions. Python systems may also be used for animations and sound effects associated with the skill.

Martysama and Source Code Sharing
Among Metin2 developers, platforms like martysama provide example C++ source codes for various skill edits. These codes can be directly integrated into your project during source edit processes. You can take examples for the Horror skill from these sources and apply them to your own server.

Database and Authorization
Game skills are also defined in the DB. Skill parameters can be found in the databases of Auth and Game servers. This allows the skill system to be managed across the entire server. Metin2 lobby systems can use these to dynamically adjust skill levels.

Compilation and Testing
After making your changes, you need to perform a Metin2 compile. Test the skill on Channel servers to ensure it works correctly. If errors occur, review the log files to fix them.

Conclusion
Customizing skills like the Horror skill in Metin2 private servers can significantly improve gameplay. Such improvements are achievable through C++-based game server programming. Working coherently on client src and server src, as well as maintaining system stability, is crucial. Client src and server src compatibility ensures stability.
 

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

Benzer konular

Geri
Üst Alt