diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Player.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp index f992d882d62..b441ad63dd2 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -17954,13 +17954,14 @@ void Player::LeaveBattleground(bool teleportToEntryPoint) { if(BattleGround *bg = GetBattleGround()) { - bool need_debuf = bg->isBattleGround() && (bg->GetStatus() == STATUS_IN_PROGRESS) && sWorld.getConfig(CONFIG_BATTLEGROUND_CAST_DESERTER); - bg->RemovePlayerAtLeave(GetGUID(), teleportToEntryPoint, true); // call after remove to be sure that player resurrected for correct cast - if(need_debuf) - CastSpell(this, 26013, true); // Deserter + if( bg->isBattleGround() && sWorld.getConfig(CONFIG_BATTLEGROUND_CAST_DESERTER) ) + { + if( bg->GetStatus() == STATUS_IN_PROGRESS || bg->GetStatus() == STATUS_WAIT_JOIN ) + CastSpell(this, 26013, true); // Deserter + } } } |