diff options
author | Shauren <shauren.trinity@gmail.com> | 2018-03-17 16:25:18 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2018-03-25 19:28:36 +0300 |
commit | 58e9bc0008214080047b23f805c0f0aed4a4f406 (patch) | |
tree | 87cb11a28db61f8be8cffad1ee70cfa896cbfee6 /src | |
parent | 52fd0f43fa34f0625870b6d32fae3ac3009eeb7a (diff) |
Core/Misc: Implemented phased areatriggers
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index ffe6349e161..23d06007908 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -2155,9 +2155,16 @@ void Player::SetInWater(bool apply) bool Player::IsInAreaTriggerRadius(const AreaTriggerEntry* trigger) const { - if (!trigger || int32(GetMapId()) != trigger->ContinentID) + if (!trigger) return false; + if (int32(GetMapId()) != trigger->ContinentID && !GetPhaseShift().HasVisibleMapId(trigger->ContinentID)) + return false; + + if (trigger->PhaseID || trigger->PhaseGroupID || trigger->PhaseUseFlags) + if (!PhasingHandler::InDbPhaseShift(this, trigger->PhaseUseFlags, trigger->PhaseID, trigger->PhaseGroupID)) + return false; + if (trigger->Radius > 0.f) { // if we have radius check it |