Difference between revisions of "Game Opcodes:Party Map Marker Update"
From FFXIV Classic Wiki
m (→Visual Layout: Making the padding more explicit, added ellipses to denote the packet can still continue if there's more data) |
(Modified layout of the array data.) |
||
Line 18: | Line 18: | ||
| 0x08 || uint32 || 4 Bytes || groupType || The type of group. Retail always showing PlayerPartyGroup (10001) | | 0x08 || uint32 || 4 Bytes || groupType || The type of group. Retail always showing PlayerPartyGroup (10001) | ||
|- | |- | ||
− | | 0x10 || array | + | | 0x10 || array || 640 Bytes || markerData || Contains the information of each player noted in the array |
|} | |} | ||
{| class="wikitable sortable" width="100%" | {| class="wikitable sortable" width="100%" | ||
− | ! colspan=5 | | + | ! colspan=5 | markerData - Index length 40 bytes, 16 indices max |
|- | |- | ||
! width="50px" style="text-align: center; font-size: 14px;" | Offset | ! width="50px" style="text-align: center; font-size: 14px;" | Offset | ||
Line 31: | Line 31: | ||
! style="text-align: center; font-size: 14px;" | Description | ! style="text-align: center; font-size: 14px;" | Description | ||
|- | |- | ||
− | | 0x00 || uint32 || 4 Bytes || playerID || The ID of | + | | 0x00 || uint32 || 4 Bytes || playerID || The ID of a player in the group |
|- | |- | ||
| 0x08 || uint32 || 4 Bytes || unknown || Each player has a different value assigned here. Unknown use case | | 0x08 || uint32 || 4 Bytes || unknown || Each player has a different value assigned here. Unknown use case | ||
Line 42: | Line 42: | ||
|- | |- | ||
| 0x20 || uint32 || 4 Bytes || playerO || Orientation of the player. Floating point value. | | 0x20 || uint32 || 4 Bytes || playerO || Orientation of the player. Floating point value. | ||
− | |||
− | |||
|} | |} | ||
Line 55: | Line 53: | ||
{| class="wikitable" style="border:1px solid black; text-align:center;" | {| class="wikitable" style="border:1px solid black; text-align:center;" | ||
− | | | + | | colspan=17 | Packet layout |
+ | |- | ||
+ | | | ||
! 0x0 !! 0x1 !! 0x2 !! 0x3 !! 0x4 !! 0x5 !! 0x6 !! 0x7 !! 0x8 !! 0x9 !! 0xA !! 0xB !! 0xC !! 0xD !! 0xE !! 0xF | ! 0x0 !! 0x1 !! 0x2 !! 0x3 !! 0x4 !! 0x5 !! 0x6 !! 0x7 !! 0x8 !! 0x9 !! 0xA !! 0xB !! 0xC !! 0xD !! 0xE !! 0xF | ||
|- | |- | ||
Line 64: | Line 64: | ||
|- | |- | ||
! 0x10 | ! 0x10 | ||
− | | colspan=" | + | | colspan="16" rowspan="39" style="background:#f1cbff" | '''markerData''' |
− | |||
− | |||
− | |||
|- | |- | ||
! 0x20 | ! 0x20 | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
! 0x30 | ! 0x30 | ||
− | |||
− | |||
− | |||
|- | |- | ||
! 0x40 | ! 0x40 | ||
− | |||
|- | |- | ||
! 0x50 | ! 0x50 | ||
− | |||
|- | |- | ||
! 0x60 | ! 0x60 | ||
− | |||
|- | |- | ||
! 0x70 | ! 0x70 | ||
− | |||
|- | |- | ||
! 0x80 | ! 0x80 | ||
− | |||
|- | |- | ||
! 0x90 | ! 0x90 | ||
− | |||
|- | |- | ||
! 0xA0 | ! 0xA0 | ||
− | | | + | |- |
+ | ! 0xB0 | ||
+ | |- | ||
+ | ! 0xC0 | ||
+ | |- | ||
+ | ! 0xD0 | ||
+ | |- | ||
+ | ! 0xE0 | ||
+ | |- | ||
+ | ! 0xF0 | ||
+ | |- | ||
+ | ! 0x100 | ||
+ | |- | ||
+ | ! 0x120 | ||
+ | |- | ||
+ | ! 0x130 | ||
+ | |- | ||
+ | ! 0x140 | ||
+ | |- | ||
+ | ! 0x150 | ||
+ | |- | ||
+ | ! 0x160 | ||
+ | |- | ||
+ | ! 0x170 | ||
+ | |- | ||
+ | ! 0x180 | ||
+ | |- | ||
+ | ! 0x190 | ||
+ | |- | ||
+ | ! 0x1A0 | ||
+ | |- | ||
+ | ! 0x1B0 | ||
+ | |- | ||
+ | ! 0x1C0 | ||
+ | |- | ||
+ | ! 0x1D0 | ||
+ | |- | ||
+ | ! 0x1E0 | ||
+ | |- | ||
+ | ! 0x1F0 | ||
+ | |- | ||
+ | ! 0x200 | ||
+ | |- | ||
+ | ! 0x210 | ||
+ | |- | ||
+ | ! 0x220 | ||
+ | |- | ||
+ | ! 0x230 | ||
+ | |- | ||
+ | ! 0x240 | ||
+ | |- | ||
+ | ! 0x250 | ||
+ | |- | ||
+ | ! 0x260 | ||
+ | |- | ||
+ | ! 0x270 | ||
+ | |- | ||
+ | ! 0x280 | ||
+ | |- | ||
+ | ! 0x290 | ||
+ | | 08 || 00 || 00 || 00 || 00 || 00 || 00 || 00 || || || || || || || || | ||
|} | |} | ||
+ | |||
+ | |||
+ | {| class="wikitable" style="border:1px solid black; text-align:center;" | ||
+ | | colspan=17 | markerData layout | ||
+ | |- | ||
+ | | | ||
+ | ! 0x0 !! 0x1 !! 0x2 !! 0x3 !! 0x4 !! 0x5 !! 0x6 !! 0x7 !! 0x8 !! 0x9 !! 0xA !! 0xB !! 0xC !! 0xD !! 0xE !! 0xF | ||
+ | |- | ||
+ | ! 0x00 | ||
+ | | colspan="4" style="background:#C0E8A7" | '''playerID[0]''' | ||
+ | | 00 || 00 || 00 || 00 | ||
+ | | colspan="4" style="background:#f1cbff" | '''unknown[0]''' | ||
+ | | 00 || 00 || 00 || 00 | ||
+ | |- | ||
+ | ! 0x10 | ||
+ | | 00 || 00 || 00 || 00 | ||
+ | | colspan="4" style="background:#ffb3ba" | '''playerX[0]''' | ||
+ | | colspan="4" style="background:#eedfcc" | '''playerY[0]''' | ||
+ | | colspan="4" style="background:#fdf5e6" | '''playerZ[0]''' | ||
+ | |- | ||
+ | ! 0x20 | ||
+ | | colspan="4" style="background:#f0f8ff" | '''playerO[0]''' | ||
+ | | 00 || 00 || 00 || 00 || || || || || || || || | ||
+ | |} | ||
+ | |||
+ | |||
[[Category:Unfinished]] | [[Category:Unfinished]] |
Revision as of 13:54, 24 March 2018
Shows party members on the map when the client receives the packet while the map is open.
- Opcode - 0x18D
- Data Size - 664 bytes
- Requirements - None
Data
Offset | Data Type | Length | Variable | Description |
---|---|---|---|---|
0x00 | uint64 | 8 Bytes | playerGroupID | The party group to be assigned to the player. |
0x08 | uint32 | 4 Bytes | groupType | The type of group. Retail always showing PlayerPartyGroup (10001) |
0x10 | array | 640 Bytes | markerData | Contains the information of each player noted in the array |
markerData - Index length 40 bytes, 16 indices max | ||||
---|---|---|---|---|
Offset | Data Type | Length | Variable | Description |
0x00 | uint32 | 4 Bytes | playerID | The ID of a player in the group |
0x08 | uint32 | 4 Bytes | unknown | Each player has a different value assigned here. Unknown use case |
0x14 | uint32 | 4 Bytes | playerX | X position of the player. Floating point value. |
0x18 | uint32 | 4 Bytes | playerY | Y position of the player. Floating point value. |
0x1C | uint32 | 4 Bytes | playerZ | Z position of the player. Floating point value. |
0x20 | uint32 | 4 Bytes | playerO | Orientation of the player. Floating point value. |
Notes
- Sent from the server at a regular interval, likely due to client not being programmed to send a request for such data when the player opens the map.
Visual Layout
Packet layout | ||||||||||||||||
0x0 | 0x1 | 0x2 | 0x3 | 0x4 | 0x5 | 0x6 | 0x7 | 0x8 | 0x9 | 0xA | 0xB | 0xC | 0xD | 0xE | 0xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x00 | playerGroupID | groupType | 00 | 00 | 00 | 00 | ||||||||||
0x10 | markerData | |||||||||||||||
0x20 | ||||||||||||||||
0x30 | ||||||||||||||||
0x40 | ||||||||||||||||
0x50 | ||||||||||||||||
0x60 | ||||||||||||||||
0x70 | ||||||||||||||||
0x80 | ||||||||||||||||
0x90 | ||||||||||||||||
0xA0 | ||||||||||||||||
0xB0 | ||||||||||||||||
0xC0 | ||||||||||||||||
0xD0 | ||||||||||||||||
0xE0 | ||||||||||||||||
0xF0 | ||||||||||||||||
0x100 | ||||||||||||||||
0x120 | ||||||||||||||||
0x130 | ||||||||||||||||
0x140 | ||||||||||||||||
0x150 | ||||||||||||||||
0x160 | ||||||||||||||||
0x170 | ||||||||||||||||
0x180 | ||||||||||||||||
0x190 | ||||||||||||||||
0x1A0 | ||||||||||||||||
0x1B0 | ||||||||||||||||
0x1C0 | ||||||||||||||||
0x1D0 | ||||||||||||||||
0x1E0 | ||||||||||||||||
0x1F0 | ||||||||||||||||
0x200 | ||||||||||||||||
0x210 | ||||||||||||||||
0x220 | ||||||||||||||||
0x230 | ||||||||||||||||
0x240 | ||||||||||||||||
0x250 | ||||||||||||||||
0x260 | ||||||||||||||||
0x270 | ||||||||||||||||
0x280 | ||||||||||||||||
0x290 | 08 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
markerData layout | ||||||||||||||||
0x0 | 0x1 | 0x2 | 0x3 | 0x4 | 0x5 | 0x6 | 0x7 | 0x8 | 0x9 | 0xA | 0xB | 0xC | 0xD | 0xE | 0xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x00 | playerID[0] | 00 | 00 | 00 | 00 | unknown[0] | 00 | 00 | 00 | 00 | ||||||
0x10 | 00 | 00 | 00 | 00 | playerX[0] | playerY[0] | playerZ[0] | |||||||||
0x20 | playerO[0] | 00 | 00 | 00 | 00 |