mirror of
https://github.com/moparisthebest/rswiki-book
synced 2024-11-11 03:45:02 -05:00
127 lines
2.5 KiB
Plaintext
127 lines
2.5 KiB
Plaintext
[[Category RSC]]
|
|
|
|
This page refers to the RSC #135 client revision.
|
|
|
|
|
|
== '''Packet structure''' ==
|
|
?
|
|
|
|
== '''Login''' ==
|
|
?
|
|
|
|
== '''Incoming Data''' ==
|
|
'''TODO:'''
|
|
<pre>
|
|
</pre>
|
|
|
|
<table border="1" cellpadding="3" cellspacing="3">
|
|
<tr>
|
|
<td><b>opcode</b></td>
|
|
<td><b>payload</b></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
|
|
== '''Outgoing Data''' ==
|
|
<pre>
|
|
(ns rsc.135.packets
|
|
(:use [jagex.client.SocketStream]))
|
|
|
|
;; Opcode: 2
|
|
(defn newplayer [stream]
|
|
(doto stream
|
|
(.begin-packet 2)
|
|
(.put-int16 ???)
|
|
(.put-int64 (Util/long-for-name username))
|
|
(.put-int16 referrerid)
|
|
(.putline-rsa password server-session-id key-a key-b) ; keys for RSA?
|
|
(.flush)
|
|
(.read) ; newplayer response
|
|
(.end-packet)))
|
|
|
|
;; Opcode: 6
|
|
(defn logout [stream]
|
|
(doto stream
|
|
(.begin-packet 6)
|
|
(.end-packet)))
|
|
|
|
;; Opcode: 7
|
|
(defn send-command [stream command] ; sends command to server e.g ::home, command arg is (.substring command 2)
|
|
(doto stream
|
|
(.begin-pacet 7)
|
|
(.putline command)
|
|
(.end-packet)))
|
|
|
|
;; Opcode: 10
|
|
(defn report-abuse [stream username]
|
|
(let [name (.substring username 12)
|
|
l5 (Util/long-for-name name)]
|
|
(doto stream
|
|
(.begin-packet 10)
|
|
(.put-int64 l5)
|
|
(.end-packet))))
|
|
|
|
;; Opcode: 26
|
|
(defn add-friend [stream name] ; name is string represenation of username
|
|
(doto stream
|
|
(.begin-packet 26)
|
|
(.put-int64 (Util/long-for-name name)
|
|
(.end-packet)))
|
|
|
|
;; Opcode: 27
|
|
(defn remove-friend [stream name] ; name is long represenation of username (i.e Util/long-for-name username)
|
|
(doto stream
|
|
(.begin-packet 27)
|
|
(.put-int64 name)
|
|
(.end-packet)))
|
|
|
|
;; Opcode: 28
|
|
;; name is long representation of username, message is byte representation of message (.getBytes message), length is length of message (maximum length is 200)
|
|
(defn send-message [stream name message length]
|
|
(doto stream
|
|
(.begin-packet 28)
|
|
(.put-int64 username)
|
|
(.read-bytes message 0 length)
|
|
(.end-packet)))
|
|
|
|
;; Opcode: 29
|
|
(defn add-ignore [stream username] ; username is string representation of username
|
|
(let [name (Util/name-for-long username)]
|
|
(doto stream
|
|
(.begin-packet 29)
|
|
(.put-int64 name)
|
|
(.end-packet))))
|
|
</pre>
|
|
|
|
<table border="1" cellpadding="3" cellspacing="3">
|
|
{| class="wikitable" style="text-align:center; width:200px; height:200px;"
|
|
|+ Multiplication table
|
|
|-
|
|
! Ă
|
|
! 1
|
|
! 2
|
|
! 3
|
|
|-
|
|
! 1
|
|
| 1 || 2 || 3
|
|
|-
|
|
! 2
|
|
| 2 || 4 || 6
|
|
|-
|
|
! 3
|
|
| 3 || 6 || 9
|
|
|-
|
|
! 4
|
|
| 4 || 8 || 12
|
|
|-
|
|
! 5
|
|
| 5 || 10 || 15
|
|
|}
|
|
|
|
</table> |