diff options
author | Machiavelli <none@none> | 2010-09-04 17:39:23 +0200 |
---|---|---|
committer | Machiavelli <none@none> | 2010-09-04 17:39:23 +0200 |
commit | a9ca3d5ed13c80da9a8d4a76d167925f063bd503 (patch) | |
tree | 38d618982229183e0bf53871206175bd8895b73b /src | |
parent | f19d7c2ec716c0c57d8b9fd565693fbdb130803f (diff) |
Core/ArenaTeam: Add a check to determine if a player is account for an accurate calculation of ArenaTeam::GetAverageMMR
Fixes issue #3789
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Battlegrounds/ArenaTeam.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/server/game/Battlegrounds/ArenaTeam.cpp b/src/server/game/Battlegrounds/ArenaTeam.cpp index 1c630a1b10d..02c849c9e61 100644 --- a/src/server/game/Battlegrounds/ArenaTeam.cpp +++ b/src/server/game/Battlegrounds/ArenaTeam.cpp @@ -604,14 +604,24 @@ uint32 ArenaTeam::GetAverageMMR(Group *group) const { if (!group) //should never happen return 0; + uint32 matchmakerrating = 0; + uint32 player_divider = 1; for (MemberList::const_iterator itr = m_members.begin(); itr != m_members.end(); ++itr) { - if (group->IsMember(itr->guid)) - matchmakerrating += itr->matchmaker_rating; + // If player not online + if (!ObjectAccessor::FindPlayer(itr->guid)) + continue; + + // If not in group + if (!group->IsMember(itr->guid)) + continue; + + matchmakerrating += itr->matchmaker_rating; + ++player_divider; } - matchmakerrating /= GetType(); + matchmakerrating /= player_divider; return matchmakerrating; } |