Server Version Response
Packet ID: | 0x7531 |
---|---|
Packet Length: | 10 |
Client Defined: | SMSG_SERVER_VERSION_RESPONSE |
Sent Location(s): | src/login/login.cpp (client)
src/login/login.cpp (ladmin) src/map/clif.cpp |
Parsed Location(s): | src/net/tmwa/loginhandler.cpp:197 |
Fields
Offset | Length | Contents |
---|---|---|
0 | 2 | packet ID |
2 | 1 | major |
3 | 1 | minor or flavor1 |
4 | 1 | patch or flavor2 |
5 | 1 | devel or flavor3 |
6 | 1 | flags |
7 | 1 | which |
8 | 2 | vendor version |
Description
Reply to Server Version Request. The client waits for this before showing the login dialog. (When the login dialog is filled in, it sends Login Request)
This packet is sent differently depending on where it is sent.
Classically, major.minor.revision is 1.0.0, release and official are both 1, and mod version is 1052. 'which' is a bitmask indicating which server(s) it is connected to.
However, in the client connection, it instead sends major=255, minor='T', revision='M', release='W', and the remaining 4 bytes as a bitmask of flags. Evol does the same but with 'E', 'V', 'L'.
Only the low bit is actually used as a flag (in the 'official' field) - it is 1 if in-client registration is enabled and 0 if disabled (you have to register through the website).
Future version of tmwa will reply "correctly". They will set major.minor.revision to yy.mm.dd and set mod version to 0. Mod version should be incremented by anyone using a custom server. 'release' will be set depending on whether it is a git tag or between tags. 'official' is stuck as the flags field.