Valhalla Legends Forums Archive | BnetDocs Research and Discussion | Request for Information: SID_WARCRAFTGENERAL (0x44)

AuthorMessageTime
Arta
SID_WARCRAFTGENERAL is a multi-use message. Some of its purposes have been documented, but undoubtedly, others remain unpublished.

In particular, the following subcommands are undocumented, or poorly understood.

Client to Server:

[code]
0x00 - Enter in ladder game search

(DWORD) Cookie
(VOID) Unknown


0x02 - Request ladder map listing

(DWORD) Cookie
(BYTE) Number of types requested
(DWORD[]) Request data
[/code]

Other subcommands exist in the server-client version, but have not been documented.
July 6, 2005, 2:25 PM
Myndfyr
For the record, I was working on this message quite a bit prior to pausing my work on BNCS.  I'm planning to resume it soon, as the time is coming to put together the first plugin for my multi-client server system.  :)
July 6, 2005, 7:01 PM
Flexx_rus
I want to research this message. See post: https://davnit.net/bnet/vL/index.php?topic=16101.0 for more information. If you can help me post there please.
December 5, 2006, 6:04 PM
Barabajagal
Subcommand 0x02:
Send:
[code]
  (DWORD) Cookie
  (BYTE) Request Count
  For Each Request
  {
    (DWORD) ID
    (DWORD) Checksum *
  }
[/code]
Recv:
[code]
  (DWORD) Cookie
  (BYTE) Responses in Packet (not necessarily the requested amount)
  For Reach Response
  {
   (DWORD) ID
   (DWORD) Checksum *
   (WORD) Decompressed Length
   (WORD) Compressed Length
   (VOID) Compressed Data
  }
  (BYTE) Packets to come **
[/code]

*This value is 0 for the initial request, but is filled for the response. Subsequent requests send this value and the server sends nothing (meaning the data is correct). This leads me to believe it's a checksum of some sort, likely on the uncompressed data.

** For example, a request has a count of 5. The server only sends 3 responses in the first packet and sets this value to 2. It will then send one more packet with 1 response and this value set to 1. It then sends a final packet with the last data chunk, and this value is now 0.

[hr]

Known Request IDs: URL, MAP, TYPE, DESC, LADR.

Once you decompress the data with zlib's uncompress function, you're left with more data to parse. The formats are as follows:

URL:
[code]
(STRING) Ladder URL
(STRING) Personal Profile URL
(STRING) Tournament URL
(STRING) Clan Profile URL
[/code]

MAP:
[code]
(BYTE) Map count
(STRING) [] Map Name
[/code]

TYPE:
Unknown. About 400 bytes, all under 0x40. Lots of 0x3Fs, but nothing else in the 0x3X range... No idea what it means.
[code]03 00 05 00 00 05 3F 00  0D 06 04 05 03 07 08 0A
0B 00 10 11 12 1A 01 00  02 3F 00 0C 0B 0D 0E 00
0F 01 10 11 12 13 1A 1D  02 00 01 3F 00 0C 14 15
16 19 1A 1B 1C 1E 21 22  23 24 03 00 01 3F 00 0C
25 26 27 28 29 2A 2B 02  2C 2D 2E 2F 04 0E 02 3F
00 0C 0C 12 17 18 1C 21  27 2B 2C 2D 2E 30 01 03
00 00 05 3F 02 0C 0B 0D  0E 00 0F 01 10 11 12 13
1A 1D 02 00 06 3F 03 0D  14 15 16 19 1A 1B 1C 1E
1F 21 22 23 24 03 00 05  3F 04 0B 02 25 26 27 28
29 2A 2B 2C 2E 2F 02 1C  00 01 04 3F 00 04 00 07
11 12 01 01 04 3F 02 04  09 12 15 1A 02 01 04 3F
03 04 14 24 1F 2E 03 01  04 3F 03 04 14 24 1F 2E
04 01 04 3F 00 04 00 03  11 12 05 01 04 3F 02 04
09 12 15 1A 06 01 04 3F  02 04 09 12 15 1A 07 01
04 3F 03 04 14 24 1F 2E  08 01 04 3F 00 04 00 03
11 12 09 01 01 3F 02 01  1A 0A 01 01 3F 00 01 12
0B 01 01 3F 03 01 2E 0C  01 04 01 00 04 00 03 11
12 0D 01 01 3F 02 01 13  0E 01 04 20 00 04 00 03
11 12 0F 01 01 3F 00 01  00 10 01 04 20 02 04 09
12 15 1A 11 01 04 04 00  04 00 03 11 12 12 01 04
20 03 04 14 24 1F 2E 13  01 04 02 00 04 00 03 11
12 14 01 01 3F 02 01 12  15 01 04 08 00 04 00 03
11 12 16 01 01 3F 03 01  24 17 01 04 20 02 04 09
12 15 1A 18 01 01 3F 00  01 11 19 01 01 3F 02 01
09 1A 01 01 3F 00 01 07  1B 01 04 3F 00 04 00 03
11 12[/code]

DESC:
[code]
(BYTE) Map count
For Each Map
{
  (BYTE) Group ID (Not sure exactly what this is... something to do with the type of game, such as WCG, Bliz Tournament, or normal games)
  (BYTE) Game ID
  (STRING) Game Name
  (STRING) Game Description
}
[/code]

Note that in my test, it sent two different responses for the same request (DESC). The first DESC contains Normal and WCG games, and the second contains Blizzard Tournament games, with the last game being named "Battle.net Invitational" and having a description of "<FIXME - Could not resolve id>".

LADR:
[code]
(BYTE) Count
For Each Item
{
  (DWORD) Type
  (STRING) Name
  (STRING) URL
}
[/code]
March 28, 2009, 7:36 AM

Search