Game Opcodes:Player Search Information Response

From FFXIV Classic Wiki
Revision as of 15:48, 26 March 2018 by Ioncannon (talk | contribs) (Visual Layout)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Sends the search results after a player requests a player search.

Opcode - 0x1DF
Source - Server
Data Size - 648 bytes
Requirements - 0x1D___ was sent by the client.

Data

Offset Data Type Length Variable Description
0x00 uint32 4 Bytes searchSessionID The ID of the current search session. This must match the initial result start ID.
0x08 byte 1 Bytes count The number of search comments in this packet.
0x0A boolean 1 Bytes resultFlag Result Flag (2 = Set Search Comment and End Search, 4 = End Search without setting Search Comment) -- If neither 2 or 4 are specified, the search comments are set but the search does not end. This is probably when multiple 0x1E0 packets need to be sent if all search comments don't fit into one packet.
0x0C SearchResult[] 92 Bytes * count searchResults The search results in this packet.
SearchResult - 92 Bytes
Offset Data Type Length Variable Description
0x00 byte 1 Bytes preferredClass The player's preferred class.
0x02 byte 1 Bytes clientLangauge The player's main language. See language code for values.
0x03 byte 1 Bytes extraLanguages The player's other languages. Bitfield: 1 = Japanese, 2 = English, 4 = German, 8 = French.
0x04 uint16 2 Bytes zoneID The zone (placeName) the player is in.
0x06 byte 1 Bytes cityState The player's starting citystate. 0 = None, 1 = Limsa Lominsa, 2 = Gridania, 3 = Ul'Dah
0x08 uint16 2 Bytes status The player's current status. 0 = None/Blank, 1 = Online, 2 = In Party, 3 = Seeking Party, 4 = Away
0x0A byte 1 Bytes currentClassID The player's current class.
0x0C string 32 Bytes name The player's name, null terminated.
0x2C ClassField[20] 40 Bytes classFields Defines the classes the player has. Ids MUST be in ascending order or the menu will not populate properly. Classes not yet unlocked may be omitted; position in list is not fixed, so Class Id 7 can be first in the list if the previous classes are not yet unlocked. There is space for 20 classes even though there are only 18 classes total (excluding jobs). The client DOES read from these 2 extra slots if used.
0x54 byte[8] 8 Bytes jobFields Unlocked job ID list. Each Id is 1 byte; Ids MUST be in ascending order or the menu will not populate properly. Jobs not yet unlocked may be omitted; position in list is not fixed, so Class Id 27 can be first in the list if the previous jobs are not yet unlocked. There is space for 8 job ids even though only 7 jobs exist. The client DOES read from this extra slot if used.
ClassField - 2 Bytes
Offset Data Type Length Variable Description
0x00 byte 1 Bytes classID Class ID.
0x01 byte 1 Bytes level The classes' level.

Notes

  • This packet is repeated until all items have been sent. Once done, 0x1DC is sent to update the UI.
  • The client will keep updating the window if more of this + 0x1DD packets are sent.

Visual Layout

Packet Data Layout
0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF
0x00 searchSessionID 00 00 00 00 count 00 resultFlag 00
0x10 searchData
~
0x650


SearchResult Layout
0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF
0x00 preferredClass 00 clientLanguage extraLanguage zoneID cityState 00 status currentClass 00
0x10 name
0x20
0x30 classField
0x40
0x50 jobField