This document attempts to summarize a proprietary
protocol implemented by the Gravity Corporation. This information
has been gathered via legitimate means and for warranted purposes.
The information contained in this document may not be used to gain
unauthorized access to any server running this protocol (No "Hacking").
Also, the information contained herein should not be used to create
programs that would imitate a human player in a game of Ragnarok Online
(No "Botting"). The author(s) of this RFC do not assume
any liability for the information, its uses, or its readers in any
way.
Additionally, as authors we will try to make the
specification as clear as possible using working Java code. However,
Java is not the only language that supports this protocol. In fact,
the documentation is not language dependant and we welcome anyone
to submit revisions of this RFC to us with examples in other languages.
Besides all of this information, this project is
obviously required testing to create. That is why during the creation
of all of this information, an SDK was also created which once completed
will be posted in CVS for viewing.
2. Terminology
In this document, an integer is defined as is a
16-bit quantity, a word is a 32-bit quantity, and a byte is an 8-bit
quantity. Strings are said to be arrays of bytes which can be interpreted
as ASCII and end with a value of zero (null-terminated). Finally,
whenever a multiple byte quantity is transferred (such as an integer),
it is sent with Big Endian (meaning that the least significant byte
is transmitted first).
3. Ragnarok Online Protocol