From 13fc3dcd7e95288cd9482e7440df3b15a3c580cb Mon Sep 17 00:00:00 2001 From: megamage Date: Fri, 6 Mar 2009 15:25:20 -0600 Subject: [7388] Fixed battleground premature warning message. SQL files are attached, you must execute them! Author: Triply Fix for message's color will be soon. --HG-- branch : trunk --- src/game/BattleGround.cpp | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) (limited to 'src/game/BattleGround.cpp') diff --git a/src/game/BattleGround.cpp b/src/game/BattleGround.cpp index 19b30bd18f2..46c6bbf76aa 100644 --- a/src/game/BattleGround.cpp +++ b/src/game/BattleGround.cpp @@ -230,7 +230,6 @@ void BattleGround::Update(uint32 diff) { m_PrematureCountDown = true; m_PrematureCountDownTimer = sBattleGroundMgr.GetPrematureFinishTime(); - SendMessageToAll(LANG_BATTLEGROUND_PREMATURE_FINISH_WARNING); } else if(m_PrematureCountDownTimer < diff) { @@ -242,8 +241,17 @@ void BattleGround::Update(uint32 diff) { uint32 newtime = m_PrematureCountDownTimer - diff; // announce every minute - if(m_PrematureCountDownTimer != sBattleGroundMgr.GetPrematureFinishTime() && newtime / 60000 != m_PrematureCountDownTimer / 60000) - SendMessageToAll(LANG_BATTLEGROUND_PREMATURE_FINISH_WARNING); + if( newtime > (MINUTE * IN_MILISECONDS) ) + { + if( newtime / (MINUTE * IN_MILISECONDS) != m_PrematureCountDownTimer / (MINUTE * IN_MILISECONDS) ) + PSendMessageToAll(LANG_BATTLEGROUND_PREMATURE_FINISH_WARNING, (uint32)(m_PrematureCountDownTimer / (MINUTE * IN_MILISECONDS))); + } + else + { + //announce every 15 seconds + if( newtime / (15 * IN_MILISECONDS) != m_PrematureCountDownTimer / (15 * IN_MILISECONDS) ) + PSendMessageToAll(LANG_BATTLEGROUND_PREMATURE_FINISH_WARNING_SECS, (uint32)(m_PrematureCountDownTimer / IN_MILISECONDS)); + } m_PrematureCountDownTimer = newtime; } } @@ -1047,7 +1055,7 @@ void BattleGround::RemoveFromBGFreeSlotQueue() // returns the number how many players can join battleground to MaxPlayersPerTeam uint32 BattleGround::GetFreeSlotsForTeam(uint32 Team) const { - //if BG is starting ... invite anyone + //return free slot count to MaxPlayerPerTeam if (GetStatus() == STATUS_WAIT_JOIN || GetStatus() == STATUS_IN_PROGRESS) return (GetInvitedCount(Team) < GetMaxPlayersPerTeam()) ? GetMaxPlayersPerTeam() - GetInvitedCount(Team) : 0; @@ -1414,6 +1422,18 @@ void BattleGround::SendMessageToAll(int32 entry) SendPacketToAll(&data); } +//copied from void ChatHandler::PSendSysMessage(int32 entry, ...) +void BattleGround::PSendMessageToAll(int32 entry, ...) +{ + const char *format = GetMangosString(entry); + va_list ap; + char str [2048]; + va_start(ap, entry); + vsnprintf(str,2048,format, ap ); + va_end(ap); + SendMessageToAll(str); +} + void BattleGround::EndNow() { RemoveFromBGFreeSlotQueue(); -- cgit v1.2.3