diff options
author | Liberate <none@none> | 2010-10-07 16:35:08 +0200 |
---|---|---|
committer | Liberate <none@none> | 2010-10-07 16:35:08 +0200 |
commit | 6a504b983c6e5f1653f81574669bd4dcfb17c7a3 (patch) | |
tree | 26604f2f0533553cf0a2d5ecddbaa4631023ee57 /src | |
parent | 31d4a340000afe74a6dd232b13d7bacb7eddb1bd (diff) |
Core/Arena: Fix an exploit which made you gain personal rating when you leave arena, and add some comments to the arena system (which I should have done way earlier).
--HG--
branch : trunk
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Battlegrounds/ArenaTeam.cpp | 3 | ||||
-rwxr-xr-x | src/server/game/Battlegrounds/ArenaTeam.h | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/server/game/Battlegrounds/ArenaTeam.cpp b/src/server/game/Battlegrounds/ArenaTeam.cpp index a1d31747812..4823b159d1a 100755 --- a/src/server/game/Battlegrounds/ArenaTeam.cpp +++ b/src/server/game/Battlegrounds/ArenaTeam.cpp @@ -644,6 +644,7 @@ int32 ArenaTeam::GetRatingMod(uint32 own_rating, uint32 enemy_rating, bool won, int32 ArenaTeam::GetPersonalRatingMod(int32 base_rating, uint32 own_rating, uint32 enemy_rating) { + // max (2 * team rating gain/loss), min 0 gain/loss float chance = GetChanceAgainst(own_rating, enemy_rating); chance *= 2.0f; return (int32)ceil(float(base_rating) * chance); @@ -671,6 +672,7 @@ void ArenaTeam::FinishGame(int32 mod) int32 ArenaTeam::WonAgainst(uint32 againstRating) { // called when the team has won + // own team rating versus opponents matchmaker rating int32 mod = GetRatingMod(m_stats.rating, againstRating, true); // modify the team stats accordingly @@ -685,6 +687,7 @@ int32 ArenaTeam::WonAgainst(uint32 againstRating) int32 ArenaTeam::LostAgainst(uint32 againstRating) { // called when the team has lost + // own team rating versus opponents matchmaker rating int32 mod = GetRatingMod(m_stats.rating, againstRating, false); // modify the team stats accordingly diff --git a/src/server/game/Battlegrounds/ArenaTeam.h b/src/server/game/Battlegrounds/ArenaTeam.h index 87c49f09b93..9a9c9ab40d9 100755 --- a/src/server/game/Battlegrounds/ArenaTeam.h +++ b/src/server/game/Battlegrounds/ArenaTeam.h @@ -201,7 +201,7 @@ class ArenaTeam int32 WonAgainst(uint32 againstRating); void MemberWon(Player * plr, uint32 againstMatchmakerRating, int32 teamratingchange = 12); int32 LostAgainst(uint32 againstRating); - void MemberLost(Player * plr, uint32 againstMatchmakerRating, int32 teamratingchange = 12); + void MemberLost(Player * plr, uint32 againstMatchmakerRating, int32 teamratingchange = -12); void OfflineMemberLost(uint64 guid, uint32 againstMatchmakerRating, int32 teamratingchange = 12); void UpdateArenaPointsHelper(std::map<uint32, uint32> & PlayerPoints); |