Difference between revisions of "342 Protocol"
From RuneWiki
Jump to navigationJump to searchBlakeman8192 (talk | contribs) |
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. | 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. | ||
− | + | <br/> | |
===Variables:=== | ===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. | * "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. | ||
Line 44: | Line 44: | ||
** 1: Player Moderator | ** 1: Player Moderator | ||
** 2: Administrator | ** 2: Administrator | ||
− | + | <br/> | |
===Login Process:=== | ===Login Process:=== | ||
====Stage 1: Client -> Server==== | ====Stage 1: Client -> Server==== | ||
Line 59: | Line 59: | ||
|- | |- | ||
|} | |} | ||
+ | <br/> | ||
====Stage 2: Server -> Client==== | ====Stage 2: Server -> Client==== | ||
{| border=2 | {| border=2 | ||
Line 96: | Line 97: | ||
|- | |- | ||
|} | |} | ||
+ | <br/> | ||
====Stage 3: Client -> Server==== | ====Stage 3: Client -> Server==== | ||
{| border=2 | {| border=2 | ||
Line 129: | Line 131: | ||
| long | | long | ||
| "client session key" | | "client session key" | ||
− | |||
|- | |- | ||
| long | | long | ||
Line 177: | Line 178: | ||
|- | |- | ||
|} | |} | ||
+ | <br/> | ||
====Stage 4: Server -> Client==== | ====Stage 4: Server -> Client==== | ||
{| border=2 | {| border=2 | ||
Line 193: | Line 195: | ||
|- | |- | ||
|} | |} | ||
+ | <br/> | ||
==Game Protocol== | ==Game Protocol== | ||
(needs to be documented) | (needs to be documented) |
Revision as of 07:16, 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.
- "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:
Stage 1: Client -> Server
Type | Value |
---|---|
ubyte | 14 |
ubyte | "name hash" |
Stage 2: 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" |
Stage 3: 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] |
Stage 4: Server -> Client
Type | Value |
byte | "return code" |
byte | "player status" |
byte | 0 |
Game Protocol
(needs to be documented)