*Remove rank buff when players leave wintergrasp.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-06-07 10:32:08 -05:00
parent 728b2dd09e
commit 7329977323
+11 -8
View File
@@ -49,6 +49,9 @@ void LoadTeamPair(TeamPairMap &pairMap, const TeamPair *pair)
} }
} }
#define REMOVE_RANK_AURAS(p) (p)->RemoveAura(SPELL_RECRUIT);\
(p)->RemoveAura(SPELL_CORPORAL);(p)->RemoveAura(SPELL_LIEUTENANT)
typedef std::list<const AreaPOIEntry *> AreaPOIList; typedef std::list<const AreaPOIEntry *> AreaPOIList;
bool OPvPWintergrasp::SetupOutdoorPvP() bool OPvPWintergrasp::SetupOutdoorPvP()
@@ -342,8 +345,12 @@ void OPvPWintergrasp::HandlePlayerEnterZone(Player * plr, uint32 zone)
void OPvPWintergrasp::HandlePlayerLeaveZone(Player * plr, uint32 zone) void OPvPWintergrasp::HandlePlayerLeaveZone(Player * plr, uint32 zone)
{ {
if(!plr->GetSession()->PlayerLogout() && plr->m_Vehicle) // dismiss in change zone case if(!plr->GetSession()->PlayerLogout())
plr->m_Vehicle->Dismiss(); {
if(plr->m_Vehicle) // dismiss in change zone case
plr->m_Vehicle->Dismiss();
REMOVE_RANK_AURAS(plr);
}
plr->RemoveAura(SPELL_TENACITY); plr->RemoveAura(SPELL_TENACITY);
OutdoorPvP::HandlePlayerLeaveZone(plr, zone); OutdoorPvP::HandlePlayerLeaveZone(plr, zone);
UpdateTenacityStack(); UpdateTenacityStack();
@@ -495,9 +502,7 @@ void OPvPWintergrasp::StartBattle()
{ {
for(PlayerSet::iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr) for(PlayerSet::iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr)
{ {
(*itr)->RemoveAura(SPELL_RECRUIT); REMOVE_RANK_AURAS(*itr);
(*itr)->RemoveAura(SPELL_CORPORAL);
(*itr)->RemoveAura(SPELL_LIEUTENANT);
(*itr)->CastSpell(*itr, SPELL_RECRUIT, true); (*itr)->CastSpell(*itr, SPELL_RECRUIT, true);
} }
} }
@@ -514,9 +519,7 @@ void OPvPWintergrasp::EndBattle()
for(PlayerSet::iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr) for(PlayerSet::iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr)
{ {
(*itr)->RemoveAura(SPELL_RECRUIT); REMOVE_RANK_AURAS(*itr);
(*itr)->RemoveAura(SPELL_CORPORAL);
(*itr)->RemoveAura(SPELL_LIEUTENANT);
} }
} }
} }