Diğer konudan farklı bir hesaplama yöntemi ile kritik vuruş şansına göre hesaplatarak kritik vuruşdaki
1 puanlık artışın bile işe yaramasını sağlayabiliriz.
içinde bulunur :
dam *=2; değiştirilir.
Delici Vuruş düzenlemesi :
char_battle.cpp arat :
içinde bulunur :
değiştirilir.
---------------------------------------------------------------------------------------------------------------------------------------------
V 1.1 Güncellemesi :
Sistem sadece canavarlara karşı çalışsın vslerde eskisi gibi devam etsin istiyorsanız :
İsteyen arkadaşa teşekkürler.
<blockquote data-attributes="member: 1011248" data-quote="damador61" data-source="post: 21646195" class="bbCodeBlock bbCodeBlock--expandable bbCodeBlock--quote js-expandWatch">
1 puanlık artışın bile işe yaramasını sağlayabiliriz.
Kod:
if (type == DAMAGE_TYPE_MELEE || type == DAMAGE_TYPE_RANGE || type == DAMAGE_TYPE_MAGIC) bulunur.
içinde bulunur :
Kod:
if (number(1, 100) <= iCriticalPct) { IsCritical = true; dam *= 2; }
dam *=2; değiştirilir.
Kod:
dam = dam + (dam * (iCriticalPct / 200)) ;
Delici Vuruş düzenlemesi :
char_battle.cpp arat :
Kod:
if (number(1, 100) <= iPenetratePct)
içinde bulunur :
Kod:
dam += GetPoint(POINT_DEF_GRADE) * (100 + GetPoint(POINT_DEF_BONUS)) / 100;
değiştirilir.
Kod:
dam = dam + (dam * (iPenetratePct/ 200)) ;
---------------------------------------------------------------------------------------------------------------------------------------------
V 1.1 Güncellemesi :
Sistem sadece canavarlara karşı çalışsın vslerde eskisi gibi devam etsin istiyorsanız :
İsteyen arkadaşa teşekkürler.
Kod:
Kritik vuruş : if (number(1, 100) <= iCriticalPct) { IsCritical = true; if ( pkVictim->IsMonster() || IsStone() || GetMobRank() == MOB_RANK_BOSS) dam = dam + (dam * (iCriticalPct / 200)) ; EffectPacket(SE_CRITICAL); else dam *=2 ; EffectPacket(SE_CRITICAL); if (IsAffectFlag(AFF_MANASHIELD)) { RemoveAffect(AFF_MANASHIELD); } } Delici Vuruş : if (number(1, 100) <= iPenetratePct) { IsPenetrate = true; if (test_server) ChatPacket(CHAT_TYPE_INFO, LC_TEXT("관통 추가 데미지 %d"), GetPoint(POINT_DEF_GRADE) * (100 + GetPoint(POINT_DEF_BONUS)) / 100); if ( pkVictim->IsMonster() || IsStone() || GetMobRank() == MOB_RANK_BOSS) dam = dam + (dam * (iPenetratePct / 200)) ; else dam += GetPoint(POINT_DEF_GRADE) * (100 + GetPoint(POINT_DEF_BONUS)) / 100; if (IsAffectFlag(AFF_MANASHIELD)) { RemoveAffect(AFF_MANASHIELD); } #ifdef ENABLE_EFFECT_PENETRATE EffectPacket(SE_PENETRATE); #endif [HASH=2]#ifdef[/HASH][#ifdef [CENTER] Örnek kodlara göre düzenleyiniz. KANIT: [ATTACH type="full#endifh="647px" alt="Ekran görüntüsü 2025-03-11 181718.png"]135499[/ATTACH][/CENTER]
Kritik ve Delici Vuruş Değişimi (%100 ü Geçen Sunucular İçin Kullanılabilir)
Metin2 özel sunucu geliştirme sürecinde, oyuncuların daha adil ve dengeli bir savaş deneyimi yaşaması için birçok mekanizma optimize edilmektedir. Bu mekanizmalardan birisi de kritik ve delici vuruş sistemleridir. Bu sistemler, özellikle PvP odaklı sunucularda, karakterlerin saldırı yeteneklerini doğrudan etkileyerek oyun içi stratejileri ve dengeleri ciddi anlamda değiştirebilir. Ancak bazı özel sunucularda, kritik veya delici vuruş oranları %100'ü geçecek şekilde ayarlanabiliyor. Bu da oyunun dengesini bozabilecek ciddi bir risk taşır. Bu nedenle, kritik ve delici vuruş oranlarını %100'ün altına çekmek ve aynı zamanda oyuncuların bu mekanizmalardan etkilenmelerini sağlamak oldukça önemli bir geliştirici görevidir.
Kritik Vuruş Nedir?
Kritik vuruş, bir oyuncunun normal saldırı hasarının üzerine ekstra bir hasar katlayarak verdiği ani ve güçlü darbedir. Genellikle bir şans sistemiyle çalışır ve oyuncunun ekipmanı, beceri seviyesi ya da bonus değerleri üzerinden hesaplanır. Metin2 özel sunucularda bu sistem genellikle C++ kaynak kodlar üzerinde değişiklik yapılarak özelleştirilir. Ancak kritik vuruş oranının %100'ü geçmesi durumunda, her saldırıda kritik vuruş gerçekleşeceği için hasar dengesi bozulur ve oyun zevki azalabilir.
Delici Vuruş Nedir?
Delici vuruş ise düşmanın zırhını kısmen veya tamamen yok sayarak daha fazla hasar verme mekanizmasıdır. Bu özellik de kritik vuruş gibi oyuncuların PvP stratejilerini etkileyen önemli bir özelliktir. Delici vuruş oranı da %100'ü geçtiğinde, tüm saldırılar zırhı delerek hasar vereceği için savunma sistemleri anlamsız hale gelir. Bu da karakterlerin zayıf düşmanlar tarafından bile kolayca alt edilmesine yol açabilir.
%100 Üzeri Oranların Engellenmesi
Sunucu geliştiricileri, bu tür sınırsız oranları engellemek için genellikle C++ kaynak kodlarda hasar hesaplama fonksiyonlarını düzenlerler. Örneğin, kritik veya delici vuruş oranını hesaplayan algoritmaların sonucunu bir koşula bağlamak suretiyle maksimum oranı %100'e kadar sınırlamak mümkündür. Bu işlem genellikle game core veya db core dosyalarında yapılır. Ayrıca, Python tabanlı GUI sistemlerle bu oranları kontrol eden komutlar da eklenebilir. Bu sayede sunucu yöneticileri, anlık olarak oyuncuların oranlarını kontrol edip gerekli müdahaleyi yapabilirler.
Kaynak Kod Düzenlemesi[/CHARACTER]
Kritik ve delici vuruş oranları genellikle karakterin str, dex, int gibi temel niteliklerine ve ekipmanlarına göre hesaplanır. Bu değerler client src ve server src arasında senkronize şekilde çalışır. Eğer bu oranlar %100'ü geçiyorsa, muhtemelen game/src/char_battle.cpp veya benzeri dosyalarda yer alan hasar algoritması bu şekilde ayarlanmıştır. Bu tür kaynak kodları düzenlemek isteyen geliştiriciler, Martysama gibi güvenilir kaynaklardan destek alabilirler.
Sunucu Dengesizliğinin Sonuçları
%100 üzerinde kritik veya delici vuruş oranına sahip karakterler, PvP ortamında diğer oyunculara karşı büyük avantaj sağlar. Bu da oyun içi adalet duygusunun bozulmasına ve oyuncuların sunucudan uzaklaşmasına neden olabilir. Özellikle Metin2 özel sunucularında, oyuncular dengeli bir mücadele arayışındadır. Bu yüzden geliştiricilerin bu tür sistemleri dikkatli yönetmesi şarttır.
Önerilen Çözüm: Oran Sınırlama Mekanizması
Olası dengesizlikleri önlemek için geliştiriciler, kritik ve delici vuruş oranlarının %100'ü geçmemesini sağlayan bir sistem kurmalıdır. Bu sistem, auth server ile entegre çalışarak karakter verilerini gerçek zamanlı olarak analiz edebilir. Böylece herhangi bir karakterin bu oranlardan biri %100'ü geçtiğinde otomatik olarak uyarı gönderilir veya oranlar manuel olarak düşürülebilir. Bu tür sistemlerin kurulumu için Python tabanlı GUI araçları oldukça etkilidir. Py Root veya UIScript ile bu sistemler kolayca entegre edilebilir.
Sonuç
Kritik ve delici vuruş sistemleri, Metin2 özel sunucularında PvP deneyimini zenginleştiren önemli unsurlardır. Ancak bu oranların %100'ü geçmesi, oyun içi dengeyi ciddi şekilde bozabilir. Geliştiricilerin bu konuda hassas hareket etmesi ve uygun source edit süreçleri ile bu mekanizmaları kontrol altında tutması büyük önem taşır. Bu sayede sunucular, daha dengeli ve eğlenceli bir PvP ortamı sunabilir.
Critical and Penetration Hit Change (Applicable for Servers Exceeding 100%)
Metin2 private server development involves optimizing various mechanisms to ensure players experience fair and balanced combat. One such mechanism is the critical hit and penetration hit systems. These systems directly affect character attack capabilities, especially on PvP-oriented servers, significantly altering in-game strategies and balances. However, on some private servers, critical or penetration hit rates can be set to exceed 100%. This poses a significant risk of unbalancing the game. Therefore, reducing critical and penetration hit rates below 100% while ensuring players are still affected by these mechanics is a crucial developer task.
What Is Critical Hit?
Critical hit occurs when a player delivers a sudden, powerful blow that multiplies their normal attack damage. It usually operates via a chance-based system and is calculated based on the player's equipment, skill level, or bonus values. In Metin2 private servers, this system is typically customized by modifying C++ source code. However, if the critical hit rate exceeds 100%, a critical hit will occur with every attack, which disrupts damage balance and may reduce gameplay enjoyment.
What Is Penetration Hit?
Penetration hit allows bypassing the opponent's armor partially or entirely to deal more damage. Like critical hits, this feature significantly affects PvP strategies. If the penetration hit rate exceeds 100%, all attacks will ignore armor, rendering defense systems meaningless. This can result in even weak enemies easily defeating characters.
Preventing Rates Above 100%
To prevent such unlimited rates, developers often modify damage calculation functions in C++ source code. For instance, limiting the maximum rate to 100% by linking the algorithm's output to a condition is possible. This process typically occurs within game core or db core files. Additionally, commands that monitor these rates can be added via Python-based GUI systems. This allows server administrators to instantly check player rates and take necessary action.
Source Code Modification
Critical and penetration hit rates are generally calculated based on a character's core attributes like str, dex, int, and equipment. These values operate synchronously between client src and server src. If these rates exceed 100%, likely the damage algorithm in files like game/src/char_battle.cpp has been configured this way. Developers seeking to modify such source code can seek support from reliable sources like Martysama.
Consequences of Server Imbalance
Characters with critical or penetration hit rates above 100% gain significant advantages over other players in PvP environments. This can disrupt the sense of fairness in the game and cause players to leave the server. Especially in Metin2 private servers, players seek balanced combat experiences. Thus, it is essential for developers to manage these systems carefully.
Recommended Solution: Rate Limiting Mechanism
To prevent potential imbalances, developers should implement a system ensuring critical and penetration hit rates do not exceed 100%. This system can work integrated with the auth server to analyze character data in real-time. When any character's rate exceeds 100%, an automatic warning can be sent or the rate manually reduced. Such systems can be easily integrated using Python-based GUI tools. Systems like Py Root or UIScript are highly effective for this purpose.
Conclusion
Critical and penetration hit systems are important elements enriching the PvP experience in Metin2 private servers. However, exceeding 100% in these rates can seriously disrupt in-game balance. Developers must handle this issue sensitively and maintain control over these mechanisms through proper source editing processes. This ensures servers provide a more balanced and enjoyable PvP environment.
