[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
This commit is contained in:
@@ -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
|
||||
|
||||
+1
-1
@@ -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 );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user