diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 3269f91dee..e4d5780116 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -2066,8 +2066,9 @@ void Spell::prepare(SpellCastTargets const* targets, Aura* triggeredByAura) // set timer base at cast time ReSetTimer(); - - if(m_IsTriggeredSpell) + //Containers for channeled spells have to be set + //TODO:Apply this to all casted spells if needed + if(m_IsTriggeredSpell && !IsChanneledSpell(m_spellInfo)) cast(true); else { diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index b518e5770c..1ae6880f2c 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -1975,25 +1975,6 @@ void Aura::HandleAuraDummy(bool apply, bool Real) return; } - if (caster && m_removeMode == AURA_REMOVE_BY_DEATH) - { - // Stop caster Arcane Missle chanelling on death - if (m_spellProto->SpellFamilyName == SPELLFAMILY_MAGE && - m_spellProto->SpellFamilyFlags[0] & 0x800) - { - caster->InterruptSpell(CURRENT_CHANNELED_SPELL); - return; - } - // Stop caster Penance chanelling on death - if (m_spellProto->SpellFamilyName == SPELLFAMILY_PRIEST && - m_spellProto->SpellFamilyFlags[2] & 0x00000080) - { - caster->InterruptSpell(CURRENT_CHANNELED_SPELL); - return; - } - - } - // some auras remove at aura remove if(GetEffIndex()==0 && m_target->GetTypeId()==TYPEID_PLAYER) { diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 468e79cb51..3bdad19a79 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -1894,8 +1894,8 @@ void Spell::EffectTriggerRitualOfSummoning(uint32 i) targets.setUnitTarget( unitTarget); spell->prepare(&targets); - m_caster->SetCurrentCastedSpell(spell); - spell->m_selfContainer = &(m_caster->m_currentSpells[spell->GetCurrentContainer()]); + //m_caster->SetCurrentCastedSpell(spell); + //spell->m_selfContainer = &(m_caster->m_currentSpells[spell->GetCurrentContainer()]); } diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index e264b669e0..2ac67aaa3f 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -4174,7 +4174,7 @@ void Unit::RemoveAura(AuraMap::iterator &i, AuraRemoveMode mode) && AurSpellInfo->EffectApplyAuraName[Aur->GetEffIndex()]!= SPELL_AURA_DUMMY) //don't stop channeling of scripted spells (this is actually a hack) { - caster->m_currentSpells[CURRENT_CHANNELED_SPELL]->cancel(); + caster->InterruptSpell(CURRENT_CHANNELED_SPELL); } } }