diff --git a/src/Abilities.cpp b/src/Abilities.cpp index f7730e3..d0c2a44 100644 --- a/src/Abilities.cpp +++ b/src/Abilities.cpp @@ -449,7 +449,8 @@ bool doDamageNDebuff(Mob* mob, sSkillResult_Damage_N_Debuff* respdata, int i, in respdata[i].iConditionBitFlag = plr->iConditionBitFlag; if (plr->HP <= 0) { - mob->transition(AIState::RETREAT, mob->target); + if (!MobAI::aggroCheck(mob, getTime())) + mob->transition(AIState::RETREAT, mob->target); } return true; @@ -523,7 +524,8 @@ bool doDamage(Mob* mob, sSkillResult_Damage* respdata, int i, int32_t targetID, respdata[i].iHP = plr->HP -= damage; if (plr->HP <= 0) { - mob->transition(AIState::RETREAT, mob->target); + if (!MobAI::aggroCheck(mob, getTime())) + mob->transition(AIState::RETREAT, mob->target); } return true; @@ -575,7 +577,8 @@ bool doLeech(Mob* mob, sSkillResult_Heal_HP* healdata, int i, int32_t targetID, damagedata->iHP = plr->HP -= damage; if (plr->HP <= 0) { - mob->transition(AIState::RETREAT, mob->target); + if (!MobAI::aggroCheck(mob, getTime())) + mob->transition(AIState::RETREAT, mob->target); } return true; diff --git a/src/Combat.cpp b/src/Combat.cpp index 2b9a251..1b83cdf 100644 --- a/src/Combat.cpp +++ b/src/Combat.cpp @@ -322,7 +322,8 @@ void Combat::npcAttackPc(Mob *mob, time_t currTime) { PlayerManager::sendToViewable(mob->target, respbuf, P_FE2CL_NPC_ATTACK_PCs); if (plr->HP <= 0) { - mob->transition(AIState::RETREAT, mob->target); + if (!MobAI::aggroCheck(mob, getTime())) + mob->transition(AIState::RETREAT, mob->target); } }