diff --git a/Source/Game/Handlers/SpellHandler.cs b/Source/Game/Handlers/SpellHandler.cs index e548e9f1b..2e7806976 100644 --- a/Source/Game/Handlers/SpellHandler.cs +++ b/Source/Game/Handlers/SpellHandler.cs @@ -613,7 +613,7 @@ namespace Game { Unit caster = Global.ObjAccessor.GetUnit(GetPlayer(), packet.Guid); Spell spell = caster ? caster.GetCurrentSpell(CurrentSpellTypes.Generic) : null; - if (!spell || spell.m_spellInfo.Id != packet.SpellID || !spell.m_targets.HasDst() || !spell.m_targets.HasSrc()) + if (!spell || spell.m_spellInfo.Id != packet.SpellID || spell.m_castId != packet.CastID || !spell.m_targets.HasDst() || !spell.m_targets.HasSrc()) return; Position pos = spell.m_targets.GetSrcPos(); diff --git a/Source/Game/Networking/Packets/SpellPackets.cs b/Source/Game/Networking/Packets/SpellPackets.cs index 381bb5274..be357e44d 100644 --- a/Source/Game/Networking/Packets/SpellPackets.cs +++ b/Source/Game/Networking/Packets/SpellPackets.cs @@ -1067,6 +1067,7 @@ namespace Game.Networking.Packets public override void Read() { Guid = _worldPacket.ReadPackedGuid(); + CastID = _worldPacket.ReadPackedGuid(); MoveMsgID = _worldPacket.ReadUInt16(); SpellID = _worldPacket.ReadUInt32(); Pitch = _worldPacket.ReadFloat(); @@ -1081,6 +1082,7 @@ namespace Game.Networking.Packets } public ObjectGuid Guid; + public ObjectGuid CastID; public ushort MoveMsgID; public uint SpellID; public float Pitch;