diff options
| author | funjoker <torti-esser@web.de> | 2018-01-28 19:33:33 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2018-01-28 19:33:33 +0100 |
| commit | c4bf996c7d23fdfdb73d411d3f49a394b37d4d21 (patch) | |
| tree | 6ce248840d1bd1194c5ff48528991d1add876a1d /src/server/game/Entities/Player | |
| parent | 6226189a1687e1a2b4fb5a490031c22b5f334dc6 (diff) | |
Core/Spells: Allow skipping automatic removal of auras from spell_area when condition is no longer met (mostly used for cosmetic cutscenes after quest completion) (#21317)
Diffstat (limited to 'src/server/game/Entities/Player')
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 4de17ffb8c4..2925d78661a 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -16056,9 +16056,9 @@ void Player::SendQuestUpdate(uint32 questId) { for (SpellAreaForQuestAreaMap::const_iterator itr = saBounds.first; itr != saBounds.second; ++itr) { - if (!itr->second->IsFitToRequirements(this, zone, area)) + if (itr->second->flags & SPELL_AREA_FLAG_AUTOREMOVE && !itr->second->IsFitToRequirements(this, zone, area)) RemoveAurasDueToSpell(itr->second->spellId); - else if (itr->second->autocast) + else if (itr->second->flags & SPELL_AREA_FLAG_AUTOCAST) if (!HasAura(itr->second->spellId)) CastSpell(this, itr->second->spellId, true); } @@ -24887,7 +24887,7 @@ void Player::UpdateZoneDependentAuras(uint32 newZone) // Some spells applied at enter into zone (with subzones), aura removed in UpdateAreaDependentAuras that called always at zone->area update SpellAreaForAreaMapBounds saBounds = sSpellMgr->GetSpellAreaForAreaMapBounds(newZone); for (SpellAreaForAreaMap::const_iterator itr = saBounds.first; itr != saBounds.second; ++itr) - if (itr->second->autocast && itr->second->IsFitToRequirements(this, newZone, 0)) + if (itr->second->flags & SPELL_AREA_FLAG_AUTOCAST && itr->second->IsFitToRequirements(this, newZone, 0)) if (!HasAura(itr->second->spellId)) CastSpell(this, itr->second->spellId, true); } @@ -24907,7 +24907,7 @@ void Player::UpdateAreaDependentAuras(uint32 newArea) // some auras applied at subzone enter SpellAreaForAreaMapBounds saBounds = sSpellMgr->GetSpellAreaForAreaMapBounds(newArea); for (SpellAreaForAreaMap::const_iterator itr = saBounds.first; itr != saBounds.second; ++itr) - if (itr->second->autocast && itr->second->IsFitToRequirements(this, m_zoneUpdateId, newArea)) + if (itr->second->flags & SPELL_AREA_FLAG_AUTOCAST && itr->second->IsFitToRequirements(this, m_zoneUpdateId, newArea)) if (!HasAura(itr->second->spellId)) CastSpell(this, itr->second->spellId, true); } |
