Core/Arena/Logging:

* Implement option for extended arena match info for each player (guid, name, team, IP, healing/damage done, killing blows) [disabled by default]
* Fix logging for rating change, winner and loser get different ratings with the new arena system

--HG--
branch : trunk
This commit is contained in:
Shocker
2010-09-09 15:27:27 +03:00
parent e122712348
commit 0126590c54
4 changed files with 19 additions and 1 deletions
+11 -1
View File
@@ -738,7 +738,17 @@ void Battleground::EndBattleground(uint32 winner)
SetArenaTeamRatingChangeForTeam(GetOtherTeam(winner), loser_change);
SetArenaMatchmakerRating(winner, winner_matchmaker_rating);
SetArenaMatchmakerRating(GetOtherTeam(winner), loser_matchmaker_rating);
sLog.outArena("Arena match Type: %u for Team1Id: %u - Team2Id: %u ended. WinnerTeamId: %u. RatingChange: %i.", m_ArenaType, m_ArenaTeamIds[BG_TEAM_ALLIANCE], m_ArenaTeamIds[BG_TEAM_HORDE], winner_arena_team->GetId(), winner_change);
sLog.outArena("Arena match Type: %u for Team1Id: %u - Team2Id: %u ended. WinnerTeamId: %u. Winner rating: +%d, Loser rating: %d", m_ArenaType, m_ArenaTeamIds[BG_TEAM_ALLIANCE], m_ArenaTeamIds[BG_TEAM_HORDE], winner_arena_team->GetId(), winner_change, loser_change);
if (sWorld.getBoolConfig(CONFIG_ARENA_LOG_EXTENDED_INFO))
for (Battleground::BattlegroundScoreMap::const_iterator itr = GetPlayerScoresBegin(); itr != GetPlayerScoresEnd(); itr++)
if (Player* player = sObjectMgr.GetPlayer(itr->first))
{
std::string last_ip = "<unknown>";
QueryResult_AutoPtr result = LoginDatabase.PQuery("SELECT last_ip FROM account WHERE id = %u", player->GetSession()->GetAccountId());
if (result)
last_ip = (result->Fetch())[0].GetCppString();
sLog.outArena("Statistics for %s (GUID: %llu, Team: %d, IP: %s): %u damage, %u healing, %u killing blows", player->GetName(), itr->first, player->GetArenaTeamId(m_ArenaType == 5 ? 2 : m_ArenaType == 3), last_ip.c_str(), itr->second->DamageDone, itr->second->HealingDone, itr->second->KillingBlows);
}
}
else
{