Fix arena point calculation. If the configured arena season is >= 5, teams below 1500 rating should get a fixed amount of points, equal to the amount of points a person with 1500 rating would get.
--HG-- branch : trunk
This commit is contained in:
@@ -518,15 +518,20 @@ uint32 ArenaTeam::GetPoints(uint32 MemberRating)
|
|||||||
|
|
||||||
uint32 rating = MemberRating + 150 < m_stats.rating ? MemberRating : m_stats.rating;
|
uint32 rating = MemberRating + 150 < m_stats.rating ? MemberRating : m_stats.rating;
|
||||||
|
|
||||||
if(rating<=1500)
|
if (rating<=1500)
|
||||||
points = (float)rating * 0.22f + 14.0f;
|
{
|
||||||
|
if (sWorld.getConfig(CONFIG_ARENA_SEASON_ID) < 5)
|
||||||
|
points = (float)rating * 0.22f + 14.0f;
|
||||||
|
else
|
||||||
|
points = 344;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
points = 1511.26f / (1.0f + 1639.28f * exp(-0.00412f * (float)rating));
|
points = 1511.26f / (1.0f + 1639.28f * exp(-0.00412f * (float)rating));
|
||||||
|
|
||||||
// type penalties for <5v5 teams
|
// type penalties for <5v5 teams
|
||||||
if(m_Type == ARENA_TEAM_2v2)
|
if (m_Type == ARENA_TEAM_2v2)
|
||||||
points *= 0.76f;
|
points *= 0.76f;
|
||||||
else if(m_Type == ARENA_TEAM_3v3)
|
else if (m_Type == ARENA_TEAM_3v3)
|
||||||
points *= 0.88f;
|
points *= 0.88f;
|
||||||
|
|
||||||
return (uint32) points;
|
return (uint32) points;
|
||||||
|
|||||||
Reference in New Issue
Block a user