AuthServer: Difference between revisions
From OuroDev
| Line 2: | Line 2: | ||
==Communication Protocols== | ==Communication Protocols== | ||
In the sections below, the table column "Structure" is denoted in | In the sections below, the table column "Structure" is denoted in a similar format used by the server source. Minus the opcode, which is type "c." | ||
{| class="wikitable" | {| class="wikitable" | ||
!Type | !Type | ||
Revision as of 00:28, 3 September 2020
Responsible for user authentication and session creation. Cross-shard capabilities.
Communication Protocols
In the sections below, the table column "Structure" is denoted in a similar format used by the server source. Minus the opcode, which is type "c."
| Type | Description |
|---|---|
| c | Char |
| w | Word / Short |
| d | DWord / Int |
| q | QWord / Long |
| b | Byte Array |
| s | NUL-terminated C String |
| [] | Array |
| () | Conditional, based on config |
Game Server
TCP Port 2104. AuthServer and DBServer communicate through this port.
Incoming Packets
| Opcode | Description | Structure |
|---|---|---|
| AS_PLAY_OK | dd | |
| AS_PLAY_FAIL | cd | |
| AS_PLAY_GAME | d | |
| AS_QUIT_GAME | dwd | |
| AS_KICK_ACCOUNT | dw | |
| - | - | |
| AS_BAN_USER | dw | |
| AS_VERSION | d | |
| AS_PING | d | |
| AS_WRITE_USERDATA | db | |
| AS_SET_CONNECT | d | |
| AS_PLAY_USER_LIST | dsddddd | |
| - | - | |
| - | - | |
| - | - | |
| AS_SET_LOGIN_FREQUENCY | - | - |
| AS_QUEUE_SIZES | - | - |
| - | - | |
| AS_WRITE_GAMEDATA | db | |
| AS_READ_GAMEDATA | d | |
| AS_SHARD_TRANSFER | dd |
Outgoing Packets
| Opcode | Description | Structure |
|---|---|---|
| SQ_ABOUT_TO_PLAY | dsdddd | |
| SQ_KICK_ACCOUNT | dcs | |
| - | - | |
| SQ_VERSION | sd(d) | |
| - | - | |
| SQ_COMPLETE_USERLIST | d | |
| SQ_USER_DATA | db | |
| SQ_GAME_DATA | db |
Game Client
TCP Port 2106. AuthServer and Game communicate through this port.
Incoming Packets
| Opcode | Description | Structure |
|---|---|---|
| AQ_LOGIN | dbdw(c) | |
| AQ_SERVER_LIST | ddc(c[d]) | |
| AQ_ABOUT_TO_PLAY | ddc | |
| AQ_LOGOUT | dd | |
| AQ_LOGIN_MD5 | dbdw(c) | |
| AQ_SERVER_LIST_EXT | ddc(c[d]) | |
| Asia auth only | - |
Outgoing Packets
| Opcode | Description | Structure |
|---|---|---|
| AC_PROTOCOL_VER | Exchange common protocol version with client | dddbdb |
| AC_LOGIN_FAIL | Reject client authentication | c |
| AC_BLOCKED_ACCOUNT | Account banned for X until Y | dd |
| AC_LOGIN_OK | Allow client authentication | dddddddddddd(dd) |
| AC_SEND_SERVERLIST | Send list of shards | c[cddccwwcc(cs)] |
| AC_SEND_SERVER_FAIL | Something unexpected happened | c |
| AC_PLAY_FAIL | Server selected, but down possibly? | c |
| AC_PLAY_OK | Server selected, continue | ddc |
| AC_ACCOUNT_KICKED | Account kicked for X | c |
| AC_BLOCKED_ACCOUNT_WITH_MSG | Account permabanned for X | s |
| - | - | |
| AC_QUEUE_SIZE | Queue length and wait time | c[ccdd] |
| AC_HANDOFF_TO_QUEUE | Wait in server queue | ddc |
| - | - |
GM Tools
TCP Port 2108. Unknown.