aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/server/game/Combat/ThreatManager.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/server/game/Combat/ThreatManager.cpp b/src/server/game/Combat/ThreatManager.cpp
index 4d426d1a5af..e5a2460b1a6 100755
--- a/src/server/game/Combat/ThreatManager.cpp
+++ b/src/server/game/Combat/ThreatManager.cpp
@@ -178,11 +178,13 @@ void HostileReference::updateOnlineStatus()
// ref is valid
// target is no player or not gamemaster
// target is not in flight
- if (isValid() &&
- ((getTarget()->GetTypeId() != TYPEID_PLAYER || !getTarget()->ToPlayer()->isGameMaster()) ||
- !getTarget()->HasUnitState(UNIT_STAT_IN_FLIGHT)))
+ if (isValid()
+ && (getTarget()->GetTypeId() != TYPEID_PLAYER || !getTarget()->ToPlayer()->isGameMaster())
+ && !getTarget()->HasUnitState(UNIT_STAT_IN_FLIGHT)
+ && getTarget()->IsInMap(getSourceUnit())
+ )
{
- Creature* creature = getSourceUnit()->ToCreature();
+ Creature* creature = getSourceUnit()->ToCreature();
online = getTarget()->isInAccessiblePlaceFor(creature);
if (!online)
{