From 1273c0b5376c158d3009397071fa2dde5b1f384b Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 19 Jul 2015 00:31:11 +0200 Subject: Core/PacketIO: Updated and enabled spell packets --- src/server/game/Spells/Spell.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/server/game/Spells/Spell.cpp') diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 5dd7a7cb2fe..8bca6ab88d5 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -4240,6 +4240,7 @@ void Spell::SendInterrupted(uint8 result) failurePacket.CasterUnit = m_caster->GetGUID(); failurePacket.CastID = m_cast_count; failurePacket.SpellID = m_spellInfo->Id; + failurePacket.SpelXSpellVisualID = m_SpellVisual; failurePacket.Reason = result; m_caster->SendMessageToSet(failurePacket.Write(), true); @@ -4278,6 +4279,16 @@ void Spell::SendChannelStart(uint32 duration) spellChannelStart.ChannelDuration = duration; m_caster->SendMessageToSet(spellChannelStart.Write(), true); + uint32 schoolImmunityMask = m_caster->GetSchoolImmunityMask(); + uint32 mechanicImmunityMask = m_caster->GetMechanicImmunityMask(); + + if (schoolImmunityMask || mechanicImmunityMask) + { + spellChannelStart.InterruptImmunities = boost::in_place(); + spellChannelStart.InterruptImmunities->SchoolImmunities = schoolImmunityMask; + spellChannelStart.InterruptImmunities->Immunities = mechanicImmunityMask; + } + m_timer = duration; if (!channelTarget.IsEmpty()) m_caster->SetChannelObjectGuid(channelTarget); -- cgit v1.2.3