From The Mana World

< 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 or flavor1
4 1 patch or flavor2
5 1 devel or flavor3
6 1 flags
7 1 which
8 2 vendor version


Description

Login Process Flow

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.