*Do not allow periodic aoe auras to stack.

--HG--
branch : trunk
This commit is contained in:
QAston
2009-06-28 15:13:56 +02:00
parent 26dfd9df17
commit d529ab76c5
2 changed files with 8 additions and 1 deletions
+2 -1
View File
@@ -7388,7 +7388,8 @@ void AuraEffect::HandleReflectSpells( bool Apply, bool Real , bool /*changeAmoun
// implemented in Unit::SpellHitResult
// only special case
if(!Apply && Real && m_spellProto->SpellFamilyName == SPELLFAMILY_WARRIOR && m_spellProto->SpellFamilyFlags[1] & 0x2)
if(!Apply && Real && GetParentAura()->GetRemoveMode() != AURA_REMOVE_BY_DEFAULT
&& m_spellProto->SpellFamilyName == SPELLFAMILY_WARRIOR && m_spellProto->SpellFamilyFlags[1] & 0x2)
{
if (Unit * caster = GetCaster())
{
+6
View File
@@ -2826,6 +2826,11 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2, bool
for(uint32 i = 0; i < 3; ++i)
if (spellInfo_1->Effect[i] == SPELL_EFFECT_APPLY_AURA
|| spellInfo_1->Effect[i] == SPELL_EFFECT_PERSISTENT_AREA_AURA)
{
// not channeled AOE effects can stack
if(IsAreaEffectTarget[spellInfo_1->EffectImplicitTargetA[i]] || IsAreaEffectTarget[spellInfo_1->EffectImplicitTargetB[i]]
&& !IsChanneledSpell(spellInfo_1))
continue;
// not area auras (shaman totem)
switch(spellInfo_1->EffectApplyAuraName[i])
{
@@ -2844,6 +2849,7 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2, bool
default:
break;
}
}
}
spellId_2 = GetLastSpellInChain(spellId_2);