diff --git a/src/game/ArenaTeam.cpp b/src/game/ArenaTeam.cpp index 6321225ff..480f77ffa 100644 --- a/src/game/ArenaTeam.cpp +++ b/src/game/ArenaTeam.cpp @@ -19,6 +19,7 @@ #include "WorldPacket.h" #include "ObjectMgr.h" #include "ArenaTeam.h" +#include "World.h" ArenaTeam::ArenaTeam() { @@ -34,7 +35,10 @@ ArenaTeam::ArenaTeam() stats.games_week = 0; stats.games_season = 0; stats.rank = 0; - stats.rating = 1500; + if (sWorld.getConfig(CONFIG_ARENA_SEASON_ID) >= 6) + stats.rating = 0; + else + stats.rating = 1500; stats.wins_week = 0; stats.wins_season = 0; } @@ -129,7 +133,17 @@ bool ArenaTeam::AddMember(const uint64& PlayerGuid) newmember.games_week = 0; newmember.wins_season = 0; newmember.wins_week = 0; - newmember.personal_rating = 1500; + if (sWorld.getConfig(CONFIG_ARENA_SEASON_ID) >= 6) + { + if (stats.rating < 1000) + newmember.personal_rating = stats.rating; + else + newmember.personal_rating = 1000; + } + else + { + newmember.personal_rating = 1500; + } members.push_back(newmember); CharacterDatabase.PExecute("INSERT INTO arena_team_member (arenateamid, guid, personal_rating) VALUES ('%u', '%u', '%u')", Id, GUID_LOPART(newmember.guid), newmember.personal_rating ); @@ -499,6 +513,10 @@ float ArenaTeam::GetChanceAgainst(uint32 own_rating, uint32 enemy_rating) { // returns the chance to win against a team with the given rating, used in the rating adjustment calculation // ELO system + + if (sWorld.getConfig(CONFIG_ARENA_SEASON_ID) >= 6) + if (enemy_rating < 1300) + enemy_rating = 1300; return 1.0f/(1.0f+exp(log(10.0f)*(float)((float)enemy_rating - (float)own_rating)/400.0f)); } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 254306b66..8f3cffbe2 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "8267" + #define REVISION_NR "8268" #endif // __REVISION_NR_H__