AuthServer
From OuroDev
Responsible for user authentication and session creation. Has 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 anyways.
| 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 | Structure | DBServer Function | AuthServer Function |
|---|---|---|---|
| AS_PLAY_OK | dd | authSendPlayOK | ServerPlayOk |
| AS_PLAY_FAIL | cd | authSendPlayFail | ServerPlayFail |
| AS_PLAY_GAME | d | authSendPlayGame | ServerPlayGame |
| AS_QUIT_GAME | dwd | authSendQuitGame | ServerPlayQuit |
| AS_KICK_ACCOUNT | dw | authSendKickAccount | ServerKickAccount |
| AS_SERVER_USERNUM | ww | - | ServerGetUserNum |
| AS_BAN_USER | dw | authSendBanAccount | ServerBanUser |
| AS_VERSION | d | authSendVersion | ServerVersion |
| AS_PING | d | authSendPing | ServerPing |
| AS_WRITE_USERDATA | db | authSendUserData | ServerWriteUserData |
| AS_SET_CONNECT | d | authSendSetConnect | ServerSetActive |
| AS_PLAY_USER_LIST | dsddddd | authSendCurrentPlayers | ServerPlayUserList |
| AS_SET_SERVER_ID | cw | - | SetServerId |
| AS_SERVER_USER_NUM_BY_QUEUE_LEVEL | - | - | ServerUserNumByQueueLevel |
| AS_FINISHED_QUEUE | d | - | FinishedQueue |
| AS_SET_LOGIN_FREQUENCY | - | - | SetLoginFrequency |
| AS_QUEUE_SIZES | c[cdd] | - | QueueSizes |
| AS_READ_USERDATA | d | - | ServerReadUserData |
| AS_WRITE_GAMEDATA | db | authSendUserData | ServerWriteGameData |
| AS_READ_GAMEDATA | d | authSendGameDataReq | ServerReadGameData |
| AS_SHARD_TRANSFER | dd | authSendShardTransfer | ServerShardTransfer |
Outgoing Packets
| Opcode | Structure | AuthServer Function | DBServer Function |
|---|---|---|---|
| SQ_ABOUT_TO_PLAY | dsdddd | AccountDB::AboutToPlay | handleAboutToPlay |
| SQ_KICK_ACCOUNT | dcs | AccountDB::KickAccount | handleKickAccount |
| SQ_SERVER_NUM | RequestUserCounts | handleNumOnline | |
| SQ_VERSION | sd(d) | CSocketServer::OnCreate | handleVersion |
| SQ_PING | d | ServerPing | handlePing |
| SQ_COMPLETE_USERLIST | d | ServerPlayUserList | handleCompleteUserList |
| SQ_USER_DATA | db | ServerReadUserData | - |
| SQ_GAME_DATA | db | ServerReadGameData | handleRecvGameData |
Game Client
TCP Port 2106. AuthServer and Game communicate through this port.
Incoming Packets
| Opcode | Structure | Game Function | AuthServer Function |
|---|---|---|---|
| AQ_LOGIN | dbdw(c) | - | LoginPacket |
| AQ_SERVER_LIST | ddc(c[d]) | - | - |
| AQ_ABOUT_TO_PLAY | ddc | acSendAboutToPlay | SelectServerPacket |
| AQ_LOGOUT | dd | acSendLogout | LogoutPacket |
| AQ_LOGIN_MD5 | dbdw(c) | acSendLoginMD5 | LoginPacketMd5Key |
| AQ_SERVER_LIST_EXT | ddc(c[d]) | acSendServerList | ServerListExtPacket |
| AQ_LOGIN_MD5_MD5 | dbdw(c) | acSendLoginMD5 | - |
Outgoing Packets
| Opcode | Structure | AuthServer Function | Game Function |
|---|---|---|---|
| AC_PROTOCOL_VER | dddbdb | CSocketServerEx::OnCreate | acGetProtocolVer |
| AC_LOGIN_FAIL | c | CAccount::CheckPassword
AccountDB::RegAccount AccountDB::CheckPersonalPayStat LoginPacketSecure |
acGetLoginFail |
| AC_BLOCKED_ACCOUNT | dd | LoginPacketSecure | acGetBlockedAccount |
| AC_LOGIN_OK | dddddddddddd(dd) | AccountDB::RegAccount | acGetLoginOK |
| AC_SEND_SERVERLIST | c[cddccwwcc(cs)] | CServerList::MakeServerListPacket | acGetSendServerList |
| AC_SEND_SERVER_FAIL | c | ServerListExtPacket | acGetSendServerFail |
| AC_PLAY_FAIL | cd | AccountDB::AboutToPlay
ServerPlayFail SelectServerPacket |
acGetPlayFail |
| AC_PLAY_OK | ddc | ServerPlayOk | acGetPlayOK |
| AC_ACCOUNT_KICKED | c | AccountDB::KickAccount | acGetAccountKicked |
| AC_BLOCKED_ACCOUNT_WITH_MSG | s | LoginPacketSecure | acGetBlockedAccountWithMsg |
| AC_SC_CHECK_REQ | - | - | |
| AC_QUEUE_SIZE | c[ccdd] | CServerList::MakeQueueSizePacket | acGetQueueSize |
| AC_HANDOFF_TO_QUEUE | ddc | ServerPlayOk | acGetHandoffToQueue |
| AC_POSITION_IN_QUEUE | - | - |
GM Tools
TCP Port 2108. Used for internal administration?
Incoming Packets
| Opcode | Structure | AuthServer Function |
|---|---|---|
| IA_SERVER_VERSION | d | GetConnectSessionKey |
| IA_IP_KIND | - | - |
| IA_IP_USE | dcdd | GetIPAcquireSuccess |
| IA_IP_START_OK | dcddd | StartIPCharge |
| IA_IP_START_FAIL | dcddds | StartIPChargeFail |
| IA_IP_USE_FAIL | dc | GetIPAcquireFail |
| IA_IP_SESSIONKEY | - | - |
| IA_IP_INSTANTLOGIN_OK | - | - |
| IA_IP_INSTANTLOGIN_FAIL | - | - |
| IA_IP_KICK | dddsd | GetIPKick |
| IA_IP_READY_FAIL | dc | ReadyIPFail |
| IA_IP_READY_OK | dcddd | ReadyIPOK |
| IA_IP_SET_STARTTIME_OK | - | - |
| IA_IP_SET_STARTTIME_FAIL | d | SetStartTimeFail |
Outgoing Packets
| Opcode | Structure | AuthServer Function |
|---|---|---|
| AI_SERVER_VERSION | sc | CIPSocket::OnCreate |
| AI_IP_KIND | - | - |
| AI_IP_ACQUIRE | sddd | CIPSessionDB::AcquireSessionRequest |
| AI_IP_RELEASE | ddddd | CIPSessionDB::ReleaseSessionRequest |
| AI_IP_START_CHARGE | dddcdd | CIPSessionDB::StartIPCharge |
| AI_IP_STOP_CHARGE | ddddcddsd | CIPSessionDB::StopIPCharge |
| AI_IP_INSTANT_START_GAME | - | - |
| AI_IP_INSTANT_STOP_GAME | - | - |
| AI_IP_KICKED | - | - |
| AI_IP_READY_GAME | dddcdd | CIPSessionDB::ReadyToIPCharge |
| AI_IP_SET_START_TIME | dddcdd | CIPSessionDB::ConfirmIPCharge |