diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 8bd9dcef1..e1be3a8ae 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -6643,8 +6643,8 @@ void Player::UpdateArea(uint32 newArea) if (area) { // Dalaran restricted flight zone - if ((area->flags & AREA_FLAG_CANNOT_FLY) && IsFreeFlying() && !isGameMaster()) - CastSpell(this, 58600, true); + if ((area->flags & AREA_FLAG_CANNOT_FLY) && IsFreeFlying() && !isGameMaster() && !HasAura(58600)) + CastSpell(this, 58600, true); // Restricted Flight Area // TODO: implement wintergrasp parachute when battle in progress /* if ((area->flags & AREA_FLAG_OUTDOOR_PVP) && IsFreeFlying() && && !isGameMaster()) diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index a837c2b18..734a755dc 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -2172,13 +2172,10 @@ void Aura::HandleAuraDummy(bool apply, bool Real) AreaTableEntry const* area = GetAreaEntryByAreaID(target->GetAreaId()); // Dalaran restricted flight zone (recheck before apply unmount) - if (area && target->GetTargetGUID() == TYPEID_PLAYER && (area->flags & AREA_FLAG_CANNOT_FLY) && + if (area && target->GetTypeId() == TYPEID_PLAYER && (area->flags & AREA_FLAG_CANNOT_FLY) && ((Player*)target)->IsFreeFlying() && !((Player*)target)->isGameMaster()) { - // Remove Flight Auras - target->CastSpell(target, 58601, true); - // Parachute - target->CastSpell(target, 45472, true); + target->CastSpell(target, 58601, true); // Remove Flight Auras (also triggered Parachute (45472)) } return; } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index e9dc983ab..365ce48b6 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "10213" + #define REVISION_NR "10214" #endif // __REVISION_NR_H__