From 4a08271b75a614ed3c0ed4901d57685fa9ab90e0 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Tue, 17 Feb 2026 01:24:37 -0800 Subject: [PATCH] Fix Classic item query to include GUID (server requires it) VMaNGOS reads uint32 entry + uint64 guid for CMSG_ITEM_QUERY_SINGLE, same as WotLK. Removing the GUID caused the server to silently drop all item queries, leaving equipment with no names or display info. --- src/game/packet_parsers_classic.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/game/packet_parsers_classic.cpp b/src/game/packet_parsers_classic.cpp index a103844f..8ac5865a 100644 --- a/src/game/packet_parsers_classic.cpp +++ b/src/game/packet_parsers_classic.cpp @@ -856,11 +856,12 @@ network::Packet ClassicPacketParsers::buildMailDelete(uint64_t mailboxGuid, // Vanilla has NO SoundOverrideSubclass, NO Flags2, NO ScalingStatDistribution, // NO ScalingStatValue, and only 2 damage types (not 5). // ============================================================================ -network::Packet ClassicPacketParsers::buildItemQuery(uint32_t entry, uint64_t /*guid*/) { - // Vanilla CMSG_ITEM_QUERY_SINGLE: just uint32 entry (no GUID field) +network::Packet ClassicPacketParsers::buildItemQuery(uint32_t entry, uint64_t guid) { + // Vanilla CMSG_ITEM_QUERY_SINGLE: uint32 entry + uint64 guid (same as WotLK) network::Packet packet(wireOpcode(Opcode::CMSG_ITEM_QUERY_SINGLE)); packet.writeUInt32(entry); - LOG_DEBUG("[Classic] Built CMSG_ITEM_QUERY_SINGLE: entry=", entry); + packet.writeUInt64(guid); + LOG_DEBUG("[Classic] Built CMSG_ITEM_QUERY_SINGLE: entry=", entry, " guid=0x", std::hex, guid, std::dec); return packet; }