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
|