diff options
Diffstat (limited to 'doc/admin_packet.txt')
-rw-r--r-- | doc/admin_packet.txt | 281 |
1 files changed, 281 insertions, 0 deletions
diff --git a/doc/admin_packet.txt b/doc/admin_packet.txt new file mode 100644 index 0000000..670a038 --- /dev/null +++ b/doc/admin_packet.txt @@ -0,0 +1,281 @@ +=========================================================================== +=========================================================================== + 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. + |