Difference between revisions of "342 Protocol"

From RuneWiki
Jump to navigationJump to search
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). 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/>
 
<br/>
 
===Variables:===
 
===Variables:===

Revision as of 07:17, 13 August 2009

Login Protocol

The Login Protocol for the 342 is very similar in structure to that of the 317 (and other versions). 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)