[C++] Pazar Karekterlerine Karşı Attack Block

MBayraktar

Yasaklanmış Üye
Cezalı
Mesaj
225
Çözümler
2
Beğeni
182
Puan
731
Ticaret Puanı
0
Pazar kurulan karektere kimse vuramaz. Karşı bayraklar dahil.

char_battle.cpp 'yi açıyoruz.

Alttaki kodu aratıyoruz.
Kod:
bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)

Kod bloğunun içine eklenir:

Kod:
if (pkVictim->GetShopOwner())
    return false;
 
En son bir moderatör tarafından düzenlenmiş:
Ücretli files satacak arkadaşlar için veya kendi coresini düzenleyen arkadaşlar içinde bir değişik ekleme yolu ise; Configli halidir.
channel1, channel2, channel3, channel4, game99'daki CONFIG dosyası üzerinden aktif ve pasif edilebilir hale getirebilirler.

Server/game/src/config.cpp açılır ve aratılır;
Kod:
int gPlayerMaxLevel = 99;
Altına şu kod eklenir:
Kod:
int oyuncuPazaraVuramasin = 0;
Aratılır;
Kod:
TOKEN("max_level")
Altına şu kodlar eklenir:
Kod:
TOKEN("OYUNCU_PAZARA_VURAMASIN")        {
            str_to_number(oyuncuPazaraVuramasin, value_string);
            fprintf("OYUNCU_PAZARA_VURAMASIN: %d\n", oyuncuPazaraVuramasin);
            continue;
        }


Server/game/src/config.h açılır ve aratılır;
Kod:
extern int gPlayerMaxLevel;
Altına eklenir:
Kod:
extern int oyuncuPazaraVuramasin;


Server/game/src/char_battle.cpp açılır ve aratılır;
Kod:
bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)
Kod bloğunun içine eklenir:
Kod:
if (oyuncuPazaraVuramasin == 1)
    {
        if (pkVictim->GetShopOwner())
        return false;
    }


Son olarak
channel1, channel2, channel3, channel4, game99 içindeki CONFIG dosyasının alt kısmına ekleyin:
Not: Bazı fileslerde 6 ve 8 CH'lidir. Ne kadar CH'niz varsa onun içindeki CONFIG'leri de ayarlamanız gerekmektedir.
Kod:
OYUNCU_PAZARA_VURAMASIN: 1
 
Güncelleme 2,
Arkadaşlar sistemi test ederken bazı sorunlarla karşılaştım bu sorunların çözümü için bu yorumu yapma gereği düşündüm.
Bazı sourcelerde bu kodlar çalışmayabilir ve pazara düz vuruş engellense dahi pazar yerinden hareket ediyor, Skill vuruşlarının damageleri işliyordu. O yüzden şu işlemleri yapınız.

Server/game/src/config.cpp açılır ve aratılır;
Kod:
int gPlayerMaxLevel = 99;
Altına şu kod eklenir:
Kod:
int oyuncuPazaraVuramasin = 0;
Aratılır;
Kod:
TOKEN("max_level")
Altına şu kodlar eklenir:
Kod:
TOKEN("OYUNCU_PAZARA_VURAMASIN")        {
            str_to_number(oyuncuPazaraVuramasin, value_string);
            fprintf("OYUNCU_PAZARA_VURAMASIN: %d\n", oyuncuPazaraVuramasin);
            continue;
        }

Server/game/src/config.h açılır ve aratılır;
Kod:
extern int gPlayerMaxLevel;
Altına eklenir:
Kod:
extern int oyuncuPazaraVuramasin;

Server/game/src/char_battle.cpp açılır ve aratılır;
Kod:
bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)
Kod bloğunun içine eklenir:
Kod:
if (oyuncuPazaraVuramasin == 1)
    {
        if (pkVictim->GetShopOwner())
        return false;
    }


Nasıl düzelteceğiz:
Server/game/src/char_battle.cpp
açılır ve aratılır;
Kod:
bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)
Kod bloğunun içine eklenir:
Not: Kod bloğunun içine eklenir (GetShopOwner var ise GetMyShop olarak değiştirmek yeterlidir)
Kod:
if (oyuncuPazaraVuramasin == 1)
    {
        if (pkVictim->GetMyShop())
        return false;
    }


Server/game/src/battle.cpp açılır ve aratılır;
Kod:
bool battle_is_attackable(LPCHARACTER ch, LPCHARACTER victim)
Aşağıda kod bulunur;
Kod:
if (oyuncuPazaraVuramasin == 1)
    {
        if (pkVictim->GetMyShop())
        return false;
    }


Son olarak
channel1, channel2, channel3, channel4, game99 içindeki CONFIG dosyasının alt kısmına ekleyin:
Not: Bazı fileslerde 6 ve 8 CH'lidir. Ne kadar CH'niz varsa onun içindeki CONFIG'leri de ayarlamanız gerekmektedir.
Kod:
OYUNCU_PAZARA_VURAMASIN: 1

Dipnot: Bu sorunu çözen Metin2dev forumundaki "Cataclismo" nickli arkadaştır. Kendisine bu sorunun çözümünü paylaştığı için teşekkür ederim.
 
Geri
Üst