예제 #1
0
void OPvPWintergrasp::StartBattle()
{
    m_wartime = true;
    m_timer = sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_BATTLE_TIME) * MINUTE * IN_MILISECONDS;

    // Add recruit Aura, Add Tenacity
    TeamCastSpell(m_defender, SPELL_RECRUIT);
    TeamCastSpell(OTHER_TEAM(m_defender), SPELL_RECRUIT);
    UpdateTenacityStack();
}
예제 #2
0
void OPvPWintergrasp::HandlePlayerEnterZone(Player * plr, uint32 zone)
{
    if (m_wartime && !plr->HasAura(SPELL_RECRUIT) && !plr->HasAura(SPELL_CORPORAL)
        && !plr->HasAura(SPELL_LIEUTENANT))
        plr->CastSpell(plr, SPELL_RECRUIT, true);

    SendInitWorldStatesTo(plr);
    OutdoorPvP::HandlePlayerEnterZone(plr, zone);
    UpdateTenacityStack();
}
예제 #3
0
void OPvPWintergrasp::HandlePlayerLeaveZone(Player * plr, uint32 zone)
{
    if(!plr->GetSession()->PlayerLogout())
    {
        if(plr->m_Vehicle) // dismiss in change zone case
            plr->m_Vehicle->Dismiss();
        REMOVE_RANK_AURAS(plr);
    }
    plr->RemoveAura(SPELL_TENACITY);
    OutdoorPvP::HandlePlayerLeaveZone(plr, zone);
    UpdateTenacityStack();
}
예제 #4
0
void OPvPWintergrasp::HandlePlayerLeaveZone(Player * plr, uint32 zone)
{
    if (!plr->GetSession()->PlayerLogout())
    {
        if (plr->GetVehicle()) // dismiss in change zone case
            plr->GetVehicle()->Dismiss();
        REMOVE_WARTIME_AURAS(plr);
    }
    REMOVE_TENACITY_AURA(plr);
    OutdoorPvP::HandlePlayerLeaveZone(plr, zone);
    UpdateTenacityStack();
}