diff --git a/src/game/Server/Opcodes.cpp b/src/game/Server/Opcodes.cpp index 2aa79f33d..aa7757dcf 100644 --- a/src/game/Server/Opcodes.cpp +++ b/src/game/Server/Opcodes.cpp @@ -249,6 +249,7 @@ void InitializeOpcodes() OPCODE(SMSG_READ_ITEM_OK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(SMSG_READ_ITEM_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(SMSG_ITEM_COOLDOWN, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(CMSG_DESTROY_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleDestroyItemOpcode ); OPCODE(CMSG_GAMEOBJ_USE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGameObjectUseOpcode ); //OPCODE(CMSG_DESTROY_ITEMS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); OPCODE(SMSG_GAMEOBJECT_CUSTOM_ANIM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); diff --git a/src/game/Server/Opcodes.h b/src/game/Server/Opcodes.h index 35b299305..3ca71bb5f 100644 --- a/src/game/Server/Opcodes.h +++ b/src/game/Server/Opcodes.h @@ -93,6 +93,7 @@ enum Opcodes CMSG_SEND_EVENT = 0x102E, CMSG_DEBUG_AISTATE = 0x102F, SMSG_DEBUG_AISTATE = 0x1030, + CMSG_DESTROY_ITEM = 0x16CF, // 5.4.1 17538 CMSG_DISABLE_PVP_CHEAT = 0x1031, CMSG_ADVANCE_SPAWN_TIME = 0x1032, SMSG_DESTRUCTIBLE_BUILDING_DAMAGE = 0x4825, // 4.3.4 15595 diff --git a/src/game/WorldHandlers/ItemHandler.cpp b/src/game/WorldHandlers/ItemHandler.cpp index 2d97f19eb..17c77ec57 100644 --- a/src/game/WorldHandlers/ItemHandler.cpp +++ b/src/game/WorldHandlers/ItemHandler.cpp @@ -254,9 +254,11 @@ void WorldSession::HandleAutoEquipItemOpcode(WorldPacket& recv_data) void WorldSession::HandleDestroyItemOpcode(WorldPacket& recv_data) { // DEBUG_LOG("WORLD: CMSG_DESTROYITEM"); - uint8 bag, slot, count, data1, data2, data3; + uint32 count; + int8 bag, slot; - recv_data >> bag >> slot >> count >> data1 >> data2 >> data3; + recv_data >> count; + recv_data >> bag >> slot; // DEBUG_LOG("STORAGE: receive bag = %u, slot = %u, count = %u", bag, slot, count); uint16 pos = (bag << 8) | slot;