diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Battlegrounds/Battleground.cpp | 23 | ||||
-rw-r--r-- | src/server/game/Miscellaneous/Formulas.h | 1 | ||||
-rw-r--r-- | src/server/worldserver/worldserver.conf.dist | 2 |
3 files changed, 17 insertions, 9 deletions
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index bda8c6928a6..c148151b0f5 100644 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -298,7 +298,7 @@ void Battleground::Update(uint32 diff) } // Update start time and reset stats timer - m_StartTime += diff; + SetElapsedTime(GetElapsedTime() + diff); if (GetStatus() == STATUS_WAIT_JOIN) { m_ResetStatTimer += diff; @@ -484,7 +484,7 @@ inline void Battleground::_ProcessJoin(uint32 diff) WorldPacket data(SMSG_START_TIMER, 4+4+4); data << uint32(0); // unk - data << uint32(countdownMaxForBGType - (m_CountdownTimer / 1000)); + data << uint32(countdownMaxForBGType - (GetElapsedTime() / 1000)); data << uint32(countdownMaxForBGType); for (BattlegroundPlayerMap::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end(); ++itr) @@ -597,8 +597,8 @@ inline void Battleground::_ProcessJoin(uint32 diff) } } - if (m_EndTime > 0 && (m_EndTime -= diff) > 0) - m_EndTime -= diff; + if (GetRemainingTime() > 0 && (m_EndTime -= diff) > 0) + SetRemainingTime(GetRemainingTime() - diff); } inline void Battleground::_ProcessLeave(uint32 diff) @@ -607,10 +607,10 @@ inline void Battleground::_ProcessLeave(uint32 diff) // *** BATTLEGROUND ENDING SYSTEM *** // ********************************************************* // remove all players from battleground after 2 minutes - m_EndTime -= diff; - if (m_EndTime <= 0) + SetRemainingTime(GetRemainingTime() - diff); + if (GetRemainingTime() <= 0) { - m_EndTime = 0; + SetRemainingTime(0); BattlegroundPlayerMap::iterator itr, next; for (itr = m_Players.begin(); itr != m_Players.end(); itr = next) { @@ -1244,7 +1244,16 @@ void Battleground::AddPlayer(Player* player) else { if (GetStatus() == STATUS_WAIT_JOIN) // not started yet + { player->CastSpell(player, SPELL_PREPARATION, true); // reduces all mana cost of spells. + + int32 countdownMaxForBGType = isArena() ? ARENA_COUNTDOWN_MAX : BATTLEGROUND_COUNTDOWN_MAX; + WorldPacket data(SMSG_START_TIMER, 4+4+4); + data << uint32(0); // unk + data << uint32(countdownMaxForBGType - (GetElapsedTime() / 1000)); + data << uint32(countdownMaxForBGType); + player->GetSession()->SendPacket(&data); + } } player->ResetAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE, ACHIEVEMENT_CRITERIA_CONDITION_BG_MAP, GetMapId(), true); diff --git a/src/server/game/Miscellaneous/Formulas.h b/src/server/game/Miscellaneous/Formulas.h index 8ae333f2651..79e1ad45fa9 100644 --- a/src/server/game/Miscellaneous/Formulas.h +++ b/src/server/game/Miscellaneous/Formulas.h @@ -241,7 +241,6 @@ namespace Trinity inline uint32 BgConquestRatingCalculator(uint32 rate) { // WowWiki: Battleground ratings receive a bonus of 22.2% to the cap they generate - printf("%u",uint32(round(ConquestRatingCalculator(rate) * 1.222f))); return uint32(round(ConquestRatingCalculator(rate) * 1.222f)); } } // namespace Trinity::Currency diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index f32633958ec..4ae9ab6c503 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -2909,7 +2909,7 @@ Currency.StartJusticePoints = 0 # # Currency.MaxJusticePoints -# Amount honor points a player can have +# Amount justice points a player can have # Default: 4000 # |