aboutsummaryrefslogtreecommitdiff
path: root/src/game/SpellAuras.cpp
diff options
context:
space:
mode:
authorQAston <none@none>2009-03-15 02:06:59 +0100
committerQAston <none@none>2009-03-15 02:06:59 +0100
commit8b96182b1cb8d79c63fc0a30377cea9a480b418c (patch)
tree6f99250311fc69efe695a1c7af88e1ed4b7a0307 /src/game/SpellAuras.cpp
parent47b39981a1693ba931743c0ac1d4e092ec62a2d8 (diff)
*Fix Shattered Barrier
--HG-- branch : trunk
Diffstat (limited to 'src/game/SpellAuras.cpp')
-rw-r--r--src/game/SpellAuras.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 767cc512561..b4bedebbfe9 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -1043,7 +1043,13 @@ void Aura::_RemoveAura()
ProcCaster = PROC_FLAG_SUCCESSFUL_NEGATIVE_SPELL_HIT;
ProcVictim = PROC_FLAG_TAKEN_NEGATIVE_SPELL_HIT;
}
- caster->ProcDamageAndSpell(m_target,ProcCaster, ProcVictim, PROC_EX_AURA_REMOVE, 0, BASE_ATTACK, m_spellProto);
+ uint32 procEx=0;
+ if (m_removeMode == AURA_REMOVE_BY_DISPEL)
+ procEx = PROC_EX_AURA_REMOVE_DISPEL;
+ else if (m_removeMode == AURA_REMOVE_BY_DEFAULT)
+ procEx = PROC_EX_AURA_REMOVE_EXPIRE;
+
+ caster->ProcDamageAndSpell(m_target,ProcCaster, ProcVictim, procEx, m_modifier.m_amount, BASE_ATTACK, m_spellProto);
}
}
}
@@ -2051,9 +2057,10 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
// Living Bomb
if (m_spellProto->SpellFamilyFlags[1] & 0x20000)
{
- if(!m_target || !caster || !(m_removeMode == AURA_REMOVE_BY_DISPEL || m_removeMode == AURA_REMOVE_BY_DEFAULT))
+ if(!m_target || !(m_removeMode == AURA_REMOVE_BY_DISPEL || m_removeMode == AURA_REMOVE_BY_DEFAULT))
return;
- caster->CastSpell(m_target, GetModifier()->m_amount, true, NULL, NULL, GetCasterGUID());
+ Unit* target=NULL;
+ m_target->CastSpell(m_target, GetModifier()->m_amount, true, NULL, NULL, GetCasterGUID());
return;
}
break;