(align) |
(update fields for the new system) |
||
(2 intermediate revisions by one other user not shown) | |||
Line 13: | Line 13: | ||
|fields= | |fields= | ||
{{packet field | 0 | 2 | packet ID | {{packet field | 0 | 2 | packet ID }} | ||
{{packet field | 2 | 1 | major | {{packet field | 2 | 1 | major }} | ||
{{packet field | 3 | 1 | minor | {{packet field | 3 | 1 | minor or flavor1 }} | ||
{{packet field | 4 | 1 | | {{packet field | 4 | 1 | patch or flavor2 }} | ||
{{packet field | 5 | 1 | | {{packet field | 5 | 1 | devel or flavor3 }} | ||
{{packet field | 6 | 1 | | {{packet field | 6 | 1 | flags }} | ||
{{packet field | 7 | 1 | which | {{packet field | 7 | 1 | which }} | ||
{{packet field | 8 | 2 | | {{packet field | 8 | 2 | vendor version }} | ||
|description=[[File:LoginProcessFlow.svg|frame|Login Process Flow]] | |description=[[File:LoginProcessFlow.svg|frame|Login Process Flow]] | ||
Reply to [[ | Reply to [[Net:0x7530|Server Version Request]]. The client waits for this before showing the login dialog. (When the login dialog is filled in, it sends [[Net:0x0064|Login Request]]) | ||
This packet is sent differently depending on where it is sent. | This packet is sent differently depending on where it is sent. |
Latest revision as of 01:12, 6 August 2013
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.