
git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@172 54d463be-8e91-2dee-dedb-b68131a5f0ec
282 lines
15 KiB
Plaintext
282 lines
15 KiB
Plaintext
===========================================================================
|
|
===========================================================================
|
|
DETAIL OF ADMINISTRATION PACKETS
|
|
---------------------------------------------------------------------------
|
|
---------------------------------------------------------------------------
|
|
|
|
===========================================================================
|
|
COMMON PACKETS FOR ALL SERVERS
|
|
---------------------------------------------------------------------------
|
|
S 7530 (void)
|
|
It's a request to obtain the version of the server.
|
|
Answer packet: 0x7531.
|
|
|
|
R 7531 <major_version>.B <minor_version>.B <revision>.B <release_flag>.B <official_flag>.B <server_type>.B <mod_version>.w
|
|
It's the reply to a request about the server version (0x7530).
|
|
It gives the information about the version of the server.
|
|
release_flag : 0 = release, 1 = debug
|
|
official_flag: 0 = official, 1 = mod
|
|
server_type: 1 = login, 2 = char, 4 = inter, 8 = map (add all values if the server have more than 1 type)
|
|
|
|
S 7532 (void)
|
|
End of connection (no reply is sended back)
|
|
|
|
===========================================================================
|
|
ADMINISTRATION PACKETS OF THE LOGIN-SERVER
|
|
---------------------------------------------------------------------------
|
|
|
|
NB: All information about an account can be obtain by an administration packet, except the password.
|
|
The login-server will never send back the password af an account.
|
|
If someone sniffs the password from the login-server, he can not obtain it.
|
|
But, it exists a packet to check the password.
|
|
It's to secure the password.
|
|
|
|
CONNECTION SYSTEM IN ADMINSTRATION MODE
|
|
|
|
S 7918 <encrypt_flag>.w <administration_password>.24(16)B
|
|
It's a request to obtain an (administration) connection on the login-server.
|
|
The packet size changes according to the encrypted password or not.
|
|
A non-encrypted password is sended with 24 bytes (plain text with NULL terminate),
|
|
and an encrypted password is sended with 16 bytes.
|
|
Answer packet: 0x7919.
|
|
encrypt_flag: 0 = plain text, 1 = md5 (key + password), 2 = md5 (password + key)
|
|
|
|
R 7919 <flag>.B
|
|
It's the reply to a request for an (administration) connection (0x7918).
|
|
Flag: 0 = accepted, 1 = refused
|
|
|
|
S 791a (void)
|
|
It's a request to obtain the encrypted key. This key is used to create the encrypted password.
|
|
This packet must be called before the packet 0x7918 if you want connect you with an encrypted password.
|
|
The reply is the packet 0x01dc, as like a player sends a connection request with the packet 0x01db.
|
|
|
|
PACKETS OF ADMINISTRATION MODE
|
|
|
|
R 791f (void)
|
|
Ready signal (no reply is sended back). NOT USED.
|
|
|
|
S 7920 <start_id>.l <end_id>.l
|
|
It's a request to obtain an accounts list.
|
|
start_id: 0 for begining of the list, or presumed start id value of the first account.
|
|
end_id: 0 to go until the last id, or the upper id limit value that you want.
|
|
If 'end_id' is lower to 'start_id', you give no limit for the last id.
|
|
Answer packet: 0x7921.
|
|
|
|
R 7921 <length>.w { <account_id>.l <GM_level>.B <account_name>.24B <sex>.B <count>.l <state>.l }.38B*
|
|
It's tje reply packet of the packet 0x7920.
|
|
It gives an accounts list.
|
|
If you receive at least an account, you must do an additional request (packet 0x7920 begining with the last received account id +1)
|
|
to be sure that you receive all asked accounts, because this packet is limited in size when it sends information.
|
|
if <state> is 7, there are 2 possibilities: banishement or state{Your are Prohibited to log in until %s}.
|
|
|
|
S 7930 <account_name>.24B <password>.24B <sex>.B <E-mail>.40B
|
|
It's a request to create a new account.
|
|
If e-mail is not valid, the e-mail is replaced by the default e-mail (a@a.com).
|
|
The default e-mail is like no e-mail to protect your characters against a deletion.
|
|
Answer packet: 0x7931.
|
|
|
|
R 7931 <account_id>.l <account_name>.24B
|
|
It's the reply to an account creation (0x7930).
|
|
If the account_id value is -1, the login-server fails to create the new account
|
|
(an account already exists with the same name, the request is invalid, etc.).
|
|
Otherwise, the account_id is the id of the new account.
|
|
|
|
S 7932 <account_name>.24B
|
|
It's a request to delete an account.
|
|
Answer packet: 0x7933.
|
|
|
|
R 7933 <account_id>.l <account_name>.24B
|
|
It's the reply to an account deletion (0x7932).
|
|
If the account_id value is -1, the login-server fails to delete the account (the account doesn't exist).
|
|
Otherwise, the account_id is the id of the deleted account.
|
|
The login-server returns the correct sensitive case account_name (use strcmpi to compare).
|
|
|
|
S 7934 <account_name>.24B <password>.24B
|
|
It's a request to modify the password of an account.
|
|
Answer packet: 0x7935.
|
|
|
|
R 7935 <account_id>.l <account_name>.24B
|
|
It's the reply to an password modification (0x7934).
|
|
If the account_id value is -1, the login-server fails to modify the password (the account doesn't exist).
|
|
Otherwise, the account_id is the id of the account that the login-server have modified the password.
|
|
The login-server returns the correct sensitive case account_name (use strcmpi to compare).
|
|
|
|
S 7936 <account_name>.24B <state>.l <error_message>.20B
|
|
It's a request to modify the state of an account.
|
|
State: It's the state like the packet 0x006a +1.
|
|
Error_message: it's the message of the error code #6 = Your are Prohibited to login until <error_message> (packet 0x006a).
|
|
If state is 7 (6+1), the error_message is saved in the account.
|
|
For another state, the error_message is deleted (voided) in the account.
|
|
Answer packet: 0x7937.
|
|
|
|
R 7937 <account_id>.l <account_name>.24B <state>.l
|
|
It's the reply to a state modification (0x7936).
|
|
If the account_id value is -1, the login-server fails to modify the state (the account doesn't exist).
|
|
Otherwise, the account_id is the id of the account that the login-server have modified the state.
|
|
The login-server returns the correct sensitive case account_name (use strcmpi to compare).
|
|
|
|
S 7938 (void)
|
|
It's a request to obtain information about the servers connected to the login-server (servers list with details)
|
|
Answer packet: 0x7939.
|
|
|
|
R 7939 <length>.w {<IP>.l <port>.w <server_name>.20B <#_of_users>.w <maintenance>.w <new>.w}.32B*
|
|
It's the reply to an request to obtain servers information (0x7938).
|
|
It returns all information about the servers connected on the login-server.
|
|
|
|
S 793a <account_name>.24B <password>.24B
|
|
It's a request to test a password. REMEMBER: Never create a packet to send the password from the login-server.
|
|
Answer packet: 0x793b.
|
|
|
|
S 793b <account_id>.l <account_name>.24B
|
|
It's the reply to a password check (0x793a).
|
|
If the account_id value is -1, the login-server doesn't valid the password (the account doesn't exist or the password is not the correct one).
|
|
Otherwise, the account_id is the id of the account that the login-server have checked the password.
|
|
The login-server returns the correct sensitive case account_name (use strcmpi to compare).
|
|
|
|
S 793c <account_name>.24B <sex>.B
|
|
It's a request to modify the sex of an account.
|
|
Answer packet: 0x793d.
|
|
|
|
R 793d <account_id>.l <account_name>.24B
|
|
It's the reply to a request to modify a sex (0x793c).
|
|
If the account_id value is -1, the login-server fails to modify the sex (the account doesn't exist or the sex is already the good sex).
|
|
Otherwise, the account_id is the id of the account that the login-server have modified the sex.
|
|
The login-server returns the correct sensitive case account_name (use strcmpi to compare).
|
|
|
|
S 793e <account_name>.24B <GM_level>.B
|
|
It's a request to modify the GM level of an account.
|
|
Answer packet: 0x793f.
|
|
|
|
R 793f <account_id>.l <account_name>.24B
|
|
It's the reply to a request to modify a GM level (0x793e).
|
|
If the account_id value is -1, the login-server fails to modify the GM level (the account doesn't exist, or GM_account file can not be modified or the GM level is already the good sex).
|
|
Otherwise, the account_id is the id of the account that the login-server have modified the GM level.
|
|
The login-server returns the correct sensitive case account_name (use strcmpi to compare).
|
|
|
|
S 7940 <account_name>.24B <e-mail>.40B
|
|
It's a request to modify the email of an account.
|
|
Answer packet: 0x7941.
|
|
|
|
R 7941 <account_id>.l <account_name>.24B
|
|
It's the reply to a request to modify an email (0x7940).
|
|
If the account_id value is -1, the login-server fails to modify the e-mail (the account doesn't exist).
|
|
Otherwise, the account_id is the id of the account that the login-server have modified the email.
|
|
The login-server returns the correct sensitive case account_name (use strcmpi to compare).
|
|
|
|
S 7942 <account_name>.24B <length_of_memo>.w <memo>.(length_of_memo)B
|
|
It's a request to modify the memo of an account.
|
|
The length can be 0 to have a void memo.
|
|
Answer packet: 0x7943.
|
|
|
|
R 7943 <account_id>.l <account_name>.24B
|
|
It's the reply to an request to modify a memo (0x7942).
|
|
If the account_id value is -1, the login-server fails to modify the memo (the account doesn't exist).
|
|
Otherwise, the account_id is the id of the account that the login-server have modified the memo.
|
|
The login-server returns the correct sensitive case account_name (use strcmpi to compare).
|
|
|
|
S 7944 <account_name>.24B
|
|
It's a request to obtain (by the name) the id of an account.
|
|
Answer packet: 0x7945.
|
|
|
|
R 7945 <account_id>.l <account_name>.24B
|
|
It's the reply to an request (by the name) to obtain an account id (0x7944).
|
|
If the account_id value is -1, the login-server fails to obtain the account id (the account doesn't exist).
|
|
Otherwise, the account_id is the id of the found account.
|
|
The login-server returns the correct sensitive case account_name (use strcmpi to compare).
|
|
|
|
S 7946 <account_id>.l
|
|
It's a request to obtain (by the id) the name of an account.
|
|
Answer packet: 0x7947.
|
|
|
|
R 7947 <account_id>.l <account_name>.24B
|
|
It's the reply to an request (by the id) to obtain an account name (0x7946).
|
|
If the account_name value is "" (void), the login-server fails to obtain the account name (the account id doesn't exist).
|
|
Otherwise, the account_name is the name of the found account.
|
|
|
|
S 7948 <account_name>.24B <validity>.l
|
|
It's a request to set the validity date of an account.
|
|
This packet fixes an absolute validity time.
|
|
Answer packet: 0x7949.
|
|
|
|
R 7949 <account_id>.l <account_name>.24B <validity>.l
|
|
It's the reply to an request to set the validity date of an account (0x7948).
|
|
If the account_id value is -1, the login-server fails to set the validity date (the account doesn't exist).
|
|
Otherwise, the account_id is the id of the account that the login-server have fixed the validity date.
|
|
The login-server returns the correct sensitive case account_name (use strcmpi to compare).
|
|
|
|
S 794a <account_name>.24B <end_date_of_banishment>.l
|
|
It's a request to set the final date of a banishment of an account.
|
|
This packet fixes an absolute time for the end of the banishment.
|
|
Answer packet: 0x794b.
|
|
|
|
R 794b <account_id>.l <account_name>.24B <end_date_of_banishment>.l
|
|
It's the reply to an request to set the final date of a banishment of an account (0x794a).
|
|
If the account_id value is -1, the login-server fails to set the final date of a banishment (the account doesn't exist).
|
|
Otherwise, the account_id is the id of the account that the login-server have fixed the final date of a banishment.
|
|
The login-server returns the correct sensitive case account_name (use strcmpi to compare).
|
|
|
|
S 794c <account_name>.24B <+/-years_modification>.w <+/-months_modification>.w <+/-days_modification>.w <+/-hours_modification>.w <+/-minutes_modification>.w <+/-seconds_modification>.w
|
|
It's a request to adjust the final date of a banishment of an account.
|
|
This packet modifies the final date of a banishment by add/sustract of some parameters.
|
|
If you adjust a non-banished account, you fix a banishment with actual time + adjustments.
|
|
Answer packet: 0x794d.
|
|
|
|
R 794d <account_id>.l <account_name>.24B <end_date_of_banishment>.l
|
|
It's the reply to an request to adjust the final date of a banishment of an account (0x794c).
|
|
If the account_id value is -1, the login-server fails to adjust the final date of a banishment (the account doesn't exist).
|
|
Otherwise, the account_id is the id of the account that the login-server have adjusted the final date of a banishment.
|
|
The login-server returns the correct sensitive case account_name (use strcmpi to compare).
|
|
Note: if value is impossible, the returned value is the (unchanged) value of the final date of the banishment.
|
|
|
|
S 794e <broadcast_type>.W <length_of_message>.L <message>.(length_of_message)B
|
|
It's a request to send a broadcast to all map-servers.
|
|
The length can not be 0.
|
|
broadcast_type:
|
|
0: normal (yellow)
|
|
0x10: blue
|
|
Answer packet: 794f.
|
|
|
|
R 794f <answaer>.W
|
|
It's the reply to an request to send a broadcast to all map-servers (794e).
|
|
If the answer value is -1, the login-server fails to send the message (no char-server are conected).
|
|
Otherwise, the answer is 0.
|
|
|
|
S 7950 <account_name>.24B <+/-years_modification>.w <+/-months_modification>.w <+/-days_modification>.w <+/-hours_modification>.w <+/-minutes_modification>.w <+/-seconds_modification>.w
|
|
It's a request to adjust the validity date of an account.
|
|
This packet modifies the validity date by add/sustract of some parameters.
|
|
You can not adjust an unlimited validity date.
|
|
Answer packet: 0x7951.
|
|
|
|
R 7951 <account_id>.l <account_name>.24B <validity>.l
|
|
It's the reply to an request to adjust the validity date of an account (0x7950).
|
|
If the account_id value is -1, the login-server fails to adjust the validity date (the account doesn't exist).
|
|
Otherwise, the account_id is the id of the account that the login-server have found to try the adjustement of the validity date.
|
|
The login-server returns the correct sensitive case account_name (use strcmpi to compare).
|
|
If the returned validity date is 0, the login-server haven't modify the validity date (the account have an unlimited validity,
|
|
the modification is impossible because the new date is too far in the future, etc...).
|
|
If the returned validity date is not 0, it's the new validity date of the account.
|
|
|
|
S 7952 <account_name>.24B
|
|
It's a request (by name) to obtain complete information about an account.
|
|
Answer packet: 0x7953.
|
|
|
|
R 7953 <account_id>.l <GM_level>.B <account_name>.24B <sex>.B <count>.l <state>.l <error_message>.20B <last_login_time>.24B <last_authorised_login_ip>.16B <email>.40B <validity_date>.l <until_ban_date>.l <length_of_memo>.w <memo>.(length_of_memo)B
|
|
It's the reply to an request to obtain complete information about an account (0x7952 and 0x7954).
|
|
It sends all informations about an account.
|
|
Reply of 0x7952:
|
|
If the account_id value is -1, the login-server fails to found the account (the account doesn't exist).
|
|
Otherwise, the account_id is the id of the found account.
|
|
The login-server returns the correct sensitive case account_name (use strcmpi to compare).
|
|
Reply of 0x7954:
|
|
If the account_name value is "" (void), the login-server fails to found the account (the account id doesn't exist).
|
|
Otherwise, the account_name is the name of the found account.
|
|
|
|
S 7954 <account_id>.l
|
|
It's a request (by id) to obtain complete information about an account.
|
|
Answer packet: 0x7953.
|
|
|
|
S 7955
|
|
It's a request to re-load GM file definition.
|
|
Answer packet: NONE.
|
|
|