Çözüldü Moblara vurabilmek için level sınırı koymak

  • Konuyu açan Konuyu açan Tengrist
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 22
  • Gösterim Gösterim 363
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

Tengrist

MT Üye
MT Üye
Mesaj
763
Çözümler
26
Beğeni
563
Puan
809
Ticaret Puanı
0
Arkadaşlar selamlar,
Birkaç mob üzerine oyuncuların hasar verebilmesi için düzenleme yapmak istiyorum

1093 vnumlı moba sadece 70-75 level arasındaki oyuncuların saldırabilmesini istiyorum nasıl yapabilirim?
 
Çözüm
C++:
Genişlet Daralt Kopyala
bool CHARACTER::ExampleFunc(const uint32_t raceNum, LPCHARACTER ch)
{
    const uint8_t level = ch->GetLevel();

    if (raceNum == 1093 && level >= 70 && level <= 75)
        return false;

    return true;
}

C++:
Genişlet Daralt Kopyala
bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)
{
    if (test_server)
        sys_log(0, "[TEST_SERVER] Attack : %s type %d, MobBattleType %d", GetName(), bType, !GetMobBattleType() ? 0 : GetMobAttackRange());

    if (!CanMove())
        return false;

Altına Ekle:

C++:
Genişlet Daralt Kopyala
    if (pkVictim->IsMonster())
    {
        if (!ExampleFunc(pkVictim->GetRaceNum(), this))
            return false;
    }

Şimdi Eve Geldim Denedim Çalışıyor. Canavar Bana Hasar Verebilir Fakat Ben Ona Hiçbir Şekilde (Skill atmak vb.) Hasar...
C++:
Genişlet Daralt Kopyala
bool CHARACTER::ExampleFunc(const uint32_t raceNum, LPCHARACTER ch)
{
    const uint8_t level = ch->GetLevel();

    if (raceNum == 1093 && level >= 70 && level <= 75)
        return false;

    return true;
}

C++:
Genişlet Daralt Kopyala
bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)
{
    if (test_server)
        sys_log(0, "[TEST_SERVER] Attack : %s type %d, MobBattleType %d", GetName(), bType, !GetMobBattleType() ? 0 : GetMobAttackRange());

    if (!CanMove())
        return false;

Altına Ekle:

C++:
Genişlet Daralt Kopyala
    if (pkVictim->IsMonster())
    {
        if (!ExampleFunc(pkVictim->GetRaceNum(), this))
            return false;
    }

Şimdi Eve Geldim Denedim Çalışıyor. Canavar Bana Hasar Verebilir Fakat Ben Ona Hiçbir Şekilde (Skill atmak vb.) Hasar Veremem. @Tengrist

Boşuna Damage'ye Kadar Jump Yaptırmaya Gerek Yok.
 
Son düzenleme:
Çözüm
C++:
Genişlet Daralt Kopyala
bool CHARACTER::ExampleFunc(const uint32_t raceNum, LPCHARACTER ch)
{
    const uint8_t level = ch->GetLevel();

    if (raceNum == 1093 && level >= 70 && level <= 75)
        return false;

    return true;
}

C++:
Genişlet Daralt Kopyala
bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)
{
    if (test_server)
        sys_log(0, "[TEST_SERVER] Attack : %s type %d, MobBattleType %d", GetName(), bType, !GetMobBattleType() ? 0 : GetMobAttackRange());

    if (!CanMove())
        return false;

Altına Ekle:

C++:
Genişlet Daralt Kopyala
    if (pkVictim->IsMonster())
    {
        if (!ExampleFunc(pkVictim->GetRaceNum(), this))
            return false;
    }

Şimdi Eve Geldim Denedim Çalışıyor. Canavar Bana Hasar Verebilir Fakat Ben Ona Hiçbir Şekilde (Skill atmak vb.) Hasar Veremem. @Tengrist

Boşuna Damage'ye Kadar Jump Yaptırmaya Gerek Yok.
Teşekkür ederim hocam, konu da çok güzel oldu. Keşke soru cevap konularını da altın konu tarzı işaretleyebilse yönetim ekibi. Beyin fırtınasından gerçekten zevk aldım dünden beri.
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst