rswiki-book/src/634-Protocol.md

28 lines
1.3 KiB
Markdown

\[\[Category RS2\]\]
== '''Packet structure''' == When the client sends a packet to the
server, the first byte encapsulates its opcode. This specific opcode is
encrypted with a value generated by the ISAAC PRNG seeded with a
dynamically server generated key during the login block. The server
decrypts it and associates the opcode to the packet's respective
predefined size. If the packet does not contain a fixed size, the opcode
will be followed by either a byte or a word - varying per packet - for
its proper size. This is then followed by the payload.
An addition to modern emulation protocols was the addition to allow
packets with an opcode of a word to be deciphered from the buffer. This
is done by taking the first two ISAAC PRNG seeds; each byte from the
buffer at the current offset is deciphered sequentially. If the first
byte deciphered is less than the maximum of a signed byte then the
packet is assumed to be byte length, otherwise it's considered to be
word length.
== '''Login''' == Every connection to the main 'gateway' server sends a
single byte of data, mostly well known as the connection type. The
connection type tells the main server which type of connection you wish
to initiate. The old engine list consists of:
<pre>
Needs documentation on how to login
</pre>