342 Protocol
From RuneWiki
Revision as of 07:14, 13 August 2009 by Blakeman8192 (talk | contribs)
Contents
Login Protocol
The Login Protocol for the 342 is very similar in structure to that of the 317 (and other versions I believe). The login is comprised of four stages in which the client and server switch in regards to which one is reading and which one is writing.
Variables:
- "name hash": A hash of the player name, thought to be used to select an appropriate login server. This has no use in current private servers.
- "return code": A code used to identify which stage in login the session is currently in. Return code values:
- 0: Exchange session key to establish encryption.
- 1: Retry the login procedure.
- 2: Login has finished.
- 3: Client displays message - "Invalid username or password".
- 4: Client displays message - "Your account has been disabled".
- 5: Client displays message - "Your account is already logged in".
- 6: Client displays message - "RuneScape has been updated!".
- 7: Client displays message - "This world is full".
- 8: Client displays message - "Unable to connect, loginserver offline".
- 9: Client displays message - "Login limit exceeded".
- 10: Client displays message - "Unable to connect, bad session ID".
- 11: Client displays message - "Loginserver rejected session".
- 12: Client displays message - "You need a members account to sign into this world".
- 13: Client displays message - "Could not complete login".
- 14: Client displays message - "Server is being updated".
- 15: unknown
- 16: Client displays message - "Login attempts exceeded".
- 17: Client displays message - "You are standing in a members only area".
- 20: Client displays message - "Invalid loginserver requested".
- 21: Client displays message - "You have only just left another world".
- 22: Client displays message - "Malformed login packet".
- "server session key": Server-side session key used for encrypting the stream.
- "data file version": unknown
- "user ID": The ID of the user.
- "username": The username of the player.
- "password": The password of the player.
- "client session key": Client-side session key used for encrypting the stream.
- "connect status": The status of the connection, values:
- 16: Connecting a new connection.
- 18: Reconnecting a lost connection.
- "size": the size of the login packet when unencrypted.
- "client version": The memory version of the game client, values:
- 0: Low-memory
- 1: High-memory
- "crc values": unknown
- "player status": The in-game player status, values:
- 0: Normal player
- 1: Player Moderator
- 2: Administrator
Login Process:
Client -> Server:
Type | Value |
---|---|
ubyte | 14 |
ubyte | "name hash" |
Server -> Client:
Type | Value |
---|---|
byte | 0 |
byte | 0 |
byte | 0 |
byte | 0 |
byte | 0 |
byte | 0 |
byte | 0 |
byte | 0 |
byte | "return code" |
long | "server session key" |
Client -> Server:
Type | Value |
byte | 10 |
int | "datafileversion"[0] |
int | "datafileversion"[1] |
int | "datafileversion"[2] |
int | "datafileversion"[3] |
int | "user id" |
string | "username" |
string | "password" |
long | "client session key" |
long | "server session key" |
byte | "connect status" |
byte | "size" |
byte | 255 |
short | 342 |
byte | "client version" |
int | "crc values"[0] |
int | "crc values"[1] |
int | "crc values"[2] |
int | "crc values"[3] |
int | "crc values"[4] |
int | "crc values"[5] |
int | "crc values"[6] |
int | "crc values"[7] |
int | "crc values"[8] |
Server -> Client:
Type | Value |
byte | "return code" |
byte | "player status" |
byte | 0 |
Game Protocol
(needs to be documented)