From ea613df8afafecd007146ee5cc7202a0548e1336 Mon Sep 17 00:00:00 2001 From: zamalaev Date: Wed, 19 Feb 2020 11:45:09 +0000 Subject: [PATCH] CMSG_PLAYER_LOGIN 5.4.7 18019 --- src/game/Server/Opcodes.h | 2 +- src/game/WorldHandlers/CharacterHandler.cpp | 24 +++++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/game/Server/Opcodes.h b/src/game/Server/Opcodes.h index 02854f4b5..40e21b981 100644 --- a/src/game/Server/Opcodes.h +++ b/src/game/Server/Opcodes.h @@ -107,7 +107,7 @@ enum Opcodes SMSG_CHAR_CREATE = 0x2D05, // 4.3.4 15595 SMSG_CHAR_ENUM = 0x10B0, // 4.3.4 15595 SMSG_CHAR_DELETE = 0x0304, // 4.3.4 15595 - CMSG_PLAYER_LOGIN = 0x01E1, // 5.4.1 17538 + CMSG_PLAYER_LOGIN = 0x17D3, // 5.4.7 18019 SMSG_NEW_WORLD = 0x04D9, // 5.3.0 SMSG_TRANSFER_PENDING = 0x18A6, // 4.3.4 15595 SMSG_TRANSFER_ABORTED = 0x0537, // 4.3.4 15595 diff --git a/src/game/WorldHandlers/CharacterHandler.cpp b/src/game/WorldHandlers/CharacterHandler.cpp index bf07e20cf..5b6d6459f 100644 --- a/src/game/WorldHandlers/CharacterHandler.cpp +++ b/src/game/WorldHandlers/CharacterHandler.cpp @@ -638,13 +638,29 @@ void WorldSession::HandleCharDeleteOpcode(WorldPacket& recv_data) SendPacket(&data); } -void WorldSession::HandlePlayerLoginOpcode(WorldPacket& recv_data) +void WorldSession::HandlePlayerLoginOpcode(WorldPacket& recvData) { ObjectGuid playerGuid; - recv_data.ReadGuidMask<1, 5, 0, 2, 7, 6, 3, 4>(playerGuid); - recv_data.ReadGuidBytes<6, 4, 3, 5, 0, 2, 7, 1>(playerGuid); - float unk = recv_data.ReadSingle(); + playerGuid[7] = recvData.ReadBit(); + playerGuid[6] = recvData.ReadBit(); + playerGuid[0] = recvData.ReadBit(); + playerGuid[4] = recvData.ReadBit(); + playerGuid[5] = recvData.ReadBit(); + playerGuid[2] = recvData.ReadBit(); + playerGuid[3] = recvData.ReadBit(); + playerGuid[1] = recvData.ReadBit(); + + recvData.ReadByteSeq(playerGuid[5]); + recvData.ReadByteSeq(playerGuid[0]); + recvData.ReadByteSeq(playerGuid[1]); + recvData.ReadByteSeq(playerGuid[6]); + recvData.ReadByteSeq(playerGuid[7]); + recvData.ReadByteSeq(playerGuid[2]); + recvData.ReadByteSeq(playerGuid[3]); + recvData.ReadByteSeq(playerGuid[4]); + + float unk = recvData.ReadSingle(); DEBUG_LOG("WORLD: Received opcode Player Logon Message from %s, unk float: %f", playerGuid.GetString().c_str(), unk); if (PlayerLoading() || GetPlayer() != NULL)