diff --git a/src/server/game/Server/Packets/MovementPackets.cpp b/src/server/game/Server/Packets/MovementPackets.cpp index 672e8370e4..d74a2606cd 100644 --- a/src/server/game/Server/Packets/MovementPackets.cpp +++ b/src/server/game/Server/Packets/MovementPackets.cpp @@ -562,3 +562,29 @@ WorldPacket const* WorldPackets::Movement::MoveSetActiveMover::Write() return &_worldPacket; } + +WorldPacket const* WorldPackets::Movement::MoveSetVehicleRecID::Write() +{ + _worldPacket << uint32(SequenceIndex); + _worldPacket << int32(VehicleRecID); + + _worldPacket.WriteBit(MoverGUID[3]); + _worldPacket.WriteBit(MoverGUID[0]); + _worldPacket.WriteBit(MoverGUID[1]); + _worldPacket.WriteBit(MoverGUID[7]); + _worldPacket.WriteBit(MoverGUID[2]); + _worldPacket.WriteBit(MoverGUID[6]); + _worldPacket.WriteBit(MoverGUID[5]); + _worldPacket.WriteBit(MoverGUID[4]); + + _worldPacket.WriteByteSeq(MoverGUID[5]); + _worldPacket.WriteByteSeq(MoverGUID[7]); + _worldPacket.WriteByteSeq(MoverGUID[4]); + _worldPacket.WriteByteSeq(MoverGUID[3]); + _worldPacket.WriteByteSeq(MoverGUID[2]); + _worldPacket.WriteByteSeq(MoverGUID[6]); + _worldPacket.WriteByteSeq(MoverGUID[1]); + _worldPacket.WriteByteSeq(MoverGUID[0]); + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/MovementPackets.h b/src/server/game/Server/Packets/MovementPackets.h index 5cf43d3313..8bedffe73a 100644 --- a/src/server/game/Server/Packets/MovementPackets.h +++ b/src/server/game/Server/Packets/MovementPackets.h @@ -258,6 +258,18 @@ namespace WorldPackets ObjectGuid MoverGUID; }; + + class MoveSetVehicleRecID final : public ServerPacket + { + public: + MoveSetVehicleRecID(ObjectGuid moverGuid) : ServerPacket(SMSG_MOVE_SET_VEHICLE_REC_ID, 8 + 4 + 4), MoverGUID(moverGuid) { } + + WorldPacket const* Write() override; + + ObjectGuid MoverGUID; + uint32 SequenceIndex = 0; + int32 VehicleRecID = 0; + }; } ByteBuffer& operator<<(ByteBuffer& data, Movement::MovementSpline const& movementSpline); diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index a1b5d804bb..fdf3841edb 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -600,7 +600,7 @@ void OpcodeTable::Initialize() DEFINE_HANDLER(CMSG_STANDSTATECHANGE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleStandStateChangeOpcode ); DEFINE_HANDLER(CMSG_STOP_DANCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_HANDLER(CMSG_SUPPORT_TICKET_SUBMIT_BUG, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSupportTicketSubmitBugOpcode); - DEFINE_HANDLER(CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL ); + DEFINE_HANDLER(CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSupportTicketSubmitComplaintOpcode); DEFINE_HANDLER(CMSG_SUPPORT_TICKET_SUBMIT_SUGGESTION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSupportTicketSubmitSuggestionOpcode); DEFINE_HANDLER(CMSG_SUMMON_RESPONSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSummonResponseOpcode ); DEFINE_HANDLER(CMSG_SUSPEND_TOKEN_RESPONSE, STATUS_TRANSFER, PROCESS_THREADUNSAFE, &WorldSession::HandleSuspendTokenResponse ); @@ -847,7 +847,6 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_FORCEACTIONSHOW, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_FORCED_DEATH_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_FORCE_ANIM, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_FORCE_SET_VEHICLE_REC_ID, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_FORGE_MASTER_SET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_FRIEND_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAMEOBJECT_CUSTOM_ANIM, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); @@ -1049,6 +1048,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_SWIM_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_SWIM_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_TURN_RATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_VEHICLE_REC_ID, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_WALK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UNROOT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UNSET_CAN_FLY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); @@ -1727,7 +1727,6 @@ void OpcodeTable::Initialize() //DEFINE_OPCODE_HANDLER(SMSG_MEETINGSTONE_SETQUEUE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_MINIGAME_MOVE_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_MOVE_CHARACTER_CHEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_VEHICLE_REC_ID, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_WALK_IN_AIR, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_MOVE_SKIP_TIME, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_MOVE_UNSET_WALK_IN_AIR, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h index 6f50d76ccd..f9fef68c7c 100644 --- a/src/server/game/Server/Protocol/Opcodes.h +++ b/src/server/game/Server/Protocol/Opcodes.h @@ -785,7 +785,6 @@ enum OpcodeServer SMSG_FORCED_DEATH_UPDATE = 0x2606, SMSG_FORCE_ANIM = 0x4C05, SMSG_FORCE_DISPLAY_UPDATE = 0x0000, - SMSG_FORCE_SET_VEHICLE_REC_ID = 0x70A1, SMSG_FORGE_MASTER_SET = 0x70B7, SMSG_FRIEND_STATUS = 0x0717, SMSG_GAMEOBJECT_CUSTOM_ANIM = 0x4936, @@ -1000,7 +999,7 @@ enum OpcodeServer SMSG_MOVE_SET_SWIM_BACK_SPEED = 0x5CA6, SMSG_MOVE_SET_SWIM_SPEED = 0x15A7, SMSG_MOVE_SET_TURN_RATE = 0x30A5, - SMSG_MOVE_SET_VEHICLE_REC_ID = 0x0000, + SMSG_MOVE_SET_VEHICLE_REC_ID = 0x70A1, SMSG_MOVE_SET_WALK_IN_AIR = 0x0000, SMSG_MOVE_SET_WALK_SPEED = 0x1DA4, SMSG_MOVE_UNROOT = 0x7DB4,