diff options
-rwxr-xr-x | src/server/game/Battlegrounds/Battleground.cpp | 1 | ||||
-rwxr-xr-x | src/server/game/Entities/Unit/Unit.cpp | 5 | ||||
-rwxr-xr-x | src/server/game/Entities/Unit/Unit.h | 2 |
3 files changed, 3 insertions, 5 deletions
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index 404d3801e4f..b382735d3ef 100755 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -920,7 +920,6 @@ void Battleground::RemovePlayerAtLeave(const uint64& guid, bool Transport, bool // if arena, remove the specific arena auras if (isArena()) { - plr->RemoveArenaAuras(true); // removes debuffs / dots etc., we don't want the player to die after porting out bgTypeId=BATTLEGROUND_AA; // set the bg type to all arenas (it will be used for queue refreshing) // unsummon current and summon old pet if there was one and there isn't a current pet diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index ab38a5301f1..9657622a3a9 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -4029,7 +4029,7 @@ void Unit::RemoveAllAuras() } } -void Unit::RemoveArenaAuras(bool onleave) +void Unit::RemoveArenaAuras() { // in join, remove positive buffs, on end, remove negative // used to remove positive visible auras in arenas @@ -4039,8 +4039,7 @@ void Unit::RemoveArenaAuras(bool onleave) Aura const* aura = aurApp->GetBase(); if (!(aura->GetSpellProto()->AttributesEx4 & SPELL_ATTR4_UNK21) // don't remove stances, shadowform, pally/hunter auras && !aura->IsPassive() // don't remove passive auras - && !(aura->GetSpellProto()->AttributesEx3 & SPELL_ATTR3_DEATH_PERSISTENT) // not death persistent auras - && (aurApp->IsPositive() ^ onleave)) // remove positive buffs on enter, negative buffs on leave + && (aurApp->IsPositive() || !(aura->GetSpellProto()->AttributesEx3 & SPELL_ATTR3_DEATH_PERSISTENT))) // not negative death persistent auras RemoveAura(iter); else ++iter; diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 12884f76951..ed2b21bf6db 100755 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1663,7 +1663,7 @@ class Unit : public WorldObject void RemoveAreaAurasDueToLeaveWorld(); void RemoveAllAuras(); - void RemoveArenaAuras(bool onleave = false); + void RemoveArenaAuras(); void RemoveAllAurasOnDeath(); void RemoveAllAurasRequiringDeadTarget(); void RemoveAllAurasExceptType(AuraType type); |