SMSG_INITIAL_SPELLS
Client Version 1, Client Version 2
Wowm Representation
Autogenerated from wowm
file at wow_message_parser/wowm/world/spell/smsg_initial_spells.wowm:22
.
smsg SMSG_INITIAL_SPELLS = 0x012A {
u8 unknown1;
u16 spell_count;
InitialSpell[spell_count] initial_spells;
u16 cooldown_count;
CooldownSpell[cooldown_count] cooldowns;
}
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 | 1 / - | u8 | unknown1 | cmangos/mangoszero: sets to 0 |
0x05 | 2 / Little | u16 | spell_count | |
0x07 | ? / - | InitialSpell[spell_count] | initial_spells | |
- | 2 / Little | u16 | cooldown_count | |
- | ? / - | CooldownSpell[cooldown_count] | cooldowns |
Examples
Example 1
0, 167, // size
42, 1, // opcode (298)
0, // unknown1: u8
40, 0, // spell_count: u16
78, 0, // [0].InitialSpell.spell_id: u16
0, 0, // [0].InitialSpell.unknown1: u16
81, 0, // [1].InitialSpell.spell_id: u16
0, 0, // [1].InitialSpell.unknown1: u16
107, 0, // [2].InitialSpell.spell_id: u16
0, 0, // [2].InitialSpell.unknown1: u16
196, 0, // [3].InitialSpell.spell_id: u16
0, 0, // [3].InitialSpell.unknown1: u16
198, 0, // [4].InitialSpell.spell_id: u16
0, 0, // [4].InitialSpell.unknown1: u16
201, 0, // [5].InitialSpell.spell_id: u16
0, 0, // [5].InitialSpell.unknown1: u16
203, 0, // [6].InitialSpell.spell_id: u16
0, 0, // [6].InitialSpell.unknown1: u16
204, 0, // [7].InitialSpell.spell_id: u16
0, 0, // [7].InitialSpell.unknown1: u16
10, 2, // [8].InitialSpell.spell_id: u16
0, 0, // [8].InitialSpell.unknown1: u16
156, 2, // [9].InitialSpell.spell_id: u16
0, 0, // [9].InitialSpell.unknown1: u16
78, 9, // [10].InitialSpell.spell_id: u16
0, 0, // [10].InitialSpell.unknown1: u16
153, 9, // [11].InitialSpell.spell_id: u16
0, 0, // [11].InitialSpell.unknown1: u16
175, 9, // [12].InitialSpell.spell_id: u16
0, 0, // [12].InitialSpell.unknown1: u16
234, 11, // [13].InitialSpell.spell_id: u16
0, 0, // [13].InitialSpell.unknown1: u16
37, 13, // [14].InitialSpell.spell_id: u16
0, 0, // [14].InitialSpell.unknown1: u16
181, 20, // [15].InitialSpell.spell_id: u16
0, 0, // [15].InitialSpell.unknown1: u16
89, 24, // [16].InitialSpell.spell_id: u16
0, 0, // [16].InitialSpell.unknown1: u16
102, 24, // [17].InitialSpell.spell_id: u16
0, 0, // [17].InitialSpell.unknown1: u16
103, 24, // [18].InitialSpell.spell_id: u16
0, 0, // [18].InitialSpell.unknown1: u16
77, 25, // [19].InitialSpell.spell_id: u16
0, 0, // [19].InitialSpell.unknown1: u16
78, 25, // [20].InitialSpell.spell_id: u16
0, 0, // [20].InitialSpell.unknown1: u16
203, 25, // [21].InitialSpell.spell_id: u16
0, 0, // [21].InitialSpell.unknown1: u16
98, 28, // [22].InitialSpell.spell_id: u16
0, 0, // [22].InitialSpell.unknown1: u16
99, 28, // [23].InitialSpell.spell_id: u16
0, 0, // [23].InitialSpell.unknown1: u16
187, 28, // [24].InitialSpell.spell_id: u16
0, 0, // [24].InitialSpell.unknown1: u16
194, 32, // [25].InitialSpell.spell_id: u16
0, 0, // [25].InitialSpell.unknown1: u16
33, 34, // [26].InitialSpell.spell_id: u16
0, 0, // [26].InitialSpell.unknown1: u16
117, 35, // [27].InitialSpell.spell_id: u16
0, 0, // [27].InitialSpell.unknown1: u16
118, 35, // [28].InitialSpell.spell_id: u16
0, 0, // [28].InitialSpell.unknown1: u16
156, 35, // [29].InitialSpell.spell_id: u16
0, 0, // [29].InitialSpell.unknown1: u16
165, 35, // [30].InitialSpell.spell_id: u16
0, 0, // [30].InitialSpell.unknown1: u16
117, 80, // [31].InitialSpell.spell_id: u16
0, 0, // [31].InitialSpell.unknown1: u16
118, 80, // [32].InitialSpell.spell_id: u16
0, 0, // [32].InitialSpell.unknown1: u16
119, 80, // [33].InitialSpell.spell_id: u16
0, 0, // [33].InitialSpell.unknown1: u16
120, 80, // [34].InitialSpell.spell_id: u16
0, 0, // [34].InitialSpell.unknown1: u16
128, 81, // [35].InitialSpell.spell_id: u16
0, 0, // [35].InitialSpell.unknown1: u16
147, 84, // [36].InitialSpell.spell_id: u16
0, 0, // [36].InitialSpell.unknown1: u16
148, 84, // [37].InitialSpell.spell_id: u16
0, 0, // [37].InitialSpell.unknown1: u16
11, 86, // [38].InitialSpell.spell_id: u16
0, 0, // [38].InitialSpell.unknown1: u16
26, 89, // [39].InitialSpell.spell_id: u16
0, 0, // [39].InitialSpell.unknown1: u16
// initial_spells: InitialSpell[spell_count]
0, 0, // cooldown_count: u16
// cooldowns: CooldownSpell[cooldown_count]
Client Version 3.3.5
Wowm Representation
Autogenerated from wowm
file at wow_message_parser/wowm/world/spell/smsg_initial_spells.wowm:43
.
smsg SMSG_INITIAL_SPELLS = 0x012A {
u8 unknown1;
u16 spell_count;
InitialSpell[spell_count] initial_spells;
u16 cooldown_count;
CooldownSpell[cooldown_count] cooldowns;
}
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 |
---|---|---|---|---|
- | 1 / - | u8 | unknown1 | cmangos/mangoszero: sets to 0 |
- | 2 / Little | u16 | spell_count | |
- | ? / - | InitialSpell[spell_count] | initial_spells | |
- | 2 / Little | u16 | cooldown_count | |
- | ? / - | CooldownSpell[cooldown_count] | cooldowns |