Bvural41 1
Bvural41
emirhanHCL 1
emirhanHCL
Hikaye Ekle

Cevaplanmadı Player vs player

  • Konuyu başlatan Konuyu başlatan qay123
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 15
  • Görüntüleme Görüntüleme 1K
upload your battle.cpp & input_main.cpp and let us have a look at them

also are you using one of the public files? do you have bot control system? maybe bad flagging ending up to misses? is it always happening?
 
Comment this section and try again please
C++:
#ifdef NEW_ICEDAMAGE_SYSTEM
    if (!battle_is_icedamage(ch, victim))
        return false;
#endif

I've seen that you implemented a new system called new_ice_damage_system but check the conditions probably this function is returning false somewhere in the second if statement.

pAttacker && pAttacker-IsPC()) these conditions are true so we continue race=? warrior race probably 1 or 2 depending on the gender not sure what you did in the rest since there were no comments :D but If you want to apply this ice damage only to MOBS(npcs) change your statement in battle_is_attackable to if(victim->IsNPC()) //do stuff
C++:
#ifdef NEW_ICEDAMAGE_SYSTEM
bool battle_is_icedamage(LPCHARACTER pAttacker, LPCHARACTER pVictim)
{
    if (pAttacker && pAttacker->IsPC())
    {
        DWORD race = pAttacker->GetRaceNum();
        const DWORD tmp_dwNDRFlag = pVictim->GetNoDamageRaceFlag();
        if (tmp_dwNDRFlag &&
            (race < MAIN_RACE_MAX_NUM) &&
            (IS_SET(tmp_dwNDRFlag, 1<<race))
        )
        {
            return false;
        }
        const std::set<DWORD> & tmp_setNDAFlag = pVictim->GetNoDamageAffectFlag();
        if (tmp_setNDAFlag.size())
        {
            for (std::set<DWORD>::iterator it = tmp_setNDAFlag.begin(); it != tmp_setNDAFlag.end(); ++it)
            {
                if (!pAttacker->IsAffectFlag(*it))
                {
                    return false;
                }
            }
        }
    }
    return true;
}
#endif
 
If you want to make a debug mode for yourself change your code and add some logs or error statements

if (!battle_is_icedamage(ch, victim))
return false;
#endif

to

if (!battle_is_icedamage(ch, victim))
sys_log(0, "this is not an ice damage!")
return false;
#endif

and see whenever you hit an enemy this syslog appears in your syslog.txt file

if yes you gotta check your function or make it work only for mobs

C++:
    if (!battle_is_icedamage(ch, victim) && victim->IsNPC())
            sys_log(0, "this is not an ice damage! and this function only work for mobs")
        return false;
#endif
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Benzer konular

Cevaplar
6
Görüntüleme
170
Cevaplar
4
Görüntüleme
176
Cevaplar
6
Görüntüleme
163
Cevaplar
18
Görüntüleme
291
Geri
Üst