diff --git a/src/game/Server/Opcodes.h b/src/game/Server/Opcodes.h index 59906cce4..8d73d29cc 100644 --- a/src/game/Server/Opcodes.h +++ b/src/game/Server/Opcodes.h @@ -462,7 +462,7 @@ enum Opcodes CMSG_QUESTGIVER_QUERY_QUEST = 0x0474, // 5.4.7 18019 CMSG_QUESTGIVER_QUEST_AUTOLAUNCH = 0x1188, SMSG_QUESTGIVER_QUEST_DETAILS = 0x2425, // 4.3.4 15595 - CMSG_QUESTGIVER_ACCEPT_QUEST = 0x6B37, // 4.3.4 15595 + CMSG_QUESTGIVER_ACCEPT_QUEST = 0x0356, // 5.4.7 18019 CMSG_QUESTGIVER_COMPLETE_QUEST = 0x0114, // 4.3.4 15595 SMSG_QUESTGIVER_REQUEST_ITEMS = 0x07F4, // 5.3.0 17128 CMSG_QUESTGIVER_REQUEST_REWARD = 0x2534, // 4.3.4 15595 diff --git a/src/game/WorldHandlers/QuestHandler.cpp b/src/game/WorldHandlers/QuestHandler.cpp index 008d66d5f..4e3d302e4 100644 --- a/src/game/WorldHandlers/QuestHandler.cpp +++ b/src/game/WorldHandlers/QuestHandler.cpp @@ -115,12 +115,31 @@ void WorldSession::HandleQuestgiverHelloOpcode(WorldPacket& recv_data) _player->SendPreparedGossip(pCreature); } -void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket& recv_data) +void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvData) { ObjectGuid guid; uint32 quest; - uint32 unk1; - recv_data >> guid >> quest >> unk1; + + recvData >> quest; + + guid[3] = recvData.ReadBit(); + guid[2] = recvData.ReadBit(); + guid[7] = recvData.ReadBit(); + recvData.ReadBit(); + guid[5] = recvData.ReadBit(); + guid[0] = recvData.ReadBit(); + guid[6] = recvData.ReadBit(); + guid[1] = recvData.ReadBit(); + guid[4] = recvData.ReadBit(); + + recvData.ReadByteSeq(guid[3]); + recvData.ReadByteSeq(guid[4]); + recvData.ReadByteSeq(guid[7]); + recvData.ReadByteSeq(guid[2]); + recvData.ReadByteSeq(guid[5]); + recvData.ReadByteSeq(guid[1]); + recvData.ReadByteSeq(guid[6]); + recvData.ReadByteSeq(guid[0]); if (!CanInteractWithQuestGiver(guid, "CMSG_QUESTGIVER_ACCEPT_QUEST")) {