diff options
author | joschiwald <joschiwald.trinity@gmail.com> | 2016-12-03 16:28:17 +0100 |
---|---|---|
committer | joschiwald <joschiwald.trinity@gmail.com> | 2016-12-03 16:28:17 +0100 |
commit | e66acf820b3cf1df56bc93a8ac75e151fd7718b5 (patch) | |
tree | 6b2015efc51c77d9b210ffb1974b11d5fa05fd5b | |
parent | 4e1a263e7c8730d4bbda49cebbbec381f971164a (diff) |
Core/Packets: added SMSG_PLAY_SPELL_VISUAL packet class
-rw-r--r-- | src/server/game/Server/Packets/SpellPackets.cpp | 16 | ||||
-rw-r--r-- | src/server/game/Server/Packets/SpellPackets.h | 18 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 2 |
3 files changed, 35 insertions, 1 deletions
diff --git a/src/server/game/Server/Packets/SpellPackets.cpp b/src/server/game/Server/Packets/SpellPackets.cpp index 291acbb5381..4f50821c066 100644 --- a/src/server/game/Server/Packets/SpellPackets.cpp +++ b/src/server/game/Server/Packets/SpellPackets.cpp @@ -758,6 +758,22 @@ WorldPacket const* WorldPackets::Spells::CancelSpellVisual::Write() return &_worldPacket; } +WorldPacket const* WorldPackets::Spells::PlaySpellVisual::Write() +{ + _worldPacket << Source; + _worldPacket << Target; + _worldPacket << TargetPostion; + _worldPacket << SpellVisualID; + _worldPacket << TravelSpeed; + _worldPacket << MissReason; + _worldPacket << ReflectStatus; + _worldPacket << Orientation; + _worldPacket.WriteBit(SpeedAsTime); + _worldPacket.FlushBits(); + + return &_worldPacket; +} + WorldPacket const* WorldPackets::Spells::PlaySpellVisualKit::Write() { _worldPacket << Unit; diff --git a/src/server/game/Server/Packets/SpellPackets.h b/src/server/game/Server/Packets/SpellPackets.h index 42e247b31bf..18ea49c96af 100644 --- a/src/server/game/Server/Packets/SpellPackets.h +++ b/src/server/game/Server/Packets/SpellPackets.h @@ -761,6 +761,24 @@ namespace WorldPackets int32 SpellVisualID = 0; }; + class PlaySpellVisual final : public ServerPacket + { + public: + PlaySpellVisual() : ServerPacket(SMSG_PLAY_SPELL_VISUAL, 16 + 16 + 2 + 4 + 1 + 2 + 4 + 4 * 4) { } + + WorldPacket const* Write() override; + + ObjectGuid Source; + ObjectGuid Target; + uint16 MissReason = 0; + uint32 SpellVisualID = 0; + bool SpeedAsTime = false; + uint16 ReflectStatus = 0; + float TravelSpeed = 0.0f; + G3D::Vector3 TargetPostion; + float Orientation = 0.0f; + }; + class PlaySpellVisualKit final : public ServerPacket { public: diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 5a573c81f19..9a04e018908 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -1506,7 +1506,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SCENE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SOUND, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPEAKERBOT_SOUND, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPELL_VISUAL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPELL_VISUAL, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPELL_VISUAL_KIT, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_TIME_WARNING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_PONG, STATUS_NEVER, CONNECTION_TYPE_REALM); |