SMSG_BATTLEFIELD_STATUS
Client Version 1.12
Wowm Representation
Autogenerated from wowm file at wow_message_parser/wowm/world/battleground/smsg_battlefield_status.wowm:16.
smsg SMSG_BATTLEFIELD_STATUS = 0x02D4 {
u32 queue_slot;
Map map;
if (map != EASTERN_KINGDOMS) {
BattlegroundBracket bracket;
u32 client_instance_id;
StatusId status_id;
if (status_id == WAIT_QUEUE) {
u32 average_wait_time_in_ms;
u32 time_in_queue_in_ms;
}
else if (status_id == WAIT_JOIN) {
u32 time_to_remove_in_queue_in_ms;
}
else if (status_id == IN_PROGRESS) {
u32 time_to_bg_autoleave_in_ms;
u32 time_to_bg_start_in_ms;
}
}
}
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. |
Client Version 2.4.3
mangosone treats arena_type, unknown1, battleground_type_id, and unknown2 as one big u64 and does not send any fields after these if all fields are 0.
Wowm Representation
Autogenerated from wowm file at wow_message_parser/wowm/world/battleground/smsg_battlefield_status.wowm:44.
smsg SMSG_BATTLEFIELD_STATUS = 0x02D4 {
u32 queue_slot;
ArenaType arena_type;
u8 unknown1;
BattlegroundType battleground_type;
u16 unknown2;
u32 client_instance_id;
Bool rated;
StatusId status_id;
if (status_id == WAIT_QUEUE) {
u32 average_wait_time_in_ms;
u32 time_in_queue_in_ms;
}
else if (status_id == WAIT_JOIN) {
u32 time_to_remove_in_queue_in_ms;
}
else if (status_id == IN_PROGRESS) {
u32 time_to_bg_autoleave_in_ms;
u32 time_to_bg_start_in_ms;
}
}
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 | 4 / Little | u32 | queue_slot | vmangos: players can be in 3 queues at the same time (0..2) |
| 0x08 | 1 / - | ArenaType | arena_type | |
| 0x09 | 1 / - | u8 | unknown1 | mangosone sets to 0x0D. |
| 0x0A | 4 / - | BattlegroundType | battleground_type | |
| 0x0E | 2 / Little | u16 | unknown2 | mangosone sets to 0x1F90 |
| 0x10 | 4 / Little | u32 | client_instance_id | |
| 0x14 | 1 / - | Bool | rated | |
| 0x15 | 1 / - | StatusId | status_id |
If status_id is equal to WAIT_QUEUE:
| Offset | Size / Endianness | Type | Name | Comment |
|---|---|---|---|---|
| 0x16 | 4 / Little | u32 | average_wait_time_in_ms | |
| 0x1A | 4 / Little | u32 | time_in_queue_in_ms |
Else If status_id is equal to WAIT_JOIN:
| Offset | Size / Endianness | Type | Name | Comment |
|---|---|---|---|---|
| 0x1E | 4 / Little | u32 | time_to_remove_in_queue_in_ms |
Else If status_id is equal to IN_PROGRESS:
| Offset | Size / Endianness | Type | Name | Comment |
|---|---|---|---|---|
| 0x22 | 4 / Little | u32 | time_to_bg_autoleave_in_ms | |
| 0x26 | 4 / Little | u32 | time_to_bg_start_in_ms |
Client Version 3.3.5
mangosone treats arena_type, unknown1, battleground_type_id, and unknown2 as one big u64 and does not send any fields after these if all fields are 0.
Wowm Representation
Autogenerated from wowm file at wow_message_parser/wowm/world/battleground/smsg_battlefield_status.wowm:88.
smsg SMSG_BATTLEFIELD_STATUS = 0x02D4 {
u32 queue_slot;
ArenaType arena_type;
u8 is_arena;
BattlegroundType battleground_type;
u16 unknown1;
u8 minimum_level;
u8 maximum_level;
u32 client_instance_id;
Bool rated;
StatusId status_id;
if (status_id == WAIT_QUEUE) {
u32 average_wait_time_in_ms;
u32 time_in_queue_in_ms;
}
else if (status_id == WAIT_JOIN) {
Map map1;
u64 unknown2;
u32 time_to_remove_in_queue_in_ms;
}
else if (status_id == IN_PROGRESS) {
Map map2;
u64 unknown3;
u32 time_to_bg_autoleave_in_ms;
u32 time_to_bg_start_in_ms;
ArenaFaction faction;
}
}
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 |
|---|---|---|---|---|
| - | 4 / Little | u32 | queue_slot | vmangos: players can be in 3 queues at the same time (0..2) |
| - | 1 / - | ArenaType | arena_type | |
| - | 1 / - | u8 | is_arena | azerothcore sets to 0x0E if it is arena, 0 otherwise. |
| - | 4 / - | BattlegroundType | battleground_type | |
| - | 2 / Little | u16 | unknown1 | azerothcore sets to 0x1F90 |
| - | 1 / - | u8 | minimum_level | |
| - | 1 / - | u8 | maximum_level | |
| - | 4 / Little | u32 | client_instance_id | |
| - | 1 / - | Bool | rated | |
| - | 1 / - | StatusId | status_id |
If status_id is equal to WAIT_QUEUE:
| Offset | Size / Endianness | Type | Name | Comment |
|---|---|---|---|---|
| - | 4 / Little | u32 | average_wait_time_in_ms | |
| - | 4 / Little | u32 | time_in_queue_in_ms |
Else If status_id is equal to WAIT_JOIN:
| Offset | Size / Endianness | Type | Name | Comment |
|---|---|---|---|---|
| - | 4 / - | Map | map1 | |
| - | 8 / Little | u64 | unknown2 | azerothcore: 3.3.5 unknown |
| - | 4 / Little | u32 | time_to_remove_in_queue_in_ms |
Else If status_id is equal to IN_PROGRESS:
| Offset | Size / Endianness | Type | Name | Comment |
|---|---|---|---|---|
| - | 4 / - | Map | map2 | |
| - | 8 / Little | u64 | unknown3 | azerothcore: 3.3.5 unknown |
| - | 4 / Little | u32 | time_to_bg_autoleave_in_ms | |
| - | 4 / Little | u32 | time_to_bg_start_in_ms | |
| - | 1 / - | ArenaFaction | faction |