C>S 0x09 SID_GETADVLISTEX

Transport Layer:Transmission Control Protocol (TCP)
Application Layer:Battle.net v1 TCP Messages (SID)
Message Id:0x09
Message Name:SID_GETADVLISTEX
Direction:Client to Server
Used By:Starcraft Original, Starcraft Broodwar
Starcraft Shareware, Starcraft Japanese
Diablo Retail, Diablo Shareware
Diablo II, Diablo II Lord of Destruction
Warcraft II BNE
Message Format:
(does not include protocol header)
(UINT16) Game Type
(UINT16) Sub Game Type
(UINT32) Viewing Filter
(UINT32) Reserved (0)
(UINT32) Number of Games
(STRING) Game Name
(STRING) Game Password
(STRING) Game Statstring

Remarks

Retrieves a list of games.

Game Type:

For STAR/SEXP/SSHR/JSTR and W2BN, a value of 0 indicates that any type is acceptable.
Possible game types:
0x00: All
0x02: Melee
0x03: Free for all
0x04: one vs one
0x05: CTF
0x06: Greed
0x07: Slaughter
0x08: Sudden Death
0x09: Ladder
0x10: Iron man ladder
0x0A: Use Map Settings
0x0B: Team Melee
0x0C: Team FFA
0x0D: Team CTF
0x0F: Top vs. Bottom
For DRTL/DSHR, Game Type is used to specify a 'level range'. This ensures that clients receive a list of games containing players whose experience is similar to their own.
Possible ranges:
0x00: Level 1
0x01: 2 - 3
0x02: 4 - 5
0x03: 6 - 7
0x04: 8 - 9
0x05: 10 - 12
0x06: 13 - 16
0x07: 17 - 19
0x08: 20 - 24
0x09: 25 - 29
0x0A: 30 - 34
0x0B: 35 - 39
0x0C: 40 - 47
0x0D: 48 - 50
For all other games, Game Type can be set to 0x00.

Sub Game Type:

For Greed, this is resources in multiples of 2500 (0x01 = 2500, 0x02 = 5000, etc).
For Slaughter, this is minutes in multiples of 15 (0x01 = 15, 0x02 = 30, etc).
For Ladder, this indicates if disconnects count as a loss (0x01 = Yes, 0x00 = No).
For Team Melee, this is the number of teams (0x01 = 2, 0x02 = 3, etc).
For Team Free For All, this is the number of teams (0x01 = 2, 0x02 = 3, etc).
For Team Capture The Flag, this is the number of teams (0x01 = 2, 0x02 = 3, etc).
For Top vs. Bottom, this is the players to team ratio (1-7).
For any other game type, it is 0x01 which indicates no sub game type.

Viewing Filter:

0xFFFF is used to use the combination of values in this packet.
0xFF80 is used to show all games.
For STAR/SEXP/SSHR/JSTR, viewing filter is set to 0x30.
For DRTL/DSHR, viewing filter is set to 0xFFFF by the game, but setting it to 0x00 will disable any viewing limitations, letting you view all games.

Reserved (0):

This value is hardcoded to 0x00 by all games.

Number of Games:

This is the number of games to list. For a full listing, it's safe to use 0xFF. By default, DRTL/DSHR sets this to 0x19.
RealityRipple

Comments

Ozzapoo

Any chance you could revise this, and include the values for WAR3 and W3XP in?

Heinermann

Condition 3 is 0xFFFF for SEXP as well.

Heinermann

or 0xFF80 for All Games

Caaaaarrrrlll

Updated according to Frost's documentation as well as the information here.

Thank you for your contributions.

Frostslayer

I don't know if the second DWORD value is zero in ALL games and ALL versions. I do know that it is hard-coded in the current version of Starcraft: Broodwar, though.