SMSG_TRADE_STATUS

Client Version 1.12

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/world/trade/smsg_trade_status.wowm:283.

smsg SMSG_TRADE_STATUS = 0x0120 {
    TradeStatus status;
    if (status == BEGIN_TRADE) {
        Guid unknown1;
    }
    else if (status == CLOSE_WINDOW) {
        (u32)InventoryResult inventory_result;
        Bool target_error;
        u32 item_limit_category_id;
    }
    else if (status == ONLY_CONJURED
        || status == NOT_ON_TAPLIST) {
        u8 slot;
    }
}

SMSG have a header of 4 bytes.

SMSG Header

OffsetSize / EndiannessTypeNameDescription
0x002 / Biguint16sizeSize of the rest of the message including the opcode field but not including the size field.
0x022 / Littleuint16opcodeOpcode that determines which fields the message contains.

Body

OffsetSize / EndiannessTypeNameComment
0x044 / -TradeStatusstatus

If status is equal to BEGIN_TRADE:

OffsetSize / EndiannessTypeNameComment
0x088 / LittleGuidunknown1Set to 0 in vmangos.

Else If status is equal to CLOSE_WINDOW:

OffsetSize / EndiannessTypeNameComment
0x104 / -InventoryResultinventory_result
0x141 / -Booltarget_errorused for: EQUIP_ERR_BAG_FULL, EQUIP_ERR_CANT_CARRY_MORE_OF_THIS, EQUIP_ERR_MISSING_REAGENT, EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_COUNT_EXCEEDED
0x154 / Littleu32item_limit_category_idItemLimitCategory.dbc entry

Else If status is equal to ONLY_CONJURED or is equal to NOT_ON_TAPLIST:

OffsetSize / EndiannessTypeNameComment
0x191 / -u8slotTrade slot -1 here clears CGTradeInfo::m_tradeMoney

Client Version 2.4.3

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/world/trade/smsg_trade_status.wowm:283.

smsg SMSG_TRADE_STATUS = 0x0120 {
    TradeStatus status;
    if (status == BEGIN_TRADE) {
        Guid unknown1;
    }
    else if (status == CLOSE_WINDOW) {
        (u32)InventoryResult inventory_result;
        Bool target_error;
        u32 item_limit_category_id;
    }
    else if (status == ONLY_CONJURED
        || status == NOT_ON_TAPLIST) {
        u8 slot;
    }
}

Header

SMSG have a header of 4 bytes.

SMSG Header

OffsetSize / EndiannessTypeNameDescription
0x002 / Biguint16sizeSize of the rest of the message including the opcode field but not including the size field.
0x022 / Littleuint16opcodeOpcode that determines which fields the message contains.

Body

OffsetSize / EndiannessTypeNameComment
0x044 / -TradeStatusstatus

If status is equal to BEGIN_TRADE:

OffsetSize / EndiannessTypeNameComment
0x088 / LittleGuidunknown1Set to 0 in vmangos.

Else If status is equal to CLOSE_WINDOW:

OffsetSize / EndiannessTypeNameComment
0x104 / -InventoryResultinventory_result
0x141 / -Booltarget_errorused for: EQUIP_ERR_BAG_FULL, EQUIP_ERR_CANT_CARRY_MORE_OF_THIS, EQUIP_ERR_MISSING_REAGENT, EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_COUNT_EXCEEDED
0x154 / Littleu32item_limit_category_idItemLimitCategory.dbc entry

Else If status is equal to ONLY_CONJURED or is equal to NOT_ON_TAPLIST:

OffsetSize / EndiannessTypeNameComment
0x191 / -u8slotTrade slot -1 here clears CGTradeInfo::m_tradeMoney

Client Version 3.3.5

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/world/trade/smsg_trade_status.wowm:283.

smsg SMSG_TRADE_STATUS = 0x0120 {
    TradeStatus status;
    if (status == BEGIN_TRADE) {
        Guid unknown1;
    }
    else if (status == CLOSE_WINDOW) {
        (u32)InventoryResult inventory_result;
        Bool target_error;
        u32 item_limit_category_id;
    }
    else if (status == ONLY_CONJURED
        || status == NOT_ON_TAPLIST) {
        u8 slot;
    }
}

Header

SMSG have a header of 4 bytes.

SMSG Header

OffsetSize / EndiannessTypeNameDescription
0x002 OR 3 / Biguint16 OR uint16+uint8sizeSize of the rest of the message including the opcode field but not including the size field. Wrath server messages can be 3 bytes. If the first (most significant) size byte has 0x80 set, the header will be 3 bytes, otherwise it is 2.
-2 / Littleuint16opcodeOpcode that determines which fields the message contains.

Body

OffsetSize / EndiannessTypeNameComment
-4 / -TradeStatusstatus

If status is equal to BEGIN_TRADE:

OffsetSize / EndiannessTypeNameComment
-8 / LittleGuidunknown1Set to 0 in vmangos.

Else If status is equal to CLOSE_WINDOW:

OffsetSize / EndiannessTypeNameComment
-4 / -InventoryResultinventory_result
-1 / -Booltarget_errorused for: EQUIP_ERR_BAG_FULL, EQUIP_ERR_CANT_CARRY_MORE_OF_THIS, EQUIP_ERR_MISSING_REAGENT, EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_COUNT_EXCEEDED
-4 / Littleu32item_limit_category_idItemLimitCategory.dbc entry

Else If status is equal to ONLY_CONJURED or is equal to NOT_ON_TAPLIST:

OffsetSize / EndiannessTypeNameComment
-1 / -u8slotTrade slot -1 here clears CGTradeInfo::m_tradeMoney