Difference between revisions of "342 Protocol"
From RuneWiki
Jump to navigationJump to searchBlakeman8192 (talk | contribs) (New page: == Login Protocol == ======Client -> Server:====== {| border=2 |- ! Type ! Value |- | ubyte | 14 |- | ubyte | "name hash" |- |} ======Server -> Client:====== {| border=2 |- ! Type ! Value ...) |
Blakeman8192 (talk | contribs) |
||
Line 1: | Line 1: | ||
== Login Protocol == | == 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. | ||
+ | * "crc values": unknown | ||
+ | * "player status": The in-game player status, values: | ||
+ | ** 0: Normal player | ||
+ | ** 1: Player Moderator | ||
+ | ** 2: Administrator | ||
+ | |||
+ | ==Login Process:== | ||
======Client -> Server:====== | ======Client -> Server:====== | ||
{| border=2 | {| border=2 |
Revision as of 07:07, 13 August 2009
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.
- "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" |
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 |