Metin2 Pazarda Olan Karakterlere Saldırı Engelleme (Attack Block)

MG Yaşı
2 Ay 1 Gün
Katılım
2 Şub 2026
Konular
224
Mesajlar
363
Tepkime puanı
54
Puan
53
Konum
İstanbul
Metin2 Pazarda Olan Karakterlere Saldırı Engelleme (Attack Block)

Bazı serverlarda oyuncular pazardayken vurulabilmesi hem rahatsız edici olur hem de haksız ölümlere yol açar.
Özellikle şehir içi PvP açık sunucularda market karakterlerinin sürekli ölmesi ekonomi ve oyuncu deneyimini olumsuz etkiler.

Bu düzenleme ile pazara oturan karakterlere kimse saldırı yapamaz.
Bayrak fark etmeksizin tüm hasar türleri iptal edilir.




Temel Engelleme

Source içinde aşağıdaki dosyayı açın:

char_battle.cpp

Fonksiyonu bulun:

C++:
bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)

Fonksiyonun içine aşağıdaki kontrolü ekleyin:

C++:
if (pkVictim->GetShopOwner())
    return false;

Artık pazardaki karakter hedef alınamaz.




Config Üzerinden Aç/Kapat Yapma (Önerilir)

Sistemi config ile kontrol etmek daha sağlıklıdır.

config.cpp dosyasını açın ve şu satırı bulun:

C++:
int gPlayerMaxLevel = 99;

Altına ekleyin:

C++:
int oyuncuPazaraVuramasin = 0;

Aynı dosyada TOKEN bölümüne ekleyin:

C++:
TOKEN("OYUNCU_PAZARA_VURAMASIN")
{
    str_to_number(oyuncuPazaraVuramasin, value_string);
    continue;
}

config.h içine ekleyin:

C++:
extern int oyuncuPazaraVuramasin;

Tekrar char_battle.cpp içine dönün ve şu şekilde düzenleyin:

C++:
if (oyuncuPazaraVuramasin == 1)
{
    if (pkVictim->GetShopOwner())
        return false;
}




Skill Hasarı ve Bazı Sourcelerde Çalışmama Sorunu

Bazı altyapılarda düz vuruş kapanır fakat skill hasarı devam eder.
Bu durumda kontrolü battle fonksiyonuna da ekleyin.

battle.cpp

C++:
bool battle_is_attackable(LPCHARACTER ch, LPCHARACTER victim)

İçine:

C++:
if (oyuncuPazaraVuramasin == 1)
{
    if (victim->GetMyShop())
        return false;
}




CONFIG Ayarı

Tüm channel CONFIG dosyalarının altına ekleyin:

Kod:
OYUNCU_PAZARA_VURAMASIN: 1




Sonuç
  • Pazara oturan oyunculara saldırı yapılamaz
  • Skill ve düz vuruş tamamen engellenir
  • Şehir içi ölümler ortadan kalkar
  • Ekonomi daha stabil olur
 
Geri
Üst