diff options
Diffstat (limited to 'src/game/BattleGround.cpp')
| -rw-r--r-- | src/game/BattleGround.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/game/BattleGround.cpp b/src/game/BattleGround.cpp index 7f5a1182cdc..acb3f25ae31 100644 --- a/src/game/BattleGround.cpp +++ b/src/game/BattleGround.cpp @@ -410,7 +410,11 @@ void BattleGround::Update(uint32 diff) Unit::AuraMap & aurMap = plr->GetAuras(); for(Unit::AuraMap::iterator iter = aurMap.begin(); iter != aurMap.end();) { - if (iter->second->GetAuraDuration()<=30*IN_MILISECONDS) + if (!iter->second->IsPermanent() + && iter->second->GetAuraDuration()<=30*IN_MILISECONDS + && iter->second->IsPositive() + && (!(iter->second->GetSpellProto()->Attributes & SPELL_ATTR_UNAFFECTED_BY_INVULNERABILITY)) + && (!iter->second->IsAuraType(SPELL_AURA_MOD_INVISIBILITY))) { plr->RemoveAura(iter); } |
