summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/commands.txt2
-rw-r--r--docs/packets.txt484
2 files changed, 1 insertions, 485 deletions
diff --git a/docs/commands.txt b/docs/commands.txt
index a9ae4962..8d98cbc9 100644
--- a/docs/commands.txt
+++ b/docs/commands.txt
@@ -6,7 +6,7 @@ ADMIN/GM COMMANDS REFERENCE
The following commands could be issued in the chat window using the syntax:
- /admin command args
+ @command args
1. ADMIN COMMANDS
diff --git a/docs/packets.txt b/docs/packets.txt
deleted file mode 100644
index dc947866..00000000
--- a/docs/packets.txt
+++ /dev/null
@@ -1,484 +0,0 @@
--------------------------
-PACKET REFERENCE
--------------------------
-
-1. INTRODUCTION
-2. MESSAGE LIST
-2.1 LOGIN/REGISTER
-2.2 OBJECTS
-2.3 BEINGS
-2.4 ITEMS
-2.5 CHAT PROTOCOL
-
-1. INTRODUCTION
-
-This is an attempt to define the protocol. The syntax of packet definition is
-the following:
-
-MESSAGE_IDENTIFIER 0xID
-Description.
-{
- [
- FIELDTYPE fieldName: field role explanation.
- [
- * value = VALUE_CODE: value role explanation.
- ]
- ]
-}
-
-NOTE: In this representation square brackets mean their content can be repeated
-0 to n times.
-
-- "MESSAGE_IDENTIFIER" should follow this structure:
- CMSG|SMSG[_ATTRIBUTE]_ACTION[_INFO]
-
- CMSG is a message sent by the client and is to be treated by the server.
- SMSG is a message sent by the server and is to be treated by the client.
- | means exclusive or
-
-- "0xID" is hexadecimal representation of a short: from 0x0000 to 0xFFFF.
-
-- "FIELDTYPE" is one of the following (as described in server.txt):
- A - char array (null terminated)
- C - char (1 byte)
- S - short (2 bytes)
- L - long (4 bytes)
-
-- "fieldName" is the name of the field (choose a meaningful name).
-
-- "field role explanation" is a small description of the meaning related to a
- certain field.
-
-- "value" is a list of every possible value for the field.
-
-- "VALUE_CODE" is the label linked to the value in the server code.
-
-- "value role explanation" is a small description of the meaning related to a
- certain value.
-
-2. MESSAGE LIST
-
-Message IDs are represented by a short, that means we can have 2^16
-different packets. We will start from ID 0x0000.
-
-2.1 LOGIN/REGISTER
-
-CMSG_REGISTER 0x0000
-Request to register a new account. Email verification by activation would
-probably be good to add. Password will be sent only as md5 to hide the actual
-password from both server admins and sniffers. Having the md5 would still allow
-false identification, hence there is also an encrypted variant of this message.
-{
- A client Version: Used to know about the version of the client which is trying to login.
- A username: New Account's Username
- A password: New Account's password
- A emailAddress: New Account's Email address (a@b.c format accepted only.)
-}
-
-CMSG_ENCRYPTED_REGISTER 0x0001
-Request to register a new account encrypting user data. The contents of this
-message are encrypted using server's public key and are otherwise the same as
-in a normal register message. Not yet implemented.
-{
- A client Version: Used to know about the version of the client which is trying to login.
- A username: New Account's Username
- A password: New Account's password
- A emailAddress: New Account's Email address (a@b.c format accepted only.)
-}
-
-SMSG_REGISTER_RESPONSE 0x0002
-Response to register message. Error code 0 means registration was a success.
-Error codes 1-3 shouldn't happen because there are also checked client side,
-otherwise it could mean client is out of date or modified. Every error not in
-this list should be considered unknown error.
-{
- C Response Code
- * 0 = REGISTER_OK: The account has been successfully registered.
- * 1 = REGISTER_INVALID_USERNAME: The account's username is invalid.
- * 2 = REGISTER_INVALID_PASSWORD: The account's password is invalid.
- * 3 = REGISTER_INVALID_EMAIL: The account's email is invalid.
- * 4 = REGISTER_INVALID_VERSION: The client version is unsufficient to login in the current
- server version running.
- * 5 = REGISTER_EXISTS_USERNAME: Another account is already using this username.
- * 6 = REGISTER_EXISTS_EMAIL: Another account is already using this email.
- * 7 = REGISTER_UNKNOWN: Unknown misregistering account error.
-}
-
-CMSG_UNREGISTER 0x0003
-Remove an account, and every related characters.
-{
- A Account's Username
- A Account's Password
-}
-
-SMSG_UNREGISTER_RESPONSE 0x0004
-Response to the account unregistering request.
-{
- C Response Code
- * 0 = UNREGISTER_OK: Unregistering was successful.
- * 1 = UNREGISTER_INVALID_USERNAME: The account's username is invalid.
- * 2 = UNREGISTER_INVALID_PASSWORD: The account's password is invalid.
- * 3 = UNREGISTER_INVALID_UNSUFFICIENT_RIGHTS: Not enough right to unregister account.
- * 4 = UNREGISTER_UNKNOWN: Unknown misunregistering error.
-}
-
-CMSG_LOGIN 0x0010
-Sends info about player login data: username and password.
-{
- A client Version: The client version
- A username: The account's username.
- A password: The account's password.
-}
-
-CMSG_ENCRYPTED_LOGIN 0x0011
-Attempts an encrypted login. payload contains username and password encrypted
-using server's public key.
-{
- A payload
- L clientVersion
-}
-
-SMSG_LOGIN_RESPONSE 0x0012
-The login process failed.
-{
- C Reponse Code
- * 0 = LOGIN_OK: Login was successful
- C Number of character created in the account.
- And for each created characters:
- A Characters name.
- * 1 = LOGIN_INVALID_USERNAME: The username is invalid.
- * 2 = LOGIN_INVALID_PASSWORD: The password is invalid.
- * 3 = LOGIN_INVALID_VERSION: The client version is unsufficient to login.
- * 4 = LOGIN_SERVER_FULL: The current server has too many active connections.
- * 5 = LOGIN_ACCOUNT_BANNED: This account has been banned and isn't allowed to login anymore.
- * 6 = LOGIN_ACCOUNT_REVIEW: This account is being reviewed. Not yet handled.
- * 7 = LOGIN_ALREADY_LOGGED: This account is already logged in.
- * 8 = LOGIN_UNKNOWN: Unknown mislogin error.
-}
-
-CMSG_LOGOUT 0x0013
-Used to logout a client.
-{
- Nothing needed in particular.
-}
-
-SMSG_LOGOUT_RESPONSE 0x0014
-Server response from logout.
-{
- C Response Code
- * 0 = LOGOUT_OK: Logout successful.
- * 1 = LOGOUT_UNSUCCESSFULL: Logout unsuccessful.
-}
-
-CMSG_CHAR_CREATE 0x0020
-Valid after login, this message sends a request for a new character to the
-server. The message could be extended with region of origin and race.
-The stats, and every attribute are checked and the character is valid only if every rule
-is respected.
-{
- A name: New character's name.
- C hair Style: ID of the character's hair style.
- * List to be documented.
- C hair Color: ID of the character's hair color.
- * List to be documented.
- C Gender: The character's gender.
- * 0 = male
- * 1 = female
- S Strength: The character's strength.
- S Agility: The character's agility.
- S Vitality: The character's vitality.
- S Intelligence: The character's intelligence.
- S Dexterity: The character's dexterity.
- S Luck: The character's luck.
-}
-
-SMSG_CHAR_CREATE_RESPONSE 0x0021
-Response to character creation message.
-{
- C Reponse Code
- * 0 = CREATE_OK: Character's creation was successful.
- * 1 = CREATE_INVALID_NAME: The character's name is invalid.
- * 2 = CREATE_INVALID_HAIRSTYLE: The character's hair Style ID is invalid.
- * 3 = CREATE_INVALID_HAIRCOLOR: The character's hair color ID is invalid.
- * 4 = CREATE_INVALID_GENDER: The character's gender is invalid.
- * 5 = CREATE_RAW_STATS_TOO_HIGH: The stats given by the client are too high for a new character.
- * 6 = CREATE_RAW_STATS_TOO_LOW: The stats given by the client are too low for a new character.
- * 7 = CREATE_RAW_STATS_INVALID_DIFF: The difference between the highest and the lowest stat
- is too high.
- * 8 = CREATE_RAW_STATS_EQUAL_TO_ZERO: One of the given stats is equal to zero.
- * 9 = CREATE_EXISTS_NAME: The character's name already exists.
- * 10 = CREATE_TOO_MUCH_CHARACTERS: The account has already the maximum of characters.
- * 11 = CREATE_NOLOGIN: Not logged in. Won't create any account for a NULL Account.
- * 12 = CREATE_UNKNOWN: Unknown miscreation error.
-}
-
-CMSG_CHAR_DELETE 0x0022
-An attempt to delete an existing character for an account.
-{
- C Character's ID to delete.
-}
-
-SMSG_CHAR_DELETE_RESPONSE 0x0023
-Response to the character's deletion request.
-{
- C Response Code
- * 0 = DELETE_OK: The character was deleted successfully.
- * 1 = DELETE_INVALID_ID: The character's id isn't a correct value.
- * 2 = DELETE_NO_MORE_CHARACTERS: The account has no more characters to delete left.
- * 3 = DELETE_NOLOGIN: Not logged in. Cannot delete a character.
- * 4 = DELETE_UNKNOWN: Unknown character misdeletion error.
-}
-
-CMSG_CHAR_LIST 0x0024
-A request has been made to known the general stats of every characters of account.
-It will be used in the client for displaying information when selecting a character.
-{
- Nothing needed.
-}
-
-SMSG_CHAR_LIST_RESPONSE 0x0025
-The complete list of parameters for each characters, except for the inventories.
-{
- C Response Code
- * 0 = CHAR_LIST_OK: Return the list of character's parameters.
- C Character number.
- For each character:
- {
- C Character ID.
- A Character's name.
- C Gender ID.
- C Hair Style ID.
- C Hair Color ID.
- C Character's Level.
- S Character's Money.
- S Character's Strength.
- S Character's Agility.
- S Character's Vitality.
- S Character's Intelligence.
- S Character's Dexterity.
- S Character's Luck.
- C Character's Map Name. (Even if we give the map name, that's the ID that is stored in db.)
- S Character's X coord in map.
- S Character's Y coord in map.
- }
- * 1 = CHAR_LIST_NOLOGIN: Received by the client when it is asking for a list and not logged in.
- * 2 = CHAR_LIST_UNKNOWN: Received when an unknown char list error has occured.
-}
-
-CMSG_CHAR_SELECT 0x0026
-Request to select a character.
-{
- C character ID.
-}
-
-SMSG_CHAR_SELECT_RESPONSE 0x0027
-Response to character selection.
-{
- C Response Code
- * 0 = SELECT_OK: Selection succeeded
- A Map Name
- S X coord on map.
- S Y coord on map.
- * 1 = SELECT_INVALID: The ID given is an invalid character ID.
- * 2 = SELECT_NO_CHARACTERS: No characters in this account. They are to be created first.
- * 3 = SELECT_NOLOGIN: Not logged in, can't select a character.
- * 4 = SELECT_NO_MAPS: The server hasn't even any default map for the characters to go in.
- * 5 = SELECT_UNKNOWN: Unknown character selection error.
-}
-
-CMSG_EMAIL_CHANGE 0x0030
-Used to request change of Email address.
-{
- A New Email.
-}
-
-SMSG_EMAIL_CHANGE_RESPONSE 0x0031
-Response to the request of Email change.
-{
- C Response Code
- 0 = EMAILCHG_OK: Email change is done.
- 1 = EMAILCHG_NOLOGIN: Not logged in, can't change one's Email.
- 2 = EMAILCHG_INVALID: The new Email address is invalid.
- 3 = EMAILCHG_EXISTS_EMAIL: The email already exists for another account.
- 4 = EMAILCHG_UNKNOWN: Unknown Email change request error.
-}
-
-CMSG_EMAIL_GET 0x0032
-Request to know the current account's Email address.
-{
- Nothing needed.
-}
-
-SMSG_EMAIL_GET_RESPONSE 0x0033
-Response to the Get Email Request.
-{
- C Response code
- 0 = EMAILGET_OK: The email address is returned.
- A Current email address.
- 1 = EMAILGET_NOLOGIN: Not logged in. Can't give Email address.
- 2 = EMAILGET_UNKNOWN: Unknown Get Email address error.
-}
-
-CMSG_FORGOT_PASSWORD 0x0040
-The client asks for sending its current password using the mail address.
-Not Implemented. (It needs to get connected to some mailing library, or run some mail script.)
-Can be refused if it is asked more than X times in a month.
-{
- A Account's username
-}
-
-SMSG_FORGOT_PASSWORD_RESPONSE 0x0041
-Response to the 'I forget my pass' request.
-{
- C Response Code
- * 0 = FORGOT_PASSWORD_ACCEPTED: The password was sent using the mail address.
- * 1 = FORGOT_PASSWORD_REFUSED: The request was refused because asked too much times.
- * 2 = FORGOT_PASSWORD_UNKNOWN: Unknown password to send using mail address error.
-}
-
-CMSG_PASSWORD_CHANGE 0x0050
-Request to change the password.
-{
- A Old Password.
- A New password (First Type.)
- A New password (Second Type.)
-}
-
-SMSG_PASSWORD_CHANGE_RESPONSE 0x0051
-Response to change password request.
-{
- C Response Code
- * 0 = PASSCHG_OK: The password was changed successfully.
- * 1 = PASSCHG_NOLOGIN: Not logged in, can't change password.
- * 2 = PASSCHG_INVALID: The new password is invalid.
- * 3 = PASSCHG_MISMATCH: The old password, or one of the new mismatched.
- * 4 = PASSCHG_UNKNOWN: Unknown password change error.
-}
-
-2.2 OBJECTS
-
-SMSG_NEW_OBJECT 0x0100
-An item was dropped.
-{
- L item ID
- S X coord in map.
- S Y coord in map.
-}
-
-2.3 BEINGS
-
-2.4 ITEMS
-
-2.5 CHAT PROTOCOL
-
-SMSG_SYSTEM 0x0400
-Normally used to send system commands to clients. Maybe used to force
-unlogging, or update. Not yet implemented.
-{
-
-}
-
-SMSG_CHAT 0x0401
-A chat message from another character that is 'heard' by the character,
-because he/she is around, or else an error from some text from the chat sent.
-{
- C code
- * 0 = CHAT_AROUND: Say around
- A chat text
- * 1 = CHAT_NOLOGIN: Not logged in.
- * 2 = CHAT_NO_CHARACTER_SELECTED: Logged in, but no characters selected yet.
- * 3 = CHAT_USING_BAD_WORDS: Text with bad words.
- * 4 = CHATCMD_UNHANDLED_COMMAND: Unhandled chat Command.
- * 5 = CHATCMD_UNSUFFICIENT_RIGHTS, Unsufficient Rights to execute command
- * 6 = CHATCMD_UNKNOWN: Unknown chat request.
-}
-
-SMSG_ANNOUNCEMENT 0x0402
-An announcement is sent to every connected players to the world, and placed
-at the top of the main chat window. Used to warn about down time and such.
-{
- A Announcement text
-}
-
-SMSG_PRIVMSG 0x0403
-Used to send to the targetted player a private message from another one.
-The name of the player is for now in the string sent.
-{
- A Text sent.
-}
-
-SMSG_CHAT_CNL 0x0404
-Used to send to a player a string from a character which talks in a channel
-the player is registered in.
-{
- S channel.
- A Text sent.
-}
-
-CMSG_SAY 0x0410
-A character is talking normally. It can be used to talk to the characters
-around, or to chat in a specific channel.
-{
- A text
- S channel
-}
-
-CMSG_ANNOUNCE 0x0411
-A character is trying to change the announcement sentence.
-{
- A text
-}
-
-CMSG_PRIVMSG 0x0412
-A character is talking directly to another character.
-{
- A username to whom the character is talking to.
- A text
-}
-
-CMSG_REGISTER_CHANNEL 0x0413
-A character is trying to register a chat channel, private or public.
-{
- C Channel Type: Public (0), or Private (1).
- A Channel Name: The channel Name. Must be valid.
- A Channel Announcement: Can be nothing, which means the "None" Value.
- A Channel Password: Can be nothing, which means the "None" Value.
-}
-
-SMSG_REGISTER_CHANNEL_RESPONSE 0x0414
-The server response from an attempt of creating a chat channel.
-{
- * 0 = CHATCNL_CREATE_OK: The creation was sanely made.
- S Channel Id: The channel id to be used when dealing with.
- * 1 = CHATCNL_CREATE_UNSUFFICIENT_RIGHTS: The account hasn't sufficient rights to register the channel.
- * 2 = CHATCNL_CREATE_INVALID_NAME: The channel name is invalid.
- * 3 = CHATCNL_CREATE_INVALID_ANNOUNCEMENT: The announcement is invalid.
- * 4 = CHATCNL_CREATE_INVALID_PASSWORD: The password is invalid.
- * 5 = CHATCNL_CREATE_UNKNOWN: Unknown miscreation error. Bogus request or too many channels..
-}
-
-CMSG_UNREGISTER_CHANNEL 0x0415
-An account is trying to unregister a channel.
-{
- S Channel Id: The channel ID of the channel which is to be unregistered.
-}
-
-SMSG_UNREGISTER_CHANNEL_RESPONSE 0x0416
-
-{
- * 0 = CHATCNL_DEL_OK: The Channel is successfully unregistered. Every users are removed from it before it happens.
- * 1 = CHATCNL_DEL_UNSUFFICIENT_RIGHTS: Unsufficient rights to unregister the channel.
- * 2 = CHATCNL_DEL_INVALID_ID: The given ID doesn't match any existing channel.
- * 3 = CHATCNL_DEL_UNKNOWN: Unknown channel misdeletion error.
-}
-
-// Not yet implemented
- CMSG_UPDATE_CHANNEL = 0x0417,
- SMSG_UPDATE_CHANNEL_RESPONSE = 0x0418,
- CMSG_ENTER_CHANNEL = 0x0419,
- SMSG_ENTER_CHANNEL_RESPONSE = 0x0420,
- CMSG_QUIT_CHANNEL = 0x0421,
- SMSG_QUIT_CHANNEL_RESPONSE = 0x0422,
-
-
-