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
This commit is contained in:
Machiavelli
2010-09-04 17:39:23 +02:00
parent f19d7c2ec7
commit a9ca3d5ed1

View File

@@ -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;
}