aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Handlers/SpellHandler.cpp12
-rw-r--r--src/server/game/Server/Packets/SpellPackets.cpp9
-rw-r--r--src/server/game/Server/Packets/SpellPackets.h12
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
4 files changed, 27 insertions, 8 deletions
diff --git a/src/server/game/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp
index 3ee24ef401e..4a28c076ce6 100644
--- a/src/server/game/Handlers/SpellHandler.cpp
+++ b/src/server/game/Handlers/SpellHandler.cpp
@@ -569,13 +569,11 @@ void WorldSession::HandleMissileTrajectoryCollision(WorldPackets::Spells::Missil
pos.Relocate(packet.CollisionPos);
spell->m_targets.ModDst(pos);
- WorldPacket data(SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION, 21);
- data << packet.Target;
- data << uint8(packet.CastID);
- data << float(packet.CollisionPos.x);
- data << float(packet.CollisionPos.y);
- data << float(packet.CollisionPos.z);
- caster->SendMessageToSet(&data, true);
+ WorldPackets::Spells::NotifyMissileTrajectoryCollision notify;
+ notify.Caster = packet.Target;
+ notify.CastID = packet.CastID;
+ notify.CollisionPos = packet.CollisionPos;
+ caster->SendMessageToSet(notify.Write(), true);
}
void WorldSession::HandleUpdateMissileTrajectory(WorldPackets::Spells::UpdateMissileTrajectory& packet)
diff --git a/src/server/game/Server/Packets/SpellPackets.cpp b/src/server/game/Server/Packets/SpellPackets.cpp
index ff6ec903990..f1cb69c32db 100644
--- a/src/server/game/Server/Packets/SpellPackets.cpp
+++ b/src/server/game/Server/Packets/SpellPackets.cpp
@@ -808,6 +808,15 @@ void WorldPackets::Spells::MissileTrajectoryCollision::Read()
_worldPacket >> CollisionPos;
}
+WorldPacket const * WorldPackets::Spells::NotifyMissileTrajectoryCollision::Write()
+{
+ _worldPacket << Caster;
+ _worldPacket << uint8(CastID);
+ _worldPacket << CollisionPos;
+
+ return &_worldPacket;
+}
+
void WorldPackets::Spells::UpdateMissileTrajectory::Read()
{
_worldPacket >> Guid;
diff --git a/src/server/game/Server/Packets/SpellPackets.h b/src/server/game/Server/Packets/SpellPackets.h
index 042c32ac66e..15a2ac34fc2 100644
--- a/src/server/game/Server/Packets/SpellPackets.h
+++ b/src/server/game/Server/Packets/SpellPackets.h
@@ -839,6 +839,18 @@ namespace WorldPackets
G3D::Vector3 CollisionPos;
};
+ class NotifyMissileTrajectoryCollision : public ServerPacket
+ {
+ public:
+ NotifyMissileTrajectoryCollision() : ServerPacket(SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION, 8 + 1 + 12) { }
+
+ WorldPacket const* Write() override;
+
+ ObjectGuid Caster;
+ uint8 CastID = 0;
+ G3D::Vector3 CollisionPos;
+ };
+
class UpdateMissileTrajectory final : public ClientPacket
{
public:
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index ed0feb6415b..6b9974da93c 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -1380,7 +1380,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEW_TAXI_PATH, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEW_WORLD, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_NOTIFY_DEST_LOC_SPELL_CAST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_NOTIFY_MONEY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_NOTIFY_RECEIVED_MAIL, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_OFFER_PETITION_ERROR, STATUS_NEVER, CONNECTION_TYPE_REALM);