diff options
-rw-r--r-- | src/server/game/Handlers/SpellHandler.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Server/Packets/SpellPackets.cpp | 1 | ||||
-rw-r--r-- | src/server/game/Server/Packets/SpellPackets.h | 1 |
3 files changed, 3 insertions, 1 deletions
diff --git a/src/server/game/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp index 55da4c5433b..ec9d24d02d3 100644 --- a/src/server/game/Handlers/SpellHandler.cpp +++ b/src/server/game/Handlers/SpellHandler.cpp @@ -613,7 +613,7 @@ void WorldSession::HandleUpdateMissileTrajectory(WorldPackets::Spells::UpdateMis { Unit* caster = ObjectAccessor::GetUnit(*_player, packet.Guid); Spell* spell = caster ? caster->GetCurrentSpell(CURRENT_GENERIC_SPELL) : nullptr; - if (!spell || spell->m_spellInfo->Id != uint32(packet.SpellID) || !spell->m_targets.HasDst() || !spell->m_targets.HasSrc()) + if (!spell || spell->m_spellInfo->Id != uint32(packet.SpellID) || spell->m_castId != packet.CastID || !spell->m_targets.HasDst() || !spell->m_targets.HasSrc()) return; spell->m_targets.ModSrc(packet.FirePos); diff --git a/src/server/game/Server/Packets/SpellPackets.cpp b/src/server/game/Server/Packets/SpellPackets.cpp index 4a4b9a8623f..c3b9b6c8b4b 100644 --- a/src/server/game/Server/Packets/SpellPackets.cpp +++ b/src/server/game/Server/Packets/SpellPackets.cpp @@ -954,6 +954,7 @@ WorldPacket const* WorldPackets::Spells::NotifyMissileTrajectoryCollision::Write void WorldPackets::Spells::UpdateMissileTrajectory::Read() { _worldPacket >> Guid; + _worldPacket >> CastID; _worldPacket >> MoveMsgID; _worldPacket >> SpellID; _worldPacket >> Pitch; diff --git a/src/server/game/Server/Packets/SpellPackets.h b/src/server/game/Server/Packets/SpellPackets.h index 02d0a9bdb39..6a2410fe571 100644 --- a/src/server/game/Server/Packets/SpellPackets.h +++ b/src/server/game/Server/Packets/SpellPackets.h @@ -984,6 +984,7 @@ namespace WorldPackets void Read() override; ObjectGuid Guid; + ObjectGuid CastID; uint16 MoveMsgID = 0; int32 SpellID = 0; float Pitch = 0.0f; |