CMSG_USE_ITEM

Client Version 1.12

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/world/item/cmsg_use_item.wowm:1.

cmsg CMSG_USE_ITEM = 0x00AB {
    u8 bag_index;
    u8 bag_slot;
    u8 spell_index;
    SpellCastTargets targets;
}

CMSG have a header of 6 bytes.

CMSG Header

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

Body

OffsetSize / EndiannessTypeNameComment
0x061 / -u8bag_index
0x071 / -u8bag_slot
0x081 / -u8spell_index
0x09- / -SpellCastTargetstargets

Examples

Example 1

0, 9, // size
171, 0, 0, 0, // opcode (171)
255, // bag_index: u8
24, // bag_slot: u8
0, // spell_index: u8
0, 0, // SpellCastTargets.target_flags: SpellCastTargetFlags  SELF (0)

Client Version 2.4.3

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/world/item/cmsg_use_item.wowm:10.

cmsg CMSG_USE_ITEM = 0x00AB {
    u8 bag_index;
    u8 bag_slot;
    u8 spell_index;
    u8 cast_count;
    Guid item;
    SpellCastTargets targets;
}

Header

CMSG have a header of 6 bytes.

CMSG Header

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

Body

OffsetSize / EndiannessTypeNameComment
0x061 / -u8bag_index
0x071 / -u8bag_slot
0x081 / -u8spell_index
0x091 / -u8cast_countmangosone: next cast if exists (single or not)
0x0A8 / LittleGuiditem
0x12- / -SpellCastTargetstargets

Client Version 3.3.5

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/world/item/cmsg_use_item.wowm:36.

cmsg CMSG_USE_ITEM = 0x00AB {
    u8 bag_index;
    u8 bag_slot;
    u8 spell_index;
    u8 cast_count;
    Spell spell;
    Guid item;
    u32 glyph_index;
    ClientCastFlags cast_flags;
    if (cast_flags == EXTRA) {
        f32 elevation;
        f32 speed;
        ClientMovementData movement_data;
        if (movement_data == PRESENT) {
            u32 opcode;
            PackedGuid guid;
            MovementInfo info;
        }
    }
    SpellCastTargets targets;
}

Header

CMSG have a header of 6 bytes.

CMSG Header

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

Body

OffsetSize / EndiannessTypeNameComment
0x061 / -u8bag_index
0x071 / -u8bag_slot
0x081 / -u8spell_index
0x091 / -u8cast_countmangosone: next cast if exists (single or not)
0x0A4 / LittleSpellspell
0x0E8 / LittleGuiditem
0x164 / Littleu32glyph_index
0x1A1 / -ClientCastFlagscast_flags

If cast_flags is equal to EXTRA:

OffsetSize / EndiannessTypeNameComment
0x1B4 / Littlef32elevation
0x1F4 / Littlef32speed
0x231 / -ClientMovementDatamovement_data

If movement_data is equal to PRESENT:

OffsetSize / EndiannessTypeNameComment
0x244 / Littleu32opcode
0x28- / -PackedGuidguid
-- / -MovementInfoinfo
-- / -SpellCastTargetstargets