diff options
author | megamage <none@none> | 2009-03-15 17:16:11 -0600 |
---|---|---|
committer | megamage <none@none> | 2009-03-15 17:16:11 -0600 |
commit | 1a8528b3dbd448a89d6f518ea22d823d67d4a187 (patch) | |
tree | 619829ae5a3aa0df5b703972665894b2cbd426bf /src | |
parent | 681d1d171e2ec2e2e61e4447eeb580845288d82a (diff) |
[7460] Fixed possible cheating in rated arena by ressurection after relog. Author: Triply
Fix: Do not allow to remove insignia from players in arena!
Fixed ending arena match when last player of team logs out.
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/BattleGround.cpp | 11 | ||||
-rw-r--r-- | src/game/Player.cpp | 2 |
2 files changed, 9 insertions, 4 deletions
diff --git a/src/game/BattleGround.cpp b/src/game/BattleGround.cpp index 1cc510a35f2..f542ff1f145 100644 --- a/src/game/BattleGround.cpp +++ b/src/game/BattleGround.cpp @@ -1208,7 +1208,11 @@ void BattleGround::EventPlayerLoggedOut(Player* player) if( isBattleGround() ) EventPlayerDroppedFlag(player); else - CheckArenaWinConditions(); + { + //1 player is logging out, if it is the last, then end arena! + if( GetAlivePlayersCountByTeam(player->GetTeam()) <= 1 && GetPlayersCountByTeam(GetOtherTeam(player->GetTeam())) ) + EndBattleGround(GetOtherTeam(player->GetTeam())); + } } } @@ -1702,8 +1706,9 @@ void BattleGround::HandleKillPlayer( Player *player, Player *killer ) } } - // to be able to remove insignia - player->SetFlag( UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE ); + // to be able to remove insignia -- ONLY IN BattleGrounds + if( !isArena() ) + player->SetFlag( UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE ); } // return the player's team based on battlegroundplayer info diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 9129aabf835..2fdf78e4a11 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -4137,7 +4137,7 @@ void Player::CreateCorpse() flags |= CORPSE_FLAG_HIDE_HELM; if(HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_HIDE_CLOAK)) flags |= CORPSE_FLAG_HIDE_CLOAK; - if(InBattleGround()) + if(InBattleGround() && !InArena()) flags |= CORPSE_FLAG_LOOTABLE; // to be able to remove insignia corpse->SetUInt32Value( CORPSE_FIELD_FLAGS, flags ); |