From The Mana World
Revision as of 01:59, 2 February 2013 by O11c (talk | contribs) (add post link)

< Back

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/char/char.cpp

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
4 1 revision
5 1 release
6 1 official
7 1 which
8 2 mod version


Description

Reply to Packet:0x7530. The client waits for this before showing the login dialog. (When the login dialog is filled in, it sends Packet:0x0064)

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.