From The Mana World
m (Update packet links.)
(update fields for the new system)
 
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 | revision      }}
{{packet field |  4 |  1 | patch or flavor2 }}
{{packet field |  5 |  1 | release      }}
{{packet field |  5 |  1 | devel or flavor3 }}
{{packet field |  6 |  1 | official      }}
{{packet field |  6 |  1 | flags            }}
{{packet field |  7 |  1 | which         }}
{{packet field |  7 |  1 | which           }}
{{packet field |  8 |  2 | mod version  }}
{{packet field |  8 |  2 | vendor version  }}





Latest revision as of 01:12, 6 August 2013

< 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.