diff options
author | megamage <none@none.none> | 2011-09-20 10:26:34 -0400 |
---|---|---|
committer | megamage <none@none.none> | 2011-09-20 10:26:34 -0400 |
commit | 4ccb22e1a6756cd31eee6d328ed995e192e2a8a5 (patch) | |
tree | f6b97fe826e543329cb1f6907ee57bc4e1c5646f /src | |
parent | 8aead2a1eea446c3a8ca40ac7c3c9ad13bc88ef9 (diff) |
Fix the incorrect logic of threat online status check. Also add targets in other map or phase to offline container.
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Combat/ThreatManager.cpp | 10 |
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) { |