aboutsummaryrefslogtreecommitdiff
path: root/src/game/Wintergrasp.cpp
diff options
context:
space:
mode:
authortartalo <none@none>2009-11-02 21:05:54 +0100
committertartalo <none@none>2009-11-02 21:05:54 +0100
commitbcfff09c74ec3e7cc6bd4c42938701c501f3bfd7 (patch)
tree18140ff9d2ec1dfa1d56424a704242be793e2d7d /src/game/Wintergrasp.cpp
parentae2a36d13e32e7aae945c8cc1862b340f4669744 (diff)
*Implementation of 'No Fly Zone' (Dalaran and Wintergrasp), by Spp
--HG-- branch : trunk
Diffstat (limited to 'src/game/Wintergrasp.cpp')
-rw-r--r--src/game/Wintergrasp.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/game/Wintergrasp.cpp b/src/game/Wintergrasp.cpp
index 65fa5dccada..ec989a8123f 100644
--- a/src/game/Wintergrasp.cpp
+++ b/src/game/Wintergrasp.cpp
@@ -949,6 +949,14 @@ void OPvPWintergrasp::HandlePlayerEnterZone(Player * plr, uint32 zone)
if (!sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_ENABLED))
return;
+ // No fly zone or parachute
+ if (!plr->HasAura(SPELL_NOFLYZONE_WG) && !plr->HasAura(SPELL_PARACHUTE_WG) &&
+ (plr->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED) || plr->HasAuraType(SPELL_AURA_FLY)))
+ {
+ plr->CastSpell(plr, SPELL_NOFLYZONE_WG, true);
+ ChatHandler(plr).PSendSysMessage(LANG_ZONE_NOFLYZONE);
+ }
+
if (!isWarTime())
{
if (plr->GetTeamId() == getDefenderTeam())
@@ -1032,6 +1040,7 @@ void OPvPWintergrasp::HandlePlayerLeaveZone(Player * plr, uint32 zone)
OutdoorPvP::HandlePlayerLeaveZone(plr, zone);
UpdateTenacityStack();
plr->RemoveAura(SPELL_ESSENCE_OF_WG);
+ plr->RemoveAura(SPELL_NOFLYZONE_WG);
}
void OPvPWintergrasp::PromotePlayer(Player *killer) const