[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:
Genişlet Daralt Kopyala
bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)

Kod bloğunun içine eklenir:

Kod:
Genişlet Daralt Kopyala
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:
Genişlet Daralt Kopyala
int gPlayerMaxLevel = 99;
Altına şu kod eklenir:
Kod:
Genişlet Daralt Kopyala
int oyuncuPazaraVuramasin = 0;
Aratılır;
Kod:
Genişlet Daralt Kopyala
TOKEN("max_level")
Altına şu kodlar eklenir:
Kod:
Genişlet Daralt Kopyala
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:
Genişlet Daralt Kopyala
extern int gPlayerMaxLevel;
Altına eklenir:
Kod:
Genişlet Daralt Kopyala
extern int oyuncuPazaraVuramasin;


Server/game/src/char_battle.cpp açılır ve aratılır;
Kod:
Genişlet Daralt Kopyala
bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)
Kod bloğunun içine eklenir:
Kod:
Genişlet Daralt Kopyala
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:
Genişlet Daralt Kopyala
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:
Genişlet Daralt Kopyala
int gPlayerMaxLevel = 99;
Altına şu kod eklenir:
Kod:
Genişlet Daralt Kopyala
int oyuncuPazaraVuramasin = 0;
Aratılır;
Kod:
Genişlet Daralt Kopyala
TOKEN("max_level")
Altına şu kodlar eklenir:
Kod:
Genişlet Daralt Kopyala
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:
Genişlet Daralt Kopyala
extern int gPlayerMaxLevel;
Altına eklenir:
Kod:
Genişlet Daralt Kopyala
extern int oyuncuPazaraVuramasin;

Server/game/src/char_battle.cpp açılır ve aratılır;
Kod:
Genişlet Daralt Kopyala
bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)
Kod bloğunun içine eklenir:
Kod:
Genişlet Daralt Kopyala
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:
Genişlet Daralt Kopyala
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:
Genişlet Daralt Kopyala
if (oyuncuPazaraVuramasin == 1)
    {
        if (pkVictim->GetMyShop())
        return false;
    }


Server/game/src/battle.cpp açılır ve aratılır;
Kod:
Genişlet Daralt Kopyala
bool battle_is_attackable(LPCHARACTER ch, LPCHARACTER victim)
Aşağıda kod bulunur;
Kod:
Genişlet Daralt Kopyala
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:
Genişlet Daralt Kopyala
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.
 
Üst