Sersemlik Bugu Fix (Kalkan Tak Çıkar Yapmaya Gerek Yok)

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Başlıkta belırttığım gıbı kalkan tak çıkar yapmaya gerek kalmıyor

Item.cpp açılır ve aratılır

Kod:
DWORD dwImmuneFlag = 0;     for (int i = 0; i < WEAR_MAX_NUM; ++i)         if (m_pOwner->GetWear(i))             SET_BIT(dwImmuneFlag, m_pOwner->GetWear(i)->m_pProto->dwImmuneFlag);     m_pOwner->SetImmuneFlag(dwImmuneFlag);

Değıştırılır


Iyı Forumlar
Kod:
DWORD dwImmuneFlag = 0;    LPITEM item = NULL;     for (int i = 0; i < WEAR_MAX_NUM; ++i)     {         if (item=m_pOwner->GetWear(i))         {             if (item->GetImmuneFlag() != 0)                 SET_BIT(dwImmuneFlag, item->GetImmuneFlag());             if (item->GetAttributeCount() > 0)             {                 if (item->HasAttr(APPLY_IMMUNE_STUN))                     SET_BIT(dwImmuneFlag, IMMUNE_STUN);                 if (item->HasAttr(APPLY_IMMUNE_SLOW))                     SET_BIT(dwImmuneFlag, IMMUNE_SLOW);                 if (item->HasAttr(APPLY_IMMUNE_FALL))                     SET_BIT(dwImmuneFlag, IMMUNE_FALL);             }         }     }     m_pOwner->SetImmuneFlag(dwImmuneFlag);

Tekrar Aratılır

Kod:
DWORD dwImmuneFlag = 0;     for (int i = 0; i < WEAR_MAX_NUM; ++i)         if (m_pOwner->GetWear(i))             SET_BIT(dwImmuneFlag, m_pOwner->GetWear(i)->m_pProto->dwImmuneFlag);     m_pOwner->SetImmuneFlag(dwImmuneFlag);

Değıştırılır

Kod:
DWORD dwImmuneFlag = 0;    LPITEM item = NULL;     for (int i = 0; i < WEAR_MAX_NUM; ++i)     {         if (item=m_pOwner->GetWear(i))         {             if (item->GetImmuneFlag() != 0)                 SET_BIT(dwImmuneFlag, item->GetImmuneFlag());             if (item->GetAttributeCount() > 0)             {                 if (item->HasAttr(APPLY_IMMUNE_STUN))                     SET_BIT(dwImmuneFlag, IMMUNE_STUN);                 if (item->HasAttr(APPLY_IMMUNE_SLOW))                     SET_BIT(dwImmuneFlag, IMMUNE_SLOW);                 if (item->HasAttr(APPLY_IMMUNE_FALL))                     SET_BIT(dwImmuneFlag, IMMUNE_FALL);             }         }     }     m_pOwner->SetImmuneFlag(dwImmuneFlag);

Iyı forumlar​

Sersemlik Bugu Fix (Kalkan Tak Çıkar Yapmaya Gerek Yok)


Metin2 özel sunucularında karşılaşılan yaygın sorunlardan birisi sersemlik bugu'dur. Bu bug, oyuncuların kalkan takıp çıkararak sersem efektinden etkilenmemelerini sağlar. Bu durum hem oyun içi deneyimi bozar hem de adil dövüş sistemini olumsuz etkiler.

Sersemlik bugunun temel nedeni, oyuncu kalkanı takarken veya çıkarırken kalkanın sersem efektini etkilememesiyle ilgilidir. Bu, özellikle PvP odaklı sistemlerde büyük bir avantaj sağlar ve oyun dengesini bozar.

Bu hatayı düzeltmek için, C++ kaynak kodlarında bulunan sersemlik kontrol mekanizması yeniden düzenlenebilir. Özellikle game_core dosyasında yer alan efekt sistemleri incelenmeli ve kalkan takma-çıkarma işlemleri sırasında efektlerin doğru şekilde işlenmesi sağlanmalıdır.

Fix işlemi için öncelikle ilgili fonksiyonlar belirlenmeli ve sersem efekti alındığında kalkan durumu kontrol edilmelidir. Eğer kalkan takılı değilse efekt normal şekilde işlenir. Ancak kalkan varsa bu efektin geçerli olup olmadığı kontrol edilmelidir.

Bazı geliştiriciler, bu hatayı engellemek için kalkan takıldığında otomatik olarak sersem efektini sıfırlayan sistemler geliştirir. Bu tür çözümler, sersemlik bugini tamamen ortadan kaldırabilir.

Python GUI sistemlerinde çalışan geliştiriciler, bu kontrolü py_root dosyasında da yapabilir. Kalkan durumu ve efekt senkronizasyonu sağlandığında, sersemlik bugu tamamen ortadan kalkar.

Ayrıca, DB-Core ile entegre çalışan sistemlerde, kalkan takılma ve çıkarma işlemleri sırasında efekt geçmişi loglanarak hata ayıklama kolaylaştırılabilir. Bu sayede daha hızlı ve güvenilir çözümler üretilebilir.

Metin2 özel sunucularında, özellikle PvP sistemlerinde bu tür hataların giderilmesi büyük önem taşır. Oyuncuların adil bir şekilde mücadele etmesi için bu fixlerin yapılması şarttır.

Martysama ve diğer Metin2 geliştirici toplulukları, bu tür sorunların çözümünde aktif rol oynar. Paylaştıkları kaynak kodlar ve sistemler sayesinde, sersemlik bug fix süreçleri hızlanır.

Sonuç olarak, sersemlik bug fix işlemi, hem oyun deneyimini artırmak hem de oyun içi adaleti sağlamak açısından kritik öneme sahiptir. Geliştiricilerin bu konuya duyarlı davranması gereklidir.


Stun Bug Fix (No Need to Equip Unequip Shield)


One of the common issues encountered in Metin2 private servers is the stun bug. This bug allows players to avoid being affected by stun effects by repeatedly equipping and unequipping their shields. This situation not only ruins the gaming experience but also negatively affects fair combat systems.

The main cause of the stun bug is that when players equip or remove their shields, the stun effect is not properly applied. This creates a significant advantage especially in PvP-oriented systems and disrupts game balance.

To fix this issue, the stun control mechanism found in C++ source code can be redesigned. Particularly, the effect systems located in the game_core file should be reviewed, ensuring that effects are processed correctly during shield equip/unequip operations.

For the fix, relevant functions must first be identified, and the shield status should be checked when a stun effect is received. If no shield is equipped, the effect is processed normally. However, if a shield is present, the validity of the effect must be verified.

Some developers implement systems where the stun effect is automatically reset when a shield is equipped, in order to prevent this bug. Such solutions can completely eliminate the stun bug.

Developers working with Python GUI systems can also perform this check within the py_root files. When synchronization between shield status and effects is achieved, the stun bug is completely eliminated.

Additionally, in systems integrated with DB-Core, logging effect history during shield equip/unequip operations can simplify debugging. This enables faster and more reliable solutions.

In Metin2 private servers, particularly in PvP systems, fixing such bugs is of great importance. To ensure fair combat among players, these fixes must be implemented.

Communities like Martysama play an active role in solving such issues. Thanks to shared source codes and systems, the processes for fixing stun bugs accelerate.

In conclusion, fixing the stun bug is critical both for enhancing the gaming experience and ensuring in-game fairness. Developers must remain sensitive to this matter.
 

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

Benzer konular

Geri
Üst Alt