From d17c1ab25f4906411cecf16ea0ff1e6338e0e1ae Mon Sep 17 00:00:00 2001 From: VladimirMangos Date: Tue, 12 Jan 2010 10:51:48 +0300 Subject: [PATCH] Skip invisible/stealthed and not detected targets from threat list at next target selection. This will fix work spell 58984 and similar in combat. (based on commit d58b53d) --- src/game/Creature.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp index 5a6606909c0..70cba00af3f 100644 --- a/src/game/Creature.cpp +++ b/src/game/Creature.cpp @@ -1585,16 +1585,19 @@ void Creature::SaveRespawnTime() bool Creature::IsOutOfThreatArea(Unit* pVictim) const { - if(!pVictim) + if (!pVictim) + return true; + + if (!pVictim->IsInMap(this)) return true; - if(!pVictim->IsInMap(this)) + if (!pVictim->isTargetableForAttack()) return true; - if(!pVictim->isTargetableForAttack()) + if (!pVictim->isInAccessablePlaceFor(this)) return true; - if(!pVictim->isInAccessablePlaceFor(this)) + if (!pVictim->isVisibleForOrDetect(this,this,false)) return true; if(sMapStore.LookupEntry(GetMapId())->IsDungeon())