Beispiel #1
0
void OPvPWintergrasp::UpdateClock()
{
    uint32 timer = m_timer / 1000;
    UpdateClockDigit(timer, 0, 10);
    UpdateClockDigit(timer, 1, 6);
    UpdateClockDigit(timer, 2, 10);
    UpdateClockDigit(timer, 3, 6);
    if (!m_wartime)
        UpdateClockDigit(timer, 4, 10);
}
Beispiel #2
0
void WintergraspScript::OnUpdate(uint32 p_time)
{
    if(!m_Initialized)
    {
        m_Initialized = true;
        sLog.Notice("Wintergrasp", "Server is loading wintergrasp tiles, it might take some time..");
        mgr->UpdateAllCells(true, ZONE_WINTERGRASP);
        sLog.Notice("Wintergrasp", "Finished loading tiles...");
    }

    UpdateClockDigit(m_NextTime-UNIXTIME, m_started ? 0 : 1, 10);
    if(UNIXTIME >= m_NextTime)
    {
        if(m_started)
        {
            if(m_FinishTime > p_time)
            {
                m_FinishTime -= p_time;
                UpdateWarZones();
            }
            else
            {
                EndBattle();
                Herald((char*)format("The battle for Wintergrasp has ended! The Winner is, the %s!", ControllingTeam ? "Horde" : "Alliance").c_str());
            }
        }
        else StartBattle();
    }
    else
    {
        float timeInHours = float((m_NextTime-UNIXTIME)/60);
        if(timeInHours < 0.7)
        {
            float timeInMinutes = floor((timeInHours*60));
            if(timeInMinutes == 30 && !ThirtyMinuteHerald)
            {
                ThirtyMinuteHerald = true;
                Herald("The battle for Wintergrasp begins in 30 minutes!");
            }
            else if(timeInMinutes == 15 && !FifteenMinuteHerald)
            {
                FifteenMinuteHerald = true;
                Herald("The battle for Wintergrasp begins in 15 minutes!");
            }
        }
        else
        {
            if(timeInHours == 1 && !FirstHourHerald)
            {
                FirstHourHerald = true;
                Herald("The battle for Wintergrasp begins in 1 hour!");
            }
        }
    }
}