diff --git a/zone/aggro.cpp b/zone/aggro.cpp index 9533fbbff..cc537662a 100644 --- a/zone/aggro.cpp +++ b/zone/aggro.cpp @@ -253,7 +253,7 @@ bool Mob::CheckWillAggro(Mob *mob) { //sometimes if a client has some lag while zoning into a dangerous place while either invis or a GM //they will aggro mobs even though it's supposed to be impossible, to lets make sure we've finished connecting if (mob->IsClient()) { - if (!mob->CastToClient()->ClientFinishedLoading() || mob->CastToClient()->IsHoveringForRespawn()) + if (!mob->CastToClient()->ClientFinishedLoading() || mob->CastToClient()->IsHoveringForRespawn() || mob->CastToClient()->zoning) return false; } diff --git a/zone/attack.cpp b/zone/attack.cpp index b7cd49384..dc50f23db 100644 --- a/zone/attack.cpp +++ b/zone/attack.cpp @@ -1563,7 +1563,7 @@ bool Client::Death(Mob* killerMob, int32 damage, uint16 spell, EQEmu::skills::Sk } } - entity_list.RemoveFromTargets(this); + entity_list.RemoveFromTargets(this, true); hate_list.RemoveEntFromHateList(this); RemoveAutoXTargets(); diff --git a/zone/effects.cpp b/zone/effects.cpp index 0cec65877..400bae1fa 100644 --- a/zone/effects.cpp +++ b/zone/effects.cpp @@ -795,7 +795,7 @@ void EntityList::AESpell(Mob *caster, Mob *center, uint16 spell_id, bool affect_ continue; if (dist_targ < min_range2) //make sure they are in range continue; - if (isnpc && curmob->IsNPC()) { //check npc->npc casting + if (isnpc && curmob->IsNPC() && spells[spell_id].targettype != ST_AreaNPCOnly) { //check npc->npc casting FACTION_VALUE f = curmob->GetReverseFactionCon(caster); if (bad) { //affect mobs that are on our hate list, or