SMSG_MONSTER_MOVE

Client Version 1.12, Client Version 2

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/world/movement/smsg/smsg_monster_move.wowm:11.

smsg SMSG_MONSTER_MOVE = 0x00DD {
    PackedGuid guid;
    Vector3d spline_point;
    u32 spline_id;
    MonsterMoveType move_type;
    if (move_type == FACING_TARGET) {
        Guid target;
    }
    else if (move_type == FACING_ANGLE) {
        f32 angle;
    }
    else if (move_type == FACING_SPOT) {
        Vector3d position;
    }
    SplineFlag spline_flags;
    u32 duration;
    MonsterMoveSplines splines;
}

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
0x04- / -PackedGuidguid
-12 / -Vector3dspline_point
-4 / Littleu32spline_id
-1 / -MonsterMoveTypemove_type

If move_type is equal to FACING_TARGET:

OffsetSize / EndiannessTypeNameComment
-8 / LittleGuidtarget

Else If move_type is equal to FACING_ANGLE:

OffsetSize / EndiannessTypeNameComment
-4 / Littlef32angle

Else If move_type is equal to FACING_SPOT:

OffsetSize / EndiannessTypeNameComment
-12 / -Vector3dposition
-4 / -SplineFlagspline_flags
-4 / Littleu32duration
-- / -MonsterMoveSplinesplines

Client Version 3.3.5

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/world/movement/smsg/smsg_monster_move.wowm:31.

smsg SMSG_MONSTER_MOVE = 0x00DD {
    PackedGuid guid;
    u8 unknown;
    Vector3d spline_point;
    u32 spline_id;
    MonsterMoveType move_type;
    if (move_type == FACING_TARGET) {
        Guid target;
    }
    else if (move_type == FACING_ANGLE) {
        f32 angle;
    }
    else if (move_type == FACING_SPOT) {
        Vector3d position;
    }
    SplineFlag spline_flags;
    if (spline_flags & ENTER_CYCLE) {
        u32 animation_id;
        u32 animation_start_time;
    }
    u32 duration;
    if (spline_flags & PARABOLIC) {
        f32 vertical_acceleration;
        u32 effect_start_time;
    }
    MonsterMoveSplines splines;
}

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
-- / -PackedGuidguid
-1 / -u8unknowncmangos-wotlk sets to 0
-12 / -Vector3dspline_point
-4 / Littleu32spline_id
-1 / -MonsterMoveTypemove_type

If move_type is equal to FACING_TARGET:

OffsetSize / EndiannessTypeNameComment
-8 / LittleGuidtarget

Else If move_type is equal to FACING_ANGLE:

OffsetSize / EndiannessTypeNameComment
-4 / Littlef32angle

Else If move_type is equal to FACING_SPOT:

OffsetSize / EndiannessTypeNameComment
-12 / -Vector3dposition
-4 / -SplineFlagspline_flags

If spline_flags contains ENTER_CYCLE:

OffsetSize / EndiannessTypeNameComment
-4 / Littleu32animation_id
-4 / Littleu32animation_start_time
-4 / Littleu32duration

If spline_flags contains PARABOLIC:

OffsetSize / EndiannessTypeNameComment
-4 / Littlef32vertical_acceleration
-4 / Littleu32effect_start_time
-- / -MonsterMoveSplinesplines