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;
}
Header
SMSG have a header of 4 bytes.
SMSG Header
| Offset | Size / Endianness | Type | Name | Description |
|---|---|---|---|---|
| 0x00 | 2 / Big | uint16 | size | Size of the rest of the message including the opcode field but not including the size field. |
| 0x02 | 2 / Little | uint16 | opcode | Opcode that determines which fields the message contains. |
Body
| Offset | Size / Endianness | Type | Name | Comment |
|---|---|---|---|---|
| 0x04 | - / - | PackedGuid | guid | |
| - | 12 / - | Vector3d | spline_point | |
| - | 4 / Little | u32 | spline_id | |
| - | 1 / - | MonsterMoveType | move_type |
If move_type is equal to FACING_TARGET:
| Offset | Size / Endianness | Type | Name | Comment |
|---|---|---|---|---|
| - | 8 / Little | Guid | target |
Else If move_type is equal to FACING_ANGLE:
| Offset | Size / Endianness | Type | Name | Comment |
|---|---|---|---|---|
| - | 4 / Little | f32 | angle |
Else If move_type is equal to FACING_SPOT:
| Offset | Size / Endianness | Type | Name | Comment |
|---|---|---|---|---|
| - | 12 / - | Vector3d | position | |
| - | 4 / - | SplineFlag | spline_flags | |
| - | 4 / Little | u32 | duration | |
| - | - / - | MonsterMoveSpline | splines |
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
| Offset | Size / Endianness | Type | Name | Description |
|---|---|---|---|---|
| 0x00 | 2 OR 3 / Big | uint16 OR uint16+uint8 | size | Size 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 / Little | uint16 | opcode | Opcode that determines which fields the message contains. |
Body
| Offset | Size / Endianness | Type | Name | Comment |
|---|---|---|---|---|
| - | - / - | PackedGuid | guid | |
| - | 1 / - | u8 | unknown | cmangos-wotlk sets to 0 |
| - | 12 / - | Vector3d | spline_point | |
| - | 4 / Little | u32 | spline_id | |
| - | 1 / - | MonsterMoveType | move_type |
If move_type is equal to FACING_TARGET:
| Offset | Size / Endianness | Type | Name | Comment |
|---|---|---|---|---|
| - | 8 / Little | Guid | target |
Else If move_type is equal to FACING_ANGLE:
| Offset | Size / Endianness | Type | Name | Comment |
|---|---|---|---|---|
| - | 4 / Little | f32 | angle |
Else If move_type is equal to FACING_SPOT:
| Offset | Size / Endianness | Type | Name | Comment |
|---|---|---|---|---|
| - | 12 / - | Vector3d | position | |
| - | 4 / - | SplineFlag | spline_flags |
If spline_flags contains ENTER_CYCLE:
| Offset | Size / Endianness | Type | Name | Comment |
|---|---|---|---|---|
| - | 4 / Little | u32 | animation_id | |
| - | 4 / Little | u32 | animation_start_time | |
| - | 4 / Little | u32 | duration |
If spline_flags contains PARABOLIC:
| Offset | Size / Endianness | Type | Name | Comment |
|---|---|---|---|---|
| - | 4 / Little | f32 | vertical_acceleration | |
| - | 4 / Little | u32 | effect_start_time | |
| - | - / - | MonsterMoveSpline | splines |