summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/admin_packet.txt562
-rw-r--r--doc/client_packet.txt2176
-rw-r--r--doc/conf_ref.txt3992
-rw-r--r--doc/coredump_report.txt218
-rw-r--r--doc/db_ref.txt294
-rw-r--r--doc/ea_job_system.txt360
-rw-r--r--doc/effect_list.txt720
-rw-r--r--doc/help.txt954
-rw-r--r--doc/inter_server_packet.txt408
-rw-r--r--doc/item_bonus.txt424
-rw-r--r--doc/item_db.txt250
-rw-r--r--doc/miscnotes.txt1102
-rw-r--r--doc/mob_db_mode_list.txt98
-rw-r--r--doc/notes/Changelog.txt23628
-rw-r--r--doc/notes/INSTALL.txt492
-rw-r--r--doc/notes/README.win32.txt64
-rw-r--r--doc/notes/Readme-jap.txt42520
-rw-r--r--doc/notes/SVN-SUPPORT.txt30
-rw-r--r--doc/notes/help-old.txt900
-rw-r--r--doc/packet_table_en.txt2672
-rw-r--r--doc/pccommand_list.txt338
-rw-r--r--doc/script_commands.txt10554
-rw-r--r--doc/script_ref.txt2848
-rw-r--r--doc/whisper_sys.txt58
-rw-r--r--doc/woe_time_explanation.txt220
25 files changed, 47941 insertions, 47941 deletions
diff --git a/doc/admin_packet.txt b/doc/admin_packet.txt
index d40c8a370..670a03879 100644
--- a/doc/admin_packet.txt
+++ b/doc/admin_packet.txt
@@ -1,281 +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.
-
+===========================================================================
+===========================================================================
+ 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.
+
diff --git a/doc/client_packet.txt b/doc/client_packet.txt
index e763ab5f6..61fb10719 100644
--- a/doc/client_packet.txt
+++ b/doc/client_packet.txt
@@ -1,1088 +1,1088 @@
-Client Version in date format (Client Version in 4 digit format):
-2004 06 28a (0628a)
-2004 10 25 (1025)
-2004 11 01 (1101)
-2004 12 13 (1213)
-2005 01 10 (0110)
-2005 03 15 (0315)
-2005 03 21 (0321)
-2005 04 04 (0404)
-2005 04 06 (0406)*
-2005 04 11a (0411a)
-2005 04 25a (0425a)
-2005 05 31b (0531b)
-2005 06 14 (0614)
-2005 06 28a (0628a)
-2005 08 08 (0808)
-
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-#0x0040
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 55, 17, 3, 37, 46, -1, 23, -1, 3,108, 3, 2,
- 3, 28, 19, 11, 3, -1, 9, 5, 54, 53, 58, 60, 41, 2, 6, 6,
-#0x0080
- 7, 3, 2, 2, 2, 5, 16, 12, 10, 7, 29, 23, -1, -1, -1, 0,
- 7, 22, 28, 2, 6, 30, -1, -1, 3, -1, -1, 5, 9, 17, 17, 6,
- 23, 6, 6, -1, -1, -1, -1, 8, 7, 6, 7, 4, 7, 0, -1, 6,
- 8, 8, 3, 3, -1, 6, 6, -1, 7, 6, 2, 5, 6, 44, 5, 3,
-#0x00C0
- 7, 2, 6, 8, 6, 7, -1, -1, -1, -1, 3, 3, 6, 6, 2, 27,
- 3, 4, 4, 2, -1, -1, 3, -1, 6, 14, 3, -1, 28, 29, -1, -1,
- 30, 30, 26, 2, 6, 26, 3, 3, 8, 19, 5, 2, 3, 2, 2, 2,
- 3, 2, 6, 8, 21, 8, 8, 2, 2, 26, 3, -1, 6, 27, 30, 10,
-#0x0100
- 2, 6, 6, 30, 79, 31, 10, 10, -1, -1, 4, 6, 6, 2, 11, -1,
- 10, 39, 4, 10, 31, 35, 10, 18, 2, 13, 15, 20, 68, 2, 3, 16,
- 6, 14, -1, -1, 21, 8, 8, 8, 8, 8, 2, 2, 3, 4, 2, -1,
- 6, 86, 6, -1, -1, 7, -1, 6, 3, 16, 4, 4, 4, 6, 24, 26,
-#0x0140
- 22, 14, 6, 10, 23, 19, 6, 39, 8, 9, 6, 27, -1, 2, 6, 6,
- 110, 6, -1, -1, -1, -1, -1, 6, -1, 54, 66, 54, 90, 42, 6, 42,
- -1, -1, -1, -1, -1, 30, -1, 3, 14, 3, 30, 10, 43, 14,186,182,
- 14, 30, 10, 3, -1, 6,106, -1, 4, 5, 4, -1, 6, 7, -1, -1,
-#0x0180
- 6, 3,106, 10, 10, 34, 0, 6, 8, 4, 4, 4, 29, -1, 10, 6,
- 90, 86, 24, 6, 30,102, 9, 4, 8, 4, 14, 10, 4, 6, 2, 6,
- 3, 3, 35, 5, 11, 26, -1, 4, 4, 6, 10, 12, 6, -1, 4, 4,
- 11, 7, -1, 67, 12, 18,114, 6, 3, 6, 26, 26, 26, 26, 2, 3,
-#0x01C0
- 2, 14, 10, -1, 22, 22, 4, 2, 13, 97, 0, 9, 9, 29, 6, 28,
- 8, 14, 10, 35, 6, 8, 4, 11, 54, 53, 60, 2, -1, 47, 33, 6,
- 30, 8, 34, 14, 2, 6, 26, 2, 28, 81, 6, 10, 26, 2, -1, -1,
- -1, -1, 20, 10, 32, 9, 34, 14, 2, 6, 48, 56, -1, 4, 5, 10,
-#0x200
- 26, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 19,
-
-S ƒNƒ‰ƒCƒAƒ“ƒg‚©‚猩‚Ä‘—M
-R ƒNƒ‰ƒCƒAƒ“ƒg‚©‚猩‚ÄŽóM
-
-B ƒoƒCƒg
-w ƒ[ƒh=2B
-l ƒƒ“ƒOƒ[ƒh=4B
-* 0ŒÂˆÈã‚­‚è‚©‚¦‚µ
-
-S 0064 <version>.l <account name>.24B <password>.24B <version2>.B
- ƒAƒJƒEƒ“ƒgID&ƒpƒXƒ[ƒh‘—M
-S 0065 <account ID>.l <login ID1>.l <login ID2>.l ?.2B <sex>.B
- ƒLƒƒƒ‰ƒZƒŒŽIÚ‘±—v‹
-S 0066 <charactor number>.B
- ƒLƒƒƒ‰ƒNƒ^‘I‘ð—v‹
-S 0067 <charactor name>.24B <param etc>.11B
- ƒLƒƒƒ‰ƒNƒ^쬗v‹
-S 0068 <charactor ID>.l <mail address>.40B
- ƒLƒƒƒ‰ƒNƒ^휗v‹
-R 0069 <len>.w <login ID1>.l <account ID>.l <login ID2>.l ?.32B <sex>.B {<IP>.l <port>.w <server name>.20B <login users>.w <maintenance>.w <new>.w}.32B*
- login¬Œ÷&ŽIî•ñ
-R 006a <error No>.B
- loginŽ¸”s ‚»‚Ì‚P
- err No=00 –¢“o˜^‚ÌID‚Å‚·
- err No=01 ƒpƒXƒ[ƒh‚ªˆá‚¢‚Ü‚·
- err No=02 Žg—pŠúŠÔ‚ªI—¹‚µ‚Ä‚¢‚Ü‚·
- err No=03 ƒT[ƒo[‚©‚çÚ‘±‹‘”Û‚³‚ê‚Ü‚µ‚½
- err No=04 ‰ð–ñ‚³‚ꂽIDA‚Ü‚½‚̓AƒJƒEƒ“ƒgƒuƒƒbƒN‚³‚ê‚Ä‚¢‚éID‚Å‚·
- err No=05 ÅV‚̃pƒbƒ`‚Å‚Í‚ ‚è‚Ü‚¹‚ñ
- err No=06 ‰ð–ñ‚³‚ꂽIDA‚Ü‚½‚̓AƒJƒEƒ“ƒgƒuƒƒbƒN‚³‚ê‚Ä‚¢‚éID‚Å‚·
- err No=07 ƒT[ƒo[‚ª¬ŽG‚µ‚Ä‚¢‚Ü‚·
-R 006b <len>.w <charactor select data>.106B*
- ƒLƒƒƒ‰ƒZƒŒŽIÚ‘±¬Œ÷&ƒLƒƒƒ‰ƒNƒ^ƒf[ƒ^
- <charactor select data> = <charactor ID>.l <base exp>.l <zeny>.l <job exp>.l <job level>.l ?.8B <option>.l <karma>.l <manner>.l ?.2B <HP>.w <MaxHP>.w <SP>.w <MaxSP>.w <speed>.w <class>.w <hair>.w <weapon>.2w <base level>.w <skill point>.w <head_bottom>.w <sheild>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <name>.24B <STR>.B <AGI>.B <VIT>.B <INT>.B <DEX>.B <LUK>.B <charactor number>.B ?.B
-R 006c <error No>.B
- ƒLƒƒƒ‰ƒNƒ^‘I‘ðŽ¸”s
-R 006d <charactor select data>.106B
- ƒLƒƒƒ‰ƒNƒ^쬬Œ÷
-R 006e <error No>.B
- ƒLƒƒƒ‰ƒNƒ^쬎¸”s
-R 006f
- ƒLƒƒƒ‰ƒNƒ^휬Œ÷
-R 0070 <error No>.B
- ƒLƒƒƒ‰ƒNƒ^휎¸”s
- err No=00 ƒ[ƒ‹ƒAƒhƒŒƒX‚ªˆá‚¤
- err No=01 휂ª‹‘”Û‚³‚ꂽ
-R 0071 <charactor ID>.l <map name>.16B <ip>.l <port>.w
- ƒLƒƒƒ‰ƒNƒ^‘I‘ð¬Œ÷&ƒ}ƒbƒv–¼&ƒQ[ƒ€ŽIIP/port
-S 0072 <account ID>.l <charactor ID>.l <login ID1>.l <login ID2>.l <sex>.b
- ƒQ[ƒ€ŽIÚ‘±—v‹
-R 0073 <server tick>.l <coordidate>.3B ?.2B
- ƒQ[ƒ€ŽIÚ‘±¬Œ÷&ƒT[ƒo‘¤1msŽžŒv&oŒ»ˆÊ’u
-R 0078 <ID>.l <speed>.w <opt1>.w <opt2>.w <option>.w <class>.w <hair>.w <weapon>.w <head option bottom>.w <sheild>.w <head option top>.w <head option mid>.w <hair color>.w <cloth color>.w <head dir>.w <guild>.l <emblem>.l <manner>.w <karma>.B <sex>.B <X_Y_dir>.3B ?.B ?.B <sit>.B <Lv>.B
- ƒ}ƒbƒvƒ[ƒhŽž&ˆÚ“®Žž—pAŒü‚«•t‚«—pƒLƒƒƒ‰î•ñ?
-R 0079 <ID>.l <speed>.w <opt1>.w <opt2>.w <option>.w <class>.w <hair>.w <weapon>.w <head option bottom>.w <sheild>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.l <emblem>.l <manner>.w <karma>.B <sex>.B <X_Y_dir>.3B ?.B ?.B <Lv>.B
- ƒeƒŒƒ|“™‚Ì•\Ž¦”ÍˆÍ“à•¦‚«ƒLƒƒƒ‰—pAŒü‚«•t‚«–³‚µƒLƒƒƒ‰î•ñ?
-R 007b <ID>.l <speed>.w <opt1>.w <opt2>.w <option>.w <class>.w <hair>.w <weapon>.w <head option bottom>.w <server tick>.l <sheild>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.l <emblem>.l <manner>.w <karma>.B <sex>.B <X_Y_X_Y>.5B ?.B ?.B ?.B <Lv>.B
- •\Ž¦”͈͓àƒLƒƒƒ‰ˆÚ“®î•ñ
-R 007c <ID>.l <speed>.w ?.6w <class>.w ?.7w <X_Y>.3B ?.2B
- NPC—p•\Ž¦”͈͓àƒLƒƒƒ‰î•ñ
-S 007d
- mapƒ[ƒhI‚è
-S 007e <client tick>.l
- ƒNƒ‰ƒCƒAƒ“ƒg‘¤1msƒ^ƒCƒ}‘—M
-R 007f <server tick>.l
- ƒT[ƒo‘¤1msƒ^ƒCƒ}‘—M
-R 0080 <ID>.l <type>.B
- type=00 ƒLƒƒƒ‰Á–Å (‰æ–ÊŠOˆÚ“®BŽ€‘ÌÁ–Å“™?)
- type=01 ƒLƒƒƒ‰Ž€–S
- type=02 ƒLƒƒƒ‰Á–Å (logout“™?)
- type=03 ƒeƒŒƒ|[ƒg (ƒeƒŒƒ|,”ˆ,’±“™H)
-R 0081 <type>.B
- loginŽ¸”s ‚»‚Ì‚Q
- type=01 ƒT[ƒo[Ú‘±I—¹
- type=02 “¯‚¶ID‚Å‘¼‚ÌŽg—pŽÒ‚ªƒƒOƒCƒ“‚µ‚Ü‚µ‚½
- type=03 ƒT[ƒo[‚Æ‚Ì“¯Šú‚ÉŽ¸”s‚µ‚Ü‚µ‚½
- type=04 ’nˆæ‚ÌŽû—elˆõ’´‰ß‚ÅÚ‘±‚Å‚«‚Ü‚¹‚ñ
- type=05 ‚P‚WΈȉº‚ÍÚ‘±‚Å‚«‚Ü‚¹‚ñ
- type=06 ŒˆÏ‚³‚ꂽƒAƒJƒEƒ“ƒg‚Å‚Í‚ ‚è‚Ü‚¹‚ñ
- type=07 ƒT[ƒo[‚ª¬ŽG‚µ‚Ä‚¢‚Ü‚·
- type=08 ‘O‚ÌÚ‘±î•ñ‚ªŽc‚Á‚Ä‚¢‚Ü‚·
- type=0b ƒAƒJƒEƒ“ƒg‚ª•Û—¯‚³‚ê‚Ü‚µ‚½
- type=0c ‰Û‹àƒVƒXƒeƒ€•ÏX‚Ì‚½‚ßAˆêŽžI—¹‚µ‚Ü‚·
- type=0d IP‚ªˆê’v‚µ‚È‚¢‚½‚ßAÚ‘±‚ðI—¹‚µ‚Ü‚·
- type=10 —L—¿ƒT[ƒrƒX‚É‚È‚è‚Ü‚µ‚½
- type=11 ƒ`ƒPƒbƒg‚ª”ƒ‚í‚ê‚Ä‚¢‚È‚¢‚©A—LŒøŠúŒÀ‚ªØ‚ê‚Ä‚¢‚Ü‚·
-S 0085 <X_Y>.3B
- ˆÚ“®—v‹
-R 0087 <server tick>.l <X_Y_X_Y>.5B ?.B
- ˆÚ“®‰ž“š
-R 0088 <ID>.l <X>.w <Y>.w
- ˆÚ“®“r’†’âŽ~
-S 0089 <target ID>.l <type>.B
- type=00 target‚ð1‰ñ‰£‚é
- type=02 À‚é
- type=03 —§‚¿ã‚é
- type=07 target‚ð‰£‚è‘±‚¯‚é
-R 008a <src ID>.l <dst ID>.l <server tick>.l <src speed>.l <dst speed>.l <param1>.w <param2>.w <type>.B <param3>.w
- type=00 param1=0 miss
- type=00 param1:ƒ_ƒ[ƒW(‚̇Œv?) param2:•ªŠ„” param3:ƒAƒTƒVƒ“2“—¬‹tŽèƒ_ƒ[ƒW
- NPC‚©‚ç‚ÌUŒ‚‚Ìê‡Aparam2,param3‚̓Sƒ~ƒf[ƒ^
- speed‚ÍPC‚Ìê‡“à•”ASPD‚ƈê’v
- type=01 item‚ðE‚¤ ID*2ˆÈŠOƒSƒ~
- type=02 À‚é src IDˆÈŠOƒSƒ~
- type=03 —§‚ src IDˆÈŠOƒSƒ~
- type=08 •¡”UŒ‚
- type=09 ƒ_ƒ[ƒWƒ‚[ƒVƒ‡ƒ“‚È‚µ‚Ƀ_ƒ[ƒW‚¾‚¯•\Ž¦‚³‚ê‚镨(ƒCƒ“ƒfƒ…ƒA)
- type=0a ƒNƒŠƒeƒBƒJƒ‹
- type=0b Š®‘S‰ñ”ð
-S 008c <len>.w <str>.?B
- ’Êí”­Œ¾‘—MBƒ`ƒƒƒbƒg’†‚̓`ƒƒƒbƒg“à”­Œ¾—p‚É‚È‚é
- 擪‚Ì"<nick> : "‚Ì•”•ª‚̓Nƒ‰ƒCƒAƒ“ƒg‘¤‚Å•t‚¯‚鎖
-R 008d <len>.w <ID>.l <str>.?B
- ID‚³‚ñ‚Ì”­Œ¾ŽóMBƒ`ƒƒƒbƒg’†‚̓`ƒƒƒbƒg“à”­Œ¾—p‚É‚È‚é
-R 008e <len>.w <str>.?B
- Ž©•ª‚Ì”­Œ¾ŽóMBƒ`ƒƒƒbƒg’†‚̓`ƒƒƒbƒg“à”­Œ¾—p‚É‚È‚é
-S 0090 <ID>.l <type?>.B
- NPC‚ɘb‚µ‚©‚¯‚éBtype‚Í01‚µ‚©Œ©‚½Ž––³‚µ
-R 0091 <map name>.16B <X>.w <Y>.w
- ŽI“àƒ}ƒbƒvŠÔˆÚ“®AƒeƒŒƒ|,”ˆ“™—p
-R 0092 <map name>.16B <X>.w <Y>.w <IP>.l <port>.w
- ŽIŠÔˆÚ“®
-R 0093
- 8ŒŽ’†‚É1‰ñ‚¾‚¯ŠÏ‘ªB“ä
-S 0094 <ID>.l
- ID‚̃Lƒƒƒ‰–¼“™—v‹B0095‚©0195‚Ì•Ô“š‚ª‚ ‚é‚Í‚¸
-R 0095 <ID>.l <nick>.24B
- NPC,ƒMƒ‹ƒh–¢Š‘®PC‚Ì0094‚Ö‚Ì•Ô“š
- 0193 <charID>.l ‚Å–â‚¢‡‚킹‚Ä
- 0194 <charID>.l <name>.24B ‚̉ž“š‚Å“¾‚Ä‚Ü‚·B
-
-S 0096 <len>.w <nick>.24B <message>.?B
- wis‘—M
-R 0097 <len>.w <nick>.24B <message>.?B
- wisŽóM
-R 0098 <type>.B
- type=00 wis‘—M¬Œ÷
- type=01 wis‘ŠŽè‚ªlogin‚µ‚Ä‚È‚¢?
- type=02 wis‘ŠŽè‚©‚çignore‚³‚ê‚Ä‚é?
-S 0099
- _‚̺‘—M
-R 009a <len>.w <message>.?B
- GM‚©‚ç‚Ì“V‚̺
-S 009b <head dir>.w <dir>.B
- ‘Ì&“ª‚Ì•ûŒü•ÏX—v‹BƒNƒ‰ƒCƒAƒ“ƒg‚ւ̉ž“š‚Í–³‚¢–Í—l
- dir‚Í00`07‚Å‘Ì‚ÌŒü‚«B00‚Å–k‚©‚甽ŽžŒv‰ñ‚è‚É45‹’PˆÊ‚Å07‚Ü‚Å
- head dir‚Í00,01,02‚Å“ª‚ÌŒü‚«B00‚Å‘Ì‚Æ“¯‚¶A01‚ª‰EA02‚ª¶
-R 009c <ID>.l <head dir>.w <dir>.B
- ID‚Ì‘Ì&“ª‚Ì•ûŒü•ÏX
-R 009d <ID>.l <item ID>.w <identify flag>.B <X>.w <Y>.w <amount>.w <subX>.B <subY>.B
- ˆÚ“®“™‚Å°ƒAƒCƒeƒ€‚ª‰æ–Ê“à‚É“ü‚Á‚Ä‚«‚½Žž
-R 009e <ID>.l <item ID>.w <identify flag>.B <X>.w <Y>.w <subX>.B <subY>.B <amount>.w
- item dropB‰½ŒÌ‚©009d‚ƃ}ƒX–Ú“àˆÊ’u&ŒÂ”‚ª“ü‚ê•Ï‚Á‚Ä‚¢‚é
-S 009f <ID>.l
- ID‚Ì°ƒAƒCƒeƒ€‚ðE‚¤
-R 00a0 <index>.w <amount>.w <item ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w <equip type>.w <type>.B <fail>.B
- fail=02 Žæ“¾Ž¸”s?
- fail=06 ƒ‹[ƒgŒ –³‚µBŽæ“¾Ž¸”s
-R 00a1 <ID>.l
- ID‚Ì°ƒAƒCƒeƒ€Á‹Ž
-S 00a2 <index>.w <amount>.w
- Š—LƒAƒCƒeƒ€‚ð—Ž‚·
-R 00a3 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B}.10B*
- Š—LÁ–Õ•i&ŽûW•iƒŠƒXƒg
-R 00a4 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <equip type>.w <equip point>.w <attribute?>.B <refine>.B <card>.4w}.20B*
- Š—L‘•”õƒŠƒXƒg
-R 00a5 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B}.10B*
- ƒJƒvƒ‰‚³‚ñ‚É—a‚¯‚Ä‚ ‚éÁ–Õ•i&ŽûW•iƒŠƒXƒg
-R 00a6 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <equip type>.w <equip point>.w <attribute?>.B <refine>.B <card>.4w}.20B*
- ƒJƒvƒ‰‚³‚ñ‚É—a‚¯‚Ä‚ ‚é‘•”õƒŠƒXƒg
-S 00a7 <index>.w <ID>.l
- ŠŽƒAƒCƒeƒ€index‚ðŽg—p‚·‚éBID‚ÍŽ©•ª‚Ì‚Ý?
-R 00a8 <index>.w <amount>.w <type>.B
- ƒAƒCƒeƒ€Žg—p‰ž“šBtype=00‚Ìꇎg—pŽ¸”s? amount‚àƒSƒ~‚Ì–Í—l
- type=01‚ÌꇬŒ÷‚ÅAamount‚ÍŽg—pŒã‚ÌŽc‚èŒÂ”
-S 00a9 <index>.w <equip type>.w
- ƒAƒCƒeƒ€‘•”õ
-R 00aa <index>.w <equip point>.w <type>.B
- ƒAƒCƒeƒ€‘•”õ‰ž“šBtype=00‚Ìꇑ•”õŽ¸”s? equip point‚àƒSƒ~‚Ì–Í—l
-S 00ab <index>.w
- ‘•”õ‰ðœ
-R 00ac <index>.w <equip point>.w <type>.B
- ‘•”õ‰ðœ‰ž“šBtype=00‚Ìꇎ¸”s? equip point‚àƒSƒ~‚Ì–Í—l
-R 00af <index>.w <amount>.w
- ƒAƒCƒeƒ€”Œ¸­BamountŒÂ‚¾‚¯Œ¸‚ç‚·
-R 00b0 <type>.w <val>.l
- FX‚È”\—Í’l‚ÌXVBˆÈ‰ºtype:‘Ήž‚·‚é”’l‚ð—ñ‹“
- 0000:speed 0003:ˆ«s’l 0004:ƒ}ƒi[ƒ|ƒCƒ“ƒg 0005:HP 0006:MaxHP
- 0007:SP 0008:MaxSP 0009:ƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒg 000b:ƒx[ƒXƒŒƒxƒ‹
- 000c:ƒXƒLƒ‹ƒ|ƒCƒ“ƒg 0018:d—Ê(•\Ž¦‚³‚ê‚Ă锎š‚Ì10”{)
- 0019:Å‘åd—Ê(•\Ž¦‚³‚ê‚Ă锎š‚Ì10”{)
- 0029:ATK‘O 002a:ATKŒã 002b:MATK‘O 002c:MATKŒã
- 002d:DEF‘O 002e:DEFŒã 002f:MDEF‘O 0030:MDEFŒã
- 0031:HIT 0032:FLEE‘O 0033:FLEEŒã 0034:ƒNƒŠƒeƒBƒJƒ‹
- 0035:ASPD(2ms’PˆÊ‚ÌŽžŠÔ?) 0037:ƒWƒ‡ƒuƒŒƒxƒ‹
- 0082:“ä ATKŒã‚Æ“¯‚¶”Žš?
-R 00b1 <type>.w <val>.l
- FX‚È”\—Í’l‚ÌXVBˆÈ‰ºtype:‘Ήž‚·‚é”’l‚ð—ñ‹“
- 0001:ƒx[ƒX‘¤ŒoŒ±’l 0002:ƒWƒ‡ƒu‘¤ŒoŒ±’l 0014:zeny
- 0016:ƒx[ƒX‘¤•K—vŒoŒ±’l 0017:ƒWƒ‡ƒu‘¤•K—vŒoŒ±’l
- ƒÀ1‚Å‚Í00b0‚Íval‚ªshortA00b1‚Íval‚ªlong‚Æ‚¢‚¤Žg‚¢•ª‚¯‚ª‚ ‚Á‚½‚ñ‚¾‚¯‚Ç
- ¡‚Æ‚È‚Á‚Ä‚Í·‚ª–³‚­‚È‚Á‚ÄA–Ó’°‚Ý‚½‚¢‚È‚à‚Ì?
-S 00b2 <type>.B
- type=00 Ž€–SŽžƒŠƒXƒ^[ƒg
- type=01 ƒLƒƒƒ‰ƒZƒŒ—v‹
-R 00b3 <type>.B
- type=01 ƒLƒƒƒ‰ƒZƒŒ‰ž“š
-R 00b4 <len>.w <ID>.l <str>.?B
- ID‚ÌNPC‚©‚ç‚̃ƒbƒZ[ƒW
-R 00b5 <ID>.l
- ID‚ÌNPC‚Ƃ̃ƒbƒZ[ƒWƒEƒBƒ“ƒhƒE‚É"NEXT"ƒAƒCƒRƒ“‚ðo‚·
-R 00b6 <ID>.l
- ID‚ÌNPC‚Ƃ̃ƒbƒZ[ƒWƒEƒBƒ“ƒhƒE‚É"CLOSE"ƒAƒCƒRƒ“‚ðo‚·
-R 00b7 <len>.w <ID>.l <str>.?B
- ID‚ÌNPC‚̉ï˜b‚Å‘I‘ð€–Ú•\Ž¦BŠe€–Ú‚Í':'‚Å‹æØ‚ç‚ê‚é
-S 00b8 <ID>.l <select>.B
- ID‚ÌNPC‚̉ï˜b‚Ì‘I‘ðBŠe€–ڂɇ‚É1`‚ªU‚ç‚ê‚éBff‚ŃLƒƒƒ“ƒZƒ‹?
-S 00b9 <ID>.l
- ID‚ÌNPC‚Ƃ̉ï˜bBNEXTƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚½
-S 00bb <type>.w <amount>.B
- ƒXƒe[ƒ^ƒXup—v‹Btype‚Í000d‚©‚ç0012‚ª‡‚ÉSTR,AGI,VIT,INT,DEX,LUK‚ɑΉž
-R 00bc <type>.w <fail>.B <val>.B
- ƒXƒe[ƒ^ƒXup‰ž“šBfail=01‚Ȃ笌÷Btype‚Í00bb‚Æ“¯‚¶Bval‚Íã‚Á‚½Œã‚Ì”Žš
- Ž¸”s—á‚ÍŒ©‚½Ž––³‚¢‚Ì‚Å“äBƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒg‚ª‘«‚è‚È‚¢ó‘Ô‚Å
- 00bb‚ð”­s‚Å‚«‚éƒNƒ‰ƒCƒAƒ“ƒg‚ª—L‚ê‚ÎAfail=00‚É‚È‚é‚Ì‚Å‚Í‚È‚¢‚©‚Æ—\‘z
-R 00bd <status point>.w <STR>.B <STRupP>.B <AGI>.B <AGIupP>.B <VIT>.B <VITupP>.B <INT>.B <INTupP>.B <DEX>.B <DEXupP>.B <LUK>.B <LUKupP>.B <ATK>.w <ATKbonus>.w <MATKmax>.w <MATKmin>.w <DEF>.w <DEFbonus>.w <MDEF>.w <MDEFbonus>.w <HIT>.w <FLEE>.w <FLEEbonus>.w <critical>.w ?.w
- ‚܂Ƃ߂ăXƒe[ƒ^ƒXî•ñ‚ð‘—‚éƒpƒPƒbƒg
-R 00be <type>.w <val>.B
- •K—vƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒgXVƒpƒPƒbƒgBtype‚Í0020`0025‚ª‡‚ÉSTR`LUK‚ɑΉž
-S 00bf <type>.B
- ƒGƒ‚[ƒVƒ‡ƒ“‚ðo‚·Btype‚Í00-0c(,0d)‚ªALT+1`ALT+9,ALT+0,ƒ`ƒ‡ƒL,ƒO[,ƒp[(,ŠØ‘Šø)‚ɑΉž
- 00=! 01=? 02=‚¤‚ꂵ‚¢(ô) 03=ƒn[ƒg 04=Š¾ 05=‚ ‚Í‚Í(“d‹…)
- 06=‚¢‚₾‚È(”) 07=“{‚è(‚à‚â‚à‚â)08=‚¨‹à() 09=c 0a=ƒ`ƒ‡ƒL
- 0b=ƒO[ 0c=ƒp[ 0d=ŠØ‘Šø 0e=‘å‚«‚¢ƒn[ƒg 0f=‚ ‚肪‚Æ‚¤(thanks)
- 10=–³”O 11=‚²‚ß‚ñ(sorry) 12=΂¢ 13=Š¾‚©‚« 14=‚ ‚Ì
- 15=Å‚(GoodJob)16=ƒLƒ‡ƒƒLƒ‡ƒ 17=ƒVƒ‡ƒbƒN 18=‚Ü‚é 19=ƒoƒc
- 1a=ƒwƒ‹ƒv(help) 1b=go 1c=‚¦[‚ñ 1d=‚­‚·‚­‚· 1e=‚¿‚ã
- 1f=‚¿‚ã‚¿‚ã 20=‚Ó‚ñ 21=‚¤‚ñ‚¤‚ñ
-R 00c0 <ID>.l <type>.B
- ID‚Ìl‚ªƒGƒ‚[ƒVƒ‡ƒ“‚ðo‚µ‚½Btype‚Í00bf‚Æ“¯‚¶
-S 00c1
- loginl”–â‚¢‡‚킹
-R 00c2 <val>.l
- loginl”‰ž“š
-R 00c3 <ID>.l <type>.B <val>.B
- Œ©‚½–Ú•ÏXBtype‚Í00‚Å–{‘Ì(“]EŽž“™)A02‚ª•ŠíA03‚ª“ª(‰º)A04‚ª“ª(ã)A05‚ª“ª(’†)A08‚ª‚
-R 00c4 <ID>.l
- ˜b‚©‚¯‚½NPC‚ª¤l‚¾‚Á‚½‚Ì‚Åbuy/sell‘I‘ð‘‹o
-R 00c5 <ID>.l <type>.B
- buy/sell‘I‘ðBtype=00‚È‚çbuyBtype=01‚È‚çsell
-R 00c6 <len>.w {<value>.l <DCvalue>.l <type>.B <item ID>.w}.11B*
- NPC‚Ì‚¨“Xbuy‘I‘ðŽžBDCvalue‚ͤlDCŒã‚Ì’l’i
-R 00c7 <len>.w {<index>.w <value>.l <OCvalue>.l}.10B*
- NPC‚Ì‚¨“Xsell‘I‘ðŽžBOCvalue‚ͤlOCŒã‚Ì’l’i
-S 00c8 <len>.w {<amount>.w <item ID>.w}.4B*
- NPC‚Ì‚¨“X‚©‚甃‚¤
-S 00c9 <len>.w {<index>.w <amount>.w}.4B*
- NPC‚Ì‚¨“X‚É”„‚é
-R 00ca <type>.B
- NPC‚©‚çw“üI—¹Btype=00¬Œ÷
-R 00cb <type>.B
- NPC‚Ö”„‹pI—¹Btype=00¬Œ÷
-S 00cc <ID>.l
- GM—p‰EƒNƒŠƒbƒNƒƒjƒ…[uinamejŽg—pŽÒ‹­§I—¹vŽg—p
-R 00cd <IDH>.l
- GM—p‰EƒNƒŠƒbƒNƒƒjƒ…[uinamejŽg—pŽÒ‹­§I—¹v‚̉ž“š
- <ID>‚ª0‚Ìꇂ͎¸”s‚Æ•\Ž¦B(‚±‚̃pƒPƒbƒg‚Í‚½‚¾‚̉ž“š‚Å‚·BÚ‘±I—¹‚Ì‹@”\‚Í‚ ‚è‚Ü‚¹‚ñB)
-S 00cf <nick>.24B <type>.B
- type=00 nick‚©‚ç‚Ì”­Œ¾Žó‚¯•t‚¯‹‘”Û (/ex nick)
- type=01 nick‚©‚ç‚Ì”­Œ¾Žó‚¯•t‚¯‹–‰Â (/in nick)
-S 00d0 <type>len.B
- type=00 ‘S‚Ä‚Ì”­Œ¾Žó‚¯•t‚¯‹‘”Û (/exall)
- type=01 ‘S‚Ä‚Ì”­Œ¾Žó‚¯•t‚¯‹–‰Â (/inall)
-R 00d1 <type>.B <fail>.B
- fail=00 ”­Œ¾Žó‚¯•t‚¯‹‘”Û¬Œ÷
- fail=01 ”­Œ¾Žó‚¯•t‚¯‹‘”ÛŽ¸”s
-R 00d2 <type>.B <fail>.B
- fail=00 ‘S”­Œ¾Žó‚¯•t‚¯‹‘”Û¬Œ÷
- fail=01 ‘S”­Œ¾Žó‚¯•t‚¯‹‘”ÛŽ¸”s
-S 00d5 <len>.w <limit>.w <pub>.B <passwd>.8B <title>.?B
- ƒ`ƒƒƒbƒg—§‚ÄB‚±‚±‚©‚çƒ`ƒƒƒbƒgŠÖŒW‚ª‘±‚­‚¯‚Ç’²‚ׂªŠÃ‚¢‚̂ŕ⊮‚æ‚ë
-R 00d6 <fail>.B
- ƒ`ƒƒƒbƒg—§‚ĉž“š
-R 00d7 <len>.w <owner ID>.l <chat ID>.l <limit>.w <users>.w <pub>.B <title>.?B
- ‰æ–Ê“àƒ`ƒƒƒbƒgî•ñ
-R 00d8 <chat ID>.l
- ƒ`ƒƒƒbƒgÁ‹Ž
-S 00d9 <chat ID>.l <passwd>.8B
- ƒ`ƒƒƒbƒgŽQ‰Á—v¿
-R 00da <fail>.B
- ƒ`ƒƒƒbƒgŽQ‰ÁŽ¸”s
-R 00db <len>.w <chat ID>.l {<index>.l <nick>.24B}.28B*
- ƒ`ƒƒƒbƒgŽQ‰ÁŽÒƒŠƒXƒg
-R 00dc <users>.w <nick>.24B
- ƒ`ƒƒƒbƒg‚Ö‚ÌŽQ‰ÁŽÒ’ljÁ(?)
-R 00dd <index>.w <nick>.24B <fail>.B
- ƒ`ƒƒƒbƒg‚©‚çŽQ‰ÁŽÒ”²‚¯
-S 00de <len>.w <limit>.w <pub>.B <passwd>.8B <title>.?B
- ƒ`ƒƒƒbƒgƒXƒe[ƒ^ƒX•ÏX
-R 00df <len>.w <owner ID>.l <chat ID>.l <limit>.w <users>.w <pub>.B <title>.?B
- ƒ`ƒƒƒbƒgƒXƒe[ƒ^ƒX•ÏX¬Œ÷
-S 00e0 ?.l <nick>.24B
- ƒ`ƒƒƒbƒgƒ‹[ƒ€Š—LŽÒ•ÏX—v‹?
-R 00e1 <index>.l <nick>.24B
- ƒ`ƒƒƒbƒgŽQ‰ÁŽÒ”Ô†•t‚¯’¼‚µ?
-S 00e2 <nick>.24B
- ƒ`ƒƒƒbƒgkick
-S 00e3
- ƒ`ƒƒƒbƒg”²‚¯
-S 00e4 <ID>.l
- Žæ‚èˆø‚«—v‹
-R 00e5 <nick>.24B
- Žæ‚èˆø‚«—v¿Žó‚¯
-S 00e6 <type>.B
- type=03 Žæ‚èˆø‚«—v¿ok
- type=04 Žæ‚èˆø‚«—v¿ƒLƒƒƒ“ƒZƒ‹
-R 00e7 <fail>.B
- Žæ‚èˆø‚«—v‹‰ž“š
- fail=00 ‹——£‚ª‰“‰ß‚¬
- fail=03 —v¿Žó‚¯‚Ä‚­‚ꂽ
- fail=04 ƒLƒƒƒ“ƒZƒ‹‚³‚ꂽ?
-S 00e8 <index>.w <amount>.l
- ƒAƒCƒeƒ€’ljÁBindex=0‚Åzeny’ljÁB³‹KƒNƒ‰ƒCƒAƒ“ƒg‚Å‚Ízeny‚Í00eb‚Ì’¼‘O‚Ì‚Ý
-R 00e9 <amount>.l <type ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w
- ‘ŠŽè•û‚©‚ç‚̃AƒCƒeƒ€’ljÁ
-R 00ea <index>.w <fail>.B
- fail=00 ƒAƒCƒeƒ€’ljÁ¬Œ÷
- fail=01 ’ljÁŽ¸”sB‘ŠŽè‘¤d—ʃI[ƒo
-S 00eb
- ƒAƒCƒeƒ€’ljÁŠ®—¹(ok‰Ÿ‚µ)
-R 00ec <fail>.B
- fail=00 Ž©•ª‚©‚ç‚ÌokŽó—Ì
- fail=01 ‘ŠŽè‚©‚ç‚ÌokŽó—Ì
-S 00ed
- Žæ‚èˆø‚«ƒLƒƒƒ“ƒZƒ‹
-R 00ee
- Žæ‚èˆø‚«‚ªƒLƒƒƒ“ƒZƒ‹‚³‚ê‚Ü‚µ‚½
-S 00ef
- Žæ‚èˆø‚«‹–‘ø(trade‰Ÿ‚µ)
-R 00f0
- Žæ‚èˆø‚«Š®—¹
-R 00f2 <num>.w <limit>.w
- ƒJƒvƒ‰‚³‚ñ‹–—eƒAƒCƒeƒ€ŒÂ”&Œ»ó
-S 00f3 <index>.w <amount>.l
- ƒJƒvƒ‰‚³‚ñ‘qŒÉ‚ɃAƒCƒeƒ€•ú‚èž‚Ý
-R 00f4 <index>.w <amount>.l <type ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w
- ƒJƒvƒ‰‚³‚ñ‘qŒÉ‚̃AƒCƒeƒ€’ljÁ
-S 00f5 <index>.w <amount>.l
- ƒJƒvƒ‰‚³‚ñ‘qŒÉ‚©‚çƒAƒCƒeƒ€Žæ‚èo‚µ—v‹
-R 00f6 <index>.w <amount>.l
- ƒJƒvƒ‰‚³‚ñ‘qŒÉ‚©‚çƒAƒCƒeƒ€Žæ‚èo‚µ‰ž“š
-S 00f7
- ƒJƒvƒ‰‚³‚ñ‘qŒÉ•Â‚¶—v‹
-R 00f8
- ƒJƒvƒ‰‚³‚ñ‘qŒÉ•Â‚¶‰ž“š
-S 00f9 <party name>.24B
- ƒp[ƒeƒB쬗v‹
-R 00fa <fail>.B
- ƒp[ƒeƒB쬉ž“š
- fail=00 uƒp[ƒeƒB[‚ðŒ‹¬‚µ‚Ü‚µ‚½Bv
- fail=01 u“¯‚¶–¼‘O‚̃p[ƒeƒB[‚ª‚ ‚è‚Ü‚·Bv
- fail=02 u‚·‚łɃp[ƒeƒB[‚ɉÁ“ü‚µ‚Ä‚¢‚Ü‚·Bv
-R 00fb <len>.w <party name>.24B {<ID>.l <nick>.24B <map name>.16B <leader>.B <offline>.B}.46B*
- ƒp[ƒeƒBî•ñ‚Ü‚Æ‚ß‚Ä‘—‚è
-S 00fc <ID>.l
- ƒp[ƒeƒBŠ©—U‚·‚é
-R 00fd <nick>.24B <fail>.B
- fail=00 ‘ŠŽè‚ÍŠù‚Ƀp[ƒeƒB‚É“ü‚Á‚Ä‚¢‚½
- fail=01 ‘ŠŽè‚É‹‘”Û‚³‚ꂽ
- fail=02 Š©—U¬Œ÷
-R 00fe <ID>.l <party name>.24B
- ƒp[ƒeƒB‚É—U‚í‚ꂽ
-S 00ff <ID>.l <fail>.l
- ƒp[ƒeƒB‚É—U‚í‚ꂽŽž‚Ì•Ô“šBfail=1 ok•Ô“š?
-S 0100
- ƒp[ƒeƒB’E‘Þ—v‹
-R 0101 <exp>.w <item?>.w
- ƒp[ƒeƒBݒ茻ó? exp=2‚Ìꇂ͌ö•½”z•ªÝ’莸”s?
-S 0102 <exp>.w <item?>.w
- ƒp[ƒeƒBÝ’è•ÏX
-R 0104 <ID>.l ?.l <X>.w <Y>.w <offline>.B <party name>.24B <nick>.24B <map name>.16B
- ƒp[ƒeƒB1l•ªî•ñXV
-R 0105 <ID>.l <nick>.24B <fail>.B
- nick‚³‚ñ‚ªƒp[ƒeƒB‚©‚ç—£’E
-R 0106 <ID>,l <HP>.w <MaxHP>.w
- ƒp[ƒeƒBƒƒ“ƒoHPXV
-R 0107 <ID>.l <X>.w <Y>.w
- ƒp[ƒeƒBƒƒ“ƒoˆÊ’uXV
-S 0108 <len>.w <message>.?B
- ƒp[ƒeƒB“à”­Œ¾
-R 0109 <len>.w <ID>.l <message>.?B
- ƒp[ƒeƒB“à”­Œ¾ŽóM
-R 010a <type ID>.w
- MVPƒAƒCƒeƒ€Žæ“¾
-R 010b <exp>.l
- MVPŒoŒ±’lŽæ“¾
-R 010c <ID>.l
- MVPƒLƒƒƒ‰•\Ž¦
-R 010e <skill ID>.w <lv>.w <sp>.w <range>.w <up>.B
- ƒXƒLƒ‹î•ñXVBsp‚Í–¢Žg—p?
-R 010f <len>.w {<skill ID>.w <target type>.w ?.w <lv>.w <sp>.w <range>.w <skill name>.24B <up>.B}.37B*
- ƒXƒLƒ‹î•ñ‚̉òBskill name‚͈ꕔ—¬‚ê‚Ä—ˆ‚È‚¢•¨‚ª‚ ‚é„AL_PNEUMA,PR_SLOWPOISON“™
- target type‚Í0-ƒpƒbƒVƒuA1-“GA2-êŠA4-‘¦Žž”­“®A16-–¡•û
- lv=0 up=0‚Ìꇂ̓ŠƒXƒg‚Éo‚µ‚Ä‚È‚¢?
-R 0110 <skill ID>.w <basic type>.w ?.w <fail>.B <type>.B
- fail=00‚ÌŽž‚ɃXƒLƒ‹—˜—pŽ¸”s?
- type 00:basic type‚Ì•û 01:SP•s‘« 02:HP•s‘« 03:memo–³‚µ 04:delay’†
- 05:‚¨‹à–³‚µ(‚ß‚Ü[) 06:•Ší‚ª‚æ‚낵‚­‚È‚¢ 07:ÔƒWƒFƒ€–³‚µ 08:ƒWƒFƒ€–³‚µ 09:“ä
- basic type 00:Žæ‚èˆø‚« 01:emotion 02:À‚è 03:ƒ`ƒƒƒbƒg 04:ƒp[ƒeƒB
- 05:shout? 06:PK 07:ƒ}ƒi[ƒ|ƒCƒ“ƒg
-R 0111 <skill ID>.w <target type>.w ?.w <lv>.w <sp>.w <range>.w <skill name>.24B <up>.B
- 010f‚Ì1‚•ªBƒÀ2‚¾‚Æ–¢Žg—p?
- 20040415“]EŽž‚ÉŠÏ‘ª
-S 0112 <skill ID>.w
- ƒXƒLƒ‹lvup—v‹
-S 0113 <level>.w <skill ID>.w <ID>.l
- ID‚ðƒ^[ƒQƒbƒg‚Éskill‚ðŽg‚¤
-R 0114 <skill ID>.w <src ID>.l <dst ID>.l <server tick>.l <src speed>.l <dst speed>.l <param1>.w <param2>.w <param3>.w <type>.B
- UŒ‚ŒnƒXƒLƒ‹ƒGƒtƒFƒNƒg@
- type=04 ‰Î•Ç‚ÅŠÏ‘ª type=06‚Æ‚Ù‚Ú“¯‚¶?
- type=05 NB/FBl‚Ì•ªŽU‚µ‚½ƒ_ƒ[ƒW—pH
- type=06 ’P”­‚à‚Ì? param1‚̓_ƒ[ƒW‡ŒvAparam2‚ÍlevelAparam3‚Í1ŒÅ’è‚Æ—\‘z
- type=07 ƒ_ƒ[ƒW•\Ž¦–³‚µH
- type=08 ˜A‘Å‚à‚Ì? param1‚̓_ƒ[ƒW‡ŒvAparam2‚ÍlevelAparam3‚Í•ªŠ„”‚Æ—\‘z
- type=09 ƒ_ƒ[ƒWƒ‚[ƒVƒ‡ƒ“‚È‚µ‚Ƀ_ƒ[ƒW‚¾‚¯•\Ž¦‚³‚ê‚镨(ƒCƒ“ƒfƒ…ƒA)‚ÆŽv‚Á‚½‚Ì‚¾‚ªƒ_ƒ[ƒWƒ‚[ƒVƒ‡ƒ“‚ªo‚镨B(‹@”\‚Í“ä)
-R 0115 <skill ID>.w <src ID>.l <dst ID>.l <server tick>.l <src speed>.l <dst speed>.l <X>.w <Y>.w <param1>.w <param2>.w <param3>.w <type>.B
- ’e‚«”ò‚΂µ—L‚èUŒ‚ŒnƒXƒLƒ‹ƒGƒtƒFƒNƒg
- type=05 ƒ_ƒ[ƒW&’e‚«”ò‚΂µBparam1‚̓_ƒ[ƒW‡ŒvAparam2‚ÍlevelAparam3‚Í•ªŠ„”‚Æ—\‘z
- type=06 ”šS’n? ­‚È‚­‚Æ‚àparam1‚̓Sƒ~‚Ì–Í—l
- type=09 ƒ_ƒ[ƒWƒ‚[ƒVƒ‡ƒ“‚È‚µ‚Ƀ_ƒ[ƒW‚¾‚¯•\Ž¦‚³‚ê‚镨(ƒCƒ“ƒfƒ…ƒA)‚ÆŽv‚Á‚½‚Ì‚¾‚ªƒ_ƒ[ƒWƒ‚[ƒVƒ‡ƒ“‚ªo‚镨B(‹@”\‚Í“ä)
-S 0116 <level>.w <skill ID>.w <X>.w <Y>.w
- (X,Y)‚ðƒ^[ƒQƒbƒg‚Éskill‚ðŽg‚¤
-R 0117 <skill ID>.w <src ID>.l <val>.w <X>.w <Y>.w <server tick>.l
- ꊑŠŽè‚̃XƒLƒ‹ƒGƒtƒFƒNƒg•\Ž¦Bval‚̓Œƒxƒ‹‚©Aˆê•”ŒÅ‚³?(•X•Ç)
-S 0118
- UŒ‚ƒLƒƒƒ“ƒZƒ‹
-R 0119 <ID>.l <param1>.w <param2>.w <param3>.w ?.B
- Œ©‚½–Ú•ÏX
- param1=02 ƒtƒƒXƒgƒ_ƒCƒo‚Å“€‚è’Ђ¯?
- param2=01 “Å?
- param2=20 ANGELUSó‘Ô?
- param3=01 ƒTƒCƒg‚©ƒ‹ƒƒbƒ`?
- param3=0b ƒnƒCƒfƒBƒ“ƒOó‘Ô?
- param3=0b ƒNƒ[ƒLƒ“ƒOó‘Ô?
- param3=0d ƒJ[ƒg•t‚«
- param3=0e ‘é•t‚«
- param3=0f ƒyƒRƒyƒRæ‚è
-
-R 011a <skill ID>.w <val>.w <dst ID>.l <src ID>.l <fail>.B
- ”ñƒ_ƒ[ƒWŒnƒXƒLƒ‹•\Ž¦Bƒq[ƒ‹‚Ìê‡val‚͉ñ•œ—Ê
- fail=00‚Ìꇎ¸”s‚Û‚¢‚ªAƒXƒ`[ƒ‹ˆÈŠO‚Å‚ÍŒ©‚½Ž––³‚µ
-S 011b <skill ID>.w <map name>.16B
- 011c‚ւ̉ž“šBŽg‚í‚È‚¢ê‡"cancel"Aƒ}ƒbƒv“àƒ‰ƒ“ƒ_ƒ€‚Ìê‡"Random"‚ð‘—‚é
-R 011c <skill ID>.w <map1>.16B <map2>.16B <map3>.16B <map4>.16B
- ƒeƒŒƒ|/ƒ|ƒ^‚ÌꊑI‘ðB
- ƒeƒŒƒ|‚Ìê‡ARandom/ƒZ[ƒuêŠAƒ|ƒ^‚Ìê‡AƒZ[ƒuêŠ/memo1/memo2/memo3‚Æ‚È‚é
- ƒ}ƒbƒv–¼‚Ì‚Ý‘—‚ç‚ê‚é
-S 011d
- Œ»Ý‹‚éŠ‚ðƒƒ‚—v‹
-R 011e <fail>.B
- fail=00 ƒƒ‚¬Œ÷
- fail=01 ƒƒ‚Ž¸”s
-R 011f <dst ID>.l <src ID>.l <X>.w <Y>.w <type>.B <fail>.B
- ƒXƒLƒ‹Œø”\’nì¬
- type 7e:SW 7f:‰Î•Ç 80:ƒ|ƒ^”­“®’† 81:ƒ|ƒ^”­“®‘O 83:ƒTƒ“ƒN 85:ƒtƒjƒ…[ƒ}
- 86:ƒo[ƒ~ƒŠƒIƒ“ 8c:ƒg[ƒL[ƒ{ƒbƒNƒX”­“®Žž 8d:•X•Ç 8e:‚­‚ ‚®‚Ü‚¢‚â[ 91:‚ ‚ñ‚­‚é‚·‚Ë‚ 
- 93:‚ç‚ñ‚Ç‚Ü‚¢‚ñ 97:?? 99:ƒg[ƒL[ƒ{ƒbƒNƒX”­“®‘O
- ‘¼î•ñ‹‚Þ
-R 0120 <ID>.l
- ƒXƒLƒ‹Œø”\’nÁ‹Ž
-R 0121 <num>.w <num limit>.w <weight>.l <weight limit>l
- ƒJ[ƒg‚ÌŽí—Þ&d‚³‚ÌŒ»Ý’l&ãŒÀ
-R 0122 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <equip type>.w <equip point>.w <attribute?>.B <refine>.B <card>.4w}.20B*
- ƒJ[ƒg“àƒAƒCƒeƒ€B‘•”õ•i
-R 0123 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B}.10B*
- ƒJ[ƒg“àƒAƒCƒeƒ€BÁ–Õ•i/ŽûW•i
-R 0124 <index>.w <amount>.l <item ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w
- ƒJ[ƒg‚ɃAƒCƒeƒ€’ljÁ
-R 0125 <index>.w <amount>.l
- ƒJ[ƒg‚©‚çƒAƒCƒeƒ€íœ
-S 0126 <index>.w <amount>.l
- ƒJ[ƒg‚ɃAƒCƒeƒ€‚ð“ü‚ê‚é
-S 0127 <index>.w <amount>.l
- ƒJ[ƒg‚©‚çƒAƒCƒeƒ€‚ðŽæ‚èo‚·
-S 0128 <index>.w <amount>.l
- ƒJƒvƒ‰‚³‚ñ‚©‚çƒJ[ƒg‚ÖƒAƒCƒeƒ€‚ðˆÚ‚·
-S 0129 <index>.w <amount>.l
- ƒJ[ƒg‚©‚çƒJƒvƒ‰‚³‚ñ‚ÖƒAƒCƒeƒ€‚ðˆÚ‚·
-R 012c <fail>.B
- fail=00 ud—ʃI[ƒo[‚Å‚·Bv
- fail=01 uƒAƒCƒeƒ€Å‘åŽí—Þ”‚𒴉߂µ‚Ü‚µ‚½Bv
-R 012d <num>.w
- ˜I“XŠJÝBƒAƒCƒeƒ€ƒŠƒXƒg—v‹Bnum‚Í’u‚¯‚éÅ‘å”
-S 012e
- ˜I“X•Â½
-S 012f <len>.w <message>.80B {<index>.w <amount>.w <value>.l}.8B*
- ˜I“XŠJÝA˜I“X–¼&ƒAƒCƒeƒ€,’l’iƒŠƒXƒg
-S 0130 <ID>.l
- ˜I“XƒAƒCƒeƒ€ƒŠƒXƒg—v‹
-R 0131 <ID>.l <message>.80B
- ˜I“XŠÅ”•\Ž¦
-R 0132 <ID>.l
- ˜I“XŠÅ”ÂÁ‹Ž
-R 0133 <len>.w <ID>.l {<value>.l <amount>.w <index>.w <type>.B <item ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w}.22B
- ˜I“XƒAƒCƒeƒ€ƒŠƒXƒg
-S 0134 <len>.w <ID>.l {<amount>.w <index>.w}.4B*
- ˜I“XƒAƒCƒeƒ€w“ü
-R 0135 <index>.w <amount>.w <fail>.B
- ˜I“XƒAƒCƒeƒ€w“üŽ¸”sB
- fail=1 u‚¨‹à‚ª‘«‚è‚Ü‚¹‚ñBv
- fail=2 ud—ʃI[ƒo[‚Å‚·Bv
-R 0136 <len>.w <ID>.l {<value>.l <index>.w <amount>.w <type>.B <item ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w}.22B*
- ˜I“XŠJݬŒ÷
-R 0137 <index>.w <amount>.w
- ˜I“XƒAƒCƒeƒ€”Ì”„•ñ
-R 0139 <ID>.l <X>.w <Y>.w <X2>.w <Y2>.w <range>.w
- ID‚Ì“G‚Í(X,Y)‚É‹‚ÄŽ©•ª‚Í(X2,Y2)‚É‹‚é‚Ì‚ÅUŒ‚‚ª“Í‚«‚Ü‚¹‚ñ‚Å‚µ‚½
- UŒ‚‰Â”\‹——£‚Írange‚È‚Ì‚ÅA‹ßŠñ‚Á‚ĉº‚³‚¢?
-R 013a <val>.w
- UŒ‚ŽË’ö
-R 013b <type>.w
- ŠeŽíƒƒbƒZ[ƒW•\Ž¦B3=–‘•”õ‚Å‚«‚Ü‚µ‚½
-R 013c <ID>.w
- ‘•”õ‚³‚ꂽ–î‚ÌItemIDB0‚ÅA–¢‘•”õó‘ÔB
-R 013d <type>.w <val>.w
- HP‰ñ•œƒXƒLƒ‹/SP‰ñ•œƒXƒLƒ‹‚É‚æ‚é‰ñ•œ
- type=5‚È‚çHP type=7‚È‚çSP
-R 013c <index>.w
- ‘•”õ‚µ‚Ä‚¢‚é–î
-
-R 013e <src ID>.l <dst ID>.l <X>.w <Y>.w <lv?>.w ?.w <wait>.l
- ƒXƒLƒ‹‰r¥’†BPC/NPC‚ª‘ŠŽè‚ÌꇂÍ(X,Y)‚Í0Bꊂªƒ^[ƒQƒbƒg‚ÌꇂÍdst ID‚Í0‚É‚È‚é
-
- 0x013e ‚Ì offset+16(dword) ‚̓XƒLƒ‹‘®«‚Å‚·(’²¸Ï)B
- 00:–³ 01:… 02:’n 03:‰Î 04:•— 05:“Å 06:¹ 07:ˆÃ 08:”O 09:Ž€
- «—ˆ“I‚ÉA‰r¥’†‚̃GƒtƒFƒNƒg‚ª‘®«‚Å•Ï‚í‚é‚Ì‚©‚ÆB
-
- wait‚Íms’PˆÊ‚©‚È?
-R 0141 <type>.l <base>.l <bonus>.l
- ƒXƒe[ƒ^ƒXî•ñBtype‚Í0d‚©‚ç12‚ª‡‚ÉSTR,AGI,VIT,INT,DEX,LUK‚ɑΉž
- base+bonus‚Æ•\Ž¦‚³‚ê‚é
-R 0142 <ID>.l
- ”’l“ü—Í—p‘‹•\Ž¦
-S 0143 <ID>.l <amount>.l
- 0142‚Ì‘‹‚É“ü—Í‚µ‚½”’l‚Ì‘—M
-R 0144 <ID>.l <type>.l <X>.l <Y>.l <point ID>.B <color>.3B ?.B
- ˆÄ“àˆõ—pAƒ}ƒbƒvãƒAƒCƒRƒ“•\Ž¦ƒpƒPƒbƒg
- type=1 ƒAƒCƒRƒ“‚ð•\Ž¦
- type=2 ƒAƒCƒRƒ“‚ðÁ‹Ž
-R 0145 <file name>.16B <type>.B
- (¡‚ÌŠ)ƒJƒvƒ‰‚³‚ñcutin•\Ž¦
- type=02 •\Ž¦
- type=ff Á‹Ž
-S 0146 <ID>.l
- ID‚ÌNPC‚Ƃ̉ï˜bBCLOSEƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚½Back–³‚µ‚ÉNPCƒƒbƒZ[ƒWƒEƒBƒ“ƒh‚𓯎ž‚ɕ‚¶‚é
-R 0147 <skill ID>.w <target type>.w ?.w <lv>.w <sp>.w <range>.w <skill name>.24B <up>.B
- ƒAƒCƒeƒ€—˜—p‚ÌŒ‹‰ÊˆêŽž“I‚É“¾‚ç‚ꂽƒXƒLƒ‹î•ñ
-R 0148 <ID>.l
- ƒŠƒUƒŒƒNƒVƒ‡ƒ“‚Ì‘ŠŽèŒˆ‚ß? @ ƒÀ1
-S 0149 <ID>.l <type>.B <time>.w
- ID‚Ƀ`ƒƒƒbƒg‹ÖŽ~ŽžŠÔ‚ð•t‰Á type=0 ƒ}ƒCƒiƒX type=1 ƒvƒ‰ƒX
- tyme‚Í•ª’PˆÊ
-R 014a <fail>.l
- ƒ}ƒi[ƒ|ƒCƒ“ƒg‚ð—^‚¦‚½Œ‹‰ÊBfail=0 ¬Œ÷ fail=1 Ž¸”s
-R 014b <type>.B <nick>.24B
- ƒ}ƒi[ƒ|ƒCƒ“ƒg‚ð–á‚Á‚½Btype=00 ƒvƒ‰ƒX type=01 ƒ}ƒCƒiƒX
-R 014C <len>.w (<type>.l <guildID>.l <guild name>.24B).*
- “¯–¿E“G‘΃Mƒ‹ƒh•\Ž¦
- type=0 “¯–¿
- type=1 “G‘Î
-S 014D
- ƒMƒ‹ƒhî•ñ•\Ž¦ŠJŽnH
-R 014E <type?>.l
- type=0x57 ˆê”ʃMƒ‹ƒh’cˆõ
- type=0xD7 ƒMƒ‹ƒhƒ}ƒXƒ^[
-S 014F <page>.l
- ƒMƒ‹ƒh•\Ž¦ƒ^ƒu‘—M
-R 0150 <guildID>.l <guildLv>.l <Ú‘±”>.l <’èˆõ>.l <Avl.lvl>.l <ŒoŒ±’l>.l <next_exp>.l <ã”[ƒ|ƒCƒ“ƒg>.l <«Œü¶‰EVW>.l <«Œü㉺RF>.l <l”H>.l <guild name>.24B <guild master>.24B <–{‹’’n>.16B
- ƒMƒ‹ƒhî•ñ
-S 0151 <guild ID>.l
- ƒGƒ“ƒuƒŒƒ€—v‹
-R 0152 <len>.w <guild ID>.l <emblem ID(•ÏX‰ñ”H)>.l <emblem data>.?B
- ƒGƒ“ƒuƒŒƒ€ƒCƒ[ƒW‘—•t
-S 0153 <len>.w <emblem data>.?B
- ƒGƒ“ƒuƒŒƒ€ƒCƒ[ƒW•ÏX
-R 0154 <len>.w {<accID>.l <charactorID>.l <”¯Œ^>.w <”¯‚ÌF>.w <«•ÊH>.w <job>.w <lvl?>.w <ã”[ŒoŒ±’l>.l <online>.l <Position>.l <ƒƒ‚H>.50B <nick>.24B}*
- ƒMƒ‹ƒhƒƒ“ƒoƒŠƒXƒg
-S 0155 <len>.w {<accID>.l <charaID>.l <index>.l}.12B*
- –ðE•ÏX
-R 0156 <len>.w {<accID>.l <charaID>.l <index>.l}.12B*
- –ðE•ÏX’Ê’m
-S 0159 <guildID>.l <accID>.l <charID>.l <mess>.40B
- ƒMƒ‹ƒh’E‘Þ‘—M
-R 015A <nic>.24B <mess>.40B
- ƒMƒ‹ƒh’E‘Þ(‘Sˆõ)ŽóM
-S 015B <guildID>.l <accID>.l <charID>.l <mess>.40B
- ƒMƒ‹ƒh’Ç•ú‘—M
-R 015C <nick>.24B <mess>.40B <ƒAƒJƒEƒ“ƒg‚h‚c>.24B
- ƒMƒ‹ƒh’Ç•úi‘SˆõjŽóM
-S 015D <guild name>.24B <?>.16B
- ƒMƒ‹ƒh‰ðŽU
-R 015E <fail>.l
- ƒMƒ‹ƒh‰ðŽU³”Û’Ê’m
- 0x00F¬Œ÷
- 0x01FZ–¯“o˜^”Ô†•sˆê’v
-R 0160 <len>.w {<index>.l <mode>.l <index>.l <exp_mode>.l}.16B
- EˆÊî•ñ
-S 0161 <len>.w {<index>.l <mode>.l <index>.l <exp_mode>.l <nickname>.24B}.40B*
- EˆÊ•ÏX
-R 0162 <len>.w <skill_point>.w {<skill ID>.w <target type>.w ?.w <lv>.w <sp>.w <range>.w <skill name>.24B <up>.B}.37B*
- ƒMƒ‹ƒhƒXƒLƒ‹
-R 0163 <len>.w { <nick>.24B <ƒAƒJƒEƒ“ƒg‚h‚c>.24B <’Ç•ú——R>.40B }.88B*
- ƒMƒ‹ƒh’Ç•úƒŠƒXƒg
-S 0165 <myaccID>.l <guild name>.24B
- ƒMƒ‹ƒhì¬
-R 0166 <len>.w {<index>.l <name>.24B }.28B*
- EˆÊ–¼ƒŠƒXƒg
-R 0167 <type>.b
- ƒMƒ‹ƒh쬇”Û
- type = 0 ƒMƒ‹ƒh쬬Œ÷
- type = 1 ‚·‚łɃMƒ‹ƒh‚ÉŠ‘®‚µ‚Ä‚¢‚é
- type = 2 “¯–¼‚̃Mƒ‹ƒh‚ª‚ ‚é
- type = 3 ƒGƒ“ƒyƒŠƒEƒ€–³‚µ
-S 0168 <TargetAccID>.l <sourceAccID>.l <myCharactorID>.l
- ƒMƒ‹ƒhŠ©—U
-R 0169 <type>.B
- ƒMƒ‹ƒhŠ©—UŒ‹‰Ê
- type = 0 ‘¼‚̃Mƒ‹ƒh‚ɉÁ“ü‚µ‚Ä‚¢‚é
- type = 1 ‹‘”Û‚³‚ꂽ
- type = 2 ‰Á“ü‚µ‚½
- type = 3 ’èˆõ‚ð’´‰ß
-R 016A <guild ID>.l <guild name>.24B
- ƒMƒ‹ƒhŠ©—U‚³‚ꂽ
-S 016B <guild ID>.l <type>.l
- ƒMƒ‹ƒhŠ©—U•ÔM
- type=0 ‹‘”Û‚·‚é
- type=1 ‹–‘ø‚·‚é
-R 016c <guild ID>.l <emblem ID>.l <mode>.l ?.5B <guild name>.24B
- loginŽžƒMƒ‹ƒhî•ñ
- mode=Ž©•ª‚ÌŠ‘®EˆÊ‚Ìmode
-R 016d <ID>.l <charactor ID>.l <online>.l
- ƒMƒ‹ƒhƒƒ“ƒo‚ªlogin‚µ‚½”²‚¯‚½“™
-S 016E <guildID>.l <mess1>.60B <mess2>.120B
- ƒMƒ‹ƒh’mÝ’è
-R 016F <mess1>.60B <mess2>.120B
- ƒMƒ‹ƒh’m
-S 0170 <TargetAccID>.l <sourceAccID>.l <myCharactorID>.l
- “¯–¿—v¿Š©—U
-R 0171 <SorceAccID>.l <guild name>.24B
- “¯–¿—v¿Š©—U‚³‚ꂽ
-S 0172 <SorceAccID>.l <type>.l
- “¯–¿—v¿•ÔM
- type=0 ‹‘”Û‚·‚é
- type=1 ‹–‘ø‚·‚é
-R 0173 <type>.B
- type = 0 ‚·‚Å‚É“¯–¿ŠÖŒW
- type = 1 “¯–¿‹‘”Û‚³‚ꂽ
- type = 2 “¯–¿¬Œ÷
- type = 3 ‘ŠŽèƒMƒ‹ƒh‚Ì“¯–¿ƒMƒ‹ƒh”‚ª’´‰ß
- type = 4 Ž©•ª‚̃Mƒ‹ƒh‚Ì“¯–¿ƒMƒ‹ƒh”‚ª’´‰ß
-R 0174 <len>.w {<index>.l <mode>.l <index>.l <exp_mode>.l <nickname>.24B}.40B*
- EˆÊ•ÏX’Ê’m
-R 0177 <len>.w <index>.w*
- ŠÓ’è‰Â”\ƒAƒCƒeƒ€ƒŠƒXƒg
-S 0178 <index>.w
- ƒAƒCƒeƒ€ŠÓ’è
-R 0179 <index>.w <fail>.B
- ƒAƒCƒeƒ€ŠÓ’茋‰ÊBfail=00‚ŬŒ÷Bfail=01‚Á‚Ä‚ ‚é‚Ì‚©?
-S 017A <index>.w
- ƒJ[ƒh‚vƒNƒŠƒbƒN
-R 017B <len>.w {<index>.w}*
- ƒJ[ƒh‘}“ü‚Å‚«‚éƒAƒCƒeƒ€Index”Ô†
-S 017C <SrcIndex>.w <DescIndex>.w
- Src ‚ðDesc‚É“Ë‚Áž‚Þ
-R 017D <DescIndex>.w <SrcIndex>.w <fail>.b
- Src ‚ðDesc‚É“Ë‚Áž‚Ý<fail> 0=¬Œ÷ 1=Ž¸”sH
-S 017e <len>.w <message>.?B
- ƒMƒ‹ƒh“àƒƒbƒZ[ƒW”­Œ¾
-R 017f <len>.w <message>.?B
- ƒMƒ‹ƒh“àƒƒbƒZ[ƒWŽóM
-S 0180 <charactorID>.l
- ƒMƒ‹ƒh“G‘Î
-R 0181 <flag>.b
- ƒMƒ‹ƒh“G‘Ή”Û
- flag=0 “G‘άŒ÷
- flag=1 “G‘΃Mƒ‹ƒh”‚ª‘½‚·‚¬‚é
- flag=2 ‚·‚Å‚É“G‘Ί֌W
-R 0182 <accID>.l <charactorID>.l <”¯Œ^>.w <”¯‚ÌF>.w <«•ÊH>.w <job>.w <lvl?>.w <ã”[ŒoŒ±’l>.l <online>.l <Position>.l ?.50B <nick>.24B
-
-S 0183 <guild_id>.l <type>.l
- ƒMƒ‹ƒhŠÖŒW‰ðÁ
-R 0184 <guild_id>.l <type>.l
- ƒMƒ‹ƒhŠÖŒW‰ðÁ’Ê’m
-R 0185 <flag>.l <guild_id>.l <guild_name>.24B
- ƒMƒ‹ƒhŠÖŒW’ljÁ flag=0 “¯–¿/ 1 “G‘Î
-R 0187 <account ID>.l
- aliveM†?
-R 0188 <fail?>.w <index>.w <val>.w
- •Ší¸˜BBŒ‹‰Ê+val•Ší‚É
-R 0189 <fail?>.w
- “äBƒeƒŒƒ|(ƒ[ƒvƒ|[ƒ^ƒ‹memo)Ž¸”s?
- 1 memo‹ÖŽ~’nˆæ
-S 018a ?.w
- ƒQ[ƒ€I—¹
-R 018b <fail>.w
- ƒQ[ƒ€I—¹/ƒLƒƒƒ‰ƒZƒŒ‰ž“šBfail=0¬Œ÷Bfail=1Ž¸”s?
-R 018C <MonsID>.w <“™‹‰>.w <‘å¬>.w <¶–½’l>.w <?>.w <–hŒä—Í>.w <Ží‘°>.w <–‚–@–hŒä—Í>.w <‘®«>.w <–‚–@‘Š«‘®«>.9b
- wiz‚Ì“G‚̃Zƒ“ƒXŒ‹‰Ê
- 0 ¬Œ^
- 1 ’†Œ^
- 2 ‘åŒ^
-R 018d <length>.w { <ItemID>,w ?.w <CharID?>.l }.8B*
- »‘¢‰Â”\ƒAƒCƒeƒ€ƒŠƒXƒg•\Ž¦(?‚Ì•”•ª‚Í0012ŒÅ’è)
-S 018e <MakeItemID>.w <slot1ItemID>.w <slot2ItemID>,w <slot3.ItemID>.w
- »‘¢ƒAƒCƒeƒ€‚Ì‘I‘ð
-R 018f <flag>.w [00] <MakeItemID>.w
- »‘¢Œ‹‰Ê(flag = 00‚Ȃ笌÷ 01‚Ȃ玸”s)
-S 0190 <skill lv>.w <skill code>.w <x & y>.l <message>.80b
- ƒƒbƒZ[ƒW(ƒg[ƒL[ƒ{ƒbƒNƒXj
-R 0191 <ID>.l <message>.80B
- ƒg[ƒL[ƒ{ƒbƒNƒX‚̃ƒbƒZ[ƒW
-R 0192 <x & y>.l <type>.w <mapname>.16b
- ƒAƒCƒXƒEƒH[ƒ‹“™‚É‚æ‚é’nŒ`‘®«•Ï‰»
-S 0193 <ID>.l
- ƒMƒ‹ƒhƒƒ“ƒo–¼‘Oˆø‚«?
-R 0194 <ID>.l <nick>.24B
- ƒMƒ‹ƒhƒƒ“ƒo–¼‘Oˆø‚«‰ž“š?
-R 0195 <ID>.l <nick>.24B <party name>.24B <guild name>.24B <class name>.24B
- ƒMƒ‹ƒhŠ‘®PC‚ÌꇂÌ0094•Ô“š
-R 0196 <type>.w <ID>.l
- ‘‹­ŒnƒXƒLƒ‹Žg—pŽž‚̃ƒbƒZ[ƒWFXBID‚Ítarget‚ÆŽv‚í‚ê‚邪Ž©•ª‘ŠŽè‚Ì‚Ý‚µ‚©—ˆ‚È‚¢?
- type=00 2HQ•t—^uUŒ‚‘¬“x‚ª‘‰Á‚µ‚Ü‚µ‚½Bv
- type=01 2HQ‰ðœuUŒ‚‘¬“x‚ªŒ¸­‚µ‚Ü‚µ‚½Bv
- type=02 IMPOSITIO•t—^u•Ší‚ÌUŒ‚—Í‚ª‘‰Á‚µ‚Ü‚µ‚½Bv
- type=03 IMPOSITIO‰ðœu•Ší‚ÌUŒ‚—Í‚ªŒ¸­‚µ‚Ü‚µ‚½Bv
- type=04 uƒXƒLƒ‹Žg—pƒfƒBƒŒƒC‚ªŒ¸­‚µ‚Ü‚µ‚½Bv
- type=05 uƒXƒLƒ‹Žg—pƒfƒBƒŒƒC‚ªŒ³‚É–ß‚è‚Ü‚µ‚½Bv
- type=06 u•Ší‚É“Å‘®«‚ª•t—^‚³‚ê‚Ü‚µ‚½Bv
- type=07 ASPERSIO•t—^u•Ší‚ɹ‘®«‚ª•t—^‚³‚ê‚Ü‚µ‚½Bv
- type=08 ASPERSIO‰ðœu•Ší‚Ì‘®«‚ªŒ³‚É–ß‚è‚Ü‚µ‚½Bv
- type=09 u–h‹ï‚ɹ‘®«‚ª•t—^‚³‚ê‚Ü‚µ‚½Bv
- type=0a u–h‹ï‚Ì‘®«‚ªŒ³‚É–ß‚è‚Ü‚µ‚½Bv
- type=0b KYRIE•t—^uƒoƒŠƒAó‘Ô‚É‚È‚è‚Ü‚µ‚½Bv
- type=0c KYRIE‰ðœuƒoƒŠƒAó‘Ô‚ª‰ðœ‚³‚ê‚Ü‚µ‚½Bv
- type=0d uƒEƒFƒ|ƒ“ƒp[ƒtƒFƒNƒVƒ‡ƒ“ƒ‚[ƒh‚É‚È‚è‚Ü‚µ‚½Bv
- type=0e uƒEƒFƒ|ƒ“ƒp[ƒtƒFƒNƒVƒ‡ƒ“ƒ‚[ƒh‚ª‰ðœ‚³‚ê‚Ü‚µ‚½Bv
- type=0f uƒI[ƒo[ƒgƒ‰ƒXƒgƒ‚[ƒh‚É‚È‚è‚Ü‚µ‚½Bv
- type=10 uƒI[ƒo[ƒgƒ‰ƒXƒgƒ‚[ƒh‚ª‰ðœ‚³‚ê‚Ü‚µ‚½Bv
- type=11 uƒ}ƒLƒVƒ}ƒCƒYƒpƒ[ƒ‚[ƒh‚É‚È‚è‚Ü‚µ‚½Bv
- type=12 uƒ}ƒLƒVƒ}ƒCƒYƒpƒ[ƒ‚[ƒh‚ª‰ðœ‚³‚ê‚Ü‚µ‚½Bv
-R 0196 <type>.w <ID>.l <switch>.b iƒRƒ‚ƒhˆÈ~j
- switch=0‚ʼnðœ,1‚Å•t‰Á
- type=00 ƒvƒƒ{ƒbƒN
- type=01 ƒCƒ“ƒfƒ…ƒA
- type=02 uUŒ‚‘¬“x‚ª‘‰Á‚µ‚Ü‚µ‚½Bvi2HQj
- type=03 W’†—ÍŒüã
- type=04 ƒnƒCƒfƒBƒ“ƒO
- type=05 ƒNƒ[ƒLƒ“ƒO
- type=06 u•Ší‚É“Å‘®«‚ª•t—^‚³‚ê‚Ü‚µ‚½BviƒGƒ“ƒ`ƒƒƒ“ƒgƒ|ƒCƒYƒ“j
- type=07 u“ł𔽎˂ł«‚éó‘Ô‚É‚È‚è‚Ü‚µ‚½Bviƒ|ƒCƒYƒ“ƒŠƒAƒNƒgj
- type=08 uƒNƒ@ƒOƒ}ƒCƒAó‘Ô‚É‚È‚èAEEEv
- type=09 uƒGƒ“ƒWƒFƒ‰ƒXó‘Ô‚É‚È‚èAEEEv
- type=0a ƒuƒŒƒbƒVƒ“ƒO
- type=0b ƒVƒOƒiƒ€ƒNƒ‹ƒVƒX
- type=0c u‘¬‚³‚ª‘‰Á‚µ‚Ü‚µ‚½vi‘¬“x‘‰Áj
- type=0d u‘¬‚³‚ªŒ¸­‚µ‚Ü‚µ‚½vi‘¬“xŒ¸­j
- type=0e uƒXƒ[ƒ|ƒCƒYƒ“ó‘Ô‚É‚È‚è‚Ü‚µ‚½viƒXƒ[ƒ|ƒCƒYƒ“j
- type=0f u•Ší‚ÌUŒ‚—Í‚ª‘‰Á‚µ‚Ü‚µ‚½viƒCƒ“ƒ|ƒVƒeƒBƒIƒ}ƒkƒXj
- type=10 uƒXƒLƒ‹Žg—pƒfƒBƒŒƒC‚ªŒ¸­‚µ‚Ü‚µ‚½viƒTƒtƒ‰ƒMƒEƒ€j
- type=11 u•Ší‚ɹ‘®«‚ª•t—^‚³‚ê‚Ü‚µ‚½viƒAƒXƒyƒ‹ƒVƒIj
- type=12 u–h‹ï‚ɹ‘®«‚ª•t—^‚³‚ê‚Ü‚µ‚½vi¹‘Ì~—Õj
- type=13 uƒoƒŠƒAó‘Ô‚É‚È‚è‚Ü‚µ‚½viƒLƒŠƒGƒGƒŒƒCƒ\ƒ“j
- type=14 uƒ}ƒOƒjƒtƒBƒJ[ƒgó‘Ô‚É‚È‚è‚Ü‚µ‚½v
- type=15 uƒOƒƒŠƒAó‘Ô‚É‚È‚è‚Ü‚µ‚½v
- type=16 uƒŒƒbƒNƒXƒG[ƒeƒ‹ƒió‘Ô‚É‚È‚è‚Ü‚µ‚½v
- type=17 uƒAƒhƒŒƒiƒŠƒ“ƒ‰ƒbƒVƒ…ó‘Ô‚É‚È‚è‚Ü‚µ‚½v
- type=18 uƒEƒFƒ|ƒ“ƒp[ƒtƒFƒNƒVƒ‡ƒ“ƒ‚[ƒh‚É‚È‚è‚Ü‚µ‚½v
- type=19 uƒI[ƒo[ƒgƒ‰ƒXƒgƒ‚[ƒh‚É‚È‚è‚Ü‚µ‚½v
- type=1a uƒ}ƒLƒVƒ}ƒCƒYƒpƒ[ƒ‚[ƒh‚É‚È‚è‚Ü‚µ‚½v
- type=1b ƒyƒRƒyƒR‹Ræ
- type=1c ‘é
- type=1d Ž€‚ñ‚¾‚Ó‚è
- type=1e u‹©‚Ñ‚Ü‚µ‚½viƒ‰ƒEƒhƒ{ƒCƒXj
- type=1f uƒGƒiƒW[ƒR[ƒgó‘Ô‚É‚È‚è‚Ü‚µ‚½v
- type=20 u–h‹ï‚ª‰ó‚ê‚Ü‚µ‚½v
- type=21 u•Ší‚ª‰ó‚ê‚Ü‚µ‚½v
- type=22 “äi–ڂ̃Aƒbƒv‚Æ‚¢‚¤ƒAƒCƒRƒ“F–Ó–ÚHHj
- type=23 d—Ê50“’´‚¦
- type=24 d—Ê90“’´‚¦
- type=25 “äuUŒ‚‘¬“x‚ª‘‰Á‚µ‚Ü‚µ‚½vi‚˜‚QƒAƒCƒRƒ“F‘¬“xŒnƒ|[ƒVƒ‡ƒ“Hj
- type=26 “äuUŒ‚‘¬“x‚ª‘‰Á‚µ‚Ü‚µ‚½vi‚˜‚QƒAƒCƒRƒ“F‘¬“xŒnƒ|[ƒVƒ‡ƒ“Hj
- type=27 “äuUŒ‚‘¬“x‚ª‘‰Á‚µ‚Ü‚µ‚½vi‚˜‚QƒAƒCƒRƒ“F‘¬“xŒnƒ|[ƒVƒ‡ƒ“Hj
- type=28 (–¢Žg—p‚Á‚Û‚¢HF•s‰Â‚Ɖðœ‚ÅŒø‰Ê‚ªˆá‚¤)
- type=29 “äu‘¬‚³‚ª‘‰Á‚µ‚Ü‚µ‚½vi”’‚¢ƒAƒCƒRƒ“j
- type=32 ƒXƒgƒŠƒbƒvƒEƒGƒ|ƒ“
- type=33 ƒXƒgƒŠƒbƒvƒV[ƒ‹ƒh
- type=34 ƒXƒgƒŠƒbƒvƒA[ƒ}[
- type=35 ƒXƒgƒŠƒbƒvƒwƒ‹ƒ€
- type=36 ƒPƒ~ƒJƒ‹ƒEƒFƒ|ƒ“ƒ`ƒƒ[ƒW
- type=37 ƒPƒ~ƒJƒ‹ƒV[ƒ‹ƒhƒ`ƒƒ[ƒW
- type=38 ƒPƒ~ƒJƒ‹ƒA[ƒ}[ƒ`ƒƒ[ƒW
- type=39 ƒPƒ~ƒJƒ‹ƒwƒ‹ƒ€ƒ`ƒƒ[ƒW
- type=3a ƒI[ƒgƒK[ƒh
- type=3b ƒŠƒtƒŒƒNƒgƒV[ƒ‹ƒh
- type=3d ƒvƒƒ”ƒBƒfƒ“ƒX
- type=3e ƒfƒBƒtƒFƒ“ƒ_[
- type=41 ƒI[ƒgƒXƒyƒ‹
- type=44 ƒXƒsƒAƒNƒBƒbƒPƒ“
- type=56 ”š—ô”g“®(ƒAƒCƒRƒ“‚Í•\Ž¦‚³‚ê‚Ü‚¹‚ñB)
- type=57 ‹à„(•\Ž¦‚Í‚³‚ê‚È‚¢‚ª‹à„‚̉ðœ‚Í‚³‚ê‚é‚悤‚Å‚·B)
- type=59 ƒRƒ“ƒ{ƒfƒBƒŒƒC
- type=5a ƒtƒŒƒCƒ€ƒ‰ƒ“ƒ`ƒƒ[
- type=5b ƒtƒƒXƒgƒEƒFƒ|ƒ“
- type=5c ƒ‰ƒCƒgƒjƒ“ƒOƒ[ƒ_[
- type=5d ƒTƒCƒYƒ~ƒbƒNƒEƒFƒ|ƒ“
-
-S 0197 <type>.w
- type=0 /resetstate
- type=1 /resetskill
- Œø”\‚Í–³‚µ?
-R 0199 <type>.w
- type=1 pvpƒ‚[ƒhŠJŽn?
- type=3 gvgƒ‚[ƒhŠJŽn?
-R 019a <ID>.l <rank>.l <num>.l
- pvp‡ˆÊ rank/num
-R 019b <ID>.l <type>.l
- ‘¼l‚Ìlvup‚â•Ší¸˜B“™‚Ì•\Ž¦?
- type=0 base lvup?
- type=1 job lvup?
- type=2 •Ší¸˜BŽ¸”s
- type=3 •Ší¸˜B¬Œ÷
-
-R 019d <?>.4B
- GMƒRƒ}ƒ“ƒh/hide
-
-S 0149 <ID>.l <type>.B <time>.w
- GM—p‰EƒNƒŠƒbƒNƒƒjƒ…[uƒ`ƒƒƒbƒg‹ÖŽ~ŽžŠÔ‚ð‰º‚°‚éi‰ð‚¯‚éjvŽg—p ¨ type=00
- GM—p‰EƒNƒŠƒbƒNƒƒjƒ…[uƒ`ƒƒƒbƒg‹ÖŽ~ŽžŠÔ‚ðã‚°‚éiŠ|‚¯‚éjvŽg—p ¨ type=01
- time‚Í•ª’PˆÊ‚Å‚·iŠm‚©
-
-R 019e
- •ßŠlƒ‚ƒ“ƒXƒ^[Œˆ‚ß
-S 019f <ID>.l
- •ßŠlƒ‚ƒ“ƒXƒ^[Žw’è
-R 01a0 <fail>.B
- •ßŠl”»’è
- fail=01‚ŬŒ÷A00‚ÅŽ¸”s
-S 01a1 <param>.1B
- <param>
- 0x00Fƒyƒbƒgó‘Ô•\Ž¦
- 0x01F‰a‚ð—^‚¦‚é
- 0x02FƒpƒtƒH[ƒ}ƒ“ƒX
- 0x03F—‘‚É–ß‚·
- 0x04FƒAƒNƒZƒTƒŠ‰ðœ
-R 01a2 <pet name>.24B <name flag>.B <lv>.w <hungry>.w <friendly>.w <accessory>.w
- ƒyƒbƒg‚Ìó‘Ô
- name flag:00=–¼‘O–¢Ý’è 01=–¼‘OÝ’èÏ‚Ý(•ÏX•s‰Â)
- lv=ƒyƒbƒg‚̃Œƒxƒ‹Ahungry=–ž• “x(0~100)Afriendly=e–§“x(‰Šú’l250?)Aaccessory=ƒAƒNƒZƒTƒŠ‚ÌItemID
-R 01a3 <fail>.B <itemID>.w
- <fail>
- 0x00F‰a‚â‚莸”s
- 0x01F‰a‚â‚謌÷
-R 01a4 <type>.B <ID>.l <val>.l
- ƒyƒbƒgŠÖ˜A’Ê’m
- type=00,val=00 ƒyƒbƒg›z‰»Žž‚É‘—‚ç‚ê‚Ä‚­‚éBƒyƒbƒg”FŽ¯—pH
- type=01 e–§“x•Ï‰»
- type=02 –ž• “x•Ï‰»
- type=03 ƒAƒNƒZƒTƒŠ•Ï‰»(0‚Å–¢‘•”õ)
- type=04 ƒpƒtƒH[ƒ}ƒ“ƒX Šm”F‚³‚ꂽval=1~3
- (4‚̓XƒyƒVƒƒƒ‹ƒpƒtƒH[ƒ}ƒ“ƒXH)
- type=05 HŠm”F‚³‚ꂽval=0x14
-S 01a5 <pet name>.24B
- ƒyƒbƒg‚Ì–¼‘OŒˆ‚ß
-R 01a6 <len>.w <index>.w*
- ƒyƒbƒg‚Ì—‘ƒŠƒXƒg
-S 01a7 <index>.w
- ƒyƒbƒg‚Ì—‘ƒŠƒXƒg‚ª‘I‘ð‚³‚ê‚½
-S 01a9 <emotion>.l
- ƒyƒbƒgƒGƒ‚[ƒVƒ‡ƒ“‘—M
-R 01aa <ID>.l <emotion>.l
- ƒyƒbƒgƒGƒ‚[ƒVƒ‡ƒ“ŽóM
- <emotion>
- 33ˆÈ‰º‚Ì‚Æ‚«FƒGƒ‚[ƒVƒ‡ƒ“
- 34ˆÈã‚Ì‚Æ‚«F”­Œ¾ƒe[ƒuƒ‹H
-R 01ac <object id>.l
- ƒAƒ“ƒNƒ‹‚Ì”­“®(‚Ý’u)Žž‚Ì‚Ý–ˆ‰ñoŒ»(‹@”\‚Í“ä)
-R 01ad <len>.l <item>.w
- –îì‚è‚Ì쬉”\ITEM•\ŽóM
-S 01ae <itemID>.w
- –îì‚è‚ÅŽg‚¤Þ—¿‘—M
-S 01af <type>.w
- ƒ`ƒFƒ“ƒWƒJ[ƒgiƒJ[ƒg‘I‘ðj
- type=1 ƒm[ƒ}ƒ‹ƒJ[ƒg
-R 01b0 <monster id>.l <?>.b <new monster code>.l
- –û‚̃Nƒ‰ƒXƒ`ƒFƒ“ƒW
- <new monster code>‚̓`ƒFƒ“ƒWŒã‚̃R[ƒh(1001`)‚ðdword‚Å
-S 01b2 <len>.w <message>.80B <flag>.B {<index>.w <amount>.w <value>.l}.8B*
- ˜I“XŠJÝ
- flag F 0=ƒLƒƒƒ“ƒZƒ‹ , 1=ƒI[ƒvƒ“
-R 01b3 <filename>.64B <type>.B
- R 0145‚ÌãˆÊŒÝŠ·
-R 01B6 <guildID>.l <guildLv>.l <connum>.l <’èˆõ>.l <Avl.lvl>.l <now_exp>.l <next_exp>.l <ã”[ƒ|ƒCƒ“ƒg>.l <«ŒüF-V>.l <«ŒüR-W>.l <members>.l <guild name>.24B <guild master>.24B <agit?>.20B
- ƒMƒ‹ƒhî•ñ
-R 01b9 <ID>.I
- ”íƒ_ƒ“™‚É‚æ‚éID‚̉r¥’†’f
-R 01c4 <index>.w <amount>.l <itemID>.w <item data>.12B
- ƒJƒvƒ‰‘qŒÉƒAƒCƒeƒ€
-R 01c8 <index>.w <item ID>.w <ID>.l <amount left>.w <type>.B
- ƒAƒCƒeƒ€Žg—p‰ž“šB(00a8‚ÌãˆÊƒo[ƒVƒ‡ƒ“H)
- type=00‚Ìꇎg—pŽ¸”s? amount‚àƒSƒ~‚Ì–Í—l
- type=01‚ÌꇬŒ÷‚ÅAamount‚ÍŽg—pŒã‚ÌŽc‚èŒÂ”
-R 01c9 <dst ID>.l <src ID>.l <X>.w <Y>.w <type>.B <fail>.B ?.81b
- ƒXƒLƒ‹Œø”\’nì¬(011f‚ÌãˆÊƒo[ƒVƒ‡ƒ“H)
- type 0x7e:SWA0x7f:‰Î•ÇA0x80 ƒ|ƒ^ŠJ‚«’†A0x81 ƒ|ƒ^ŠJ‚«’¼‘O
- 0x82 ¹‘ÌA0x83 ƒTƒ“ƒNA0x84 ƒ}ƒOƒkƒXA0x85 ƒjƒ…[ƒ}
- 0x86 0x86 ‘å–‚–@(SG/MS/LoV/GX)A0x87 ƒtƒ@ƒCƒ„[ƒsƒ‰‘Ò‹@
- 0x88 ƒtƒ@ƒCƒ„[ƒsƒ‰”š”­A0x87`0x8B •\Ž¦–³‚µA
- 0x8c ƒg[ƒL[ƒ{ƒbƒNƒX(”­“®’†)A0x8D ƒAƒCƒXƒEƒH[ƒ‹
- 0x8E ƒNƒƒOƒ}ƒCƒAA0x8f ƒuƒ‰ƒXƒgƒ}ƒCƒ“A0x90 ƒXƒLƒbƒh
- 0x91 ƒAƒ“ƒNƒ‹A0x92 ƒxƒmƒ€ƒ_ƒXƒgA0x93 ƒ‰ƒ“ƒhƒ}ƒCƒ“
- 0x94 ƒVƒ‡ƒbƒNƒEƒF[ƒuƒgƒ‰ƒbƒvA0x95 ƒTƒ“ƒhƒ}ƒ“
- 0x96 ƒtƒ‰ƒbƒVƒƒ[A0x97 ƒtƒŠ[ƒWƒ“ƒOƒgƒ‰ƒbƒv
- 0x98 ƒNƒŒƒCƒ‚ƒA[ƒgƒ‰ƒbƒvA0x99 ƒg[ƒL[ƒ{ƒbƒNƒX
- 0x9A ƒ{ƒ‹ƒP[ƒmA0x9B ƒfƒŠƒ…[ƒWA0x9C ƒoƒCƒIƒŒƒ“ƒgƒQƒCƒ‹
- 0x9D ƒ‰ƒ“ƒhƒvƒƒeƒNƒ^[A0x9E Zenyƒ}[ƒNA0x9F Zeny‘Ü
- 0xA0 ‰ñ‚é—΂̗ÖA0xA1 ƒsƒ“ƒN‚̉¹•„ (“ñ˜A•„—L‚è
- 0xA2 ^‚ñ’†‚É“_‚Ì‚ ‚éŒõ‚Ì‹ÊA0xA3 ƒsƒ“ƒN‚̃XƒvƒŠƒ“ƒO
- 0xA4 [•£‚Ì’†‚ÉA0xA5 ‰ñ‚é‚¢—ÖA0xA6 •s‹¦˜a‰¹
- 0xA7 Œû“JA0xA8 —[—z‚̃AƒTƒVƒ“ƒNƒƒXA0xA9 ƒuƒ‰ƒM‚ÌŽ
- 0xAA ƒCƒhƒDƒ“‚Ì—ÑŒçA0xAB Ž©•ªŸŽè‚ȃ_ƒ“ƒXA0xAC ƒnƒ~ƒ“ƒO
- 0xAD Ž„‚ð–Y‚ê‚È‚¢‚ÅcA0xAE ƒT[ƒrƒXƒtƒH[ƒ†[
- 0xAF ƒsƒ“ƒN‚̃XƒvƒŠƒ“ƒOA0xB0 •\Ž¦–³‚µ
- 0xB0 ƒOƒ‰ƒtƒBƒeƒB,
- 0xB1 ƒfƒ‚ƒ“ƒXƒgƒŒ[ƒVƒ‡ƒ“A0xB2`0xBF •\Ž¦–³‚µ
- 0xB2 ƒsƒ“ƒN‚̃[ƒvƒ|[ƒ^ƒ‹•—
- 0xB3 ¬‚³‚È\Žš‰Ë‚ª‚Ó‚æ‚Ó‚æ
- 0xB4 ƒoƒWƒŠƒJA0xB5 ƒGƒtƒFƒNƒg‚È‚µH
- 0xB6 •‚¢~‚ª—§‘Ì“I‚É•‚‚©‚Ñオ‚é
- 0xB7 ƒNƒ‚‚Ì‘ƒA0xB8` ƒGƒtƒFƒNƒg‚È‚µH
-
- ‘¼î•ñ‹‚Þ
- ?.81b‚Í“äB
-R 01cd (<sid>.l)x7
- ƒI[ƒgƒXƒyƒ‹‘I‘ðŽˆŽóM
- <sid>x7 ‚É‚Í NB,CB,FB,LB,SS,FBL,FD ‚̇‚ŃXƒLƒ‹ƒR[ƒh‚ªdword‚Å“ü‚é
- ‚Ü‚¾‘I‘ð‚Å‚«‚È‚¢ƒXƒLƒ‹‚Ì•”•ª‚Í <sid> = 0x00000000 ‚ª“ü‚é
-S 01ce <sid>.l
- ƒI[ƒgƒXƒyƒ‹‘I‘ðŽˆ‘—M
-R 01cf <crusader id>.l <target id>.l <?>.18b
- Œ£gó‘Ôƒ^[ƒQƒbƒgON/OFFBŒ£g‚ªØ‚ê‚é‚Æ <target id> ‚ª 0x00000000 ‚É‚È‚é
-
-R 01d0 <ID>.l <num>.w
- <num> : ‹CŒ÷‚Ì”(”ñLv)
-R 01d1 <monk id>.l <target monster id>.l <bool>.l
- ”’‰HŽæ‚èó‘ÔON/OFFB<bool> ‚Í”’nŽæ‚謗§Žž‚É 0x00000001 ‰ðœŽž‚É 0x00000000 ‚ª—ˆ‚é
-R 01d2 <id>.l <delay>.l
- ƒ‚ƒ“ƒN‚̃Rƒ“ƒ{ƒfƒBƒŒƒC(msec)
- ŽO’iE˜A‘Å‚ÍŠî–{ƒfƒBƒŒƒC1000(+300)A–Ò—´‚ÍŠî–{ƒfƒBƒŒƒC700(+300)
-R 01d4 <ID>.l
- •¶Žš—ñ“ü—Í‘‹•\Ž¦(ID‚ÍNPC‚ÌID‚ª“ü‚é)
-S 01d5 <len>.w <ID>.l <input>.?B 00
- •¶Žš—ñ“ü—Í“à—e‘—M(ID‚ÍNPC‚ÌID‚ª“ü‚é)
-R 01d7 <ID>.l <equip point>.b <item id1>.w <item id2>.w
- ‘•”õƒOƒ‰ƒtƒBƒbƒN <equip point> ‚Í 02Žè‚Æ09‘«‚Ì‚ÝŠm”FBid2‚ͶŽè
-R 01d8 <ID>.l <speed>.w <opt1>.w <opt2>.w <option>.w <class>.w <hair>.w <item id1>.w <item id2>.w <head option bottom>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.l <emblem>.l <manner>.w <karma>.B <sex>.B <X_Y_dir>.3B ?.B ?.B <sit>.B <Lv>.B ?.B
- ƒ}ƒbƒvƒ[ƒhŽž&ˆÚ“®Žž—pAŒü‚«•t‚«—pƒLƒƒƒ‰î•ñ?(0078‚ÌãˆÊƒo[ƒWƒ‡ƒ“)
-R 01d9 <ID>.l <speed>.w <opt1>.w <opt2>.w <option>.w <class>.w <hair>.w <item id1>.w <item id2>.w.<head option bottom>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.l <emblem>.l <manner>.w <karma>.B <sex>.B <X_Y_dir>.3B ?.B ?.B <Lv>.B ?.B
- ƒeƒŒƒ|“™‚Ì•\Ž¦”ÍˆÍ“à•¦‚«ƒLƒƒƒ‰—pAŒü‚«•t‚«–³‚µƒLƒƒƒ‰î•ñ?(0079‚ÌãˆÊƒo[ƒWƒ‡ƒ“)
-R 01da <ID>.l <speed>.w <opt1>.w <opt2>.w <option>.w <class>.w <hair>.<item id1>.w <item id2>.w <head option bottom>.w <server tick>.l <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.l <emblem>.l <manner>.w <karma>.B <sex>.B <X_Y_X_Y>.5B ?.B ?.B ?.B <Lv>.B ?.B
- •\Ž¦”͈͓àƒLƒƒƒ‰ˆÚ“®î•ñ(007b‚ÌãˆÊƒo[ƒWƒ‡ƒ“)
-S 01db
- ˆÃ†‰»key—v‹
-R 01dc <len>.w <key>.?B
- ˆÃ†‰»key‘—•t
-S 01dd <version>.l <account name>.24B <md5 binary>.16B <version2>.1B
- id&ˆÃ†‰»Ï‚Ýpass‘—M
- ‡‚ɃNƒ‰ƒCƒAƒ“ƒg‚ª01db‚ð‘—‚éA
- ŽI‚ª01dc‚Åkey‚ð•Ô‚·A
- ƒNƒ‰ƒCƒAƒ“ƒg‚ª"<key><password>"‚ɂ‚¢‚Ämd5ŒvŽZ‚µ
- <md5 binary>‚ÌŠ‚ð–„‚ß‚Ä01dd‚ð‘—‚éB
- <passwordencrypt2>‚ÌŽž‚Í
- "<key><password>"‚ɑ΂µ‚Ämd5ŒvŽZ‚Æ‚µ‚Ä‚¢‚銂ð
- "<password><key>"‚Æ•ÏX‚·‚é
-R 01de <skill ID>.w <src ID>.l <dst ID>.l <server tick>.l <src speed>.l <dst speed>.l <param1>.l <param2>.w <param3>.w <type>.B
- UŒ‚ŒnƒXƒLƒ‹ƒGƒtƒFƒNƒg@(0114‚ÌãˆÊƒo[ƒVƒ‡ƒ“H)
- type=04 ‰Î•Ç‚ÅŠÏ‘ª type=06‚Æ‚Ù‚Ú“¯‚¶?
- type=05 NB/FBl‚Ì•ªŽU‚µ‚½ƒ_ƒ[ƒW—pH
- type=06 ’P”­‚à‚Ì? param1‚̓_ƒ[ƒW‡ŒvAparam2‚ÍlevelAparam3‚Í1ŒÅ’è‚Æ—\‘z
- type=07 ƒ_ƒ[ƒW•\Ž¦–³‚µH
- type=08 ˜A‘Å‚à‚Ì? param1‚̓_ƒ[ƒW‡ŒvAparam2‚ÍlevelAparam3‚Í•ªŠ„”‚Æ—\‘z
- type=09 ƒ_ƒ[ƒWƒ‚[ƒVƒ‡ƒ“‚È‚µ‚Ƀ_ƒ[ƒW‚¾‚¯•\Ž¦‚³‚ê‚镨(ƒCƒ“ƒfƒ…ƒA)‚ÆŽv‚Á‚½‚Ì‚¾‚ªƒ_ƒ[ƒWƒ‚[ƒVƒ‡ƒ“‚ªo‚镨B(‹@”\‚Í“ä)
-S 01df <ID>.|
- GM‰EƒNƒŠƒbƒN‚É‚æ‚éID‚̃`ƒƒƒbƒg‹ÖŽ~‰ñ”ŽQÆH
-R 01e1 <ID>.l <num>.w
- <num> : ‹CŒ÷‚Ì”(”ñLv) ˆê“x•\Ž¦‚µ‚½‚çŒã‚Ç‚ñ‚Ènum‚ª—ˆ‚Ä‚à–³Ž‹‚³‚ê‚éB
-R 01e6 <partner name>.24B
- Œ‹¥ƒXƒLƒ‹‚ ‚È‚½‚Ɉ§‚¢‚½‚¢Žg—pŽž‚Ì‹©‚Ѻ
-S 01e7
- ƒXƒpƒmƒr‚Å/doridori‚µ‚½‚ç”ò‚ñ‚Å‚­‚éBSPR‰ñ•œ—Ê2”{ƒtƒ‰ƒO‚𗧂ĂéƒpƒPƒbƒg
-S 01e8 <party name>.24B <item1>B <item2>B
- <item1>ƒAƒCƒeƒ€ŽûW•û–@B0‚ÅŒÂl•ÊA1‚Ńp[ƒeƒBŒö—L
- <item2>ƒAƒCƒeƒ€•ª”z•û–@B0‚ÅŒÂl•ÊA1‚Ńp[ƒeƒB‚É‹Ï“™•ª”z
- (00f9‚ÌãˆÊƒo[ƒVƒ‡ƒ“)
-R 01ea <ID>.l
- Œ‹¥ƒGƒtƒFƒNƒg(‰¹ŠyAŽ†á)
- ID‚ÍV•w‚Ì‚à‚Ì‚ª“ü‚éH
-S 01ed
- ƒXƒpƒmƒr‚ª”š—ô”g“®‚É‚È‚éƒtƒ‰ƒO‚𗧂ĂéƒpƒPƒbƒg
-R 01ee <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B <card>.4w}.18B*
- Š—LÁ–Õ•i&ŽûW•iƒŠƒXƒg
- –î‚ÌꇂÍ?.2B‚ª0x8000‚É‚È‚é
- 00a3‚©‚ç•ÏX
-R 01ef <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B <card>.4w}.18B*
- ƒJ[ƒg“àƒAƒCƒeƒ€BÁ–Õ•i/ŽûW•i
- 0123‚©‚ç•ÏX
-R 01f0 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B <card>.4w}.18B*
- ƒJƒvƒ‰‚³‚ñ‚É—a‚¯‚Ä‚ ‚éÁ–Õ•i&ŽûW•iƒŠƒXƒg
- 00a5‚©‚ç•ÏX
-R 01f4 <name>.24B <trade id?>.L <LV>.w
- æ•û‚©‚çŽæˆø—v¿
- 00e5‚©‚ç•ÏX
-R 01f5 <result>.B <trade id?>.L <LV>.w
- ‚±‚¿‚ç‚©‚ç‚ÌŽæˆø—v¿‚ɑ΂·‚锽‰ž
- 00e7‚©‚ç•ÏX
-S 0200 <login name>.24B
- ragexe‚É/accountƒIƒvƒVƒ‡ƒ“‚ð‚‚¯‚Ä‹N“®‚·‚é‚ƃƒOƒCƒ“—v‹‚É•t‰Á‚³‚ê‚éƒpƒPƒbƒg
-S 0204 <?>.16B
- ƒƒOƒCƒ“—v‹‚É•t‰Á‚³‚ê‚éƒpƒPƒbƒgB16ƒoƒCƒg‚͌ŒèH
-S 020B <?>.17B
- ƒLƒƒƒ‰ƒNƒ^ƒT[ƒoÚ‘±—v‹0065‚É•t‰Á‚³‚ê‚éƒpƒPƒbƒgB1+0204‚Ì16ƒoƒCƒg‚Å17ƒoƒCƒgH
+Client Version in date format (Client Version in 4 digit format):
+2004 06 28a (0628a)
+2004 10 25 (1025)
+2004 11 01 (1101)
+2004 12 13 (1213)
+2005 01 10 (0110)
+2005 03 15 (0315)
+2005 03 21 (0321)
+2005 04 04 (0404)
+2005 04 06 (0406)*
+2005 04 11a (0411a)
+2005 04 25a (0425a)
+2005 05 31b (0531b)
+2005 06 14 (0614)
+2005 06 28a (0628a)
+2005 08 08 (0808)
+
+ 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+#0x0040
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 55, 17, 3, 37, 46, -1, 23, -1, 3,108, 3, 2,
+ 3, 28, 19, 11, 3, -1, 9, 5, 54, 53, 58, 60, 41, 2, 6, 6,
+#0x0080
+ 7, 3, 2, 2, 2, 5, 16, 12, 10, 7, 29, 23, -1, -1, -1, 0,
+ 7, 22, 28, 2, 6, 30, -1, -1, 3, -1, -1, 5, 9, 17, 17, 6,
+ 23, 6, 6, -1, -1, -1, -1, 8, 7, 6, 7, 4, 7, 0, -1, 6,
+ 8, 8, 3, 3, -1, 6, 6, -1, 7, 6, 2, 5, 6, 44, 5, 3,
+#0x00C0
+ 7, 2, 6, 8, 6, 7, -1, -1, -1, -1, 3, 3, 6, 6, 2, 27,
+ 3, 4, 4, 2, -1, -1, 3, -1, 6, 14, 3, -1, 28, 29, -1, -1,
+ 30, 30, 26, 2, 6, 26, 3, 3, 8, 19, 5, 2, 3, 2, 2, 2,
+ 3, 2, 6, 8, 21, 8, 8, 2, 2, 26, 3, -1, 6, 27, 30, 10,
+#0x0100
+ 2, 6, 6, 30, 79, 31, 10, 10, -1, -1, 4, 6, 6, 2, 11, -1,
+ 10, 39, 4, 10, 31, 35, 10, 18, 2, 13, 15, 20, 68, 2, 3, 16,
+ 6, 14, -1, -1, 21, 8, 8, 8, 8, 8, 2, 2, 3, 4, 2, -1,
+ 6, 86, 6, -1, -1, 7, -1, 6, 3, 16, 4, 4, 4, 6, 24, 26,
+#0x0140
+ 22, 14, 6, 10, 23, 19, 6, 39, 8, 9, 6, 27, -1, 2, 6, 6,
+ 110, 6, -1, -1, -1, -1, -1, 6, -1, 54, 66, 54, 90, 42, 6, 42,
+ -1, -1, -1, -1, -1, 30, -1, 3, 14, 3, 30, 10, 43, 14,186,182,
+ 14, 30, 10, 3, -1, 6,106, -1, 4, 5, 4, -1, 6, 7, -1, -1,
+#0x0180
+ 6, 3,106, 10, 10, 34, 0, 6, 8, 4, 4, 4, 29, -1, 10, 6,
+ 90, 86, 24, 6, 30,102, 9, 4, 8, 4, 14, 10, 4, 6, 2, 6,
+ 3, 3, 35, 5, 11, 26, -1, 4, 4, 6, 10, 12, 6, -1, 4, 4,
+ 11, 7, -1, 67, 12, 18,114, 6, 3, 6, 26, 26, 26, 26, 2, 3,
+#0x01C0
+ 2, 14, 10, -1, 22, 22, 4, 2, 13, 97, 0, 9, 9, 29, 6, 28,
+ 8, 14, 10, 35, 6, 8, 4, 11, 54, 53, 60, 2, -1, 47, 33, 6,
+ 30, 8, 34, 14, 2, 6, 26, 2, 28, 81, 6, 10, 26, 2, -1, -1,
+ -1, -1, 20, 10, 32, 9, 34, 14, 2, 6, 48, 56, -1, 4, 5, 10,
+#0x200
+ 26, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 19,
+
+S ƒNƒ‰ƒCƒAƒ“ƒg‚©‚猩‚Ä‘—M
+R ƒNƒ‰ƒCƒAƒ“ƒg‚©‚猩‚ÄŽóM
+
+B ƒoƒCƒg
+w ƒ[ƒh=2B
+l ƒƒ“ƒOƒ[ƒh=4B
+* 0ŒÂˆÈã‚­‚è‚©‚¦‚µ
+
+S 0064 <version>.l <account name>.24B <password>.24B <version2>.B
+ ƒAƒJƒEƒ“ƒgID&ƒpƒXƒ[ƒh‘—M
+S 0065 <account ID>.l <login ID1>.l <login ID2>.l ?.2B <sex>.B
+ ƒLƒƒƒ‰ƒZƒŒŽIÚ‘±—v‹
+S 0066 <charactor number>.B
+ ƒLƒƒƒ‰ƒNƒ^‘I‘ð—v‹
+S 0067 <charactor name>.24B <param etc>.11B
+ ƒLƒƒƒ‰ƒNƒ^쬗v‹
+S 0068 <charactor ID>.l <mail address>.40B
+ ƒLƒƒƒ‰ƒNƒ^휗v‹
+R 0069 <len>.w <login ID1>.l <account ID>.l <login ID2>.l ?.32B <sex>.B {<IP>.l <port>.w <server name>.20B <login users>.w <maintenance>.w <new>.w}.32B*
+ login¬Œ÷&ŽIî•ñ
+R 006a <error No>.B
+ loginŽ¸”s ‚»‚Ì‚P
+ err No=00 –¢“o˜^‚ÌID‚Å‚·
+ err No=01 ƒpƒXƒ[ƒh‚ªˆá‚¢‚Ü‚·
+ err No=02 Žg—pŠúŠÔ‚ªI—¹‚µ‚Ä‚¢‚Ü‚·
+ err No=03 ƒT[ƒo[‚©‚çÚ‘±‹‘”Û‚³‚ê‚Ü‚µ‚½
+ err No=04 ‰ð–ñ‚³‚ꂽIDA‚Ü‚½‚̓AƒJƒEƒ“ƒgƒuƒƒbƒN‚³‚ê‚Ä‚¢‚éID‚Å‚·
+ err No=05 ÅV‚̃pƒbƒ`‚Å‚Í‚ ‚è‚Ü‚¹‚ñ
+ err No=06 ‰ð–ñ‚³‚ꂽIDA‚Ü‚½‚̓AƒJƒEƒ“ƒgƒuƒƒbƒN‚³‚ê‚Ä‚¢‚éID‚Å‚·
+ err No=07 ƒT[ƒo[‚ª¬ŽG‚µ‚Ä‚¢‚Ü‚·
+R 006b <len>.w <charactor select data>.106B*
+ ƒLƒƒƒ‰ƒZƒŒŽIÚ‘±¬Œ÷&ƒLƒƒƒ‰ƒNƒ^ƒf[ƒ^
+ <charactor select data> = <charactor ID>.l <base exp>.l <zeny>.l <job exp>.l <job level>.l ?.8B <option>.l <karma>.l <manner>.l ?.2B <HP>.w <MaxHP>.w <SP>.w <MaxSP>.w <speed>.w <class>.w <hair>.w <weapon>.2w <base level>.w <skill point>.w <head_bottom>.w <sheild>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <name>.24B <STR>.B <AGI>.B <VIT>.B <INT>.B <DEX>.B <LUK>.B <charactor number>.B ?.B
+R 006c <error No>.B
+ ƒLƒƒƒ‰ƒNƒ^‘I‘ðŽ¸”s
+R 006d <charactor select data>.106B
+ ƒLƒƒƒ‰ƒNƒ^쬬Œ÷
+R 006e <error No>.B
+ ƒLƒƒƒ‰ƒNƒ^쬎¸”s
+R 006f
+ ƒLƒƒƒ‰ƒNƒ^휬Œ÷
+R 0070 <error No>.B
+ ƒLƒƒƒ‰ƒNƒ^휎¸”s
+ err No=00 ƒ[ƒ‹ƒAƒhƒŒƒX‚ªˆá‚¤
+ err No=01 휂ª‹‘”Û‚³‚ꂽ
+R 0071 <charactor ID>.l <map name>.16B <ip>.l <port>.w
+ ƒLƒƒƒ‰ƒNƒ^‘I‘ð¬Œ÷&ƒ}ƒbƒv–¼&ƒQ[ƒ€ŽIIP/port
+S 0072 <account ID>.l <charactor ID>.l <login ID1>.l <login ID2>.l <sex>.b
+ ƒQ[ƒ€ŽIÚ‘±—v‹
+R 0073 <server tick>.l <coordidate>.3B ?.2B
+ ƒQ[ƒ€ŽIÚ‘±¬Œ÷&ƒT[ƒo‘¤1msŽžŒv&oŒ»ˆÊ’u
+R 0078 <ID>.l <speed>.w <opt1>.w <opt2>.w <option>.w <class>.w <hair>.w <weapon>.w <head option bottom>.w <sheild>.w <head option top>.w <head option mid>.w <hair color>.w <cloth color>.w <head dir>.w <guild>.l <emblem>.l <manner>.w <karma>.B <sex>.B <X_Y_dir>.3B ?.B ?.B <sit>.B <Lv>.B
+ ƒ}ƒbƒvƒ[ƒhŽž&ˆÚ“®Žž—pAŒü‚«•t‚«—pƒLƒƒƒ‰î•ñ?
+R 0079 <ID>.l <speed>.w <opt1>.w <opt2>.w <option>.w <class>.w <hair>.w <weapon>.w <head option bottom>.w <sheild>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.l <emblem>.l <manner>.w <karma>.B <sex>.B <X_Y_dir>.3B ?.B ?.B <Lv>.B
+ ƒeƒŒƒ|“™‚Ì•\Ž¦”ÍˆÍ“à•¦‚«ƒLƒƒƒ‰—pAŒü‚«•t‚«–³‚µƒLƒƒƒ‰î•ñ?
+R 007b <ID>.l <speed>.w <opt1>.w <opt2>.w <option>.w <class>.w <hair>.w <weapon>.w <head option bottom>.w <server tick>.l <sheild>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.l <emblem>.l <manner>.w <karma>.B <sex>.B <X_Y_X_Y>.5B ?.B ?.B ?.B <Lv>.B
+ •\Ž¦”͈͓àƒLƒƒƒ‰ˆÚ“®î•ñ
+R 007c <ID>.l <speed>.w ?.6w <class>.w ?.7w <X_Y>.3B ?.2B
+ NPC—p•\Ž¦”͈͓àƒLƒƒƒ‰î•ñ
+S 007d
+ mapƒ[ƒhI‚è
+S 007e <client tick>.l
+ ƒNƒ‰ƒCƒAƒ“ƒg‘¤1msƒ^ƒCƒ}‘—M
+R 007f <server tick>.l
+ ƒT[ƒo‘¤1msƒ^ƒCƒ}‘—M
+R 0080 <ID>.l <type>.B
+ type=00 ƒLƒƒƒ‰Á–Å (‰æ–ÊŠOˆÚ“®BŽ€‘ÌÁ–Å“™?)
+ type=01 ƒLƒƒƒ‰Ž€–S
+ type=02 ƒLƒƒƒ‰Á–Å (logout“™?)
+ type=03 ƒeƒŒƒ|[ƒg (ƒeƒŒƒ|,”ˆ,’±“™H)
+R 0081 <type>.B
+ loginŽ¸”s ‚»‚Ì‚Q
+ type=01 ƒT[ƒo[Ú‘±I—¹
+ type=02 “¯‚¶ID‚Å‘¼‚ÌŽg—pŽÒ‚ªƒƒOƒCƒ“‚µ‚Ü‚µ‚½
+ type=03 ƒT[ƒo[‚Æ‚Ì“¯Šú‚ÉŽ¸”s‚µ‚Ü‚µ‚½
+ type=04 ’nˆæ‚ÌŽû—elˆõ’´‰ß‚ÅÚ‘±‚Å‚«‚Ü‚¹‚ñ
+ type=05 ‚P‚WΈȉº‚ÍÚ‘±‚Å‚«‚Ü‚¹‚ñ
+ type=06 ŒˆÏ‚³‚ꂽƒAƒJƒEƒ“ƒg‚Å‚Í‚ ‚è‚Ü‚¹‚ñ
+ type=07 ƒT[ƒo[‚ª¬ŽG‚µ‚Ä‚¢‚Ü‚·
+ type=08 ‘O‚ÌÚ‘±î•ñ‚ªŽc‚Á‚Ä‚¢‚Ü‚·
+ type=0b ƒAƒJƒEƒ“ƒg‚ª•Û—¯‚³‚ê‚Ü‚µ‚½
+ type=0c ‰Û‹àƒVƒXƒeƒ€•ÏX‚Ì‚½‚ßAˆêŽžI—¹‚µ‚Ü‚·
+ type=0d IP‚ªˆê’v‚µ‚È‚¢‚½‚ßAÚ‘±‚ðI—¹‚µ‚Ü‚·
+ type=10 —L—¿ƒT[ƒrƒX‚É‚È‚è‚Ü‚µ‚½
+ type=11 ƒ`ƒPƒbƒg‚ª”ƒ‚í‚ê‚Ä‚¢‚È‚¢‚©A—LŒøŠúŒÀ‚ªØ‚ê‚Ä‚¢‚Ü‚·
+S 0085 <X_Y>.3B
+ ˆÚ“®—v‹
+R 0087 <server tick>.l <X_Y_X_Y>.5B ?.B
+ ˆÚ“®‰ž“š
+R 0088 <ID>.l <X>.w <Y>.w
+ ˆÚ“®“r’†’âŽ~
+S 0089 <target ID>.l <type>.B
+ type=00 target‚ð1‰ñ‰£‚é
+ type=02 À‚é
+ type=03 —§‚¿ã‚é
+ type=07 target‚ð‰£‚è‘±‚¯‚é
+R 008a <src ID>.l <dst ID>.l <server tick>.l <src speed>.l <dst speed>.l <param1>.w <param2>.w <type>.B <param3>.w
+ type=00 param1=0 miss
+ type=00 param1:ƒ_ƒ[ƒW(‚̇Œv?) param2:•ªŠ„” param3:ƒAƒTƒVƒ“2“—¬‹tŽèƒ_ƒ[ƒW
+ NPC‚©‚ç‚ÌUŒ‚‚Ìê‡Aparam2,param3‚̓Sƒ~ƒf[ƒ^
+ speed‚ÍPC‚Ìê‡“à•”ASPD‚ƈê’v
+ type=01 item‚ðE‚¤ ID*2ˆÈŠOƒSƒ~
+ type=02 À‚é src IDˆÈŠOƒSƒ~
+ type=03 —§‚ src IDˆÈŠOƒSƒ~
+ type=08 •¡”UŒ‚
+ type=09 ƒ_ƒ[ƒWƒ‚[ƒVƒ‡ƒ“‚È‚µ‚Ƀ_ƒ[ƒW‚¾‚¯•\Ž¦‚³‚ê‚镨(ƒCƒ“ƒfƒ…ƒA)
+ type=0a ƒNƒŠƒeƒBƒJƒ‹
+ type=0b Š®‘S‰ñ”ð
+S 008c <len>.w <str>.?B
+ ’Êí”­Œ¾‘—MBƒ`ƒƒƒbƒg’†‚̓`ƒƒƒbƒg“à”­Œ¾—p‚É‚È‚é
+ 擪‚Ì"<nick> : "‚Ì•”•ª‚̓Nƒ‰ƒCƒAƒ“ƒg‘¤‚Å•t‚¯‚鎖
+R 008d <len>.w <ID>.l <str>.?B
+ ID‚³‚ñ‚Ì”­Œ¾ŽóMBƒ`ƒƒƒbƒg’†‚̓`ƒƒƒbƒg“à”­Œ¾—p‚É‚È‚é
+R 008e <len>.w <str>.?B
+ Ž©•ª‚Ì”­Œ¾ŽóMBƒ`ƒƒƒbƒg’†‚̓`ƒƒƒbƒg“à”­Œ¾—p‚É‚È‚é
+S 0090 <ID>.l <type?>.B
+ NPC‚ɘb‚µ‚©‚¯‚éBtype‚Í01‚µ‚©Œ©‚½Ž––³‚µ
+R 0091 <map name>.16B <X>.w <Y>.w
+ ŽI“àƒ}ƒbƒvŠÔˆÚ“®AƒeƒŒƒ|,”ˆ“™—p
+R 0092 <map name>.16B <X>.w <Y>.w <IP>.l <port>.w
+ ŽIŠÔˆÚ“®
+R 0093
+ 8ŒŽ’†‚É1‰ñ‚¾‚¯ŠÏ‘ªB“ä
+S 0094 <ID>.l
+ ID‚̃Lƒƒƒ‰–¼“™—v‹B0095‚©0195‚Ì•Ô“š‚ª‚ ‚é‚Í‚¸
+R 0095 <ID>.l <nick>.24B
+ NPC,ƒMƒ‹ƒh–¢Š‘®PC‚Ì0094‚Ö‚Ì•Ô“š
+ 0193 <charID>.l ‚Å–â‚¢‡‚킹‚Ä
+ 0194 <charID>.l <name>.24B ‚̉ž“š‚Å“¾‚Ä‚Ü‚·B
+
+S 0096 <len>.w <nick>.24B <message>.?B
+ wis‘—M
+R 0097 <len>.w <nick>.24B <message>.?B
+ wisŽóM
+R 0098 <type>.B
+ type=00 wis‘—M¬Œ÷
+ type=01 wis‘ŠŽè‚ªlogin‚µ‚Ä‚È‚¢?
+ type=02 wis‘ŠŽè‚©‚çignore‚³‚ê‚Ä‚é?
+S 0099
+ _‚̺‘—M
+R 009a <len>.w <message>.?B
+ GM‚©‚ç‚Ì“V‚̺
+S 009b <head dir>.w <dir>.B
+ ‘Ì&“ª‚Ì•ûŒü•ÏX—v‹BƒNƒ‰ƒCƒAƒ“ƒg‚ւ̉ž“š‚Í–³‚¢–Í—l
+ dir‚Í00`07‚Å‘Ì‚ÌŒü‚«B00‚Å–k‚©‚甽ŽžŒv‰ñ‚è‚É45‹’PˆÊ‚Å07‚Ü‚Å
+ head dir‚Í00,01,02‚Å“ª‚ÌŒü‚«B00‚Å‘Ì‚Æ“¯‚¶A01‚ª‰EA02‚ª¶
+R 009c <ID>.l <head dir>.w <dir>.B
+ ID‚Ì‘Ì&“ª‚Ì•ûŒü•ÏX
+R 009d <ID>.l <item ID>.w <identify flag>.B <X>.w <Y>.w <amount>.w <subX>.B <subY>.B
+ ˆÚ“®“™‚Å°ƒAƒCƒeƒ€‚ª‰æ–Ê“à‚É“ü‚Á‚Ä‚«‚½Žž
+R 009e <ID>.l <item ID>.w <identify flag>.B <X>.w <Y>.w <subX>.B <subY>.B <amount>.w
+ item dropB‰½ŒÌ‚©009d‚ƃ}ƒX–Ú“àˆÊ’u&ŒÂ”‚ª“ü‚ê•Ï‚Á‚Ä‚¢‚é
+S 009f <ID>.l
+ ID‚Ì°ƒAƒCƒeƒ€‚ðE‚¤
+R 00a0 <index>.w <amount>.w <item ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w <equip type>.w <type>.B <fail>.B
+ fail=02 Žæ“¾Ž¸”s?
+ fail=06 ƒ‹[ƒgŒ –³‚µBŽæ“¾Ž¸”s
+R 00a1 <ID>.l
+ ID‚Ì°ƒAƒCƒeƒ€Á‹Ž
+S 00a2 <index>.w <amount>.w
+ Š—LƒAƒCƒeƒ€‚ð—Ž‚·
+R 00a3 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B}.10B*
+ Š—LÁ–Õ•i&ŽûW•iƒŠƒXƒg
+R 00a4 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <equip type>.w <equip point>.w <attribute?>.B <refine>.B <card>.4w}.20B*
+ Š—L‘•”õƒŠƒXƒg
+R 00a5 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B}.10B*
+ ƒJƒvƒ‰‚³‚ñ‚É—a‚¯‚Ä‚ ‚éÁ–Õ•i&ŽûW•iƒŠƒXƒg
+R 00a6 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <equip type>.w <equip point>.w <attribute?>.B <refine>.B <card>.4w}.20B*
+ ƒJƒvƒ‰‚³‚ñ‚É—a‚¯‚Ä‚ ‚é‘•”õƒŠƒXƒg
+S 00a7 <index>.w <ID>.l
+ ŠŽƒAƒCƒeƒ€index‚ðŽg—p‚·‚éBID‚ÍŽ©•ª‚Ì‚Ý?
+R 00a8 <index>.w <amount>.w <type>.B
+ ƒAƒCƒeƒ€Žg—p‰ž“šBtype=00‚Ìꇎg—pŽ¸”s? amount‚àƒSƒ~‚Ì–Í—l
+ type=01‚ÌꇬŒ÷‚ÅAamount‚ÍŽg—pŒã‚ÌŽc‚èŒÂ”
+S 00a9 <index>.w <equip type>.w
+ ƒAƒCƒeƒ€‘•”õ
+R 00aa <index>.w <equip point>.w <type>.B
+ ƒAƒCƒeƒ€‘•”õ‰ž“šBtype=00‚Ìꇑ•”õŽ¸”s? equip point‚àƒSƒ~‚Ì–Í—l
+S 00ab <index>.w
+ ‘•”õ‰ðœ
+R 00ac <index>.w <equip point>.w <type>.B
+ ‘•”õ‰ðœ‰ž“šBtype=00‚Ìꇎ¸”s? equip point‚àƒSƒ~‚Ì–Í—l
+R 00af <index>.w <amount>.w
+ ƒAƒCƒeƒ€”Œ¸­BamountŒÂ‚¾‚¯Œ¸‚ç‚·
+R 00b0 <type>.w <val>.l
+ FX‚È”\—Í’l‚ÌXVBˆÈ‰ºtype:‘Ήž‚·‚é”’l‚ð—ñ‹“
+ 0000:speed 0003:ˆ«s’l 0004:ƒ}ƒi[ƒ|ƒCƒ“ƒg 0005:HP 0006:MaxHP
+ 0007:SP 0008:MaxSP 0009:ƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒg 000b:ƒx[ƒXƒŒƒxƒ‹
+ 000c:ƒXƒLƒ‹ƒ|ƒCƒ“ƒg 0018:d—Ê(•\Ž¦‚³‚ê‚Ă锎š‚Ì10”{)
+ 0019:Å‘åd—Ê(•\Ž¦‚³‚ê‚Ă锎š‚Ì10”{)
+ 0029:ATK‘O 002a:ATKŒã 002b:MATK‘O 002c:MATKŒã
+ 002d:DEF‘O 002e:DEFŒã 002f:MDEF‘O 0030:MDEFŒã
+ 0031:HIT 0032:FLEE‘O 0033:FLEEŒã 0034:ƒNƒŠƒeƒBƒJƒ‹
+ 0035:ASPD(2ms’PˆÊ‚ÌŽžŠÔ?) 0037:ƒWƒ‡ƒuƒŒƒxƒ‹
+ 0082:“ä ATKŒã‚Æ“¯‚¶”Žš?
+R 00b1 <type>.w <val>.l
+ FX‚È”\—Í’l‚ÌXVBˆÈ‰ºtype:‘Ήž‚·‚é”’l‚ð—ñ‹“
+ 0001:ƒx[ƒX‘¤ŒoŒ±’l 0002:ƒWƒ‡ƒu‘¤ŒoŒ±’l 0014:zeny
+ 0016:ƒx[ƒX‘¤•K—vŒoŒ±’l 0017:ƒWƒ‡ƒu‘¤•K—vŒoŒ±’l
+ ƒÀ1‚Å‚Í00b0‚Íval‚ªshortA00b1‚Íval‚ªlong‚Æ‚¢‚¤Žg‚¢•ª‚¯‚ª‚ ‚Á‚½‚ñ‚¾‚¯‚Ç
+ ¡‚Æ‚È‚Á‚Ä‚Í·‚ª–³‚­‚È‚Á‚ÄA–Ó’°‚Ý‚½‚¢‚È‚à‚Ì?
+S 00b2 <type>.B
+ type=00 Ž€–SŽžƒŠƒXƒ^[ƒg
+ type=01 ƒLƒƒƒ‰ƒZƒŒ—v‹
+R 00b3 <type>.B
+ type=01 ƒLƒƒƒ‰ƒZƒŒ‰ž“š
+R 00b4 <len>.w <ID>.l <str>.?B
+ ID‚ÌNPC‚©‚ç‚̃ƒbƒZ[ƒW
+R 00b5 <ID>.l
+ ID‚ÌNPC‚Ƃ̃ƒbƒZ[ƒWƒEƒBƒ“ƒhƒE‚É"NEXT"ƒAƒCƒRƒ“‚ðo‚·
+R 00b6 <ID>.l
+ ID‚ÌNPC‚Ƃ̃ƒbƒZ[ƒWƒEƒBƒ“ƒhƒE‚É"CLOSE"ƒAƒCƒRƒ“‚ðo‚·
+R 00b7 <len>.w <ID>.l <str>.?B
+ ID‚ÌNPC‚̉ï˜b‚Å‘I‘ð€–Ú•\Ž¦BŠe€–Ú‚Í':'‚Å‹æØ‚ç‚ê‚é
+S 00b8 <ID>.l <select>.B
+ ID‚ÌNPC‚̉ï˜b‚Ì‘I‘ðBŠe€–ڂɇ‚É1`‚ªU‚ç‚ê‚éBff‚ŃLƒƒƒ“ƒZƒ‹?
+S 00b9 <ID>.l
+ ID‚ÌNPC‚Ƃ̉ï˜bBNEXTƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚½
+S 00bb <type>.w <amount>.B
+ ƒXƒe[ƒ^ƒXup—v‹Btype‚Í000d‚©‚ç0012‚ª‡‚ÉSTR,AGI,VIT,INT,DEX,LUK‚ɑΉž
+R 00bc <type>.w <fail>.B <val>.B
+ ƒXƒe[ƒ^ƒXup‰ž“šBfail=01‚Ȃ笌÷Btype‚Í00bb‚Æ“¯‚¶Bval‚Íã‚Á‚½Œã‚Ì”Žš
+ Ž¸”s—á‚ÍŒ©‚½Ž––³‚¢‚Ì‚Å“äBƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒg‚ª‘«‚è‚È‚¢ó‘Ô‚Å
+ 00bb‚ð”­s‚Å‚«‚éƒNƒ‰ƒCƒAƒ“ƒg‚ª—L‚ê‚ÎAfail=00‚É‚È‚é‚Ì‚Å‚Í‚È‚¢‚©‚Æ—\‘z
+R 00bd <status point>.w <STR>.B <STRupP>.B <AGI>.B <AGIupP>.B <VIT>.B <VITupP>.B <INT>.B <INTupP>.B <DEX>.B <DEXupP>.B <LUK>.B <LUKupP>.B <ATK>.w <ATKbonus>.w <MATKmax>.w <MATKmin>.w <DEF>.w <DEFbonus>.w <MDEF>.w <MDEFbonus>.w <HIT>.w <FLEE>.w <FLEEbonus>.w <critical>.w ?.w
+ ‚܂Ƃ߂ăXƒe[ƒ^ƒXî•ñ‚ð‘—‚éƒpƒPƒbƒg
+R 00be <type>.w <val>.B
+ •K—vƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒgXVƒpƒPƒbƒgBtype‚Í0020`0025‚ª‡‚ÉSTR`LUK‚ɑΉž
+S 00bf <type>.B
+ ƒGƒ‚[ƒVƒ‡ƒ“‚ðo‚·Btype‚Í00-0c(,0d)‚ªALT+1`ALT+9,ALT+0,ƒ`ƒ‡ƒL,ƒO[,ƒp[(,ŠØ‘Šø)‚ɑΉž
+ 00=! 01=? 02=‚¤‚ꂵ‚¢(ô) 03=ƒn[ƒg 04=Š¾ 05=‚ ‚Í‚Í(“d‹…)
+ 06=‚¢‚₾‚È(”) 07=“{‚è(‚à‚â‚à‚â)08=‚¨‹à() 09=c 0a=ƒ`ƒ‡ƒL
+ 0b=ƒO[ 0c=ƒp[ 0d=ŠØ‘Šø 0e=‘å‚«‚¢ƒn[ƒg 0f=‚ ‚肪‚Æ‚¤(thanks)
+ 10=–³”O 11=‚²‚ß‚ñ(sorry) 12=΂¢ 13=Š¾‚©‚« 14=‚ ‚Ì
+ 15=Å‚(GoodJob)16=ƒLƒ‡ƒƒLƒ‡ƒ 17=ƒVƒ‡ƒbƒN 18=‚Ü‚é 19=ƒoƒc
+ 1a=ƒwƒ‹ƒv(help) 1b=go 1c=‚¦[‚ñ 1d=‚­‚·‚­‚· 1e=‚¿‚ã
+ 1f=‚¿‚ã‚¿‚ã 20=‚Ó‚ñ 21=‚¤‚ñ‚¤‚ñ
+R 00c0 <ID>.l <type>.B
+ ID‚Ìl‚ªƒGƒ‚[ƒVƒ‡ƒ“‚ðo‚µ‚½Btype‚Í00bf‚Æ“¯‚¶
+S 00c1
+ loginl”–â‚¢‡‚킹
+R 00c2 <val>.l
+ loginl”‰ž“š
+R 00c3 <ID>.l <type>.B <val>.B
+ Œ©‚½–Ú•ÏXBtype‚Í00‚Å–{‘Ì(“]EŽž“™)A02‚ª•ŠíA03‚ª“ª(‰º)A04‚ª“ª(ã)A05‚ª“ª(’†)A08‚ª‚
+R 00c4 <ID>.l
+ ˜b‚©‚¯‚½NPC‚ª¤l‚¾‚Á‚½‚Ì‚Åbuy/sell‘I‘ð‘‹o
+R 00c5 <ID>.l <type>.B
+ buy/sell‘I‘ðBtype=00‚È‚çbuyBtype=01‚È‚çsell
+R 00c6 <len>.w {<value>.l <DCvalue>.l <type>.B <item ID>.w}.11B*
+ NPC‚Ì‚¨“Xbuy‘I‘ðŽžBDCvalue‚ͤlDCŒã‚Ì’l’i
+R 00c7 <len>.w {<index>.w <value>.l <OCvalue>.l}.10B*
+ NPC‚Ì‚¨“Xsell‘I‘ðŽžBOCvalue‚ͤlOCŒã‚Ì’l’i
+S 00c8 <len>.w {<amount>.w <item ID>.w}.4B*
+ NPC‚Ì‚¨“X‚©‚甃‚¤
+S 00c9 <len>.w {<index>.w <amount>.w}.4B*
+ NPC‚Ì‚¨“X‚É”„‚é
+R 00ca <type>.B
+ NPC‚©‚çw“üI—¹Btype=00¬Œ÷
+R 00cb <type>.B
+ NPC‚Ö”„‹pI—¹Btype=00¬Œ÷
+S 00cc <ID>.l
+ GM—p‰EƒNƒŠƒbƒNƒƒjƒ…[uinamejŽg—pŽÒ‹­§I—¹vŽg—p
+R 00cd <IDH>.l
+ GM—p‰EƒNƒŠƒbƒNƒƒjƒ…[uinamejŽg—pŽÒ‹­§I—¹v‚̉ž“š
+ <ID>‚ª0‚Ìꇂ͎¸”s‚Æ•\Ž¦B(‚±‚̃pƒPƒbƒg‚Í‚½‚¾‚̉ž“š‚Å‚·BÚ‘±I—¹‚Ì‹@”\‚Í‚ ‚è‚Ü‚¹‚ñB)
+S 00cf <nick>.24B <type>.B
+ type=00 nick‚©‚ç‚Ì”­Œ¾Žó‚¯•t‚¯‹‘”Û (/ex nick)
+ type=01 nick‚©‚ç‚Ì”­Œ¾Žó‚¯•t‚¯‹–‰Â (/in nick)
+S 00d0 <type>len.B
+ type=00 ‘S‚Ä‚Ì”­Œ¾Žó‚¯•t‚¯‹‘”Û (/exall)
+ type=01 ‘S‚Ä‚Ì”­Œ¾Žó‚¯•t‚¯‹–‰Â (/inall)
+R 00d1 <type>.B <fail>.B
+ fail=00 ”­Œ¾Žó‚¯•t‚¯‹‘”Û¬Œ÷
+ fail=01 ”­Œ¾Žó‚¯•t‚¯‹‘”ÛŽ¸”s
+R 00d2 <type>.B <fail>.B
+ fail=00 ‘S”­Œ¾Žó‚¯•t‚¯‹‘”Û¬Œ÷
+ fail=01 ‘S”­Œ¾Žó‚¯•t‚¯‹‘”ÛŽ¸”s
+S 00d5 <len>.w <limit>.w <pub>.B <passwd>.8B <title>.?B
+ ƒ`ƒƒƒbƒg—§‚ÄB‚±‚±‚©‚çƒ`ƒƒƒbƒgŠÖŒW‚ª‘±‚­‚¯‚Ç’²‚ׂªŠÃ‚¢‚̂ŕ⊮‚æ‚ë
+R 00d6 <fail>.B
+ ƒ`ƒƒƒbƒg—§‚ĉž“š
+R 00d7 <len>.w <owner ID>.l <chat ID>.l <limit>.w <users>.w <pub>.B <title>.?B
+ ‰æ–Ê“àƒ`ƒƒƒbƒgî•ñ
+R 00d8 <chat ID>.l
+ ƒ`ƒƒƒbƒgÁ‹Ž
+S 00d9 <chat ID>.l <passwd>.8B
+ ƒ`ƒƒƒbƒgŽQ‰Á—v¿
+R 00da <fail>.B
+ ƒ`ƒƒƒbƒgŽQ‰ÁŽ¸”s
+R 00db <len>.w <chat ID>.l {<index>.l <nick>.24B}.28B*
+ ƒ`ƒƒƒbƒgŽQ‰ÁŽÒƒŠƒXƒg
+R 00dc <users>.w <nick>.24B
+ ƒ`ƒƒƒbƒg‚Ö‚ÌŽQ‰ÁŽÒ’ljÁ(?)
+R 00dd <index>.w <nick>.24B <fail>.B
+ ƒ`ƒƒƒbƒg‚©‚çŽQ‰ÁŽÒ”²‚¯
+S 00de <len>.w <limit>.w <pub>.B <passwd>.8B <title>.?B
+ ƒ`ƒƒƒbƒgƒXƒe[ƒ^ƒX•ÏX
+R 00df <len>.w <owner ID>.l <chat ID>.l <limit>.w <users>.w <pub>.B <title>.?B
+ ƒ`ƒƒƒbƒgƒXƒe[ƒ^ƒX•ÏX¬Œ÷
+S 00e0 ?.l <nick>.24B
+ ƒ`ƒƒƒbƒgƒ‹[ƒ€Š—LŽÒ•ÏX—v‹?
+R 00e1 <index>.l <nick>.24B
+ ƒ`ƒƒƒbƒgŽQ‰ÁŽÒ”Ô†•t‚¯’¼‚µ?
+S 00e2 <nick>.24B
+ ƒ`ƒƒƒbƒgkick
+S 00e3
+ ƒ`ƒƒƒbƒg”²‚¯
+S 00e4 <ID>.l
+ Žæ‚èˆø‚«—v‹
+R 00e5 <nick>.24B
+ Žæ‚èˆø‚«—v¿Žó‚¯
+S 00e6 <type>.B
+ type=03 Žæ‚èˆø‚«—v¿ok
+ type=04 Žæ‚èˆø‚«—v¿ƒLƒƒƒ“ƒZƒ‹
+R 00e7 <fail>.B
+ Žæ‚èˆø‚«—v‹‰ž“š
+ fail=00 ‹——£‚ª‰“‰ß‚¬
+ fail=03 —v¿Žó‚¯‚Ä‚­‚ꂽ
+ fail=04 ƒLƒƒƒ“ƒZƒ‹‚³‚ꂽ?
+S 00e8 <index>.w <amount>.l
+ ƒAƒCƒeƒ€’ljÁBindex=0‚Åzeny’ljÁB³‹KƒNƒ‰ƒCƒAƒ“ƒg‚Å‚Ízeny‚Í00eb‚Ì’¼‘O‚Ì‚Ý
+R 00e9 <amount>.l <type ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w
+ ‘ŠŽè•û‚©‚ç‚̃AƒCƒeƒ€’ljÁ
+R 00ea <index>.w <fail>.B
+ fail=00 ƒAƒCƒeƒ€’ljÁ¬Œ÷
+ fail=01 ’ljÁŽ¸”sB‘ŠŽè‘¤d—ʃI[ƒo
+S 00eb
+ ƒAƒCƒeƒ€’ljÁŠ®—¹(ok‰Ÿ‚µ)
+R 00ec <fail>.B
+ fail=00 Ž©•ª‚©‚ç‚ÌokŽó—Ì
+ fail=01 ‘ŠŽè‚©‚ç‚ÌokŽó—Ì
+S 00ed
+ Žæ‚èˆø‚«ƒLƒƒƒ“ƒZƒ‹
+R 00ee
+ Žæ‚èˆø‚«‚ªƒLƒƒƒ“ƒZƒ‹‚³‚ê‚Ü‚µ‚½
+S 00ef
+ Žæ‚èˆø‚«‹–‘ø(trade‰Ÿ‚µ)
+R 00f0
+ Žæ‚èˆø‚«Š®—¹
+R 00f2 <num>.w <limit>.w
+ ƒJƒvƒ‰‚³‚ñ‹–—eƒAƒCƒeƒ€ŒÂ”&Œ»ó
+S 00f3 <index>.w <amount>.l
+ ƒJƒvƒ‰‚³‚ñ‘qŒÉ‚ɃAƒCƒeƒ€•ú‚èž‚Ý
+R 00f4 <index>.w <amount>.l <type ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w
+ ƒJƒvƒ‰‚³‚ñ‘qŒÉ‚̃AƒCƒeƒ€’ljÁ
+S 00f5 <index>.w <amount>.l
+ ƒJƒvƒ‰‚³‚ñ‘qŒÉ‚©‚çƒAƒCƒeƒ€Žæ‚èo‚µ—v‹
+R 00f6 <index>.w <amount>.l
+ ƒJƒvƒ‰‚³‚ñ‘qŒÉ‚©‚çƒAƒCƒeƒ€Žæ‚èo‚µ‰ž“š
+S 00f7
+ ƒJƒvƒ‰‚³‚ñ‘qŒÉ•Â‚¶—v‹
+R 00f8
+ ƒJƒvƒ‰‚³‚ñ‘qŒÉ•Â‚¶‰ž“š
+S 00f9 <party name>.24B
+ ƒp[ƒeƒB쬗v‹
+R 00fa <fail>.B
+ ƒp[ƒeƒB쬉ž“š
+ fail=00 uƒp[ƒeƒB[‚ðŒ‹¬‚µ‚Ü‚µ‚½Bv
+ fail=01 u“¯‚¶–¼‘O‚̃p[ƒeƒB[‚ª‚ ‚è‚Ü‚·Bv
+ fail=02 u‚·‚łɃp[ƒeƒB[‚ɉÁ“ü‚µ‚Ä‚¢‚Ü‚·Bv
+R 00fb <len>.w <party name>.24B {<ID>.l <nick>.24B <map name>.16B <leader>.B <offline>.B}.46B*
+ ƒp[ƒeƒBî•ñ‚Ü‚Æ‚ß‚Ä‘—‚è
+S 00fc <ID>.l
+ ƒp[ƒeƒBŠ©—U‚·‚é
+R 00fd <nick>.24B <fail>.B
+ fail=00 ‘ŠŽè‚ÍŠù‚Ƀp[ƒeƒB‚É“ü‚Á‚Ä‚¢‚½
+ fail=01 ‘ŠŽè‚É‹‘”Û‚³‚ꂽ
+ fail=02 Š©—U¬Œ÷
+R 00fe <ID>.l <party name>.24B
+ ƒp[ƒeƒB‚É—U‚í‚ꂽ
+S 00ff <ID>.l <fail>.l
+ ƒp[ƒeƒB‚É—U‚í‚ꂽŽž‚Ì•Ô“šBfail=1 ok•Ô“š?
+S 0100
+ ƒp[ƒeƒB’E‘Þ—v‹
+R 0101 <exp>.w <item?>.w
+ ƒp[ƒeƒBݒ茻ó? exp=2‚Ìꇂ͌ö•½”z•ªÝ’莸”s?
+S 0102 <exp>.w <item?>.w
+ ƒp[ƒeƒBÝ’è•ÏX
+R 0104 <ID>.l ?.l <X>.w <Y>.w <offline>.B <party name>.24B <nick>.24B <map name>.16B
+ ƒp[ƒeƒB1l•ªî•ñXV
+R 0105 <ID>.l <nick>.24B <fail>.B
+ nick‚³‚ñ‚ªƒp[ƒeƒB‚©‚ç—£’E
+R 0106 <ID>,l <HP>.w <MaxHP>.w
+ ƒp[ƒeƒBƒƒ“ƒoHPXV
+R 0107 <ID>.l <X>.w <Y>.w
+ ƒp[ƒeƒBƒƒ“ƒoˆÊ’uXV
+S 0108 <len>.w <message>.?B
+ ƒp[ƒeƒB“à”­Œ¾
+R 0109 <len>.w <ID>.l <message>.?B
+ ƒp[ƒeƒB“à”­Œ¾ŽóM
+R 010a <type ID>.w
+ MVPƒAƒCƒeƒ€Žæ“¾
+R 010b <exp>.l
+ MVPŒoŒ±’lŽæ“¾
+R 010c <ID>.l
+ MVPƒLƒƒƒ‰•\Ž¦
+R 010e <skill ID>.w <lv>.w <sp>.w <range>.w <up>.B
+ ƒXƒLƒ‹î•ñXVBsp‚Í–¢Žg—p?
+R 010f <len>.w {<skill ID>.w <target type>.w ?.w <lv>.w <sp>.w <range>.w <skill name>.24B <up>.B}.37B*
+ ƒXƒLƒ‹î•ñ‚̉òBskill name‚͈ꕔ—¬‚ê‚Ä—ˆ‚È‚¢•¨‚ª‚ ‚é„AL_PNEUMA,PR_SLOWPOISON“™
+ target type‚Í0-ƒpƒbƒVƒuA1-“GA2-êŠA4-‘¦Žž”­“®A16-–¡•û
+ lv=0 up=0‚Ìꇂ̓ŠƒXƒg‚Éo‚µ‚Ä‚È‚¢?
+R 0110 <skill ID>.w <basic type>.w ?.w <fail>.B <type>.B
+ fail=00‚ÌŽž‚ɃXƒLƒ‹—˜—pŽ¸”s?
+ type 00:basic type‚Ì•û 01:SP•s‘« 02:HP•s‘« 03:memo–³‚µ 04:delay’†
+ 05:‚¨‹à–³‚µ(‚ß‚Ü[) 06:•Ší‚ª‚æ‚낵‚­‚È‚¢ 07:ÔƒWƒFƒ€–³‚µ 08:ƒWƒFƒ€–³‚µ 09:“ä
+ basic type 00:Žæ‚èˆø‚« 01:emotion 02:À‚è 03:ƒ`ƒƒƒbƒg 04:ƒp[ƒeƒB
+ 05:shout? 06:PK 07:ƒ}ƒi[ƒ|ƒCƒ“ƒg
+R 0111 <skill ID>.w <target type>.w ?.w <lv>.w <sp>.w <range>.w <skill name>.24B <up>.B
+ 010f‚Ì1‚•ªBƒÀ2‚¾‚Æ–¢Žg—p?
+ 20040415“]EŽž‚ÉŠÏ‘ª
+S 0112 <skill ID>.w
+ ƒXƒLƒ‹lvup—v‹
+S 0113 <level>.w <skill ID>.w <ID>.l
+ ID‚ðƒ^[ƒQƒbƒg‚Éskill‚ðŽg‚¤
+R 0114 <skill ID>.w <src ID>.l <dst ID>.l <server tick>.l <src speed>.l <dst speed>.l <param1>.w <param2>.w <param3>.w <type>.B
+ UŒ‚ŒnƒXƒLƒ‹ƒGƒtƒFƒNƒg@
+ type=04 ‰Î•Ç‚ÅŠÏ‘ª type=06‚Æ‚Ù‚Ú“¯‚¶?
+ type=05 NB/FBl‚Ì•ªŽU‚µ‚½ƒ_ƒ[ƒW—pH
+ type=06 ’P”­‚à‚Ì? param1‚̓_ƒ[ƒW‡ŒvAparam2‚ÍlevelAparam3‚Í1ŒÅ’è‚Æ—\‘z
+ type=07 ƒ_ƒ[ƒW•\Ž¦–³‚µH
+ type=08 ˜A‘Å‚à‚Ì? param1‚̓_ƒ[ƒW‡ŒvAparam2‚ÍlevelAparam3‚Í•ªŠ„”‚Æ—\‘z
+ type=09 ƒ_ƒ[ƒWƒ‚[ƒVƒ‡ƒ“‚È‚µ‚Ƀ_ƒ[ƒW‚¾‚¯•\Ž¦‚³‚ê‚镨(ƒCƒ“ƒfƒ…ƒA)‚ÆŽv‚Á‚½‚Ì‚¾‚ªƒ_ƒ[ƒWƒ‚[ƒVƒ‡ƒ“‚ªo‚镨B(‹@”\‚Í“ä)
+R 0115 <skill ID>.w <src ID>.l <dst ID>.l <server tick>.l <src speed>.l <dst speed>.l <X>.w <Y>.w <param1>.w <param2>.w <param3>.w <type>.B
+ ’e‚«”ò‚΂µ—L‚èUŒ‚ŒnƒXƒLƒ‹ƒGƒtƒFƒNƒg
+ type=05 ƒ_ƒ[ƒW&’e‚«”ò‚΂µBparam1‚̓_ƒ[ƒW‡ŒvAparam2‚ÍlevelAparam3‚Í•ªŠ„”‚Æ—\‘z
+ type=06 ”šS’n? ­‚È‚­‚Æ‚àparam1‚̓Sƒ~‚Ì–Í—l
+ type=09 ƒ_ƒ[ƒWƒ‚[ƒVƒ‡ƒ“‚È‚µ‚Ƀ_ƒ[ƒW‚¾‚¯•\Ž¦‚³‚ê‚镨(ƒCƒ“ƒfƒ…ƒA)‚ÆŽv‚Á‚½‚Ì‚¾‚ªƒ_ƒ[ƒWƒ‚[ƒVƒ‡ƒ“‚ªo‚镨B(‹@”\‚Í“ä)
+S 0116 <level>.w <skill ID>.w <X>.w <Y>.w
+ (X,Y)‚ðƒ^[ƒQƒbƒg‚Éskill‚ðŽg‚¤
+R 0117 <skill ID>.w <src ID>.l <val>.w <X>.w <Y>.w <server tick>.l
+ ꊑŠŽè‚̃XƒLƒ‹ƒGƒtƒFƒNƒg•\Ž¦Bval‚̓Œƒxƒ‹‚©Aˆê•”ŒÅ‚³?(•X•Ç)
+S 0118
+ UŒ‚ƒLƒƒƒ“ƒZƒ‹
+R 0119 <ID>.l <param1>.w <param2>.w <param3>.w ?.B
+ Œ©‚½–Ú•ÏX
+ param1=02 ƒtƒƒXƒgƒ_ƒCƒo‚Å“€‚è’Ђ¯?
+ param2=01 “Å?
+ param2=20 ANGELUSó‘Ô?
+ param3=01 ƒTƒCƒg‚©ƒ‹ƒƒbƒ`?
+ param3=0b ƒnƒCƒfƒBƒ“ƒOó‘Ô?
+ param3=0b ƒNƒ[ƒLƒ“ƒOó‘Ô?
+ param3=0d ƒJ[ƒg•t‚«
+ param3=0e ‘é•t‚«
+ param3=0f ƒyƒRƒyƒRæ‚è
+
+R 011a <skill ID>.w <val>.w <dst ID>.l <src ID>.l <fail>.B
+ ”ñƒ_ƒ[ƒWŒnƒXƒLƒ‹•\Ž¦Bƒq[ƒ‹‚Ìê‡val‚͉ñ•œ—Ê
+ fail=00‚Ìꇎ¸”s‚Û‚¢‚ªAƒXƒ`[ƒ‹ˆÈŠO‚Å‚ÍŒ©‚½Ž––³‚µ
+S 011b <skill ID>.w <map name>.16B
+ 011c‚ւ̉ž“šBŽg‚í‚È‚¢ê‡"cancel"Aƒ}ƒbƒv“àƒ‰ƒ“ƒ_ƒ€‚Ìê‡"Random"‚ð‘—‚é
+R 011c <skill ID>.w <map1>.16B <map2>.16B <map3>.16B <map4>.16B
+ ƒeƒŒƒ|/ƒ|ƒ^‚ÌꊑI‘ðB
+ ƒeƒŒƒ|‚Ìê‡ARandom/ƒZ[ƒuêŠAƒ|ƒ^‚Ìê‡AƒZ[ƒuêŠ/memo1/memo2/memo3‚Æ‚È‚é
+ ƒ}ƒbƒv–¼‚Ì‚Ý‘—‚ç‚ê‚é
+S 011d
+ Œ»Ý‹‚éŠ‚ðƒƒ‚—v‹
+R 011e <fail>.B
+ fail=00 ƒƒ‚¬Œ÷
+ fail=01 ƒƒ‚Ž¸”s
+R 011f <dst ID>.l <src ID>.l <X>.w <Y>.w <type>.B <fail>.B
+ ƒXƒLƒ‹Œø”\’nì¬
+ type 7e:SW 7f:‰Î•Ç 80:ƒ|ƒ^”­“®’† 81:ƒ|ƒ^”­“®‘O 83:ƒTƒ“ƒN 85:ƒtƒjƒ…[ƒ}
+ 86:ƒo[ƒ~ƒŠƒIƒ“ 8c:ƒg[ƒL[ƒ{ƒbƒNƒX”­“®Žž 8d:•X•Ç 8e:‚­‚ ‚®‚Ü‚¢‚â[ 91:‚ ‚ñ‚­‚é‚·‚Ë‚ 
+ 93:‚ç‚ñ‚Ç‚Ü‚¢‚ñ 97:?? 99:ƒg[ƒL[ƒ{ƒbƒNƒX”­“®‘O
+ ‘¼î•ñ‹‚Þ
+R 0120 <ID>.l
+ ƒXƒLƒ‹Œø”\’nÁ‹Ž
+R 0121 <num>.w <num limit>.w <weight>.l <weight limit>l
+ ƒJ[ƒg‚ÌŽí—Þ&d‚³‚ÌŒ»Ý’l&ãŒÀ
+R 0122 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <equip type>.w <equip point>.w <attribute?>.B <refine>.B <card>.4w}.20B*
+ ƒJ[ƒg“àƒAƒCƒeƒ€B‘•”õ•i
+R 0123 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B}.10B*
+ ƒJ[ƒg“àƒAƒCƒeƒ€BÁ–Õ•i/ŽûW•i
+R 0124 <index>.w <amount>.l <item ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w
+ ƒJ[ƒg‚ɃAƒCƒeƒ€’ljÁ
+R 0125 <index>.w <amount>.l
+ ƒJ[ƒg‚©‚çƒAƒCƒeƒ€íœ
+S 0126 <index>.w <amount>.l
+ ƒJ[ƒg‚ɃAƒCƒeƒ€‚ð“ü‚ê‚é
+S 0127 <index>.w <amount>.l
+ ƒJ[ƒg‚©‚çƒAƒCƒeƒ€‚ðŽæ‚èo‚·
+S 0128 <index>.w <amount>.l
+ ƒJƒvƒ‰‚³‚ñ‚©‚çƒJ[ƒg‚ÖƒAƒCƒeƒ€‚ðˆÚ‚·
+S 0129 <index>.w <amount>.l
+ ƒJ[ƒg‚©‚çƒJƒvƒ‰‚³‚ñ‚ÖƒAƒCƒeƒ€‚ðˆÚ‚·
+R 012c <fail>.B
+ fail=00 ud—ʃI[ƒo[‚Å‚·Bv
+ fail=01 uƒAƒCƒeƒ€Å‘åŽí—Þ”‚𒴉߂µ‚Ü‚µ‚½Bv
+R 012d <num>.w
+ ˜I“XŠJÝBƒAƒCƒeƒ€ƒŠƒXƒg—v‹Bnum‚Í’u‚¯‚éÅ‘å”
+S 012e
+ ˜I“X•Â½
+S 012f <len>.w <message>.80B {<index>.w <amount>.w <value>.l}.8B*
+ ˜I“XŠJÝA˜I“X–¼&ƒAƒCƒeƒ€,’l’iƒŠƒXƒg
+S 0130 <ID>.l
+ ˜I“XƒAƒCƒeƒ€ƒŠƒXƒg—v‹
+R 0131 <ID>.l <message>.80B
+ ˜I“XŠÅ”•\Ž¦
+R 0132 <ID>.l
+ ˜I“XŠÅ”ÂÁ‹Ž
+R 0133 <len>.w <ID>.l {<value>.l <amount>.w <index>.w <type>.B <item ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w}.22B
+ ˜I“XƒAƒCƒeƒ€ƒŠƒXƒg
+S 0134 <len>.w <ID>.l {<amount>.w <index>.w}.4B*
+ ˜I“XƒAƒCƒeƒ€w“ü
+R 0135 <index>.w <amount>.w <fail>.B
+ ˜I“XƒAƒCƒeƒ€w“üŽ¸”sB
+ fail=1 u‚¨‹à‚ª‘«‚è‚Ü‚¹‚ñBv
+ fail=2 ud—ʃI[ƒo[‚Å‚·Bv
+R 0136 <len>.w <ID>.l {<value>.l <index>.w <amount>.w <type>.B <item ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w}.22B*
+ ˜I“XŠJݬŒ÷
+R 0137 <index>.w <amount>.w
+ ˜I“XƒAƒCƒeƒ€”Ì”„•ñ
+R 0139 <ID>.l <X>.w <Y>.w <X2>.w <Y2>.w <range>.w
+ ID‚Ì“G‚Í(X,Y)‚É‹‚ÄŽ©•ª‚Í(X2,Y2)‚É‹‚é‚Ì‚ÅUŒ‚‚ª“Í‚«‚Ü‚¹‚ñ‚Å‚µ‚½
+ UŒ‚‰Â”\‹——£‚Írange‚È‚Ì‚ÅA‹ßŠñ‚Á‚ĉº‚³‚¢?
+R 013a <val>.w
+ UŒ‚ŽË’ö
+R 013b <type>.w
+ ŠeŽíƒƒbƒZ[ƒW•\Ž¦B3=–‘•”õ‚Å‚«‚Ü‚µ‚½
+R 013c <ID>.w
+ ‘•”õ‚³‚ꂽ–î‚ÌItemIDB0‚ÅA–¢‘•”õó‘ÔB
+R 013d <type>.w <val>.w
+ HP‰ñ•œƒXƒLƒ‹/SP‰ñ•œƒXƒLƒ‹‚É‚æ‚é‰ñ•œ
+ type=5‚È‚çHP type=7‚È‚çSP
+R 013c <index>.w
+ ‘•”õ‚µ‚Ä‚¢‚é–î
+
+R 013e <src ID>.l <dst ID>.l <X>.w <Y>.w <lv?>.w ?.w <wait>.l
+ ƒXƒLƒ‹‰r¥’†BPC/NPC‚ª‘ŠŽè‚ÌꇂÍ(X,Y)‚Í0Bꊂªƒ^[ƒQƒbƒg‚ÌꇂÍdst ID‚Í0‚É‚È‚é
+
+ 0x013e ‚Ì offset+16(dword) ‚̓XƒLƒ‹‘®«‚Å‚·(’²¸Ï)B
+ 00:–³ 01:… 02:’n 03:‰Î 04:•— 05:“Å 06:¹ 07:ˆÃ 08:”O 09:Ž€
+ «—ˆ“I‚ÉA‰r¥’†‚̃GƒtƒFƒNƒg‚ª‘®«‚Å•Ï‚í‚é‚Ì‚©‚ÆB
+
+ wait‚Íms’PˆÊ‚©‚È?
+R 0141 <type>.l <base>.l <bonus>.l
+ ƒXƒe[ƒ^ƒXî•ñBtype‚Í0d‚©‚ç12‚ª‡‚ÉSTR,AGI,VIT,INT,DEX,LUK‚ɑΉž
+ base+bonus‚Æ•\Ž¦‚³‚ê‚é
+R 0142 <ID>.l
+ ”’l“ü—Í—p‘‹•\Ž¦
+S 0143 <ID>.l <amount>.l
+ 0142‚Ì‘‹‚É“ü—Í‚µ‚½”’l‚Ì‘—M
+R 0144 <ID>.l <type>.l <X>.l <Y>.l <point ID>.B <color>.3B ?.B
+ ˆÄ“àˆõ—pAƒ}ƒbƒvãƒAƒCƒRƒ“•\Ž¦ƒpƒPƒbƒg
+ type=1 ƒAƒCƒRƒ“‚ð•\Ž¦
+ type=2 ƒAƒCƒRƒ“‚ðÁ‹Ž
+R 0145 <file name>.16B <type>.B
+ (¡‚ÌŠ)ƒJƒvƒ‰‚³‚ñcutin•\Ž¦
+ type=02 •\Ž¦
+ type=ff Á‹Ž
+S 0146 <ID>.l
+ ID‚ÌNPC‚Ƃ̉ï˜bBCLOSEƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚½Back–³‚µ‚ÉNPCƒƒbƒZ[ƒWƒEƒBƒ“ƒh‚𓯎ž‚ɕ‚¶‚é
+R 0147 <skill ID>.w <target type>.w ?.w <lv>.w <sp>.w <range>.w <skill name>.24B <up>.B
+ ƒAƒCƒeƒ€—˜—p‚ÌŒ‹‰ÊˆêŽž“I‚É“¾‚ç‚ꂽƒXƒLƒ‹î•ñ
+R 0148 <ID>.l
+ ƒŠƒUƒŒƒNƒVƒ‡ƒ“‚Ì‘ŠŽèŒˆ‚ß? @ ƒÀ1
+S 0149 <ID>.l <type>.B <time>.w
+ ID‚Ƀ`ƒƒƒbƒg‹ÖŽ~ŽžŠÔ‚ð•t‰Á type=0 ƒ}ƒCƒiƒX type=1 ƒvƒ‰ƒX
+ tyme‚Í•ª’PˆÊ
+R 014a <fail>.l
+ ƒ}ƒi[ƒ|ƒCƒ“ƒg‚ð—^‚¦‚½Œ‹‰ÊBfail=0 ¬Œ÷ fail=1 Ž¸”s
+R 014b <type>.B <nick>.24B
+ ƒ}ƒi[ƒ|ƒCƒ“ƒg‚ð–á‚Á‚½Btype=00 ƒvƒ‰ƒX type=01 ƒ}ƒCƒiƒX
+R 014C <len>.w (<type>.l <guildID>.l <guild name>.24B).*
+ “¯–¿E“G‘΃Mƒ‹ƒh•\Ž¦
+ type=0 “¯–¿
+ type=1 “G‘Î
+S 014D
+ ƒMƒ‹ƒhî•ñ•\Ž¦ŠJŽnH
+R 014E <type?>.l
+ type=0x57 ˆê”ʃMƒ‹ƒh’cˆõ
+ type=0xD7 ƒMƒ‹ƒhƒ}ƒXƒ^[
+S 014F <page>.l
+ ƒMƒ‹ƒh•\Ž¦ƒ^ƒu‘—M
+R 0150 <guildID>.l <guildLv>.l <Ú‘±”>.l <’èˆõ>.l <Avl.lvl>.l <ŒoŒ±’l>.l <next_exp>.l <ã”[ƒ|ƒCƒ“ƒg>.l <«Œü¶‰EVW>.l <«Œü㉺RF>.l <l”H>.l <guild name>.24B <guild master>.24B <–{‹’’n>.16B
+ ƒMƒ‹ƒhî•ñ
+S 0151 <guild ID>.l
+ ƒGƒ“ƒuƒŒƒ€—v‹
+R 0152 <len>.w <guild ID>.l <emblem ID(•ÏX‰ñ”H)>.l <emblem data>.?B
+ ƒGƒ“ƒuƒŒƒ€ƒCƒ[ƒW‘—•t
+S 0153 <len>.w <emblem data>.?B
+ ƒGƒ“ƒuƒŒƒ€ƒCƒ[ƒW•ÏX
+R 0154 <len>.w {<accID>.l <charactorID>.l <”¯Œ^>.w <”¯‚ÌF>.w <«•ÊH>.w <job>.w <lvl?>.w <ã”[ŒoŒ±’l>.l <online>.l <Position>.l <ƒƒ‚H>.50B <nick>.24B}*
+ ƒMƒ‹ƒhƒƒ“ƒoƒŠƒXƒg
+S 0155 <len>.w {<accID>.l <charaID>.l <index>.l}.12B*
+ –ðE•ÏX
+R 0156 <len>.w {<accID>.l <charaID>.l <index>.l}.12B*
+ –ðE•ÏX’Ê’m
+S 0159 <guildID>.l <accID>.l <charID>.l <mess>.40B
+ ƒMƒ‹ƒh’E‘Þ‘—M
+R 015A <nic>.24B <mess>.40B
+ ƒMƒ‹ƒh’E‘Þ(‘Sˆõ)ŽóM
+S 015B <guildID>.l <accID>.l <charID>.l <mess>.40B
+ ƒMƒ‹ƒh’Ç•ú‘—M
+R 015C <nick>.24B <mess>.40B <ƒAƒJƒEƒ“ƒg‚h‚c>.24B
+ ƒMƒ‹ƒh’Ç•úi‘SˆõjŽóM
+S 015D <guild name>.24B <?>.16B
+ ƒMƒ‹ƒh‰ðŽU
+R 015E <fail>.l
+ ƒMƒ‹ƒh‰ðŽU³”Û’Ê’m
+ 0x00F¬Œ÷
+ 0x01FZ–¯“o˜^”Ô†•sˆê’v
+R 0160 <len>.w {<index>.l <mode>.l <index>.l <exp_mode>.l}.16B
+ EˆÊî•ñ
+S 0161 <len>.w {<index>.l <mode>.l <index>.l <exp_mode>.l <nickname>.24B}.40B*
+ EˆÊ•ÏX
+R 0162 <len>.w <skill_point>.w {<skill ID>.w <target type>.w ?.w <lv>.w <sp>.w <range>.w <skill name>.24B <up>.B}.37B*
+ ƒMƒ‹ƒhƒXƒLƒ‹
+R 0163 <len>.w { <nick>.24B <ƒAƒJƒEƒ“ƒg‚h‚c>.24B <’Ç•ú——R>.40B }.88B*
+ ƒMƒ‹ƒh’Ç•úƒŠƒXƒg
+S 0165 <myaccID>.l <guild name>.24B
+ ƒMƒ‹ƒhì¬
+R 0166 <len>.w {<index>.l <name>.24B }.28B*
+ EˆÊ–¼ƒŠƒXƒg
+R 0167 <type>.b
+ ƒMƒ‹ƒh쬇”Û
+ type = 0 ƒMƒ‹ƒh쬬Œ÷
+ type = 1 ‚·‚łɃMƒ‹ƒh‚ÉŠ‘®‚µ‚Ä‚¢‚é
+ type = 2 “¯–¼‚̃Mƒ‹ƒh‚ª‚ ‚é
+ type = 3 ƒGƒ“ƒyƒŠƒEƒ€–³‚µ
+S 0168 <TargetAccID>.l <sourceAccID>.l <myCharactorID>.l
+ ƒMƒ‹ƒhŠ©—U
+R 0169 <type>.B
+ ƒMƒ‹ƒhŠ©—UŒ‹‰Ê
+ type = 0 ‘¼‚̃Mƒ‹ƒh‚ɉÁ“ü‚µ‚Ä‚¢‚é
+ type = 1 ‹‘”Û‚³‚ꂽ
+ type = 2 ‰Á“ü‚µ‚½
+ type = 3 ’èˆõ‚ð’´‰ß
+R 016A <guild ID>.l <guild name>.24B
+ ƒMƒ‹ƒhŠ©—U‚³‚ꂽ
+S 016B <guild ID>.l <type>.l
+ ƒMƒ‹ƒhŠ©—U•ÔM
+ type=0 ‹‘”Û‚·‚é
+ type=1 ‹–‘ø‚·‚é
+R 016c <guild ID>.l <emblem ID>.l <mode>.l ?.5B <guild name>.24B
+ loginŽžƒMƒ‹ƒhî•ñ
+ mode=Ž©•ª‚ÌŠ‘®EˆÊ‚Ìmode
+R 016d <ID>.l <charactor ID>.l <online>.l
+ ƒMƒ‹ƒhƒƒ“ƒo‚ªlogin‚µ‚½”²‚¯‚½“™
+S 016E <guildID>.l <mess1>.60B <mess2>.120B
+ ƒMƒ‹ƒh’mÝ’è
+R 016F <mess1>.60B <mess2>.120B
+ ƒMƒ‹ƒh’m
+S 0170 <TargetAccID>.l <sourceAccID>.l <myCharactorID>.l
+ “¯–¿—v¿Š©—U
+R 0171 <SorceAccID>.l <guild name>.24B
+ “¯–¿—v¿Š©—U‚³‚ꂽ
+S 0172 <SorceAccID>.l <type>.l
+ “¯–¿—v¿•ÔM
+ type=0 ‹‘”Û‚·‚é
+ type=1 ‹–‘ø‚·‚é
+R 0173 <type>.B
+ type = 0 ‚·‚Å‚É“¯–¿ŠÖŒW
+ type = 1 “¯–¿‹‘”Û‚³‚ꂽ
+ type = 2 “¯–¿¬Œ÷
+ type = 3 ‘ŠŽèƒMƒ‹ƒh‚Ì“¯–¿ƒMƒ‹ƒh”‚ª’´‰ß
+ type = 4 Ž©•ª‚̃Mƒ‹ƒh‚Ì“¯–¿ƒMƒ‹ƒh”‚ª’´‰ß
+R 0174 <len>.w {<index>.l <mode>.l <index>.l <exp_mode>.l <nickname>.24B}.40B*
+ EˆÊ•ÏX’Ê’m
+R 0177 <len>.w <index>.w*
+ ŠÓ’è‰Â”\ƒAƒCƒeƒ€ƒŠƒXƒg
+S 0178 <index>.w
+ ƒAƒCƒeƒ€ŠÓ’è
+R 0179 <index>.w <fail>.B
+ ƒAƒCƒeƒ€ŠÓ’茋‰ÊBfail=00‚ŬŒ÷Bfail=01‚Á‚Ä‚ ‚é‚Ì‚©?
+S 017A <index>.w
+ ƒJ[ƒh‚vƒNƒŠƒbƒN
+R 017B <len>.w {<index>.w}*
+ ƒJ[ƒh‘}“ü‚Å‚«‚éƒAƒCƒeƒ€Index”Ô†
+S 017C <SrcIndex>.w <DescIndex>.w
+ Src ‚ðDesc‚É“Ë‚Áž‚Þ
+R 017D <DescIndex>.w <SrcIndex>.w <fail>.b
+ Src ‚ðDesc‚É“Ë‚Áž‚Ý<fail> 0=¬Œ÷ 1=Ž¸”sH
+S 017e <len>.w <message>.?B
+ ƒMƒ‹ƒh“àƒƒbƒZ[ƒW”­Œ¾
+R 017f <len>.w <message>.?B
+ ƒMƒ‹ƒh“àƒƒbƒZ[ƒWŽóM
+S 0180 <charactorID>.l
+ ƒMƒ‹ƒh“G‘Î
+R 0181 <flag>.b
+ ƒMƒ‹ƒh“G‘Ή”Û
+ flag=0 “G‘άŒ÷
+ flag=1 “G‘΃Mƒ‹ƒh”‚ª‘½‚·‚¬‚é
+ flag=2 ‚·‚Å‚É“G‘Ί֌W
+R 0182 <accID>.l <charactorID>.l <”¯Œ^>.w <”¯‚ÌF>.w <«•ÊH>.w <job>.w <lvl?>.w <ã”[ŒoŒ±’l>.l <online>.l <Position>.l ?.50B <nick>.24B
+
+S 0183 <guild_id>.l <type>.l
+ ƒMƒ‹ƒhŠÖŒW‰ðÁ
+R 0184 <guild_id>.l <type>.l
+ ƒMƒ‹ƒhŠÖŒW‰ðÁ’Ê’m
+R 0185 <flag>.l <guild_id>.l <guild_name>.24B
+ ƒMƒ‹ƒhŠÖŒW’ljÁ flag=0 “¯–¿/ 1 “G‘Î
+R 0187 <account ID>.l
+ aliveM†?
+R 0188 <fail?>.w <index>.w <val>.w
+ •Ší¸˜BBŒ‹‰Ê+val•Ší‚É
+R 0189 <fail?>.w
+ “äBƒeƒŒƒ|(ƒ[ƒvƒ|[ƒ^ƒ‹memo)Ž¸”s?
+ 1 memo‹ÖŽ~’nˆæ
+S 018a ?.w
+ ƒQ[ƒ€I—¹
+R 018b <fail>.w
+ ƒQ[ƒ€I—¹/ƒLƒƒƒ‰ƒZƒŒ‰ž“šBfail=0¬Œ÷Bfail=1Ž¸”s?
+R 018C <MonsID>.w <“™‹‰>.w <‘å¬>.w <¶–½’l>.w <?>.w <–hŒä—Í>.w <Ží‘°>.w <–‚–@–hŒä—Í>.w <‘®«>.w <–‚–@‘Š«‘®«>.9b
+ wiz‚Ì“G‚̃Zƒ“ƒXŒ‹‰Ê
+ 0 ¬Œ^
+ 1 ’†Œ^
+ 2 ‘åŒ^
+R 018d <length>.w { <ItemID>,w ?.w <CharID?>.l }.8B*
+ »‘¢‰Â”\ƒAƒCƒeƒ€ƒŠƒXƒg•\Ž¦(?‚Ì•”•ª‚Í0012ŒÅ’è)
+S 018e <MakeItemID>.w <slot1ItemID>.w <slot2ItemID>,w <slot3.ItemID>.w
+ »‘¢ƒAƒCƒeƒ€‚Ì‘I‘ð
+R 018f <flag>.w [00] <MakeItemID>.w
+ »‘¢Œ‹‰Ê(flag = 00‚Ȃ笌÷ 01‚Ȃ玸”s)
+S 0190 <skill lv>.w <skill code>.w <x & y>.l <message>.80b
+ ƒƒbƒZ[ƒW(ƒg[ƒL[ƒ{ƒbƒNƒXj
+R 0191 <ID>.l <message>.80B
+ ƒg[ƒL[ƒ{ƒbƒNƒX‚̃ƒbƒZ[ƒW
+R 0192 <x & y>.l <type>.w <mapname>.16b
+ ƒAƒCƒXƒEƒH[ƒ‹“™‚É‚æ‚é’nŒ`‘®«•Ï‰»
+S 0193 <ID>.l
+ ƒMƒ‹ƒhƒƒ“ƒo–¼‘Oˆø‚«?
+R 0194 <ID>.l <nick>.24B
+ ƒMƒ‹ƒhƒƒ“ƒo–¼‘Oˆø‚«‰ž“š?
+R 0195 <ID>.l <nick>.24B <party name>.24B <guild name>.24B <class name>.24B
+ ƒMƒ‹ƒhŠ‘®PC‚ÌꇂÌ0094•Ô“š
+R 0196 <type>.w <ID>.l
+ ‘‹­ŒnƒXƒLƒ‹Žg—pŽž‚̃ƒbƒZ[ƒWFXBID‚Ítarget‚ÆŽv‚í‚ê‚邪Ž©•ª‘ŠŽè‚Ì‚Ý‚µ‚©—ˆ‚È‚¢?
+ type=00 2HQ•t—^uUŒ‚‘¬“x‚ª‘‰Á‚µ‚Ü‚µ‚½Bv
+ type=01 2HQ‰ðœuUŒ‚‘¬“x‚ªŒ¸­‚µ‚Ü‚µ‚½Bv
+ type=02 IMPOSITIO•t—^u•Ší‚ÌUŒ‚—Í‚ª‘‰Á‚µ‚Ü‚µ‚½Bv
+ type=03 IMPOSITIO‰ðœu•Ší‚ÌUŒ‚—Í‚ªŒ¸­‚µ‚Ü‚µ‚½Bv
+ type=04 uƒXƒLƒ‹Žg—pƒfƒBƒŒƒC‚ªŒ¸­‚µ‚Ü‚µ‚½Bv
+ type=05 uƒXƒLƒ‹Žg—pƒfƒBƒŒƒC‚ªŒ³‚É–ß‚è‚Ü‚µ‚½Bv
+ type=06 u•Ší‚É“Å‘®«‚ª•t—^‚³‚ê‚Ü‚µ‚½Bv
+ type=07 ASPERSIO•t—^u•Ší‚ɹ‘®«‚ª•t—^‚³‚ê‚Ü‚µ‚½Bv
+ type=08 ASPERSIO‰ðœu•Ší‚Ì‘®«‚ªŒ³‚É–ß‚è‚Ü‚µ‚½Bv
+ type=09 u–h‹ï‚ɹ‘®«‚ª•t—^‚³‚ê‚Ü‚µ‚½Bv
+ type=0a u–h‹ï‚Ì‘®«‚ªŒ³‚É–ß‚è‚Ü‚µ‚½Bv
+ type=0b KYRIE•t—^uƒoƒŠƒAó‘Ô‚É‚È‚è‚Ü‚µ‚½Bv
+ type=0c KYRIE‰ðœuƒoƒŠƒAó‘Ô‚ª‰ðœ‚³‚ê‚Ü‚µ‚½Bv
+ type=0d uƒEƒFƒ|ƒ“ƒp[ƒtƒFƒNƒVƒ‡ƒ“ƒ‚[ƒh‚É‚È‚è‚Ü‚µ‚½Bv
+ type=0e uƒEƒFƒ|ƒ“ƒp[ƒtƒFƒNƒVƒ‡ƒ“ƒ‚[ƒh‚ª‰ðœ‚³‚ê‚Ü‚µ‚½Bv
+ type=0f uƒI[ƒo[ƒgƒ‰ƒXƒgƒ‚[ƒh‚É‚È‚è‚Ü‚µ‚½Bv
+ type=10 uƒI[ƒo[ƒgƒ‰ƒXƒgƒ‚[ƒh‚ª‰ðœ‚³‚ê‚Ü‚µ‚½Bv
+ type=11 uƒ}ƒLƒVƒ}ƒCƒYƒpƒ[ƒ‚[ƒh‚É‚È‚è‚Ü‚µ‚½Bv
+ type=12 uƒ}ƒLƒVƒ}ƒCƒYƒpƒ[ƒ‚[ƒh‚ª‰ðœ‚³‚ê‚Ü‚µ‚½Bv
+R 0196 <type>.w <ID>.l <switch>.b iƒRƒ‚ƒhˆÈ~j
+ switch=0‚ʼnðœ,1‚Å•t‰Á
+ type=00 ƒvƒƒ{ƒbƒN
+ type=01 ƒCƒ“ƒfƒ…ƒA
+ type=02 uUŒ‚‘¬“x‚ª‘‰Á‚µ‚Ü‚µ‚½Bvi2HQj
+ type=03 W’†—ÍŒüã
+ type=04 ƒnƒCƒfƒBƒ“ƒO
+ type=05 ƒNƒ[ƒLƒ“ƒO
+ type=06 u•Ší‚É“Å‘®«‚ª•t—^‚³‚ê‚Ü‚µ‚½BviƒGƒ“ƒ`ƒƒƒ“ƒgƒ|ƒCƒYƒ“j
+ type=07 u“ł𔽎˂ł«‚éó‘Ô‚É‚È‚è‚Ü‚µ‚½Bviƒ|ƒCƒYƒ“ƒŠƒAƒNƒgj
+ type=08 uƒNƒ@ƒOƒ}ƒCƒAó‘Ô‚É‚È‚èAEEEv
+ type=09 uƒGƒ“ƒWƒFƒ‰ƒXó‘Ô‚É‚È‚èAEEEv
+ type=0a ƒuƒŒƒbƒVƒ“ƒO
+ type=0b ƒVƒOƒiƒ€ƒNƒ‹ƒVƒX
+ type=0c u‘¬‚³‚ª‘‰Á‚µ‚Ü‚µ‚½vi‘¬“x‘‰Áj
+ type=0d u‘¬‚³‚ªŒ¸­‚µ‚Ü‚µ‚½vi‘¬“xŒ¸­j
+ type=0e uƒXƒ[ƒ|ƒCƒYƒ“ó‘Ô‚É‚È‚è‚Ü‚µ‚½viƒXƒ[ƒ|ƒCƒYƒ“j
+ type=0f u•Ší‚ÌUŒ‚—Í‚ª‘‰Á‚µ‚Ü‚µ‚½viƒCƒ“ƒ|ƒVƒeƒBƒIƒ}ƒkƒXj
+ type=10 uƒXƒLƒ‹Žg—pƒfƒBƒŒƒC‚ªŒ¸­‚µ‚Ü‚µ‚½viƒTƒtƒ‰ƒMƒEƒ€j
+ type=11 u•Ší‚ɹ‘®«‚ª•t—^‚³‚ê‚Ü‚µ‚½viƒAƒXƒyƒ‹ƒVƒIj
+ type=12 u–h‹ï‚ɹ‘®«‚ª•t—^‚³‚ê‚Ü‚µ‚½vi¹‘Ì~—Õj
+ type=13 uƒoƒŠƒAó‘Ô‚É‚È‚è‚Ü‚µ‚½viƒLƒŠƒGƒGƒŒƒCƒ\ƒ“j
+ type=14 uƒ}ƒOƒjƒtƒBƒJ[ƒgó‘Ô‚É‚È‚è‚Ü‚µ‚½v
+ type=15 uƒOƒƒŠƒAó‘Ô‚É‚È‚è‚Ü‚µ‚½v
+ type=16 uƒŒƒbƒNƒXƒG[ƒeƒ‹ƒió‘Ô‚É‚È‚è‚Ü‚µ‚½v
+ type=17 uƒAƒhƒŒƒiƒŠƒ“ƒ‰ƒbƒVƒ…ó‘Ô‚É‚È‚è‚Ü‚µ‚½v
+ type=18 uƒEƒFƒ|ƒ“ƒp[ƒtƒFƒNƒVƒ‡ƒ“ƒ‚[ƒh‚É‚È‚è‚Ü‚µ‚½v
+ type=19 uƒI[ƒo[ƒgƒ‰ƒXƒgƒ‚[ƒh‚É‚È‚è‚Ü‚µ‚½v
+ type=1a uƒ}ƒLƒVƒ}ƒCƒYƒpƒ[ƒ‚[ƒh‚É‚È‚è‚Ü‚µ‚½v
+ type=1b ƒyƒRƒyƒR‹Ræ
+ type=1c ‘é
+ type=1d Ž€‚ñ‚¾‚Ó‚è
+ type=1e u‹©‚Ñ‚Ü‚µ‚½viƒ‰ƒEƒhƒ{ƒCƒXj
+ type=1f uƒGƒiƒW[ƒR[ƒgó‘Ô‚É‚È‚è‚Ü‚µ‚½v
+ type=20 u–h‹ï‚ª‰ó‚ê‚Ü‚µ‚½v
+ type=21 u•Ší‚ª‰ó‚ê‚Ü‚µ‚½v
+ type=22 “äi–ڂ̃Aƒbƒv‚Æ‚¢‚¤ƒAƒCƒRƒ“F–Ó–ÚHHj
+ type=23 d—Ê50“’´‚¦
+ type=24 d—Ê90“’´‚¦
+ type=25 “äuUŒ‚‘¬“x‚ª‘‰Á‚µ‚Ü‚µ‚½vi‚˜‚QƒAƒCƒRƒ“F‘¬“xŒnƒ|[ƒVƒ‡ƒ“Hj
+ type=26 “äuUŒ‚‘¬“x‚ª‘‰Á‚µ‚Ü‚µ‚½vi‚˜‚QƒAƒCƒRƒ“F‘¬“xŒnƒ|[ƒVƒ‡ƒ“Hj
+ type=27 “äuUŒ‚‘¬“x‚ª‘‰Á‚µ‚Ü‚µ‚½vi‚˜‚QƒAƒCƒRƒ“F‘¬“xŒnƒ|[ƒVƒ‡ƒ“Hj
+ type=28 (–¢Žg—p‚Á‚Û‚¢HF•s‰Â‚Ɖðœ‚ÅŒø‰Ê‚ªˆá‚¤)
+ type=29 “äu‘¬‚³‚ª‘‰Á‚µ‚Ü‚µ‚½vi”’‚¢ƒAƒCƒRƒ“j
+ type=32 ƒXƒgƒŠƒbƒvƒEƒGƒ|ƒ“
+ type=33 ƒXƒgƒŠƒbƒvƒV[ƒ‹ƒh
+ type=34 ƒXƒgƒŠƒbƒvƒA[ƒ}[
+ type=35 ƒXƒgƒŠƒbƒvƒwƒ‹ƒ€
+ type=36 ƒPƒ~ƒJƒ‹ƒEƒFƒ|ƒ“ƒ`ƒƒ[ƒW
+ type=37 ƒPƒ~ƒJƒ‹ƒV[ƒ‹ƒhƒ`ƒƒ[ƒW
+ type=38 ƒPƒ~ƒJƒ‹ƒA[ƒ}[ƒ`ƒƒ[ƒW
+ type=39 ƒPƒ~ƒJƒ‹ƒwƒ‹ƒ€ƒ`ƒƒ[ƒW
+ type=3a ƒI[ƒgƒK[ƒh
+ type=3b ƒŠƒtƒŒƒNƒgƒV[ƒ‹ƒh
+ type=3d ƒvƒƒ”ƒBƒfƒ“ƒX
+ type=3e ƒfƒBƒtƒFƒ“ƒ_[
+ type=41 ƒI[ƒgƒXƒyƒ‹
+ type=44 ƒXƒsƒAƒNƒBƒbƒPƒ“
+ type=56 ”š—ô”g“®(ƒAƒCƒRƒ“‚Í•\Ž¦‚³‚ê‚Ü‚¹‚ñB)
+ type=57 ‹à„(•\Ž¦‚Í‚³‚ê‚È‚¢‚ª‹à„‚̉ðœ‚Í‚³‚ê‚é‚悤‚Å‚·B)
+ type=59 ƒRƒ“ƒ{ƒfƒBƒŒƒC
+ type=5a ƒtƒŒƒCƒ€ƒ‰ƒ“ƒ`ƒƒ[
+ type=5b ƒtƒƒXƒgƒEƒFƒ|ƒ“
+ type=5c ƒ‰ƒCƒgƒjƒ“ƒOƒ[ƒ_[
+ type=5d ƒTƒCƒYƒ~ƒbƒNƒEƒFƒ|ƒ“
+
+S 0197 <type>.w
+ type=0 /resetstate
+ type=1 /resetskill
+ Œø”\‚Í–³‚µ?
+R 0199 <type>.w
+ type=1 pvpƒ‚[ƒhŠJŽn?
+ type=3 gvgƒ‚[ƒhŠJŽn?
+R 019a <ID>.l <rank>.l <num>.l
+ pvp‡ˆÊ rank/num
+R 019b <ID>.l <type>.l
+ ‘¼l‚Ìlvup‚â•Ší¸˜B“™‚Ì•\Ž¦?
+ type=0 base lvup?
+ type=1 job lvup?
+ type=2 •Ší¸˜BŽ¸”s
+ type=3 •Ší¸˜B¬Œ÷
+
+R 019d <?>.4B
+ GMƒRƒ}ƒ“ƒh/hide
+
+S 0149 <ID>.l <type>.B <time>.w
+ GM—p‰EƒNƒŠƒbƒNƒƒjƒ…[uƒ`ƒƒƒbƒg‹ÖŽ~ŽžŠÔ‚ð‰º‚°‚éi‰ð‚¯‚éjvŽg—p ¨ type=00
+ GM—p‰EƒNƒŠƒbƒNƒƒjƒ…[uƒ`ƒƒƒbƒg‹ÖŽ~ŽžŠÔ‚ðã‚°‚éiŠ|‚¯‚éjvŽg—p ¨ type=01
+ time‚Í•ª’PˆÊ‚Å‚·iŠm‚©
+
+R 019e
+ •ßŠlƒ‚ƒ“ƒXƒ^[Œˆ‚ß
+S 019f <ID>.l
+ •ßŠlƒ‚ƒ“ƒXƒ^[Žw’è
+R 01a0 <fail>.B
+ •ßŠl”»’è
+ fail=01‚ŬŒ÷A00‚ÅŽ¸”s
+S 01a1 <param>.1B
+ <param>
+ 0x00Fƒyƒbƒgó‘Ô•\Ž¦
+ 0x01F‰a‚ð—^‚¦‚é
+ 0x02FƒpƒtƒH[ƒ}ƒ“ƒX
+ 0x03F—‘‚É–ß‚·
+ 0x04FƒAƒNƒZƒTƒŠ‰ðœ
+R 01a2 <pet name>.24B <name flag>.B <lv>.w <hungry>.w <friendly>.w <accessory>.w
+ ƒyƒbƒg‚Ìó‘Ô
+ name flag:00=–¼‘O–¢Ý’è 01=–¼‘OÝ’èÏ‚Ý(•ÏX•s‰Â)
+ lv=ƒyƒbƒg‚̃Œƒxƒ‹Ahungry=–ž• “x(0~100)Afriendly=e–§“x(‰Šú’l250?)Aaccessory=ƒAƒNƒZƒTƒŠ‚ÌItemID
+R 01a3 <fail>.B <itemID>.w
+ <fail>
+ 0x00F‰a‚â‚莸”s
+ 0x01F‰a‚â‚謌÷
+R 01a4 <type>.B <ID>.l <val>.l
+ ƒyƒbƒgŠÖ˜A’Ê’m
+ type=00,val=00 ƒyƒbƒg›z‰»Žž‚É‘—‚ç‚ê‚Ä‚­‚éBƒyƒbƒg”FŽ¯—pH
+ type=01 e–§“x•Ï‰»
+ type=02 –ž• “x•Ï‰»
+ type=03 ƒAƒNƒZƒTƒŠ•Ï‰»(0‚Å–¢‘•”õ)
+ type=04 ƒpƒtƒH[ƒ}ƒ“ƒX Šm”F‚³‚ꂽval=1~3
+ (4‚̓XƒyƒVƒƒƒ‹ƒpƒtƒH[ƒ}ƒ“ƒXH)
+ type=05 HŠm”F‚³‚ꂽval=0x14
+S 01a5 <pet name>.24B
+ ƒyƒbƒg‚Ì–¼‘OŒˆ‚ß
+R 01a6 <len>.w <index>.w*
+ ƒyƒbƒg‚Ì—‘ƒŠƒXƒg
+S 01a7 <index>.w
+ ƒyƒbƒg‚Ì—‘ƒŠƒXƒg‚ª‘I‘ð‚³‚ê‚½
+S 01a9 <emotion>.l
+ ƒyƒbƒgƒGƒ‚[ƒVƒ‡ƒ“‘—M
+R 01aa <ID>.l <emotion>.l
+ ƒyƒbƒgƒGƒ‚[ƒVƒ‡ƒ“ŽóM
+ <emotion>
+ 33ˆÈ‰º‚Ì‚Æ‚«FƒGƒ‚[ƒVƒ‡ƒ“
+ 34ˆÈã‚Ì‚Æ‚«F”­Œ¾ƒe[ƒuƒ‹H
+R 01ac <object id>.l
+ ƒAƒ“ƒNƒ‹‚Ì”­“®(‚Ý’u)Žž‚Ì‚Ý–ˆ‰ñoŒ»(‹@”\‚Í“ä)
+R 01ad <len>.l <item>.w
+ –îì‚è‚Ì쬉”\ITEM•\ŽóM
+S 01ae <itemID>.w
+ –îì‚è‚ÅŽg‚¤Þ—¿‘—M
+S 01af <type>.w
+ ƒ`ƒFƒ“ƒWƒJ[ƒgiƒJ[ƒg‘I‘ðj
+ type=1 ƒm[ƒ}ƒ‹ƒJ[ƒg
+R 01b0 <monster id>.l <?>.b <new monster code>.l
+ –û‚̃Nƒ‰ƒXƒ`ƒFƒ“ƒW
+ <new monster code>‚̓`ƒFƒ“ƒWŒã‚̃R[ƒh(1001`)‚ðdword‚Å
+S 01b2 <len>.w <message>.80B <flag>.B {<index>.w <amount>.w <value>.l}.8B*
+ ˜I“XŠJÝ
+ flag F 0=ƒLƒƒƒ“ƒZƒ‹ , 1=ƒI[ƒvƒ“
+R 01b3 <filename>.64B <type>.B
+ R 0145‚ÌãˆÊŒÝŠ·
+R 01B6 <guildID>.l <guildLv>.l <connum>.l <’èˆõ>.l <Avl.lvl>.l <now_exp>.l <next_exp>.l <ã”[ƒ|ƒCƒ“ƒg>.l <«ŒüF-V>.l <«ŒüR-W>.l <members>.l <guild name>.24B <guild master>.24B <agit?>.20B
+ ƒMƒ‹ƒhî•ñ
+R 01b9 <ID>.I
+ ”íƒ_ƒ“™‚É‚æ‚éID‚̉r¥’†’f
+R 01c4 <index>.w <amount>.l <itemID>.w <item data>.12B
+ ƒJƒvƒ‰‘qŒÉƒAƒCƒeƒ€
+R 01c8 <index>.w <item ID>.w <ID>.l <amount left>.w <type>.B
+ ƒAƒCƒeƒ€Žg—p‰ž“šB(00a8‚ÌãˆÊƒo[ƒVƒ‡ƒ“H)
+ type=00‚Ìꇎg—pŽ¸”s? amount‚àƒSƒ~‚Ì–Í—l
+ type=01‚ÌꇬŒ÷‚ÅAamount‚ÍŽg—pŒã‚ÌŽc‚èŒÂ”
+R 01c9 <dst ID>.l <src ID>.l <X>.w <Y>.w <type>.B <fail>.B ?.81b
+ ƒXƒLƒ‹Œø”\’nì¬(011f‚ÌãˆÊƒo[ƒVƒ‡ƒ“H)
+ type 0x7e:SWA0x7f:‰Î•ÇA0x80 ƒ|ƒ^ŠJ‚«’†A0x81 ƒ|ƒ^ŠJ‚«’¼‘O
+ 0x82 ¹‘ÌA0x83 ƒTƒ“ƒNA0x84 ƒ}ƒOƒkƒXA0x85 ƒjƒ…[ƒ}
+ 0x86 0x86 ‘å–‚–@(SG/MS/LoV/GX)A0x87 ƒtƒ@ƒCƒ„[ƒsƒ‰‘Ò‹@
+ 0x88 ƒtƒ@ƒCƒ„[ƒsƒ‰”š”­A0x87`0x8B •\Ž¦–³‚µA
+ 0x8c ƒg[ƒL[ƒ{ƒbƒNƒX(”­“®’†)A0x8D ƒAƒCƒXƒEƒH[ƒ‹
+ 0x8E ƒNƒƒOƒ}ƒCƒAA0x8f ƒuƒ‰ƒXƒgƒ}ƒCƒ“A0x90 ƒXƒLƒbƒh
+ 0x91 ƒAƒ“ƒNƒ‹A0x92 ƒxƒmƒ€ƒ_ƒXƒgA0x93 ƒ‰ƒ“ƒhƒ}ƒCƒ“
+ 0x94 ƒVƒ‡ƒbƒNƒEƒF[ƒuƒgƒ‰ƒbƒvA0x95 ƒTƒ“ƒhƒ}ƒ“
+ 0x96 ƒtƒ‰ƒbƒVƒƒ[A0x97 ƒtƒŠ[ƒWƒ“ƒOƒgƒ‰ƒbƒv
+ 0x98 ƒNƒŒƒCƒ‚ƒA[ƒgƒ‰ƒbƒvA0x99 ƒg[ƒL[ƒ{ƒbƒNƒX
+ 0x9A ƒ{ƒ‹ƒP[ƒmA0x9B ƒfƒŠƒ…[ƒWA0x9C ƒoƒCƒIƒŒƒ“ƒgƒQƒCƒ‹
+ 0x9D ƒ‰ƒ“ƒhƒvƒƒeƒNƒ^[A0x9E Zenyƒ}[ƒNA0x9F Zeny‘Ü
+ 0xA0 ‰ñ‚é—΂̗ÖA0xA1 ƒsƒ“ƒN‚̉¹•„ (“ñ˜A•„—L‚è
+ 0xA2 ^‚ñ’†‚É“_‚Ì‚ ‚éŒõ‚Ì‹ÊA0xA3 ƒsƒ“ƒN‚̃XƒvƒŠƒ“ƒO
+ 0xA4 [•£‚Ì’†‚ÉA0xA5 ‰ñ‚é‚¢—ÖA0xA6 •s‹¦˜a‰¹
+ 0xA7 Œû“JA0xA8 —[—z‚̃AƒTƒVƒ“ƒNƒƒXA0xA9 ƒuƒ‰ƒM‚ÌŽ
+ 0xAA ƒCƒhƒDƒ“‚Ì—ÑŒçA0xAB Ž©•ªŸŽè‚ȃ_ƒ“ƒXA0xAC ƒnƒ~ƒ“ƒO
+ 0xAD Ž„‚ð–Y‚ê‚È‚¢‚ÅcA0xAE ƒT[ƒrƒXƒtƒH[ƒ†[
+ 0xAF ƒsƒ“ƒN‚̃XƒvƒŠƒ“ƒOA0xB0 •\Ž¦–³‚µ
+ 0xB0 ƒOƒ‰ƒtƒBƒeƒB,
+ 0xB1 ƒfƒ‚ƒ“ƒXƒgƒŒ[ƒVƒ‡ƒ“A0xB2`0xBF •\Ž¦–³‚µ
+ 0xB2 ƒsƒ“ƒN‚̃[ƒvƒ|[ƒ^ƒ‹•—
+ 0xB3 ¬‚³‚È\Žš‰Ë‚ª‚Ó‚æ‚Ó‚æ
+ 0xB4 ƒoƒWƒŠƒJA0xB5 ƒGƒtƒFƒNƒg‚È‚µH
+ 0xB6 •‚¢~‚ª—§‘Ì“I‚É•‚‚©‚Ñオ‚é
+ 0xB7 ƒNƒ‚‚Ì‘ƒA0xB8` ƒGƒtƒFƒNƒg‚È‚µH
+
+ ‘¼î•ñ‹‚Þ
+ ?.81b‚Í“äB
+R 01cd (<sid>.l)x7
+ ƒI[ƒgƒXƒyƒ‹‘I‘ðŽˆŽóM
+ <sid>x7 ‚É‚Í NB,CB,FB,LB,SS,FBL,FD ‚̇‚ŃXƒLƒ‹ƒR[ƒh‚ªdword‚Å“ü‚é
+ ‚Ü‚¾‘I‘ð‚Å‚«‚È‚¢ƒXƒLƒ‹‚Ì•”•ª‚Í <sid> = 0x00000000 ‚ª“ü‚é
+S 01ce <sid>.l
+ ƒI[ƒgƒXƒyƒ‹‘I‘ðŽˆ‘—M
+R 01cf <crusader id>.l <target id>.l <?>.18b
+ Œ£gó‘Ôƒ^[ƒQƒbƒgON/OFFBŒ£g‚ªØ‚ê‚é‚Æ <target id> ‚ª 0x00000000 ‚É‚È‚é
+
+R 01d0 <ID>.l <num>.w
+ <num> : ‹CŒ÷‚Ì”(”ñLv)
+R 01d1 <monk id>.l <target monster id>.l <bool>.l
+ ”’‰HŽæ‚èó‘ÔON/OFFB<bool> ‚Í”’nŽæ‚謗§Žž‚É 0x00000001 ‰ðœŽž‚É 0x00000000 ‚ª—ˆ‚é
+R 01d2 <id>.l <delay>.l
+ ƒ‚ƒ“ƒN‚̃Rƒ“ƒ{ƒfƒBƒŒƒC(msec)
+ ŽO’iE˜A‘Å‚ÍŠî–{ƒfƒBƒŒƒC1000(+300)A–Ò—´‚ÍŠî–{ƒfƒBƒŒƒC700(+300)
+R 01d4 <ID>.l
+ •¶Žš—ñ“ü—Í‘‹•\Ž¦(ID‚ÍNPC‚ÌID‚ª“ü‚é)
+S 01d5 <len>.w <ID>.l <input>.?B 00
+ •¶Žš—ñ“ü—Í“à—e‘—M(ID‚ÍNPC‚ÌID‚ª“ü‚é)
+R 01d7 <ID>.l <equip point>.b <item id1>.w <item id2>.w
+ ‘•”õƒOƒ‰ƒtƒBƒbƒN <equip point> ‚Í 02Žè‚Æ09‘«‚Ì‚ÝŠm”FBid2‚ͶŽè
+R 01d8 <ID>.l <speed>.w <opt1>.w <opt2>.w <option>.w <class>.w <hair>.w <item id1>.w <item id2>.w <head option bottom>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.l <emblem>.l <manner>.w <karma>.B <sex>.B <X_Y_dir>.3B ?.B ?.B <sit>.B <Lv>.B ?.B
+ ƒ}ƒbƒvƒ[ƒhŽž&ˆÚ“®Žž—pAŒü‚«•t‚«—pƒLƒƒƒ‰î•ñ?(0078‚ÌãˆÊƒo[ƒWƒ‡ƒ“)
+R 01d9 <ID>.l <speed>.w <opt1>.w <opt2>.w <option>.w <class>.w <hair>.w <item id1>.w <item id2>.w.<head option bottom>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.l <emblem>.l <manner>.w <karma>.B <sex>.B <X_Y_dir>.3B ?.B ?.B <Lv>.B ?.B
+ ƒeƒŒƒ|“™‚Ì•\Ž¦”ÍˆÍ“à•¦‚«ƒLƒƒƒ‰—pAŒü‚«•t‚«–³‚µƒLƒƒƒ‰î•ñ?(0079‚ÌãˆÊƒo[ƒWƒ‡ƒ“)
+R 01da <ID>.l <speed>.w <opt1>.w <opt2>.w <option>.w <class>.w <hair>.<item id1>.w <item id2>.w <head option bottom>.w <server tick>.l <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.l <emblem>.l <manner>.w <karma>.B <sex>.B <X_Y_X_Y>.5B ?.B ?.B ?.B <Lv>.B ?.B
+ •\Ž¦”͈͓àƒLƒƒƒ‰ˆÚ“®î•ñ(007b‚ÌãˆÊƒo[ƒWƒ‡ƒ“)
+S 01db
+ ˆÃ†‰»key—v‹
+R 01dc <len>.w <key>.?B
+ ˆÃ†‰»key‘—•t
+S 01dd <version>.l <account name>.24B <md5 binary>.16B <version2>.1B
+ id&ˆÃ†‰»Ï‚Ýpass‘—M
+ ‡‚ɃNƒ‰ƒCƒAƒ“ƒg‚ª01db‚ð‘—‚éA
+ ŽI‚ª01dc‚Åkey‚ð•Ô‚·A
+ ƒNƒ‰ƒCƒAƒ“ƒg‚ª"<key><password>"‚ɂ‚¢‚Ämd5ŒvŽZ‚µ
+ <md5 binary>‚ÌŠ‚ð–„‚ß‚Ä01dd‚ð‘—‚éB
+ <passwordencrypt2>‚ÌŽž‚Í
+ "<key><password>"‚ɑ΂µ‚Ämd5ŒvŽZ‚Æ‚µ‚Ä‚¢‚銂ð
+ "<password><key>"‚Æ•ÏX‚·‚é
+R 01de <skill ID>.w <src ID>.l <dst ID>.l <server tick>.l <src speed>.l <dst speed>.l <param1>.l <param2>.w <param3>.w <type>.B
+ UŒ‚ŒnƒXƒLƒ‹ƒGƒtƒFƒNƒg@(0114‚ÌãˆÊƒo[ƒVƒ‡ƒ“H)
+ type=04 ‰Î•Ç‚ÅŠÏ‘ª type=06‚Æ‚Ù‚Ú“¯‚¶?
+ type=05 NB/FBl‚Ì•ªŽU‚µ‚½ƒ_ƒ[ƒW—pH
+ type=06 ’P”­‚à‚Ì? param1‚̓_ƒ[ƒW‡ŒvAparam2‚ÍlevelAparam3‚Í1ŒÅ’è‚Æ—\‘z
+ type=07 ƒ_ƒ[ƒW•\Ž¦–³‚µH
+ type=08 ˜A‘Å‚à‚Ì? param1‚̓_ƒ[ƒW‡ŒvAparam2‚ÍlevelAparam3‚Í•ªŠ„”‚Æ—\‘z
+ type=09 ƒ_ƒ[ƒWƒ‚[ƒVƒ‡ƒ“‚È‚µ‚Ƀ_ƒ[ƒW‚¾‚¯•\Ž¦‚³‚ê‚镨(ƒCƒ“ƒfƒ…ƒA)‚ÆŽv‚Á‚½‚Ì‚¾‚ªƒ_ƒ[ƒWƒ‚[ƒVƒ‡ƒ“‚ªo‚镨B(‹@”\‚Í“ä)
+S 01df <ID>.|
+ GM‰EƒNƒŠƒbƒN‚É‚æ‚éID‚̃`ƒƒƒbƒg‹ÖŽ~‰ñ”ŽQÆH
+R 01e1 <ID>.l <num>.w
+ <num> : ‹CŒ÷‚Ì”(”ñLv) ˆê“x•\Ž¦‚µ‚½‚çŒã‚Ç‚ñ‚Ènum‚ª—ˆ‚Ä‚à–³Ž‹‚³‚ê‚éB
+R 01e6 <partner name>.24B
+ Œ‹¥ƒXƒLƒ‹‚ ‚È‚½‚Ɉ§‚¢‚½‚¢Žg—pŽž‚Ì‹©‚Ѻ
+S 01e7
+ ƒXƒpƒmƒr‚Å/doridori‚µ‚½‚ç”ò‚ñ‚Å‚­‚éBSPR‰ñ•œ—Ê2”{ƒtƒ‰ƒO‚𗧂ĂéƒpƒPƒbƒg
+S 01e8 <party name>.24B <item1>B <item2>B
+ <item1>ƒAƒCƒeƒ€ŽûW•û–@B0‚ÅŒÂl•ÊA1‚Ńp[ƒeƒBŒö—L
+ <item2>ƒAƒCƒeƒ€•ª”z•û–@B0‚ÅŒÂl•ÊA1‚Ńp[ƒeƒB‚É‹Ï“™•ª”z
+ (00f9‚ÌãˆÊƒo[ƒVƒ‡ƒ“)
+R 01ea <ID>.l
+ Œ‹¥ƒGƒtƒFƒNƒg(‰¹ŠyAŽ†á)
+ ID‚ÍV•w‚Ì‚à‚Ì‚ª“ü‚éH
+S 01ed
+ ƒXƒpƒmƒr‚ª”š—ô”g“®‚É‚È‚éƒtƒ‰ƒO‚𗧂ĂéƒpƒPƒbƒg
+R 01ee <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B <card>.4w}.18B*
+ Š—LÁ–Õ•i&ŽûW•iƒŠƒXƒg
+ –î‚ÌꇂÍ?.2B‚ª0x8000‚É‚È‚é
+ 00a3‚©‚ç•ÏX
+R 01ef <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B <card>.4w}.18B*
+ ƒJ[ƒg“àƒAƒCƒeƒ€BÁ–Õ•i/ŽûW•i
+ 0123‚©‚ç•ÏX
+R 01f0 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B <card>.4w}.18B*
+ ƒJƒvƒ‰‚³‚ñ‚É—a‚¯‚Ä‚ ‚éÁ–Õ•i&ŽûW•iƒŠƒXƒg
+ 00a5‚©‚ç•ÏX
+R 01f4 <name>.24B <trade id?>.L <LV>.w
+ æ•û‚©‚çŽæˆø—v¿
+ 00e5‚©‚ç•ÏX
+R 01f5 <result>.B <trade id?>.L <LV>.w
+ ‚±‚¿‚ç‚©‚ç‚ÌŽæˆø—v¿‚ɑ΂·‚锽‰ž
+ 00e7‚©‚ç•ÏX
+S 0200 <login name>.24B
+ ragexe‚É/accountƒIƒvƒVƒ‡ƒ“‚ð‚‚¯‚Ä‹N“®‚·‚é‚ƃƒOƒCƒ“—v‹‚É•t‰Á‚³‚ê‚éƒpƒPƒbƒg
+S 0204 <?>.16B
+ ƒƒOƒCƒ“—v‹‚É•t‰Á‚³‚ê‚éƒpƒPƒbƒgB16ƒoƒCƒg‚͌ŒèH
+S 020B <?>.17B
+ ƒLƒƒƒ‰ƒNƒ^ƒT[ƒoÚ‘±—v‹0065‚É•t‰Á‚³‚ê‚éƒpƒPƒbƒgB1+0204‚Ì16ƒoƒCƒg‚Å17ƒoƒCƒgH
diff --git a/doc/conf_ref.txt b/doc/conf_ref.txt
index fc4cd72e6..b31ffc5c2 100644
--- a/doc/conf_ref.txt
+++ b/doc/conf_ref.txt
@@ -1,1996 +1,1996 @@
-==========================================================================
-eAthena dev 1.0.0 mod1004 Reference +alpha of the present conf
---------------------------------------------------------------------------
-
-< What this file is. >
-
- It is the reference of the setting method of an Athena setting file.
-although it is not a HowTo, it not Those who cannot use Athena even if they see this
- To give up obediently is safer.
-
-
-< The list of conf >
-
- login_athena.conf A setup of login-server
- char_athena.conf A setup of char-server
- inter_athena.conf A setup of inter-server
- map_athena.conf A setup of map-server
- battle_athena.conf This file has been splitted into 13 files, separating them
- depending on their function. Those files are:
-
- *battle.conf Regarding battle system configuration.
- *client.conf Regarding client configuration.
- *drops.conf Regarding mob drops configuration
- *guild.conf Regarding guild configuration.
- *monster.conf Regarding monsters guidance and settings.
- *player.conf Regarding player and/or character settings.
- *exp.conf Regarding exp settings.
- *items.conf Regarding items settings.
- *party.conf Regarding party settings.
- *skill.conf Regarding skill settings
- *gm.conf Regarding GM settings (not GM commands).
- *misc.conf Regarding various settings (such as PK)
- *pet.conf Regarding pet settings.
- atcommand_athena.conf A setup of map-server (setup of the GM command or @ command)
- ladmin_athena.conf A setup of ladmin ('c' version)
-
-
-< The fundamental setting method >
-
-One line "key: Enter as a value."
-<Example>
-key: value
-
-Head of the sentence It will become a comment if it begins by //.
-<Example>
-//Since this line is a comment, it is not processed.
-
-< Two or more same items >
-
-Priority is given to what was written later unless it is written especially clearly that two or more same items are written.
-login_athena.conf allow and deny -- and -- map_athena.conf map, npc, etc.
-Another processing will be carried out if two or more lines are written.
-
-==========================================================================
-1. conf/login_athena.conf
---------------------------------------------------------------------------
-
-< What this file is. >
-
- A setup of login-server (server which manages account) is described.
- It mainly becomes a setup of an administrator.
-
-
-< Explanation of a key >
-
-If you change one of these parameters, you must restart login-server to update.
-If you repeat one parameter (except 'allow', 'deny' or 'ladminallowip') in the configuration file, only the latest will be validated.
- 'Allow', 'deny' and 'ladminallowip' parameters are list parameters. Add as many 'allow', 'deny' or 'ladminallowip' as you need.
-
-login_port
- Port to bind login-server to (always binds to all IP addresses)
- It is the port used by login-server. It can be omitted and a default is 6900.
- Default value: 6900.
-
-admin_pass
- It is the administrator password used to administrate the login-server through a remote connection.
- You will found some tools in the tool directory, and specially the tool
- ./tool/ladmin (for Login ADMINistration), a perl software, which manages all accounts.
- Void password will not work.
- NOTICE: You must change this or attackers can exploit your server.
- Default value: admin. CHANGES this default value to avoid hack.
-
-ladminallowip
- It's a list parameter. To add an item in this list, just add a new line. Each line can only have 1 parameter.
- This list indicates the IP that the server accepts for a remote administration.
- This parameter accepts IP descriptions, like:
- IP or the begining of IP: it's a characters match. Write an IP (123.456.789.012) or the begining of the IP (123.456.).
- Because it's a characters match, the IP 123.4 matches with 123.4.xxx.yyy and 123.4z.xxx.yyy. So, add a final '.' to be sure of the IP.
- Example:
- allow: 127.0.0.1
- allow: 192.168.10.
- IP with number of bits for a network: it's a logical match. Write the network like this: 123.456.789.012/<#_of_mask_bits>
- Don't use the final '.', but use all four values.
- Example:
- allow: 127.0.0.1/32 (match only 1 IP, because 32 bits match all bits).
- allow: 192.168.10/24 (matches the network begining by 192.168.10).
- IP with mask of a network: it's a logical match. Write the network like this: 123.456.789.012/345.678.901.234
- Don't use the final '.', but use all four values for the IP and the mask.
- Example:
- allow: 127.0.0.1/255.255.255.255 (match only 1 IP).
- allow: 192.168.10.0/255.255.255.0 (matches the network begining by 192.168.10).
- all: matches any IP.
- Example:
- allow: all.
- clear: clears the list at this point. Really useful for 'import' parameter, in the new configuration file.
- Example:
- allow: clear.
- Add as many IP's as you wish.
- Default value: all.
-
-gm_pass
- It is the required password when a player wants to change its (normal) account to a GM (Game Master) account.
- It is used by the @gm command.
- Level of gm is set with level_new_gm parameter.
- NOTICE: You should also change this one.
- Default value: gm. CHANGES this default value to avoid player hack.
-
-level_new_gm
- Level of new GM created with @gm command. (default: 60)
- If you set to 0, you disable creation of new GM with @gm.
- To be able to create a gm with @gm, you must:
- - give a level to this value (not 0)
- - enable to level 0 the @gm command (atcommand_athena.conf) (default 100)
- - enable gm commands to normal player (battle_athena.conf, atcommand_gm_only parameter)
- - and normal player must give correct password when he use the @gm command
- Possible value: 0 to 99
- Default value: 60
-
-new_account
- It is whether to permit new account creation.
- When allowed, the player must add _F or _M at the end of its login account to create a new account.
- This extension of the account gives the sex of the new created account.
- Without the _F/M, the account must have at least 4 characters.
- The account will not have e-mail to protect characters against deletion.
- The given password at first connection (when the account is created) is the account password.
- The value can be: 1 (to allow creation) or 0 (to forbid creation).
- Default value: 1.
-
-account_filename
- It specifies the accounts save file.
- Gives the accounts txt database name and path to stores accounts information.
- Look into the file to have a short description of the database structure.
- Can be omited, a default is save/account.txt.
- Default value: save/account.txt.
-
-gm_account_filename
- It specifies which account IDs have GM privileges, and what level they have.
- We recommand to use only ID value lower than first normal player ID (2000000).
- Levels ranges from 0 (no privilege/normal player) to 99 (highest privilege).
- If you change a value inside this file, you must restart login-server to use the new value
- or use reloadgm ladmin command.
- Can be omited, a default is conf/GM_account.txt.
- Default value: conf/GM_account.txt
-
-gm_account_filename_check_timer
- Timer to check if GM_account file has been changed and reload GM account automaticaly
- (in seconds)
- Value: 0 (disabled), or 2 or more.
- Default: 15
-
-login_log_filename
- Gives the log file name and path to stores logs information.
- All operations done by the login-server are written in this file with a time stamp.
- Default value: log/login.log
-
-login_log_unknown_packets_filename
- Gives the file name and path of the file that logs the received unknown packets.
- It's used for debug or hack check.
- All information are displayed with the time stamp, the ip of the source, the packet number,
- the number of received bytes and the detail of the packet with hex and text values. Example:
- 01-06-2004 21:25:21.579: receiving of an unknown packet -> disconnection
- parse_login: connection #5 (ip: 82.64.111.96), packet: 0x4e92 (with being read: 28).
- Detail (in hex):
- 92 4e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ’N..............
- 00 00 00 00 00 00 00 00 00 00 00 00 ............
- Default value: log/login_unknown_packets.log
-
-save_unknown_packets
- It indicates if the unknown packets are saved or not.
- The unknown packets received from the char-server or remote administration does not relate to this parameter,
- because they are always saved.
- The value can be: 1 (to save unknown packets) or 0 (to not save them).
- Be careful: if you receive an attack, your hard disk can cause lag...
- So, active this option with a speed hard disk or for debug only.
- Default value: 0
-
-display_parse_login
- It indicates if you want display the parse of the packets received in a normal connection.
- At all received packets in normal connection, the server display a message about the size and the value.
- It's useful for debug. Possible values: 0: no (default), 1: yes.
- Default value: 0
-
-display_parse_admin
- It's same of 'display_parse_login' parameter, but only for remote administration received packets.
- It's useful for debug. Possible values: 0: no (default), 1: yes.
- Default value: 0
-
-display_parse_fromchar
- It's same of 'display_parse_login' parameter, but only for char-server received packets.
- It's useful for debug. Possible values: 0: no (default), 1: yes (without packet 0x2714), 2: all packets.
- Default value: 0
-
-date_format:
- indicate how to display date in logs, to players, etc.
- 0: 31-12-2004 23:59:59
- 1: 12-31-2004 23:59:59
- 2: 2004-31-12 23:59:59
- 3: 2004-12-31 23:59:59
- Default value: 3
-
-min_level_to_connect
- Indicate the minimum GM level of player that the server accepts to connection.
- 0: all players (normal player are 0. it's default), or
- 1-99: GM level at least with level x
- Default value: 0 (any player or GM)
-
-add_to_unlimited_account
- Give possibility to adjust (ladmin command: timeadd) the time of an unlimited account.
- If set to on/1/yes..., the adjustment is be done from actual time to set the final time of the account.
- If set to no/0/no..., the adjustment can not be done on an unlimited account.
- You must set (ladmin command: timeset) a final time before to adjust (ladmin command: timeadd)
- Default value: no
-
-start_limited_time
- Starting additional sec from now for the limited time at creation of account
- -1: new account are created with UNlimited time (default value)
- 0 or more: new accounts was created by addition of the value (in sec) to the actual time (to set first limited time)
- Default value: -1
-
-check_ip_flag
- It's to check IP of a player between login-server and char-server (part of anti-hacking system)
- If player doesn't have same IP, connection is refused.
- Set to 0/off/no to not check IP of player.
- Set to 1/on/yes if you want to check (default)
- Note: if you enable this option, be sure that your (local/lan/wan) players use correct ip (in xml file) to contact servers,
- and that your LAN is correctly configured (!), and that LAN configuration of eathena is right.
- if not correct, you can read list of char-servers, but not look slots of characters (rejected by server).
- Default value: yes
-
-order
- This parameter controls how the login-server must use the 'allow' and 'deny' lists.
- 'Allow' and 'deny' are used to do IP lists.
- 3 possibilities:
- 'deny,allow': to sum it up, it's like 'allow if not deny'. The login-server only checks the 'deny' list.
- If the connected IP is in the 'deny' list, the login-server refuses the connection, otherwise it accepts it.
- 'allow,deny': to sum it up, it's like 'deny if not allow'. The login-server only checks the 'allow' list.
- If the connected IP is in the 'allow' list, the login-server accepts the connection, otherwise it refuses it.
- 'mutual-failture': to sum it up, it's like 'allow if in allow list and not in the deny list'.
- The login-server checks the 'allow' list. If the connected IP is in the 'allow' list,
- the login-server checks it in the 'deny' list. If the connectec IP is not in the 'deny' list,
- the login-server accepts the conection, otherwise it refuses it.
- In this case, a non 'allow' IP or a 'deny' IP will be never accepted.
- If you don't use allow AND deny, all ip are authorised.
- Default value: deny,allow.
-
-allow
- It's a list parameter. To add an item in this list, just add a new line. Each line can only have 1 parameter.
- This list depends on the 'order' parameter (read 'order' parameter to known what the login-server do with this list).
- This parameter accepts IP descriptions, like:
- IP or the begining of IP: it's a characters match. Write an IP (123.456.789.012) or the begining of the IP (123.456.).
- Because it's a characters match, the IP 123.4 matches with 123.4.xxx.yyy and 123.4z.xxx.yyy. So, add a final '.' to be sure of the IP.
- Example:
- allow: 127.0.0.1
- allow: 192.168.10.
- IP with number of bits for a network: it's a logical match. Write the network like this: 123.456.789.012/<#_of_mask_bits>
- Don't use the final '.', but use all four values.
- Example:
- allow: 127.0.0.1/32 (match only 1 IP, because 32 bits match all bits).
- allow: 192.168.10/24 (matches the network begining by 192.168.10).
- IP with mask of a network: it's a logical match. Write the network like this: 123.456.789.012/345.678.901.234
- Don't use the final '.', but use all four values for the IP and the mask.
- Example:
- allow: 127.0.0.1/255.255.255.255 (match only 1 IP).
- allow: 192.168.10.0/255.255.255.0 (matches the network begining by 192.168.10).
- all: matches any IP.
- Example:
- allow: all.
- clear: clears the list at this point. Really useful for 'import' parameter, in the new configuration file.
- Example:
- allow: clear.
- It does not support the backward match of host name.
- Default value: <no list>.
-
-deny
- This list works exactly like the 'allow' list, but for the 'deny' list.
-
-import
- Gives an other configuration file to include in.
- You must write the additionnal configuration file name and path.
- The mentionned file can include any parameter of the login configuration.
- You can create a chain or configuration files if necessary.
- Default value: <no_additional_configuration_file>.
-
-<Example>
-login_port: 6900
-admin_pass: admin
-ladminallowip: all
-gm_pass: gm
-level_new_gm: 60
-new_account: 1
-account_filename: save/account.txt
-gm_account_filename: conf/GM_account.txt
-gm_account_filename_check_timer: 15
-login_log_filename: log/login.log
-login_log_unknown_packets_filename: log/login_unknown_packets.log
-save_unknown_packets: 0
-display_parse_login: 0
-display_parse_admin: 0
-display_parse_fromchar: 0
-date_format: 3
-min_level_to_connect: 0
-add_to_unlimited_account: off
-start_limited_time: -1
-check_ip_flag: yes
-order: deny,allow
-//deny: all
-//allow: 127.0.0.1
-//allow: 10.0.
-//allow: 172.16.0.0/16
-//allow: 192.168.0.0/255.255.255.0
-//import: import/new_login.conf
-
-==========================================================================
-2. conf/char_athena.conf
---------------------------------------------------------------------------
-
-< What this file is. >
-
- A setup of char-server (server which manages the character data in one world)
- It ???. The name of a world, the password of a world, a server's IP,
- A data file name etc. is described.
-
-
-<Explanation of a key>
-
-userid
- It is ID which this world uses. It registers with login-server.
- ID of account is specified.
- And also [ it uses it for connecting to map-server used in this world ]
- It is used also for discernment of the world within login-server.
- It is each when registering two or more worlds into the same login-server.
- It is necessary to use another ID by char-server.
-
-passwd
- It is a password corresponding to ID which this world uses.
- It is used for the time of the registration to login-server, and connecting to map-server.
-
-server_name
- It is the name of this world. It is displayed when logged in by the client.
-
-wisp_server_name
- Wisp name for server: used to send wisp from server to players (between 4 to 23 characters)
- Default: Server
-
-login_ip
- It is the IP address of login-server which registers a world seen from char-server.
-
-login_port
- It is the port used by login-server. It can omit and a default is 6900.
-
-char_ip
- It is the IP address of char-server seen from the client.
-
-char_port
- It is the port used by char-server. It can omit and a default is 6121.
-
-email_creation
- Option to force a player to create an e-mail.
- If a player have default e-mail, and if you activate this option, the player can only connect in the game (to arrive on a map) like follow:
- - Create at least 1 character
- - Select 1 character
- - Select DEL to enter his/her e-mail. (if OK is choosen, client says to the player: 'invalid e-mail')
- - If his/her e-mail is correct, the player enter in the game (an e-mail is saved definitively).
- - If his/her e-mail is incorrect, he/she have 'incorrect e-mail' and must select again DEL.
- - After entering in the game (when the player arrives on a map), DEL and SEL/OK button work normaly for all next connections.
- Resume: If a player have "incorrect/invalid e-mail" when he/she click on 'OK' button,
- the player must click 'DEL' button and register his/her NEW e-mail to enter in the game
- So, default is 0, because administrator must explain to their players before to activate this option.
-
-char_txt
- It is the data file name which stores character data.
- It is not omissible.
-
-char_maintenance
- If it is made 1, it will be in a maintenance state.
- It can omit and a default is 0.
-
-char_new
- If it is made 1, the time (new) of being displayed on a client will stick.
- It can omit and a default is 0.
-
-max_connect_user
- It is the maximum number of the user linked to a Char-server.
- If it is made 0, the maximum number restrictions will be lost.
- Please use to apply restriction of the connection number.
- It can omit and a default is 0.
-
-check_ip_flag
- It's to check IP of a player between char-server and other servers (part of anti-hacking system)
- If player doesn't have same IP, connection is refused.
- Set to 0/off/no to not check IP of player.
- Set to 1/on/yes if you want to check (default)
- Note: if you enable this option, be sure that your (local/lan/wan) players use correct ip (in xml file) to contact servers,
- and that your LAN is correctly configured (!), and that LAN configuration of eathena is right.
- default: yes
-
-autosave_time
- It is time to save data automatically at a file. A unit is a second.
- It can omit and a default is 300 (5 minutes).
-
-start_point
- When a new character is created, it is the place where they start.
- It describes like "a map file name, X coordinates, and Y coordinates."
- It can omit and is a default. It is new_1-1.gat and 53,111.
-
-start_weapon:
- Starting weapon for new characters
- default value: 1201 (Knife)
-
-start_armor:
- Starting armor for new characters
- default value: 2301 (Cotton Shirt)
-
-start_zeny
- When new character is made, the quantity of ZENY which it has from the start is set up.
- Being able to omit, a default is 500.
-
-unknown_char_name
- The name returned when the name request of character which does not exist in a character server is carried out
- It sets up. Being able to omit, a default is Unknown.
-
-char_log_filename
- A character server's log file is specified.
- Being able to omit, a default is log/char.log.
-
-name_ignoring_case
- Allow or not identical name for characters but with a different case (upper/lower): example: Test-test-TEST-TesT
- 0 (default): no character can have same name, instead of the case (no Test-TEST...)
- 1: more than 1 of character can have same name if names are not using same case (one with Test, another with TEST, etc...)
-
-char_name_option
- Manage possible letters/symbol in the name of charater. Control character (0x00-0x1f) are never accepted. Possible values are:
- 0: no restriction (default)
- 1: only letters/symbols in 'char_name_letters' option.
- 2: Letters/symbols in 'char_name_letters' option are forbidden. All others are possibles.
- default: 0.
-
-char_name_letters
- Set the letters/symbols that you want use with the 'char_name_option' option.
- Note: add 'space' between 2 others letters/symbols.
- default: void.
-
-online_txt_filename
- It sets the filename of the file which receives the online players list in text
- default: online.txt
-
-online_html_filename
- It sets the filename of the file which receives the online players list, but in html version
- default: online.html
-
-online_sorting_option
- It sets how to display online players in the txt/html files.
- 0: no sorting (default)
- 1: by alphabetical order of their name
- 2: by number of their zenys
- 3: by their base level
- 4: by their job (and job level inside the same job)
- 5: by alphabetical order of their actual map location
- Note: sorting operation with a lot of online players can take time on a slow computer.
-
-online_display_option
- It sets which columns that you want display in the online files. Do the addition of these values:
- (if value is 0, no file is done)
- 1: name (just the name, no function like 'GM')
- 2: job
- 4: levels
- 8: map name
- 16: mapname and coordonates
- 32: zenys
- 64: name (with 'GM' if the player is a GM)
- default value: 1 (only name)
-
-online_gm_display_min_level
- minimum GM level to display 'GM' when we want to display it.
- default value: 1 (any GM)
-
-online_refresh_html
- refresh time (in sec) of the html file in the explorer
- default: 20
-
-import
- The line is replaced with the contents of another file.
-
-
-< Example >
-userid: s1
-passwd: p1
-server_name: eAthena
-wisp_server_name: Server
-login_ip: 127.0.0.1
-login_port: 6900
-char_ip: 127.0.0.1
-char_port: 6121
-email_creation: 0
-char_txt: save/athena.txt
-char_maintenance: 0
-char_new: 0
-max_connect_user: 0
-check_ip_flag: yes
-autosave_time: 15
-start_point: new_1-1.gat,53,111
-start_weapon: 1201
-start_armor: 2301
-start_zeny: 500
-unknown_char_name: Unknown
-char_log_filename: log/char.log
-name_ignoring_case: 0
-char_name_option: 0
-//char_name_letters:
-online_txt_filename: online.txt
-online_html_filename: online.html
-online_sorting_option: 0
-online_display_option: 1
-online_gm_display_min_level: 1
-online_refresh_html: 20
-//import: import/new_char.conf
-
-
-==========================================================================
-3. conf/inter_athena.conf
---------------------------------------------------------------------------
-
-< What this file is. >
-
- A setup of inter-server (server which manages the global data in one world)
- It ???. A data file name etc. is described.
- (It is operating as a part of char-server in program now.)
-
-< Explanation of a key >
-
-storage_txt
- It is the file name which stores warehouse data.
- It can omit and is a default. It is save/storage.txt.
-
-party_txt
- It is the file name which stores party data.
- It can omit and is a default. It is save/party.txt.
-
-guild_txt
- It is the file name which stores guild data.
- It can omit and is a default. It is save/guild.txt.
-
-pet_txt
- It is the file name which stores pet data.
- It can omit and is a default. It is save/pet.txt.
-
-castle_txt
- It is the file name which stores the castle data of a guild.
- It can omit and is a default. It is save/castle.txt.
-
-guild_storage_txt
- It is the file name which stores guild warehouse data.
- Being able to omit, a default is save/g_storage.txt.
-
-accreg_txt
- It is the file name which stores the account share variable data in a world.
- It can omit and is a default. It is save/accreg.txt.
-
-party_share_level
- The restriction level of a fair distribution party is set up.
- Being able to omit, a default is 10.
-
-inter_log_filename
- An interchange server's log file is specified.
- Being able to omit, a default is log/inter.log.
-
-import
- The line is replaced with the contents of another file.
-
-
-< Example >
-storage_txt: save/storage.txt
-party_txt: save/party.txt
-guild_txt: save/guild.txt
-pet_txt: save/pet.txt
-castle_txt: save/castle.txt
-guild_storage_txt: save/g_storage.txt
-accreg_txt: save/accreg.txt
-party_share_level: 10
-inter_log_file: log/inter.log
-
-
-==========================================================================
-4. conf/map_athena.conf
---------------------------------------------------------------------------
-
-< What this file is. >
-
- A fundamental setup of map-server (server which manages game advance on the map in his duty)
- It ???.
-
-
-< Explanation of a key >
-
-userid
- It is ID which this world uses. It is used for the connecting to char-server.
-
-passwd
- It is a password corresponding to ID which this world uses.
-
-char_ip
- map-server‚©‚ç‚Ý‚½A‚±‚̃T[ƒo[‚ª’S“–‚·‚éƒ}ƒbƒv‚̃[ƒ‹ƒh‚ðŠÇ—‚·‚é
- char-server‚ÌIP‚Å‚·B
-
-char_port
- ƒ}ƒbƒv‚ð“o˜^‚·‚échar-server‚̃|[ƒg‚Å‚·BÈ—ª‰Â”\‚ŃfƒtƒHƒ‹ƒg‚Í6121‚Å‚·B
-
-map_ip
- ƒNƒ‰ƒCƒAƒ“ƒg‚©‚猩‚½‚±‚Ìmap-server‚ÌIP‚Å‚·B
-
-map_port
- map-server‚ÅŽg—p‚·‚éƒ|[ƒg‚Å‚·BÈ—ª‰Â”\‚ŃfƒtƒHƒ‹ƒg‚Í5121‚Å‚·B
-
-autosave_time
- ƒf[ƒ^‚ðŽ©“®“I‚ɃLƒƒƒ‰ŽI‚É‘—‚鎞ŠÔ‚Å‚·B’PˆÊ‚Í•b‚Å‚·B
- È—ª‰Â”\‚ŃfƒtƒHƒ‹ƒg‚Í60(1•ª)‚Å‚·B
-
-water_height
- …ê‚Ì‚‚³‚ðŽw’è‚·‚éƒtƒ@ƒCƒ‹‚ðŒˆ‚ß‚Ü‚·B
- È—ª‰Â”\‚ÅAƒfƒtƒHƒ‹ƒg‚Íconf/water_height.txt‚Å‚·B
-
-motd_txt
- Message of the Dayƒtƒ@ƒCƒ‹‚ðŽw’肵‚Ü‚·B
- È—ª‰Â”\‚ÅAƒfƒtƒHƒ‹ƒg‚Íconf/motd.txt‚Å‚·B
-
-help_txt
- @help‚Å•\Ž¦‚·‚éƒtƒ@ƒCƒ‹‚ðŽw’肵‚Ü‚·B
- È—ª‰Â”\‚ÅAƒfƒtƒHƒ‹ƒg‚Íconf/help.txt‚Å‚·B
-
-mapreg_txt
- MAPƒT[ƒo[“àƒLƒƒƒ‰ƒNƒ^[‹¤—L•Ï”‚ð•Û‘¶‚·‚éƒtƒ@ƒCƒ‹‚ðŽw’肵‚Ü‚·B
- È—ª‰Â”\‚ÅAƒfƒtƒHƒ‹ƒg‚Ísave/mapreg_txt‚Å‚·B
-
-data_grf
- ROƒf[ƒ^ƒtƒ@ƒCƒ‹ data.grf ‚ւ̃pƒX‚Å‚·B
- È—ª‰Â”\‚ÅAƒfƒtƒHƒ‹ƒg‚Í ./data.grf ‚Å‚·B
- grf-files.txt‚ª‚ ‚éꇂ»‚¿‚ç‚Ìݒ肪—D悳‚ê‚Ü‚·B
-
-sdata_grf
- ƒTƒNƒ‰ƒCƒf[ƒ^ƒtƒ@ƒCƒ‹ sdata.grf ‚ւ̃pƒX‚Å‚·B
- È—ª‰Â”\‚ÅAƒfƒtƒHƒ‹ƒg‚Í ./sdata.grf ‚Å‚·B
- grf-files.txt‚ª‚ ‚éꇂ»‚¿‚ç‚Ìݒ肪—D悳‚ê‚Ü‚·B
-
-adata_grf
- ƒ¿ƒf[ƒ^ƒtƒ@ƒCƒ‹ adata.grf ‚ւ̃pƒX‚Å‚·B
- È—ª‰Â”\‚ÅAƒfƒtƒHƒ‹ƒg‚Í ./adata.grf ‚Å‚·B
- grf-files.txt‚ª‚ ‚éꇂ»‚¿‚ç‚Ìݒ肪—D悳‚ê‚Ü‚·B
-
-npc
- “Ç‚Ýž‚Þnpcƒf[ƒ^ƒtƒ@ƒCƒ‹‚ւ̃pƒX‚Å‚·B
- •¡”Žw’è‰Â”\‚ÅAŽw’肵‚½‡‚Ƀ[ƒh‚µ‚Ü‚·B
- clear ‚ðŽw’è‚·‚é‚Æ‚»‚ê‚Ü‚Å‚É“o˜^‚µ‚½ƒpƒX‚ð‘S‚Ä휂µ‚Ü‚·B
-
-delnpc
- “Ç‚Ýž‚Ü‚È‚¢npcƒtƒ@ƒCƒ‹‚ւ̃pƒX‚Å‚·B
- Žw’肵‚½ƒpƒX‚Ínpc‚ÅŽw’肳‚ꂽƒf[ƒ^ƒtƒ@ƒCƒ‹ƒŠƒXƒg‚©‚ç휂³‚ê‚Ü‚·B
- all ‚ðŽw’è‚·‚é‚Æ‘S‚Ä휂µ‚Ü‚·( npc: clear ‚Æ“¯‹`)B
-
-map
- ‚±‚̃}ƒbƒv‚ª’S“–‚·‚éƒ}ƒbƒvƒtƒ@ƒCƒ‹–¼‚Å‚·B
- •¡”Žw’è‰Â”\‚ÅAŽw’肵‚½‡‚Ƀ[ƒh‚µ‚Ü‚·B
- ‘¶Ý‚µ‚È‚¢ƒ}ƒbƒv‚ðŽw’肵‚½ê‡ƒGƒ‰[‚É‚È‚è‚Ü‚·B
- clear ‚ðŽw’è‚·‚é‚Æ‚»‚ê‚Ü‚Å‚É“o˜^‚µ‚½ƒtƒ@ƒCƒ‹–¼‚ð‘S‚Ä휂µ‚Ü‚·B
-
-delmap
- “Ç‚Ýž‚Ü‚È‚¢ƒ}ƒbƒvƒtƒ@ƒCƒ‹‚ւ̃pƒX‚Å‚·B
- Žw’肵‚½ƒtƒ@ƒCƒ‹‚Ímap‚ÅŽw’肳‚ꂽƒŠƒXƒg‚©‚ç휂³‚ê‚Ü‚·B
- all ‚ðŽw’è‚·‚é‚Æ‘S‚Ä휂µ‚Ü‚·( map: clear ‚Æ“¯‹`)B
-
-import
- ‚»‚Ìs‚ð•Êƒtƒ@ƒCƒ‹‚Ì’†g‚Æ’u‚«Š·‚¦‚Ü‚·B
-
-< Example >
-
-userid: s1
-passwd: p1
-char_ip: 127.0.0.1
-char_port: 6121
-map_ip: 127.0.0.1
-map_port: 5121
-autosave_time: 60
-nullpo_check: 1
-water_height: conf/water_height.txt
-data_grf: ./data.grf
-sdata_grf: ./sdata.grf
-npc: conf/warp/npc_warp.txt
-npc: conf/warp/npc_warp25.txt
-npc: conf/warp/npc_warp3.txt
-npc: conf/mob/npc_monster3J.txt
-map: prontera.gat
-map: prt_castle.gat
-inpcAmap‚Í‘½‚¢‚Ì‚ÅÈ—ªj
-delnpc: conf/sample/npc_test.txt
-npc: clear
-delmap: prontera.gat
-delmap: all
-
-==========================================================================
-5. conf/battle_athena.conf
---------------------------------------------------------------------------
-
-< What this file is. >
-
- Battle relation of map-server (server which manages game advance on the map in his duty),
- Other setup is described.
- All setup can be omitted and a default value is used at the time of an abbreviation.
-
-< The special character sequence which can be specified to be a value >
-
- yes on It is processed as 1. (Effective meaning)
- no off It is processed as 0. (Invalid meaning)
-
-
-< Explanation of a key >
-
-warp_point_debug
- ƒ[ƒvƒ|ƒCƒ“ƒg‚ð•’Ê‚É•\Ž¦‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðyes‚É‚·‚é‚Æ
- ƒ[ƒvƒ|ƒCƒ“ƒg‚Ì‚©‚í‚è‚ɃMƒ‹ƒhƒtƒ‰ƒO‚ª‚»‚ÌꊂÉo‚ă[ƒv
- ƒ|ƒCƒ“ƒg‚Ì–¼‘O‚ðŠm”F‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-enemy_critical
- ƒvƒŒƒCƒ„[‚Æ“¯‚¶LUK‚É‚æ‚éƒNƒŠƒeƒBƒJƒ‹”»’è‚ðMOB‚ƃyƒbƒg‚É—LŒø‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ‚±‚̃NƒŠƒeƒBƒJƒ‹‚Í‚à‚¿‚ë‚ñ•K’†‚È‚Ì‚ÅAon‚É‚·‚é‚Æ‚Flee‚Å‚àA
- LUK‚Ì‚‚¢“G‚ÌUŒ‚‚ª”ð‚¯‚Ã‚ç‚­‚È‚è‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-enemy_critical_rate
- ƒ‚ƒ“ƒXƒ^[‚ƃyƒbƒg‚̃NƒŠƒeƒBƒJƒ‹•p“x‚Ì•S•ª—¦‚Å‚·Benemy_critical‚ªyes‚¶‚á‚È‚¢‚Æݒ肵‚Ä‚à‰½‚̈Ӗ¡‚à‚ ‚è‚Ü‚¹‚ñBƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-enemy_str
- ƒ‚ƒ“ƒXƒ^[‚Ì‚ªUŒ‚‚·‚é‚Æ‚«‚ÌATKŒvŽZ‚ÉSTR‚ðŽg—p‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
-
-enemy_perfect_flee
- “G‚ªŠ®‘S‰ñ”ð‚ð‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðyes‚É‚·‚é‚Æ“G‚àŠ®‘S‰ñ”ð‚ð
- ‚·‚é‚悤‚É‚È‚è‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-casting_rate
- ƒXƒLƒ‹‚̉r¥ŽžŠÔ‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
- 200‚É‚·‚é‚Ɖr¥ŽžŠÔ‚ª”{‚É‚È‚èA0‚É‚·‚é‚Ɖr¥‚ª‚È‚­‚È‚è‚Ü‚·B
- 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-delay_rate
- ƒXƒLƒ‹Žg—pŒãƒfƒBƒŒƒC‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
- 200‚É‚·‚é‚ƃfƒBƒŒƒC‚ª”{‚É‚È‚èA0‚É‚·‚é‚ƃfƒBƒŒƒC‚ª‚È‚­‚È‚è‚Ü‚·B
- 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-delay_dependon_dex
- ƒXƒLƒ‹Žg—pŒãƒfƒBƒŒƒC‚ª‰r¥ŽžŠÔ‚Æ“¯‚¶‚悤‚ÉDEX‚ʼne‹¿‚ðŽó‚¯‚é‚©‚Ç‚¤‚©‚ð
- Žw’肵‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-skill_delay_attack_enable
- ƒXƒLƒ‹ƒfƒBƒŒƒC‚ÌŠÔUŒ‚‚Å‚«‚é‚©‚Ç‚¤‚©‚Å‚·Byes‚É‚·‚ê‚΃XƒLƒ‹ƒfƒBƒŒƒC‚ÌŠÔƒXƒLƒ‹‚ÍŽg‚¦‚È‚¢‚¯‚ÇUŒ‚‚Í‚Å‚«‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-left_cardfix_to_right
- “ñ“—¬‚̶Žè•Ší‚ÌŽí‘°A‘®«ASize‚̃_ƒ[ƒW•â³‚ð‰EŽè•Ší‚É“K—p‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðyes‚É‚·‚é‚ƶŽè•Ší‚É‚ÍŽí‘°A‘®«ASize‚̃_ƒ[ƒW•â³‚ªŠ|‚©‚ç‚È‚­‚È‚è‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-player_skill_add_range
- ƒvƒŒƒCƒ„[‚̃XƒLƒ‹ŽË’ö‚©‚ç“G‚ª—£‚ꂽŽž‚Ç‚ê‚®‚ç‚¢‚Ì‹——£‚܂ŃXƒLƒ‹‚ðŽg—p‰Â”\‚É‚·‚é‚©‚ðŒˆ‚ß‚Ü‚·BƒXƒLƒ‹‚ÌŽË’ö+player_skill_add_range‚܂ŃXƒLƒ‹‚ª“Í‚«‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·‚ª­‚µ‚Í“ü‚ꂽ•û‚ª‚¢‚¢‚Å‚·B
-
-skill_out_range_consume
- ƒXƒLƒ‹‚ÌŽË’ö‚©‚ç“G‚ª—£‚ê‚ăXƒLƒ‹‚ªŽ¸”s‚µ‚½ŽžSP‚âƒAƒCƒeƒ€‚ðÁ–Õ‚·‚é‚©‚Ç‚¤‚©‚Å‚·BƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
-
-monster_skill_add_range
- ƒ‚ƒ“ƒXƒ^[‚̃XƒLƒ‹ŽË’ö‚©‚ç“G‚ª—£‚ꂽŽž‚Ç‚ê‚®‚ç‚¢‚Ì‹——£‚܂ŃXƒLƒ‹‚ðŽg—p‰Â”\‚É‚·‚é‚©‚ðŒˆ‚ß‚Ü‚·BƒXƒLƒ‹‚ÌŽË’ö+monster_skill_add_range‚܂ŃXƒLƒ‹‚ª“Í‚«‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
-
-player_damage_delay
- ƒvƒŒƒCƒ„[ƒLƒƒƒ‰‚ªƒ_ƒ[ƒW‚ðŽó‚¯‚½ŽžˆÚ“®‚Å‚«‚È‚¢ƒfƒBƒŒƒC‚ð“ü‚ê‚é‚©‚Ç‚¤‚©‚Å‚·B
- yes‚É‚·‚é‚ƃCƒ“ƒfƒ…ƒA‚Å‚àŽg‚í‚È‚¢ŒÀ‚èƒ_ƒ[ƒW‚ðŽó‚¯‚½Žž
- ‚µ‚΂炭‚Í“®‚«‚Ü‚¹‚ñBƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
-
-player_damage_delay_rate
- ƒvƒŒƒCƒ„[ƒLƒƒƒ‰‚ªƒ_ƒ[ƒW‚ðŽó‚¯‚½ŽžˆÚ“®‚Å‚«‚È‚¢ƒfƒBƒŒƒC‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
- 200‚É‚·‚é‚ƃfƒBƒŒƒC‚ª”{‚É‚È‚èA0‚É‚·‚é‚ƃfƒBƒŒƒC‚ª‚È‚­‚È‚è‚Ü‚·B
- player_damage_delay‚ªyes‚É‚µ‚Ä‚È‚¢‚ƈӖ¡‚ª‚ ‚è‚Ü‚¹‚ñB
- ƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-defunit_not_enemy
- –hŒäƒ†ƒjƒbƒgiƒZƒCƒtƒeƒBƒEƒH[ƒ‹/ƒjƒ…[ƒ}‚È‚Çj‚ªMOB‚ÉŒø‰Ê‚ð
- ‹y‚Ú‚³‚È‚¢‚悤‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·BƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
-
-random_monster_checklv
- ƒ‚ƒ“ƒXƒ^[¢ŠÒƒAƒCƒeƒ€‚ðŽg‚Á‚½‚Æ‚«‚ÉŽ©•ª‚æ‚èLV‚Ì‚‚¢ƒ‚ƒ“ƒXƒ^[‚ð¢ŠÒ‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- yes‚É‚·‚é‚ÆAŽ©•ª‚æ‚èLV‚Ì‚‚¢ƒ‚ƒ“ƒXƒ^[‚ð¢ŠÒ‚µ‚È‚¢‚悤‚É‚È‚è‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
-
-attribute_recover
- ‘®«‚É‚æ‚Á‚ÄUŒ‚‚³‚ê‚Ä‚à‰ñ•œ‚·‚é‚©‚Ç‚¤‚©‚Å‚·Bno‚ÌꇂÍ-‘®«‚ð
- 0‚É‚µ‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
-
-item_auto_get
- ƒAƒCƒeƒ€Ž©“®Žæ“¾‹@”\‚ðŽg—p‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- yes‚É‚·‚é‚ƃAƒCƒeƒ€ƒhƒƒbƒv‚ðƒ‚ƒ“ƒXƒ^[‚Ɉê”Ô‘½‚­ƒ_ƒ[ƒW‚ð—^‚¦‚½ƒLƒƒƒ‰‚ª
- Ž©“®‚ŃAƒCƒeƒ€‚ðŽæ“¾‚·‚é‚悤‚É‚È‚è‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-flooritem_lifetime
- °‚É—Ž‚¿‚½ƒAƒCƒeƒ€‚ªÁ‚¦‚é‚Ü‚Å‚©‚©‚鎞ŠÔ‚Å‚·B’PˆÊ‚Íms(ƒ~ƒŠ•b)‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Í60000(60•b)‚ÅŬ‚Í1000(1•b)‚Å‚·B1000–¢–ž‚È‚çƒfƒtƒHƒ‹ƒg‚ɃZƒbƒg‚³‚ê‚Ü‚·B
-
-item_first_get_time
- ƒ‚ƒ“ƒXƒ^[‚Ɉê”Ôƒ_ƒ[ƒW‚𑽂­—^‚¦‚½ƒLƒƒƒ‰ˆÈŠO‚ª‚»‚̃‚ƒ“ƒXƒ^[‚Ì
- ƒhƒƒbƒvƒAƒCƒeƒ€‚ðŽæ‚ê‚é‚悤‚É‚È‚é‚Ü‚Å‚ÌŽžŠÔ‚Å‚·B
- ’PˆÊ‚Íms(ƒ~ƒŠ•b)‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í10000(10•b)‚Å‚·B
-
-item_second_get_time
- item_first_get_time‚̌ヂƒ“ƒXƒ^[‚É“ñ”ԖڂɃ_ƒ[ƒW‚𑽂­—^‚¦‚½
- ƒLƒƒƒ‰ˆÈŠO‚ª‚»‚̃‚ƒ“ƒXƒ^[‚̃hƒƒbƒvƒAƒCƒeƒ€‚ðŽæ‚ê‚é‚悤‚É‚È‚é‚Ü‚Å‚Ì
- ŽžŠÔ‚Å‚·B’PˆÊ‚Íms(ƒ~ƒŠ•b)‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í7000(7•b)‚Å‚·B
-
-item_third_get_time
- item_second_get_time‚̌ヂƒ“ƒXƒ^[‚ÉŽO”ԖڂɃ_ƒ[ƒW‚𑽂­—^‚¦‚½
- ƒƒƒ‰ˆÈŠO‚ª‚»‚̃‚ƒ“ƒXƒ^[‚̃hƒƒbƒvƒAƒCƒeƒ€‚ðŽæ‚ê‚é‚悤‚É‚È‚é‚Ü‚Å‚Ì
- ŽžŠÔ‚Å‚·B’PˆÊ‚Íms(ƒ~ƒŠ•b)‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í5000(5•b)‚Å‚·B
-
-mvp_item_first_get_time
- ƒ‚ƒ“ƒXƒ^[‚Ɉê”Ôƒ_ƒ[ƒW‚𑽂­—^‚¦‚½ƒLƒƒƒ‰ˆÈŠO‚ª‚»‚̃‚ƒ“ƒXƒ^[‚Ì
- MVPƒAƒCƒeƒ€‚ðŽæ‚ê‚é‚悤‚É‚È‚é‚Ü‚Å‚ÌŽžŠÔ‚Å‚·B
- ’PˆÊ‚Íms(ƒ~ƒŠ•b)‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í10000(10•b)‚Å‚·B
-
-mvp_item_second_get_time
- mvp_item_first_get_time‚̌ヂƒ“ƒXƒ^[‚É“ñ”ԖڂɃ_ƒ[ƒW‚𑽂­—^‚¦‚½
- ƒLƒƒƒ‰ˆÈŠO‚ª‚»‚̃‚ƒ“ƒXƒ^[‚ÌMVPƒAƒCƒeƒ€‚ðŽæ‚ê‚é‚悤‚É‚È‚é‚Ü‚Å‚Ì
- ŽžŠÔ‚Å‚·B’PˆÊ‚Íms(ƒ~ƒŠ•b)‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í10000(10•b)‚Å‚·B
-
-mvp_item_third_get_time
- mvp_item_second_get_time‚̌ヂƒ“ƒXƒ^[‚ÉŽO”ԖڂɃ_ƒ[ƒW‚𑽂­—^‚¦‚½
- ƒLƒƒƒ‰ˆÈŠO‚ª‚»‚̃‚ƒ“ƒXƒ^[‚ÌMVPƒAƒCƒeƒ€‚ðŽæ‚ê‚é‚悤‚É‚È‚é‚Ü‚Å‚Ì
- ŽžŠÔ‚Å‚·B’PˆÊ‚Íms(ƒ~ƒŠ•b)‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í2000(2•b)‚Å‚·B
-
-item_rate
- ƒAƒCƒeƒ€ƒhƒƒbƒv—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
- 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-drop_rate0item
- —Ž‰ºŠm—¦0‚̃AƒCƒeƒ€(ˆê•”ƒ‚ƒ“ƒXƒ^[‚É‚¨‚¯‚郊ƒ“ƒS)‚𗎉º‚·‚é‚©‚Ç‚¤‚©‚ÌÝ’è‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-base_exp_rate
- BaseEXP‚ÌŠ“¾”{—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
- 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-job_exp_rate
- JobEXP‚ÌŠ“¾”{—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
- 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-death_penalty_type
- ƒfƒXƒyƒiƒ‹ƒeƒB‚̃^ƒCƒv‚ðŒˆ’è‚µ‚Ü‚·B
- 0‚ÅŽ€‚ñ‚¾ŒãƒŠƒXƒ^[ƒg‚·‚鎞‚É“K—p‚ÅŽ‚Á‚Ä‚¢‚éEXP‚Ì—Ê‚©‚ç”ä—¦‚Ì•ª‚ðŒ¸‚ç‚·Žd—lA1‚ÅŽ€‚ñ‚¾’¼Œã‚É“K—p‚ÅŽ‚Á‚Ä‚¢‚éEXP‚Ì—Ê‚©‚ç”ä—¦‚Ì•ª‚ðŒ¸‚ç‚·Žd—l‚Å‚·B
- 2‚ÅŽ€‚ñ‚¾ŒãƒŠƒXƒ^[ƒg‚·‚鎞‚É“K—p‚ÅŽŸ‚̃Œƒxƒ‹ƒAƒbƒv‚Ü‚Å‚ÌEXP‚©‚ç”ä—¦‚Ì•ª‚ðŒ¸‚ç‚·Žd—lA3‚ÅŽ€‚ñ‚¾’¼Œã‚É“K—p‚ÅŽŸ‚̃Œƒxƒ‹ƒAƒbƒv‚Ü‚Å‚ÌEXP‚©‚ç”ä—¦‚Ì•ª‚ðŒ¸‚ç‚·Žd—l‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
-
-death_penalty_base
- ƒfƒXƒyƒiƒ‹ƒeƒB‚É‚æ‚éBASEŒoŒ±’lŒ¸­—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
- ‚ ‚Ü‚è’á‚·‚¬‚é’l‚ðŽg‚¤‚ÆŒ¸‚è‚Ü‚¹‚ñB’PˆÊ‚Í0.01%‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
-
-death_penalty_job
- ƒfƒXƒyƒiƒ‹ƒeƒB‚É‚æ‚éJOBŒoŒ±’lŒ¸­—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
- ‚ ‚Ü‚è’á‚·‚¬‚é’l‚ðŽg‚¤‚ÆŒ¸‚è‚Ü‚¹‚ñB’PˆÊ‚Í0.01%‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
-
-zeny_penalty
- Ž€‚ñ‚¾Žž–³‚­‚È‚éƒ[ƒj—ʂ̔䗦‚Å‚·B’PˆÊ‚Í0.01%‚Å‚·BŽ€‚ñ‚¾Žž
- Œ¸‚é‚킯‚Å‚Í‚È‚­Ž€‚ñ‚¾ŒãƒZ[ƒ”ƒ|ƒCƒ“ƒg‚ɖ߂鎞“K—p‚³‚ê‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
-
-restart_hp_rate
- ƒŠƒXƒ^[ƒg‚·‚鎞‚ɉñ•œ‚·‚éHP”ä—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B’PˆÊ‚Í%‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B0‚Ìê‡1‰ñ•œ‚É‚È‚è‚Ü‚·B
-
-restart_sp_rate
- ƒŠƒXƒ^[ƒg‚·‚鎞‚ɉñ•œ‚·‚éSP”ä—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B’PˆÊ‚Í%‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B0‚Ìꇂ͉ñ•œ‚µ‚Ü‚¹‚ñB
- ‚»‚µ‚ÄSP‚ª”ä—¦‚æ‚è‚‚¢ê‡‚à‰ñ•œ‚µ‚Ü‚¹‚ñB
-
-mvp_hp_rate
- MVP ƒ‚ƒ“ƒXƒ^[‚ÌHP‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
- 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-mvp_item_rate
- MVPƒAƒCƒeƒ€‚ÌŠ“¾”{—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
- 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-mvp_exp_rate
- MVP EXP‚ÌŠ“¾”{—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
- 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-monster_hp_rate
- MVP ˆÈŠO‚̃‚ƒ“ƒXƒ^[‚ÌHP‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
- 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-monster_max_aspd
- ƒ‚ƒ“ƒXƒ^[‚ÌÅ‘åUŒ‚‘¬“x‚ðݒ肵‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Í199‚Å‚·BÅ‘å‚Í199‚ÅŬ‚Í100‚Å‚·B
-
-atcommand_gm_only
- —ƒRƒ}ƒ“ƒh‚ðGMê—p‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-gm_all_skill
- ‘S‚ẴXƒLƒ‹‚ðŠo‚¦‚ç‚ê‚é‚悤‚É‚·‚éGM‚̃Œƒxƒ‹‚ðݒ肵‚Ü‚·B
- ‚±‚ê‚ð0ˆÈŠO‚É‚·‚é‚ÆA‚»‚ÌGMƒŒƒxƒ‹ˆÈã‚ÌGM‚ÍJOB‚âƒXƒLƒ‹Š“¾ðŒ‚ÉŠÖŒW‚È‚­‘SƒXƒLƒ‹‚ªŠo‚¦‚ç‚ê‚Ü‚·B(ƒNƒFƒXƒgƒXƒLƒ‹‚àŠÜ‚ß‚Ä)
- ƒfƒtƒHƒ‹ƒg‚Í 0 ‚Å‚·B0‚ÌꇂÍGM‚Å‚Í‚È‚¢‘S‚ẴLƒƒƒ‰‚̈Ӗ¡‚Å‚Í‚È‚­‘S‚Ä‚ÌGM‚ª‘S‚ẴXƒLƒ‹‚ðŠo‚¦‚ç‚ê‚È‚¢‚ÆŒ¾‚¤‚±‚Æ‚Å‚·B
-
-gm_all_equipment
- ‘S‚Ä‚Ì‘•”õ•i‚ð‘•”õ‚Å‚«‚é‚悤‚É‚·‚éGM‚̃Œƒxƒ‹‚ðݒ肵‚Ü‚·B
- ‚±‚ê‚ð0ˆÈŠO‚É‚·‚é‚ÆA‚»‚ÌGMƒŒƒxƒ‹ˆÈã‚ÌGM‚ÍJOB‚⃌ƒxƒ‹A«•Ê‚ÉŠÖŒW‚È‚­
- ‘S‘•”õ•i‚ð‘•”õ‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚·B‚½‚¾‚µAƒNƒ‰ƒCƒAƒ“ƒg‘¤‚ŃGƒ‰[‚ð
- ‹N‚±‚·‘g‚݇‚킹‚à‚ ‚é‚ÆŽv‚¢‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Í 0 ‚Å‚·B
- 0‚Ìꇂ͑S‚Ä‚ÌGM‚Í’ÊíƒvƒŒƒCƒ„[‚Æ“¯‚¶”»’肪s‚í‚ê‚Ü‚·B
-
-gm_skill_unconditional
- –³ðŒ‚ɃXƒLƒ‹‚ðŽg—p‚Å‚«‚é‚悤‚É‚·‚éGM‚̃Œƒxƒ‹‚ðݒ肵‚Ü‚·B
- ‚±‚ê‚ð0ˆÈŠO‚É‚·‚é‚ÆA‚»‚ÌGMƒŒƒxƒ‹ˆÈã‚ÌGM‚Í‘•”õ•Ší‚âÁ”ïƒAƒCƒeƒ€‚Ì—L–³
- ‚È‚Ç‚ÉŠÖŒW‚È‚­A‚»‚µ‚ĉ½‚àÁ”ï‚·‚邱‚Æ‚È‚­ƒXƒLƒ‹‚ðŽg—p‚Å‚«‚é‚悤‚É
- ‚È‚è‚Ü‚·B”»’舗‚𖳎‹‚·‚é‚Ì‚Å“®ì‚É•s“s‡‚ª‚Å‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Í 0 ‚Å‚·B 0‚Ìꇂ͑S‚Ä‚ÌGM‚Í’ÊíƒvƒŒƒCƒ„[‚Æ“¯‚¶”»’肪
- s‚í‚ê‚Ü‚·B
-
-player_skillfree
- ƒXƒLƒ‹ƒcƒŠ[‚ÉŠÖŒW‚È‚­ƒXƒLƒ‹‚ðã‚°‚邱‚Æ‚ª‚Å‚«‚é‚©‚Ç‚¤‚©‚Å‚·B
- ‚±‚ê‚ðyes‚É‚·‚ê‚΃vƒŒƒCƒ„[‚ÌE‹Æ‚ÅK‚¤‚±‚Æ‚ª‚Å‚«‚éƒXƒLƒ‹‘S‚Ä‚ð
- ƒXƒLƒ‹ƒcƒŠ[‚ÉŠÖŒW‚È‚­ã‚°‚邱‚Æ‚ª‚Å‚«‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-player_skillup_limit
- ƒXƒLƒ‹ƒŠƒZƒbƒg“™‚ð‚µ‚½ŽžƒXƒLƒ‹‚ð§ŒÀ‚È‚µ‚Éã‚°‚é‚©‚Ç‚¤‚©‚Å‚·B
- ‚±‚ê‚ðyes‚É‚·‚ê‚ÎŽn‚߂̃XƒLƒ‹ƒ|ƒCƒ“ƒg9‚‚̓m[ƒrƒX‚ÅK‚¤ƒXƒLƒ‹‚É‚µ‚©
- Žg‚¦‚Ü‚¹‚ñB‚»‚µ‚Ä‚»‚ÌŒã‚Ì39‚Í1ŽŸE‹Æ‚ÅK‚¤•¨‚É‚¾‚¯Žg‚¦‚Ä‚»‚ÌŒã‚Ì
- ƒ|ƒCƒ“ƒg‚ÍŽ©—R‚ÉŽg‚¤‚±‚Æ‚ª‚Å‚«‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-weapon_produce_rate
- •Ší»‘¢ƒXƒLƒ‹‚Å‚Ì»‘¢¬Œ÷—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
- 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-potion_produce_rate
- ƒ|[ƒVƒ‡ƒ“»‘¢ƒXƒLƒ‹‚Å‚Ì»‘¢¬Œ÷—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
- 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-monster_active_enable
- æUƒ‚ƒ“ƒXƒ^[‚ðæU‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðno‚É‚·‚é‚Æ
- æUƒ‚ƒ“ƒXƒ^[‚ª”ñæU‚É‚È‚è‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
-
-monster_damage_delay_rate
- ƒ‚ƒ“ƒXƒ^[‚ªƒ_ƒ[ƒW‚ðŽó‚¯‚½ŽžˆÚ“®‚Å‚«‚È‚¢ƒfƒBƒŒƒC‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
- 200‚É‚·‚é‚ƃfƒBƒŒƒC‚ª”{‚É‚È‚èA0‚É‚·‚é‚ƃfƒBƒŒƒC‚ª‚È‚­‚È‚è‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-monster_loot_type
- ƒ‹[ƒgƒ‚ƒ“ƒXƒ^[‚Ìs“®‚ÌŽd•û‚ðŽw’肵‚Ü‚·B
- 0‚ÌꇂÍLOOTITEM_SIZE‚܂ŃAƒCƒeƒ€‚ðH‚ׂĂà‚Ü‚½ƒAƒCƒeƒ€‚ðH‚ׂÄA
- ‘O‚̃AƒCƒeƒ€‚ªÁ‚¦‚éŽd—lB1‚ÌꇂÍLOOTITEM_SIZE‚܂ŃAƒCƒeƒ€‚ðH‚ׂé‚Æ
- ‚à‚¤ƒAƒCƒeƒ€‚ðH‚ׂȂ­‚È‚éŽd—lBƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
-
-mob_skill_use
- MOB‚ªƒXƒLƒ‹‚ðŽg‚Á‚Ä‚­‚é‚©‚Ç‚¤‚©‚Å‚·BƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
-
-mob_count_rate
- map_athena.conf‚ÅŽw’肳‚ꂽnpcƒf[ƒ^‚ð“Ç‚Ýž‚ÞÛA
- monster‚Å’è‹`‚³‚ꂽ”z’uMOB‚Ì”‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
- —áŠO‚Æ‚µ‚ÄA”z’u”1‚Æ‚µ‚Ä’è‹`‚³‚ꂽMOB‚Ì”‚Í•Ï‚í‚è‚Ü‚¹‚ñB(BOSS‘Îô)
- ‚Ü‚½A”z’u”‚ð‰º•ûC³‚µ‚½‚Æ‚«A1–¢–ž‚É‚È‚Á‚½ê‡‚Í1‚Æ‚µ‚Ĉ—‚µ‚Ü‚·B
- 0-1000’ö“x‚ÅŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-quest_skill_learn
- ƒNƒFƒXƒgƒXƒLƒ‹‚ð•’Ê‚ÉK“¾‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ‚±‚ê‚ðyes‚É‚·‚é‚ƃNƒFƒXƒgƒXƒLƒ‹‚ª•’Ê‚É•\Ž¦‚³‚ê‚ăXƒLƒ‹ƒ|ƒCƒ“ƒg‚ðŽg‚Á‚ÄK“¾‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Í no‚Å‚·B
-
-quest_skill_reset
- ƒXƒLƒ‹‚ðƒŠƒZƒbƒg‚·‚鎞ƒNƒFƒXƒgƒXƒLƒ‹‚ðƒŠƒZƒbƒg‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
- no‚É‚µ‚Ä‚àquest_skill_learn‚ðyes‚É‚·‚ê‚΃ŠƒZƒbƒg‚³‚ê‚Ü‚·B
-
-basic_skill_check
- À‚èAŒðŠ·Aƒp[ƒeƒBŒ‹¬Aƒ`ƒƒƒbƒgƒ‹[ƒ€ì‚è“™‚ÌŽžŠî–{ƒXƒLƒ‹‚ðƒ`ƒFƒbƒN‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ‚±‚ê‚ðno‚É‚·‚ê‚ÎÀ‚èAŒðŠ·“™‚ÌŠî–{ƒXƒLƒ‹‚ª•K—v‚Ès“®‚ðŠî–{ƒXƒLƒ‹‚ÉŠÖŒW‚È‚­Žg‚¤‚±‚Æ‚ª‚Å‚«‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Í yes‚Å‚·B
-
-guild_emperium_check
- ƒMƒ‹ƒh‚ðì‚鎞ƒGƒ“ƒyƒŠƒEƒ€‚ðÁ”ï‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðno‚É‚·‚ê‚Î
- ƒGƒ“ƒyƒŠƒEƒ€‚È‚µ‚Å‚àƒMƒ‹ƒh‚ªì‚ê‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Í yes‚Å‚·B
-
-guild_exp_limit
- ƒMƒ‹ƒh‚Ì–ðE‚ÉÝ’è‚Å‚«‚éã”[ŒoŒ±’l‚ÌŠ„‡‚ÌãŒÀ‚ðÝ’è‚Å‚«‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Í50(%)‚Å‚·B
-
-player_invincible_time
- ƒ}ƒbƒvˆÚ“®‚âƒeƒŒƒ|[ƒgA•œŠˆ‚µ‚½Žž‚Ì–³“GŽžŠÔ‚ðݒ肵‚Ü‚·B’PˆÍ‚Í
- ms(ƒ~ƒŠ•b)BˆÚ“®AUŒ‚s“®AƒXƒLƒ‹Žg—pAƒAƒCƒeƒ€Žg—p‚ð‚·‚é‚Æ‚±‚Ì
- ŽžŠÔ‚Í‚È‚­‚È‚éB(ƒV[ƒYƒ‚[ƒh‚Å‚ÍŽžŠÔ‚ð2”{‚É‚µ‚Ä“K—p)
- ƒfƒtƒHƒ‹ƒg‚Í5000(5•b)‚Å‚·B
-
-pet_catch_rate
- ƒyƒbƒg‚̕ߊl”{—¦‚ð•S•ª—¦‚Åݒ肵‚Ü‚·B
- 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-pet_rename
- ƒyƒbƒg‚Ì–¼‘O‚ð•ÏX‚·‚é‚©‚Ç‚¤‚©‚ðŒˆ‚ß‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
- yes‚͉½“x‚Å‚à–¼‘O‚Ì•ÏX‚ª‰Â”\Bno‚͈ê“x•ÏX‚·‚é‚Æ‚à‚¤•ÏX•s‰Â”\‚É‚È‚éB
-
-pet_friendly_rate
- ƒyƒbƒg‚ɉa‚ð‚ ‚°‚½Žžã‚ª‚ée–§“x‚Ì”{—¦‚Å‚·B
- e–§“x‚ªŒ¸‚éꇂ͓K—p‚³‚ê‚Ü‚¹‚ñBƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-pet_hungry_delay_rate
- ƒyƒbƒg‚Ì• ‚ªŒ¸‚鎞ŠÔ‚Ì”{—¦‚Å‚·B
- ”{—¦‚ª‚‚¢‚Æ• ‚ªŒ¸‚è“ï‚­‚È‚è‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-pet_hungry_friendly_decrease
- ƒyƒbƒg‚Ì• ‚ªŠ®‘S‚ÉŒ¸‚Á‚½ŽžŒ¸‚ée–§“x‚Ì—Ê‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í5‚Å‚·B
-
-pet_str
- ƒyƒbƒg‚ÌATKŒvŽZ‚ÉSTR‚ð“K—p‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
-
-pet_status_support
- ƒyƒbƒg‚É‚æ‚éƒXƒe[ƒ^ƒXƒ{[ƒiƒX‚ð“K—p‚·‚é‚©‚Ç‚¤‚©‚Å‚·Byes‚É‚·‚é‚Æ
- ƒyƒbƒg‚ðŽ‚Á‚Ă鎞ƒyƒbƒg–ˆ‚Éݒ肳‚ê‚Ä‚¢‚éƒXƒe[ƒ^ƒXƒ{[ƒiƒX‚ª
- •t‚«‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-pet_attack_support
-pet_damage_support
- Žål‚ªƒ‚ƒ“ƒXƒ^[‚Ƀ_ƒ[ƒW‚ð—^‚¦‚½‚Æ‚«AŽó‚¯‚½‚Æ‚«‚É
- ƒyƒbƒg‚ªŽx‰‡UŒ‚‚ð‚·‚é‚©‚Ç‚¤‚©‚Å‚·Byes‚É‚·‚é‚ƃyƒbƒg‚Ìe–§“x‚ª
- ‚«‚í‚ß‚Äe‚µ‚¢‚ÌŽž‚¾‚¯Žx‰‡UŒ‚‚ð‚µ‚Ä‚­‚ê‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-pet_support_rate
- ƒyƒbƒg‚ÌŽx‰‡UŒ‚Šm—¦‚Ì”{—¦‚Å‚·Bi100‚Å’ÊíA200‚Å”{‚Å‚·)
- ”{—¦‚ª‚‚¢‚ÆŽx‰‡UŒ‚‚æ‚­‚µ‚Ä‚­‚ê‚é‚悤‚É‚È‚è‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-pet_attack_exp_to_master
- ƒyƒbƒg‚ª—^‚¦‚½ƒ_ƒ[ƒW‚Ì•ª‚ÌŒoŒ±’l‚ðŽål‚ªŽû“¾‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ‚±‚ê‚ðyes‚É‚·‚é‚ƃyƒbƒg‚ÌUŒ‚‚É‚æ‚éƒ_ƒ[ƒW‚àŽål‚ª—^‚¦‚½•¨‚É‚È‚è
- Žål‚ªŒoŒ±’l‚ðŽû“¾‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-pet_attack_exp_rate
- ƒyƒbƒg‚ª—^‚¦‚½ƒ_ƒ[ƒW‚Ì•ª‚ÌŒoŒ±’l‚ðŽål‚ªŽû“¾‚·‚鎞‚Ì”{—¦‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-pet_lootitem
- ƒyƒbƒg‚ªƒAƒCƒeƒ€‚ðƒ‹[ƒg‚·‚é‚©‚Ç‚¤‚©‚ÌÝ’è‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-pet_weight
- ƒyƒbƒg‚Ƀ‹[ƒg‚³‚¹‚é‚Æ‚«‚Ìd—ʧŒÀ‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Í1000‚Å‚·B
-
-skill_min_damage
- ƒXƒLƒ‹‚ðŽg‚Á‚½Žžƒ_ƒ[ƒW‚ª˜A‘Å”‚æ‚è–¢–ž‚ÌꇑS‚ă~ƒX‚É‚È‚é‚©1ƒ_ƒ[ƒW‚É‚È‚é‚©‚ðŒˆ’è‚µ‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-finger_offensive_type
- ƒXƒLƒ‹Žw’e‚Ì•\Ž¦ƒ^ƒCƒv‚ðŒˆ’è‚µ‚Ü‚·B
- 0‚Í–{ƒT[ƒo[Žd—l‚Å1‚̓AƒeƒiŽd—l‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
-
-heal_exp
- ƒXƒLƒ‹uƒq[ƒ‹v‚ðŽg‚Á‚½Û‚É‚à‚炦‚éƒWƒ‡ƒuŒoŒ±’l—Ê‚ÌÝ’è‚Å‚·B
- 100‚ʼnñ•œ‚µ‚½—Ê‚Æ“¯—Ê‚É‚È‚è‚Ü‚·B
- ƒ‚ƒ“ƒXƒ^[‚ÌŒoŒ±’l‚ð•ÏX‚µ‚Ä‚È‚¢ê‡‚Í5`10’ö“x‚ª“K“–‚¾‚ÆŽv‚í‚ê‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
-
-resurrection_exp
- ƒXƒLƒ‹uƒŠƒUƒŒƒNƒVƒ‡ƒ“v‚ðŽg‚Á‚½Û‚É‚à‚炦‚éŒoŒ±’l—Ê‚ÌÝ’è‚Å‚·B
- ’PˆÊ‚Í0.01%‚Å‚·B•œŠˆ‚µ‚½ƒvƒŒƒCƒ„[‚ªŽ‚Á‚Ä‚¢‚éŒoŒ±’l * ƒŒƒxƒ‹·/100 * resurrection_exp/10000 •ª‚ÌŒoŒ±‚ª–Ⴆ‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
-
-shop_exp
- ƒXƒLƒ‹ƒfƒBƒXƒJƒEƒ“ƒg‚ƃI[ƒo[ƒ`ƒƒ[ƒW‚ðK“¾‚µ‚Ä‚éê‡NPC—˜—p‹àŠz‚ɉž‚¶‚½JOBŒoŒ±’lŠl“¾”{—¦‚Å‚·Bi100‚Å’ÊíA200‚Å”{‚É‚È‚è‚Ü‚·j
- ŒvŽZŽ®‚Íln(‘ã‹à*ƒXƒLƒ‹ƒŒƒxƒ‹) * shop_exp / 100 ‚Å”ƒ‚¤ê‡‚̓fƒBƒXƒJƒEƒ“ƒg‚ª‚ ‚鎞‚Ì‚Ý“K—p‚Å”„‚éꇃI[ƒo[ƒ`ƒƒ[ƒW‚ª‚ ‚鎞‚Ì‚Ý“K—p‚³‚ê‚Ü‚·B
- ŒvŽZŽ®‚Í“K“x‚Éì‚Á‚½•¨‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
-
-combo_delay_rate
- ƒ‚ƒ“ƒN‚̃Rƒ“ƒ{ƒfƒBƒŒƒC‚ÌŽžŠÔ‚Ì”{—¦‚Å‚·Bi100‚Å’ÊíA200‚Å”{‚É‚È‚è‚Ü‚·Bj
- ‚½‚¾’ˆÓ‚·‚é‚ׂ«‚È‚Ì‚Í‚‚­Ý’è‚·‚é‚Ì‚ª‚¢‚¢‚±‚Æ‚Å‚Í‚È‚¢‚±‚Æ‚Å‚·B
- ƒRƒ“ƒ{ƒfƒBƒŒƒC‚ª’·‚¢‚ƃRƒ“ƒ{‚ÌŒq‚¬‚Í‚æ‚­‚È‚è‚Ü‚·‚ª‚»‚Ì’·‚­‚È‚Á‚½
- ŽžŠÔ‚ÌŠÔ‚Ís“®‚Å‚«‚È‚¢‚©‚ç‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-item_check
- ƒAƒCƒeƒ€‚̃`ƒFƒbƒN‚ðs‚¤‚©‚Ç‚¤‚©‚Å‚·B
- ƒƒOƒCƒ“Žž‚ƃ}ƒbƒvˆÚ“®Žž‚ÉŠŽƒAƒCƒeƒ€‚É•s³ƒAƒCƒeƒ€‚ª‚È‚¢‚©ƒ`ƒFƒbƒN‚µ‚Ü‚·B
- ‚Ü‚½@item‚Å•s³ƒAƒCƒeƒ€‚ðŠ“¾‚Å‚«‚È‚­‚µ‚Ü‚·B
- ƒfƒoƒO‚âƒAƒCƒeƒ€‚ÌŠm”F‚ðs‚¤‚Æ‚«‚È‚Ç‚Íoff‚É‚µ‚Ä‚­‚¾‚³‚¢B
- ƒfƒtƒHƒ‹ƒg‚Íon‚Å‚·B
-
-wedding_modifydisplay
- ƒ^ƒLƒV[ƒh‚ƃEƒFƒfƒBƒ“ƒOƒhƒŒƒX‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- Œ‹¥ƒLƒƒƒ‰‚ð•\Ž¦‚µ‚½‚¢ê‡‚Í‚±‚ê‚ðyes‚É‚µ‚Ä‚­‚¾‚³‚¢B
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-natural_healhp_interval
- HP‚ªŽ©“®‰ñ•œ‚·‚é‚Ü‚ÅŠ|‚©‚鎞ŠÔ‚Å‚·B’PˆÊ‚Íms(ƒ~ƒŠ•b)‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Í6000‚ÅNATURAL_HEAL_INTERVAL–¢–ž‚É‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñB
-
-natural_healsp_interval
- SP‚ªŽ©“®‰ñ•œ‚·‚é‚Ü‚ÅŠ|‚©‚鎞ŠÔ‚Å‚·B’PˆÊ‚Íms(ƒ~ƒŠ•b)‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Í8000‚ÅNATURAL_HEAL_INTERVAL–¢–ž‚É‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñB
-
-natural_heal_skill_interval
- ƒXƒLƒ‹‚É‚æ‚Á‚ÄŽ©“®‰ñ•œ‚·‚éꇊ|‚©‚鎞ŠÔ‚Å‚·B’PˆÊ‚Íms(ƒ~ƒŠ•b)‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Í10000‚ÅNATURAL_HEAL_INTERVAL–¢–ž‚É‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñB
-
-natural_heal_weight_rate
- Ž©“®‰ñ•œ‚ª‚Å‚«‚È‚­‚È‚éd—Ê‚ðݒ肵‚Ü‚·B’PˆÊ‚Í%‚Å‚·B
- Ŭ‚Í50‚ÅÅ‘å‚Í101‚Å‚·Bő傪101‚È‚Ì‚Íd—Ê‚ª
- natural_heal_weight_rate–¢–ž‚ÌŽž‚ÉŽ©“®‰ñ•œ‚·‚é‚©‚ç‚Å‚·B(‚‚܂è101‚È‚ç
- ‚¢‚Â‚Å‚àŽ©“®‰ñ•œ‚Å‚«‚Ü‚·B)
- ƒfƒtƒHƒ‹ƒg‚Í50‚Å‚·B
-
-item_name_override_grffile
- ƒAƒCƒeƒ€‚Ì–¼‘O(‰pŒêˆÈŠO‚Ì–¼‘O‚Å‚·B)‚ð.grfƒtƒ@ƒCƒ‹‚©‚ç“Ç‚Þ‚©‚Ç‚¤‚©‚Å‚·B
- no‚É‚·‚é‚Æitem_db.txt‚Ì–¼‘O‚ðŽg‚¢‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
-
-arrow_decrement
- ‹|‚ðŽg‚¤Žž–î‚ðÁ–Õ‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðno‚É‚·‚é‚Æ
- –Á–Õ‚³‚ê‚Ü‚¹‚ñB(–î‚ð‘•”õ‚·‚é•K—v‚Í‚ ‚è‚Ü‚·B)
- ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
-
-max_aspd
- ƒvƒŒƒCƒ„[‚ÌÅ‘åUŒ‚‘¬“x‚ðݒ肵‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Í199‚Å‚·BÅ‘å‚Í199‚ÅŬ‚Í100‚Å‚·B
-
-max_hp
- Å‘åHP‚ðݒ肵‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Í32500‚Å‚·BÅ‘å‚Í1000000‚ÅŬ‚Í100‚Å‚·B
-
-max_sp
- Å‘åSP‚ðݒ肵‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Í32500‚Å‚·BÅ‘å‚Í1000000‚ÅŬ‚Í100‚Å‚·B
-
-max_parameter
- ƒvƒŒƒCƒ„[‚ÌŠî–{ƒpƒ‰ƒ[ƒ^‚ÌÅ‘å’l‚ðݒ肵‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Í99‚Å‚·BÅ‘å‚Í10000‚ÅŬ‚Í10‚Å‚·B
- Šî–{ƒpƒ‰ƒ[ƒ^‘å‚«‚¢‰ß‚¬‚é‚ƃNƒ‰ƒCƒAƒ“ƒg—Ž‚¿‚ª‹N‚±‚é‚Ì‚Å
- “K“–‚È’l‚ðÝ’è‚·‚é•û‚ª—Ç‚¢‚Å‚·B
-
-max_cart_weight
- ƒJ[ƒg‚ÌÅ‘åd—Ê‚ðݒ肵‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Í8000‚Å‚·BÅ‘å‚Í1000000‚ÅŬ‚Í100‚Å‚·B
-
-player_skill_log
- ƒvƒŒƒCƒ„[‚̃XƒLƒ‹Žg—pƒƒO‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-monster_skill_log
- ƒ‚ƒ“ƒXƒ^[‚̃XƒLƒ‹Žg—pƒƒO‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-battle_log
- 퓬ŠÖŒW‚̃ƒO‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-save_log
- ƒLƒƒƒ‰‚Ì•Û‘¶‚ÉŠÖ‚·‚郃O‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-error_log
- ƒGƒ‰[ƒƒO‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
-
-etc_log
- ƒXƒLƒ‹A퓬AƒLƒƒƒ‰•Û‘¶AƒGƒ‰[ˆÈŠO‚̃ƒO‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©
- ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
-
-save_clothcolor
- •ž‚ÌF‚ð•Û‘¶‚·‚é‚©‚Ç‚¤‚©A—LŒø‚É‚·‚é‚Æ–â‘肪‚ ‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-undead_detect_type
- ƒAƒ“ƒfƒbƒh‚ð”FŽ¯‚·‚é•û–@‚ðݒ肵‚Ü‚·B0‚Å‘®«‚Ì‚ÝA1‚ÅŽí‘°‚Ì‚ÝA
- 2‚Å‘®«‚ÆŽí‘°‚Ì—¼•û‚Ì‚Ç‚¿‚ç‚Å‚à‚ ‚Á‚Ä‚éꇂɂȂè‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
-
-player_auto_counter_type
- ƒvƒŒƒCƒ„[‚̃I[ƒgƒJƒEƒ“ƒ^[‚ÌŽd—l‚ðݒ肵‚Ü‚·B0‚Å100%ƒNƒŠƒeƒBƒJƒ‹
- ‚ŃXƒLƒ‹”½Œ‚–³‚µA1‚Å–hŒä–³Ž‹AHit+20AƒNƒŠƒeƒBƒJƒ‹—¦2”{‚ŃXƒLƒ‹”½Œ‚
- –³‚µA2‚Å100%ƒNƒŠƒeƒBƒJƒ‹‚ŃXƒLƒ‹”½Œ‚—L‚èA3‚Å–hŒä–³Ž‹AHit+20A
- ƒNƒŠƒeƒBƒJƒ‹—¦2”{‚ŃXƒLƒ‹”½Œ‚—L‚è‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Í1‚Å‚·B
-
-monster_auto_counter_type
- ƒ‚ƒ“ƒXƒ^[‚̃I[ƒgƒJƒEƒ“ƒ^[‚ÌŽd—l‚ðݒ肵‚Ü‚·B0‚Å100%ƒNƒŠƒeƒBƒJƒ‹
- ‚ŃXƒLƒ‹”½Œ‚–³‚µA1‚Å–hŒä–³Ž‹AHit+20AƒNƒŠƒeƒBƒJƒ‹—¦2”{‚ŃXƒLƒ‹”½Œ‚
- –³‚µA2‚Å100%ƒNƒŠƒeƒBƒJƒ‹‚ŃXƒLƒ‹”½Œ‚—L‚èA3‚Å–hŒä–³Ž‹AHit+20A
- ƒNƒŠƒeƒBƒJƒ‹—¦2”{‚ŃXƒLƒ‹”½Œ‚—L‚è‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Í1‚Å‚·B
-
-agi_penaly_type
- agi_penaly_countˆÈã‚Ì“G‚ÉUŒ‚‚³‚ꂽŽž‚Ìagiƒyƒiƒ‹ƒeƒB‚ÌŽd—l‚ðݒ肵‚Ü‚·B
- 0‚Å‚È‚µA1‚Åagi_penaly_num%‚¸‚ÂŒ¸‚Á‚ÄA2‚Åagi_penaly_num‚¾‚¯Œ¸‚è‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
-
-agi_penaly_count
- agiƒyƒiƒ‹ƒeƒB‚ð“K—p‚·‚é“G‚Ì”‚ðݒ肵‚Ü‚·B
- 2–¢–ž‚ÉÝ’è‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñBƒfƒtƒHƒ‹ƒg‚Í3‚Å‚·B
-
-agi_penaly_num
- agiƒyƒiƒ‹ƒeƒB‚É‚æ‚Á‚ÄŒ¸‚é‰ñ”ð‚Ì—Ê‚ðݒ肵‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
-
-vit_penaly_type
- vit_penaly_countˆÈã‚Ì“G‚ÉUŒ‚‚³‚ꂽŽž‚Ìvitƒyƒiƒ‹ƒeƒB‚ÌŽd—l‚ðݒ肵‚Ü‚·B
- 0‚Å‚È‚µA1‚Åvit_penaly_num%‚¸‚ÂŒ¸‚Á‚ÄA2‚Åvit_penaly_num‚¾‚¯Œ¸‚è‚Ü‚·B
- (Œ¸‚é‚Ì‚Ívit‚É‚æ‚é–hŒä‚Ì‚Ý)
- ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
-
-vit_penaly_count
- vitƒyƒiƒ‹ƒeƒB‚ð“K—p‚·‚é“G‚Ì”‚ðݒ肵‚Ü‚·B
- 2–¢–ž‚ÉÝ’è‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñBƒfƒtƒHƒ‹ƒg‚Í3‚Å‚·B
-
-vit_penaly_num
- vitƒyƒiƒ‹ƒeƒB‚É‚æ‚Á‚ÄŒ¸‚é‰ñ”ð‚Ì—Ê‚ðݒ肵‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
-
-player_defense_type
- ƒvƒŒƒCƒ„[‚ª‘ÎÛ‚ÉUŒ‚‚·‚鎞‚ÌDEF‚ÌŒvŽZ•û–@B0‚Å–{ŽIŽd—lA1ˆÈã‚ÅŒ¸ŽZ(DEF*’l)B
-
-monster_defense_type
- ƒ‚ƒ“ƒXƒ^[‚ª‘ÎÛ‚ÉUŒ‚‚·‚鎞‚ÌDEF‚ÌŒvŽZ•û–@B0‚Å–{ŽIŽd—lA1ˆÈã‚ÅŒ¸ŽZ(DEF*’l)B
-
-pet_defense_type
- ƒyƒbƒg‚ª‘ÎÛ‚ÉUŒ‚‚·‚鎞‚ÌDEF‚ÌŒvŽZ•û–@B0‚Å–{ŽIŽd—lA1ˆÈã‚ÅŒ¸ŽZ(DEF*’l)B
-
-magic_defense_type
- MDEF‚ÌŒvŽZ•û–@B0‚Å–{ŽIŽd—lA1ˆÈã‚ÅŒ¸ŽZ(MDEF*’l)
-
-player_skill_reiteration
- ƒvƒŒƒCƒ„[‚ªŽg‚¤ˆê•”‚Ì’n–ʃXƒLƒ‹‚Ìd‚Ë’u‚«‚ð‹–‰Â‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ‚±‚ê‚ðyes‚É‚·‚é‚ÆSW‚âƒjƒ…[ƒ}Aƒgƒ‰ƒbƒv‚ðd‚Ë‚Ä’u‚­‚±‚Æ‚ª‚Å‚«‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-monster_skill_reiteration
- ƒ‚ƒ“ƒXƒ^[‚ªŽg‚¤ˆê•”‚Ì’n–ʃXƒLƒ‹‚Ìd‚Ë’u‚«‚ð‹–‰Â‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ‚±‚ê‚ðyes‚É‚·‚é‚ÆSW‚âƒjƒ…[ƒ}Aƒgƒ‰ƒbƒv‚ðd‚Ë‚Ä’u‚­‚±‚Æ‚ª‚Å‚«‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-player_skill_nofootset
- ƒvƒŒƒCƒ„[‚ªŽg‚¤ˆê•”‚Ì’n–ʃXƒLƒ‹‚ðƒvƒŒƒCƒ„[‚⃂ƒ“ƒXƒ^[‚Ì‘«Œ³‚É
- ’u‚­‚Ì‚ð‹ÖŽ~‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðyes‚É‚·‚é‚ƃXƒLƒ‹‚ðÝ’u‚·‚鎞‚»‚Ì
- Œø‰Ê”͈͂ɃvƒŒƒCƒ„[‚⃂ƒ“ƒXƒ^[‚ª‚¢‚é‚ƃXƒLƒ‹‚ð’u‚­‚±‚Æ‚ª‚Å‚«‚Ü‚¹‚ñB
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-monster_skill_nofootset
- ƒ‚ƒ“ƒXƒ^[‚ªŽg‚¤ˆê•”‚Ì’n–ʃXƒLƒ‹‚ðƒvƒŒƒCƒ„[‚⃂ƒ“ƒXƒ^[‚Ì‘«Œ³‚É
- ’u‚­‚Ì‚ð‹ÖŽ~‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðyes‚É‚·‚é‚ƃXƒLƒ‹‚ðÝ’u‚·‚鎞‚»‚Ì
- Œø‰Ê”͈͂ɃvƒŒƒCƒ„[‚⃂ƒ“ƒXƒ^[‚ª‚¢‚é‚ƃXƒLƒ‹‚ð’u‚­‚±‚Æ‚ª‚Å‚«‚Ü‚¹‚ñB
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-player_cloak_check_type
- ƒvƒŒƒCƒ„[ƒNƒ[ƒLƒ“ƒO‚ÌŽd—l‚ðݒ肵‚Ü‚·B
- 0‚͕ǃ`ƒFƒbƒN—L‚èAƒXƒLƒ‹Žg—p‚ÆUŒ‚‚ʼn𜂳‚ê‚éB
- 1‚͕ǃ`ƒFƒbƒN–³‚µAƒXƒLƒ‹Žg—p‚ÆUŒ‚‚ʼn𜂳‚ê‚éB
- 2‚͕͂ǃ`ƒFƒbƒN—L‚èAƒXƒLƒ‹Žg—p‚ÆUŒ‚‚ʼn𜂳‚ê‚È‚¢B
- 2‚͕͂ǃ`ƒFƒbƒN–³‚µAƒXƒLƒ‹Žg—p‚ÆUŒ‚‚ʼn𜂳‚ê‚È‚¢B
- ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
-
-monster_cloak_check_type
- ƒ‚ƒ“ƒXƒ^[ƒNƒ[ƒLƒ“ƒO‚ÌŽd—l‚ðݒ肵‚Ü‚·B
- 0‚͕ǃ`ƒFƒbƒN—L‚èAƒXƒLƒ‹Žg—p‚ÆUŒ‚‚ʼn𜂳‚ê‚éB
- 1‚͕ǃ`ƒFƒbƒN–³‚µAƒXƒLƒ‹Žg—p‚ÆUŒ‚‚ʼn𜂳‚ê‚éB
- 2‚͕͂ǃ`ƒFƒbƒN—L‚èAƒXƒLƒ‹Žg—p‚ÆUŒ‚‚ʼn𜂳‚ê‚È‚¢B
- 2‚͕͂ǃ`ƒFƒbƒN–³‚µAƒXƒLƒ‹Žg—p‚ÆUŒ‚‚ʼn𜂳‚ê‚È‚¢B
- ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
-
-gvg_short_attack_damage_rate
- ƒV[ƒYƒ‚[ƒh‚Å‹ß‹——£•¨—UŒ‚‚̃_ƒ[ƒW”{—¦‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-gvg_long_attack_damage_rate
- ƒV[ƒYƒ‚[ƒh‚ʼn“‹——£•¨—UŒ‚‚̃_ƒ[ƒW”{—¦‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-gvg_magic_attack_damage_rate
- ƒV[ƒYƒ‚[ƒh‚Å–‚–@UŒ‚‚̃_ƒ[ƒW”{—¦‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-gvg_misc_attack_damage_rate
- ƒV[ƒYƒ‚[ƒh‚Å•¨—UŒ‚‚Æ–‚–@UŒ‚ˆÈŠO‚ÌUŒ‚(‘é‚âƒgƒ‰ƒbƒv“™)‚Ì
- ƒ_ƒ[ƒW”{—¦‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
-
-mob_changetarget_byskill: no
- ðŒ‚ªskillused‚̃XƒLƒ‹‚ðMOB‚ªPC‚ÉŽg—p‚·‚é‚Æ‚«A‚»‚Ì‘ÎÛ‚ðƒXƒLƒ‹Žg—pŽÒ‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- MOBƒXƒLƒ‹Žg—pŒã‚Ƀ^ƒQ‚Í–ß‚è‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-player_attack_direction_change
- ƒvƒŒƒCƒ„[‚ªUŒ‚‚µ‚½Žž•ûŒü‚ð•ÏX‚·‚é‚©‚Ç‚¤‚©‚Å‚·B–{ŽI‚Å‚Í“®‚¯‚È‚¢ŒÀ‚è•ûŒü‚ª•Ï‚¦‚ç‚È‚¢‚Ì‚Å‚·‚ªƒoƒO‚Û‚¢Žd—l‚Ȃ̂ŃfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
- no‚É‚·‚ê‚Γ®‚­‚±‚Æ‚¾‚¯‚Å•ûŒü‚ª•Ï‚¦‚é‚悤‚É‚È‚è‚Ü‚·B
-
-monster_attack_direction_change
- ƒ‚ƒ“ƒXƒ^[‚ªUŒ‚‚µ‚½Žž•ûŒü‚ð•ÏX‚·‚é‚©‚Ç‚¤‚©‚Å‚·B–{ŽI‚Å‚Í“®‚¯‚È‚¢ŒÀ‚è•ûŒü‚ª•Ï‚¦‚ç‚È‚¢‚Ì‚Å‚·‚ªƒoƒO‚Û‚¢Žd—l‚Ȃ̂ŃfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
- no‚É‚·‚ê‚Γ®‚­‚±‚Æ‚¾‚¯‚Å•ûŒü‚ª•Ï‚¦‚é‚悤‚É‚È‚è‚Ü‚·B
-
-player_land_skill_limit
- skill_db.txt‚Åݒ肳‚ê‚Ä‚¢‚é’n–ʃXƒLƒ‹‚Ì”§ŒÀ‚ðƒvƒŒƒCƒ„[‚É
- “K—p‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðyes‚É‚·‚ê‚Îݒ肳‚ê‚Ä‚¢‚锈Èã‚Í
- ’n–Ê‚ÉÝ’u‚·‚邱‚Æ‚ª‚Å‚«‚È‚­‚È‚è‚Ü‚·‚ª”§ŒÀ‚ð‚Ç‚¤•Ï‚¦‚Ä‚à
- MAX_SKILLUNITGROUP‚ð‰z‚¦‚锂ÌÝ’u‚Í‚Å‚«‚Ü‚¹‚ñB
- ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
-
-monster_land_skill_limit
- skill_db.txt‚Åݒ肳‚ê‚Ä‚¢‚é’n–ʃXƒLƒ‹‚Ì”§ŒÀ‚ðƒ‚ƒ“ƒXƒ^[‚É
- “K—p‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðyes‚É‚·‚ê‚Îݒ肳‚ê‚Ä‚¢‚锈Èã‚Í
- ’n–Ê‚ÉÝ’u‚·‚邱‚Æ‚ª‚Å‚«‚È‚­‚È‚è‚Ü‚·‚ª”§ŒÀ‚ð‚Ç‚¤•Ï‚¦‚Ä‚à
- MAX_MOBSKILLUNITGROUP‚ð‰z‚¦‚锂ÌÝ’u‚Í‚Å‚«‚Ü‚¹‚ñB
- ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
-
-party_skill_penaly
- ˆê•”‚̃p[ƒeƒBƒXƒLƒ‹‚ðŽg—pŽÒ‚ƃp[ƒeƒB‚ŃXƒLƒ‹Œø‰Ê‚ªˆá‚¤‚悤‚É
- ‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚̉e‹¿‚ðŽó‚¯‚éƒXƒLƒ‹‚Í¡‚ÌŠ
- ƒAƒhƒŒƒiƒŠƒ“ƒ‰ƒbƒVƒ…AƒEƒGƒ|ƒ“ƒp[ƒtƒFƒNƒVƒ‡ƒ“AƒI[ƒo[ƒgƒ‰ƒXƒg‚Ì‚Ý‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
-
-monster_class_change_full_recover
- ƒ‚ƒ“ƒXƒ^[‚ªƒƒ^ƒ‚ƒ‹ƒtƒH[ƒVƒX‚ƃgƒ‰ƒ“ƒXƒtƒH[ƒ[ƒVƒ‡ƒ““™‚É‚æ‚Á‚Ä
- ‘¼‚̃‚ƒ“ƒXƒ^[‚É•Ï‚í‚Á‚½Žž‚»‚̃‚ƒ“ƒXƒ^[‚ÌHP‚ðÅ‘å‚Ȃʼnñ•œ‚³‚¹‚é‚©
- ‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðyes‚É‚·‚é‚Æ•Ï‚í‚Á‚½ƒ‚ƒ“ƒXƒ^[‚ÌÅ‘åHP‚Ü‚Å
- ‰ñ•œ‚µ‚Ü‚·Bno‚È‚ç•Ï‚í‚é‘O‚ÌHP‚ÆÅ‘åHP‚̔䗦‚Ì•ª‚ÌHP‚É‚È‚è‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-produce_item_name_input
- »‘¢‚Åì‚ç‚ꂽ“S‚â‘®«Î‚É»‘¢ŽÒ‚Ì–¼‘O‚ð•t‚¯‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
-
-produce_potion_name_input
- »‘¢‚Åì‚ç‚ꂽƒ|[ƒVƒ‡ƒ“‚É»‘¢ŽÒ‚Ì–¼‘O‚ð•t‚¯‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
-
-making_arrow_name_input
- –î쬂Åì‚ç‚ꂽ–î‚É»‘¢ŽÒ‚Ì–¼‘O‚ð•t‚¯‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
-
-holywater_name_input
- ƒAƒNƒAƒxƒlƒfƒBƒNƒ^‚Åì‚ç‚ꂽ¹…‚É»‘¢ŽÒ‚Ì–¼‘O‚ð•t‚¯‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
-
-display_delay_skill_fail
- ƒXƒLƒ‹Žg—p‚̃fƒBƒŒƒC’†‚ÉuƒXƒLƒ‹Žg—p‚ÌŒã‚ÍA‚µ‚΂炭‚¨‘Ò‚¿‚­‚¾‚³‚¢v‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
-
-chat_warpportal
- ƒ`ƒƒƒbƒg’†‚ÌPC‚ðƒ[ƒvƒ|[ƒ^ƒ‹‚Å”ò‚΂¹‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-mob_warpportal
- MOB‚ðƒ[ƒvƒ|[ƒ^ƒ‹‚Å”ò‚΂¹‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-dead_branch_active
- ŒÃ–Ø‚ÌŽ}‚È‚Çmonster–½—ß‚Åmobid‚𕉔‚ÉŽw’肵‚½ê‡‚É¢Š«‚³‚ê‚郂ƒ“ƒXƒ^[‚ðƒAƒNƒeƒBƒu‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-vending_max_value
- ˜I“X‚Å’u‚¯‚éƒAƒCƒeƒ€‰¿Ši‚ÌÅ‚’l‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Í10000000‚Å‚·B
-
-show_steal_in_same_party
- ƒXƒeƒB[ƒ‹¬Œ÷ŽžA‰æ–Ê“à‚ÌPTƒƒ“ƒo[(Ž©•ªŠÜ‚Þ)‚É
- ƒXƒeƒB[ƒ‹‚µ‚½ƒAƒCƒeƒ€‚Ìî•ñ‚ðŒöŠJ‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-enable_upper_class
- “]¶A—{ŽqE‚ð—LŒø‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-pet_atack_attr_none
- ƒyƒbƒg‚É‚æ‚é–³‘®«’ÊíUŒ‚‚ð
- ‘®«–³‚µ(‘®«‚É‚æ‚é•â³–³‚µ)‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·
-
-pc_atack_attr_none
- ƒvƒŒƒCƒ„[‚É‚æ‚é–³‘®«’ÊíUŒ‚‚ð
- ‘®«–³‚µ(‘®«‚É‚æ‚é•â³–³‚µ)‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·
-
-mob_atack_attr_none
- ƒ‚ƒ“ƒXƒ^[‚É‚æ‚é–³‘®«’ÊíUŒ‚‚ð
- ‘®«–³‚µ(‘®«‚É‚æ‚é•â³–³‚µ)‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·
-
-player_skill_partner_check
- ¹‘Ì~•Ÿ‚⇑tƒXƒLƒ‹‚ðs‚¤Û‚Ƀp[ƒgƒi[‚Ì‘¶Ý‚ðƒ`ƒFƒbƒN‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íyes(ƒ`ƒFƒbƒN‚·‚é)‚Å‚·B
-
-hide_GM_session
- GMƒAƒJƒEƒ“ƒg‚̃Lƒƒƒ‰ƒNƒ^[‚ð@ƒRƒ}ƒ“ƒh“™‚Å•\Ž¦‚Ì‘ÎÛ‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·
-unit_movement_type
- ƒ†ƒjƒbƒgˆÚ“®ˆ—•û–@‚ð‘I‘ð‚µ‚Ü‚·B
- 0‚Å–{ŽIŽd—l(‰ñü•‰‰×¨dAŽIˆ—¨Œy)A1‚ÅAthenaŽd—l(‰ñü•‰‰×¨ŒyAŽIˆ—¨d)
- ƒfƒtƒHƒ‹ƒg‚Í0(–{ŽIŽd—l)‚Å‚·
-invite_request_check
- ƒvƒŒƒCƒ„[‚ªŠeŽí—v¿’†(PT‰Á“üAGuild‰Á“üAŽæˆø)‚É‘¼‚Ì—v¿‚ðŽó‚¯“ü‚ê‚é‚©‚Ç‚¤‚©‚Å‚·B
- yes‚Å–{ŽIŽd—lAno‚ÅAthenaŽd—l(Žó‚¯“ü‚ê‚È‚¢)
- ƒfƒtƒHƒ‹ƒg‚Íyes(Žó‚¯“ü‚ê‚é)‚Å‚·B
-skill_removetrap_type
- ƒŠƒ€[ƒuƒgƒ‰ƒbƒv‚ÌŽd—l‚ð‘I‘ð‚µ‚Ü‚·B
- 0:–{ŽIŽd—l‚Åã©1ŒÂ‚ðŽæ“¾‚·‚é
- 1:AthenaŽd—l‚ÅŽg‚Á‚½ƒAƒCƒeƒ€‚ðŽg‚Á‚½ŒÂ”‚ðŽæ“¾‚·‚é
-disp_experience
- ŒoŒ±’l‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
- yes‚É‚·‚é‚ÆA“G‚ð“|‚µ‚½Žž‚È‚ÇŒoŒ±’l‚ª“ü‚Á‚½Žž‚É–{l‚É‚Ì‚Ý•\Ž¦‚³‚ê‚Ü‚·B
- ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
-
-night_at_start
- Choose if server begin with night (yes) or day (no)
- Default: No
-
-day_duration
- Define duration in msec of the day.
- Set to 0 to disable day cycle (but not @day command).
- Except 0, minimum is 60000 (1 minute).
- Default: 7,200,000 = 2 hours
-
-night_duration
- Define duration in msec of the night.
- Set to 0 to disable night cycle (but not @night command).
- Except 0, minimum is 60000 (1 minute).
- Default: 1,800,000 = 30 min
-
-ban_spoof_namer
- Ban people that try to use an other name of its name (spoof name).
- Duration of the ban, in minutes.
- Value from 0 to 32767. Set to 0 to do no ban.
- Default: 5 (minutes)
-
-hack_info_GM_level
- Set here minimum level of a (online) GM that can receive all informations about any player that try to hack, spoof a name, etc.
- Values are from 0 to 100.
- 100: disable information
- 0: send to any people, including normal players
- default: 60, according to GM definition in atcommand_athena.conf
-
-any_warp_GM_min_level
- Set here the minimum GM level to disable the nowarp (from) and nowarpto (to) flags.
- This option is mainly used in AT_commands (@memo, @warp, @charwarp, @go, etc...). All GM commands used to move or set a new map check nowarp and nowarpto flags.
- default: 20 (first level after normal player or super'normal' player)
-
-packet_ver_flag
- Set here which client version do you accept. Add all values of clients:
- 1: Clients before 2004-07-06 (old clients)
- 2: 2004-07-06 kRO client
- 4: 2004-07-13 kRO client
- 8: 2004-07-26 kRO client
- 16: 2004-08-09 kRO / 2004-08-16aSakray / 2004-08-17aSakray client
- 32: 2004-09-06aSakray client
- default value: 63 (all clients)
-
-import
- ‚»‚Ìs‚ð•Êƒtƒ@ƒCƒ‹‚Ì’†g‚Æ’u‚«Š·‚¦‚Ü‚·B
-
-< Example >
-
-warp_point_debug: no
-enemy_critical: yes
-enemy_critical_rate: 100
-enemy_perfect_flee: no
-casting_rate: 100
-delay_rate: 100
-delay_dependon_dex: no
-skill_delay_attack_enable: no
-left_cardfix_to_right: no
-player_skill_add_range: 0
-skill_out_range_consume: yes
-monster_skill_add_range: 0
-player_damage_delay: yes
-player_damage_delay_rate: 100
-defunit_not_enemy: yes
-random_monster_checklv: yes
-attribute_recover: yes
-item_auto_get: no
-flooritem_lifetime: 60000
-item_first_get_time: 10000
-item_second_get_time: 7000
-item_third_get_time: 5000
-mvp_item_first_get_time: 10000
-mvp_item_second_get_time: 10000
-mvp_item_third_get_time: 2000
-item_rate: 100
-drop_rate0item: no
-base_exp_rate: 100
-job_exp_rate: 100
-death_penalty_type: 0
-death_penalty_base: 100
-death_penalty_job: 100
-zeny_penalty: 0
-restart_hp_rate: 0
-restart_sp_rate: 0
-mvp_hp_rate: 100
-mvp_item_rate: 100
-mvp_exp_rate: 100
-monster_hp_rate: 100
-monster_max_aspd: 199
-atcommand_gm_only: Yes
-gm_all_skill: 0
-gm_all_equipment: 0
-gm_skill_unconditional: 0
-player_skillfree: no
-player_skillup_limit: no
-weapon_produce_rate: 100
-potion_produce_rate: 100
-monster_active_enable: yes
-monster_damage_delay_rate: 100
-monster_loot_type: 0
-mob_skill_use: yes
-mob_count_rate: 100
-quest_skill_learn: no
-quest_skill_reset: yes
-basic_skill_check: yes
-guild_emperium_check: yes
-player_invincible_time: 5000
-pet_catch_rate: 100
-pet_rename: no
-pet_friendly_rate: 100
-pet_hungry_delay_rate: 100
-pet_hungry_friendly_decrease: 5
-pet_str: yes
-pet_status_support: no
-pet_support: no
-pet_support_rate: 100
-pet_attack_exp_to_master: no
-pet_attack_exp_rate: no
-pet_lootitem: no
-pet_weight: 1000
-skill_min_damage: no
-finger_offensive_type: 0
-heal_exp: 0
-resurrection_exp: 0
-hop_exp: 0
-combo_delay_rate: 100
-item_check: on
-wedding_modifydisplay: no
-natural_healhp_interval:4000
-natural_healsp_interval:8000
-natural_heal_skill_interval:10000
-natural_heal_weight_rate: 50
-item_name_override_grffile: yes
-arrow_decrement: yes
-max_aspd: 199
-max_hp: 32500
-max_sp: 32500
-max_parameter: 99
-max_cart_weight: 8000
-player_skill_log: off
-monster_skill_log: off
-battle_log: off
-save_log: off
-error_log: on
-etc_log: on
-save_clothcolor: no
-undead_detect_type: 2
-player_auto_counter_type: 1
-monster_auto_counter_type: 0
-agi_penaly_type: 0
-agi_penaly_count: 3
-agi_penaly_num: 0
-vit_penaly_type: 0
-vit_penaly_count: 3
-vit_penaly_num: 0
-player_defense_type: 0
-monster_defense_type: 0
-pet_defense_type: 0
-magic_defense_type: 0
-player_skill_reiteration: no
-monster_skill_reiteration: no
-player_skill_nofootset: no
-monster_skill_nofootset: no
-player_cloak_check_type: 0
-monster_cloak_check_type: 0
-gvg_short_attack_damage_rate: 100
-gvg_long_attack_damage_rate: 100
-gvg_magic_attack_damage_rate: 100
-gvg_misc_attack_damage_rate: 100
-mob_changetarget_byskill: no
-player_attack_direction_change:yes
-monster_attack_direction_change:yes
-player_land_skill_limit: yes
-monster_land_skill_limit: yes
-party_skill_penaly: yes
-monster_class_change_full_recover: no
-produce_item_name_input: yes
-produce_potion_name_input: yes
-making_arrow_name_input: yes
-holywater_name_input: yes
-display_delay_skill_fail: yes
-chat_warpportal: no
-mob_warpportal: no
-dead_branch_active: no
-vending_max_value: 10000000
-show_steal_in_same_party: no
-enable_upper_class: no
-pet_atack_attr_none: no
-pc_atack_attr_none: no
-mob_atack_attr_none: yes
-player_skill_partner_check: yes
-hide_GM_session: no
-invite_request_check: yes
-unit_movement_type: 0
-disp_experience: no
-night_at_start: No
-day_duration: 7200000
-night_duration: 1800000
-ban_spoof_namer: 5
-hack_info_GM_level: 60
-any_warp_GM_min_level: 20
-packet_ver_flag: 63
-
-
-==========================================================================
-6. atcommand_athena.conf
---------------------------------------------------------------------------
-
-< What this file is. >
-
- GMƒRƒ}ƒ“ƒh(/mmA/nb“™)‚â@ƒRƒ}ƒ“ƒh‚ðŽg‚¤‚±‚Æ‚ª‚Å‚«‚éGM‚̃Œƒxƒ‹‚ðÝ’è‚·‚镨‚Å‚·B
- Ý’è‚Í‘S‚ÄÈ—ª‰Â”\‚ÅAÈ—ªŽž‚̓fƒtƒHƒ‹ƒg’l‚ª—˜—p‚³‚ê‚Ü‚·B(ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B)
-
-command_symbol
- Set here the symbol that you want to use for your commands
- Only 1 character is get (default is '@'). You can set any character,
- except control-character (0x00-0x1f), '%' (party chat speaking) and '/' (standard ragnarok GM commands)
- With default character, all commands begin by a '@': <example> @revive
- default: @
-
-Sets the level of the users that can use the GM commands.
-<command name>: level
-// When battle_athena.conf has atcommand_gm_only set to no,
-// normal players (gm level 0) can use GM commands if you set 0 to the command level.
-Max GM level is 99. If you want forbid a command to all people, set it with level 100.
-
-broadcast
- GMƒRƒ}ƒ“ƒh /nbA/bA/bb
-local_broadcast
- GMƒRƒ}ƒ“ƒh /lb
-mapmove
- GMƒRƒ}ƒ“ƒh /mm
-resetstate
- GMƒRƒ}ƒ“ƒh /resetstateA/resetskill
-rura+
- @ƒRƒ}ƒ“ƒh @rura+
-rura
- @ƒRƒ}ƒ“ƒh @rura
-where
- @ƒRƒ}ƒ“ƒh @where
-jumpto
- @ƒRƒ}ƒ“ƒh @jumpto
-jump
- @ƒRƒ}ƒ“ƒh @jump
-who
- @ƒRƒ}ƒ“ƒh @who
-save
- @ƒRƒ}ƒ“ƒh @save
-load
- @ƒRƒ}ƒ“ƒh @load
-speed
- @ƒRƒ}ƒ“ƒh @speed
-storage
- @ƒRƒ}ƒ“ƒh @storage
-gstorage
- @ƒRƒ}ƒ“ƒh @gstorage
-option
- @ƒRƒ}ƒ“ƒh @option
-hide
- GMƒRƒ}ƒ“ƒh /hide‚Æ@ƒRƒ}ƒ“ƒh @hide
-jobchange
- @ƒRƒ}ƒ“ƒh @jobchange
-die
- @ƒRƒ}ƒ“ƒh @die
-kill
- @ƒRƒ}ƒ“ƒh @kill
-alive
- @ƒRƒ}ƒ“ƒh @alive
-kami
- @ƒRƒ}ƒ“ƒh @kamiA@kamib
-heal
- @ƒRƒ}ƒ“ƒh @heal
-item
- @ƒRƒ}ƒ“ƒh @itemA@item2
-itemreset
- @ƒRƒ}ƒ“ƒh @itemreset
-itemcheck
- @ƒRƒ}ƒ“ƒh @itemcheck
-lvup
- @ƒRƒ}ƒ“ƒh @lvup
-joblvup
- @ƒRƒ}ƒ“ƒh @joblvup
-help
- @ƒRƒ}ƒ“ƒh @helpA@h
-gm
- To become GM (need password; password is set in login_athena.conf).
- special!: only a non-GM (player with gm level 0) need to have this command.
- if you change the value, be sure of what you do!
- To be able to create a gm with @gm, you must:
- - give a level to level_new_gm (parameter of login_athena.conf) (not 0)
- - enable to level 0 the @gm command (atcommand_athena.conf) (default 100) - Only level 0 can give access to this command
- - enable gm commands to normal player (battle_athena.conf, atcommand_gm_only parameter)
- - and normal player must give correct password when he use the @gm command (gm_pass paramter in login_athena.conf)
-pvpoff
- @ƒRƒ}ƒ“ƒh @pvpoff
-pvpon
- @ƒRƒ}ƒ“ƒh @pvpon
-gvgoff
- @ƒRƒ}ƒ“ƒh @gvgoff
-gvgon
- @ƒRƒ}ƒ“ƒh @gvgon
-model
- @ƒRƒ}ƒ“ƒh @model
-go
- @ƒRƒ}ƒ“ƒh @go
-monster
- @ƒRƒ}ƒ“ƒh @monster
-killmonster
- @ƒRƒ}ƒ“ƒh @killmonsterA@killmonster2
-refine
- @ƒRƒ}ƒ“ƒh @refine
-produce
- @ƒRƒ}ƒ“ƒh @produce
-memo
- @ƒRƒ}ƒ“ƒh @memo
-gat
- @ƒRƒ}ƒ“ƒh @gat
-packet
- @ƒRƒ}ƒ“ƒh @packet
-stpoint
- @ƒRƒ}ƒ“ƒh @stpoint
-skpoint
- @ƒRƒ}ƒ“ƒh @skpoint
-zeny
- @ƒRƒ}ƒ“ƒh @zeny
-param
- @ƒRƒ}ƒ“ƒh @strA@agiA@vitA@intA@dexA@luk
-guildlvup
- @ƒRƒ}ƒ“ƒh @guildlvup
-makeegg
- @ƒRƒ}ƒ“ƒh @makeegg
-petfriendly
- @ƒRƒ}ƒ“ƒh @petfriendly
-pethungry
- @ƒRƒ}ƒ“ƒh @pethungry
-petrename
- @ƒRƒ}ƒ“ƒh @petrename
-recall
- @ƒRƒ}ƒ“ƒh @recall
-charjob
- @ƒRƒ}ƒ“ƒh @charjob
-revive
- @ƒRƒ}ƒ“ƒh @revive
-charstats
- @ƒRƒ}ƒ“ƒh @charstats
-charoption
- @ƒRƒ}ƒ“ƒh @charoption
-charsave
- @ƒRƒ}ƒ“ƒh @charsave
-charload
- @ƒRƒ}ƒ“ƒh @charload
-night
- @ƒRƒ}ƒ“ƒh @night
-day
- @ƒRƒ}ƒ“ƒh @day
-doom
- @ƒRƒ}ƒ“ƒh @doom
-doommap
- @ƒRƒ}ƒ“ƒh @doommap
-raise
- @ƒRƒ}ƒ“ƒh @raise
-raisemap
- @ƒRƒ}ƒ“ƒh @raisemap
-charbaselvl
- @ƒRƒ}ƒ“ƒh @charbaselvl
-charjlvl
- @ƒRƒ}ƒ“ƒh @charjlvl
-kick
- @ƒRƒ}ƒ“ƒh @kick‚ÆGM‰EƒNƒŠƒbƒN–½—ßuŽg—pŽÒ‹­§I—¹v
-allskill
- @ƒRƒ}ƒ“ƒh @allskill
-questskill
- @ƒRƒ}ƒ“ƒh @questskill
-lostskill
- @ƒRƒ}ƒ“ƒh @lostskill
-spiritball
- @ƒRƒ}ƒ“ƒh @spiritball
-party
- @ƒRƒ}ƒ“ƒh @party
-guild
- @ƒRƒ}ƒ“ƒh @guild
-agitstart
- @ƒRƒ}ƒ“ƒh @agitstart
-agitend
- @ƒRƒ}ƒ“ƒh @agitend
-mapexit
- @ƒRƒ}ƒ“ƒh @mapexit
-idsearch
- @ƒRƒ}ƒ“ƒh @idsearch
-charchangesex
- Changes the sex of an online player (all characters on the account)
-ignorelist
- Displays your ignore list
-charignorelist
- Displays ignore list of a player
-inall
- Allows all wispers for the player
-exall
- Blocks all wispers for the player
-chardisguise
- Changes disguise of a player
-charundisguise
- Cancels disguise of a player
-email
- To change your (own) email (characters protection)
- note: this command doesn't check email itself, but check structure of the email (xxx@xxx)
- if you want be sure of each e-mail disable this option (value: 100)
-
-
-import
- ‚»‚Ìs‚ð•Êƒtƒ@ƒCƒ‹‚Ì’†g‚Æ’u‚«Š·‚¦‚Ü‚·B
-
-
-< Example >
-command_symbol: @
-
-broadcast: 1
-local_broadcast: 1
-mapmove: 1
-resetstate: 1
-rura+: 1
-rura: 1
-where: 1
-jumpto: 1
-jump: 1
-who: 1
-save: 1
-load: 1
-speed: 1
-storage: 1
-gstorage: 1
-option: 1
-hide: 1
-jobchange: 1
-die: 1
-kill: 1
-alive: 1
-kami: 1
-heal: 1
-item: 1
-itemreset: 1
-itemcheck: 1
-lvup: 1
-joblvup: 1
-help: 1
-gm: 100
-pvpoff: 1
-pvpon: 1
-gvgoff: 1
-gvgon: 1
-model: 1
-go: 1
-monster: 1
-killmonster: 1
-refine: 1
-produce: 1
-memo: 1
-gat: 1
-packet: 1
-stpoint : 1
-skpoint : 1
-zeny: 1
-param: 1
-guildlvup: 1
-makeegg: 60
-petfriendly: 1
-pethungry: 1
-petrename: 1
-recall: 1
-charjob: 1
-revive: 1
-charstats: 1
-charoption: 1
-charsave: 1
-charload: 1
-night: 1
-day: 1
-doom: 1
-doommap: 1
-raise: 1
-raisemap: 1
-charbaselvl: 1
-charjlvl: 1
-kick: 1
-allskill: 1
-questskill: 1
-lostskill: 1
-spiritball: 1
-party: 1
-guild: 1
-agitstart: 1
-agitend: 1
-mapexit: 1
-idsearch: 1
-charchangesex: 1
-ignorelist: 0
-charignorelist: 20
-inall: 20
-exall: 20
-chardisguise: 60
-charundisguise: 60
-email: 0
-
-==========================================================================
-7. conf/ladmin_athena.conf
---------------------------------------------------------------------------
-
-< What this file is. >
-
- A setup of ladmin (remote administration of the login-server) is described.
- It mainly becomes a setup of an administrator.
- Only 'c' version of the ladmin is concerned by this configuration file.
- 'Perl' ladmin doesn't use it.
-
-
-< Explanation of a key >
-
-If you change one of these parameters, you must restart ladmin to update.
-If you repeat one parameter in the configuration file, only the latest will be validated.
-
-login_ip
- IP adress to contact login-server.
- It is the IP adress of the login-server.
- Default value: 127.0.0.1 (same computer).
-
-login_port
- Port to contact login-server.
- It is the port used by login-server.
- Default value: 6900.
-
-admin_pass
- It is the administrator password used to administrate the login-server.
- You define it in login-athena.conf.
- Void password will not work.
- NOTICE: You must change this or attackers can exploit your server.
- Default value: admin. CHANGES this default value to avoid hack.
-
-passenc:
- You specify here how ladmin send password to login-server. 3 values are possible:
- 0: plain text
- 1: use md5 key (format: key + password)
- 2: use md5 key (format: password + key) (default)
- default: 2
-
-defaultlanguage
- You can specified a language to display information and for logs.
- There are 2 values:
- F: Français
- E: English (default)
- If a displayed information isn't translated, English is used.
- Default value: E
-
-ladmin_log_filename
- Gives the log file name and path to stores logs information.
- All operations done by the ladmin are written in this file with a time stamp.
- Default value: log/ladmin.log
-
-date_format:
- Indicate how to display date in logs, to players, etc.
- 0: 31-12-2004 23:59:59
- 1: 12-31-2004 23:59:59
- 2: 2004-31-12 23:59:59
- 3: 2004-12-31 23:59:59
- Default value: 3
-
-import
- Gives an other configuration file to include in.
- You must write the additionnal configuration file name and path.
- The mentionned file can include any parameter of the login configuration.
- You can create a chain or configuration files if necessary.
- Default value: <no_additional_configuration_file>.
-
-<Example>
-login_ip:127.0.0.1
-login_port: 6900
-admin_pass: admin
-passenc: 2
-defaultlanguage: E
-ladmin_log_filename: log/ladmin.log
-date_format: 3
-//import: path/additional_configuration_file
-
-
-==========================================================================
-EOF
---------------------------------------------------------------------------
+==========================================================================
+eAthena dev 1.0.0 mod1004 Reference +alpha of the present conf
+--------------------------------------------------------------------------
+
+< What this file is. >
+
+ It is the reference of the setting method of an Athena setting file.
+although it is not a HowTo, it not Those who cannot use Athena even if they see this
+ To give up obediently is safer.
+
+
+< The list of conf >
+
+ login_athena.conf A setup of login-server
+ char_athena.conf A setup of char-server
+ inter_athena.conf A setup of inter-server
+ map_athena.conf A setup of map-server
+ battle_athena.conf This file has been splitted into 13 files, separating them
+ depending on their function. Those files are:
+
+ *battle.conf Regarding battle system configuration.
+ *client.conf Regarding client configuration.
+ *drops.conf Regarding mob drops configuration
+ *guild.conf Regarding guild configuration.
+ *monster.conf Regarding monsters guidance and settings.
+ *player.conf Regarding player and/or character settings.
+ *exp.conf Regarding exp settings.
+ *items.conf Regarding items settings.
+ *party.conf Regarding party settings.
+ *skill.conf Regarding skill settings
+ *gm.conf Regarding GM settings (not GM commands).
+ *misc.conf Regarding various settings (such as PK)
+ *pet.conf Regarding pet settings.
+ atcommand_athena.conf A setup of map-server (setup of the GM command or @ command)
+ ladmin_athena.conf A setup of ladmin ('c' version)
+
+
+< The fundamental setting method >
+
+One line "key: Enter as a value."
+<Example>
+key: value
+
+Head of the sentence It will become a comment if it begins by //.
+<Example>
+//Since this line is a comment, it is not processed.
+
+< Two or more same items >
+
+Priority is given to what was written later unless it is written especially clearly that two or more same items are written.
+login_athena.conf allow and deny -- and -- map_athena.conf map, npc, etc.
+Another processing will be carried out if two or more lines are written.
+
+==========================================================================
+1. conf/login_athena.conf
+--------------------------------------------------------------------------
+
+< What this file is. >
+
+ A setup of login-server (server which manages account) is described.
+ It mainly becomes a setup of an administrator.
+
+
+< Explanation of a key >
+
+If you change one of these parameters, you must restart login-server to update.
+If you repeat one parameter (except 'allow', 'deny' or 'ladminallowip') in the configuration file, only the latest will be validated.
+ 'Allow', 'deny' and 'ladminallowip' parameters are list parameters. Add as many 'allow', 'deny' or 'ladminallowip' as you need.
+
+login_port
+ Port to bind login-server to (always binds to all IP addresses)
+ It is the port used by login-server. It can be omitted and a default is 6900.
+ Default value: 6900.
+
+admin_pass
+ It is the administrator password used to administrate the login-server through a remote connection.
+ You will found some tools in the tool directory, and specially the tool
+ ./tool/ladmin (for Login ADMINistration), a perl software, which manages all accounts.
+ Void password will not work.
+ NOTICE: You must change this or attackers can exploit your server.
+ Default value: admin. CHANGES this default value to avoid hack.
+
+ladminallowip
+ It's a list parameter. To add an item in this list, just add a new line. Each line can only have 1 parameter.
+ This list indicates the IP that the server accepts for a remote administration.
+ This parameter accepts IP descriptions, like:
+ IP or the begining of IP: it's a characters match. Write an IP (123.456.789.012) or the begining of the IP (123.456.).
+ Because it's a characters match, the IP 123.4 matches with 123.4.xxx.yyy and 123.4z.xxx.yyy. So, add a final '.' to be sure of the IP.
+ Example:
+ allow: 127.0.0.1
+ allow: 192.168.10.
+ IP with number of bits for a network: it's a logical match. Write the network like this: 123.456.789.012/<#_of_mask_bits>
+ Don't use the final '.', but use all four values.
+ Example:
+ allow: 127.0.0.1/32 (match only 1 IP, because 32 bits match all bits).
+ allow: 192.168.10/24 (matches the network begining by 192.168.10).
+ IP with mask of a network: it's a logical match. Write the network like this: 123.456.789.012/345.678.901.234
+ Don't use the final '.', but use all four values for the IP and the mask.
+ Example:
+ allow: 127.0.0.1/255.255.255.255 (match only 1 IP).
+ allow: 192.168.10.0/255.255.255.0 (matches the network begining by 192.168.10).
+ all: matches any IP.
+ Example:
+ allow: all.
+ clear: clears the list at this point. Really useful for 'import' parameter, in the new configuration file.
+ Example:
+ allow: clear.
+ Add as many IP's as you wish.
+ Default value: all.
+
+gm_pass
+ It is the required password when a player wants to change its (normal) account to a GM (Game Master) account.
+ It is used by the @gm command.
+ Level of gm is set with level_new_gm parameter.
+ NOTICE: You should also change this one.
+ Default value: gm. CHANGES this default value to avoid player hack.
+
+level_new_gm
+ Level of new GM created with @gm command. (default: 60)
+ If you set to 0, you disable creation of new GM with @gm.
+ To be able to create a gm with @gm, you must:
+ - give a level to this value (not 0)
+ - enable to level 0 the @gm command (atcommand_athena.conf) (default 100)
+ - enable gm commands to normal player (battle_athena.conf, atcommand_gm_only parameter)
+ - and normal player must give correct password when he use the @gm command
+ Possible value: 0 to 99
+ Default value: 60
+
+new_account
+ It is whether to permit new account creation.
+ When allowed, the player must add _F or _M at the end of its login account to create a new account.
+ This extension of the account gives the sex of the new created account.
+ Without the _F/M, the account must have at least 4 characters.
+ The account will not have e-mail to protect characters against deletion.
+ The given password at first connection (when the account is created) is the account password.
+ The value can be: 1 (to allow creation) or 0 (to forbid creation).
+ Default value: 1.
+
+account_filename
+ It specifies the accounts save file.
+ Gives the accounts txt database name and path to stores accounts information.
+ Look into the file to have a short description of the database structure.
+ Can be omited, a default is save/account.txt.
+ Default value: save/account.txt.
+
+gm_account_filename
+ It specifies which account IDs have GM privileges, and what level they have.
+ We recommand to use only ID value lower than first normal player ID (2000000).
+ Levels ranges from 0 (no privilege/normal player) to 99 (highest privilege).
+ If you change a value inside this file, you must restart login-server to use the new value
+ or use reloadgm ladmin command.
+ Can be omited, a default is conf/GM_account.txt.
+ Default value: conf/GM_account.txt
+
+gm_account_filename_check_timer
+ Timer to check if GM_account file has been changed and reload GM account automaticaly
+ (in seconds)
+ Value: 0 (disabled), or 2 or more.
+ Default: 15
+
+login_log_filename
+ Gives the log file name and path to stores logs information.
+ All operations done by the login-server are written in this file with a time stamp.
+ Default value: log/login.log
+
+login_log_unknown_packets_filename
+ Gives the file name and path of the file that logs the received unknown packets.
+ It's used for debug or hack check.
+ All information are displayed with the time stamp, the ip of the source, the packet number,
+ the number of received bytes and the detail of the packet with hex and text values. Example:
+ 01-06-2004 21:25:21.579: receiving of an unknown packet -> disconnection
+ parse_login: connection #5 (ip: 82.64.111.96), packet: 0x4e92 (with being read: 28).
+ Detail (in hex):
+ 92 4e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ’N..............
+ 00 00 00 00 00 00 00 00 00 00 00 00 ............
+ Default value: log/login_unknown_packets.log
+
+save_unknown_packets
+ It indicates if the unknown packets are saved or not.
+ The unknown packets received from the char-server or remote administration does not relate to this parameter,
+ because they are always saved.
+ The value can be: 1 (to save unknown packets) or 0 (to not save them).
+ Be careful: if you receive an attack, your hard disk can cause lag...
+ So, active this option with a speed hard disk or for debug only.
+ Default value: 0
+
+display_parse_login
+ It indicates if you want display the parse of the packets received in a normal connection.
+ At all received packets in normal connection, the server display a message about the size and the value.
+ It's useful for debug. Possible values: 0: no (default), 1: yes.
+ Default value: 0
+
+display_parse_admin
+ It's same of 'display_parse_login' parameter, but only for remote administration received packets.
+ It's useful for debug. Possible values: 0: no (default), 1: yes.
+ Default value: 0
+
+display_parse_fromchar
+ It's same of 'display_parse_login' parameter, but only for char-server received packets.
+ It's useful for debug. Possible values: 0: no (default), 1: yes (without packet 0x2714), 2: all packets.
+ Default value: 0
+
+date_format:
+ indicate how to display date in logs, to players, etc.
+ 0: 31-12-2004 23:59:59
+ 1: 12-31-2004 23:59:59
+ 2: 2004-31-12 23:59:59
+ 3: 2004-12-31 23:59:59
+ Default value: 3
+
+min_level_to_connect
+ Indicate the minimum GM level of player that the server accepts to connection.
+ 0: all players (normal player are 0. it's default), or
+ 1-99: GM level at least with level x
+ Default value: 0 (any player or GM)
+
+add_to_unlimited_account
+ Give possibility to adjust (ladmin command: timeadd) the time of an unlimited account.
+ If set to on/1/yes..., the adjustment is be done from actual time to set the final time of the account.
+ If set to no/0/no..., the adjustment can not be done on an unlimited account.
+ You must set (ladmin command: timeset) a final time before to adjust (ladmin command: timeadd)
+ Default value: no
+
+start_limited_time
+ Starting additional sec from now for the limited time at creation of account
+ -1: new account are created with UNlimited time (default value)
+ 0 or more: new accounts was created by addition of the value (in sec) to the actual time (to set first limited time)
+ Default value: -1
+
+check_ip_flag
+ It's to check IP of a player between login-server and char-server (part of anti-hacking system)
+ If player doesn't have same IP, connection is refused.
+ Set to 0/off/no to not check IP of player.
+ Set to 1/on/yes if you want to check (default)
+ Note: if you enable this option, be sure that your (local/lan/wan) players use correct ip (in xml file) to contact servers,
+ and that your LAN is correctly configured (!), and that LAN configuration of eathena is right.
+ if not correct, you can read list of char-servers, but not look slots of characters (rejected by server).
+ Default value: yes
+
+order
+ This parameter controls how the login-server must use the 'allow' and 'deny' lists.
+ 'Allow' and 'deny' are used to do IP lists.
+ 3 possibilities:
+ 'deny,allow': to sum it up, it's like 'allow if not deny'. The login-server only checks the 'deny' list.
+ If the connected IP is in the 'deny' list, the login-server refuses the connection, otherwise it accepts it.
+ 'allow,deny': to sum it up, it's like 'deny if not allow'. The login-server only checks the 'allow' list.
+ If the connected IP is in the 'allow' list, the login-server accepts the connection, otherwise it refuses it.
+ 'mutual-failture': to sum it up, it's like 'allow if in allow list and not in the deny list'.
+ The login-server checks the 'allow' list. If the connected IP is in the 'allow' list,
+ the login-server checks it in the 'deny' list. If the connectec IP is not in the 'deny' list,
+ the login-server accepts the conection, otherwise it refuses it.
+ In this case, a non 'allow' IP or a 'deny' IP will be never accepted.
+ If you don't use allow AND deny, all ip are authorised.
+ Default value: deny,allow.
+
+allow
+ It's a list parameter. To add an item in this list, just add a new line. Each line can only have 1 parameter.
+ This list depends on the 'order' parameter (read 'order' parameter to known what the login-server do with this list).
+ This parameter accepts IP descriptions, like:
+ IP or the begining of IP: it's a characters match. Write an IP (123.456.789.012) or the begining of the IP (123.456.).
+ Because it's a characters match, the IP 123.4 matches with 123.4.xxx.yyy and 123.4z.xxx.yyy. So, add a final '.' to be sure of the IP.
+ Example:
+ allow: 127.0.0.1
+ allow: 192.168.10.
+ IP with number of bits for a network: it's a logical match. Write the network like this: 123.456.789.012/<#_of_mask_bits>
+ Don't use the final '.', but use all four values.
+ Example:
+ allow: 127.0.0.1/32 (match only 1 IP, because 32 bits match all bits).
+ allow: 192.168.10/24 (matches the network begining by 192.168.10).
+ IP with mask of a network: it's a logical match. Write the network like this: 123.456.789.012/345.678.901.234
+ Don't use the final '.', but use all four values for the IP and the mask.
+ Example:
+ allow: 127.0.0.1/255.255.255.255 (match only 1 IP).
+ allow: 192.168.10.0/255.255.255.0 (matches the network begining by 192.168.10).
+ all: matches any IP.
+ Example:
+ allow: all.
+ clear: clears the list at this point. Really useful for 'import' parameter, in the new configuration file.
+ Example:
+ allow: clear.
+ It does not support the backward match of host name.
+ Default value: <no list>.
+
+deny
+ This list works exactly like the 'allow' list, but for the 'deny' list.
+
+import
+ Gives an other configuration file to include in.
+ You must write the additionnal configuration file name and path.
+ The mentionned file can include any parameter of the login configuration.
+ You can create a chain or configuration files if necessary.
+ Default value: <no_additional_configuration_file>.
+
+<Example>
+login_port: 6900
+admin_pass: admin
+ladminallowip: all
+gm_pass: gm
+level_new_gm: 60
+new_account: 1
+account_filename: save/account.txt
+gm_account_filename: conf/GM_account.txt
+gm_account_filename_check_timer: 15
+login_log_filename: log/login.log
+login_log_unknown_packets_filename: log/login_unknown_packets.log
+save_unknown_packets: 0
+display_parse_login: 0
+display_parse_admin: 0
+display_parse_fromchar: 0
+date_format: 3
+min_level_to_connect: 0
+add_to_unlimited_account: off
+start_limited_time: -1
+check_ip_flag: yes
+order: deny,allow
+//deny: all
+//allow: 127.0.0.1
+//allow: 10.0.
+//allow: 172.16.0.0/16
+//allow: 192.168.0.0/255.255.255.0
+//import: import/new_login.conf
+
+==========================================================================
+2. conf/char_athena.conf
+--------------------------------------------------------------------------
+
+< What this file is. >
+
+ A setup of char-server (server which manages the character data in one world)
+ It ???. The name of a world, the password of a world, a server's IP,
+ A data file name etc. is described.
+
+
+<Explanation of a key>
+
+userid
+ It is ID which this world uses. It registers with login-server.
+ ID of account is specified.
+ And also [ it uses it for connecting to map-server used in this world ]
+ It is used also for discernment of the world within login-server.
+ It is each when registering two or more worlds into the same login-server.
+ It is necessary to use another ID by char-server.
+
+passwd
+ It is a password corresponding to ID which this world uses.
+ It is used for the time of the registration to login-server, and connecting to map-server.
+
+server_name
+ It is the name of this world. It is displayed when logged in by the client.
+
+wisp_server_name
+ Wisp name for server: used to send wisp from server to players (between 4 to 23 characters)
+ Default: Server
+
+login_ip
+ It is the IP address of login-server which registers a world seen from char-server.
+
+login_port
+ It is the port used by login-server. It can omit and a default is 6900.
+
+char_ip
+ It is the IP address of char-server seen from the client.
+
+char_port
+ It is the port used by char-server. It can omit and a default is 6121.
+
+email_creation
+ Option to force a player to create an e-mail.
+ If a player have default e-mail, and if you activate this option, the player can only connect in the game (to arrive on a map) like follow:
+ - Create at least 1 character
+ - Select 1 character
+ - Select DEL to enter his/her e-mail. (if OK is choosen, client says to the player: 'invalid e-mail')
+ - If his/her e-mail is correct, the player enter in the game (an e-mail is saved definitively).
+ - If his/her e-mail is incorrect, he/she have 'incorrect e-mail' and must select again DEL.
+ - After entering in the game (when the player arrives on a map), DEL and SEL/OK button work normaly for all next connections.
+ Resume: If a player have "incorrect/invalid e-mail" when he/she click on 'OK' button,
+ the player must click 'DEL' button and register his/her NEW e-mail to enter in the game
+ So, default is 0, because administrator must explain to their players before to activate this option.
+
+char_txt
+ It is the data file name which stores character data.
+ It is not omissible.
+
+char_maintenance
+ If it is made 1, it will be in a maintenance state.
+ It can omit and a default is 0.
+
+char_new
+ If it is made 1, the time (new) of being displayed on a client will stick.
+ It can omit and a default is 0.
+
+max_connect_user
+ It is the maximum number of the user linked to a Char-server.
+ If it is made 0, the maximum number restrictions will be lost.
+ Please use to apply restriction of the connection number.
+ It can omit and a default is 0.
+
+check_ip_flag
+ It's to check IP of a player between char-server and other servers (part of anti-hacking system)
+ If player doesn't have same IP, connection is refused.
+ Set to 0/off/no to not check IP of player.
+ Set to 1/on/yes if you want to check (default)
+ Note: if you enable this option, be sure that your (local/lan/wan) players use correct ip (in xml file) to contact servers,
+ and that your LAN is correctly configured (!), and that LAN configuration of eathena is right.
+ default: yes
+
+autosave_time
+ It is time to save data automatically at a file. A unit is a second.
+ It can omit and a default is 300 (5 minutes).
+
+start_point
+ When a new character is created, it is the place where they start.
+ It describes like "a map file name, X coordinates, and Y coordinates."
+ It can omit and is a default. It is new_1-1.gat and 53,111.
+
+start_weapon:
+ Starting weapon for new characters
+ default value: 1201 (Knife)
+
+start_armor:
+ Starting armor for new characters
+ default value: 2301 (Cotton Shirt)
+
+start_zeny
+ When new character is made, the quantity of ZENY which it has from the start is set up.
+ Being able to omit, a default is 500.
+
+unknown_char_name
+ The name returned when the name request of character which does not exist in a character server is carried out
+ It sets up. Being able to omit, a default is Unknown.
+
+char_log_filename
+ A character server's log file is specified.
+ Being able to omit, a default is log/char.log.
+
+name_ignoring_case
+ Allow or not identical name for characters but with a different case (upper/lower): example: Test-test-TEST-TesT
+ 0 (default): no character can have same name, instead of the case (no Test-TEST...)
+ 1: more than 1 of character can have same name if names are not using same case (one with Test, another with TEST, etc...)
+
+char_name_option
+ Manage possible letters/symbol in the name of charater. Control character (0x00-0x1f) are never accepted. Possible values are:
+ 0: no restriction (default)
+ 1: only letters/symbols in 'char_name_letters' option.
+ 2: Letters/symbols in 'char_name_letters' option are forbidden. All others are possibles.
+ default: 0.
+
+char_name_letters
+ Set the letters/symbols that you want use with the 'char_name_option' option.
+ Note: add 'space' between 2 others letters/symbols.
+ default: void.
+
+online_txt_filename
+ It sets the filename of the file which receives the online players list in text
+ default: online.txt
+
+online_html_filename
+ It sets the filename of the file which receives the online players list, but in html version
+ default: online.html
+
+online_sorting_option
+ It sets how to display online players in the txt/html files.
+ 0: no sorting (default)
+ 1: by alphabetical order of their name
+ 2: by number of their zenys
+ 3: by their base level
+ 4: by their job (and job level inside the same job)
+ 5: by alphabetical order of their actual map location
+ Note: sorting operation with a lot of online players can take time on a slow computer.
+
+online_display_option
+ It sets which columns that you want display in the online files. Do the addition of these values:
+ (if value is 0, no file is done)
+ 1: name (just the name, no function like 'GM')
+ 2: job
+ 4: levels
+ 8: map name
+ 16: mapname and coordonates
+ 32: zenys
+ 64: name (with 'GM' if the player is a GM)
+ default value: 1 (only name)
+
+online_gm_display_min_level
+ minimum GM level to display 'GM' when we want to display it.
+ default value: 1 (any GM)
+
+online_refresh_html
+ refresh time (in sec) of the html file in the explorer
+ default: 20
+
+import
+ The line is replaced with the contents of another file.
+
+
+< Example >
+userid: s1
+passwd: p1
+server_name: eAthena
+wisp_server_name: Server
+login_ip: 127.0.0.1
+login_port: 6900
+char_ip: 127.0.0.1
+char_port: 6121
+email_creation: 0
+char_txt: save/athena.txt
+char_maintenance: 0
+char_new: 0
+max_connect_user: 0
+check_ip_flag: yes
+autosave_time: 15
+start_point: new_1-1.gat,53,111
+start_weapon: 1201
+start_armor: 2301
+start_zeny: 500
+unknown_char_name: Unknown
+char_log_filename: log/char.log
+name_ignoring_case: 0
+char_name_option: 0
+//char_name_letters:
+online_txt_filename: online.txt
+online_html_filename: online.html
+online_sorting_option: 0
+online_display_option: 1
+online_gm_display_min_level: 1
+online_refresh_html: 20
+//import: import/new_char.conf
+
+
+==========================================================================
+3. conf/inter_athena.conf
+--------------------------------------------------------------------------
+
+< What this file is. >
+
+ A setup of inter-server (server which manages the global data in one world)
+ It ???. A data file name etc. is described.
+ (It is operating as a part of char-server in program now.)
+
+< Explanation of a key >
+
+storage_txt
+ It is the file name which stores warehouse data.
+ It can omit and is a default. It is save/storage.txt.
+
+party_txt
+ It is the file name which stores party data.
+ It can omit and is a default. It is save/party.txt.
+
+guild_txt
+ It is the file name which stores guild data.
+ It can omit and is a default. It is save/guild.txt.
+
+pet_txt
+ It is the file name which stores pet data.
+ It can omit and is a default. It is save/pet.txt.
+
+castle_txt
+ It is the file name which stores the castle data of a guild.
+ It can omit and is a default. It is save/castle.txt.
+
+guild_storage_txt
+ It is the file name which stores guild warehouse data.
+ Being able to omit, a default is save/g_storage.txt.
+
+accreg_txt
+ It is the file name which stores the account share variable data in a world.
+ It can omit and is a default. It is save/accreg.txt.
+
+party_share_level
+ The restriction level of a fair distribution party is set up.
+ Being able to omit, a default is 10.
+
+inter_log_filename
+ An interchange server's log file is specified.
+ Being able to omit, a default is log/inter.log.
+
+import
+ The line is replaced with the contents of another file.
+
+
+< Example >
+storage_txt: save/storage.txt
+party_txt: save/party.txt
+guild_txt: save/guild.txt
+pet_txt: save/pet.txt
+castle_txt: save/castle.txt
+guild_storage_txt: save/g_storage.txt
+accreg_txt: save/accreg.txt
+party_share_level: 10
+inter_log_file: log/inter.log
+
+
+==========================================================================
+4. conf/map_athena.conf
+--------------------------------------------------------------------------
+
+< What this file is. >
+
+ A fundamental setup of map-server (server which manages game advance on the map in his duty)
+ It ???.
+
+
+< Explanation of a key >
+
+userid
+ It is ID which this world uses. It is used for the connecting to char-server.
+
+passwd
+ It is a password corresponding to ID which this world uses.
+
+char_ip
+ map-server‚©‚ç‚Ý‚½A‚±‚̃T[ƒo[‚ª’S“–‚·‚éƒ}ƒbƒv‚̃[ƒ‹ƒh‚ðŠÇ—‚·‚é
+ char-server‚ÌIP‚Å‚·B
+
+char_port
+ ƒ}ƒbƒv‚ð“o˜^‚·‚échar-server‚̃|[ƒg‚Å‚·BÈ—ª‰Â”\‚ŃfƒtƒHƒ‹ƒg‚Í6121‚Å‚·B
+
+map_ip
+ ƒNƒ‰ƒCƒAƒ“ƒg‚©‚猩‚½‚±‚Ìmap-server‚ÌIP‚Å‚·B
+
+map_port
+ map-server‚ÅŽg—p‚·‚éƒ|[ƒg‚Å‚·BÈ—ª‰Â”\‚ŃfƒtƒHƒ‹ƒg‚Í5121‚Å‚·B
+
+autosave_time
+ ƒf[ƒ^‚ðŽ©“®“I‚ɃLƒƒƒ‰ŽI‚É‘—‚鎞ŠÔ‚Å‚·B’PˆÊ‚Í•b‚Å‚·B
+ È—ª‰Â”\‚ŃfƒtƒHƒ‹ƒg‚Í60(1•ª)‚Å‚·B
+
+water_height
+ …ê‚Ì‚‚³‚ðŽw’è‚·‚éƒtƒ@ƒCƒ‹‚ðŒˆ‚ß‚Ü‚·B
+ È—ª‰Â”\‚ÅAƒfƒtƒHƒ‹ƒg‚Íconf/water_height.txt‚Å‚·B
+
+motd_txt
+ Message of the Dayƒtƒ@ƒCƒ‹‚ðŽw’肵‚Ü‚·B
+ È—ª‰Â”\‚ÅAƒfƒtƒHƒ‹ƒg‚Íconf/motd.txt‚Å‚·B
+
+help_txt
+ @help‚Å•\Ž¦‚·‚éƒtƒ@ƒCƒ‹‚ðŽw’肵‚Ü‚·B
+ È—ª‰Â”\‚ÅAƒfƒtƒHƒ‹ƒg‚Íconf/help.txt‚Å‚·B
+
+mapreg_txt
+ MAPƒT[ƒo[“àƒLƒƒƒ‰ƒNƒ^[‹¤—L•Ï”‚ð•Û‘¶‚·‚éƒtƒ@ƒCƒ‹‚ðŽw’肵‚Ü‚·B
+ È—ª‰Â”\‚ÅAƒfƒtƒHƒ‹ƒg‚Ísave/mapreg_txt‚Å‚·B
+
+data_grf
+ ROƒf[ƒ^ƒtƒ@ƒCƒ‹ data.grf ‚ւ̃pƒX‚Å‚·B
+ È—ª‰Â”\‚ÅAƒfƒtƒHƒ‹ƒg‚Í ./data.grf ‚Å‚·B
+ grf-files.txt‚ª‚ ‚éꇂ»‚¿‚ç‚Ìݒ肪—D悳‚ê‚Ü‚·B
+
+sdata_grf
+ ƒTƒNƒ‰ƒCƒf[ƒ^ƒtƒ@ƒCƒ‹ sdata.grf ‚ւ̃pƒX‚Å‚·B
+ È—ª‰Â”\‚ÅAƒfƒtƒHƒ‹ƒg‚Í ./sdata.grf ‚Å‚·B
+ grf-files.txt‚ª‚ ‚éꇂ»‚¿‚ç‚Ìݒ肪—D悳‚ê‚Ü‚·B
+
+adata_grf
+ ƒ¿ƒf[ƒ^ƒtƒ@ƒCƒ‹ adata.grf ‚ւ̃pƒX‚Å‚·B
+ È—ª‰Â”\‚ÅAƒfƒtƒHƒ‹ƒg‚Í ./adata.grf ‚Å‚·B
+ grf-files.txt‚ª‚ ‚éꇂ»‚¿‚ç‚Ìݒ肪—D悳‚ê‚Ü‚·B
+
+npc
+ “Ç‚Ýž‚Þnpcƒf[ƒ^ƒtƒ@ƒCƒ‹‚ւ̃pƒX‚Å‚·B
+ •¡”Žw’è‰Â”\‚ÅAŽw’肵‚½‡‚Ƀ[ƒh‚µ‚Ü‚·B
+ clear ‚ðŽw’è‚·‚é‚Æ‚»‚ê‚Ü‚Å‚É“o˜^‚µ‚½ƒpƒX‚ð‘S‚Ä휂µ‚Ü‚·B
+
+delnpc
+ “Ç‚Ýž‚Ü‚È‚¢npcƒtƒ@ƒCƒ‹‚ւ̃pƒX‚Å‚·B
+ Žw’肵‚½ƒpƒX‚Ínpc‚ÅŽw’肳‚ꂽƒf[ƒ^ƒtƒ@ƒCƒ‹ƒŠƒXƒg‚©‚ç휂³‚ê‚Ü‚·B
+ all ‚ðŽw’è‚·‚é‚Æ‘S‚Ä휂µ‚Ü‚·( npc: clear ‚Æ“¯‹`)B
+
+map
+ ‚±‚̃}ƒbƒv‚ª’S“–‚·‚éƒ}ƒbƒvƒtƒ@ƒCƒ‹–¼‚Å‚·B
+ •¡”Žw’è‰Â”\‚ÅAŽw’肵‚½‡‚Ƀ[ƒh‚µ‚Ü‚·B
+ ‘¶Ý‚µ‚È‚¢ƒ}ƒbƒv‚ðŽw’肵‚½ê‡ƒGƒ‰[‚É‚È‚è‚Ü‚·B
+ clear ‚ðŽw’è‚·‚é‚Æ‚»‚ê‚Ü‚Å‚É“o˜^‚µ‚½ƒtƒ@ƒCƒ‹–¼‚ð‘S‚Ä휂µ‚Ü‚·B
+
+delmap
+ “Ç‚Ýž‚Ü‚È‚¢ƒ}ƒbƒvƒtƒ@ƒCƒ‹‚ւ̃pƒX‚Å‚·B
+ Žw’肵‚½ƒtƒ@ƒCƒ‹‚Ímap‚ÅŽw’肳‚ꂽƒŠƒXƒg‚©‚ç휂³‚ê‚Ü‚·B
+ all ‚ðŽw’è‚·‚é‚Æ‘S‚Ä휂µ‚Ü‚·( map: clear ‚Æ“¯‹`)B
+
+import
+ ‚»‚Ìs‚ð•Êƒtƒ@ƒCƒ‹‚Ì’†g‚Æ’u‚«Š·‚¦‚Ü‚·B
+
+< Example >
+
+userid: s1
+passwd: p1
+char_ip: 127.0.0.1
+char_port: 6121
+map_ip: 127.0.0.1
+map_port: 5121
+autosave_time: 60
+nullpo_check: 1
+water_height: conf/water_height.txt
+data_grf: ./data.grf
+sdata_grf: ./sdata.grf
+npc: conf/warp/npc_warp.txt
+npc: conf/warp/npc_warp25.txt
+npc: conf/warp/npc_warp3.txt
+npc: conf/mob/npc_monster3J.txt
+map: prontera.gat
+map: prt_castle.gat
+inpcAmap‚Í‘½‚¢‚Ì‚ÅÈ—ªj
+delnpc: conf/sample/npc_test.txt
+npc: clear
+delmap: prontera.gat
+delmap: all
+
+==========================================================================
+5. conf/battle_athena.conf
+--------------------------------------------------------------------------
+
+< What this file is. >
+
+ Battle relation of map-server (server which manages game advance on the map in his duty),
+ Other setup is described.
+ All setup can be omitted and a default value is used at the time of an abbreviation.
+
+< The special character sequence which can be specified to be a value >
+
+ yes on It is processed as 1. (Effective meaning)
+ no off It is processed as 0. (Invalid meaning)
+
+
+< Explanation of a key >
+
+warp_point_debug
+ ƒ[ƒvƒ|ƒCƒ“ƒg‚ð•’Ê‚É•\Ž¦‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðyes‚É‚·‚é‚Æ
+ ƒ[ƒvƒ|ƒCƒ“ƒg‚Ì‚©‚í‚è‚ɃMƒ‹ƒhƒtƒ‰ƒO‚ª‚»‚ÌꊂÉo‚ă[ƒv
+ ƒ|ƒCƒ“ƒg‚Ì–¼‘O‚ðŠm”F‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+enemy_critical
+ ƒvƒŒƒCƒ„[‚Æ“¯‚¶LUK‚É‚æ‚éƒNƒŠƒeƒBƒJƒ‹”»’è‚ðMOB‚ƃyƒbƒg‚É—LŒø‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ‚±‚̃NƒŠƒeƒBƒJƒ‹‚Í‚à‚¿‚ë‚ñ•K’†‚È‚Ì‚ÅAon‚É‚·‚é‚Æ‚Flee‚Å‚àA
+ LUK‚Ì‚‚¢“G‚ÌUŒ‚‚ª”ð‚¯‚Ã‚ç‚­‚È‚è‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+enemy_critical_rate
+ ƒ‚ƒ“ƒXƒ^[‚ƃyƒbƒg‚̃NƒŠƒeƒBƒJƒ‹•p“x‚Ì•S•ª—¦‚Å‚·Benemy_critical‚ªyes‚¶‚á‚È‚¢‚Æݒ肵‚Ä‚à‰½‚̈Ӗ¡‚à‚ ‚è‚Ü‚¹‚ñBƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+enemy_str
+ ƒ‚ƒ“ƒXƒ^[‚Ì‚ªUŒ‚‚·‚é‚Æ‚«‚ÌATKŒvŽZ‚ÉSTR‚ðŽg—p‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+
+enemy_perfect_flee
+ “G‚ªŠ®‘S‰ñ”ð‚ð‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðyes‚É‚·‚é‚Æ“G‚àŠ®‘S‰ñ”ð‚ð
+ ‚·‚é‚悤‚É‚È‚è‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+casting_rate
+ ƒXƒLƒ‹‚̉r¥ŽžŠÔ‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
+ 200‚É‚·‚é‚Ɖr¥ŽžŠÔ‚ª”{‚É‚È‚èA0‚É‚·‚é‚Ɖr¥‚ª‚È‚­‚È‚è‚Ü‚·B
+ 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+delay_rate
+ ƒXƒLƒ‹Žg—pŒãƒfƒBƒŒƒC‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
+ 200‚É‚·‚é‚ƃfƒBƒŒƒC‚ª”{‚É‚È‚èA0‚É‚·‚é‚ƃfƒBƒŒƒC‚ª‚È‚­‚È‚è‚Ü‚·B
+ 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+delay_dependon_dex
+ ƒXƒLƒ‹Žg—pŒãƒfƒBƒŒƒC‚ª‰r¥ŽžŠÔ‚Æ“¯‚¶‚悤‚ÉDEX‚ʼne‹¿‚ðŽó‚¯‚é‚©‚Ç‚¤‚©‚ð
+ Žw’肵‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+skill_delay_attack_enable
+ ƒXƒLƒ‹ƒfƒBƒŒƒC‚ÌŠÔUŒ‚‚Å‚«‚é‚©‚Ç‚¤‚©‚Å‚·Byes‚É‚·‚ê‚΃XƒLƒ‹ƒfƒBƒŒƒC‚ÌŠÔƒXƒLƒ‹‚ÍŽg‚¦‚È‚¢‚¯‚ÇUŒ‚‚Í‚Å‚«‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+left_cardfix_to_right
+ “ñ“—¬‚̶Žè•Ší‚ÌŽí‘°A‘®«ASize‚̃_ƒ[ƒW•â³‚ð‰EŽè•Ší‚É“K—p‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðyes‚É‚·‚é‚ƶŽè•Ší‚É‚ÍŽí‘°A‘®«ASize‚̃_ƒ[ƒW•â³‚ªŠ|‚©‚ç‚È‚­‚È‚è‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+player_skill_add_range
+ ƒvƒŒƒCƒ„[‚̃XƒLƒ‹ŽË’ö‚©‚ç“G‚ª—£‚ꂽŽž‚Ç‚ê‚®‚ç‚¢‚Ì‹——£‚܂ŃXƒLƒ‹‚ðŽg—p‰Â”\‚É‚·‚é‚©‚ðŒˆ‚ß‚Ü‚·BƒXƒLƒ‹‚ÌŽË’ö+player_skill_add_range‚܂ŃXƒLƒ‹‚ª“Í‚«‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·‚ª­‚µ‚Í“ü‚ꂽ•û‚ª‚¢‚¢‚Å‚·B
+
+skill_out_range_consume
+ ƒXƒLƒ‹‚ÌŽË’ö‚©‚ç“G‚ª—£‚ê‚ăXƒLƒ‹‚ªŽ¸”s‚µ‚½ŽžSP‚âƒAƒCƒeƒ€‚ðÁ–Õ‚·‚é‚©‚Ç‚¤‚©‚Å‚·BƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+
+monster_skill_add_range
+ ƒ‚ƒ“ƒXƒ^[‚̃XƒLƒ‹ŽË’ö‚©‚ç“G‚ª—£‚ꂽŽž‚Ç‚ê‚®‚ç‚¢‚Ì‹——£‚܂ŃXƒLƒ‹‚ðŽg—p‰Â”\‚É‚·‚é‚©‚ðŒˆ‚ß‚Ü‚·BƒXƒLƒ‹‚ÌŽË’ö+monster_skill_add_range‚܂ŃXƒLƒ‹‚ª“Í‚«‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
+
+player_damage_delay
+ ƒvƒŒƒCƒ„[ƒLƒƒƒ‰‚ªƒ_ƒ[ƒW‚ðŽó‚¯‚½ŽžˆÚ“®‚Å‚«‚È‚¢ƒfƒBƒŒƒC‚ð“ü‚ê‚é‚©‚Ç‚¤‚©‚Å‚·B
+ yes‚É‚·‚é‚ƃCƒ“ƒfƒ…ƒA‚Å‚àŽg‚í‚È‚¢ŒÀ‚èƒ_ƒ[ƒW‚ðŽó‚¯‚½Žž
+ ‚µ‚΂炭‚Í“®‚«‚Ü‚¹‚ñBƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+
+player_damage_delay_rate
+ ƒvƒŒƒCƒ„[ƒLƒƒƒ‰‚ªƒ_ƒ[ƒW‚ðŽó‚¯‚½ŽžˆÚ“®‚Å‚«‚È‚¢ƒfƒBƒŒƒC‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
+ 200‚É‚·‚é‚ƃfƒBƒŒƒC‚ª”{‚É‚È‚èA0‚É‚·‚é‚ƃfƒBƒŒƒC‚ª‚È‚­‚È‚è‚Ü‚·B
+ player_damage_delay‚ªyes‚É‚µ‚Ä‚È‚¢‚ƈӖ¡‚ª‚ ‚è‚Ü‚¹‚ñB
+ ƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+defunit_not_enemy
+ –hŒäƒ†ƒjƒbƒgiƒZƒCƒtƒeƒBƒEƒH[ƒ‹/ƒjƒ…[ƒ}‚È‚Çj‚ªMOB‚ÉŒø‰Ê‚ð
+ ‹y‚Ú‚³‚È‚¢‚悤‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·BƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+
+random_monster_checklv
+ ƒ‚ƒ“ƒXƒ^[¢ŠÒƒAƒCƒeƒ€‚ðŽg‚Á‚½‚Æ‚«‚ÉŽ©•ª‚æ‚èLV‚Ì‚‚¢ƒ‚ƒ“ƒXƒ^[‚ð¢ŠÒ‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ yes‚É‚·‚é‚ÆAŽ©•ª‚æ‚èLV‚Ì‚‚¢ƒ‚ƒ“ƒXƒ^[‚ð¢ŠÒ‚µ‚È‚¢‚悤‚É‚È‚è‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+
+attribute_recover
+ ‘®«‚É‚æ‚Á‚ÄUŒ‚‚³‚ê‚Ä‚à‰ñ•œ‚·‚é‚©‚Ç‚¤‚©‚Å‚·Bno‚ÌꇂÍ-‘®«‚ð
+ 0‚É‚µ‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+
+item_auto_get
+ ƒAƒCƒeƒ€Ž©“®Žæ“¾‹@”\‚ðŽg—p‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ yes‚É‚·‚é‚ƃAƒCƒeƒ€ƒhƒƒbƒv‚ðƒ‚ƒ“ƒXƒ^[‚Ɉê”Ô‘½‚­ƒ_ƒ[ƒW‚ð—^‚¦‚½ƒLƒƒƒ‰‚ª
+ Ž©“®‚ŃAƒCƒeƒ€‚ðŽæ“¾‚·‚é‚悤‚É‚È‚è‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+flooritem_lifetime
+ °‚É—Ž‚¿‚½ƒAƒCƒeƒ€‚ªÁ‚¦‚é‚Ü‚Å‚©‚©‚鎞ŠÔ‚Å‚·B’PˆÊ‚Íms(ƒ~ƒŠ•b)‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í60000(60•b)‚ÅŬ‚Í1000(1•b)‚Å‚·B1000–¢–ž‚È‚çƒfƒtƒHƒ‹ƒg‚ɃZƒbƒg‚³‚ê‚Ü‚·B
+
+item_first_get_time
+ ƒ‚ƒ“ƒXƒ^[‚Ɉê”Ôƒ_ƒ[ƒW‚𑽂­—^‚¦‚½ƒLƒƒƒ‰ˆÈŠO‚ª‚»‚̃‚ƒ“ƒXƒ^[‚Ì
+ ƒhƒƒbƒvƒAƒCƒeƒ€‚ðŽæ‚ê‚é‚悤‚É‚È‚é‚Ü‚Å‚ÌŽžŠÔ‚Å‚·B
+ ’PˆÊ‚Íms(ƒ~ƒŠ•b)‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í10000(10•b)‚Å‚·B
+
+item_second_get_time
+ item_first_get_time‚̌ヂƒ“ƒXƒ^[‚É“ñ”ԖڂɃ_ƒ[ƒW‚𑽂­—^‚¦‚½
+ ƒLƒƒƒ‰ˆÈŠO‚ª‚»‚̃‚ƒ“ƒXƒ^[‚̃hƒƒbƒvƒAƒCƒeƒ€‚ðŽæ‚ê‚é‚悤‚É‚È‚é‚Ü‚Å‚Ì
+ ŽžŠÔ‚Å‚·B’PˆÊ‚Íms(ƒ~ƒŠ•b)‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í7000(7•b)‚Å‚·B
+
+item_third_get_time
+ item_second_get_time‚̌ヂƒ“ƒXƒ^[‚ÉŽO”ԖڂɃ_ƒ[ƒW‚𑽂­—^‚¦‚½
+ ƒƒƒ‰ˆÈŠO‚ª‚»‚̃‚ƒ“ƒXƒ^[‚̃hƒƒbƒvƒAƒCƒeƒ€‚ðŽæ‚ê‚é‚悤‚É‚È‚é‚Ü‚Å‚Ì
+ ŽžŠÔ‚Å‚·B’PˆÊ‚Íms(ƒ~ƒŠ•b)‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í5000(5•b)‚Å‚·B
+
+mvp_item_first_get_time
+ ƒ‚ƒ“ƒXƒ^[‚Ɉê”Ôƒ_ƒ[ƒW‚𑽂­—^‚¦‚½ƒLƒƒƒ‰ˆÈŠO‚ª‚»‚̃‚ƒ“ƒXƒ^[‚Ì
+ MVPƒAƒCƒeƒ€‚ðŽæ‚ê‚é‚悤‚É‚È‚é‚Ü‚Å‚ÌŽžŠÔ‚Å‚·B
+ ’PˆÊ‚Íms(ƒ~ƒŠ•b)‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í10000(10•b)‚Å‚·B
+
+mvp_item_second_get_time
+ mvp_item_first_get_time‚̌ヂƒ“ƒXƒ^[‚É“ñ”ԖڂɃ_ƒ[ƒW‚𑽂­—^‚¦‚½
+ ƒLƒƒƒ‰ˆÈŠO‚ª‚»‚̃‚ƒ“ƒXƒ^[‚ÌMVPƒAƒCƒeƒ€‚ðŽæ‚ê‚é‚悤‚É‚È‚é‚Ü‚Å‚Ì
+ ŽžŠÔ‚Å‚·B’PˆÊ‚Íms(ƒ~ƒŠ•b)‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í10000(10•b)‚Å‚·B
+
+mvp_item_third_get_time
+ mvp_item_second_get_time‚̌ヂƒ“ƒXƒ^[‚ÉŽO”ԖڂɃ_ƒ[ƒW‚𑽂­—^‚¦‚½
+ ƒLƒƒƒ‰ˆÈŠO‚ª‚»‚̃‚ƒ“ƒXƒ^[‚ÌMVPƒAƒCƒeƒ€‚ðŽæ‚ê‚é‚悤‚É‚È‚é‚Ü‚Å‚Ì
+ ŽžŠÔ‚Å‚·B’PˆÊ‚Íms(ƒ~ƒŠ•b)‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í2000(2•b)‚Å‚·B
+
+item_rate
+ ƒAƒCƒeƒ€ƒhƒƒbƒv—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
+ 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+drop_rate0item
+ —Ž‰ºŠm—¦0‚̃AƒCƒeƒ€(ˆê•”ƒ‚ƒ“ƒXƒ^[‚É‚¨‚¯‚郊ƒ“ƒS)‚𗎉º‚·‚é‚©‚Ç‚¤‚©‚ÌÝ’è‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+base_exp_rate
+ BaseEXP‚ÌŠ“¾”{—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
+ 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+job_exp_rate
+ JobEXP‚ÌŠ“¾”{—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
+ 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+death_penalty_type
+ ƒfƒXƒyƒiƒ‹ƒeƒB‚̃^ƒCƒv‚ðŒˆ’è‚µ‚Ü‚·B
+ 0‚ÅŽ€‚ñ‚¾ŒãƒŠƒXƒ^[ƒg‚·‚鎞‚É“K—p‚ÅŽ‚Á‚Ä‚¢‚éEXP‚Ì—Ê‚©‚ç”ä—¦‚Ì•ª‚ðŒ¸‚ç‚·Žd—lA1‚ÅŽ€‚ñ‚¾’¼Œã‚É“K—p‚ÅŽ‚Á‚Ä‚¢‚éEXP‚Ì—Ê‚©‚ç”ä—¦‚Ì•ª‚ðŒ¸‚ç‚·Žd—l‚Å‚·B
+ 2‚ÅŽ€‚ñ‚¾ŒãƒŠƒXƒ^[ƒg‚·‚鎞‚É“K—p‚ÅŽŸ‚̃Œƒxƒ‹ƒAƒbƒv‚Ü‚Å‚ÌEXP‚©‚ç”ä—¦‚Ì•ª‚ðŒ¸‚ç‚·Žd—lA3‚ÅŽ€‚ñ‚¾’¼Œã‚É“K—p‚ÅŽŸ‚̃Œƒxƒ‹ƒAƒbƒv‚Ü‚Å‚ÌEXP‚©‚ç”ä—¦‚Ì•ª‚ðŒ¸‚ç‚·Žd—l‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
+
+death_penalty_base
+ ƒfƒXƒyƒiƒ‹ƒeƒB‚É‚æ‚éBASEŒoŒ±’lŒ¸­—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
+ ‚ ‚Ü‚è’á‚·‚¬‚é’l‚ðŽg‚¤‚ÆŒ¸‚è‚Ü‚¹‚ñB’PˆÊ‚Í0.01%‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
+
+death_penalty_job
+ ƒfƒXƒyƒiƒ‹ƒeƒB‚É‚æ‚éJOBŒoŒ±’lŒ¸­—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
+ ‚ ‚Ü‚è’á‚·‚¬‚é’l‚ðŽg‚¤‚ÆŒ¸‚è‚Ü‚¹‚ñB’PˆÊ‚Í0.01%‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
+
+zeny_penalty
+ Ž€‚ñ‚¾Žž–³‚­‚È‚éƒ[ƒj—ʂ̔䗦‚Å‚·B’PˆÊ‚Í0.01%‚Å‚·BŽ€‚ñ‚¾Žž
+ Œ¸‚é‚킯‚Å‚Í‚È‚­Ž€‚ñ‚¾ŒãƒZ[ƒ”ƒ|ƒCƒ“ƒg‚ɖ߂鎞“K—p‚³‚ê‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
+
+restart_hp_rate
+ ƒŠƒXƒ^[ƒg‚·‚鎞‚ɉñ•œ‚·‚éHP”ä—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B’PˆÊ‚Í%‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B0‚Ìê‡1‰ñ•œ‚É‚È‚è‚Ü‚·B
+
+restart_sp_rate
+ ƒŠƒXƒ^[ƒg‚·‚鎞‚ɉñ•œ‚·‚éSP”ä—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B’PˆÊ‚Í%‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B0‚Ìꇂ͉ñ•œ‚µ‚Ü‚¹‚ñB
+ ‚»‚µ‚ÄSP‚ª”ä—¦‚æ‚è‚‚¢ê‡‚à‰ñ•œ‚µ‚Ü‚¹‚ñB
+
+mvp_hp_rate
+ MVP ƒ‚ƒ“ƒXƒ^[‚ÌHP‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
+ 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+mvp_item_rate
+ MVPƒAƒCƒeƒ€‚ÌŠ“¾”{—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
+ 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+mvp_exp_rate
+ MVP EXP‚ÌŠ“¾”{—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
+ 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+monster_hp_rate
+ MVP ˆÈŠO‚̃‚ƒ“ƒXƒ^[‚ÌHP‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
+ 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+monster_max_aspd
+ ƒ‚ƒ“ƒXƒ^[‚ÌÅ‘åUŒ‚‘¬“x‚ðݒ肵‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í199‚Å‚·BÅ‘å‚Í199‚ÅŬ‚Í100‚Å‚·B
+
+atcommand_gm_only
+ —ƒRƒ}ƒ“ƒh‚ðGMê—p‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+gm_all_skill
+ ‘S‚ẴXƒLƒ‹‚ðŠo‚¦‚ç‚ê‚é‚悤‚É‚·‚éGM‚̃Œƒxƒ‹‚ðݒ肵‚Ü‚·B
+ ‚±‚ê‚ð0ˆÈŠO‚É‚·‚é‚ÆA‚»‚ÌGMƒŒƒxƒ‹ˆÈã‚ÌGM‚ÍJOB‚âƒXƒLƒ‹Š“¾ðŒ‚ÉŠÖŒW‚È‚­‘SƒXƒLƒ‹‚ªŠo‚¦‚ç‚ê‚Ü‚·B(ƒNƒFƒXƒgƒXƒLƒ‹‚àŠÜ‚ß‚Ä)
+ ƒfƒtƒHƒ‹ƒg‚Í 0 ‚Å‚·B0‚ÌꇂÍGM‚Å‚Í‚È‚¢‘S‚ẴLƒƒƒ‰‚̈Ӗ¡‚Å‚Í‚È‚­‘S‚Ä‚ÌGM‚ª‘S‚ẴXƒLƒ‹‚ðŠo‚¦‚ç‚ê‚È‚¢‚ÆŒ¾‚¤‚±‚Æ‚Å‚·B
+
+gm_all_equipment
+ ‘S‚Ä‚Ì‘•”õ•i‚ð‘•”õ‚Å‚«‚é‚悤‚É‚·‚éGM‚̃Œƒxƒ‹‚ðݒ肵‚Ü‚·B
+ ‚±‚ê‚ð0ˆÈŠO‚É‚·‚é‚ÆA‚»‚ÌGMƒŒƒxƒ‹ˆÈã‚ÌGM‚ÍJOB‚⃌ƒxƒ‹A«•Ê‚ÉŠÖŒW‚È‚­
+ ‘S‘•”õ•i‚ð‘•”õ‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚·B‚½‚¾‚µAƒNƒ‰ƒCƒAƒ“ƒg‘¤‚ŃGƒ‰[‚ð
+ ‹N‚±‚·‘g‚݇‚킹‚à‚ ‚é‚ÆŽv‚¢‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Í 0 ‚Å‚·B
+ 0‚Ìꇂ͑S‚Ä‚ÌGM‚Í’ÊíƒvƒŒƒCƒ„[‚Æ“¯‚¶”»’肪s‚í‚ê‚Ü‚·B
+
+gm_skill_unconditional
+ –³ðŒ‚ɃXƒLƒ‹‚ðŽg—p‚Å‚«‚é‚悤‚É‚·‚éGM‚̃Œƒxƒ‹‚ðݒ肵‚Ü‚·B
+ ‚±‚ê‚ð0ˆÈŠO‚É‚·‚é‚ÆA‚»‚ÌGMƒŒƒxƒ‹ˆÈã‚ÌGM‚Í‘•”õ•Ší‚âÁ”ïƒAƒCƒeƒ€‚Ì—L–³
+ ‚È‚Ç‚ÉŠÖŒW‚È‚­A‚»‚µ‚ĉ½‚àÁ”ï‚·‚邱‚Æ‚È‚­ƒXƒLƒ‹‚ðŽg—p‚Å‚«‚é‚悤‚É
+ ‚È‚è‚Ü‚·B”»’舗‚𖳎‹‚·‚é‚Ì‚Å“®ì‚É•s“s‡‚ª‚Å‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í 0 ‚Å‚·B 0‚Ìꇂ͑S‚Ä‚ÌGM‚Í’ÊíƒvƒŒƒCƒ„[‚Æ“¯‚¶”»’肪
+ s‚í‚ê‚Ü‚·B
+
+player_skillfree
+ ƒXƒLƒ‹ƒcƒŠ[‚ÉŠÖŒW‚È‚­ƒXƒLƒ‹‚ðã‚°‚邱‚Æ‚ª‚Å‚«‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ‚±‚ê‚ðyes‚É‚·‚ê‚΃vƒŒƒCƒ„[‚ÌE‹Æ‚ÅK‚¤‚±‚Æ‚ª‚Å‚«‚éƒXƒLƒ‹‘S‚Ä‚ð
+ ƒXƒLƒ‹ƒcƒŠ[‚ÉŠÖŒW‚È‚­ã‚°‚邱‚Æ‚ª‚Å‚«‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+player_skillup_limit
+ ƒXƒLƒ‹ƒŠƒZƒbƒg“™‚ð‚µ‚½ŽžƒXƒLƒ‹‚ð§ŒÀ‚È‚µ‚Éã‚°‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ‚±‚ê‚ðyes‚É‚·‚ê‚ÎŽn‚߂̃XƒLƒ‹ƒ|ƒCƒ“ƒg9‚‚̓m[ƒrƒX‚ÅK‚¤ƒXƒLƒ‹‚É‚µ‚©
+ Žg‚¦‚Ü‚¹‚ñB‚»‚µ‚Ä‚»‚ÌŒã‚Ì39‚Í1ŽŸE‹Æ‚ÅK‚¤•¨‚É‚¾‚¯Žg‚¦‚Ä‚»‚ÌŒã‚Ì
+ ƒ|ƒCƒ“ƒg‚ÍŽ©—R‚ÉŽg‚¤‚±‚Æ‚ª‚Å‚«‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+weapon_produce_rate
+ •Ší»‘¢ƒXƒLƒ‹‚Å‚Ì»‘¢¬Œ÷—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
+ 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+potion_produce_rate
+ ƒ|[ƒVƒ‡ƒ“»‘¢ƒXƒLƒ‹‚Å‚Ì»‘¢¬Œ÷—¦‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
+ 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+monster_active_enable
+ æUƒ‚ƒ“ƒXƒ^[‚ðæU‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðno‚É‚·‚é‚Æ
+ æUƒ‚ƒ“ƒXƒ^[‚ª”ñæU‚É‚È‚è‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+
+monster_damage_delay_rate
+ ƒ‚ƒ“ƒXƒ^[‚ªƒ_ƒ[ƒW‚ðŽó‚¯‚½ŽžˆÚ“®‚Å‚«‚È‚¢ƒfƒBƒŒƒC‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
+ 200‚É‚·‚é‚ƃfƒBƒŒƒC‚ª”{‚É‚È‚èA0‚É‚·‚é‚ƃfƒBƒŒƒC‚ª‚È‚­‚È‚è‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+monster_loot_type
+ ƒ‹[ƒgƒ‚ƒ“ƒXƒ^[‚Ìs“®‚ÌŽd•û‚ðŽw’肵‚Ü‚·B
+ 0‚ÌꇂÍLOOTITEM_SIZE‚܂ŃAƒCƒeƒ€‚ðH‚ׂĂà‚Ü‚½ƒAƒCƒeƒ€‚ðH‚ׂÄA
+ ‘O‚̃AƒCƒeƒ€‚ªÁ‚¦‚éŽd—lB1‚ÌꇂÍLOOTITEM_SIZE‚܂ŃAƒCƒeƒ€‚ðH‚ׂé‚Æ
+ ‚à‚¤ƒAƒCƒeƒ€‚ðH‚ׂȂ­‚È‚éŽd—lBƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
+
+mob_skill_use
+ MOB‚ªƒXƒLƒ‹‚ðŽg‚Á‚Ä‚­‚é‚©‚Ç‚¤‚©‚Å‚·BƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+
+mob_count_rate
+ map_athena.conf‚ÅŽw’肳‚ꂽnpcƒf[ƒ^‚ð“Ç‚Ýž‚ÞÛA
+ monster‚Å’è‹`‚³‚ꂽ”z’uMOB‚Ì”‚ð•S•ª—¦‚Å’²®‚µ‚Ü‚·B
+ —áŠO‚Æ‚µ‚ÄA”z’u”1‚Æ‚µ‚Ä’è‹`‚³‚ꂽMOB‚Ì”‚Í•Ï‚í‚è‚Ü‚¹‚ñB(BOSS‘Îô)
+ ‚Ü‚½A”z’u”‚ð‰º•ûC³‚µ‚½‚Æ‚«A1–¢–ž‚É‚È‚Á‚½ê‡‚Í1‚Æ‚µ‚Ĉ—‚µ‚Ü‚·B
+ 0-1000’ö“x‚ÅŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+quest_skill_learn
+ ƒNƒFƒXƒgƒXƒLƒ‹‚ð•’Ê‚ÉK“¾‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ‚±‚ê‚ðyes‚É‚·‚é‚ƃNƒFƒXƒgƒXƒLƒ‹‚ª•’Ê‚É•\Ž¦‚³‚ê‚ăXƒLƒ‹ƒ|ƒCƒ“ƒg‚ðŽg‚Á‚ÄK“¾‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í no‚Å‚·B
+
+quest_skill_reset
+ ƒXƒLƒ‹‚ðƒŠƒZƒbƒg‚·‚鎞ƒNƒFƒXƒgƒXƒLƒ‹‚ðƒŠƒZƒbƒg‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+ no‚É‚µ‚Ä‚àquest_skill_learn‚ðyes‚É‚·‚ê‚΃ŠƒZƒbƒg‚³‚ê‚Ü‚·B
+
+basic_skill_check
+ À‚èAŒðŠ·Aƒp[ƒeƒBŒ‹¬Aƒ`ƒƒƒbƒgƒ‹[ƒ€ì‚è“™‚ÌŽžŠî–{ƒXƒLƒ‹‚ðƒ`ƒFƒbƒN‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ‚±‚ê‚ðno‚É‚·‚ê‚ÎÀ‚èAŒðŠ·“™‚ÌŠî–{ƒXƒLƒ‹‚ª•K—v‚Ès“®‚ðŠî–{ƒXƒLƒ‹‚ÉŠÖŒW‚È‚­Žg‚¤‚±‚Æ‚ª‚Å‚«‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í yes‚Å‚·B
+
+guild_emperium_check
+ ƒMƒ‹ƒh‚ðì‚鎞ƒGƒ“ƒyƒŠƒEƒ€‚ðÁ”ï‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðno‚É‚·‚ê‚Î
+ ƒGƒ“ƒyƒŠƒEƒ€‚È‚µ‚Å‚àƒMƒ‹ƒh‚ªì‚ê‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í yes‚Å‚·B
+
+guild_exp_limit
+ ƒMƒ‹ƒh‚Ì–ðE‚ÉÝ’è‚Å‚«‚éã”[ŒoŒ±’l‚ÌŠ„‡‚ÌãŒÀ‚ðÝ’è‚Å‚«‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í50(%)‚Å‚·B
+
+player_invincible_time
+ ƒ}ƒbƒvˆÚ“®‚âƒeƒŒƒ|[ƒgA•œŠˆ‚µ‚½Žž‚Ì–³“GŽžŠÔ‚ðݒ肵‚Ü‚·B’PˆÍ‚Í
+ ms(ƒ~ƒŠ•b)BˆÚ“®AUŒ‚s“®AƒXƒLƒ‹Žg—pAƒAƒCƒeƒ€Žg—p‚ð‚·‚é‚Æ‚±‚Ì
+ ŽžŠÔ‚Í‚È‚­‚È‚éB(ƒV[ƒYƒ‚[ƒh‚Å‚ÍŽžŠÔ‚ð2”{‚É‚µ‚Ä“K—p)
+ ƒfƒtƒHƒ‹ƒg‚Í5000(5•b)‚Å‚·B
+
+pet_catch_rate
+ ƒyƒbƒg‚̕ߊl”{—¦‚ð•S•ª—¦‚Åݒ肵‚Ü‚·B
+ 0-1000’ö“x‚Ì”’l‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+pet_rename
+ ƒyƒbƒg‚Ì–¼‘O‚ð•ÏX‚·‚é‚©‚Ç‚¤‚©‚ðŒˆ‚ß‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+ yes‚͉½“x‚Å‚à–¼‘O‚Ì•ÏX‚ª‰Â”\Bno‚͈ê“x•ÏX‚·‚é‚Æ‚à‚¤•ÏX•s‰Â”\‚É‚È‚éB
+
+pet_friendly_rate
+ ƒyƒbƒg‚ɉa‚ð‚ ‚°‚½Žžã‚ª‚ée–§“x‚Ì”{—¦‚Å‚·B
+ e–§“x‚ªŒ¸‚éꇂ͓K—p‚³‚ê‚Ü‚¹‚ñBƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+pet_hungry_delay_rate
+ ƒyƒbƒg‚Ì• ‚ªŒ¸‚鎞ŠÔ‚Ì”{—¦‚Å‚·B
+ ”{—¦‚ª‚‚¢‚Æ• ‚ªŒ¸‚è“ï‚­‚È‚è‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+pet_hungry_friendly_decrease
+ ƒyƒbƒg‚Ì• ‚ªŠ®‘S‚ÉŒ¸‚Á‚½ŽžŒ¸‚ée–§“x‚Ì—Ê‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í5‚Å‚·B
+
+pet_str
+ ƒyƒbƒg‚ÌATKŒvŽZ‚ÉSTR‚ð“K—p‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+
+pet_status_support
+ ƒyƒbƒg‚É‚æ‚éƒXƒe[ƒ^ƒXƒ{[ƒiƒX‚ð“K—p‚·‚é‚©‚Ç‚¤‚©‚Å‚·Byes‚É‚·‚é‚Æ
+ ƒyƒbƒg‚ðŽ‚Á‚Ă鎞ƒyƒbƒg–ˆ‚Éݒ肳‚ê‚Ä‚¢‚éƒXƒe[ƒ^ƒXƒ{[ƒiƒX‚ª
+ •t‚«‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+pet_attack_support
+pet_damage_support
+ Žål‚ªƒ‚ƒ“ƒXƒ^[‚Ƀ_ƒ[ƒW‚ð—^‚¦‚½‚Æ‚«AŽó‚¯‚½‚Æ‚«‚É
+ ƒyƒbƒg‚ªŽx‰‡UŒ‚‚ð‚·‚é‚©‚Ç‚¤‚©‚Å‚·Byes‚É‚·‚é‚ƃyƒbƒg‚Ìe–§“x‚ª
+ ‚«‚í‚ß‚Äe‚µ‚¢‚ÌŽž‚¾‚¯Žx‰‡UŒ‚‚ð‚µ‚Ä‚­‚ê‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+pet_support_rate
+ ƒyƒbƒg‚ÌŽx‰‡UŒ‚Šm—¦‚Ì”{—¦‚Å‚·Bi100‚Å’ÊíA200‚Å”{‚Å‚·)
+ ”{—¦‚ª‚‚¢‚ÆŽx‰‡UŒ‚‚æ‚­‚µ‚Ä‚­‚ê‚é‚悤‚É‚È‚è‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+pet_attack_exp_to_master
+ ƒyƒbƒg‚ª—^‚¦‚½ƒ_ƒ[ƒW‚Ì•ª‚ÌŒoŒ±’l‚ðŽål‚ªŽû“¾‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ‚±‚ê‚ðyes‚É‚·‚é‚ƃyƒbƒg‚ÌUŒ‚‚É‚æ‚éƒ_ƒ[ƒW‚àŽål‚ª—^‚¦‚½•¨‚É‚È‚è
+ Žål‚ªŒoŒ±’l‚ðŽû“¾‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+pet_attack_exp_rate
+ ƒyƒbƒg‚ª—^‚¦‚½ƒ_ƒ[ƒW‚Ì•ª‚ÌŒoŒ±’l‚ðŽål‚ªŽû“¾‚·‚鎞‚Ì”{—¦‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+pet_lootitem
+ ƒyƒbƒg‚ªƒAƒCƒeƒ€‚ðƒ‹[ƒg‚·‚é‚©‚Ç‚¤‚©‚ÌÝ’è‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+pet_weight
+ ƒyƒbƒg‚Ƀ‹[ƒg‚³‚¹‚é‚Æ‚«‚Ìd—ʧŒÀ‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í1000‚Å‚·B
+
+skill_min_damage
+ ƒXƒLƒ‹‚ðŽg‚Á‚½Žžƒ_ƒ[ƒW‚ª˜A‘Å”‚æ‚è–¢–ž‚ÌꇑS‚ă~ƒX‚É‚È‚é‚©1ƒ_ƒ[ƒW‚É‚È‚é‚©‚ðŒˆ’è‚µ‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+finger_offensive_type
+ ƒXƒLƒ‹Žw’e‚Ì•\Ž¦ƒ^ƒCƒv‚ðŒˆ’è‚µ‚Ü‚·B
+ 0‚Í–{ƒT[ƒo[Žd—l‚Å1‚̓AƒeƒiŽd—l‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
+
+heal_exp
+ ƒXƒLƒ‹uƒq[ƒ‹v‚ðŽg‚Á‚½Û‚É‚à‚炦‚éƒWƒ‡ƒuŒoŒ±’l—Ê‚ÌÝ’è‚Å‚·B
+ 100‚ʼnñ•œ‚µ‚½—Ê‚Æ“¯—Ê‚É‚È‚è‚Ü‚·B
+ ƒ‚ƒ“ƒXƒ^[‚ÌŒoŒ±’l‚ð•ÏX‚µ‚Ä‚È‚¢ê‡‚Í5`10’ö“x‚ª“K“–‚¾‚ÆŽv‚í‚ê‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
+
+resurrection_exp
+ ƒXƒLƒ‹uƒŠƒUƒŒƒNƒVƒ‡ƒ“v‚ðŽg‚Á‚½Û‚É‚à‚炦‚éŒoŒ±’l—Ê‚ÌÝ’è‚Å‚·B
+ ’PˆÊ‚Í0.01%‚Å‚·B•œŠˆ‚µ‚½ƒvƒŒƒCƒ„[‚ªŽ‚Á‚Ä‚¢‚éŒoŒ±’l * ƒŒƒxƒ‹·/100 * resurrection_exp/10000 •ª‚ÌŒoŒ±‚ª–Ⴆ‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
+
+shop_exp
+ ƒXƒLƒ‹ƒfƒBƒXƒJƒEƒ“ƒg‚ƃI[ƒo[ƒ`ƒƒ[ƒW‚ðK“¾‚µ‚Ä‚éê‡NPC—˜—p‹àŠz‚ɉž‚¶‚½JOBŒoŒ±’lŠl“¾”{—¦‚Å‚·Bi100‚Å’ÊíA200‚Å”{‚É‚È‚è‚Ü‚·j
+ ŒvŽZŽ®‚Íln(‘ã‹à*ƒXƒLƒ‹ƒŒƒxƒ‹) * shop_exp / 100 ‚Å”ƒ‚¤ê‡‚̓fƒBƒXƒJƒEƒ“ƒg‚ª‚ ‚鎞‚Ì‚Ý“K—p‚Å”„‚éꇃI[ƒo[ƒ`ƒƒ[ƒW‚ª‚ ‚鎞‚Ì‚Ý“K—p‚³‚ê‚Ü‚·B
+ ŒvŽZŽ®‚Í“K“x‚Éì‚Á‚½•¨‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
+
+combo_delay_rate
+ ƒ‚ƒ“ƒN‚̃Rƒ“ƒ{ƒfƒBƒŒƒC‚ÌŽžŠÔ‚Ì”{—¦‚Å‚·Bi100‚Å’ÊíA200‚Å”{‚É‚È‚è‚Ü‚·Bj
+ ‚½‚¾’ˆÓ‚·‚é‚ׂ«‚È‚Ì‚Í‚‚­Ý’è‚·‚é‚Ì‚ª‚¢‚¢‚±‚Æ‚Å‚Í‚È‚¢‚±‚Æ‚Å‚·B
+ ƒRƒ“ƒ{ƒfƒBƒŒƒC‚ª’·‚¢‚ƃRƒ“ƒ{‚ÌŒq‚¬‚Í‚æ‚­‚È‚è‚Ü‚·‚ª‚»‚Ì’·‚­‚È‚Á‚½
+ ŽžŠÔ‚ÌŠÔ‚Ís“®‚Å‚«‚È‚¢‚©‚ç‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+item_check
+ ƒAƒCƒeƒ€‚̃`ƒFƒbƒN‚ðs‚¤‚©‚Ç‚¤‚©‚Å‚·B
+ ƒƒOƒCƒ“Žž‚ƃ}ƒbƒvˆÚ“®Žž‚ÉŠŽƒAƒCƒeƒ€‚É•s³ƒAƒCƒeƒ€‚ª‚È‚¢‚©ƒ`ƒFƒbƒN‚µ‚Ü‚·B
+ ‚Ü‚½@item‚Å•s³ƒAƒCƒeƒ€‚ðŠ“¾‚Å‚«‚È‚­‚µ‚Ü‚·B
+ ƒfƒoƒO‚âƒAƒCƒeƒ€‚ÌŠm”F‚ðs‚¤‚Æ‚«‚È‚Ç‚Íoff‚É‚µ‚Ä‚­‚¾‚³‚¢B
+ ƒfƒtƒHƒ‹ƒg‚Íon‚Å‚·B
+
+wedding_modifydisplay
+ ƒ^ƒLƒV[ƒh‚ƃEƒFƒfƒBƒ“ƒOƒhƒŒƒX‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ Œ‹¥ƒLƒƒƒ‰‚ð•\Ž¦‚µ‚½‚¢ê‡‚Í‚±‚ê‚ðyes‚É‚µ‚Ä‚­‚¾‚³‚¢B
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+natural_healhp_interval
+ HP‚ªŽ©“®‰ñ•œ‚·‚é‚Ü‚ÅŠ|‚©‚鎞ŠÔ‚Å‚·B’PˆÊ‚Íms(ƒ~ƒŠ•b)‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í6000‚ÅNATURAL_HEAL_INTERVAL–¢–ž‚É‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñB
+
+natural_healsp_interval
+ SP‚ªŽ©“®‰ñ•œ‚·‚é‚Ü‚ÅŠ|‚©‚鎞ŠÔ‚Å‚·B’PˆÊ‚Íms(ƒ~ƒŠ•b)‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í8000‚ÅNATURAL_HEAL_INTERVAL–¢–ž‚É‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñB
+
+natural_heal_skill_interval
+ ƒXƒLƒ‹‚É‚æ‚Á‚ÄŽ©“®‰ñ•œ‚·‚éꇊ|‚©‚鎞ŠÔ‚Å‚·B’PˆÊ‚Íms(ƒ~ƒŠ•b)‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í10000‚ÅNATURAL_HEAL_INTERVAL–¢–ž‚É‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñB
+
+natural_heal_weight_rate
+ Ž©“®‰ñ•œ‚ª‚Å‚«‚È‚­‚È‚éd—Ê‚ðݒ肵‚Ü‚·B’PˆÊ‚Í%‚Å‚·B
+ Ŭ‚Í50‚ÅÅ‘å‚Í101‚Å‚·Bő傪101‚È‚Ì‚Íd—Ê‚ª
+ natural_heal_weight_rate–¢–ž‚ÌŽž‚ÉŽ©“®‰ñ•œ‚·‚é‚©‚ç‚Å‚·B(‚‚܂è101‚È‚ç
+ ‚¢‚Â‚Å‚àŽ©“®‰ñ•œ‚Å‚«‚Ü‚·B)
+ ƒfƒtƒHƒ‹ƒg‚Í50‚Å‚·B
+
+item_name_override_grffile
+ ƒAƒCƒeƒ€‚Ì–¼‘O(‰pŒêˆÈŠO‚Ì–¼‘O‚Å‚·B)‚ð.grfƒtƒ@ƒCƒ‹‚©‚ç“Ç‚Þ‚©‚Ç‚¤‚©‚Å‚·B
+ no‚É‚·‚é‚Æitem_db.txt‚Ì–¼‘O‚ðŽg‚¢‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+
+arrow_decrement
+ ‹|‚ðŽg‚¤Žž–î‚ðÁ–Õ‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðno‚É‚·‚é‚Æ
+ –Á–Õ‚³‚ê‚Ü‚¹‚ñB(–î‚ð‘•”õ‚·‚é•K—v‚Í‚ ‚è‚Ü‚·B)
+ ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+
+max_aspd
+ ƒvƒŒƒCƒ„[‚ÌÅ‘åUŒ‚‘¬“x‚ðݒ肵‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í199‚Å‚·BÅ‘å‚Í199‚ÅŬ‚Í100‚Å‚·B
+
+max_hp
+ Å‘åHP‚ðݒ肵‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í32500‚Å‚·BÅ‘å‚Í1000000‚ÅŬ‚Í100‚Å‚·B
+
+max_sp
+ Å‘åSP‚ðݒ肵‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í32500‚Å‚·BÅ‘å‚Í1000000‚ÅŬ‚Í100‚Å‚·B
+
+max_parameter
+ ƒvƒŒƒCƒ„[‚ÌŠî–{ƒpƒ‰ƒ[ƒ^‚ÌÅ‘å’l‚ðݒ肵‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í99‚Å‚·BÅ‘å‚Í10000‚ÅŬ‚Í10‚Å‚·B
+ Šî–{ƒpƒ‰ƒ[ƒ^‘å‚«‚¢‰ß‚¬‚é‚ƃNƒ‰ƒCƒAƒ“ƒg—Ž‚¿‚ª‹N‚±‚é‚Ì‚Å
+ “K“–‚È’l‚ðÝ’è‚·‚é•û‚ª—Ç‚¢‚Å‚·B
+
+max_cart_weight
+ ƒJ[ƒg‚ÌÅ‘åd—Ê‚ðݒ肵‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í8000‚Å‚·BÅ‘å‚Í1000000‚ÅŬ‚Í100‚Å‚·B
+
+player_skill_log
+ ƒvƒŒƒCƒ„[‚̃XƒLƒ‹Žg—pƒƒO‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+monster_skill_log
+ ƒ‚ƒ“ƒXƒ^[‚̃XƒLƒ‹Žg—pƒƒO‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+battle_log
+ 퓬ŠÖŒW‚̃ƒO‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+save_log
+ ƒLƒƒƒ‰‚Ì•Û‘¶‚ÉŠÖ‚·‚郃O‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+error_log
+ ƒGƒ‰[ƒƒO‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+
+etc_log
+ ƒXƒLƒ‹A퓬AƒLƒƒƒ‰•Û‘¶AƒGƒ‰[ˆÈŠO‚̃ƒO‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©
+ ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+
+save_clothcolor
+ •ž‚ÌF‚ð•Û‘¶‚·‚é‚©‚Ç‚¤‚©A—LŒø‚É‚·‚é‚Æ–â‘肪‚ ‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+undead_detect_type
+ ƒAƒ“ƒfƒbƒh‚ð”FŽ¯‚·‚é•û–@‚ðݒ肵‚Ü‚·B0‚Å‘®«‚Ì‚ÝA1‚ÅŽí‘°‚Ì‚ÝA
+ 2‚Å‘®«‚ÆŽí‘°‚Ì—¼•û‚Ì‚Ç‚¿‚ç‚Å‚à‚ ‚Á‚Ä‚éꇂɂȂè‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
+
+player_auto_counter_type
+ ƒvƒŒƒCƒ„[‚̃I[ƒgƒJƒEƒ“ƒ^[‚ÌŽd—l‚ðݒ肵‚Ü‚·B0‚Å100%ƒNƒŠƒeƒBƒJƒ‹
+ ‚ŃXƒLƒ‹”½Œ‚–³‚µA1‚Å–hŒä–³Ž‹AHit+20AƒNƒŠƒeƒBƒJƒ‹—¦2”{‚ŃXƒLƒ‹”½Œ‚
+ –³‚µA2‚Å100%ƒNƒŠƒeƒBƒJƒ‹‚ŃXƒLƒ‹”½Œ‚—L‚èA3‚Å–hŒä–³Ž‹AHit+20A
+ ƒNƒŠƒeƒBƒJƒ‹—¦2”{‚ŃXƒLƒ‹”½Œ‚—L‚è‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í1‚Å‚·B
+
+monster_auto_counter_type
+ ƒ‚ƒ“ƒXƒ^[‚̃I[ƒgƒJƒEƒ“ƒ^[‚ÌŽd—l‚ðݒ肵‚Ü‚·B0‚Å100%ƒNƒŠƒeƒBƒJƒ‹
+ ‚ŃXƒLƒ‹”½Œ‚–³‚µA1‚Å–hŒä–³Ž‹AHit+20AƒNƒŠƒeƒBƒJƒ‹—¦2”{‚ŃXƒLƒ‹”½Œ‚
+ –³‚µA2‚Å100%ƒNƒŠƒeƒBƒJƒ‹‚ŃXƒLƒ‹”½Œ‚—L‚èA3‚Å–hŒä–³Ž‹AHit+20A
+ ƒNƒŠƒeƒBƒJƒ‹—¦2”{‚ŃXƒLƒ‹”½Œ‚—L‚è‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í1‚Å‚·B
+
+agi_penaly_type
+ agi_penaly_countˆÈã‚Ì“G‚ÉUŒ‚‚³‚ꂽŽž‚Ìagiƒyƒiƒ‹ƒeƒB‚ÌŽd—l‚ðݒ肵‚Ü‚·B
+ 0‚Å‚È‚µA1‚Åagi_penaly_num%‚¸‚ÂŒ¸‚Á‚ÄA2‚Åagi_penaly_num‚¾‚¯Œ¸‚è‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
+
+agi_penaly_count
+ agiƒyƒiƒ‹ƒeƒB‚ð“K—p‚·‚é“G‚Ì”‚ðݒ肵‚Ü‚·B
+ 2–¢–ž‚ÉÝ’è‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñBƒfƒtƒHƒ‹ƒg‚Í3‚Å‚·B
+
+agi_penaly_num
+ agiƒyƒiƒ‹ƒeƒB‚É‚æ‚Á‚ÄŒ¸‚é‰ñ”ð‚Ì—Ê‚ðݒ肵‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
+
+vit_penaly_type
+ vit_penaly_countˆÈã‚Ì“G‚ÉUŒ‚‚³‚ꂽŽž‚Ìvitƒyƒiƒ‹ƒeƒB‚ÌŽd—l‚ðݒ肵‚Ü‚·B
+ 0‚Å‚È‚µA1‚Åvit_penaly_num%‚¸‚ÂŒ¸‚Á‚ÄA2‚Åvit_penaly_num‚¾‚¯Œ¸‚è‚Ü‚·B
+ (Œ¸‚é‚Ì‚Ívit‚É‚æ‚é–hŒä‚Ì‚Ý)
+ ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
+
+vit_penaly_count
+ vitƒyƒiƒ‹ƒeƒB‚ð“K—p‚·‚é“G‚Ì”‚ðݒ肵‚Ü‚·B
+ 2–¢–ž‚ÉÝ’è‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñBƒfƒtƒHƒ‹ƒg‚Í3‚Å‚·B
+
+vit_penaly_num
+ vitƒyƒiƒ‹ƒeƒB‚É‚æ‚Á‚ÄŒ¸‚é‰ñ”ð‚Ì—Ê‚ðݒ肵‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
+
+player_defense_type
+ ƒvƒŒƒCƒ„[‚ª‘ÎÛ‚ÉUŒ‚‚·‚鎞‚ÌDEF‚ÌŒvŽZ•û–@B0‚Å–{ŽIŽd—lA1ˆÈã‚ÅŒ¸ŽZ(DEF*’l)B
+
+monster_defense_type
+ ƒ‚ƒ“ƒXƒ^[‚ª‘ÎÛ‚ÉUŒ‚‚·‚鎞‚ÌDEF‚ÌŒvŽZ•û–@B0‚Å–{ŽIŽd—lA1ˆÈã‚ÅŒ¸ŽZ(DEF*’l)B
+
+pet_defense_type
+ ƒyƒbƒg‚ª‘ÎÛ‚ÉUŒ‚‚·‚鎞‚ÌDEF‚ÌŒvŽZ•û–@B0‚Å–{ŽIŽd—lA1ˆÈã‚ÅŒ¸ŽZ(DEF*’l)B
+
+magic_defense_type
+ MDEF‚ÌŒvŽZ•û–@B0‚Å–{ŽIŽd—lA1ˆÈã‚ÅŒ¸ŽZ(MDEF*’l)
+
+player_skill_reiteration
+ ƒvƒŒƒCƒ„[‚ªŽg‚¤ˆê•”‚Ì’n–ʃXƒLƒ‹‚Ìd‚Ë’u‚«‚ð‹–‰Â‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ‚±‚ê‚ðyes‚É‚·‚é‚ÆSW‚âƒjƒ…[ƒ}Aƒgƒ‰ƒbƒv‚ðd‚Ë‚Ä’u‚­‚±‚Æ‚ª‚Å‚«‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+monster_skill_reiteration
+ ƒ‚ƒ“ƒXƒ^[‚ªŽg‚¤ˆê•”‚Ì’n–ʃXƒLƒ‹‚Ìd‚Ë’u‚«‚ð‹–‰Â‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ‚±‚ê‚ðyes‚É‚·‚é‚ÆSW‚âƒjƒ…[ƒ}Aƒgƒ‰ƒbƒv‚ðd‚Ë‚Ä’u‚­‚±‚Æ‚ª‚Å‚«‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+player_skill_nofootset
+ ƒvƒŒƒCƒ„[‚ªŽg‚¤ˆê•”‚Ì’n–ʃXƒLƒ‹‚ðƒvƒŒƒCƒ„[‚⃂ƒ“ƒXƒ^[‚Ì‘«Œ³‚É
+ ’u‚­‚Ì‚ð‹ÖŽ~‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðyes‚É‚·‚é‚ƃXƒLƒ‹‚ðÝ’u‚·‚鎞‚»‚Ì
+ Œø‰Ê”͈͂ɃvƒŒƒCƒ„[‚⃂ƒ“ƒXƒ^[‚ª‚¢‚é‚ƃXƒLƒ‹‚ð’u‚­‚±‚Æ‚ª‚Å‚«‚Ü‚¹‚ñB
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+monster_skill_nofootset
+ ƒ‚ƒ“ƒXƒ^[‚ªŽg‚¤ˆê•”‚Ì’n–ʃXƒLƒ‹‚ðƒvƒŒƒCƒ„[‚⃂ƒ“ƒXƒ^[‚Ì‘«Œ³‚É
+ ’u‚­‚Ì‚ð‹ÖŽ~‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðyes‚É‚·‚é‚ƃXƒLƒ‹‚ðÝ’u‚·‚鎞‚»‚Ì
+ Œø‰Ê”͈͂ɃvƒŒƒCƒ„[‚⃂ƒ“ƒXƒ^[‚ª‚¢‚é‚ƃXƒLƒ‹‚ð’u‚­‚±‚Æ‚ª‚Å‚«‚Ü‚¹‚ñB
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+player_cloak_check_type
+ ƒvƒŒƒCƒ„[ƒNƒ[ƒLƒ“ƒO‚ÌŽd—l‚ðݒ肵‚Ü‚·B
+ 0‚͕ǃ`ƒFƒbƒN—L‚èAƒXƒLƒ‹Žg—p‚ÆUŒ‚‚ʼn𜂳‚ê‚éB
+ 1‚͕ǃ`ƒFƒbƒN–³‚µAƒXƒLƒ‹Žg—p‚ÆUŒ‚‚ʼn𜂳‚ê‚éB
+ 2‚͕͂ǃ`ƒFƒbƒN—L‚èAƒXƒLƒ‹Žg—p‚ÆUŒ‚‚ʼn𜂳‚ê‚È‚¢B
+ 2‚͕͂ǃ`ƒFƒbƒN–³‚µAƒXƒLƒ‹Žg—p‚ÆUŒ‚‚ʼn𜂳‚ê‚È‚¢B
+ ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
+
+monster_cloak_check_type
+ ƒ‚ƒ“ƒXƒ^[ƒNƒ[ƒLƒ“ƒO‚ÌŽd—l‚ðݒ肵‚Ü‚·B
+ 0‚͕ǃ`ƒFƒbƒN—L‚èAƒXƒLƒ‹Žg—p‚ÆUŒ‚‚ʼn𜂳‚ê‚éB
+ 1‚͕ǃ`ƒFƒbƒN–³‚µAƒXƒLƒ‹Žg—p‚ÆUŒ‚‚ʼn𜂳‚ê‚éB
+ 2‚͕͂ǃ`ƒFƒbƒN—L‚èAƒXƒLƒ‹Žg—p‚ÆUŒ‚‚ʼn𜂳‚ê‚È‚¢B
+ 2‚͕͂ǃ`ƒFƒbƒN–³‚µAƒXƒLƒ‹Žg—p‚ÆUŒ‚‚ʼn𜂳‚ê‚È‚¢B
+ ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B
+
+gvg_short_attack_damage_rate
+ ƒV[ƒYƒ‚[ƒh‚Å‹ß‹——£•¨—UŒ‚‚̃_ƒ[ƒW”{—¦‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+gvg_long_attack_damage_rate
+ ƒV[ƒYƒ‚[ƒh‚ʼn“‹——£•¨—UŒ‚‚̃_ƒ[ƒW”{—¦‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+gvg_magic_attack_damage_rate
+ ƒV[ƒYƒ‚[ƒh‚Å–‚–@UŒ‚‚̃_ƒ[ƒW”{—¦‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+gvg_misc_attack_damage_rate
+ ƒV[ƒYƒ‚[ƒh‚Å•¨—UŒ‚‚Æ–‚–@UŒ‚ˆÈŠO‚ÌUŒ‚(‘é‚âƒgƒ‰ƒbƒv“™)‚Ì
+ ƒ_ƒ[ƒW”{—¦‚Å‚·BƒfƒtƒHƒ‹ƒg‚Í100‚Å‚·B
+
+mob_changetarget_byskill: no
+ ðŒ‚ªskillused‚̃XƒLƒ‹‚ðMOB‚ªPC‚ÉŽg—p‚·‚é‚Æ‚«A‚»‚Ì‘ÎÛ‚ðƒXƒLƒ‹Žg—pŽÒ‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ MOBƒXƒLƒ‹Žg—pŒã‚Ƀ^ƒQ‚Í–ß‚è‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+player_attack_direction_change
+ ƒvƒŒƒCƒ„[‚ªUŒ‚‚µ‚½Žž•ûŒü‚ð•ÏX‚·‚é‚©‚Ç‚¤‚©‚Å‚·B–{ŽI‚Å‚Í“®‚¯‚È‚¢ŒÀ‚è•ûŒü‚ª•Ï‚¦‚ç‚È‚¢‚Ì‚Å‚·‚ªƒoƒO‚Û‚¢Žd—l‚Ȃ̂ŃfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+ no‚É‚·‚ê‚Γ®‚­‚±‚Æ‚¾‚¯‚Å•ûŒü‚ª•Ï‚¦‚é‚悤‚É‚È‚è‚Ü‚·B
+
+monster_attack_direction_change
+ ƒ‚ƒ“ƒXƒ^[‚ªUŒ‚‚µ‚½Žž•ûŒü‚ð•ÏX‚·‚é‚©‚Ç‚¤‚©‚Å‚·B–{ŽI‚Å‚Í“®‚¯‚È‚¢ŒÀ‚è•ûŒü‚ª•Ï‚¦‚ç‚È‚¢‚Ì‚Å‚·‚ªƒoƒO‚Û‚¢Žd—l‚Ȃ̂ŃfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+ no‚É‚·‚ê‚Γ®‚­‚±‚Æ‚¾‚¯‚Å•ûŒü‚ª•Ï‚¦‚é‚悤‚É‚È‚è‚Ü‚·B
+
+player_land_skill_limit
+ skill_db.txt‚Åݒ肳‚ê‚Ä‚¢‚é’n–ʃXƒLƒ‹‚Ì”§ŒÀ‚ðƒvƒŒƒCƒ„[‚É
+ “K—p‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðyes‚É‚·‚ê‚Îݒ肳‚ê‚Ä‚¢‚锈Èã‚Í
+ ’n–Ê‚ÉÝ’u‚·‚邱‚Æ‚ª‚Å‚«‚È‚­‚È‚è‚Ü‚·‚ª”§ŒÀ‚ð‚Ç‚¤•Ï‚¦‚Ä‚à
+ MAX_SKILLUNITGROUP‚ð‰z‚¦‚锂ÌÝ’u‚Í‚Å‚«‚Ü‚¹‚ñB
+ ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+
+monster_land_skill_limit
+ skill_db.txt‚Åݒ肳‚ê‚Ä‚¢‚é’n–ʃXƒLƒ‹‚Ì”§ŒÀ‚ðƒ‚ƒ“ƒXƒ^[‚É
+ “K—p‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðyes‚É‚·‚ê‚Îݒ肳‚ê‚Ä‚¢‚锈Èã‚Í
+ ’n–Ê‚ÉÝ’u‚·‚邱‚Æ‚ª‚Å‚«‚È‚­‚È‚è‚Ü‚·‚ª”§ŒÀ‚ð‚Ç‚¤•Ï‚¦‚Ä‚à
+ MAX_MOBSKILLUNITGROUP‚ð‰z‚¦‚锂ÌÝ’u‚Í‚Å‚«‚Ü‚¹‚ñB
+ ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+
+party_skill_penaly
+ ˆê•”‚̃p[ƒeƒBƒXƒLƒ‹‚ðŽg—pŽÒ‚ƃp[ƒeƒB‚ŃXƒLƒ‹Œø‰Ê‚ªˆá‚¤‚悤‚É
+ ‚·‚é‚©‚Ç‚¤‚©‚Å‚·B‚±‚ê‚̉e‹¿‚ðŽó‚¯‚éƒXƒLƒ‹‚Í¡‚ÌŠ
+ ƒAƒhƒŒƒiƒŠƒ“ƒ‰ƒbƒVƒ…AƒEƒGƒ|ƒ“ƒp[ƒtƒFƒNƒVƒ‡ƒ“AƒI[ƒo[ƒgƒ‰ƒXƒg‚Ì‚Ý‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+
+monster_class_change_full_recover
+ ƒ‚ƒ“ƒXƒ^[‚ªƒƒ^ƒ‚ƒ‹ƒtƒH[ƒVƒX‚ƃgƒ‰ƒ“ƒXƒtƒH[ƒ[ƒVƒ‡ƒ““™‚É‚æ‚Á‚Ä
+ ‘¼‚̃‚ƒ“ƒXƒ^[‚É•Ï‚í‚Á‚½Žž‚»‚̃‚ƒ“ƒXƒ^[‚ÌHP‚ðÅ‘å‚Ȃʼnñ•œ‚³‚¹‚é‚©
+ ‚Ç‚¤‚©‚Å‚·B‚±‚ê‚ðyes‚É‚·‚é‚Æ•Ï‚í‚Á‚½ƒ‚ƒ“ƒXƒ^[‚ÌÅ‘åHP‚Ü‚Å
+ ‰ñ•œ‚µ‚Ü‚·Bno‚È‚ç•Ï‚í‚é‘O‚ÌHP‚ÆÅ‘åHP‚̔䗦‚Ì•ª‚ÌHP‚É‚È‚è‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+produce_item_name_input
+ »‘¢‚Åì‚ç‚ꂽ“S‚â‘®«Î‚É»‘¢ŽÒ‚Ì–¼‘O‚ð•t‚¯‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+
+produce_potion_name_input
+ »‘¢‚Åì‚ç‚ꂽƒ|[ƒVƒ‡ƒ“‚É»‘¢ŽÒ‚Ì–¼‘O‚ð•t‚¯‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+
+making_arrow_name_input
+ –î쬂Åì‚ç‚ꂽ–î‚É»‘¢ŽÒ‚Ì–¼‘O‚ð•t‚¯‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+
+holywater_name_input
+ ƒAƒNƒAƒxƒlƒfƒBƒNƒ^‚Åì‚ç‚ꂽ¹…‚É»‘¢ŽÒ‚Ì–¼‘O‚ð•t‚¯‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+
+display_delay_skill_fail
+ ƒXƒLƒ‹Žg—p‚̃fƒBƒŒƒC’†‚ÉuƒXƒLƒ‹Žg—p‚ÌŒã‚ÍA‚µ‚΂炭‚¨‘Ò‚¿‚­‚¾‚³‚¢v‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·B
+
+chat_warpportal
+ ƒ`ƒƒƒbƒg’†‚ÌPC‚ðƒ[ƒvƒ|[ƒ^ƒ‹‚Å”ò‚΂¹‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+mob_warpportal
+ MOB‚ðƒ[ƒvƒ|[ƒ^ƒ‹‚Å”ò‚΂¹‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+dead_branch_active
+ ŒÃ–Ø‚ÌŽ}‚È‚Çmonster–½—ß‚Åmobid‚𕉔‚ÉŽw’肵‚½ê‡‚É¢Š«‚³‚ê‚郂ƒ“ƒXƒ^[‚ðƒAƒNƒeƒBƒu‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+vending_max_value
+ ˜I“X‚Å’u‚¯‚éƒAƒCƒeƒ€‰¿Ši‚ÌÅ‚’l‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Í10000000‚Å‚·B
+
+show_steal_in_same_party
+ ƒXƒeƒB[ƒ‹¬Œ÷ŽžA‰æ–Ê“à‚ÌPTƒƒ“ƒo[(Ž©•ªŠÜ‚Þ)‚É
+ ƒXƒeƒB[ƒ‹‚µ‚½ƒAƒCƒeƒ€‚Ìî•ñ‚ðŒöŠJ‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+enable_upper_class
+ “]¶A—{ŽqE‚ð—LŒø‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+pet_atack_attr_none
+ ƒyƒbƒg‚É‚æ‚é–³‘®«’ÊíUŒ‚‚ð
+ ‘®«–³‚µ(‘®«‚É‚æ‚é•â³–³‚µ)‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·
+
+pc_atack_attr_none
+ ƒvƒŒƒCƒ„[‚É‚æ‚é–³‘®«’ÊíUŒ‚‚ð
+ ‘®«–³‚µ(‘®«‚É‚æ‚é•â³–³‚µ)‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·
+
+mob_atack_attr_none
+ ƒ‚ƒ“ƒXƒ^[‚É‚æ‚é–³‘®«’ÊíUŒ‚‚ð
+ ‘®«–³‚µ(‘®«‚É‚æ‚é•â³–³‚µ)‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íyes‚Å‚·
+
+player_skill_partner_check
+ ¹‘Ì~•Ÿ‚⇑tƒXƒLƒ‹‚ðs‚¤Û‚Ƀp[ƒgƒi[‚Ì‘¶Ý‚ðƒ`ƒFƒbƒN‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íyes(ƒ`ƒFƒbƒN‚·‚é)‚Å‚·B
+
+hide_GM_session
+ GMƒAƒJƒEƒ“ƒg‚̃Lƒƒƒ‰ƒNƒ^[‚ð@ƒRƒ}ƒ“ƒh“™‚Å•\Ž¦‚Ì‘ÎÛ‚É‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·
+unit_movement_type
+ ƒ†ƒjƒbƒgˆÚ“®ˆ—•û–@‚ð‘I‘ð‚µ‚Ü‚·B
+ 0‚Å–{ŽIŽd—l(‰ñü•‰‰×¨dAŽIˆ—¨Œy)A1‚ÅAthenaŽd—l(‰ñü•‰‰×¨ŒyAŽIˆ—¨d)
+ ƒfƒtƒHƒ‹ƒg‚Í0(–{ŽIŽd—l)‚Å‚·
+invite_request_check
+ ƒvƒŒƒCƒ„[‚ªŠeŽí—v¿’†(PT‰Á“üAGuild‰Á“üAŽæˆø)‚É‘¼‚Ì—v¿‚ðŽó‚¯“ü‚ê‚é‚©‚Ç‚¤‚©‚Å‚·B
+ yes‚Å–{ŽIŽd—lAno‚ÅAthenaŽd—l(Žó‚¯“ü‚ê‚È‚¢)
+ ƒfƒtƒHƒ‹ƒg‚Íyes(Žó‚¯“ü‚ê‚é)‚Å‚·B
+skill_removetrap_type
+ ƒŠƒ€[ƒuƒgƒ‰ƒbƒv‚ÌŽd—l‚ð‘I‘ð‚µ‚Ü‚·B
+ 0:–{ŽIŽd—l‚Åã©1ŒÂ‚ðŽæ“¾‚·‚é
+ 1:AthenaŽd—l‚ÅŽg‚Á‚½ƒAƒCƒeƒ€‚ðŽg‚Á‚½ŒÂ”‚ðŽæ“¾‚·‚é
+disp_experience
+ ŒoŒ±’l‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©‚Å‚·B
+ yes‚É‚·‚é‚ÆA“G‚ð“|‚µ‚½Žž‚È‚ÇŒoŒ±’l‚ª“ü‚Á‚½Žž‚É–{l‚É‚Ì‚Ý•\Ž¦‚³‚ê‚Ü‚·B
+ ƒfƒtƒHƒ‹ƒg‚Íno‚Å‚·B
+
+night_at_start
+ Choose if server begin with night (yes) or day (no)
+ Default: No
+
+day_duration
+ Define duration in msec of the day.
+ Set to 0 to disable day cycle (but not @day command).
+ Except 0, minimum is 60000 (1 minute).
+ Default: 7,200,000 = 2 hours
+
+night_duration
+ Define duration in msec of the night.
+ Set to 0 to disable night cycle (but not @night command).
+ Except 0, minimum is 60000 (1 minute).
+ Default: 1,800,000 = 30 min
+
+ban_spoof_namer
+ Ban people that try to use an other name of its name (spoof name).
+ Duration of the ban, in minutes.
+ Value from 0 to 32767. Set to 0 to do no ban.
+ Default: 5 (minutes)
+
+hack_info_GM_level
+ Set here minimum level of a (online) GM that can receive all informations about any player that try to hack, spoof a name, etc.
+ Values are from 0 to 100.
+ 100: disable information
+ 0: send to any people, including normal players
+ default: 60, according to GM definition in atcommand_athena.conf
+
+any_warp_GM_min_level
+ Set here the minimum GM level to disable the nowarp (from) and nowarpto (to) flags.
+ This option is mainly used in AT_commands (@memo, @warp, @charwarp, @go, etc...). All GM commands used to move or set a new map check nowarp and nowarpto flags.
+ default: 20 (first level after normal player or super'normal' player)
+
+packet_ver_flag
+ Set here which client version do you accept. Add all values of clients:
+ 1: Clients before 2004-07-06 (old clients)
+ 2: 2004-07-06 kRO client
+ 4: 2004-07-13 kRO client
+ 8: 2004-07-26 kRO client
+ 16: 2004-08-09 kRO / 2004-08-16aSakray / 2004-08-17aSakray client
+ 32: 2004-09-06aSakray client
+ default value: 63 (all clients)
+
+import
+ ‚»‚Ìs‚ð•Êƒtƒ@ƒCƒ‹‚Ì’†g‚Æ’u‚«Š·‚¦‚Ü‚·B
+
+< Example >
+
+warp_point_debug: no
+enemy_critical: yes
+enemy_critical_rate: 100
+enemy_perfect_flee: no
+casting_rate: 100
+delay_rate: 100
+delay_dependon_dex: no
+skill_delay_attack_enable: no
+left_cardfix_to_right: no
+player_skill_add_range: 0
+skill_out_range_consume: yes
+monster_skill_add_range: 0
+player_damage_delay: yes
+player_damage_delay_rate: 100
+defunit_not_enemy: yes
+random_monster_checklv: yes
+attribute_recover: yes
+item_auto_get: no
+flooritem_lifetime: 60000
+item_first_get_time: 10000
+item_second_get_time: 7000
+item_third_get_time: 5000
+mvp_item_first_get_time: 10000
+mvp_item_second_get_time: 10000
+mvp_item_third_get_time: 2000
+item_rate: 100
+drop_rate0item: no
+base_exp_rate: 100
+job_exp_rate: 100
+death_penalty_type: 0
+death_penalty_base: 100
+death_penalty_job: 100
+zeny_penalty: 0
+restart_hp_rate: 0
+restart_sp_rate: 0
+mvp_hp_rate: 100
+mvp_item_rate: 100
+mvp_exp_rate: 100
+monster_hp_rate: 100
+monster_max_aspd: 199
+atcommand_gm_only: Yes
+gm_all_skill: 0
+gm_all_equipment: 0
+gm_skill_unconditional: 0
+player_skillfree: no
+player_skillup_limit: no
+weapon_produce_rate: 100
+potion_produce_rate: 100
+monster_active_enable: yes
+monster_damage_delay_rate: 100
+monster_loot_type: 0
+mob_skill_use: yes
+mob_count_rate: 100
+quest_skill_learn: no
+quest_skill_reset: yes
+basic_skill_check: yes
+guild_emperium_check: yes
+player_invincible_time: 5000
+pet_catch_rate: 100
+pet_rename: no
+pet_friendly_rate: 100
+pet_hungry_delay_rate: 100
+pet_hungry_friendly_decrease: 5
+pet_str: yes
+pet_status_support: no
+pet_support: no
+pet_support_rate: 100
+pet_attack_exp_to_master: no
+pet_attack_exp_rate: no
+pet_lootitem: no
+pet_weight: 1000
+skill_min_damage: no
+finger_offensive_type: 0
+heal_exp: 0
+resurrection_exp: 0
+hop_exp: 0
+combo_delay_rate: 100
+item_check: on
+wedding_modifydisplay: no
+natural_healhp_interval:4000
+natural_healsp_interval:8000
+natural_heal_skill_interval:10000
+natural_heal_weight_rate: 50
+item_name_override_grffile: yes
+arrow_decrement: yes
+max_aspd: 199
+max_hp: 32500
+max_sp: 32500
+max_parameter: 99
+max_cart_weight: 8000
+player_skill_log: off
+monster_skill_log: off
+battle_log: off
+save_log: off
+error_log: on
+etc_log: on
+save_clothcolor: no
+undead_detect_type: 2
+player_auto_counter_type: 1
+monster_auto_counter_type: 0
+agi_penaly_type: 0
+agi_penaly_count: 3
+agi_penaly_num: 0
+vit_penaly_type: 0
+vit_penaly_count: 3
+vit_penaly_num: 0
+player_defense_type: 0
+monster_defense_type: 0
+pet_defense_type: 0
+magic_defense_type: 0
+player_skill_reiteration: no
+monster_skill_reiteration: no
+player_skill_nofootset: no
+monster_skill_nofootset: no
+player_cloak_check_type: 0
+monster_cloak_check_type: 0
+gvg_short_attack_damage_rate: 100
+gvg_long_attack_damage_rate: 100
+gvg_magic_attack_damage_rate: 100
+gvg_misc_attack_damage_rate: 100
+mob_changetarget_byskill: no
+player_attack_direction_change:yes
+monster_attack_direction_change:yes
+player_land_skill_limit: yes
+monster_land_skill_limit: yes
+party_skill_penaly: yes
+monster_class_change_full_recover: no
+produce_item_name_input: yes
+produce_potion_name_input: yes
+making_arrow_name_input: yes
+holywater_name_input: yes
+display_delay_skill_fail: yes
+chat_warpportal: no
+mob_warpportal: no
+dead_branch_active: no
+vending_max_value: 10000000
+show_steal_in_same_party: no
+enable_upper_class: no
+pet_atack_attr_none: no
+pc_atack_attr_none: no
+mob_atack_attr_none: yes
+player_skill_partner_check: yes
+hide_GM_session: no
+invite_request_check: yes
+unit_movement_type: 0
+disp_experience: no
+night_at_start: No
+day_duration: 7200000
+night_duration: 1800000
+ban_spoof_namer: 5
+hack_info_GM_level: 60
+any_warp_GM_min_level: 20
+packet_ver_flag: 63
+
+
+==========================================================================
+6. atcommand_athena.conf
+--------------------------------------------------------------------------
+
+< What this file is. >
+
+ GMƒRƒ}ƒ“ƒh(/mmA/nb“™)‚â@ƒRƒ}ƒ“ƒh‚ðŽg‚¤‚±‚Æ‚ª‚Å‚«‚éGM‚̃Œƒxƒ‹‚ðÝ’è‚·‚镨‚Å‚·B
+ Ý’è‚Í‘S‚ÄÈ—ª‰Â”\‚ÅAÈ—ªŽž‚̓fƒtƒHƒ‹ƒg’l‚ª—˜—p‚³‚ê‚Ü‚·B(ƒfƒtƒHƒ‹ƒg‚Í0‚Å‚·B)
+
+command_symbol
+ Set here the symbol that you want to use for your commands
+ Only 1 character is get (default is '@'). You can set any character,
+ except control-character (0x00-0x1f), '%' (party chat speaking) and '/' (standard ragnarok GM commands)
+ With default character, all commands begin by a '@': <example> @revive
+ default: @
+
+Sets the level of the users that can use the GM commands.
+<command name>: level
+// When battle_athena.conf has atcommand_gm_only set to no,
+// normal players (gm level 0) can use GM commands if you set 0 to the command level.
+Max GM level is 99. If you want forbid a command to all people, set it with level 100.
+
+broadcast
+ GMƒRƒ}ƒ“ƒh /nbA/bA/bb
+local_broadcast
+ GMƒRƒ}ƒ“ƒh /lb
+mapmove
+ GMƒRƒ}ƒ“ƒh /mm
+resetstate
+ GMƒRƒ}ƒ“ƒh /resetstateA/resetskill
+rura+
+ @ƒRƒ}ƒ“ƒh @rura+
+rura
+ @ƒRƒ}ƒ“ƒh @rura
+where
+ @ƒRƒ}ƒ“ƒh @where
+jumpto
+ @ƒRƒ}ƒ“ƒh @jumpto
+jump
+ @ƒRƒ}ƒ“ƒh @jump
+who
+ @ƒRƒ}ƒ“ƒh @who
+save
+ @ƒRƒ}ƒ“ƒh @save
+load
+ @ƒRƒ}ƒ“ƒh @load
+speed
+ @ƒRƒ}ƒ“ƒh @speed
+storage
+ @ƒRƒ}ƒ“ƒh @storage
+gstorage
+ @ƒRƒ}ƒ“ƒh @gstorage
+option
+ @ƒRƒ}ƒ“ƒh @option
+hide
+ GMƒRƒ}ƒ“ƒh /hide‚Æ@ƒRƒ}ƒ“ƒh @hide
+jobchange
+ @ƒRƒ}ƒ“ƒh @jobchange
+die
+ @ƒRƒ}ƒ“ƒh @die
+kill
+ @ƒRƒ}ƒ“ƒh @kill
+alive
+ @ƒRƒ}ƒ“ƒh @alive
+kami
+ @ƒRƒ}ƒ“ƒh @kamiA@kamib
+heal
+ @ƒRƒ}ƒ“ƒh @heal
+item
+ @ƒRƒ}ƒ“ƒh @itemA@item2
+itemreset
+ @ƒRƒ}ƒ“ƒh @itemreset
+itemcheck
+ @ƒRƒ}ƒ“ƒh @itemcheck
+lvup
+ @ƒRƒ}ƒ“ƒh @lvup
+joblvup
+ @ƒRƒ}ƒ“ƒh @joblvup
+help
+ @ƒRƒ}ƒ“ƒh @helpA@h
+gm
+ To become GM (need password; password is set in login_athena.conf).
+ special!: only a non-GM (player with gm level 0) need to have this command.
+ if you change the value, be sure of what you do!
+ To be able to create a gm with @gm, you must:
+ - give a level to level_new_gm (parameter of login_athena.conf) (not 0)
+ - enable to level 0 the @gm command (atcommand_athena.conf) (default 100) - Only level 0 can give access to this command
+ - enable gm commands to normal player (battle_athena.conf, atcommand_gm_only parameter)
+ - and normal player must give correct password when he use the @gm command (gm_pass paramter in login_athena.conf)
+pvpoff
+ @ƒRƒ}ƒ“ƒh @pvpoff
+pvpon
+ @ƒRƒ}ƒ“ƒh @pvpon
+gvgoff
+ @ƒRƒ}ƒ“ƒh @gvgoff
+gvgon
+ @ƒRƒ}ƒ“ƒh @gvgon
+model
+ @ƒRƒ}ƒ“ƒh @model
+go
+ @ƒRƒ}ƒ“ƒh @go
+monster
+ @ƒRƒ}ƒ“ƒh @monster
+killmonster
+ @ƒRƒ}ƒ“ƒh @killmonsterA@killmonster2
+refine
+ @ƒRƒ}ƒ“ƒh @refine
+produce
+ @ƒRƒ}ƒ“ƒh @produce
+memo
+ @ƒRƒ}ƒ“ƒh @memo
+gat
+ @ƒRƒ}ƒ“ƒh @gat
+packet
+ @ƒRƒ}ƒ“ƒh @packet
+stpoint
+ @ƒRƒ}ƒ“ƒh @stpoint
+skpoint
+ @ƒRƒ}ƒ“ƒh @skpoint
+zeny
+ @ƒRƒ}ƒ“ƒh @zeny
+param
+ @ƒRƒ}ƒ“ƒh @strA@agiA@vitA@intA@dexA@luk
+guildlvup
+ @ƒRƒ}ƒ“ƒh @guildlvup
+makeegg
+ @ƒRƒ}ƒ“ƒh @makeegg
+petfriendly
+ @ƒRƒ}ƒ“ƒh @petfriendly
+pethungry
+ @ƒRƒ}ƒ“ƒh @pethungry
+petrename
+ @ƒRƒ}ƒ“ƒh @petrename
+recall
+ @ƒRƒ}ƒ“ƒh @recall
+charjob
+ @ƒRƒ}ƒ“ƒh @charjob
+revive
+ @ƒRƒ}ƒ“ƒh @revive
+charstats
+ @ƒRƒ}ƒ“ƒh @charstats
+charoption
+ @ƒRƒ}ƒ“ƒh @charoption
+charsave
+ @ƒRƒ}ƒ“ƒh @charsave
+charload
+ @ƒRƒ}ƒ“ƒh @charload
+night
+ @ƒRƒ}ƒ“ƒh @night
+day
+ @ƒRƒ}ƒ“ƒh @day
+doom
+ @ƒRƒ}ƒ“ƒh @doom
+doommap
+ @ƒRƒ}ƒ“ƒh @doommap
+raise
+ @ƒRƒ}ƒ“ƒh @raise
+raisemap
+ @ƒRƒ}ƒ“ƒh @raisemap
+charbaselvl
+ @ƒRƒ}ƒ“ƒh @charbaselvl
+charjlvl
+ @ƒRƒ}ƒ“ƒh @charjlvl
+kick
+ @ƒRƒ}ƒ“ƒh @kick‚ÆGM‰EƒNƒŠƒbƒN–½—ßuŽg—pŽÒ‹­§I—¹v
+allskill
+ @ƒRƒ}ƒ“ƒh @allskill
+questskill
+ @ƒRƒ}ƒ“ƒh @questskill
+lostskill
+ @ƒRƒ}ƒ“ƒh @lostskill
+spiritball
+ @ƒRƒ}ƒ“ƒh @spiritball
+party
+ @ƒRƒ}ƒ“ƒh @party
+guild
+ @ƒRƒ}ƒ“ƒh @guild
+agitstart
+ @ƒRƒ}ƒ“ƒh @agitstart
+agitend
+ @ƒRƒ}ƒ“ƒh @agitend
+mapexit
+ @ƒRƒ}ƒ“ƒh @mapexit
+idsearch
+ @ƒRƒ}ƒ“ƒh @idsearch
+charchangesex
+ Changes the sex of an online player (all characters on the account)
+ignorelist
+ Displays your ignore list
+charignorelist
+ Displays ignore list of a player
+inall
+ Allows all wispers for the player
+exall
+ Blocks all wispers for the player
+chardisguise
+ Changes disguise of a player
+charundisguise
+ Cancels disguise of a player
+email
+ To change your (own) email (characters protection)
+ note: this command doesn't check email itself, but check structure of the email (xxx@xxx)
+ if you want be sure of each e-mail disable this option (value: 100)
+
+
+import
+ ‚»‚Ìs‚ð•Êƒtƒ@ƒCƒ‹‚Ì’†g‚Æ’u‚«Š·‚¦‚Ü‚·B
+
+
+< Example >
+command_symbol: @
+
+broadcast: 1
+local_broadcast: 1
+mapmove: 1
+resetstate: 1
+rura+: 1
+rura: 1
+where: 1
+jumpto: 1
+jump: 1
+who: 1
+save: 1
+load: 1
+speed: 1
+storage: 1
+gstorage: 1
+option: 1
+hide: 1
+jobchange: 1
+die: 1
+kill: 1
+alive: 1
+kami: 1
+heal: 1
+item: 1
+itemreset: 1
+itemcheck: 1
+lvup: 1
+joblvup: 1
+help: 1
+gm: 100
+pvpoff: 1
+pvpon: 1
+gvgoff: 1
+gvgon: 1
+model: 1
+go: 1
+monster: 1
+killmonster: 1
+refine: 1
+produce: 1
+memo: 1
+gat: 1
+packet: 1
+stpoint : 1
+skpoint : 1
+zeny: 1
+param: 1
+guildlvup: 1
+makeegg: 60
+petfriendly: 1
+pethungry: 1
+petrename: 1
+recall: 1
+charjob: 1
+revive: 1
+charstats: 1
+charoption: 1
+charsave: 1
+charload: 1
+night: 1
+day: 1
+doom: 1
+doommap: 1
+raise: 1
+raisemap: 1
+charbaselvl: 1
+charjlvl: 1
+kick: 1
+allskill: 1
+questskill: 1
+lostskill: 1
+spiritball: 1
+party: 1
+guild: 1
+agitstart: 1
+agitend: 1
+mapexit: 1
+idsearch: 1
+charchangesex: 1
+ignorelist: 0
+charignorelist: 20
+inall: 20
+exall: 20
+chardisguise: 60
+charundisguise: 60
+email: 0
+
+==========================================================================
+7. conf/ladmin_athena.conf
+--------------------------------------------------------------------------
+
+< What this file is. >
+
+ A setup of ladmin (remote administration of the login-server) is described.
+ It mainly becomes a setup of an administrator.
+ Only 'c' version of the ladmin is concerned by this configuration file.
+ 'Perl' ladmin doesn't use it.
+
+
+< Explanation of a key >
+
+If you change one of these parameters, you must restart ladmin to update.
+If you repeat one parameter in the configuration file, only the latest will be validated.
+
+login_ip
+ IP adress to contact login-server.
+ It is the IP adress of the login-server.
+ Default value: 127.0.0.1 (same computer).
+
+login_port
+ Port to contact login-server.
+ It is the port used by login-server.
+ Default value: 6900.
+
+admin_pass
+ It is the administrator password used to administrate the login-server.
+ You define it in login-athena.conf.
+ Void password will not work.
+ NOTICE: You must change this or attackers can exploit your server.
+ Default value: admin. CHANGES this default value to avoid hack.
+
+passenc:
+ You specify here how ladmin send password to login-server. 3 values are possible:
+ 0: plain text
+ 1: use md5 key (format: key + password)
+ 2: use md5 key (format: password + key) (default)
+ default: 2
+
+defaultlanguage
+ You can specified a language to display information and for logs.
+ There are 2 values:
+ F: Français
+ E: English (default)
+ If a displayed information isn't translated, English is used.
+ Default value: E
+
+ladmin_log_filename
+ Gives the log file name and path to stores logs information.
+ All operations done by the ladmin are written in this file with a time stamp.
+ Default value: log/ladmin.log
+
+date_format:
+ Indicate how to display date in logs, to players, etc.
+ 0: 31-12-2004 23:59:59
+ 1: 12-31-2004 23:59:59
+ 2: 2004-31-12 23:59:59
+ 3: 2004-12-31 23:59:59
+ Default value: 3
+
+import
+ Gives an other configuration file to include in.
+ You must write the additionnal configuration file name and path.
+ The mentionned file can include any parameter of the login configuration.
+ You can create a chain or configuration files if necessary.
+ Default value: <no_additional_configuration_file>.
+
+<Example>
+login_ip:127.0.0.1
+login_port: 6900
+admin_pass: admin
+passenc: 2
+defaultlanguage: E
+ladmin_log_filename: log/ladmin.log
+date_format: 3
+//import: path/additional_configuration_file
+
+
+==========================================================================
+EOF
+--------------------------------------------------------------------------
diff --git a/doc/coredump_report.txt b/doc/coredump_report.txt
index f556b0366..670472f9b 100644
--- a/doc/coredump_report.txt
+++ b/doc/coredump_report.txt
@@ -1,109 +1,109 @@
-==========================================================================
- ƒT[ƒo[‚ª‹­§I—¹‚·‚éꇂÌcoredump‚É‚æ‚éÚׂȃoƒO•ñ•û–@
---------------------------------------------------------------------------
-
-< ‚±‚̃tƒ@ƒCƒ‹‚͉½H >
-
- AthenaŽg—p’†‚Émap-server.exe‚È‚Ç‚ª“Ë‘R—Ž‚¿‚½ê‡‚ÉA—Ž‚¿‚½‚Æ‚«‚̃Xƒ^ƒbƒN‚Ì
- ƒoƒbƒNƒgƒŒ[ƒX‚ð‚ðŠJ”­ŽÒ‚É“`‚¦‚é•û–@‚ð‰ðà‚·‚éB
- ƒoƒO•ñ‚ÌŽž‚É•¹—p‚·‚é‚ÆŠJ”­ŽÒ‚ªŠì‚Ô‚©‚à‚µ‚ê‚È‚¢B
-
- ‚±‚±‚Å‚Ìu—Ž‚¿‚év‚Í‚ ‚­‚܂ŃT[ƒo[‚Å‚ ‚èAƒNƒ‰ƒCƒAƒ“ƒg‚Å‚Í‚È‚¢B
- ‚Ü‚½ƒvƒƒZƒX‚ªcorei‚Ü‚½‚Ístackdumpj‚ð“f‚­Œ»Û‚Ì‚±‚Æ‚Å‚ ‚èA
- –³ŒÀƒ‹[ƒv‚Ȃǂ̃vƒƒZƒX‚Ͷ‚«‚Ä‚¢‚邪ƒT[ƒo[‚Ì‹@”\‚Í’ñ‹Ÿ‚³‚ê‚È‚¢ó‘Ô‚Ì
- ‚±‚Æ‚Å‚Í‚È‚¢B
-
-
---------------------------------------------------------------------------
-< –ÚŽŸ >
-
- * Cygwin‚Å‚Ìstackdump‚Æcore
- Cygwinã‚Åcoreƒtƒ@ƒCƒ‹‚ð“f‚­•û–@‚ðЉ‚éB
-
- * coreƒtƒ@ƒCƒ‹‚©‚çƒXƒ^ƒbƒN‚̃oƒbƒNƒgƒŒ[ƒX‚𓾂é
- ƒvƒƒOƒ‰ƒ€‚ª“f‚¢‚½core‚©‚çƒoƒbƒNƒgƒŒ[ƒX‚𓾂é•û–@‚ðЉ‚éB
-
- * —á
- ŽÀÛ‚É‚Æ‚Á‚½ƒƒO‚Ì—á‚ðŽ¦‚·B
-
-
---------------------------------------------------------------------------
-< Cygwin‚Å‚Ìstackdump‚Æcore >
-
- Cygwin‚ŃvƒƒOƒ‰ƒ€‚ª‹­§I—¹‚·‚éiƒAƒNƒZƒXˆá”½‚È‚Ç‚É‚æ‚é‚à‚Ìjê‡A•W€‚Å‚Í
- core‚Å‚Í‚È‚­stackdump‚ð“f‚­B‚±‚ê‚Í‘S‚­‚Æ‚¢‚Á‚Ä—Ç‚¢‚Ù‚Ç–ð‚É—§‚½‚È‚¢‚½‚ßA
- stackdump‚ðƒRƒsƒy‚³‚ê‚Ä‚àŠJ”­ŽÒ‚Í‚¨‚»‚ç‚­Œ©‚È‚¢‚¾‚낤B
-
- ‚æ‚Á‚ÄŽŸ‚Ì•û–@‚ÅAstackdump‚Å‚Í‚È‚­core‚ð“f‚­‚悤‚É‚·‚éB
- ** ŠÂ‹«•Ï”‚Éuerror_start=dumper.exev‚ð’ljÁ‚·‚é **
-
- ‚æ‚­‚í‚©‚ç‚È‚¢ê‡AŽŸ‚̂悤‚Éì‹Æ‚·‚é‚Æ‚¢‚¢BiWin2000‚Å‚Ì‚ÝŠm”Fj
- * ƒfƒXƒNƒgƒbƒv‚Ìuƒ}ƒCƒRƒ“ƒsƒ…[ƒ^v‚ð‰EƒNƒŠƒbƒN‚µ‚ÄuƒvƒƒpƒeƒBv‚ðo‚·B
- * [Ú×]ƒ^ƒu‚ðŠJ‚«A[ŠÂ‹«•Ï”]ƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚·‚éB
- * ƒ†[ƒU[ŠÂ‹«•Ï”AƒVƒXƒeƒ€ŠÂ‹«•Ï”‚Ì‚Ç‚¿‚ç‚©uCYGWINv‚Æ‚¢‚¤•Ï”‚ª‚È‚¢‚©’T‚·
- * ‚ ‚éꇂÍA‘I‘ð‚µ‚Ä[•ÒW]ƒ{ƒ^ƒ“‚ð‰Ÿ‚µA[•Ï”’l]‚Éuerror_start=dumper.exev
- ‚ð’ljÁ‚·‚éBŠù‚ɉ½‚©‚Ì’PŒê‚ª‚ ‚éꇂÍA’PŒê‚ð‹æ؂邽‚ßA
- ’ljÁ‚·‚é•”•ª‚Ìʼn‚É”¼ŠpƒXƒy[ƒX‚ð“ü‚ê‚邱‚Æ‚ð–Y‚ê‚È‚¢‚±‚ÆB
- * ‚È‚¢ê‡‚ÍAƒVƒXƒeƒ€ŠÂ‹«•Ï”‚É(AdministratorŒ ŒÀ‚ª‚È‚¢‚Ȃ烆[ƒU[ŠÂ‹«•Ï”)
- ‚Ì[V‹K]ƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚ÄA[•Ï”–¼]‚ÉuCYGWINvA•Ó”’l‚É
- uerror_start=dumper.exev‚ð“ü—Í‚·‚éB
- * OK‚ð‰Ÿ‚µ‚ăEƒBƒ“ƒhƒE‚ð•Â‚¶ACygwin‚ð‹N“®‚µ‚È‚¨‚¹‚΂悢
-
- ‚±‚¤‚µ‚Ä‚¨‚­‚ÆAstackdump‚Ì•Ï‚í‚è‚Écore‚ð“f‚­‚悤‚É‚È‚éB
- ƒTƒCƒY‚ª‘å‚«‚¢ê‡Acore‚ð“f‚­‚Ì‚É‚Í‘½­ŽžŠÔ‚ª‚©‚©‚éB
- ‚Ü‚½core‚ð“f‚¢‚Ä‚¢‚éŠÔAdumper.exe‚Æ‚¢‚¤ƒvƒƒOƒ‰ƒ€‚̃EƒBƒ“ƒhƒE‚ª•\Ž¦‚³‚ê‚éB
-
-
---------------------------------------------------------------------------
-< coreƒtƒ@ƒCƒ‹‚©‚çƒXƒ^ƒbƒN‚̃oƒbƒNƒgƒŒ[ƒX‚𓾂é >
-
- core‚ð“f‚­ê‡A‚Ü‚¸ŠJ”­ŽÒ‚̓Xƒ^ƒbƒN‚̃oƒbƒNƒgƒŒ[ƒX‚ð—~‚µ‚ª‚éBƒGƒ‰[ŒÂŠ‚ð
- ”»’f‚µ‚â‚·‚¢‚©‚炾B‚æ‚Á‚ÄAgdb‚ŃoƒbƒNƒgƒŒ[ƒX‚ðŽæ‚èo‚»‚¤B
- ‚Ü‚¸AŽŸ‚̂悤‚É‚µ‚Ägdb‚ð‹N“®‚·‚éB‚±‚±‚Å‚Ímap-server.exe‚ð—á‚Éo‚·B
- UNIXŒnOS‚ł̓RƒAƒtƒ@ƒCƒ‹–¼‚ðC³‚·‚é•K—v‚ª‚ ‚邾‚낤Biucorev‚È‚Çj
-
- $ gdb -c map-server.exe.core
-
- ‚È‚É‚â‚çFX‰p•¶‚ª•\Ž¦‚³‚êAÅŒã‚É (gdb) ‚Æ‚¢‚¤ƒvƒƒ“ƒvƒg‚ªo‚½‚Í‚¸‚¾B
- ‚±‚Ì’¼‘O‚ɃGƒ‰[‚Ì‹N‚±‚Á‚½ŠÖ”‚âƒtƒ@ƒCƒ‹–¼‚È‚Ç‚ÆA‚»‚Ì“à—e‚ª•\Ž¦‚³‚ê‚Ä‚¢‚é
- ‚Í‚¸‚È‚Ì‚ÅA‚±‚ê‚̓Rƒsƒy‚·‚ׂ«‚¾B
-
- ‚Ü‚½A‚±‚±‚Åubtv‚Æ“ü—Í‚·‚é‚ÆAƒXƒ^ƒbƒN‚̃oƒbƒNƒgƒŒ[ƒX‚ª•\Ž¦‚³‚ê‚éB
- ‚±‚ê‚àƒRƒsƒy‚·‚é‚Æ‚æ‚¢B‚½‚¾‚µA‚ ‚Ü‚è‚É‚à’·‚¢ê‡‚Íʼn‚Ì\”s’ö“x‚Å
- \•ª‚¾‚낤B
-
- ‚¿‚È‚Ý‚ÉAup •Ï”–¼v‚̂悤‚É“ü—Í‚·‚é‚Æ•Ï”‚ðŒ©‚½‚è‚ào—ˆ‚éB
- ŠÖ˜A‚µ‚»‚¤‚È•Ï”‚Ì’l‚ðFX•\Ž¦‚µ‚Ĉê‚ɃRƒsƒy‚·‚é‚ÆŠJ”­ŽÒ‚ªŠì‚Ô‚©‚à‚µ‚ê‚È‚¢B
-
- gdb‚ðI—¹‚·‚éꇂÍAuqv‚Æ‘Å‚¿ž‚ÞB
-
-
---------------------------------------------------------------------------
-< —á >
-
- ˆÈ‰º‚Ímob.c‚Ìmob_warp()ŠÖ”‚Å‚í‚´‚ƃAƒNƒZƒXˆá”½‚ð‹N‚±‚µ‚Ä‚Æ‚Á‚½ƒƒO‚Å‚ ‚éB
- ƒGƒ‰[‚ÌêŠA‚Ç‚¤‚¢‚¤‡‚ŌĂÑo‚³‚ꂽ‚©‚ª‚í‚©‚邾‚낤B
-
- ‚à‚¿‚ë‚ñAAthena‚̃pƒbƒ`”Ô†‚Ì•ñ‚ð–Y‚ê‚È‚¢‚±‚ÆB
- ƒpƒbƒ`‚ªˆá‚¤‚ÆAƒ\[ƒXƒtƒ@ƒCƒ‹‚ª•Ï‚í‚é‚Ì‚ÅAs”Ô†‚ª–ð‚É—§‚½‚È‚­‚Ȃ邽‚ß‚¾B
-
- ‚È‚¨ˆÈ‰º‚Ì—á‚Å‚ÍAƒoƒbƒNƒgƒŒ[ƒXˆÈŠO‚ÉA
- pƒRƒ}ƒ“ƒh‚ðŽg‚Á‚ÄŠY“–‚ÌMOB‚Ì–¼‘Oi‰pŒêj‚ÆAƒ}ƒbƒv‚Ì–¼‘O‚ð•\Ž¦‚µ‚Ä‚¢‚éB
- (FAKE_ANGEL, gef_dun03.gat)
-
-#0 mob_warp (md=0x10119c88, x=-1, y=-1, type=-1) at mob.c:1845
-1845 memset(NULL,0,1);
-(gdb) bt
-#0 mob_warp (md=0x10119c88, x=-1, y=-1, type=-1) at mob.c:1845
-#1 0x0042609d in mob_ai_sub_lazy (key=0x68e77f5, data=0x10119c88,
- app=0x22fe88 "¤þ\"") at mob.c:1412
-#2 0x00455b54 in db_foreach (table=0x22fe88, func=0x610691f2 <select+242>)
- at db.c:414
-#3 0x10119c88 in ?? ()
-#4 0x0022fe88 in ?? ()
-#5 0x610691f2 in select ()
-(gdb) p mob_db[md->class].name
-$1 = "FAKE_ANGEL\000\203t\203F\203C\203N\203G\203\223\203"
-(gdb) p map[md->bl.m].name
-$2 = "gef_dun03.gat\000\000r"
-
+==========================================================================
+ ƒT[ƒo[‚ª‹­§I—¹‚·‚éꇂÌcoredump‚É‚æ‚éÚׂȃoƒO•ñ•û–@
+--------------------------------------------------------------------------
+
+< ‚±‚̃tƒ@ƒCƒ‹‚͉½H >
+
+ AthenaŽg—p’†‚Émap-server.exe‚È‚Ç‚ª“Ë‘R—Ž‚¿‚½ê‡‚ÉA—Ž‚¿‚½‚Æ‚«‚̃Xƒ^ƒbƒN‚Ì
+ ƒoƒbƒNƒgƒŒ[ƒX‚ð‚ðŠJ”­ŽÒ‚É“`‚¦‚é•û–@‚ð‰ðà‚·‚éB
+ ƒoƒO•ñ‚ÌŽž‚É•¹—p‚·‚é‚ÆŠJ”­ŽÒ‚ªŠì‚Ô‚©‚à‚µ‚ê‚È‚¢B
+
+ ‚±‚±‚Å‚Ìu—Ž‚¿‚év‚Í‚ ‚­‚܂ŃT[ƒo[‚Å‚ ‚èAƒNƒ‰ƒCƒAƒ“ƒg‚Å‚Í‚È‚¢B
+ ‚Ü‚½ƒvƒƒZƒX‚ªcorei‚Ü‚½‚Ístackdumpj‚ð“f‚­Œ»Û‚Ì‚±‚Æ‚Å‚ ‚èA
+ –³ŒÀƒ‹[ƒv‚Ȃǂ̃vƒƒZƒX‚Ͷ‚«‚Ä‚¢‚邪ƒT[ƒo[‚Ì‹@”\‚Í’ñ‹Ÿ‚³‚ê‚È‚¢ó‘Ô‚Ì
+ ‚±‚Æ‚Å‚Í‚È‚¢B
+
+
+--------------------------------------------------------------------------
+< –ÚŽŸ >
+
+ * Cygwin‚Å‚Ìstackdump‚Æcore
+ Cygwinã‚Åcoreƒtƒ@ƒCƒ‹‚ð“f‚­•û–@‚ðЉ‚éB
+
+ * coreƒtƒ@ƒCƒ‹‚©‚çƒXƒ^ƒbƒN‚̃oƒbƒNƒgƒŒ[ƒX‚𓾂é
+ ƒvƒƒOƒ‰ƒ€‚ª“f‚¢‚½core‚©‚çƒoƒbƒNƒgƒŒ[ƒX‚𓾂é•û–@‚ðЉ‚éB
+
+ * —á
+ ŽÀÛ‚É‚Æ‚Á‚½ƒƒO‚Ì—á‚ðŽ¦‚·B
+
+
+--------------------------------------------------------------------------
+< Cygwin‚Å‚Ìstackdump‚Æcore >
+
+ Cygwin‚ŃvƒƒOƒ‰ƒ€‚ª‹­§I—¹‚·‚éiƒAƒNƒZƒXˆá”½‚È‚Ç‚É‚æ‚é‚à‚Ìjê‡A•W€‚Å‚Í
+ core‚Å‚Í‚È‚­stackdump‚ð“f‚­B‚±‚ê‚Í‘S‚­‚Æ‚¢‚Á‚Ä—Ç‚¢‚Ù‚Ç–ð‚É—§‚½‚È‚¢‚½‚ßA
+ stackdump‚ðƒRƒsƒy‚³‚ê‚Ä‚àŠJ”­ŽÒ‚Í‚¨‚»‚ç‚­Œ©‚È‚¢‚¾‚낤B
+
+ ‚æ‚Á‚ÄŽŸ‚Ì•û–@‚ÅAstackdump‚Å‚Í‚È‚­core‚ð“f‚­‚悤‚É‚·‚éB
+ ** ŠÂ‹«•Ï”‚Éuerror_start=dumper.exev‚ð’ljÁ‚·‚é **
+
+ ‚æ‚­‚í‚©‚ç‚È‚¢ê‡AŽŸ‚̂悤‚Éì‹Æ‚·‚é‚Æ‚¢‚¢BiWin2000‚Å‚Ì‚ÝŠm”Fj
+ * ƒfƒXƒNƒgƒbƒv‚Ìuƒ}ƒCƒRƒ“ƒsƒ…[ƒ^v‚ð‰EƒNƒŠƒbƒN‚µ‚ÄuƒvƒƒpƒeƒBv‚ðo‚·B
+ * [Ú×]ƒ^ƒu‚ðŠJ‚«A[ŠÂ‹«•Ï”]ƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚·‚éB
+ * ƒ†[ƒU[ŠÂ‹«•Ï”AƒVƒXƒeƒ€ŠÂ‹«•Ï”‚Ì‚Ç‚¿‚ç‚©uCYGWINv‚Æ‚¢‚¤•Ï”‚ª‚È‚¢‚©’T‚·
+ * ‚ ‚éꇂÍA‘I‘ð‚µ‚Ä[•ÒW]ƒ{ƒ^ƒ“‚ð‰Ÿ‚µA[•Ï”’l]‚Éuerror_start=dumper.exev
+ ‚ð’ljÁ‚·‚éBŠù‚ɉ½‚©‚Ì’PŒê‚ª‚ ‚éꇂÍA’PŒê‚ð‹æ؂邽‚ßA
+ ’ljÁ‚·‚é•”•ª‚Ìʼn‚É”¼ŠpƒXƒy[ƒX‚ð“ü‚ê‚邱‚Æ‚ð–Y‚ê‚È‚¢‚±‚ÆB
+ * ‚È‚¢ê‡‚ÍAƒVƒXƒeƒ€ŠÂ‹«•Ï”‚É(AdministratorŒ ŒÀ‚ª‚È‚¢‚Ȃ烆[ƒU[ŠÂ‹«•Ï”)
+ ‚Ì[V‹K]ƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚ÄA[•Ï”–¼]‚ÉuCYGWINvA•Ó”’l‚É
+ uerror_start=dumper.exev‚ð“ü—Í‚·‚éB
+ * OK‚ð‰Ÿ‚µ‚ăEƒBƒ“ƒhƒE‚ð•Â‚¶ACygwin‚ð‹N“®‚µ‚È‚¨‚¹‚΂悢
+
+ ‚±‚¤‚µ‚Ä‚¨‚­‚ÆAstackdump‚Ì•Ï‚í‚è‚Écore‚ð“f‚­‚悤‚É‚È‚éB
+ ƒTƒCƒY‚ª‘å‚«‚¢ê‡Acore‚ð“f‚­‚Ì‚É‚Í‘½­ŽžŠÔ‚ª‚©‚©‚éB
+ ‚Ü‚½core‚ð“f‚¢‚Ä‚¢‚éŠÔAdumper.exe‚Æ‚¢‚¤ƒvƒƒOƒ‰ƒ€‚̃EƒBƒ“ƒhƒE‚ª•\Ž¦‚³‚ê‚éB
+
+
+--------------------------------------------------------------------------
+< coreƒtƒ@ƒCƒ‹‚©‚çƒXƒ^ƒbƒN‚̃oƒbƒNƒgƒŒ[ƒX‚𓾂é >
+
+ core‚ð“f‚­ê‡A‚Ü‚¸ŠJ”­ŽÒ‚̓Xƒ^ƒbƒN‚̃oƒbƒNƒgƒŒ[ƒX‚ð—~‚µ‚ª‚éBƒGƒ‰[ŒÂŠ‚ð
+ ”»’f‚µ‚â‚·‚¢‚©‚炾B‚æ‚Á‚ÄAgdb‚ŃoƒbƒNƒgƒŒ[ƒX‚ðŽæ‚èo‚»‚¤B
+ ‚Ü‚¸AŽŸ‚̂悤‚É‚µ‚Ägdb‚ð‹N“®‚·‚éB‚±‚±‚Å‚Ímap-server.exe‚ð—á‚Éo‚·B
+ UNIXŒnOS‚ł̓RƒAƒtƒ@ƒCƒ‹–¼‚ðC³‚·‚é•K—v‚ª‚ ‚邾‚낤Biucorev‚È‚Çj
+
+ $ gdb -c map-server.exe.core
+
+ ‚È‚É‚â‚çFX‰p•¶‚ª•\Ž¦‚³‚êAÅŒã‚É (gdb) ‚Æ‚¢‚¤ƒvƒƒ“ƒvƒg‚ªo‚½‚Í‚¸‚¾B
+ ‚±‚Ì’¼‘O‚ɃGƒ‰[‚Ì‹N‚±‚Á‚½ŠÖ”‚âƒtƒ@ƒCƒ‹–¼‚È‚Ç‚ÆA‚»‚Ì“à—e‚ª•\Ž¦‚³‚ê‚Ä‚¢‚é
+ ‚Í‚¸‚È‚Ì‚ÅA‚±‚ê‚̓Rƒsƒy‚·‚ׂ«‚¾B
+
+ ‚Ü‚½A‚±‚±‚Åubtv‚Æ“ü—Í‚·‚é‚ÆAƒXƒ^ƒbƒN‚̃oƒbƒNƒgƒŒ[ƒX‚ª•\Ž¦‚³‚ê‚éB
+ ‚±‚ê‚àƒRƒsƒy‚·‚é‚Æ‚æ‚¢B‚½‚¾‚µA‚ ‚Ü‚è‚É‚à’·‚¢ê‡‚Íʼn‚Ì\”s’ö“x‚Å
+ \•ª‚¾‚낤B
+
+ ‚¿‚È‚Ý‚ÉAup •Ï”–¼v‚̂悤‚É“ü—Í‚·‚é‚Æ•Ï”‚ðŒ©‚½‚è‚ào—ˆ‚éB
+ ŠÖ˜A‚µ‚»‚¤‚È•Ï”‚Ì’l‚ðFX•\Ž¦‚µ‚Ĉê‚ɃRƒsƒy‚·‚é‚ÆŠJ”­ŽÒ‚ªŠì‚Ô‚©‚à‚µ‚ê‚È‚¢B
+
+ gdb‚ðI—¹‚·‚éꇂÍAuqv‚Æ‘Å‚¿ž‚ÞB
+
+
+--------------------------------------------------------------------------
+< —á >
+
+ ˆÈ‰º‚Ímob.c‚Ìmob_warp()ŠÖ”‚Å‚í‚´‚ƃAƒNƒZƒXˆá”½‚ð‹N‚±‚µ‚Ä‚Æ‚Á‚½ƒƒO‚Å‚ ‚éB
+ ƒGƒ‰[‚ÌêŠA‚Ç‚¤‚¢‚¤‡‚ŌĂÑo‚³‚ꂽ‚©‚ª‚í‚©‚邾‚낤B
+
+ ‚à‚¿‚ë‚ñAAthena‚̃pƒbƒ`”Ô†‚Ì•ñ‚ð–Y‚ê‚È‚¢‚±‚ÆB
+ ƒpƒbƒ`‚ªˆá‚¤‚ÆAƒ\[ƒXƒtƒ@ƒCƒ‹‚ª•Ï‚í‚é‚Ì‚ÅAs”Ô†‚ª–ð‚É—§‚½‚È‚­‚Ȃ邽‚ß‚¾B
+
+ ‚È‚¨ˆÈ‰º‚Ì—á‚Å‚ÍAƒoƒbƒNƒgƒŒ[ƒXˆÈŠO‚ÉA
+ pƒRƒ}ƒ“ƒh‚ðŽg‚Á‚ÄŠY“–‚ÌMOB‚Ì–¼‘Oi‰pŒêj‚ÆAƒ}ƒbƒv‚Ì–¼‘O‚ð•\Ž¦‚µ‚Ä‚¢‚éB
+ (FAKE_ANGEL, gef_dun03.gat)
+
+#0 mob_warp (md=0x10119c88, x=-1, y=-1, type=-1) at mob.c:1845
+1845 memset(NULL,0,1);
+(gdb) bt
+#0 mob_warp (md=0x10119c88, x=-1, y=-1, type=-1) at mob.c:1845
+#1 0x0042609d in mob_ai_sub_lazy (key=0x68e77f5, data=0x10119c88,
+ app=0x22fe88 "¤þ\"") at mob.c:1412
+#2 0x00455b54 in db_foreach (table=0x22fe88, func=0x610691f2 <select+242>)
+ at db.c:414
+#3 0x10119c88 in ?? ()
+#4 0x0022fe88 in ?? ()
+#5 0x610691f2 in select ()
+(gdb) p mob_db[md->class].name
+$1 = "FAKE_ANGEL\000\203t\203F\203C\203N\203G\203\223\203"
+(gdb) p map[md->bl.m].name
+$2 = "gef_dun03.gat\000\000r"
+
diff --git a/doc/db_ref.txt b/doc/db_ref.txt
index fbdfad4d7..b4fd904b2 100644
--- a/doc/db_ref.txt
+++ b/doc/db_ref.txt
@@ -1,147 +1,147 @@
-==========================================================================
- Athena dev 2.1.1 mod0659 Œ»Ý‚Ìdb‚̃Šƒtƒ@ƒŒƒ“ƒX{ƒ¿
---------------------------------------------------------------------------
-
-< ‚±‚̃tƒ@ƒCƒ‹‚͉½H >
-
- Athena‚Ìdbƒtƒ@ƒCƒ‹‚ÌÝ’è•û–@‚̃Šƒtƒ@ƒŒƒ“ƒX‚Å‚·B
-
-
-< db‚̃ŠƒXƒg >
-
-cast_db.txt ƒXƒLƒ‹‚̃LƒƒƒXƒeƒBƒ“ƒOŽžŠÔ‚ƃfƒBƒŒƒCAˆÛŽŽžŠÔ“™‚ðÝ’èB
-skill_db.txt ƒXƒLƒ‹‚̃f[ƒ^‚ðÝ’èB
-skill_require_db.txt ƒXƒLƒ‹Žg—pðŒ‚ðÝ’èB
-pet_db.txt ƒyƒbƒg‚̃f[ƒ^‚ðÝ’èB
-
-
-==========================================================================
-1. db/cast_db.txt
---------------------------------------------------------------------------
-
-id,cast_list,delay_list,upkeep_time,upkeep_time2
-
-id: ƒXƒLƒ‹‚ÌID‚Å‚·B
-cast_list: ƒXƒLƒ‹‚̃LƒƒƒXƒeƒBƒ“ƒOŽžŠÔ‚ðݒ肵‚Ü‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B
-delay_list: ƒXƒLƒ‹‚̃fƒBƒŒƒCŽžŠÔ‚ðݒ肵‚Ü‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B
-upkeep_time:ƒXƒLƒ‹‚̈ێŽžŠÔ‚ðݒ肵‚Ü‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B
-upkeep_time2:ƒXƒLƒ‹‚É‚æ‚Á‚Ä‹N‚±‚éó‘ÔˆÙí‚̈ێŽžŠÔ‚ðݒ肵‚Ü‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B(‚½‚¾‘¬“xŒ¸­‚Íupkeep_time‚ðŽg‚¢‚Ü‚·‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B)
-
-¦•Ší‚̒ljÁŒø‰Ê‚É‚æ‚éó‘ÔˆÙí‚ÍMG_STONECURSE(Ή»)AMG_FROSTDIVER(“€Œ‹)ANPC_STUNATTACK(ƒXƒ^ƒ“)ANPC_SLEEPATTACK(‡–°)ATF_POISON(“Å)ANPC_CURSEATTACK(Žô‚¢)ANPC_SILENCEATTACK(’¾–Ù)ANPC_BLINDATTACK(ˆÃ•)‚Ìupkeep_time2‚ðŽg‚¢‚Ü‚·B(ƒŒƒxƒ‹‚Í7‚Å“K—p)
-¦‹}ŠUŒ‚‚Ìê‡Å‘僌ƒxƒ‹‚Í1‚Å‚·‚ªƒoƒbƒVƒ…‚̃Œƒxƒ‹‚É‚æ‚Á‚ĈÙ펞ŠÔ‚ð•ÏX‚Å‚«‚é‚Ì‚Å•¡”Ý’è‚à‰Â”\‚Å‚·B
-¦ƒ}ƒLƒVƒ}ƒCƒYƒpƒ[‚ƃNƒ[ƒLƒ“ƒO‚Ìupkeep_time‚͈ێŽžŠÔ‚Å‚Í‚È‚­SP‚ª1Œ¸‚鎞ŠÔ‚Å‚·B
-
-
-==========================================================================
-2. db/skill_db.txt
---------------------------------------------------------------------------
-
-id,range,hit,inf,pl,nk,max,list_num,castcancel,cast_defence_rate,inf2,maxcount,skill_type,blow_count
-
-id: ƒXƒLƒ‹‚ÌID‚Å‚·B
-range: ƒXƒLƒ‹‚ÌŽË’ö‹——£‚Å‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B-1‚̓Lƒƒƒ‰‚Ì•ŠíŽË’ö‚Æ“¯‚¶‚ÆŒ¾‚¤ˆÓ–¡‚Å-2‚È‚çƒLƒƒƒ‰‚Ì•ŠíŽË’ö+1A-3‚È‚çƒLƒƒƒ‰‚Ì•ŠíŽË’ö+2‚É‚È‚è‚Ü‚·B
-hit: ˜A‘Å‚È‚ç8A’P”­‚È‚ç6(ƒXƒLƒ‹‚̃qƒbƒg”‚¶‚á‚ ‚è‚Ü‚¹‚ñB)
-inf: ƒXƒLƒ‹î•ñ‚Å‚·B
- 0-ƒpƒbƒVƒuA1-“GA2-êŠA4-‘¦Žž”­“®A16-–¡•ûA32-ã©
- •¡”‚Ì•¨‚ð“ü‚ê‚é‚Æ(”’l‚ð‘«‚µ‚Ä)³‚µ‚­“®ì‚µ‚Ü‚¹‚ñB
-pl: ƒXƒLƒ‹‚Ì‘®«‚Å‚·B
- 0-–³ 1-… 2-’n 3-‰Î 4-•— 5-“Å 6-¹ 7-ˆÃ 8-”O 9-•sŽ€
-nk: •t‰Á@1Œø‰Ê@2‚«”ò‚΂µ
-MaxLv: ƒXƒLƒ‹‚Ìő僌ƒxƒ‹‚Å‚·B
-list_num: Hit‰ñ”‚̃ŠƒXƒg‚Å‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B
-castcancel: ƒXƒLƒ‹‚ªƒLƒƒƒ“ƒZƒ‹‚³‚ê‚é‚©‚Ç‚¤‚©‚ðݒ肵‚Ü‚·Byes‚̓Lƒƒƒ“ƒZƒ‹‚³‚ê‚镨‚Åno‚̓Lƒƒƒ“ƒZƒ‹‚³‚ê‚È‚¢•¨‚Å‚·B
-cast_defence_rate: ƒLƒƒƒXƒeƒBƒ“ƒO’†‚ɒቺ‚·‚é–hŒä—͂̔䗦‚Å‚·Bƒ{ƒEƒŠƒ“ƒOƒoƒbƒVƒ…‚âƒNƒ‰ƒ“ƒhƒNƒƒX‚̂悤‚ɃXƒLƒ‹ƒLƒƒƒXƒeƒBƒ“ƒO’†‚É–hŒä‚ªŒ¸‚éƒXƒLƒ‹‚ÌÝ’è‚ÉŽg‚¢‚Ü‚·B
-inf2: ƒXƒLƒ‹î•ñ2‚Å‚·B1 - ƒNƒFƒXƒgƒXƒLƒ‹A2 - npc ƒXƒLƒ‹A4-“GA8-êŠA16-‘¦Žž”­“®A32-–¡•ûA64-ã©A128-PVPƒ‚[ƒh‚ÅŽ©•ª‚ðŠÜ‚Þ‘S‚Ä‚Ì•¨‚Ƀ_ƒ[ƒW‚ª“ü‚éƒXƒLƒ‹(’n–ʃXƒLƒ‹‚Ì‚Ý)A256-•’Ê‚ÌŽg—p‚ÅŽ©•ª‚É•K‚¸ƒ_ƒ[ƒW‚ª“ü‚éƒXƒLƒ‹(’n–ʃXƒLƒ‹‚Ì‚Ý)A512-Ž©•ª‚É‚ÍŽg‚¤‚±‚Æ‚ª‚Å‚«‚È‚¢ƒXƒLƒ‹A1024 - Ž©•ª‚©Ž©•ª‚̃p[ƒeƒB‚É‚µ‚©Žg‚¦‚È‚¢ƒXƒLƒ‹B2048 - Ž©•ª‚©Ž©•ª‚̃Mƒ‹ƒh‚É‚µ‚©Žg‚¦‚È‚¢ƒXƒLƒ‹A“¯–¿ƒMƒ‹ƒhƒ`ƒFƒbƒN‚Í–³‚µB(4A8A16A32A64‚͈ꕔ‚̃AƒNƒeƒBƒuƒXƒLƒ‹‚ªŽg—pB¡‚͈¢C—…”e–PŒ‚Ì‚ÝŽg—pB)
-maxcount: ’n–ʃXƒLƒ‹‚Ì‚Ý‚É“K—p‚³‚ê‚镨‚ŃXƒLƒ‹‚ð’u‚¯‚éő唂ł·B0‚Í’u‚¯‚È‚¢‚ÆŒ¾‚¤ˆÓ–¡‚Å‚Í‚È‚­§ŒÀ‚ª‚È‚¢•¨‚ÆŒ¾‚¤ˆÓ–¡‚Å‚·B
-skill_type: ƒXƒLƒ‹‚ÌŽí—Þ‚ðݒ肵‚Ü‚·Bweapon‚Í•ŠíƒXƒLƒ‹‚Åmagic‚Í–‚–@ƒXƒLƒ‹Amisc‚Í•Ší‚Å‚à–‚–@‚Å‚à‚È‚¢ƒXƒLƒ‹‚Å‚·Bnone‚ÍŒˆ‚ߓ‚¢•¨“™‚Éݒ肵‚Ü‚·B‚½‚¾‚±‚ê‚ð•Ï‚¦‚½‚Æ‚µ‚Ä‚àƒXƒLƒ‹‚̃_ƒ[ƒWŒvŽZ‚ª‚±‚ê‚ɇ‚킹‚Ä•Ï‚í‚é‚킯‚Å‚Í‚È‚­ƒ_ƒ[ƒW‚ÌŒvŽZ‚̓vƒƒOƒ‰ƒ€ƒŒƒxƒ‹‚Ås‚È‚Á‚Ä‚¢‚Ü‚·B‚±‚ê‚̓Xƒyƒ‹ƒuƒŒƒCƒJ[‚ʼnr¥’†Ž~‚³‚ê‚é‚©‚Ç‚¤‚©‚ðÝ’è‚·‚éˆ×‚Ì•¨‚Å‚·B(‘¼‚̃XƒLƒ‹‚Å‚±‚ÌÝ’è‚ðŽg—p‚·‚é‰Â”\«‚à‚ ‚è‚Ü‚·‚ª¡‚ÌŠƒXƒyƒ‹ƒuƒŒƒCƒJ[‚Ì‚Ý‚Å‚·B) magic‚ÉÝ’è‚·‚é‚ƃXƒyƒ‹ƒuƒŒƒCƒJ[‚ʼnr¥’†Ž~‚³‚ê‚Ü‚·B
-blow_count: ƒXƒLƒ‹‚æ‚éƒmƒbƒNƒoƒbƒN‹——£‚Å‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B
-
-
-==========================================================================
-3. db/skill_require_db.txt
---------------------------------------------------------------------------
-
-id,list_hp,list_sp,list_hp_rate,list_sp_rate,list_zeny,list_weapon,state,spiritball,itemid1,amount1,itemid2,amount2,itemid3,amount3,itemid4,amount4,itemid5,amount5,itemid6,amount6,itemid7,amount7,itemid8,amount8,itemid9,amount9,itemid10,amount10
-
-id: ƒXƒLƒ‹‚ÌID‚Å‚·B
-list_hp: ƒXƒLƒ‹Žg—p‚ÅŒ¸‚éHP‚Ì—Ê‚Å‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B
-list_sp: ƒXƒLƒ‹Žg—p‚ÅŒ¸‚éSP‚Ì—Ê‚Å‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B
-list_hp_rate: ƒXƒLƒ‹Žg—p‚ÅŒ¸‚éHP‚̔䗦‚Å‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B(Å‘åHP‚̔䗦‚Å‚Í‚È‚­Œ»ÝHP‚̔䗦‚Å‚·B)
-list_sp_rate: ƒXƒLƒ‹Žg—p‚ÅŒ¸‚éSP‚̔䗦‚Å‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B(Å‘åSP‚̔䗦‚Å‚Í‚È‚­Œ»ÝSP‚̔䗦‚Å‚·B)
-list_zeny: ƒXƒLƒ‹Žg—p‚ÅŒ¸‚éƒ[ƒj‚Ì—Ê‚Å‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B
-list_weapon: ƒXƒLƒ‹‚ðŽg‚¤‚±‚Æ‚ª‚Å‚«‚é•Ší‚ðݒ肵‚Ü‚·B
- 99 - ‘S‚Ä‚Ì•ŠíA0 - ‘fŽèA1 - ’ZŒ•A2 - •ÐŽèŒ•A3 - —¼ŽèŒ•A4 - •ÐŽè‘„A
- 5 - —¼Žè‘„A6 - •ÐŽè•€A7 - —¼Žè•€A8 - •ÐŽè“ÝŠíA9 - —¼Žè“ÝŠíA10 - ƒƒbƒhA
- 11 - ‹|A12 - ƒiƒbƒNƒ‹A13 - ŠyŠíA14 - •ÚA15 - –{A16 - ƒJƒ^[ƒ‹A
- 17~22: “ñ“—¬
- •¡”‚ðÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B
-state:ƒXƒLƒ‹‚ðŽg—p‚·‚éˆ×‚ÌðŒ‚ðݒ肵‚Ü‚·B•¡”‚ÌÝ’è‚Í‚Å‚«‚Ü‚¹‚ñB
- none - ðŒ–³‚µ
- hiding - ƒnƒCƒfƒBƒ“ƒOó‘Ô
- cloacking - ƒNƒ[ƒLƒ“ƒOó‘ÔB
- hidden: ƒnƒCƒfƒBƒ“ƒO‚âƒNƒƒbƒLƒ“ƒOó‘Ô
- riding: ƒyƒRƒyƒR‚Éæ‚Á‚Ä‚¢‚é
- falcon: ‘é‚ð˜A‚ê‚Ä‚¢‚é
- cart: ƒJ[ƒg‚ð’…‚¯‚Ä‚¢‚é
- shield: ƒV[ƒ‹ƒh‚ðŽ‚Á‚Ä‚¢‚é
- sight: ƒTƒCƒgó‘Ô
- explosionspirits: ”š—ô”g“®ó‘Ô
- recover_weight_rate: Ž©‘R‰ñ•œ‚Å‚«‚éd—Ê
- move_enable: ƒXƒLƒ‹Žg—pˆÊ’u‚ªˆÚ“®‰Â”\‚ÈêŠ
- water: ‘«Œ³‚ª…
-spiritball: ƒXƒLƒ‹Žg—p‚É•K—v‚È‹C’e‚Ì”‚Å‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B
-itemid1: ƒXƒLƒ‹Žg—p‚É•K—v‚ȃAƒCƒeƒ€‚ÌIDAƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[‚ÌꇃŒƒxƒ‹•Ê‚ÉŽg‚¤‚±‚Æ‚É‚È‚éƒAƒCƒeƒ€ID
-amount1: ƒXƒLƒ‹Žg—p‚É•K—v‚ȃAƒCƒeƒ€‚Ì”(”‚ª0‚ÌꇃAƒCƒeƒ€‚ÌID‚ª‚ ‚é‚ƃAƒCƒeƒ€‚ÍŒ¸‚ç‚È‚¢‚¯‚ÇG”}‚Æ‚µ‚Ä‚»‚̃AƒCƒeƒ€‚ðŽ‚Á‚Ä‚¢‚é•K—v‚ª‚ ‚é‚悤‚É‚È‚è‚Ü‚·B) ƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[‚ÌꇃŒƒxƒ‹•Ê‚ÉŽg‚¤‚±‚Æ‚É‚È‚éƒAƒCƒeƒ€”
-itemid2: 㓯
-amount2: 㓯
-itemid3: 㓯
-amount3: 㓯
-itemid4: 㓯
-amount4: 㓯
-itemid5: 㓯
-amount5: 㓯
-itemid6: 㓯
-amount6: 㓯
-itemid7: 㓯
-amount7: 㓯
-itemid8: 㓯
-amount8: 㓯
-itemid9: 㓯
-amount9: 㓯
-itemid10: 㓯
-amount10: 㓯
-
-
-==========================================================================
-4. db/pet_db.txt
---------------------------------------------------------------------------
-
- MobID,Name,JName,ItemID,EggID,AcceID,FoodID,Fullness,HungryDelay ,R_Hungry,R_Full,Intimate,Die,Capture,Speed,S_Performance,talk_convert_class,attack_rate,defence_attack_rate,change_target_rate,pet_script
-
-MobID: ƒ‚ƒ“ƒXƒ^[ID‚Å‚·B
-Name: ‰pŒê–¼‘O(ƒ_ƒ~[)
-JName: –¼‘O
-ItemID: •ßŠl—p‚̃AƒCƒeƒ€ID
-EggID: —‘‚̃AƒCƒeƒ€ID
-AcceID: ‘•”õƒAƒNƒZƒTƒŠ[‚̃AƒCƒeƒ€ID
-FoodID: ‰a‚̃AƒCƒeƒ€ID
-Fullness: 1‰ñ‚̉a‚Å‚Ì–ž• “x‘‰Á—¦%
-HungryDelay: –ž• “x‚ª1%Œ¸‚éˆ×‚É‚©‚©‚鎞ŠÔ(•b)
-R_Hungry: ‹ó• Žž‰a‚â‚èe–§“x‘‰Á—Ê
-R_Full: ‚Æ‚Ä‚à–ž• Žž‰a‚â‚èe–§“xŒ¸­—Ê
-Intimate: •ßŠlŽže–§“x
-Die: Ž€–SŽže–§“xŒ¸­—Ê
-Capture: •ßŠl—¦(–œ•ª—¦)
-Speed: ˆÚ“®‘¬“x
-S_Performance: ƒXƒyƒVƒƒƒ‹ƒpƒtƒHƒ}ƒ“ƒX‚ª‚ ‚é‚©‚Ç‚¤‚©(1‚Å‚ ‚è0‚Å‚È‚µ)
-talk_convert_class: ‘䎌‚𑼂̃yƒbƒg‚Ì•¨‚É•ÏXB•ÏX‚µ‚½‚¢ƒyƒbƒg‚̃‚ƒ“ƒXƒ^[ID‚ð“ü‚ê‚Ü‚·B0‚ÌꇕÏX‚È‚µ‚Ń}ƒCƒiƒX‚ð“ü‚ê‚é‚ƃGƒ‚[ƒVƒ‡ƒ“ˆÈŠO‚Ì•¨(‘䎌)‚Í‘S‚Ä–³Ž‹‚³‚ê‚Ü‚·B
-attack_rate: Žx‰‡UŒ‚Šm—¦B(–œ•ª—¦) Žål‚ªUŒ‚‚ð‚µ‚©‚¯‚½ê‡B
-defence_attack_rate: Žx‰‡UŒ‚Šm—¦B(–œ•ª—¦) Žål‚ªUŒ‚‚ðŽó‚¯‚½ê‡B
-change_target_rate: UŒ‚–Ú•W‚ð•ÏX‚·‚éŠm—¦B(–œ•ª—¦)
-pet_script: ƒyƒbƒg‚ðŽ‚Á‚Ä‚¢‚鎞“K—p‚³‚ê‚éƒXƒe[ƒ^ƒXƒ{[ƒiƒX‚ðÝ’èB
-
-
-
-==========================================================================
-EOF
---------------------------------------------------------------------------
+==========================================================================
+ Athena dev 2.1.1 mod0659 Œ»Ý‚Ìdb‚̃Šƒtƒ@ƒŒƒ“ƒX{ƒ¿
+--------------------------------------------------------------------------
+
+< ‚±‚̃tƒ@ƒCƒ‹‚͉½H >
+
+ Athena‚Ìdbƒtƒ@ƒCƒ‹‚ÌÝ’è•û–@‚̃Šƒtƒ@ƒŒƒ“ƒX‚Å‚·B
+
+
+< db‚̃ŠƒXƒg >
+
+cast_db.txt ƒXƒLƒ‹‚̃LƒƒƒXƒeƒBƒ“ƒOŽžŠÔ‚ƃfƒBƒŒƒCAˆÛŽŽžŠÔ“™‚ðÝ’èB
+skill_db.txt ƒXƒLƒ‹‚̃f[ƒ^‚ðÝ’èB
+skill_require_db.txt ƒXƒLƒ‹Žg—pðŒ‚ðÝ’èB
+pet_db.txt ƒyƒbƒg‚̃f[ƒ^‚ðÝ’èB
+
+
+==========================================================================
+1. db/cast_db.txt
+--------------------------------------------------------------------------
+
+id,cast_list,delay_list,upkeep_time,upkeep_time2
+
+id: ƒXƒLƒ‹‚ÌID‚Å‚·B
+cast_list: ƒXƒLƒ‹‚̃LƒƒƒXƒeƒBƒ“ƒOŽžŠÔ‚ðݒ肵‚Ü‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B
+delay_list: ƒXƒLƒ‹‚̃fƒBƒŒƒCŽžŠÔ‚ðݒ肵‚Ü‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B
+upkeep_time:ƒXƒLƒ‹‚̈ێŽžŠÔ‚ðݒ肵‚Ü‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B
+upkeep_time2:ƒXƒLƒ‹‚É‚æ‚Á‚Ä‹N‚±‚éó‘ÔˆÙí‚̈ێŽžŠÔ‚ðݒ肵‚Ü‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B(‚½‚¾‘¬“xŒ¸­‚Íupkeep_time‚ðŽg‚¢‚Ü‚·‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B)
+
+¦•Ší‚̒ljÁŒø‰Ê‚É‚æ‚éó‘ÔˆÙí‚ÍMG_STONECURSE(Ή»)AMG_FROSTDIVER(“€Œ‹)ANPC_STUNATTACK(ƒXƒ^ƒ“)ANPC_SLEEPATTACK(‡–°)ATF_POISON(“Å)ANPC_CURSEATTACK(Žô‚¢)ANPC_SILENCEATTACK(’¾–Ù)ANPC_BLINDATTACK(ˆÃ•)‚Ìupkeep_time2‚ðŽg‚¢‚Ü‚·B(ƒŒƒxƒ‹‚Í7‚Å“K—p)
+¦‹}ŠUŒ‚‚Ìê‡Å‘僌ƒxƒ‹‚Í1‚Å‚·‚ªƒoƒbƒVƒ…‚̃Œƒxƒ‹‚É‚æ‚Á‚ĈÙ펞ŠÔ‚ð•ÏX‚Å‚«‚é‚Ì‚Å•¡”Ý’è‚à‰Â”\‚Å‚·B
+¦ƒ}ƒLƒVƒ}ƒCƒYƒpƒ[‚ƃNƒ[ƒLƒ“ƒO‚Ìupkeep_time‚͈ێŽžŠÔ‚Å‚Í‚È‚­SP‚ª1Œ¸‚鎞ŠÔ‚Å‚·B
+
+
+==========================================================================
+2. db/skill_db.txt
+--------------------------------------------------------------------------
+
+id,range,hit,inf,pl,nk,max,list_num,castcancel,cast_defence_rate,inf2,maxcount,skill_type,blow_count
+
+id: ƒXƒLƒ‹‚ÌID‚Å‚·B
+range: ƒXƒLƒ‹‚ÌŽË’ö‹——£‚Å‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B-1‚̓Lƒƒƒ‰‚Ì•ŠíŽË’ö‚Æ“¯‚¶‚ÆŒ¾‚¤ˆÓ–¡‚Å-2‚È‚çƒLƒƒƒ‰‚Ì•ŠíŽË’ö+1A-3‚È‚çƒLƒƒƒ‰‚Ì•ŠíŽË’ö+2‚É‚È‚è‚Ü‚·B
+hit: ˜A‘Å‚È‚ç8A’P”­‚È‚ç6(ƒXƒLƒ‹‚̃qƒbƒg”‚¶‚á‚ ‚è‚Ü‚¹‚ñB)
+inf: ƒXƒLƒ‹î•ñ‚Å‚·B
+ 0-ƒpƒbƒVƒuA1-“GA2-êŠA4-‘¦Žž”­“®A16-–¡•ûA32-ã©
+ •¡”‚Ì•¨‚ð“ü‚ê‚é‚Æ(”’l‚ð‘«‚µ‚Ä)³‚µ‚­“®ì‚µ‚Ü‚¹‚ñB
+pl: ƒXƒLƒ‹‚Ì‘®«‚Å‚·B
+ 0-–³ 1-… 2-’n 3-‰Î 4-•— 5-“Å 6-¹ 7-ˆÃ 8-”O 9-•sŽ€
+nk: •t‰Á@1Œø‰Ê@2‚«”ò‚΂µ
+MaxLv: ƒXƒLƒ‹‚Ìő僌ƒxƒ‹‚Å‚·B
+list_num: Hit‰ñ”‚̃ŠƒXƒg‚Å‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B
+castcancel: ƒXƒLƒ‹‚ªƒLƒƒƒ“ƒZƒ‹‚³‚ê‚é‚©‚Ç‚¤‚©‚ðݒ肵‚Ü‚·Byes‚̓Lƒƒƒ“ƒZƒ‹‚³‚ê‚镨‚Åno‚̓Lƒƒƒ“ƒZƒ‹‚³‚ê‚È‚¢•¨‚Å‚·B
+cast_defence_rate: ƒLƒƒƒXƒeƒBƒ“ƒO’†‚ɒቺ‚·‚é–hŒä—͂̔䗦‚Å‚·Bƒ{ƒEƒŠƒ“ƒOƒoƒbƒVƒ…‚âƒNƒ‰ƒ“ƒhƒNƒƒX‚̂悤‚ɃXƒLƒ‹ƒLƒƒƒXƒeƒBƒ“ƒO’†‚É–hŒä‚ªŒ¸‚éƒXƒLƒ‹‚ÌÝ’è‚ÉŽg‚¢‚Ü‚·B
+inf2: ƒXƒLƒ‹î•ñ2‚Å‚·B1 - ƒNƒFƒXƒgƒXƒLƒ‹A2 - npc ƒXƒLƒ‹A4-“GA8-êŠA16-‘¦Žž”­“®A32-–¡•ûA64-ã©A128-PVPƒ‚[ƒh‚ÅŽ©•ª‚ðŠÜ‚Þ‘S‚Ä‚Ì•¨‚Ƀ_ƒ[ƒW‚ª“ü‚éƒXƒLƒ‹(’n–ʃXƒLƒ‹‚Ì‚Ý)A256-•’Ê‚ÌŽg—p‚ÅŽ©•ª‚É•K‚¸ƒ_ƒ[ƒW‚ª“ü‚éƒXƒLƒ‹(’n–ʃXƒLƒ‹‚Ì‚Ý)A512-Ž©•ª‚É‚ÍŽg‚¤‚±‚Æ‚ª‚Å‚«‚È‚¢ƒXƒLƒ‹A1024 - Ž©•ª‚©Ž©•ª‚̃p[ƒeƒB‚É‚µ‚©Žg‚¦‚È‚¢ƒXƒLƒ‹B2048 - Ž©•ª‚©Ž©•ª‚̃Mƒ‹ƒh‚É‚µ‚©Žg‚¦‚È‚¢ƒXƒLƒ‹A“¯–¿ƒMƒ‹ƒhƒ`ƒFƒbƒN‚Í–³‚µB(4A8A16A32A64‚͈ꕔ‚̃AƒNƒeƒBƒuƒXƒLƒ‹‚ªŽg—pB¡‚͈¢C—…”e–PŒ‚Ì‚ÝŽg—pB)
+maxcount: ’n–ʃXƒLƒ‹‚Ì‚Ý‚É“K—p‚³‚ê‚镨‚ŃXƒLƒ‹‚ð’u‚¯‚éő唂ł·B0‚Í’u‚¯‚È‚¢‚ÆŒ¾‚¤ˆÓ–¡‚Å‚Í‚È‚­§ŒÀ‚ª‚È‚¢•¨‚ÆŒ¾‚¤ˆÓ–¡‚Å‚·B
+skill_type: ƒXƒLƒ‹‚ÌŽí—Þ‚ðݒ肵‚Ü‚·Bweapon‚Í•ŠíƒXƒLƒ‹‚Åmagic‚Í–‚–@ƒXƒLƒ‹Amisc‚Í•Ší‚Å‚à–‚–@‚Å‚à‚È‚¢ƒXƒLƒ‹‚Å‚·Bnone‚ÍŒˆ‚ߓ‚¢•¨“™‚Éݒ肵‚Ü‚·B‚½‚¾‚±‚ê‚ð•Ï‚¦‚½‚Æ‚µ‚Ä‚àƒXƒLƒ‹‚̃_ƒ[ƒWŒvŽZ‚ª‚±‚ê‚ɇ‚킹‚Ä•Ï‚í‚é‚킯‚Å‚Í‚È‚­ƒ_ƒ[ƒW‚ÌŒvŽZ‚̓vƒƒOƒ‰ƒ€ƒŒƒxƒ‹‚Ås‚È‚Á‚Ä‚¢‚Ü‚·B‚±‚ê‚̓Xƒyƒ‹ƒuƒŒƒCƒJ[‚ʼnr¥’†Ž~‚³‚ê‚é‚©‚Ç‚¤‚©‚ðÝ’è‚·‚éˆ×‚Ì•¨‚Å‚·B(‘¼‚̃XƒLƒ‹‚Å‚±‚ÌÝ’è‚ðŽg—p‚·‚é‰Â”\«‚à‚ ‚è‚Ü‚·‚ª¡‚ÌŠƒXƒyƒ‹ƒuƒŒƒCƒJ[‚Ì‚Ý‚Å‚·B) magic‚ÉÝ’è‚·‚é‚ƃXƒyƒ‹ƒuƒŒƒCƒJ[‚ʼnr¥’†Ž~‚³‚ê‚Ü‚·B
+blow_count: ƒXƒLƒ‹‚æ‚éƒmƒbƒNƒoƒbƒN‹——£‚Å‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B
+
+
+==========================================================================
+3. db/skill_require_db.txt
+--------------------------------------------------------------------------
+
+id,list_hp,list_sp,list_hp_rate,list_sp_rate,list_zeny,list_weapon,state,spiritball,itemid1,amount1,itemid2,amount2,itemid3,amount3,itemid4,amount4,itemid5,amount5,itemid6,amount6,itemid7,amount7,itemid8,amount8,itemid9,amount9,itemid10,amount10
+
+id: ƒXƒLƒ‹‚ÌID‚Å‚·B
+list_hp: ƒXƒLƒ‹Žg—p‚ÅŒ¸‚éHP‚Ì—Ê‚Å‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B
+list_sp: ƒXƒLƒ‹Žg—p‚ÅŒ¸‚éSP‚Ì—Ê‚Å‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B
+list_hp_rate: ƒXƒLƒ‹Žg—p‚ÅŒ¸‚éHP‚̔䗦‚Å‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B(Å‘åHP‚̔䗦‚Å‚Í‚È‚­Œ»ÝHP‚̔䗦‚Å‚·B)
+list_sp_rate: ƒXƒLƒ‹Žg—p‚ÅŒ¸‚éSP‚̔䗦‚Å‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B(Å‘åSP‚̔䗦‚Å‚Í‚È‚­Œ»ÝSP‚̔䗦‚Å‚·B)
+list_zeny: ƒXƒLƒ‹Žg—p‚ÅŒ¸‚éƒ[ƒj‚Ì—Ê‚Å‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B
+list_weapon: ƒXƒLƒ‹‚ðŽg‚¤‚±‚Æ‚ª‚Å‚«‚é•Ší‚ðݒ肵‚Ü‚·B
+ 99 - ‘S‚Ä‚Ì•ŠíA0 - ‘fŽèA1 - ’ZŒ•A2 - •ÐŽèŒ•A3 - —¼ŽèŒ•A4 - •ÐŽè‘„A
+ 5 - —¼Žè‘„A6 - •ÐŽè•€A7 - —¼Žè•€A8 - •ÐŽè“ÝŠíA9 - —¼Žè“ÝŠíA10 - ƒƒbƒhA
+ 11 - ‹|A12 - ƒiƒbƒNƒ‹A13 - ŠyŠíA14 - •ÚA15 - –{A16 - ƒJƒ^[ƒ‹A
+ 17~22: “ñ“—¬
+ •¡”‚ðÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B
+state:ƒXƒLƒ‹‚ðŽg—p‚·‚éˆ×‚ÌðŒ‚ðݒ肵‚Ü‚·B•¡”‚ÌÝ’è‚Í‚Å‚«‚Ü‚¹‚ñB
+ none - ðŒ–³‚µ
+ hiding - ƒnƒCƒfƒBƒ“ƒOó‘Ô
+ cloacking - ƒNƒ[ƒLƒ“ƒOó‘ÔB
+ hidden: ƒnƒCƒfƒBƒ“ƒO‚âƒNƒƒbƒLƒ“ƒOó‘Ô
+ riding: ƒyƒRƒyƒR‚Éæ‚Á‚Ä‚¢‚é
+ falcon: ‘é‚ð˜A‚ê‚Ä‚¢‚é
+ cart: ƒJ[ƒg‚ð’…‚¯‚Ä‚¢‚é
+ shield: ƒV[ƒ‹ƒh‚ðŽ‚Á‚Ä‚¢‚é
+ sight: ƒTƒCƒgó‘Ô
+ explosionspirits: ”š—ô”g“®ó‘Ô
+ recover_weight_rate: Ž©‘R‰ñ•œ‚Å‚«‚éd—Ê
+ move_enable: ƒXƒLƒ‹Žg—pˆÊ’u‚ªˆÚ“®‰Â”\‚ÈêŠ
+ water: ‘«Œ³‚ª…
+spiritball: ƒXƒLƒ‹Žg—p‚É•K—v‚È‹C’e‚Ì”‚Å‚·BƒŒƒxƒ‹•Ê‚ÉÝ’è‚·‚éꇂÍu:v‚ðŽg‚¢‚Ü‚·B
+itemid1: ƒXƒLƒ‹Žg—p‚É•K—v‚ȃAƒCƒeƒ€‚ÌIDAƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[‚ÌꇃŒƒxƒ‹•Ê‚ÉŽg‚¤‚±‚Æ‚É‚È‚éƒAƒCƒeƒ€ID
+amount1: ƒXƒLƒ‹Žg—p‚É•K—v‚ȃAƒCƒeƒ€‚Ì”(”‚ª0‚ÌꇃAƒCƒeƒ€‚ÌID‚ª‚ ‚é‚ƃAƒCƒeƒ€‚ÍŒ¸‚ç‚È‚¢‚¯‚ÇG”}‚Æ‚µ‚Ä‚»‚̃AƒCƒeƒ€‚ðŽ‚Á‚Ä‚¢‚é•K—v‚ª‚ ‚é‚悤‚É‚È‚è‚Ü‚·B) ƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[‚ÌꇃŒƒxƒ‹•Ê‚ÉŽg‚¤‚±‚Æ‚É‚È‚éƒAƒCƒeƒ€”
+itemid2: 㓯
+amount2: 㓯
+itemid3: 㓯
+amount3: 㓯
+itemid4: 㓯
+amount4: 㓯
+itemid5: 㓯
+amount5: 㓯
+itemid6: 㓯
+amount6: 㓯
+itemid7: 㓯
+amount7: 㓯
+itemid8: 㓯
+amount8: 㓯
+itemid9: 㓯
+amount9: 㓯
+itemid10: 㓯
+amount10: 㓯
+
+
+==========================================================================
+4. db/pet_db.txt
+--------------------------------------------------------------------------
+
+ MobID,Name,JName,ItemID,EggID,AcceID,FoodID,Fullness,HungryDelay ,R_Hungry,R_Full,Intimate,Die,Capture,Speed,S_Performance,talk_convert_class,attack_rate,defence_attack_rate,change_target_rate,pet_script
+
+MobID: ƒ‚ƒ“ƒXƒ^[ID‚Å‚·B
+Name: ‰pŒê–¼‘O(ƒ_ƒ~[)
+JName: –¼‘O
+ItemID: •ßŠl—p‚̃AƒCƒeƒ€ID
+EggID: —‘‚̃AƒCƒeƒ€ID
+AcceID: ‘•”õƒAƒNƒZƒTƒŠ[‚̃AƒCƒeƒ€ID
+FoodID: ‰a‚̃AƒCƒeƒ€ID
+Fullness: 1‰ñ‚̉a‚Å‚Ì–ž• “x‘‰Á—¦%
+HungryDelay: –ž• “x‚ª1%Œ¸‚éˆ×‚É‚©‚©‚鎞ŠÔ(•b)
+R_Hungry: ‹ó• Žž‰a‚â‚èe–§“x‘‰Á—Ê
+R_Full: ‚Æ‚Ä‚à–ž• Žž‰a‚â‚èe–§“xŒ¸­—Ê
+Intimate: •ßŠlŽže–§“x
+Die: Ž€–SŽže–§“xŒ¸­—Ê
+Capture: •ßŠl—¦(–œ•ª—¦)
+Speed: ˆÚ“®‘¬“x
+S_Performance: ƒXƒyƒVƒƒƒ‹ƒpƒtƒHƒ}ƒ“ƒX‚ª‚ ‚é‚©‚Ç‚¤‚©(1‚Å‚ ‚è0‚Å‚È‚µ)
+talk_convert_class: ‘䎌‚𑼂̃yƒbƒg‚Ì•¨‚É•ÏXB•ÏX‚µ‚½‚¢ƒyƒbƒg‚̃‚ƒ“ƒXƒ^[ID‚ð“ü‚ê‚Ü‚·B0‚ÌꇕÏX‚È‚µ‚Ń}ƒCƒiƒX‚ð“ü‚ê‚é‚ƃGƒ‚[ƒVƒ‡ƒ“ˆÈŠO‚Ì•¨(‘䎌)‚Í‘S‚Ä–³Ž‹‚³‚ê‚Ü‚·B
+attack_rate: Žx‰‡UŒ‚Šm—¦B(–œ•ª—¦) Žål‚ªUŒ‚‚ð‚µ‚©‚¯‚½ê‡B
+defence_attack_rate: Žx‰‡UŒ‚Šm—¦B(–œ•ª—¦) Žål‚ªUŒ‚‚ðŽó‚¯‚½ê‡B
+change_target_rate: UŒ‚–Ú•W‚ð•ÏX‚·‚éŠm—¦B(–œ•ª—¦)
+pet_script: ƒyƒbƒg‚ðŽ‚Á‚Ä‚¢‚鎞“K—p‚³‚ê‚éƒXƒe[ƒ^ƒXƒ{[ƒiƒX‚ðÝ’èB
+
+
+
+==========================================================================
+EOF
+--------------------------------------------------------------------------
diff --git a/doc/ea_job_system.txt b/doc/ea_job_system.txt
index 6265b4e30..8ea02735b 100644
--- a/doc/ea_job_system.txt
+++ b/doc/ea_job_system.txt
@@ -1,180 +1,180 @@
-//===== Athena Script =====================================
-//= eAthena Job System
-//===== By ================================================
-//= Skotlex
-//===== Version ===========================================
-//= 0.1
-//=========================================================
-//= 0.1 - First release, explained as well as I could.
-//===== Compatible With ===================================
-//= ... does not apply.
-//===== Description =======================================
-//= A reference description of eA's inner job system (for
-//= use on scripts through the eaclass and roclass script
-//= commands)
-//=========================================================
-
-Preface:
--------------------------------------------------------------------------------
-
- Most scripters are aware of the class values used in RO and their constants specified on db/const.txt. Each class has a number associated to it for referencing, so when someone's class is 9 that means they are a wizard. However, this list of job numbers has no real order behind it, and no logic behind it's assignation.
-
- You can add 3999 to a job to get their rebirth ID, but if you try to do the same to get the Baby class ID, that fails on the super Baby class. Also, there's no way to calculate, from a given first class, which classes would be their "evolution". That is, given the Archer's ID, you cannot just add a value that will return you "Hunter", and will still work if applied to the other classes. It didn't help much when they added Taekwon Boy, a first class, with an ID of 4046, and much later they added Ninja/Gunslinger with the IDs 25/24. How do you identify a first class on all this mess without recurring to very ugly range checks?
-
-The eA Job System:
--------------------------------------------------------------------------------
-
- Since the code also required to do this kind of checks for various skills (The Soul Linker Spirit buffs specially come to mind), an alternate job ID system was developed, which attempts to make more sense and make it easier to check where a particular job stands in relation to the rest.
-
- The scheme consists in that every job can be broken down by 3 criteria:
-
-- Base Job: This determines to which class-tree a job belongs. All jobs can be traced back to their root. The base job of all classes has to be one of the following:
-
- EAJ_NOVICE 0x0
- EAJ_SWORDMAN 0x1
- EAJ_MAGE 0x2
- EAJ_ARCHER 0x3
- EAJ_ACOLYTE 0x4
- EAJ_MERCHANT 0x5
- EAJ_THIEF 0x6
- EAJ_TAEKWON 0x7
- EAJ_GUNSLINGER 0x9
- EAJ_NINJA 0x10
-
-- Branch: All classes can be classified as "1st Class", "2-1 Class" or "2-2 Class":
-
- EAJL_2_1 0x100
- EAJL_2_2 0x200
- EAJL_2 0x300
-
-- The third category is type. Classes can either be normal, rebirth/advanced or adopted.
-
- EAJL_UPPER 0x1000
- EAJL_BABY 0x2000
-
-So using these three categories, any job class can be constructed from the others. Let's take a swordman, for example.
-
-The first step is basic swordman, with nothing else:
-
- EAJ_SWORDMAN
-
-The next step is to either become a 2-1 or a 2-2 job:
-
- EAJ_SWORDMAN|EAJL_2_1 -> EAJ_KNIGHT
- EAJ_SWORDMAN|EAJL_2_2 -> EAJ_CRUSADER
-
-if a swordman is adopted...
-
- EAJ_SWORDMAN|EAJL_BABY -> EAJ_BABY_SWORDMAN
-
-Or getting out the rebirth versions of a swordman:
-
- EAJ_SWORDMAN|EAJL_UPPER -> EAJ_SWORDMAN_HIGH
- EAJ_SWORDMAN|EAJL_2_1|EAJL_UPPER -> EAJ_LORD_KNIGHT
- EAJ_SWORDMAN|EAJL_2_2|EAJL_UPPER -> EAJ_PALADIN
-
-Why are we using the bitwise OR operand ('|') rather than just adding? Because the OR is wreck-proof:
-
- EAJ_SWORDMAN_HIGH|EAJL_UPPER -> EAJ_SWORDMAN_HIGH
-
-If we had used addition, we would have gotten a completely different result.
-
-The EAJL (eA Job Level) constants
--------------------------------------------------------------------------------
- There are a few constants which can be used to filter out and make job comparisons easier.
-
-EAJL_2_1:
- Checks if the class is a 2-1 class:
- if (@job&EAJL_2_1)
- mes "Using the classic 2-1 job, huh?";
-
-EAJL_2_2:
- Checks if the class is 2-2.
-
-EAJL_2:
- Checks if the class is a 2nd Class. If the check fails, you can be sure the character is a first class.
- if (!(@job&EAJL_2))
- mes "Will you wait until Job 50 to change?";
-
-EAJL_UPPER:
- Check if a class is Rebirth/Advanced:
- if(@job&EAJL_UPPER)
- mes "It must have taken you a LONG time...";
-
-EAJL_BABY:
- Check if a class is an adopted class.
- if (@job&EAJ_BABY)
- mes "Don't you hate being weak?";
-
-EAJ_UPPERMASK:
- The upper mask can be used to "strip" the upper/baby characteristics of a class, used when you want to know if someone is a certain class regardless of rebirth/adopted status. For example, the following code would go through for Monks, Champions and Baby Monks:
- if ((@job&EAJ_UPPERMASK) == EAJ_MONK)
- mes "Aren't knuckles such a cool weapon?";
-
- Note that if instead of EAJ_MONK you used EAJ_CHAMPION or EAJ_BABY_MONK, the check would had never passed, since the upper/baby state has been removed from the original job when checking.
-
-EAJ_BASEMASK:
- This mask strips also the 2nd class attributes. It can be used to check against the basic job of a character. For example, the following code would go through for Merchants (+Baby Merchant and High Merchant), Blacksmiths (+Baby blacksmiths and Whitesmith) and Alchemist (+Baby Alchemist and +Creator):
- if ((@job&EAJ_BASEMASK) == EAJ_MERCHANT)
- mes "Why I can't have discount like you guys do?";
-
- Note that, like before, if you try to check versus any of the other classes (High merchant, blacksmith, etc) instead of basic merchant, the check will always fail for the same reasons previously explained.
-
-The script commands eaclass, roclass:
--------------------------------------------------------------------------------
-
- These script commands are what you can use in scripts to convert between the RO classic job id, and eA's job system. The following script code demonstrates how to use these script commands to guess what your next job will be:
-
- set @eac, eaclass();
- if (@eac&EAJL_2)
- { //2nd class
- //If upper or baby, you can't rebirth
- if (@eac&(EAJL_UPPER|EAJL_BABY)) {
- mes "You can't go anywhere, can you?";
- close;
- }
- //Note that if we remove the EAJL_BABY check up there, the following check
- //will also fail, because there's no such thing as Rebirth-Baby classes.
- set @newclass, roclass(@eac|EAJL_UPPER);
- if (@newclass == -1) {
- //Don't you hate this of SG and SL?
- mes "Haha, your class doesn't has a rebirth version yet!";
- close;
- }
- mes "Still dreaming of the day you become a "+jobname(@newclass)+"?";
- close;
- }
- set @class1, roclass(@eac|EAJL_2_1);
- set @class2, roclass(@eac|EAJL_2_2);
- if (@class1 == -1) {
- //NJ/GS are the only classes who get stuck on their 1st class forever.
- mes "Looks like you are stuck forever on that class.";
- close;
- }
- if (@class2 == -1) {
- //Not quite true, currently the only 1st class that doesn't has two choices is Novice -> Supernovice (see s.novice section below)
- mes "Looks like you have no choice but to be a "+jobname(@class1)+".";
- close;
- }
- mes "Have you decided yet if you want to be a "+jobname(@class1)+" or a "+jobname(@class2)+"?";
- close;
-
-
-Oddities of the System:
--------------------------------------------------------------------------------
-About Bards and Dancers:
- These two classes are considered the same in eA's job system, since they both are the 2-2 job of archers. The only way to tell them apart is by using the gender of the character we are referring to. The script command roclass() will automatically use the gender of the attached player (or 'male' if there's no such player), but you can also explicitly pass the gender to the script command when there's no player attached.
-
-About Novices and Super Novices:
- These are treated a bit differently from you'd expect. Because.. for instance, a novice is not supposed to be a 1st class, but it is considered as one on this tree system:
-
- EAJ_NOVICE -> Novice
- EAJ_NOVICE|EAJL_2_1 -> EAJ_SUPER_NOVICE
- EAJ_NOVICE|EAJL_UPPER -> EAJ_NOVICE_HIGH
- EAJ_NOVICE|EAJL_BABY -> EAJ_BABY
- EAJ_NOVICE|EAJL_BABY|EAJL_2_1 -> EAJ_SUPER_BABY
-
- So as you can see, on this job system, the Super Novice is treated as the 2-1 job of a Novice, and the Novice job it's at the same level of the other 1st jobs. Even though that may seem like a hindrance, it makes it very easy to add a check to discard Novice types from a quest:
-
- if ((@job&EAJ_BASEMASK) == EAJ_NOVICE)
- //Novice class detected.
+//===== Athena Script =====================================
+//= eAthena Job System
+//===== By ================================================
+//= Skotlex
+//===== Version ===========================================
+//= 0.1
+//=========================================================
+//= 0.1 - First release, explained as well as I could.
+//===== Compatible With ===================================
+//= ... does not apply.
+//===== Description =======================================
+//= A reference description of eA's inner job system (for
+//= use on scripts through the eaclass and roclass script
+//= commands)
+//=========================================================
+
+Preface:
+-------------------------------------------------------------------------------
+
+ Most scripters are aware of the class values used in RO and their constants specified on db/const.txt. Each class has a number associated to it for referencing, so when someone's class is 9 that means they are a wizard. However, this list of job numbers has no real order behind it, and no logic behind it's assignation.
+
+ You can add 3999 to a job to get their rebirth ID, but if you try to do the same to get the Baby class ID, that fails on the super Baby class. Also, there's no way to calculate, from a given first class, which classes would be their "evolution". That is, given the Archer's ID, you cannot just add a value that will return you "Hunter", and will still work if applied to the other classes. It didn't help much when they added Taekwon Boy, a first class, with an ID of 4046, and much later they added Ninja/Gunslinger with the IDs 25/24. How do you identify a first class on all this mess without recurring to very ugly range checks?
+
+The eA Job System:
+-------------------------------------------------------------------------------
+
+ Since the code also required to do this kind of checks for various skills (The Soul Linker Spirit buffs specially come to mind), an alternate job ID system was developed, which attempts to make more sense and make it easier to check where a particular job stands in relation to the rest.
+
+ The scheme consists in that every job can be broken down by 3 criteria:
+
+- Base Job: This determines to which class-tree a job belongs. All jobs can be traced back to their root. The base job of all classes has to be one of the following:
+
+ EAJ_NOVICE 0x0
+ EAJ_SWORDMAN 0x1
+ EAJ_MAGE 0x2
+ EAJ_ARCHER 0x3
+ EAJ_ACOLYTE 0x4
+ EAJ_MERCHANT 0x5
+ EAJ_THIEF 0x6
+ EAJ_TAEKWON 0x7
+ EAJ_GUNSLINGER 0x9
+ EAJ_NINJA 0x10
+
+- Branch: All classes can be classified as "1st Class", "2-1 Class" or "2-2 Class":
+
+ EAJL_2_1 0x100
+ EAJL_2_2 0x200
+ EAJL_2 0x300
+
+- The third category is type. Classes can either be normal, rebirth/advanced or adopted.
+
+ EAJL_UPPER 0x1000
+ EAJL_BABY 0x2000
+
+So using these three categories, any job class can be constructed from the others. Let's take a swordman, for example.
+
+The first step is basic swordman, with nothing else:
+
+ EAJ_SWORDMAN
+
+The next step is to either become a 2-1 or a 2-2 job:
+
+ EAJ_SWORDMAN|EAJL_2_1 -> EAJ_KNIGHT
+ EAJ_SWORDMAN|EAJL_2_2 -> EAJ_CRUSADER
+
+if a swordman is adopted...
+
+ EAJ_SWORDMAN|EAJL_BABY -> EAJ_BABY_SWORDMAN
+
+Or getting out the rebirth versions of a swordman:
+
+ EAJ_SWORDMAN|EAJL_UPPER -> EAJ_SWORDMAN_HIGH
+ EAJ_SWORDMAN|EAJL_2_1|EAJL_UPPER -> EAJ_LORD_KNIGHT
+ EAJ_SWORDMAN|EAJL_2_2|EAJL_UPPER -> EAJ_PALADIN
+
+Why are we using the bitwise OR operand ('|') rather than just adding? Because the OR is wreck-proof:
+
+ EAJ_SWORDMAN_HIGH|EAJL_UPPER -> EAJ_SWORDMAN_HIGH
+
+If we had used addition, we would have gotten a completely different result.
+
+The EAJL (eA Job Level) constants
+-------------------------------------------------------------------------------
+ There are a few constants which can be used to filter out and make job comparisons easier.
+
+EAJL_2_1:
+ Checks if the class is a 2-1 class:
+ if (@job&EAJL_2_1)
+ mes "Using the classic 2-1 job, huh?";
+
+EAJL_2_2:
+ Checks if the class is 2-2.
+
+EAJL_2:
+ Checks if the class is a 2nd Class. If the check fails, you can be sure the character is a first class.
+ if (!(@job&EAJL_2))
+ mes "Will you wait until Job 50 to change?";
+
+EAJL_UPPER:
+ Check if a class is Rebirth/Advanced:
+ if(@job&EAJL_UPPER)
+ mes "It must have taken you a LONG time...";
+
+EAJL_BABY:
+ Check if a class is an adopted class.
+ if (@job&EAJ_BABY)
+ mes "Don't you hate being weak?";
+
+EAJ_UPPERMASK:
+ The upper mask can be used to "strip" the upper/baby characteristics of a class, used when you want to know if someone is a certain class regardless of rebirth/adopted status. For example, the following code would go through for Monks, Champions and Baby Monks:
+ if ((@job&EAJ_UPPERMASK) == EAJ_MONK)
+ mes "Aren't knuckles such a cool weapon?";
+
+ Note that if instead of EAJ_MONK you used EAJ_CHAMPION or EAJ_BABY_MONK, the check would had never passed, since the upper/baby state has been removed from the original job when checking.
+
+EAJ_BASEMASK:
+ This mask strips also the 2nd class attributes. It can be used to check against the basic job of a character. For example, the following code would go through for Merchants (+Baby Merchant and High Merchant), Blacksmiths (+Baby blacksmiths and Whitesmith) and Alchemist (+Baby Alchemist and +Creator):
+ if ((@job&EAJ_BASEMASK) == EAJ_MERCHANT)
+ mes "Why I can't have discount like you guys do?";
+
+ Note that, like before, if you try to check versus any of the other classes (High merchant, blacksmith, etc) instead of basic merchant, the check will always fail for the same reasons previously explained.
+
+The script commands eaclass, roclass:
+-------------------------------------------------------------------------------
+
+ These script commands are what you can use in scripts to convert between the RO classic job id, and eA's job system. The following script code demonstrates how to use these script commands to guess what your next job will be:
+
+ set @eac, eaclass();
+ if (@eac&EAJL_2)
+ { //2nd class
+ //If upper or baby, you can't rebirth
+ if (@eac&(EAJL_UPPER|EAJL_BABY)) {
+ mes "You can't go anywhere, can you?";
+ close;
+ }
+ //Note that if we remove the EAJL_BABY check up there, the following check
+ //will also fail, because there's no such thing as Rebirth-Baby classes.
+ set @newclass, roclass(@eac|EAJL_UPPER);
+ if (@newclass == -1) {
+ //Don't you hate this of SG and SL?
+ mes "Haha, your class doesn't has a rebirth version yet!";
+ close;
+ }
+ mes "Still dreaming of the day you become a "+jobname(@newclass)+"?";
+ close;
+ }
+ set @class1, roclass(@eac|EAJL_2_1);
+ set @class2, roclass(@eac|EAJL_2_2);
+ if (@class1 == -1) {
+ //NJ/GS are the only classes who get stuck on their 1st class forever.
+ mes "Looks like you are stuck forever on that class.";
+ close;
+ }
+ if (@class2 == -1) {
+ //Not quite true, currently the only 1st class that doesn't has two choices is Novice -> Supernovice (see s.novice section below)
+ mes "Looks like you have no choice but to be a "+jobname(@class1)+".";
+ close;
+ }
+ mes "Have you decided yet if you want to be a "+jobname(@class1)+" or a "+jobname(@class2)+"?";
+ close;
+
+
+Oddities of the System:
+-------------------------------------------------------------------------------
+About Bards and Dancers:
+ These two classes are considered the same in eA's job system, since they both are the 2-2 job of archers. The only way to tell them apart is by using the gender of the character we are referring to. The script command roclass() will automatically use the gender of the attached player (or 'male' if there's no such player), but you can also explicitly pass the gender to the script command when there's no player attached.
+
+About Novices and Super Novices:
+ These are treated a bit differently from you'd expect. Because.. for instance, a novice is not supposed to be a 1st class, but it is considered as one on this tree system:
+
+ EAJ_NOVICE -> Novice
+ EAJ_NOVICE|EAJL_2_1 -> EAJ_SUPER_NOVICE
+ EAJ_NOVICE|EAJL_UPPER -> EAJ_NOVICE_HIGH
+ EAJ_NOVICE|EAJL_BABY -> EAJ_BABY
+ EAJ_NOVICE|EAJL_BABY|EAJL_2_1 -> EAJ_SUPER_BABY
+
+ So as you can see, on this job system, the Super Novice is treated as the 2-1 job of a Novice, and the Novice job it's at the same level of the other 1st jobs. Even though that may seem like a hindrance, it makes it very easy to add a check to discard Novice types from a quest:
+
+ if ((@job&EAJ_BASEMASK) == EAJ_NOVICE)
+ //Novice class detected.
diff --git a/doc/effect_list.txt b/doc/effect_list.txt
index d8ec0cafb..715a94a39 100644
--- a/doc/effect_list.txt
+++ b/doc/effect_list.txt
@@ -1,360 +1,360 @@
-Effect list - #'s I found while testing, lots of possible advanced class effects we missed
-(mixed old effect list of valaris and spira's new list...)
-
-0-5. Attack Display
-6. Being Warped
-7. Being Healed
-8. Yellow Ripple Effect
-9. Different Type of Heal?
-10. Mammomite
-11. Endure
-12. Yellow cast aura
-13. Blue Box
-14. Blue heal? Blue pot?
-15. Soul Strike
-16. Hide animation
-17. Magnum Break
-18. Steal
-19. Invalid
-20. Envenom/Poison
-21. Slow Poison? (Envenom In Blue)
-22. Sight
-23. Stone Curse
-24. FireBall
-25. FireWall
-26. Nothing?
-27. Frost Driver Cast
-28. Frost Driver Hitting
-29. Lightning Bolt
-30. ThunderStorm
-31. Bubbles Appearing From The Character?
-32. Explosion
-33. Ruwach
-34. Warp out aura (blue)
-35. Casting Warp portal (blue)
-36. Warp portal (blue)
-37. Agi up
-38. Agi down
-39. Something being made
-40. Cross thing (paladin skill?)
-41. Angelus bell
-42. Blessing angels
-43. Dex + Agi up
-44. Little fog smoke.
-45. Faint little ball things.
-46. Sand?
-47. Torch
-48. Circle of blue flat things
-49. Firebolt/wall hits
-50. Spinning fire thing
-51. Icebolt hit
-52. JT Hit
-53. Puff of purpulish smoke?
-54-59. Cast animations
-60. Cast target circle
-61. Warp portal (for maps)
-62. Sight rasher
-63. Fire sphere from some skill
-64. Weird purple/red light
-65. some sort of mob hit???
-66. potion effect?
-67. Provoke
-68. MVP
-69. Skid trap sign
-70. Blue purple aura thing
-71. Spiral Yellow balls
-72. Bigger Spiral Yellow balls
-73. Blue/yellow ripple
-74. Icewall sicle
-75. Acolyte skill (3 singing girls)
-76. Big angel that spreads wings (some aco skill)
-77. Resurrection angel
-78. Status recovery
-79. Heaven drive spike? Earth spike?
-80. Spear boomerange
-81. Skill hit
-82. Detect hidden
-83. Another aco skill i don't know (angel comes out of green light)
-84. Yet another stupid angel.
-85. Lex Divinia
-86. Holy water?
-87. Lex aeterna
-88. Another damn priest/aco skill
-89. SG
-90. LoV
-91. Aco priest skill
-92. Meteor Storm
-93. JT ball
-94. JT hit
-95. Quagmire
-96. Some sort of cool looking fire hit?
-97. Firepillar hit
-98.
-99. Big blue light
-100. Yellow ball fountain
-101. Forge?
-102. Hammerfall
-103. Powerthrust?
-104. Weapon perfection?
-105. Nothing?
-106. Fire explosion.
-107. Fire explosion (from trap?)
-108. blue smoke with noise
-109. blue bubbles
-110. yellow smoke (trap?)
-111. some bs skill or something
-117. Waterball
-120. Sound effect
-132. Single Grimtooth
-138. Fire pillar
-139. Fireworks
-154. refine success
-155. refine fail
-156. Jobchange.str (crashes client)
-157. Levelup.str (crashes client)
-158. joblvup
-159. Pvp circle
-160. Woe circle?
-161. Rain
-162. Snow
-163. Sakura leaves
-164. nothing (npc/mob?)
-165. Weird ball thing
-166. turns sprite blue
-167. Taming Success (crashes client)
-168. Taming failed (crashes client)
-169. blue light
-170. explosion
-171. venom dust
-172. black aura
-173. red aura
-174. blue aura
-175. yellow aura
-176. purple aura
-177. red aura
-178. white aura
-179. purple aura
-180. darkness attack hit?
-181. water attack hit?
-182. wind attack hit
-183. self destruction
-184. nothing (npc/mob?)
-185. nothing (npc/mob?)
-186. yellow effect
-187. yellow effect
-188. yellow effect
-189. yellow effect
-190. yellow effect
-191. target (piercing attack or something)
-192. purple cloud hit
-193. mute or something (npc skill)
-194. stun attack?
-195. stone curse
-196. curse
-197. sleep
-198. nothing (npc/mob?)
-199. some weird bubble
-200-203. Parts of the level 99 Aura
-204-211. Healing Items Effect
-212. Damage Effect (9999)
-213. Shield Appears (Guard?)
-214. 3 Weird Things Appear Around You (They All Look The Same)
-215. Hide/Unhide?
-216. 2 Red Balls shoot out
-217. 2 Blue Balls shoot out
-218. Concentration Potion Effect
-219. Other Speed Potion
-220. Berserk Potion
-221. White Alien Abduction Beam
-222. Defender Skill Effect (Black Circle)
-223. Invalid Effect
-224. White Wisp Revolving around you
-225. Volcano Effect
-226. Grand Cross Effect
-227-230. Blank
-231. Yuno Effect (Takes Alittle While)
-232. Blank
-233. Fog
-234. Unknown To Me
-235. Unknown To Me
-236. Deluge Effect
-237. Wind Gale Effect
-238. Land Protect Effect
-239. Volcano Effect 2
-240. Deluge Effect 2
-241. Wind Gale Effect 2
-242. Land Protect Effect 2
-243. Invalid Effect
-244. Unknown To Me.
-245. Holy Cross Effect
-246. Shield Charge Effect
-247. Yuno Effect 2 (Larger)
-248. Status Recovery? (Shows An Angel On Top Of Your Head)
-249. Shield Boomerang
-250. Spear Quicken
-251. Devotion
-252. Reflect Shield (Yellow Circle)
-259. Green Abduction Beam
-260. Orange Abduction Beam
-261. red aura thing
-262. yellow things that shoot out
-263. Yellow ground effect.
-264. nothing (npc/mob?)
-265. laser beam ?!
-266. bunch of white shit flies out
-267. gun shot!
-268. money bag
-269. sword thing
-270. shield thing
-271. armor thing
-272. cape thing?
-273. Outter spinning white balls.
-274. flying gold
-275. spit
-276. stuff that flies out somewhat like crits
-277. white stuff that comes out around sprite
-295. frost joke
-296. scream
-298. fire bottle throwing
-300. Chemical Protection
-301. Blank
-302. Demonstration Fire Effect
-303. Weird Effect you turn yellow and see six lines (3 sets of 2) going slanted
-304. After being warped
-305. Pharmacy Success
-306. Pharmacy Failed
-307. Sunlight through the roof effect in Geffenia
-308. Blank
-309. Unknown to me
-310. Unknown to me
-311. Shout/Yell/Loud (Merchant Skill) Effect
-312-313. Heal Effect?
-314. Another Part of Warp/ Yuno Effect?
-315. Newer Safety Wall (Pink Portal)
-316. Another Part of Warp (The Ripple Floor Part)
-317. Full Warp Effect
-322. daylight
-323. daylight
-324. daylight
-328. asura strike word
-329. tripple strike
-333. Orange Leaves Falling
-334. blind (can stack it)
-335. poison (can stack it)
-336. defender shield?
-337. joblvup
-338. supernovice angel
-341. pink warp portal
-342. pink aura
-343. pink heart thing (cool)
-344. teleport in
-346. big blue ball
-347. wedding effect
-349. waterfall (horizonatal)
-350. waterfall (vertical)
-351. sm waterfall (horizonatal)
-352. sm waterfall (vertical)
-353. drk waterfall (horizonatal)
-354. drk waterfall (vertical)
-355. drk sm waterfall (horizonatal)
-356. drk sm waterfall (vertical)
-358. niflheim ghost
-359. niflheim bat slow
-360. niflheim bat fast
-361. shoots purple wave out
-362. nothing?
-363. valentine's day heart (wings)
-364. valentine's day heart
-365. falling cross
-368. make you red (berserk?)
-369. 2h quicken?
-371. lvup
-372. death
-373. smoke
-375. white outline around sprite
-376. makes red and shoots out stuff
-377. shoots out yellow shit
-380. shakes screen turns you all different colors
-387. spins you around shakes screen flashes white
-394. big red ball around you
-
-403 = mind breaker
-404 = spider web
-405 = nothing
-406 = explosion effect on the head
-407 = effect that starts big and fades in to your characters head
-
-408. Orange Bubble Grows Around
-409. Weird Poision Like Effect
-410. Rainbow
-411. (Usable, Just add in folder effect file called peong1.tga).errors/detoxify like.
-413. nothing?
-417. flash
-418. red critical explosion?
-419. Pulsating grey aura
-420. gradual shrink char (possible minimize effect?)
-421. instant minimize
-422. grow back, but not all the way (baby height)
-423. mega size
-424. makes sprite bright
-425. 4 brownish replicas of sprite fly off?
-426. shakes sprites (works on player sprites!)
-427. nothing? (maybe for npc/mobs)
-428. yellow sparks
-429. blue sparks
-430. blue sparks in different direction
-431. another blue spark variant
-432. can't find effect\elec1.tga
-433. nothing? (npc/mob?)
-434. white sparks
-435. can't find effect\storm2.tga (sometimes works and shows little tornado thing!
-436. white shield (for one of the defense skills?)
-437. blue aura (kinda like a comet!)
-438. another defense aura? blue ripples. blue pulsating shield
-439. can't fine effect\line3.tga
-440. high priest skill angel? Angelus type effect but with a cross
-441. another cast aura
-442. nothing? (npc/mob?)
-443. nothing? (npc/mob?)
-444. white lines that fire out
-445. your sprite flies up and disappears sometime sprite errors
-446. your sprite falls down
-447. nothing? (npc/mob?)
-448. nothing? (npc/mob?)
-449. turns you bright blue real quick
-450. darkcross effect (black grand cross)
-451. red soul strike?! (high wiz skill?)
-452. A jupital thunder type of effect, electricity pulsates around your char
-453. Smoke (electricity type) surrounds char, can move and effect is still their.
-454. black cast aura
-455. red electric that covers body
-456. looks like wind rushes up (reminds me of agi up but slower, bigger, and grey)
-457. forces attack animation. makes a dash like stance
-458. causes sprite to jiggle. char pulsates and distorts (like 426)
-459. effect\storm2.tga error, causes player sprite to spin around and you see a faint tornado aura
-460. same as 459.
-461. faint tornado aura
-462. same as 459.
-463. same as 459.
-464. same as 459.
-465. same as 459.
-466. nothing (npc/mob?)
-467. sprite error (effect\hanmoon1.tga?)
-468. sprite error (effect\hanmoon2.tga?)
-469. sprite error (effect\hanmoon3.tga?)
-470. sprite error (effect\hanmoon4.tga?)
-471. sprite error (effect\hanmoon5.tga?)
-472. sprite error (effect\hanmoon6.tga?)
-473. sprite error (effect\hanmoon7.tga?)
-474. nothing (npc/mob?)
-
-475-484 = slow fade to blind, each one continues to make it smaller and smaller
-485 = white critical explosion thing
-486 = blue critical explosion thing
-487 = black portal ground effect
-488 = orange spikey aura that stretches up to fire type points
-489 = yellow/gold of 488
-489 = blue version
-491 = a small expoision above the head
-492 = creates 1 small venom poison type of point on the ground
-493+ = invalid effects
+Effect list - #'s I found while testing, lots of possible advanced class effects we missed
+(mixed old effect list of valaris and spira's new list...)
+
+0-5. Attack Display
+6. Being Warped
+7. Being Healed
+8. Yellow Ripple Effect
+9. Different Type of Heal?
+10. Mammomite
+11. Endure
+12. Yellow cast aura
+13. Blue Box
+14. Blue heal? Blue pot?
+15. Soul Strike
+16. Hide animation
+17. Magnum Break
+18. Steal
+19. Invalid
+20. Envenom/Poison
+21. Slow Poison? (Envenom In Blue)
+22. Sight
+23. Stone Curse
+24. FireBall
+25. FireWall
+26. Nothing?
+27. Frost Driver Cast
+28. Frost Driver Hitting
+29. Lightning Bolt
+30. ThunderStorm
+31. Bubbles Appearing From The Character?
+32. Explosion
+33. Ruwach
+34. Warp out aura (blue)
+35. Casting Warp portal (blue)
+36. Warp portal (blue)
+37. Agi up
+38. Agi down
+39. Something being made
+40. Cross thing (paladin skill?)
+41. Angelus bell
+42. Blessing angels
+43. Dex + Agi up
+44. Little fog smoke.
+45. Faint little ball things.
+46. Sand?
+47. Torch
+48. Circle of blue flat things
+49. Firebolt/wall hits
+50. Spinning fire thing
+51. Icebolt hit
+52. JT Hit
+53. Puff of purpulish smoke?
+54-59. Cast animations
+60. Cast target circle
+61. Warp portal (for maps)
+62. Sight rasher
+63. Fire sphere from some skill
+64. Weird purple/red light
+65. some sort of mob hit???
+66. potion effect?
+67. Provoke
+68. MVP
+69. Skid trap sign
+70. Blue purple aura thing
+71. Spiral Yellow balls
+72. Bigger Spiral Yellow balls
+73. Blue/yellow ripple
+74. Icewall sicle
+75. Acolyte skill (3 singing girls)
+76. Big angel that spreads wings (some aco skill)
+77. Resurrection angel
+78. Status recovery
+79. Heaven drive spike? Earth spike?
+80. Spear boomerange
+81. Skill hit
+82. Detect hidden
+83. Another aco skill i don't know (angel comes out of green light)
+84. Yet another stupid angel.
+85. Lex Divinia
+86. Holy water?
+87. Lex aeterna
+88. Another damn priest/aco skill
+89. SG
+90. LoV
+91. Aco priest skill
+92. Meteor Storm
+93. JT ball
+94. JT hit
+95. Quagmire
+96. Some sort of cool looking fire hit?
+97. Firepillar hit
+98.
+99. Big blue light
+100. Yellow ball fountain
+101. Forge?
+102. Hammerfall
+103. Powerthrust?
+104. Weapon perfection?
+105. Nothing?
+106. Fire explosion.
+107. Fire explosion (from trap?)
+108. blue smoke with noise
+109. blue bubbles
+110. yellow smoke (trap?)
+111. some bs skill or something
+117. Waterball
+120. Sound effect
+132. Single Grimtooth
+138. Fire pillar
+139. Fireworks
+154. refine success
+155. refine fail
+156. Jobchange.str (crashes client)
+157. Levelup.str (crashes client)
+158. joblvup
+159. Pvp circle
+160. Woe circle?
+161. Rain
+162. Snow
+163. Sakura leaves
+164. nothing (npc/mob?)
+165. Weird ball thing
+166. turns sprite blue
+167. Taming Success (crashes client)
+168. Taming failed (crashes client)
+169. blue light
+170. explosion
+171. venom dust
+172. black aura
+173. red aura
+174. blue aura
+175. yellow aura
+176. purple aura
+177. red aura
+178. white aura
+179. purple aura
+180. darkness attack hit?
+181. water attack hit?
+182. wind attack hit
+183. self destruction
+184. nothing (npc/mob?)
+185. nothing (npc/mob?)
+186. yellow effect
+187. yellow effect
+188. yellow effect
+189. yellow effect
+190. yellow effect
+191. target (piercing attack or something)
+192. purple cloud hit
+193. mute or something (npc skill)
+194. stun attack?
+195. stone curse
+196. curse
+197. sleep
+198. nothing (npc/mob?)
+199. some weird bubble
+200-203. Parts of the level 99 Aura
+204-211. Healing Items Effect
+212. Damage Effect (9999)
+213. Shield Appears (Guard?)
+214. 3 Weird Things Appear Around You (They All Look The Same)
+215. Hide/Unhide?
+216. 2 Red Balls shoot out
+217. 2 Blue Balls shoot out
+218. Concentration Potion Effect
+219. Other Speed Potion
+220. Berserk Potion
+221. White Alien Abduction Beam
+222. Defender Skill Effect (Black Circle)
+223. Invalid Effect
+224. White Wisp Revolving around you
+225. Volcano Effect
+226. Grand Cross Effect
+227-230. Blank
+231. Yuno Effect (Takes Alittle While)
+232. Blank
+233. Fog
+234. Unknown To Me
+235. Unknown To Me
+236. Deluge Effect
+237. Wind Gale Effect
+238. Land Protect Effect
+239. Volcano Effect 2
+240. Deluge Effect 2
+241. Wind Gale Effect 2
+242. Land Protect Effect 2
+243. Invalid Effect
+244. Unknown To Me.
+245. Holy Cross Effect
+246. Shield Charge Effect
+247. Yuno Effect 2 (Larger)
+248. Status Recovery? (Shows An Angel On Top Of Your Head)
+249. Shield Boomerang
+250. Spear Quicken
+251. Devotion
+252. Reflect Shield (Yellow Circle)
+259. Green Abduction Beam
+260. Orange Abduction Beam
+261. red aura thing
+262. yellow things that shoot out
+263. Yellow ground effect.
+264. nothing (npc/mob?)
+265. laser beam ?!
+266. bunch of white shit flies out
+267. gun shot!
+268. money bag
+269. sword thing
+270. shield thing
+271. armor thing
+272. cape thing?
+273. Outter spinning white balls.
+274. flying gold
+275. spit
+276. stuff that flies out somewhat like crits
+277. white stuff that comes out around sprite
+295. frost joke
+296. scream
+298. fire bottle throwing
+300. Chemical Protection
+301. Blank
+302. Demonstration Fire Effect
+303. Weird Effect you turn yellow and see six lines (3 sets of 2) going slanted
+304. After being warped
+305. Pharmacy Success
+306. Pharmacy Failed
+307. Sunlight through the roof effect in Geffenia
+308. Blank
+309. Unknown to me
+310. Unknown to me
+311. Shout/Yell/Loud (Merchant Skill) Effect
+312-313. Heal Effect?
+314. Another Part of Warp/ Yuno Effect?
+315. Newer Safety Wall (Pink Portal)
+316. Another Part of Warp (The Ripple Floor Part)
+317. Full Warp Effect
+322. daylight
+323. daylight
+324. daylight
+328. asura strike word
+329. tripple strike
+333. Orange Leaves Falling
+334. blind (can stack it)
+335. poison (can stack it)
+336. defender shield?
+337. joblvup
+338. supernovice angel
+341. pink warp portal
+342. pink aura
+343. pink heart thing (cool)
+344. teleport in
+346. big blue ball
+347. wedding effect
+349. waterfall (horizonatal)
+350. waterfall (vertical)
+351. sm waterfall (horizonatal)
+352. sm waterfall (vertical)
+353. drk waterfall (horizonatal)
+354. drk waterfall (vertical)
+355. drk sm waterfall (horizonatal)
+356. drk sm waterfall (vertical)
+358. niflheim ghost
+359. niflheim bat slow
+360. niflheim bat fast
+361. shoots purple wave out
+362. nothing?
+363. valentine's day heart (wings)
+364. valentine's day heart
+365. falling cross
+368. make you red (berserk?)
+369. 2h quicken?
+371. lvup
+372. death
+373. smoke
+375. white outline around sprite
+376. makes red and shoots out stuff
+377. shoots out yellow shit
+380. shakes screen turns you all different colors
+387. spins you around shakes screen flashes white
+394. big red ball around you
+
+403 = mind breaker
+404 = spider web
+405 = nothing
+406 = explosion effect on the head
+407 = effect that starts big and fades in to your characters head
+
+408. Orange Bubble Grows Around
+409. Weird Poision Like Effect
+410. Rainbow
+411. (Usable, Just add in folder effect file called peong1.tga).errors/detoxify like.
+413. nothing?
+417. flash
+418. red critical explosion?
+419. Pulsating grey aura
+420. gradual shrink char (possible minimize effect?)
+421. instant minimize
+422. grow back, but not all the way (baby height)
+423. mega size
+424. makes sprite bright
+425. 4 brownish replicas of sprite fly off?
+426. shakes sprites (works on player sprites!)
+427. nothing? (maybe for npc/mobs)
+428. yellow sparks
+429. blue sparks
+430. blue sparks in different direction
+431. another blue spark variant
+432. can't find effect\elec1.tga
+433. nothing? (npc/mob?)
+434. white sparks
+435. can't find effect\storm2.tga (sometimes works and shows little tornado thing!
+436. white shield (for one of the defense skills?)
+437. blue aura (kinda like a comet!)
+438. another defense aura? blue ripples. blue pulsating shield
+439. can't fine effect\line3.tga
+440. high priest skill angel? Angelus type effect but with a cross
+441. another cast aura
+442. nothing? (npc/mob?)
+443. nothing? (npc/mob?)
+444. white lines that fire out
+445. your sprite flies up and disappears sometime sprite errors
+446. your sprite falls down
+447. nothing? (npc/mob?)
+448. nothing? (npc/mob?)
+449. turns you bright blue real quick
+450. darkcross effect (black grand cross)
+451. red soul strike?! (high wiz skill?)
+452. A jupital thunder type of effect, electricity pulsates around your char
+453. Smoke (electricity type) surrounds char, can move and effect is still their.
+454. black cast aura
+455. red electric that covers body
+456. looks like wind rushes up (reminds me of agi up but slower, bigger, and grey)
+457. forces attack animation. makes a dash like stance
+458. causes sprite to jiggle. char pulsates and distorts (like 426)
+459. effect\storm2.tga error, causes player sprite to spin around and you see a faint tornado aura
+460. same as 459.
+461. faint tornado aura
+462. same as 459.
+463. same as 459.
+464. same as 459.
+465. same as 459.
+466. nothing (npc/mob?)
+467. sprite error (effect\hanmoon1.tga?)
+468. sprite error (effect\hanmoon2.tga?)
+469. sprite error (effect\hanmoon3.tga?)
+470. sprite error (effect\hanmoon4.tga?)
+471. sprite error (effect\hanmoon5.tga?)
+472. sprite error (effect\hanmoon6.tga?)
+473. sprite error (effect\hanmoon7.tga?)
+474. nothing (npc/mob?)
+
+475-484 = slow fade to blind, each one continues to make it smaller and smaller
+485 = white critical explosion thing
+486 = blue critical explosion thing
+487 = black portal ground effect
+488 = orange spikey aura that stretches up to fire type points
+489 = yellow/gold of 488
+489 = blue version
+491 = a small expoision above the head
+492 = creates 1 small venom poison type of point on the ground
+493+ = invalid effects
diff --git a/doc/help.txt b/doc/help.txt
index 49ad23506..49502d8b1 100644
--- a/doc/help.txt
+++ b/doc/help.txt
@@ -1,478 +1,478 @@
-GM Commands Help File
-By Akaru (updated by erKURITA)
------------------------
-To use these commands, type them inside the message window where you usually type to chat.
-
-<ANNOUNCEMENT COMMANDS>
-
-/nb <message>
-@kami <message>
-Lets you make a GM global announcement without a name (in yellow)
-
-@kamib <message>
-Lets you make a GM global announcement without a name (in blue)
-
-/b/@broadcast <message>
-Lets you make a GM global announcement with your name
-
-/lb/@localbroadcast <message>
-Broadcasts a GM message with name of the GM (in yellow) ONLY on your map
-
-/nlb <message>
-Broadcasts a GM message without name of the GM (in yellow) ONLY on your map
-
-<INFORMATION COMMANDS>
-
-@who [match_text]
-Lists who is currently online in your server and their location
-@who2 [match_text]
-Lists who is currently online in your server and their job
-@who3 [match_text]
-Lists who is currently online in your server and their party/guild
-
-@whomap [map]
-Display a listing of who is online and where in a specifical map
-@whomap2 [map]
-Display a listing of who is online and their job in a specifical map
-@whomap3 [map]
-Display a listing of who is online and their party/guild in a specifical map
-
-@whogm [match_text]
-Like @who+@who2+who3, but only for GM.
-
-@where <char name>
-Tells you the location of a character
-
-@charstatsall
-Displays stats of all characters.
-
-@charitemlist <char name>
-Displays all items of a player.
-
-@charstoragelist <char name>
-Displays all items of a player's storage.
-
-@charcartlist <char name>
-Displays all items of a player's cart.
-
-@time/@date/@server_date/@serverdate/@server_time/@servertime
-Display the date/time of the server
-
-@idsearch <part_of_item_name>
-Search all items that name have part_of_item_name
-
-@ignorelist
-Displays your ignore list
-
-@mapinfo [<1-3> [map]]
-Give information about a map (general info +: 0: no more, 1: players, 2: NPC, 3: shops/chat).
-
-@rates
-Displays the server rates.
-
-@uptime
-Show server uptime
-
-@showdelay
-Shows/Hides the "there is a delay after a skill" message.
-
-@mobinfo / @monsterinfo / @mi
-Show Monster info (rates, stats, drops, MVP stuff)
-
-@iteminfo / @ii
-Show Item info (type, price, etc)
-
-@refresh
-Syncs the position of the player on the client with the one stored in the server.
-
-@time / @date / @server_date / @serverdate / @servertime / @server_time
-Gives server time
-
-@version
-Displays SVN Version of the server
-
-<CONTROL COMMANDS>
-
-@die
-Kill yourself :)
-
-@alive
-Revive yourself from death
-
-@kill <char name>
-Kills specified character name
-Example:
-@kill TestChar -> The character named TestChar is dead
-
-@nuke <char name>
-Kills specified character (nuclear effect).
-
-@save
-Sets save point as current location
-
-@load
-Warps you to your save point (a.k.a. butterfly wing)
-
-@warp <map name> <x> <y>
-@rura <map name> <x> <y>
-@mapmove <map name> <x> <y>
-/mm <map name> <x> <y>
-/mapmove <map name> <x> <y>
-Warps you to the selected position
-Example:
-@warp morocc 150 160 -> Warps you to Morroc (X:150, Y:160)
-@rura prontera 50 80 -> Warps you to Prontera (X:50, Y:80)
-
-@jump [x [y]]
-Teleports you randomly in the map (a.k.a. fly wing)
-
-/shift/@jumpto/@warpto/@goto <char name>
-Warps you to selected character
-Example:
-@jumpto TestChar -> You are warped to TestChar's current location
-
-@go <number/city_name>
-Warps you to a set city:
- -3: (Memo point 2) 1: morocc 5: izlude 9: yuno 13: niflheim
- -2: (Memo point 1) 2: geffen 6: aldebaran 10: amatsu 14: louyang
- -1: (Memo point 0) 3: payon 7: xmas (lutie) 11: gonryun 15: start point
- 0: prontera 4: alberta 8: comodo 12: umbala 16: prison/jail
-
-/hide/@hide
-GM Hide. Perfect hide that's totally invinsible.
-
-@heal [<HP> <SP>] - Heals the desired amount of HP and SP. No value specified will do a full heal.
-@storage - Opens storage
-
-/recall/@recall <char name> - Warps target character to you.
-@recallall - Recalls everyone on the server to you.
-@guildrecall <guild_name/id> - Warps all online character of a guild to you.
-@partyrecall <party_name/id> - Warps all online character of a party to you.
-@revive <char name> - Revives target character.
-
-<SPAWNING COMMANDS>
-
-/item <item_name> - Gives you 1 of the desired item.
-@item <item name or ID> <quantity> - Gives you the desired item.
-
-/monster <monster_name> - Spawns 1 of the desired monster.
-@spawn/@monster/@summon <monster_name_or_monster_ID> [<number to spawn> [<desired_monster_name> [<x coord> [<y coord>]]]]
-@monster2 <desired_monster_name> <monster_name_or_monster_ID> [<number to spawn> [<x coord> [<y coord>]]]
-@spawn/@monster/@summon/@monster2 "desired monster name" <monster_name_or_monster_ID> [<number to spawn> [<x coord> [<y coord>]]]
-@spawn/@monster/@summon/@monster2 <monster_name_or_monster_ID> "desired monster name" [<number to spawn> [<x coord> [<y coord>]]]
- Spawns the desired monster with any desired name.
-
-<MAP OPTIONS COMMANDS>
-
-@pvpon - Turns pvp on on the current map
-@pvpoff - Turns pvp off on the current map
-@gvgon - Turns gvg on on the current map
-@gvgoff - Turns gvg off on the current map
-
-<CHARACTER CONTROL COMMANDS>
-@baselvlup <number of levels> - Raises your base level the desired number of levels. The max is 99
-@joblvlup <number of levels> - Raises your job level the desired number of levels. The max is 50
-
-@job/@jobchange <job ID>
-Changes your job to the job assigned to the ID
- 0 Novice 7 Knight 14 Crusader 22 Formal
- 1 Swordman 8 Priest 15 Monk 23 Super Novice
- 2 Mage 9 Wizard 16 Sage
- 3 Archer 10 Blacksmith 17 Rogue
- 4 Acolyte 11 Hunter 18 Alchem
- 5 Merchant 12 Assassin 19 Bard
- 6 Thief 13 Knight2 20 Dancer
- 21 Crusader2
- 24 Novice High 31 Lord Knight 38 Paladin
- 25 Swordman High 32 High Priest 39 Monk
- 26 Mage High 33 High Wizard 40 Professor
- 27 Archer High 34 Whitesmith 41 Stalker
- 28 Acolyte High 35 Sniper 42 Creator
- 29 Merchant High 36 Assassin Cross 43 Clown
- 30 Thief High 37 Peko Knight 44 Gypsy
- 45 Paladin2
-
-@option <param1> <param2> <param3>
-Changes options for your character
- <param1> <param2> (Stackable) <param3> (Stackable)
- 01 Petrified 01 Poison 01 Sight
- 02 Frozen 02 Cursed 02 Hide
- 03 Stunned 04 Silenced 04 Cloak
- 04 Sleeping 08 ??? 08 Level 1 Cart
- 06 darkness 16 darkness 16 Falcon
- 32 Peco Peco riding
- 64 GM Perfect Hide
- 128 Level 2 Cart
- 256 Level 3 Cart
- 512 Level 4 Cart
- 1024 Level 5 Cart
- 2048 Orc Head
- 4096 Wedding Sprites
- 8192 Ruwach
-
-@speed <1-1000>
-Changes you walking speed.
-1(Fastest)<---140(Default)----------------->1000(Slowest)
-
-@disguise <monster_name_or_monster_ID>
-Change your appearence to other players to a mob.
-
-@undisguise
-Restore your normal appearance.
-
-@model <hair ID> <hair color> <clothes color>
-Changes your characters appearance (Hair type, Hair Colour and/or Clothes Colour)
-
- Hair ID (0-17) Hair Colour (0-8) Clothes Colour (0-4)
- 0 Default 0 Default
- 1 Blonde 1 Red
- 2 Purple 2 Green
- 3 Brown 3 White
- 4 Green 4 Brown
- 5 Blue
- 6 White
- 7 Black
- 8 Red
-
-@effect <effect_id> [flag]
-Give an efect to your character.
-
-@stpoint <number of points>
-Gives you the desired number of stat points.
-
-@skpoint <number of points>
-Gives you the desired number of skill points.
-
-@zeny <amount>
-Gives you desired amount of Zeny.
-
-@str <amount>
-@agi <amount>
-@vit <amount>
-@int <amount>
-@dex <amount>
-@luk <amount>
-Adds desired amount to any stat. For example "@str 10" raises your str by 10
-
-@spiritball <number>
-Number = 1-1000
-Gives you monk "spirit spheres" like from the skill "Call Spirits"
-(If the number you use is > 1000, your server may become instable or crash)
-
-@memo [memo_position]
-set/change a memo location (no position: display memo points).
-
-@questskill <id>
-Gives you the specified quest skill
-
-@lostskill <id>
-Takes away the specified quest skill from you
-
-Quest Skill ID:
- Novice
- 142 = Emergency Care
- 143 = Act dead
- Swordsman
- 144 = Moving HP Recovery
- 145 = Attack Weak Point
- 146 = Auto Berserk
- Magician
- 157 = Energy Coat
- Archer
- 147 = Arrow Creation
- 148 = Charge Arrows
- Acolyte
- 156 = Holy Light
- Merchant
- 153 = Cart Revolution
- 154 = Change Cart
- 155 = Crazy Uproar/Loud Voice
- Thief
- 149 = Throw Sand
- 150 = Back Sliding
- 151 = Take Stone
- 152 = Stone Throw
-
-<GUILD CONTROL COMMANDS>
-
-@guildlvup/@guildlvlup <# of levels> - Raise Guild by desired number of levels
-
-<EQUIPMENT COMMANDS>
-
-@refine <position> <+/-amount>
-Upgrades equipment at the position specified (Stackable)
-0 - All
-1 - Lower Head
-2 - Right Hand
-4 - Robe/Garment
-8 - Left Accessory
-16 - Body/Armor
-32 - Left Hand
-64 - Feet
-128 - Right Accessory
-256 - Top Head
-512 - Mid Head
-
-Example:
-@refine 34 10 - Refines a 2 handed weapon to +10
-@refine 16 4 - Refines the body/armor to +4
-
-@produce <equip name or equip ID> <element> <# of very's>
-Element: 0=None 1=Ice 2=Earth 3=Fire 4=Wind
-# of very's: 0=None 1=Very Strong 2=Very Very Strong 3=Very Very Very Strong
-
-Example: @produce 1163 3 3 - Produces a Very Very Very Strong (Your Nick)'s Fire Claymore
-
-<Q-PET/cutePET COMMANDS>
-@hatch - Create a pet from your inventory eggs list.
-@makeegg <ID> - Gives pet egg for monster ID in pet DB
-@petfriendly <#> - Set pet friendly amount (0-1000) 0 = Min, 1000 = Max
-@pethungry <#> - Set pet hungry amount (0-100) 0 = Min, 100 = Max
-@petrename - Re-enable pet rename
-
-<REMOTE CHAR COMMANDS>
-@charwarp <map name> <x> <y> <char name>
-Warps character to location of choice
-Example:
-@charwarp morocc 150 160 TestChar -> Warps TestChar to Morroc (X:150, Y:160)
-
-@charstats <char name>
-Displays the character's stats.
-
-@charignorelist <char name>
-Displays ignore list of the player
-
-@inall <char name>
-Allows all wispers for the player
-
-@exall <char name>
-Blocks all wispers for the player
-
-@charoption <param1> <param2> <param3> <char name>
-Does the same as the @option command only to target character.
-
-@charmountpeco <charname>
-Give/remove to a player a peco (Class is required, but not skill).
-
-@charpetrename <charname>
-Re-enable pet rename to a player.
-
-@charsave <map> <x> <y> <char name>
-Changes the target player's respawn point.
-
-@charbaselvl <#> <char name>
-Change a character's base level.
-
-@charjlvl <#> <char name>
-Change a character's job level.
-
-@charjob/@charjobchange <job ID> <char name>
-Changes target character's job.
-
-@charzeny <amount> <char name>
-Give/take a player's Zeny
-
-@charstpoint <amount> <char name>
-Give/take a player's stat points
-
-@charskpoint <amount> <char name>
-give/take a player's skill points
-
-@charquestskill <#> <charname>
-Gives to a player the specified quest skill.
-
-@charlostskill <#> <charname>
-Takes away the specified quest skill from the player.
-
-@chardelitem <item_name_or_ID> <quantity> <player>
-Remove items from a character
-
-@charmodel <hair type> <hair color> <clothes color> <char name>
-Changes a player's model
-
-@chardisguise <monster_name_or_monster_ID> <char name>
-Changes disguise of a player
-
-@charundisguise <char name>
-Cancels disguise of a player
-
-@charchangesex <name>
-Changes sex of a player (all characters of the account)
-
-@charblock/@block <name>
-Blocks definitively a account
-
-@charunblock/@unblock <name>
-Unblocks a account
-
-@charban/@ban/@banish/@charbanish <time> <name>
-Ban temporarily a account
- time usage: adjustement (+/- value) and element (y/a, m, d/j, h, mn, s)
- Example: @ban +1m-2mn1s-6y testplayer
-
-@charunban/@unban/@unbanish/@uncharbanish <name>
-Unban a account
-
-@jail <char_name>
-Sends specified character in jails
-
-@unjail/@discharge <char_name>
-Discharges specified character/prisoner
-
-<MASS CONTROL COMMANDS>
-@night
-All characters are in darkness
-
-@day
-
-@option 00 00 00 are used on all characters
-
-@doom
-Kills all NON GM chars on the server.
-
-@doommap
-Kills all non GM characters on the map.
-
-@raise
-Resurrects all characters on the server.
-
-@raisemap
-Resurrects all characters on the map.
-
-@kick <charname>
-Kicks specified character off the server
-
-@kickall
-Kick all characters off the server
-
-<OTHER COMMANDS>
-
-@gat ---- ƒfƒoƒbƒO—p(Žü•Ógat‚𒲂ׂé)
-@packet ---- ƒfƒoƒbƒO—p(ƒpƒPƒbƒgFX)
-
-@mapexit
-Kick all players and shut down map-server.
-
-@reloaditemdb
-Reload item database (admin command)
-
-@reloadmobdb
-Reload monster database (admin command)
-
-@reloadskilldb
-Reload skills definition database (admin command)
-
-@reloadscript
-Reload all scripts (admin command)
-
-@reloadgmdb
-Reload GM levels (admin command)
-
-@enablenpc <NPC_name>
-Enable a NPC (admin command)
-
-@disablenpc <NPC_name>
-Disable a NPC (admin command)
-
-@email <actual@email> <new@email>
+GM Commands Help File
+By Akaru (updated by erKURITA)
+-----------------------
+To use these commands, type them inside the message window where you usually type to chat.
+
+<ANNOUNCEMENT COMMANDS>
+
+/nb <message>
+@kami <message>
+Lets you make a GM global announcement without a name (in yellow)
+
+@kamib <message>
+Lets you make a GM global announcement without a name (in blue)
+
+/b/@broadcast <message>
+Lets you make a GM global announcement with your name
+
+/lb/@localbroadcast <message>
+Broadcasts a GM message with name of the GM (in yellow) ONLY on your map
+
+/nlb <message>
+Broadcasts a GM message without name of the GM (in yellow) ONLY on your map
+
+<INFORMATION COMMANDS>
+
+@who [match_text]
+Lists who is currently online in your server and their location
+@who2 [match_text]
+Lists who is currently online in your server and their job
+@who3 [match_text]
+Lists who is currently online in your server and their party/guild
+
+@whomap [map]
+Display a listing of who is online and where in a specifical map
+@whomap2 [map]
+Display a listing of who is online and their job in a specifical map
+@whomap3 [map]
+Display a listing of who is online and their party/guild in a specifical map
+
+@whogm [match_text]
+Like @who+@who2+who3, but only for GM.
+
+@where <char name>
+Tells you the location of a character
+
+@charstatsall
+Displays stats of all characters.
+
+@charitemlist <char name>
+Displays all items of a player.
+
+@charstoragelist <char name>
+Displays all items of a player's storage.
+
+@charcartlist <char name>
+Displays all items of a player's cart.
+
+@time/@date/@server_date/@serverdate/@server_time/@servertime
+Display the date/time of the server
+
+@idsearch <part_of_item_name>
+Search all items that name have part_of_item_name
+
+@ignorelist
+Displays your ignore list
+
+@mapinfo [<1-3> [map]]
+Give information about a map (general info +: 0: no more, 1: players, 2: NPC, 3: shops/chat).
+
+@rates
+Displays the server rates.
+
+@uptime
+Show server uptime
+
+@showdelay
+Shows/Hides the "there is a delay after a skill" message.
+
+@mobinfo / @monsterinfo / @mi
+Show Monster info (rates, stats, drops, MVP stuff)
+
+@iteminfo / @ii
+Show Item info (type, price, etc)
+
+@refresh
+Syncs the position of the player on the client with the one stored in the server.
+
+@time / @date / @server_date / @serverdate / @servertime / @server_time
+Gives server time
+
+@version
+Displays SVN Version of the server
+
+<CONTROL COMMANDS>
+
+@die
+Kill yourself :)
+
+@alive
+Revive yourself from death
+
+@kill <char name>
+Kills specified character name
+Example:
+@kill TestChar -> The character named TestChar is dead
+
+@nuke <char name>
+Kills specified character (nuclear effect).
+
+@save
+Sets save point as current location
+
+@load
+Warps you to your save point (a.k.a. butterfly wing)
+
+@warp <map name> <x> <y>
+@rura <map name> <x> <y>
+@mapmove <map name> <x> <y>
+/mm <map name> <x> <y>
+/mapmove <map name> <x> <y>
+Warps you to the selected position
+Example:
+@warp morocc 150 160 -> Warps you to Morroc (X:150, Y:160)
+@rura prontera 50 80 -> Warps you to Prontera (X:50, Y:80)
+
+@jump [x [y]]
+Teleports you randomly in the map (a.k.a. fly wing)
+
+/shift/@jumpto/@warpto/@goto <char name>
+Warps you to selected character
+Example:
+@jumpto TestChar -> You are warped to TestChar's current location
+
+@go <number/city_name>
+Warps you to a set city:
+ -3: (Memo point 2) 1: morocc 5: izlude 9: yuno 13: niflheim
+ -2: (Memo point 1) 2: geffen 6: aldebaran 10: amatsu 14: louyang
+ -1: (Memo point 0) 3: payon 7: xmas (lutie) 11: gonryun 15: start point
+ 0: prontera 4: alberta 8: comodo 12: umbala 16: prison/jail
+
+/hide/@hide
+GM Hide. Perfect hide that's totally invinsible.
+
+@heal [<HP> <SP>] - Heals the desired amount of HP and SP. No value specified will do a full heal.
+@storage - Opens storage
+
+/recall/@recall <char name> - Warps target character to you.
+@recallall - Recalls everyone on the server to you.
+@guildrecall <guild_name/id> - Warps all online character of a guild to you.
+@partyrecall <party_name/id> - Warps all online character of a party to you.
+@revive <char name> - Revives target character.
+
+<SPAWNING COMMANDS>
+
+/item <item_name> - Gives you 1 of the desired item.
+@item <item name or ID> <quantity> - Gives you the desired item.
+
+/monster <monster_name> - Spawns 1 of the desired monster.
+@spawn/@monster/@summon <monster_name_or_monster_ID> [<number to spawn> [<desired_monster_name> [<x coord> [<y coord>]]]]
+@monster2 <desired_monster_name> <monster_name_or_monster_ID> [<number to spawn> [<x coord> [<y coord>]]]
+@spawn/@monster/@summon/@monster2 "desired monster name" <monster_name_or_monster_ID> [<number to spawn> [<x coord> [<y coord>]]]
+@spawn/@monster/@summon/@monster2 <monster_name_or_monster_ID> "desired monster name" [<number to spawn> [<x coord> [<y coord>]]]
+ Spawns the desired monster with any desired name.
+
+<MAP OPTIONS COMMANDS>
+
+@pvpon - Turns pvp on on the current map
+@pvpoff - Turns pvp off on the current map
+@gvgon - Turns gvg on on the current map
+@gvgoff - Turns gvg off on the current map
+
+<CHARACTER CONTROL COMMANDS>
+@baselvlup <number of levels> - Raises your base level the desired number of levels. The max is 99
+@joblvlup <number of levels> - Raises your job level the desired number of levels. The max is 50
+
+@job/@jobchange <job ID>
+Changes your job to the job assigned to the ID
+ 0 Novice 7 Knight 14 Crusader 22 Formal
+ 1 Swordman 8 Priest 15 Monk 23 Super Novice
+ 2 Mage 9 Wizard 16 Sage
+ 3 Archer 10 Blacksmith 17 Rogue
+ 4 Acolyte 11 Hunter 18 Alchem
+ 5 Merchant 12 Assassin 19 Bard
+ 6 Thief 13 Knight2 20 Dancer
+ 21 Crusader2
+ 24 Novice High 31 Lord Knight 38 Paladin
+ 25 Swordman High 32 High Priest 39 Monk
+ 26 Mage High 33 High Wizard 40 Professor
+ 27 Archer High 34 Whitesmith 41 Stalker
+ 28 Acolyte High 35 Sniper 42 Creator
+ 29 Merchant High 36 Assassin Cross 43 Clown
+ 30 Thief High 37 Peko Knight 44 Gypsy
+ 45 Paladin2
+
+@option <param1> <param2> <param3>
+Changes options for your character
+ <param1> <param2> (Stackable) <param3> (Stackable)
+ 01 Petrified 01 Poison 01 Sight
+ 02 Frozen 02 Cursed 02 Hide
+ 03 Stunned 04 Silenced 04 Cloak
+ 04 Sleeping 08 ??? 08 Level 1 Cart
+ 06 darkness 16 darkness 16 Falcon
+ 32 Peco Peco riding
+ 64 GM Perfect Hide
+ 128 Level 2 Cart
+ 256 Level 3 Cart
+ 512 Level 4 Cart
+ 1024 Level 5 Cart
+ 2048 Orc Head
+ 4096 Wedding Sprites
+ 8192 Ruwach
+
+@speed <1-1000>
+Changes you walking speed.
+1(Fastest)<---140(Default)----------------->1000(Slowest)
+
+@disguise <monster_name_or_monster_ID>
+Change your appearence to other players to a mob.
+
+@undisguise
+Restore your normal appearance.
+
+@model <hair ID> <hair color> <clothes color>
+Changes your characters appearance (Hair type, Hair Colour and/or Clothes Colour)
+
+ Hair ID (0-17) Hair Colour (0-8) Clothes Colour (0-4)
+ 0 Default 0 Default
+ 1 Blonde 1 Red
+ 2 Purple 2 Green
+ 3 Brown 3 White
+ 4 Green 4 Brown
+ 5 Blue
+ 6 White
+ 7 Black
+ 8 Red
+
+@effect <effect_id> [flag]
+Give an efect to your character.
+
+@stpoint <number of points>
+Gives you the desired number of stat points.
+
+@skpoint <number of points>
+Gives you the desired number of skill points.
+
+@zeny <amount>
+Gives you desired amount of Zeny.
+
+@str <amount>
+@agi <amount>
+@vit <amount>
+@int <amount>
+@dex <amount>
+@luk <amount>
+Adds desired amount to any stat. For example "@str 10" raises your str by 10
+
+@spiritball <number>
+Number = 1-1000
+Gives you monk "spirit spheres" like from the skill "Call Spirits"
+(If the number you use is > 1000, your server may become instable or crash)
+
+@memo [memo_position]
+set/change a memo location (no position: display memo points).
+
+@questskill <id>
+Gives you the specified quest skill
+
+@lostskill <id>
+Takes away the specified quest skill from you
+
+Quest Skill ID:
+ Novice
+ 142 = Emergency Care
+ 143 = Act dead
+ Swordsman
+ 144 = Moving HP Recovery
+ 145 = Attack Weak Point
+ 146 = Auto Berserk
+ Magician
+ 157 = Energy Coat
+ Archer
+ 147 = Arrow Creation
+ 148 = Charge Arrows
+ Acolyte
+ 156 = Holy Light
+ Merchant
+ 153 = Cart Revolution
+ 154 = Change Cart
+ 155 = Crazy Uproar/Loud Voice
+ Thief
+ 149 = Throw Sand
+ 150 = Back Sliding
+ 151 = Take Stone
+ 152 = Stone Throw
+
+<GUILD CONTROL COMMANDS>
+
+@guildlvup/@guildlvlup <# of levels> - Raise Guild by desired number of levels
+
+<EQUIPMENT COMMANDS>
+
+@refine <position> <+/-amount>
+Upgrades equipment at the position specified (Stackable)
+0 - All
+1 - Lower Head
+2 - Right Hand
+4 - Robe/Garment
+8 - Left Accessory
+16 - Body/Armor
+32 - Left Hand
+64 - Feet
+128 - Right Accessory
+256 - Top Head
+512 - Mid Head
+
+Example:
+@refine 34 10 - Refines a 2 handed weapon to +10
+@refine 16 4 - Refines the body/armor to +4
+
+@produce <equip name or equip ID> <element> <# of very's>
+Element: 0=None 1=Ice 2=Earth 3=Fire 4=Wind
+# of very's: 0=None 1=Very Strong 2=Very Very Strong 3=Very Very Very Strong
+
+Example: @produce 1163 3 3 - Produces a Very Very Very Strong (Your Nick)'s Fire Claymore
+
+<Q-PET/cutePET COMMANDS>
+@hatch - Create a pet from your inventory eggs list.
+@makeegg <ID> - Gives pet egg for monster ID in pet DB
+@petfriendly <#> - Set pet friendly amount (0-1000) 0 = Min, 1000 = Max
+@pethungry <#> - Set pet hungry amount (0-100) 0 = Min, 100 = Max
+@petrename - Re-enable pet rename
+
+<REMOTE CHAR COMMANDS>
+@charwarp <map name> <x> <y> <char name>
+Warps character to location of choice
+Example:
+@charwarp morocc 150 160 TestChar -> Warps TestChar to Morroc (X:150, Y:160)
+
+@charstats <char name>
+Displays the character's stats.
+
+@charignorelist <char name>
+Displays ignore list of the player
+
+@inall <char name>
+Allows all wispers for the player
+
+@exall <char name>
+Blocks all wispers for the player
+
+@charoption <param1> <param2> <param3> <char name>
+Does the same as the @option command only to target character.
+
+@charmountpeco <charname>
+Give/remove to a player a peco (Class is required, but not skill).
+
+@charpetrename <charname>
+Re-enable pet rename to a player.
+
+@charsave <map> <x> <y> <char name>
+Changes the target player's respawn point.
+
+@charbaselvl <#> <char name>
+Change a character's base level.
+
+@charjlvl <#> <char name>
+Change a character's job level.
+
+@charjob/@charjobchange <job ID> <char name>
+Changes target character's job.
+
+@charzeny <amount> <char name>
+Give/take a player's Zeny
+
+@charstpoint <amount> <char name>
+Give/take a player's stat points
+
+@charskpoint <amount> <char name>
+give/take a player's skill points
+
+@charquestskill <#> <charname>
+Gives to a player the specified quest skill.
+
+@charlostskill <#> <charname>
+Takes away the specified quest skill from the player.
+
+@chardelitem <item_name_or_ID> <quantity> <player>
+Remove items from a character
+
+@charmodel <hair type> <hair color> <clothes color> <char name>
+Changes a player's model
+
+@chardisguise <monster_name_or_monster_ID> <char name>
+Changes disguise of a player
+
+@charundisguise <char name>
+Cancels disguise of a player
+
+@charchangesex <name>
+Changes sex of a player (all characters of the account)
+
+@charblock/@block <name>
+Blocks definitively a account
+
+@charunblock/@unblock <name>
+Unblocks a account
+
+@charban/@ban/@banish/@charbanish <time> <name>
+Ban temporarily a account
+ time usage: adjustement (+/- value) and element (y/a, m, d/j, h, mn, s)
+ Example: @ban +1m-2mn1s-6y testplayer
+
+@charunban/@unban/@unbanish/@uncharbanish <name>
+Unban a account
+
+@jail <char_name>
+Sends specified character in jails
+
+@unjail/@discharge <char_name>
+Discharges specified character/prisoner
+
+<MASS CONTROL COMMANDS>
+@night
+All characters are in darkness
+
+@day
+
+@option 00 00 00 are used on all characters
+
+@doom
+Kills all NON GM chars on the server.
+
+@doommap
+Kills all non GM characters on the map.
+
+@raise
+Resurrects all characters on the server.
+
+@raisemap
+Resurrects all characters on the map.
+
+@kick <charname>
+Kicks specified character off the server
+
+@kickall
+Kick all characters off the server
+
+<OTHER COMMANDS>
+
+@gat ---- ƒfƒoƒbƒO—p(Žü•Ógat‚𒲂ׂé)
+@packet ---- ƒfƒoƒbƒO—p(ƒpƒPƒbƒgFX)
+
+@mapexit
+Kick all players and shut down map-server.
+
+@reloaditemdb
+Reload item database (admin command)
+
+@reloadmobdb
+Reload monster database (admin command)
+
+@reloadskilldb
+Reload skills definition database (admin command)
+
+@reloadscript
+Reload all scripts (admin command)
+
+@reloadgmdb
+Reload GM levels (admin command)
+
+@enablenpc <NPC_name>
+Enable a NPC (admin command)
+
+@disablenpc <NPC_name>
+Disable a NPC (admin command)
+
+@email <actual@email> <new@email>
to change your e-mail (characters protection) \ No newline at end of file
diff --git a/doc/inter_server_packet.txt b/doc/inter_server_packet.txt
index a88694aa8..253280326 100644
--- a/doc/inter_server_packet.txt
+++ b/doc/inter_server_packet.txt
@@ -1,204 +1,204 @@
-S mapŽI=>interŽI
-R interŽI=>mapŽI
-
-ƒpƒPƒbƒg’·ƒŠƒXƒg
-R 3800-388f
- -1,-1,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 35,-1,11,15, 34,29, 7,-1, 0, 0, 0, 0, 0, 0, 0, 0,
- 10,-1,15, 0, 79,17, 7,-1, 0,-1,-1,-1, 14,67,186,-1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 11,-1, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-S 3000-308f
- -1,-1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72, 6,52,14, 10,29, 6,-1, 34, 0, 0, 0, 0, 0, 0, 0,
- -1, 6,-1, 0, 55,17, 6,-1, 14,-1,-1,-1, 14,19,186,-1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 48,14,-1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-
-
-
-S 3000 <len>.w <message>.?B
- GMƒƒbƒZ[ƒW‘—M—v‹
-R 3800 <len>.w <message>.?B
- GMƒƒbƒZ[ƒW
-S 3001 <len>.w <src-nick>.24B <dst-nick>.24B <message>.?B
- Wis‘—M—v‹
-R 3801 <len>.w <wis-id>.l <src-nick>.24B <dst-nick>.24B <message>.?B
- Wisƒf[ƒ^ŽóM
- wis-id=interŽI“à•”‚ÌWis-idFmapŽI‚Å‚Í3002‚Å‘—M‚·‚邽‚ß‚¾‚¯‚ÉŽg‚¤
-S 3002 <wis-id>.l <flag>.B
- ‚±‚ÌmapŽI‚Å‚ÌWis‚Ì‘—MŒ‹‰Ê
- flag=0 ‘—MŠ®—¹(‚±‚ÌmapŽI‚É‚¢‚½‚Ì‚ÅA‘—M‚µ‚½)
- flag=1 ‘—MŽ¸”s(‚±‚ÌmapŽI‚É‚Í‚»‚ñ‚Èl‚¢‚Ü‚¹‚ñ)
- flag=2 ‘—MI—¹(‚±‚ÌmapŽI‚É‚¢‚邪Aignore‚³‚ê‚Ä‚¢‚é)
-R 3802 <src-nick>.24B <flag>.B
- ‘SmapŽI‚Å‚ÌWis‘—MŒ‹‰Ê
- flag=0 ‘—MŠ®—¹
- flag=1 ‘—MŽ¸”s(‚Ç‚ÌmapŽI‚É‚à‚»‚ñ‚Èl‚¢‚Ü‚¹‚ñ)
- flag=2 ‘—MŽ¸”s(ignore‚³‚ꂽ)
-S 3010 <account_id>.l
- ‘qŒÉƒf[ƒ^—v‹
-R 3810 <len>.w <account_id>.l <storage>.?B
- ‘qŒÉƒf[ƒ^ŽóM
-S 3011 <len>.w <account_id>.l <storage>.?B
- ‘qŒÉƒf[ƒ^‘—M••Û‘¶—v‹
-R 3811 <account_id>.l <flag>.b
- ‘qŒÉƒf[ƒ^•Û‘¶I—¹
- flag=0 ¬Œ÷iŒ»Ý‚ÌŽd—l‚Å‚Í•K‚¸0‚È‚Ì‚ÅA•ÔM‚ð‘Ò‚½‚È‚­‚Ä‚à‚¢‚¢j
-
-S 3020 <account_id>.l <party_name>.24B <nick_name>.24B <map_name>.16B <level>.w
- ƒp[ƒeƒB쬗v‹
-R 3820 <account_id>.l <fail>.B <party_id>.l <party_name>.24B
- ƒp[ƒeƒB¬Œ÷‰Â”ÛiŽ©•ª‚̃}ƒbƒvŽI‚Ì‚Ýj
- fail=00 ƒp[ƒeƒB쬬Œ÷
- fail=01 Ž¸”siparty_id,pary_name‚̓Sƒ~j
-S 3021 <party_id>.l
- ƒp[ƒeƒBî•ñ—v‹
-R 3821 <len>.w <struct party>.?B
- (struct party‚Ìʼn‚SƒoƒCƒg‚Íparty_id)
- len=8 ƒp[ƒeƒB‚Í‘¶Ý‚µ‚È‚¢iŽóM‚µ‚½‚çŠY“–ƒLƒƒƒ‰‚𖢊‘®‚É•ÏX‚·‚éj
- len>8 ƒp[ƒeƒBî•ñiŽóM‚µ‚½‚çƒNƒ‰ƒCƒAƒ“ƒg‚É‘—‚邱‚Æj
- i—v‹‚µ‚Ä‚«‚½ƒ}ƒbƒvŽI‚Öj
-S 3022 <party_id>.l <account_id>.l <nick>.24B <map_name>.16B <level>.w
- ƒp[ƒeƒB’ljÁ—v‹
-R 3822 <party_id>.l <account_id>.l <fail>.B
- ƒp[ƒeƒB’ljÁ’Ê’mi—v‹‚µ‚Ä‚«‚½ƒ}ƒbƒvŽI‚Öj
- fail=00‚ŬŒ÷Afail=01‚ÅŽ¸”s
- i¬Œ÷Žž‚Í‚±‚Ì’¼Œã‚É‘SŽI‚Ƀp[ƒeƒBî•ñ‚ª‘—‚ç‚ê‚éj
-S 3023 <party_id>.l <account_id>.l <exp>.w <item>.w
- ƒp[ƒeƒBÝ’è•ÏX—v‹
-R 3823 <party_id>.l <account_id>.l <exp>.w <item>.w <fail>.B
- ƒp[ƒeƒBÝ’è•ÏX’Ê’mi¬Œ÷‚ÌꇑSƒ}ƒbƒvŽI‚Ö’Ê’mj
- fail=0x00 ƒp[ƒeƒBÝ’è•ÏXŠ®—¹
- fail=0x01 exp‚Ì•ÏXŽ¸”s
- fail=0x10 item‚Ì•ÏXŽ¸”s
-S 3024 <party_id>.l <account_id>.l
- ƒp[ƒeƒB’E‘Þ—v‹
-R 3824 <party_id>.l <account_id>.l <nick>.24B
- ƒp[ƒeƒB’E‘Þ’Ê’mi‘Sƒ}ƒbƒvŽI‚Öj
-S 3025 <party_id>.l <account_id>.l <map_name>.16B <online>.B <level>.w
- ƒp[ƒeƒBƒ}ƒbƒvXV/ƒIƒ“ƒ‰ƒCƒ“—v‹
-R 3825 <party_id>.l <account_id>.l <map_name>.16B <online>.B <level>.w
- ƒp[ƒeƒBƒ}ƒbƒvXV’Ê’mi‘Sƒ}ƒbƒvŽI‚Öj
-S 3026 <party_id>.l
- ƒp[ƒeƒB‰ðŽU—v‹i‘—‚ç‚ê‚邱‚Æ‚Í‚È‚¢‚ÆŽv‚í‚ê‚éj
-R 3026 <party_id>.l <fail>.B
- ƒp[ƒeƒB‰ðŽU
- fail=00 ƒp[ƒeƒB‚͉ðŽU‚³‚ꂽi¡‚Ì‚Æ‚±‚ë•K‚¸00j
- imapŽI“à‚Ì•s—vƒf[ƒ^휂̂½‚ß‚¾‚¯‚ÉŽg‚í‚ê‚éj
-S 3027 <len>.w <party_id>.l <account_id>.l <message>.?B
- ƒp[ƒeƒB“à”­Œ¾—v‹
-R 3827 <len>.w <party_id>.l <account_id>.l <message>.?B
- ƒp[ƒeƒB“à”­Œ¾’Ê’mi‘Sƒ}ƒbƒvŽI‚Öj
-S 3028 <party_id>.l <account_id>.l <nick>.24B
- •Êƒp[ƒeƒB‚ÉŠ‘®‚µ‚Ä‚¢‚È‚¢‚©ƒ`ƒFƒbƒN<party_id>‚Í–{—ˆ‚ÌŠ‘®
-
-
-S 3030 <len>.w <account_id>.l <guild_name>.24B <struct guild_member>.?B
- ƒMƒ‹ƒh쬗v‹
-R 3830 <account_id>.l <guild_id>.l
- ƒMƒ‹ƒh쬉”Û(guild_id=0‚ÅŽ¸”s)
-S 3031 <guild_id>.l
- ƒMƒ‹ƒhî•ñ—v‹
-R 3831 <len>.w <struct guild>.?B
- ƒMƒ‹ƒhî•ñ
- len=8 ƒMƒ‹ƒh‚Í‘¶Ý‚µ‚È‚¢
- len>8 ƒMƒ‹ƒhî•ñ
-S 3032 <len>.w <guild_id>.l <struct guild_member>.?B
- ƒMƒ‹ƒhƒƒ“ƒo’ljÁ—v‹
-R 3832 <guild_id>.l <account_id>.l <charactor_id>.l <fail>.B
- ƒMƒ‹ƒh’ljÁƒƒ“ƒo’Ê’m
- fail=0‚ŬŒ÷,1‚ÅŽ¸”s
-S 3034 <guild_id>.l <account_id>.l <charactor_id>.l <flag>.B <mes>.40B
- ƒMƒ‹ƒh’E‘Þ/’Ç•ú—v‹
- flag=0 ’E‘Þ / 1 ’Ç•ú
-R 3834 <guild_id>.l <account_id>.l <charactor_id>.l <flag>.B <mes>.40B <nick>.24B
- ƒMƒ‹ƒh’E‘Þ/’Ç•ú’Ê’m
-S 3035 <guild_id>.l <account_id>.l <charactor_id>.l <online>.B <lv>.w <class>.w
- ƒMƒ‹ƒhƒƒ“ƒoî•ñXV—v‹
-R 3835 <guild_id>.l <account_id>.l <charactor_id>.l <online>.B <lv>.w <class>.w
- ƒMƒ‹ƒhƒƒ“ƒoî•ñXV’Ê’m
-S 3036 <guild_id>.l
- ƒMƒ‹ƒh‰ðŽU—v‹
-R 3836 <guild_id>.l <fail>.B
- ƒMƒ‹ƒh‰ðŽU’Ê’m
- flag=00 ‰ðŽU¬Œ÷ / 01 Ž¸”s
-S 3037 <len>.w <guild_id>.l <account_id>.l <message>.?B
- ƒMƒ‹ƒh”­Œ¾—v‹
-R 3837 <len>.w <guild_id>.l <account_id>.l <message>.?B
- ƒMƒ‹ƒh”­Œ¾’Ê’m
-S 3038 <guild_id>.l <account_id>.l <charactor_id>.l
- •ÊƒMƒ‹ƒh‚ÉŠ‘®‚µ‚Ä‚¢‚È‚¢‚©ƒ`ƒFƒbƒN
-S 3039 <len>.w <guild_id>.l <type>.w <data>.?B
- ŠeŽíŠî–{î•ñXV—v‹
-R 3839 <len>.w <guild_id>.l <type>.w <data>.?B
- ŠeŽíŠî–{î•ñXV’Ê’m
-S 303A <len>.w <guild_id>.l <account_id>.l <char_id>.l <type>.w <data>.?B
- ŠeŽíƒMƒ‹ƒhƒƒ“ƒoî•ñXV—v‹
-R 383A <len>.w <guild_id>.l <account_id>.l <char_id>.l <type>.w <data>.?B
- ŠeŽíƒMƒ‹ƒhƒƒ“ƒoî•ñXV’Ê’m
-S 303B <len>.w <guild_id>.l <position>.l <struct guild_position>.?B
- ƒMƒ‹ƒh–ðE•ÏX—v‹
-R 383B <len>.w <guild_id>.l <position>.l <struct guild_position>.?B
- ƒMƒ‹ƒh–ðE•ÏX’Ê’m
-S 303C <guild_id>.l <skill_num>.l <account_id>.l
- ƒMƒ‹ƒhƒXƒLƒ‹Š„‚èU‚è
-R 383C <guild_id>.l <skill_num>.l <account_id>.l
- ƒMƒ‹ƒhƒXƒLƒ‹Š„‚èU‚è(skill_num==0‚ÅŽ¸”s)
-S 303D <guild_id1>.l <guild_id2>.l <account_id1>.l <account_id2>.l <flag>.B
- ƒMƒ‹ƒh“¯–¿/“G‘Ηv‹
- flag=0 “¯–¿ / 1 “G‘Î / 8 “¯–¿‰ðœ / 9 “G‘Ήðœ
-R 383D <guild_id1>.l <guild_id2>.l <account_id1>.l <account_id2>.l <flag>.B <name1>.24B <name2>.24B
- ƒMƒ‹ƒh“¯–¿/“G‘Î’Ê’m
- flag=0 “¯–¿ / 1 “G‘Î
- flag=0x10 “¯–¿Ž¸”s / 0x11 “G‘ÎŽ¸”s
-S 303E <guild_id>.l <message1>.60B <message2>.120B
- ƒMƒ‹ƒh’mÝ’è—v‹
-R 383E <guild_id>.l <message1>.60B <message2>.120B
- ƒMƒ‹ƒh’mÝ’è’Ê’m
-S 303F <len>.w <guild_id>.l <dummy>.l <emblem_data>.?B
- ƒMƒ‹ƒhƒGƒ“ƒuƒŒƒ€•ÏX—v‹ dummy‚Í0ŒÅ’è
-R 383F <len>.w <guild_id>.l <dummy>.l <emblem_data>.?B
- ƒMƒ‹ƒhƒGƒ“ƒuƒŒƒ€•ÏX’Ê’m
-iˆÈ‰ºAƒMƒ‹ƒhŒn’ljÁ—\’èj
-
-S 3080 <account_id>.l <char_id>.I <pet_type>.w <pet_lv>.w <pet_egg_id>.w
- <pet_equip>.w <pet_intimate>.w <pet_hungry>.w <rename_flag>.B <incuvate>.B
- <pet_name>.24B
- ƒyƒbƒg¶¬—v‹
-R 3880 <account_id>.l <fail>.B <pet_id>.l
- ƒyƒbƒg¶¬¬Œ÷‰Â”Û
- fail=00 ƒyƒbƒg¶¬¬Œ÷
- fail=01 Ž¸”sipet_id‚̓Sƒ~j
-S 3081 <account_id>.l <char_id>.I <pet_id>.l
- ƒyƒbƒgƒf[ƒ^—v‹
-R 3881 <len>.w <account_id>.l <fail>.B <struct s_pet>.?B
- ƒyƒbƒgƒf[ƒ^ŽóM
- fail=00 ƒyƒbƒgƒf[ƒ^“]‘—
- fail=01 ƒyƒbƒg‚̃f[ƒ^‚ª‚È‚¢‚©‚à‚µ‚­‚Íaccount_id‚©char_id‚ª‡‚í‚È‚¢‚Ì‚Å
- Ž¸”sis_pet‚̓Sƒ~j
-S 3082 <len>.w <account_id>.l <struct s_pet>.?B
- ƒyƒbƒgƒf[ƒ^‘—M••Û‘¶—v‹
-R 3882 <account_id>.l <flag>.b
- ƒyƒbƒgƒf[ƒ^•Û‘¶I—¹
- flag=0 ¬Œ÷iŒ»Ý‚ÌŽd—l‚ł̓ƒ‚ƒŠ•s‘«ˆÈŠO‚É‚Í•K‚¸0‚È‚Ì‚ÅA•ÔM‚ð
- ‘Ò‚½‚È‚­‚Ä‚à‚¢‚¢j
- flag=1 Ž¸”s
-S 3083 <pet_id>.l
- ƒyƒbƒgƒf[ƒ^휗v‹
-R 3883 <flag>.b
- ƒyƒbƒgƒf[ƒ^íœI—¹
- flag=0 ¬Œ÷iŒ»Ý‚ÌŽd—l‚Å‚ÍŠù‚Ƀf[ƒ^‚ª‚¢‚È‚¢ê‡ˆÈŠO‚Í•K‚¸0‚È‚Ì‚ÅA
- •ÔM‚ð‘Ò‚½‚È‚­‚Ä‚à‚¢‚¢j
- flag=1 Ž¸”sipet_id‚É“–‚½‚éƒf[ƒ^‚ª‚È‚¢ê‡‚Ì•¨‚Å‚·‚ªŠù‚Ƀf[ƒ^‚ª
- ‚¢‚È‚¢‚ÆŒ¾‚¤‚±‚Æ‚Í휂·‚é•K—v‚ª‚È‚¢‚±‚Æ‚É‚à‚È‚è‚Ü‚·‚Ì‚Å
- ˆÓ–¡‚Í‚ ‚è‚Ü‚¹‚ñj
-
+S mapŽI=>interŽI
+R interŽI=>mapŽI
+
+ƒpƒPƒbƒg’·ƒŠƒXƒg
+R 3800-388f
+ -1,-1,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 35,-1,11,15, 34,29, 7,-1, 0, 0, 0, 0, 0, 0, 0, 0,
+ 10,-1,15, 0, 79,17, 7,-1, 0,-1,-1,-1, 14,67,186,-1,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 11,-1, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+S 3000-308f
+ -1,-1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 6,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 72, 6,52,14, 10,29, 6,-1, 34, 0, 0, 0, 0, 0, 0, 0,
+ -1, 6,-1, 0, 55,17, 6,-1, 14,-1,-1,-1, 14,19,186,-1,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48,14,-1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+
+
+S 3000 <len>.w <message>.?B
+ GMƒƒbƒZ[ƒW‘—M—v‹
+R 3800 <len>.w <message>.?B
+ GMƒƒbƒZ[ƒW
+S 3001 <len>.w <src-nick>.24B <dst-nick>.24B <message>.?B
+ Wis‘—M—v‹
+R 3801 <len>.w <wis-id>.l <src-nick>.24B <dst-nick>.24B <message>.?B
+ Wisƒf[ƒ^ŽóM
+ wis-id=interŽI“à•”‚ÌWis-idFmapŽI‚Å‚Í3002‚Å‘—M‚·‚邽‚ß‚¾‚¯‚ÉŽg‚¤
+S 3002 <wis-id>.l <flag>.B
+ ‚±‚ÌmapŽI‚Å‚ÌWis‚Ì‘—MŒ‹‰Ê
+ flag=0 ‘—MŠ®—¹(‚±‚ÌmapŽI‚É‚¢‚½‚Ì‚ÅA‘—M‚µ‚½)
+ flag=1 ‘—MŽ¸”s(‚±‚ÌmapŽI‚É‚Í‚»‚ñ‚Èl‚¢‚Ü‚¹‚ñ)
+ flag=2 ‘—MI—¹(‚±‚ÌmapŽI‚É‚¢‚邪Aignore‚³‚ê‚Ä‚¢‚é)
+R 3802 <src-nick>.24B <flag>.B
+ ‘SmapŽI‚Å‚ÌWis‘—MŒ‹‰Ê
+ flag=0 ‘—MŠ®—¹
+ flag=1 ‘—MŽ¸”s(‚Ç‚ÌmapŽI‚É‚à‚»‚ñ‚Èl‚¢‚Ü‚¹‚ñ)
+ flag=2 ‘—MŽ¸”s(ignore‚³‚ꂽ)
+S 3010 <account_id>.l
+ ‘qŒÉƒf[ƒ^—v‹
+R 3810 <len>.w <account_id>.l <storage>.?B
+ ‘qŒÉƒf[ƒ^ŽóM
+S 3011 <len>.w <account_id>.l <storage>.?B
+ ‘qŒÉƒf[ƒ^‘—M••Û‘¶—v‹
+R 3811 <account_id>.l <flag>.b
+ ‘qŒÉƒf[ƒ^•Û‘¶I—¹
+ flag=0 ¬Œ÷iŒ»Ý‚ÌŽd—l‚Å‚Í•K‚¸0‚È‚Ì‚ÅA•ÔM‚ð‘Ò‚½‚È‚­‚Ä‚à‚¢‚¢j
+
+S 3020 <account_id>.l <party_name>.24B <nick_name>.24B <map_name>.16B <level>.w
+ ƒp[ƒeƒB쬗v‹
+R 3820 <account_id>.l <fail>.B <party_id>.l <party_name>.24B
+ ƒp[ƒeƒB¬Œ÷‰Â”ÛiŽ©•ª‚̃}ƒbƒvŽI‚Ì‚Ýj
+ fail=00 ƒp[ƒeƒB쬬Œ÷
+ fail=01 Ž¸”siparty_id,pary_name‚̓Sƒ~j
+S 3021 <party_id>.l
+ ƒp[ƒeƒBî•ñ—v‹
+R 3821 <len>.w <struct party>.?B
+ (struct party‚Ìʼn‚SƒoƒCƒg‚Íparty_id)
+ len=8 ƒp[ƒeƒB‚Í‘¶Ý‚µ‚È‚¢iŽóM‚µ‚½‚çŠY“–ƒLƒƒƒ‰‚𖢊‘®‚É•ÏX‚·‚éj
+ len>8 ƒp[ƒeƒBî•ñiŽóM‚µ‚½‚çƒNƒ‰ƒCƒAƒ“ƒg‚É‘—‚邱‚Æj
+ i—v‹‚µ‚Ä‚«‚½ƒ}ƒbƒvŽI‚Öj
+S 3022 <party_id>.l <account_id>.l <nick>.24B <map_name>.16B <level>.w
+ ƒp[ƒeƒB’ljÁ—v‹
+R 3822 <party_id>.l <account_id>.l <fail>.B
+ ƒp[ƒeƒB’ljÁ’Ê’mi—v‹‚µ‚Ä‚«‚½ƒ}ƒbƒvŽI‚Öj
+ fail=00‚ŬŒ÷Afail=01‚ÅŽ¸”s
+ i¬Œ÷Žž‚Í‚±‚Ì’¼Œã‚É‘SŽI‚Ƀp[ƒeƒBî•ñ‚ª‘—‚ç‚ê‚éj
+S 3023 <party_id>.l <account_id>.l <exp>.w <item>.w
+ ƒp[ƒeƒBÝ’è•ÏX—v‹
+R 3823 <party_id>.l <account_id>.l <exp>.w <item>.w <fail>.B
+ ƒp[ƒeƒBÝ’è•ÏX’Ê’mi¬Œ÷‚ÌꇑSƒ}ƒbƒvŽI‚Ö’Ê’mj
+ fail=0x00 ƒp[ƒeƒBÝ’è•ÏXŠ®—¹
+ fail=0x01 exp‚Ì•ÏXŽ¸”s
+ fail=0x10 item‚Ì•ÏXŽ¸”s
+S 3024 <party_id>.l <account_id>.l
+ ƒp[ƒeƒB’E‘Þ—v‹
+R 3824 <party_id>.l <account_id>.l <nick>.24B
+ ƒp[ƒeƒB’E‘Þ’Ê’mi‘Sƒ}ƒbƒvŽI‚Öj
+S 3025 <party_id>.l <account_id>.l <map_name>.16B <online>.B <level>.w
+ ƒp[ƒeƒBƒ}ƒbƒvXV/ƒIƒ“ƒ‰ƒCƒ“—v‹
+R 3825 <party_id>.l <account_id>.l <map_name>.16B <online>.B <level>.w
+ ƒp[ƒeƒBƒ}ƒbƒvXV’Ê’mi‘Sƒ}ƒbƒvŽI‚Öj
+S 3026 <party_id>.l
+ ƒp[ƒeƒB‰ðŽU—v‹i‘—‚ç‚ê‚邱‚Æ‚Í‚È‚¢‚ÆŽv‚í‚ê‚éj
+R 3026 <party_id>.l <fail>.B
+ ƒp[ƒeƒB‰ðŽU
+ fail=00 ƒp[ƒeƒB‚͉ðŽU‚³‚ꂽi¡‚Ì‚Æ‚±‚ë•K‚¸00j
+ imapŽI“à‚Ì•s—vƒf[ƒ^휂̂½‚ß‚¾‚¯‚ÉŽg‚í‚ê‚éj
+S 3027 <len>.w <party_id>.l <account_id>.l <message>.?B
+ ƒp[ƒeƒB“à”­Œ¾—v‹
+R 3827 <len>.w <party_id>.l <account_id>.l <message>.?B
+ ƒp[ƒeƒB“à”­Œ¾’Ê’mi‘Sƒ}ƒbƒvŽI‚Öj
+S 3028 <party_id>.l <account_id>.l <nick>.24B
+ •Êƒp[ƒeƒB‚ÉŠ‘®‚µ‚Ä‚¢‚È‚¢‚©ƒ`ƒFƒbƒN<party_id>‚Í–{—ˆ‚ÌŠ‘®
+
+
+S 3030 <len>.w <account_id>.l <guild_name>.24B <struct guild_member>.?B
+ ƒMƒ‹ƒh쬗v‹
+R 3830 <account_id>.l <guild_id>.l
+ ƒMƒ‹ƒh쬉”Û(guild_id=0‚ÅŽ¸”s)
+S 3031 <guild_id>.l
+ ƒMƒ‹ƒhî•ñ—v‹
+R 3831 <len>.w <struct guild>.?B
+ ƒMƒ‹ƒhî•ñ
+ len=8 ƒMƒ‹ƒh‚Í‘¶Ý‚µ‚È‚¢
+ len>8 ƒMƒ‹ƒhî•ñ
+S 3032 <len>.w <guild_id>.l <struct guild_member>.?B
+ ƒMƒ‹ƒhƒƒ“ƒo’ljÁ—v‹
+R 3832 <guild_id>.l <account_id>.l <charactor_id>.l <fail>.B
+ ƒMƒ‹ƒh’ljÁƒƒ“ƒo’Ê’m
+ fail=0‚ŬŒ÷,1‚ÅŽ¸”s
+S 3034 <guild_id>.l <account_id>.l <charactor_id>.l <flag>.B <mes>.40B
+ ƒMƒ‹ƒh’E‘Þ/’Ç•ú—v‹
+ flag=0 ’E‘Þ / 1 ’Ç•ú
+R 3834 <guild_id>.l <account_id>.l <charactor_id>.l <flag>.B <mes>.40B <nick>.24B
+ ƒMƒ‹ƒh’E‘Þ/’Ç•ú’Ê’m
+S 3035 <guild_id>.l <account_id>.l <charactor_id>.l <online>.B <lv>.w <class>.w
+ ƒMƒ‹ƒhƒƒ“ƒoî•ñXV—v‹
+R 3835 <guild_id>.l <account_id>.l <charactor_id>.l <online>.B <lv>.w <class>.w
+ ƒMƒ‹ƒhƒƒ“ƒoî•ñXV’Ê’m
+S 3036 <guild_id>.l
+ ƒMƒ‹ƒh‰ðŽU—v‹
+R 3836 <guild_id>.l <fail>.B
+ ƒMƒ‹ƒh‰ðŽU’Ê’m
+ flag=00 ‰ðŽU¬Œ÷ / 01 Ž¸”s
+S 3037 <len>.w <guild_id>.l <account_id>.l <message>.?B
+ ƒMƒ‹ƒh”­Œ¾—v‹
+R 3837 <len>.w <guild_id>.l <account_id>.l <message>.?B
+ ƒMƒ‹ƒh”­Œ¾’Ê’m
+S 3038 <guild_id>.l <account_id>.l <charactor_id>.l
+ •ÊƒMƒ‹ƒh‚ÉŠ‘®‚µ‚Ä‚¢‚È‚¢‚©ƒ`ƒFƒbƒN
+S 3039 <len>.w <guild_id>.l <type>.w <data>.?B
+ ŠeŽíŠî–{î•ñXV—v‹
+R 3839 <len>.w <guild_id>.l <type>.w <data>.?B
+ ŠeŽíŠî–{î•ñXV’Ê’m
+S 303A <len>.w <guild_id>.l <account_id>.l <char_id>.l <type>.w <data>.?B
+ ŠeŽíƒMƒ‹ƒhƒƒ“ƒoî•ñXV—v‹
+R 383A <len>.w <guild_id>.l <account_id>.l <char_id>.l <type>.w <data>.?B
+ ŠeŽíƒMƒ‹ƒhƒƒ“ƒoî•ñXV’Ê’m
+S 303B <len>.w <guild_id>.l <position>.l <struct guild_position>.?B
+ ƒMƒ‹ƒh–ðE•ÏX—v‹
+R 383B <len>.w <guild_id>.l <position>.l <struct guild_position>.?B
+ ƒMƒ‹ƒh–ðE•ÏX’Ê’m
+S 303C <guild_id>.l <skill_num>.l <account_id>.l
+ ƒMƒ‹ƒhƒXƒLƒ‹Š„‚èU‚è
+R 383C <guild_id>.l <skill_num>.l <account_id>.l
+ ƒMƒ‹ƒhƒXƒLƒ‹Š„‚èU‚è(skill_num==0‚ÅŽ¸”s)
+S 303D <guild_id1>.l <guild_id2>.l <account_id1>.l <account_id2>.l <flag>.B
+ ƒMƒ‹ƒh“¯–¿/“G‘Ηv‹
+ flag=0 “¯–¿ / 1 “G‘Î / 8 “¯–¿‰ðœ / 9 “G‘Ήðœ
+R 383D <guild_id1>.l <guild_id2>.l <account_id1>.l <account_id2>.l <flag>.B <name1>.24B <name2>.24B
+ ƒMƒ‹ƒh“¯–¿/“G‘Î’Ê’m
+ flag=0 “¯–¿ / 1 “G‘Î
+ flag=0x10 “¯–¿Ž¸”s / 0x11 “G‘ÎŽ¸”s
+S 303E <guild_id>.l <message1>.60B <message2>.120B
+ ƒMƒ‹ƒh’mÝ’è—v‹
+R 383E <guild_id>.l <message1>.60B <message2>.120B
+ ƒMƒ‹ƒh’mÝ’è’Ê’m
+S 303F <len>.w <guild_id>.l <dummy>.l <emblem_data>.?B
+ ƒMƒ‹ƒhƒGƒ“ƒuƒŒƒ€•ÏX—v‹ dummy‚Í0ŒÅ’è
+R 383F <len>.w <guild_id>.l <dummy>.l <emblem_data>.?B
+ ƒMƒ‹ƒhƒGƒ“ƒuƒŒƒ€•ÏX’Ê’m
+iˆÈ‰ºAƒMƒ‹ƒhŒn’ljÁ—\’èj
+
+S 3080 <account_id>.l <char_id>.I <pet_type>.w <pet_lv>.w <pet_egg_id>.w
+ <pet_equip>.w <pet_intimate>.w <pet_hungry>.w <rename_flag>.B <incuvate>.B
+ <pet_name>.24B
+ ƒyƒbƒg¶¬—v‹
+R 3880 <account_id>.l <fail>.B <pet_id>.l
+ ƒyƒbƒg¶¬¬Œ÷‰Â”Û
+ fail=00 ƒyƒbƒg¶¬¬Œ÷
+ fail=01 Ž¸”sipet_id‚̓Sƒ~j
+S 3081 <account_id>.l <char_id>.I <pet_id>.l
+ ƒyƒbƒgƒf[ƒ^—v‹
+R 3881 <len>.w <account_id>.l <fail>.B <struct s_pet>.?B
+ ƒyƒbƒgƒf[ƒ^ŽóM
+ fail=00 ƒyƒbƒgƒf[ƒ^“]‘—
+ fail=01 ƒyƒbƒg‚̃f[ƒ^‚ª‚È‚¢‚©‚à‚µ‚­‚Íaccount_id‚©char_id‚ª‡‚í‚È‚¢‚Ì‚Å
+ Ž¸”sis_pet‚̓Sƒ~j
+S 3082 <len>.w <account_id>.l <struct s_pet>.?B
+ ƒyƒbƒgƒf[ƒ^‘—M••Û‘¶—v‹
+R 3882 <account_id>.l <flag>.b
+ ƒyƒbƒgƒf[ƒ^•Û‘¶I—¹
+ flag=0 ¬Œ÷iŒ»Ý‚ÌŽd—l‚ł̓ƒ‚ƒŠ•s‘«ˆÈŠO‚É‚Í•K‚¸0‚È‚Ì‚ÅA•ÔM‚ð
+ ‘Ò‚½‚È‚­‚Ä‚à‚¢‚¢j
+ flag=1 Ž¸”s
+S 3083 <pet_id>.l
+ ƒyƒbƒgƒf[ƒ^휗v‹
+R 3883 <flag>.b
+ ƒyƒbƒgƒf[ƒ^íœI—¹
+ flag=0 ¬Œ÷iŒ»Ý‚ÌŽd—l‚Å‚ÍŠù‚Ƀf[ƒ^‚ª‚¢‚È‚¢ê‡ˆÈŠO‚Í•K‚¸0‚È‚Ì‚ÅA
+ •ÔM‚ð‘Ò‚½‚È‚­‚Ä‚à‚¢‚¢j
+ flag=1 Ž¸”sipet_id‚É“–‚½‚éƒf[ƒ^‚ª‚È‚¢ê‡‚Ì•¨‚Å‚·‚ªŠù‚Ƀf[ƒ^‚ª
+ ‚¢‚È‚¢‚ÆŒ¾‚¤‚±‚Æ‚Í휂·‚é•K—v‚ª‚È‚¢‚±‚Æ‚É‚à‚È‚è‚Ü‚·‚Ì‚Å
+ ˆÓ–¡‚Í‚ ‚è‚Ü‚¹‚ñj
+
diff --git a/doc/item_bonus.txt b/doc/item_bonus.txt
index db2843933..87af2f39c 100644
--- a/doc/item_bonus.txt
+++ b/doc/item_bonus.txt
@@ -1,212 +1,212 @@
-//eAthena Items Scripting Manual
-
-skill i,n; Gives skill #i at level n
-
-bonus bStr,n; STR + n
-bonus bAgi,n; AGI + n
-bonus bVit,n; VIT + n
-bonus bInt,n; INT + n
-bonus bDex,n; DEX + n
-bonus bLuk,n; LUK + n
-bonus bAllStats,n; STR + n, AGI + n, VIT + n, INT + n, DEX + n, LUK + n
-bonus bMaxHP,n; MaxHP + n
-bonus bMaxSP,n; MaxSP + n
-bonus bMaxHPrate,n; MaxHP + n%
-bonus bMaxSPrate,n; MaxSP + n%
-bonus bAtk,n; ATK + n
-bonus bAtk2,n; ATK2 + n
-bonus bAtkRate Attack power + n%
-bonus bBaseAtk,n; Basic attack power + n
-bonus bMatk,n; Magical attack power 1 + n and magical attack power 2 + n
-bonus bMatk1,n; Magical attack power 1 + n
-bonus bMatk2,n; Magical attack power 2 + n
-bonus bMatkRate,n; Magical attack power + n%
-bonus bDef,n; Equipment DEF + n
-bonus bDef2,n; VIT DEF + n
-bonus bDefRate,n; Equipment DEF + n%
-bonus bDef2Rate,n; VIT DEF + n%
-bonus bMdef,n; Equipment MDEF + n
-bonus bMdefRate,n; Equipment MDEF + n%
-bonus bMdef2Rate,n; INT MDEF + n%
-bonus bHit,n; Hit + n
-bonus bHitRate,n; Hit + n%
-bonus bCritical,n; Critical + n
-bonus bCriticalRate,n; Critical + n%
-bonus bFlee,n; Flee + n
-bonus bFleeRate,n; Flee +n%
-bonus bFlee2,n; Lucky Flee + n
-bonus bFlee2Rate,n; Lucky Flee + n%
-bonus bSpeed,n; Moving speed + n
-bonus bAspd,n; Attack speed + n
-bonus bSpeedRate,n; Moving speed + n% (only the highest among all is applied)
-bonus bAspdRate,n; Attack speed + n% (only the highest among all is applied)
-bonus bSpeedAddRate Moving speed + n%
-bonus bAspdAddRate Attack speed + n%
-bonus bAtkRange,n; Attack range + n
-bonus bCastrate,n; Skill casting time rate + n%
-bonus bUseSPrate,n; SP consumption + n%
-bonus bHPrecovRate,n; Natural HP recovery ratio + n%
-bonus bSPrecovRate,n; Natural SP recovery ratio + n%
-bonus bDoubleRate,n; Double Attack probability n% (works with all weapons | only the highest among all is applied)
-bonus bDoubleAddRate,n; Double Attack probability + n% (works with all weapons)
-bonus bPerfectHitRate,n; On-target impact attack probability n% (only the highest among all is applied)
-bonus bPerfectHitAddRate,n; On-target impact attack probability + n%
-bonus bGetZenyNum,n; When killing the monster with physical attack, rand () ?? of %n+1 is obtained, (only the highest among all is applied)
-bonus bAddGetZenyNum,n; When killing the monster with physical attack, rand () ?? of %n+1 is obtained, (n is done +)
-bonus bCriticalDef,n; Critical ? and others the trap it is, probability + n%
-bonus bNearAtkDef,n; Adds n% damage reduction against melee physical attacks
-bonus bLongAtkDef,n; Adds n% damage reduction against ranged physical attacks
-bonus bMagicAtkDef,n; Adds n% damage reduction against magical attacks
-bonus bMiscAtkDef,n; Adds n% damage reduction against MISC attacks (traps, falcon, ...)
-bonus bIgnoreDefRace,n Disregard DEF against enemies of race n
- n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster
-bonus bIgnoreDefEle,n; Disregard DEF against enemies of element n
- n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead
-bonus bIgnoreMDefRace Disregard MDEF against enemies of race n
- n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster
-bonus bIgnoreMDefEle Disregard MDEF against enemies of element n
- n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead
-bonus bDefRatioAtkRace,n; n race if defensive power is high the high extent big damage is given, (defense disregard) :
- n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster
-bonus bDefRatioAtkEle,n; n attribute if defensive power is high the high extent big damage is given, (defense disregard) :
- n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead
-bonus bAtkEle,n; Gives the player's attacks element n
- n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead
-bonus bDefEle,n; Gives the player's defense element n
- n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead
-bonus bSplashRange n; Splash attack radius + n (e.g. n=1 makes a 3*3 cells area, n=2 a 5*5 area, etc | only the highest among all is applied)
-bonus bSplashAddRange n; Splash attack radius + n (e.g. n=1 makes a 3*3 cells area, n=2 a 5*5 area, etc)
-
-bonus bInfiniteEndure,n; Unlimited Endure effect, n is meaningless
-bonus bRestartFullRecover,n; When reviving, HP and SP are fully filled (n is meaningless)
-bonus bNoCastCancel,n; Prevents casting from being interrupted when hit (does not work in GvG | n is meaningless)
-bonus bNoCastCancel2,n; Prevents casting from being interrupted when hit (works even in GvG | n is meaningless)
-bonus bNoSizeFix,n; The attack revision with the size of the monster is not received (n is meaningless)
-bonus bNoWeaponDamage,n; Prevents from receiving any physical damage (n is meaningless)
-bonus bNoMagicDamage,n; Prevents from receiving any magical effect (Attack, Healing, Support spells are all blocked | n is meaningless)
-bonus bNoGemStone,n; Skills requiring Gemstones do no more require them (Hocus Pocus will still require 1 Yellow Gemstone | n is meaningless)
-bonus bIntravision,n; Always see Hiding and Cloaking players/mobs (n is meaningless)
-
-bonus2 bAddEff,e,x; Adds a x/10000 chance to cause effect e to the target when attacking (e.g. x=100 makes 1% chance, x=10000 makes 100% chance, etc)
- e: Eff_Blind, Eff_Sleep, Eff_Poison, Eff_Freeze, Eff_Silence, Eff_Stan, Eff_Curse, Eff_Confusion, Eff_Stone, Eff_Bleeding
-bonus2 bResEff,e,x; Adds a x/10000 tolerance to effect e (e.g. x=100 makes 1% tolerance, x=10000 makes 100% tolerance, etc)
- e: Eff_Blind, Eff_Sleep, Eff_Poison, Eff_Freeze, Eff_Silence, Eff_Stan, Eff_Curse, Eff_Confusion, Eff_Stone, Eff_Bleeding
-bonus2 bAddSize,n,x; In n size the damage addition of x%
- n: 0=Small 1=Medium 2=Large
-bonus2 bMagicAddSize,n,x; In n size the magic damage addition of x%
- n: 0=Small 1=Medium 2=Large
-bonus2 bSubSize,n,x; Damage x% reduction from n size
- n: 0=Small 1=Medium 2=Large
-bonus2 bAddRace,n,x; In n race the damage addition of x%
- n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster
-bonus2 bMagicAddRace,n,x; In n race the damage addition of x% (only magical attack)
- n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster
-bonus2 bSubRace,n,x; Damage x% reduction from n race
- n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster
-bonus2 bAddEle,n,x; In n attribute the damage addition of x%
- n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead
-bonus2 bMagicAddEle,n,x In n attribute the damage addition of x% (only magical attack)
- n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead
-bonus2 bSubEle,n,x; Damage x% reduction from n attribute
- n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead
-bonus2 bAddDamageClass,n,x; In monster of class n the damage addition of x% (only physical attack), in case of prayer in n occupation the damage addition of x%
-bonus2 bAddMagicDamageClass,n,x; In monster of class n in case of the magical damage addition and prayer of x% in n occupation the magical damage addition of x%
-bonus2 bAddDefClass,n,x; In monster of class n the damage reduction of x% (only physical attack), in case of prayer in n occupation the damage reduction of x%
-bonus2 bAddMDefClass,n,x; In monster of class n in case of the magical damage reduction and prayer of x% in n occupation the magical damage reduction of x%
-bonus2 bHPDrainRate,n,x; it obtained to the enemy -- ? ME ? JI -- n/10 % probability -- x % -- HP -- absorption (+ n and x are carried out)
-bonus2 bSPDrainRate,n,x; it obtained to the enemy -- ? ME ? JI -- n/10 % probability -- x % -- SP -- absorption (+ n and x are carried out)
-bonus2 bSPVanishRate,n,x; Add the (n/10)% chance of decreasing enemy's SP (player) amount by x% when attacking
-bonus2 bAddMonsterDropItem,n,x; When killing any monsters with physical attack, the probability which drops item n +x% (the item which the monster drops unrelated ones)
- if 'x' is negative value, then it's a part of formula
- chance = -x*(killed_mob_level/10)+1
-bonus3 bAddMonsterDropItem,n,x,y; When killing monsters from race x with physical attack, the probability which drops item n +y% (the item which the monster drops unrelated ones)
- 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster
- if 'x' is negative value, then it's a part of formula
- chance = -x*(killed_mob_level/10)+1
-bonus3 bAutoSpell,n,x,y; Auto Spell casting of spell n at level x with y/10% chance
-
-// bAddDamageClass, bAddMagicDamageClass and bAddMonsterDropItem it is setting possible up to 10. Those which exceed 10 are ignored.
-// those which can be used with the arrow are only bCritical, bAtkEle, bHit, bAddEle, bAddRace, bAddSize and bAddEff. The other things are ignored.
-
-
-
-//---- 2/15 new card effects ----
-
-bonus bCritAtkRate,n; Increase critical damage by +n%
-bonus bNoRegen,n; Stops regeneration for n
- n: 1=HP, 2=SP
-bonus bUnstripableWeapon,n; Weapon cannot be taken off via Strip skills
-bonus bUnstripableArmor,n; Armor cannot be taken off via Strip skills
-bonus bUnstripableHelm,n; Helm cannot be taken off via Strip skills
-bonus bUnstripableShield,n; Shield cannot be taken off via Strip skills
-bonus bSPGainValue,n; When killing a monster by physical attack, you gain n SP
-bonus bHPGainValue,n; When killing a monster by physical attack, you gain n HP
-bonus bIgnoreDefMob,n; Ignore monster's DEF when attacking.
- n: 0=All normal monster except Bosses, 1=All monsters
-bonus bDamageWhenUnequip,n; You lose n HP when the item is unequipped
-bonus2 bCriticalAddRace,n,r; Critical + n vs. enemies of race r
- r: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster
-bonus2 bHPLossRate,n,x; Lose n HP every x milliseconds
-bonus2 bAddEffWhenHit,n,x; n% chance to cause x state to the enemy when
- being hit by physical damage
-bonus2 bAddEffWhenHitShort,n,x; n% chance to cause x state to the enemy when
- being hit by physical close range damage
-bonus2 bSkillAtk,n,x; Increase damage of skill n by x%
-bonus2 bAddDamageByClass,n,x; When being hit by monster of class n increase
- damage taken by x%
-bonus2 bAddRace2,n,x; Increase damage by x% vs. enemies of race n
- (Check db/mob_race2_db.txt)
-
-bonus3 bHPLossRate,n,x,y; Lose n amount of hp every x amount of time
- y: 0=Don't show damage 1=Show damage
-bonus3 bAutoSpellWhenHit,x,y,n; n/10% chance to cast skill x of level y on
- attacker when being hit by a direct
- attack. Target must be within spell's
- range to go off.
-bonus3 bSPDrainRate,n,x,y; When attacking there is a n% chance to either
- gain SP equivalent to x% of damage dealt, OR
- drain the amount of sp from the enemy.
- y: 0=gain sp 1:drain enemy sp
-bonus3 bSPDrainValue,n,x,y; When attacking there is a n% chance to either
- gain x SP, OR drain the amount of sp from the
- enemy. y:0=gain sp 1:drain enemy sp
- (Note: setting x to -1 or below will reduce
- YOUR sp)
-
-bonus4 bAutoSpell,x,y,n,i; n/10% chance to cast skill x of level y when
- being attacking
- i:0=cast on self 1=cast on enemy
-bonus4 bAutoSpellWhenHit,x,y,n,i; n/10% chance to cast skill x of level y when
- being hit by a direct attack. Target
- must be within spell's range to go
- off. i:0=cast on self 1=cast on enemy
-
-//---- 2/22 new card effects ----
-
-bonus2 bAddItemHealRate,n,x; Increases HP recovered by n type items by x%,
- you can also use direct item IDs instead
- of group values.
- (Check db/item_group_db.txt)
-
-//---- 3/15 new card effects ----
-
-bonus bLoseSPWhenUnequip,n; Lose n SP when the item is unequipped
-
-bonus2 bSPLossRate,n,x; Lose n SP every x milliseconds
-bonus2 bExpAddRace,n,x; Increase exp gained by x% vs. enemies of race n
-bonus2 bSPGainRace,n,x; When killing a monster of race n by physical
- attack gain x amount of sp
-bonus2 bSPSubRace2,n,x; Damage x% reduction from enemies of race n
- (Check db/mob_race2_db.txt)
-
-bonus2 bAddMonsterDropItemGroup,n,x; x% chance to get an item of group type n when you kill a
- monster (Check db/item_group_db.txt)
- if 'x' is negative value, then it's a part of formula
- chance = -x*(killed_mob_level/10)+1
-
-
-bonus3 bAddMonsterDropItemGroup,n,x,y; y% chance to get an item of group type n when you kill a
- monster of race x (Check db/item_group_db.txt)
- 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster
- if 'y' is negative value, then it's a part of formula
- chance = -y*(killed_mob_level/10)+1
+//eAthena Items Scripting Manual
+
+skill i,n; Gives skill #i at level n
+
+bonus bStr,n; STR + n
+bonus bAgi,n; AGI + n
+bonus bVit,n; VIT + n
+bonus bInt,n; INT + n
+bonus bDex,n; DEX + n
+bonus bLuk,n; LUK + n
+bonus bAllStats,n; STR + n, AGI + n, VIT + n, INT + n, DEX + n, LUK + n
+bonus bMaxHP,n; MaxHP + n
+bonus bMaxSP,n; MaxSP + n
+bonus bMaxHPrate,n; MaxHP + n%
+bonus bMaxSPrate,n; MaxSP + n%
+bonus bAtk,n; ATK + n
+bonus bAtk2,n; ATK2 + n
+bonus bAtkRate Attack power + n%
+bonus bBaseAtk,n; Basic attack power + n
+bonus bMatk,n; Magical attack power 1 + n and magical attack power 2 + n
+bonus bMatk1,n; Magical attack power 1 + n
+bonus bMatk2,n; Magical attack power 2 + n
+bonus bMatkRate,n; Magical attack power + n%
+bonus bDef,n; Equipment DEF + n
+bonus bDef2,n; VIT DEF + n
+bonus bDefRate,n; Equipment DEF + n%
+bonus bDef2Rate,n; VIT DEF + n%
+bonus bMdef,n; Equipment MDEF + n
+bonus bMdefRate,n; Equipment MDEF + n%
+bonus bMdef2Rate,n; INT MDEF + n%
+bonus bHit,n; Hit + n
+bonus bHitRate,n; Hit + n%
+bonus bCritical,n; Critical + n
+bonus bCriticalRate,n; Critical + n%
+bonus bFlee,n; Flee + n
+bonus bFleeRate,n; Flee +n%
+bonus bFlee2,n; Lucky Flee + n
+bonus bFlee2Rate,n; Lucky Flee + n%
+bonus bSpeed,n; Moving speed + n
+bonus bAspd,n; Attack speed + n
+bonus bSpeedRate,n; Moving speed + n% (only the highest among all is applied)
+bonus bAspdRate,n; Attack speed + n% (only the highest among all is applied)
+bonus bSpeedAddRate Moving speed + n%
+bonus bAspdAddRate Attack speed + n%
+bonus bAtkRange,n; Attack range + n
+bonus bCastrate,n; Skill casting time rate + n%
+bonus bUseSPrate,n; SP consumption + n%
+bonus bHPrecovRate,n; Natural HP recovery ratio + n%
+bonus bSPrecovRate,n; Natural SP recovery ratio + n%
+bonus bDoubleRate,n; Double Attack probability n% (works with all weapons | only the highest among all is applied)
+bonus bDoubleAddRate,n; Double Attack probability + n% (works with all weapons)
+bonus bPerfectHitRate,n; On-target impact attack probability n% (only the highest among all is applied)
+bonus bPerfectHitAddRate,n; On-target impact attack probability + n%
+bonus bGetZenyNum,n; When killing the monster with physical attack, rand () ?? of %n+1 is obtained, (only the highest among all is applied)
+bonus bAddGetZenyNum,n; When killing the monster with physical attack, rand () ?? of %n+1 is obtained, (n is done +)
+bonus bCriticalDef,n; Critical ? and others the trap it is, probability + n%
+bonus bNearAtkDef,n; Adds n% damage reduction against melee physical attacks
+bonus bLongAtkDef,n; Adds n% damage reduction against ranged physical attacks
+bonus bMagicAtkDef,n; Adds n% damage reduction against magical attacks
+bonus bMiscAtkDef,n; Adds n% damage reduction against MISC attacks (traps, falcon, ...)
+bonus bIgnoreDefRace,n Disregard DEF against enemies of race n
+ n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster
+bonus bIgnoreDefEle,n; Disregard DEF against enemies of element n
+ n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead
+bonus bIgnoreMDefRace Disregard MDEF against enemies of race n
+ n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster
+bonus bIgnoreMDefEle Disregard MDEF against enemies of element n
+ n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead
+bonus bDefRatioAtkRace,n; n race if defensive power is high the high extent big damage is given, (defense disregard) :
+ n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster
+bonus bDefRatioAtkEle,n; n attribute if defensive power is high the high extent big damage is given, (defense disregard) :
+ n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead
+bonus bAtkEle,n; Gives the player's attacks element n
+ n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead
+bonus bDefEle,n; Gives the player's defense element n
+ n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead
+bonus bSplashRange n; Splash attack radius + n (e.g. n=1 makes a 3*3 cells area, n=2 a 5*5 area, etc | only the highest among all is applied)
+bonus bSplashAddRange n; Splash attack radius + n (e.g. n=1 makes a 3*3 cells area, n=2 a 5*5 area, etc)
+
+bonus bInfiniteEndure,n; Unlimited Endure effect, n is meaningless
+bonus bRestartFullRecover,n; When reviving, HP and SP are fully filled (n is meaningless)
+bonus bNoCastCancel,n; Prevents casting from being interrupted when hit (does not work in GvG | n is meaningless)
+bonus bNoCastCancel2,n; Prevents casting from being interrupted when hit (works even in GvG | n is meaningless)
+bonus bNoSizeFix,n; The attack revision with the size of the monster is not received (n is meaningless)
+bonus bNoWeaponDamage,n; Prevents from receiving any physical damage (n is meaningless)
+bonus bNoMagicDamage,n; Prevents from receiving any magical effect (Attack, Healing, Support spells are all blocked | n is meaningless)
+bonus bNoGemStone,n; Skills requiring Gemstones do no more require them (Hocus Pocus will still require 1 Yellow Gemstone | n is meaningless)
+bonus bIntravision,n; Always see Hiding and Cloaking players/mobs (n is meaningless)
+
+bonus2 bAddEff,e,x; Adds a x/10000 chance to cause effect e to the target when attacking (e.g. x=100 makes 1% chance, x=10000 makes 100% chance, etc)
+ e: Eff_Blind, Eff_Sleep, Eff_Poison, Eff_Freeze, Eff_Silence, Eff_Stan, Eff_Curse, Eff_Confusion, Eff_Stone, Eff_Bleeding
+bonus2 bResEff,e,x; Adds a x/10000 tolerance to effect e (e.g. x=100 makes 1% tolerance, x=10000 makes 100% tolerance, etc)
+ e: Eff_Blind, Eff_Sleep, Eff_Poison, Eff_Freeze, Eff_Silence, Eff_Stan, Eff_Curse, Eff_Confusion, Eff_Stone, Eff_Bleeding
+bonus2 bAddSize,n,x; In n size the damage addition of x%
+ n: 0=Small 1=Medium 2=Large
+bonus2 bMagicAddSize,n,x; In n size the magic damage addition of x%
+ n: 0=Small 1=Medium 2=Large
+bonus2 bSubSize,n,x; Damage x% reduction from n size
+ n: 0=Small 1=Medium 2=Large
+bonus2 bAddRace,n,x; In n race the damage addition of x%
+ n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster
+bonus2 bMagicAddRace,n,x; In n race the damage addition of x% (only magical attack)
+ n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster
+bonus2 bSubRace,n,x; Damage x% reduction from n race
+ n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster
+bonus2 bAddEle,n,x; In n attribute the damage addition of x%
+ n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead
+bonus2 bMagicAddEle,n,x In n attribute the damage addition of x% (only magical attack)
+ n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead
+bonus2 bSubEle,n,x; Damage x% reduction from n attribute
+ n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead
+bonus2 bAddDamageClass,n,x; In monster of class n the damage addition of x% (only physical attack), in case of prayer in n occupation the damage addition of x%
+bonus2 bAddMagicDamageClass,n,x; In monster of class n in case of the magical damage addition and prayer of x% in n occupation the magical damage addition of x%
+bonus2 bAddDefClass,n,x; In monster of class n the damage reduction of x% (only physical attack), in case of prayer in n occupation the damage reduction of x%
+bonus2 bAddMDefClass,n,x; In monster of class n in case of the magical damage reduction and prayer of x% in n occupation the magical damage reduction of x%
+bonus2 bHPDrainRate,n,x; it obtained to the enemy -- ? ME ? JI -- n/10 % probability -- x % -- HP -- absorption (+ n and x are carried out)
+bonus2 bSPDrainRate,n,x; it obtained to the enemy -- ? ME ? JI -- n/10 % probability -- x % -- SP -- absorption (+ n and x are carried out)
+bonus2 bSPVanishRate,n,x; Add the (n/10)% chance of decreasing enemy's SP (player) amount by x% when attacking
+bonus2 bAddMonsterDropItem,n,x; When killing any monsters with physical attack, the probability which drops item n +x% (the item which the monster drops unrelated ones)
+ if 'x' is negative value, then it's a part of formula
+ chance = -x*(killed_mob_level/10)+1
+bonus3 bAddMonsterDropItem,n,x,y; When killing monsters from race x with physical attack, the probability which drops item n +y% (the item which the monster drops unrelated ones)
+ 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster
+ if 'x' is negative value, then it's a part of formula
+ chance = -x*(killed_mob_level/10)+1
+bonus3 bAutoSpell,n,x,y; Auto Spell casting of spell n at level x with y/10% chance
+
+// bAddDamageClass, bAddMagicDamageClass and bAddMonsterDropItem it is setting possible up to 10. Those which exceed 10 are ignored.
+// those which can be used with the arrow are only bCritical, bAtkEle, bHit, bAddEle, bAddRace, bAddSize and bAddEff. The other things are ignored.
+
+
+
+//---- 2/15 new card effects ----
+
+bonus bCritAtkRate,n; Increase critical damage by +n%
+bonus bNoRegen,n; Stops regeneration for n
+ n: 1=HP, 2=SP
+bonus bUnstripableWeapon,n; Weapon cannot be taken off via Strip skills
+bonus bUnstripableArmor,n; Armor cannot be taken off via Strip skills
+bonus bUnstripableHelm,n; Helm cannot be taken off via Strip skills
+bonus bUnstripableShield,n; Shield cannot be taken off via Strip skills
+bonus bSPGainValue,n; When killing a monster by physical attack, you gain n SP
+bonus bHPGainValue,n; When killing a monster by physical attack, you gain n HP
+bonus bIgnoreDefMob,n; Ignore monster's DEF when attacking.
+ n: 0=All normal monster except Bosses, 1=All monsters
+bonus bDamageWhenUnequip,n; You lose n HP when the item is unequipped
+bonus2 bCriticalAddRace,n,r; Critical + n vs. enemies of race r
+ r: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster
+bonus2 bHPLossRate,n,x; Lose n HP every x milliseconds
+bonus2 bAddEffWhenHit,n,x; n% chance to cause x state to the enemy when
+ being hit by physical damage
+bonus2 bAddEffWhenHitShort,n,x; n% chance to cause x state to the enemy when
+ being hit by physical close range damage
+bonus2 bSkillAtk,n,x; Increase damage of skill n by x%
+bonus2 bAddDamageByClass,n,x; When being hit by monster of class n increase
+ damage taken by x%
+bonus2 bAddRace2,n,x; Increase damage by x% vs. enemies of race n
+ (Check db/mob_race2_db.txt)
+
+bonus3 bHPLossRate,n,x,y; Lose n amount of hp every x amount of time
+ y: 0=Don't show damage 1=Show damage
+bonus3 bAutoSpellWhenHit,x,y,n; n/10% chance to cast skill x of level y on
+ attacker when being hit by a direct
+ attack. Target must be within spell's
+ range to go off.
+bonus3 bSPDrainRate,n,x,y; When attacking there is a n% chance to either
+ gain SP equivalent to x% of damage dealt, OR
+ drain the amount of sp from the enemy.
+ y: 0=gain sp 1:drain enemy sp
+bonus3 bSPDrainValue,n,x,y; When attacking there is a n% chance to either
+ gain x SP, OR drain the amount of sp from the
+ enemy. y:0=gain sp 1:drain enemy sp
+ (Note: setting x to -1 or below will reduce
+ YOUR sp)
+
+bonus4 bAutoSpell,x,y,n,i; n/10% chance to cast skill x of level y when
+ being attacking
+ i:0=cast on self 1=cast on enemy
+bonus4 bAutoSpellWhenHit,x,y,n,i; n/10% chance to cast skill x of level y when
+ being hit by a direct attack. Target
+ must be within spell's range to go
+ off. i:0=cast on self 1=cast on enemy
+
+//---- 2/22 new card effects ----
+
+bonus2 bAddItemHealRate,n,x; Increases HP recovered by n type items by x%,
+ you can also use direct item IDs instead
+ of group values.
+ (Check db/item_group_db.txt)
+
+//---- 3/15 new card effects ----
+
+bonus bLoseSPWhenUnequip,n; Lose n SP when the item is unequipped
+
+bonus2 bSPLossRate,n,x; Lose n SP every x milliseconds
+bonus2 bExpAddRace,n,x; Increase exp gained by x% vs. enemies of race n
+bonus2 bSPGainRace,n,x; When killing a monster of race n by physical
+ attack gain x amount of sp
+bonus2 bSPSubRace2,n,x; Damage x% reduction from enemies of race n
+ (Check db/mob_race2_db.txt)
+
+bonus2 bAddMonsterDropItemGroup,n,x; x% chance to get an item of group type n when you kill a
+ monster (Check db/item_group_db.txt)
+ if 'x' is negative value, then it's a part of formula
+ chance = -x*(killed_mob_level/10)+1
+
+
+bonus3 bAddMonsterDropItemGroup,n,x,y; y% chance to get an item of group type n when you kill a
+ monster of race x (Check db/item_group_db.txt)
+ 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster
+ if 'y' is negative value, then it's a part of formula
+ chance = -y*(killed_mob_level/10)+1
diff --git a/doc/item_db.txt b/doc/item_db.txt
index 4dcbe491c..dec53ffa9 100644
--- a/doc/item_db.txt
+++ b/doc/item_db.txt
@@ -1,125 +1,125 @@
-(FIXME: Someone give this file better formatting)
-
-- Explanation of the item_db.txt file and structure.
-
-ID: Item id
-JName: Server name to reference the item in scripts and lookups, should use no
-spaces.
-
-Name: Name in english for displaying as output for @ and script commands.
-
-Type:
- 0 Healing item.
- 2 Usable item.
- 3 Etc item
- 4 Weapon
- 5 Armor/Garment/Boots/Headgear
- 6 Card
- 7 Pet egg
- 8 Pet equipment
- 10 Ammo (Arrows/Bullets/etc)
- 11 Usable with delayed consumption (item is lost from inventory after
- selecting a target, for use with skills and pet lures)
-
-Price: Default buying price. When not specified, becomes double the sell price.
-Sell: Default buying price. When not specified, becomes half the buy price.
-
-Weight: Item's weight. Each 10 is 1 weight.
-
-ATK: Weapon's attack
-DEF: Armor's defense
-Range: Weapon's attack range
-Slot: Amount of slots item possesses.
-
-Job: Equippable jobs. Uses the following bitmask table:
-
- (S.) Novice (2^00): 0x00000001
- Swordman (2^01): 0x00000002
- Mage (2^02): 0x00000004
- Archer (2^03): 0x00000008
- Acolyte (2^04): 0x00000010
- Merchant (2^05): 0x00000020
- Thief (2^06): 0x00000040
- Knight (2^07): 0x00000080
- Priest (2^08): 0x00000100
- Wizard (2^09): 0x00000200
- Blacksmith (2^10): 0x00000400
- Hunter (2^11): 0x00000800
- Assassin (2^12): 0x00001000
- Unused (2^13): 0x00002000
- Crusader (2^14): 0x00004000
- Monk (2^15): 0x00008000
- Sage (2^16): 0x00010000
- Rogue (2^17): 0x00020000
- Alchemist (2^18): 0x00040000
- Bard/Dancer (2^19): 0x00080000
- Unused (2^20): 0x00100000
- Taekwon (2^21): 0x00200000
- StarGladi (2^22): 0x00400000
- Soul Linker (2^23): 0x00800000
- Gunslinger (2^24): 0x01000000
- Ninja (2^25): 0x02000000
-
-Upper: Equippable upper-types. Uses the following bitmasks:
- 1: Normal jobs
- 2: Upper jobs
- 4: Baby jobs
-
-Gender: Gender restriction. 0 is female, 1 is male, 2 for both.
-
-Loc: Equipment's placement. Values are:
-
- 2^8 256 = Upper Headgear
- 2^9 512 = Middle Headgear
- 2^0 001 = Lower Headgear
- 2^4 016 = Armor
- 2^1 002 = Weapon
- 2^5 032 = Shield
- 2^2 004 = Garment
- 2^6 064 = Footgear
- 2^3 008 = Accessory 1
- 2^7 128 = Accessory 2
-
-wLV: Weapon level.
-eLV: Base level required to be able to equip.
-Refineable: 1 if the item can be refined, 0 otherwise.
-
-View: For normal items, defines a replacement view-sprite for the item (eg:
- Making apples look like apple juice). The special case are weapons and ammo
- where this value indicates the weapon-class of the item.
-
- For weapons, the types are:
- 0: bare fist
- 1: Daggers
- 2: One-handed swords
- 3: Two-handed swords
- 4: One-handed spears
- 5: Two-handed spears
- 6: One-handed axes
- 7: Two-handed axes
- 8: Maces
- 9: Unused
- 10: Staves
- 11: Bows
- 12: Knuckles
- 13: Musical Instruments
- 14: Whips
- 15: Books
- 16: Katars
- 17: Revolvers
- 18: Rifles
- 19: Shotguns
- 20: Gatling guns
- 21: Grenade launchers
- 22: Fuuma Shurikens
-
- For ammo, the types are:
- 1: Arrows
- 2: Throwable daggers
- 3: Bullets
- 4: Shells
- 5: Grenades
- 6: Shurikens
- 7: Kunais
-
-Script: Script to execute when the item is used/equipped.
+(FIXME: Someone give this file better formatting)
+
+- Explanation of the item_db.txt file and structure.
+
+ID: Item id
+JName: Server name to reference the item in scripts and lookups, should use no
+spaces.
+
+Name: Name in english for displaying as output for @ and script commands.
+
+Type:
+ 0 Healing item.
+ 2 Usable item.
+ 3 Etc item
+ 4 Weapon
+ 5 Armor/Garment/Boots/Headgear
+ 6 Card
+ 7 Pet egg
+ 8 Pet equipment
+ 10 Ammo (Arrows/Bullets/etc)
+ 11 Usable with delayed consumption (item is lost from inventory after
+ selecting a target, for use with skills and pet lures)
+
+Price: Default buying price. When not specified, becomes double the sell price.
+Sell: Default buying price. When not specified, becomes half the buy price.
+
+Weight: Item's weight. Each 10 is 1 weight.
+
+ATK: Weapon's attack
+DEF: Armor's defense
+Range: Weapon's attack range
+Slot: Amount of slots item possesses.
+
+Job: Equippable jobs. Uses the following bitmask table:
+
+ (S.) Novice (2^00): 0x00000001
+ Swordman (2^01): 0x00000002
+ Mage (2^02): 0x00000004
+ Archer (2^03): 0x00000008
+ Acolyte (2^04): 0x00000010
+ Merchant (2^05): 0x00000020
+ Thief (2^06): 0x00000040
+ Knight (2^07): 0x00000080
+ Priest (2^08): 0x00000100
+ Wizard (2^09): 0x00000200
+ Blacksmith (2^10): 0x00000400
+ Hunter (2^11): 0x00000800
+ Assassin (2^12): 0x00001000
+ Unused (2^13): 0x00002000
+ Crusader (2^14): 0x00004000
+ Monk (2^15): 0x00008000
+ Sage (2^16): 0x00010000
+ Rogue (2^17): 0x00020000
+ Alchemist (2^18): 0x00040000
+ Bard/Dancer (2^19): 0x00080000
+ Unused (2^20): 0x00100000
+ Taekwon (2^21): 0x00200000
+ StarGladi (2^22): 0x00400000
+ Soul Linker (2^23): 0x00800000
+ Gunslinger (2^24): 0x01000000
+ Ninja (2^25): 0x02000000
+
+Upper: Equippable upper-types. Uses the following bitmasks:
+ 1: Normal jobs
+ 2: Upper jobs
+ 4: Baby jobs
+
+Gender: Gender restriction. 0 is female, 1 is male, 2 for both.
+
+Loc: Equipment's placement. Values are:
+
+ 2^8 256 = Upper Headgear
+ 2^9 512 = Middle Headgear
+ 2^0 001 = Lower Headgear
+ 2^4 016 = Armor
+ 2^1 002 = Weapon
+ 2^5 032 = Shield
+ 2^2 004 = Garment
+ 2^6 064 = Footgear
+ 2^3 008 = Accessory 1
+ 2^7 128 = Accessory 2
+
+wLV: Weapon level.
+eLV: Base level required to be able to equip.
+Refineable: 1 if the item can be refined, 0 otherwise.
+
+View: For normal items, defines a replacement view-sprite for the item (eg:
+ Making apples look like apple juice). The special case are weapons and ammo
+ where this value indicates the weapon-class of the item.
+
+ For weapons, the types are:
+ 0: bare fist
+ 1: Daggers
+ 2: One-handed swords
+ 3: Two-handed swords
+ 4: One-handed spears
+ 5: Two-handed spears
+ 6: One-handed axes
+ 7: Two-handed axes
+ 8: Maces
+ 9: Unused
+ 10: Staves
+ 11: Bows
+ 12: Knuckles
+ 13: Musical Instruments
+ 14: Whips
+ 15: Books
+ 16: Katars
+ 17: Revolvers
+ 18: Rifles
+ 19: Shotguns
+ 20: Gatling guns
+ 21: Grenade launchers
+ 22: Fuuma Shurikens
+
+ For ammo, the types are:
+ 1: Arrows
+ 2: Throwable daggers
+ 3: Bullets
+ 4: Shells
+ 5: Grenades
+ 6: Shurikens
+ 7: Kunais
+
+Script: Script to execute when the item is used/equipped.
diff --git a/doc/miscnotes.txt b/doc/miscnotes.txt
index 4850b77f3..b74a8fba6 100644
--- a/doc/miscnotes.txt
+++ b/doc/miscnotes.txt
@@ -1,552 +1,552 @@
-// ****************************************************
-// * Miscellaneous Notes (Added by MC Cameri) *
-// ****************************************************
-
-// *****************************************************************
-// * Emotions that will be shown if 'int type' is one of the case. *
-// *****************************************************************
-void clif_emotion(struct block_list *bl,int type);
-case for 'int type':
-0 = ! 10 = KO (Scissor) 20 = Hmmm 30 = Kiss 1 (R) 40 = Tsk tsk tsk (No)
-1 = ? 11 = Fist (Stone) 21 = Number 1! 31 = Kiss 2 (L) 41 = Petting
-2 = Music 12 = Hand (Paper) 22 = No (??) 32 = Smoking 42 = SP! (Timer)
-3 = Heart 1 13 = Korean Flag 23 = OMG!! 33 = Okay 43 = Obsessed 2 (Dumb face, eyes popping)
-4 = Sweat 14 = Heart 2 24 = O 34 = ... (Bugged) 44 = Come (Moving finger)
-5 = Light bulb 15 = Thanks 25 = X 35 = ??? Flag 45 = Yawn (Sleepy)
-6 = Annoyed 16 = Wah (Crying) 26 = Help! 36 = Evil 2 46 = Congratulations
-7 = Smoke cloud 17 = Sorry 27 = Go! 37 = Obsessed 1 47 = HP! (Timer)
-8 = $ 18 = Heh (Laughing) 28 = Sobbing 38 = Two Hearts
-9 = ... 19 = Sweating 29 = Evil 1 39 = Tongue
-
-// ********************************
-// * Elemental Defense Resistance *
-// ********************************
-sd->subele[0] - Neutral Property
-sd->subele[1] - Water Property
-sd->subele[2] - Earth Property
-sd->subele[3] - Fire Property
-sd->subele[4] - Wind Property
-sd->subele[5] - Poison Property
-sd->subele[6] - Holy Property
-sd->subele[7] - Shadow Property
-sd->subele[8] - Ghost Property
-sd->subele[9] - Undead Property
-
-// ***************************************
-// * Elemental Monster Attack Resistance *
-// ***************************************
-
-sd->subrace[0] - Neutral Type
-sd->subrace[1] - Undead Type
-sd->subrace[2] - Brute Type
-sd->subrace[3] - Plant Type
-sd->subrace[4] - Insect Type
-sd->subrace[5] - Fish Type
-sd->subrace[6] - Demon Type
-sd->subrace[7] - Demi-Human Type
-sd->subrace[8] - Angel Type
-sd->subrace[9] - Dragon Type
-sd->subrace[10] - Boss Type #1?
-sd->subrace[11] - Boss Type #2?
-
-// **************
-// * Misc stuff *
-// **************
-
-WFIFOL(fd,2)=1; - Sever Closed
-
-// *******************
-// * Skills List *
-// *******************
-// * ID = Skill Name *
-// *******************
-ID Skill Name
-1 = NV_BASIC
-2 = SM_SWORD
-3 = SM_TWOHAND
-4 = SM_RECOVERY
-5 = SM_BASH
-6 = SM_PROVOKE
-7 = SM_MAGNUM
-8 = SM_ENDURE
-9 = MG_SRECOVERY
-10 = MG_SIGHT
-11 = MG_NAPALMBEAT
-12 = MG_SAFETYWALL
-13 = MG_SOULSTRIKE
-14 = MG_COLDBOLT
-15 = MG_FROSTDIVER
-16 = MG_STONECURSE
-17 = MG_FIREBALL
-18 = MG_FIREWALL
-19 = MG_FIREBOLT
-20 = MG_LIGHTNINGBOLT
-21 = MG_THUNDERSTORM
-22 = AL_DP
-23 = AL_DEMONBANE
-24 = AL_RUWACH
-25 = AL_PNEUMA
-26 = AL_TELEPORT
-27 = AL_WARP
-28 = AL_HEAL
-29 = AL_INCAGI
-30 = AL_DECAGI
-31 = AL_HOLYWATER
-32 = AL_CRUCIS
-33 = AL_ANGELUS
-34 = AL_BLESSING
-35 = AL_CURE
-36 = MC_INCCARRY
-37 = MC_DISCOUNT
-38 = MC_OVERCHARGE
-39 = MC_PUSHCART
-40 = MC_IDENTIFY
-41 = MC_VENDING
-42 = MC_MAMMONITE
-43 = AC_OWL
-44 = AC_VULTURE
-45 = AC_CONCENTRATION
-46 = AC_DOUBLE
-47 = AC_SHOWER
-48 = TF_DOUBLE
-49 = TF_MISS
-50 = TF_STEAL
-51 = TF_HIDING
-52 = TF_POISON
-53 = TF_DETOXIFY
-54 = ALL_RESURRECTION
-55 = KN_SPEARMASTERY
-56 = KN_PIERCE
-57 = KN_BRANDISHSPEAR
-58 = KN_SPEARSTAB
-59 = KN_SPEARBOOMERANG
-60 = KN_TWOHANDQUICKEN
-61 = KN_AUTOCOUNTER
-62 = KN_BOWLINGBASH
-63 = KN_RIDING
-64 = KN_CAVALIERMASTERY
-65 = PR_MACEMASTERY
-66 = PR_IMPOSITIO
-67 = PR_SUFFRAGIUM
-68 = PR_ASPERSIO
-69 = PR_BENEDICTIO
-70 = PR_SANCTUARY
-71 = PR_SLOWPOISON
-72 = PR_STRECOVERY
-73 = PR_KYRIE
-74 = PR_MAGNIFICAT
-75 = PR_GLORIA
-76 = PR_LEXDIVINA
-77 = PR_TURNUNDEAD
-78 = PR_LEXAETERNA
-79 = PR_MAGNUS
-80 = WZ_FIREPILLAR
-81 = WZ_SIGHTRASHER
-83 = WZ_METEOR
-84 = WZ_JUPITEL
-85 = WZ_VERMILION
-86 = WZ_WATERBALL
-87 = WZ_ICEWALL
-88 = WZ_FROSTNOVA
-89 = WZ_STORMGUST
-90 = WZ_EARTHSPIKE
-91 = WZ_HEAVENDRIVE
-92 = WZ_QUAGMIRE
-93 = WZ_ESTIMATION
-94 = BS_IRON
-95 = BS_STEEL
-96 = BS_ENCHANTEDSTONE
-97 = BS_ORIDEOCON
-98 = BS_DAGGER
-99 = BS_SWORD
-100 = BS_TWOHANDSWORD
-101 = BS_AXE
-102 = BS_MACE
-103 = BS_KNUCKLE
-104 = BS_SPEAR
-105 = BS_HILTBINDING
-106 = BS_FINDINGORE
-107 = BS_WEAPONRESEARCH
-108 = BS_REPAIRWEAPON
-109 = BS_SKINTEMPER
-110 = BS_HAMMERFALL
-111 = BS_ADRENALINE
-112 = BS_WEAPONPERFECT
-113 = BS_OVERTHRUST
-114 = BS_MAXIMIZE
-115 = HT_SKIDTRAP
-116 = HT_LANDMINE
-117 = HT_ANKLESNARE
-118 = HT_SHOCKWAVE
-119 = HT_SANDMAN
-120 = HT_FLASHER
-121 = HT_FREEZINGTRAP
-122 = HT_BLASTMINE
-123 = HT_CLAYMORETRAP
-124 = HT_REMOVETRAP
-125 = HT_TALKIEBOX
-126 = HT_BEASTBANE
-127 = HT_FALCON
-128 = HT_STEELCROW
-129 = HT_BLITZBEAT
-130 = HT_DETECTING
-131 = HT_SPRINGTRAP
-132 = AS_RIGHT
-133 = AS_LEFT
-134 = AS_KATAR
-135 = AS_CLOAKING
-136 = AS_SONICBLOW
-137 = AS_GRIMTOOTH
-138 = AS_ENCHANTPOISON
-139 = AS_POISONREACT
-140 = AS_VENOMDUST
-141 = AS_SPLASHER
-142 = NV_FIRSTAID
-143 = NV_TRICKDEAD
-144 = SM_MOVINGRECOVERY
-145 = SM_FATALBLOW
-146 = SM_AUTOBERSERK
-147 = AC_MAKINGARROW
-148 = AC_CHARGEARROW
-149 = TF_SPRINKLESAND
-150 = TF_BACKSLIDING
-151 = TF_PICKSTONE
-152 = TF_THROWSTONE
-153 = MC_CARTREVOLUTION
-154 = MC_CHANGECART
-155 = MC_LOUD
-156 = AL_HOLYLIGHT
-157 = MG_ENERGYCOAT
-158 = NPC_PIERCINGATT
-159 = NPC_MENTALBREAKER
-160 = NPC_RANGEATTACK
-161 = NPC_ATTRICHANGE
-162 = NPC_CHANGEWATER
-163 = NPC_CHANGEGROUND
-164 = NPC_CHANGEFIRE
-165 = NPC_CHANGEWIND
-166 = NPC_CHANGEPOISON
-167 = NPC_CHANGEHOLY
-168 = NPC_CHANGEDARLNESS
-169 = NPC_CHANGETELEKINESIS
-170 = NPC_CRITICALSLASH
-171 = NPC_COMBOATTACK
-172 = NPC_GUIDEATTACK
-173 = NPC_SELFDESTRUCTION
-174 = NPC_SPLASHATTACK
-175 = NPC_SUICIDE
-176 = NPC_POISON
-177 = NPC_BLINDATTACK
-178 = NPC_SILENCEATTACK
-179 = NPC_STUNATTACK
-180 = NPC_PETRIFYATTACK
-181 = NPC_CURSEATTACK
-182 = NPC_SLEEPATTACK
-183 = NPC_RANDOMATTACK
-184 = NPC_WATERATTACK
-185 = NPC_GROUNDATTACK
-186 = NPC_FIREATTACK
-187 = NPC_WINDATTACK
-188 = NPC_POISONATTACK
-189 = NPC_HOLYATTACK
-190 = NPC_DARKNESSATTACK
-191 = NPC_TELEKINESISATTACK
-192 = NPC_MAGICALATTACK
-193 = NPC_METAMORPHOSIS
-194 = NPC_PROVOCATION
-195 = NPC_SMOKING
-196 = NPC_SUMMONSLAVE
-197 = NPC_EMOTION
-198 = NPC_TRANSFORMATION
-199 = NPC_BLOODDRAIN
-200 = NPC_ENERGYDRAIN
-201 = NPC_KEEPING
-202 = NPC_DARKBREATH
-203 = NPC_DARKBLESSING
-204 = NPC_BARRIER
-205 = NPC_DEFENDER
-206 = NPC_LICK
-207 = NPC_HALLUCINATION
-208 = NPC_REBIRTH
-209 = NPC_SUMMONMONSTER
-210 = RG_SNATCHER
-211 = RG_STEALCOIN
-212 = RG_BACKSTAP
-213 = RG_TUNNELDRIVE
-214 = RG_RAID
-215 = RG_STRIPWEAPON
-216 = RG_STRIPSHIELD
-217 = RG_STRIPARMOR
-218 = RG_STRIPHELM
-219 = RG_INTIMIDATE
-220 = RG_GRAFFITI
-221 = RG_FLAGGRAFFITI
-222 = RG_CLEANER
-223 = RG_GANGSTER
-224 = RG_COMPULSION
-225 = RG_PLAGIARISM
-226 = AM_AXEMASTERY
-227 = AM_LEARNINGPOTION
-228 = AM_PHARMACY
-229 = AM_DEMONSTRATION
-230 = AM_ACIDTERROR
-231 = AM_POTIONPITCHER
-232 = AM_CANNIBALIZE
-233 = AM_SPHEREMINE
-234 = AM_CP_WEAPON
-235 = AM_CP_SHIELD
-236 = AM_CP_ARMOR
-237 = AM_CP_HELM
-248 = CR_TRUST
-249 = CR_AUTOGUARD
-250 = CR_SHIELDCHARGE
-251 = CR_SHIELDBOOMERANG
-252 = CR_REFLECTSHIELD
-253 = CR_HOLYCROSS
-254 = CR_GRANDCROSS
-255 = CR_DEVOTION
-256 = CR_PROVIDENCE
-257 = CR_DEFENDER
-258 = CR_SPEARQUICKEN
-259 = MO_IRONHAND
-260 = MO_SPIRITSRECOVERY
-261 = MO_CALLSPIRITS
-262 = MO_ABSORBSPIRITS
-263 = MO_TRIPLEATTACK
-264 = MO_BODYRELOCATION
-265 = MO_DODGE
-266 = MO_INVESTIGATE
-267 = MO_FINGEROFFENSIVE
-268 = MO_STEELBODY
-269 = MO_BLADESTOP
-270 = MO_EXPLOSIONSPIRITS
-271 = MO_EXTREMITYFIST
-272 = MO_CHAINCOMBO
-273 = MO_COMBOFINISH
-274 = SA_ADVANCEDBOOK
-275 = SA_CASTCANCEL
-276 = SA_MAGICROD
-277 = SA_SPELLBREAKER
-278 = SA_FREECAST
-279 = SA_AUTOSPELL
-280 = SA_FLAMELAUNCHER
-281 = SA_FROSTWEAPON
-282 = SA_LIGHTNINGLOADER
-283 = SA_SEISMICWEAPON
-284 = SA_DRAGONOLOGY
-285 = SA_VOLCANO
-286 = SA_DELUGE
-287 = SA_VIOLENTGALE
-288 = SA_LANDPROTECTOR
-289 = SA_DISPELL
-290 = SA_ABRACADABRA
-291 = SA_MONOCELL
-292 = SA_CLASSCHANGE
-293 = SA_SUMMONMONSTER
-294 = SA_REVERSEORCISH
-295 = SA_DEATH
-296 = SA_FORTUNE
-297 = SA_TAMINGMONSTER
-298 = SA_QUESTION
-299 = SA_GRAVITY
-300 = SA_LEVELUP
-301 = SA_INSTANTDEATH
-302 = SA_FULLRECOVERY
-303 = SA_COMA
-304 = BD_ADAPTATION
-305 = BD_ENCORE
-306 = BD_LULLABY
-307 = BD_RICHMANKIM
-308 = BD_ETERNALCHAOS
-309 = BD_DRUMBATTLEFIELD
-310 = BD_RINGNIBELUNGEN
-311 = BD_ROKISWEIL
-312 = BD_INTOABYSS
-313 = BD_SIEGFRIED
-315 = BA_MUSICALLESSON
-316 = BA_MUSICALSTRIKE
-317 = BA_DISSONANCE
-318 = BA_FROSTJOKE
-319 = BA_WHISTLE
-320 = BA_ASSASSINCROSS
-321 = BA_POEMBRAGI
-322 = BA_APPLEIDUN
-323 = DC_DANCINGLESSON
-324 = DC_THROWARROW
-325 = DC_UGLYDANCE
-326 = DC_SCREAM
-327 = DC_HUMMING
-328 = DC_DONTFORGETME
-329 = DC_FORTUNEKISS
-330 = DC_SERVICEFORYOU
-334 = WE_MALE
-335 = WE_FEMALE
-336 = WE_CALLPARTNER
-355 = LK_AURABLADE
-356 = LK_PARRYING
-357 = LK_CONCENTRATION
-358 = LK_TENSIONRELAX
-359 = LK_BERSERK
-361 = HP_ASSUMPTIO
-362 = HP_BASILICA
-363 = HP_MEDITATIO
-364 = HW_SOULDRAIN
-365 = HW_MAGICCRASHER
-366 = HW_MAGICPOWER
-367 = PA_PRESSURE
-368 = PA_SACRIFICE
-369 = PA_GOSPEL
-370 = CH_PALMSTRIKE
-371 = CH_TIGERFIST
-372 = CH_CHAINCRUSH
-373 = PF_HPCONVERSION
-374 = PF_SOULCHANGE
-375 = PF_SOULBURN
-376 = ASC_KATAR
-377 = ASC_HALLUCINATION
-378 = ASC_EDP
-379 = ASC_BREAKER
-380 = SN_SIGHT
-381 = SN_FALCONASSAULT
-382 = SN_SHARPSHOOTING
-383 = SN_WINDWALK
-384 = WS_MELTDOWN
-385 = WS_CREATECOIN
-386 = WS_CREATENUGGET
-387 = WS_CARTBOOST
-388 = WS_SYSTEMCREATE
-389 = ST_CHASEWALK
-390 = ST_REJECTSWORD
-392 = CR_ALCHEMY
-393 = CR_SYNTHESISPOTION
-394 = CG_ARROWVULCAN
-395 = CG_MOONLIT
-396 = CG_MARIONETTE
-397 = LK_SPIRALPIERCE
-398 = LK_HEADCRUSH
-399 = LK_JOINTBEAT
-400 = HW_NAPALMVULCAN
-401 = CH_SOULCOLLECT
-402 = PF_MINDBREAKER
-403 = PF_MEMORIZE
-404 = PF_FOGWALL
-405 = PF_SPIDERWEB
-406 = ASC_METEORASSAULT
-407 = ASC_CDP
-408 = WE_BABY
-409 = WE_CALLPARENT
-410 = WE_CALLBABY
-411 = TK_RUN
-412 = TK_READYSTORM
-413 = TK_STORMKICK
-414 = TK_READYDOWN
-415 = TK_DOWNKICK
-416 = TK_READYTURN
-417 = TK_TURNKICK
-418 = TK_READYCOUNTER
-419 = TK_COUNTER
-420 = TK_DODGE
-421 = TK_JUMPKICK
-422 = TK_HPTIME
-423 = TK_SPTIME
-424 = TK_POWER
-425 = TK_SEVENWIND
-426 = TK_HIGHJUMP
-427 = SG_FEEL
-428 = SG_SUN_WARM
-429 = SG_MOON_WARM
-430 = SG_STAR_WARM
-431 = SG_SUN_COMFORT
-432 = SG_MOON_COMFORT
-433 = SG_STAR_COMFORT
-434 = SG_HATE
-435 = SG_SUN_ANGER
-436 = SG_MOON_ANGER
-437 = SG_STAR_ANGER
-438 = SG_SUN_BLESS
-439 = SG_MOON_BLESS
-440 = SG_STAR_BLESS
-441 = SG_DEVIL
-442 = SG_FRIEND
-443 = SG_KNOWLEDGE
-444 = SG_FUSION
-445 = SL_ALCHEMIST
-446 = AM_BERSERKPITCHER
-447 = SL_MONK
-448 = SL_STAR
-449 = SL_SAGE
-450 = SL_CRUSADER
-451 = SL_SUPERNOVICE
-452 = SL_KNIGHT
-453 = SL_WIZARD
-454 = SL_PRIEST
-455 = SL_BARDDANCER
-456 = SL_ROGUE
-457 = SL_ASSASIN
-458 = SL_BLACKSMITH
-459 = BS_ADRENALINE2
-460 = SL_HUNTER
-461 = SL_SOULLINKER
-462 = SL_KAIZEL
-463 = SL_KAAHI
-464 = SL_KAUPE
-465 = SL_KAITE
-466 = SL_KAINA
-467 = SL_STIN
-468 = SL_STUN
-469 = SL_SMA
-470 = SL_SWOO
-471 = SL_SKE
-472 = SL_SKA
-10000 = GD_APPROVAL
-10001 = GD_KAFRACONTRACT
-10002 = GD_GUARDRESEARCH
-10003 = GD_CHARISMA
-10004 = GD_EXTENSION
-
-// ************************
-// * Item DB - Use Script *
-// ************************
-itemskill:
- -Format: itemskill skill_id,skill_lvl,"name";
- -Example: itemskill 28,3,"Heal"; //Healing skill
-
-itemheal:
- -Format: itemheal hp,sp;
- -Example: itemheal 30,0; //+30 HP, +0 SP.
-
-sc_start:
- -Format: sc_start SC_CONSTANT,duration,value;
- -Example: sc_start SC_POISON,1800,; //Starts Poison Status for 30 seconds
-
-sc_end:
- -Format: sc_end SC_CONSTANT;
- -Example: sc_end SC_BLIND; //Ends Blind Status
-
-warp:
- -Format: warp "map",x,y;
- -Example: warp "Random",0,0; //Fly wing
- -Example: warp "SavePoint",0,0; //Butterfly wing
-
-getitem:
- -Format: getitem item_id,count;
- -Example: getitem 512,2; //Gives you two Apples
-
-produce:
- -Format: produce produce_type;
- -Example: produce 16; //Mini-furnace
-
-pet:
- -Format: pet pet_id;
- -Example: pet 1002; //Taming item for Poring
-
-monster:
- -Example: monster "this",0,0,"--ja--",-1,1,""; //Dead branch
-
-percentheal:
- -Format: percentheal percent_hp,percent_sp;
- -Example: percentheal 100,100; //Heals you 100% of both HP and SP
-
-// **************************
-// * Item DB - Equip Script *
+// ****************************************************
+// * Miscellaneous Notes (Added by MC Cameri) *
+// ****************************************************
+
+// *****************************************************************
+// * Emotions that will be shown if 'int type' is one of the case. *
+// *****************************************************************
+void clif_emotion(struct block_list *bl,int type);
+case for 'int type':
+0 = ! 10 = KO (Scissor) 20 = Hmmm 30 = Kiss 1 (R) 40 = Tsk tsk tsk (No)
+1 = ? 11 = Fist (Stone) 21 = Number 1! 31 = Kiss 2 (L) 41 = Petting
+2 = Music 12 = Hand (Paper) 22 = No (??) 32 = Smoking 42 = SP! (Timer)
+3 = Heart 1 13 = Korean Flag 23 = OMG!! 33 = Okay 43 = Obsessed 2 (Dumb face, eyes popping)
+4 = Sweat 14 = Heart 2 24 = O 34 = ... (Bugged) 44 = Come (Moving finger)
+5 = Light bulb 15 = Thanks 25 = X 35 = ??? Flag 45 = Yawn (Sleepy)
+6 = Annoyed 16 = Wah (Crying) 26 = Help! 36 = Evil 2 46 = Congratulations
+7 = Smoke cloud 17 = Sorry 27 = Go! 37 = Obsessed 1 47 = HP! (Timer)
+8 = $ 18 = Heh (Laughing) 28 = Sobbing 38 = Two Hearts
+9 = ... 19 = Sweating 29 = Evil 1 39 = Tongue
+
+// ********************************
+// * Elemental Defense Resistance *
+// ********************************
+sd->subele[0] - Neutral Property
+sd->subele[1] - Water Property
+sd->subele[2] - Earth Property
+sd->subele[3] - Fire Property
+sd->subele[4] - Wind Property
+sd->subele[5] - Poison Property
+sd->subele[6] - Holy Property
+sd->subele[7] - Shadow Property
+sd->subele[8] - Ghost Property
+sd->subele[9] - Undead Property
+
+// ***************************************
+// * Elemental Monster Attack Resistance *
+// ***************************************
+
+sd->subrace[0] - Neutral Type
+sd->subrace[1] - Undead Type
+sd->subrace[2] - Brute Type
+sd->subrace[3] - Plant Type
+sd->subrace[4] - Insect Type
+sd->subrace[5] - Fish Type
+sd->subrace[6] - Demon Type
+sd->subrace[7] - Demi-Human Type
+sd->subrace[8] - Angel Type
+sd->subrace[9] - Dragon Type
+sd->subrace[10] - Boss Type #1?
+sd->subrace[11] - Boss Type #2?
+
+// **************
+// * Misc stuff *
+// **************
+
+WFIFOL(fd,2)=1; - Sever Closed
+
+// *******************
+// * Skills List *
+// *******************
+// * ID = Skill Name *
+// *******************
+ID Skill Name
+1 = NV_BASIC
+2 = SM_SWORD
+3 = SM_TWOHAND
+4 = SM_RECOVERY
+5 = SM_BASH
+6 = SM_PROVOKE
+7 = SM_MAGNUM
+8 = SM_ENDURE
+9 = MG_SRECOVERY
+10 = MG_SIGHT
+11 = MG_NAPALMBEAT
+12 = MG_SAFETYWALL
+13 = MG_SOULSTRIKE
+14 = MG_COLDBOLT
+15 = MG_FROSTDIVER
+16 = MG_STONECURSE
+17 = MG_FIREBALL
+18 = MG_FIREWALL
+19 = MG_FIREBOLT
+20 = MG_LIGHTNINGBOLT
+21 = MG_THUNDERSTORM
+22 = AL_DP
+23 = AL_DEMONBANE
+24 = AL_RUWACH
+25 = AL_PNEUMA
+26 = AL_TELEPORT
+27 = AL_WARP
+28 = AL_HEAL
+29 = AL_INCAGI
+30 = AL_DECAGI
+31 = AL_HOLYWATER
+32 = AL_CRUCIS
+33 = AL_ANGELUS
+34 = AL_BLESSING
+35 = AL_CURE
+36 = MC_INCCARRY
+37 = MC_DISCOUNT
+38 = MC_OVERCHARGE
+39 = MC_PUSHCART
+40 = MC_IDENTIFY
+41 = MC_VENDING
+42 = MC_MAMMONITE
+43 = AC_OWL
+44 = AC_VULTURE
+45 = AC_CONCENTRATION
+46 = AC_DOUBLE
+47 = AC_SHOWER
+48 = TF_DOUBLE
+49 = TF_MISS
+50 = TF_STEAL
+51 = TF_HIDING
+52 = TF_POISON
+53 = TF_DETOXIFY
+54 = ALL_RESURRECTION
+55 = KN_SPEARMASTERY
+56 = KN_PIERCE
+57 = KN_BRANDISHSPEAR
+58 = KN_SPEARSTAB
+59 = KN_SPEARBOOMERANG
+60 = KN_TWOHANDQUICKEN
+61 = KN_AUTOCOUNTER
+62 = KN_BOWLINGBASH
+63 = KN_RIDING
+64 = KN_CAVALIERMASTERY
+65 = PR_MACEMASTERY
+66 = PR_IMPOSITIO
+67 = PR_SUFFRAGIUM
+68 = PR_ASPERSIO
+69 = PR_BENEDICTIO
+70 = PR_SANCTUARY
+71 = PR_SLOWPOISON
+72 = PR_STRECOVERY
+73 = PR_KYRIE
+74 = PR_MAGNIFICAT
+75 = PR_GLORIA
+76 = PR_LEXDIVINA
+77 = PR_TURNUNDEAD
+78 = PR_LEXAETERNA
+79 = PR_MAGNUS
+80 = WZ_FIREPILLAR
+81 = WZ_SIGHTRASHER
+83 = WZ_METEOR
+84 = WZ_JUPITEL
+85 = WZ_VERMILION
+86 = WZ_WATERBALL
+87 = WZ_ICEWALL
+88 = WZ_FROSTNOVA
+89 = WZ_STORMGUST
+90 = WZ_EARTHSPIKE
+91 = WZ_HEAVENDRIVE
+92 = WZ_QUAGMIRE
+93 = WZ_ESTIMATION
+94 = BS_IRON
+95 = BS_STEEL
+96 = BS_ENCHANTEDSTONE
+97 = BS_ORIDEOCON
+98 = BS_DAGGER
+99 = BS_SWORD
+100 = BS_TWOHANDSWORD
+101 = BS_AXE
+102 = BS_MACE
+103 = BS_KNUCKLE
+104 = BS_SPEAR
+105 = BS_HILTBINDING
+106 = BS_FINDINGORE
+107 = BS_WEAPONRESEARCH
+108 = BS_REPAIRWEAPON
+109 = BS_SKINTEMPER
+110 = BS_HAMMERFALL
+111 = BS_ADRENALINE
+112 = BS_WEAPONPERFECT
+113 = BS_OVERTHRUST
+114 = BS_MAXIMIZE
+115 = HT_SKIDTRAP
+116 = HT_LANDMINE
+117 = HT_ANKLESNARE
+118 = HT_SHOCKWAVE
+119 = HT_SANDMAN
+120 = HT_FLASHER
+121 = HT_FREEZINGTRAP
+122 = HT_BLASTMINE
+123 = HT_CLAYMORETRAP
+124 = HT_REMOVETRAP
+125 = HT_TALKIEBOX
+126 = HT_BEASTBANE
+127 = HT_FALCON
+128 = HT_STEELCROW
+129 = HT_BLITZBEAT
+130 = HT_DETECTING
+131 = HT_SPRINGTRAP
+132 = AS_RIGHT
+133 = AS_LEFT
+134 = AS_KATAR
+135 = AS_CLOAKING
+136 = AS_SONICBLOW
+137 = AS_GRIMTOOTH
+138 = AS_ENCHANTPOISON
+139 = AS_POISONREACT
+140 = AS_VENOMDUST
+141 = AS_SPLASHER
+142 = NV_FIRSTAID
+143 = NV_TRICKDEAD
+144 = SM_MOVINGRECOVERY
+145 = SM_FATALBLOW
+146 = SM_AUTOBERSERK
+147 = AC_MAKINGARROW
+148 = AC_CHARGEARROW
+149 = TF_SPRINKLESAND
+150 = TF_BACKSLIDING
+151 = TF_PICKSTONE
+152 = TF_THROWSTONE
+153 = MC_CARTREVOLUTION
+154 = MC_CHANGECART
+155 = MC_LOUD
+156 = AL_HOLYLIGHT
+157 = MG_ENERGYCOAT
+158 = NPC_PIERCINGATT
+159 = NPC_MENTALBREAKER
+160 = NPC_RANGEATTACK
+161 = NPC_ATTRICHANGE
+162 = NPC_CHANGEWATER
+163 = NPC_CHANGEGROUND
+164 = NPC_CHANGEFIRE
+165 = NPC_CHANGEWIND
+166 = NPC_CHANGEPOISON
+167 = NPC_CHANGEHOLY
+168 = NPC_CHANGEDARLNESS
+169 = NPC_CHANGETELEKINESIS
+170 = NPC_CRITICALSLASH
+171 = NPC_COMBOATTACK
+172 = NPC_GUIDEATTACK
+173 = NPC_SELFDESTRUCTION
+174 = NPC_SPLASHATTACK
+175 = NPC_SUICIDE
+176 = NPC_POISON
+177 = NPC_BLINDATTACK
+178 = NPC_SILENCEATTACK
+179 = NPC_STUNATTACK
+180 = NPC_PETRIFYATTACK
+181 = NPC_CURSEATTACK
+182 = NPC_SLEEPATTACK
+183 = NPC_RANDOMATTACK
+184 = NPC_WATERATTACK
+185 = NPC_GROUNDATTACK
+186 = NPC_FIREATTACK
+187 = NPC_WINDATTACK
+188 = NPC_POISONATTACK
+189 = NPC_HOLYATTACK
+190 = NPC_DARKNESSATTACK
+191 = NPC_TELEKINESISATTACK
+192 = NPC_MAGICALATTACK
+193 = NPC_METAMORPHOSIS
+194 = NPC_PROVOCATION
+195 = NPC_SMOKING
+196 = NPC_SUMMONSLAVE
+197 = NPC_EMOTION
+198 = NPC_TRANSFORMATION
+199 = NPC_BLOODDRAIN
+200 = NPC_ENERGYDRAIN
+201 = NPC_KEEPING
+202 = NPC_DARKBREATH
+203 = NPC_DARKBLESSING
+204 = NPC_BARRIER
+205 = NPC_DEFENDER
+206 = NPC_LICK
+207 = NPC_HALLUCINATION
+208 = NPC_REBIRTH
+209 = NPC_SUMMONMONSTER
+210 = RG_SNATCHER
+211 = RG_STEALCOIN
+212 = RG_BACKSTAP
+213 = RG_TUNNELDRIVE
+214 = RG_RAID
+215 = RG_STRIPWEAPON
+216 = RG_STRIPSHIELD
+217 = RG_STRIPARMOR
+218 = RG_STRIPHELM
+219 = RG_INTIMIDATE
+220 = RG_GRAFFITI
+221 = RG_FLAGGRAFFITI
+222 = RG_CLEANER
+223 = RG_GANGSTER
+224 = RG_COMPULSION
+225 = RG_PLAGIARISM
+226 = AM_AXEMASTERY
+227 = AM_LEARNINGPOTION
+228 = AM_PHARMACY
+229 = AM_DEMONSTRATION
+230 = AM_ACIDTERROR
+231 = AM_POTIONPITCHER
+232 = AM_CANNIBALIZE
+233 = AM_SPHEREMINE
+234 = AM_CP_WEAPON
+235 = AM_CP_SHIELD
+236 = AM_CP_ARMOR
+237 = AM_CP_HELM
+248 = CR_TRUST
+249 = CR_AUTOGUARD
+250 = CR_SHIELDCHARGE
+251 = CR_SHIELDBOOMERANG
+252 = CR_REFLECTSHIELD
+253 = CR_HOLYCROSS
+254 = CR_GRANDCROSS
+255 = CR_DEVOTION
+256 = CR_PROVIDENCE
+257 = CR_DEFENDER
+258 = CR_SPEARQUICKEN
+259 = MO_IRONHAND
+260 = MO_SPIRITSRECOVERY
+261 = MO_CALLSPIRITS
+262 = MO_ABSORBSPIRITS
+263 = MO_TRIPLEATTACK
+264 = MO_BODYRELOCATION
+265 = MO_DODGE
+266 = MO_INVESTIGATE
+267 = MO_FINGEROFFENSIVE
+268 = MO_STEELBODY
+269 = MO_BLADESTOP
+270 = MO_EXPLOSIONSPIRITS
+271 = MO_EXTREMITYFIST
+272 = MO_CHAINCOMBO
+273 = MO_COMBOFINISH
+274 = SA_ADVANCEDBOOK
+275 = SA_CASTCANCEL
+276 = SA_MAGICROD
+277 = SA_SPELLBREAKER
+278 = SA_FREECAST
+279 = SA_AUTOSPELL
+280 = SA_FLAMELAUNCHER
+281 = SA_FROSTWEAPON
+282 = SA_LIGHTNINGLOADER
+283 = SA_SEISMICWEAPON
+284 = SA_DRAGONOLOGY
+285 = SA_VOLCANO
+286 = SA_DELUGE
+287 = SA_VIOLENTGALE
+288 = SA_LANDPROTECTOR
+289 = SA_DISPELL
+290 = SA_ABRACADABRA
+291 = SA_MONOCELL
+292 = SA_CLASSCHANGE
+293 = SA_SUMMONMONSTER
+294 = SA_REVERSEORCISH
+295 = SA_DEATH
+296 = SA_FORTUNE
+297 = SA_TAMINGMONSTER
+298 = SA_QUESTION
+299 = SA_GRAVITY
+300 = SA_LEVELUP
+301 = SA_INSTANTDEATH
+302 = SA_FULLRECOVERY
+303 = SA_COMA
+304 = BD_ADAPTATION
+305 = BD_ENCORE
+306 = BD_LULLABY
+307 = BD_RICHMANKIM
+308 = BD_ETERNALCHAOS
+309 = BD_DRUMBATTLEFIELD
+310 = BD_RINGNIBELUNGEN
+311 = BD_ROKISWEIL
+312 = BD_INTOABYSS
+313 = BD_SIEGFRIED
+315 = BA_MUSICALLESSON
+316 = BA_MUSICALSTRIKE
+317 = BA_DISSONANCE
+318 = BA_FROSTJOKE
+319 = BA_WHISTLE
+320 = BA_ASSASSINCROSS
+321 = BA_POEMBRAGI
+322 = BA_APPLEIDUN
+323 = DC_DANCINGLESSON
+324 = DC_THROWARROW
+325 = DC_UGLYDANCE
+326 = DC_SCREAM
+327 = DC_HUMMING
+328 = DC_DONTFORGETME
+329 = DC_FORTUNEKISS
+330 = DC_SERVICEFORYOU
+334 = WE_MALE
+335 = WE_FEMALE
+336 = WE_CALLPARTNER
+355 = LK_AURABLADE
+356 = LK_PARRYING
+357 = LK_CONCENTRATION
+358 = LK_TENSIONRELAX
+359 = LK_BERSERK
+361 = HP_ASSUMPTIO
+362 = HP_BASILICA
+363 = HP_MEDITATIO
+364 = HW_SOULDRAIN
+365 = HW_MAGICCRASHER
+366 = HW_MAGICPOWER
+367 = PA_PRESSURE
+368 = PA_SACRIFICE
+369 = PA_GOSPEL
+370 = CH_PALMSTRIKE
+371 = CH_TIGERFIST
+372 = CH_CHAINCRUSH
+373 = PF_HPCONVERSION
+374 = PF_SOULCHANGE
+375 = PF_SOULBURN
+376 = ASC_KATAR
+377 = ASC_HALLUCINATION
+378 = ASC_EDP
+379 = ASC_BREAKER
+380 = SN_SIGHT
+381 = SN_FALCONASSAULT
+382 = SN_SHARPSHOOTING
+383 = SN_WINDWALK
+384 = WS_MELTDOWN
+385 = WS_CREATECOIN
+386 = WS_CREATENUGGET
+387 = WS_CARTBOOST
+388 = WS_SYSTEMCREATE
+389 = ST_CHASEWALK
+390 = ST_REJECTSWORD
+392 = CR_ALCHEMY
+393 = CR_SYNTHESISPOTION
+394 = CG_ARROWVULCAN
+395 = CG_MOONLIT
+396 = CG_MARIONETTE
+397 = LK_SPIRALPIERCE
+398 = LK_HEADCRUSH
+399 = LK_JOINTBEAT
+400 = HW_NAPALMVULCAN
+401 = CH_SOULCOLLECT
+402 = PF_MINDBREAKER
+403 = PF_MEMORIZE
+404 = PF_FOGWALL
+405 = PF_SPIDERWEB
+406 = ASC_METEORASSAULT
+407 = ASC_CDP
+408 = WE_BABY
+409 = WE_CALLPARENT
+410 = WE_CALLBABY
+411 = TK_RUN
+412 = TK_READYSTORM
+413 = TK_STORMKICK
+414 = TK_READYDOWN
+415 = TK_DOWNKICK
+416 = TK_READYTURN
+417 = TK_TURNKICK
+418 = TK_READYCOUNTER
+419 = TK_COUNTER
+420 = TK_DODGE
+421 = TK_JUMPKICK
+422 = TK_HPTIME
+423 = TK_SPTIME
+424 = TK_POWER
+425 = TK_SEVENWIND
+426 = TK_HIGHJUMP
+427 = SG_FEEL
+428 = SG_SUN_WARM
+429 = SG_MOON_WARM
+430 = SG_STAR_WARM
+431 = SG_SUN_COMFORT
+432 = SG_MOON_COMFORT
+433 = SG_STAR_COMFORT
+434 = SG_HATE
+435 = SG_SUN_ANGER
+436 = SG_MOON_ANGER
+437 = SG_STAR_ANGER
+438 = SG_SUN_BLESS
+439 = SG_MOON_BLESS
+440 = SG_STAR_BLESS
+441 = SG_DEVIL
+442 = SG_FRIEND
+443 = SG_KNOWLEDGE
+444 = SG_FUSION
+445 = SL_ALCHEMIST
+446 = AM_BERSERKPITCHER
+447 = SL_MONK
+448 = SL_STAR
+449 = SL_SAGE
+450 = SL_CRUSADER
+451 = SL_SUPERNOVICE
+452 = SL_KNIGHT
+453 = SL_WIZARD
+454 = SL_PRIEST
+455 = SL_BARDDANCER
+456 = SL_ROGUE
+457 = SL_ASSASIN
+458 = SL_BLACKSMITH
+459 = BS_ADRENALINE2
+460 = SL_HUNTER
+461 = SL_SOULLINKER
+462 = SL_KAIZEL
+463 = SL_KAAHI
+464 = SL_KAUPE
+465 = SL_KAITE
+466 = SL_KAINA
+467 = SL_STIN
+468 = SL_STUN
+469 = SL_SMA
+470 = SL_SWOO
+471 = SL_SKE
+472 = SL_SKA
+10000 = GD_APPROVAL
+10001 = GD_KAFRACONTRACT
+10002 = GD_GUARDRESEARCH
+10003 = GD_CHARISMA
+10004 = GD_EXTENSION
+
+// ************************
+// * Item DB - Use Script *
+// ************************
+itemskill:
+ -Format: itemskill skill_id,skill_lvl,"name";
+ -Example: itemskill 28,3,"Heal"; //Healing skill
+
+itemheal:
+ -Format: itemheal hp,sp;
+ -Example: itemheal 30,0; //+30 HP, +0 SP.
+
+sc_start:
+ -Format: sc_start SC_CONSTANT,duration,value;
+ -Example: sc_start SC_POISON,1800,; //Starts Poison Status for 30 seconds
+
+sc_end:
+ -Format: sc_end SC_CONSTANT;
+ -Example: sc_end SC_BLIND; //Ends Blind Status
+
+warp:
+ -Format: warp "map",x,y;
+ -Example: warp "Random",0,0; //Fly wing
+ -Example: warp "SavePoint",0,0; //Butterfly wing
+
+getitem:
+ -Format: getitem item_id,count;
+ -Example: getitem 512,2; //Gives you two Apples
+
+produce:
+ -Format: produce produce_type;
+ -Example: produce 16; //Mini-furnace
+
+pet:
+ -Format: pet pet_id;
+ -Example: pet 1002; //Taming item for Poring
+
+monster:
+ -Example: monster "this",0,0,"--ja--",-1,1,""; //Dead branch
+
+percentheal:
+ -Format: percentheal percent_hp,percent_sp;
+ -Example: percentheal 100,100; //Heals you 100% of both HP and SP
+
+// **************************
+// * Item DB - Equip Script *
// ************************** \ No newline at end of file
diff --git a/doc/mob_db_mode_list.txt b/doc/mob_db_mode_list.txt
index edd83a167..3fa713575 100644
--- a/doc/mob_db_mode_list.txt
+++ b/doc/mob_db_mode_list.txt
@@ -1,50 +1,50 @@
-Bit Legend:
-----------
-MD_CANMOVE | 0x001 | 1
-MD_LOOTER | 0x002 | 2
-MD_AGGRESSIVE | 0x004 | 4
-MD_ASSIST | 0x008 | 8
-MD_CASTSENSOR | 0x010 | 16
-MD_BOSS | 0x020 | 32
-MD_PLANT | 0x040 | 64
-MD_CANATTACK | 0x080 | 128
-MD_DETECTOR | 0x100 | 256
-MD_CHANGETARGET | 0x200 | 512 //removed, not needed
-MD_CHANGECHASE | 0x400 | 1024
-MD_ANGRY | 0x800 | 2048
-
-----------
-1: Can Move.
-2: looter.
-4: Aggressive: normal aggressive mob, will look for a close-by player and charge him until death. Aggressive mobs also can change target if they are hit by someone else while chasing someone else.
-8: Assist
-16: Cast Sensor: If mob is aggressive, it will also change targets while chasing/following someone else, otherwise, it'll also be cast-sensitive while idle/random-walking.
-32: Boss. Special flag which makes mobs inmune to certain stuff like status-changes and basilica.
-64: Plant. Always receives 1 damage from stuff.
-128: Can Attack. Everyone with a few exceptions has this. Only prevents normal attacks, not skills.
-256: Detector: can see hidden players. Insects, Demons, and Bosses automatically receive this.
-1024: ChangeChase: When the mob is chasing a player and it passes nearby another player, it will switch targets and hit this other player. Note this only applies if the new player is withing attack range, it won't change it's chase-path to another player!
-2048: Angry: These mobs are "hyper-active". They will change to the closest player while they are following up, They also have skill states "follow" and "angry" (instead of "chase"/"attack") when they pick a new target by their own (ie: not when they change targets due to being attacked). If attacked even once, they loose their Angry mode.
-
-Change Target: (coded)
-Only Assist, Angry or Aggressive+CastSensor mobs can change target while attacking. Target must be no more than 3 cells away.
-Mob in Hyper-active mode can change target unconditionally.
-Mob that chases player can change target only, when he's Aggresive and get attacked.
-
-Old -> New
-----------
-64 -> 64: Plants
-128 -> 0: Passive immobile beings (pupa)
-129 -> 129: Normal enemies
-131 -> 131: looters (porings)
-132 -> 132: Immobile attackers (hydra)
-133 -> 133: Aggressive
-137 -> 137: Assists others (wolves)
-139 -> 139: Assists & loots (thief bugs)
-141 -> 141: Aggressive & Assists (no idea how these would differ from plain aggressive, but there's a lot of enemies defined this way)
-145 -> 145: Detectors (Giearth)
-149 -> 149: Aggressive & Detector (Hunter Fly)
-159 -> 159: Cast sensor, Assist, Agressive, Looter
-171 -> 171: Boss, summons, assists & loots (Golden Thief Bug)
-181 -> 1461: Boss, summons, detector & aggressive (pretty much every MVP and miniboss)
+Bit Legend:
+----------
+MD_CANMOVE | 0x001 | 1
+MD_LOOTER | 0x002 | 2
+MD_AGGRESSIVE | 0x004 | 4
+MD_ASSIST | 0x008 | 8
+MD_CASTSENSOR | 0x010 | 16
+MD_BOSS | 0x020 | 32
+MD_PLANT | 0x040 | 64
+MD_CANATTACK | 0x080 | 128
+MD_DETECTOR | 0x100 | 256
+MD_CHANGETARGET | 0x200 | 512 //removed, not needed
+MD_CHANGECHASE | 0x400 | 1024
+MD_ANGRY | 0x800 | 2048
+
+----------
+1: Can Move.
+2: looter.
+4: Aggressive: normal aggressive mob, will look for a close-by player and charge him until death. Aggressive mobs also can change target if they are hit by someone else while chasing someone else.
+8: Assist
+16: Cast Sensor: If mob is aggressive, it will also change targets while chasing/following someone else, otherwise, it'll also be cast-sensitive while idle/random-walking.
+32: Boss. Special flag which makes mobs inmune to certain stuff like status-changes and basilica.
+64: Plant. Always receives 1 damage from stuff.
+128: Can Attack. Everyone with a few exceptions has this. Only prevents normal attacks, not skills.
+256: Detector: can see hidden players. Insects, Demons, and Bosses automatically receive this.
+1024: ChangeChase: When the mob is chasing a player and it passes nearby another player, it will switch targets and hit this other player. Note this only applies if the new player is withing attack range, it won't change it's chase-path to another player!
+2048: Angry: These mobs are "hyper-active". They will change to the closest player while they are following up, They also have skill states "follow" and "angry" (instead of "chase"/"attack") when they pick a new target by their own (ie: not when they change targets due to being attacked). If attacked even once, they loose their Angry mode.
+
+Change Target: (coded)
+Only Assist, Angry or Aggressive+CastSensor mobs can change target while attacking. Target must be no more than 3 cells away.
+Mob in Hyper-active mode can change target unconditionally.
+Mob that chases player can change target only, when he's Aggresive and get attacked.
+
+Old -> New
+----------
+64 -> 64: Plants
+128 -> 0: Passive immobile beings (pupa)
+129 -> 129: Normal enemies
+131 -> 131: looters (porings)
+132 -> 132: Immobile attackers (hydra)
+133 -> 133: Aggressive
+137 -> 137: Assists others (wolves)
+139 -> 139: Assists & loots (thief bugs)
+141 -> 141: Aggressive & Assists (no idea how these would differ from plain aggressive, but there's a lot of enemies defined this way)
+145 -> 145: Detectors (Giearth)
+149 -> 149: Aggressive & Detector (Hunter Fly)
+159 -> 159: Cast sensor, Assist, Agressive, Looter
+171 -> 171: Boss, summons, assists & loots (Golden Thief Bug)
+181 -> 1461: Boss, summons, detector & aggressive (pretty much every MVP and miniboss)
none -> 2181 : Hyper-active (Familiar) \ No newline at end of file
diff --git a/doc/notes/Changelog.txt b/doc/notes/Changelog.txt
index f01fd92da..ce98dee6c 100644
--- a/doc/notes/Changelog.txt
+++ b/doc/notes/Changelog.txt
@@ -1,11814 +1,11814 @@
-Date Added
-
--------- Read Changelog-SVN.txt for the newer SVN entries--------
-
-2006/04/30
- * Skills with the move_enable state won't get the walkdelay increased on a
- skill-cast. [Skotlex]
- * Some corrections in the clif_parse_whisper function which should fix
- crashes in the chat_log under "certain" conditions. [Skotlex]
- * Fixed dangling pointer in pc_steal_item (missing lines) causing crash. [Lance]
- * Fixed lack of initialization in chrif_authreq causing crashes in chrif_authok. [Lance]
- * Fixed a logic error that was likely the cause of pet loot drops not
- working. [Skotlex]
- * If someone is expulsed from a guild while the guild storage is open, it
- will be auto-closed now. [Skotlex]
- * Modified battle_consume_ammo to prevent consuming multiple arrows on
- AC_SHOWER. [Skotlex]
- * Readded script command skillpointcount... [Skotlex]
- * Fixed and enabled STEAL skill [Lupus]
- * Implemented NJ_SHADOWJUMP. [blackhole89]
- * Moved the soul-drain code to skill_counter_additionaleffect [Skotlex]
- * Fixed fake NPC missing code. Thanks to Skotlex for pointing out. [Lance]
-
-2006/04/29
- * Changed the HT_DETECTING method from invoking clif_changetraplook to
- clif_skill_setunit since in the first the client ignores the fact that it
- is now a trap (rendering skills like Remove Trap useless). [Skotlex]
- * added script command skillpointcount. Returns total amount of skill
- points a char has (the value returned is the same that SkillPoint would
- have after invoking a skill reset) [Skotlex]
- * Modified Defender. Speed reduction is 35-5*lv%, damage reduction on
- devoted chars is 5+5*lv%. These values are custom, but should be closer to
- "reality" than what we had. [Skotlex]
- * When you have the wrong ammo type equipped, the equip arrows first
- message will be sent, as suggested by Haplo [Skotlex]
- * Changed checks of item's identify field from 0/1 to 0/non-zero [Skotlex]
- * Corrected TK_JUMPKICK to place the caster on the tile next to the target
- rather than on top of it. [Skotlex]
- * Small change in pc_calc_skilltree which should fix the infinite loop...
- [Skotlex]
- * Added @noask command: enable/disable deals/invites autorejecting.
- [LuzZza]
- * Removed unreferenced local variable in pc.c [Lance]
- * Reverted npc_checknear to exclude check for class_ -1.
- * Removed npc_checknear in npc_buysellsel, npc_selllist and npc_buylist
- as enough preventive measures of hacking are already implemented.
- [Lance]
- * Updated STEAL skill (WIP), added a battle config option: [Lupus]
- 'skill_steal_max_tries' to set max number of stealing tries.
- It could help to fix stealing exploit on mobs with few drops
- * Added support for packet 0x229 (clif_changeoption). [Skotlex]
- * Bumped up PACKETVER to 7 to enable use of packets 0x229 and 0x22c
- [Skotlex]
- * Added missing next/prev initialization in chat-creation. [Skotlex]
- * Added missing sql-files/mob_db.sql... somehow it was missing from the
- mob_db update. [Skotlex]
- * Clones can't be class-changed now [Skotlex]
- * Readded the class == -1 distance check in npc_checknear [Skotlex]
- * Replaced check sd->trade_partner for sd->state.trading in clif.c [Skotlex]
- * Using malloc for memory allocations that doesn't need to be pre-initialized.
- * Eliminated initializations for pointers returned by calloc.
- * Moved grfio_final to do_init since it's not used after server boot.
- * Optimized scripts to return CONSTSTR instead of allocating memory just to return
- a constant string. Some buildin functions still need work.
- * Disabled graph since it doesn't work yet. [Lance]
-
-2006/04/28
- * Modified the mob_db structure. The mvp related columns were moved to
- before the drops, amount of drops increased from 10 to 15. [Skotlex]
- * Updated sql-files/mob_db.sql (and mob_db2.sql) to latest. [Skotlex]
- * Modified HP conversion so that it fails when you don't have enough Hp.
- [Skotlex]
- * Cleaned up Strip skills so that the skill animation will only show when
- something was stripped. [Skotlex]
- * Added constant MAX_MOB_DROP to specify the amount of normal drops a mob
- has. The mob_db reading code will automatically parse the file according to
- the number of drops expected (the Mexp/Mper and MVP item rewards must still
- be after the normal drops). Set to 10 currently. [Skotlex]
- * Mobinfo's drop list will use jName rather than Name for drop names.
- [Skotlex]
- * Some cleaning of the ASC_BREAKER code in skill_attack [Skotlex]
- * Modified skill_attack so that all skills with amotion get their damage
- delayed (should fix mob walk-teleport issues) [Skotlex]
- * Added function stristr to strlib.c, used by mob.c and item_db.c for
- case-insensitive seeks. [Skotlex]
- * Removed the sending of the online guild list when you log-on, may fix the
- "getting stuck" problem. [Skotlex]
- * Added battle config default_skill_delay. Specifies the default skill
- delay for most skills, it is also applied as a walkdelay (total skill
- walkdelay is default_skill_delay + that skill's can't walk delay) [Skotlex]
-2006/04/27
- * skill_castend_id and skill_castend_pos will trigger unit_stop_walking
- with flag 1 (fix pos) rather than none. Should fix some skills making you
- appear moving while doing them. [Skotlex]
- * Modified clif_skill_nodamage to allow for a NULL source. This is to
- simplify code related to AL_HEAL/MG_RECOVERY effects where someone shows a
- healing value, but there's no "caster" in sight (Pitcher skills, Blood
- Drain, Kaahi) [Skotlex]
- * Updated Kaahi to use clif_skill_nodamage to display amount healed.
- [Skotlex]
- * Added unlocking ud.target on mob_unlocktarget, fixes mobs chasing you
- around while cloaked. [Skotlex]
- * Changed the default rate of clone mob skills to 5% modified by
- mob_skill_rate setting. [Skotlex]
- * Applied some changes in unit.c to make mobs pick chase paths as they
- should. [Skotlex]
- * unit_remove_map will reset attackable-time, canact and canwalk delays.
- [Skotlex]
- * Added a timer in clif.c so that walk requests that are done while your
- cannot move duration will be delayed and processed afterwards (as long as
- the walk delay remaining is less than 2000 ms) [Skotlex]
- * Some changes in the slave skill conditions. All their skills are
- triggered at a 10% chance now. [Skotlex]
- * Changed in the behaviour of wedding skills, they should be getting all
- the land-skill checks now. [Skotlex]
- * Small change in @commands, may fix the null-pointer error. [Skotlex]
- * Changebase script command will also refresh the weapon sprites (in case
- you changed into Wedding/Xmas class) [Skotlex]
- * Small change in the pet_ai that should stop the "strange" catch-up
- behaviour of pets when you are much faster than them. [Skotlex]
- * Corrected the unequip script of the wedding dress/tuxedo (it should be
- Class, not bClass), item_db.sql was also corrected. [Skotlex]
- * Small change in the pet_ai that should stop the "strange" catch-up
- behaviour of pets when you are much faster than them. [Skotlex]
- * Now when you do @baselevel to reduce your level and you don't have enough
- stat points to deduct, you will get a stat-reset and THEN your stat points
- will be reduced. [Skotlex]
- * Added at command @commands, displays the list of commands available to
- you. Defaults to level 1. [Skotlex]
- * Added the missing clif_* calls to make changebase's view-class change
- update on the client. [Skotlex]
- * Added battle config hide_woe_damage which hides damage on woe maps
- packet-wise (battle/client.conf). [Skotlex]
- * Fixed base-level up @ command giving stat points instead of taking them
- away when leveling down. [Skotlex
- * Some small change in pc_heal which would let you have negative SP if you
- were killed on the same pc_heal invocation. [Skotlex]
- * Added 3rd argument to script command 'setmapflag' thx to Jbain [Lupus]
- setmapflag "prontera.gat",mf_pvp;
- setmapflag "prontera.gat",mf_jexp,100;
- Now you can dinamically increase/decrease EXP rate on set maps
- e.g. you can lower EXP on the cmd_fild02 ^_-
-2006/04/26
- * Updated sql-files/item_db.sql to current. [Skotlex]
- * Item use interval is set to a default of 100ms now since that should be
- low enough to not bother real players and it should cap somehow bot/macro
- spams. [Skotlex]
- * Updated Full Buster so that the can't act delay carries on to the weapon
- attack delay and can't use item intervals. [Skotlex]
- * Added script command getbattleflag to retrieve the current value of a
- battle_config switch. [Skotlex]
- * When Taekwons level up they get Bless and Agi Up level 10 instead of the
- S.Novice bonuses. [Skotlex]
- * Increased number of hits for TK kicks. 3 hits for TK_COUNTER and
- TK_TURNKICK, 2 hits for TK_STORMKICK and TK_DOWNKICK (until further
- information arrives) [Skotlex]
- * Modified how changebase script command works, the change caused by it is
- permanent (at least until logout). Updated the Tuxedo and Wedding dress to
- use onequip/onunequip scripts to change the look. [Skotlex]
- * Changed the skill_wall_check to use shoot-path seeking. May fix
- skill_wall_check setting. [Skotlex]
- * Fixed typo in skill.c: skill_clear_group [Lance]
-
-2006/04/25
- * Added battle config traps_setting to determine how traps should behave.
- With &1 traps are invisible if you didn't see them get set up. With &2
- traps will be removed after changing maps. The default is 2.
- (battle/skill.conf) [Skotlex]
- * Cleaned up a bit the implementation of SC_MAXIMIZEPOWER, SC_CHASEWALK and
- SC_CLOAKING to prevent infinite looping timers. [Skotlex]
- * Fixed NPC_SUICIDE dropping items. [Skotlex]
- * Moved the mapflag skill restrictions from skill_checkcondition to
- skillnotok, this makes auto-spells not work in maps where they aren't
- allowed. [Skotlex]
- * Added TK_HIGHJUMP to skillnotok, the skill is blocked in noteleport maps
- (with the exception of gvg ones) [Skotlex]
- * Modified and simplified the random item group format. It now is
- <GroupID>,<ItemID>,<Rate>, where Rate normally is 1, greater numbers is the
- equivalent of adding the line multiple times. Also has support for import
- lines. [Skotlex]
- * Added constants to identify all item groups to db/const.txt [Skotlex]
- * Cleaned up and updated item_db to use these new constants (warning:
- item_db.sql needs to be updated! Sql-db users should not update until this
- file is updated) [Skotlex]
-2006/04/24
- * Simplified npc_gettimerevent_tick so that it should return a tick value
- even after the last ontimer label has been reached. [Skotlex]
- * All GMs will be sent to the char server through packet 0x2aff now.
- (previously hidden gms were not sent to the char-server as online) [Skotlex]
- * Made mob_searchname compare versus sprite, name and jname now. [Skotlex]
- * Added script command escape_sql. It will return an escaped string for use
- in the sql_query script command (in case you want to use input of players
- in your queries). [Skotlex]
- * Removed the skill packet from TK_RUN as the client ignores the walkok
- packet sent right after it. It displays just fine on the client now. [Skotlex]
- * Added DNS Blocklist support. Set in login_athena.conf.
- I'll make it more customizable tomorrow, I coded it pretty bad. [Zido]
- * Corrected mob_spawn_delay/boss_spawn_delay/plant_spawn_delay settings
- (they were named rate rather than delay in monster.conf) [Skotlex]
- * Cleaned up @grind2, @monsterbig, @monstersmall. [Skotlex]
- * Modified override_mobs_names to work only on the mob spawn files instead
- of everywhere (so now script-summoned mobs should keep their custom names
- intact) [Skotlex]
- * Added logging of deleted characters when the char_log is enabled.
- [Skotlex]
- * Fixed skill_delayfix not altering delay at all after you reached 150.
- [Skotlex]
- * Applied ers to pet loot drops and cleaned up the pet loot drop function.
- [Skotlex]
- * Mob skill state MSS_ANY won't include MSS_DEAD now. [Skotlex]
- * Added mob skill state MSS_ANYTARGET ("anytarget") which means any state
- (except dead) on which the mob has a target set. [Skotlex]
-2006/04/23
- * Added new column to mob_db Sprite_Name to hold the mob's sprite name.
- Columns Name and JName now hold the mob's english and kro names
- respectively. [Skotlex]
- - Currently both Name and Jname have the KRO names, so someone will have to
- update the Name column with the english Mob Names.
- * Updated mob_db.sql and mob_db2.sql to latest. [Skotlex]
- * Added battle_config option override_mob_names to make the spawned mob use
- the mob_db names instead of the specified names in the spawn files.
- Defaults to 0, 1 is to use Name column while 2 is to use the JName column
- (see battle/monster.conf) [Skotlex]
- * Idle skills won't trigger while the mob is walking (that is for the state
- "walk") [Skotlex]
- * Idle skills will now trigger each IDLE_SKILL_INTERVAL iterations (10
- currently) [Skotlex]
- * Added support for walk packet 0x22c, will be used when PACKETVER is set
- to 7 or above (packetver is still set to 6 for now) [Skotlex]
- * Normal walking will now also trigger mob skills (due to the walk skill
- condition) [Skotlex]
- * additional experience multiplicator as mapflags which is based off battle.conf
- so with battle.conf rates 200 and "mapflag <jexp/bexp> 200" it will be 4x
- on this specific map and 2x anywhere else [Jbain]
-2006/04/22
- * Angelus was giving more bonus than it should. Fixed. [Zido]
- * Added Option constants for Carts, fixed OPTION_FLYING (it conflicts with
- OPTION_XMAS?) [Skotlex]
- * Updated clif.c to check for OPTION_WEDDING|OPTION_XMAS instead of view
- class to block attacks and skill usage. [Skotlex]
- * Cleaned up change-cart code. [Skotlex]
- * Modified SC_XMAS to not change your view anymore and only set the proper
- option value (OPTION_XMAS) [Skotlex]
- * Cleaned up the code regarding char_gm reading. [Skotlex]
- * Changed the option field to unsigned short to make room for the higher
- values. [Skotlex]
-2006/04/21
- * SC_CLOAKING's val4 now holds whether cloaking ends or not on attack.
- [Skotlex]
- * Implemented NPC_INVISIBLE, it starts SC_CLOAKING with val4 set to 1.
- [Skotlex]
- * Updated the HP/SP leech structures to have race-data attached to them.
- [Skotlex]
- * Merged all leeching code to new battle_drain function. [Skotlex]
- * Simplified a bit the code for Signum Crucis [Skotlex]
- * Added script bonuses: [Skotlex]
- bonus3 bHPDrainRateRace,<Race>,<Activation Rate>,<Drain %>;
- bonus3 bSPDrainRateRace,<Race>,<Activation Rate>,<Drain %>;
- bonus2 bHPDrainValueRace,<Race>,<Value>;
- bonus2 bSPDrainValueRace,<Race>,<Value>;
- * Fixed items not really getting unequipped when they should. [Skotlex]
-2006/04/20
- * Fixed the equip/unequip scripts not triggering for compounded cards.
- [Skotlex]
- * Char server will now ignore packet 0x65 for already authentified
- accounts. [Skotlex]
- * Added two columns to item_db: equip_script and unequip_script are scripts
- that are executed once when the corresponding item is equipped or
- unequipped respectively. [Skotlex]
- * Removed bonuses bDamageWhenUnequip, bLoseSPWhenUnequip as they are no
- longer needed. [Skotlex]
- * Updated sql-files/item_db.sql with latest. [Skotlex]
- * Fixed buffer overflow in clif_MainChatMessage. It now prints a Debug
- message with the offending line. [Skotlex]
- * Cleaned up a bunch of GS/NJ skills [Skotlex]
- * Fixed Gatling Fever crashing server when used by non players. [Skotlex]
- * Added support for n to specify minutes to @charban. [Skotlex]
- * Added state.trading to specify when a trading has started. Now you should
- be able to walk around until the trade is either rejected or started.
- [Skotlex]
- * Armor defense is no longer reduced by the amount of characters targetting
- you. [Skotlex]
-
-2006/04/19
- * Updated the doc/script_commands.txt documentation in regards to npc mob
- spawn lines. [Skotlex]
- * Added back the "you can't walk delay while attacking" to
- unit_attack_timer, now when you want to walk during your attack animation,
- you will only stop attacking, you will have to click again to move.
- [Skotlex]
- * Fixed a pair of wrong mapflag lines in nopvp.txt [Skotlex]
- * Removed the max cap of autoloot so you are now allowed to set autoloot
- values above 100. [Skotlex]
- * Initialized w1/w2/w3/w4 before reading each npc line to avoid sending
- unread values to the parsers (for example, if w4 has a value in one line
- and none on the next, it will be parsed with the previous value of w4 on
- the following lines), this could cause serious problems with mapflags and
- the recent "off" addition. [Skotlex]
- * Updated getpartymember to receive an int which specifies what to
- retrieve. 0: Character names (array $@partymembername$), 1 character char
- ids (array $@partymembercid), 2 character account ids (array
- $@partynameaid). By default it returns party member names. [Skotlex]
- * Updated script_commands.txt with the updated behaviour of getpartymember.
- [Skotlex]
-
-2006/04/18
- * Fixed a typo in map_search_freecell which was returning incorrect cells
- according to the ranges given. [Skotlex]
- * A tiny fix to @kami [Zido]
- * The IRC Bot can now autojoin when kicked, set in irc_athena. [Zido]
- * Added @who to the IRC Bot, outputs all online characters. [Zido]
- * Changed the memory manager fatal errors when allocating memory to print
- out the size request as well as the file and line where they originated.
- [Skotlex]
- * Fixed the delete_timer (@summons, alchemist plants) not invoking
- unit_free, hence causing memory leaks and the like. [Skotlex]
- * Applied jA's patch to fix a bug in the scripting engine in regards to
- priority of operators. Thanks to End of Exam for the information. [Skotlex]
- * Removed message 592 from trade.c [Skotlex]
- * Added support for disabling mapflags on a mapflag line: [Skotlex]
- comodo.gat mapflag nomemo <- turns on nomemo mapflag
- comodo.gat mapflag nomemo off <- turns off nomemo mapflag
- * Removed mapflag nopvp due to the above change. [Skotlex]
- * Cleaned up and optimized the restricted/zones mapflag. Restricted cards
- will just not work in disallowed maps rather than blocking the compounded
- equipement from being used. [Skotlex]
- * Converted the format of the battle conf files to windows format [Playtester]
- * Shinomori's method (kinda) of remote script execution with interaction. [Lance]
-
-2006/04/17
- * skill_clear_unitgroup is now invoked in unit_remove_map only on death if
- the applicable battle setting is set. [Skotlex]
- * Changed setting clear_unit_ondeath to a type 4 (bl-based) which defaults
- to BL_ALL. [Skotlex]
- * Fixed Absorb spirit sphere not working on mobs, thanks to Vividd.
- [Skotlex]
- * Cleared the ud->target on pc_stop_attack to prevent attack resuming an
- other such oddities. [Skotlex]
- * I seem to have broken @kami with my last commit, fixed. [Zido]
- * Added @users to the IRC Bot, outputs the # of users online. [Zido]
- * The baby check when wearing a tuxedo/dress now works [Zido]
- * Fixed pet being incorrectly removed when it had intimacy 0. [Skotlex]
- * Some cleanup in the TK_RUN related code. [Skotlex]
- * Added variable walk_count to unit_data to be use as a counter for cells
- walked for walk-triggered skills, on-chase skill triggers are now done
- every 5 cells (it is the closest value that makes the average mob trigger a
- chase skill every second). [Skotlex]
- * mob_skill_db needs updating since it's current use rates for chase-skills
- assume the trigger is every 100ms rather than every second.
- * Fixed TK_RUN having a cast-bar when attempting to stop-running and
- generating timer_delete errors when halting as well. [Skotlex]
- * Clearing the dummy npc after fooling the client. [Lance]
- * Updated DLLS. Please DO NOT update the libs from now on
- (except if mySQL has newer builds which are not compatible
- with client DLL). [Lance]
-
-2006/04/16
- * Fixed the first call to the walk timers having the tick interval halved,
- which made all walking timers be off by half cell with the actual position
- displayed client-side (so everyone reaches destination cell server-side
- half-cell before the client). [Skotlex]
- * Fixed being halted when you are walking so that: 1. Your position
- refreshed on the screen is correct (the current tile if you haven't reached
- at least half path between the current and next tile and the next tile
- otherwise) and 2. If you are halted before walking even one cell, you will
- be moved to the next cell (to effectively prevent stun-locking). [Skotlex]
- * Modified @monster command to use map_search_freecell (prevents mobs
- spawning on non-walkable tiles) [Skotlex]
- * Modified @nuke to invoke skill_cast_nodamage_id instead of the damage_id
- version (fixes sprite and splash damage for the skill) [Skotlex]
- * Fixed char-sql server still reading the old lanconfig format rather than
- the new one. [Skotlex]
- * Removed water_height.txt reading (since it is always done from the rsw
- now) [Skotlex]
- * Fixed a possible crash in grfio_find_file [Skotlex]
- * Corrected water-level-reading to account for a return of null from the
- previously mentioned function [Skotlex]
- * Fixed mysql ping setting being in minutes rather than hours. [Skotlex]
- * Removed npc_event_sub from npc.h and moved it to npc.c [Skotlex]
- * Cleaned up #warp to prevent spitting non-walkable tile warnings. [Skotlex]
- * Changed the meaning of msg_athena 2, it is now "invalid target cell,
- randomizing". [Skotlex]
- * Fixed wrong check of Deluge + Suiton which broke the water-requirement
- check for skills. [Skotlex]
- * Cleared ud->target on remove-map, it should fix the phantom mob sprite
- issue. [Skotlex]
- * Temperory fixed compiler warnings/errors. Please compile before commiting.
- [Lance]
- * Added pcre3.dll, zlib1.dll and libmysql.dll. DO NOT DELETE THEM.
- (Required by systems without these DLLs preinstalled) [Lance]
- * Experimental npc_event_doall_sub with queue and npc_id allocation when needed.
- [Lance]
- * Added warnings to npc_scriptcont for easier debugging. [Lance]
- * Missing lines in npc_parse_script! [Lance]
- * Sending fake npc for inputs and menus for NPC without map coordinates. [Lance]
-
-2006/04/15
- * Fixed upgrade_svn5902.sql, thanks to Koshiro for pointing it out.
- [Skotlex]
- * Updated skill_attack to allow characters not on a map to attack (enables
- traps and the like to work when they aren't cleared on the character's
- death) [Skotlex]
- * Removed use of packet 0x1c9 for skill_unit display, except for Graffiti
- (which is the only unit which requires the much larger packet) [Skotlex]
- * clif_getareachar_skillunit will send the unit_id of UNT_ATTACK_SKILLS for
- traps (this is to prevent them from displaying on the client) [Skotlex]
- * Updated libs, Updated vc project files, And deleted uneeded DLLs.
- Credits to ALZ. [Zido]
-2006/04/14
- * Updated sql-files/mob_db.sql to current. [Skotlex]
- * Fixed being able to do all the stuff you shouldn't be able to during the
- petrifying state. [Skotlex]
-2006/04/13
- * Updated sql-files/item_db.sql to current. [Skotlex]
- * Added an Info message when pinging the SQL servers. [Skotlex]
- * Fixed crash when looking for SC_MIRACLE in battle_calc_weapon_attack
- [Skotlex]
- * Some more standard C code cleanups. [Skotlex]
- * atcommand_param and charcommand_stats to make them standard C (so it may
- compile with the Borland C). Also cleaned atcommand_param against
- overflows. [Skotlex]
-2006/04/12
- * Removed the noteleport mapflags from two juperos maps [MasterOfMuppets]
- - added the nopenalty mapflag to hugel.gat
- * Halved the aftercast delay of auto-casted spells. [Skotlex]
- * Allowed auto-spells to retrigger themselves. [Skotlex]
- * Changed slave chasing from using unit_walktobl to map_search_freecell +
- unit_walktoxy, since the previous behaviour makes all slaves always end up
- on the same cell. [Skotlex]
- * Removed area of effect of Assumptio. [Skotlex]
- * Added "can't act" delay update when an auto-spell triggers. [Skotlex]
- * Expanded the warp warning so that it also warns when a warps takes you to
- a non-walkable tile. [Skotlex]
- * Simplified the mob-drops structure by using a single timer with a linked
- list of drops instead of separate timers for each drop. [Skotlex]
-2006/04/11
- * Added special_state changebase to identify when a character has a
- special-view associated with some equipment to correctly revert the look
- when you take off said equipment (fixes tuxedo/wedding dress when you use
- modify_wedding_display: yes) [Skotlex]
- * Removed the piece of code that "guesses" that job classes between 24 and
- 68 are advanced classes from mob_avail reading since they conflict with
- NJ/GS. Use the correct class numbers from now on! [Skotlex]
- * Cleaned up implementation of BlastMine and Claymore Trap. [Skotlex]
- * Added Freezing trap information to battle_calc_weapon attack. [Skotlex]
- * Merged the can't walk delay code into the weapon-damage delay one, means
- less timers for attacks, as well as fixing the ghost-mob issue that
- reappeared recently. [Skotlex]
- * Traps will not be displayed when you walk within their range. [Skotlex]
- * Added HT_DETECTING revealing traps. [Skotlex]
- * Added ers handling for skill_timerskill structures. [Skotlex]
- * You don't get critical'ed when in counter-attack stance anymore. [Skotlex]
- * Changed the default counter-type to "always critical". [Skotlex]
- * Implemented use of ers for skill_unit_groups to reduce memory usage.
- * Note that it's NOT TESTED yet. Use with caution, at least some obvious
- bugs are expected to be found... [Skotlex]
- * Modified battle_check_range to do a path-check on distances less than 2
- (rather than 3) to avoid being able to hit through walls. [Skotlex]
- * Modified unit_walktoxy_sub to always move at least one cell when a large
- chaserange is specified to prevent possible infinite loops where
- attack_timer says you are not within range, but unit_walktoxy says you are.
- [Skotlex]
- * Fixed Looted items always dropping in quantities of one. [Skotlex]
- * Removed the check that deletes Magnus Exorcism cells after they hit once.
- [Skotlex]
-2006/04/10
- * Temperory replaced strtoll to strtoul until the function changes. [Lance]
- * Multiple optimizations to the unit_data auto-chase upgrade, also
- simplified the mob and pet ai routines. [Skotlex]
- * Simplified the walk routines to half the number of timers required for
- walking. [Skotlex]
- * Finished fixing the unit_data auto-chase update. Still need to do some
- optimizations... but the current code-base should be usable. [Skotlex]
- * Fixes to the unit_data update that lets characters auto-chase while
- attacking. It seems to work mostly now, but there's still a few issues to
- be resolved with ranged-attackers. [Skotlex]
- * Modified the unit_data structure to handle automatically switching
- between chasing and attacking a character. Note that it's a work in
- progress and not yet properly tested/finished... [Skotlex]
- - DON'T USE THIS YET. There's much testing that needs be done, but I had to
- commit now so I may continue work on it later....
- * Updated the subnet support to not require specifying the subnet mask, it
- is auto-acquired from the char/map IP and the subnet-mask. [Skotlex]
- * skill_wall_check defaults to yes now. [Skotlex]
-2006/04/09
- * Added the missing last_thinktime initialization to pets. [Skotlex]
- * Reverted the change in skill_wall_check to let skills go over pits.
- [Skotlex]
- * Changed use of strtol to strtoll when reading the equip_jobs as strtol's
- result is just a signed int, fixes reading of equippable jobs for certain
- items. [Skotlex]
- * Corrected Knives being usable by Gunslinger. SQL users use
- upgrade_svn5972.sql to ugprade that. [Skotlex]
- * Modified @warp/@rura to prevent causing pc_setpos position error
- messages. [Skotlex]
- * Fixed the mob's last_thinktime not being updated on mob_spawn, causing
- them to not "think". [Skotlex]
- * Fixed @npcmove not sending the correct packets to make the moving refresh
- client-side. [Skotlex]
- * Fixed mobs with aggressive + looter mode never looting. [Skotlex]
- * skill_wall_check now also checks for pits so that skill effects don't go
- through them. [Skotlex]
- * Now you can't leave/be-kicked from a guild inside guild castles. [Skotlex]
- * Fixed map_waterheight prefixing extra "data\" [Lance]
- * Mob_ai update. The attacked checks will trigger even if the mob can't
- move. Being attacked while the mob can't move no longer will trigger
- rude-attacked skills. [Skotlex]
- * Changed the default of multi_hit_delay from 230 to 80 which seems more
- official. [Skotlex]
- * Wedding recall skills are now blocked by the nomemo mapflag instead of
- nowarpto. [Skotlex]
- * Skill delay for weapon types is now based on adelay (ASPD) rather than
- amotion (ASPD/2) [Skotlex]
- * Removed ending Endure when casting Berserk, may fix the timer mismatch
- issues. [Skotlex
-2006/04/08
- * Fixed skill_nocast_db reading so that when the same skill is specified
- multiple times, the blocked effects add up instead of replacing each other.
- [Skotlex]
- * Fixed @movenpc [Skotlex]
- * Cleaned up and improved the lootsearch routine to pick nearest item.
- [Skotlex]
- * Fixed trying to set the view_data for npcs who are located on a map, but
- have no visual data. [Skotlex]
- * Added irc_athena.conf :) from now on, set your irc configuration in
- conf/irc_athena.conf [Zido]
- * Removed the baby class check when using "changebase" to change to the
- Wedding Sprite, since it fixes the bug that the sprite doesn't show
- at all, and baby classes arn't messed up by it anymore.
- (or so it seems) [Zido]
- * Fixed up irc.c, no more crashes :D [Zido]
-
-2006/04/07
- * Likely fixed a mob not returning to their original class view on respawn
- after they changed class in their previous life. [Skotlex]
- * The map-server can now read the equip_job column of the item_db as both
- decimal and hexadecimal values. [Skotlex]
- * Updated item_db.sql current item_db.txt [Skotlex]
- * Added upgrade_svn5951.sql for those who would like to convert their
- existing items. (it converts the equip_jobs fields to the new values used)
- - See db/Changelog for further info regarding the equip_job fields change.
- [Skotlex]
-2006/04/07
- * Moved the Fusion HP penalty to battle_calc_weapon_attack [Skotlex]
- * Some cleaning to use battle_heal/damage rather than pc_heal/damage where
- appropiate. [Skotlex]
- * Cleaned up the deadly-poison hp reduction code. [Skotlex]
- * IRC User access levels now refresh on a mode set and join/part. [Zido]
- * Added missing creation/destruction of the expcache_ers in guild.c
- [Skotlex]
- * Unified status_remove_buffs/status_remove_debuffs into a single function.
- [Skotlex]
- * Fixed pc_setpos ignoring the clrtype sent to it. [Skotlex]
- * unit_free will now use clear type 3 for players (warping out effect)
- [Skotlex]
- * You can't invite someone to a guild now within Guild Castles. [Skotlex]
-2006/04/06
- * Hopefully fixed the wedding item-trade restriction. [Skotlex]
- * Fixed status_clear_buffs making SC_BERSERK's end send you to 100hp.
- [Skotlex]
- * Rewrote the guild exp cache code to prevent overflows and to use the
- entry reusage system. [Skotlex]
- * The IRC Bot is now able to check each users access level prefix
- in the channel (~/&/@/%/+), the IRC command @kami now requires the
- user to be at least channel operator(@). Now I need to make it store
- the users access level on every nick/mode change. [Zido]
- * Changed the default of skill_add_range to 0, said value now disables
- skill-range checking when casting ends. [Skotlex]
- * Corrected the Soul Drain formula, thanks to Haplo for pointing it out.
- [Skotlex]
- * Addded missing aldeg_cas01 to NOWARP mapflags, thanks to Justin84 [Lupus]
- - And we set lhz_dun03 nowarpto mapflag by default till check it on eRO/kRO
- * Changed the random warping of mobs with no players from mob_spawn to
- unit_warp, which prevents MSC_SPAWN skills from being retriggered for
- already spawned mobs. [Skotlex]
- * Modified @allstats to prevent negative/overflow issues. [Skotlex]
-2006/04/05
- * Fixed undisguising not clearing the mob sprite for the disguised
- character. [Skotlex]
- * Fixed parsing of job_db1.txt due to the MAX_WEAPON_TYPE change. [Skotlex]
- * TK ranking kicks can't be used on sucession now (can't use any of the
- kick skills twice in a row without using a different one first). [Skotlex]
- * Modified the ammo checks so that ammo is consumed at the end of
- battle_calc_weapon_attack (should fix element being lost on final arrow).
- [Skotlex]
- * Added a define list for weapon types in pc.h [Skotlex]
- * Cleaned up pc_checkallowskill and moved the Gatling fever check to it.
- [Skotlex]
- * Some cleanup of clif_parseloadendack, fixed guild-member list being sent
- on all map-changes. [Skotlex]
- * Removed the hardcoded removal of characters who spawn in a castle. All
- castle maps got the flag nosave now. [Skotlex]
- * Added support for the 2006/04/04a Sakexe packet version. [Zephiris]
-
-2006/04/04
- * Added inter config connection_ping_interval which specifies interval in
- hours at which mysql_ping's must be done on all connection handles to keep
- the mysql connection alive. Defaults to 0 (disabled) [Skotlex]
- * Made the login sql handle on the char-sql server be used only when
- gm_read_method 1 is enabled. [Skotlex]
- * Small fixes to npc_enable, added BL_NPC handling on status_get_sc.
- [Skotlex]
- - Some changes to close-confine, status start will fail when the source is
- not found or it doesn't has sc-data. [Skotlex]
- - pc_setoption no longer changes the character's class when
- mounting/dismounting, it only changes the view-class. [Skotlex]
- * Modified the char-txt server to modify the class of mounted characters to
- their non-mounted version. Added an upgrade_svn5902 file to handle the
- class update on the sql tables. [Skotlex]
-2006/04/03
- * Fixed pc_setpos using unit_remove_map with type 0 instead of 3, which
- confuses clients and makes them think the character in question is still
- standing on the spot where it was removed. This should fix the warp-portal
- issue. [Skotlex]
- * Fixed script command mapwarp. [Skotlex]
- * Fixed Auto-counter. [Skotlex]
- * Modified Rude-Attacked behaviour so that such skills only triggers when
- the rude-attacked count is greater than 3. [Skotlex]
- * Added config setting slaves_inherit_mode to determine whether slaves take
- on their master's aggressive/passive status (defaults to yes) [Skotlex]
- * Disabled NPCs are now handled through nd->sc.option&OPTION_INVISIBLE
- checks. Should fix disable/enablenpc calls not working. [Skotlex]
- * Moved skill_counter_additional_effect calls to trigger right after
- skill_additional_effect (which means they trigger at the end of the attack
- motion for physical attacks instead of at the beginning of the attack
- animation) [Skotlex]
- * Cleaned up (fixed?) a possible overflow in pc_isUseitem, thanks to
- foobar. [Skotlex]
- * When you have the wrong ammo-type equipped the skill-failed message is
- now "skill can't be used with this weapon", which is less misleading than
- "please equip arrows first". [Skotlex]
- * Corrected pet-equipment display (I originally assumed they went in the
- shield view-position, when they actually go in the head-bottom position).
- [Skotlex]
-2006/04/02
- * Fixed npc_gettimerevent_tick returning the difference since the last
- triggered label instead of total elapsed time for the npc-timer. [Skotlex]
- * Added a missing memset on ers_alloc'ing mob loot which was making data
- from looted items fill in normal drop info (in other words, you could get
- normal loots that were named after players, for example) [Skotlex]
- * Added preventing sending packet clif_clearchar_id when the character in
- question is invisible. [Skotlex]
- * Added packet 0x7c in clif_spawn which was supposed to be used for
- non-players (this fixes pets/mobs/npcs spawning as if they just teleported
- into view) [Skotlex]
- * Some cleanups to clif.c, removed some excess/broken packets/functions.
- [Skotlex]
- * Merged Larry's fix of using a timer to get rid of the glow-issue when you
- login to night-enabled map. [Skotlex]
- * Changed arrows View ID to 22 since daggers were already View ID 1.
- The server was looking for daggers to be in your arrow slot. [Reddozen]
- * Loading waterheight aliases from resnametable.txt. [Lance]
- * Workround the warnings for clif.c (what to do? the original codes are ugly.. passing
- values as pointers omgwtfbbq). [Lance]
-
-2006/04/01
- * Added a exp-even-share check when someone leaves a party. [Skotlex]
- * Added function clif_changetraplook to handle changing the appearance of
- traps as they are triggered. Fixes all the nullpos related to trap usage.
- [Skotlex]
- * Fixed berserk not raising your HP to your new cap. [Skotlex]
- * Fixed ground-skills not displaying damage done. [Skotlex]
- * Fixed a few functions sending a negative ID for disguised characters
- (such as clif_specialeffect) which very likely produced client crashes.
- [Skotlex]
- * A small cleanup on npc-whispering which could fix a reported crash on it.
- [Skotlex]
- * Removed the gm-whispering of the charnameack hack notice since it isn't
- perfected yet. It is still reported on the console for debugging
- purposes. [Skotlex]
- * Fixes to the mob_ai routines. Prevent casting rude-attacked skills in
- situations that shouldn't be considered as so. Fixed mobs failing to chase
- after enemies when attacked from out of their view_range. [Skotlex]
- * Should not exit when you can't find an NPC file.. [Lance]
- * Dynamic shops support with script callback. (needs testing) [Lance]
- * Cleaned up and fixed @where command. [Skotlex]
- * Fixed standing up no really making you stand up. [Skotlex]
- * Added upgrade_svn5834.sql to update view for item type 10. Because of the
- ammo upgrade, all arrows need their view set to 1. This query does that to
- all type 10 items (this includes all ninja weapons as well, but a proper
- item_db.sql update is pending until the rest of throwables are updated)
- [Skotlex]
- * Fixed compiler warnings. [Lance]
- * Added structure view_data to handle sprite information for all characters
- (equipment, weapons, hair, dyes, etc). [Skotlex]
- * Rewrote several clif functions to adapt to the new view_data class.
- [Skotlex]
- * Rewrote the way cloth dye packets are resent to optimize bandwidth usage.
- [Skotlex]
- * Fixed the npc_item_flag thing (enable_items/disable_items script command)
- [Skotlex]
- * Rewrote the disguise implementation to be bandwidth friendly. [Skotlex]
- * Modified the hide options to change your class to INVISIBLE_CLASS, since
- such classes don't even get their view packets sent around. [Skotlex]
- * Added class 139 to npcdb_checkid which was required by some npcs in the
- swordman quest. [Skotlex]
- * April fool! Improved soundeffectall script command. (No, this is not a lie) [Lance]
-
-2006/03/31
- * Fixed skill_require_db loading of the new ammo columns.
- * Added a column to specify the amount of ammo required for skills that
- require it. [Skotlex]
- * Added support for ArrowType requirement on skills. It checks for having
- an item equipped on the arrow-slot who's view has to match with the
- required arrow-type (works the same way it does for weapons). [Skotlex]
- * Skills will automatically be ranged and arrow-types when they have a
- arrow-requirement in battle_calc_weapon_attack [Skotlex]
- * Skills will automatically consume arrows if used with a bow and the skill
- is an attack weapon-based skill even if the skill_require_db doesn't
- specifies arrow requirements (this is for stuff like backstab used with
- bows) [Skotlex]
- * Fixed an infinite recursion in the Wedding Recall skills. [Skotlex]
- * UNT_ATTACK_SKILLS unit packets won't be sent to the client as they are
- supposed to be invisible anyway. [Skotlex]
- * Started work on commands for the IRC Bot, At the moment you can use !eakami <message>
- to broadcast a message, edit ALLOWED_NICK in irc.c to change the nickname
- of the person that is allowed to use it (Shitty authentication method, I know,
- but i'll make user/pass method soon enough.) [Zido]
- * Modified a bit the skill packets of Sharp-Shooting and Brandish Spear in
- hopes of fixing it. [Skotlex]
- * Should fix a bug in GM stealth mode (@hide). [Lance]
-
-2006/03/30
- * Updated char name option. [Vicious]
- * Added a missing return that fixes crashes on status_change_timer when
- source is not found. [Skotlex]
- * Added year day return in gettime function. gettime(8) returns 1~366
- [Foruken]
- * the auth function in login.c won't jstrescapecpy passwords that were
- encrypted. Thanks to foobar. (but are still more cases to check for? Dunno,
- the code is kinda long...) [Skotlex]
- * Endure level 11 and above are now considered infinite-endure, and invoked
- when Berserk is active. [Skotlex]
- * Set the minimum pet hungry delay to 10 [Skotlex]
- * modified functions skill_delayfix and skill_castfix to reduce number of
- arguments. Added function skill_castfix_sc for mobs (who only get status
- change cast reductions, not dex based ones). Also, skill_delayfix will
- never return a value below min_skill_delay_limit. [Skotlex]
- * Modified brandish spear so you won't see the skill-animation for every
- targetted mob. [Skotlex]
- * Added the Steel Body icon to auto-berserk. [Skotlex]
- * Now you can't cast auto-counter while the previous one is active.
- [Skotlex]
- * Added Veider's suggestion to do a hack-report when players request the
- name of an invisible/cloaked character. [Skotlex]
- * Added execution of OnInterIfInit, OnCharIfInit and OnInterIfInitOnce on script
- reload. [Lance]
- * Cleaned up mistakes in irc.c [Lance]
-
-2006/03/29
- * Now none of the pet-menu options will have any effect when the pet's
- intimacy is 0. [Skotlex]
- * Applied a fix to not do range checks on npc_doevent when the npc is not
- on a map. [Skotlex]
- * You can't return to egg a pet that has run away now. [Skotlex]
- * Added ers support to the delayed mob drops. [Skotlex]
- * Some cleaning of the mob_ai. Mobs should stop chasing once you are beyond
- their min_chase range. Improved rude-attacked checking when mobs can't
- move. [Skotlex]
- * range3 is now used as min-chase value of mobs. [Skotlex]
- * Added a debug message when status_change_timer fails. Report it next time
- it shows up. [Skotlex]
- * Fixed tick direct modifications increasing duration instead of decreasing
- it. [Skotlex]
- * You can't SG_FEEL maps already memorized. [Skotlex]
-2006/03/28
- * Fixed the Family recall warp skills. [Skotlex]
- * Fixed pc_percentheal giving life when the rates are negative. [Skotlex]
- * Fixed resetting stats losing the +52 bonus on high classes. [Skotlex]
- * Fixed Wedding support skills healing yourself instead of partner.
- [Skotlex]
- * Added a check to prevent knocking back the Emperium at all costs.
- [Skotlex]
- * Fixed summon mobs being able to cast "summon" skills. [Skotlex]
- * Summoned mobs will inherit the size and ai properties of the master. [Skotlex]
- * Added a debug function to locate all "looping warps". [Skotlex]
- - Now will someone help cleanup those warps?
- * Some cleanup of the skill-use functions in clif.c [Skotlex]
- * Fixed Gunslinger and Ninja skills not showing up and not working due to an error
- in skill_require_db
- - also commited a commented block for GS_FLING that needs to be looked at and posiably
- cleaned before it's uncommented.
- - fixed exp2 not accepting Gunslingers and ninjas
- - fixed the "jobmaster" having the same problem as rebirth
- - added the Gunslinger shops for guns and ammo [Reddozen]
- * Modified clif_getareachar_pc to hide hidden GMs from normal players (players with GM
- level > 0 still able to view) by NOT sending the coordinates. [Lance]
-
-2006/03/27
- * Removed the limits.h file which just breaks compilation on *nix systems
- [Skotlex]
- * Updated some DB work from jA [Vicious]
- * HW_GANBANTEIN now also removes traps. [Skotlex]
- * PF_DOUBLECASTING takes effect amotion time after the initial cast instead
- of amotion*div [Skotlex]
- * SG_KNOWLEDGE now lasts time1 after you quit a map before it clears out
- (defaults to 10 mins currently) [Skotlex]
- * Modified Intravision to modify the status-change packet to specify
- SI_INTRAVISION instead of cloaking/hiding/chasewalk. I believe this is how
- intravision actually works. [Skotlex]
- * Pet catching now uses the menuskill variables to prevent item usage from
- disrupting the catch process. [Skotlex]
- * Added Safetywall to the list not blocked by Dispell. [Skotlex]
- * Added some include limits.h required by window compiles. [Skotlex]
- * Corrected Wedding rings being trade-able. [Skotlex]
-2006/03/26
- * GCC on Cygwin still complaining, resorted to including limits.h in malloc.h [Lance]
- * Refixed the fix with a constant list for Win32 users - limits.h (imported from MSVC) [Lance]
- * Fixed a problem in chrif.c where USHRT_MAX was undefined. [Codemaster]
- * Added jAthena's new start and athena-start shell scripts. [Lance]
- * Changed status_point/skill_point to unsigned short. Adjusted the code as
-
- necessary to prevent overflows. [Skotlex]
-
- * itemdb_exists and itemdb_searchname should now ignore dummy_item matches. [Skotlex]
-
- * Fixed jstrescapecpy crashing when you pass a null string to parse. [Skotlex]
-
-
-2006/03/25
- * Fixed the map-server freeze/crash on Warp Portal. [Skotlex]
- * Fixed Grandcross/Granddarkness showing no skill animation. [Skotlex]
- * Fixed mob-casted grandcross doing nothing unless the target was "self" [Skotlex]
-2006/03/24
- * Fixed / finished most of Gunslinger [Reddozen]
- - fixed some bullets in the item DB
- - adjusted a few rates in skill_cast_db.txt for Gunslingers
- - adjusted a couple skills in skill_db.txt to act correctly
- - adjusted all the SP values for Gunslinger skills
- - changed piercing shot to lv 5 from lv 10
- - made ki Translation fail giving coins to Gunslingers
- - equipping a weapon other than a gatlin gun should cancel SC_GATLINGING. Also made Gatlinfeaver on/off togelable
- - GS_CRACKER will no longer stun players
- - added GS_Disarm
- * Fixed iteminfo only displaying first result when there were many. [Skotlex]
- * Fixed pet hatching. [Skotlex]
- * Small change that SHOULD fix the pet duplication issue. [Skotlex]
- * Fixed Warp Portal. [Skotlex]
- * Modified script commands atcommand/charcommand to execute even if there
- isn't a player attached. They'll use a dummy player data with the same
- position/name as the script's owner (usually an npc). Be careful when using
- this as the result of some @/# commands may be unexpected! [Skotlex]
- * Some cleaning around the return to egg code. Pets should stop duplicating
- now. [Skotlex]
- * Some cleaning of the egg hatching routine to prevent spawning the pet if
- the egg can't be found in the inventory. [Skotlex]
- * Removed a pair of autoadded "data/" strings on grfio.c to see if that
- helps with the data_dir map loading. [Skotlex]
- * Fixed skillidx not being set whenever a mob uses a skill. This explains
- skills like metamorphosis/summon_slaves not working at all. [Skotlex]
- * Fixed unit_skillcastcancel reading the nocastcancel flags the exact
- wrong way around [blackhole89]
- * Added function map_search_freecell to locate an available cell around an
- area (for recall/warping skills). UNTESTED. [Skotlex]
- * Added unit.c to the VC8 project files. Thanks to Joshuaali [Skotlex]
- * Fixed Magnum-break/GrandCross displaying multiple times the skill effect
- (once per target) [Skotlex]
-2006/03/23
- * Fixed a crash in unit_useskill_pos2 [Skotlex]
- * Updated mob_db.sql and item_db.sql to current txt versions. [Skotlex]
- * Fixed Devotion not properly being cleared on death/near death in some
- cases. [Skotlex]
- * Fixed Shield-Reflect not being correctly ended when devotion does.
- [Skotlex]
- * Fixed DEX-based casting time and delay reduction. [blackhole89]
- * Modified the function pc_percent_heal to prevent overflow problems. [Skotlex]
- * Changed the second entry in the water_height.txt listing to specify
- directly the .rsw file (instead of .gat). [Skotlex]
- * Fixed Potion Pitcher sometimes crashing the server. [Skotlex]
- * Fixed a compile warning by adjusting the acid demonstration formula.
- [Skotlex]
- * Added flag 2 to the skill_castnodex_db file for skills that shouldn't be
- affected by delay/cast reducing skills/effects. [Skotlex]
- * Added SantaPoring's water_height.txt modifications. [Lance]
- * Minor cleanups. [Lance]
-
-2006/03/22
- * Fixed function pc_isCardAllowedOn causing searches for non-existant item
- id 0. [Skotlex]
- * Fixed Arrow Shower. [Skotlex]
- * Merged the unit_data structure from jA for handling unit-related data
- (attack times, walking, auto-attack timers, skill related data). This is a
- huge change that affects walking, attacking, auto-attacking, skill usage
- and character clean up from maps. I spent the last two days clearing out
- bugs, and even though I couldn't find any more, I wouldn't be surprised for
- a corner-case or two I missed. [Skotlex]
- * Modified unit_skillcastcancel to receive flag&2, which stands for "cancel
- casting only if current skill is cancellable" [Skotlex]
- * Battle config options changed from yes/no to BL_TYPE settings:
- skillrange_by_distance, skill_noreiteration, skill_nofootset,
- gvg_traps_target_all, skill_log, attack_direction_change,
- auto_counter_type. See (Note 4) in the relevant battle config files.
- [Skotlex]
- * Clif.c will disconnect sessions that send an unknown command packet above
- 0x30000 instead of just ignoring it. [Skotlex]
- * Cleaned up error reporting during mob-skill loading to be less spamy with
- non-loaded mobs. [Skotlex]
- * Corrected water_height reading. It works now, with the exception that
- cloned maps don't get their water-level read because they don't have a rsw
- file. The solution is to add all cloned maps to water_level.txt (ie:
- "new_1-1.gat new_zone01.rsw" makes the new_zone01.rsw stored water-level be
- applied to map new_1-1.gat).
- Anyone can help collect all the clone maps to fill up water_height?
- * status_check_skilluse won't block skill-specific checks (silence,
- berserk, steel-body, etc) when the skill in use is an item-invoked skill.
- [Skotlex]
- * Merged LittleWolf's function to read the map-height directly from the rsw
- file. Now when building the map-cache, the water-heights should be
- automatically read as well directly from the rsw's. [Skotlex]
- WARNING: Not tested yet!
- The water-height config file now is for aliases. When the rsw for a
- certain map is not found, and this map exists in the water_height list,
- then the water height of the second map listed in that file is used.
- * Some cleanups in irc.c [Skotlex]
- * Magic skills that ignore element now also don't take into account
- elemental cards. [Skotlex]
- * Fixed compiler warnings in battle.c [Lance]
- * Changes by [reddozen] -->
- - Updated Full Buster's damage, status effects, and skill levels
- - Bullseye now only uses 1 coin
- - changed Adjustment's required SP
- - changed Incerase Accuracy's effect bonuses
- - changed Magical Bullet's SP cost
- - changed Piercing Shot's damage and SP
- - changed Desperado's range, hit count, aftercast delay, and SP
- - fixed Absorb Spirit Sphere being able to remove coins
- - changed Acid Demonstration's damage to the new Japanese formula
-
-2006/03/21
- * Fixed duel in pk-mode (same party/same guild/alliance non-targeting issue).
- Thanks to Hobbit for pointing that out. [LuzZza]
- * Fix on not showing guildmembers logins/logouts messages. [LuzZza]
- * Fixed SC_SWOO's opt3 value. Small monsters should stay small for skill's
- duration now. [Skotlex]
- * Fixed allowing multiple recast of Dissonance/Ugly-Dance [Skotlex]
- * Fixed those annoying irc.c compile warnings. [Skotlex]
-2006/03/20
- * Added monster_ai&16 setting for executing the hard ai on ALL mobs in maps
- with players instead of just mobs in the vecinity of players. [Skotlex]
- * Cleaned up some guild functions. [LuzZza]
- - Now guild leaving/explusion packets sends correctly.
- - Fix to prevent creation alliance/opposition with same guilds.
-2006/03/19
- * @stfu now allows negative intervals to be specified. [Skotlex]
- * Added overflow check to the login-server when sending GM accounts to
- char. [Skotlex]
- * Small fix to prevent killer/killable states from allowing you to target
- yourself. [Skotlex]
- * Added Explosion Spirits to list of effects that dispel on logout.
- [Skotlex]
- * Fixed handling of guild skills by pc_blockskill_start, moved it to
- skill.c [Skotlex]
- * Fixed autoguard icon showing with stun. [Skotlex]
- * Fixed acid demonstration breaking shield instead of armor. [Skotlex]
- * Fixed Slim Pitcher crashing server ocassionally. [Skotlex]
- * Hopefully fixed Ankle Snare lasting the whole trap's duration [Skotlex]
- * Added sc_start(SC_ENDURE) on infinite endure bonus. [Skotlex]
- * Fixed Berserk Pitcher consuming required items twice. [Skotlex]
-2006/03/18
- * Fixed BA_DISSONANCE and DC_UGLYDANCE not working. status_check_skilluse was blocking
- them due to the lack of an exception like BA_MUSICALSTRIKE has it. [blackhole89]
- * Documentation update on NPC whisper and rid2name. [Lance]
- * Fixed event_kill_pc to behave like what it should instead of another replication
- of event_death. Added script function rid2name to convert bl ids to name. [Lance]
- * Recoded setmobdata script function. Fixed mob_damage typo sd -> mvp_sd. [Lance]
- * Added 'GetMonsterInfo(MobID,Idx)' script function. [Lupus]
- You can get monsters name,level,race, etc by its Id. Check npc\sample\getmonsterinfo.txt
- * Fixed warnings on compilers again. [Lance]
-
-2006/03/17
- * Fixed the mob_skill_db by commenting out lines with targeted skills
- being cast during an idle state. (Thanks to LittleWolf) [Zephiris]
- * Removed a block of code from skill_check_condition that actually belongs
- to status_check_skilluse. Should fix silence/stun blocking skills
- regardless of settings. [Skotlex]
- * Fixed misleading and inaccurately documented events and added a missing flag. [Lance]
- * Fixed npc_cleanup_dbsub not removing key and caused pointer being freed problem. [Lance]
- * Fixed handling of the char_gm_read config for packet 0x2af7 (reloadgmdb)
- [Skotlex]
- * Added battle_config debuff_on_logout which removes Asura's SP regen delay
- and Strip-Equip effects on logout when set to yes (default,
- conf/battle/skill.conf). [Skotlex]
- * removed auto-attaching of player-run scripts in initnpctimer. You must
- use attachnpctimer instead! [Skotlex]
- * Final fix on Juperos NPC. [Lance]
- * Fix on initnpctimer not attaching rid. [Lance]
- * Fix on OnTouch ignoring -1 NPCs. [Lance]
- * Fix on @reloadscript crashing due to passing non BL_SKILL bl to a function that accepts only BL_SKILL bl.
- [Lance]
- * Added area NPC detection in clif_parseLoadEndAck. [Lance]
- * Fixed compiler warning in script.c get_mob_data. [Lance]
- * Temperory resolved issues on Juperos until I get the exact description on the behaviour
- in retail servers. [Lance]
-
-2006/03/16
- * Changed NJ_ZENYNAGE according to this weeks patch to deal a random [MasterOfMuppets]
- ammount of damage depending on the skill lvl.
- * @kill_monster/@kill_monster2 won't touch Guardians/Emperium now. [Skotlex]
- * Small change in the random item reading function, may fix @itemdbreload
- messing up random item searches. [Skotlex]
- * Restricted GS_BULLSEYE to only be used on demi-human or brute monster targets [MasterOfMuppets]
-2006/03/15
- * mob_chat_sub fix. Added buildin_pcblockmove. [Lance]
- * BL_PC and BL_MOB control script commands (experimental) [Lance]
- * Made an adjustment to addspiritball() to allow Gunslingers to summon up to 10 spheres [reddozen]
- * Fixed Tarot Card of Fate using time instead of time2 which is the one
- that actually holds the effect duration. [Skotlex]
- * Fixed mob random walk interval being set to up to 6K seconds in some
- instances. [Skotlex]
- * Added mapflag nodrop (prevents droping items to the ground). [Skotlex]
- * Fixed mapflag notrade doing nothing. [Skotlex]
- * Likely fixed Gravitation not hitting except for the last hit. [Skotlex]
- * Removed the hardcoded duration of 30 seconds for sleep. [Skotlex]
- * Fixed rangecheck for pet skill usage of INF_SELF_SKILL type of skills
- [Skotlex]
- * Removed inall/exall from atcommand.conf since those two do not exist!
- (pointed out by Ancyker) [Skotlex]
- * @me now uses entry 270 in msg_athena as output format. [Skotlex]
- * gm_skill_unconditional setting now also overrides skill_partner_check
- setting. [Skotlex]
- * Emulated strtok_r functions to work strictly with ANSI compilers. [Lance]
- * Added battle config options item_rate_adddrop, item_drop_add_min and
- item_drop_add_max to control drop rate of card-acquired loot bonuses.
- (conf/battle/drops.conf) [Skotlex]
- * Added item_db2.sql and mob_db2.sql, thanks to Joshuaali [Skotlex]
- * Added more usage of msg_athena on the slave atcommands messages. [Skotlex]
- * Fixed twilight pharmacy dropping 1 item to the ground instead of the qty
- produced. Thanks to k3dt [Skotlex]
- * Fixed Plagiarism not working unless you had some sc active. [Skotlex]
-2006/03/14
- * Fixed a possible crash in Venom Splasher if the countdown is too high.
- [Skotlex]
- * Fixed skill_notok blocking guild skills [Skotlex]
- * Fixed Napalm vulcan's time2 entry in the skill_cast_db [Skotlex]
- * Fixed the average_lv column size specification for levels above 255.
- Thanks to Joshuaali (upgrade_svn5607.sql) [Skotlex]
- * Updated @rura/@warp. Now you can use both "@warp mapname x y" and
- "@warp mapname,x,y". [LuzZza]
- * Added at-command @tonpc <NPC_name> (warp to NPC). [LuzZza]
- * Fixed @where at-command. [LuzZza]
- * Fixed WZ_WATERBALL + HW_MAGICPOWER [Skotlex]
- * Fixed incorrect range check in autospell-when-hit triggers. [Skotlex]
- * Modified Wedding recall skills to behave as in official [Skotlex]
- * Modified Arrow Shower to be a ground-based skill and work as it should on
- officials. However, the unit_id is still unknown. [Skotlex]
- * Fixed skill_additional_effect triggering every time you were being hit
- even if no damage was returned. [Skotlex]
- * Fixed battle_calc_damage_return to make magic damage be returned by 100%,
- and received damage nullified. [Skotlex]
- * Changed a bit status_check_skilluse to check for dead characters, should
- fix all the weird attack/attacked while dead bugs. [Skotlex]
- * Fixed player auto-attack not cancelling when dead. [Skotlex]
-2006/03/13
- * Finished some checks to make sure Land Protector Only blocks BF_MAGIC
- skills. Hammerfall is no longer blocked. [Skotlex]
- * Fixed script command warpparty looking for an attached player even when
- it is not needed. [Skotlex]
- * Shield Reflect is now passed through Devotion as well. [Skotlex]
- - Devoted characters lose the devotion effect when the Crusader is at less
- than 25% Hp. [Skotlex]
- * chrif_scdata_save will not send a save scdata request when the char has
- been already tagged as in the final save. [Skotlex]
- * Some status_change_start cleanups, stuff like blessing should now remove
- stone/curse even if the status does not begins because the character is
- already blessed. [Skotlex]
- * Cleaned SC_SUITON a bit to get rid of that compile warning. [Skotlex]
- * Added function battle_calc_gvg_damage for gvg related damage reductions.
- Fixes Gravitation being reduced as well as Pressure overriding max-castles
- restriction. [Skotlex]
- * Corrected char-server parameters so that the subnet config file is the
- third parameter, not the second (which was conflicting with
- inter_athena.conf's argument), thanks to foobar. [Skotlex]
- * PR_BENEDICTIO now ignores mdef [Skotlex]
- * Fixed chatlog's x/y column capacity in sql-files/logs.sql [Skotlex]
-2006/03/12
- * Updated clone skill copy to consider combo-skills. [Skotlex]
- * no_spawn_on_player won't work on mobs with no respawn delays now. [Skotlex]
-2006/03/10
- * Cleaned up the Skillbreaker implementation, HP gaining happens at level 5
- now. [Skotlex]
- * Autospells won't trigger now on maps where said skills are forbidden.
- [Skotlex]
- * Changed div (multi-hit) behaviour. Skills with div above zero will get
- their total damage increased by the number of hits, div less than zero is
- just for "show", total number of hits displayed is abs(div), but damage
- isn't increased by number of hits. [Skotlex]
- * Adjusted several skill damage equations to make up for the above change.
- [Skotlex]
- * Fixed a overflow bug when one of the item_random* files has too many
- random items. [Skotlex]
- * Fixed a variable loopback problem on NPC shop price checking routine. [Lance]
- * Fixed a memory overwrite crash on pc_readdb, thanks to foobar for the
- fix. [Skotlex]
- * Fixed only the first TK stance triggering when you have multiple of them
- active. [Skotlex]
- * Default of skill_attack_enable changed to yes. [Skotlex]
-2006/03/09
- * Fixed the dancer/bard soul-linked skills toggling on/off with each call
- to pc_calc_status. [Skotlex]
- * Fixed a bug in the pc_skillreset function which allowed TK rankers to
- accumulate skill points. [Skotlex]
- * Fixed a major memory leak in status.c causing the last column of job_db1.txt
- never being read. I have no idea how long this has been there, but signs point
- to us using Katars at a random ASPD from somewhere in memory for ages. [blackhole89]
- * Fixed a critical bug in job_db1.txt reading in status_readdb. [blackhole89]
- * Fixed pc_damage_sp not properly substracting SP. [Skotlex]
- * Made Magic Crasher a BF_WEAPON attack. [Skotlex]
- * Made skill_unit_range a per-level setting. meteor and Lov now have their
- unit range for bosses adjusted in the skill_unit_db rather than
- hardcoded. [Skotlex]
- * Added Gunslinger/Ninja Status Change icons. Somebody needs to look into
- them though for not all SCs have a matching SI. [blackhole89]
- * Changed ITEM_NAME_LENGTH to 50. [Skotlex]
- * Fixed stun's duration not getting reduced by vit + luk/3 [Skotlex]
- * Fixed #itemlist not taking into consideration crafted/forged items and
- pet eggs. [Skotlex]
-2006/03/08
- * More work on ninja/gs. Which made me do... [Vicious]
- - Add more weapon type(17~21 for guns) [Vicious]
- - Included MAX_WEAPON_TYPE in status.h and updated the codes
- (Whose idea was it to do static number... esp dual weapon) [Vicious]
- * Fixed a bug that was making the no_spawn_on_player setting useless.
- [Skotlex]
- * Added Deadly Poison and Bleeding to status_get_sc_def, meaning that now
- vit does increases defense against being inflicted from it. [Skotlex]
- * Fixed and tested @whodrops [Skotlex]
- * Updates to Gunslinger skills' DB entries. [blackhole89]
- * Rewrote pc_jobchange to be sane by using the map internal codes instead
- of a mesh of complicated nested comparisons. [Skotlex]
- * pc_authok will now change you to a novice if your class isn't identified
- as a valid one. BACK UP before updating, because.. well, just in case you
- start seeing novices filling up your city. [Skotlex]
- * Mobs will now chase you even if you hit them from outside their range of
- view. [Skotlex]
- * Fixed item disappearing from the floor when you attempted to pick it up
- and there was no room in your inventory. [Skotlex]
- * About half-ish nj/gs skills are semi/fully-done. No effect/status yet though. [Vicious]
- * Added atcommand @whodrops which lists mobs with the top drop-rates for a
- given item. List of stored mobs and their dropchances is also defined by
- MAX_SEARCH on map.h [Skotlex]
- * Modified atcommands @mobinfo and @iteminfo to display multiple matches
- instead of just one. Max number of matches to display is set in map.h
- (MAX_SEARCH) which is currently 5. [Skotlex]
-2006/03/07
- * Base for ninja/gunslinger is mostly done. need to work on skills now. [Vicious]
- - Updated sql-files/ mob_db.sql and item_db.sql to current txt dbs. [Skotlex]
- * @job ninja/gunslinger. No skill tree or anything yet. [Vicious]
- * Gospel won't start taking effect until after 10 secs have passed since
- invocation. [Skotlex]
- * Now if a skill has inf set to 4 (self skill) and inf2 512 (cannot target
- self) this skill becomes a target-auto-select skill, which targets your
- current attack target, and won't stop your current attack. The current
- attack is delayed by your aspd (except for a few skills such as the monk
- combo skills which readjust this delay). All Monk combo skills plus Taekwon
- kick skills have been updated to use this. [Skotlex]
- * Added a check that forces self skills (inf = 4) to select yourself as
- target to prevent oddities from crafted packets. [Skotlex]
- * More ground work for Ninja/Gunslinger [Vicious]
- * status_calc_pc now assumes that if your max hp is negative, it has
- overflowed, and as such, it is set to the max_hp setting instead of 1. This
- 'dangerous' assumptio is alright as long as there aren't equipment that can
- send your hp to negative values. [Skotlex]
- - Fixed the soul linker skill tree. (Thanks to muad_dib) [Zephiris]
- * Added Gunslinger and Ninja into @job. of course, you need latest EXE
- for make this work... and of course no skills yet! [Vicious]
- * Storm Gust now knocks back on a random direction instead of away from the
- storm. [Skotlex]
-2006/03/06
- * Some fixes due to the guild-skill changing location (being moved from
- 500->900 within the code) [Skotlex]
- * Fixed npc_event doing a map-check when the npc is not on any map.
- [Skotlex]
- * Fixed a debug message showing up on skill castend nodamage id when using
- a guild skill. [Skotlex]
- * Fixed #save not working on maps not in the current map server. [Skotlex]
- * Added battle config clear_skills_on_death to decide whether all
- ground-based skills should be removed when you die. Defaults to yes.
- [Skotlex]
-2006/03/05
- * Removed my EXP limit as it did not do what it was supposed to [Codemaster]
- * Fixed remove-trap [Skotlex]
- * Fixed animation of Redemptio [Skotlex]
- * Some reorganization of how the skill check functions behave
- (skill_get_*). Guild skills have been moved to the range 900~915 (instead
- of 500~519 in the code). [Skotlex]
- * Set the default for display_delay_skill_fail to 'no' as it should have been
- for a while (the kRO patch about that was last year, long time ago) [DracoRPG]
- * Fixed easter.txt typo. [Lance]
- * Extended summon command to enable custom timeouts. [Lance]
-
-2006/03/04
- * Fixed a bug in the subnet checking function, login-TXT server. Also
- changed the messages to be a bit more informative. [Skotlex]
-2006/03/03
- * Added function battle_set_walkdelay in charge of updating walkdelays of
- characters based on two criterias: when the delay is induced by damage, if
- the current walk delay isn't over yet, do not update it. If the delay is
- instead caused by a skill, then the current walk delay cannot be decreased,
- only increased. [Skotlex]
- * Added upgrade_svn5455.sql, it converts the manner and karma columns to
- signed. Apply this if your tables have the field as unsigned (which would
- explain mute always disappearing after relogging) [Skotlex]
- * status_change_start now checks on a 0->10000 scale, should fix sc-cards
- with very low rates never triggering (eg: some coma-inducing cards).
- [Skotlex]
- * Cleaned up the active guild skills. They should be usable now by
- non-players as well. [Skotlex]
- * Fixed crash on the NPC whisper system when the message's size was 1.
- [Skotlex]
- * Strip status changes are now removed on logout. [Skotlex]
- * Added a column in skill_cast_db for specifying can't walk delays. It's
- all set to 0 currently, so someone get updating them! [Skotlex]
- * Removed the apply walk-delay entry from skill_cast_nodex as the new walk
- delay column handles this now. [Skotlex]
- * Fixed autoloot dropping the item to the ground even when it was
- autolooted. [Skotlex]
- * Fixed character deletion working on SQL without an email address (Thanks to Valaris) [Zephiris]
- * Added event 8 for mobspawns that should spawn with special ai set. This
- means that now in the mob_spawn files if you use 8 as the last entry, the
- mob will use the special ai, and as such, it will only attack other mobs,
- not players (can obviously be combined with 2 for small mobs and 4 for
- large mobs, eg: 10 for a small mob with special ai set) [Skotlex]
- * Modifed battle_check_target so that mobs with special ai will only target
- by default mobs without said state (this will prevent normal clones from
- fighting among themselves, for example) [Skotlex]
- * Trick dead now ends on logout [Skotlex]
- * Added mapflag nocommand which blocks @/# commands unless your gm level is
- above gm_skill_unconditional's level. [Skotlex]
- * Fixed weapon scripts not being executed unless the weapon was forged.
- [Skotlex]
- * gm_skill_unconditional is now a no/gm-level setting instead of yes/no
- [Skotlex]
-2006/03/02
- * Slaves inherit speed will now only work if the master can move. [Skotlex]
- * Some cleanup and reorganization on the way pet-skill variables are
- handled. [Skotlex]
- * Fixed a typo that disabled all pet support skills from triggering (except
- ground-based ones) [Skotlex]
- * status_check_skilluse cleanup. Some status will only block skills when
- they are first used, not on cast-end (which includes auto-spells and
- ground-skill checks). Now when status_castcancel is 'no', skills WILL
- come off after the cast bar is done. [Skotlex]
- * Gravitation now only affects the caster, should have also fixed the skill
- not doing damage when skill_caster_check is set. [Skotlex]
- * Max fame list size is now defined by MAX_FAME_LIST constant (mmo.h)
- [Skotlex]
- * Individual fame lists sizes can now be specified through the char-server
- (check the fame list configs in char_athena.conf) [Skotlex]
- * Some cleanup on mob_can_reach code to prevent unnecessary path-searching
- [Skotlex]
- * Optimized the path-searching ai for mobs to try target cells around the
- target in order rather than randomly picked cells. [Skotlex]
- * Applied Snufkin's patch to fix compilation on FreeBSD. [Skotlex]
- * Fixed mobs targetting themselves after using a support skill. [Skotlex]
- * Gospel no longer blocks item usage of whoever is in the area of effect,
- only the caster of Gospel can't use healing items now. [Skotlex]
- * Added the long/near attack_def_rate card effects to battle_calc_magic
- (horn card and the like will now work with spells) [Skotlex]
- - Elemental fields should vanish on map-change now. [Skotlex]
- - Land Protector only blocks magical ground skills now. [Skotlex]
- * Fixed item pickup not picking anything unless you were in a party with
- item distribution set [Skotlex]
-2006/03/01
- * Made it so players that are at the max level do not receive EXP.
- This makes it so a player at the max level (ie - 99) cannot join a party
- and feed all of his or her EXP to the other party members [Codemaster]
- * Mapregsql will now fully depend on mmysql_handle. [Lance]
- * Optimized strcharinfo to use switch. [Lance]
- * Some cleanup of the mob skill reading. Added error reporting for unknown
- states/conditions, error reporting now specifies the file and line number.
- [Skotlex]
- * Silence will only block skills when they have begun casting, not when the
- cast bar is done. This also means that auto-spells will likely come-out
- even when silenced. [Skotlex]
- * opt1 status will block skills when they are done casting only if the
- sc_castcancel option is set. [Skotlex]
- * strcharinfo now returns blank instead of crashing the map server when
- there's no player attached. [Skotlex]
- * Added a missing mysql_init call to the mapreg sql handle. [Skotlex]
- * Checked and fixed the script engine barking when you try to have a label
- with the same name as a const.txt defined parameter. [Skotlex]
- * Turn Undead and Offensive Resurrection should now work on undead players.
- [Skotlex]
- * Fixed the range checking of Repair weapon [Skotlex]
- * Rude attacked is now also triggered when you hit a target that can't move
- out of their melee attack range. [Skotlex]
- * Mob ai will attempt to do a long-range attacked condition skill before
- unlocking a target when it is attacked and said target is out of melee
- range of a non-walking mob. [Skotlex]
- * Corrected mobskill event to set the target_id before triggering. This
- should fix shortrange/longrange attacked mob skill conditions. [Skotlex]
- * Moved MSC_SKILLUSED trigger to mobskill_event which is triggered in
- battle_calc_damage. It is also triggered on skill_castend_nodamage_id.
- [Skotlex]
- * Added party_share_loot for handling party-share loot. it should now work
- with autoloot as well. [Skotlex]
- * Fixed skill_break_rate breaking stuff even if the rate is 0. [Skotlex]
- * pc_stopwalking will not send a fixpos packet if you are sitting. [Skotlex]
- * mob_can_reach rude-attacked condition now uses the mob's field of view.
- [Skotlex]
- * SC_NOCHAT is automatically started on pc_authok if manner is negative.
- [Skotlex]
- * Map server now refuses to start if you try to define a label with the
- same name as some const.txt defined character parameter. [Skotlex]
- * Corrected a few Compiling Warnings [Codemaster]
- * Added the ability to select GM loading via Login (default) or Char [Codemaster]
- * Added script command 'setbattleflag'. [Lance]
-2006/02/28
- * Rewrote LAN support code. Changed configuration file name
- lan_support.conf to subnet_athena.conf, changed it syntax. [LuzZza]
- * Added script command 'equip' to equip items. [Lance]
- * Fixed dependancies in map-server compiling (VC7.1). [Lance]
- * Added autoequip flag check for pc_takeitem. If it impacts on perfomance, please remove it. [Lance]
-2006/02/24
- * Prevented guild/party recall to work on GMs of greater level than
- yourself. [Skotlex]
- * Prevent muting players with higher GM level than yourself. [Skotlex]
- * Fixed Lady Tanee's spawns. [Skotlex]
-2006/02/23
- * Fixed the CL_WHITE define, thanks to FlavioJS [Skotlex]
- * NPC break equipment stuff now has a 1.5% per skilllv success rate.
- - This is a custom value as 20%-lv10 seems too high and 10%-lv10 seems too
- low. [Skotlex]
- * pc_setpos won't random warp players if placed on top of Moonlight Petals
- [Skotlex]
- * Removed the check in clif.c for npc_shopid as the client never sends a
- packet when the trade is cancelled... [Skotlex]
- * Player-summoned mobs won't level up now. [Skotlex]
- * Fixed Super Novice explosion spirits triggering no matter what you said
- on the third line. It now triggers on the fourth line.... [Skotlex]
- * Fixed GTB blocking targetted spells when gtb_pvp_only was set. [Skotlex]
- * Merged the code of Ankle snare and Spider web. It no longer moves target
- if sc failed. [Skotlex]
- * Players should stop walking as soon as they start vending or get into a
- chat. [Skotlex]
- * Added mob skill conditions myhpinrate and friendhpinrate. [Skotlex]
- * Added monster_ai condition 16 (enable `friend` targetted skills to heal
- oneself) [Skotlex]
- * Fixed the shop id not clearing when buying/selling (which made you get
- stuck afterwards). [Skotlex]
- * Modified the way autospells stack to mimic official servers. Cards of the
- same ID cannot stack, but different cards with the same skill can each
- trigger indepedently of each other. [Skotlex]
- * Added battle_config autospell_stacking to enable stacking of cards of
- same ID. (see battle/item.conf) [Skotlex]
- * Moved card-specific battle options to items.conf [Skotlex]
- * Autospells triggered when hit will check the range to the target.
- [Skotlex]
- * Some cleaning up of status_calc_pc [Skotlex]
- * In status_change_start capped the passed success chance to 100% [Skotlex]
-2006/02/22
- * Windwalk's flee bonus is now +1 every 2 skill lvs. [Skotlex]
- * Changed the way equipment breaking works. Function pc_break_equip was
- removed and now skill_break_equip is used. Basicly, it's the same as
- before, except that when you 'break' a piece of equipment of a
- non-player, the corresponding strip(weapon/armor/shield/helm) status
- effect is induced (duration: strip skill lv 1) [Skotlex]
- * Cleaned up the Dev folder. [Skotlex]
- - Take note of the file todo-for-stable, which holds all modifications in
- trunk that have not yet made it into stable. Be sure to update the file
- as needed.
- * Updated the path searching code with jA's current implementation.
- [Skotlex]
- - There is a slight chance the CELL_NOSTACK mod broke, someone test that.
-2006/02/21
- * Fixed the range-check of targetted skills (was evaluating the range as 0
- always) [Skotlex]
- * Now you should receive the party/guild mini-dots on map-load without the
- need of waiting for others to "move" for you to receive the update (fixes
- dead characters never showing up on the map) [Skotlex]
- * Fix to prevent using main chat when it disabled in atcommand_athena. [LuzZza]
- - Fixed message codes in duel functions.
- - Small fix in log_refine, incorrect compare expression.
- * Some cleaning of the warp portal code so that when it is "pre-casted" it
- doesn't mess up with other casted skills. [Skotlex]
- * Some fixing on the weapon-refine code. [Skotlex]
- * Cleaned up some npc_event error reporting. [Skotlex]
- * Some cleanup of the castend routines to not clear the skill variables if
- for some reason the casted skill triggers another skill. [Skotlex]
- * Vending is now cancelled on a pc_setpos [Skotlex]
- * Pressure again ignores Basilica. [Skotlex]
- * Fixed attacker's sc being nulled when the target's sc is empty (fixes
- most status changes not taking effect during battle) [Skotlex]
- * Slaves now do a battle_check_target to check if the new target is an
- enemy when acquired through the master's skilltarget. [Skotlex]
- * Fixed SC_SKE halving de2 twice. [Skotlex]
-2006/02/20
- * The Super Novice Explosion Spirits skill will now trigger when the last
- sentence is said (not after the next sentence as it was currently) [Skotlex]
- * Now the default delay of amotion is applied only for BF_WEAPON, non
- NK_NO_DAMAGE skills (so stuff like Summon Spirit Sphere get the default
- skill delay rather than ASPD) [Skotlex]
- * Made the Char-SQL server send the GM listing when the map server
- connects. [Skotlex]
- * Play-dead and Basilica now block Gospel [Skotlex]
- * Map SQL server will no longer ignore the gm-list packets received from
- char. [Skotlex]
- * Login-SQL server will not free the current GM listing if the SQL reading
- of it failed (prevents GM lists being lost on SQL connection problems)
- [Skotlex]
- * Login-SQL will now read for the GM list ALL accounts with level above 0,
- not just those with level above min_gm_level (just like the TXT server
- does) [Skotlex]
- * SC_NOCHAT is not dispelled on death now. [Skotlex]
- * Cleaned up the global message function, Super Novice Explosion Spirits
- will not trigger on maps where said skill can't be used. [Skotlex]
- * Close confine won't get the bonus range on cast as other skills do due to
- exploits. [Skotlex]
- * Fixed a bug in setnpctimer. [Skotlex]
- * Menu-based skills now use their own variables separetly from the normal
- skill variables. This should enable them to work even when you keep doing
- other stuff between the menu invocation and selection. Also gives a better
- control over packet-based exploits. Affected skill/script-commands are:
- [Skotlex]
- - Arrow Crafting
- - Warp Portal / Teleport
- - Item producing
- - Identify
- - Repair weapon
- - Pet egg selection
- - Hindsight
- - Weapon refine.
- - Feel of the Stars, Moon and Stars.
- * Corrected the implementation of Gangster's Paradise to work as it should.
- [Skotlex]
- * Fixed Close-confine not properly ending on a knockback (that includes
- backsliding) [Skotlex]
- * Changed MAX_RANDITEM from 2000 to 10000 to fit new databases [Komurka]
- * Fixed Taekwon stances not triggering. [Skotlex]
- * Added atcommand @exp [Skotlex]
- * Added error reporting when add_timer_interval receives a negative/0
- interval value. [Skotlex]
- * Fixed a possible infinite recursion bug with splash self skills. [Skotlex]
- * Modified the way firewall_hits_on_undead works, to loop and invoke
- multiple skill_attacks based on the value. Now it behaves a lot closer to
- how Aegis Firewall does (except a good default value for this config switch
- is missing) [Skotlex]
- * Preparing eA for new mob_skill_db from Aegis 10.2 [Komurka]
- - increased MAX_MOBSKILL 32 -> 40
-
-2006/02/19
- * Some fixes to the last item usage tick. Items should be working fine now.
- [Skotlex]
- * Fixed parsing of @kamic/@kamib to check for case. [Skotlex]
- * Now you can hide from Pressure. [Skotlex]
- * Weapon endowing will work on targets already endowed with the same
- element. [Skotlex]
- * Now reseff cards will take effect even if the status change is passed
- with &8 flag. In short, now reseff are ALWAYS applied to the status change
- defense. [Skotlex]
- * Removed a missing break that was making AM_TWILIGHT2/3 always fail.
- [Skotlex]
-2006/02/18
- * Removed the SP_<stat> cases from status_get_sc_def as they were colliding
- with other status changes. [Skotlex]
- * Implemented SG_MIRACLE (Miracle of the Sun, Moon and Stars) [Komurka]
- - duration is stored in battle_config.sg_miracle_skill_duration (currently
- it's set to 10 minutes)
- - ratio is stored in battle_config.sg_miracle_skill_ratio (currently it's set
- to 0.01% chance per character move)
- - this skill enables you usage of all Warmth skills, Comfort skills, and also
- all mobs will be target of the Stars regardless of the day and map
- - you'll see message "[Miracle of the Sun, Moon and Stars]" when skill kicks in
- * Added upgrade file upgrade_svn5322.sql because apparently not everyone
- has the guild table with autoincremental guild_id defined. [Skotlex]
- - If you can't create guilds, chances are you need to apply this ugprade.
- * Fixed a missing break that was making Heal, Resurrection and some others
- become attack skills [Skotlex]
- * Some CELL_NOSTACK Mod updates: [Skotlex]
- - Made the free-cell lookup more extensive.
- - Allowed pc_setpos to place players on top of cells that are stacked
- - Fixed a logic bug in the mob-walk code that was making them get stuck and
- not move (triggered quite often when the cell no stack mod is enabled)
-2006/02/17
- * Cleaned up irc.c, may it compile now on Windows? [Skotlex]
- * Updated the VC project files by Joshuaali. [Skotlex]
- * Fixed possible crash on pet egg select. [Skotlex]
- * Massive update on the way splash/area (non-ground) skills work. [Skotlex]
- - the new column 'splash' in skill_db is now used to determine the area of
- effect of all related skills (eg: splash range of fireball, area of effect
- of angelus, the splash damage area of mines, etc)
- - nk definition update. &1 is no damage skills, &2 is for splash skills. A
- skill can be tagged 3 to indicate it is both. This is used to indicate the
- type of handling the skill should use, but it also helps as all splash
- skills get an extra check to prevent them from hitting 'unhittable'
- characters (ie: hidden) while all skills not tagged as non-damage can
- trigger auto-spells.
- - All self skills are automatically executed as no-damage skills and get
- re-routed as damage skills when the source and target do not coincide (this
- handles all combo skills)
- - Some skills may have screwed up (I fixed/moved all which I could find
- needed updating). As usual, report any issues.
- * Added an upgrade_svn file that should fix the party table by making the
- party_id auto-incremental. Apply this or new parties will always fail!
- [Skotlex]
- * Changed around the included files in irc.c to see if it compiles under
- Win32 native. [Skotlex]
- * Char-SQL server updates: [Skotlex]
- - Removed the unnecessary party/guild check on each char-save.
- - Removed the 'quick loaded char' messages.
- - Some code cleanup.
- - Fixed one or two memory leaks.
- * Applied the suggested fixes by Joshuaali to fix the compiling of the sql
- map server on Win32 systems. [Skotlex]
- - note that irc.c is still uncompilable, but the rest "should be fine" now.
- * Fixed the memory leak on opt_2str as pointed out by End of Exam [Skotlex]
- * Fixed a few char SQL memory leaks as pointed out by End of Exam [Skotlex]
-2006/02/16
- * Fixed a crash in AL_TELEPORT. [Skotlex]
- * Now you can't close-confine and already confined mob. [Skotlex]
- * mysql/my_global.h now includes winnt.h under Windows systems... [Skotlex]
- * Some code cleanup of status.c [Skotlex]
- * Removed the check that prevented mobs from walking into a basilica. [Skotlex]
- * Added a new column in the skill_db to specify the
- splash-range/area-of-effect of skills. (Work in progress) [Skotlex]
- * Autocasted AL_TELEPORT should now automatically pick menu entry rather
- than showing the box up. [Skotlex]
- * The battle config options sp_rate and hp_rate are now applied
- independently of the same type of bonuses from cards. [Skotlex]
- * In CELL_NOSTACK mode, mob_canreach will now ignore other players when
- checking if there's a path to the player. [Skotlex]
- * Added RG_RAID to the list of skills that need a status_checkskilluse on
- skill_attack. [Skotlex]
- * Added the mapflag check monster_noteleport to AL_TELEPORT. [Skotlex]
- * Fixed the sc_def rate not being reduced in status_change_start. [Skotlex]
- * Changed the include in irc.c from strings.h to string.h, which fixes a
- bunch of compilation warnings here... [Skotlex]
- * Updated the SQL login/char servers to let the mysql server grant the new
- IDs for accounts/chars/pets/parties/guilds instead of them being handled by
- the server. [Skotlex]
- * Some cleaning of the pc item use functions. [Skotlex]
- * Gospel shouldn't block enemies in certain situations from using items
- now. [Skotlex]
-2006/02/15
- * Fixed crash in chrif_load_scdata warning message. [Skotlex]
- * Fixed pets displaying "strangely" when they did not have their pet armor.
- [Skotlex]
- * Added battle config option pk_level_range for specifying valid level
- ranges to engage in PK (battle/misc.conf) [Skotlex]
- * Added battle config allow_es_magic_player to enable SL_S* skills to work
- on non-mobs. (battle/skill.conf) [Skotlex]
- * Fixed the char servers to store correctly exp as uints. They are also
- capped to LONG_MAX before being sent to the client. [Skotlex]
- * TK_DODGE now dodges all ranged attacks, when used with SPURT, dodges
- everything. [Skotlex]
- * The autospell loop now cancels after one successful cast. This means if
- you have 10 autospells with 100% casting rate, only one will come off with
- each hit instead of all of them. [Skotlex]
- * Warm skill update: [Skotlex]
- - they are type BF_WEAPON, so that they may trigger effect/spell cards.
- - Changed their element to -1 to carry on weapon's element.
- - Against player it only damages 60SP per "hit"
- - Against non-players it is a knockback skill as it was before.
- - Hit frequency increased to once every 100ms.
- * TK_DODGE now only dodges ranged weapon attacks, while under Spurt mode
- it dodges everything (provide better information if this is not how it
- should behave as the current info given is conflicting itself >.<)
- [Skotlex]
- * Cleaned up and expanded the sc_def_rate battle config. The new battle
- flags are mob_sc_def_rate, pc_sc_def_rate, mob_max_sc_def, pc_max_sc_def
- [Skotlex]
- * Modified Marionette Control so that the max bonus stats you get is capped
- to your server's defined max stats instead of 99. [Skotlex]
- * Mobs are no longer affected by the vs_traps_bctall switch. [Skotlex]
- * Added function pc_damage_sp to damage the SP of players, updated code as
- necessary. [Skotlex]
- * Fixed @lvup command adding levels instead of substracting when you
- specify a negative quantity. [Skotlex]
-2006/02/14
- * pc_setinventorydata won't use itemdb_search on empty inventory slots (id
- = 0) [Skotlex]
- * Fixed the icon from Provoke being gone. [Skotlex]
- * Fixed skill_timerskill (most notable skill broken: water ball doing 1
- hit) [Skotlex]
- * Removed the declaration of puchar and pchar from my_global.h which was
- preventing compiles on native win NT systems. Drawback is now Win9X systems
- will fail to compile instead... [Skotlex]
- * Hiding cancels Close Confine now. [Skotlex]
- * ST_MOVE_ENABLE now also checks for pc_can_move(), and only perform a walk
- check if the skill is ground targetted. [Skotlex]
- * Moved the berserk_cancel_buffs code to status_change_start. [Skotlex]
- * Moved most checks of status_isimmune() to status_get_sc_def [Skotlex]
- * Allowed Endow skills to go through status_isinmune characters. [Skotlex]
- * Fixed PR_BENEDICTIO not taking away all SP. [Skotlex]
- * Modified the way Status changes are linked to skills for an easier to
- read implementation (see status_initChangeTables). [Skotlex]
-2006/02/13
- * Added battle config sc_def_rate which adjusts natural defense of
- characters against status changes (see conf/battle/battle.conf). [Skotlex]
- * Pet eggs will now not be deleted from the inventory until they arrive
- from the char-server. [Skotlex]
- * pc_readdb will now print if any classes are missing their exp tables.
- Only exception are JOB_WEDDING and JOB_XMAS. [Skotlex]
- * Made the NPC_BREAK* skills attack skills again, their chance of equipment
- breaking code was moved to skill_additional_effect. [Skotlex]
- * Now when the exp table does not has enough data to reach the max level
- specified, the max level will not be reduced to enable leveling through
- quests/scripts/gm-commands/etc. [Skotlex]
- * Made Land Protector Block Hammerfall. [Skotlex]
- * Updated item_db code to stop creating items for every non-existant ID
- used. Instead it will complain, and use a dummy item that has the view ID
- of an apple, and it's type 3 (etc item). [Skotlex]
- * Modified PA_GOSPEL so that the random damage attack becomes a BF_MISC
- attack. [Skotlex]
- * Added pc_resetskill when lowering job level and there's not enough
- skill points to substract. [Skotlex]
- * Fixed SG_FUSION costing SP to deactivate. [Skotlex]
- * Some cleaning up at pc_setpos to prevent calling pc_clean_skilltree
- [Skotlex]
- * Enabled use of TF_HIDING while Cloaked. [Skotlex]
- * pc_resetstate won't remove wedding skills now [Skotlex]
- * NPC_POWERUP now gives +40% atk per level. [Skotlex]
- * Water elementals can be frozen again. [Skotlex]
- * Fixed the sc_def equation in status_change_start. [Skotlex]
- * Fixed an extra semi-colon that broke win32 compiles. [Skotlex]
- * Some rewriting of bounds checks in @baselvup, @joblvup and the #
- equivalents to prevent signed/unsigned comparisons. [Skotlex]
- * Now slaves give exp/loot (exception: player slaves still stick to the old
- rules of no exp/loot) [Skotlex]
-2006/02/12
- * Some path cleanups meant to get the CELL_NOSTACK mod working better with
- path searching and the like. [Skotlex]
- * Optimized functions skill_addtimerskill/skill_cleartimerskill [Skotlex]
- * Fixed SC_DANCING for non players (was making dances only last 1 second
- for them) [Skotlex]
- * Modified map_moveblock to handle updating dance's position as well as
- ending close confine status effects. [Skotlex]
-2006/02/10
- * Fixed Sonic Blow's damage for lvl 1~9 [Vicious]
- * The status window will now show the total power of both weapons instead
- of just the right-hand weapon for dual wielders. [Skotlex]
- * Removed #include <lcms.h> from irc.c, since it's unused and some people don't have it. [Valaris]
- * Changed the default MAX_LEVEL supported by the map server to 1000. [Skotlex]
- * Pet Lures won't be consumed now when used on a non-mob. [Skotlex]
- * Fixed map_searchrandcell function. [Skotlex]
- * Modified the NPC_BREAK* skills to break equipment at a 10%*lv rate. [Skotlex]
- * Modified the drop item routines to perform stacking checks only for
- player attempted item drops, therefore, mob drops will stack up to
- infinity. [Skotlex]
- * NPC_POWERUP now gives +20% attack per skill level. [Skotlex]
-2006/02/09
- * Fixed "set baselevel, X" sending one to a different level than the one
- requested. [Skotlex]
- * Added range checking to mob skill loading of permillage and delay to
- prevent overflows. [Skotlex]
- * Fixed pc_gainexp not working for next level exp requirements above
- INT_MAX. [Skotlex]
- * Fixed the display of @showexp not working right for exp values above
- INT_MAX. [Skotlex]
- * Removed the conf sql code for now. Maybe will continue later with that project.
- Lowered the irc keepalive timer, and added some checks for use_irc that should have been there.
- Added a return line \n to the beginning of the title screen. [Valaris]
- * Added function mob_respawn which makes a mob respawn on spot 3 seconds
- after defeat if SC_KAIZEL is active. [Skotlex]
- * Modified NPC_REBIRTH to use Kaizel level 1. [Skotlex]
- * Added setting max_exp_gain_rate which caps how much exp you can get from
- a single kill. See battle/exp.txt for details. [Skotlex]
- * pc_readdb will now cap experience required per level to UINT_MAX, it will
- warn if the exp table has exp values above said limit. [Skotlex]
- * Changed the default of skill_delay_attack_enable to no. [Skotlex]
- * Code rewrites in mob_damage and party_exp_even_share for correctly
- handling overflow issues. Now uses UINT_MAX for range comparisons, as it
- should be. [Skotlex]
- * Also modified the mob_db reading to use UINT_MAX for exp limits, changed
- their exp/job exp fields to unsigned int as well. [Skotlex]
- * Modified multi_level_up behaviour to work as specified by Kyoki. That is,
- on a level up, the max carry-over exp is the exp needed for the previous
- level -1. [Skotlex]
- * Modified the skill attack display of Meteor Assault and the Warm Skills
- (I think the caster should no longer do fancy animations now on each hit)
- [Skotlex]
- * Added back water elemental targets being inmune to SC_FREEZE [Skotlex]
- * SQL compile fix [Komurka]
-
-2006/02/08
- * Added battle config option skill_caster_check, which does a
- status_checkskilluse on all skill attacks. When enabled (default on) the
- caster of the skill is checked on all skill_attacks, which means that
- ground spells will make no effect if the caster is unable to fight
- (stunned, frozen, etc) [Skotlex]
- * Added battle config option status_cast_cancel. When enabled (default off)
- some status changes (freeze, stone, etc) will cancel your cast. [Skotlex]
- * Fixed the death exp penalty underflow bug. [Skotlex]
- * Rewrote/organized status_change_start, it now receives the base rate for
- the effect. It handles reducing this rate/duration through natural
- resistances and whatever else should reduce it. [Skotlex]
- * Fixes to exp2.txt on the novice job exp. Thanks to rollopop. [Skotlex]
- - Also modified exp2.txt to use the normal max levels by default.
-2006/02/07
- * Modified battle_check_distance, mobs should no longer find a diagonal
- spot on which they lock onto their target, yet fail to attack from. [Skotlex]
- * Removed the max level configs from battle/exp.txt [Skotlex]
- * Now NPC_POWERUP uses SC_INCATKRATE instead of SC_EXPLOSIONSPIRITS for
- enhancing damage. Instead of +1k atk per skilllv, it is +50% atk per
- skilllv. [Skotlex]
- * Fixed char server changing the save/last point to new grounds in certain
- situations. [Skotlex]
- * Fixed SG_STAR_ANGER not getting it's damage bonus at all. [Skotlex]
-2006/02/06
- * Added a custom exp table that goes up to level 1000 (db/exp2.txt). [Skotlex]
- - It uses a inverse exponential growth rate to mimic the official exp rate
- increase as close as possible.
- - It overrides the exp level of the last 5~10 official exp values for a
- smoother curve.
- - It's adjusted so that the Lv1000 exp requirement for Advanced Base/2nd
- Job is close to the unsigned int limit without going above it (limit is
- 4294967295 in my system. It goes up to 42k Million on Advanced
- Base lv1000, I think)
- * Fixed startnpctimer starting multiple timers instead of failing when the
- npc timer is already running. [Skotlex]
- * Venom Splasher update: [Skotlex]
- - always hits (but splash damage targets can still avoid it)
- - Being hit does not cancels it,
- - works at 75% or less of target's HP
- - being hit normally while under the count has a chance of causing poison.
- - Damage is +400% + 50*lv%
- * Using autoloot with no arguments now toggles it between @autoloot 0 and
- @autoloot 100% [Skotlex]
- * Falcon Assault now takes Blitz Beat lv5 as base damage. [Skotlex]
- * Fixed pc_makesavestatus not updating status.option correctly. [Skotlex]
- * Corrected Waterball so that higher levels can do insane amount of hits. [Skotlex]
- * Altered slave behaviour. No more random walking, will stay within 2 cells
- of their master. [Skotlex]
- * Reverted the Summon Slave behaviour to not adjust level based on number
- of current slaves. [Skotlex]
- * Coma no longer sends SP to 1. [Skotlex]
- * Updated Meteor so that when level 11 or more is casted, the area over
- which meteors fall is tripled. [Skotlex]
- * Dark elemental characters are now inmune to Curse. [Skotlex]
- * Fixed sc_data saving to sql buffer building method. Thanks to its_sparky. [Skotlex]
- * Changed the map zone reading from using pow to a bit shift. [Skotlex]
- * Experience has now been changed to unsigned int, and is read as such from
- the dbs. [Skotlex]
- * Increased HT_DETECTING seek range to 7x7 [Skotlex]
-2006/02/05
- * Added some of eAIRC bot code, written by me and LittleWolf.
- It is disabled and has no configuration options yet, as it is not finished. [Valaris]
- * Fixed and documented script command "callshop". [Skotlex]
- * Updated sq;-files/mob_db.sql with current mob_db. [Skotlex]
- * Updated sql-files/item_db.sql with current item_db. [Skotlex]
-2006/02/04
- * Skotlex's Falcon Assault fix. [Vicious]
-2006/02/03
- * Fixed the debug script messages specifying the wrong mapname for NPCs.
- [Skotlex]
- * Now you can't hide from earth elemental attacks (status_check_skilluse).
- [Skotlex]
- * Grand Cross/Grand Darkness can no longer get the ignore defense -armor
- piercing bonuses from cards. [Skotlex]
- * Loki's weil is now ignored by bosses. [Skotlex]
- * Land Protector and Gantantein should now ignore traps. [Skotlex]
- * Fixed Shinobi card so that it fails when you aren't next to a wall.
- [Skotlex]
- * After a guild master change, the new guild master has his guild skills
- blocked for 5 minutes to prevent abuse. [Skotlex]
- * Fixed txt-converter compilation errors [Komurka]
-
-2006/02/02
- * Fixed crash in status_change_timer. For some reason the block type switch was removed. [Valaris]
- * Crash fix in npc.c npc_timerevent.
- was: struct timer_event_data *ted = (struct timer_event_data*)ted;
- changed: struct timer_event_data *ted = (struct timer_event_data*)data;
- Skotlex, I am assuming it's calling from the passed data var, If I'm wrong
- please fix it. I just know what was there was definitely not correct. [Valaris]
- * Improved the NPC timer system to enable multiple timers going on at a
- time with different players attached to each. Now npc event timers are of
- two types: attached or global. The global timers don't have a player
- attached and can be started/halted by anyone. The character timers have a
- player attached, and they can only be stopped by a script that has the same
- player attached. [Skotlex]
- - Now player attached scripts will auto-abort when the atteched player
- quits the map server.
- - Of course, this requires some major testing as it's prone to have bugs...
- * Applied the Entry Reusage System to the battle delay damage timers.
- [Skotlex]
- * Fixed the map server complain when using the default user/password
- showing up if you set the new user/pass on the import file. [Skotlex]
-2006/02/01
- * Fixed compile errors and warning in chrif.c and charsave.c. [Valaris]
- * Map and char server now will complain if they are run using the default
- user/password set. [Skotlex]
- * Trick Dead makes you stop walking now. [Skotlex]
- * Soul Burn is not affected by Lex Aeterna, not affected by target's cards
- neither. [Skotlex]
- * Freeze and Stone take preference over Benedictio. [Skotlex]
- * Sleep/Stun/Petrify/Freeze block each other out. [Skotlex]
- * Fixed areamonster when the passed class is negative. [Skotlex]
- * Removed the clear screen when launching the server. [Skotlex]
- * Integrated the status change variables into a single structure for easier
- management. [Skotlex]
- * Break fall should no longer trigger when inflicted by freeze/stone/etc
- [Skotlex]
- * Fixed an overflow in grfio causing read problems in Win32 builds [celest]
- * Changed resnametable loading behaviour - grfio will load from data directory
- first, and then from the highest priority grf only if that fails [celest]
- * Increased grfio filelist limit to 1048576 to avoid problems when loading
- too many large grfs [celest]
-2006/01/31
- * Fixed skill_check_cloak to use the current skill level of the cloaking
- skill and not pc_checkskill() to know if a cloaker away from a wall should
- be uncloaked. [Skotlex]
- * Likely fixed opening guild storage. [Skotlex]
- * Removed no penelty mapflag for nifilheim. Confirmed on iRO. [Kayla]
- * Changed default value of gm_cant_drop_max_lvl to 98. Also reworded the
- comments for cant_drop_max and min. [Kayla]
- * Disabled pet skills by default. To my knowledge they are only enabled on
- cRO, not iRO nor kRO. [Kayla]
- * PF_SOULBURN no longer ignores mdef. [Skotlex]
- * HW_GRAVITATION should now invoke auto spells. [Skotlex]
- * Cleaned up damage return code. Reflect Shield and the like now should
- also trigger autospells from normal attacks (previously it was only worked
- on skill attack returned damage) [Skotlex]
- * Cleaned up Summon Slave mob skill to only summon number of missing mobs
- to complete the skill level (that is, SS level 5 will always bring the
- total count of slaves to 5, never above). [Skotlex]
- * Fixed being able to Encore skills you no longer have in your tree.
- [Skotlex]
- * Added no HP regen while Bleeding, -25% ATK and ASPD penalties as well.
- [Skotlex]
- * Added VIT reduces duration of confusion. [Skotlex]
- * Added "onspawn" mob skill condition. [Skotlex]
- * Changed the exp table format. The new format allows specifying exp tables
- for any particular class. Thanks to Playstester for converting the official
- exp table to the new format. [Skotlex]
- - UNTESTED: Report any problems asap.
-2006/01/30
- * Autoloot now uses the item's base drop chance rather than final drop rate
- to determine if it should autoloot the item or not. [Skotlex]
- * Fixed super novices getting +10 to all stats temporarily when their death
- count isn't zero. [Skotlex]
- * Fixed Kahai displaying HP-SP as the total healed instead of HP [Skotlex]
- * Cleaned up skill_repairweapon to prevent crashes when the target
- vanishes/changes/whatever before the weapon to repair has been selected.
- [Skotlex]
- * Parsing the Storage/Guild Storage from the char server will now fail if the
- storage has been modified and not saved yet. [Skotlex]
- * Being hit now cancels confuse. [Skotlex]
- * Added back the bleeding icon. [Skotlex]
- * Fixed Combo Finish Soul Linked Effect being a 11x11 area rather than 5x5
- [Skotlex]
- * Added 'restricted' mapflag, based on lordalfa patch [Komurka]
- - you can set restriction zone on map (see mapflag/restricted.txt)
- - you can turn off item usage on certain restricted map in item_noequip.txt
- - you can turn off skill usage on certain restricted map in skill_nocast_db.txt
- * Moved MVP log code so it can log all MVP, not only when player gets MVP item,
- thanks to Hatred_ [Komurka]
- * One more small fix on 'bSPVanishRate' (hp -> sp) [Komurka]
- * Added bSPVanishRate to const.txt - Dark Priest Card should work now ^^
- * Implemented bonus2 bSPVanishRate for Dark Priest Card [Komurka]
- - it isn't finished - I get '[Warning]: pc_bonus2: unknown type 0 50 10!' ><
- * Applied lordalfa patch - you can now forbid usage of certain cards on PVP/GVG/WoE
- defined in item_noequip.txt [Komurka]
-
-2006/01/29
- * Added support for more account states like "Unavailable due to hacking/bug
- investigation" etc, thanks to NeoSaro [DracoRPG]
-2006/01/28
- * Added the night mapflag to the new maps. Removed some indor maps. [Poki#3]
- * Added DISGUISE MobID; UNDISGUISE; script commands [Lupus]
- - Made them for Eastern Year of the Fire Dog Event.(to be uploaded today)
-2006/01/27
- * Added support for mob_avail.txt replacement for NPC classes. [Skotlex]
- * Added "sense_type" config to conf/battle/skill.conf to select which defense
- is displayed on the sense screen. Defaults to displaying def+def2. [Skotlex]
- * Modified traps so that once they trigger they set themselves as "Into the
- Abyss" casted traps, so that if you remove them, you won't earn the item.
- [Skotlex]
- * Fixed Basilica (small bug introduced yesterday) [Skotlex]
- * Hopefully cleaned out the warnings when compiling the char-SQL server.
- [Skotlex]
- * Updated the makefile for the plugins to take into account the ers.o file.
- [Skotlex]
-2006/01/26
- * Updated VC project files, thanks to D-Kalck. [Skotlex]
- * Rare drop announces will now be done based on the mvp_sd (character who
- did most damage) instead of sd (character that delivered final blow)
- [Skotlex]
- * Fixed TK Doridori bonuses to double your regen instead of giving 30Hp/3Sp
- [Skotlex]
- * Fixed Sense displaying def2/mdef2 when it should display def+def2 / mdef
- + mdef2. [Skotlex]
- * Fixed Super Novices losing their skill tree (showing up just basic skill)
- under certain circumstances. [Skotlex]
- * Cleanup and optimization of the movement routines. [Skotlex]
- * Added experimental feature "Cell Stack Limit". When enabled (see
- src/map/map.h) it should limit the amount of characters that can be placed
- on the same cell. That's assuming it works (experimental and untested as of
- yet) [Skotlex]
- * Hopefully fixed Benedicto checking on the west/east tiles instead of the
- left/right tiles of the caster. [Skotlex]
- * Fixed mobs being unable to move on tick loopback (which happens every ~51
- days) [Skotlex]
-2006/01/25
- * Reverted last change, when you log again it still shows the fake
- icon. [Foruken]
- * Temporary fix to fake mute status when using pk_mode and
- !muting_player [Foruken]
- * Probably fixed the max base/job battle config options actually enabling
- characters to reach one more level than the max specified. [Skotlex]
- * Fixed BSS Sacramenti not hitting demon type enemies. [Skotlex]
- * Now poisoned monsters will show HP updates as their health goes down
- (let's see if this finally convinces people that poison works u.u)
- [Skotlex]
- * Splitted up battle_athena.conf into multiple configuration files.
- battle_athena.conf only contains import lines now, and all the
- configuration options are located in conf/battle/* [Skotlex]
- * Updated the db version with the new one by FlavioJS [Skotlex]
- * Improved the error reporting when failing to load a mob skill due to
- insufficient fields. [Skotlex]
- * Changed map_getallusers to use the db interface getall (hope it doesn't
- breaks horribly) [Skotlex]
- * Added an attack delay to TK kicks to prevent the top10 rankers from
- attacking normally during the skill animation. [Skotlex]
- * Updated script.c to display the file not found error using braces as
- delimiters to help when npc filenames include spaces and the respective file
- is not found due to them) [Skotlex]
- * Changed TK_RUN to a misc attack type which should enable you to halt the
- skill quickly after starting it. Updated SC_SPURT to be triggered when you
- stop running if you stopped running one sec or less after you started.
- Corrected the icon of SPURT to be that yellow Running Man. The previous
- footsteps effect was assigned to CHASEWALK. [Skotlex]
- * fixed battle config item_auto_get setting autoloot to just 0.01% drops
- rather than 100%. [Skotlex]
- * Added Sharp Shooting check to skill_attack to prevent hitting hidden
- characters. [Skotlex]
-2006/01/24
- * Some cleaning up of battle_calc_damage, Assumptio should now also reduce
- damage of all types of attack, not just weapon-based ones. [Skotlex]
- * Incremented SL_MONK combo SP cost reduction to 25% [Skotlex]
- * Updated Full Adrenaline Rush to work on all weapons except bows. [Skotlex]
- * Updated the script engine to report the src of an error when there's a
- problem with one of the script functions. For example, if there's a "player
- not attached error", it will also print which NPC caused it. [Skotlex]
- * Added RFIFOSKIP(fd,RFIFOREST(fd)) to the end of the login server's parse functions.
- This is good for clearing out packets of one byte. [Valaris]
- * Fixed noteleport mapflag affecting Warp Portal. [Skotlex]
- * Fixed map server crashing when parsing an incomplete mob-skill line. [Skotlex]
- * @autoloot 100 will now pickup items that have drop rates ABOVE 100. [Skotlex]
-2006/01/23
- * Added battle config "no_spawn_on_player", see battle_athena.conf for
- details. [Skotlex]
- * Fixed bows doing less damage on criticals when having high dex. [Skotlex]
- * Moved the enemy_critical adjustment to status_get_critical. [Skotlex]
- * Fixed @chardisguise to use the same id checks as @disguise. [Skotlex]
- * Fixed SightBlaster 'hitting' dead characters. [Skotlex]
- * Basilica check in status_checkskilluse expanded to help mobs release
- their target as soon as they walk into a basilica. [Skotlex]
- * When a player stops walking their to_x and to_y is updated to their
- present position. This MAY fix warp portal not warping players that were
- already there waiting to be warped. [Skotlex]
-2006/01/22
- * typo fixes (fell -> feel) [Komurka]
- - mob_db_mode_list.txt updated
- - removed some unneeded comments (//komurka)
- * Some changes of @main. Now you can send main-chat messages by sending whisper
- to nick "Main" (or any other, it can be set in inter_athena.conf). [LuzZza]
-2006/01/21
- * Changed gm_can_drop_lv battle conf switch to gm_cant_drop_min_lv and gm_cant_drop_max_lv [Komurka]
- * SL_SWOO (Esu) will only lasts 1/5 of normal time when used on a Boss-type monster [Komurka]
- -SL_SKE (Esk) won't work on a Boss-type monster anymore (if you KNOW that it should work on them
- write about it on forum; either way don't bother guessing ... SL can solo ANY boss with this skill ~.~)
-2006/01/20
- * Fixed the login-TXT login Log. [Skotlex]
- * Small update to sql-files/item_db.sql to fix speed potions (a complete
- update will be done when possible...) [Skotlex]
- * Fixed clone script command's duration being in ms rather than seconds.
- [Skotlex]
- * Taekwon Ready Stances combo time is now 2000 - 4*agi -2*dex ms instead of
- a flat 2 secs (same reduction that Monk combos get) [Skotlex]
- * Cleaned up code of SG_HATE, may fix the skill seemingly not working.
- [Skotlex]
- * Likely fixed Even-Share parties not breaking up when a character with
- too high/low level rejoins in char-TXT servers. [Skotlex]
-2006/01/19
- * Added config option atc_slave_clone_limit to limit the amount of
- @slaveclone's a player can have. [Skotlex]
- * The clone commands now fail when used on someone of higher GM level than
- the caster. [Skotlex]
- * Increased the size of the clif_disp_onlyself packet by one to see if it
- fixes the mysterious cropping of the last character in the message.
- [Skotlex]
- * Now when use_statpoint_table is set to yes, it will be used to determine
- the stat points you earn on level up. [Skotlex]
- * Small fixes as pointed out by FlavioJs in the login TXT server to prevent
- crashes in Win32 compiles. [Skotlex]
- * Merged Marquis's implementation of Enjoyable Rest's earth scroll bonus.
- [Skotlex]
- * Fixed players being able to send custom crafted mute requests that would
- go through regardless of their gm level and mute others. [Skotlex]
- * Updated mapflags [Lupus]
- * Modified the client_connect function in socket.c to allow different parse_functions to be called
- based on the listening socket. After a make_listen_bind returns a listen fd, set that fd's
- func_parse member to whatever parse function to be used. If this value is not manually set
- it will just use the default_func_parse function. This only affects server listening sockets
- in which the func_parse member isn't even used. [Valaris]
- * gvg_traps_target_all now also affects traps in pvp maps. [Skotlex]
- * All reflected damage has now a chance to auto-cast spells. [Skotlex]
- * Fixed Casting ground spells from within basilica. [Skotlex]
-
-2006/01/17
- * Updated the map server code to use some of the new db functions. [Skotlex]
- * Fixed ground skills checking the wrong target-type on movement, hence
- making them mostly useless (this is what the Warp Portal report was about)
- [Skotlex]
- * Some code updates to implement the new db interface. [Skotlex]
- - SQL compilation not tested, so if it breaks someone report to fix it :X
- * Added @clouds2 and clouds2 mapflag using effect 516. [Valaris]
- * Fixed some weather effects not working or not functioning correctly. [Valaris]
- * Cleanups and organization to maps_athena.txt and map_index.txt, thanks to
- Poki for the cleanup work. [Skotlex]
- * Some cleanup of the SG_FEEL code [Skotlex]
- * Fixed debug mode compiling in VC7.1. Added optimizations to VC7.1 release mode.
- Defaulted VC7.1 SLN to debug mode. [Lance]
- * Temperory solved the freeing freed pointer error upon map-server shutdown. [Lance]
-
-2006/01/16
- * Fixed clif_disp_onlyself packet length, thanks to Orn. [Skotlex]
- * Imported Freya's autoloot system which enables one to specify the maximum
- drop-rate to loot. [Skotlex]
- * Refix of the mapreg SQL saving fix of a while ago... [Skotlex]
- * Playtester custom eamobs spawn updates: coal Mines, umbala fields, and
- minor changes to Sphinx and Geffen Dungeon. [Skotlex]
- * Incremented a bit clone skill usage rate, their rate/delays are now affected
- by the battle_config options mob_skill_rate and mob_skill_delay [Skotlex]
- * Optimized use of BL_* constants by making them stackable (meant for
- map_foreach* calls). Should improve performance by avoiding
- battle_check_target calls on a bunch of invalid targets such as
- items/skills/npcs on skills and other misc places. [Skotlex]
- * Fixed mob skills that should trigger on status on "any bad". [Skotlex]
- * TK classes no longer are inmune to the strip-effects of Jump Kick [Skotlex]
- * Fixed SQL mapreg saving. [Skotlex]
- * Reverted Ice Wall Behaviour (you can snipe/cast through it again) [Skotlex]
- * Fixed possible crash in skill_check_condition on consume-delayed items [Skotlex]
- * Skills whose range is increased by Vulture Eyes now get the range
- increased by 10 for non players (assumes VE level 10). [Skotlex]
- * Added cardfixes of near_attack_def_rate and long_attack_def_rate to misc
- attack calculations. [Skotlex]
- * Fixed Spirit of Wizard not working in a couple of instances. [Skotlex]
- * Advanced Book now gives 1%*skill level success chance to create element
- convert potion [Skotlex]
- * Changed the FEEL skill implementation to store/use map indexes instead of
- map names.[Skotlex]
- * Fixed compilation of plugins. [Skotlex]
- * Applied flaviojs's new db interface and fixed compatibility problems with Visual Studio. [Lance]
-
-2006/01/15
- * Fixed poison damaging player even when under 25% hp. [Skotlex]
- * Fixed permanent character variables in Char-TXT [Skotlex]
- * Fixed previous change for stable. Whoops my 5am work again. [Kayla]
- * Fixed the trade exploit allowing for a user to send packets while in a trade.
- For instance the bank NPC becoming a zeny dupe. Kudos to clown. [Kayla]
- * Added script source error reporting to set and getarrayelement, should
- print NPC name and location (map, coordinates) on the console when there's
- an error with these two commands. [Skotlex]
- * Removed treasure chests spawning upon agitbreak, leading to exploits. [Lance]
-
-2006/01/14
- * Removed the 5% success penalty for trying to make a convertor for which
- you don't have the relevant enchant skills. [Skotlex]
- * Fixed compilation of Login Converter. [Valaris]
- * Fixed bSPGainRace and bExpAddRace with RC_NonBoss and RC_Boss. [Valaris]
- * Lex Divina now shows the animation even when used on someone you can't
- (non-muted, non-enemy player) [Skotlex]
- * Quick hack to make Shield Reflect trigger auto-spells (only this kind of
- return damage does it? Because other reflect cards like Orc Lord behave
- exactly the same way...) [Skotlex]
- * Fixed grf loading to attempt to load from all grf files specified in
- grf-files.txt (looking for them in the same order specified in the file,
- returns the first match found) instead of only looking up on the last
- specified grf... [Skotlex]
- * Fixed compilation of plugins. [Skotlex]
- * Added error reporting to the db when a null key/data is attempted to be
- inserted and the db is configured to not allow them. [Skotlex]
-2006/01/13
- * Fixed labels located at the beginning of a script not being counted at
- all. [Skotlex]
- * Applied blackhole89's patch to enable dynamic menus. [Skotlex]
- - Script reference doc updated accordingly.
- * Ranking Taekwons with lv 90+ no longer get Quest/Wedding skills for free.[Skotlex]
- * Readjusted Scream And Frost Joke so now the effect goes off no matter
- where the caster went, but the effect will happen only around the area
- where the skill was done regardless of where the caster is (which is how it
- should work from a logical stand point) [Skotlex]
- * Scream and Frost Joke now take effect 2secs after casting, and caster
- must remain in same map for it to take effect. [Skotlex]
- * Flying Side Kick can't be used by Soul Linkers now. [Skotlex]
- * npc_reload should now correctly remove mobs and npcs that aren't placed
- in any map (such as mobs that were killed and are waiting for respawn) [Skotlex]
-2006/01/12
- * Fixed Ice-Wall range problem. [LuzZza]
- * Corrected the guild_db_final function in int_guild.c of SQL char-server to
- compile and function with the new db code. [Valaris]
- * Fixed some advanced skills being able to be copied even when restricted [Vicious]
- * Fixed a possible crash-source related to item-picking packets. [Skotlex]
- * Now Top 10 ranking Taekwons with base level 90+ get their whole
- skill-tree maxed out (but only as bonus-skills, they aren't saved on the
- dbs) [Skotlex]
- * Some cleaning of the char_name_letters implementation. Characters don't
- need a space between them, in fact, placing a space in that config makes
- the space count towards allowed/disallowed characters. [Skotlex]
- * Some modifications to the db code to make the code portable. It may
- compile on windows now. (note I can't test SQL compiles yet so report any
- problems ASAP) [Skotlex]
- * Fixed Venom Knife consuming two daggers. [Skotlex]
- * Inverted the packet order in many skills which cause status effects. The
- client expects the status-change packet to arrive before the skill packet
- in order for opt3-related changes to make effect on the character. [Skotlex]
-2006/01/11
- * Added @main command into atcommand_athena.conf. [LuzZza]
- * Tuxedo and Wedding Dress no longer get a 'forced' gender check regardless
- of config ignore_items_gender setting. [Skotlex]
- * Added support for 'invisible' shops. These are shops that are loaded but
- not placed on any map, so you can't click on them. [Skotlex]
- - Example: -<t>shop<t>Invisible Dealer<t>-,1750:-1,1751:-1,1752:-1,etc...
- - Make sure they have a unique name if you want to reference to it with...
- * Added script command 'callshop' for invoking shops from within a script. [Skotlex]
- - Usage: callshop "Shop Name", flag;
- - Distance to shop is still checked, so it's best to use 'invisible' shops.
- - flag determines shop selection: 1: Show buy list, 2: show sell list.
- Anything else: show the buy/sell/cancel menu.
- - Function returns 1 if successful, 0 otherwise, but it is recommended that
- the script should be closed right away to prevent problems.
- - Documentation to the scripts_command.txt reference file not yet added
- because this command is as of yet untested and may need further refining.
- * Newly created SQL guilds won't save the member-list right away (this
- seems to be the reason why sometimes when creating new guilds, the
- guild-master keeps guild_id == 0 in the tables) [Skotlex]
- * Fixed char/int_storage.c reporting lines with too many items when in
- reality said items had the exact max amount allowed. [Skotlex]
- * Moved the status_change_clear code below the exp penalty so that the
- SC_BABY effect will work. [Skotlex]
- * Fixed the map_index never finding the last map specified in the
- map_index file. [Skotlex]
- * Fixed an overflowed pointer in char/inter.c, and an already free'd pointer
- error in map/guild.c [Skotlex]
- * Added battle option party_item_share_type, now you can choose between
- round-robin (previous implementation) and random (default) [Skotlex]
- * Fixed compilation of the plugins (due to the db change) [Skotlex]
- * Fixed a few issues with the map server (notably npc_command_sub was
- broken) [Skotlex]
- * Added proper escaping of the motd string before inserting it on the rag
- server info SQL table. [Skotlex]
-2006/01/10
- * Updated the map-server to conform to the new db interface. Removed
- DB_DELAY_FINAL_CHANGES and related code from db.* as now eA fully complies
- to the new interface. [Skotlex]
- * Crafting Arrows, Weapon, Forging/Upgrading now all fail if you have an
- npc going on to prevent your inventory from being modified while selling.
- [Skotlex]
- * Updated the char-SQL server to etc etc etc new db etc etc etc. [Skotlex]
- * Cleaned up the description of size_fix.txt [Skotlex]
- * Updated the char-TXT server to be blah blah blah new db blah blah. [Skotlex]
- * Updated both login servers to be fully compliant with the new db
- interface. [Skotlex]
- * Moved skill damage bonuses from cards to the 'second layer' which means
- they are applied on top of previous damage bonuses rather than just adding
- to them. [Skotlex]
- * Some more updates to the db code as specified by FlavioJS [Skotlex]
- * Fixed the memory leak of npc_unload_ev. [Skotlex]
-2006/01/09
- * Some more updates regarding the new db system. [Skotlex]
- - Note that there's currently a leak regarding npc_events (ev_db), but this one is
- not a serious problem (unless you use a lot of npc_reloads) and will be
- fixed as the db gets improved.
- * Moved the Kaupe code to battle_calc_weapon_attack where it will dogde all
- weapon-based attacks that can be dodged (giving the illusion of infinite
- flee for skill's duration). [Skotlex]
- * Moved Sonic Acceleration and Soul Linked SB damage bonus to the second
- layer of skill modifiers. [Skotlex]
- * Enchant Deadly Poison and True Sight damage bonuses are now applied after
- skill modifiers rather than added with them (damage % stack type). [Skotlex]
- * Modified Ice-Wall to work using cell types defines instead of directly
- modifying the gat terrain information. Main reason for this is to enable
- pc_setpos to place players on top of an ice-wall, because otherwise it
- was forcing players to warp-around even in maps with noteleport set which
- is prone to exploits. [Skotlex]
- * Fixed SG_FUSION (SG_FUSION <-> SC_FUSION #_#) [Komurka]
- * Now sense elemental values are again uncapped (so enemy with -25% resist
- will show 230% instead of 0%), as requested :P [Skotlex]
- * Replaced the db subsystem for FlavioJS's implementation and initial work
- on updating the eA code to use it as intended. [Skotlex]
- * Fixed Char-TXT server saving last/save maps with spaces on the left. [Skotlex]
- * Fixed Char-SQL server saving new character's maps with spaces on the left. [Skotlex]
- * Fixed Charsave method 1 saving memo maps with spaces on the left. [Skotlex]
- * Changed the order of packets sent for Assumptio (may fix the visual not
- showing up?) [Skotlex]
-2006/01/08
- * Fixed the guild SQL cache removing guilds from memory when said guilds
- had no data to save (but were not yet marked for removal) [Skotlex]
- * Added a cap to limit Star Gladiator's job level to that of the normal
- classes (instead of 2nd classes) [Skotlex]
- * Fixed TXT char server parsing only the first character permanent variable
- received from the map server and ignoring the rest. [Skotlex]
- * Fixed @users crashing the server. [Skotlex]
- * Added Arrow Repel to the list of skills whose range is increased by Vulture Eye. [Skotlex]
- * Fixed the item pick-up rule for party options being working backwards. [Skotlex]
- * Fixed progress info in TK_MISSION [Komurka]
- * Fixed an aproximation error when calculating distances which causes stuff
- like mobs thinking they are within attack range when they actually aren't
- [Skotlex]
- * Char-server will now be notified after a character logs out when using
- charsave_method:1 [Skotlex]
- * Added check to update pet's position on pc_movepos (stuff like High Jump)
- when the master moves too far away or to a position the pet can't reach.
- [Skotlex]
- * Fixed char-save method 1 saving map names with padding spaces to the
- left. [Skotlex]
- * Now sense elemental values are capped to 0 as lower bound (so for an
- enemy with -25% resist, it'll show 0% instead of 230%) [Skotlex]
- * Updated sql-files/ mob_db.sql and item_db.sql to current TXT data.[Skotlex]
-2006/01/07
- * If player is dead, and is spawned (such as @refresh), death packet is sent. [Valaris]
- * Cleaned pc_attack_timer so that the attack timer will auto-readjust when
- it triggers during the can't act tick instead of cancelling the attack
- sequence. [Skotlex]
- * Fixed compilation of the TXT-converter. [Skotlex]
- * walkto x,y request packets are now ignored if you are sitting. [Skotlex]
- * Fixed a typo that was making the party item-pickup style shared not
- taking effect for the item_first_get_time regardless of setting. [Skotlex]
- * Applied Playtester's custom mob spawns to the eamobs/ set. [Skotlex]
- - These custom mob spawns are an experiment to balance out mob spawns and
- put some sense into them (no crap like too strong AND too weak mobs on the
- same floor, increasing mob difficulty the deeper into the dungeon you go,
- etc), without moving mobs too far from where players are used to see them neither.
- - To enable them, modify scripts_main to use scripts_eamonsters rather than scripts_monsters.
- - Currently, the modified dungeons are: Glast Heim, Geffen Tower, Clock
- Tower, Sphinx, Pyramids, Byalan.
- * Added check to make sure guildspy and partyspy variables have value. [Valaris]
- * Separated the permanent variables from the character status structure. [Skotlex]
- * permanent variables are now loaded on their own packets as needed to
- reduce the bandwidth wasted between servers. [Skotlex]
- * Permanent account variables are now saved when the script is finished
- instead of each time they were modified. [Skotlex]
- * OnInit scripts and related code now executes after all perm variables are
- received (so now account variables are accessible during it) [Skotlex]
- * Fixed typo in pc.c causing crashes in Line 769. [Lance]
- * Corrected VC7.1 prject files to include mapindex.c and mapindex.h [Lance]
- * Corrected Wrath of the Star formula (added missing STR in equation) [Komurka]
- - Added movement speed bonus to SG_FUSION (same as PecoPeco gives)
- - You can now 'turn off' SG_FUSION
- * updated NoIcewall maplags, thanks to Sir Loon [Lupus]
- * soundeffectall modified to rely on dependancies depending on situation. [Lance]
- * Modified getd to return 'pointer' (will be 'dereferenced' automatically) instead of value,
- making it very flexible when paired with getelementofarray() [Lance]
-2006/01/06
- * Corrected main.sql having incorrect syntax [Foruken]
- * Cleaned up some maps in maps_athena.txt and added a bunch of cloned maps
- to map_index.txt [Skotlex]
- * Refine bonus is no longer increased by the number of hits from the skill
- except for TSS [Skotlex]
- * Dispelled Berserk won't drop HP back to 100 now. [Skotlex]
- * Mobs that use NPC_SUICIDE won't give neither exp or loot now. [Skotlex]
- * Summoned mobs that cannot move will be removed from the map when the
- master is gone to another map AND the mob's map is a gvg ground. [Skotlex]
- * Fog of Wall effects now work in both directions (outside -> inside,
- inside->outside) [Skotlex]
- * Fixed the sql guild loading always returning a blank guild when the
- guild_id does not exists! [Skotlex]
-2006/01/05
- * Some changes to the guild SQL code to report whenever a guild's id is not
- matching the one it was stored with in the db, which in turn free's the
- guild and doesn't saves it to perhaps prevent data corruption. [Skotlex]
- * Corrected the fifo-buffer readjusting code to set a reserve-buffer size
- of 1/8th of the inter-server link (32K) for said links. [Skotlex]
- * The mapif_send* and charif_send* functions (char/login servers) will now
- adjust the buffer size when there isn't enough space to write data to them
- rather than abort sending the data. [Skotlex]
- * Increased inter-server socket buffer size to 256*1024. Should fix problems
- with 0x3004. [Kayla]
- * Increased inter-server socket buffer size to 192*1024. Should fix problems
- with 0x2b01. [Kayla]
-2006/01/04
- * Fixed buildin_monster not working for random classes (dead branch, etc). [Skotlex]
- * Reverted inter-server socket buffer size to 131072 bytes. [Valaris]
- * Removed reduction of socket buffer sizes after WFIFOSET if the max size
- is >= FIFOSIZE_SERVERLINK. This should reduce inter-server buffer overflows. [Valaris]
- * Script command 'monster' will now fail when trying to spawn a mob-class
- that is not in the mob_db (warning will be printed on the console) [Skotlex]
- * Fixed a crash when spawning a mob who's class is not in the mob_db. [Skotlex]
- * Some cleanups and improvements to the character saving algorithm meant to
- make it harder to have dupe exploits during char-map connection lag
- moments. [Skotlex]
- * Doubled the inter-server link buffer size. [Skotlex]
- * Fixed status_get_adelay messing up the mob's aspd :X [Skotlex]
- * Changed skill_delayfix to use the amotion value as default delay for
- weapon skills with no delay instead of attack delay (adelay is actually
- twice your aspd, amotion is the same as aspd) [Skotlex]
- * Added upgrade_svn4783.sql, which corrects the structure of the mapreg
- table to use varchars as it should. [Skotlex]
- * Fixed Meteor Assault. [Skotlex]
- * Fixed (I hope) the double free'd pointer issue in the login servers. [Skotlex]
-2006/01/03
- * Fixed the warp unloading code. [Skotlex]
- * Updated Jump Side Kick to also clear Berserk Pitcher. [Skotlex]
- * Preserve now protects against the stripping effects of Side Kick. Taekwon
- Classes (TK/SL/SG) are also inmune to it. [Skotlex]
- * Hopefully fixed the guild information not being sent in some situations
- when people are added/removed from a guild. [Skotlex]
- * Some cleaning up and bug fixes to the guild module of the char-sql
- server. Let's see if it fixes anything up... [Skotlex]
- * Added battle option show_party_share_picker. When enabled tells the
- picker of the item who received the item when in a party with 'Party Share'
- loot style. [Skotlex]
- * Added the nullpo_retv line required for win32 compiles... [Skotlex]
- * Added some cleanup code to properly remove all warp related information
- on npc_unload (untested as of yet!) [Skotlex]
-2006/01/02
- * Completed (almost) packet 0x1e9 which gives the party info. Now you can
- see the party's item options when opening the alt+p menu. [Skotlex]
- * Fixed regen only working when overweight. [Valaris]
- * Added body size to clones. [Valaris]
- * Corrected TK_JUMPKICK to remove Soul Linker spirit buffs and related
- effects (except Berserk-Pitched effect) [Skotlex]
- * Corrected TK_RUN to give +10 dmg bonus to kick skills when not wearing a
- weapon. [Skotlex]
- * Added Kaina's Enjoyable Rest bonus and Max SP bonus. [Skotlex]
- * Fixed Stone Curse consuming gems while Soul Linked. [Skotlex]
- * Fixed party-change-map packet incorrectly checking if the even share rule
- was broken (party share should now correctly break on map-change, or when a
- player has it's level reset) [Skotlex]
- * Corrected the Jump Kick base-level damage bonus when combo-used. [Skotlex]
- * Added the running damage bonus to the TK kicks. [Skotlex]
- * Made the TK kicks end the Soul Linked status on targets. [Skotlex]
- * Corrected Spirit of Wizard to nullify any bounced back spells. [Skotlex]
- * Cleaned up the natural/skill HP/SP regen routines. [Skotlex]
- * Fixed Turn Kick not knocking back nearby enemies. [Skotlex]
- * Added the damage bonus to Flying Side Kick when used from a combo.
- However I am waiting for the actual equation (currently just does +300%
- dmg) [Skotlex]
- * Fixed Counter Kick for ranking Taekwons. [Skotlex]
- * Added walk slowdown and aspd penalty to Eska. [Skotlex]
- * Fixed status_get_size which seemed severly broken. [Skotlex]
- * Fixed Kahai to only display actual amount of HP healed. [Skotlex]
- * Now when a script's map is not found (or not loaded on the map server)
- the script engine will skip the whole script instead of just the first
- line. [Skotlex]
- * Fixed Soul-Linked Dancers not receiving the Bard songs. [Skotlex]
- * Updated Joshuaali's VC-8 project files. [Skotlex]
-2006/01/01
- * Some improvements to the login server (txt/sql) to prevent memory 'leaks'
- from accounts that logged in but where never properly set as logged out.
- [Skotlex]
- * Fixed mapindex not working for last map loaded in map_index.txt [Skotlex]
- * Added support for packet 0x1e9, party_main_info. Packet is still
- incomplete and the client is ignoring it currently... [Skotlex]
- * Changing party options now does not alters item party options. [Skotlex]
- * Corrected Kahai healing even when there's not enough SP to do so. [Skotlex]
-2005/12/31
- * Fixed the additional effects on normal attacks of Enchant Poison, Enchant
- Deadly Poison and Kahai not taking effect except when the attacker was a
- player. [Skotlex]
- * Resurrection now fails on gvg maps (when reviving) [Skotlex]
- * Kaite now works on player-casted spells regardless of level... [Skotlex]
- * Fixed Kahii healing 0 rather than 200*skilllv... [Skotlex]
- * Mobs will now go after the loot as soon as they spot it rather than on
- their next random-walk time. [Skotlex]
- * Set the 56th byte in packets 7b and 1da. It deals with acceleration in directions.
- It's just like the final byte in packet 0x87. Server-side update of this still needs to be figured out. [Valaris]
- * Fixed Kaziel not starting Kyrie Elison upon resurrection. [Skotlex]
- * Fixed Kahai's healing display. [Skotlex]
- * Fixed Kaite bouncing back always one spell. [Skotlex]
- * Fixed and tested @waterlevel. It requires the grfs to be present as the
- map layout height information is stored there but not in the map data kept
- in memory. [Skotlex]
-2005/12/30
- * Disabled certain packets from taking effect during trades to prevent
- possible exploits (such as picking and dropping items, buying selling from
- npcs, etc) [Skotlex]
- * Now you can't move items to/from your inventory to the cart/storage
- during a trade (this is to prevent possible item dup exploits) [Skotlex]
- * Emergency Recall now only works from within woe grounds... [Skotlex]
- * Removed returns from non-null lines in MOTD. Replaced returns in null lines with a space. [Valaris]
- * Fixed a bug where MOTD wasn't displaying blank returned lines. [Valaris]
- * Updated mapindex so that name lookups ignore extensions, and the loaded
- maps are always terminated in .gat. Id lookups will always return a string
- terminated in gat. Purpose? It enables specifying mapnames without the .gat
- extension, so you can have npcs in prontera, no need for the .gat. And the
- returned string always has a .gat for needed when it is passed to the
- client. Now you can safely get rid of the .gat extension in all mapnames. [Skotlex]
- * Fixed the txt-converters so they compile cleanly again. [Skotlex]
- * Added mapflag script support for no loot, no exp, no return, no warp to,
- nightmare drops (see db/const.txt for names) [Skotlex]
- * Removed an extra } in int_party.c that caused compile errors. [Valaris]
- * Fixed a crash when warp portals passed from passive to active. [Skotlex]
- * Added a missing label (M_0) that was causing people to freeze when viewing the city list from "Miss Yoon" [Zephiris]
-2005/12/29
- * Newly created char-SQL guilds will be saved inmediately rather than at
- their next turn in the cache (may fix those guild disappearing errors)
- [Skotlex]
- * Implemented a map-index which maps map-names to a unique number, this
- reduces memory required to store maps as well as the size of related
- packets between the char/map server. Maps and their indexes are stored in
- db/map_index.txt, and the index of a map should NEVER change (see file for
- more details). The index is translated to/from map-names for saving, so
- save-structures are not required to be modified. [Skotlex]
- - PD: The new mapindex also found a bunch of broken map names in various
- NPCs, someone will have to go fix them up.
- * Updated the party member structure to hold the char_id. For end users,
- the most noticable change is that now you can have more than one
- character from the same account belong to the same party. [Skotlex]
- - TXT users will have to wipe the party files, SQL users use the respective
- upgrade file (upgrade_svn4726.sql) to generate the new party column.
- * Updated the char-sql server to hold parties in memories until they are no
- longer needed (like the guild-cache), also optimized the save routine to
- avoid needless SQL calls. [Skotlex]
- ** WARNING: Because of the previous optimizations, a lot of code was changed around
- the map/char servers, the char-sql's party system got pretty much a
- rewrite, so some problems are to be expected. Some basic testing with
- parties over here showed no problems, hence the work is getting commited
- as it is because it isn't getting any better without further testing.
- * Set value of the last byte in packet 0x87 (walkok) to 0x88 (10001000).
- This is a default value in Aegis, and has something to do with animation speed in certain directions.
- This byte is going to need to be fully analyzed since it does change in Aegis, just that I have
- been unable to figure out what the conditions are. [Valaris]
- * Mob skills are not even read now if mob skills are disabled in
- battle_athena. [Skotlex]
-2005/12/28
- * Fixed xmas and wedding palette ignore options. It will also no longer send the dye packet if @dye is used. [Valaris]
- * Some code cleanup meant to fix possible memory leaks regarding
- parse_script() [Skotlex]
- * Small fix to party-share item pickup which should fix the current item
- dup exploit. [Skotlex]
- * Merged Reddozen's implementation of Kahai. [Skotlex]
- * Implemented Kaite (it simply changes the target of spell to the caster,
- so the caster's status changes and defense are the ones considered)
- [Skotlex]
- * Removed Guilds Glory from guild skill tree, can be enabled with require_glory_guild
- battle conf switch [Komurka]
- * Cleaned up the implementation of Poison and Deadly Poison. Corrected a bug
- on Deadly Poison that was KO'ing human players when it triggers under
- certain circumstances. [Skotlex]
- * Added guild_skill_tree.txt [Komurka]
- - corrected guild skill tree
- * Battle Orders, Regeneration, Restore and Emergency Recall now share their
- 5 minute delay. [Skotlex]]
- * Implemented SC_INTRAVISION [DracoRPG]
- * Reorganized a bit DEF/MDEF calculation code [DracoRPG]
- * Added a small licence notice at the top of every Athena source/header file, I've tried
- to put it only where it should have been but I'm not a pro ^^ [DracoRPG]
-2005/12/27
- * The 50% Weight Icon will now show up at whatever % was specified in
- natural_heal_weight_rate [Skotlex]
- * Fixed char-txt server crashing if trying to read storage lines with more
- items than the max (excess items will simply not be read and a warning
- printed) [Skotlex]
- * Added silent_console config option to the servers to filter out the
- console output (login_athena, char_athena, map_athena config files). Makes
- it possible to hide unwanted messages by category, so for example you can
- remove all info messages, or all warning+notice messages, etc. [Skotlex]
- * Removed unused battle switches enable_upper_class and unit_movement_type. [Skotlex]
- * Reenabled battle switches pet_defense_type, mob_defense_type and
- mob_remove_damaged. [Skotlex]
- * Applied Irmin's patch to add support for SQL codepages. [Skotlex]
- * Fixed friend list saving if using a custom char table name (SQL version). [Valaris]
- * Added check for mute in main chat [Foruken]
- * Likely fixed lose Hp/Sp script commands when used on accesories. [Skotlex]
- * Added 2 new script commands: getfatherid, getmotherid [Lupus]
- * Fixed compatibility problems with stricter compilers. [Lance]
- * Added joshuali's new VC8 project files and SQL database upgrade script. [Lance]
- * Fixed juicer script typo, eliminating unlimited juicing capability with zero zeny. [Lance]
-2005/12/26
- * Added check for free'd guild pointer beforing freeing in guild_save in int_guild.c. [Valaris]
- * Added @kamic command. Now you can send colored GM-messages.
- Syntax: @kamic <color> <message>. Color is 3-bytes hexadecimal number RRGGBB. [LuzZza]
- * Implemented main chat (global chat channel). Usage: @main <on|off>, @main <message>. [LuzZza]
- * Chasewalk players can now be hit in the same way a Cloaked player could.
- [Skotlex]
- * Added option mob_npc_event_type, read battle_athena.conf for details.
- [Skotlex]
-2005/12/24
- * Fixed @go, thanks to Persian [Vicious]
- * Updated @go command for new cities, done by Harbin [Vicious]
- * Added root user check and warning to non-Windows compiles. [Valaris]
- * Added a check to remove characters that would normally be left unremoved
- during shutdown because they just happened to be between maps. [Skotlex]
- * Fixed the production code always giving 1 item instead of the value they
- should (50/100/200 for Twilight Pharmacy skills) [Skotlex]
- * Corrected easy path searching algorithm failing for some cases (which
- incidentally seemed to be the reason skill_wall_check was broken) [Skotlex]
- * Fixed compile for TXT map-server. [Valaris]
- * Fixed stone curse's defense being checked versus int rather than mdef. [Skotlex]
- * Fixed firewall treating everyone as undead/fire-element. [Skotlex]
- * Added SQL read of cast_db. [Valaris]
- * Added SQL read of skill_require_db. [Valaris]
- * Added SQL read of skill_db. [Valaris]
- * Added setting use_new_sql_db to inter_athena.conf for development.
- Do not enable this setting, it will be merged into use_sql_db once all work is finished. [Valaris]
- * Added some work towards sqlizing the rest of the databases. [Valaris]
- * Changed @help2 to #help to display char commands. Cut @help in half
- @help2 has the other half. [Kayla]
-2005/12/23
- * Missed a change in txt login.c for bind_up. [Valaris]
- * Cleanup organization of clif.c and script.c.
- Please don't put extra functions beyond inits, try and organize a little. [Valaris]
- * Removed login_ip option from login_athena.conf as it is not used. [Valaris]
- * Fixed bind_ip option in login servers. [Valaris]
- * Fixed a bunch of terrible typos in chrif.c [Skotlex]
- * Fixed a terrible typo in the handling of broadcast messages which was
- causing the map server to send garbage packets to the char server.
- [Skotlex]
- * Added resistance (int + luk/3) to Stone Curse's equation [Skotlex]
- * Updated sql-files/item_db.sql to current txt version. [Skotlex]
- * Fog of Wall update... Blindess won't affect bosses, blindness ends as
- soon as you step out (players only) [Skotlex]
- * Implemented the Strip equipment effects on mobs. [Skotlex]
- * Now when Berserk ends, the char's HP goes to 100. [Skotlex]
- * LK's Concentration now gives +50 hit rather than +50% [Skotlex]
- * Inverted the handling of Individual/Shared item pickup rule for parties.
- [Skotlex]
- * Fixed the item ruling for parties not being correctly read from the save
- files. [Skotlex]
- * Now Star Gladiator uses 2nd Adv.Class Job EXP table (13th column) [Lupus]
- - In future there could be added the 14th EXP column, specially for Star Gladiator
-2005/12/22
- * Begin work on packet optimization .. not done yet [MouseJstr]
- * Finished work on @help/@help2. @help will no longer show # commands. @help2 shows
- them instead. [Kayla]
- * Fixed compile warnings in atcommand.c and map.c. Fixed compile error in script.c. [Valaris]
- * wedding_modifydisplay's default is now no (that's how it is on official)
- [Skotlex]
- * Some cleaning to skill_attack, also added target checking for splash
- attacks/groundbased skills [Skotlex]
- * Mobs will now stop walking if their target no longer exists (picked up
- items, for instance) [Skotlex]
- * Modified firewall to cause no damage delay when hitting undead
- characters. It may fix undead mobs warping when walking through the
- firewall. [Skotlex]
- * Added script command "clone" for cloning of players. See
- doc/script_commands.txt for further information. [Skotlex]
- * Added @waterlevel debug command to read/change the current's map
- water-level (command untested) [Skotlex]
- * Enabled names for forged weapon/created Potions by default [Lupus]
- - Old issues have beed solved long time ago, now items by TOP10 BS/ALCH gain their TOP10 bonuses
-2005/12/21
- * Now left_cardfix_to_right won't take effect when there's no weapon equipped
- on the right hand. [Skotlex]
- * Updated slave AI to support player masters as well (that is, you could
- have a non aggressive slave, and it will target any mobs the master
- targets) [Skotlex]
- * Added battle option skill_wall_check, when enabled, all ground skills
- will do a check for each cell to guarantee a straight path between the
- cells and the target tile. Should prevent AOE skills from hitting through
- walls. Due to the possible performance penalty this setting brings, it
- defaults to no currently. [Skotlex]
- * Default skill delay for skills with no delay is now the normal attack
- delay. [Skotlex]
- * Extremity Fist/Charge Attack will fail if the player can't move to the
- target. [Skotlex]
- * Prepare kick skills now only fail for Soul Linkers. [Skotlex]
- * Merged in Marquis007's work on SL_SKA/SL_SWOO [Skotlex]
- * All skills except Shield Boomerang get the weapon's refine bonus now.
- [Skotlex]
- * Taekwon Ready Stances will now fail if you are a Second Job of the
- Taekwon Tree (SL, SG) [Skotlex]
- * Another fix to item picking for party-share. Hopefully it works alright
- now (at least I believe it should be dupe-proof now) [Skotlex]
-2005/12/20
- * Updated water heights for some maps, thanks to [Lupus]
- - removed p_track02.gat from the maps list. Thanks to Justin84
- * Fixed produce_db items always failing... [Skotlex]
- * Hopefully fixed picking up items on a party-share type of party. [Skotlex]
- * Txt map servers will now send the whole list of online characters at
- UPDATE_INTERVAL (10 secs) rather than CHECK_INTERVAL (1 hour) so that the
- online.html file will be correctly updated. [Skotlex]
- * Fixed char_sql and char crash because of buffer overrun. [Lance]
- * Added a flag to tag non-weapon based skills so that they don't get the
- following bonuses: Star crumb damage, Mastery bonuses, Weapon Refine damage
- upgrades. Currently applies only to shield skills. [Skotlex]
- * Removed use of castle_id for guilds in char-sql server (use corresponding
- upgrade_svn* file). TXT servers haven't been touched yet because that
- would mess up the guild save files. [Skotlex]
- * Online list of characters will be sync'ed every 10 secs for TXT servers.
- [Skotlex]
- * Merged in Reddozen's work to get Twilight Pharmacy working. [Skotlex]
- - Create Deadly Poison Bottle and Holy Water are now both handled by the
- item producing code.
-2005/12/19
- * Fixed char servers not parsing correctly the online count packet (/who
- should work fine now) [Skotlex]
- * Fixed the Dodge walking speed bonus to Assassin. [Skotlex]
- * Added the new Garden City Hugel and Kiehl maps. [Valaris]
- * Corrected Kaupe/Kaizel so that you can cast it on self/family when
- not-linked, and anyone when linked. [Skotlex]
- * Fixed the mob damage log not getting the ID of the attacker registered...
- [Skotlex]
- * Added a new timer which updates only the count of characters on the
- current map server to the char server. Update interval is 10 secs.
- [Skotlex]
- * Updated status_clear_debuffs to clear many other types of ailments
- (Gospel should be clearing up most negative status changes now) [Skotlex]
- * Fixed exp calc type 0 (dmg/total dmg) being calculated as 0 always. [Skotlex]
- * Implemented the item pickup style for parties. [Skotlex]
- - Party share distributes items in round-robin fashion among players who
- are in the same map.
- - Pick-up Style shared is needed for anyone to be able to pick up the item
- bypassing the timers set for first/second/third sd. [Skotlex]
- * Optimized map server's online-listing update timers. [Skotlex]
- * Some updates to the online db in the char/char_sql servers, should help
- fix some memory leaks due to chars left tagged as 'online' even though
- that's incorrect. [Skotlex]
- * Added buildin_warpchar script function. Useful for warp one player from
- another player npc-session. Sytax: warpchar "map.gat",x,y,Char_ID; [LuzZza]
- * Now opening storage will fial if the guild storage is open and viceversa.
- [Skotlex]
- * Total damage a mob receives is now stored on it's own variable. Damage
- log implementation clean-up. [Skotlex]
-2005/12/18
- * Fixed Close Confine not affecting the caster. [Skotlex]
- * Fixed all skills except Extremity Fist not getting the weapon size
- modifiers [Skotlex]
- * Fixed Warp Portal checking for noteleport instead of nowarp mapflag
- (again?) [Skotlex]
- * Fixed baseJob working as baseClass (I hope it works fine now) [Skotlex]
- * Fixed Doridori bonus for Super Novices [Skotlex]
- * Updated new MOTD code so that it can compile on VC. [Valaris]
- * Fixed clone's dyes changing when they attack. [Valaris]
- * Declared pc_read_motd(void) in pc.h for the motd reload command. [Valaris]
- * Added @reloadmotd for reloading the motd.txt into memory. [Valaris]
- * motd.txt will now load into memory at startup instead of being read everytime a player logs in. [Valaris]
- - motd.txt can now have lines commented with "//" .
- - MOTD_LINE_SIZE is defined in pc.c, change this to increase maximum amount of lines allowed in motd.txt.
- - Default motd line maximum is 128.
- * Added a new script function 'setitemscript ItemID,"{ end; }"' [Lupus]
- - Very useful for events that give TEMP item bonuses for short time period 8) A Custom New Year Event NPC's coming soon.
-2005/12/17
- * Updated the svn eol-style properties to make merging between
- linux and windows easier when we use more complex branching
- system [4544: MouseJstr]
-2005/12/16
- * left_cardfix_to_right now also moves the ignore race/element defense
- bonuses (Ice Pick, Weed Killer, etc) [Skotlex]
- * Some fixes to the job_name functions (rearranging inside msg_athena.txt
- as well) [Skotlex]
- * Left card to right fix will now also apply to defense piercing effects
- (Ice Pick) [Skotlex]
- * Fixed char-converter being broken for a type mismatch [Foruken]
-2005/12/15
- * Fixed clone skills again. This time ground-based skills are working, and
- support skills have a re-cast delay of half the skill's actual effect. [Skotlex]
- * Fixed clone commands sometimes spawning the clone on a non-walkable tile
- (which in turn sends the clone to a random map location) [Skotlex]
- * Added debug information to the guild cache. Total number of guilds in the
- db will be printed now (as long as the save log is active) [Skotlex]
- * Updated SG_HATE to pick the specific class (Select a Monk, and the bonus
- is against monks only, not Champions/Acolytes/Baby Monks) [Skotlex]
- * Removed hardcoded table names in login_sql/login.c [Foruken]
- * Some cleaning regarding the job tree skill-raising restrictions code.
- [Skotlex]
- * Optimized/cleaned up the job_name function, job names are now acquired
- from msg_athena.txt. [Skotlex]
- * Fixed race defense bonus against Boss/Nonboss checking versus the target
- instead of the attacker (should fix Alice Card) [Skotlex]
- * Some cleaning in clif.c [Skotlex]
-2005/12/14
- * Fixed 'dead_branch_active' option. [Skotlex]
- * Optimized use of weather effects, or should I say, no use.
- Also re-added clif_clearweather to some of the weather effects, when they are turned off.
- Why those were removed are beyond me.. [Valaris]
- * Temporarily changed the walk speed during Charge Attack and Extremity
- Fist to simulate a faster 'zoom' to the target (somewhat untested yet)
- [Skotlex]
- * Corrected SL_HIGH so that the total of each stat is always 50...
- [Skotlex]
- * Optimized graffiti display packets (what was I thinking?) [Valaris]
- * Corrected a statement in guild.c (== to =) in nulling out the guild cache. [Valaris]
- * Implemented a mini cache for guilds/parties in the map server. Looking up
- the same guild/party twice or more should result in instant seek times
- until a different one is looked up. [Skotlex]
- * Fixed saving account variables [Komurka]
- * Fixed SL_KAIZEL not starting the proper effect. [Skotlex]
- * Merged Reddozen's work of SL_KAUPE [Skotlex]
- * Updated checkweight() script command to return false when the player has
- inventory full. [Skotlex]
- * Soullink check for SG_FUSION [Komurka]
-2005/12/13
- * Fixed @slaveclone not attacking enemies. [Skotlex]
- * Some more cleaning to the clone skills, proper support for Heal,
- Resurrection, Double Attack, Triple Blows. [Skotlex]
- * Updates/fixes/corrections to battle check target so that mobs with
- special AI can fight mobs without it even if the mob doesn't has a human
- master. Also updated it so that mobs with no special AI are all friends by
- default. [Skotlex]
- * Clone skill fixes, support/self skills are now triggering (never
- triggered before), adjusted some of the skill usage rates. [Skotlex]
- * Dyes will now work correctly on cloned or mob_avail class monsters.
- save_clothcolor must be enable in battle_athena.conf. [Valaris]
- * Added carts, falcons and pecos to clone and mob_avail class monster spawns. [Valaris]
- * Likely fixed the @spawn names issue. [Skotlex]
- * Fixed @*clone commands not resolving properly the target char. [Skotlex]
- * Implemented the SL_ROGUE bonus to potions. They heal +100% more rather
- than 50% (potions from ranking Alchemists, that is) [Skotlex]
- * Merged in Reddozen's work with SL_KAIZEL [Skotlex]
- * Added the check to prevent KA skills from being usable until you are Soul
- Linked. [Skotlex]
- * Enabled clif_parse_Taekwon (Why was taekwon parsed as clif_parse_Alchemist?) [Vicious]
- * Moved the base attack code into it's own function to properly implement
- the magnum break's elemental damage bonus (watch out for bugs as the code
- was proof-read, but that usually doesn't says quite enough when it comes to
- code). [Skotlex]
- * Merged in Reddozen's work for SL_WIZARD [Skotlex]
- * Updated clone command to allow attaching the clone to the invoking player
- as a slave. @clone creates a friendly clone that attacks mobs. @slaveclone
- makes a clone that follows the creator (it's a slave), @evilclone is the
- stock clone as a mob). Also fixed min/max damage of clones. [Skotlex]
- * Added one extra tile of range to melee mobs in mob_attack, should fix
- mobs not attacking when they are range+1 tile from you, yet they refuse to
- move in that final tile. [Skotlex]
- * Corrected mob ai not moving closer to player if there's a distance of 2
- or less between them (which would do no good if the mob's range is just 1) [Skotlex]
- * Fixed SG_FRIEND - should work now [Komurka]
- * Realtered global_reg value size to 256. [Lance]
- * Adjusted pointers location for packets for new global_reg value (it's wrong + I adjusted the size) to 256 + 32 = 288 [Lance]
- * Improved variable scope for scripts to accept all string variables. [Lance]
- * Altered map, char and login server to correctly use global_reg [Lance]
- * do_sendrecv merges from Freya [Lance]
- = Requires recheck on packets again to see if I missed any pointer alterations =
- * Improved @evilclone to accept character IDs [Lance]
- * Corrected partywarp/guildwarp to correctly take into account nowarp/nowarpto mapflags. [Skotlex]
- * Added a few custom scripts due to high demand. [Lance]
- * Added monster museum. Adapted from Prometheus. [Lance]
- * Corrected OnTouch to use exname instead of name to prevent conflicts. [Lance]
-2005/12/12
- * added manner_system battle conf variable (now you can have PK server without manner system - which is unfinished ;/) [Komurka]
- - some corrections in SI_ data (night uses soullink effect)
- - changed global_reg value from int to char
- added two new functions (pc_readglobalreg_str and pc_setglobalreg_str)
- SG_FEEL now saves maps to global_reg
- I've 'marked' all changes that SHOULD be checked with '//komurka'
- - SG_FUSION hp penalty changed from 2% to 0.5%
- - SG_SUN_COMFORT now increase VIT DEF
- - implemented SG_FRIEND skill - this is the last SG skill - now it's a good time for bug reports :]
- * Updated the max number of ingredients of produce_db to 12. [Skotelx]
- * Updated clone code to also copy the skills from the source player. [Skotlex]
- * Added Reddozen's implementation of SL_SKE and SL_MONK (sp recovery, Combo
- Finisher splash damage, SP regen while in Fury) [Skotlex]
- * Some reorganization of the Star Gladiator map-based skills. [Skotlex]
- * Fixed @spawn/@monster atcommands 'freezing' server when used. [Skotlex]
- * Fixed ground-based skills having their range-check messed up... [Skotlex]
- * Corrected melee-ranged mobs failing the range check even if they were
- standing next to you. [Skotlex]
- * Added all duel-commands messages into msg_athena.conf. Commented out
- code of drawing PVP-circle in duel because it not hiding when player use hide. [LuzZza]
- * Removed @monster2, merged the code of atcommand_spawn/atcommand_monster
- as suggested by Flaviojs. [Skotlex]
- * Removed some unused entries in msg_athena.txt [Skotlex]
- * When there are unused stack sections (invoked functions and ignored
- return values) the unused stack section is free'd. This is still notified
- when the etc_log is active. [Skotlex]
- * Removed the TURBO code from socket.c as requested by MouseJstr. [Skotlex]
- - It was actually slower than the normal code.
- * Updated warp portal and script commands partywarp/guildwarp to take into
- consideration mapflag nowarp as restriction rather than noteleport.
- [Skotlex]
- * Applied dontBR's update to his configure script [Kayla]
- * Changed the bonus on Sonic blow.(It was giving 1500% instead of 1600%) [Vicious]
- * Updated gettimetick() to use flag 2 and return System's tick, thanks to
- Kyoki [Skotlex]
- * Removed the mismatch stack error message caused by scripts where the
- returning value of a function was ignored. [Skotlex]
- * Corrected the Spirit of Assassin damage bonus of Sonic Blows. [Skotlex]
- * Corrected BSS check versus undead, checking for partners on the Priest's
- exact left and right, and sending partner's SP to negative. [Skotlex]
- * Another Paladin's Gospel effect ends when you cast it (should fix Gospel
- in Gospel bugs). Also, now Gospel only blocks usage of items of type 0
- (healing). [Skotlex]
- * Corrected berserk Pitcher displaying 0 heal. [Skotlex]
- * Added Close Confine's flee bonus. [Skotlex]
- * Corrected Slow Poison. Can be used when not poisoned, will not "pause"
- poison's timer. [Skotlex]
- * Implemented SG_FUSION skill [Komurka]
- Don't ask me why in newer exe U see flying ... Santa ... -.-
- * Updated the distance() function definition with one which uses a much
- better approximation [Skotlex]
- * Updated sql-files/ mob_db.sql & item_db.sql to latest. [Skotlex]
- * Added @autotrade/@at and @away/@aw messages into msg_athena.conf (you can customize them) [Lupus]
- * Updated default hardcoded GMlevel values of some @ATCommands according atcommand_athena.conf [Lupus]
- and removed doubles of some commands, thanks to Rideword
-2005/12/11
- * Corrected guild deletion in SQL (both from /breakguild and guild master character deletion). [Valaris]
- * Added @evilclone commands. Syntax is @evilclone <playername>, [Valaris]
- It will spawn an aggresive clone of the given player.
- By default it will use mob id ranges 9001-10000, this range is #defined in mob.h.
- * Fixed VS compile error in mob_clone_spawn. [Valaris]
-2005/12/10
- * Added core player cloning code. Just need to create some commands. [Valaris]
- * Redid the @help2 (char commands). [Kayla]
- * Added jobname retrieving script function getJobName. [Lance]
-2005/12/09
- * Changed default GM level for @setbattleflag to 99. [Valaris]
- * Implemented the SL_SUPERNOVICE bonus to wear all heagears/various weapons
- at high base levels. [Skotlex]
- * Implemented SL_ROGUE bonuses: can't be dispelled, Chase Walk's str bonus
- lasts 10x longer. [Skotlex]
- * OneHand Quicken now dispels aspd potion effects. [Skotlex]
- * Updated SL_STIN/SL_STUN to do miserable damage if the target's size is
- 'incorrect'. [Skotlex]
- * Updated @disguise so the max npc id you can use is 1000 (1001 is already
- the first mob, Scorpion) [Skotlex]
- * Fixed a possible infinite loop in pc_calc_skilltree when receiving
- additional skills when Soul Linked. [Skotlex]
- * Added the Taekwon bonus that gives you triple Max HP/SP when you are a
- top 10 ranker and have base level 90+ [Skotlex]
- * Added support for skill_db pl == -2. These skills don't take the element
- of the weapon, but will take the element of any enchantment elemental
- change (so the element used is neutral unless you are enchanted with
- Fire/Wind/etc) [Skotlex]
- * Coded in SL_STIN, SL_STUN and SL_SMA. [Skotlex]
- * Should have fixed the crash with raw_time in char/char.c [Skotlex]
- * Pressure can now be cast-break. [Skotlex]
- * Likely fixed the client crash when hating a class rather than mob. [Skotlex]
- * Removed @help2, note to self: do not commit at 4 am. Will redo later. [Kayla]
- * Added @help2. @help did not fit in the screen. @help2 currently contains
- just the char (#) commands. [Kayla]
- * MAPREGSQL disabled (experimental) in VC7. To enable, define MAPREGSQL in preprocessor. [Lance]
-
-2005/12/08
- * Changed default value of start_zeny to 0 to prevent packet exploits.
- Also is 0z on offical servers. [Kayla]
- * Fixed bug with objects (npcs, monsters, players, etc) not appearing when using @refresh. [Valaris]
- * Updated effects for food production thx to Poki#3 [Komurka]
- * SG_STAR_BLESS now gives 20%*skill lvl additional exp [Komurka]
- * Modified clif_blown to use the clif_slide packet instead of clif_fixpos,
- as Komurka tested it and it appears to be handled better by current
- clients. [Skotlex]
- * Added two new battle_athena.conf options:
- duel_allow_teleport (def: no) and duel_autoleave_when_die (def: yes) [LuzZza]
- * Small fix in allskill [Komurka]
- * Updated Gloria Domini to bypass battle_calc_damage (misc damage
- reductions) [Skotlex]
- * Fixed a typo in pid.c, thanks to akusarujin [celest]
- * Exploit fix in SG_FEEL [Komurka]
- * Updated TK_MISSION to pick a random mob in the same way a dead branch
- does. [Skotlex]
- * Corrected SG_DEVIL giving the ASPD bonus below level 50. Only works at
- max level... [Skotlex]
- * Some cleaning to pc_calc_skilltree. Also updated it so that if you don't
- use player_skillfree, you can't have ANY skill if you don't have NV_BASIC at
- 9 (only exception are quest skills). [Skotlex]
- * Implemented HT_POWER/Beast Strafing. [Skotlex]
- - The damage equation is unknown.. for now it's the same as Double Strafe
- except the skill modifier is +10%*str
- - Currently the Combo is triggered 100% of Double Strafes done on beast
- monsters.
- * Added Reddozen's work for Hunter's Beast bane spirit bonus. [Skotlex]
- * Corrected the drop delay for mobs when killed by magic to be 500ms (will
- only work if killed by a player) [Skotlex]
- * Updated SG skills (kRO Patch - 11/29/05) [Komurka]
- * Enabled a few maps needed for the new novice training grounds, sorry I forgot to [MasterOfMuppets]
- * Removed duplicate maps in maps_athena.conf. Thanks for the report Dr. Evil [Kayla]
-2005/12/07
- * Pressure will always pull-off now after it has began casting. [Skotlex]
- * Implemented Close Confine. [Skotlex]
- * Change all 0x20e packets (18->26; 22->30) [Komurka]
- Also added job_name(mob_id) in clif_hate_mob
- (but it crashes client when U try to use SG_HATE skill on player ><)
- * Fixed compile error in status.c. Check your work skot <3 [Kayla & MoM]
- * Updated socket.c by adding a lots error reporting for functions that
- previously were assumed to not fail. May help figure out what's going on
- with the win32 builds... [Skotlex]
- * Reviewed and cleaned up a bit the latest SG additions from Komurka. [Skotlex]
- - My skill desc says that SG_DEVIL does not makes you blind until you reach
- max job level, so I implemented that. Report if this is incorrect.
- - SG_*_WARM skills should be working from what I read there.
- * Modified a bit the TK_MISSION packet, GUESSING where the progress of the
- current mission should go within said packet... [Skotlex]
- * Implemented TK_MISSION. [Skotlex]
- * Added more SG skills (Comfort, Warmth, Demon, Knowledge) [Komurka]
- All of them should be checked by someone ^^;;
- - SG_xx_WARM for now only shows cool red effect :> There is more code but for now it doesn't work
- * Added new Geffen Field maps [Harbin]
- * Disabled Atcommand Nuke (It was commented, not disabled) [Harbin]
- * Added skip_teleport_lv1_menu option to Battle_Athena. Allows players to cast Teleport level 1 without menu. [Harbin]
- * Merged in Reddozen's current Soul Linker work. [Skotlex]
- - Berserk Pitcher should be working now.
- - Bard/Dancer walk bonus when dancing/singing while soul-linked.
- - Partial work on Twilight Pharmacy.
- - proper skill effect
- * Fixed One Hand quicken doing nothing. [Skotlex]
- * skill_get_name now returns "UNKNOWN_SKILL" instead of null (should fix
- some crashes when using it on skills with no defined name) [Skotlex]
- * When weapon_delay_attack is enabled, items should drop inmediately after
- mobs are killed rather than 500ms afterwards. [Skotlex]
- * Added Exception Handling plugin to be used for native Win32 builds [celest]
- - crashes will be logged in <server type>.stackdump along with file name and line numbers
- - To activate, enable 'exchndl' in plugin_athena.conf
-
- Public Service Message - Crash reports can be VERY VERY helpful, so please enable the
- plugins if you can ('exchndl' for Win32, 'sig' for cygwin and linux) and send in any
- reports you might get! We all want eA to be stable, ne? ^^
-
- * Some compile error fixes for MinGW, FreeBSD and plugins [celest]
- * Updated Makefile to set platform defines for FreeBSD [celest]
- * Updated Makefile to auto-detect MinGW and include src/mysql [celest]
- * Debug logging flag for logging output messages (only works well with native Win32) :D (Not enabled by default) [Lance]
- * joshuali's new vcproj with debug mode correctly set up. [Lance]
- * Fixed compile errors for Valaris's commit on date.h [Lance]
- * Added updated vcproj for native VC8 win32 for date.h/c support. [Lance]
- * Removed extra returns in date.h. [Lance]
- * Probably fixed warnings in unzip.c [Lance]
-2005/12/06
- * Updated item 12132 for the Xmas suit effect in item_db.sql. [Valaris]
- * Implemented Xmas Suit: [Valaris]
- -Added status change state SC_XMAS, and added it to const.txt.
- -Cannot attack or use skills while in the Xmas state.
- -Will save if you logout.
- -"sc_start SC_XMAS,600000,0" added to item 12132 (using item will give you xmas suit for 10 minutes).
- -Added xmas_ignorepalette option to battle_athena.conf.
- * Fixed script error in Garm's Claw item causing an error. [Valaris]
- * Added a missing ; to Skotlex's Previous SG skill editions that caused compile errors. [Valaris]
- * Added JOB_GUNSLINGER(24), JOB_NINJA(25), and JOB_XMAS(26) to map.h enum list and const.txt. [Valaris]
- * Added SC_SCRESIST to const.txt. [Valaris]
- * Applied Komurka's Star Gladiator patch. [Skotlex]
- - The following skills are now working: SG_FEEL, SG_HATE, SG_SUN_ANGER,
- SG_MOON_ANGER, SG_STAR_ANGER, SG_SUN_BLESS, SG_MOON_BLESS, SG_STAR_BLESS
- - The designated maps cannot be stored currently (cannot save character
- string variables) and is pending on a script update to enable saving of
- said type of variables.
- * Added @away command. [LuzZza]
- * Mostly fixed intravision making everyone see hidden/cloacked characters.
- (the actual option value to see just the player's shadow is currently
- unknown) [Skotlex]
- * Updated Gospel [Skotlex]
- - It should clear all buffs/debuffs now.
- - Party-mates within range cannot use items.
- * Implemented the SL_BARDDANCER bonus that enables the caster to be buffed
- by their own song/dance/encore. [Skotlex]
- * Completed Sight Thrasher (the option value is still missing, though.
- Temporarily uses the one of Sight) [Skotlex]
- * Corrected possible exp exploits in jA's exp calc method. [Skotlex]
- * Corrected Spirit Skills showing up in all class trees. [Skotlex]
- * Invoking @reloadscript now also invokes the OnInit event after loading. [Skotlex]
- * Expanded Item Groups list from 20 to 32 item groups [Lupus]
- * Fixed healing experience bug. Now only healing another players gives experience. [Harbin]
-2005/12/05
- * Hopefully fixed gm_all_skill.... [Skotlex]
- * Modified a bit the player attack code to give an extra range cell when
- the target is moving. [Skotlex]
- * Added skip_teleport_lv1_menu battle_athena option. It give a possibility to
- disable (skip) Teleport Lv1 menu, that have only two lines `Random` and `Cancel`.
- Of course, by default this option have `no` (don't skip) value. [LuzZza]
- * Added FD_SETSIZE 4096 predefination to VC++ Project Files. Should fix 60 player limit bug with native compilations. [Harbin]
- * Fixed char crash (I hope) when checking for two parents + baby in a party
- with more than 3 characters, but from which only 3 were online at a time. [Skotlex]
- * Merged in Reddozen's work on SL_BARDDANCER and cleaned up a bit the
- Spirit Skills code when calculating the skill tree. [Skotlex]
- * Updated mob ai so that support/aggressive mobs can't 'see' a player until
- there's a direct line of sight between them. [Skotlex]
- * Updated monster_ai&1 so that when not set mob-chase type is Aegis-like
- (mobs will not change walk target tiles mid-walk) [Skotlex]
- * Added battle_athena.conf option mobs_level_up_exp_rate to set the extra
- exp rate a leveled up monsters gives. [Valaris]
- * Added a custom X-Mas quest *Sign Your Items* [Lupus]
- * Applied Harbin's patch to fix Arrow Shower + Traps. Someone test it out.
- [Skotlex]
- * Another fix to socket.c to enable TURBO mode to work on win32. [Skotlex]
- * Fixed the combo status not ending after using TK_TURNKICK [Skotlex]
- * Overflowed pointer fix in socket.c [Skotlex]
- * Added 'Einbech' into @go command (u have to type at least 5 letters) [Lupus]
- * More detailed error messages for missing '"'s in scripts. [Lance]
-2005/12/04
- * Removed mail server switch from battle_athena.conf and added
- full mail server configuration to inter_athena.conf. [Valaris]
- * Fixed too big VVS damage of TOP10 BS weapons [Lupus]
-2005/12/03
- * Fixed up TK Sprint (TK_RUN) skill: [Valaris]
- -Disabled movement during skill use.
- -Correct moves player server-side.
- -Stops without sp use if skill is used during running.
- -Server will not save status if player logs out.
- * Some cleaning of socket.c to see if TURBO will now work on Windows, it
- may also fix the select() problems on that platform as well. [Skotlex]
- * Fixex "gm_skill_all" crashing the server from generating huge packets (or
- so I hope) [Skotlex]
-2005/12/02
- * Gave the Spirit Status Change a custom effect for now. [Skotlex]
- * Merged in Reddozen's work for SL_HIGH (Spirit of Rebirth) [Skotlex]
- * The Bonus skills acquired from being Soul Linked should now show up in
- the skill tree. [Skotlex]
- * Merged Reddozen's work of One-Hand Quicken and Adrenaline Rush 2. [Skotlex]
- * Fixed Axe-Kick never triggering. [Skotlex]
- * Slaves walk once again. [Skotlex]
- * enable_items now also enables equipment stuff. [Skotlex]
- * The attack motion in packets for ground-based skills is now 0 (it may
- help somewhat with current firewall issues). [Skotlex]
- * Added char-server option "save_log", when disabled, the char server will
- stop printing info messages whenever something is loaded/saved. [Skotlex]
- * Disabled random-walking for slaves [Skotlex]
- * Added script commands enable_items/disable_items [Skotlex]
- * Likely fixed the mob-skill target type "master" [Skotlex]
- * Added target type "master" to the mobskill_db [Skotlex]
- * Modified NPC_RUN to allow the caster to run away from the target [Skotlex]
- * Implemented SL_SAGE (Soul Linker Sage buff for auto-cast bolts) [Skotlex]
- * Updated char-sql guild saving so that instead of saving ALL guilds when
- the time comes, the save interval is splitted on time-slots (based on guild
- count in memory) and a guild is saved per time-slot (just like the map
- server saves characters). [Skotlex]
- * Fixed client crashes with using baby and advanced player classes as pets. [Valaris]
- * Added missing ban_hack_trade option to battle_athena.conf. [Valaris]
- * Hopefully fixed Counter Kick. [Skotlex]
- * Uncommented and corrected the Soul Linker Monk buff (SP cost reduction
- for monk combos) [Skotlex]
- * Added a check in skills so that skills that are used on yourself, but had
- it's target auto-selected cannot be used on non-enemies if it's nk is
- different from 1 (1 = No damage skill) [Skotlex]
- * Various cleanups to the char-sql server to prevent corner-case crashes
- from queries that return no rows. [Skotlex]
- * Massive Taekwon Boy skills related code cleanup. [Skotlex]
- - Flying Side kick and Turn Kick should be fully working now, too.
- * Cleaned up and reorganized the SC_ data listing. Added sc's for food
- related bonuses: SC_HITFood, SC_FLEEFood, SC_BAtkFood, SC_WAtkFood,
- SC_MAtkFood. [Skotlex]
- - Some of the saved sc data will be wrong, so wipe the table/file if you
- want to play it safe.
- * Some corrects in duel code. [LuzZza]
- * Sonic Blow and Shield Boomerang's after cast delay is now properly
- adjusted by the Soul Link skills. [Skotlex]
- * Party even share will be now broken after a base level reset. [Skotlex]
- * Merged in Reddozen's Soul Linker current skills work. [Skotlex]
- * Added countitem2(itemID,....) script function. [Lupus]
- * Added axtoi script function that converts hex strings to integers. [Lance]
- * Fixed incorrect time (that leads to crashes) in login server. [Lance]
-2005/12/01
- * Moved KN_CHARGEATK code to merge it with Extremity Fist. Skill damage
- modifier is currently set to +15% per cell (need actual value here) [Skotlex]
- * Fixed client crash when logging in with Baby Knights and Crusaders riding Pecos. [Valaris]
- * Implemented Ki Explosion. [Skotlex]
- * Fixed client crashes with using baby and advanced player classes as monsters. [Valaris]
- Make sure to use Item ID for weapons and shields in mob_avail.txt for player monsters and not View ID.
- Updated Valaris and MC Cameri mobs in item_avail.txt to use Item IDs.
- * Fixed cutting Castle Name (was 14 instead of 24) [Lupus]
- * Corrected Grimtooth counting a short-range skill when it's actually
- ranged. [Skotlex]
- * Corrected Venom Splasher's splash range, and the splash damage is now
- divided by number of targets (sort of, skill % dmg is adjusted according
- number of targets) [Skotlex]
- * Tarot Card of Fate won't break equipment now if equip_skill_break_rate is
- 0. [Skotlex]
- * Improvements and optimizations to the online db management in the char
- txt/sql servers. [Skotlex]
- * Updated the guild cache (char sql) to have it load/unload characters
- whenever they are updated in the char online_db (previously they were only
- updated on normal char-select/char-quit when there were more cases where a
- char is set online/offline) [Skotlex]
- * Now when the guild is not found in the cache it will be loaded from the
- sql db first before failing. [Skotlex]
- * Fixed equip_skill_break_rate equation being messed up for Acid Demonstration. [Skotlex]
- * Fixed Aura Blade adding damage to Spiral Pierce (it shouldn't) [Skotlex]
- * Script function getnameditem now sets flag 254 (created) instead of 255 (forged) [Lupus]
- To prevent ADDITIONAL Blacksmith FAME TOP10 bonuses, applied to signed but not forged weapons
- e.g. You have a custom quest for rare weapons. You tag items with players name (using getnameditem command).
- if a TOP10 BS get an Infiltrator.. then it used to give extra atk bonus 8)
-2005/11/30
- * Updated item_db.sql to latest. [Skotlex]
- * Updated mob_db.sql to latest. [Skotlex]
- * Updated Gospel to force the removal of the ground-effect when the status
- change ends. [Skotlex]
- * Made Snatch/Intimidate work on Guild maps (I have read around this is how
- it is) [Skotlex]
- * Added the auction maps to maps_athena.conf [MasterOfMuppets]
- * When players are hit while moving, they should now move one last cell
- in the same direction they were walking when interrupted. [Skotlex]
- * Walk delay won't be applied now unless the attack deals damage... [Skotlex]
- * Major reorganization of player variables and bonuses. If something broke,
- report it up. Otherwise, struct map_session_data should look quite a bit
- more clean now. [Skotlex]
- * Fixed duel bug when you can't cast some skills on yourself. [LuzZza]
- * Fixed (I think) pets losing the "rename flag" when you sent them back to
- egg. [Skotlex]
- * Added a index check in the equip packet, should fix crashes from invalid
- packets. [Skotlex]
- * Fixed a horrible bug that was making the walk delay not work for sure x.x
- [Skotlex]
-2005/11/29
- * Fixed race exp bonuses. [Skotlex]
- * Fixed ## account variable saving disconnecting the char-login servers. [Skotlex]
- * Updated the way multi-hit skills add overrefine/star crumb/spirit sphere
- damage so that the total bonus is multiplied by the total number of this.
- [Skotlex]
- * Fixed the config variables being "lost" on startup. [Skotlex]
- * Fixed Restore requiring Regeneration lv2 [Skotlex]
- * Fixed the spirit sphere bonus not applying to Throw Spirit Sphere. [Skotlex]
- * Rewrote and cleaned up duel code. Formed independent duel_xxx functions.
- I suggest to place this functions in duel.c/duel.h. New features: [LuzZza]
- - Now when you in duel, you can't attack anything out of your duel
- (mobs, other players etc...);
- - Now you can't take part in duel more often than it set in battle_athena.
- Default delay is 60 minutes.
- - New battle_athena.conf options: duel_allow_pvp - allow/disallow duel
- on pvp-maps; duel_allow_gvg - allow/disallow duel on gvg-maps;
- duel_time_interval - delay between using duel in minutes.
- * Updated damage formula for Spiral Pierce. [Skotlex]
- * Fixed speed change being lost when speed is increased/decreased while
- walking with Free-cast. [Skotlex]
- * Fixed pets being renameable after turning them back into eggs. [Skotlex]
- * Reverted the guild data position in the mob/npc packets, should restore
- the emblems in flags. [Skotlex]
- * Corrected battle_check_target Guild checks returning true for non-guild,
- party'ed characters and viceversa. [Skotlex]
-2005/11/28
- * Added dontBR's experimental configure script. It's still in alpha stage,
- so use with caution! [Skotlex]
- * Fixed a pair of exp exploits possible with to Rich Man Kim and
- race-add-exp card bonuses. [Skotlex]
- * Updated behaviour of skillrange_from_weapon. If set, those skills with
- negative range use the weapon's range. If not set, then the skill range
- used is the absolute value of the range specified in the skill_db. [Skotlex]
- * Small cleanup of the color broadcast packet using data provided by Master
- of Muppets. It should hopefully fix the font-size on said colored messages.
- [Skotlex]
- * Fixed the setting of the guild id and guild emblem in packets 0x7b and
- 0x78 for mobs/npcs (this is assuming the position is correct when filling
- these same packets for players) [Skotlex]
- * Added battle_config option skillrange_from_weapon which, when set, allows
- weapon based, target-selected, offensive skills to take the equipped
- weapon's range instead of the range defined in the skill_db. [Skotlex]
- * WARNING/ACHTUNG! Update all your NPCs ASAP. Massive NPC fix's out. [Lupus]
- * Updated monster_ai&8 so that mobs scatter as soon as they lose their
- target. Use this setting for an effective counter measure to Grimtooth
- mass-mob training. [Skotlex]
- * Added pc_damage_walk_delay_rate to separate the walk delay adjustment of
- players from that of mobs. The adjustment for players is 20% while for mobs
- is 100%, pending further adjustments. [Skotlex]
- * Added the weapon upgrade damage bonus of Spiral Pierce [Skotlex]
- * Removed the mob_stop_walking code from mob_damage as it should be invoked
- on battle_walkdelay (the mob walk delay issue will likely need it's own
- config option) [Skotlex]
- * Added joshuali's new Visual Studio files. [Lance]
- * Novice Warp Portal fixes from jAthena. [Lance]
- * Final warning elimination in plugins.c (most of them are gone with warning level set to 1). [Lance]
- * Fixed typo in msg_athena.conf and 'users with autoloot turned on will not have their rare drops announced.'. Thanks to Kaseki.
- * Mob should stop walking when hit if not enduring. Thanks to Playtester. [Lance]
- * Included pcre.dll and libmysql.dll from joshuali. [Lance]
- * Eliminated Level 3 warnings. Setting compile warnings to Level 3. (Level 4 just kills eAthena XD) [Lance]
-2005/11/27
- * Fixed an overflow pointer bug in the gvg eliminate timer. [Skotlex]
- * Updated the damage code if Spiral Pierce, Shield Chain and Shield
- boomerang to be closer to official. [Skotlex]
- * Fixed a crash when setting all chars offline in the char-sql server. Also
- fixed that delete_timer mismatch on shutdown [Skotlex]
- * Autospells now won't trigger if the range between the source and the
- target is not satisfied. [Skotlex]
-2005/11/26
- * Added bonus2 bAddSkillBlown for adding a custom knockback value to a
- skill. Note that this knockback bonus is ADDED to whatever the default
- knockback of the skill is. [Skotlex]
- * Fixed Soul Linker skills showing up on the tree for leveling up. [Skotlex]
- * Probably fixed the crash in inter_guild_CharOffline [Skotlex]
- * Modified the skill get range routine to correctly account for the attack
- range and the AC_VULTURE range bonus where needed. [Skotlex]
- * Fixed alchemists Fame Points bug: It were giving 1 fame point [Lupus]
- on making 4 Condensed Potions in row, instead of 3, etc. Now tested ^_-
- * Some restructuring and cleaning up in map loading to make it easier for
- future plans (like removing Grfio) [celest]
- - split map loading into separate sources properly
- - added map server will display a list of enabled map sources on startup
- - added maps will be auto-imported into the map cache if it's loaded with
- AFM, AF2, or any other source
- The server looks for maps in this descending order: the map cache, AFM maps,
- AF2 maps, and finally GAT files from the GRF (slowest); so, if you enable map
- caching it should be a liiiittle bit faster then before ^^
-2005/11/25
- * Uploaded fixes to int_guild, tested and working safely. [Kevin]
- * Added @showzeny @ command. [Skotlex]
- * Some code cleanup to make AutoBerserk work the way it was intended to
- (skill toggles "auto-berserk" state on/off, if on, you automatically get
- Provoked when under 25%HP) [Skotlex]
- * Fixed Auto-Berserk auto-ending after a minute. [Skotlex]
- * Added a fix to mob skills to prevent them from being checked too
- frequently during battle (which was sort of bumping up their rate to double
- or more from what the skill db would state) [Skotlex]
- * Added cleaning up the fifo before sending the guild information (since
- the packet is big, the fifo should be cleared to avoid overflow problems)
- [Skotlex]
- * Added monster_ai&8, when set monsters stop walking as soon as they lose
- their current target [Skotlex]
- * Reflect Sword again reflects damage versus players. [Skotlex]
- * Corrections to the skill code so only Heaven's Drive may damage traps. [Skotlex]
- * Reverted the mob random walk delay after unlocking a target to 3~6 secs. [Skotlex]
- * Added pow, sqrt and distance to scripting commands. [Lance]
- * Removed players with 0 Fame Points from Blacksmith/Alchem/Taekwon TOP10 lists [Lupus]
- * Should fix night glowing bug. [Lance]
- * Added setd and getd variable retrieving and setting with dynamic names. [Lance]
- * Added petstat command as requested by Dubby. [Lance]
-2005/11/24
- * Fixed a small bug in the guild search by name routine. Should fix the
- crash on new guild creation. [Skotlex]
- * Added debug information in case the guild isn't found in the cache when
- it should be there. This should help fix any problems the guild cache
- might have (eg: for some function that may take effect on a guild which
- has no members online) [Skotlex]
- * Finished cleaning up and merging the guild cache withthe guild timers
- behaviour. It should be mostly safe to update now. [Skotlex]
- * Reverted the sql save behaviour. [Skotlex]
- - Now guilds timers and cache are both into effect, this requires a bit
- more of cleaning to be considered done.
- * Various things I made but already forgot xD [DracoRPG]
- * Fixed and updated damage bonus for forged weapons: VVVS is +40 (was previously +50
- for the right hand...) and "famous maker bonus" gives a no-miss +10 dmg, same as
- 2 additional Star Crumbs. [DracoRPG]
- * Added or updated several Taekwon skills [DracoRPG]
- - Jump Kick uses clif_slide to the target's exact pos , waiting for capture/video
- - Taekwon ranking is now supported by the fame system, but there's no way to gain
- points atm (Taekwon Mission has no effect), infinite kick combo should be OK
- - 4 basic kicks updated, you now stop attacking when a stance triggers, and have 2
- seconds to hit the button before attacking again
- - Run uses SC_SPORT to increase your STR and affect the way Break Fall works
- - Break Fall dodges ranged magic/weapon attacks, as well as melee weapon ones
- when SC_SPORT is active
- * Made Sword Reject / Counter Instinct reflect damage only against monsters (not
- 100% sure about it, but let's say 90%... iRO site says it, although it isn't
- the best source ever) [DracoRPG]
- * Made Spiral Pierce use SC_STOP instead of setting canwalk_tick, some other such things
- need to be reviewed [DracoRPG]
- * Fixed Pneuma. [Skotlex]
- * Fixed dead mobs reappearing on the map. [Skotlex]
- * Cleaned up the duel code in battle_check_target. [Skotlex]
- * Added config option summons_inherit_effects, defaults to yes, check
- battle_athena.conf for further details. [Skotlex]
- * Updated duel [LuzZza]
- - Now "@duel <Num>" may be used for indication max players limit of duel.
- - Now "@duel <Nick>" creating duel for two players and automatically send invitation to Nick.
- * Added a new script function: getequipcardid(equipSlot,CardSlot) [Lupus]
- Returns Card ID or just a value from your EQUIPPED item
- Useful to check equipped items PROPERTY, STRONG value, Author ID, etc
- Check npc\sample\getequipcardid.txt and read script.c comment ^_-
-2005/11/23
- * Fixed the crash on guild creation in new guild cache. [Kevin]
- * Implemented duel organizing commands: @duel, @invite, @accept, @reject, @leave. [LuzZza]
- * Made the walk-delay a timer, so that it triggers after the actual attack
- motion of the src. [Skotlex]
- * Added back the combo damage delay config, now renamed to
- multihit_delay, and set to the default of 230ms it had before. [Skotlex]
- * Added displaying file which caused an error on incorrect mob lines.
- [Skotlex]
- * Small memory corrections to sql castle saving/loading, mostly Lance's
- work. [Skotlex]
- * Updated the walk delay routine to not invoke stop-walking when character
- is not walking (fixes the case in which the packet is sent while sitting,
- which causes a 'standing' sprite even if the char is sitting). [Skotlex]
-2005/11/22
- * Implemented a guild cache in char sql, saves all online guilds every 5 minutes. [Kevin]
- * More grammar fixes [Kayla]
- * Added 1-tile of range grace in skill_use_id and skill_use_pos since
- that's how it is on Aegis servers. [Skotlex]
- * Updated the skill info packets to deliver the skill names as expected by
- the client. [Skotlex]
- * Updated mob ai to enable changing targets while attacking ONLY if the
- attacker is within melee range (Aegis AI). monster_ai&4 can be used to
- override this and allow mobs to change target and pursue ranged attackers.
- [Skotlex]
- * Updated the config comments for the ip-related settings. Thanks to
- akusarujin for the update. [Skotlex]
- * Added rates to at_command.conf, set it's default to GM lv1 [Skotlex]
- * Removed the icon from Fire Break's fire-elemental bonus. [Skotlex]
- * Updated the walkdelay function to only be invoked if the attack did
- damage. [Skotlex]
- * Some more fixes to the english in ShowInfo()'s [Kayla]
- * Cleaned out the SVN a bit [Kayla]
-2005/11/21
- * Removed "(now unlimited loop start!)" from char-sql in an info line...wtf xD..[Kayla]
- * Mob AI update: updated the conditions used to specify if a mob can change
- targets as per the forum provided information (by Komurka and Kyoki).
- Mode 512 (MD_CHANGETARGET) no longer does anything. [Skotlex]
- * Mobs that assist now link nearby mobs when they attack. [Skotlex]
- * Made the damage delay be applied after knockback rather than before
- (magical/misc instant effect attacks are still applied before the
- knockback) [Skotlex]
- * The damage delay timer now stores the distance between source/target, if
- this distance is increased by 2 or more, the damage delay fails and takes
- no effect (if the '2' needs to be made higher, do point it out. It
- shouldn't be much of a problem since you aren't supposed to be able to walk
- from the damage delay anyway). [Skotlex]
- * Changed the way damage delay works. It is no longer applied on
- mob_damage/pc_damage, but instead is invoked from clif_damage (or
- clif_skill_damage), which means the "can't walk" delay is sync'ed with the
- damage packets when they are sent. This should fix most delay-damage
- 'stun-lock' related issues. [Skotlex]
-2005/11/20
- * Mobs now can't move while casting. [Skotlex]
- * Updated mob_db.txt and mob_db.sql with the most recent data from Kyoki.
- [Skotlex]
- * Corrected the mob_db by adding the canmove/canattack bits to pretty much
- all mobs that needed them. [Skotlex]
- * Some fixes to the confusion code. [Skotlex]
- * Crash-fix in status_change_start [Skotlex]
- * Implemented confusion as it should be (not tested yet!) [Skotlex]
- * Updated run_script to backup the current script of a player and
- restore it if the current script ends inmediately. This should fix losing
- the script info if status_calc_pc is invoked while running a script.
- [Skotlex]
- * Fixed a memory leak in the guild eliminate timer. [Skotlex]
- * Removed the extra tile of range mobs have when walking. [Skotlex]
- * Added mob reloading to battleconfig reload @ command. [Skotlex]
- * Updated mob_db.sql with the new modes by Kyoki. [Skotlex]
-2005/11/19
- * Made characters stop walking when inflicted by SC_STOP, may fix
- GrimTooth's stop effect not seeming to take effect. [Skotlex]
- * Made the pk_min_level config not take effect in WoE/GvG grounds.
- [Skotlex]
- * Fixed showing falcon when player is hide. [LuzZza]
- * Updated mob_db.sql and item_db.sql to current [Skotlex]
- * Updated the skill db step guessing code to allow for negative ranges (Now
- spear boomerang should progressively get longer range with higher levels)
- [Skotlex]
- * Fixed Tarot Card, the card that gets two random effects can't retrigger
- itself, and it causes STOP instead of Stun where appropiate. [Skotlex]
- * Updated devotion to only work on damage attacks that have a source (will
- prevent it from "blocking" COMA, which is what caused the crash). [Skotlex]
- * Fixed not always showing CRIT attacks, thanks to Irmin [Lupus]
-2005/11/18
- * Updated mob_ai so aggressive mobs change target when chasing, and
- change-target mobs do so when attacking. [Skotlex]
- * Fixed weapon forging showing success even when it fails. [Skotlex]
- * Some cleaning up of @time, may fix the weird time displays. [Skotlex]
- * Modified mob_ai so hyper-active mobs change target if they are
- cast-sensors even if attacking (angry mode). They will also change target
- if attacked while in angry/follow mode regardless of their change-target
- mode. [Skotlex]
- * Moved the night-inducing code from "map loaded ack" to "spawn pc", should
- fix characters going ultra-blue after stuff like fly-wings. [Skotlex]
- * Delayed the mob emotion when doing skills so that it gets executed AFTER
- the skill is successfully performed. [Skotlex]
- * Implemented PR_REDEMPTIO. Is the penalty for both base and job exp?
- That's how it is currently. And if the map has the nopenalty flag,there's
- no exp penalty. Awaiting further input on the matter (altough, do note the
- skill isn't tested either) [Skotlex]
- * Fixed three memory issues (char txt shutdown, npc reloading, ore
- discovery logs) which were pointed out by End of Exam. [Skotlex]
- * Added support for hyper-active mobs (MD_CHANGECHASE = 0x400), these mobs
- will change to the closest target while chasing/following other players.
- Needs be added to the mob_db. [Skotlex]
- * Added support for hyper-aggressive mobs (MD_BERSERK = 0x800), these mobs
- change their skill state to angry/follow instead of attack/chase when they
- select/change target (except if they changed target because the new target
- attacked them). Needs be added to the mob_db, for now all aggressive mobs
- are considered hyper as well. [Skotlex]
- * Updated mob mode cast-sensor (MD_CASTSENSOR = 0x010), mobs that are
- Aggressive can also change target if they are chasing/following a player
- when someone else casts a skill on them. [Skotlex]
- * Fixed Dark Blessing. [Skotlex]
- * Changed the default battle_delay_damage value from no to yes. [Skotlex]
- * Added check to prevent reinitiating SC_GOSPEL on a character that already
- has GOSPEL and val4 == BCT_SELF, may fix multiple Gospels being placed on
- the ground. [Skotlex]
-2005/11/17
- * Altered behaviour of NPC_EMOTION/NPC_EMOTION_ON as requested by Komurka.
- [Skotlex]
- - val[0] (the first one) is the emotion the mob does. If val[1] is
- different from 0, then the mob's mode is changed to THIS value. If val[2]
- is different from zero, it'll add/remove a mode based on skill used
- (EMOTION_ON adds mode, EMOTION removes it), both can stack [Skotlex]
- * Fixed for sure the Makefile... [Skotlex]
- * Modified Wedding effects. That is, changing base to 22 does NOT displays
- wedding outfit anymore. To display the wedding outfits, you have to start
- SC_WEDDING instead. Tux/Wedding dress scripts likely need being updated.
- [Skotlex]
- * Added battle option disp_zeny, will display on console how much zeny you
- earned (be it from selling, trading, mobs, etc, as long as you "earned"
- zeny) [Skotlex]
- * Updated status_calc_pc to prevent infinite recursion loops. [Skotlex]
- * Applied End of Exam's suggested signedness fixes to npc.c [Skotlex]
- * Updated sting lib, to avoid SQL troubles [Lupus]
- * Fixed moonlit not properly checking for nearby walls. [Skotlex]
- * Added a recursion protection system to status_calc_pc which should avoid
- exploits derived from recursively calling status_calc_pc which certain
- equipment scripts could trigger. Thanks to End of Exam for pointing it out.
- [Skotlex]
- * Applied Celest's patch which should help compiling eA under mingwin.
- [Skotlex]
-2005/11/16
- * Fixed AFM map loading (something was missing there which was gonna make
- the map server crash for sure later on) [Skotlex]
- * Some corrections to the mob states, linked/cast-sensitive mobs engage in
- attach/chase modes, not angry/follow (which seem reserved entirely for
- aggressive mobs) [Skotlex]
- * Cleaned up and corrected target types MSS_AROUND->MSS_AROUND8, also added
- and documented them in mob_skill_db.txt [Skotlex]
- * Probably corrected whispers to GMs. Thanks to Slennox for pointing it
- out. [Skotlex]
- * Modified mob-skill states to use Aegis-based information. Modes are
- MSS_IDLE, MSS_WALK, MSS_LOOT, MSS_DEAD, MSS_BERSERK, MSS_ANGRY, MSS_RUSH
- and MSS_FOLLOW. Mob skill db is unaltered other than for the fact it now
- supports "angry" and "follow" states. [Skotlex]
- * Cleanup of how knockback routines are invoked. [Skotlex]
- * Added MOB_LAZYSKILLPERC to mob.c, determines probability of a mob doing a
- skill when there are no players nearby (but there has to be players in the
- same map for it to trigger). Currently set to 10/1000 chance. [Skotlex]
- * battle_check_target update. Rewrote the party/guild checks, this should
- hopefully fix any problems left with pvp/gvg and mapflags not working
- properly. [Skotlex]
- * Fixed playerattached() returning char id instead of account id. [Skotlex]
- * Added battle option party_even_share_bonus to enable use of Valaris's evn
- share experience bonus equation rather than the official one. [Skotlex]
- * Corrected @jump not displaying the actual coords you jumped to. Thanks to
- kitty74x9 for noticing (and fixing) it out. [Skotlex]
-2005/11/15
- * Fixed multi-hitting skills not increasing the "can-walk" delay
- accordingly. [Skotlex]
- * Modified way to updating hp/position of party members. [LuzZza]
- * Added battle config option "aura_lv", specifies which level characters
- have to be for the server to report their level as "max_lv" (which normally
- is used to enable the aura). See battle_athena.conf for more details. It
- may not work for your self, but only for other characters (this is,
- afterall, untested yet) [Skotlex]
- * Implemented High Jump (works 100%) and Fighting Chant (untested but should work). [DracoRPG]
- * Various cleanups and typo fixes here and there. [DracoRPG]
- * Corrected the upkeep SP cost of Moonlight Petals. [Skotlex]
- * Modified Magnum Break's fire bonus to be 20% ADDITIONAL fire damage of
- your total damage previous to the elemental modifier. [Skotlex]
- * Modified Fatal Blow's stun chance to kRO's equation (+5% stun chance per
- bash skill level over 5) [Skotlex]
- * Corrected Sharpshooting's damage equation to +50%*skill_lv [Skotlex]
- * Updated Magnum Break's bonus from 10% to 20% fire elemental. [Skotlex]
- * Updated Arrow Shower to be a ground based skill (untested yet) [Skotlex]
- * Pretty much rewrote how Moonlight Petals work, it should be working
- mostly right now. [Skotlex]
- * Splitted gat map information into gat and cell info. gat info is
- permanent map data (walls, ground, etc) while cell is temp map info
- (basilica, pneuma, etc). Modified Pneuma and Moonlight Petals to work based
- on map cells. [Skotlex]
-2005/11/14
- * New Visual Studio projects, compiling works, need zlib.dll for txt server. [Kevin]
- * Longing for Freedom can't be used during Moonlight Petals now. [Skotlex]
- * Corrected True Sight's critical bonus (from +0.1 cri per level to +1 cri
- per level) [Skotlex]
- * Made coma a status effect. SC_COMA. Sets HP/SP to 1. Bosses/Emperium are
- inmune to it. [Skotlex]
- * Fixed null pointer crash in battle_damage. [Skotlex]
- * Increased max account variables to 32. [Skotlex]
- * Pressure/Gloria Domini now isn't instant-cancelled by status effects, and
- bypasses the Devotion/Sacrifice check. [Skotlex]
- * Added handling of the /pk packet, even thought it just shows an empty
- listing for now. [Skotlex]
- * Applied zBuffer's suggested fix to prevent S. Novices from getting mental
- Strength at 100% exp. [Skotlex]
- * Fixed Friends List not able to add more than 20 friends (current clients support up to 40) [Lupus]
- thanks to CAHTEXNIK for pointing it out 8)
-2005/11/12
- * Probably fixed the name of freshly captured pet eggs. [Skotlex]
- * Changes Win32 to not require svnversion.h, but instead tries to peek in
- .svn\entries to check for svn version. If the file doesn't exist it'll
- display "Unknown" though, which I guess isn't a good thing ^^; [celest]
- * Removed the option to load zlib as a plugin for Win32 since it should be
- linked at compile time [celest]
- * Added zlib and libmysql .lib files for compiling in Visual Studio [celest]
- Note: The project files on SVN don't have them yet, you'll need to include
- them yourself for now
- * Fixed a compile error in Visual Studio [celest]
- * Readded a missing zlib file needed by Win32, sorry ^^; [celest]
-2005/11/11
- * New readme content/layout (IE warning: IE hates new readme) [Evera]
- * Imported use of the refine weapon packets from jA. [Skotlex]
- * Removed SC_MODE, now NPC_EMOTION and NPC_EMOTION_ON can change a mob's
- mode permanently (until their death, that is), and it won't work on
- player summoned mobs. As before, val1 is the emotion value, val2 is the
- mode to add/remove. Val3 is now ignored (used to be duration) [Skotlex]
- (no, no need to wipe SC data this time around either)
- * Cleaned up sql-files to use TYPE rather than ENGINE as TYPE is supported
- by older MySQL versions and not quite deprecated yet. [Skotlex]
- * Modified the party even share exp bonus to be +10% per extra party member
- as official sources state. [Skotlex]
- * Organized the clif_devotion packet, and added clif_marionette as per
- jA's implementation. [Skotlex]
- * Added db_path to map_athena.conf, used to specify an alternate directory
- to locate the db/ files. Defaults to "db", obviously. [Skotlex]
- * Removed SC_FALCON and SC_RIDING, the status icons are directly managed
- through the change of the character's option now. The actual defines were
- not removed to avoid shifting all the SC_ values again (no need to wipe sc
- data) [Skotlex]
- * Added additional debug information to battle_attr_fix until the cause of
- those errors are found and resolved. [Skotlex]
- * Fixed win32 compiles always reporting "unable to set socket to
- non-blocking mode", together with other minor win32 fixes. [Skotlex]
-2005/11/10
- * Fixed char-sql cart loading. [Skotlex]
- * Updated the function that specifies the cards to support more than four
- slots. [Skotlex]
- - Since the packets are fixed sized the client can never receive data of
- more than four cards, therefore if the client was compiled with MAX_SLOTS
- above 4, a random subset of cards will be sent each time the item data is
- sent (eg: if the item has 6 slots, it may randomly choose to send cards
- 1->4, 2->5, or 3->6).
- * Removed the OnAgitInit call when the map connects to char server. Fixes
- double guardian spawn. [Skotlex]
- * Fixed the sql query strings that would appear "incomplete" under certain
- *nix systems. [Skotlex]
- * Applied zBuffer's patches to correct memory leaks in the PCRE module
- (regular expression support for npcs) and prevent server crashing when
- scripts divide (or do mod %) by zero. [Skotlex
-2005/11/09
- * Fixed Ankle Snare and Spider Web not being cleared when the trapped
- target dies. [Skotlex]
- * Fixed the range flag being incorrectly set in BF_MISC skill attacks.
- [Skotlex]
- * Corrected Venom Knife using Level1 always for the poisoning chance rather
- than learned Envenom's level. [Skotlex]
- * Fixed the crash on shutdown if PCRE support was enabled. [Skotlex]
- * Fixed possible item duping while vending, thanks to End of Exam for
- pointing it out. [Skotlex]
- * Fixed the blue aura of Night effect. Thanks to zBuffer [Skotlex]
- * Fixed mobs moving one tile when hit even if they can't move (this is what
- broke Ankle Snare) [Skotlex]
- * Fixed night/day implementation (which broke due to the addition of SI_
- constants). [Skotlex]
- * Cleaned up the SI_ constants to have defined only those which actually
- display something on the client. [Skotlex]
- * Fixed a bug which caused a captured pet's name to be displayed as beloved
- even though it was just captured. [Skotlex]
- * Added temp skill quests for all complete 2nd Class Quest Skills [Lupus]
-2005/11/08
- * Updated the documentation on the announce script commands. [Skotlex]
- * Removed the global color message support as there's now a way to craft
- custom colored announces. [Skotlex]
- * Probably fixed mapannounce. [Skotlex]
- * Implemented SI_ constants to specify the icon number for different SC_
- changes, idea adopted from jAthena. All SC_ data was reorganized and
- several checks are now in place. It is likely all saved sc_data is wrong
- after this update due to the numbers changing places. It won't cause any
- glue-boots.. but the wrong status changes will be loaded the first time
- anyway, so it may be a good idea to wipe that file/table for this update.
- [Skotlex]
- * Added mob boss inmunity to status changes: poison, curse, deadly poison.
- [Skotlex]
- * Now when the mob starts casting a skill and stops walking, a packet will
- be sent to update the mob position on the clients. [Skotlex]
- * Fixed a bug in mob_stop_walking which may fix stun-lock. [Skotlex]
- * Fixed not showing named/carded items in Vending [Lupus]
- (when you drag'n'drop them from your cart into your shop list)
-2005/11/07
- * Expanded script commands announce/mapannounce/mapareaannounce to take an
- additional parameter to define the color. This uses the new packet 0x1c3 to
- send the broadcast, and even though the packet is not fully understood yet,
- it should be at the point where it can be used. [Skotlex]
- - eg: "announce "hello world", bc_map, 0xFFFF00;"
- * Cleaned up and optimized the way card data is set in packets. Should
- correct most, if not all, pet-egg related issues. [Skotlex]
- * Removed combo_damage_delay and added damage_walk_delay_rate. Now the total
- delay during which you can't move is a percent of the normal damage delay
- rate adjusted by number of hits and this rate. Defaults to 50% for now. [Skotlex]
- * Removed the random damage delay value from status_get_dmotion as it is
- not really helping the walk-stun-lock. [Skotlex]
- * Made Gravitation ignore target's cards. [Skotlex]
- * Updated readme with new layout [Evera]
- * Updated bAddMonsterDropItem bonuses to work with cards: Mimic Card, Mystcase Card
- where bonus_item_rate = base_rate * (killed_mob_level/10) + 1
- So if 2nd argument is negative, then it's 'rate'
- Now, if you kill Porings, u'd have OBB/GIFT BOX drops with 0.01% chance
- and if u kill Leaf Cats then u'd have them with 0.05% chance
- Max chance is 0.1% (when u kill MVPs with level > 94) [Lupus]
-2005/11/06
- * Cleaned up a bit the warp portal code. [Skotlex]
- * Added a timer to invoke the OnAgitInit event 10 seconds after the char/map
- servers are connected. Scripts should now carefully use OnInit to load the
- castle data, and OnAgitInit to check for castle owners, mobs, WoE, etc.
- [Skotlex]
- * Reverted the damage delay equation to 800 -4*agi, which is the correct
- data from packets examined. [Skotlex]
- * Slow motion Fix: Reverted weight packet, thanks to Momoko [Lupus]
-2005/11/05
- * Fixes on sending to client status of char (guild, position, etc). [LuzZza]
- * Updated backsliding to work as it should. [Skotlex]
- * Added back the GPL licence on the root directory (why was this removed?)
- [Skotlex]
- * Fixed knock-back packets, thanks to Vicious for collecting the packet
- samples. [Skotlex]
- * Fixed pretty much all ground skills not working when you "walked into
- them" (they were fine if casted on top of you, though) [Skotlex]
- * Fixed not working ZENY LOG. You can use logging filter as well. [Lupus]
- - Only SQL logs available.
- - Logs only Vending, Trade, Shops yet
- - Don't forget to update your logs SQL DB and log_athena.conf
- * Added previously removed (by an accident) "MVP Prize item log" into pick_log [Lupus]
-2005/11/04
- * Added support for new quest skills to @allskills/@skillall. Thanks again to blackhole89 for
- pointing that out! [Kayla]
- * Fixed various occurencies of assuming Guild Skills being >= ID 10000
- rather than 500<skill<1000 still after skill_chk. Thanks blackhole89! [Kayla]
- * Hopefully fixed Weapon Refine. [Skotlex]
- * Applied a change which prevents pc_setpos from working for characters
- between maps, as doing so makes the character appear on a different
- position on the client than the position stored in the server. [Skotlex]
- * Added friend_db option to inter_athena.conf, now friend table is
- usable in multi server and/or custom db configs. [Foruken]
-2005/11/03
- * Corrected the basilica check which should disable casting offensive
- skills from within inside the basilica. [Skotlex]
- * Modifed status_change_end to prevent peco-peco/falcon from ending until
- the player's 'falcon/peco option' value is removed first. [Skotlex]
- * Removed the knockback code for players and changed it for a "fix
- position" code. The new code is not right as it makes your character
- "teleport" to the position rather than walk really fast to it, but it fixes
- the "Do not use bot!" messages. [Skotlex]
- (someone has to log the actual packets used when being knocked/knocking
- back for this to really be fixed)
- * Heaven Drive now can target traps. [Skotlex]
- (I find it impossible to target a trap with Arrow Shower unless the
- skill's info is set to 32 -target traps-, but when it's done so, the
- client refuses to use the skill on enemies, and mode 33 makes the skill
- useless. How does one makes this work?)
- * Various cleanups to the skill system. [Skotlex]
- * Update: Now your cast cancels on recieving status change such as:
- Stun, Stone Curse, Freeze or Sleep [LuzZza]
- * Updated the code to allow the Emperium to be inflicted by Pneuma and
- Safety Wall. [Skotlex]
- * Updated @recallall to revive any dead characters before moving them,
- should fix that weird ghost bug. [Skotlex]
-2005/11/02
- * Made Spell breaker not be able to cancel Pressure/Gloria domini [Skotlex]
- * Another fix/optimization to thenight/day system. [Skotlex]
- * Fixed possibility of freezing / stunning already frozen/stunned players
- - Now you can't freeze an already frozen one [Lupus]
- * Fixed non-GMs allowing send trade requests from far places [Lupus]
- * Fix of lowest_gm_level (inter_athena), now logins with access under
- lowest_gm_level overides gm_can_drop_lv. [Kayla]
- * Spell Breaker now works on any skill with a cast time. [Skotlex]
- * Made Dispell not work on Meltdown and Cart Boost [Skotlex]
- * Made Meltdown not dispellable upon death. [Skotlex]
- * Probably fixed Warp Portal [Skotlex]
- * Fixed players being able to mute others even if their gm level is not
- high enough to use @mute [Skotlex]
- * Fixed Dispell not clearing a lot of status changes it should. [Skotlex]
- * Corrected the way the Emperium skill-defense works. Damage skills other
- than Gloria Domini, Raging Trifecta and Gravitation do no damage. Status
- changing skills have no effect, and normal heal heals for 0. [Skotlex]
- * Some more corrections to the night/day system. [Skotlex]
- * Multiple fixes to the skill system. Should fix Warp Portal, Teleport and
- mob skills crashing the server. [Skotlex]
- * Updated sql-files/item_db.sql with the latest. [Skotlex]
- * Some optimizations to the script config events loading/storing/saving.
- (Somehow it fixes the warning from the memory manager on shutdown...)
- [Skotlex]
-2005/11/01
- * Updated battle_check_target to allow ground skills that affect "Everyone"
- to affect the emperium, only the ones that target only enemies will have no
- effect. [Skotlex]
- * Changed the default of mob_max_skilllv from 11 to 100, as many of the
- recent mobs use higher level skills. [Skotlex]
- * Moved the check which made emperiums receive 0 damage to: [Skotlex]
- - status_check_skilluse, so that all targetted skills fail.
- - battle_check_target, so that all ground-based offensive skills fail.
- * Cleaned up a bit the skill related code. [Skotlex]
- * Updated @ commands. NO command comes at gm-level 0 by default now, that's how
- it should be, the new default minimum is 1 for most trivial @ commands. Also added
- a bunch of commands to conf/atcommand.conf which were missing. I STRONGLY
- recommend everyone to at least fetch the new atcommand file as there
- were abusable commands at level 0 (abusable in the sense they can incur
- performance penalties if over-used by everyone) [Skotlex]
- * Fixed crash when a mob was killed while under Rich Man Kim effect by a
- non-player, also fixes Rich Man Kim not giving the correct exp bonus.
- [Skotlex]
- * Modified the socket subsystem to not close all connections on an "Service
- Temporarily Unavailable" error (it is a non-fatal error which basicly means
- "try again later"). [Skotlex]
-
-2005/10/31
- * Fixed all players having the "plant" mode on... [Skotlex]
- * Added a timer to delay the automatic respawn of characters in gvg or pvp
- grounds. The delay is currently 1 second, but be warned that because of
- this it may be possible to revive the character if some priest is insanely
- fast as there's currently no way to "prevent" a character from being
- resurrected. [Skotlex]
- * More and more new quest skills! :3 [DracoRPG]
- * Removed the setting where characters could logout overriding the
- prevent_logout setting if they were dead (it made it extremely easy to
- accidentally log out if you were killed while trying to escape) [Skotlex]
- * Changed prevent_logout from yes/no to a "duration in ms" setting.
- Defaults to 10secs (10000ms), note the client always says "wait 10 seconds"
- regardless of the value of this setting. [Skotlex]
- * Moved the status change of SC_RIDING/SC_FALCON from clif_changeoption to
- pc_changeoption which correctly makes the falcon/riding states end on quit.
- [Skotlex]
- * Mob ai fix (mobs locking down into one target forever even if they should
- be able to change targets) [Skotlex]
- * Added routine to check party share level whenever one of the members
- levels up. It's checked on the map server, and then a share request is sent
- to the char-server if party_share_level is broken. [Skotlex]
- * Corrected "show drain" to show nothing if the leeched values are
- non positive. [Skotlex]
- * Probably fixed Wand of Hermode not blocking the caster from walking.
- [Skotlex]
- * Applied Silent's fix to @where [Skotlex]
- * Code cleanup regarding sign/unsigned comparisons. [Skotlex]
- * Updates to new quest skills, some are fully functionnal, some half, some
- not at all xD. [DracoRPG]
-2005/10/30
- * Fixed a bug that broke pet skills. [Skotlex]
- * @follow: Now to stop following, you may just type @follow, thx2Sartory [Lupus]
- * Fixed & finished what I did yesterday with SCs and quest skills, thanks
- to Silent. [DracoRPG]
-2005/10/29
- * Reorganized SC IDs to make room for 2nd jobs quest skills statuses: upped
- SC_SENDMAX to 300 and moved all required SC to 300+. BEWARE: as a side-
- effect of this, you might get 'glue boots' if an SC was saved and cannot
- be restored because the ID isn't used anymore, this should only happen
- with bonuses from cooked foods & dances/songs (unlikely since they last 20
- seconds only), and maybe a few other such things. Simply remove lines
- with SC IDs above 200 in your sc_data file/table. [DracoRPG]
- * Changed a bit the way Plant Cultivation fails: when it fails because of
- missing items, it does nothing and displays "Skill had failed"; when the
- 50% success rate test fails, the effect is displayed but no plant summoned.
- How should it work exactly? Because previous way was a bit confusing for
- the player, not explaining why it failed, so I'd like to know. [DracoRPG]
- * Changed food cooking success rate to unmodifiable 50%, temporary value
- waiting for accurate data ;) [DracoRPG]
- * Fixed the code in skill.c so that skills are considered as guild skills
- (for things such as inf, maxlv, etc) only when their ID >= 10k, enables
- use of 2nd jobs quest skills with 1k+ IDs, thanks to Silent. [DracoRPG]
- * Fixed the Flag guild script. Now one can only flag in using the flags infront
- of the castle. [Kayla]
- * Removed most of the built-in zlib files and the LOCALZLIB compile option
- Note: All native Windows builds now require zlib1.dll, you can just download
- it from http://www.zlib.org and place it in the main directory [celest]
- * Changed the unzip library to be static linked instead of dynamic [celest]
- * Small fix to the trading routing, should fix items with the no-trade flag
- being able to be vended. [Skotlex]
-2005/10/28
- * Fixed the size of the equip_job field in SQL item_db/item_db2, thanks to
- blackhole89. [DracoRPG]
- * Harmonized the way NPC events such as PCLoadMapEvent, PCBaseLvUpEvent, etc
- are implemented. Caution, now PCLoadMapEvent NPC is called globally: it
- is not needed to put it in a specific map. Use script functions to know
- which map the player has been warped to. Thanks to Z3RO. [DracoRPG]
- * Fixed the names of the job level up char commands. [Skotlex]
- * Tiny change to the script engine which may fix those crashes. [Skotlex]
- * Added blocking use of skills while sitting. [Skotlex]
- * Implemented Trancid's expanded global announce system. [Skotlex]
-2005/10/27
- * Applied Ilpalazzo-sama/Zzo's patch that cleans up and fixes some bugs
- with the script engine. [Skotlex]
- * Made land protectors from enemies cancel each other out. [Skotlex]
- * Made it so Guardians/Emperiums with no owning guild can be attacked out
- of woe. [Skotlex]
- * Corrected being able to attack and use skills during the first interval
- of Petrify [Skotlex]
- * Fixed packet exploit that allowed you to produce multiple times without
- first triggering the skill. [Skotlex]
- * Cleaned up/simplified the implementation of SC_NOCHAT [Skotlex]
- * Added file upgrade_svn3746.sql, use it to alter your `char` table column
- "manner", which should NOT be unsigned (if your column already is
- signed, then no need to apply this update) [Skotlex]
- * More code cleanup to make eA ANSI-C compliant. [Skotlex]
- * Some fixes to the night-day-system. [Skotlex]
-2005/10/26
- * Some more multi-map server work. It seems to work now correctly and with
- no memory leaks, however it likely needs more testing. Also added the
- support into the char-TXT server. [Skotlex]
- * Patched a crash where mobs with no space for looting would attempt to
- loot. [Skotlex]
- * Updated mapflags, readded gvg_dungeon. Now mapflags work according to
- this post: [Skotle]
- http://eathena.ws/board/index.php?showtopic=58201
- * Likely fixed Party Even Share. [Skotlex]
- * Added map flag "nightenabled", only maps with this flag will display the
- night effect when it's night. Said maps are specified in mapflag/night.txt [Skotlex]
- * Modified map flags gvg and gvg_dungeon. gvg now is basicly the same as
- pvp, except guilds are automatically teamed up, while gvg_dungeon was
- removed and replaced by gvg_castle, which is the flag now used for castle
- maps which only modify the behaviour during WoE times. [Skotlex]
- * Updated the login/char TXT Makefiles so the TXT_ONLY flag is passed, this
- SHOULD fix the guild size mismatch errors... [Skotlex]
- * Probably fixed a char-server crash related to whispers. [Skotlex]
- * Updated the custom jobmaster so it should stop second advanced classes
- from being able to re-change jobs. [Skotlex]
- * Implemented dynamix's night system which uses a status change rather than
- the "darkness levels", said config option removed as is no longer needed.
- [Skotlex]
- * Some fixes to the char-sql code when sending chars to another map server.
- [Skotlex]
- * LuzZza's ported Trade/Vending additional antispoof checks [Lupus]
- - thanks to Yor&Freya Team. So LuzZza is our new dev (it was his 2nd test)
-2005/10/25
- * Some work fixing up multi-map servers. It should now *work*, however each
- time the player swaps map-server it triggers all the relevant
- on-login/on-logout events, which likely needs to be corrected at a later
- date. Only SQL has been updated so far, TXT is still pending. [Skotlex]
- * Updated GrandCross so it does half damage on the caster (+half damage
- from Faith, it does just 25% or less damage to self now) [Skotlex]
- * Updated battle_check_target to consider normal mobs as always belonging
- to the same party (should fix them fighting out when pkmode is on)
- [Skotlex]
- * Fixed the Makefile for TXT char/login servers (fixes guild structure size
- mismatches) [Skotlex]
- * Added script command "playerattached", returns the char_id of the player
- currently attached to the script, 0 if there's no player attached (or
- attached player is no longer on the map server) [Skotlex]
- * Fixed @changegm in the char-txt server. [Skotlex]
- * Some code cleanup to make eA ANSI-C complaint (not quite there, but
- closer) [Skotlex]
-2005/10/24
- * Applied Ilpalazzo-sama/zzo's patch that optimizes the status_get_*
- functions. [Skotlex]
- * Fixed changegm (as far as I know) [Skotlex]
- * Modified again the code that checks who and what can target traps. It
- should be set to only let heaven's drive, arrow shower and remove trap
- target them. [Skotlex]
- * Breaker now ignores mdef. [Skotlex]
- * Fixed script command "makeitem" to only require an attached player if the
- map is defined as "this". [Skotlex]
- * Updated battle_check_target to enable only skills with inf 32 (can target
- traps) to hit traps. Implementation may not be perfect depending on how
- the client reacts to the associated skill_db change. [Skotlex]
- * Cleaned up battle_weapon_attack. [Skotlex]
- * Some optimizations to the struct mob_data. [Skotlex]
- * Applied Ipalazzo-sama/zzo's memory optimization patches. [Skotlex]
- * Fixed some quests and updated item_db. [Kayla]
- * Updated Grimtooth to cause "Stop" on enemies instead of slow down. The
- duration used is now skill's time 2. [Skotlex]
- * Updated the mob_ai code so they do nothing if they were attacked but
- can't attack back (and it did not invoke a rude attacked, that is,
- monster_ai does not has 2 set) [Skotlex]
-2005/10/23
- * Some fixes to @charmountpeco [Skotlex]
- * Some cleanups to pet.c, fixes pet_timer being invoked when the pet is
- idle. [Skotlex]
- * Added a clause to ignore name solve requests of chat-rooms (for some
- reason the client requests them...) [Skotlex]
- * Updated sql-files/item_db.sql to the latest. [Skotlex]
- * Removed that mob_spawn_once message that is just a debug message with no
- real purpose anymore. [Skotlex]
- * Fixed forging displaying success even when it fails. [Skotlex]
- * Changed main.sql so that sc_data only has indexes, not a primary key
- (I keep hearing mysql can't handle a triple column PK...) [Skotlex]
- * Fixed Doublecast's success chance [Skotlex]
- * 'Fixed' the warning on @reloadscript (just removed the warning and
- avoided memory leaks, because properly unloading the user functions and
- reloading them I could not get done) [Skotlex]
- * Fixed possible crash due to custom packets, thanks to Andz for the info.
- [Skotlex]
- * Fixed mob's Scream/Frost Joke crashing the server if the message was too
- long [Skotlex]
- * Fixed the wrong attribute being passed to the attribute fix in
- battle_calc_magic attack (strange deja vu feeling.. I am sure I fixed this
- same bug before). [Skotlex]
- * Fixed trading. [Skotlex]
- * Removed Mastery damage being applied to Grand Cross [Skotlex]
- * Some more fine-tuning of the Grand Cross equation. [Skotlex]
- * Fixed mobs that couldn't attack not being able to use skills (first half
- of why marine spheres were broken). [Skotlex]
- * Updated summoned marine spheres so they can move (second half of why
- marine spheres were broken). [Skotlex]
- * Rewrote the produce system for mixed foods creation [DracoRPG]
- * Small changes and optimizations to battle_calc_magic_attack, replaced redundant
- magic_subrace with missing magic_addsize, updated crappy doc about it [DracoRPG]
-2005/10/22
- * Modified Finger Offensive's formula to be 100% + 50%*skilllv which seems
- to be a more factually correct equation than what is shown in the websites.
- [Skotlex]
- * Applied Ilpalazzo-sama's patch which speeds up the data zeroing in
- status_calc_pc. [Skotlex]
- * Crashfix on invalid lines when reading castle_db.txt [Skotlex]
- * Updated GrandCross's damage formula according to Komurka's information.
- [Skotlex]
- * Also, now skills that ignore card modifiers only ignore the attacker's
- card modifiers, no the target's (does not apply to skills like Pressure
- that do fixed damage). [Skotlex]
- * Updated Bowling bash damage, knockback to current Kro values. [Skotlex]
- * Modified NPC_EMOTION and NPC_EMOTION_ON so they can be used to modify the
- current mob's mode (instead of setting it). [Skotlex]
- - Some examples:
- 1269,Clock@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,0,6,4,300,,,
- Adds mode 4 (aggressive) for 300 seconds to Clocks when attacking.
- 1193,Alarm@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,4,10,,,
- Removes the aggressive mode (4) from Alarms when chasing for 10 seconds.
- - After a mob's mode is changed, their state is reset so they can stop
- chasing/seek a target.
- * Made GrimTooth be longranged, Soul Drain work only on targetted skills,
- and Extremity Fist only checks for enemy state right before attacking (I am
- not sure it is 100% as it should be still, though) [Skotlex]
- * Eh.. now Safety Wall blocks all skills tagged as short-ranged. Report any
- anomalies this causes. [Skotlex]
- * Added support for global mob skills. In essence, you can now specify a
- mob skill that is added to ALL mobs in a single line by using negative
- class IDs. -1 adds the skill to normal mobs, -2 adds the skill to
- bosses, and -3 to both. For example:
- -1,All@AL_HEAL,any,28,10,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,
- Adds Heal Lv10 to all normal mobs.
- * Readded the level up buff bonus from the Taekwon class T.T [Skotlex]
-2005/10/21
- * Removed the level up buff bonus from the Taekwon class T.T [Skotlex]
- * Small change in mob_ai_sub_hard which may fix mobs casting their Rude
- Attacked skill when they shouldn't. [Skotlex]
- * Moved the code so that SNovice Steel Body should trigger inmediately upon
- death, and bypass the exp loss penalty. [Skotlex]
- * Added Taekwon boy to the buff on level up system. [Skotlex]
- * Fixed Skills checking for water-cells instead of Land Protector cells.
- [Skotlex]
- * Added config option skillrange_by_distance, makes skills be long/short
- ranged based on the source/target distance. Defaults to 6 (mobs + pets).
- [Skotlex]
- * Fixed Magic Power totally messing up matk. [Skotlex]
- * Fixed Meteor Storm [Skotlex]
- * Some changes to Moonlight Petals, it should make the skill finally be
- considered an ensemble skill. [Skotlex]
- * Updated skill_split_atoi to guess linear increases up to half of the data
- provided. This means it can understand the more complex cast times of
- skills such as Meteor and Soul Strike. If you provide the data of ten
- levels, then it will check for patterns up to 5 steps long (meaning that
- the diff between 1 and 6 is the same as the diff between 2 and 7 and so on,
- and if they all match, the tested pattern is applied all the way to level
- 100) [Skotlex]
- * Some modifications to Magic Power, it should hopefully be working now. [Skotlex]
- * Cleanups and fixes to Tarot Card. [Skotlex]
- * Fixed a screwup in skill_split_atoi which was corrupting the skill db. [Skotlex]
- * Free up block chunks allocated by the memory manager when shutting down [celest]
- * Updated packets in packet_db and clif.c [celest]
-2005/10/20
- * Turned on the error_log by default (had this been on before, I would had
- noticed why Longing for Freedom was not working several WEEKS ago >.<)
- [Skotlex]
- * Fixed Longing for Freedom [Skotlex]
- * Hopefully fixed even-share party on char relog exploit. [Skotlex]
- * Modified Land Protector so it behaves more like Basilica. [Skotlex]
- * Removed GM account reading from the char-sql server and moved it into
- the login-sql server (Ancyker requested this was fixed... and this is how
- it was working on the TXT servers) [Skotlex]
- * Modified skill_split_atoi so it can guess linear changes in the values
- and fill out the rest of the array correctly (eg: blowcount is defined as
- 1:2:3:4:5, now the function can understand that and fill the rest of values
- with 6:7:8:9:10 and so on. It can also understand two-step increases, if
- the value is 1:2:2:3:3:4, it can guess that the following values should be
- 4:5:5:6:6:7:7 and so on). This allows mobs to cast stuff like Thunderstorm
- LV67 without the need of manually updating the dbs with the corresponding
- values :O [Skotlex]
- * Fixed monster_ai&1 doing the opposite of what it should do. [Skotlex]
- * Rewrote the skill unit reiteration code so that it'll work with any AoE
- skill that is set to not reiterate in skill_unit_db.txt, when no
- reiteration is set, the skill cannot be stacked with itself, but it can
- be placed on top of other AoE skills (except for Pneuma, Safety Wall,
- Warp Portal, Basilica and the Hunter traps who all have their own checks
- hardcoded) [Skotlex]
- * Modified the way Magic Power works for AoE magic skills, it should now
- work correctly for all AoE spells including Meteor. [Skotlex]
- * Added mode "change target" (0x200 = 512) to specify mobs that can change
- target while attacking. Since no mob in the db has been updated yet to
- include this mode, for the time being all aggressive mobs will also be
- considered as "change target" types (which is how eA has been managing it
- up to this point) [Skotlex]
- * Added a check in status_check_skilluse to make AoE skills fail if the
- caster is standing on Basilica. [Skotlex]
- * Reduced a bit the size of the party structure. [Skotlex]
- * Fixed Play Dead [Skotlex]
- * Reverted a memory fix in script.c which causes a crash.. [Skotlex]
- * Reverted a small change which likely made magic power not work anymore on
- ground skills. [Skotlex]
-2005/10/19
- * Added an SQL update update_logs2.sql Use it for more effecient work of your MySQL server [Luups]
- * Likely fixed Root and the Wedding Skills [Skotlex]
- * Fixed that crash in skill_use_id.. oops. [Skotlex]
- * Fixed demonstration triggering status effects. [Skotlex]
- * Fixed ground placed skills causing skill_counter_additional_effect
- triggering on the skill's owner. [Skotlex]
- * Added corrections/checks that should prevent the char servers from
- crashing if they parse a packet from a client where the session data is
- expected to be but is not set. [Skotlex]
- * Converted NPC_STOP to a status-inducing effect, SC_STOP which prevents
- characters from moving. [Skotlex]
- * General checks and cleanup (new function pc_can_move) to prevent chars
- from walking when they shouldn't be able to. [Skotlex]
- * Some changes to int_party, which may prevent crashes due to large parties
- in congested situations. [Skotlex]
- * Software Caused Connection Abort errors should inmediately terminate the
- connection now (rather than waiting for the timeout) [Skotlex]
- * Hopefully fixed Basilica by making battle_check_target use the mapcell
- instead of the status change when deciding the enemy state. [Skotlex]
- * Fixed being able to enable NPC clicks while a trading window is open. [Skotlex]
- * Added status change SC_MODE which allows to temporarily override a mob's
- mode. It can be invoked through mob skills NPC_EMOTION and NPC_EMOTION_ON
- using the second and third value (new mode and duration in seconds,
- respectively). Example:
- 1269,Clock@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,0,6,133,300,,,
- Makes the Clock do the /an emotion, and his mode changes to 133 (can
- move, can attack, aggressive) for the following 300 seconds (if the mode
- is 0, then the mode is not changed).
- - Note that when a mob gets their mode changed, their state is reset (so
- they stop attacking/chasing)
- - Because of this update, the code that made mobs give up chasing after a
- while is no longer needed and hence, removed.
- * Implemented function status_check_skilluse which checks whether a skill
- (or melee attack) can be used on an enemy based on their status (restricts
- skills that may be used if opponent is cloaked/hidden, or blocks Aex
- Aeterna if opponent is petrified/frozen, blocks skills while silenced, etc
- etc). Note that the code simplification/modification is big, so beware of
- any new bugs that might have been caused by the function. [Skotlex]
-2005/10/18
- * Fixed card set bonuses for sure this time (or so I hope) [Skotlex]
- * Fixed the Dissonance song bug which allowed you to cast a song afterwards
- and it would not follow you around. [Skotlex]
- * Modified the counting function to never count in skills (traps, AoE
- skills) since traps were always being counted in for stuff like Napalm
- beat/Blitz Beat/etc. [Skotlex]
- * Fixed Devotion/Sacrifice check which should enable recasting on
- characters. Thanks to Irmin for pointing it out. [Skotlex]
- * Fixed offensive heal so it fails if not used on an enemy (instead of
- failing when used on an ally). [Skotlex]
- * Modified the char servers so they do a party range check when a character
- logs in. This should fix parties keeping their even share even after a
- low-level member rejoins the server. [Skotlex]
- * Updated mob AI so that aggressive mobs will change targets if they are
- attacked and their current target isn't attacking them (regardless of
- range) [Skotlex]
- * Some updates to the pet AI so their chase range is range3 instead of the
- hardcoded value of 13. [Skotlex]
- * Reverted Mika's fix since it makes it impossible for mobs to heal each
- other. (what is the so called exp bug about?) [Skotlex]
- * Fixed a possible crash in clif_equiplist(), thanks to Zoc [Skotlex]
- * Spells are now considered a "miss" if they do no damage (this prevents
- additional effects from triggering out such as freezing) [Skotlex]
- * Temp bug fix of Exp increase when healing non-undead mob (by MiKa) [Lupus]
-2005/10/17
- * Updated sql-files/mob_db.sql to match with the current one. [Skotlex]
- (someone else also did this, but missed a few values from Incantation
- Samurai. Altough who did it and why it is failed to be mentioned in the
- log files?) [Skotlex]
- * Fixed alchemists not being able to hit their marine spheres (how many
- times this same bug keeps coming back from the dead anyway?) [Skotlex]
- * Updated sql-files/item_db.sql to the current item_db.txt [Skotlex]
- * Fixed magic rod not cancelling the additional effects from skills. [Skotlex]
- * Cleaned up the card inserting code to prevent crashes from modified
- packets. [Skotlex]
- * Fixed offensive heal [Skotlex]
- * Applied a random chance when reducing the mob's chase duration. This
- should randomize how long the mob chases you around before giving up.
- [Skotlex]
- * Some modifications to the timer push heap function, may fix timer issues
- when creating timers with tick values that overflow. [Skotlex]
- * Modified the mob ai so it has a seek time, when the min_chase runs out
- (it is constantly decreased while chasing, starts out at range3) the mob
- will stop chasing, do a /swt, and stop being aggro for 10 secs. This is how
- it should be according to what I understood from Komurka's explanation.
- [Skotlex]
- * Added config monster_ai, it determines some of the mob behaviour:
- - If &1, mobs will use hard path finding to reach their target, otherwise
- only easy (straight line) path searches will be used (for most offensive
- purposes).
- - If &2, mobs will use the rude attacked skill if they can't attack back no
- matter what, otherwise they use it only if they can't reach the target.
- [Skotlex]
- - Still pending on what other things it could define. Currently defaults to
- 0 (seems to be the official mob ai) [Skotlex]
- * Now Atk/Matk potions duration don't get automatically multiplied by 1000,
- duration must be specified in ms in the scripts. [Skotlex]
- * Made all mobs with no guild belong to the same guild, this should prevent
- mobs from attacking each other on WoE. [Skotlex]
- * Fixed Into the Abyss + retrieving traps related exploits. [Skotlex]
- * Changed monster_skill_nofootset to no to enable mobs casting stuff like
- Bomb underneath characters. [Skotlex]
- * Fixed Sacrifice, it can now be recasted on a player as long as it's by
- the same crusader that is currently protecting the player. [Skotlex]
- * Fixed some unitialized values error in magic and misc attacks. [Skotlex]
- * Fixed 30% bonus from upper/baby classes affecting card bonuses. [Skotlex]
- * Fixed baseClass not working on Acolyte class, thanks to Silent. [Skotlex]
- * Made the stone curse animation only show up on successfully cursing. [Skotlex]
- * Added Meditation's bonus to offensive heal, thanks to Orn. [Skotlex]
- * Made devotion fail when already used on a char with that effect. [Skotlex]
- * Made it so you can't quit while cloaking/hiding, and said status will end
- on quit if force-quitting. [Skotlex]
- * Cleaned up and fixed isequipped script commands, it should be working
- correctly now (tested with the Assassin combo) [Skotlex]
- * Fixed not stacking Long Attack Rate bonuses [Lupus]
- - Bow Thimble +3%, Archer Skeleton Card +10%, Merman Card(when CARDS COMBO) +20%
- - We should get rid of that +-15% ranged damage varianc (it doesn't cure "stoprate bug" anyways)
-2005/10/16
- * Fixed wrong calculation of items max drop chance (when using MySQL MOB DB) [Lupus]
- * Added nomemo mapflag to more levels of Thanatos Tower, thx2Justin84 [Lupus]
-2005/10/14
- * Updated the gvg_dungeon mapflag to mean "guild versus guild regardless of
- woe schedule" and set it on the guild versus guild maps. [Skotlex]
- * Fixed perfect hiding. [Skotlex]
- * Cleaned up (or rewrote?) the Run and High Jump code to merge them better
- with the normal walking routines. [Skotlex]
- * Corrected Turn Undead from ignoring element. [Skotlex]
- * Updated Power Thrust Max & Power Thrust so that they don't stack (and
- only PT Max cancels PT) [Skotlex]
- * Some fine tuning in battle_check_attackable. [Skotlex]
- * Changed db_final's implementation to End of Exam's. [Skotlex]
- * Corrected Guardian removal routines to also update/save their respective
- Castle data (Guardian HP and visibility) [Skotlex]
- * Added map server setting "enable_spy", must be set to yes/on for @spy
- commands to work. [Skotlex]
- * Applied End of Exam's fix to the previous fix to the db. [Skotlex]
- * Fixed spyguild/spyparty sending packets to the spied guild/party instead
- of your own. [Skotlex]
- * Rewrote the card hash implementation. Now it should work correctly for
- any card set on any equipped item. Supports up to 4 slots in any of the
- equipped items. [Skotlex]
- * Updated the mob ai so it stops chasing right away if you
- hide/cloak/vanish/etc. [Skotlex]
- * Fixed some memory issues in the db handling. Credits to End of Exam.
- [Skotlex]
-2005/10/13
- * Updated the main.sql file with some of the recommendations by Zoc
- [Skotlex]
- - If your sc_data table works as it is, you don't have to touch it.
- * Fixed Maxmize Power/Cloaking sending the sever to an "infinite loop" when
- used by mobs. [Skotlex]
- * Some cleaning to clif_send in regards to guild-related packets. [Skotlex]
- * Added mob skill condition "afterskill", works like "skillused" except
- it's triggered after the mob was the one doing the mentioned skill.
- [Skotlex]
- * Small cleanup and optimization of data saved when received member
- information. [Skotlex]
- * Fixed some memory issues in script loading and the plugin loading
- mechanism. [Skotlex]
- * Fixed magic attacks always doing minimum damage. [Skotlex]
- * Fixed the crash in battle_check_attackable [Skotlex]
- * Fixed Fireball hitting twice on the targetted mob. [Skotlex]
- * Updated Recall Guild to work in gvg maps even if the nowarp flag is set.
- [Skotlex]
- * Updated Recall Partner to warp partner after 20 secs the thing is on the
- ground, skill is blocked from reusage during that time. [Skotlex]
- * Some updates to correctly decide whether skills hit cloaking and/or
- hidden chars. [Skotlex]
- * Updated skill code so that heaven's drive will hit and destroy traps
- (untested), also AoE skills will not trigger on hidden characters. [Skotlex]
- * Fixed the crash on magic rod. [Skotlex]
- * Updated Maximize Power and Cloaking to last forever (until reuse, I
- believe) for non-players. [Skotlex]
- * Made Berserk end when you logout. [Skotlex]
- * Made song/dances end when you unequip your weapon rather than on equip.
- [Skotlex]
- * Fixed one bug in battle_calc_magic attack and some cleaning of it as
- well. [Skotlex]
- * Updated sql-files/mob_db.sql to match the latest mob_db.txt [Skotlex]
- * Updated sql-files/item_db.sql to match the latest item_db.txt. [Skotlex]
- * Fixed stealing. Now it works like aegis one. [Lupus]
-2005/10/12
- * Fixed everyone gaining high speed after casting a ground-based skill.
- [Skotlex]
- * Corrected the magical part of Soul Breaker ignoring mdef. [Skotlex]
- * Updated Reverse Orcish to use the duration specified for the skill in
- skill_cast_db.txt [Skotlex]
- * Modified REVERSEORCISH to make it a status change (SC_ORCISH), since
- there's no data about duration, defense, or if any stat reduces it's
- duration, it currently is fixed to 5 minutes. [Skotlex]
- * Fixed crash when sending the insert card packet with an invalid index. [Skotlex]
- * Added script constant baseClass. [Skotlex]
- - Example: if (baseClass == Job_Novice) will match on all novices and super
- novices. if (baseClass == Job_Swordman) will match on all Swordmen, Knights
- and Crusaders. Once tested several item scripts can be simplified in the
- item_db.
- - In contrast, the already defined baseJob works by stripping the upper
- kind only. (eg: baseJob == Job_Swordman matches on swordman classes, but
- not Crusader/Knight)
- - I know the names can be confusing, but anyone has a better suggestion for
- a name?
- * Added a fix to prevent people from buying equipment in stackable from by
- hexing the packets and specifying an amount greater than 1. [Skotlex]
- - Thanks to End of Exam for pointing out the exploit.
- * Added flag "move delay" to skill_castnodex_db.txt [Skotlex]
- - By setting this flag to 1, players won't be able to move during the skill
- delay time. Some reorganization was needed in skill.c to make room for
- this, so some testing is required.
- * Fixed the Char SQL server unnecessarily loading AND saving parties each
- time a party-member changed maps. [Skotlex]
- * Modified skill_min_damage so that it defines the minimum damage for
- skills IF the skill does not misses/is blocked. Can be used to specify
- to any of weapon attacks, magic attacks, or misc attacks. Defaults to 6
- (magic + misc attacks) as that is what was set up previously. [Skotlex]
- * Fixed Wand of Hermod and a potential crash related to ground based
- skills. [Skotlex]
- * Probably corrected npc load count when using reloadscript. [Skotlex]
- * Likely fixed petheal [Skotlex]
- * Fixed PVP client crash bug. By a new cadidate into eA coders LuzZza [Lupus]
- * Updated maps comments, thanks to Justin84 [Lupus]
-2005/10/11
- * Fixed not being able to cast resurrection on dead players. [Skotlex]
- * Fixed party HP update crash. [Skotlex]
- * Fixed players being killed always in one hit. [Skotlex]
- * Fixed chars not being able to unhide. [Skotlex]
- * Rewrote/optimized the hp updating code (both party hp and disp_hpmeter),
- this should lower bandwidth a bit from all the unnecessary packets that
- were previously being sent. [Skotlex]
- * Removed the mysterious 2.2% drop chance for all items when read from the
- sql db. [Skotlex]
- * Updated targeted skills and normal attacking to fail when targetting
- hidden characters. [Skotlex]
- * Merged reddozen and Draco's code regarding TK skills. [Skotlex]
- * Added a function to allow guilds to delete alliances with nonexisting
- guilds. [Skotlex]
- * Corrected the weapon damage return in battle_weapon_attack, thanks to PeF
- for pointing it out. [Skotlex]
- * Added max_baby_parameter to define the max parameter for baby classes.
- Also fixed some instances where the baby parameter restriction was not
- being taken into account. [Skotlex]
- * Fixed Firewall doing knockback on the undead. [Skotlex]
- * Fixed Waterball count when casted by non-players, thanks to Orn [Skotlex]
- * Fixed the instrument/whips gender restriction being applied to Cap. [Skotlex]
- * Damn typo: Fixed Mobs Drops with the same % droprate. thanx 2rover 4bugreport [Lupus]
- * Fixed SQL Mob DB reading(no drops issue, etc) thanx to yoanykim for pointing it out [Lupus]
-2005/10/10
- * Probably fixed the peco-riding issue. [Skotlex]
- * Fixed clif_clearchar_delay (cause of the ghost mobs from my tests). [Skotlex]
- * Small fix on the mob ai (attacked_id was never being reset if the
- attacker no longer exists). [Skotlex]
- * Added a couple of checks to prevent the mob_ai from executing if the mob
- is dead. [Skotlex]
- * Fixed a typo in skill_attack which causes all sort of unpredictable
- behaviour, such as firewall never hitting. [Skotlex]
- * Fixed a memory leak involving pets and cast cancel. [Skotlex]
- * Made Wand of Hermod end when the caster is moved for whatever reason. [Skotlex]
- * Increased the random damage delay modifier to +/-15% [Skotlex]
- * Fixed "rare drop filter" considering "available in shops only items" as RARE items [Lupus]
- * The GM can drop level now also determines whether a GM can store items in
- the Guild Storage or not. Thanks to Kayla for pointing it out :P [Skotlex]
- * Fixed Grimtooth so that it's slowdown works on both players and mobs.
- [Skotlex]
- * Fixed Fireball's damage. [Skotlex]
- * Now the Wedding Dress and Tuxedo will always check for the correct
- gender. [Skotlex]
- * Cleaned up the code for Potion Pitcher. [Skotlex]
- * Reverted Falcon Assault to be 5x Blitz Beat's damage at level 5. [Skotlex]
- * The npc_counter is now reset in a @reloadscript. [Skotlex]
- * Cleaned up Falcon Assault and made it's %dmg increase be an addition on
- top of Blitz Beat (altough I am not so sure that's right) [Skotlex]
- * Hardcoded the gender restrictions for items with view 13 & 14 (Musical
- Instruments and Whips), changed ignore_item_genders to yes as default. [Skotlex]
- * Changed GX duration to 900ms. [Skotlex]
- * Cleared up the item get times descriptions in battle_athena.conf [Skotlex]
- * Some timer fixes in status_change_start regarding sc_data loading. [Skotlex]
-2005/10/09
- * Probably fixed Waterball so it does max number of hits when casted by a
- non-player regardless of water availability. [Skotlex]
- * Fixed perfect hiding. [Skotlex]
- * Corrected magic damage return to only work on targetted skills [Skotlex]
- * Some cleaning up of the skill_attack function. [Skotlex]
- * At last finished 2 last logs filters options: [Lupus]
- - Implemented 'Rare' items option (you can set rare_items_log value)
- - Implemented 'Big amount' of items option (it would always log big set amount of items (per 1 action!) despite on the other filter option)
- * Updated @iteminfo ATcommand. It would show you additional item info. [Lupus]
- - Monsters drop this item with ?.?% chance
- - Monsters don't drop this item
- - This item is available in the shops only
- - Tip: When you Trade/Vend goods, use @iteminfo to check items price and even rareness ^_-
- * Rearranged item_data struct units to make it compatible with some old script commands after Skotlex's changes
- - Tip: Now you can use GetItemInfo script command to find out if the item is rare or not
-2005/10/08
- * Some improvements to the mob ai. [Skotlex]
- * Fixed summoned marine spheres exploding on their own. [Skotlex]
- * Probably fixed the attribute fix for magical attacks. [Skotlex]
- * Made the gender check to not be ignored by default [Skotlex]
- - This is necessary because the new job ID system makes both Dancer and
- Bard be treated as the same job, so all bard/dancer comparisons were
- changed to be gender comparisons, thus, the gender check is indispensable
- for their weapons.
- * Updated item_db structure. new column upper (after equip_jobs) defines
- the type of job that can equip the item (1: Normal jobs, 2: Upper jobs,
- 4: Baby jobs), merged the use_script and equip_script columns into one.
- Also the equip_jobs column now has support for the following classes:
- Taekwon (2^24), Star Gladiator (2^25) and Soul Linker (2^26)
- The provided db/item_db.txt and sql-files/item_db,sql are already updated
- with all the necessary changes (all equipable/usable items have their
- upper set to 7)..
- - Lupus, Nexus, get working on updating the item_db.
- * Made FrostJoke/Scream work the same way out and inside woe grounds.
- [Skotlex]
- * Corrected Grand Cross Damage [Skotlex]
-2005/10/07
- * Took out Lighthalzen's noteleport mapflag. Added it by accident. [Nexon]
- * Some commented code cleanup and help.txt update [Foruken]
- * Applied Draco's fixes to battle_calc_magic_attack. [Skotlex]
- * Modified @showexp and @showdelay so they will work as people would expect
- them to. [Skotlex]
- * Figured out what ## variables are, and documented it on
- doc/script_commands.txt [Skotlex]
- * Foruken pointed out that the actual script problem was a certain
- acalloc() that was changed to realloc(), so undid the last revert and
- reverted this one instead. [Skotlex]
- * Fixed a char-sql issue where character variables seemed to be saving
- incorrectly. [Skotlex]
- * Removed a free() that was added on R3421 that was supposed to fix a
- memory leak but instead causes crashes :/ (so the memory leak is back in
- there, but no more crash) [Skotlex]
- * Applied End of Exam's script engine patch. [Skotlex]
- - This adds support for nested blocks, if/else, fors, switches. See
- <http://eathena.deltaanime.net/board/index.php?showtopic=50037>
- for more information. Note that he admits it is not fully tested, so be
- careful when trying out the new commands!
-2005/10/06
- * Some corrections to the script engine, should fix a few memory leaks.
- [Skotlex]
- * Minor corrections to the screen output of the char_sql server when
- saving. [Skotlex]
- * Corrected authorisation issues in msg_athena.conf [Skotlex]
- * Updated Wand of Hermod [Skotlex]
- - Can't amp out of it.
- - Affects everyone
- - Only prevents people from casting supportive skills.
- * Fixed mobs not doing their "rude-attacked" skill. [Skotlex]
- * Corrected casters being able to walk during Wand of Hermod [Skotlex]
- * Made Guild Recall be usable outside of WoE. [Skotlex]
- * Changed the default gvg_traps_target_all to yes. [Skotlex]
- * Changed the default for copyskill_restrict to 2 (cannot copy advanced
- skills) [Skotlex]
- * Added a bunch of code related to the 2nd job quest skills and Tae -second
- classes skills, as provided by Draco and acquired from jA [Skotlex]
- * Merged Draco's implementation of battle_calc_magic_attack. [Skotlex]
- * Modifications to the mob AI to more accurately use Range2 (mob's sight
- range) and Range3 (mob's chase distance ability) [Skotlex]
- * Cleaned up item_db.txt, updated sql-files/item_db.sql to match. [Skotlex]
- * Added logarithmic drops support for TXT itemdb loading (how could I had
- forgotten that?) [Skotlex]
- * Added battle options item_rate_treasure, item_drop_treasure_min,
- item_drop_treasure_max, these override all other rate options when it comes
- to Treasure box drops. [Skotlex]
- * Cleaned up battle_athena.conf regarding drop rates. mvp_item_rate has
- been changed to item_rate_mvp. [Skotlex]
- * Implemented Maya Purple card effect (you can see any hidden mob). Thanks to jA [Lupus]
- * Updated functions: pc_calc_base_job,pc_calc_base_job2 [Lupus]
- - They return 24:Taekwon, 25:StarGladiator, 27:Soul Linker
- Now someone should UPDATE Job fields of item_db.txt for TK,SL,SG classes
- then I'll remove ugly hardcoded "temp plug" from pc_isequip function
- [Item_DB JOB field note]: We don't check Knight2,Crusader2,Star Gladiator2 bits,
- so don't set them.
- In other words we use only these bits:
- 0-Novice,1-Swordman,2,3,4,5,6-Thief
- 7-Knight,8,9,10,11,12-Assassin,14-Crusader,15,16,17,18,19,20-Dancer
- 23-Super Novice
- 24-TK,25-SG,27-SL
- Don't ever use other bits e.g. for Advanced classes. It's useless
- * Added Poring Box logs (into dead branch logs)
-2005/10/05
- * Updated nomemo and noteleports for Lighthalzen/Einbroch/Einbech maps and others. [Nexon]
- * Fixed the mob AI. [Skotlex]
- * Updated alchemist_summon_reward [Skotlex]
- - Summons now never give exp, and they may drop items according to setting:
- 0: Never drop items
- 1: Only Marine spheres drop items (default)
- 2: All summons drop items.
- (maybe a different battle option can be made to make summons give exp?)
- * Simplified the Grand Cross code. [Skotlex]
- It is now entirely a magical attack with extra damage of the form base
- atk * skill% - armor def% - vit def. Note that weapon properties won't
- apply now as well as many of the offensive cards (those that do not apply
- to both magic and weapon attacks, that is), and the def penalty from
- having many mobs targeted on one is not applying neither (so the full
- def is being taken into consideration). Report any corrections further
- needed.
- * Cleaned up, organized and improved somewhat the mob ai code. [Skotlex]
- (update and test at your own risk as I can't test it currently)
- * Some corrections to the way the guild master's name is updated during a
- gm change. [Skotlex]
- * Added a check to avoid saving negative durations for status changes. [Skotlex]
- * Added a check to avoid loading status changes with negative durations
- (the walk freeze problems seem related to timers and sc_data loading, so I
- am shooting in the dark here at possible problem sources) [Skotlex]
- * Various cleanups to ensemble related code, Longing For Freedom may be
- working now. [Skotlex]
- * Added the water levels to ayo_dun01, gon_dun01 and lhz_dun03, thanks to
- Master of Muppets [Skotlex]
- * Made Autocounter trigger autospells (was not doing so because it's NK
- defines it as a no-damage skill) [Skotlex]
- * Some cleanups on the mob slave AI code. [Skotlex]
- * Added battle config retaliate_to_master, defaults to yes. [Skotlex]
- - Why? Because in official, summoned mobs are not attacked by other mobs
- (speaking about alchemists), if you set this to no, then mobs will
- retaliate against the summon (both @summon and alchemist ones).
- * Some fixes to the way the guildmaster flag is being set and checked. [Skotlex]
- * Made the skilllv be 1 if the client sends less than that (this is why
- active guild skills were not working. For some reason the client was
- sending a request to do the skill at level 0!) [Skotlex]
-2005/10/04
- * Likely fixed Aeterna + Soul Breaker/Destroyer. [Skotlex]
- * Some cleaning of the mob ai. May help with some of the current exploits.
- [Skotlex]
- * Corrected Mob_ai code to make supportive mobs properly gang up on
- summons. [Skotlex]
- * Moved the plagiarize code to execute it before dealing damage (because on
- WoE you are auto-restored when you get killed, hence the player was 'alive'
- and it would copy the skill when killed by it on WoE) [Skotlex]
- * Fixed Classical Pluck blocking AoE spells. [Skotlex]
- * Updated Spider Web code to not retrigger if already trapped by one
- (needed because spider webs can now stack) [Skotlex]
-2005/10/03
- * Fixed a mistake with my last fix. [Kevin]
- * Fixed often occurring memory leak in clif.c. [Kevin]
- * Made NPC_DARKCROSS work (it's just a copy of Holy Cross with dark
- attribute) [Skotlex]
- * Removed resetting the manner when a player is saved. [Skotlex]
- * Cleaned up map reading code to make it remove maps that could not be
- loaded. It prevents crashes related to maps that weren't correctly loaded
- on startup. [Skotlex]
- * Fixed Endure to make it add armor mdef. [Skotlex]
- * Small fixes to updating the guild master's name during a guild master
- change. [Skotlex]
- * Some corrections to the mob ai to enable mobs to attack other mobs
- (summoned ones, of course) [Skotlex]
- * Updated autotrading so that the char will close the shop and quit the map
- server automatically when there's nothing left to vend. [Skotlex]
- * Added checks to prevent a char from joining/creating multiple chat rooms
- (anti-crash fix, it is). [Skotlex]
- * Cleaned up and restructured the mob item drop code. It also fixes a
- possible crash during the autoloot check. [Skotlex]
- * Reupdated Wind Walk to add +5% flee bonus... AGAIN. [Skotlex]
-2005/10/02
- * Fixed STEAL issue. [Lupus]
- - Any Mob has 10 drop slots. If we pick an empty one, then we check previous slot, until we find a slot with an item.
- Then we apply STEAL FORMULA for the item. (During the tests I managed to steal 2 poring cards 8)
- If a mod doesn't have any slots then STEAL fails.
- - Possible exploit: If a mob (e.g. NEW MOBS) has only one rare drop, then STEAL would always try to steal that the only slot 8)
- How to fix: I suggest to fill other empty slots with Jellopies or Apples with zero chance.
-2005/10/01
- * Expanded NPC shop log info of sold items (cards, refine, etc) [Lupus]
- * Fixed compile errors in converters [celest]
- * Updating built-in zlib to 1.2.3 [celest]
- * Added unzip functions to grfio.c [celest]
- * Finished Fusion AF2 maps support - just put the .af2 files in the
- afm folder and start the map server as usual [celest]
- NOTE: It will need a new unzip library, so do 'make clean', or delete
- 'Makefile.cache' before recompiling!
-
-2005/09/30
- * Updated the slave warp code. Now when a master recalls their slaves,
- these will be placed 'randomly' around the master in an area_size/2 range.
- [Skotlex]
- * Cleaned up the mob link (supportive mode) code to prevent wasting time
- trying to link friends every 100ms. Now the interval for linking friends is
- MOB_MINLINKTIME (1 sec currently) [Skotlex]
- * Updated mob code so when a mob hits another, they set their 'attacked id'
- to the mob in question, and not the mob's master. [Skotlex]
- * Some cleaning up of the Taekwon stance skills. Added a attack delay when
- they trigger (same way as triple attack delays your continous attack) [Skotlex]
- * Modified the range check in skill_use_id/skill_use_pos so that if you try
- to use a skill while moving, it will change your path to move one cell towards the
- target before casting (as long as you are within one tile of being in
- range). [Skotlex]
- * Moved the bleeding reduction formula to status_change_start, modified the
- formula to be (lv/5+vit)% reduction. [Skotlex]
- * Fixed the blind duration reduction formula. [Skotlex]
- * Upgraded Meteor Assault so you can specify the duration of
- blind/stun/bleeding independently in skill_cast_db.txt [Skotlex]
- * Made TK_JUMPKICK share the same code as Ashura Strike (just to see what
- happens, both seem like they behave the same way, no?) [Skotlex]
-2005/09/29
- * Some tweaks and fixes around status.c, may fix the timer mismatches of
- status_change_timer. [Skotlex]
- * Fixed a memory leak regarding pet status recovery scripts. [Skotlex]
- * Added timestamp support. Set timestamp_format to whatever you want, and
- it will print a timestamp in said format before every Show* message. They
- can be set independently for each server (defined at login_athena.conf,
- char_athena.conf and map_athena.conf). Default is using no timestamps. [Skotlex]
- * Modified the new auth login system to take into consideration when the
- client tries to connect before the character data arrives from the char
- server. [Skotlex]
- (seems to work well, but could use more testing)
- * Corrected the description of the 'skill_add_range' switches and made them
- default to 5. Still pending further tuning (the official value of these
- switches should have is still unknown) [Skotlex]
- * Added Demonstration to list of skills affected by
- 'gvg_traps_target_all' [Skotlex]
- * Likely fixed Firepillar triggering multiple times when many characters
- step unto it. [Skotlex]
- * Increased the damage delay randomizer to be +/-10% rather than +/-5%, may
- fix 'stun-lock'. [Skotlex]
- * Added Consumable items log into pick_log [Lupus]
- - You can see logs when someone uses items (boxes, potions, etc)
- * Added AtCommands/CharCommands items deletion/creation log into pick_log [Lupus]
- * Removed some of the unnecessary verbose messages from the char server
- during data saving. [Skotlex]
- * Added the new "online check" system (more of a fixing of a system that
- was already there but was half working) [Skotlex]
- it is turned on/off by using the online_check config options for the
- login and char servers.
- - char server: When the check is on, players are kicked out of the char
- server when their character is already online, and the map servers are
- instructed to kick the account out as well. If there's no reply from the
- map servers, the char is automatically set offline after 15 secs.
- - login server: When the check is on, players get "rejected from server"
- when the account is online already, and afterwards the char servers are
- told to kick that account out (like in the first case), if after 30 secs
- there is no reply from the char servers logging off the account, the login
- server sets it offline on it's own.
- - The checks are by default on as they are meant to prevent possible
- exploits on multi-map servers.
- - However, I have not figured out where exactly a char server gets to know
- that a player has changed map-servers, so this could cause trouble in said
- enviroments until I figure it out (it won't go out of sync forever since
- the map servers do update their list of online characters every then
- seconds) :/
- * Fixed crash, related to STEAL logs [Lupus]
- * Added TXT logs for Pick_log [Lupus]
-2005/09/28
- * Added 'scripts items operations' and 'vending' into pick_log: [Lupus]
- Tested with refine, getitem, getnameditem, removecards, etc commands. They are all supported.
- Now you can see if a player breaks his armor in NPC Cards Remover, etc.
- You can track down any item within a single DB.
- You can make a SQL query to find which items are most popular, which quests are most popular, etc
- Of course, it could help you to find your local items exploits, cheaters and unfail admins ^_-
- - Added 'Autolooted' and 'Stolen' items into pick_log
- - TODO: Add TXT logs
- * Fixed JobMaster NPC. Thanks Amada [Kayla]
- * Removed card-fix flag from Cart Termination. [Skotlex]
- * Updated battle_check_target so that a mob will consither another mob an
- enemy if either one has special mob ai (is a @summon or summoned alchemist
- mob). Summons from the same master should not be attacking each other,
- however I do think they will attack summons from another player. [Skotlex]
- * Removed 10 chances to pick an item from STEAL skill (it should have only 1 chance) [Lupus]
-2005/09/27
- * Corrected again Wind Walk. Just +5 flee at lv10, walk bonus does not
- stacks with other speed giving skills. [Skotlex]
- * Corrected Wind Walk's walk and flee bonus (walk was a +4*skill_lv%
- increase! and flee was +5 flee, rather than +5% flee of your total).
- [Skotlex]
- * Added atcommand @changeleader, transfers the leadership of a party to
- someone else. [Skotlex]
- (defaults as a GM-level 10 command, not quite yet tested)
- * Added delitem2 script command with script sample by Mihilion [Lupus]
- * Removed the check that prevented chars from logging out during status
- changes, as the current system should save and restore these correctly.
- [Skotlex]
-2005/09/26
- * Fixed MAX GUILD capasity in mmo.h to allow correct +6 Guild Extension [Lupus]
- * Changed back the TIMER_MIN_INTERVAL to 50. Who changed it back to 25?
- (svn3015 skotlex: Changed TIMER_MIN_INTERVAL to 25 (from 10), it probably needs to be bumped even higher, awaiting results from testers to see if a higher value would be needed.
- svn1284 lupus: timers optimization / speed up / bug fix : no freezing mobs [TIMER_MIN_INTERVAL: 50->10])
- (note to self: make this a setting in inter_athena.conf) [Skotlex]
- * Guild Extension now adds 6 per level. [Skotlex]
- * Added define ENABLE_SC_SAVING in common/mmo.h, comment/remove this line
- to disable saving of status changes (temporary measure) [Skotlex]
- * Updated Double Casting to only work on Firebolt, Coldbolt and
- Thunderbolt. [Skotlex]
- * Fixed cloaking/hiding. [Skotlex]
- * Updates to status_change_start, scdata loading now should display on the
- targetted player. [Skotlex]
- * Removed card modifiers from Meteor Assault. [Skotlex]
- * Corrected skill_out_range_consume so that spells effectively fail if the
- target goes out of range. [Skotlex]
- * Another another check on the new auth system which may help prevent
- exploits. [Skotlex]
- * General cleanup and code improvements needed because of the new auth
- system. [Skotlex]
- * Fixed a bug in the new auth system (TXT) which was causing the gender to
- be pretty much randomly sent. [Skotlex]
- * Fixed a bug in changesex at the TXT char server level. [Skotlex]
- * Updated new logging system. Now logs TRADE, NPC Shops [Lupus]
- * Fixed a possible exploit in the new auth system. Thanks to End of Exam
- for the information. [Skotlex]
- * Corrected True Sight critical bonus. [Skotlex]
- * Water Ball will now do the full number of hits regardless of available
- water when used by non-players. [Skotlex]
- * Changed the emoticon delay to 1 second. [Skotlex]
- * Zeny/item kill bonuses now work on all skills, and not just physical
- weapon attacks. [Skotlex]
- * Added official Ayothaya Town script by MasterOfMuppets [Lupus]
- * Added new Players / Monster Drops / Pickups Logging system [Lupus]
- - Changed new log table, now it has field 'type':
- M = Monsters Drop, P = Players Drop/Take, L = Mobs Loot Drop/Take, T = Players Trade Give/Take,
- V = Players Vending Sell/Take, S = Shop Sell/Take, N = NPC Give/Take
- NOTE: 'looted drop' might has cards, refine, etc. 'common drop' has item w/o cards/refine
- - Now you can see Players(cheaters) passing any items w/o trade
- - Now MOBS+PLAYERS drops come in the same table (easy to query)
- Poring -5 Apple
- Zelgadis +5 Apple
- - You can tell off monsters by their LOW id. < 2000~
- - Negative value of AMOUNT shows that a mob, or a player has dropped that items amount
- - Positive value of AMOUNT shows that a player has pickedup that items amount
- - It works 5x faster than old DROPLOGS
- - TXT logs don't work yet
- - TODO: Add Autolooted & MVP items in the log, too.
- - TODO: Add Mobs Looters DROP items in the log. (Now only attacked mobs log loot drops)
- - TODO: Add Scripts/Vending logs
-
-2005/09/25
- * Modified battle_weapon_delay so that additional status effects are
- invoked even if the attack does no damage, as long as the attack connects
- (that is, it is not a miss/lucky dodge) [Skotlex]
-2005/09/24
- * Updated several mob stats for the Lighthalzen and later mobs from the
- data provided by Viccious Pucca. [Skotlex]
- * Updated sql-files/mob_db.sql to contain the most recent mob_db. [Skotlex]
- * Added support for saving/loading status changes when characters log
- in/out. [Skotlex]
- - TXT users: the file used by default is scdata.txt, can be changed by
- setting scdata_txt to something else in inter_athena.txt.
- - SQL users the table used by default is sc_data, can be changed by setting
- scdata_db to something else in inter_athena.txt. Use upgrade_svn3273.sql to
- generate the new table.
- - It is currently unknown the behaviour of restoring some status changes,
- if any anomality shows up, do report.
- - Currently, even thought the sc data is restored, the client does not
- receives the packet telling them that the effect started (like Gloria, you
- can see you have +30 luk, but the message is never there) nor the visual
- effects are in neither. This is a side effect of starting the status
- effects on a player before the client finished loading the maps and spawns
- in the map. Will be fixed later.
- * Some memory optimizations tothe new auth system. [Skotlex]
- * Moved the charsave_method config to inter_athena.txt [Skotlex]
- * Fixed Demonstration/Bomb getting 100% breaking chance on low skill break
- rates [Skotlex]
- * Fixed chars being able to cast skills while rooted if they didn't have at
- least root lv1 [Skotlex]
- * Removed Assert in pet_walk, use a less unstable debugging tool, causes
- errors in remote shells. [Kevin]
- * Fixed TXT char login with new auth system. [Kevin]
- * Done: Adjustable players titles for @who, @who2, @who3 commands [Lupus]
- - Check msg_athena.conf for new lines
-2005/09/23
- * Software Caused Connection Abort errors will now cause said socket to be
- removed inmediately from the listening list of sockets, this may help with
- the lag issues that arise when said error occurs. [Skotlex]
- * Fixed Demonstration having 100% breaking chance if you set skill breaking
- chance to 0. [Skotlex]
- * Swapped functions of @who and @who3 commands. Because it's a spoil [Lupus]
- to show players locations. You may enable @who for your common players now.
- there's a shortcut for @WHO: @W
- * Started adding adjustable players titles for @who, etc commands [Lupus]
- - e.g. Super Player, GM, GM+, etc
-2005/09/22
- * Updated sql-files/item_db.sql to have the most current version. [Skotlex]
- * Finished first part of new auth system, fully tested. Will reduce char->map
- lag by whatever it is you are haveing. [Kevin]
- * Added consideration of GrandDarkness in various code sections that were
- only checking for Grand Cross [Skotlex]
- * Deployed use of map_getallusers all over the map server where it makes
- sense to include disconnected players. [Skotlex]
- * Corrected map_getallusers to depend on the actual count of players in the
- db rather than the variable users (prevents possible crashes if the two
- differ) [Skotlex]
- * Updated the player counting function so that it correctly accounts for
- all players (including those not connected like in autotrade) [Skotlex]
- * Characters will now automatically stand if Soul Drain is triggered while
- sitting. [Skotlex]
- * Set default option gvg_traps_target_all: no [Lupus]
- - In kRO it used to be 'yes' some time ago but has been reverted back to 'no'
-2005/09/21
- * Corrected an error in the way guild alliances were being counted, as
- pointed out by Viccious Pucca. [Skotlex]
- * Fixed and deployed map_getallusers() on atcommands @who, @who2, @who3.
- [Skotlex]
- - This function should enable the aforementioned commands to work even on
- players who are in the server but are not connected (eg: autotrade
- players). It is temporarily only deployed on the @who functions pending on
- feedback (bug reports, anything) before going ahead and implementing it on
- all relevant atcommand/charcommand/script functions.
- * Replaced the trim() function with Furoken's implementation (it should
- remove tabs, consecutive spaces and other such unwanted characters from a
- char's name) [Skotlex]
- * Updated doc/script_commands.txt to explain the upper parameter of the
- function jobchange. [Skotlex]
- * Corrected sql query errors when logging trades and vending. [Skotlex]
- * Updated doc/script_commands.txt with the script commands I've modified
- or added that are not yet described within. [Skotlex]
- * Small fix to clif.c which corrects characters that can't log in again if
- they log out when the char and map server are not connected. [Skotlex]
- * Cleaned up all SQL error reporting. It now follows the same standard
- everywhere, and is followed by a debug line which includes the file, line
- number and contents of the attempted query which caused the error. [Skotlex]
- * Corrected an sql logs error when selecting a character with special
- characters (eg: single quotes) on it. [Skotlex]
-2005/09/20
- * Changed Palm Strike's initial animation display. [Skotlex]
- (it will show as a normal attack that misses instead of an skill, but at
- least the animation delay is correct and the skill can be chained now)
- * Adjusted Cart Revolution's damage to be based on the Cart's Max Weight
- (instead of the hardcoded 8000w value) [Skotlex]
- * Fixed a memory leak when pets cancel their casting. [Skotlex]
-2005/09/19
- * Added error reporting an item in the item_db.txt file has insufficient
- fields (rather than just crashing) [Skotlex]
- * Updated the item_db to use the new race and element constants. [Skotlex]
- * Fixed (I think) battle option muting_players. Defaulted it to yes. [Skotlex]
- * Added timers for displaying guildmates position. [Skotlex]
- - All the packet related code was already there by Valaris, so I wonder why
- this wasn't finished before?
- * Added battle_athena options max_def/over_def_bonus (read
- battle_athena.conf for desc) [Skotlex]
- * Added error reporting when the magreg file fails to be saved. [Skotlex]
- * Made berserk castable during the no-regen period when it expires. [Skotlex]
- * Fixed a query error on sql refine logging. [Skotlex]
- * General checks to the script engine string management. Should fix a bunch
- of memory leaks. [Skotlex]
-2005/09/18
- * More updates to status change IDs [DracoRPG]
- * Implemented TK_SEVENWIND, allowed simultaneous use of several stances, thanks to
- reddozen for all the info about that [DracoRPG]
- * Allowed to pickup/drop items while in Frenzy [DracoRPG]
-2005/09/17
- * Added a check that should prevent fighting against other guilds outside
- of WoE times. [Skotlex]
- * Hopefully fixed Hunter's Dectect skill. [Skotlex]
- * Fixed the packet issues on the char txt server. [Skotlex]
- * Miscellanous corrections to skill_attack. [Skotlex]
- * Corrected the AutoSpellWhenHit rate of all items in the db (TXT + SQL)
- [Skotlex]
-2005/09/16
- * Reverted some of the contents of skill_unit_move_unit_group since the
- previous algorithm was optimized. Walking during a Song/Dance should be
- smooth again. [Skotlex]
- * Rewrote the guild gm changing system. [Skotlex]
- - @changegm works now (tested in SQL, TXT should also be working)
- - Added script command "guildchangegm <guild id>,<new master's name>". Now
- go write some Guild Master changing npc if you want it to cost money, have
- a minimum guild level requirement, etc.
- * Added Ishizu's logarithmic drops equation. [Skotlex]
- (see battle_athena.conf for full details)
- * Added a sub-function call to clear Castle owners when their guild is
- broken. [Skotlex]
- * Added a char-server call to clear the alliance when a guild is broken
- (when a guild breaks, the alliance/opposition is removed from memory on the
- map server, so it seems said change is not sent/saved on the char-server
- side?) [Skotlex]
- * Added script function sc_start4, starts an status change with all four
- values. [Skotlex]
- Use: sc_start4 TYPE, DURATION, VAL1, VAL2, VAL3, VAL4, <target ID>
- * Added SC_ARMOR_ELEMENT/SC_DefEle, specifies elemental defense bonus
- against two elements at a time. For example:
- sc_start4 SC_DefEle, 60000, Ele_Fire, 20, Ele_Wind, -15;
- Gives 20% additional fire resistance and reduces 15% Wind resistance for
- 60 seconds.
- * Expanded battle_attr_fix to consider the status changes of the involved
- chars that affect elemental modifiers. [Skotlex]
- * Fixed some status effects not being correctly ended/recalculated when you
- stepped out of quagmire/song/dances. [Skotlex]
- * Made quagmire be affected by the "gvg_traps_target_all" battle switch. [Skotlex]
- * Added Bloody Branch log (along with Dead Branch) [Lupus]
-2005/09/15
- * The skill Vending will now fail on GM characters who do not satisfy the
- gm_can_drop level requirement. [Skotlex]
- * Updated the sql-files mob_db.sql and item_db.sql files to the current
- version (just feed'em to sql to have your item_db and mob_db tables
- updated). [Skotlex]
- * Now @allskill and it's ilk will give you ALL skills except the ones
- marked as "npc skills" (those have an inf2 value of 2). [Skotlex]
- * Some code optimization around song/dances, now the ensemble should be
- cancelled if you walk (or are knocked out or whatever) out of it.
- [Skotlex]
- * Added log support to N slots. Now all cards should be logged [Skotlex]
- - Note that I have not been able to test it yet, so report back any
- problems caused by it.
- * Fixed a memory leak when removing disconnected chars. [Skotlex]
- * Re-enabled the Memory Manager by default. [Skotlex]
- * Updated atcommand @rates so that it displays current exp rates in x form
- (eg: "Current rates: Base 4.5x, Job 8.0x") as suggested by Mellowz.
- [Skotlex]
- * Corrected resetskill messing up with Wedding Skills. [Skotlex]
- * Some adjustment to the status change defense (as per data provided by
- Viccious Pucca) [Skotlex]
- * VVVS weapons now give +50 damage instead of +40 (again thanks to
- Viccious) [Skotlex]
- * Success rate of making Star Crumbs now is 100% (regardless of skill
- level?) [Skotlex]
- * Couple of crash fixes on the map-server char saving method
- (char_save_method: 1) [Skotlex]
-2005/09/14
- * Yet another correction to SQL char saving. [Skotlex]
- * Added support for N slots. [Skotlex]
- - By changing the constant MAX_SLOTS in common/mmo.h, the server can be
- configured to support items with more than 4 slots. Saving/Loading and
- inserting of cards should be working correctly. Features still missing
- are including the extra slots in the log functions and updating clif.c to
- send the extra cards to the client (This is still work in progress).
- - SQL Users interested in using this, need to manually add columns card4,
- card5 and so on to the relevant tables (cart_inventory, guild_storage,
- inventory, storage), example query:
- ALTER TABLE inventory ADD COLUMN card4 int(11) NOT NULL default
- '0' AFTER card3;
- - TXT users need do nothing, the char server handles the
- expanding/contracting of slots internally (if the number of slots is
- shrinked, the additional slotted cards are lost)
- - Never set the amount of slots to less than 4, as they are needed for
- forged equipment.
- * Likely fixed Lex Divina. [Skotlex]
- * Likely fixed sql char-saving, too. [Skotlex]
- * Lex Divina can now be casted on allies as long as they are silenced.
- [Skotlex]
- * Fixed crashes on GVG grounds involving characters with no guild. [Skotlex]
- * Added a few socket features from Freya which hopefully will help
- stabilize eA on Windows (testing needed!) [Skotlex]
- * Miscellanous fixes and rewrites to memitemdata_to_sql, it'll probably
- fixed the stackable named items duplication exploit. [Skotlex]
- (note that it is not tested, so there's the chance I broke everything
- instead, so upgrade for testing purposes only and report back!)
- * Changed HP/SP drain rates so that the max (100%) is 1000. Adjusted item
- db accordingly. [Skotlex]
- * Disabled chars from muting themselves (as a temporary measure against the
- mysterious "don't use bot!" message) [Skotlex]
- * Added atcommand logging for /monster and /item (not quite tested yet, but
- I think it'll work) [Skotlex]
- * Changed autospell rates so that the max (100%) is 1000. Adjusted item
- database accordingly. [Skotlex]
- * Reverted displayed heal value. [Skotlex]
-2005/09/13
- * Fixed Basilica [Skotlex]
- * Rewrote the mechanics of how Devotion works. [Skotlex]
- * Updated Heal so that it displays on-screen the actual amount that was
- healed. [Skotlex]
- * Changed the damage motion equation to 1/4th of what it was before (now
- using player_damage_delay_rate: 100 is what was player_damage_delay_rate:
- 25 in previous revisions) [Skotlex]
- * The login servers will now notify when a player has an account ID under
- 700000 (which won't let them connect to the map server) [Skotlex]
- * Added support for SC_BLEEDING in skill_counter_additional_effect &
- skill_additional_effect [Skotlex]
- * Changed bonuses bAtkRate, bWeaponAtkRate and bCritRate to modify
- base+watk damage, not just watk. [Skotlex]
- * Corrected coma-effect killing bosses. [Skotlex]
-2005/09/12
- * Party even share code won't try to give dead players their share of the
- exp (since pc_gainexp would refuse so anyway) [Skotlex]
- * Added trim() usage to char servers to prevent creation of characters with
- spaces at the beginning or end of name. [Skotlex]
- (the client won't let me create chars with said names so I can't really
- test it, but on the very least valid names are not crashing it as far as
- I can see)
- * Expansion/optimization of the skill unit code. Now it should be correctly
- identified when a character walks into a skill cell, walks out of a skill
- cell, and walks out of the skill group (performance optimization,
- client-side: songs and dance effects will work correctly, and Quagmire
- won't spam "speed up/down" messages). [Skotlex]
- - Got basic testing only (casting, amp/encore, walking, being knocked back,
- warping), so report any problems found.
- * Bomb/Demonstration should now be cast-able under the Emperium. [Skotlex]
- * Acid Terror now knows ignores armor defense, but not vit defense. [Skotlex]
- * Added an official Bards Job Quest (check npc\changelog.txt) [Lupus]
-2005/09/11
- * Changed back the default of gx_all_hit to no. [Skotlex]
- * Added check to prevent ensemble skills from changing position. [Skotlex]
-2005/09/10
- * Removed the changing of targets for offensive songs in gvg grounds. [Skotlex]
- * Corrected Grand Cross not always hitting 3 times. [Skotlex]
- * Fixed the display of Auto Counter. [Skotlex]
- * Added check to prevent auto-spells from being casted when the source and
- target are the same (normally you can't hit yourself, though....) [Skotlex]
- * Fixed Root [Skotlex]
- * Fixed the issue which made mobs do nothing. [Skotlex]
- * Change Provoke to affect armor def of mobs, and vit def of mobs/players. [Skotlex]
- * Another change to autocounter, I think it will work now. [Skotlex]
- * Fixed Defender's aspd bonus. [Skotlex]
- * Fixed rooted character's root level (instead of using the caster's level) [Skotlex]
- * Windows builds will now abort and exit when there's a "Software Caused
- Connection Abort" error since it seems unrecoverable.. [Skotlex]
- * Reverted back my char.c/sql char.c changes 8) Have to re-check [Lupus]
- * Added official Louyang city (thanks to MasterOfMuppets), fixed some Kafra bugs [Lupus]
- check npc/changelog.txt
-2005/09/09
- * Fixed TXT/SQL char servers not reading properly their command line arguments [Lupus]
- * Refixed those compiler errors >.< [Skotlex]
- * Readded the damage delay to firewall. [Skotlex]
- * Added an extra db (pc_db) to hold players, it should speed up map_id2sd
- lookups. [Skotlex]
- (note that all functions which do a search on all connected players do a
- linear search on the connection sessions, and porting this to use the new
- system will take a pretty annoyingly long time)
- * Added checks to prevent dropped items from stacking (they can still
- stack, but at max 2 items per cell). [Skotlex]
- * Added Guild removing from memory upon guild break to Char SQL server
- (TXT already had this correctly) [Skotlex]
- * Changed Provoke to reduce armor defense, not vit defense. [Skotlex]
- * Likely fixed the direction check in Auto Counter. [Skotlex]
- * Removed the console functionality from socket.c (it was no good on the
- map server since that session is used on disconnected players), also added
- more checks to prevent parsing session 0. [Skotlex]
- * Added check to prevent skills from triggering auto-skills of the same id
- (prevents unlimited chain-reactions) [Skotlex]
- * General fixes to guardian spawning code. [Skotlex]
- (includes setting a timer so the Emperium gets it's guild data if not
- available at spawn time).
- * When the Emperium's guild is not found (in mob_spawn_sub, 5 secs after
- trying to spawn it) the Castle will be reset back to no guild owning. [Skotlex]
- * Fix to battle_check_target, should correct guardians/emperium [Skotlex]
- * Guardians will now be deleted if their guild is not found in
- mob_spawn_guardian_sub. [Skotlex]
-2005/09/08
- * Added filter into chat log. Check log_athena.conf for more info [Lupus]
- - Now you can turn off logs during WOE, etc
- * Made Musical Strike/Slinging Arrow work while in ensembles. [Skotlex]
- * Oops, fixed the compile error. [Skotlex]
- * Various checks to prevent trying to send data to disconnected players in
- clif_send [Skotlex]
- * Moved the auto-spell code from weapon attacks to skill_additional_effect
- and skill_counter_additional_effect. [Skotlex]
- - The autospells will trigger for all skills/normal-attacks except those
- with nk =1 (no damage skill) which is needed to prevent stuff like
- heal, traps or dances from triggering it.
- - Does not affect SC_HINDSIGHT triggered spells.
- - NOT properly tested as of yet, report any abnormalities and skills it
- should/should-not be working with.
- * Fixed the crash when attempting to target a Emperium. [Skotlex]
- * mob_spawn_guardian will now 'retry' to load the guild data five seconds
- later if the guild info is not available at spawn time. [Skotlex]
- * Fixed disconnected chars appearing as GMs on the console. [Skotlex]
- * clif_send_sub won't try to send any data to disconnected chars now. [Skotlex]
- (may fix possible buffer overflow crashes)
-2005/09/07
- * According to the patch, enabled Butterfly wings in the Castles [Lupus]
- * Adjusted MAX_GUILD constant according to Skotlex's changes [Lupus]
- * Now when the castle owner guild id is loaded, and the guild is not in
- memory, the map server will request it right away from the char server. [Skotlex]
- * Corrected Guild Extension to be +4 to the max guildmates per level. [Skotlex]
- * Changed the default max vending value to 1 Billion [Skotlex]
- * Inverted meaning of pvp_noguild and pvp_noparty flags. the default then
- for all maps where they are not set is: You can't attack parties/guildmates
- on pvp maps. [Skotlex]
- * Updated mapflag/pvp_noparty to mark only the gvg arenas. [Skotlex]
- * Added mapflag/pvp_noguild, by default includes all pvp arenas. [Skotlex]
- * Cleared up some of the warning messages on mob_spawn_guardian. [Skotlex]
- * Fixed the compile error on skill.c... [Skotlex]
- * Changed offensive song/dances target to BCT_ALL when invoked in pvp/gvg
- grounds. [Skotlex]
- * Added unit flags UF_NOMOB, UF_NOPC to give better control on who gets
- affected by ground skills [Skotlex]
- * Fixed the possible crash in map_foreachinpath. [Skotlex]
- * Removed the error message in mob_guardian_changeguild when the new guild
- has ID 0, the mob will just be removed instead. [Skotlex]
-2005/09/06
- * Changed Assumptio to target all players around target. Mobs are no longer
- affected. [Skotlex]
- * Fixed battle_check_target fails on guild-mates in pvp maps. [Skotlex]
- * Reverted battle_check_target to prevent floras from hitting themselves
- until a better scheme can be thought of. [Skotlex]
- * Reorganized battle_weapon_attack to allow counter/root from blocking
- autotriggered skills (like TripleBlows/Sacrificial Ritual) [Skotlex]
- * Fixed that crash on mob_spawn_guardian. [Skotlex]
- * Added battle option gvg_traps_target_all, defaults to yes for now. [Skotlex]
- * Added Zoc's fix to @autotrade (which made traders unable to login again..
- ever) [Skotlex]
- * Massive Guardian update. [Skotlex]
- - Rewrote the guardian stat-passing system to minimize the need of db
- lookups. Should greatly reduce the heavy lagging during WoE.
- - Not properly tested (lack of resources), update at your own risk AND
- PLEASE report any crashes/problems.
-2005/09/05
- * Fixed Endure. [Skotlex]
- * Fixed Harmonic Lick not adding status change resistant. [Skotlex]
- * Moved ensemble stats calculating from status_change_start to
- skill_unitsetting (performance purposes) [Skotlex]
- * Fixed song/dance effects lasting 30 secs rather than 20. [Skotlex]
- (still somewhat inefficient, needs better handling method)
- * Battle check target fix: Novices/Low levels being unable to target mobs. [Skotlex]
- * Temporarily made traps not target allies on gvg (Still up for dabate) [Skotlex]
- * Battle check target update: Summoned creatures won't be checked versus
- their master, means you should be able to target them as if they were
- normal enemies. [Skotlex]
- * Made Shield Chain long ranged (it has to be affected by pneuma/defender). [Skotlex]
- * Fixed both trader/seller not being saved when using autotrade. [Skotlex]
- * Added debug messages to figure out who is causing the rain of function
- mismatches on deleting skill_timerskill. [Skotlex]
-2005/09/04
- * Fixed Trade Bug (when Trade Window indication was wrong). Thanks to k3dt
- * Now Water Ball isn't affected by RAIN mapflag anymore. Also corrected
- caclulation of number of WB shots (was broken by a typo) [Lupus]
- - Rain has been removed from kRO long ago.
- * Now Safety Wall fails to protect against Acid Terror. [Skotlex]
- * Added battle_config option firewall_hits_on_undead (defaults to 1) [Skotlex]
- The deal is that each time the skill triggers on an undead, this number
- of hits will be dealt instead of just one.
- PROs: With a value of 5 or so, vertical firewall will work completely.
- CONs: A high value means the whole tile can be wasted killing a single mob.
- * Fixed working stealing with NOLOOT mapflag on. Thanks 2Lorky [Lupus]
- * Now Knockback won't work when the target is already dead (prevents
- ghosts) [Skotlex]
- * BSS now targets every player in the area of effect (might be updated to
- include mobs pending on further information) [Skotlex]
- * Acid terror is now considered a ranged attack. [Skotlex]
- * Crash fixes to the npc-whisper system. [Skotlex]
- * Fixed classchange-able Emperium/Guardians/Treasure Boxes, thanks to alsimons [DracoRPG]
- * Fixed songs/dances, updated Hip Shaker [DracoRPG]
- * Fixed some fields in sql-files\main.sql... Who the hell added back `broken`? The field
- `attribute` is the good one! Also changed `fame` type to the same as `zeny` (same max
- value in the source code, so samemax value in the SQL saves !) [DracoRPG
- * battle_check_target update: Fixed BCT_NOENEMY checks. [Skotlex]
- * Moved Mental Sensing bonus from pc_gainexp to mob_damage, it is now a
- status effect which the mob itself needs to be inflicted with to take
- effect (and everyone involved in killing it will benefit) [Skotlex]
- * Pets now won't move while casting (unless their master is like a screen
- away or so) [Skotlex]
-2005/09/03
- * Fixed speed calc for pushcart/stalk/dancing/singing. [Skotlex]
- * Some crash-fixes introduced by the rewritten status system. [Skotlex]
- * Adjusted the default gvg penalty values, added gvg_flee_penalty. [Skotlex]
- * Fixed skill_blown causing a dangling pointer in the map data. [Skotlex]
- (I believe this is the actual cause of all the crashes as of late)
- * Fixed @autotrade venders not being saved after they sell an item. [Skotlex]
- Now both characters are saved to prevent exploits, too.
- * Fix to mob_setdelayspawn, if lucky might help with the crashes as of late. [Skotlex]
- * Added status effect SC_WATK_ELEMENT, converts part of your weapon attacks
- into a different element. Used in magnum break to give 10% fire damage
- bonus to your attacks. [Skotlex]
- * Made firewall hits not have any "damage delay", it merely knockbacks. [Skotlex]
- * battle_check_target update: added novice/low-level pk prevention on
- pk_mode [Skotlex]
- * testing new SVN location [MouseJstr]
-2005/09/01
- * Entirely rewrote status_calc_pc and status_get_[stat] functions to have a clear code.
- They all use shared status_calc_[stat] functions to handle SC effects, this will avoid
- to have 2 almost identical codes in different places for those effects [DracoRPG]
- --> It compiles, it runs, it seems to work but I couldn't perform any extended testing
- as always, feel free to report bugs ;)
- * Added battle_option "slaves_inherit_speed" to decide whether slaves have
- or not the same walk speed as their master. Defaults to yes. [Skotlex]
- * Removed val4 from song/dances so that they won't be as bugged anymore.
- (still pending on Draco's status update, but at least now stuff like Poem
- of Bragi shouldn't cause insta-cast) [Skotlex]
- * Changed the way song/dance status effects last. The first time you step
- in a tile the status starts for 30 secs, not refreshed until it times out.
- Not the way it really should be, but it's much better for performance
- issues.
- * Fixed summoned slaves having the same walk-speed as their master (fixes
- metamorphosis-hatched mobs from having an egg's speed). [Skotlex]
- * Added fix_timer_heap, should correct timer problems when the tick
- overflows. Does it works? We'll find out in 48 days when the next
- loop occurs. [Skotlex]
- * Another update to battle_check_target [Skotlex]
- (Should fix slave-skills hitting a slave's master)
- * Corrected magic_damage_return code being double-invoked. [Skotlex]
- * clif_GM_kick will now invoke map_quit if the player doesn't has a session [Skotlex]
- (this should fix @kick and other such commands on autotrade chars and the
- like)
- * Fixed pc_damage/mob_damage returning 0 instead of damage dealt (which in
- turn made all attack/skills not trigger their additional effects) [Skotlex]
- * Updated Assumptio to target everyone instead of "not enemies" [Skotlex]
- * Fixed a fatal dangling pointer in the mob_setdelayspawn when handling
- mobs that don't respawn. [Skotlex]
- * Updated WE_CALLPARENT to not check for range (as it should?) [Skotlex]
- * Added flag accreg_dirty to identify when account variables have not been
- saved yet, it'll retry then on every call to save the character (it will
- prevent account variables from being lost when the char/map connection is
- not established)
-2005/08/31
- * Updated @npctalk to work as it should [Skotlex]
- - Usage @npctalk NPC Name, Your Message Goes here
- * Fixed Wind Walk's flee/speed bonus (as pointed out by Viccious Pucca). [Skotlex]
- * Fixed a crash in pc.c when the last save point was not found (thanks to
- Foruken) [Skotlex]
- * Rewrote map_foreachinpath, it should work mostly right now. [Skotlex]
- (the path 'stops' at the destination point rather than keep going
- forward, but it can probably be fixed later)
- * Moved battle_config spawndelay adjustments from mob.c (calculating it
- each time they were killed) to npc.c (calculate it once during parsing).
- [Skotlex]
- * Synchronized additional status effects with the delayed damage [Skotlex]
- (this should fix eg: enemies freezing when you start the attack
- animation, and then breaking the ice when your attack animation finishes
- and the damage shows up)
- * Moved knockback to effect after damage is applied. [Skotlex]
- * Fixed the Wedding Skills not displaying the actual amount healed. [Skotlex]
- * Moved skill induced status effects to take effect before knock back. [Skotlex]
- * Refixed "Don't Forget Me" [Skotlex]
- * Changed 'pet_hair_style''s description and default value to 100 [Skotlex]
- (100 is the value being reported to work with current clients)
- * Fixed Freeze 'counter' not resetting when killed. [Skotlex]
- * Fixed Endure adding to mdef2 instead of mdef. [Skotlex]
-08/30
- * Fixed Breaker's magical part of the damage having element -1 [Skotlex]
- (now it takes neutral element, because I don't think the magical part of
- an attack can get the weapon's property)
- * Fixed Magic Crasher having the min/max values inverted. [Skotlex]
- * Updated "Don't Forget Me"/"Slow Grace" to last 20 secs after you step out
- of the dance-zone. [Skotlex]
- * Changed the default of defunit_noenemy to no, and added comments
- explaining what it REALLY does. [Skotlex]
- * Fixed perfect tableture's lucky dodge bonus. [Skotlex]
- * Updated slave ai code to let slaves wander freely on the screen (will
- wander as far as battle_config.view_area lets them) [Skotlex]
- * Splitted Char-sql status saving into status/status2, the later is for
- values that will seldomly change. [Skotlex]
- * Updated servers so that when the player changes dye or hair color, the
- char-server is notified and the guild_member data is updated on all map
- servers. [Skotlex]
- * Updated servers so they also report on sex change. [Skotlex]
- (altough this one I have no tested yet)
- * Changed bGetZenyNum/bAddZenyNum to be a bonus2 type [Skotlex]
- (eg: bonus2 bGetZenyNum 10, 30 <- Receive 10z per mob level on 30% of
- your weapon-based kills)
- * Added script function groupranditem(i), returns a random item_id from the
- specified item-group given. [Skotlex]
- * Changed bLongAtkRate bonus to be more card-like (works just like
- bLongAtkDef, except it's for attack) [Skotlex]
- * [SQL] Added Storage Items sorting by nameid. On loading. [Lupus]
- * Added GetItemInfo(Item ID,n) script function. Returns Buy/Sell Price, Def, etc [Lupus]
- added sample/getiteminfo.txt Tested, fully working!
- * Added ID#2258 Spiky Band(Sharp Headgear) to allowed equipment of Star Gladiator [Lupus]
- * According to the 23 Aug Patch added complete equipment check for 3 new classes. [Lupus]
- Now they can't equip forbidden items 8)
-08/29
- * Added battle config option pet_hair_style and defaulted it to 24 [Skotlex]
- According to information relayed by End of Exam, this should fix the new
- clients showing the sword cursor for pets (older clients will be the ones
- screwed instead, in said case you'll want to change pet_hair_style to 20)
- * Updated battle_check_target to take into consideration the special states
- killer/killable. [Skotlex]
- * Corrected the Fury Guardian Angel not giving +50 critical. [Skotlex]
- * Made mob_walktoxy fail when the mob is dead. [Skotlex]
- (may fix the phantom mob issue?)
- * Updated spawn parsing to identify small/big mobs. [Skotlex]
- Use the "event" field (last column, the one after the two spawn delays)
- to identify the mob's size: 2: small mob, 4: big mob. 1-2 is not used
- because a hella lot of plants/mobs already use 1 in it (even though eA
- completely ignores this value)
- * Inverted the meaning of mapflags pvp_noparty/pvp_noguild [Skotlex]
- When the flag is set, then you should NOT be able to hit your
- party/guild-mates on pvp grounds.
-08/28
- * Fixed demonstration/Bomb stacking. [Skotlex]
- * Fixed damage versus plants in BF_WEAPON attacks. [Skotlex]
- * Fixed the whole sqrtl mess. Thanks to Shinomori for clearing things up.
- [Skotlex]
- * Added new maps, thanks to Poki#3 [DracoRPG]
- * Switched SCs between two taekwon kicks to get the proper icon ^^ [DracoRPG]
- * Added the falling animation to TK_HIGHJUMP, but now the client doesn't refresh the
- position u_u [DracoRPG]
- * Reverted default option to allow anyone to plagiarize advanced skill (vicious or
- someone else - I can't remember xD - told me it was like this on kRO, but not yet on
- iRO) [DracoRPG]
-08/27
- * Fixed the cast-bar from autocounter not disappearing after triggering the
- skill. [Skotlex]
- * Updated battle_check_target to make marine spheres universal enemies, so
- anyone can attack them. [Skotlex]
- * Cleaned up item_db.txt (format, commas, etc), added status bonuses to the
- cooked foods. [Skotlex]
- * Updated sql-files/item_db.sql to match with the current contents of
- item_db.txt [Skotlex]
- (sql users just feed it to mysql, it will drop and recreate the table)
- * Fixed IDs for Taekwon-class : 4047 is Star Gladiator, 4048 is a second Star Gladiator
- (probably used for a "Superman-mode" flying sprite) and 4049 is Soul Linker [DracoRPG]
-08/26
- * Fixed being able to move during Encore skills when you did not need a
- partner. [Skotlex]
- * Fixed @reloadmobdb not properly erasing mob skills before re-reading. [Skotlex]
- * Updated/fixed effect of most dances & songs according to kRO's website and ragnainfo's
- very good Bard/Dancer Guide [DracoRPG]
- * Fixed Raging Trifecta Blows missing Emperiums, thanks to happylight [DracoRPG]
- * Changed the way short|long|magic_damage_return work : previously they gave 100% chance
- to return x% damage, now it is x% chance to return 100% damage (Maya and High Orc Cards
- should behave like this, I'm not sure for Orc Lord Card but it seems logical to be the
- same system...) [DracoRPG]
- * Fixed bonuses from Wind Walker, thanks to vicious_puca [DracoRPG]
- * I also reorganized the hit/flee calc in status_calc_pc to consider first absolute values,
- and then apply relative (percentage) modificators.. if you make a mix of both, it'll be
- completely fucked up, and be sure it won't be like on officials (although my system maybe
- isn't the good one neither...) [DracoRPG]
- * Some rewrites to client version rejecting code [Skotlex]
- Should eliminate lag when players try to log-on with a rejected client,
- however there's the chance they won't be receiving the "your client is
- not latest EXE version" message, and that's why the previous, laggy,
- implementation was used :/
- * Fixed Enchant Deadly Poison lasting forever after killed. [Skotlex]
- * Fixed the duration argument of @summon [Skotlex]
- * Now @summoned mobs will follow their master everywhere and that includes
- warping from map to map. [Skotlex]
- (why? Because I think that's neat, and will probably be needed anyway
- once Homonculus get implemented)
-08/25
- * Cleaned up mob_db.txt and updated sql-files/mob_db.sql [Skotlex]
- Sql users can just feed mysql the .sql file and it will delete and refill
- the table with the most updated db data.
- * Corrections to damage versus plants. [Skotlex]
- MAGIC and MISC attacks do 1 damage per hit.
- WEAPON attacks do 1 damage, display miss if they hit multiple times.
- * Instead of knocking back (which wasn't even working), characters that are
- stepping on an icewall will cause that tile of the icewall to 'die' [Skotlex]
- * Final damage equation update to Acid Demonstration. [Skotlex]
- (it still won't ignore the raydric card, but why that is official in
- itself is a big mystery)
- * Added status change for temporary boosts of stats, plus added the
- following constants (db/const.txt): [Skotlex]
- - SC_IncAll, SC_IncStr, SC_IncAgi, SC_IncVit, SC_IncInt, SC_IncDex,
- SC_IncDex
- - It hasn't been tested yet what kind of visual these will cause
- client-side.
- (Now someone go and write down the script for the food items xP)
- * Updated @summon to take a second parameter: duration. [Skotlex]
- eg: "@summon lunatic 40" will summon a lunatic that lasts 40 mins or
- until killed. Max duration is one hour.
- * Updated Some Mobs Spawns, Drops check npc\changelog.txt [Lupus]
- * Some toning down of the damage of Acid Demonstration (should /100, not
- /10) [Skotlex]
- * Likely fixed Blitzbeat from hitting neutral chars. [Skotlex]
- * Updated Acid Demonstration to be a MISC skill who's damage is (base_Atk *
- caster's int * target's vit /10) (half that on players). It's much more
- closer to official values than the previous ones... [Skotlex]
- * Corrected Pressure sapping SP even if you hide from it. [Skotlex]
- (isn't Pressure a holy attack from the grand god himself? How can a thief
- HIDE from his eyes? o.O)
- * Updated Acid Demonstration damage formula. It's still wrong, but at least
- it considers int and vit now. [Skotlex]
- Current dummy formula: (100 + caster's int + target's vit)*(number of hits)%
-08/24
- * Updated pet skills database. [Skotlex]
- * Some corrections to socket.c, should stop all the recent crashing... [Skotlex]
- * Added a case to knockback enemies if they somehow end up stepping into an
- ice wall tile [Skotlex]
- * Added checks to prevent walking, attacking or using skills while the
- storage is open. [Skotlex]
- * Added Lupus's mob skills for Einbroch mobs [Skotlex]
- * (almost) rewrite of the storage system. [Skotlex]
- Storages are marked dirty after an item is stored/retrieved from them and
- will not be marked clean until the char-server acks the save request.
- Upon map-server reconnection to the char, all storages that are currently
- closed and dirty are saved.
- * Synched chrif_save with the storage save functions when either one is
- open to further prevent exploits. [Skotlex]
- * Updated the mob_skill_db with Komurka's translation (Aegis -> eA) [Skotlex]
- The max permilliage (rate) is now 10000 = 100%
- * Various mob related summon/metamorphosis changes: [Skotlex]
- - Summon Mob/Slave's level is the total number of mobs to summon, when the
- skill definition offers multiple mobs, they are spawned in order
- (round-robin scheme).
- - Metamorphosis/Transformation level is the total number of mobs to
- multiply into. Uses the same criteria as summon mob and the original mob
- is deleted/killed (no loot drop). If the level is 1, then the mob transforms
- into one of the defined classes randomly.
- - Note that beyond code-proofreading and making sure it compiles, this
- has not been tested yet!
- * Added the bonus provided by the /doridori command to TK_HPTIME and TK_SPTIME. [Dralnu]
- Thanks to Duduc.
- * Updated battle_check_target to check using the master instead of the
- slaves (applies for mobs/pets) [Skotlex]
- - Should prevent slaves from attacking their master
- * Implemented TK_HPTIME and TK_SPTIME exept the bonus provided by /doridori [Dralnu]
- * Implemented delayed character logout [Skotlex]
- How it works: When a player quits the server when they shouldn't (force
- disconnect before the 10 secs, or leave when the char server is not
- connected) his session is closed, but the player is left in-game just
- like in @autotrade, and a timer is added. Every 10 secs it'll check if
- the char server is online, and then save the character and delete it from
- the map server. NOT TESTED YET, so report any anomalies.
- * Fixed Shield Chain's skill-type (it's short ranged, not long?) [Skotlex]
- * Fixed Decrease Agility's equation. [Skotlex]
- * Fixed root'ed monks not being able to use root skills. [Skotlex]
- * Added inter-server option "kick_on_disconnect" (defaults to yes) [Skotlex]
- - The only people who may want to change it are overcrowded servers where
- the char/map server link breaks due to overload and then everyone is
- kicked out until said connection is reestablished.
- - Of course, use at your own discretion until all possible exploits
- caused by this are resolved.
-08/23
- * Fixed provoke's success chance. [Skotlex]
- * Battle_check_target update, should fix party/guild skills failing when
- checking against yourself. [Skotlex]
- * Updated map and char servers to allow them to reconnect without having to
- kick out all players. [Skotlex]
- - This is still experimental and what possible exploits may come from it
- are yet unknown (however, considering that the reconnection should take
- place in a few seconds after the disconnection...)
- - Note that storage contents and player contents are all kept in the map
- server's memory, unsaved data will be lost if player forces a
- disconnection, storage changes will also be lost if they are open/closed
- during said disconnection (and NOT reclosed after the connection is
- restablished)
- - These and more stuff might come up with time. Report away!
- * Updated Gospel to not buff up Guildmates, only Party members. [Skotlex]
- * Fixed @autotrade [Skotlex]
- (tested on a limited scenario with few characters, needs more testing.
- Test and report!)
- * Implemented TK_STORMKICK, TK_DOWNKICK, TK_COUNTER and TK_TURNKICK. [Dralnu]
- Note that at the moment if you use theses skills even if the corresponding
- SC is inactive, it will use SP and will stop you if you are attacking.
- Note too that because we don't know how it should work exactly, when a SC such as
- SC_STORMKICK will be launched, it will notice you by a little message over your
- head : Hit now !!. Finaly, TK_TURNKICK will not yet have the pushback effect.
- * Fixed everyone having 20 flee... I hope. [Skotlex]
- * Some corrections and updates to mob skill Metamorphosis [Skotlex]
- (don't know if it'll work now, but the way it was before definitely was
- not working)
- * Probably fixed infinite endure wearing out when being hit. [Skotlex]
- * Updated gvg range penalties to be as in official servers. [Skotlex]
- - Skills (weapon/magic/misc) get a 40% penalty
- - Ranged normal attacks get a 20% penalty, melee receives no penatly.
- (battle flag gvg_weapon_attack_rate added to complete configuration)
- * Added the -20 flee penalty on GVG grounds. [Skotlex]
- * Fixed Enchant Deadly Poison's Damage (it was 500% - 5x at level 5, not 400%
- - 4x) [Skotlex]
- * Fixed Soul Breaker's magical part of the attack taking element -1 rather
- than 0. [Skotlex]
- * Login sql server will now only clear sstatus data of connected servers
- rather than clean the table. [Skotlex]
- * Added some checks to prevent infinite looping in the char servers. [Skotlex]
- * Some updates to the way disconnections are handled in socket.c [Skotlex]
-08/22
- * Fixed typo in skill.c causing errors [Codemaster]
- * Added Irmin's recommendation to allow item names in getitenname() [Skotlex]
- (kinda odd to use an item's name to get the item's name, isn't it?)
- * Fixed Meteor Assault not displaying damage. [Skotlex]
- * Fixed WE_CALLPARENT crashing the map server when either parent is
- offline. [Skotlex]
- * Added TK_HIGHJUMP. Note : To be able to see properly the full jump animation,
- casting time will not depend on DEX. [Dralnu]
- * Somes fixes in skill_db.txt and skill_cast_db.txt about Taekwon's skills. [Dralnu]
- * Fully implemented the STR bonus part of TK_RUN [DracoRPG]
- * Added activation/unactivation of TK stances, but not their specific effects [DracoRPG]
- * Reverted magnum break, removed the Flame Launcher status change until
- actual bonus can be implemented. [Skotlex]
- * Skills update (mostly thanks to Vicious Pucca): [Skotlex]
- - Success chance and stats of Provoke, mental Break, Signum Crusis, Soul Burn
- - Decrease Agility duration halved for players.
- - Magnum Break's final damage is splitted 80% weapon's element, 20% fire
- element. No longer causes weapon endow.
- - Bash's hit bonus (+5 per lv now)
- * Fixed skill_db, Added perfect hit to TK_COUNTER [Dralnu]
- * Changed skill_tree and job_db1 the same way I changed job_db2, it was necessary for
- clear implementation of Taekwon (which has a very unusual ID for a 1st job) and renders
- the code less messy (at least it's my humble opinion ^^) although it could be slightly,
- but really slightly, more RAM-consuming [DracoRPG]
- * Fixed classchange not clearing on unequip, fixed the mob's max hp not being updated on
- class change [Skotlex]
- * Basic implementation of Taekwon's kicks. [Dralnu]
- * Likely fixed SP consumption of Warp Portal. [Skotlex]
- * Changed some default values in battle config to get the 'official gaming experience' by
- default [DracoRPG]
- - Noone can plagiarize advanced skills (from ragnainfo)
- - No rare drop announce
- - Riding a Peco does not increase one's size
- * Allowed Dispell to dispell songs/dances/ensembles [DracoRPG]
- * Updated SC IDs to get correct client-side status icons (used 0808 Sakexe) [DracoRPG]
- * Prevented from casting Ice Wall under self, independantly of UF_NOFOOTSET [DracoRPG]
- * Removed /omg from equipment breaking and added it to Acid Terror only [DracoRPG]
- * You can now change to Taekwon, but lots of things are still to do [DracoRPG]
- * Began implementation of Taekwon skills [DracoRPG]
-08/21
- * Changed how triple blows/sacrificial ritual triggers to enable
- plagiarizing them. [Skotlex]
- * Stolen items will be (un)identified using the same criteria normal drops
- use. [Skotlex]
- * Updated yet again battle_check_target. Guardians should stop attacking
- out of woe now and alchemist should be able to hit their mines. [Skotlex]
- * Fixed the map server going in an infinite loop if the connection breaks
- while parsing packets from the char server. [Skotlex]
- * Mostly rewrote Battle Chant, should be almost like the official one now... [DracoRPG]
- * Added enums for skill units, makes the code really clearer (check skill.h) [DracoRPG]
- * Merged battle_calc_weapon_attack_sub and battle_calc_weapon_attack [DracoRPG]
- * Fixed Acid Terror WEP breaking rate thx2 ShAPoNe [Lupus]
-08/19
- * More updates to battle_check_target, now you can't target any
- ground-based skills that don't have a physical manifestation (ie:
- Everything except traps and icewall) [Skotlex]
- * Fixed "for sure" battle_check_target when it comes to neutral targets. [Skotlex]
- * Removed pc_emotion, merged it with emotion. [Skotlex]
- Usage: emotion emotion_number <, target>
- - emotion number is the emotion's number (use e_* constants)
- - target is 1-> player, 0-> npc. If ommited defaults to zero.
- * Updated code so that when a guild master joins the game, their guild
- skills are automatically blocked for 5 minutes. [Skotlex]
- (prevents avoiding the skill-lock by relogging)
- * Another update to battle_check_target, this time neutral targets should
- work correctly (non allied/partied people who should be affected) [Skotlex]
- * More fixes to battle_check_target, skills should not hit yourself on
- pvp/gvg now. [Skotlex]
- * Updated classchange to not change the class of bosses. [Skotlex]
- * Optimization/Fixes to battle_check_target, GrandCross should work now. [Skotlex]
- * Reverted Lupus's change on guild auras' max lv... Please double check your sources and
- base yourself on kRO official website as much as possible, thanks. Link to kRO website:
- http://guide.ragnarok.co.kr/GuildSystem.asp#ggg03 [DracoRPG]
- * Fixed passive mobs incorrectly setting the attacked_id when hit by pets. [Skotlex]
- * Rewrote battle_check_target. [Skotlex]
- - Positive side-effects: offensive stuff won't hit your guildmates on gvg
- (such as traps)
- - Negative side-effects: Unknown, but there's bound to be some because of
- the big change. I tested it with traps, spells, pets, passive and
- aggressive mobs, but it's probable there's stuff I am still missing.
- * Updated mob spawns of Glast Heim (gl_sew3 and gk_knt2) [Skotlex]
- * Updated classchange code (Azoth, Heiroloist) to get random classes the
- same way a dead branch does. Cannot convert to bosses. [Skotlex]
- * Script/Npc/Item updates. [Skotlex]
- * Bonus b(HP/SP)GainValue will always be considered 100% (the first
- parameter) this is done to avoid exploits when combining it with
- b(HP/SP)DrainValue (eg: Immaterial Sword) [Skotlex]
- * Fixed max level of some guilds skills 5->1 [Lupus]
- according to http://eathena.deltaanime.net/board/index.php?showtopic=757
- * New items drops, new shop [Lupus]
-08/18
- * Changed the way 'pl' works (in skill_db) : now 0 for 'weapon' attack skills means the
- attack is always neutral. To make so that the skill takes the weapon's element, use -1
- instead: this removes the need of hardcoded ele_flag. [DracoRPG]
- * Fixed damage bonus from Sage's elemental flooring skills by moving the checks which were
- totally wrong placed... Thanks to Antoine for pointing out they were broken. [DracoRPG]
- * At the same time I had to change battle_calc_magic_attack quite alot. Maybe it won't work
- perfectly, but at least it'll compile. Also added (forgotten?) support for 'skillatk'
- bonus with magic skills. [DracoRPG]
- * Rewritten most of Gloria Domini to make it be a BF_MISC skill that can hit and damage
- Emperium and plants (yes it does), igonres WoE damage adjustments and other changes I
- don't remember ^^ [DracoRPG]
- * Modified mob_skilluse so that mobs NEVER use offensive heal. They'll now
- /swt if they try it (and the skill fails) [Skotlex]
- (there's still nothing that can be done about offensive Sanctuary)
-08/17
- * Added script command pc_emotion, works just like emotion, except the
- emotion is displayed on the character that's running the script. [Skotlex]
- * Fixed the vicious compile error I added with SC_SPEEDUP1 [DracoRPG]
- * Implemented Strengthen Guardians with a custom +10% ATK & ASPD / lv value [DracoRPG]
- NOTE : It compiles, but I couldn't test the effect since guilds seem completely
- broken on my test server...
- * Moved Weaponry Research hidden bonus a bit to get the exact effect [DracoRPG]
- * Implemented SC_SPEEDUP1 for Lightning Box effect [DracoRPG]
- * Entirely replaced SC_DIVINA with SC_SILENCE (the 1st was an alias of the 2nd) [DracoRPG]
- * Fixed the map-server disconnecting the char-server when kicking out all
- clients. (Thanks to End of Exam for pointing it out) [Skotlex]
- * Cleaned up error messages related to packet parsing in the char servers. [Skotlex]
-08/16
- * Likely fixed the char-server crashes on mapif_send* functions. [Skotlex]
- * Fixed auto-counter's display (it was working correctly, however the skill
- was not being shown properly on the client) [Skotlex]
- * Fixed Tomahawk not being considered a ranged attack. [Skotlex]
-08/15
- * Added a few bug fix recommendations [Codemaster]
- * Fixed a few problems with Wedding Skills [Codemaster]
- * Fixed a bug with old clients connecting and socket reuse which would kick
- all new connections on the same socket before even checking the packet version. [Skotlex]
- * Fixed the tabs in the ayothaya mobs :X [Skotlex]
- * Likely fixed the setsocketops error that was showing on every connection. [Skotlex]
- * Updated vending code so that items that can't be traded can't be vended
- either. [Skotlex]
- * Messed with socket.c, changing lots of stuff around using some earlier
- Freya SVN version as base, connection issues might hopefully get better. [Skotlex]
- (NOTE: I have yet to try to compile this under Windows/Cygwin, so report
- if it breaks)
- * Updated Magnum Break: Target selectable, damage is (100+20*level)%, hit
- bonus +10 per level. 5x5 splash area. [Skotlex]
- * Likely fixed the max hp display of tiny/big mobs. [Skotlex]
- * Updated Cloaking. It'll fail if the level is less than 3 and there's not
- a wall nearby. [Skotlex]
- If cloak_check is set to ignore walls, the wall-type speed will be used all
- the time.
- (I don't see what all the fuss is about as a Lv2 Cloak is just as good as
- Hide, and you can't even use GrimTooth from it. And since lv2 won't let
- you move anyway, why would anyone use Clock lv2 over Hiding?)
- * Updated Assumptio. It will affect anyone in a 3x3 area around the target. [Skotlex]
- (where anyone is anyone the same way Benedictio chooses it's target)
- * Updated the delay that a mob can't move after attacking to be 1/4th of
- the delay between attacks. [Skotlex]
- eg: The mob attacks once every 1000ms, that means it can start chasing
- you 250ms after an attack.
- * Likely fixed the #fakename crash. [Skotlex]
- * Updated the mob skill use code so that hopefully other players will be
- considered friends when using support skills. [Skotlex]
- NOTE: Not quite tested, use with care.
- * Fixed @monsterbig/@monstersmall [Skotlex]
- Support for said monster in normal spawn scripts is also fixed, however
- the implementation is not stable (currently you add 10K to the ID to make
- it a tiny mob, add 20K to make it a big mob, but those values depend on
- MAX_MOB_DB which can change in the future. :/)
- * When you drink a speed potion, the icon of the previous one will be
- removed (however, all speed potions are still in effect server-side). [Skotlex]
-08/14
- * Likely corrected the error printing in recv_to_fifo (reporting normal
- disconnections when they likely are not). [Skotlex]
- * Fixed the map-server spamming "Client does not has latest EXE message. [Skotlex]
- * Updated char-sql to consider 0 an invalid map-server session number. [Skotlex]
- * Fix in map->char auth request packet where char server spams data search error message, currently in testing. But works none the less. [Kevin]
- * Removed all close()'s in clif.c, made clif_parse the only one who closes
- a socket and deletes the session. [Skotlex]
- * Updated socket.c to be much more verbose about connections and when they
- are ended. [Skotlex]
- (excuse all the extra messages, but they are to help track down the
- current map-freeze bug)
-08/12
- * Updated sql-files: mob_db.sql, item_db,sql, main.sql [Skotlex]
- * Likely fixed mob reloading command. [Skotlex]
- * Added more reports and some fixes/optimizations to socket.c [Skotlex]
- * Added reporting of error when a connection can't be made non-blocking. [Skotlex]
- * Updated Logging Filter: [Lupus]
- - Implemented refine_items_log condition. You may log only certain refine value items.
- - Added 'log_steal' option. It'd log stolen items in the drops log DB
- * Added msg string and announce on stealing of rare items [Lupus]
-08/11
- * Fixed bio-cannibalize's max hp issue. [Skotlex]
- * Pneuma completely blocks Soul Breaker (as the forum consensus says it
- does so) [Skotlex]
- * clif_parse will now print the error message in case close(fd) fails. [Skotlex]
- * Fixed players clicking on players disguised as NPCs trying to execute the
- "npc". [Skotlex]
- * Fixed possible overflows and exploits in log.c, thanks to Irmin [Skotlex]
- * Probably fixed devotion's visual not updating. [Skotlex]
- * Added flag pet_no_gvg, when set to yes/1 the pet is returned to an egg when
- you enter Guild Grounds and you aren't allowed to hatch pets as well. Note
- that it only does the check when the player changes maps (should be safe
- because players are kicked out of castles when WoE starts)
-08/10
- * Fixed PNEUMA blocking magic part of Soul Breaker, instead of physiacal attack one [Lupus]
- * Fixed the Login/Char SQL crashing when determining the max id of empty
- tables. [Skotlex]
- Account and Char creation code tested, it is safe to use now.
- * Removed use of settick_timer (fixes the "can't move!" bug) [Skotlex]
- * Fixed (I think) being able to sit while casting. [Skotlex]
- * Updated Char-SQL server to guarantee that new chars are created with
- char_ids above 150K. [Skotlex]
- (note from last update applies too)
- * Updated Login-SQL server to guarantee that new accounts (_M/_F reg) are
- created with account_ids above 2M. [Skotlex]
- (note it hasn't been tested yet, but I think it should work)
- * Fixed @readmail 0 [Skotlex]
- * Fixed success rates for Dispell and Decrease Agility [Skotlex]
- * Fixed cultivation not being in the list of skills for GMs with
- gm_skill_all [Skotlex]
- * Fixed mob's hp becoming zero after mob_hp_rate adjustments. [Skotlex]
- * Skills update: [Skotlex]
- - Changed concentration from +10% hit per level to +10 hit per level.
- - Base level gives greater stun chance to Attack Weak Point (currently +1%
- every ten levels)
- - Changed Tiger Knuckle Fist to be a combo-only skill.
- - Updated Spell break to damage 2% of target's max hp, heals half that.
- * Small debug change in clif.c which forces a disconnection upon dual-login [Skotlex]
- * Updated char-sql deletion to take into consideration the mysql version [Skotlex]
- It should treat versions 4.1+ differently from the rest, please test and
- report if it is still failing.
- * Removed sql loading of storage every time you open it as it's an open
- exploit on lagging servers. [Skotlex]
- * Removed another "insufficient data" debug line. That should take care of
- incomplete packets spamming the console. [Skotlex]
- * Alright, removed the "insufficient data" debug line as it was just
- causing mass lag. [Skotlex]
-08/09
- * Fixed Magnum Break's damage display. [Skotlex]
- * Finished fixing and testing the sql char deletion update. [Skotlex]
- Deleted characters should now properly leave their party/guild.
- * Throw Stone is now blocked by Kyrie and Pneuma [Skotlex]
- * Fixed "[error] delete_timer error: no such timer -1" (stupid mistake x.x) [Skotlex]
- * Some modifications to char-sql char deletion, so that characters are
- correctly removed from parties and guilds. [Skotlex]
- (Note that this is yet to be tested, so upgrade at your own risk or if
- you want to help file bug reports until I can get to test it on my own
- later today)
- * Likely fixed Endure and the like not being 'disabled' on GvG grounds. [Skotlex]
- * More debug messages to clif.c (these can be ignored on normal situations,
- but might be useful during freezes) [Skotlex]
- * Optimized the packet-version failed rejecting code. [Skotlex]
- * Fixed Freezer Card combo casting Weapon Perfection on the enemy. [Skotlex]
- * Added more information to the map-char connection process, meant to help
- understand what is going on when things 'freeze'. [Skotlex]
-08/08
- * Fixed players not really being disconnected when the char-server is out. [Skotlex]
- * Added check to resend map server connection packets if the connection to
- the char server was established but the initial packets get somehow lost. [Skotlex]
- * Fixed Picky's pet-script being used for all pets... [Skotlex]
- * Fixed an ugly bug that was causing status-changes to crash the map server [Skotlex]
- * Added a timer to the map server. It'll try to reconnect 1 sec after it is
- disconnected from the char server (in addition to the default "try to
- connect every 10 secs" mechanism). [Skotlex]
- * Reverted Safety Wall to last known working state. [Skotlex]
- (from what I read in the code, it should be crash-safe anyway)
- * Mob level up is now capped to max_base_level rather than 99. [Skotlex]
- * Another fix to Safety Wall :X [Skotlex]
- * Fixed Safety Wall (I think). Do test and pray it crashes no more. [Skotlex]
- * Added settick_timer to timer.c, optimizes status retimings for dance
- skills. [Skotlex]
- * Made @autoloot and item_auto_get play along nicely (@autoloot toggles the
- mode, item_auto_get sets the default state of it) [Skotlex]
-
-08/07
- * Corrected the Payon Guild Flags [Codemaster]
- * Lots of debug message cleanup in clif.c which should make more clear the
- why characters are being disconnected. [Skotlex]
- * Added OnAgitInit to the list of npc events executed on connection (it
- will be executed only the first time it connects, thought) [Skotlex]
- * Fixed the exp bonus on pvp maps (it was set to +115%, not +15%) [Skotlex]
- * Updated skill_blown to avoid knocking back plants. [Skotlex]
- * Made the damage delay of the finishing blow the same delay before sending
- a char clear packet, this might fix mob sprites being left there after
- killed. [Skotlex]
- * More fixes to @autotrade
- (You still can't disconnect your autotrader by entering in the
- server again. And an autotrader rises map server usage to 70%+).
- Started adding Freya's anti-bot thing [Lupus]
- * Quick fix meant to prevent crashes when targetting "ghosts" of already
- dead mobs. [Skotlex]
- * Fixed Pneuma and Safety Wall crashing the server. [Skotlex]
- (was caused by yesterday's skill upgrade not being... eh, complete)
-08/06
- * Yet another @autotrade fix by irmin&Ultra. More fixes are coming soon 8)) [Lupus]
- * Pretty big change in the way ground skills are handled, meant to fix
- possible segmentation faults. [Skotlex]
- Report if you notice any ground skill got broken, as pretty much all of
- them have been affected.
- * Removed the data about packet_version 14 in the packet_db [Skotlex]
- This could mean that version 14 never really existed, and all following
- versions need to be shifted up (who decides how to call these versions?
- they certainly don't come coded in the login packet. We should ask
- Sara-chan, the awesome ex-eA dev who pwns us al with her packet finding abilities.).
- Note that no such changes have yet been decided other than removing version 14.
- * Updated Devotion/Sacrifice. AutoGuard and Defender skills are now kept in sync
- between the Crusader and those Devoted. [Skotlex]
- * Added a battle_stopwalking to NPC_STOP effect [DracoRPG]
-08/05
- * A li'l fix of @autotrade. Used some irmin's code and optimized a bit [Lupus]
- * Fixed pc_setcart... [Skotlex]
- * Updated Fireball and Stone Curse data [Skotlex]
- Source used: http://guide.ragnarok.co.kr/jobmagskill.asp
- * Updated map_server sql so that the storage is loaded from sql everytime [Skotlex]
- * Updated the char deletion routine (sql) so that only the correct pets
- will be deleted (those hatched and that are in the char's inventory/cart)
- [Skotlex]
- * Likely fixed the map server spamming the console when clients gets
- rejected due to packet version. [Skotlex]
- * Fixed the make_connection problem (sorry about that) [Skotlex]
- * Updated make_connection (socket.c) so that it actually returns -1 when
- the connection fails. [Skotlex]
- * Fixed change-cart clearing other options. [Skotlex]
- * Fixed @spawn not working with string names. [Skotlex]
- * Fixed songs/dances not being moved when knocked back. [Skotlex]
-08/04
- * Made mobs retaliate against a pet's master when for some reason a pet is
- attacking a passive mob which is not yet attacking back. [Skotlex]
- * Modified the mob_db to make it a dynamic array of mob databases. [Skotlex]
- This allows usage of high mob ids without wasting memory on large gaps of
- unused mob IDS.
- NOTE: Other than loading/unloading the map server, this has not
- been tested, if it crashes DO report right away (preferrably with a
- backtrace)
- * Bumped the MAX MOB ID to 10K [Skotlex]
- * Added 2 new mobs, updated and added some items. Thanks to Landarma [Lupus]
- Also fixed map-serv loading warnings (about wrong mob IDs)
-08/03
- * Removed the clif_waitclose timer message, and placed it instead around
- clif.c on the areas that are actually invoking the waitclose timer. [Skotlex]
- * Changed the "Player not identified with account id" message to be more
- descriptive (however I don't know how much of the player data is available
- when disconnecting this way, so if it crashes DO REPORT it) [Skotlex]
- * Modified @me so that it actually works as expected by IRC junkies. [Skotlex]
- (tested and works correctly)
- * Updated Enchant Deadly Poison: Can't be dispelled, won't end when you are killed. [Skotlex]
- * Fixed draining more HP/SP than you can have [Skotlex]
- * Fixed enchanted peach tree damaging you when attacking the undead [Skotlex]
- * Removed the tick check from the packet_version guessing as it is an
- unsigned int (so every value in said field is valid) [Skotlex]
-08/02
- * The char server now notifies the map server about which is the max
- account/char id available, this is used to help identify packet versions
- more reliably. [Skotlex]
- * Guardians won't level up now with mobs_level_up=1 [Skotlex]
- * Updated Deluge, Volcano, Violent Gale & Land Protector to not require
- gems when recasted, and the previous time remaining will be used instead.
- [Skotlex]
- * Fixed Zeny from mobs. [Skotlex]
- * Changed the visual effect when pets heal status ailments to "Detoxify" [Skotlex]
- * Fixed "bonus2 bSkillAtk" so that it works with up to five skills [Skotlex]
- (previously it only worked for one skill at a time)
- * Fixed Enchant Deadly Poison on normal attacks. [Skotlex]
- * Updated the packet-guessing code, trying to load negative char accounts
- should be fixed now. [Skotlex]
-08/01
- * Updated the login servers so that account registration can be done with
- _m/_f as well as _M/_F [Skotlex]
- * Fixed login sql server not using md5sum on the passwords before creating
- accounts (when md5 passwords are enabled) [Skotlex]
- * Updated Enchant Deadly Poison: Increases Sonic Blow's damage by 4x and
- affects all skills except Breaker/Meteor Assault [Skotlex]
- * Added a check to prevent char-server freezes when receiving unknown
- packets from the map server. [Skotlex]
- * Fixed some problems with the clif optimizations from earlier today (wrong
- animations being displayed for normal attacks/picking items) [Skotlex]
- * Rewrote Ensemble skill implementation to be more efficient and less
- error-prone [Skotlex]
- (say, when you do an ensemble skill, your partner has to be
- charged SP too? That is not the current case)
- * Dance/Song checks so that the ground effect is more tightly coupled with
- the status effect (if the dance's effect is cancelled for whatever reason,
- the ground skill WILL be removed) [Skotlex]
- * Fixed stat reset for Advanced Classes [Skotlex]
- * Updated Lord Knight's Concentration (damage, defense, endure effect) [Skotlex]
- * Likely fixed famous alchemist potion usage. [Skotlex]
- * Small optimization to the packet version guessing code. [Skotlex]
- * Added Warpparty and Warpguild script commands *requested* [Fredzilla]
- * Fixed the exp exploit bug dealing with expaddrace [Skotlex]
- * Added missing CharCommands logs (together with ATCommands) [Lupus]
- TODO: '/' commands 8)
- * Added mod for npc whisper system(lordalpha)[massdriller]
- * Added lordalfa's str1 and str2 compare and check commands [massdriller]
-07/31
- * Fixed (I think) the char sql server freezing when the map server sends it
- a GM whisper request. [Skotlex]
- * Rewrote the way that experience is given, this should prevent exp overflows
- even in even-share parties. [Skotlex]
- * Changed how the exp_calc_type works, take note that there's no longer a "2"
- value for it! [Skotlex]
- * Updated throw stone: Damage is modified by target's cards, 3% chance to
- cause Stun/Blind. [Skotlex]
- * Added rods/books to the list of items that can't break. [Skotlex]
- * Fixed map server rejecting clients of packet versions 9 and below
- (regardless of packet_ver_flag) [Skotlex]
- * Updated Steel Body: Consumes 50% sp and is not dispellable. [Skotlex]
- * Updated sprinkle sand's damage to 130%, Throw Stone's range and delay [Skotlex]
- * Fixed increased dodge's flee bonus and speed bonus (to Assassins). [Skotlex]
- * Simplified clif.c by removing all code related to hard-coded packet
- information (the packet_db.txt is an essential file now) [Skotlex]
- * Small fixes to provide clarity to # commands
- (So many people ask "why doesnt @char????? work, like OMGWTFBBQ") [Fredzilla]
- * Fixed a stupid typo in a drop rate display [Lupus]
-07/30
- * Some more fixes to the job calculating equations. This one should fix item
- usage for mounted classes and hopefully be the last fix needed regarding
- the job system upgrade. [Skotlex]
- * Corrected the parsing/reading of the skill tree. This fixes the Priest/Monk
- skills appearing in the skill trees of Paladings/Crusaders. [Skotlex]
- * Another fix about advanced/baby mounted characters not having skills. [Skotlex]
- * Fixed character's class not getting updated when mounting/dismounting peco. [Skotlex]
- * Fixed the default packet version checking in the guessing version code.
- as pointed out by End of Exam. [Skotlex]
- * Optimized the code that determines what packet version to use by default
- when you specify "packet_db_ver: default" [Skotlex]
- * Fixed job changing to high/baby classes [Skotlex]
-07/29
- * Moved messages "One Castle", "Two Castles", etc into msg_athena.conf [Lupus]
- * Fixed wrong msg_athena.conf messages in the trade hack spoof code [Lupus]
- * Added a Rare Item announce string into msg_athena.conf [Lupus]
- * Fixed compilation of the TXT server. [Skotlex]
- * Fixed song/dances not clearing when you run out of SP [Skotlex]
- * Fixed #fakename [Skotlex]
- * Optimized Apple of Idun's implementation [Skotlex]
- * Updated pc_calc_base_job and related functions and applied them around
- the map server. This should fix all item related problems with Super Babies
- and alike. [Skotlex]
- * Simplified/optimized the code that mounts/dismounts from Pecos. [Skotlex]
- * Changed Create Deadly Poison to not use the item producing interface (works simplier,
- like Aqua Benedicta) and added a separate config option to choose whether the maker's
- name is written on the Poison Bottle [DracoRPG]
- * Changed NPC_STOP to immobilize the target during 2 seconds (from ragnainfo) [DracoRPG]
- * Added "cartboost" state to skill_require_db (used for Cart Termination) [DracoRPG]
- * Rewrote Soul Destroyer's damage dealing and displaying code, now everything is done at
- once: no more people killed without damage displayed [DracoRPG]
- * Readded Assassin Cross not affecting bows [Skotlex]
- * Fixed Hip-Shaker (not tested, but I am assuming it works now) [Skotlex]
- * Fixed Brandish spear's damage [Skotlex]
- * Removed the after-cast delay of Recall Partner [Skotlex]
- * Added optional announce of rare drops. When a SomePlayer kills a monster [Lupus]
- with a rare drop then everyone gets announce: 'SomePlayer' won Pupa's Pupa Card (chance 0.01%)
-07/28
- * Fixed the Server Whisper to GMs in the char-sql server [Skotlex]
- (when an exploit that should be notified to GMs is triggered, the map
- server would just hang instead...)
- * Some code reorganization around the name-spoof exploit protection code. [Skotlex]
- * Fixed not being able to do Extremity Fist after Glacier Fist/Tiger
- Knuckle Fist [Skotlex]
- * Likely fixed the Famous Alchemist potions not having that 50% boost. [Skotlex]
- * Updated the Wedding Skills (they work with 10% HP/SP and heal 10% of
- their target's, summoning has a cast time of 20s) [Skotlex]
- * Reverted AssassinCross's song behaviour. [Skotlex]
- * Odd bug wanting all Account and Char IDs to end with 0?! [Codemaster]
- Note: Not all acc or char ids end with 0...this gave alot of problems with client version 16
- * Fixed that compiling issue with buildin_getequippercentrefinery [Skotlex]
- * Updated Bard's AssasinCross (Impressing Riff) to not affect Bows (is this
- how it really is?) [Skotlex]
- * Massive skills update (from now updated kRO website) [DracoRPG]
- - Weapon forging, ore/metals refining, potion making : tried to correct rates ^^
- - Weaponry Research : does NOT increase NPC equipment upgrading chance
- - Skin Tempering : (4*skilllv)% fire resistance and (1*skilllv)% neutral resistance
- - Hilt Binding : the original 'undropable weapon' part is dead
- - Meteor Storm : (3*skilllv)% stun chance
- - Lord of Vermilion : (4*skilllv)% blind chance
- - Sandman : (40+10*skilllv)% sleep chance
- - Ankle Snare : minimum trap time changed to (3+0.03*skill_lv) seconds
- Tons of other skills could and should be reviewed the same way ! ^^
- * Fixed massdriller's fixes ^_^ [Kevin]
- * Some fixes to Whisper system. [massdriller]
-07/27
- * Fixed the fame list packet mismatch bug. [Skotlex]
- * Even more cleanups to socket.c and chrif.c to prevent even handling
- Session #0 [Skotlex]
- * Some more cleanups to chrif.c (the interface to the char server)'s code. [Skotlex]
- * Appied End of Exam's socket/connection related fixes/suggestions. [Skotlex]
- * Fixed a Segmentation Fault with friends list loading. [Kevin]
- * Fixed the npc whisper system. [Kevin]
- * Fixed most of the matrix bug, note to devs: Don't use tmp_output anymore! [Kevin]
- * Fixed a small compile warning with previous fix. [Kevin]
- * Added ATCommand @AutoTrade. You open a shop, setup your goods. Then use @AUTOTRADE.
- Your will be closed, but your merchant would remain in the game. So you can vending
- without your client ON. (originally by Fantik, changed by Lupus)
- * Added ATCommand @ChangeGM. Your Guild Master can set another GM of the guild.
- Note: It works, but have to be optimized, WIP. (originally by Fantik, changed by Lupus)
- * Added lordalfa's npc whisper system [massdriller]
- * added lordalfa's fix/enhancement for Execute Scripts::labels [massdriller]
-07/26
- * Updated the packet-version guessing code, hopefully it does a better job now [Skotlex]
- * Fixed the mob bug where they "stick to you" and won't let you escape [Skotlex]
- * Reverted mob skill usage rates. A rate of 1000 (in mob_skill_db.txt) IS 100% usage. [Skotlex]
- * Corrected Gospel not dissipating when you die. [Skotlex]
- * Fixed Providence/Resistant soul so it can't be casted on yourself-other crusaders [Skotlex]
- * Updated Quagmire to affect everyone in GVG maps. [Skotlex]
- * Small fix to the packet_version identification [Skotlex]
- A more complete testing/verification code comes later...
- * Likely fixed the txt->sql converter. [Skotlex]
- * Corrected some refine success rates. [Skotlex]
- * Modified the packet client version guessing code (perhaps it more
- accurately guesses the version now?) [Skotlex]
- * Fixed reading of 'repairitem' packet in packet_db -> fixes Weapon Repair [DracoRPG]
- * Rewrote Weapon Repair to allow use on other players [DracoRPG]
- * Moved pc_item_repair, pc_item_refine and pc_item_identify to skill.c [DracoRPG]
-07/24
- * Enchant Deadly Potion now does count card modifiers. [Skotlex]
- * Fixed elemental modifiers not applying to skills. [Skotlex]
- * Fixed mob_ghostring_fix config. [Skotlex]
- * Fixed firewall stun-locking enemies that are not pushed back. [Skotlex]
- * Added some checks into MONSTER spawn command (reports wrong number, ID, delays, etc.) [Lupus]
- - somehow it doesn't report about wrong map names yet
- * Added check for missing TAB characters into script parser [Lupus]
-07/23
- * Fixed friend-saving on the new charsave sql method. [Skotlex]
- * Corrected the ghostfix description in battle_athena. [Skotlex]
- * Modified the Makefile to include FD_SETSIZE = 4096 when compiled under
- Cygwin [Skotlex]
- * Added a check for max mob skill level (when reading mob_skill db) [Lupus]
- * More fixes/updates to the txt->sql converter of inventory/cart (will it ever work?) [Skotlex]
- * Fixed job_db2 reading [Sasuke]
- Field count is MAX_LEVEL+1 since job ID is the first field of the 'split' table
-07/22
- * Changed a bit the aspd penalty for dual-wielding assassins. [Skotlex]
- The new factor is 2/3 rather than 0.7, which should be closer to what
- rodatazone says, but also makes them dual wielders a bit slower :X
- * Fixed job_db2.txt reading so that it will read up to MAX_LEVEL job bonuses. [Skotlex]
- * Changed the way the OS is detected in socket.h [Skotlex]
- This MIGHT fix the current 60 user limit problem.
- * Fixed characters not being able to attack and getting "there is a delay
- after a skill" messages instead. [Skotlex]
- * Fixed status changing cards not taking effect. [Skotlex]
- * Fixed packet_ver_flag reading. [Skotlex]
- (previously, if you tried setting it to 256 or 512 it would be
- resetted back to 255, which would cause problems with the later clients)
- * More fixes to the txt->sql converter. Does it works now? [Skotlex]
- * Added water height values of Ayothaya, Ayo_dun02, sec_in02 maps (thanx 2Lorky) [Lupus]
- * Fixed char-sql memo saving. [Skotlex]
- * Added the wantoconnection packet of version 13 to version 14 [Skotlex]
- Note that this will cause all ver13 clients to be identified as v14, it
- WILL cause problems if you use ver13 clients. There is no easy way around
- this as both versions seem to use the identical login packet. If you
- want to give preference to v13 over v14, you can specify the default to
- be it.
- * Fixed Encore skills working when the partner has no weapon equipped. [Skotlex]
-07/21
- * Fixed the fame lists, they work now. [Skotlex]
- * Rewrote the friends system, it now works. [Skotlex]
- Sql users upgrade with the 2574.sql upgrade, txt users will have to
- wipe their friends.txt (there's no easy way to convert that one).
- * Fixed the txt->sql converter not converting inventory/card. [Skotlex]
- The friend conversion was removed due to the new structure.
- * Restructured some of the logic behind auto-attacks and normal attacks
- which should prevent most speed-hacks and be more responsive to players. [Skotlex]
-07/20
- * Updated the txt->sql converter, I THINK it will work now. [Skotlex]
- * Fixed Plagiarized skill's level not being saved. [Skotlex]
- * Changed Pressure/Gloria Domini to take a % of current SP, not max SP (from a post on
- ragnainfo, not personal custom shit! :p) [DracoRPG]
- * Removed debug messages for fame list and signaled the bug that causes problems [DracoRPG]
- * Removed the need of job_db2-2 (advanced jobs' stat bonuses) and moved its use to
- job_db2 [DracoRPG]
-07/19
- * Reorganized the way sql chars are being saved. [Skotlex]
- * Merged battle options player_combo_damage_delay and
- mob_combo_damage_delay into combo_damage_delay [Skotlex]
- * Some code reorganization that hopefully should help with mobs not having
- the same damage delay on the client and within the server. [Skotlex]
- * corrected some bounds errors in the new packet_db code
- that was corrupting memory [MouseJstr]
- * Corrections to Tiger Knuckle Fist [Skotlex]
- * Rewriting of part of the skill-additional effect code. (Should fix
- Asura's penalty) [Skotlex]
-07/18
- * Added a check that might prevent sql char crashes when requesting info
- for non-existant Characters. [Skotlex]
- * Fixed main.sql (start char_id should be 150k) [Skotlex]
- * Some code-cleaning for Sacrificial Ritual [Skotlex]
- * Optimization of auto-triggering skills (double attack, sacrifice, triple
- blows) [Skotlex]
- * Small fix to Sanctuary (shouldn't start healing until after 1.5 secs of
- casted) [Skotlex]
- * Implemented Palm Strike (you cast the skill, it pushes back the enemy and
- deals damage 1 sec after it was casted) [Skotlex]
- * Rewrote and tested Gospel's code, currently it works as follows: [Skotlex]
- Offensive Effects:
- 0: Defense ignoring damage 1~9999
- 1: Curse enemy
- 2: Blind enemy
- 3: Poison enemy
- 4: Lv10 Provoke
- 5: Def, Def2 to 0
- 6: Base Atk, Watk to 0
- 7: Flee to 0
- 8: Speed/Aspd -25%
-
- Deffensive Effects:
- 0: Heal 1~9999
- 1: End all negative status effects
- 2: Lv10 Bless
- 3: Lv10 Inc Agi
- 4: Aspersio (holy weapon)
- 5: Benedictio (holy armor)
- 6: +100% max hp
- 7: +100% max sp
- 8: +20 to all stats
- 9: +25% def (armor and vit)
- 10: +100% base atk
- 11: +50 flee
- 12: +50 hit
- 13: Status effect inmunity
- - Effects have a chance of 10*Skill_lv% of triggering every 5~15 secs
- for whoever is on the skill area.
- - Report any modifications/corrections needed on the forums.
-07/17
- * More Sacrificial Ritual updates [Skotlex]
- * Added Jawaii's water level, thanks to Manipulator [Skotlex]
- * Sacrificial Ritual update [Skotlex]
- * Bumped max Vending price to MAX_ZENY (currently 1000M) [Skotlex]
- * Fixed a bug with Brandish Spear's damage. [Skotlex]
- * Changed the minimum valid char_id from 150k to 1 as apparently many sql
- servers somehow got their chars to start from id 1 instead of 150k. [Skotlex]
- * Added a bunch of debug information to help me understand why the client
- version check is failing. Report back the output on the forums. [Skotlex]
- * The memory manager is now OFF by default [Skotlex]
- (if the server now crashes instead of the matrix bug, then whoever
- gets the traceback first gets to locate it's source)
- * Various fixes to Sacrifice (self damage, display, defense reduction, etc) [Skotlex]
- * Fixed Assumptio's damage reduction in pvp/normal maps [Skotlex]
- * Tiny fix to #fakename [Codemaster]
- * Probable fix for matrix bug. [Kevin]
- * Fixed SegFault with friends list loading on sql. [Kevin]
- * Fixed the spamming of 'unknown packet received' when a client connects
- with an unidentifiable version. [Skotlex]
- * Optimized sql loading of data when displaying the Char Select Screen [Skotlex]
-07/16
- * Added NOLOOT, NOEXP mapflags files (thanks to Lorky,OSKOM) [Lupus]
- * Updated Louyang monsters spawn (thanks to MasterOfMuppets) [Lupus]
-07/15
- * Rewrote most of the packet_db handling code. [Skotlex]
- eA now really supports multiple packet versions at the same time,
- (so that transitioning from one packet version to another should be
- smooth), there is no longer any need to mess with the db/packet_db.txt
- file.
- * The values for packet_ver_flag have changed, check the battle_athena
- comments and set it up accordingly!
- * Using the packet_db is the only way to manage packets now. [Skotlex]
- * Added sql runservers to all branches as runserver-sql.bat [Evera]
-07/14
- * Fixed the login-sql registration issue. [Skotlex]
- * Made it so all ground-targetted skills fail if you try to cast them on a
- cell you can't step in. [Skotlex]
-07/13
- * Soul Change should now work on anyone in pvp/gvg maps [Skotlex]
- * Wand of Hermod's target change from 'friend' to 'party' [Skotlex]
- * Fixed triple blow's 'infinite damage delay'. [Skotlex
- * Added check to prevent placing traps on non-walkable cells. [Skotlex]
- * Fixed login-sql server not reading login_log value [Skotlex]
- * Adjusted my fix of buildin_getequipisequiped to not leave
- the return stack tweaked [MouseJstr]
- * Changed skill_unit_onlimit to use strncpy instead of memcpy
- in one spot to eliminate accessing unallocated memory [MouseJstr]
- * Added check into _mmalloc for allocations of less then zero
- to make debugging easier [MouseJstr]
- * Fixed USE_MEMMGR to disable when running bounds checker or
- the debugging malloc code [MouseJstr]
- * Fixed the debugging malloc MACRO's to use the correct arguments
- [MouseJstr]
- * increased max maps per server to 1024 [MouseJstr]
- * Added check into buildin_getequipisequiped to make sure arguments
- don't go outside of array boundries *crash* [MouseJstr]
- * Add a check into refine bonuses to not go outside of array
- boundries if somebody has a wlv above 5 in the database *crash* [MouseJstr]
- * Modified skill_tree code to confirm we are still inside the
- skill_tree array before accessing a element from the skill_tree
- array *crash* [MouseJstr]
- * Changed the mob spawning code to use strncpy instead of memcpy
- in some places to avoid copying unallocated and uninitialized
- memory *crash* [MouseJstr]
- * Fixed the compile problem on the previous upgrade. [Skotlex]
- * Changed refine success chances to match jRO information. [Skotlex]
- See http://tomcat1.s13.xrea.com/bs/calc.html and
- http://eathena.deltaanime.net/board/index.php?showtopic=39997
- for the details on the new equation.
- (changed because the current equations seem somewhat outdated)
- * Fixed max chance const of "mob skill usage". Now all mobs aren't hyperactive. [Lupus]
- * Fixed global vars not being saved instantly (used to cause some scripts exploits) [Lupus]
- Need some offensive testing.
-07/12
- * Added Loli Ruri to the Magician set [Skotlex]
- * Fixed 'theif' on the scripts. [Skotlex]
- * Added mapflag pvp_noparty to the pvp rooms [Skotlex]
- * More Dispell Fixes [Skotlex]
- * log_login option now also works for the SQL Login server [Skotlex]
-07/11
- * Fixed again Dispell. [Skotlex]
- * Added nomemo mapflag to Ayothaya Dungeon. Check your memo DBs and wipe forbidden entries [Lupus]
- - Yuno, Ayothaya Dungeon
- * Fixed Dispell succes rate reduction by MDef working reversed [DracoRPG]
- * Changed Guild auras to not be removed by Dispell (they came back when you walked
- anyway :p) [DracoRPG]
- * Changed the default for equip_natural_break_rate to 0 (official) [DracoRPG]
- * Fixed the function that checks whether the player has valid equipment for his buffs :
- don't return once one buff is stopped, since there can be more (e.g. Crus' shield buffs
- will now ALL be stopped when the shield is unequipped, not only Guard ^^) [DracoRPG]
-07/10
- * Fixed Alchemist Fame system using' account_id' instead of 'char_id', however this does
- NOT solve the names problem : I left debug messages so you can see by yourself that the
- bug comes from map_charid2nick that always returns null... [DracoRPG]
-07/09
- * Added Novice Castles Usher NPC. 4 new Castles for all but 2nd classes! [Lupus]
- * Updated Falcon Assault (now gives 500% at 5 lvl) [Lupus]
- * Fixed True Sight (now gives +10 Crit, instead of +10%) [Lupus]
- * Update Sharp Shooting (now gives 350% at 5lvl) [Lupus]
- * Check other DB related skills req changes in db\changelog.txt [Lupus]
- * Updated Palm Strike to push back even if it misses. [Skotlex]
- * Updated Palm Strike cost/sphere requirement. [Skotlex]
- (the delayed damage still needs to be coded in)
- * Now adoption.txt NPC can also teach parents/babies their missing family skills [Lupus]
- But the skills don't work yet (I tested)
- * Massive mapflags fix. Also added there Novice Guilds. [Lupus]
-07/08
- * Fixed below fix xD [DracoRPG]
- * Added another sql injection fix [Kevin]
- * Rewrote part of the name request code [Skotlex]
- This means that now you can see other people's party even if they don't
- belong to a guild, and the party/guild names are updated whenever someone
- joins/leaves them. Not fully tested but works alright on the client I use
- (0411)
- * More Adoption skill fixes. [Skotlex]
- * Added the Adoption skills to all classes [Skotlex]
- They should be auto-granted upon adoption (and are not resetable,
- learnable). This, of course, needs testing, do report if it does not
- works. (those that already have someone adopted will need a custom npc to
- give them the skills).
- * Reverted Wedding Rings as they don't need to give the adoption skills
- anymore [Skotlex]
- * Added script command getchildid() [Skotlex]
- * Updated wedding rings to give the adoption skill when equipped. [Skotlex]
- * Fixed some adoption skills [Skotlex]
- * Baby classes won't display the wedding sprite when they equip the
- tux/wedding dress since that resets their size. [Skotlex]
- * Added warning messages when mobs from the mob_db are not loaded due to
- invalid IDs. [Skotlex]
- * All the new monsters have been added. Check db\changelog.txt
-07/07
- * Moved some declarations causing errors with gcc 2.95 [veider]
- * Added valid fd test in inter.c char_sql - caused charserver crash [veider]
- * Fixed pet-exploit where you could use a bow with no arrow equipped to
- 'send' your pet to attack distant enemies. [Skotlex]
- * Added a visual skill effect when pets heal a status ailment. [Skotlex]
- (Adrenaline Rush was chosen because it's animation does resemble a
- 'curative spell')
- * Changed all SQL-related error messages to use ShowSQL [Skotlex]
- ShowSQL now is also printed on the stderr (like ShowError and ShowFatalError)
- * Beautified the output of the char server (sql) [Skotlex]
- * Modified Dispel so that it can fail. [Skotlex]
- As I have no information of how mdef protects against it, the current
- dummy equation is: (50+10*SkillLv - mdef)% (note that mdef2 is not used!)
- If someone knows the actual equation, do open a bug report.
-07/06
- * Fixed Spider-web (works like a ground-targeted trap) [Skotlex]
- * Fixed combo delay not working with skills that have a blowcount [Skotlex]
- * Set the default skill combo delay value to 230ms [Skotlex]
- (this default was empirically obtained testing with Jupitel Thunder as reference)
- * Beautified output of the char server (txt) [Skotlex]
- * Fixed script config import reading. [Skotlex]
- (was working incorrectly and causing memory leaks)
- * Another mob-ai fix, this time mobs should unlock their target once
- it has died for sure. [Skotlex]
- * Added player_combo_damage_delay & monster_combo_damage_delay [Skotlex]
- See battle_athena.conf for description of how they work.
- Defaults to 0 because it is not yet tested for an appropiate default.
- * Removed player_damage_delay & monster_damage_delay [Skotlex]
- Use player_damage_delay_rate:0 & monster_damage_delay_rate:0 instead.
- * Set item_use_interval to 0 (official default, isn't it ?) [DracoRPG]
- * Improved appearance of script-errors reported during loading. [Skotlex]
- * Some mob-ai cleanup. Mobs should now unlock their target when it has died. [Skotlex]
- * Some items, monster drops fixes [Lupus]
-07/05
- * Fixed double attack damage [Skotlex]
-07/04
- * Displayed name is now updated whenever a character leaves/joins a
- party/guild. [Skotlex]
- * Added some NEW official HEADGEARS quests thanks to Lorky [Lupus]
- * Added zbuffer/lance's "Dynamic NPC Look 'n Feel" feature. [massdriller]
-07/02
- * Fixed a small bug in PCloadmapevent thanks to lance. [massdriller]
- * Added lance's PCLoadMapEvent script event command. to trigger, type in
- -[TAB]script[TAB]PCLoadMapEvent[TAB]-1,{
- YOUR SCRIPT HERE
- PCLoadMapEvent as NPC Name will trigger when players step into the map.
- OnPCLoadMapEvent as Label will trigger when players step into all maps. [massdriller]
- * Added lordalfa's NPCKillEvent script event command. to trigger, type in
- -[TAB]script[TAB]NPCKillEvent[TAB]-1,{
- YOUR SCRIPT HERE
- }
- The script should run everytime a normal monster is killed. [massdriller]
- * Added lordalfa's edit where Labels from Event Monsters be executed using the MVP RID,
- and not the Last Hit guy RID. [massdriller]
- * Added lordalfa's PCBaseUpEvent script event command. to trigger, type in
- -[TAB]Script[TAB]PCBaseUpEvent[TAB]-1,{
- YOUR CODE HERE;
- }
- the script should run everytime the user gains a level. [massdriller]
- * Fixed Job Quests exploits (Advanced Classes were able to pass their 2nd job quests again) [Lupus]
- High Novices were able to pass Super Novice Job Quest as well. They weren't able to GET those
- professions, tough. But there were some items exploits.
- Now Advanced classes get reborn guides from all main Job Quest NPCs (1st, 2nd Classes)
-07/02
- * Fixed NEWnovice NPC set using gmcommand instead of atcommand. [Codemaster]
- * Maps and bugs updates, some cleanup in Weapon Repair code [DracoRPG]
- * Added new areas into map flags folder. According to the patch, added NOMEMO flag to Yuno [Lupus]
- * Some monsters drops changes, cards fixes. [Lupus]
- * Fixed sql-char server crash when deleting a Guild Master [Skotlex]
- * Massive cards update (also thx 2Landarma) [Lupus] read db\changelog.txt
-07/01
- * Fixed being able to steal from Treasure Box #1 [Skotlex]
- * Char-sql server now uses autosave_interval to decide when to save a
- modified guild. [Skotlex]
- * Temporary patch to fix the 'invalid pointer' error on shutdown. [Skotlex]
- * Changed all printf's to Show* messages (login/login-sql servers) [Skotlex]
- * Cleaned up sql-account creation code. [Skotlex]
- * Fixed 'unclean' guilds not getting saved on char-sql shutdown. [Skotlex]
- * Corrected map-length calculations when auto-adding .gat (#/@ commands) [Skotlex]
- * Fixed guild-skill sql loading. [Skotlex]
- * Added battle_config option guild_exp_rate to adjust taxed experience
- before adding it to the guild. [Skotlex]
- * Some Guild-Sql saving optimizations [Skotlex]
- * Changed all printfs to Show* messages (Map Server, common/ files) [Skotlex]
- * Fixed crashes of Baby Knight/Crusader Peco riders. Added Baby Class support into
- AT / CHAR commands @mountpeco [Lupus]
-06/30
- * Added web server (http daemon) plugin, originally by jA, ported to plugin form
- (but not yet finished) [celest]
- - To activate it just edit plugin_athena.conf
- - When running just access http://<your server IP>:<your server port>. The
- default home page is httpd/index.html, you can edit it if you want.
- - If graph creation is enabled you can view them in http://..../graph
- (by default only memory usage graphs are added)
- * Fixed crash when no grf's are loaded [celest]
- * Some tidying ups in clif.c, guild.c, skill.c, storage.c [celest]
- * Fixed a missing foreign key for guild_position in the SQL
- guild convert files (main.sql has it already) [Aru]
- * On Guild_skill table corruption in SQL: this is a problem with
- some MySQL versions not supporting the syntax used in
- convert_guild_tables properly. The solution is to drop table
- guild_skill and re-create it with the query from main.sql. [Aru]
-06/29
- * Fixed Bowling Bash and Spear Stab having knockback in
- situations where knockback should be disabled (GvG/MVP) [Aru]
- * Updated map configs with airport maps. [massdriller]
-06/28
- * Fixed Land Protector's range
- * Old Sakexes can now login to the server. [davidsiaw]
- * Doubled Investigate/Occult-Sight's damage and made it non-elemental as per
- ragnainfo sources. [Skotlex]
- * Sacrifice now always hits.
- * Added import of msg_conf.txt for custom message translations. [Skotlex]
-06/27
- * Fixed Pressure missing. [Skotlex]
- * Added 2Secs delay to Sonic Blows. [Skotlex]
- * Removed battle config option maximum_level and replaced it with max_base_level,
- max_job_level, max_super_novice_level and max_advanced_job_level. Refer to
- battle_athena.conf for more details. [Skotlex]
-06/26
- * Fixed typo 'identity'->'identify' in charsave.c [DracoRPG]
- * Added missing ',' to guild_position definition of main.sql [Lupus]
- * Added proper foreign keys to guild_position,
- SQL users run upgrade_svn2331.sql [Aru]
- * Added convert_guild_tables2.sql for use on guild tables
- created with a 2314-2321 main.sql. Run this or
- convert_guild_tables.sql if you are having issues with guild
- skill saving [Aru]
- * Fixed a bug with guild_skill table in main_old.sql if you're
- fool enough to use it [Aru]
- * @nuke++, ftw ;D [Valaris]
- * Modified friend list loading in char-server (sql) to be more efficient. [Valaris]
- * Modified mmo_friends_list_data_str (char-server txt) so it wouldn't make junk data. [Valaris]
- * Added 'character_size' to battle config:
- Do mounted (on Peco) characters increase their size [Lupus]
- * Added new guild database structures to main.sql.
- Removed obsolete guild_tables.sql.
- If for some reason the new main.sql doesn't work for you, you
- can use main_old.sql, but there will be garbage left in the DB
- if a guild is deleted. [Aru]
-06/25
- * Asura/Extremity-Fist needs Fury/Explosion-Spirits active no matter how
- it's triggered. Not yet tested, but it should work. [Skotlex]
- * Reorganized deletion process. Friends should now be no more problem [davidsiaw]
- * Added SQL returned row check to friend-list loading, thanks to Sasuke-. [Valaris]
- * Fixed drops_by_luk not behaving exactly the way it was before... ^^' [Skotlex]
- * Proper clear of class sprite if used as a mob when killed. [Valaris]
- * Added limit 10 to fame list SQL query (faster, when u got 1000+ bsm/alch in DB) [Lupus]
- * Added missing field guild/char_id to main.sql database definition [Lupus]
- Warning: Don't use guild_tables.sql databases yet! Use main.sql file
-06/24
- * Small bug fix on the Monk combos introduced by previous reorganization. [Skotlex]
- * Some corrections on player_cloak_type code. [Skotlex]
- * Some code reorganizing related to Monk combos [Skotlex]
- * Reverted behaviour of the drops_by_luk to Valaris's way [Skotlex]
- Added drops_by_luk2 for those who want the alternate behaviour instead.
- * Adjusted occult-sight/investigate damage modifier to be (def1+def2)/100 [Skotlex]
- * Removed remaining bits of code for the ex-guild skill Charisma [DracoRPG]
- * Added Lighthalzen to @go [DracoRPG]
- * Fixed bug in bowling bash that made the target's sprite remain. [Valaris]
- * Added status calculation to nude script command if anything was removed. [Valaris]
-06/23
- * Fixed LittleWolf's detect hidden mode 256 for mobs (missed a line while merging). [Valaris]
- * Disable AF2 loading -- eA doesn't support unzipping archives yet [celest]
- * Updated UPnP plugin to 1.0.3.2 [celest]
- - Added 'nat_ip' option to upnp.conf (use it to manually set your ip address
- if auto detecting doesn't work)
- - Fixed ip address not initialised properly
-06/22
- * Stopped looting from Chase Walk [Aru]
-06/21
- * Added send of fail packet on failing to pick up items under certain conditions
- (this allows you to get an item you tried to pick up while cloaked when you uncloak). [Valaris]
- * Updated map server to partially 1203~1249
- - Added 'buyer_name' to battle config: shows the buyer's name when an item
- has been sold through vending
- - Added skills with 'water' requirement can be used in rain-enabled maps
- - Fixed Soul Strike not dealing extra damage to undead
- - Fixed Advanced Book not giving its aspd bonus
- - Fixed skill name display when Frost Joke and Scream are casted by mobs
- - Fixed exp overflow with Rich Man Kim
- - Fixed exp overflow with party bonuses
- - Fixed mob names not updated properly when respawning to its base class
- - Reduced size of struct pet_db a bit
- - Prevent trying to respawn a one-time-only mob if it can't find any
- coordinates to add it
- - Added slave mobs with no master/master died will be removed in mob_ai()
- - Changed damage log by summoned mobs will use their masters' char_id instead
- of account id (old system)
- * Some tidying up in atcommand.c [celest]
-06/20
- * Large monsters now have 2x base stats, drop rates, exp, and zeny (if enabled). [Valaris]
- * Small monsters now have half base stats, drop rates, exp, and zeny (if enabled). [Valaris]
- ** Note: this is referring to size just as @monsterbig and @monstersmall, not small, medium, brute, etc... [Valaris]
- * Removed wedding rings from hasitems script command. [Valaris]
- * Removed monsters_ignore_gms from battle_athena.conf, and added @monsterignore command. [Valaris]
-06/19
- * Sirius: Even though the `id` field is never directly read or
- written by Athena it is neccesary for the SQL server which
- automatically handles it. Else each char may have only 1 item
- in a given table. [Aru]
- * overhauled PA_SACRIFICE. If you want to revert the old
- behavior, you can comment out the new line for it in
- skill_db.txt [Aru]
- * removed broken SQL "upgrade" script [Aru]
- * finished the mapservers direct char loading / Charsaving (SQL only!) [Sirius]
- - set charsave_method in char / map conf to 1 if u want to use the feature
- - please test it and make db backups, the save / load is completly rewritten.
- * Fixed some compilation errors on FreeBSD (old compilers [veider]
-06/18
- * Properly updated graph files (Oh god, i keep forgetting things now...
- sorry again! >.< [celest]
- * celest:
- added a graph.c / graph.h with void graph_init and graph_final functions
- due to compiling errors [sirius]
- * SQL USERS: upgrade with upgrade_2252.sql!
- * Added new maps, items. Thanks to Landarma [Lupus]
- * Added graph creation code by jA / End_of_exam (currently disabled until
- finished) [celest]
- * Added grfio_crc32() [celest]
-06/17
- !!!Bug: on optimizing run_script, Kafra NPC stopped working. Celest, read it plz. [Lupus]
- -- Fixed, sorry ^^; Please test and tell me if anything goes wrong [celest]
- --- Yes. It's fixed now. (Equipment upgraders, etc werent' working, too) [Lupus]
- * Started adding the charsave_method, Loading is working, saving will be finished @ 18.6.05 [Sirius]
- * SuperUser checking ... (never run athena as root!) [Sirius]
- * Added eprintf/eprint (eprintf is equal to printf) but it displays line / file ... (to stdrerr)[Sirius]
- * Fixed Ungoliatnt casting assumptio on it's target instead of self. [Skotlex]
- * Switched two frees around that might have caused problems [Codemaster]
- * Optimised run_script a bit, based on jA [celest]
- * Fixed a memory leak in script.c [celest]
-06/16
- * Fixed "unable to add to guild" bug. [Skotlex]
- * fixed a typo of the guilds sql file DB definition [Lupus]
- * Added left-out bonus bDef2 [celest]
- * Moved minicore .o files compiling to under 'common' [celest]
- * Fixed a client crash when using Advanced/Baby job sprites for mobs [Aru]
- * Added a random modifier to returned damage modifiers to prevent stun-lock
- abusers. [Skotlex]
- It's currently set at +/-5%, not tested to know if that's enough or not,
- feedback appreciated.
- * Updated missing grfio.c, sorry ^^; and thanks Skotlex! [celest]
- * Fixed crash in exporting ip address to plugins [celest]
-06/15
- * Small mod on the new attack function to prevent Asura Strike from
- overflowing and doing minimal damage instead of insane damage. [Skotlex]
- * Merged Iro's patch to get #changesex working. Try it out. [Skotlex]
- * nullpo fix (guild.c:550), it was an actual possible scenario when you
- invite someone to a guild and quit before they reply. [Skotlex]
- * Removed script command gmcommand and replaced it with atcommand &
- charcommand. [Skotlex]
- * Small fix regarding speed updating for Cast Cancel + Freedom of Cast [Skotlex]
- * Added 'make depend' for resetting Makefile dependencies [celest]
- * Readded 'make addons' (works the same as 'make plugins') [celest]
- * Split zlib dll opening from grf opening in grfio.c [celest]
- * Moved grfio.c back to /common, it'll be needed by the core later [celest]
- * SQL Logs crash likely fixed. [Skotlex]
- * Added Stone-Curse to the list of status effects undead chars are inmune
- to. So far undead chars are inmune to Freeze and Stone Curse. [Skotlex]
- * Fixed disp_hpmeter not working properly when set to 0/no [Skotlex]
- * Added malloc_usage() for checking total memory used [celest]
- * Added func_parse_table to assign a parse function according to SessionType
- -- still not used anywhere yet [celest]
- * Added 'SessionType' to session_data [celest]
- * Some tidying up in charcommand.c [celest]
- * Added temporary code for Shinobi's Rebirth skill [celest]
- * Added guild exp overflow fix for TXT char [celest]
-06/14
- * Various item_trade restriction fixes: [Skotlex]
- - Fixed guild/normal storage flags not working right.
- - Fixed a bug which allowed players to store items regardless of
- restrictions.
- - Modified the gm override level behaviour on trades so a high level gm
- can both give and receive the otherwise untradeable item.
- * Small fix to the sql-files/convert_guild_tables.sql script. [Skotlex]
- * Modified function status_calc_speed to be faster since it's only used for
- cloaking and freedom of casting. [Skotlex]
- * Changed the stacking type from speed-bonuses to make it harder to reach max
- walk speed. [Skotlex]
- * Fixed a bug on the way aspd bonuses stack. [Skotlex]
- * Changed map names length from 24 to 16 all over the char(txt/sq) and map
- servers, this could fix the "matrix" bug (if done right...). [Skotlex]
- * General cleanup and memory checks on char server (txt) [Skotlex]
- * Miscellanous memory checks around charcommand.c and atcommand.c [Skotlex]
- * Added Maeki's fix to Maeki's fix of SQL Char Server Guild Saving.
- * Fixed characters not being able to uncloak
- * Split used-by-plugins-only code to plugin.h [celest]
- * Standardised plugin functions and names -- dll.c is now plugins.c, addon_athena
- is now plugin_athena.conf and so on [celest]
- * Updated UPnP plugin to 1.0.3.1 [celest]
- - moved code in socket.c back into the plugin
- - added configuration file support (plugins/upnp.conf) -- you'll need to do
- 'make plugins' to install it
- * Added 'make zlib' for compiling a zlib.dll [celest]
-06/13
- * Fixed Asura Strike possibly doing minimal damage when it should do very
- large damage instead. [Skotlex]
- * Fixed another possible crash on chrif... [Skotlex]
- * Applied Maeki's fix for Guild Sql Char server [Skotlex]
- if it breaks, go stone him :X (I already got enough rocks to watch
- out for...)
- * Made berserk-cancels-users-other-self-buffs a battle_config
- option, default: off [Aru]
- * Some compiler warnings fixes [Skotlex]
- * Added battle_config option equip_natural_break_rate. [Skotlex]
- Default is 1 (0.01% chance).
- * Changed sprinkle sand's range from 8 to 1. [Skotlex]
- * Fixed map server failing to connect to char server... [Skotlex]
- * Char-Sql server revision [Skotlex]
- Miscellanous memory bounds/overflows checks/fixes.
- * Fixed options start_armor/start_weapon (char sql) [Skotlex]
- * Some more map server memory checks and cleanup (90%) [Skotlex]
- * Fixed cloaking re-cloaking you instead of cancelling cloak. [Skotlex]
- * Double Damage multiplier applied after vit/def reductions until further
- information is available. [Skotlex]
- * Restored previous speed stacking type until a fix for the new method can
- be devised. [Skotlex]
- * Removed MVP status from @summon'd monsters. [Valaris]
- * Had the "monster target reset to none" code inside of check for the monster level up code, moved it out. [Valaris]
- * Added update of mob hp display on monster level up if mob hp display and monster leveling are on. [Valaris]
- * Added mob_clear_delay option to battle_athena.conf.
- Can add a delay before sending monster death packet (time is in milliseconds and default 0 is off).
- Increasing this can fix the problem with monster sprites still appearing after it died. Recommended value: 10. [Valaris]
- * Fixed spawning multiple sized monsters via scripts. [Valaris]
- * Added LittleWolf's mode 256 (0x100 internally) for monsters (adds detect hidden to a monster, doesn't have to be an MVP, demon or insect). [Valaris]
- * Fixed bug allowing players to cast warp portal under players and other various invalid blocks. [Valaris]
- * Removed talk conversion of Zherlthsh and Alice pets since clients now support them. Thanks to Kholdstare for pointing it out. [Valaris]
- * Added "ORDER BY" statement to char-server SQL's reading of the memo db, fixing problems with people's memo lists
- screwing up when they log back in. Not sure if this problem exists in TXT char-server as well. [Valaris]
- * Map server memory cleanups... (85%) [Skotlex]
- * Removed battle option "enemy_critical" [Skotlex]
- Use enemy_critical_rate=0 instead.
- * Changed the default of enemy_critical_rate to 0 [Skotlex]
- * Ported oA's imalive and flushtimer system to eAthena plugin 'gui' [celest]
- - You will only need the plugin if you are using a gui program like wxOAGUI
- to run Athena
- - To configure it check addons/gui.conf
- - Passing "--gui" as a parameter, i.e "./map-server --gui" will activate it
- as well (GUI program creators, you should handle this transparently)
- * Added get_uptime to timer.c -- used by @uptime and the 'sig' plugin [celest]
- * Merged the 'uptime' plugin into 'dump' and renamed to 'sig' -- it'll now
- handle both crash and uptime logging [celest]
- * Guild SQL updated again, `exp` and `next_exp` to BIGINT UNSIGNED [CLOWNISIUS]
- * Updated the guild_upgrade made sure UNIQUE KEY guild_id is implemented [CLOWNISIUS]
- * Pets no longer lose intimacy when you die on a nopenalty map [Aru]
-06/12
- * Removed the dynamic mob messages (mobs spawned/removed) from default output [Skotlex]
- (Use battle_config etc_log to enable them again)
- * Fixed sql-files/convert_guild_tables.sql so that it actually works [Skotlex]
- (works only on non-modified guild tables previous the new guild system)
- * Small nullpo fix on @where.
- * Fixed new account flood protection blocking _M/_F registration (txt/sql) [Skotlex]
- The bug? The default disallowed time was 1 registration every 10K secs.
- * Found & fixed the bug that was causing server instability on clif.c [Skotlex]
- * Cloaked characters will uncloak on attack/skill-use [Skotlex]
- * Fix on aspd_rate affecting skills not working [Skotlex]
- * Miscellanous small fixes in map server. [Skotlex]
- * The new attack function is now the unchangeable default. [Skotlex]
- * Updated double_rate (side-winder) behaviour. [Skotlex]
- It no longer adds to double attack's skill rate, instead the higher of
- the two will be used on the currently equipped weapon.
- * Dec Agi now cancels Cart-Boost and viceversa as explained by Ishizu [Skotlex]
- * Cloaked characters now can't pick items. [Skotlex]
- * Made the max speed rate a battle_config option, default 300% [Skotlex]
- * Fixed the overflowed valstr free on skill.c:8840 [Skotlex]
-06/11
- * Lord Knight's Beserk now cancels all the caster's other
- self-buffs when used. It also cannot be re-used during the
- no-SP-recovery penalty period after it expires. (This penalty
- will now cancel on your death however.) [Aru]
- * Reverted the previous stacking type for aspd as per rodatazone
- information [Skotlex]
- Speed modifiers, however, still stack on the new way as there's been
- complains of characters reaching impossibly high walk speeds.
- * Modified bAspdAddRate code so that it stacks linearly. [Skotlex]
- * Changed default stacking type for skill modifiers [Skotlex]
- If you have +50 aspd and +50aspd you won't get 100% aspd, instead now you
- get 50% of the 50%, that is 75% aspd bonus. Changed meant to protect
- against stacking skills to get impossibly high walking speed/attack
- speeds.
- * Modified the way bAspdRate & bSpeedRate work. [Skotlex]
- They are meant to be non-stackable, so only the card/equipment with the
- highest bonus prevails.(items with stackable bonus should use
- bAspdAddRate & bSpeedAddRate instead.)
- * Changed the DoppelGanger Card definition from bAspdRate to bAspdAddRate
- to make it stackable. [Skotlex]
- * Capped walkspeed at 4x default [Aru]
- * Added Maeki's awesome convert_guild_tables.sql
- You must still manually add the `char_id` field to the `guild`
- table and fill it with the guildmasters' char_ids BEFORE
- running it. [Aru]
- * Removed inter_guild_storage_delete calls from int_guild,
- innodb tables make it unneccessary [Aru]
-06/10
- * Updated the default pet_db.txt support values [Skotlex]
- We don't have an official list of the support rates, but 1% as default
- (1.5% if they have max intimacy) is just ridiculous.
- * More map server memory cleanups... (70%) [Skotlex]
- * Fixed that crash upon login.... [Skotlex]
- * More map server memory cleanups... (45%) [Skotlex]
- * More map server memory bound cleanups and checks (35%) [Skotlex]
- * Fixed Stalkers being able to use (plagiarized) ground-target
- skills from Chase Walk
- * Fixed come confusion between MVPs (status_get_mexp) and
- mini-bosses (mode & 0x20) in battle.c
- * Added battle_config option item_use_interval with default 500ms [Skotlex]
- * Started map server memory bounds checking for overflows (20%) [Skotlex]
- * Small optimizations on ensemble skills [Skotlex]
- * Fixed some compile warnings on char-sql server [Skotlex]
- * Added script function getitemslots(item_id); [Skotlex]
- * Fixed a bunch of script functions generating a new dummy item instead of
- failing when the item was not found. [Skotlex]
- * Fixed mobhp display so that it will be displayed no matter which /showname option a player is using. [Valaris]
- * Fixed names with disguises (I tested it. It works. No more bitching. :P). [Valaris]
- * Completely overhauled SQL guild code to use innodb type tables
- unfortunately, old guild tables are not compatible.
- If you don't mind the data loss, wipe your current guild
- tables and run guild_tables.sql to create new guild tables.
- [Aru and CuteBoi]
- * If you want to manually convert your old guild tables, you'll
- need to add the foreign keys from guild_tables.sql to the
- databases. And add the `char_id` field to the guild table.
- Its value needs to be the char_id of the guildmaster [Aru]
- * Added 'alchemist' mob skill condition [celest]
- * Rewrote most of the old jA Self Destruction code [celest]
-06/09
- * Fixed a possible null_po in clif.c:7714 caused by lagged clients [Skotlex]
- * Fixed enemy damage_delay being modified by 400 instead of 100. [Skotlex]
- * Changed behaviour of map_freeblock/map_freeblock_unlock as the previous
- way seems to cause memory leaks. [Skotlex]
- * Tidied up code relating to skill_get_inf2() [Skotlex]
- * skill_db.txt updated. New inf2 values: [Skotlex]
- 16: Guild skill, 32: Song/Dance skill, 64: Encore skill
- * Other misc arrangements to skill_db.txt (see db/Changelog) [Skotlex]
- * Tidied up code relating to skill_get_nk() [Skotlex]
- * Readded the previously removed skills from item_db [Skotlex]
- * getpetinfo(2) will return "null" on no pet. [Skotlex]
- * Tidied up code relating to skill_get_inf() [Skotlex]
- * Some small fixes to @grind, @useskill [Skotlex]
- * Added fist (bare hands) to the list of unbreakable equipment in
- pc_break_equipment [Skotlex]
- * Reestructured battle_config options for equipment breaking [Skotlex]
- Removed equipment_breaking and added equip_self_break_rate,
- equip_skill_break_rate. Read battle_athena.conf for more info.
- * Fixed getpetinfo(2) crash. [Skotlex]
- * Added a couple missing lines from my PSIBlade merge of disguises. Name, attacking
- and such are fixed now with disguises. [Valaris]
- * Added battle_config option to set if advanced job skills may be plagiarized
- * Fixed ASC_BREAKER to ignore race/size/element cards like it should
- * Changed @fakename so it no longer needs to teleport the client to work [celest]
- * Removed the old day/night system that uses the blind effect [celest]
- * Fixed day/night cycles with darkness_level on not refreshing properly [celest]
- * Fixed pc_follow_timer cancels if the player or the target warps [celest]
- * Added @follow on the same target for the 2nd time will stop following [celest]
- * Added Memory manager will perform a hash check when freeing memory, by
- End_of_exam / jA 1213 -- fixes crashes when a pointer created by level 2 ALLOC
- is passed to level 1 aFree
-06/08
- * Updated idle time considerations. [Skotlex]
- A character's idle time is reset upon: Walking, attacking (auto-attack
- counts too), using a skill or using a item.
- * idle_no_share changed from a Yes/No setting to # of seconds before
- considering character idle (no/0 still disables). [Skotlex]
- * Updated idle_no_share description in battle_athena.conf
- * Modified @disguise so that it will always work with Npc/Mob names and Mob
- Ids. Only npc by id is hardcoded for now. [Skotlex]
- * Added atcommands cleanmap, npctalk, pettalk to atcommand_athena.conf with their
- description. [Skotlex]
- * Fixed spawn delays for anthell eggs [Skotlex]
- * Removed equipment_breaking, use equipment_break_rate = 0 instead.
- [Skotlex]
- * Clarified some of the comments in battle_athena.conf [Skotlex]
- * Steal/Snatcher won't work on summoned creatures now. [Skotlex]
- * Some db updates (see db/Changelog) [Skotlex]
- * Fixed rude_attacked state not being reset after triggered, credits to
- Komurka [Skotlex]
- * GM used Type 11 items will be exempt from the "GMs can do whatever they
- want" rule regarding skill_usage because otherwise the used item is never
- consumed. [Skotlex]
- * Fixed Ice Falchion/Firebrand giving skills, they just cast the spell [Skotlex]
- * Reduced Ice Falchion's freezing chance from 5% to 1% [Skotlex]
- * Added Makefile caching [celest]
- 'Makefile.cache' is created when you compile for the first time, and keeps
- all your makefile definitions so it can be read directly when you recompile,
- instead of redetecting things one-by-one.
- 'Make [char_sql/login_sql/map_sql]' will now work properly too.
- NOTE: A cache file created by compiling txt is NOT compatible with SQL, but
- a cache created by SQL is compatible with TXT! Delete the cache file first
- and compile SQL before TXT if you have to.
- * Skills will reset at level down. [davidsiaw]
-06/07
- * Temporary change of the way mob memory is removed when they don't have a
- respawn time (check for memory leaks fixed after killing all summoned mobs)
- [Skotlex]
- * Fixed map_quit being called twice when a player requests to change char [Skotlex]
- * Fixed compile issues on various versions of linux
- (please avoid inline in include files until we offically go
- over to being a c++ app) [MouseJstr]
- * Fixed aFreed messages of double freeing sd->reg and sd->reg_str [Skotlex]
- * Re-fixed sql-files/item_db.sql [Skotlex]
- * Plagiarism won't work if the skill to be copied killed you. [Skotlex]
- * Removed use of 'l' as prefix for temporary variables. [Skotlex]
- * Updated max hair styles in battle_conf to 23 [Skotlex]
- * Updated map server to jA1159~1203 [celest]
- - Added imbueing weapons with random element (with bonus bAtkEle,10;)
- - Added Soul Strike do additional damage on undead
- - Added Grand cross will not damage self when cast by mobs
- - Added Cannibalize & Marine Sphere summoned mobs will use their owner's name
- - Added clean up player info when switching characters
- - Added reinitialise storage when char server disconnects
- - Changed some cloaking/chasewalk checks
- - Fixed memory leak when map cache reading has an error
- - Fixed a bug when receiving member info for an empty guild
- - Skip still connecting players in clif_foreachclient()
- * Weather will now properly appear/disappear without having to refresh the client. [Valaris]
- * Complete monster disguise re-code: [Valaris]
- -No more client crashes in PVP caused by disguises.
- -Can view own attack/hit/cast/sit/turn animations.
- -Monster sprite syncs up better than before.
- -Fixed stat dupe exploit with disguises.
- -Fixed crashes that prevented peco riders with disguises.
- -No more refreshing of the screen when equipping/unequipping disguises.
- * Fixed crashes caused by Graffiti Cleaner. [Valaris]
- * Added following missing checks to Ensembles: [Valaris]
- -Partner's equipment is an instrument.
- -Partner is alive.
- -Partner is not casting another skill (This allowed dance floor panel duping).
- -That both people are in a party (before if both partner's were in no party (party ID 0)
- it would allow them to use an ensemble.
-06/06
- * Fixed and updated sql-files/item_db.sql to match with the current
- db/item_db.txt [Skotlex]
- * Removed variables with prefix "l" being treated as a temporary
- variables by the scripting engine. [Skotlex]
- * Updated description of idle_no_share battle_config option [Skotlex]
-06/05
- * Added more debugging information to login-in characters to track down the
- authook nullpo problem. [Skotlex]
- * Added a temporary string length check on trade-request. [Skotlex]
- (reports seem to indicate that the map-server garbage text bug could be
- related to trading string length overflow, check the map-server output
- for "name too long" messages).
- * Fixed a few Visual Studio compile errors and warnings - not completely fixed [Codemaster]
- * prevent_logout is now overriden by dead characters. There's no point in
- waiting 10 secs since you were killed to quit/change character. [Skotlex]
- * Passive mobs will now unlock their target once it's dead/gone too
- far/in another map. [Skotlex]
- Passive mobs are supposed to be defensive, not vengeful. Do report of any
- abuses that might be possible from this to take proper measures.
- * Fixed pet lures always failing (oops) [Skotlex]
- * Corrected Various Jur's (id 1264) equip script to bonus2 [Skotlex]
- * Fixed status_get_speed always returning 1000 when invoked on NPCs [Skotlex]
- * Added battle_config option pet_support_min_friendly [Skotlex]
- Specifies minimum pet intimacy/friendly value needed before attacking.
- Default 900, see battle_athena.conf for more information.
- * Some reorganizing of pet-catching code [Skotlex]
- * Now mobs will do the /ag emotion when you use a lure on them and they
- can't be caught (wrong lure, or mob not in the mob_db.txt). [Skotlex]
- * Fixed a timer mismatch situation with pc_walk timers [Skotlex]
- * Re-structured the pc_follow_timer code [Skotlex]
- * Updated the pet_heal_timer code to match behaviour with
- pet_supportskill_timer's one [Skotlex]
- * Added support for universal lure. [Skotlex]
- Use use_script "pet 0;" to create an item that will catch any non-boss
- mob (will work as long as said mob has an entry in mob_db.txt, of course)
- From what I read in the code, mapping multiple entries in mob_db.txt to
- the same egg_id should work, so it should be possible to have all mobs as
- pets using a single egg_id item and this custom lure.
- * Updated Weapon Repair from jA 1228 [celest]
- * Fixed TXT char disconnecting when sent a server packet from SQL map [celest]
- * Fixed login failing with md5 encryption, thanks to End_of_exam
- * Fixed lock_fclose() failing in Win32 builds, thanks to End_of_exam
- * Updated sql-files/mob_db.sql to match with db/mob_db.txt [Skotlex]
- * Corrected Zherlthsh's and Alice's attack animation speed (mob_db.txt) [Skotlex]
- sql-users can use upgrade_svn2068.sql to update table mob_db.
- * Re-fixed disp_hpmeter not getting disabled when set to 0/no [Skotlex]
- * Fixed Grandcross/DarkCross to do 3 hits instead of 4 [Skotlex]
- * Fixed #fakename =). [Kevin]
- * Tidied up and rearranged Makefile a bit [celest]
- - added 'make [common/map/login/char] options' -- only for txt though ^^;
- - readded sse, mmx and o3 optimisation flags (disabled by default) -- you'll
- have to edit and enable them yourself
-06/04
- * Moved @charchangesex to #changesec *still disabled*. [Kevin]
- * Fixed a major security hole in the mail system, thanks to Valaris for the info =). [Kevin]
- * Moved @charsk/stpoint to #sk/stpoint. [Kevin]
- * Moved @charmodel to #model. [Kevin]
- * Moved @charst/skreset to #st/skreset. [Kevin]
- * Re-updated sql-files/item_db.sql to use price buy/sell NULL instead of 0 [Skotlex]
- The file is full of REPLACE instead of INSERT, so if you already have the
- structure of the table right, you can just delete the table definition
- and apply the file to update your item_db table.
- * Commented out char_athena.conf. [Kevin]
- * Moved @charlostskill to #lostskill. [Kevin]
- * Moved @charquestskill to #questskill. [Kevin]
- * status_change_start will halt silently instead of printing null_po messages
- when trying to apply status effects on pets [Skotlex]
- (Fixes null_po's from pets doing magnum break and who knows what other
- skills)
- * Moved #showexp and #showdelay to @showexp and @showdelay. [Kevin]
- * Moved @charjoblvl and @charbaselvl to #joblvl and #baselvl. [Kevin]
- * Readded the cloth dye packet upon-walk. Sorry about that [Skotlex]
- * Fixed Party Exp Even Share [Skotlex]
- * Added #fakename, due to popular demand =)[Kevin]
- * Clothe dye is updated now on view_class change [Skotlex]
- Most noticeable effect: Dye is not lost un unequipping a tuxedo/wedding dress.
-06/03
- * Updated sql-files/item_db.sql to match with the current db/item_db.txt [Skotlex]
- * Added some initialization code regarding dynamic mobs during map startup. [Skotlex]
- * Fixed the typo on Thief's Sling Stone quest (Zargon->Garlet) [Skotlex]
- Why noone fixed this before? o.O
- * Removed a piece of code that updates your cloth's dye whenever you walk.
- I have been testing for a bit, and this piece of code seems unneeded, and
- not only that, it causes quite a bandwidth penalty by sending
- dye-changing packets every time every character walks! [Skotlex]
- If you get reports that the characters are getting displayed their
- default color instead of their selected dye, report it so I add back that
- piece of code (but it would be best if we could do without it, it would
- save quite some bandwidth).
- * Some compiler fixes in older versions of GCC, thanks to esca.
- * Some optimizations to petskill_use [Skotlex]
- * Fixed the default max hair dye color count, it is 8, not 9 @.@ [Skotlex]
- * Changed disp_hpmeter's behaviour so that you can disable it by setting it
- to "no" or 0. [Skotlex]
- * Fixed gm chat kick protection. [Skotlex]
- * 'Tidied' a bit party_exp_share (more like restructured it). [Skotlex]
- * Re-added party_idle_no_share code. When was it removed? [Skotlex]
- * Added skills going damanage when PVP isn't on fix. [Kevin]
- * Fixed the party-even-share bonus for large parties. [Skotlex]
- * Fixed gm chat kick protect.[Kevin]
- * GM of higher or equal level can use @where on another GM.[Kevin]
- * Fixed @fakename command.[Kevin]
- * Stopped the map-server from invoking "OnAgitStart" each time it connects
- to the char server. [Skotlex]
- * Modified Abracadabra code to make it work with Pet Skills [Skotlex]
- (Warning: Not yet tested)
- * fixed a bug with Abracadabra
-06/02
- * fixed compile issues on older gcc, thanks to esca [Shinomori]
- * Added @size and @fakename gm commands. [Kevin]
- * Added valaris's getstrlen and charisalpha functions into the script parser. [Kevin]
- * Added clif_guild_xy(_remove), rest needs to be added somewhere. [Kevin]
- * Fixed items lost on shutdown/crash, by valaris. [Kevin]
- -Note: Was partially finished by massdriller =).
- * A few things: [Kevin]
- -Fixed valaris's gms can't be kicked function.
- -Added battle_config option for valaris's function.
- -Added battle_config option for gms can join password protected chats of valaris's .
- * Moved "readme"'s and other non important files into doc/notes/ [massdriller]
- * Cleanup in chat.c, party.c, storage.c [celest]
- * Fixed an inconsistent message for log_chat in conf file reading [celest]
- * Fixed mob class changing not checking array bounds, by Shinomori
- * Fixed mob summoning slaves not checking array bounds, by Shinomori
- * Updated max packets in clif.c [celest]
- * Fixed some compile time warnings. [Kevin]
- * Added GM chat kick protections, thanks to Valaris [massdriller]
- * Added Password protection chat rooms access to gms, thanks to Valaris [massdriller]
- * Fixed a couple of things in map.c, thanks to Valaris [massdriller]
- * Storages now saves upon closing, thanks to Valaris [massdriller]
- * exp share and added zeny share/party bonus exp thanks to Valaris [massdriller]
-06/01
- * Fixed Divest Shield and Divest All not able to strip shields [DracoRPG]
- * Changed the default max_hitrate to 100% as specified in rodatazone [Skotlex]
- * Removed the console messages printed when the script command getmapxy is
- invoked [Skotlex]
- * Fixed non-droppable items blocking the client from further droping
- other items [Skotlex]
- * Changed the default of mob_remove_delay to 5 mins [Skotlex]
- * Changed the minimum mob_remove_delay to 15 secs since mobs with instant
- respawn actually take 5~10 secs to respawn [Skotlex]
- * Fixed again disp_hpmeter, it looks like this time it works properly. [Skotlex]
- * Added Esca's fixes to make eA properly compile under Sun-OS [Skotlex]
- * Tested and fixed script function getnameditem [Skotlex]
- Now you can use getnameditem(item,char) to get inscribed equipment (only
- works with what you can equip, arrows excluded). The item description can
- be the item id or the item name, and the character can as well be the
- character id or character name. Function returns 1 if successful and
- the character who's name is to be inscribed HAS to be online.
- * Changed the way dynamic mobs are removed. Now all mobs have are tagged as
- either cached/uncached, and only those cached are removed [Skotlex]
- Mob-Slaves are the only non-cached enemies that are also tagged as
- cached.
- * Fixed a delete_timer mismatch in pet.c [Skotlex]
- * Fixed some compile time things in older versions of gcc. [Kevin]
- * Removed the clif message when you can't drop items [Skotlex]
- Apparently this message breaks the clients and prevents further drops of
- items? Might need further testing.
- * Changed AspdRate and SpeedRate bonuses so they can stack [DracoRPG]
- * Added script function getnameditem [Skotlex]
- syntax: getnameditem itemid, inscribed char's name
- Needed at least for wedding scripts. Only works on equippable items,
- returns 1 on success, always makes only 1 item.
- (it should also be able to use char's id or item's name instead)
- Script function proof-read but not yet tested, so it might have a bug or
- two, use at your own risk for now.
- * Fixed dynamic mobs removing Guardians [Skotlex]
- * Fixed sql queries in logs giving an error. [Kevin]
- * Fixed @memo ignoring the nomemo map flag, thanks to Maeki. [Kevin]
- * Enabled an account flood protection system defaulting to 1 account every 10 seconds. [Kevin]
- * Corrected dynamic mob unloading to remove slaves. [Skotlex]
- * Added Maeki's fix for handling the sql connection to the log server [Skotlex]
- * A reminder to people who seem to have a broken item_db (wrong item
- sprites, doing nothing on click, etc): there was an update to item_db
- some days ago, a new column which is used to determine refineable
- items (which goes between eLv and View) The shipped item_db.txt is
- already updated, but if you have custom files, you can try updating
- them using the gawk line (further below this changelog) or this short
- sed command (from within the db directory):
- gsed -re 's/([^,]*,){16}/&,/' < item_db.txt > item_db.fix
- And then replace item_db.txt with the newly created file (if ya don't
- have gsed, try sed. All *nix should come with one or the other, and you
- can also get it with cygwin)
- * Moved the dynamic mob spawns/deletes to map_addblock/map_delblock [Skotlex]
- This pretty much guarantees that mobs won't be spawned/deleted twice from
- the same map.
- * Added random's battle_config flag for enabling/disabling dynamic mobs [Skotlex]
- Dynamic mobs is good for medium to small servers, but on large ones it
- gets to be somewhat pointless.
- * Fixed disp_hpmeter, I think (can't test it, but the code looks ok) [Skotlex]
- * Added battle athena option mob_remove_delay [Skotlex]
- Now dynamic mobs are not removed inmediately, but after some time has
- passed. Default value is 60 secs
- * Added debugging information about dynamic mobs [Skotlex]
- Helps keep track of how many mobs are being removed/spawned, use it to
- track any possible bugs! Should be removed after dynamic mobs are good
- enough.
- * Some changes to dynamic mob unloading to avoid remove summoned mobs and
- always remove mob slaves. [Skotlex]
- * Fixed a nasty pc.c bug thanks to komurka [massdriller]
- * Added Sasuke's modification to allow certain gm levels to see the
- hp bars [massdriller]
-
-05/31
- * Added Einbroch mobs to dead branch DB [Arutema]
- * Fixed NPC Typo [Codemaster]
- * Updated help.txt, fixed a compile time warning on BSD systems. [Kevin]
- * @marry auto-gives named rings, removed @rings as in-needed [Arutema]
- * Fixed some compilation errors in BSD systems. [Kevin]
- * Restored dynamic mob cleaning to what it was a couple of nights ago
- Should send the system back before all hell broke loose. [Skotlex]
- * Added battle_config options min_hitrate & max_hitrate [Skotlex]
- These only affect the new attack function, and th defaults are 5%-95%
- * Added client-messages for when an item can't be drop/stored [Skotlex]
- * Finished implementing the "optimization" item_trade.txt [Skotlex]
- * Optimised the long forgotten MVP arena [massdriller]
-
-05/30
- * Rewrote the trade-add-item function, it was hella messy [Skotlex]
- * Updated item_trade.txt implementation [Skotlex]
- GM-override lv is still to be implemented.
- Code has been reviewed, but not actually tested yet, use with caution.
- * Fixed fame list first loading, at server startup [DracoRPG]
- * added lordalfa's @me action command [massdriller]
- * Reverted changes to dynamic mob removal, now all mobs are removed [Skotlex]
- mob_remove_damaged is still respected.
- * Partial implementation of item_trade.txt, not quite finished yet [Skotlex]
- * Fixed mob_remove_damaged [Skotlex]
- * Added two new battle_athena options: [Skotlex]
- show_hp_sp_drain (yes/no): displays drained hp/sp from attacks (ie:
- Hunter Fly Card)
- show_hp_sp_gain (yes/no): displays gained hp/sp from killing mobs (ie:
- Sky Deleter Card)
- * bHPGainValue, bSPGainValue will only display gained hp/sp when said
- gain is above 0. [Skotlex]
- * Changed hp_dispmeter from yes/no to GM-level [Skotlex]
- Note that now the default value is hp_dispmeter: 100
- * Fixed item_avail.txt reading could crash on newline [celest]
- * Speedup and fixed @reloaditemdb messing up inventory data [celest]
-
-05/29
- * Optimised job quests scripts [massdriller]
- * Fixed guild expulsion bug, two chars on same account would be expelled. [Kevin]
- * Dynamic mob unloading won't touch mobs with a deletetimer now [Skotlex]
- this affects mobs scheduled to be removed (including @summon mobs)
- * Dynamic mobs now also removes mobs that have a master [Skotlex]
- * Fixed Knockback skills on the new attack function [Skotlex]
- * Rewrote the vitality reduction equation in the new attack funcion [Skotlex]
- The new equation conforms to rodatazone's information here:
- http://rodatazone.simgaming.net/mechanics/substats.php#def
- * Fixed item_db.txt to contain the new refinable column [Skotlex]
- (I accidentally commited the old item_db last time...)
- TXT users with custom items can update their custom db using gawk (*nix
- or under Cygwin) this way (thanks to Sasuke):
- gawk -F, '{ for (i=1; i<= NF; i++) { if (i==16) { printf $i; printf ",";printf ","; } else if ( i==NF ) { print $i; } else { printf $i; printf ","; } } }' db/item_db2.txt > item_db2.new.txt
- Run it from within the root eAthena directory, and you'll get an updated
- item_db2.txt in your root directory. However, all custom items are not
- refineable by default this way, you still have to set to 1 the refineable
- column where it applies on your custom item_db.
- * Improved uptime checking, by Shinomori
- * Improved calltable import/exporting, by Shinomori
- * Standardised init/finalise functions' names [celest]
- * Fixed SVN version display at client connection, thanks to Maeki [DracoRPG]
- * Prevented Snatcher to try stealing players and already stolen mobs, thanks to shadow [DracoRPG]
- * Fixed Parrying and slightly organized status_change_start [DracoRPG]
- * Removed fame list update timer and made it to refresh the list everytime pc_addfame is ran [DracoRPG]
-
-05/28
- ~ Name of NPC file in map_athena.conf is now scripts_main.conf
- ~ Added a new column to item_db.txt/item_db2.txt: refineable [Skotlex]
- The column goes between equip_level and view, use upgrade_svn1863.sql
- to update sql tables (including item_db2.txt). Custom item users of txt
- servers will have to update manually.
- When the column's value is 0, NULL (sql) or blank (txt), the item can't be
- refined.
- OLD ITEM_DBS WILL NOT WORK WITH THIS NEW UPDATE, update your custom
- items!
-
- * Fixed a crash bug in pet_heal_timer on timer mismatch. [Skotlex]
- Thanks to Celest for noticing it out.
- * Fixed the critical attacks bug in the new attack function. [Skotlex]
- * Added MassDriller's updated readme.html files. [committed by Skotlex]
- * Fixed script_athena.conf reading of "event_requires_trigger". [Skotlex]
- It was looking for "require_set_trigger" instead of
- "event_requires_trigger", which effectively ignored the
- event_require_trigger's value. Logout events should now be usable without
- the need of a global variable.
- * Registered all used timer functions to help debugging [celest]
- * Added -DMINICORE to compile core.c (for converters and ladmin) [celest]
- * Removed most unused code and files in char and login converters [celest]
- * Moved converters to /txt-converters [celest]
- * Some tidying up in core and socket.c [celest]
- * Fixed a bug in the new attack function dealing with dual-wielding [Skotlex]
-
-05/27
- * Removed YET AGAIN the mob's skill_idle_flag function. [Skotlex]
- Komurka updated the mob_skill_db so that it is not needed anymore.
- * Modified the critical equation on the new attack function [Skotlex]
- The original equation ((1 + LUK*0.3 + EquipmentBonuses) * CritModifier -
- TargetLuk/5) was meant for official servers, where mobs don't do
- criticals. If applied to mobs, they get very high critical rate, so the
- luk reduction was bumped up to TargetLuk*3/10 on situations where a player
- is targeted by a mob.
- * Re-Applied the idle_skill_flag [Skotlex]
- It was removed because people said it was broken, however it works
- exactly the way Komurka explained it to me:
- A mob can cast only one idle skill, and can't do another one until it
- moves. If the mob casts too many idle skills because it
- casts/moves/casts, then increase the skill's delay in the database! If it
- still does "not works", drop me a line explaining why, because it works
- exactly as I was told it should.
- * Small adjustment of the critical equation in the new attack function [Skotlex]
- * Fixed some crashes related to pet skills and timers [Skotlex]
- * Fixed 1 delete_timer error with pc_stopwalking [celest]
-
-05/26
- * Tidied up mob.c and map.c a bit [celest]
- * Removed rehash() in atcommand.c [celest]
- * Fixed @reloadscript issue with dynamic mobs [celest]
- * Added flush fifos first before reloading in @reloadscript [celest]
- * Added spawn mobs with 1 second delay instead if moblist is full, by Shinomori
- * Fixed wrong name saved when adding friends, thanks to Maeki
- * Fixed itemhealrate stackable, thanks to starlon
- * Set the new_attack_function to be used by default. [Skotlex]
- This function replaces the three previously used functions (pc/mob/pet)
- into a single one which was rewritten to follow the attack algorythm as
- described in http://rodatazone.simgaming.net/mechanics/attacks.php
- Please report any inconsistencies or strange behaviour that this new
- function brings (only affects physical attacks/skills) on the boards.
- If anyone can do some performance comparisons with the old method, that'd
- be useful too.
- If you absolutely don't want to test it and prefer the old method, in
- battle_athena.conf add a line that goes:
- new_attack_function: no
-
-05/25
- * Fixed typos in Absorb Spirits, Double Casting and Tarot Card, thanks to Komurka
- and Avaj
- * Added missing code for Flasher, thanks to Komurka
- * Fixed a string bug in grfio_resnametable [celest]
- * Updated the readme files to the current statistics. [Mass Zero]
-
-05/24
- * Added 'make addons' -- plugins will not be compiled by default now [celest]
- * Ported uptime logging function to eAthena plugin [celest]
- * Ported pid file creation function to eAthena plugin [celest]
- * Ported stackdump creation function to eAthena plugin [celest]
- * Added capability to export to plugins [celest]
- * Fixed ensemble skills, thanks to Komurka
- * Fixed Dissonance damage, thanks to shadow
- * Reverted db/pet_db.txt to it's original form. [Skotlex]
- The pet skills shipped with eA should be as close as possible to the
- original servers. If you prefer the current custom skills in place just don't
- update the pet_db.txt file.
-` (Somehow my custom pet skills table got updated to svn and I didn't notice
- it ^^')
-
-05/23
- * Fixed a few problems wit Dynamic Mobs [Wizputer]
- Increased max mobs per map from 32 -> 128
- Fix mob unloading
- Special Mobs w/ Spawn delays are exempted (MVPs, Gaurdians, Branches, and summoned)
- Added Option for damaged mobs not to be removed in battle config ( Default yes )
- * Mob count in scripts returned 1 less then it was supposed to. [Kevin]
- * Updated tool/stackdump script to support eA's own stackdumps [celest]
- - Type ./stackdump help to check
- * Changed mob_cleanup_sub simply to cleanup_sub [celest]
- * Fixed some memory leaks with dynamic mobs [celest]
- -- notes: Check bugs.txt
- * Fixed some compile warnings in gcc 4.0 [celest]
-
-05/22
- * Added Jbain's server restarter bat files. [massdriller]
- * Drastically Improved Memory usage by making mobs dynamic [Wizputer]
- Mobs load only when a PC is present on the map
- Mobs that have special spawn delays are not loaded/unloaded
- ( Reduced memory usage by 60% for 419 Maps )
- * FIFO size fixes [Shinomori]
- * Fame point system now uses pc_addfame [DracoRPG]
- * Added support for new NPC sprites in @disguise, thanks to akusarujin [DracoRPG]
- * CharSQL: changed the init / login connection issue, now 'online'
- players will be set offline in login @ start / login reconnect [Sirius]
-
-05/19
- * Fixed displaying new when char_new is set to one and changed the option to char_new_display. [Kevin]
- * Fixed mysql fix. [Kevin]
- * Fixed a previous fix with pet idle skills, needs db update not hard coding. [Kevin]
- * Fixed mysql queries to support the following: [Kevin]
- -Names now support the ' character
- -Runs faster because querying string fields doesn't do strlen.
- -Debug option to revert back to old debug queries, will disable the support of the two above.
- * Added No Dead Branching Mapflags in cities [massdriller]
- * Fixed Asura Strike to need only 1 spiritball if used after Chain Crush [celest]
- * Added Asura Strike can be chained after Tiger Fist [celest]
-
-05/18
- * Fixed up character creation, txt supports three status error and char_new is now enabled. [Kevin]
- * CharSQL: fixed the Delete Char issue, now it's using the sd->email instead if the sql email [Sirius]
- * Removed status points adding can be limited via gm level [celest]
- * Removed double clean up when char server disconnects from map [celest]
- * Removed 'mysql_real_escape_string' usage in SQL char until it'll no longer cause
- crashes [celest]
- * Added signal handler for SIGXFSZ [celest]
- * Fixed some compile errors [celest]
- * Fixed broken status changes [celest]
- * Fixed Max Overthrust not working [celest]
-
-05/17
- * Fixed null pointer in map.c. [Kevin]
- * Fixed on a compile time error in status.c/h [Kevin]
- * Fixed an invalid pointer in clif.c [Kevin]
- * Removed 'Agi Up' visual effect from Berserk [DracoRPG]
- * Tidied up npc.c a bit [celest]
- * Added crash check in SQL char creation [celest]
- * Changed Marionette Control's inf type [celest]
- * Added infinite emperium/guardian hp fix, thanks to random
-
-05/16
- * Fixed a slightly large inefficiency and bug in clif_foreachclient thanks to Sasuke-! [Kevin]
- * Fixed a bug in minimap thanks to Komurka. [Kevin]
- * Added mysql_real_escape_string() while creating a new character
- - Might fix a few character names if you have no restrictions [Codemaster]
- * Fixed 'rudeattacked' skill condition, thanks to Komurka
- * Replaced zlib_win32.h and zconf_win32.h with the v1.2.2 files in /zlib [celest]
- * Ported zlib.dll loading to eAthena plugin form [celest]
- * Fixed some NPC skills acquirable by @allskill [celest]
- * Merged sigpipe's handler with sig_proc [celest]
- * Optimised timer.c a bit (partially from Shinomori's changes) [celest]
- * Fixed up some more null pointers. [Kevin]
- * Added Chat-Logging (for Whisper, Party and GuildChat!) [Sirius]
- - Sql Log Users please upgrade: sql-files/upgrade_svn1759.sql
-
-05/15
- * Minor bug fix by NSSTrunks
- * Added Shinomori's MakeWord, MakeDWord and GetWord functions to split a 'long' into
- 'short' & assemble 'short' into 'long', used for produced items and pet eggs [DracoRPG]
- * Fixed famous player's produced items not giving bonuses if the producer had a too long
- character ID (exceeding 'short' capacity and then stored both in card2 and 3) [DracoRPG]
- * Added gm command symbol checks for atcommand/charcommand.c, thanks to akusarujin
- * Added valid session check in clif_additem, thanks to Sasuke
- * Fixed a heavy memory leak with the Memory Manager, by Shinomori
- * Fixed a memory leak with empty scripts, by Shinomori
- * Removed npc unloading via npcname_db finalising -- fixes some wild frees [celest]
- * Fixed monsters' attacked_count never cleared if it successfully casts a skill
- from 'rudeattacked' condition [celest]
- * Fixed some NPC skills can be copied by Plagiarism [celest]
- * Changed Enchant D.Poison's poisoning effect to not work on bosses instead of
- damage bonus [celest]
- * Fixed an item dupe bug, very rare occasions [Kevin]
- * Tidied up pc.c [celest]
- * Fixed some wild frees from npc unloading at shutdown [celest]
- * Changed Make Arrow to not display equipped items as material choices [celest]
- * Removed 'make_arrow_flag' -- use 'produce_flag' instead [celest]
- * Fixed equip breaking bug in pc.c. [Kevin]
- * Fixed alot of null pointers thanks to Sasuke-. [Kevin]
- * Set default in battle_athena.conf of player_skillup_limit to yes. [Kevin]
- * Extended hide_gm_session to @where [Kevin]
- * Fixed a guild exp overflow bug in guild.c & int_guild.c[Kevin]
- * new command @iteminfo item_name/id (@ii). It works, but will be improved [Lupus]
- * added all known mapflags into @mapinfo command. Rearranged output [Lupus]
-
-05/14
- * Simplified @cleanmap [celest]
- * Fixed finalizing clean up could miss 1 map [celest]
- * Added placeholder code for NPC_EMOTION_ON [celest]
- * Fixed damage bonuses (damage_rate) not working for normal attacks [celest]
- * Fixed Concentration (again ^^; ), thanks to lordalfa
- * Fixed base file name sometimes not retrieved properly in core [celest]
- * Removed "memwatch.h" includes for all source files other than malloc.h -- only
- 1 define is enough [celest]
- * Fixed wrong packet for 01-10aSakexe's UseSkillToPos [celest]
- * Skip rearranging large memory blocks while cleaning up on memory manager
- shutdown [celest]
- * Updated the guild aura skills -- gives +1 stat per level, and runs a bit
- faster [celest]
- * Fixed broken Marionette Control -- changed to clowns/gypsies that are under
- marionette will not be able to use the skill [celest]
- * Fixed Absorb Spirits working on boss-type monsters [celest]
- * Fixed Body Relocation hiding when used by monsters [celest]
- * You can only use mute commands when the system is enabled. [Kevin]
- * Fixed a guild bug in inif_guild_leave in intif.c, would expel are characters on an account [Kevin]
- * Added new mapflags (mainly for fixing jobquests abuse and arenas) by Lorky, fixed added by [Lupus]
- - noexp - on killing a monster you don't obtain both Base and Job EXP at all (including MVP EXP bonus)
- - nobaseexp - on killing a monster you don't obtain Base EXP at all (including MVP EXP bonus)
- - nojobexp - on killing a monster you don't obtain Job EXP at all (including MVP EXP bonus)
- nobaseexp+nojobexp=noexp
- in other words, 'noexp' set both mapflags 'nobaseexp' and 'nojobexp'
- - noloot - on killing ANY monster you get no loot at all
- - nomobloot - on killing a common monster you get no loot at all
- - nomvploot - on killing a MVP monster you get no MVP loot at all
- nomobloot+nomvploot=noloot
- in other words, 'noloot' set both mapflags 'nomobloot' and 'nomvploot'
-
-05/12
- * Very very very strong weapons (forged with 3 Star Crumbs) now give +40 dmg
- instead of +15 dmg [DracoRPG]
- * Weapons/potions made by a top-10 famous player now give bonus effects [DracoRPG]
- * Updated the battle.c change made to generate compile time
- errors if you put the wrong battle_config option with the
- wrong type into the wrong place [MouseJstr]
- * Added item type 11 into LOGs filter [Lupus]
- * Removed mob_skill_use, if you don't want mobskills, set mob_skill_rate to
- zero [Skotlex]
- * Modified drops_by_luk behaviour. See battle_athena.conf for details [Skotlex]
- The new system works a lot like Diablo 2, where having 100% better chance
- of finding items means that you basicly get double drop rates than others.
- * Implemented pet idle skills restrictions as explained by Komurka [Skotlex]
- From what I was told, a mob can only cast a skill while in idle state
- once, and it needs to move before it can do another idle-state skill.
- * Tested and fixed wedding_ignorepalette, it now works as it should [Skotlex]
- * Tested the new item type 11. I forgot to add the code for the sql
- version, but that's now fixed and the new system works as it should [Skotlex]
- * Put a fix in for the bug mentioned below [MouseJstr]
- * Added code to make min_hair_style, max_hair_style, min_hair_color,
- max_hair_color, min_cloth_color, max_cloth_color work [Skotlex]
- What it does, is cap the values whenever you try to change the
- character's dye via an npc/script, it won't touch character's dye colors
- upon loading.
- * Shrinked @mapinfo output, added 2 missing flags NOWARP / NOWARPTO [Lupus]
- * New item type (11) to item_db: delay-consumed usables. [Skotlex]
- . All items that have in their script "pet" or "itemskill" must be changed
- from type 2 to 11. The new type of item has the property of not being
- consumed on double click, but after a target is selected (hence it is
- ideal for lures, skill-casting items and the yggdrasil leaf)
- The item_db.txt file was updated to reflect these changes. Custom pet
- lure owners, update!
- SQL users can run upgrade_svn1705.sql which will upgrade both item
- databases (including all custom lures)
- * Added battle config option 'ignore_items_gender'. [Lupus]
- So any player can equip any item regardless of the gender restrictions.
- Note: It's ignored by default since gender check isn't implemented at
- official servers.
- There are 2 exceptions: Wedding Ring M/ Wedding Ring F (their gender check
- won't be affected)
-
-05/11
- * Added by popular demand battle config options mob_skill_rate &
- mob_skill_delay. See battle_athena.conf for further information. [Skotlex]
- * Added battle config option wedding_ignorepalette (default no)
- When enabled, the wedding dress/tux will always display with the default
- dye (not all palette packs bring palettes for the wedding class, nor
- they should) (Needs testing)
- * Changed most battle_athena options to unsigned short. This means the
- maximum valid value is around 60K (65535 on most systems) which
- translates to ~60 secs or 600% (600x) for most options. See
- conf-tmpl/battle_athena.conf for details on which variables were
- excluded (exp/drop rates values are excluded, obviously).
- * Removed boss warping code since it is currently supported by the mob skill DB
- 'rudeattacked' state [celest]
- * Fixed plagiarised skills replacing actual learnt skills [celest]
- * Fixed 'gmcommand' script command crashing when no players are attached [celest]
- ... which means the command does not work in script events like OnClock!
-05/10
- * Added code to prevent pet lures from being wasted until after selecting a
- target (only works with official lures). [Skotlex]
- * Added MAX_REFINE to status.h [Skotlex]
- Enables for custom max refine levels using the success rates in
- refine_db.txt, npcs will know they reached the max level when the success
- chance returns 0. (npcs still need updating to support this model)
- - Note: Whitesmith's refinery skill might need to be tweaked if you want
- them to be able to forge above lv10 and up to whatever custom max you
- wish.
- - Note2: Npc's refine_sucess script command ignores this max.
- * Skill updates [celest]
- - Fixed Charge Arrow not requiring bows
- - Fixed Enchant Deadly Poison working on bosses
- - Fixed Concentration (again! xD) def penalty, thanks to UniRing
- - Added code for NPC_REVENGE
- * Added 'masterattacked' mob skill condition [celest]
- * Added battle_config.use_statpoint_table [Skotlex]
- When set to no, a new equation is used to calculate stat points after a
- reset. I've tested the equation to death, so it should work flawlessly.
- Advantages of using the equation: No need for statpoint.txt (it is still
- read for the time being), and stat changes through npc buyers/sellers are
- preserved after a reset.
- * Restructured clif_parse_Wanttoconnection [celest]
- * Fixed packet version detecting not working properly if last version's connection
- packet is the same as the DB but with different values [celest]
- * Added built-in support for 2005-05-09aSakexe and changed 'packet_ver_flag'
- default in battle conf to 511 [celest]
- * Added load local resnametables.txt into memory instead of opening and reading
- it every time we look for a file [celest]
- * Fixed crash if resnametables.txt was not found in a grf [celest]
- * Removed some unnecessary steps in grf file lists loading [celest]
- * Added display_hallucination for clients where the effect lags badly [Skotlex]
- * Added the battle_config options for managing the pet-skills system [Skotlex]
- * Incorporated the new pet attack/skill system. [Skotlex]
- See db/pet_db.txt for explanation, or visit
- http://www.eathena.deltaanime.net/board/index.php?showtopic=29918 for
- details and support.
- * Fixed Marionette skill. Now you can't target other Clowns or Gypsies [Lupus]
- * Fixed all Hunters traps to affect Players in PVP/GVG places only. [Lupus]
- And Shockwave Trap doesn't work on monsters, because they don't have SP
-
-05/09
- ~ Added sql_files/upgrade_svn1665.sql to update hair, hair colour and clothes
- colours' field format (thanks to Zoc)
-
- * Updated char creation to support 24 hairstyles (from 5/10's patch) [celest]
- * Fixed broken stats check during SQL char creation, thanks to Sasuke
- * Removed an unnecessary check in plugins loading, thanks to Shinomori
- * Changed grfio_read + grfio_size usage to grfio_reads() -- a bit faster [celest]
- * Moved the win32 zlib .h files from /lib to /zlib [celest]
- * Moved 'afm_dir' setting to map_athena.conf [celest]
- * Moved grfio.c from /common to /map [celest]
- * Changed grf-files.txt loading: [celest]
- ~ 'data/sdata/adata' loading will still be supported, but is replaced with
- grf: <path to grf or gpf file>
- To load extra GRFs (if you have custom ones for your server for example,
- or to load weekly kRO gpf's) just add as many 'grf' commands as you want
- * Tidied up grfio.c a bit [celest]
- * Added FULLY updated mobs skills DB by Komurka (up to Aegis Zone 8.5) [Lupus]
- * added a packet to remove maps of other servers [Sirius]
-
-05/08
- * documented the packetlentable of chrif [Sirius]
- * fixed crash in clif_joinchatok [veider]
- * Optimising 2 party queries in SQL char, thanks to Zoc
- * Fixed a typo in SQL party saving, sorry ^^; [celest]
- * Fixed compile errors in login and char converters [celest]
- * Fixed ensemble skills and Benedictio, thanks to shaeh and massdriller
- * Fixed typo in Concentration's hit bonus, thanks to UniRing
- * Added additional hit bonus for Weapon Research [celest]
- * Fixed a missing check in Absorb Spirits [celest]
- * Made Meteor Assault cause Bleeding effect too. According the skill desc, it causes all effects
- to ANY enemy by chance now. [Lupus]
- * Typos and grammatical fixes in various files [DracoRPG]
- * Changed Hair style, Hair & Clothes colors fields to unsigned to allow use of 255 palettes [DracoRPG]
- * Enhanced @send to allow use of 20 additionnal arguments after the packet identifier [DracoRPG]
- * ATK % bonuses provided by Power-Thrust (and similar skills) and attack skills now add instead of multiplicating [DracoRPG]
- * Added sd->right_weapon and sd->left_weapon structs to store all weapon-specific values like watk [DracoRPG]
- * Added pc_istop10fame function [DracoRPG]
-
-05/07
- * Fixed plagiarised skills not updated when hit by different skill level [celest]
- * Added server type will be set in the core earlier -- Fixes some plugins cannot
- loaded if called before the server finished initialising [celest]
- * Added high priority plugins (explicitly set in conf file) will not be unloaded
- even if incompatible [celest]
- * Added 'DLL_Test' plugin event [celest]
- * Ported the upnp feature to eA plugin form [celest]
- * massdriller's npc update, fixing SIGPIPE in core and SunOS additions to makefile [Shinomori]
-
-05/06
- * Dev's pls take a look to Dev/mmo_change_report.txt [Sirius]
- * Fixed build issue under linux machines [MouseJstr]
- * Fixed possible stat exploit in char_sql, thanks WoWer [veider]
- * Fixed compilation warnings on NetBSD [veider]
- * Adding unequip script command, tnx to Spectre [Shinomori]
-
-05/04
- * Fixed monsters can't use Heal/Potion Pitcher when hidden, thanks to Komurka
- * Documented the sample plugin source a bit [celest]
- * Added sample plugin 'sample.dll' [celest]
- * Finished plugin events system [celest]
- * Finished plugin loading system [celest]
- * Added Shinomori's findfile function [celest]
-
-05/02
- * Tidied up pc and mob counttargetted code [celest]
- * Updated fame lists to display offline characters' names properly, and
- * Changed char server to send char id instead of account id in fame lists, thanks
- to Sara-chan
- * Fixed a mistake in the friends list code [celest]
- * Fixed friend's names not sent properly [celest]
- * Changed Concentration's hit bonus, thanks to ShAPoNe
-
-05/01
- ~ Added sql_files/upgrade_svn1623.sql to update item_db2's format, and mob stats
- in mob_db to unsigned int (thanks to Zoc, Wallex and akusarujin)
-
- * Added item_db2 and mob_db2 reading for SQL map, thanks to sbilly
- * Added new mob skills -- could be inaccurate though ^^; [celest]
- * Added proper support for script functions with no parameters, thanks to Wallex
- i.e getrefine() instead of getrefine(0)
- * Removed 'skill failed' message for Frost Diver [celest]
- * Moved Lullaby and Dissonance effect code to skill_onplace_timer [celest]
- * Updated some skill id's to fit in a few new mob skills (not coded yet) [celest]
- * Increased mob skills using base chance to 1/1000 instead of 1/10000, and monster
- delay base rate to 1/100 instead of 1/400, thanks to Komurka
- * Fixed players able to request trade with gm's even if gm_can_drop_lv was set,
- thanks to Komurka
-
-04/29
- * fd checks in send/recv fifo, thanks to Sasuke [Shinomori]
- * Restructured malloc.h / malloc.c a bit [celest]
- * Fixed a memory leak in console [celest]
- * Fixed console to be compatible with the dummy socket [celest]
- * Fixed TXT login and map not shutdown cleanly if exitting by console [celest]
- * Changed Spiral Pierce's effect to stop movement instead of stun [celest]
- * Fixed Chase Walk to properly add a STR bonus [celest]
- * Added effect for Tarot Card [celest]
- * Cleaned up clif_specialeffect [celest]
- * Added hidden gm's will not show warp effect when logging off, and will return
- 'target character not logged in' when /exall is on, thanks to starlon
- * Fixed non-movable monsters moving if they're blind [celest]
- * Added boss-type monsters will auto teleport when 'rude-attacked' [celest]
- -- note: Just a temporary fix, the mob skill db still needs updating
- * Added boss-type monsters cannot be knocked back by skills, thanks to Komurka
-
-04/28
- * Fixed a bot trading hack [celest]
- * 'isequipped' will now 'tag' items that are used in its set, so a 2nd set will
- not be able to use items from the 1st set [celest]
- * Changed bAddItemHealRate to be based on total hp healed including vit bonuses
- instead of base hp [celest]
- * Tweaked skill casting time and delay logic again [celest]
- * Fixed another typo in bAutospell, thanks to Komurka [celest]
-
-04/27
- * Updated friend list functions, much thanks to Tsusai / Fusion!
- * Added packet for a divorce notice ("<your name> has divorced with <your spouse>
- name>") [celest]
- * Added packet for /pvpinfo (only usable in pvp maps) [celest]
- * Added display for /blacksmith and /alchemist [celest]
- -- To-do: Offline characters won't have their name displayed properly yet
- * Added display when blacksmiths and alchemists gain fame points [celest]
- * Fixed talkie box not working when packet DB is enabled [celest]
- * Removed redundant monk() and parse_SkillMessage in clif.c [celest]
- * Updated @send to check send lengths from packet_db [celest]
- * Fixed @mutearea's time always set to 15 minutes [celest]
- * Fixed a typo in the bAutospell's, thanks to Komurka
- * Reverted a setting in skill casting time calculating [celest]
- * Fixed Gravitation not affecting enemies, and ignore element modifiers [celest]
- * Added 'bSPLossRate' effect [celest]
-
-04/26
- * Added @load/unloadnpc [celest]
- usage: @loadnpc <path to script file, i.e npc/other/test.txt>,
- @unloadnpc <NPC name>
- * Changed @enable/disablenpc to @show/hidenpc [celest]
- -- Note: the script commands 'enable/disablenpc' arent affected
- * Updated max packet to 0x234 for 205-04-25aSakexe [celest]
- * Added cannot use warps when hidden/cloaked [celest]
- * Re-fixed an exp overflow bug and raised cap to 2bil [celest]
- * Added some more of kRO's 04/26 patch [celest]
- * Fixed a crash in stripping skills [celest]
- * Tidied up battle.c a bit [celest]
- * Added Devotion's effects will be lost if changed map/teleported [celest]
- * Added bDoubleRate effects can stack with Double Attack [celest]
- * Added support to have up to 20 autocast skills from cards [celest]
- * Applied new advanced skills changes from 4/26 patch [DracoRPG]
- I could not do everything, things remaining to do :
- - Alter Double Casting success rate (did not find the code... is there one ? xD)
- - Check that all songs/dances/duets are uncancelable by Dispell
- - Make Wand of Hermod affect only party/guild members (and check for a warp portal !)
-
-04/25
- * Further improvements on stripping/breaking + added support for targeting mobs with strip skills [DracoRPG]
- * Added fd check to clif_additem [celest]
- * Optimised weapon stripping/breaking a bit -- skip searching from the item DB
- everything we call this [celest]
- * Fixed a possible crash when adding timer function strings [celest]
- * Tidied up skill casting time calculating a bit + Fixed a possible bad
- setting when dex > 'castrate_dex_scale', thanks to phabyo [celest]
- * Changed skill unit group checks in status_change_timer a bit [celest]
- * Fixed possible sql injection with SQL gm command logging, thanks to starlon [celest]
-
-04/24
- * Work on skills [DracoRPG]
- - Cleanup in skill.c, added missing guild skills and switched all names to iRO ones in skill names list
- - Fixed typo in a guild skill name : GD_KAFRACONTACT -> GD_KAFRACONTRACT
- - Entirely rewrote equipment stripping/breaking so that stripping/breaking weapon will affect BOTH weapons of
- a dual wielding Assassin, and that stripping/breaking shield won't affect two-handed or left-hand weapons
- * Pets can't attack Guardians and Emperium, WoE or not !! [DracoRPG]
- * Replaced autospell_type and autospell2_type with a simpler way to save auto-
- casting [celest] + Fixed a typo, thanks to Landarma
- * Fixed a typo in socket timeout messages [celest]
-
-04/23
- * Fixed not working PVPOFF in scripts. [Lupus]
- Due to the bug it could work only on maps with NOPVP flag.
- * Added item produce pentlty to Baby Class [Lupus]
- Comparing with common classes, Baby Alchemist/Blacksmith have 20% less chance of successful item making.
-
-04/22
- * Fix main.sql to include the fields that are in the
- upgrade files [MouseJstr]
- * Added bonus4 support for bAutoSpelll [celest]
- * Fixed Cast Cancel [celest]
- * Fixed compile error in log.c -- had to remove the 'Log refined items' option
- in log config [celest]
- * Fixed plagariased skills not cleaned up properly when copying another new skill,
- and corrected copying skill level [celest]
- * Added Spiral Pierce ignores defense, thanks to Komurka
- * Added base code for PK/Karma system (not completed) [celest]
- - Added equipment drop based on alignment (not enabled yet)
- - Added alignment shift after PK (not enabled yet)
- - Added 5 minute silenced status PK penalty
- * Added @packetmode (for debug only) [celest]
- * Added clif_gm_silence to clif.c and rearranged ReqNoChat abit [celest]
- * Added damage reduction in PK mode [celest]
- * Added /memo cannot be used when dead [celest]
- * Added bonus2 support for bAddMonsterDropItem [celest]
- * Added db/item_group_db.txt [celest]
- * Added bAddMonsterDropItemGroup [celest]
- ~ check doc/item_bonus.txt
- * Fixed bCriticalAddRace giving too little increments [celest]
- * Fixed Ruwach revealing Chasewalking players [DracoRPG]
- * Changed equipment breaking to 'on' by default [DracoRPG]
-
-04/21
- * Fixed a typo in mobs skills checking [celest]
-
-04/20
- * Fixed a few item errors with callfunc("Is_Merc_Class") (not checking if it returned 0)
- * Changed a bad mistake in map cache configuration (swap between compressed and uncompressed options) [DracoRPG]
- -> Check this !! using '1' you can get a 1MB mapinfo with all 450 maps inside !!
- * Added Intravision vars and all the stuff, but not the code (for Maya Purple Card) [DracoRPG]
- * Fixed memory leak in @reloadmobdb [celest]
- * Fixed logging settings reset to default after reading the conf file [celest]
- * Added support for 'masterhpltmaxrate' condition in the mob skill db [celest]
- * Fixed Ruwach not dealing damage to revealed players/mobs [DracoRPG]
-
-04/19
- * Fixed insert like item as card hack. [Ancyker]
- * Fixed adoption script [Codemaster]
- * Simplified @day and @night [celest]
- * Added script command 'adopt', 'day' and 'night' [celest]
- * Refixed the 'gtb_pvp_only' option, thanks to Zoc
- * Added Baby Class support to all renters, job quests, etc [Lupus]
- * Added UPnP plugin (will only load in Windows XP) [celest]
- - if everything loads successfully you should get a "Firewall port xxx
- successfully opened" and "Upnp mappings successfull" for each server.
- If it doesn't, either your router has it turned off or doesn't support it
- - Go here for the debug version and source code:
- http://svn2.stormbirds.org:8080/svn/ea/devel/Celest/addons/upnp/
-
- * Added extra info in 'goto' and 'if' script errors [celest]
- * Added new mapflag 'gvg_dungeon' -- Same as GvG, but doesn't show simplified
- effects for the client [celest]
- * Fixed blind mobs can still follow out-of-range attackers [celest]
- * Support for /blacksmith and /alchemist commands (doesn't do anything yet)
- * Added allow gm levels for the /[str/agi/..]+ commands to be set in atcommand
- config -- set to 0 by default [celest]
-
-04/18
- * Fixed exp overflow in mob.c and guild.c [celest]
- * Allow gm's to drop/trade limited items (i.e wedding rings) [celest]
- * Fixed super novices' guardian angel couldn't be summoned because the message
- was uncapitalised (yep you need to follow the caps too ^^) [celest]
- * Fixed wrong EXP table usage / Max possible Job Level calculation of BABY CLASS [Lupus]
- * Some changes to @send and @packet [celest]
- * Fixed a crash in @adjcmdlvl [celest]
-04/17
- * Corrected Strip skills rates [DracoRPG]
- * Moved timer and db finalising to core.c [celest]
- * Fixed a typo that was causing crashes from blind monsters [celest]
- * Added reset all character's status to offline when map disconnects from char
- (TXT) [celest]
- * Fixed Tarot Card damage not showing, and the Lover Card to warp the caster
- instead of target [celest]
- * Fixed ground-targetting skills usable with Blade Stop on [celest]
- * Started implementing Baby Class compatibility for items / job quests,
- some optimizations due to usage of BaseJob [Lupus]
-04/16
- * Fixed Frost Joke and Scream working on dead characters, and set them to not
- affect hidden GM's [celest]
- * Added support for 'rudeattacked' condition in the mob skill db [celest]
- * Added blind monsters will try and move to its attacker's position [celest]
- * Added monsters will try and escape if attacked but cannot retaliate
- (a 'rude attack') [celest]
- * Added a crash check in mob skill casting [celest]
- * Adding support for Fusion AF2 maps (not finished) [celest]
- * Added more correct Einbroch/Einbech monster spawn [Lupus]
-04/15
- * Fixed building under FreeBSD [MouseJstr]
- * Shield Chain and Acid Demonstration should now display damage properly [celest]
- * Fixed memory leak when an npc with no maps defined is loaded [celest]
- * Changed default mem manager log path to "log/[server name].leaks" [celest]
-04/14
- * The display of account/character IDs is now a setting in battle_athena [Ancyker]
- * Allow married couples to exchange normally untradeable rings with each other
- * Finished adding saving character online/offline for TXT char and login [celest]
- * Added save guild storage as well when auto saving characters to prevent duping
- if the server crashes, by End_of_exam / jA 1064
- * Moved Meditatio's effect back to status calculation [celest]
- * Updated the fame list sending between char and map to separate blacksmiths
- and alchemists [celest]
- * Added 'setcell' support in scripts. Usage:
- [map name]tab[cell type],[x0,y0,x1,y1]
- * Added REGEN cell (0x20) [celest]
- * Fixed a memory leak in SQL login [celest]
- * Made display version on login settable in battle_athena. [Ancyker]
-04/13
- * Removed Quagmire cancelling Crazy Uproar (Lord Exclamation) [DracoRPG]
- * Corrected Song of Lutie (Apple of Idun) healing [DracoRPG]
- * Moved server type info to version.h
- * Added dumping svn revision or Athena version when saving stacktrace
- * Added auto disable built-in stacktrace in Cygwin if 'error_start' is already
- set in the environment, thanks to Ser
- * Display a more appropriate message if items are not allowed in trading
- * Implemented Longing for Freedom (roughly), Wand of Hermod, Gravitation and
- Gambatein (14 of 14 skills done! Please post any problems, since they're done
- mostly in a rush ^^; ) [celest]
- * Added -1 skill id checks [celest]
- * Fixed event timers crashing when freeing memory [celest]
- * Fixed sage enchanting skills using up gems even if it failed [celest]
-
-04/12
- * Fixes and updates [DracoRPG]
- - Fixed Cart Boost speed bonus being not removed when the skill ended (missing calc_flag)
- - Lv4 weapons don't give fame point anymore when upgraded to +10
- - Axes and Maces can't be broken
- * Added checks in event timers from crashing when freeing memory [celest]
- * Implemented Acid Demonstration, fixed Double Casting [celest]
- (10 of 14 skills roughly done)
- * Implemented Double Casting, finished Tarot Card effects [celest]
- * Overhaul on status changes' numbering -- some statuses will show icons now
- * Implemented Mana Regeneration, Shield Chain, Plant Cultivation, Cart
- Termination, Max Overthrust and Tarot Card [celest]
- ~ To get the new skills you need 2005-04-11aSakexe!
- * Enable cards to be stolen with level 5, thanks to Ishizu-chan
-
-04/11
- ~ Please upgrade your SQL char DB with /sql-files/upgrade_svn1499.sql
- to accomodate Fame saving!
-
- * Fixed AC_DOUBLE and AC_SHOWER cast delays according to kRO Patch - 6/29/04
- they both have 0.1 sec cast delay thanks to Moraddin
- * Added SQL DB compatibility testing upon SQL char server startup -- now it
- will not run if any important fields are missing [celest]
- * Added sending list of characters with highest fame for TXT and SQL [celest]
- * Added saving of fame for TXT and SQL [celest]
- * Added saving of plagiarised skills for rogues [celest]
- * Corrected heal and max hp bonus for Apple of Idun [celest]
- * Added /tool/stackdump for Cygwin users to debug .stackdump files.
- Usage: ./stackdump [map/char/login] [sql]
- * Removed set_termfunc usage in char and login servers [celest]
- * Card fix - owl_duke_card should cast Imposito manus on self, not on
- enemy, wind_ghost_card should cast jupiter thunder level 10, not
- Sight level 10 [veider]
- * Finished coding fame point gain [DracoRPG]
- * Fixed crash in clif_guild_memberlist not checking sd->fd could be NULL [veider]
- * Fixed Punk card giving Sight (10) level 5 instead of Quagmarine (92)
- level 5 [veider]
-
-04/10
- * Performance improvements (currently protected with -DTURBO) to
- common/socket.c for very large servers (500+ users) [MouseJstr]
- * Fixed a warning in npc.c, started implementing fame point system [DracoRPG]
- * Added fix for "bad setting of guild members", thanks to Alex14
- * Fixed a bad typo in 'disp_hpmeter', thanks to starlon again ^^;
- * Fixed Bleeding and Poisoned status continueing even after death [celest]
- * Updated bleeding effect for Acid Terror, Head Crush and Pressure [celest]
- * Fixed 'make converters' not working in clean builds [celest]
- * Added capability for Mem manager to clean up ALL unfreed memory on shutdown.
- Leaks will still be reported [celest]
- * Added enable jA's MALLOC_DBN in db.c by default [celest]
- * Fixed compile error caused by strerror_r() [veider]
-
-04/09
- * We now can come up and shutdown leak free.. thanks go to celest for
- assisting me in this long and painful quest [MouseJstr]
- * hitting Control-C three times causes a instant shutdown without any
- cleanup [MouseJstr]
- * Fixed a NPC memory leak [MouseJstr]
- * Added Einbroch to @go [DracoRPG]
- * Fixed a NPC memory leak [MouseJstr]
- * Added lower level gm's shouldn't be able to see higher level gm's with the
- 'disp_hpmeter' option -- thanks to starlon
- * Added 'make converters' -- compiled converters will go under
- /tool [celest]
- * Fixed Weapon Refine not checking if the item type is refineable [celest]
- * Improved checking if items can be dropped, traded, refined or stored [celest]
- * Fixed a bug in SQL char.c, thanks to Alex14
- * Fixed some compile errors in the core [celest]
- * Fixed compile errors when Mem manager is enabled [celest]
- * Added Einbroch monsters spawn, fixed one mapflag for Einnech mines [Lupus]
-
-04/08
- * Changed how signals shut the process down so that we were
- not doing work in a signal handling thread but instead on
- the main thread.. which is important due to the limited
- stack size of a signal thread. [MouseJstr]
- * Eliminated the use of atexit() so that we could control
- the order objects were destroyed in as well as make
- high end debuggers happier about what we were doing after
- exit. [MouseJstr]
- * Fixed a bug in do_final_npc() that was hanging
- shutdown [MouseJstr]
- * Fixed use of deprecated strerror in common/lock.c [MouseJstr]
- * Fixed buffer read-overflow in mail system in char/char.c [MouseJstr]
- * Fixed msg_table definition mismatch in map server [MouseJstr]
- * Fixed memory leak when doubly allocating the scriptlabel_db [MouseJstr]
- * Fixed two uninitialized memory reads in map/skill.c [MouseJstr]
- * Fixed memory leak when accessing AFM files in map/map.c [MouseJstr]
- * Changed default limit for MaxHP/SP from 32500 to 1M in battle_athena.conf [DracoRPG]
- (this is because with Berserk and Tao Gunka Card, players can go up to 100k+ HP)
- * Added 'delay_battle_damage' [celest]
- * Fixed @kamib not working properly, thanks to maldersoft
- * Fixed compile warnings in pc.c [MouseJstr]
- * Fixed a crash in clif_send when sending messages to guild
- members [MouseJstr]
- * Added @shuffle map, @shuffle area, @shuffle world [MouseJstr]
- * Added @mutearea [MouseJstr]
- * Readded setting of sd->skilllv, sd->skillid to skill_use_id
- caused skill failures for BARD/DANCER combo skills [veider]
- * Changed how get_svn_revision() is implemented to compile the actual
- constant into the executable. [MouseJstr]
- * Replaced some printf's in the core with showmsg functions [celest]
- * Replaced 'exists' with a built in function for WIN32 builds [celest]
- * Added 'clouds' and 'fireworks' mapflag [celest]
- * Added a new @fog and @fireworks [celest]
- * Changed the old @fog to @clouds [celest]
-
-04/07
- * Added @version atcommand [Ancyker]
- * Readded @disablenpc (not the same as @hidenpc) [celest]
- * Fixed @reloadscript not removing old NPC's and monsters first [celest]
- * Some changes in mob and NPC unloading [celest]
- * Changed the original @disablenpc to @hidenpc [celest]
- * Fixed HP Conversion to properly not reduce HP if SP is full [celest]
- * Updated Defender -- should reduce walking speed, and does not reduce attack speed
- at level 5 [celest]
-
-04/06
- * Fixed a crash in clif_send when checking packet version, thanks to Alex14
- * Fixed a crash in Deluge, Volcano and Violent Gale, thanks to Alex14
- * Skip partner checking when calculating status with Marionette Control on [celest]
- * Fixed plagiarised skills become unuseable after saving character [celest]
- * Fixed double skill fail messages for stone curse, thanks to wind
- * Added modulus by zero check to rand(), thanks to starlon
- * Improved error messages during npc parsing [MouseJstr]
- * Fixed a crash in login_sql [MouseJstr]
- * Added logs filters in more logs [Lupus]
- now you can set individual bit-mask filter for each log file
- Example: (drops log)
- log_drop: 1 = logs ANY items
- log_drop: 332 = logs only Healing items, Cards and those items which price is >= price_items_log
-
-04/05
- * Fixed damage reflecting (silly typo xP) [celest]
- * Fixed Backstab to not have a push back effect [celest]
- * Fixed auto spell to not taking SP, thanks to Hekate
- * Fixed Sanctuary to have proper healing count, thanks to Hekate
- * Simplified Valaris' online_timer [celest]
- * Updated Fogwall, Spiderweb, and HP Conversion, thanks to redcard [celest]
- * Adding saving character online/offline for TXT char and login (unfinished)
- * Added SERVER_TYPE to core for future plugins support [celest]
- * Added support for the UPNP plugin to release port mappings and re-close firewall
- ports on shutdown [celest]
-
-04/04
- * Some work on re-enabling trade and storage logging [MouseJstr]
- * Updated showmsg with Shinomori's improvements [celest]
- * Fix showmsg for Visual Studio [MouseJstr]
- * Update base code for the UPNP plugin loading [celest]
- * Removed anti-freeze system for login and char -- Shinomori's update would
- be enough to keep inter connections alive [celest]
-
-04/03
- * integrating anti freeze system to status update [Shinomori]
- * Fixed impossible drops at 0.01% chance [Lupus]
- * Fixed some variable declarations in SQL login.c causing compilation errors [veider]
- * Added NetBSD support into Makefile (Still lots of warrnings during compilation [veider]
- * Finished Valkyrie. Now it correctly works. Valhallana reborns players to High Novices. [Lupus]
- (added missed kRO condition: to reborn, player shouldn't have money nor items(equipment) )
- Then Valhallana warps just reborn players to the home city of their main job.
- On Job Level 10 of High Novice they can get 1st Advanced Job from correct 1-1 job quests NPC.
- They'll get there all learnt skill quests.
- On reaching 45 Job Level they may visit Valkyrie and get 2-2-1 / 2-1-1 class (3rd Job)
- from a correct NPC.
- * Fixed SKILL POINTS exploit in Assassin Job Quest [Lupus]
-
-04/02
- * Added bonuses bUnstripable[Weapon|Armor|Helm|Shield]
- instead of just bUnstripable that worked only for armor [DracoRPG]
- * Updated Tiger Knucke Fist's 'fixed state' effect [celest]
- * Allowed people to enable/disable using the online column via
- 'register_users_online' in the login_athena.conf [Codemaster]
- * Added the 3 baby skills WE_BABY, CALLBABY and CALLPARENT [celest]
- * Some tidying up in skill.c [celest]
-
-04/01
- * Updated ShowMessage functions to use vprintf [celest]
- * Fixed a potential crash in pc_walk in Win32 builds [celest]
- * Added bAddEffWhenHitShort and changed bAddEffWhenHit back to all physical
- damage [celest]
-
-03/31
- * Fixed memory corruption during shutdown via the script_buf
- [SVN 1370: MouseJstr]
- * Added some useful filename info to the script parser so that
- it is easier to figure out what is going on [SVN 1370:
- MouseJstr]
- * updated the visual studio projects a little bit [SVN 1370:
- MouseJstr]
- * fixed memory corruption in mapif_guild_info:int_guild.c
- [SVN 1367: MouseJstr]
- * Fixed common/lock.c (problem with unistd.h include) [Codemaster]
- * Added father/mother/child fields to mmo_char_tostr() and
- mmo_char_fromstr() [veider]
- * Added exp sharing between family members for TXT version [veider]
- * Added char_married() and char_child() to TXT version [veider]
- * Fixed memory corruption associated with afm files [SVN 1363: MouseJstr]
- * More pedantic g++ fixes so that it builds without any and
- all warnings [SVN 1362: MouseJstr]
- * Removed some #include's causing warnings on some platforms
- [SVN 1360: MouseJstr]
- * Fixed a bug with InitTimer/StopTimer, thanks to ilpalazzo-sama
- * Set 'undead_detect_type' to 0 by default, thanks to Dino9021
- * Fixed Enchant Poison / Deadly Poison having too high poisoning chance
- * Reverted the pc_remove_map() change temporarily
- * Added back up old files in 'save' before saving new data -- also fixes
- 'Access denied' errors when saving in TXT
-
-03/30
- * sql native vc7 projects now build/link [1351: MouseJstr]
- * Began sql projects for VC7 [1349: MouseJstr]
- * text char-server and login-server now build using VC7. You
- can use the eAthena.sln solution to build all three. These
- are currently just the text versions of the servers. I have
- not added projects yet to build the sql versions.
- [SVN: 1347 MouseJstr]
- * Made the map-server build cleanly using Microsoft Visual
- Studio.. entirely native code without any cygwin dependency
- [SVN: 1345 MouseJstr]
- * Fixed @reloadgmdb in SQL -- after reloading ask the char to forward the new
- accounts back to the map [celest]
- * Added base code for loading Ser's UPNP plugin [celest]
- * Added 'idle_no_share' to battle_athena.conf [celest]
- * updated map server to jA1137~1159
- - Added @reloadatcommand, @reloadbattleconf, @reloadstatusdb, @reloadpcdb
-
- (Note: You should copy the latest msg_athena.conf from conf-tmpl and replace
- your current one EVERYTIME it's updated to prevent it from crashing when it
- can't find the newer messages!)
-
- - Updated packet DB to support /item and /monster
- - Added pc_remove_map()
- - Added 2 new mobs skills: NPC_RUNAWAY and RECALL
- - Updated BioCannibalize
- - Updated Hammerfall, Meteor Shower and Lord of Vermillion -- when MvP's
- cast them they should have much more range
- - Some other skill tweaks
- - Added item_findingore.txt
- * Some tidying up in mob.c and skill.c [celest]
-
-03/29
- * Please make sure to use the stable/sql-files/upgrade_svn1315.sql to
- upgrade your mysql as a result of the new adoption system. Thank you
- -MouseJstr
-
- * More ANSI C++/C conformance fixes [SVN 1341: MouseJstr]
- * Fixed SQL char server crashing when loading the item_db, my bad ^^; [celest]
- * More ANSI C++/C conformance fixes [SVN 1334: MouseJstr]
- * Added auto save guild data (only guardian HP and owner guild ID for now,
- both cached) every 5 minutes during WOE [celest]
- * Updated damage calculation for Magnum Break [celest]
- * Fixed #item not working properly, thanks to TripleOxygen
- * Fixed a lot of compile time problems with our mixed C++/C
- conformance [1328: MouseJstr]
- * Fixed use of storage variable to conform to ANSI C spec
- [1327: MouseJstr]
- * Added CIA-bot to the #athena channel [MouseJstr]
- * Some tidying up in mail.c [celest]
- * Added an invalid pointer check in clif_displaymessage [celest]
- * Added sql upgrade file in sql-files for svn1315's update [celest]
- * Added auto create 'save' folder from 'save-tmpl' when compiling for the
- first time, thanks to Jbain
- * Fixed 'use_sql_db' not read properly in SQL char server, thanks to Wallex
- * Changed db/const.txt to have right baby jobs IDs [veider]
- * Added three fields to mmo_charstatus - father/mother/child
- needed for adoption system [veider]
- * Added adoption support to charserver SQL version [veider]
- * Added atcommand_adopt - create a family of three [veider]
- * Added to char_commands showexp/showdelay so that
- players could remove some messages [veider]
- * Added percent to "Experience Gained" message [veider]
- * Added adoption system support to party_check_exp_share()
- so that parents can share exp with child [veider]
-
-03/28
- * Fixed Auto Berserk activating by itself when changing maps [celest]
- * Re-fixed the SQL syntax crash in logging [celest]
-
-03/27
- * Fixed AutospellWhenHit effect to only work on melee attacks [celest]
- * Fixed AddEffWhenHit effect to only work on melee attacks [celest]
- * Moved guardian hostility checking and monster_ignore_gm check to battle.c --
- processed earlier, and more appropiate [celest]
- * Fixed a SQL syntax crash when logging character names with "'" in them
- [celest]
- * Added use dynamic allocation when loading the msg_table [celest]
- * Fixed some memory leaks with the new timer changes [celest]
- * Refresh the client when day comes to get rid of the night effect (if
- night_darkness_level was used) [celest]
- * Changed @refresh to fake map loading, but without teleporting side effect
- (skill delays reset, extra load on server etc)[celest]
- * Updated SQL file for the item_db, thanks to Zoc
- * Fixed the 'show_mob_hp' option not updating when a monster is healed, thanks
- to leinsirk10
- * Added flexible Filter to the Monster Drops logging [Lupus]
- - Now you can choose what types of items either to log or not.
- - You can also log expensive items (you can set the min logging price)
- * Optimized a bit ATCommands.c functions (inspired by Freya) [Lupus]
- * Added missing parenthesis in my Improve Dodge code, not giving +4/lv to proper jobs [DracoRPG]
- * Added all released cards into monsters drops and Old Card Album [Lupus]
-
-03/25
- * Fixed a typo in my fix for Stalk / Tunnel Drive increasing instead of decreasing speed, sorry [DracoRPG]
- * Rewrote a little bit Improve Dodge [DracoRPG]
- - The speed bonus does not effect when Cloaked
- - Assassins & Rogues get +4 Flee/lv, but all other jobs can get +3/lv
- if they have the skill (not only Thiefs & Super Novices)
- * Some minor changes to Sacrifice in battle.c [celest]
- * Set the Emperium to be immune to Sacrifice [celest]
- * Set the Emperium to be have max status effects immunity [celest]
- * Fixed indoorsrwstable.txt reading even when 'indoors_override_grffile' is
- set to 'no' [celest]
- * Fixed @monsterbig/@monstersmall not working [celest]
- * Fixed @killmonster2 not working [celest]
-
-03/24
- * Updated obj_del to delete all GNUMakeFile and .o files + compiled exes [DracoRPG]
- * Fixed a typo in Stalk / Tunnel Drive speed calculation [DracoRPG]
- * Added some mapflags for new towns [Lupus]
- * Added timer.c optimization / timers sort fix. 'no freezing mobs anymore' Thanx 2 Yor/Freya [Lupus]
- * Added 'map_charid2id' [celest]
- * Changed monster damage logging to save char ID's for the most time -- also
- fixes an exp bug, thanks to Super Novice / Ezhik [celest]
- * Implemented 'event_script_type' -- no changes at '0', at '1' script events
- will work according to Qamera's original mod
- For more info please refer to his thread:
- http://www.eathena.deltaanime.net/board/index.php?showtopic=13305&hl=
- * Set Emsolute Develop as a learnable skill [celest]
- * Updated 'require_glory_guild' [celest]
- - the skill is only acquirable if this is set to 'yes', otherwise it will not
- appear in the guild skill tree. Default is changed to 'no'.
- * Allow monsters to cast skills near themselves even when monster_nofootset
- is set to 'yes' -- they're only not allowed to cast near players [celest]
- * Print number of online users in online.txt/.html even if there's only 1 user
- online [celest]
-
-03/23
- * Adjusted my trade fix [1280: MouseJstr]
- * Fixed possible memory corruption in storage if number of guilds
- in database exceeds the max server can support [1278 : MouseJstr]
- * Fixed @mapexit to properly flush the fifo's before shutting
- server down to help insure all the char data is properly flushed
- [1278: MouseJstr]
- * Fixed trade exploit/crash from invalid data being sent
- [1278: MouseJstr]
- * Possible use of uninitialized data used during mob walk
- calculation resulting in radical mob movement or crash
- [1278: MouseJstr]
- * Fixed some --addrace variables' sizes [celest]
- * Added' require_glory_guild' - sets whether changing guild emblems require
- the Glory of Guild skill [celest]
- * Fixed alot of memory leaks [celest]
- * Added stray memory cleaning routine to db.c [celest]
- * Fixed some compile errors, sorry xP [celest]
- * Corrected potion creation success chances, thanks to Avaj and DracoRPG
- * Removed some unused potion creation code, thanks to DracoRPG
- * Updated Joint Beat's effect, thanks to DracoRPG
-
-03/22
- * Fixed Alchemist's CANNIBALIZE, now it summons correct # of plants. With their real HP [Lupus]
- * Updated @reloadmobdb, @reloadskilldb, @reloaditemdb [celest]
- * Some tidying up in @reloadscript (more work needed) [celest]
- * Moved some gm command messages to msg_athena.conf [celest]
- * Removed skill_range_leniency [celest]
- * Removed enable_upper_class [celest]
- * Removed riding_weight [celest]
- * Added signal handler for SIGPIPE [celest]
- * Updated Frost Joke to affect everyone else in PvP/GvG, thanks to veider
- * Corrected Detect Trap range to be based on level, thanks to veider
- * Updated Tunnel Drive's movement speed, thanks to veider
- * Removed cdp_rate, suggested by leinsirk10
- * Fixed a typo in Acid Terror, thanks to leinsirk10
- * Fixed some typos/memory leak in script cleaning up, thanks to leinsirk10
- * Added gm_can_drop_lv limitations for trading and opening storage, thanks to
- Dino9021
- * Changed shop_exp's calculation to use 0.01% increments, suggested by tcdiem
- * Refixed "--en/ja--" usage in 'monster' script not working properly, thanks
- to sbilly
-
-03/21
- * Moved /tool and /webserver to under /src and added 'make tools' and 'make
- webserver' [celest]
- * Removed ladmin compiling from 'make sql' [celest]
-
-03/20
- * Don't register the day/night timers if any one is set to 0 [celest]
- * Fixed @storage / @gstorage ATcommands thanks2 Yor/Freya [Lupus]
- * Added 4 new card effects from 3/15's patch -- check item_bonus.txt [celest]
- * Added 'enable_ip_rules' to packet_athena.conf [celest]
- * Updated socket debug messages to be more readable [celest]
- * Added a sql upgrader to handle the mob_db changes to assist
- in migrating to the newer SVN servers [MouseJstr]
-
-03/19
- * Added getrefine() for 3/15's card patch -- returns the refined number
- of the current item [celest]
- * Fixed day and night settings not ignored even if they are set to 0,
- my bad ^^; [celest]
-
-03/18
- * Fixed a crash when freeing memory of pets [celest]
- * Added Cygwin support to the -DDUMPSTACK option, and changed its format
- to "<server type><number>.stackdump", thanks to Ser [celest]
- * Removed duplicate fopen in login_log [celest]
- * Don't log SQL char actions if log_char is not enabled in char_athena.conf
- [celest]
- * Updated shop_exp's calculation to give more exp, thanks to tcdiem [celest]
- * Fixed the bDamageWhenUnequip effect dealing damage when unequipping unrelated
- items [celest]
- * Fixed compile errors in SQL char.c [celest]
-
-03/17
- * Added ~86 new cards. Fixed new cards bugs, optimized [Lupus] thanks to Indiona,Landarma
- * Removed nullpo warning from trade.c (my prev anti-spoof protection) [Lupus]
- * Added the new Einbroch/Einbech maps to maps_athena.conf [celest]
- * Added display script filename when a script error is found while parsing
- [celest]
- * Added 2 char-server packets to support Freya's login server [celest]
- * Rewrite on Full Strip [celest]
- * Fixed heap corrupion in map.c caused while loading maps
- [SVN 1241: MouseJstr]
- * Re-fixed compile error in map.c -- sorry ^^; [celest]
- * trade.c fixed possibility of STORAGE+TRADE spooffing dupe [Lupus]
- Now, on accepting trade your active Storage window closes. (Either Common or Guils Storage)
- thanx to Sergey for the exploit test and report
-03/16
- * map.c fixed compilation error [Lupus]
- * Updated jA's dummy socket to mod1137 [celest]
- * Added jA's ddos protection system -- check packet_athena.conf [celest]
- * Moved stall_time's reading from inter_athena.conf to packet_athena.conf
-
-03/15
- * Fixed a compile warning in pc.c [celest]
- * Updated Soul Breaker's damage display, by DracoRPG [celest]
-
-03/14
- * Fixed @marry and @divorce. Also added Wedding music+confetti effect to @marry [Lupus]
- - @marry Player1,Player2
- (don't miss the COMMA ',' betwin the names)
- - @divorce Player
- (in @divorce use any name from the couple)
- * Added auto convert advanced job and baby class sprite ID's in mob_avail.txt
- to correct format [celest]
- * Added SC_Speedup cannot be stacked with Increase Agility [celest]
-
-03/13
- * Added PvP/GvG check for Tiger Knuckle fist [celest]
- * Fixed Pressure reducing the target's SP twice, thanks to deepin [celest]
- * Fixed SQL logging not checking if its supposed to use SQL or TXT logs, thanks
- to Alex14 [celest]
- * Fixed 23 new cards (some effects chances were divided by 100, some cards had no bonuses
- due to misplaced arguments, usage BONUS instead of BONUS2, etc) [Lupus]
-
-03/12
- * Fixed Status Recovery dealing too short blind time on undead [celest]
- * Fixed mobs not affected by Blind status [celest]
- * Added an invalid id check check in map_id2sd [celest]
- * Added sd check in clif_send [celest]
- * Fixed usage of mvp_hp_rate and monster_hp_rate. MVP rate was used for common monsters [Lupus]
- * Added additional random respawn delay for instant respawning monsters (0..5 seconds) [Lupus]
- - Should be made as an option of battle_athena.conf
-
-03/11
- * Speedup player autosaving -- don't save guild castle data at the same time,
- thanks to Alex14 [celest]
- * Optimised guild castle saving when autosaving player data, thanks to Yor /
- Freya (UPDATE: view above)
- * Added sd check in mob_damage, thanks to sbilly [celest]
- * Added Sage enchanting skills can only be cast on party members [celest]
- * Fixed Magic Power not working for ground-targeted skills [celest]
- * Fixed Frost Diver having double freezing chances [celest]
- * Added Breaker's magic damage to be blockable by Pneuma, thanks to DracoRPG
- [celest]
- * Corrected 1206Sakexe's packet detection, thanks to Yor / Freya [celest]
- * When casting cloaking stop displaying the skill title after its finished,
- thanks to Battitude [celest]
-
-03/09
- * Some changes in sig_dump to allow Cygwin produce stackdumps upon crash again,
- thanks to Ser [celest]
- * Changed the default stackdump creation folder from /save to /log [celest]
- * Fixed a typo in TXT login server logging, thanks to Skyer / eAthenaC [celest]
- * Added HP and SP rate underflow checking [celest]
- * Added stop auto attacking if no arrows were equipped [celest]
- * Added new script command: 'cardscnt'. It returns N of inserted cards in the same weapon. [Lupus]
- Now I can start fixing CARDS COMBO exploits. And it's possible to fix old cards power abuse, too.
- e.g. Assassins can equip 2 4-slot weapons and have HUGE card bonuses.
- It's said that you can have only ONE bonus per hand...
- * Fixed and tested script command 'isequippedcnt'. It didn't return real value [Lupus]
- Here's an easy way to test all items:
- 4149,Gargoyle_Card,Gargoyle Card,6,20,0,10,,,,,,,2,,,,{},{ dispbottom "Gagoyle OK:"; dispbottom isequipped(4149); dispbottom isequippedcnt(4149); dispbottom cardscnt(4149); }
- * Fixed "nice char save by the fountain of Prontera"; People (Helpers, GMs) did abuse their power and [Lupus]
- used to @jail friend / @unjail friend. To make his save point in the middle of the Prontera.
- So I made @unjail save coords to 0,0 (on unjail it makes player's save point to appear always in a random place of Prontera)
- You can use this query to "Clear nice save point of all jail/unjail abusers friends"
- SQL QUERY: update ragnarok.char set save_x = 0, save_y = 0 where (save_map = 'prontera.gat' and save_y = 191)
-03/08
- * Added chance for Enchant Poison to poison enemy, and reduced Deadly Poison
- chance [celest]
- * Compacted some code for Deadly Poison [celest]
- * Added DracoRPG's code for Soul Breaker - the magic attack part should work
- as it should now, thanks! ^^ [celest]
- * Reverted the reverted jA event change but this time without bugs (hopefully) [Shinomori]
- * corrected status_change_timer as far as I understand the functionality
- (better have a look at it, Celest), added a some security to prevent pending timers
- * moved two variable declarations to scope start (mob.c and skill.c)
- * Fixes Icewall can be directly cast on players and monsters -- also removes
- the 'unsupported layout' message [celest]
- * Added the new turbo_room and alde_tt to the maps config [celest]
- * Speedup SQL inventory and storage saving, thanks to Ilpalazzo-sama [celest]
- * Reverted a jA change in event loading [celest]
-
-03/07
- * Added uptime logging support whenever the server closes, to enable change
- the 0 to 1 in core.c [celest]
- #define LOG_UPTIME 0
- To-do: Add this as an option to log config
- * Fixed 'make clean' not removing the .o files in /common [celest]
- * Removed some unused code for Breaker and temporarily set Emperium to be
- immune to Breaker [celest]
-
- * Updated core and map-server to jA 1115~1137 [celest]
- - Added monster_delay_damage to battle conf
- - Increased some default settings in script conf
- - Updated Brandish Spear, Soul Change, Soul Burn
- - Updated Body Relocation (shorter distance)
- - Added monster skill NPC_EXPLOSIONSPIRITS
- - Corrected Mindbreaker level to 5
- - Updated Meteor Assault to instant-cast
- - Added command @users - shows the percentage of users in all maps
- - Don't save status if the player is set for disconnection
- - Added free block lock-checking system
- - Added saving the processes' ID into [xx-server.pid]
- - Fixed a memory leak with duplicate script labels
- + For more detailed logs check 'Readme-jap'
-
- * Fixed a typo in Volcano, thanks to Ilpalazzo-sama [celest]
- * Fixed Apple of Idun reading the wrong skill level and giving too much HP
- [celest]
-
-03/06
- * Added new anti-hacker trade protection from Freya. [Lupus]
- It also auto-ban hackers and broadcasts messages to all GMs. Good work, Yor!
- * Misc fixes. [Lupus]
- 2Shino: BTW Some players can't re-connect to the server. Due to the updated session checks in chrif.c
- actually impossible, because the checks handle the connection with the char server, not with users
- anyway, I checked again and rearranged code but functionality is still the same and valid [Shinomori]
-03/05
- * Reversed drop_rate0item option, corrected MVP Drop rate (thanks to Freya) [Lupus]
-03/04
- * Fixed SQL Guild Castle Saving (now fully working, tested on 100 players during WOE) [Lupus]
-03/02
- * Fixed SQL Guild Castle Saving (partial, yet it doesn't clear GuildID when you abandon a castle) [Lupus]
- + added 2 fixes by POW (Mac Guild Position fix, Max Guild Members fix)
- * Fixed Emotion Flood (by Yor) [Lupus]
- * SQL: Fixed temporary ban. Now banned players can enter the server when the ban time is over. [Lupus]
- It wasn't working because STATE hasn't been cleared properly.
- Also fixed wrong client messages (ban reasons: Banned by GM / Temp ban till DATE).
-03/01
- * Effects from dancer/bard skills will stay for 20 seconds after leaving the
- skill area [celest]
- * Fixed /resetstate /resetskill being unuseable at all [celest]
- * Fixed /mm /mapmove being useable by all players [celest]
- * Fixed some compile errors in mob_once_spawn [celest]
- * Corrected a typo in Chemical Protection skills, thanks to holyfork [celest]
-
-02/28
- * Fixed SQL Castle saving bugs [Lupus]
- * Corrected Tiger Fist, Chain Crush, and Palm Push Strike damage, thanks to
- Eskadron [celest]
- * Updated Endure to be usable in GvG, but only gives the mdef bonus [celest]
- * Some rewrites on the passive guild skills effects [celest]
-
-02/27
- * Fixed some bugs in Monk Job Quest. Now it's fully passable. [Lupus]
-02/26
- * Added jA's dummy socket to prevent fd crashes [celest]
- * Added some jA script commands: [Lupus] (first steps to add ELSE, FOR, WHILE, etc)
- - getusersname (works like @WHO ATCommand, outputs by 10 names in the Pop-up window)
- - dispbottom (print message in the common chat window)
- - recovery (restore MaxHP/SP and revives all players on the server)
- - getpetinfo (returns pet's name, type, class, hunger, intimacy)
- - globalmes (works like Announce, but outputs in the common chat window)
- - jump_zero (reserved - for future compatibility)
- - select (reserved - for future compatibility)
- - getmapmobs (# mobs on a named map, use "this" for current map)
- check script.c for their paremeters (in English)
-02/25
- * Fixed npc_dequeue, testing on remove of RoVeRT's npc timer system [Shinomori]
-02/24
-
- * Re-added missing cart dupe-proof code. From Freya [Lupus]
- * Some rewrites on Basilica [celest]
- * Fixed another bad typo in skill list_num reading, thanks to orn [celest]
- * Fixed Steal Item Rate. It has been multiplied twice on common_item_drop value for any kinds of items. [Lupus]
- e.g. If you set droprate of comman items to 500%, then even rare items could be stolen more easily. Thanks to Freya
- * Items Droprate fix. Now it adjusts correctly, w/o overflows. Thanks to Freya [Lupus]
- * mob DBbs EXP reading fix. w/o overflows. Thanks to Freya [Lupus]
-
-02/23
- * Added bAddItemHealRate [celest]
- * Fixed a crash if adding an offline player to a party, thanks to Alex14
- [celest]
- * Fixed a crash with Warp [celest]
- * New Cards: Some fixes, revisions, additions [Lupus]
- * Fixed char server crash when sending wisp with a "'" in the names [celest]
- * Fixed Backstab not checking for and consuming arrows [celest]
- * Fixed another bad typo causing @allskill to not add points into advanced job
- skills [celest]
- * Fixed a bad typo in status.c's StatusChangeTable [celest]
- * Corrected Spiral Pierce's hits in the skill_db [celest]
- * Moved /common/*.o into a obj folder when compiling [celest]
- * Updated core and map server to jA 1094~1115 [celest]
- - Added End_of_exam's Memory Manager for detecting memory problems.
- To enable remove the // in malloc.c line 11
- // #define USE_MEMMGR
- - Added @npctalk and @pettalk
- - Added support for jA's local zlib
- - Fixed a bug with path search long
- - Updated malloc.c to support Memwatch
- - Added DB data loss detection
- - Added db/skill_unit_db.txt
- - Updated skill unit system
- - Changed Waterball to the new timerskill system
- ~ For more detailed logs check 'Readme-jap' (knowledge in japanese required,
- obviously ^^;)
- Please test if there's any skills that might have suddenly stopped working,
- thanks ^^;
-
-02/22
- * Revised New Cards, added missing effects, fixed bugs [Lupus]
- ~20 cards to check left 8) But on 22 Feb some new cards have been announced T__T'
- * Cleaned up some compiler warnings [SVN 1158: MouseJstr]
- * Added perl regular expression support.. look at src/map/npc_chat.c
- for all the dirt on the new features. To build it, you have
- to enable the PCRE_SUPPORT #define and you also have to
- build/install the pcre library. [SVN 1157: MouseJstr]
-
-02/21
- * Added actual item_db.sql into sql-files. [Lupus]
- * Added actual mob_db.sql into sql-files. If you use SQL Mob DB then update it [Lupus]
- * Updated Bleeding effect [celest]
- * Removed some unused code for Graffiti [celest]
-
-02/20
- * Char SQL: Rewrote/Fixed the castle save function, now the sql version saves castles! [Sirius]
- * Fixed the /mm /mapmove command access bug [Sirius]
- * Added skill requirements for the new guild skills [celest]
- * Allow Emergency Recall to be cast in guild castles even if nowarp and
- nowarpto mapflags are enabled [celest]
- * Add 'minimum job level required' for skill_tree reading [celest]
- - Berserk now requires job level 50
- * Added Spring Trap to be able to trigger ankle snare traps that aren't
- activated yet [celest]
- * Added a fix in guild.c by Mellowz [celest]
- * Some rewrites on the pet skill bonuses system -- also fixes pet bonuses
- not effecting stats as they should [celest]
- * Check whether a monster is still alive before starting a status change
- -- also fixes the status_change_timer nullpo errors with grimtooth [celest]
-
-02/19
- * Added bSubSize, bHPGainValue, and bDamageWhenUnequip [celest]
- * Updated bSPDrainValue/Rate to accept a 'type' [celest]
- * Set baby class players' size to 0(small) [celest]
- * Fixed item_db2.txt reading printing wrong number of entries read [celest]
- * Fixed @allskill not giving the newer stalker, whitesmith and creator skills
- [celest]
-
-02/18
- * Fixed a bug with statpoint.txt reading and giving too much stat points,
- thanks to Benz / eAthenaC [celest]
- * Fixed client errors when pecopeco Lord Knights/Paladins log in with a weapon
- equipped [celest]
- * Added bAddRace2 -- check item_bonus.txt [celest]
- * Added mob_race2_db.txt -- contains 'main races' of certain monsters [celest]
- * Updated description for backup_txt in char_athena.conf a bit [celest]
- * Set read_map_from_cache to 2 (enable compression), and map_cache_file back to
- saving in /db instead of /save, as suggested by Poki#3 [celest]
- * Updated description for auto_counter_type, and set plaer_auto_counter_type
- to 0 by default, as suggested by Poki#3 [celest]
- * Use the event names from script_athena.conf to check whenever a player event
- trigger is being read/set [celest]
- * Removed an unused save/bank.txt [celest]
- * Added some new cards effects. (check DB\changelog.txt) [Lupus]
-
-02/17
- * Now all mobs have 10 drops slots. the last one is used for Cards Drops [Lupus]
- Don't forget to update your SQL files (Drop Log: logs.sql and db_tables.sql
- if u were using SQL Mobs DB. Update it from TXT! )
- * Fixed Branch Log TXT filename [Lupus]
- * Made all logs work with compiled TXT Server, too (removed old #ifndef) [Lupus]
- * Added 4 columns into mob_db.txt (check DB\changelog.txt) [Lupus]
- * Fixed some mobs drops (Whisper, etc) and some MVP mobs (bonuses were shifted...) [Lupus]
- * Readded Chemical Protection -- i forgot to check for it when changing some
- jA stuff earlier, sorry ^^; [celest]
- * Removed some old eA code that was causing Frost Nova to do an extra hit
- [celest]
- * Corrected Vulcan Arrow's hits in skill_db -- the bug appeared when the
- correct numbers hardcoded were removed [celest]
- * Readded zlib and zconf .h files to under /lib for compiling in Windows,
- thanks to Ser [celest]
- * Fixed some compile errors in Windows, thanks to Ser [celest]
- * Changed remove_control_characters back to supporting korean chars [celest]
- * Moved some other code around [celest]
- * Added Shinomori's changes to Dissonance -- don't increment the timer again
- if the target has died [celest]
- * Changed some nullpo checks back to normal null checks -- in some situations
- it would be normal to get a NULL [celest]
- * Changed some nullpo checks to print some debug information [celest]
- * Added some sd checks before calling pc_blockskill [celest]
- * Added Dino9021's fix for SQL char's friend list updating [celest]
- * Fixed a crash if the player invited to join a guild is not online, thanks to
- Alex14 [celest]
- * Find the guild invitation sender first before clearing its ID [celest]
-
- * Added 2 new script commands to support 2/15's cards patch... most of the
- effects in kRO should be available now ^^ [celest]
-
- - isequipped(...): Accepts a list of item ID's and checks whether all of
- the items/cards have been equipped.
- - isequippedcnt(...): Same as above, except it returns how many of the items
- are being equipped
-
- Example: if(isequipped(4002,4004,4006)) bonus bStr,1;
-
-02/16
- * Char SQL: Fixed the Whisper chat on splittet mapservers (i think now all features work!) [Sirius]
-
- * Added 3 more of the new card effects -- check item_bonus.txt [celest]
-
- * Added 'bonus4' to support the new card effects that might need up to 4
- parameters [celest]
- * Set 'killerrid' and do PCKillEvent before calling PCDieEvent, thanks to
- mrmagoo for pointing it out [celest]
-
- * Added some new script event related options to script config [celest]
-
- - [die/kill/login/logout]_event_name: Name of script to activate when an
- event has occured
- - event_requires_trigger: whether or not a 'set [EventName],1;' has to be
- defined first for the event to be activated
-
- * Added 8 of the new card effects on the 2/15's patch (still untested and
- not yet added to the item_db)
- - Refer to doc/item_bonus.txt for description
-
- * Minor rewrites on self and enemy weapon/armor breaking during battle [celest]
- * Added missing code for 'bBreakWeaponRate' and 'bBreakArmorRate' effects
- [celest]
- * Added missing code for 'bAddStealRate' effect [celest]
- * Removed redundant 'infinite_autospell' in map_session_data [celest]
- * Fixed Treasure Box spawn bug in all castles. [Lupus]
- * Fixed wrong PresentLOG (it wasn't showing PRESENT BOX type ID) [Lupus]
- * Expanded Monsters Drops Slots from 8 to 10. Everywhere in the sources. [Lupus]
- But in TXT / SQL monsters DB reading functions, I added a temp plug
- to make eA work fine with existing DBs. It reads only 8 drops and fills
- 9th and 10th drops with Zero.
- On expanding MOB_DB.TXT we'll remove that plug.
- We are adding new cards and some monsters
- have no free slots for them. Current state is tested and works fine.
-
-02/15
- * Allow Potion Pitcher to be able to cast on yourself -- i've almost forgot
- about this, thanks to Filougarou and Poki#3 for the fix ^^; [celest]
- * Added Wallex's changes for weapon skills to read list_num from the skill_db
- when calculating damage [celest]
- * Login / Login SQL: Fixed the EXE-Version check (now it works finally :) [Sirius]
- * Char SQL: Fixed the '0x2b05' reply to the mapserver (now multi - mapservers works again!)
- * Rewrote skill blocking system that was allowing people to bypass blocking
- time simply by casting a different skill [celest]
- * Edited out some inconsistencies with skillnotok [celest]
- * Corrected Investigate's damage calculation, thanks to matthias [celest]
- * Generate the remaining entries of the stat point DB if the number of
- entries in db/statuspoints.txt is less than MAX_LEVEL, or statuspoints.txt
- was not found [celest]
- * Try to spawn the player at a default map ("prontera.gat") when logging in if
- the save point map was not found [celest]
-
-02/13
- * added an @autoloot switch that Upa-kun has forgotten [Shinomori]
- * changed pet_skillattack_timer and corrected the poison spore attack
- * tighter check's on "unknown skill" error; but added prints to trace it
- * Added Wallex's changes to only evoke script_rid2sd if agitcheck(1) is used
- [celest]
- * Merged jA's equipment breaking system into the current one, and corrected
- items with unbreakable effects in the item_db [celest]
- - "bonus bUnbreakable,[chance];" changed to
- "bonus bUnbreakable[Weapon/Armor/Helm/Shield],0;"
-
-02/12
- * Merged Dexity's pc_statpointdb into pc_readdb, changed statp's string
- array to short (less memory), and fixed the db not giving status points if
- character level is above 255 [celest]
- * fixing and optimizing sharp shooting
- have implemented two different versions, just have a look and
- decide which to use, description is in the code [Shinomori]
- * Changed default map cache path from db/map.info to save/mapinfo.txt [celest]
- * Removed old code for Sharp Shooting (still a little buggy) [celest]
- * Merged Shinomori's code into map_foreachinpath [celest]
-
-02/11
- * mob.c fixed doubling entries in DROPS LOG, optimized [Lupus]
- * item_noequip.txt now you can disable named consumable items
- during GvG / PvP, too by Maya, optimized and checked [Lupus]
- NOTE: Get rid of old cards on your server!!! IDs: 4149-4332
- before using of this item_db.txt (some cards have changed their IDs)
- and it could cause ALIEN cards in your players equipment 8))
- i.g. a weapon compounding CARDS inserted in armor, etc...
- * item_db.txt Massive update: [Lupus]
- - Added all new missing items (up to st.Valentine's Day Event)
- - Added new cards 4149-4332, sorted them and set their sripts.
- - Fixed some names, typos, weigths and prices
- * Commented out old custom cards from Old_Card_Album.txt till we brush them up [Lupus]
- * Removed old custom cards from MOBs drops [Lupus]
- thanks to Landarma(new items templates) Poki#3(removing cards from drops)
- * Tidied up battle_check_target abit [celest]
- * Updated traps to affect allies as well in GvG [celest]
- * Check if login server is online before setting character to online (in SQL),
- thanks to Alex14 [celest]
- * Synchronise storage as well when saving character to cut down on item
- rollbacks or duping, by Yor / Frea [celest]
- * Added fix for super novices' Guardian Angel system crashing when base_exp = 0
- thanks to Alex14 [celest]
- * not realy fixing the "unknown skill" error
- but returning skill_castend_damage_id when called with skillid < 0
- still need to search a reason why it is called with -1 [Shinomori]
- * EXPERIMENTAL: Reduced memory used for the skill_tree DB by 30+mb [celest]
- * Added script commands isday and isnight - checks whether its night or
- daytime. Example: if(isnight()) ... [celest]
- * Skill Updates [celest]
- - Sharp Shooting: Dropped jA's and kA's code and wrote a new
- map_foreachinpath function in map.c -- about 14 times faster, but still
- uncomplete
- - Ankle Snare: Added matthias' suggestion to let agility reduce more trap
- time, but no less than 3 seconds.
- - Magnum Break: simplified code a bit, and changed to non-targetting /
- automatically damages an area around the caster
- - Tiger Fist: enable it to be used by its own besides as a part of
- the combo skills
- - Devotion: Fixed maximum level difference not reading its setting from
- battle_athena.conf, thanks to leinsirk
- - Soul Burn: Added some safety checks
-
-02/10
- * Login/Login SQL: fixed the client version check function [Sirius]
-
-02/09
- * Added conf-tmpl/readme.txt, explaining the import folder [1066: Ajarn]
- * SQL Char: Rewrote the char_create function (now it's faster/optimized) [Sirius]
- * SQL Char: Fixed the reply if a charname is invalid on create (now it replys denied..) [Sirius]
- * SQL Char: Added a Character limit per Account (can be set in the config) [Sirius]
- * SQL Char: Optimized some SQL-Querys [Sirius]
-
-02/06
- * NULL entries for guild data fixed [Credit to Sirius] [1060: Ajarn]
- * Login server uses login_db_userid and login_db_user_pass for
- queries now [Credit to Sirius] [1059: Ajarn]
- * Login server can now check clientversion in clientinfo
- [Credit to Sirius] [1059: Ajarn]
- * Fixed txt build compile problems[1057: MouseJstr]
- * Corrected end-of-line issues in source code [1056: MouseJstr]
- * Coded new command: @MOBINFO <monster name|monster N> [Lupus]
- the command has also 2 aliases: @monsterinfo, @mi
- It shows all Monster stats, Element, Race and stuff
- It shows all items with their drop chance
- It also shows MVP bonuses (MVP EXP, MVP Drops)
-
-02/05
- * increased the max_files allowed in a grf [1054: MouseJstr]
- * Changed the way char deletion works for SQL [1051: Ajarn]
- - If the email the client fails check then check if the
- email is blank and the DB email is a@a.com (default)
- If so, assume it was created with _M/_F, and delete it
- * SQL Login accepts _M/_F now [Credit to Sirius] [1049: Ajarn]
- * Map server now actually reads bind_ip [1048: Ajarn]
- Side note: login reads bind_ip, but doesn't use login_ip now.
- * Made eA compile under AMD64 64-bit native [1047: MouseJstr]
- * Changed interface binding to use a bind_ip instead of using
- the login_ip, char_ip, or map_ip. This lets you still be
- able to set your WAN IP seperate from what interface you
- wish to bind to. Also, the default is back to binding to
- all interfaces on the machine. [1045: MouseJstr]
- * optimizing OnTouch event name generation [Shinomori]
- * fixing Celests Sharp Shooting [Shinomori]
- * Updated Sharp Shooting AoE code, thanks to Neodis / k-Athena [celest]
- - Update: Adapt jA's path_search algorithm and removed the need of struct
- 'dev' in map_session_data
- - Update: Increase range to 14
- * Tidied up explicit typecasts in status_get_max_hp, thanks to Ilpalazzo-sama
- [celest]
- * Non-MVP / miniboss summoned monsters should give exp, my mistake ^^; [celest]
- Note:- minibosses are considered a 'Boss' as well, not just MVP's
- * Fixed a typo that was preventing packet version 5 clients (628sak) from
- logging in (it was supposed to only block those with 4 or below) [celest]
-
-02/04
- * Fixed more compile signed/unsigned errors [SVN 1040: MouseJstr]
- * TXT convertors now read the import command in inter_athena.conf
- [SVN 1038: Ajarn]
- * Fixed some compile errors [SVN 1037: MouseJstr]
- * Added common/buffer.(c/h) [SVN 1033: Ajarn]
- * Login server can now set it's ip address in the config [SVN 1033: Ajarn]
- * Servers now bind to a single ip address, thus allowing multiple servers to
- a single port [SVN 1033: Ajarn]
- * Added experimental code to generate a stack dump when it segfaults, thanks
- to Ser [celest]
- - does not work with Cygwin, as it does not have glibc
- - to enable, edit the Makefile and remove the # on the line:
-
- # OPT += -DDUMPSTACK -rdynamic
-
- - What it does: everytime eA crashes it'll generate a file "stackdump_
- <number>.txt" in your save folder with a backtrace, which you can
- examine and send to a dev to be fixed.
-
- * Some more tidying up in status_get_ functions [celest]
-
-02/03
- * When loading shop scripts automatically check if the prices can be exploited
- with OC/DC [celest]
- * If the buying price provided in item_db.txt is above 2x higher than selling
- price for an item no need to reset and redetermine the buying price [celest]
- * Fixed a mistake that was causing Ruwach to only work in PvP and PvM [celest]
- * Added DracoRPG's code for Joint Beat effects, thanks! [celest]
-
-02/02
- * Added checks to prevent some crashes in skill.c
- [Full credit to shinomori] [SVN 1022: Ajarn]
- * Removed nullpo check in skillnotok() -- otherwise it will display fail
- messages for monster skills [celest]
- * Added crash check for Ice Wall [celest]
- * Added some optimisations by Ilpalazzo-sama [celest]
- - reduce mob_data->size variable to 1 bytes
- - change from if-else to switch statements in buildin_strmobinfo
-
-01/31
- * Fixed a typo in Pressure causing it to deduct sp from the caster, and remove
- its sp_rate requirement [celest]
- * Updated skill_range_leniency code when casting a ground targetting spell
- ( as in Revision 968) [celest]
- * Added Karma and Manner to const.txt
- -- To change a player's alignment to more Good/Evil in scripting for example,
- use:
- set Karma, Karma + <number here>;
-
- In older exe's (11-08 or older) you can actually check your karma in the
- character alignment screen (alt-A)
- The rest is up to your scripting creativity ^^
-
- * Delete players' ID from id_db when kicking everyone from the map-server due
- to char disconnection -- Fixes an odd crash with lazy mob AI [celest]
- * Added at(@) command @autoloot, which turns autoloot on or off for the
- player who uses it [Upa-Kun]
-
-01/29
- * Fixed Storage Bug with Named Stackable items. Thanks to Nimion [Lupus]
- e.g. Arrows, Iron, Elemental stones, etc...
- * Added a crash check to Safety Wall, thanks to LebrEf[TaVu] / Freya for
- pointing it out [celest]
- * Added some optimisations in clif_parse_MapMove, by Ilpalazzo-sama [celest]
-
-01/28
- * Fixed a typo that was causing /in to always report failure even when the
- name was removed from the ignore list [celest]
- * Link "wisexin", "wisexlist" and "wisall" to the PM ignore functions, and
- "friendslistadd" and "friendslistremove" to the friends list functions
- when parsing the packet DB [celest]
- * added clif_parse_PMIgnoreList (packet 0xd3) from jA [celest]
- * Added DUMP_ALL_PACKETS and moved dump packets code in clif_parse a bit to
- support it [celest]
- * Added base code for Party Item Sharing -- still needs some work in client-
- server support [celest]
- * new GC link http://amber.stormbirds.org/~joshs/gc6.4.tar.gz
- This fixes some issues... works better
- * Added macros skill_chk and skill_get to check for out of bounds errors when
- retrieving info from the skill_db [celest]
-
-01/27
- * Added memory leak fixes with temporary script variables and pets-related
- actions, by End_of_exam / jA 1109 [celest]
- * Kick all characters when the char server disconnects from the map
- server [celest]
- * Added @changelook command for spriters to test view ID's [celest]
- * Added a check to Pneuma to prevent crashing, thanks to LebrEf[TaVu]/Freya for
- pointing it out [celest] [celest]
- * Tweaked garbage collection code after feedback from users
- [SVN 1002: MouseJstr]
- * Fixed TRADE exploits (it cures proxy hack / vending+trade hack) thanks to Freya [Lupus]
-
-01/26
- * Added bug fix for a memory leak caused when a character logs out,
- by End_of_exam / jA 1108 [celest]
- * Fixed a bug in gettick cache when compiling in Windows, thanks to Shinomori
- (jA 1094) [celest]
- * Added updates from jA 1092 [celest]
- - Changed "read_map_from_bitmap" to "read_map_from_cache",
- "map_bitmap_path" to "map_cache_file" in map_athena
- - Fixed item effects not showing when only one was used
- - Fixed a bug in Safety Wall
- - Allow only either Storm Gust or Lord of Vermillion to cause damage if
- stacked together
- - Added path_search_long, map_find_skill_unit_oncell
-
- * Added status_get_sc_def for calculating resistance against status
- abnormalities [celest]
- * Added status.c and status.h of jA 1091 update and moved some functions into
- the new source files:
- -- skill_status_change_ -> status_change_
- -- battle_get_ -> status_get_
- -- pc_calc_ -> status_calc_
- -- pc_getrefinebonus and pc_percentrefinery -> status_getrefinebonus and
- status_percentrefinery
-
- * Updated auto_counter_type's description in battle_athena, thanks to
- akusarujin for pointing it out [celest]
- * Removed some unnecessary skill level checks in battle.c [celest]
- * Removed my changes to /stable/Makefile which has libGC enabled by default
- that i've accidentally commited, sorry ^^; [celest]
- * Removed an unnecessary "cloneskill_lv" from map_session_data [celest]
- * Removed WATER.TXT (this file wasn't used at all. There's no such mapflag as WATER even). [Lupus]
- * Added Water Height of New Yuno Fileds 9 and 11.
- Now Water Ball works there as should. Wizards could levelup on sleepers, too. [Lupus]
- * libGC isn't ready to be the default quite yet... [MouseJstr]
-
- Enough people have asked so... Once you grab a copy of the
- libGC library from (http://amber.stormbirds.org/~joshs/gc6.3.tar),
- you start up a bash shell from inside cygwin and untar
- the gc6.3.tar. This will produce a gc6.3 directory. Then
- cd into that directory and type ./configure. Once that is
- done you type "make" and then "make install". This will
- spray the various includes and libraries all over your
- cygwin install (most in /usr/local).
-
- Now, edit Makefile and change the CC line to use the
-
- CC = gcc -pipe -DGCOLLECT
-
- entry. Also change the GCLIB to
-
- GCLIB = -L/usr/local/lib -lgc
-
- Remember to comment out the ones no longer used. Do a clean
- build and good luck. Obviously, this has not been tested
- by that many people so you really are on the cutting edge
- but if you have good results, send me a note
- (joshs@stormbirds.org) so that we can see if it really is
- ready for prime time.
-
- What should you see? Well, the map-server should not
- grow/consume extra memory anymore. More so, it should use
- dramatically less memory then it did before using the
- garbage collector.
-
- The downside is that it will consume a little more CPU...
-
- The question is, how much? how laggy? what effect on lots
- of players? I've heard stories saying it makes the server
- unplayable and others told me that they saw no
- player-visible effects at all.
-
-
-01/25
- * Fixed TXT compile problems with libGC [celest]
- * Added "Clients older than 2004-09-06aSakray" option to packet_ver_flag in
- battle_athena, just in case server owners still prefer the older clients.
- With so many changes to Sakray over the past months its much better upgrading
- to the newer clients (November or higher recommended) available ;P [celest]
- * Merged Full Strip into jA's tidier stripping skills code -- also fixes
- a typo that was causing Full Strip to do the reverse effect instead,
- and the skill not updating the target's status after successfully unequipping
- items [celest]
- * Tidy up the 4 chemical protection skills into one code block [celest]
- * Corrected Slim Pitcher's code -- sorry, i missed a few things ^^; [celest]
-
-01/24
- * Fixed a typo in Provoke that was causing crashes [celest]
- * Fixed another compile warning in src/char/char.c
- [SVN 985] [MouseJstr]
- * Fixed a account wipe bug in login/login.c (Thanks Wallex)
- [SVN 984] [MouseJstr]
- * Fixed a crash in char_sql/char.c where people were selecting
- chars before requesting connections [SVN 983] [MouseJstr]
- * some G++ compile tweaks and got through several files in the
- map server - [SVN 976] [MouseJstr]
-
- Why are we doing a C++ conversion? We have a lot of duplicate
- code and would like to make the "classes" in the server share
- code.. For example, a pet should be able to share code from
- the player or from a mob. Similerly, introducing a new type
- of entity in the game should be as simple as creating a
- sub-class instead of having to crawl through the entire source
- tree searching for every class check and introducing handler
- code in for your new type.
-
- Finally, while a garbage collector is "cool", it would still
- be nice to have enough object knowledge on how to clean up
- data that it is not absolutely required. It is faster for
- us to clean up our own messes then introduce a whole system
- for cleaning up after ourselves.
-
- Is there a C++ performance penalty? Not if the code is
- written correctly. For example
- 1) No templates - code bloat and destroys cpu cache
- coheriancy
- 2) No C++ exceptions - slows down entering and
- exiting functions
- 3) No operator overloading - makes it hard to
- understand what is going on.
- 4) No C++ STL libraries - Templates, huge, bloated,
- unportable
- 5) No method inlining - code bloat and reduces cache
- coheriancy. Let the optimizer do it...
-
-01/23
- * char-server (SQL & TXT), login-server (SQL & TXT), and txt-coonvertors
- (char and login) all compile on g++ now [svn 975] [Ajarn]
- * Fixed the sizeof errors in g++ [SVN 972] [Ajarn]
- * Reverted back some of the char* changes [SVN 972] [Ajarn]
- * Changed parse_script to now return char* [SVN 969] [Ajarn]
- * Converted run_script and run_script_main from unsigned char* to char*
- [SVN 969] [Ajarn]
- * Forgot a couple small changes [SVN 35] [Ajarn]
- * Changed map_data.gat and map_data_other_server.gat from unsigned char*
- to char* (this might be needed, because of unicode or something, please
- correct me if I'm wrong) [SVN 34] [Ajarn]
- * Converted decode_zip, encode_zip, remove_control_chars, mapif_sendall*,
- and e_mail_check to use char* instead of unsigned char* (again, please test)
- [SVN 34] [Ajarn]
- * Modified skill unit group checking in skill_unit_onplace that might have
- been causing crashes [celest]
- * Updated packet 0x143 length's for version 14 (2004-11-01Sakexe) and version
- 16 (2005-01-10Sakexe), thanks to jathena and ice2big [celest]
- * Fixed login-server compile error with the "new" -> "new_" changes [celest]
-
-01/22
- * Fixed an error that was in my last commit (optimising g++ build) [SVN 29]
- [Ajarn]
- * Made strlib functions char*, instead of unsigned char*. Strings are meant
- to be char. (Shouldn't break anything, but might, please test this for me)
- [SVN 26] [Ajarn]
- * Added cast for TXT version [SVN 25] [Ajarn]
- * Added cast from allocation calls, from void* to intended type [SVN 24] [Ajarn]
- * Changed bool -> bool_. Still need to make convertions between
- char* and unsigned char* valid, and some other convertions too.
- Also, sizeof is being used wierd in map.c, at least g++
- complains [SVN 22] [Ajarn]
- * Changed the rest of the class variable names to class_ and all the new
- variable names to new_, for futher g++ support [SVN 21] [Ajarn]
- * Update both caster and target's SP after using Soul Change -- thanks to Aalye
- / Freya [celest]
- * Force a monster to switch attack target when being casted Provoke [celest]
- * Corrected description for @enablenpc -- "@npcon" -> "@enablenpc" [celest]
- * Since job normalising is still buggy require all 1st class skills to check
- for Basic Skill level when calculating the skill tree [celest]
-
-01/21
- * Updated packet DB configurations : enable_packet_db, packet_db_ver,
- -- check the .txt for description [celest]
-
- Note: For people having connection problems try setting 'enable_packet_db'
- to 'no'... and use the latest client (01-10Sakexe)
-
- * Fixed a small typo in 12-06's packets -- 21b => 21d [celest]
- * Updated packet_db.txt to only contain the latest version, like jAthena,
- since there's not much point to re-read packets eA already supports
- (although if you remove all the //'s it can still read multiple versions)
- [celest]
- * Added clif_config in clif.c - for keeping packet/client connections related
- stuff [celest]
- * Send 'Game Exe not latest version' to a client if it hasn't been authentified
- yet, but is sending a non-connection-related packet to prevent crashing
- -- assume the client is using an unknown exe [celest]
-
-01/20
- * Fixed compile time problems with the non-GC case [MouseJstr]
- * Introduced aMallocA and aCallocA
-
- These two functions allocate "atomic" memory which means
- "memory that does not contain references to other memory".
-
- This lets the garbage collector ignore these objects when searching
- memory for references to other objects dramatically increasing
- performance of the GC.
-
- When in doubt, use aMalloc and aCalloc. It is better to add
- a tiny bit of work to the GC then do cause a crash due to memory
- being cleaned up when it shouldn't.
- [MouseJstr]
- * Modified all calls to aMalloc and aCalloc that reference
- atomic memory to use aMallocA and aCallocA
- [MouseJstr]
- * Modified the socket buffer allocator to use "atomic" memory
- for the fifo data buffers [MouseJstr]
-01/19
- * added support for the Hans-J. Boehm libC garbage collector
- (A copy is in http://amber.stormbirds.org/~joshs/gc6.3.tar).
-
- It is ABSOLUTELY critical for people to use
- aFree/aMalloc/aCalloc/aStrdup for this to work. If somebody
- has just used free or malloc, this will crash when used with
- the garbage collector.
-
- A amusing environmental variable to set is GC_PRINT_STATS (to 1)
- so that you see real time statistics of leaked data being
- recovered.
-
- grab a copy of the gc6.3.tar.. build it .. install it..
- modify the Makefile to have the
-
- CC = gcc -pipe -DGCOLLECT
- GCLIB = -lgc
-
- lines... and make the sql servers (the txt server doesn't
- build using this right now due to stupid Makefile issues)
-
- [MouseJstr]
- * SVN 3 on http://svn.stormbirds.org/svn/eathena will be what
- I diff against when I merge back into delta.. if we ever merge
- back into delta [MouseJstr]
- * Removed 12-06 Sakexe detection, since it doesn't seem to work, and
- might be conflicting with 10-25 clients [celest]
- * Update the Soul Burn target's SP when it has been successfully reduced to 0,
- thanks to Aalye / Freya [celest]
- * Moved SC_PRESERVE and SC_BATTLEORDERS's id so they'll display a status icon
- when cast, thanks XiaoLin of cAthena [celest]
- * Added missing code for Preserve -- i totally forgot to add it ^^; [celest]
-
-01/18
- * Added some skill bug fixes, thanks to Aalye / Freya [celest]
- - stop player attacking if the target goes into hiding
- - fixed Sword Reject not working against swords, only daggers
- - additional check in case Marionette Control doesn't end properly even
- when one of the partners has logged off
- * Added stun, bleeding and SP loss effect for Pressure, thanks to DracoRpg
- [celest]
- * TEST: Fixed more compile warnings in MSVC [celest]
- * TEST: Fixed some compile errors in MS Visual C++, thanks to Ser [celest]
-
-01/17
- * Some rewrites in skill_delayfix [celest]
- - If the delay is < 0, add the weapon aspd delay to it
- - If the skill is not weapon type, and has 0 delay, add 300ms as default
- * Added min_skill_delay_limit as the minimum allowed delay for any skills
- [celest]
- * Some tidying up in battle_get_ functions [celest]
- * Set exp table and job bonus table to 0 before reading - might solve some
- memory bugs [celest]
- * Updated skill range leniency code - If possible try and move towards the
- skill target so that when casting it no longer falls out of range [celest]
-
-01/15
- * Added effects to enemies for Gospel [celest]
- * Added mobs spawn to all Yuno fields (according to 4th Jan patch) [Lupus]
-
-01/14
- * Added party supporting effects for Gospel [celest]
-
-01/13
- * Added and testing support for 2004-12-06Sakexe [celest]
- * Removed emblem changing requiring Glory of Guild limited to TXT only [celest]
- * Corrected a typo preventing Plagiarism to work, thanks to orn [celest]
- * Fixed Berzebub card and other 'reduce cast delays' equipment not working
- [celest]
- * Updated packet_db.txt loading to support reading into multiple packet
- versions [celest]
- * Removed packet_db_ver defining in packet_db.txt -- it'll determine itself
- based on MAX_PACKET_VER [celest]
- * Integrated packet size and function DB's into 1 packet_db [celest]
- * Added MAX_PACKET_VER -- maximum versions supported by eA, including the
- packet_db -- and changed packet size and function DB's to use it [celest]
- * When sending 'Game exe not latest version' packet don't close the session
- immediately so it will still be delivered [celest]
- * Added map-server display if an unidentified client was rejected --
- also fixes the 'empty string sent to _showmessage' [celest]
- * Added a bug - Celest, LOOK AT THIS BUG ASAP. [Codemaster]
- * Tided up/fixed some mobs [Lupus]
-
-01/12
- * Implemented Vending Log [Lupus]
- TODO: use log option to log only important deals (much money, rare items, etc)
-
-01/11
- * Added Shinomori's changes to npc event timers (I never realised it, thanks
- ^^; ) [celest]
- * Updated clif.c to be able to identify client versions based on the packet DB
- [celest]
- * Correct packet_db_ver to the maximum version allowed if it was set too high
- or too low in packet_db.txt [celest]
- * Added support for 2005-01-10Sakexe [celest]
- * Updated packet functions for 2004-11-08 and 2004-12-06 (Note: eA *can*
- support 12-06, but still doesn't recognise it... so unless we find a way,
- it is *not* supported yet) [celest]
- * Updated packet_db, thanks to Sara-chan [celest]
- * REMOVED support for clients before packet version 10 (2004-08-25 and
- earlier) - the client will receive a 'Game Exe not latest version' message
- [celest]
- * Added a check to prevent crashing when trying to log in with
- 2005-01-10aSakexe in servers that don't support it [celest]
- * Added a fix to @sound where if you forgot the .wav exention, i'd attempt to play the file without it (it adds the .wav) [Codemaster] [SVN 949]
- * Added @disguiseall / @undisguiseall [Codemaster] [SVN 949]
- * Added misc. clif.c fixes (jAthena added alot of close(fd)'s, so i added them, too) [Codemaster] [SVN 949]
- * Added bug reports - Celest, you might want to check one of those out [Codemaster] [SVN 949]
- * Fixed a bug in clif.c which didn't allow to enther the map-server.
- It worked under win32, but didn't under Linux. [Lupus]
-
-01/10
- * Completed adding packet DB reading... still needs (a lot) more work in
- clif.c [celest]
- * Added Shinomori's suggestions for npc timers, thanks again ^^ [celest]
- * Removed checking for script event timers' length, and added Shinomori's
- changes [celest]
- * Start adding packet DB reading [celest]
- * Added 'max_eventtimer_length' (default is 32) to script_athena.conf. [celest]
- Some event timers with names longer than 24 could cause the server to close
- itself, change this if you need support for even longer names
- * Removed PCLoginEvent requiring 'PCLoginEvent' for the player to be set to 1
- first to be activated. [celest]
- * Added Shinomori and orn's fix for the skill tree to only check the first
- required skill in the DB and skipping the rest [celest]
- * Modified 'wedding' script command to work with "OnTimer" scripts even without
- doing 'attachnpctimer' (The 'player not attached' error will still display,
- but the effect will appear *over the NPC* instead of the player...
- at least it won't fail ^^) [celest]
- * Added 'attachnpctimer' script command for attaching the player to the current
- npc's timer in "OnTimerxxxx" scripts, thanks to Wallex for the idea. [celest]
- Syntax:
- attachnpctimer;
- attachnpctimer "<Player Name">;
-
- Check /npc/sample/npc_test_npctimer2.txt for example.
- * Added 'detachnpctimer' script command for detaching players from the npc's
- timer. [celest] Syntax:
- detachnpctimer;
- detachnpctimer "<NPC Name">;
-
- * Added 'OnInterIfInitOnce' for WoE scripts & modified the WoE scripts as well [Ajarn & Codemaster] [Thanks to FREYA] [SVN 943]
- * Added the @sound command and the NPC command of soundeffectall
- - works just like soundeffect, but plays for everyone in the area [Codemaster] [SVN 942]
- * Don't allow Pets to attack Guardians outside of WoE [Codemaster] [SVN 940]
- * Require 15% of HP or more for WE_MALE skill [Codemaster] [SVN 940]
- * Require 15% of SP or more for WE_FEMALE skill [Codemaster] [SVN 940]
-
-01/07
- * Upon changing to high novice 100 stat points should be given, not 88 [celest]
- * Give high novices First Aid and Trick Dead upon job changing [celest]
- * Remove some unnecessary checks in battle.c [celest]
- * Added some checks to prevent novices still allowed to attack when using
- Trick Dead [celest]
- * Added 'summon' script command. Syntax:
-
- summon <monster name>,<monster id>[,<event>];
-
- Example: 'summon "Poring", 1002, "OnPoringKilled"; 'will summon (note:
- not *spawn*) 1 poring that'll help its master for 1 minute,
- and activate the "OnPoringKilled" event when killed.
- 'summon "--ja--",-1;' will summon a random monster.
-
- * Added Wallex's fix for the wedding script functions [celest]
- * Added the below-mentioned alive packet to SQL's char and login [celest]
- * Enabled login server 'anti-freeze' by default as a temporary solution
- to char-login disconnection [celest]
- * The TXT char server was rejecting login's "i'm alive" packet and disconnecting
- it... fixed [celest]
- * Stall_time wasn't being read in login_athena at all (not by the login server,
- because the code didn't read it, nor by TXT map server, since its in the SQL
- inter_athena.conf reading)... so moved it to inter_athena.conf, and
- change sql_config_read in map.c to inter_config_read [celest]
- * Some tidying up of battle_get_def and _def2 [celest]
- * Added 'bDelayrate' and changed Phen card, Marduk Card and Berzebub Card's
- effects to use this instead of bCastrate (which was reducing casting time,
- not delay time) [celest]
- * Some tidying up of skill_castfix and skill_delayfix [celest]
- * Added Filougarou's fix for Bowling Bash causing it to only display damage,
- but doesn't do any - thanks! [celest]
- * Set delay_dependon_dex in battle_athena to 'no' by default [celest]
-
- Note: Just to clarify things, on official servers dex is not supposed to
- reduce skill delays, only Poem of Bragi and Berzebub card does!
-
- * Fixed typo in skill_delayfix - reduce delays only if delaynodex was *not* set,
- sorry ^^; [celest]
-
-01/06
- * Fixed various memory corruptions causing crashes (SVN 925) [MouseJstr]
- * Fixed typo in src/map/map.c causing compile
- errors (SVN 924) [MouseJstr]
- * Removed the alive_timer mechanism entirly replaced with
- a stall detection mechanism that will disconnect a player
- who has not sent any data for a configurable
- (conf/login_athena.conf:stall_time) amount of time. The default
- is currently 60 seconds.
-
- The root cause of the disconnect error is that some NAT based
- routers are not dropping the TCP connection when the aliased
- machine goes offline abnormally. This means that we are seeing
- a stalled but perfectly valid TCP connection.
-
- (SVN 924) [MouseJstr]
-01/05
- * Fixed some typos in map_versionscreen() [MC Cameri]
- * Removed loop freeing in map-server's do_final(), it was causing seg faults [MC Cameri]
- * Finished do_storage_final() in map-server's do_final(), it was there but doing nothing [MC Cameri]
- * Fixed Celest's typo making all vended items cost 0 zeny [Codemaster] [SVN 919]
- * If a vending item was priced at 0 it'll be auto changed to 1million [celest]
- * Fixed TXT logging - log_athena.conf reading was kind of messed up [celest]
- * Added a simplified version of Qamera's OnConnect: OnDisconnect: OnDeath:
- NPC events mod, (All credits go to him.) except adapted based on eA's current
- PCLoginEvent. (by davidsiaw) [celest]
- - Currently only 4 events have been added: PCDieEvent, PCKillEvent,
- PCLogoutEvent and PCLoginEvent
- - For notes and usage example check /npc/sample/PCLoginEvent.txt (by
- davidsiaw)
- - To enable them for a player in a script, do
- "set <name of event>, <0 or 1>;"
- (yes it's saved in a permanent character variable and auto read every time)
- - Simply put, if any of them is set to 1 the appropiate event will activate
- p.s - Scripters who are already using PcLoginEvent, you'll need to add a
- "set PCLoginEvent, 1;" now, sorry for the trouble.
-
- * Optimised PCLoginEvent activation a bit [celest]
- * Set 'droprate0item''s default to 'yes' so that items with 0 rate will never
- drop [celest]
- * Look at item type other than item ID as well to check whether it is a card
- in card-related script commands - better support for custom items [celest]
- * Reset all skill variables if the skill fails so certain skills can't be
- abused (such as Warp, thanks to Alex14 for pointing it out) [celest]
- * Added /mapflag/noreturn.txt for disabling butterfly wings (not fly wings)
- [celest]
- * Fixed skill_require_db reading somehow getting corrupted if weapons usable
- for the skill is more than 20, thus causing the skills to fail everytime
- [celest]
- * Fixed @killmonster crashing the server with summoned monsters, thanks to
- Alex14 [celest]
- * Added double_connection_system to battle_athena (not completed yet) [celest]
-
-01/04
- * Fixed GM Command Logging (Not sure why TXT logging still isn't working properly :( ) [Codemaster] [SVN 907]
- * Fixed one of Lupus' additions to the item_db [Codemaster] [SVN 907]
- * Fixed Seismic Weapon Skill (it 100% didn't break target's weapon at 4 level of the skill) [Lupus]
-
-01/02
- * Re-fixed map-server crashing if an empty line is in skill_castnodex.txt,
- thanks to Alex14 for pointing it out (SVN 899) [celest]
- * Modified breaking rates calculating - meltdown's chances is separated from
- self breaking chances (SVN 900) [celest]
- * Reduced MAX_SKILL_LEVEL to 10 to save a bit of memory and speed [celest]
- * Tidied up parts in skill_castfix a bit (SVN 895) [celest]
- * Fixed map-server crashing if an empty line was added in any of the skill-xx
- db files (SVN 895) [celest]
- * Updated skill_castnodex reading - An *optional* 3rd value can be added to set
- whether a skill's delay time can be affected by dex (SVN 895) [celest]
- Example: 46,1,1 - double strafe's delay is not affected by dex
- 46,1,0:0:0:0:1 - only level 5 double strafe is not affected by dex
- * More atempts at memory leak fixes [Codemaster] [SVN 890]
- * Updated weapon breaking rates, thanks to DracoRPG (SVN 891) [celest]
- * Optimized enchanting skills success rates calculation, thanks to Wallex
- (you were right! ^^; ) (SVN 891) [celest]
- * Modified Spiral Pierce and Breaker to type ranged (SVN 891) [celest]
-
-01/01/05
- * Attempted to fix a memory leak [Codemaster] - tell me if it works XD (NPC/Mob memory leak in npc_parse_mob(...)) [SVN 886]
- * Added a char config that allows GMs that have a certain level or above to
- bypass the server's user limit [Codemaster]
- * Changed some create arrow outputs for new kRO 12/21/04 patch [Aria]
- * Fixed some respawn delays of MVP/Miniboss monsters. Redo Umbala/Niflheim fields, added missing mobs, corrected
- monsters quantity. In Niflheim fixed wrong Lord of Death monster ID. [Lupus]
-12/30
- * Added ispartneron, getpartnerid, and warppartner script
- commands to properly support jawaii NPC's (SVN 880) [MouseJstr]
- * Moved supernovice guardian angel messages to msg_athena.conf [celest]
-
-12/29
- * Fix account register wipe issue (SVN 868) [MouseJstr]
- * Double storage/lag exploit fixed (SVN 867) [MouseJstr]
- * Another -1 alive_timer fix (SVN 866) [MouseJstr]
- * Added @dmstart and @dmtick for debugging malloc tests [MouseJstr]
- * Fix some more compile errors on different platforms [MouseJstr]
- * Fixing a crash if you change the name of a pet you don't have (SVN 863) [MouseJstr]
- * Eliminated src/common/malloc.c when not needed [MouseJstr]
- * Some code cleanup in prep for new debugging malloc (SVN 861) [MouseJstr]
- * Updated Soul Breaker's damage calculation [celest]
- * Updated Meteor Assault's cast delay to be not affected by dex [celest]
- * Changed int_guild.c so it will calculate average guild level only if > 0
- members are found - prevent divide by zero crashes (why would an empty guild
- be requested to update its' member info in the first place?) [celest]
- * Added Shinomori's fixes for string copying in script.c [celest]
- * Removed @giveitem since #item it's the one that does this and added some of it's support to #item [MC Cameri]
- -#item <item_name> <item_count> <charname|all|everyone>
- * Uncommented out import in charcommand_athena.conf, there is
- need to have it commented (all the others ones are
- uncommented) [Ajarn]
-
-12/28
- * When restarting the char-server, reset the online status
- of all characters and guild-members (SVN 849) [MouseJstr]
- * Fix double timer_delete caused by pc_alive_timer (SVN 848)
- [MouseJstr]
- * Fixed typo in npcs_athena.conf (mc_cameri verses mc_Cameri),
- thanks Mellow972 for pointing that out (SVN 845) [MouseJstr]
- * Reduced weapon breaking chance for Overthrust, thanks Draco - i almost
- forgot to add this update [celest]
- * added checks into the skill code to prevent proxy's/bots
- from crashing the server by using skillid's that
- are WAY out of range (SVN 841) [MouseJstr]
- * Fixed clif.c errors that prevent old clients from being used. [nsstrunks]
- * Fixed @jobchange to not default to upper (SVN 837) [MouseJstr]
- * Fixed a compile error in @mobsearch (SVN 836) [MouseJstr]
-12/27
- * Updated 1206's packet fuctions in clif.c [celest]
- * Updated the new guild skills - cannot be reused within 5 minutes of
- activating it [celest]
- * Added @mobsearch, @cleanmap and @giveitem from jA [celest]
- * Fixed the guild issues (SVN 832) [MouseJstr]
- * Updated description for player_check_cloak_type [celest]
- * Increased skill range limitations in pc_no_footset [celest]
- * Added exp_calc_type - to alternate between 3 different versions for exp
- calculating [celest]
- * Reinitialized variable 'c' in map_readmap, it's supposed to have a start value. Ex. '-'. [MC Cameri]
- * Commented out dump_timer_heap() again... [MC Cameri]
- * Added include of string.h in malloc.c, was causing compile errors/warnings [MC Cameri]
- * Modified the map progress bar to reduce updates (SVN 829) [MouseJstr]
- * Updated map cache system from jA 1087 - change read_map_from_bitmap to 2 to
- enable zlib compression [celest]
- * don't delete alive_timers of -1 (SVN 823) [MouseJstr]
- * switched malloc,calloc,realloc to aMalloc, aCalloc, aRealloc
- so support the use of a garbage collector (SVN 821) [MouseJstr]
- * Removed some printf's from map-sql [MC Cameri]
- * Uncommented MSG_SQL, for _ShowMessage(), usage: ShowSQL() [MC Cameri]
- * Removed fixed bugs in dev/bugs.txt [MC Cameri]
- * Now I remember what I was smoking.. (SVN 819) [MouseJstr]
- * Fixed a bug in the guild_castle persistance code
- in char_sql. What was I smoking? (SVN: 816) [MouseJstr]
- * Corrected a bad error in itemdb_read_itemslottable [celest]
- * Corrected wrong logging of text in int_guild.c, thanks to Alex14 [celest]
- * Summoned monsters will not give exp and items [celest]
- * Added the 6 new Yuno fields to maps_athena.conf [celest]
- * Added some Freya's optimisations in clif_parse [celest]
- * Added clif_update_mobhp - monsters' hp viewing now updates properly [celest]
- * Set alive_timer to -1 when quitting, not 0, or the map server might assume
- its still active [celest]
- * Changed the *_override_grffile to no by default, because many were having issues with it [Ajarn]
-
-12/26
- * Fixed ANOTHER pet crash (double free) (SVN: 804) [MouseJstr]
- * Added a proper #define for MAX_VENDING (SVN: 802) [MouseJstr]
- * Fixed crash associated with vending more then 12 items
- which walked on memory.. corrupting the pet data
- structure (SVN: 801) [MouseJstr]
- * Fixed a crash that resulted when disconnecting (SVN 800)
- the new client when the old client is still connected [MouseJstr]
- * Fixed some gcc 2.95 compile errors [MouseJstr]
- * Fixed some array bounds errors (SVN 799) [MouseJstr]
- * @mapexit (and do_final) now persist all data to the
- char server before exiting to eliminate storage/inventory
- inconsistancies.. [MouseJstr] (SVN 793)
- * Some cleanup of spiritball memory management [MouseJstr]
- * Dramatic performance work for exp updates to sql. Previously, [MouseJstr]
- when u killed a mob (in party share), it would cause the char_server to
-
- 1) Delete all guilds for all members of your party
- 2) Re-create all guilds for all members of your party with the new exp
- values.
-
- Now it just generates 2 sql statements per party member,
-
- 1) update the guild exp,
- 2) update the guild_member exp.
-
-
- src/common/socket.c src/common/socket.h src/char_sql/char.c
- src/char_sql/int_guild.c src/map/chrif.h src/map/pc.c
- src/map/map.c src/map/chrif.c
-
- * Disabled import charcommand_conf.txt by default [celest]
- * Added Bitmap File system from jA 1086 - automatically generates a cache
- from maps in the GRF to speed up loading. You can enable/disable it with
- read_map_from_bitmap in map_athena.conf. Note: AFM maps will override this
- cache [celest]
- * Added --run_once flag for the map server for testing purposes - closes itself
- when everything is done loading [celest]
- * Added some code for Moonlit Petals and Basilica [celest]
-
-12/24
- * Added suggested fix when client disconnected [celest]
- - send "disconnected due to time gap" and close session when timed out
- - send "server still recognises last login" message and close existing
- session when client reconnects
- * Upped windwalk to lv 10 in skill_tree [MouseJstr]
- * Fixed a scripting crash (SVN: 781) [MouseJstr]
- * removed @changesex and @charchangesex until we can
- fix it properly [MouseJstr]
- * Fixed item-dup bug in storage and cart [MouseJstr]
- * @skilltree was looking outside of the particular class
- of the char to see if they could do a skill [MouseJstr]
- * Fixed a calc_skill_tree bug where too many skills were
- visible [MouseJstr]
- * Added Dev/GDB_reports.txt, take a look in it devs [Ajarn]
- * Corrected description for player_skill_nofootset and monster_skill_nofootset
- in battle_athena.conf [celest]
- * Added a special NPC Logging command 'logmes'. It works as mes"Hello world!";
- It is useful for such NPC as BANKS, CASINO, etc. To keep track of won money, etc.
- Check kafra_bank.txt 1.1 for example.
- Note: mes = otput into client's NPC window
- debugmes = output into map-server window
- logmes = output into lognpc log DB.
-
-12/23
- * Fixed some bugs in the clif.c changes (SVN 766 to SVN 767) [MouseJstr]
- * Added ayo monsters to @disguise
- * Began updated clif.c to work with 1108 and 1206, tested and works [nsstrunks]
- * Fixed skills still being available after a job change [MouseJstr]
- * Changed pc_alive_timer to use map_id2sd - should be more accurate [celest]
- * Added jA 1084's fix to mob.c - check whether the player is still alive
- when calculating exp [celest]
- * Added clif_changed_dir, clif_adopt_process [celest]
- * updated Backstab to show the target's new direction [celest]
- * Corrected the file types of several files in the SVN tree to
- fix the newline issues [MouseJstr]
- * Updated mapflags (added missing payon_in03,ayo_in01,ayo_in02, que_god01, que_god02) [Lupus]
- * Updated Sacrifice : it's now self-activating, and lasts for 5 attacks [celest]
- * Fixed compile errors in party.c [celest]
- * Moved SC_EDP back to 114 [celest]
- * Added some of Shinomori's fixes [celest]
- * Added optimisation in intif_parse_WisMessage from Freya [celest]
-
-12/22
- * Eliminated skill tree mapping since we have entries
- for all the classes in the skill_tree.txt files [MouseJstr]
- * Added finding_ore_rate to battle_athena.conf, thanks to orn [celest]
- * Changed how party exp is passed out to eliminate players
- current in a chat window or those who havn't moved or attacked
- in 2 minutes [MouseJstr]
- * Fixed a bug in resnametable from local directories,
- by fixing a bug in grfio_read causing memory corruptions [MouseJstr]
- * Rearranged how guild messages, gm messages, and party messages
- are moved back and forth between the inter server and the
- map server.. eliminating unneeded round trips to eliminate
- lag on a loaded char-server. [MouseJstr]
-
- src\char_sql\int_party.c src\char_sql\int_guild.c
- src\char_sql\inter.c src\map\atcommand.c src\map\guild.c
- src\map\intif.c src\map\party.c src\char\int_guild.c
- src\char\inter.c src\char\int_party.c
-
- * Reverted npc.c back to before jA 1081. This fixes warp portals missing and other npc bugs [Ajarn]
- * Added conditional SHOW_DEBUG_MSG for displaying ShowDebug()'s output, it was missing before [MC Cameri]
- * Added #zeny, removed @charzeny [MC Cameri]
- * Fixed reading itemslottable.txt causing cards to become unuseable [celest]
- * Added error message if file renaming in lock_fclose fails [celest]
- * Fixed frost diver not working ... my bad =p [celest]
- * Corrected typo in clif_hpmeter - md -> sd [celest]
- * Check if the player has been authentified by the char server before
- clearing any timers in map_quit [celest]
- * Added eventtimercount and timerskill_count - check these before clearing
- or deleting timers [celest]
- * Added sc_count check in skill_stop_dancing [celest]
- * Translated the japanese part in battle_athena.conf [celest]
- * Added ignore the new skill delays when chaining monk combos [celest]
-
-12/21
- * Since conf/maps_list.txt was removed, added conf/maps_athena.conf [Ajarn]
- * Fixed a few NPCs that were giving curly errors. It seems to be caused by a bug that the NPCs' last line isn't read or something [Codemaster]
- * Fixed a tiny compile warning in npc.c [Codemaster]
- * Allowed the NPCs without proper curly brackets to still load, but give an error still [Codemaster]
- * Added variable 'current_file' which tells the filename of the script while loading npcs [MC Cameri]
- -the variable its set in do_init_npc() or something like that, so you can only access it
- after the use of do_init_npc().
- * Fixed the display of a warning saying that a right curly brace was missing [MC Cameri]
- * Removed @charwarp and @rura+ and added #warp, #rura, #rura+ [MC Cameri]
- * Removed conf/npcs_list.txt, and placed it in npc/npcs_athena.conf [MC Cameri]
- * Moved some code in pc_break_equip that was causing compile errors [celest]
- * guild skills vanished due to incorrect placement of a
- check for quest skills in the calc_skilltree code [MouseJstr]
- * Fixed skill LK_HEADCRUSH, LK_JOINTBEAT to work on both on
- and off peco's for lord knights (fixed typo in
- skill_tree.txt) [MouseJstr]
- * removed LK_SPIRALPIERCE from lord knights not on peco's[MouseJstr]
- * Moved the code from map_quit to pc_makesavestatus that
- "adjusts" the skill tree before persisting to the character
- server [MouseJstr]
- * made pc_makesavestatus() properly persist skills that are
- unavailable but not forgotten (example, spiral pierce). You can now
- get spiral pierce, get off your peco, log out, log in, and
- get back on your peco and still have not lost the skill
- points you invested. This also solves the problems of when
- the skill tree gets changed, players loosing the points. [MouseJstr]
- * Made pc_resetskill() properly reset skills that are
- currently not visible due to skilltree changes [MouseJstr]
- * Finished updating most of the map-server to 1082... i'll leave the more
- technical ones for the other devs ^^; [celest]
- * Added other new battle_athena options from jA 1082 ... descriptions not
- translated yet [celest]
- * Removed my own additions for skill delays using aspd and added jA's code
- (-removed-) [celest]
- * Adapted skill_range_leniency to jA's code - should be more stable [celest]
- * Fixed drop rates only limited to multiples of 100's - thanks to jathena
- for pointing it out [celest]
- * Added missing code for castle_defense_rate [celest]
- * Removed pc_undead_nofreeze - no code for it [celest]
- * Updated unrefineable items table - thanks to jathena [celest]
- * Added 3 new script commands: [celest]
- - skilleffect : shows a skill effect on the player
- - doskill/skilluseid (originally by Qamera) : casts a skill on the player
- - skillusepos : casts a skill on a position
- * Added SC_SpeedUp0 [celest]
- * Merged itemdb_read for SQL and TXT [celest]
- * Moved itemdb_read_itemslottable in itemdb.c for better readability [celest]
- * Removed itemdb_read_cardillustnametable limited to TXT only [celest]
- * Added reading itemslotcounttable.txt from the GRF to auto set number of slots
- per item [celest]
- * Added a display message when reading itemslottable from the GRF [celest]
- * Added options in battle_athena.conf to enable/disable reading the GRF for
- indoorrswtable.txt, leveluseskillspamount.txt, num2cardillustnametable.txt,
- itemslottable.txt & itemslotcounttable.txt [celest]
- * Removed conf/npcs_list.txt, and placed it in npc/npcs_athena.conf
-
-12/20
- * Fixed npc_parse_mob with large/tiny monsters causing
- memory corruption [MouseJstr]
- * Fixed a crash in char.c with new chars [MouseJstr]
- * Updated npcs_list.txt [Ajarn]
- * If last_pos.x or .y == 0, set to start point [MouseJstr]
- * Fixed map loading. If a map was not found, it would remove the next map in the list [Ajarn]
- * Moddified some *_athena.conf's (my typos and some inncorect default values) [Ajarn]
- * Added Valaris' double connection bug fix (imalive watchdog) [Valaris]
- * Fixed map-server exiting when it came across a bad NPC file [Codemaster]
- * Updated Valaris' large/tiny monsters - of course, he told us what he did wrong and how to fix it :) [Codemaster & Valaris]
- * Updated makefiles to new strlib locations [Codemaster]
- * Moved strlib.h and strlib.c into the common directory [Codemaster]
- * Updated a bit of jA 1081 - it's not completly updated yet!!! [Codemaster]
- * Fixed some gcc 2.95 problems [MouseJstr]
- * Speedups in socket code [MouseJstr]
- * made samesex weddings work and give out correct ring [MouseJstr]
- * CFixed wedding NPC halting after server reboot/crash (shadowlady put in comments but didn't add to code) [Aria]
- * Added reading leveluseskillspamount.txt from the GRF to auto set sp used for each skill [celest]
- * Added reading indoorrswtable.txt from the GRF to auto set 'indoor' mapflags
- [celest]
- * Added check in grfio.c to prevent crashing if a file wasn't found [celest]
- * Rolling GUILDCACHE and FASTCHAR into main branches/stable
- tree [MouseJstr]
- * Changed max_paramter to an unsigned int so that you can have over 255 as your max stat [Codemaster]
- * Experimental: Reverting a change on deleting any skill units when we're
- logging off - might reduce the 'delete_timer' errors [celest]
- * Added check whether an item is allowed to be dropped, for example wedding
- rings [celest]
- * Updated Acid Terror - should never miss [celest]
- * updated Sword Reject - should display reflected damage properly now [celest]
- * Updated Double Strafe - should only work with bows [celest]
- * Replaced checking whether items can be refined or not with a new function [celest]
- * Added Gengar's fix for npctalk outputting to chat [celest]
- * Allowed some values in script_config to be customised in script_athena.conf [celest]
-
-12/19
- * Added -DFASTCHAR to char_sql for testing performance work
- before I merge it into the main running code [MouseJstr]
- * Added ShowDebug(), Debug(), DisplayDebug(), printDebug(), CL_DEBUG, MSG_DEBUG to _ShowMessage() [MC Cameri]
- * Replaced many \033[x;xm with their corresponding CL_xx constants [MC Cameri]
- * Separated NPCs and Maps from map_athena.conf into npcs_list.txt and maps_list.conf [MC Cameri]
- * Modified all the *_athena.conf's to have the import command enabled by default [Ajarn]
- * Added charcommand_conf.txt and log_conf.txt in conf-tmpl/import [Ajarn]
- * Fixed import command for log_athena.conf file [Ajarn]
- * Updated charcommand.conf [nsstrunks]
-
-12/18
- * Added some of my info to Dev/quotes.txt, not done yet... [Ajarn]
- * Added some ideas to Dev/Ideas_Suggestions.txt [Ajarn]
- * Fixed import command in inter_athena.conf file [Ajarn]
- * Fixed a few command compiling problems for TXT [Codemaster]
- * Modified the main.sql to add the friend0 column; also added the upgrade_1.0.0.sql file [Codemaster]
- * Introduced StringBuf into utils for use in building larger queries [MouseJstr]
- * tested GUILD_CACHE (reducing guild related sql traffic to 30%) in
- prep for unleasing it on the sql using public [MouseJstr]
- * Fixed some SQL queries crashing char server [davidsiaw]
- * Added several PID GM commands, thanks to Dino9021 [nsstrunks]
- * Storage was merging items incorrectly [Mousejstr]
- * eliminated a uninitialized var when using afm maps [MouseJstr]
- * Added concept of dirty storage to reduce saves/load
- to the char server (do a clean build!) [MouseJstr]
- * Eliminated storage_storageopen2 as unused [MouseJstr]
- * Switched to account2storage2() whenever possible
- to eliminate the possibility of saving empty storage
- back to the character server (storage wipes) [MouseJstr]
- * Made it save storage as soon as you close the storage
- window to reduce possibility of loss/abuse [MouseJstr]
-
-12/17
- * Added #item [MC Cameri]
- * Added #storagelist, removed @charstoragelist [MC Cameri]
- * db.c: Fixed probs with OnInit, OnTime, and etc NPC probs
- Just reverted it back. [Lupus]
- * Fixed warning message in db.c line 445 [MC Cameri]
- * Added #effect, removed @chareffect [MC Cameri]
- * Reverted a change in map.c causing problems, sorry >.< [celest]
- * Updated Sphere Mine - it'll now move in the opposite direction if
- being hit by its master [celest]
- * Updated Wind Walk [celest]
- * Fixed skill #301 causing crashes [MouseJstr]
- * Fixed documentation error on gm_skills_unconditionl [MouseJstr]
- * added @grind test command.. only for testing [MouseJstr]
- * Added clearweather to the atcommand configuration file. [nsstrunks]
-
-12/16
- * Added a fix for AFM loading, thanks to Pete [celest]
- * Updated maximum levels for supernovice to 99 [celest]
- * Updated supernovice jobexp table - should be same from 50 onwards [celest]
- * Corrected maximum job level checking in @joblvup and @charjob [celest]
- * Added the new spell scrolls, thanks to Landarma [celest]
- * Corrected a few skills, thanks to orn [celest]
- * Corrected Extremity Fist to not require Explosion Spirits when being used
- right after using Combo Finish or Dilemma [celest]
- * Added instant cast weapon skills rely on attack speed as cast delays, not
- on dex [celest]
- * Fixed mob_ghostring_fix not working [celest]
- * Changed default value for mob_ghostring_fix to 'yes' [celest]
- * Added #itemlist, removed @charitemlist [MC Cameri]
- * Changed @job and #job so that when it's used it unequips all the items, to prevent sprite errors [MC Cameri]
- * Fixed a misuse of mysql_config (thanks Daegalus for
- creating a reproducable environment for me) [MouseJstr]
- * Fixed compile time errors for gcc 2.95 [MouseJstr]
- * Updated Forging and Potion making formulas by DracoRPG [celest]
- * Changes to the guild skills
- - Dropped using sc_data and use flag values instead
- - Changed moving guild skill units to once every 'move request' only instead
- of every movement - should reduce server load abit
- - Corrected crash when checking its skill requirements
- * Initialise 'canregen' when logging into map - forgot to add this earlier,
- sorry ^^; [celest]
-
-12/15
- * Fixed more compile errors gcc 2.95 [MouseJstr]
- * Removed log files from svn... they will be created when
- needed [MouseJstr]
- * Removed unused var in src/map/map.c:107 [MouseJstr]
- * fix compile error in text converters [MouseJstr]
- * Skill Updates [celest]
- - Corrected traps to last longer in GvG
- - Some minor changes to Hiding, Cloaking and Chasewalk to prevent it from
- not working if sc_data is null
- - Corrected an error in Cannibalize
- - Updated Marionette Control to check its range from the partner
- - Updated Berserk to disable hp and sp regen for 5 minutes after the skill
- * Changed the weather gm commands to be able to toggle on and off. For example,
- use @snow once to turn it on, reuse it again to turn it off. [celest]
- * Added Jawaii and Ayothaya to @go list [celest]
- * Changed the default values for ranged, magic and misc damage rate in
- battle_athena to 60, 50 and 60 [celest]
- * Removed redundant 'berserkdamagetick' from map_session_data [celest]
- * Added changes to map.h according to Shinomori [celest]
-
-12/14
- * Changed "Map-server can't connect to char-server" message to reduce output spamming and set it to
- display only once [MC Cameri]
- * Added a busy animation for npc loading [MC Cameri]
- * Replaced the way map loading was displayed into a progress-like way [MC Cameri]
- * Fixed some typos in _ShowMessage() [MC Cameri]
- * Replaced lots of more printf's in map-server with _ShowMessage() [MC Cameri]
- * Added constants for console colors in showmsg.h [MC Cameri]
- * src/char_sql/int_guild.c:56 - t_mes2 was not big enough causing
- stack overrun's, corruptions, and crashes [MouseJstr]
- * common/mmo.h: changed base_level and job_level to unsigned int to increase max levels [Codemaster]
- * char/char.c: added a NULL check for the file in parse_friend_txt [Codemaster]
- * map/atcommand.c/.h: added @clearweather (thanks to Dexity) [Codemaster]
- * map/charcommand.c/.h: added #spiritball [Codemaster]
- * map/mob.c: fixed a compiler warning (ln was an int and was supposed to be an unsigned long int) [Codemaster]
- * Added nullpo_retb to nullpo.c - does a break; if null [celest]
- * Replaced some parts in skill.c with nullpo checks [celest]
- * Corrected some typos - penaly -> penalty [celest]
- * Skill Updates [celest]
- - Most of 12/14's Sakray patch
- * The SKILL_MAX_DB (yes, a different #define from the one below)
- was not large enough for current skills causing memory
- corruptions and crashes [MouseJstr]
- * Fixed how socket handles EAGIN errors (retry instead of
- disconnecting) [MouseJstr]
-
-12/13
- * Skill Updates [celest]
- - Added the new 'Throw Tomahawk' skill (Requires Sakexe1129 or newer)
- - Added some new monster skills - but still not complete.
- - Adjusted Palm Strike, Tiger Fist and Chain Crush based on 12/14's patch
- * Removed redundant 'sg_count' for map_session_data and mob_data [celest]
- * Save both persons' data after trading in case a crash causes them to
- rollback - fix by Freya [celest]
- * Removed 'type' paramater from pc_unequipitem to use 'flag' instead[celest]
- * Moved unequip checking code from clif.c to pc.c [celest]
- * Replaced many printf's in map-server with _ShowMessage(). [MC Cameri]
- * Skill timers for skills with id's higher then 450 were
- corrupting memory [MouseJstr]
- * Increased max skills to 650 from 450 fixing MANY crashes [MouseJstr]
- * Creating Guild events were reading beyond supplied guild names ,
- causing crashes [MouseJstr]
- * trades were derefing -2 into the inventory table sometimes [MouseJstr]
- * Not having a arrow in your inventory but having a bow
- could cause it to set sd->status.inventory[-1].equip=32768
- resulting in a memory corruption [MouseJstr]
- * local broadcasts of messages larger then 64 bytes were
- corrupting the stack, causing crashes [MouseJstr]
- * mob eventnames were reading beyond source point, risking
- going over page boundries, causing crashes [MouseJstr]
- * Internal MAIL system: moved all strings to msg_athena.conf [Lupus]
-
-12/12
- * Made guild skills to check for skill levels first when casting [celest]
-
-12/11
- * Modified arrow checking in skill.c [celest]
- * Corrected Cart Revolution damage calculation [celest]
-
-12/10
- * Fixed players unable to move in AFM maps [celest]
- * Added error message if a player's last map couldn't be found [celest]
- * Moved AFM map check to map_mapname2mapid [celest]
- * Added USE_AFM and USE_AF2 to be used later [celest]
- * Modified sc_data check in pc_damage [celest]
-
-12/9
- * Moved a map_freeblock_unlock() around to eliminate a
- crash [MouseJstr]
- * Fixed how players are cleaned up when they disconnected
- during authentication [MouseJstr]
- * Adjusted some messages in @marry [MouseJstr]
- * Skill Updates [celest]
- - Fixed Auto Spell not working
- - Fixed skill level check causing Baphomet card not to work at all (possibly
- other problems too)
- - Added some new monster skills based on jA mod 1077
- * Changed @job to accept text job names - For example: @job wizard, @job high
- priestess, @job super baby [celest]
- * Added sc_data check for pc_damage [celest]
-
-12/8
- * Fixed @rings [MouseJstr]
- * Added @marry, @divorce, and @rings [MouseJstr]
- * fixed @revive [MouseJstr]
- * Added option to turn off login server logging [celest]
- * Moved char server starting logging to after we've read the configuration
- file first [celest]
- * Fixed crash with supernovices with 100% base exp [celest]
- * Updated the readme a little. [Mass Zero]
-
-12/7
- * Added GUILDCACHE #define to int_guild.c for testing performance
- effects [MouseJstr]
- * Skill Updates [celest]
- - Arrow Shower, Double Strafing, Charge Arrow, Throw Arrow, Sharp Shooting,
- Arrow Vulcan, and Musical Strike now take arrows when used
- - Level 6-10 Stone Curse will not consume a red gem now when it fails
- - Players should be able to use items when they're stoned but not yet
- completely petrified
- - Corrected Triple Blow to work with bows (they actually do ^^)
- * Added 'guildgetexp' script command [celest]
- * Added bLongAtkRate item effect [celest]
- * Implemented Confusion (50%) - still need more info on how monsters act
- when they're confused [celest]
- * Added 'Guardian Angel' code for supernovices [celest]
-
-12/6
- * Fixed file props for new npcs [MouseJstr]
- * Fixed weddings.txt as per Fress_Boy [MouseJstr]
- * Added a case_sensitive to login [MouseJstr]
- * Fixed follow crashing server when gm dies [MouseJstr]
- * Fixed global message not working on txt [Wizputer]
- * fixed a server crash in mobinsite [MouseJstr]
- * fixed a server crash in party sharing exp [MouseJstr]
- * fixed a server crash in BS_FINDINGORE [MouseJstr]
- * Updated Chase Walk [celest]
- * Added 'checkoption1' and 'checkoption2' script functions - Refer to
- /npc/sample/npc_testchkoption.txt for similiar examples [celest]
- * Updated maximum level for Guild Skills [celest]
-
-12/5
- * Fixed another crash sending updates to disconnected
- clients [MouseJstr]
- * Fixed the range_check again to stop it from crashing
- servers [MouseJstr]
- * removed stubbed out unfinished atcommands as per Cameri [MouseJstr]
- * Fixed nullpo's for gcc 2.95 [MouseJstr]
- * Fixed bug in which login-txt was crashing in do_final() due to some free's [MC Cameri]
- * Added nullpo's to all atcommand's functions, phew... [MC Cameri]
- Note: I point out that MouseJstr has added some @commands that start with char which
- havent been finished, they are just there but don't do anything.
- * Removed mapbug.txt and corresponding function in map.c (realized it's pointless) [MC Cameri]
- * Added allow_atcommand_when_mute - Change this to set whether muted players
- can use gm commands [celest]
- * Temporarily leaving the changing guild emblems requiring Glory of Guild
- feature only for TXT until the SQL char-server supports guild skills fully[celest]
- * Modified battle_range again to check if src's type is a player first [celest]
- * Corrected typo in battle_range [celest]
- * Fixed a crash where party chats can be sent to a
- partially disconnected player [MouseJstr]
-
-12/4
- * Fixed a crash in clif_send when player disconnects but player
- object is not fully removed from map [MouseJstr]
- * Fixed a crash associated with NPC_BARRIER [MouseJstr]
- * Renamed flush_fifos_at_exit to flush_fifos [MouseJstr]
- * call check_connect_char_server() on char_server disconnect [MouseJstr]
- * stale skill groups were crashing server [MouseJstr]
- * Fixed crash in SC_LULLABY [MouseJstr]
-12/3
- * hacked the frozen mob issue [MouseJstr]
- * Fixed a battle_range crash [MouseJstr]
- * Updated Stone Curse, Soul Drain, Auto Berserk [celest]
- * Added a fix for MVP exp being multiplied twice by Gengar
- * Modified battle_range to check for sd first [celest]
-
-12/2
- * Fixed double login feature, resets online users when map connects to char [Wizputer]
- * Changed all LOGS inserts to INSERT DELAYED (MySQL has this feature and cache unimportant queries, then
- executes them at once together = 10x faster) [Lupus]
- * Skill Updates [celest]
- - Modified Weapon Refine - should only +1 every time.
- - Updated Berserk, Chase Walk, Slim Pitcher
- - Added skill_range_leniency : In some cases when moving to cast a skill the
- exe will a send a UseSkill packet before the server has moved us to the
- correct position, causing it to fail. Leaving this at 1 should be enough.
- - Fixed a bug that was causing monsters not to move towards the target
- * Added check for clif.c in case the server didn't realise we've died [celest]
- * Added a fix for @npcmove by JohnC and Fredzilla
- * Added motd_type : Set this to 1 if your clients have langtype problems and
- can't display the motd properly[celest]
- * Edited atcommand.c to fix compile warnings [celest]
-
-12/1
- - Make it build against gcc 2.95 [MouseJstr]
- - Changed #define MAX_PET_DB to 300, it's easier for people adding new pets like this. [Nas]
- * Skill Updates [celest]
- - Updated Poison React
- - Added Soul Change, Soul Burn
- - Added a somewhat crude timer for Venom splasher
- - Added a fix for Guild Skills causing crashes by Sara, thanks!
-
-11/30
- * Fixed client crash when disguised characters die [celest]
- * Skill Updates [celest]
- - Fixed and finished Guild Skills (~90%)
- - Fixed Meltdown and Overthrust used together breaking your own weapon
- - Updated Weapon Repair :- uses different materials depending on repaired item
- (Iron Ore/Iron/Steel/Rough Oridecon)
- - Fixed sp recovery problem, thanks to OutSider for pointing it out
- - Updated Tiger Knuckle Fist stun time
- - Added cooldown time for Emergency Recall
- - Fixed typo in skill.c, thanks to Toster
-
-11/29
- * Fixed crash in src/char_sql/char.c when setting chars offline [MouseJstr]
- * Added mapbug.txt which is displayed in map-server, displays
- the last bug or w/e fixed for the map-server [MC Cameri]
- -You may change it whenever you want
- -It will only show if mapbug.txt exists
- -This file must not be included in releases
- * Made some changes in map_versionscreen() to make it easier to
- read/change in the source [MC Cameri]
- * Fixed a typo in _ShowMessage() removing the message caption. [MC Cameri]
- * Fixed typo in map_helpscreen() showing -h instead of --?. [MC Cameri]
- * Added more sc_data checks in skill.c and pc.c [celest]
- * Updated Quagmire, Enchant Deadly Poison, Fog Wall [celest]
-
-11/28
- * Fixed a crash in login_sql/login.c [MouseJstr]
- * made common/socket.c more crash resistant [MouseJstr]
- * Added flush_fifos to socket.c so that we can make sure everything
- has been sent before we shut the process down [MouseJstr]
- * Modified src/char_sql/char.c to flush fifos on exit [MouseJstr]
- * Fixed a crash in src/map/map.c shutdown where it would
- use the char_fd session after it was alrady cleaned up [MouseJstr]
- * removed conf-templ/atcommand_athena.conf.orig [MouseJstr]
- * removed a USE from sql-files/main.sql that should not be there [MouseJstr]
- * Changed MSG_INFO color to bright white, since bright blue want so bright... [MC Cameri]
- * Made Map Removed: %d string be displayed only if there were maps removed. [MC Cameri]
- * Fixed online system for char not sending players left "online" to login when restarting [Wizputer]
- * Fixed damage formula of Cart revolution: 150% +1% per 80ea [Lupus]
- * Removed 2x Chance of Equipment Breaking during CRITICAL attacks [Lupus]
- * Fix some file props [MouseJstr]
- * Added map_versionscreen(), displayed when --version flag is passed on command-line. [MC Cameri]
- * Finished map_helpscreen(), displayed when --help flag passed on command-line. [MC Cameri]
- * Changed Guilds Extention Skill to +6 people per level. [Lupus]
- (tested it for 2 weeks! or a big server)
- * Added a fix for gettimeofday() for WIN32 [Codemaster]
- * skill Updates:
- - Updated Slow Poison, modified checks for skill_unit_onplace abit. [celest]
- - Updated Finger Offensive, thanks to orn [celest]
- * Updated packet_ver_flag's default value, thanks to iscandium [celest]
- * Added warning if motd.txt was not found [celest]
- (Turn on error_log in battle_athena.conf to enable it)
-
-11/27
- * Fixed a few map crashes when char-server crashes [Wizputer]
- * Added fix of 0x2aff and 0x2af8 flooding [Wizputer - thanks Toster]
- * Fixed Map crash when person uses global message hacks [Wizputer]
- * Fixed online system, online column works and prevent double login at the login server [Wizputer]
- * Fixed some compile time errors associated with showmsg [MouseJstr]
- * Added get_svn_revision() in core.c [MC Cameri]
- -Only if you have the file .svn\entries, it will show the revision # at runtime.
-
-11/26
- * Fixed Abrakadabra (2 minor bugs of consumed items - they were ignored if placed in 0 pos) [Lupus]
- * Finished Full Strip, Weapon Refine, Slim Pitcher and Full Protection. [celest]
- * Added skill_nocast_db.txt. Use it to set which skills cannot be used in
- which conditions [celest]
-
-11/25
- * Added @skilltree to help GM's answer skill tree questions [MouseJstr]
- * Update Spider Web; I believe you cannot use it on yourself now. [Codemaster]
- * Added Ore Discovery, and base code for Slim Pitcher and Preservation [celest]
-
-11/24
- * @charreset #reset [MC Cameri]
- * @charstatsall is now #statsall [MC Cameri]
- * @charsave is now #save [MC Cameri]
- * Updated most of jA's 1067; battle.c and skill.c might need more updates! [Codemaster]
- * Fixed char-txt crashing when closing, Codemaster free()'s. [MC Cameri]
- * Skill Updates: [celest]
- - Updated guild skills (60%)
- - updated Weapon Repair and Aura Blade by DracoRPG
- - modified Weapon Repair to use Identify's packet, should show a list of
- repairable items now
-
-11/23
- * Fixed script loading small/large monsters. [Valaris]
- * @charoption is now #option [MC Cameri]
- * @charpetfriendly is now #petfriendly [MC Cameri]
- * @charstats is now #stats [MC Cameri]
- * Skill Updates: [celest]
- - Added some code for the new guild skills (50%) and Moonlit Petals (5%)
- - Notes to other devs: Guild skills with id's 10000-10014 will be stored in
- skill_db[500-514]
- - Corrected Hilt Binding
- - Corrected Assassin Cross' dual wield
- - Changed player_cloak_check_type to yes by default and edited description
- since it's already fully implemented.
- - Added a bit more restrictions to Call Partner and Emergency Recall and
- updated mapflag for sec_pri.gat
- - Added pc_calcspeed and updated Cloaking so it won't need to recalculate
- the player's entire status everytime there is movement.
-
-11/22
- * (TXT)Stripped some code off read_gm_accounts() and made with it addGM() [MC Cameri]
- -Usage: addGM(account_id,level);
- * (TXT)Changed GM_accounts.txt to meet new standards. [MC Cameri]
- * (TXT)Enabled the use of id ranges in GM_accounts.txt [MC Cameri]
- * Added a few free()'s so that I am sure it freed the allocated memory (char & login) [Codemaster]
- * Changed monsters_ignore_gm option to a level value. [Valaris]
- (accounts greater than or equal to this setting won't be attacked by aggressives.)
- * Fixed mapflag #s and constants for setmapflag and remove mapflag. [Valaris]
- * Added skill names for kRO 11/23's new skills [celest]
- - Preserve, Full Strip, Weapon Refine, Slim Pitcher, Full Chemical Protection,
- (Throw) Tomahawk
- * timer.c static int timer_heap_max=0; //fix by Shinomori from eA forums
- ititialize static var!!!
- * Added the old effect list # into effect_list.txt of spira's. [shadow]
- * Added new flag (#3) to clif_specialeffect [MC Cameri]
- * @doom,@die,@doommap now display the Dark Cross effect on you. [MC Cameri]
-11/21
- * Display IP when wdata is expanded [Wizputer]
- * Added bClassChange,%; Has random chance to turn monster into another monster. [Valaris]
- * Re-Fixed Trade/Vending exploit [Lupus]
- * Fixed @whozeny. [Valaris]
- * Added rest of mapflags to const.txt. [Valaris]
- * Closed AFM files after reading, this fixed the improper char-server session #. [Valaris]
- * Skill updates: [Celest]
- - Updated Basilica, Sharp Shooting, Berserk, Meditatio (Thanks to DracoRPG!)
- - Fixed a typo with Blade Stop that was causing crashes, sorry. ^^;
- - Reverted changes to Cloaking, ours is already more updated! ^_^
- - Added temporary code for guild skills to stop crashing
- * @alive, @raisemap, @raise, @revive now display the resurrection skill animation [MC Cameri]
- * @charpetrename(AtCommand) is now #petrename(CharCommand) [MC Cameri]
- * @charjob/(AtCommand) is now #jobchange(CharCommand) [MC Cameri]
- * Removed japanese interserver packets, should fix various problems (jumpto, where, charposreq). [Valaris]
- * Added Yor's trade exploit bug fix. Added 2 skills bugs in the bugs.txt [Lupus]
- * Added charcommand.c/.h for the following reasons: [MC Cameri]
- - Less congestion in atcommand.c
- - Port commands that start with @char to #, example:
- ~ @charoption will now be #option
-
-11/20
- * Added str_lower() function to atcommand.c (from OA). [MC Cameri]
- * Simplified @charchangesex to @charchangesex [player], your sex is changed to the opposite one [MC Cameri]
- * Added @refresh, which is like a @jumpto <<yourself>>. [MC Cameri]
- * Added @petid <pet name> to find pet names, useful when you dont know which pets have eggs. [MC Cameri]
- * Added an effect_list in docs/ for descriptions, free to add onto that later. [spira]
- - Attempt to find new skill effects.
- * Added "nogo" mapflag to prevent the use of @go on a specified map. [Valaris]
- * Fixed small/big monster spawning crashing (mixed up the merge). [Valaris]
- * Fixed crash with upgrading TXT and having more than 256 accounts. [Valaris]
- * TXT upgrades will convert broken flag to attribute column. [Valaris]
- * Prevent use of emotion packet to display red mute emote. [Valaris]
- * Initialized "day" variable in npc.c. [Valaris]
- * Added @whozeny. Shows list of top 50 online players and their zeny sorted from highest to lowest. [Valaris]
- * Added @happyhappyjoyjoy. Makes all players on server do a random emote. [Valaris]
- * Removed -funroll-loops from compile, thanks to kashy for pointing out the problems caused by this. (Do not re-add!) [Valaris]
- * Added check for max vending_max_value when reading config [kobra_k88]
- * Skill updates [celest]
- - Napalm vulcan, Enchant Deadly Poison, Slow Poison (based on jAthena 1066)
- - Create Deadly Poison, thanks to DracoRPG!
- - Added effect for Meteor Assault
- * Added night_darkness_level to battle_athena.conf. [celest]
- Use this to set 'how dark' it'll become during night time. Use 0 for default,
- or between 1-10. (Yeah, i know lots of people hated the original night! xP)
- Warning: It may cause errors with old exe's!
-
-11/19
- * Re-added check for empty bottle when using aqua benedicta. [Valaris]
- * Fixed skills not showing after using @allskill [celest]
-
-11/18
- * Added a line to @unmute, added @mute. [celest]
- Usage: @mute <time in minutes> <character name>
- * Added save_flag for skill_status_change_start [celest]
- * Fixed muting not being saved when you quit/change characters/log off [celest]
- * *Hopefully* fixed the skill tree problem where you have to use 49 skill
- points first before 2nd job skills will show... please report any bugs found
- with it, thank you. [celest]
- * Added flag to pc_unequipitem (thanks to DracoRPG for suggestion) [celest]
- * Skill updates [celest]
- - Updated Cloaking (thanks to orn), Endure
- - Pneuma (thanks to DracoRPG)
- - Changed sc_ id for Basilica
- - Cancel Basilica (100%) when caster moves or uses another skill
- - Updated Poison React (90%), Endure
- - Added SC_BLOCKSKILL, SC_SLOWDOWN
- * Modified pc_attack to fix monster npc's not working in certain exes, thanks
- to leinsirk10 [celest]
- * Moved mapflags organized by type to main mapflag folder and removed "type" folder.
- Removed mapflags organized by location.[kobra_k88]
-
-11/17
- * Added stub-handler for packet 0x3090 into char_sql [MouseJstr]
- * Fixed a crash in the afm reading/closing code [MouseJstr]
- * Added skill_steal_type to battle_athena.conf for the new (but unconfirmed)
- stealing formula [celest]
- * Skill updates: [celest]
- - Removed annoying skill fail messages from rogue's Snatcher
- - Add sc_data check for firewall and fogwall
- - Fixed Berserk (99% hopefully? ^_^)
-
-11/16
- * Fix for compiling against gcc 2.95 [MouseJstr]
- * Added day of week events (OnSat2000) into scripting engine [MouseJstr]
- * Temporarily Disabled GM Command Logs; Weren't working Properly >_<! [Codemaster]
- * Fixed a typo in ../db/Changelog.txt [Nana]
- * Added -funroll-loops argument to makefile to further increase performance [Shinigami]
- * Fixed 2 bugs in DELITEM script command. [Lupus]
- - added deleting priority: If you have some items with the same ID and want to delete some of them, then
- at first it'll delete common items then, if necessary, delete the rest items but upgraded/named/with cards. [Lupus]
- * Added checks for Perfect hiding [celest]
- * Modified level 0 skill check to allow auto blitz beat and steal. [celest]
- * Added constant BaseJob. [celest] Usage: For example, instead of
- If (Class==12) || (Class==4012) || (Class==4035)
- you can use
- If (BaseJob==12) or If (BaseJob==Job_Assassin)
- * Added 'indoors' mapflag : When in-doors players will not be affected by Night [celest]
- * Skill updates [celest]
- - Assumptio is now disabled in GvG maps.
- - Changed cloaking checks a bit.
- - Tidied up some parts of skill.c abit. ;P
- * Added pk_min_level option in battle_athena.conf. Change this to define the
- minimum level players can attack others when pk_mode is on. [celest]
-
-11/15
- * Added a Database Changelog.txt File, use it for any changes inside the db folder. [shadowlady]
- * Added GM Command Logs & Added TXT Logs + TXT Log Options [Codemaster]
- * Added spawning of monsters at specific level by adding ,# after the spawn name. [Valaris]
- mobs_level_up option should be on when using this.
- (Example: {ama_dun01.gat,0,0,0,0 monster Shinobi,99 1401,1,0,0,0} to spawn a level 99 shinobi.)
- * Added addtoskill script command for (levels can stack on top of existing levels). [Valaris]
- Use same usage as skill script command.
- * Added -ffast-math argument to makefile to increase performance, thanks to kashy. [Valaris]
- * Added small and big mob sprite spawning. [Valaris]
- -Added @monstersmall and @monsterbig commands.
- -For using in scripts, use id +2000 for small and id +4000 for big.
- (Example: 3002 for small poring and 5002 for big poring)
- * Added mobs_level_up option. [Valaris]
- -Everytime a monster kills a play their level will increase and show levelup animation.
- -Their 6 main stats and speed will increase as they level.
- -They will recover 10% of the max hp of the player it kills.
- -Player will gain extra exp based on how much stronger a monster is than normal.
- -Skill estimation will show monsters current level (instead of reading from db).
- -Will display level 99 aura if and when a monster hits level 99.
- -They will not go higher than level 99.
- * Fixed maximum skill levels not following skill tree [celest]
- * Updated HP/SP for baby classes [celest]
- * Corrected pc_calc_base_job [celest]
- * Skill updates [celest]
- - Marionette Control (70%), Berserk (thanks to DracoRPG)
- * Modified pc_jobchange code to work with new pc_calc_base_job [celest]
- * Corrected skill_tree_get_max, sorry >.< [celest]
-
-11/14
- * Made the Advance jobchangers to kRO standars with the following;
- - Checks if you are level 99/50 and 2nd class OR above.
- - Checks if you have an Cart of Falcon equiped.
- - Checks if you have any Quest Skills, stores a variable on you and gives them back
- when you change to 1st advance class.
- - Added minimum joblevel to change to an 2nd or 2-2 advance class to job 45 after kro. [Nana]
- * Fixed loading of AFMs when no resnametable is found. [Valaris]
- * mob_db.txt: Fixed Golden Thief Bug MVP MOB mode (it wasn't moving/attacking) [Lupus]
- * Added AFM (Advanced Fusion Map) support, thanks to alexkreuz and fusion. [Valaris]
- Use the afm_dir option in grf-files.txt (currently needs a resnametable.txt).
- * Initialized password variable in login.c. [Valaris]
- * Added zeny_from_mobs option. [Valaris]
- * Corrected the file type attribute on most of the files in three which fixes the
- newline issues between linux and dos [MouseJstr]
- svn propset -R svn:eol-style native .
- * Skill changes [celest]
- - Corrected steal formula, updated BladeStop, Headcrush.
-
-11/13
- * Fixed map-server loading, doesn't require data\resnametable.txt anymore [Wizputer]
- * Updated & Optimized TXT Login from FREYA. (need to do SQL now) [Codemaster]
- * Removed compile warnings in intif.c. [Valaris]
- * Fixed chrif_changesex and @changesex, now uses packet 0x3000. [MC Cameri]
- * Updated some skills, credits to orn and midas. [celest]
- - Magnum Break, Throw Stone, Sprinkle Sand, Magic Power, Memorise, Quagmire,
- Spider Web, Reject Sword, assassin's Dodge, Demonbane, Divine Protection.
- - Firewall, Quagmire, Fog Wall (100%), Marionette Control (30%), Sandman,
- Claymore Trap
- - Adjusted some mob skills for mod support.
- * Fixed weight increase when riding. [celest]
-
-11/12
- * added folder: /save-tmpl, removed folder /save
- * battle_athena.conf: Updated Packet Version Flags.
- * !!!Fixed Mobs Attacking!!!: Thanks for MagicalTux and Yor, I fixed the mobs attacking by using one of their files. [Codemaster]
- * Warps Update : Added ayothaya warps in ./npc/warps/ and in map_athena.conf [Nana]
-11/11
- * Skill Updates : (Need to revise skill_cast_db.txt for new updates)
- ( Sharp Shooting, Sword Reject, Chain Crush Combo, Tiger Knuckle Fist,
- Head Crush, Arrow Vulcan, HP COnversion) Thanks to DracoRPG.
- Fixed Devotion use requeriments. Thanks to Orn. [shadow]
-11/11
- * Corrected minor typo in item_db, and removed/commented out dupe items.[kobra_k88]
-
-11/10
-
- * Updated Sprout (Item #7193), Thin Trunk (Item #7186),
- Huge Leaf (Item #7198), and Rante Whip (Items #1956, #1957)
- - thanks to cheng - [Codemaster]
- * Updated Parasite (Mob #1500) Drops - thanks to cheng [Codemaster]
- * Updated Soft Grass Leaf (Item #7194) - thanks to cheng [Codemaster]
- * Added, Fixed & Updated ALOT of skills: [Codemaster]
- - Fire Pillar, Backstab, Grimtooth, Poison React, Falcon Assalt,
- Skin Tempering, Hilt Binding, Frost Nova, TEMPORARY fix for Create Deadly Poison,
- Enchant Deadly Poison, Endure, Sacrifice, Spider Web, Memorize,
- Hyper Spirit Sphere, Palm Strike, Sword Reject, Pressure, Magic Crasher,
- Amplify Magic Power, Napalm Vulcan, True Sight, Wind Walk, Aura Blade,
- Concentration, Cart Boost, Magic Power
- - Thanks goes to Celest, Midas, and DracoRPG!
- * Fixed spira's mistake in using the packet_len_table; no biggie ^_^ [Codemaster]
- * char/char.c & char_sql/char.c: Fixed start_armor and start_weapon - thanks to AppleGirl [Codemaster]
- * Added packetver 6 flag to makefile. [Valaris]
-
-11/09
- * mob_db.txt: Fixed Drake dropping the wrong card - thanks to roslen [Codemaster]
- * chat.c: Fixed multiple joins in a single chat - thanks to Alex14 and CHaNGeTe. [Codemaster]
- * clif.c: Fixed sitting. [spira]
- * - Fixed item 657 Job ID , 11/09 patch updates to item_db, Correct stats for item 5097
- - Added Unbreakable funcions to item_db armors/shields/garments/footgear [shadow]
- * Defined SO_REUSEPORT to allow the servers to re-use ports if server crashes [Wizputer]
-
-11/08
- * Added new script command: getMapXY(MapName$,MaxX,MapY,type,[CharName$]) by Lorky [Lupus]
- Get position for char/npc/pet/mob objects.
- * Attempted to fix the mob bug (still haven't :( ). Still updated mob.c/clif.c/chrif.c according to jA 1057. [Codemaster]
- * Fixed item_cardalbum.txt: Removed extra column which mad all albums empty [Lupus]
-11/07
- - Fixed a few npcs will start implementing new ones soon, have alot on paper, need to type them up. [Nasedo]
- * clif.c: Added a few things from jAthena 1057 [Codemaster]
- * Corrected some typos in item_db. Items 1143 and 1719 need to be re-checked.[kobra_k88]
- * Fixed compiling error in Map Server in which @repairall was using old broken system [Shinigami]
-
-11/06
- - Added missing items in item_db.txt and reorganised it.[Nasedo]
- - Fixed wrong coords for payon guild flags (it has the old map coords), fixed some weapon effects in item_db,
- updated the mob_db (90%+ done), added EP 5-9 mobs to mob_branch.txt and EP 6 cards to item_cardalbum.txt[shadowlady]
- * atcommand.c/.h,chrif.c/.h, added @changesex. [MC Cameri]
- * mob.c & clif.c: Added & Modified a few parts dealing with monsters and guilds [Codemaster]
- * mob.c: Re-did a few parts according to jA's 1057 version. [Codemaster]
-11/05
- * Fixed and redo optional Umbalian quests:
- - Wise Man Fabius' Umbalian Language Quest (you can learn Umbalian language in
- alternative way)
- - On speaking with Umbalian Chief about meaning of masks you activate Turban Thief Quest
- (For Sphinx Mask)
- * Fixed several bugs in Niflheim Piano Keys Quest (wrong variable name, missing CLOSE buttons)
- Zeny/Item Exploit in Niflhein Sairin NPC quest (should add similiar checks in every
- easy quests with expensive prizes to avoid exploits) [Lupus]
- * Revised and fixed all comodo,yuno,amatsu,gonryun,umbala mobs and drops. Also fixed mvp and woe mobs too [Shadowlady]
- * Fixed crash from guild skill point allocation, there seems to be a problem with guilds loading still. [Valaris]
- * Fixed committed typo in map_athena.conf, remove aria's dev npc (was giving errors preventing server startup). [Valaris]
-
-11/04
- * Added sara-chan's packet db with support for 11-1 [Valaris]
- * [alot of files >_<]: Changed connecting a bit, from oA source; it connected easier/better in my opinion so... [Codemaster]
- * map/skill.c: Added a few checks for level 0 skills being used. [Codemaster]
-
-11/03
- * Removed broken column, using attribute column for broken equip now. [Valaris]
-
-11/02
- * Fixed compile time errors for gcc 2.95 [MouseJstr]
- * Changed Blacksmith skill "Hammer Fall" to only be used with maces or Hammers [Aria]
-11/01
- * Set Comodo Kafra to warp to Umbala (11/2/04 patch) [Aria]
-10/31
- * Fixed Devnpcs giving off errors -_- [Aria]
- * Fixed showmsg.c compile warnings thanks to LittleWolf. [Valaris]
- * map/skill.c: removed a second declaration of sc_def_vit in skill_castend_nodamage_id; thanks to spira [Codemaster]
- * map/battle.c: re-did Water Ball's damage calculation [Codemaster]
-10/30
- * Added new guild skills to skill_db from sara-chan. [Valaris]
- * db/skill_cast_db, map/skill.c, map/pc.c: Corrected a few CHASEWALK things; Thanks to Celest [Codemaster]
- * char_sql/char.c: removed the double free()ing of gm_account [Codemaster]
- * Added check for c value in int_guild.c before dividing to calculate average level. [Valaris]
- * Commented unfinished dev npcs and added devnpc to map_athena. [Aria]
- * Removed item requirement of Aqua Benedicta (10/26 patch) [Aria]
- * Fixed some compiling error for Map-server [Shinigami]
- * Removed Rogue's backstab pushback effect (kRO style again) [Aria]
- * Changed requirement of Fire Pillar to fit kRO style; lv1-5 = no gem, but 6-10 = 1 gem. [Aria]
- * Added Mugendai's oA GUI support for map-server (previously not added) [davidsiaw]
- * Included Mugendai's oA GUI in the GUI folder [davidsiaw]
-
-10/29
- * another exploit fix for mult in script [MouseJstr]
- * Corrected mode for peco, condor mobs. Added custom mobs Easter Egg and Easter Bunny for easter egg event script.
- Corrected mysteltain card location, penomena card typo.[kobra_k88]
-10/28
- * Cloak Speed fixed [Aria]
- * Throw stone damage fixed [Aria]
- * Added new packets from Sara to packet database. [spira]
- * Fixed and changed command lists to reflect on new packet changes. [spira]
- - @jumpto, @recall, and @where
- - Removed old @ignore* functions because they are no longer needed.
- * Replaced old whisper ignoring code with better and more efficient code. [spira]
- * Added packet_db.txt support, removed old packet functions. [spira]
- * fixed forger-zeny exploit [MouseJstr]
-
- Doing script math that returns a number greater then (1<<31) will now
- return a (1<<31). This prevents you from finding a npc that
- asks for a quantity then mults the cost by that quantity to get
- what you need to pay.
-
-10/27
- * Updated CSS styles for readme a bit [Aria]
- * branched athena at version 340 to begin work on the packet_db
- stuff from jA. To retrieve it, do a svn co http://dev.deltaanime.net:8080/svn/eathena/packetdb
- later, once we are happy with it.. and feel it is stable, we will remerge it back into the main tree via the appropriate svn commands
- as a FYI, the command I used to create this branch was:
- svn copy http://dev.deltaanime.net:8080/svn/eathena/athena http://dev.deltaanime.net:8080/svn/eathena/packetdb -m "branch for packetdb work"
- * Fixed Aldebaran (gatekeeper conditions bugs and wrong Key ID). Fixed some typos in other cities [Lupus]
-
-10/26
- * Added more quotes -_- [Aria]
- * Modified a few things related to guild skills. I hope it doesn't interfere with anyone else's work, and isn't seen as bad. [Sara-chan]
- -Support for new guild skills, though they don't work yet. Added guild_skill_get_inf and guild_skill_get_max entries for them based on early info.
- -Changed guild_skillup functions based on japanese code, but for a good reason.
- It allows for guild skill trees, sort of. I made Kafra Contract and Guardian Research require Guild Approval, for instance.
- I think the first four new guild skill requirements are correct, at the least.
- I hope everything works alright, it's my first contribution to eA in quite some time and I'm rather rusty at programming of late.
- * Fixed compile errors in showmsg.c. [Sara-chan]
- * Fixed Mouse's devnpc only saying his quotes once per server reset [Aria]
- * Added log_athena.conf & the logs.sql file [Codemaster]
- * Added log configurations to inter_athena.conf [Codemaster]
-
-10/25
- * Fixed a compiling error in Login-server [Shinigami]
- * Added alot of Azndragon's spiffy logs & then added a few things of my own (Silly Dragon, structs are for kids!) [Codemaster]
- * Corrected a small bug (forgot to change a few variables!) in my different GM option. [Codemaster]
- * Fixed items and mobs in DB. Added new items. [Lupus]
- * Fixed some NPC bugs (check NPC=changelog.txt) [Lupus]
- * Fixed getting MAX PET ID (SQL only bug) [Lupus]
- * Fix char/char.c which was crashing after double freeing logs
- [MouseJstr]
- * Improved basic server rebooters [MC Cameri]
- * Commited common/showmsg.c/.h, previously missing x_X [MC Cameri]
- * Added a basic server rebooter program, just use 'runserver.bat' to start up the server. [Shinigami]
-
-10/24
- * Added files common/showmsg.c/.h which contain the function _ShowMessage(char *string, int flag) [MC Cameri]
- -Check showmsg.h to see how to use it.
- -This function is made to replace printf in all the cases, so it MUST be used instead of print from now on.
- -Begin your own journey of replacing/removing old printfs, and using the new function.
- -This function was previously called ShowMessage() in oA, it is now merged, some changes have been done:
- 1.Outputting messages to a file is now disabled(commented out).
- 2.MSG_SQL is now commented out.
- 3.If the server is out of memory, it will not use abort().
- 4.Returns 0 if successful, 1 otherwise.
- -Example: ShowInfo("hello\n"); will print this to the screen: [Info]: hello
- -Always add \n at the end. Unless someone edits the function to add the \n whether it exists or not.
- -Just add #include "showmsg.h" wherever you need it.
- * Edited ALL makefile's to include showmsg.o -> _ShowMessage(). [MC Cameri]
- * Updated readme/gmcommands.html with new @uptime command [MC Cameri]
- * Somebody had added some additional noskill checks that prevented
- vending from happening in prontera [MouseJstr]
- * Added bypass with gm_allskill of npc_selfdestruct2. [Valaris]
- * Corrected some minor bugs in some Quests [Shinigami]
- * Added new maps (from lateast kRO patch)
- Touched WOE (u can't surrender the castle during the WOE), misc fix of the bank [Lupus]
-10/23
- * Added the option to read GM accounts from a different table than login. Default set to login table. [Codemaster]
- * Finished Aria and MC Cameri "Dev edition" NPCs. [Aria]
- * Corrected extra stat points given to high classes. [Valaris]
- * Added high classes getting the extra 40 stat points on stat reset. [Valaris]
- * performance tweaks on socket.c to reduce lag [MouseJstr]
-
- do a "OPT="-g -DNSOCKET" to compile with the changes
- enabled.. and tell me if you notice a change in your
- performance/lag
-
- * Added @uptime to atcommand.c [MC Cameri]
- * Added the stuff for my npc to Dev/quotes.txt [MC Cameri]
-
-10/22
- * Replaced some checkcart and checkoption(x) with checkcart(0) in the guild folder [Aria]
- * Waiting for various devs to tell me their coords, map, biography, quotes,
- moving coords, etc. In the meantime, I replaced them with (x,y),(lols),
- (sprite),(somewhere), and if they didn't give me any info, I didn't
- add them yet =P. [Aria]
- * Added Davidsiaw, Shinigami, Lord, Codemaster, MouseJstr, MC Cameri, and Darkchild
- to "Dev edition" NPCs [Aria]
- * Revised "Dev edition" NPC layout a bit, should go smoother now. Should be final
- layout unless something goes wrong =O. [Aria]
- * Fixed the eol markers on some checked in files [Mousejstr]
- * Fix two crashes caused by calling isGM on mobs [MouseJstr]
- * Added folder "mc_cameri" in npc/other which contains my bank npc. [MC Cameri]
- * Changed "Dev edition" NPC layout so that they move by themselves by timers. [Aria]
- * Changed "Dev edition" NPCs to walk during quotes, and added biography. [Aria]
- * Fixed quest/all_quest.txt not showing the correct description of the binoculars. [Aria]
- * Fixed quest/all_quest.txt not going to stop pass and not displaying requirements. [Aria]
- * Fixed removing friends from the list [davidsiaw]
- * Added PCLoginEvent NPC (When a character logs on, NPC runs as if he/she clicked the NPC) [davidsiaw]
- The NPC sample is located in npc/sample/PCLoginEvent.txt (you only need one of these NPCs)
-
-10/21
- * Fixed clothes_dyer.txt: Disabled Assassing/Rogues Dye. Also fixed wrong labels [Lupus]
- * Fixed hair_dyer.txt: fixed missing menu label [Lupus]
- * new_hats.txt 1.4 fixed amount of Fish Tail (300 -> 30), Zeny bugs in Ear of Angel,
- Ear of Demon,Big Golden Bell, Mistress Crown,
- Crown of The Ancient Queen, Indian Headband, Orc Hero Helm [Lupus]
- * Fixed name of a flower in Prontera quest (Dreamy->Illusion) according to our DB [Lupus]
- * Fixed item names in the temp Crusader Job Quest according to our DB [Lupus]
-
-10/20
- * map/mob.c: Added mob_exclusion_add() & mob_exclusion_check() [Codemaster]
- * map/map.h: Changed Vending Struct: amount and value to unsigned variables (so they CAN'T be 0 or less) [Codemaster]
- * map/mob.h: Added mob_exclusion_add() & mob_exclusion_check() [Codemaster]
- * Aligned the list of commands at the beginning of atcommand.c,
- with tabs instead of spaces. [MC Cameri]
- * Fixed AtCommand_SetBattleFlag, it was previously being called by "@send"
- instead of "@setbattleflag". [MC Cameri]
- * Finished basic layout, finished Aria starting to create Shinigami [Aria]
- * Started to create "Dev edition" npcs [Aria]
- * Fixed a compile error in src/char/char.c [MouseJstr]
- * Fixed a bug in @trade where the distance was not ignored [MouseJstr]
- * Fixed a potential inf loop in pc.c when multi_level_up is set to no. [MouseJstr]
- * implemented Friends List support for TXT version [davidsiaw]
- * added queries in main.sql for Friends List. mySQL support for friends list pending [davidsiaw]
-10/19
- * switched login_sql/login.c to use binary when retrieving
- by account name [MouseJstr]
- * skill.c & skill.h: added skill_type_cloaking [Codemaster]
- * storage.c & storage.h: added storage_storageopen2() [Codemaster]
-10/18
- * Changed readme layout for 1.0 scheme. [Aria]
- * added check for console variable in login_sql [MouseJstr]
- * Fully translated the untranslated items in the database.sql for SQL. [Nana]
- * Dev/TODO, asigned myself to some items. [MC Cameri]
- * char/char.c: changed the online system to omniAthena's [Codemaster]
- * char/char.c: added log_char and log_inter [Codemaster]
- * char/char.c: added Mugendai's GUI Support [Codemaster]
- * char/int_guild.c: added log_inter and db_path [Codemaster]
- * char/inter.c: added log_inter [Codemaster]
- * char/char.c: added db_path [Codemaster]
- * char/inter.h: added log_inter [Codemaster]
- * char_sql/char.c: added log_char and log_inter [Codemaster]
- * char_sql/char.c: added Mugendai's GUI Support [Codemaster]
- * char_sql/int_guild.c: added log_inter and db_path [Codemaster]
- * char_sql/inter.c: added log_inter [Codemaster]
- * char_sql/char.c: added db_path [Codemaster]
- * char_sql/inter.h: added log_inter [Codemaster]
- * conf-tmpl/char_athena.conf: Added log_char & db_path [Codemaster]
- * conf-tmpl/inter_athena.conf: Added log_inter [Codemaster]
-
-10/18
- * clif.c,clif.h,map.h,npc.c,npc.h,script.c: Added NPC Walking. [Valaris]
- -npcspeed #; To change npc's walking speed.
- -npcwalkto x,y; Move an npc to a position (keep it less than area size, or sprite will glitch and disappear).
- -npcstop; Stops an npc's movement.
-
-10/17
- * Made the IP autodetection code work under a pure win32
- executable
- * Fixed the win32 build and made a src\map\Makefile.win32 to
- make it easier to do win32 builds of the map server
-
- src\common\utils.c src\common\utils.h src\common\grfio.c
- src\common\nullpo.h src\common\timer.c src\common\db.c
- src\common\socket.c src\common\core.c src\common\mmo.h
- src\common\socket.h src\map\script.c src\map\intif.c
- src\map\npc.c src\map\clif.c src\map\map.c src\map\clif.h
- src\map\chrif.c src\map\Makefile.win32
-
- * skill.c: Fixed noicewall flag. [Valaris]
- * battle.c: Battle calc weapon attack now checks to see if pc_breakweapon successfully broke the weapon then recalculates damage. [Valaris]
- * pc.c: Removed broken weapon and equip status, just unequips items again when broken. [Valaris]
- Removed useless code from pc_breakweapon and pc_breakarmor. [Valaris]
- * Added template for server control from the console [Wizputer]
- * conf-tmpl/login_athena.conf: added support for Mugendai's "I'm Alive" Timer and GUI Flush [Codemaster]
- * login/login.c: added support for Mugendai's "I'm Alive" Timer and GUI Flush [Codemaster]
- * login_sql/login.c: added support for Mugendai's "I'm Alive" Timer and GUI Flush [Codemaster]
- * Usable GM commands from server console admin:<gm command>:<map of "GM"> <x> <y> [Wizputer]
- * Added server:shutdown to shutdown server and help [Wizputer]
- * Added user discretion for console commands in conf files [Wizputer]
-10/16
- * Fixed Umbala Language Quest, where a certain NPC would freeze you due to an unfinished script [Shinigami]
- * Fixed bug in new_hats.txt where free items are given out [Shinigami]
- * Correct Morroc warp npc overlaying Kafra npc. [Aria]
- * Corrected npc typos. [Aria]
- * Skip over npc_selfdestruction2 on allskillup (thanks to celest) [Valaris]
- * Fixed some typos in some of the NPCs [Shinigami]
- * tweaked the auto-configure stuff to deal better with
- machines that have no detectable IP addresses.. is this
- possible? [MouseJstr]
- src\char_sql\char.c src\char\char.c src\map\map.c
- * Made it compile under gcc 2.95 [MouseJstr]
- * made the char and map servers auto-configure their own IP's
- whenever possible [MouseJstr]
-
- If you do not specify the server IP address, it now determines it
- on its own. This means that to get a server running that is
- accessable from the internet you should only need to specify the
- location of the data.grf files. This eliminates one more point
- of misconfiguration.
-
- It does not correctly auto-configure for when you are behind a
- router or a firewall since there is no way of determining the
- external IP address. On the other hand, we should be able to
- eliminate the lan_conf file since we know our IP addresses as well
- as our netmask.
-10/15
- * added @setbattleflag to let me reset a battle_config at runtime [MouseJstr]
- * --- RC5 release
- * another fix to oA2eA-rc5.sql to fix the sell_price [MouseJstr]
- * Redid readme, updated content a bit, and made ps2 poster in preperation for 1.0 RC5 release. [Evera]
- * made MAX_HAIR_STYLE, MAX_HAIR_COLOR, and MAX_CLOTH_COLOR
- configurable via battle_config. [MouseJstr]
- * made the dex spell cast time scaling configurable via battle_config
- [MouseJstr]
- * made the visible area_size configurable via battle_config
- [MouseJstr]
- * Reorganized and added the warps into their respective folders, updated map_athena.conf. [Nana]
- * Added 2 script commands GETLOOK, GETSAVEPOINT (thanks to Lorky). [Lupus]
- * Added kafra_bank NPC - a new bank with daily interst of 0.1#%. [Lupus]
- * Changed cast time for champion soul collect to 1 sec (thanks to midas). [Valaris]
- * Added midas's fix for +30 hitrate with Sonic Blow. [Valaris]
-
-10/14
- * Fixed help.txt for some @gm commands [MouseJstr]
- * made login.c compile on gcc 2.95 [MouseJstr]
- * Fix backwards compatability with old mob skill formats [MouseJstr]
- * Added mail system commands and @refreshonline to help.txt. [Valaris]
- * Fixed char guild storage bug [MouseJstr]
- * Prevented breakage of Weapons/Armor if the respective Alchemist Chemical Protection skill is applied. [spira]
- * Added so nochat end will set manner to 0. [Valaris]
- * Added broken item check before breaking (to prevent an item from breaking more than once) [Valaris]
- * Re-wrote parts of equipment breaking. It will check to make sure it was not a miss before doing break calculations. [Valaris]
- * Re-added negative value exploit fix. [Valaris]
- * Fixed guardian opposition search. [Valaris]
- * Added @unmute. [Valaris]
- * Added check for map existing before cleanup (server will exit instead of crashing if maps aren't found). [Valaris]
-
-10/13
- * Fixed parse of antifreeze enable/disable flag. [Valaris]
- * Fixed end-of-line flags in source tree [MouseJstr]
-
-10/12
- * Prevent attack/skill usage while wearing tux/wedding dress. [Valaris]
- * Remove item unequip on tux/wedding equip. [Valaris]
-
-10/11
- * Added mail system (for SQL version only). [Valaris]
- - @checkmail
- - @listmail
- - @listnewmail
- - @readmail <#>
- - @deletemail <#>
- - @sendmail <name> <message>
- - @sendprioritymail <name> <message>
- - Added battle_athena.conf option to enable/disable mail system.
- - Added mail.sql for sql mail system.
- - Use "*" for name to send to all players. Level must be >= to @sendprioritymail level.
-
- * Added @refreshonline to refresh player online status in SQL version. [Valaris]
-
-10/10
- * Modified ja blacksmith repair code to function with our broken equipment system. [Valaris]
- * Removed ja repair script commands, they aren't compatible with our broken equipment. [Valaris]
- * Fixed error in Morroc jewel dealer. [Valaris]
- * Added so supernovices will get flee from improve dodge. [Valaris]
- * Fixed assassin and rogue flee bonus, was giving +50 instead of +40. [Valaris]
- * Fixed bug with using remove trap on a snared monsters and the monster would stay stuck. [Valaris]
- * Added a check for row return in an sql statement in login. [Valaris]
- * Added some pointer initializations in map.c. [Valaris]
- * Calculate pc status when equipping or unequipping pet items. [Valaris]
- * Fixed crash in looting pet skills if loot size was greater than 10. [Valaris]
-
-10/05
- * Fixed all mob spawn names (typos, errors, wrong names) according to the mob_db.txt [Lupus]
- * Added YggdrasilKid's fixed exp.txt. [valaris]
-
-10/04
- * Added missed close file functions in pc.c [Lupus]
- * Added some new items, fixed some item names and translated all grabled items in item_db.txt [Lupus]
- * Fixed bug in MOB_DB and in MOB_BRANCH DB related to wrong "Elder" ID number [Lupus]
- * Fixed toggle for using sql item db in char-server. [Valaris]
- * Added interval settings for anti-freeze system. [Valaris]
- * Added enable/disable options in char_athena.conf and login_athena.conf for anti-freeze system. [Valaris]
- * Re-added anti-freeze system. [Valaris]
- * Cleaned up warning in src/common/db.c. [MouseJstr]
- * Removed afm map checking from char. [Valaris]
- * npc.c - Re-enabled new "OnTouch" function. Added a missing line to npc_event in npc.c(line 667).
- pc.c - Added 2 missing "else" statements on (line 3702 and 3842). Now ontouch works correctly and activates
- everytime instead of only once like in RC4. [kobra_k88]
- * clif.c - Added: npc_scriptcont(sd,RFIFOL(fd,2)); to "void cliff_parse_NpcCloseClicked" function.
- Now "close2" script command works properly. Previously, it would freeze the server.[kobra_k88]
-
-10/03
- * added oA to eA database conversion .sql [MouseJstr]
- * renamed sql to sql-files to eliminate a problem with make [MouseJstr]
- * Fixed Assassin Quest where "Nameless One" NPC would freeze after clicking "next". [Shinigami]
- * charkillable now returns status on target [MouseJstr]
- * skill names now have descriptions pulled from the client [Mousejstr]
- * Mapflag "petals" has been changed to "sakura". [Valaris]
- * The weather @commands will now set that particular mapflag on until server is restarted, and will send weather effect
- to everyone on that map. It also will not allow the occurance of the command more than once. This method means
- everyone coming onto the map after the command has been used will see the effect. [Valaris]
- * Added yor's latest ladmin.c. [Valaris]
- * Fixed bug in delitem script command that caused it to delete all of an item. [Valaris]
- * Modified Makefile's to work better in non-sql environment [MouseJstr]
- * A lot of work on source tree making it more ANSI C compliant [MouseJstr]
- * Finalized the timers on shutdown
- turned off malloc debugging on db's. [MouseJstr]
- * Added release hook's into db's [MouseJstr]
- * Added runflag to core to allow cleaner shutdown [MouseJstr]
- * Work on LCCWIN32 for building under Windows natively [MouseJstr]
- * modified @mapexit to use runflag for cleaner shutdown [MouseJstr]
- * Improve cleanup on exit of map server of all objects [MouseJstr]
- * statpoint reader can now be larger then 1432 bytes [MouseJstr]
- * Fixed so dancing effect is cleared when warping. [Valaris]
-
-10/02
- * Modified battle config muting players option to work more effectively. [Valaris]
- * Fixed mute from showing red bubble to players. [Valaris]
- * Fixed disguise sprite staying when teleporting. [Valaris]
- * Added a special mob ai check in mob.c. [Valaris]
- * Fixed petit pet skill's damage from ever increasing. [Valaris]
- * Removed pet weight and pet loot options, someone re-added them, and this conflicts with pet skills. [Valaris]
- * Added new skills to mob_skill_db (skills for Alchemist summon marine sphere among others) [Valaris]
- * Updated skill_cast_db and skill_require_db for summon marine sphere and biocanniablize skills. [Valaris]
- * Fix for drops by luck crashing. [Valaris]
- * Removed @nuke for now. [Valaris]
- * Added japanese ankle snare code. [Valaris]
- * Using better code for alchemist marine sphere. [Valaris]
- * Reverted back to old method of OnTouch for now for compatibility with older scripts. [Valaris]
- * Fixed an infinite loop with preventing multi level up and high novices. [Valaris]
- * Storage saving in SQL was based on MAX_INVENTORY. Switched to MAX_STORAGE and MAX_GUILD_STORAGE. [Valaris]
- Should resolve items disappearing. Thanks to fov for pointing this out.
- * Updated skill_db entries for biocannibalize and summon marine sphere. [Valaris]
- * Changed sql item name row sizes to 24, and changed memory allocation to 25 bytes instead of 29. [Valaris]
- * Added upgrade_1.0.0-rc5_database.sql (will set name columns of item db to varchar(24). [Valaris]
- * Removed anti-freeze system. [Valaris]
- * Began removing AFM, unless someone wants to complete this. [Valaris]
- * Added an online status timer. Will check online status of players every hour (for sql version). [Valaris]
- * Added malloc to map.c. [Valaris]
- * Added some variables for new mob exclusion. [Valaris]
- * Using malloc in pc.c. [Valaris]
- * Added skill reset checks to high/advanced/baby classes. [Valaris]
-
-10/01
- * Fixed up const.db. [Valaris]
- - Added
- bBreakWeaponRate 1068
- bBreakArmorRate 1069
- bAddStealRate 1070
-
- - Fixed
- bMagicDamageReturn 1071
- bRandomAttackIncrease 1072
- bAllStats 1073
- bAgiVit 1074
- bAgiDexStr 1075
- bPerfectHide 1076
- bDisguise 1077
-
- * Rewrote mute disable option in clif.c, it did not need to end status. [Valaris]
- * Added a missing check for SC_NOCHAT in clif.c. [Valaris]
- * Changed comments on max_lv in battle_config to be less
- confusing [MouseJstr]
- * Fixed Gypsy Job Quest, added Crusader Job Quest [Lupus]
- * Adding missing noquests from previous tree [MouseJstr]
- * merged conf files between txt and sql [MouseJstr]
- * According to item_db.txt and mob_db.txt fixed some name differences, wrong item names in
- pet_db.txt,mob_branch.txt,item_violetbox.txt,item_giftbox.txt,item_cardalbum.txt [Lupus]
- * Added specialeffect2 script command. Works the same as specialeffect, but the effect will be applied
- to the player interacting with the npc instead of being applied on the npc. [Valaris]
- * Added hasitems script command. If a player has any items it will return 1 in an if statement. [Valaris]
- * Added npctalk script command. Syntax : npctalk "These are my words"; [Valaris]
- * Removed script::say in favor of Valaris's version. [MouseJstr]
- * Fixed a bug in guild alliances where it was treating a friend as a foe. [MouseJstr]
- * Fixed crash in weapon breaking. Was not doing a block type check on the source. [Valaris]
-
-
-09/29
- * Fixed small, almost non-existing memoryleak, in grfio.c that could
- cause some systems to exit the application [Kalaspuff]
-
-09/26
- (Dated On Aegis Website)
- *--Released 1.0.0 RC4--*
-09/25
- * Reorganized Npc folder for release
- * Updated map_athena.conf
- * Remove certain statuses when warping (Cloaking, Sitting, Gangster's Paradise) that would allow the effect to
- continue and a player to walk normally. [Valaris]
- * Remove speed increase of theif and high thief from improve dodge (only assassins and assassin cross's are
- supposed to get this bonus) [Valaris]
- * removed more #ifdef's between TXT and SQL [MouseJstr]
-09/24
-
- * Added @charkillable (to make players killable) [MouseJstr]
- * Added @dropall (throws all items on ground) [MouseJstr]
- * Added @chardropall (throws all players items on ground) [MouseJstr]
- * Added @storeall (put all items in store) [MouseJstr]
- * Added @charstoreall (put all players items in storage) [MouseJstr]
- * Added @skillid (look up a skill by name) [MouseJstr]
- * Added @useskill (use a skill by id) [MouseJstr]
-
-09/23
- * Update Some Npc Stuff In Payon [Darkchild]
- * Added Sage Quest [Darkchild]
- * added @killable - all players can hit you, even out of pvp [MouseJstr]
- * Changed Basilica to prevent the priest from walking [MouseJstr]
- * Restore base files in save directory [Yor]
- * Castle spawn/conquering fix: [Akaru]
- - Spawns monster when the guild is not owned when the server starts
- - Spawns emperium with the monsters when guild is not owned yet
- - If AgitStart and AgitEnd occurs while castle had not been owned, it is just ignored so that the monsters that are guarding the castle and the emperium would not be killed.
- - Prevent spawn of emperium/monsters after castle is owned
- - In short, you can clear and conquer the castle any time even when it's not agitstart'ed if the castle is unowned, like in official servers
-
-09/22
- * added @killer to let GM's hit players outside of pvp [MouseJstr]
- * added @skilloff to turn off skills on a map [MouseJstr]
- * added @skillon to turn on skills on a map [MouseJstr]
- * added @follow to follow players (including warping after them) [MouseJstr]
- * added battle_config option to control the max number of castles a guild can have [MouseJstr]
- * upgraded the guild alliance checker [MouseJstr]
- * added battle_config to control if ghosty armor works for mobs [MouseJstr]
- * Fixed battle_config to control how much GTB actually helps [MouseJstr]
- * Fixed battle_config to control if pvp battles give exp or drops [MouseJstr]
- * Added map aliasing [MouseJstr]
- * changed the map_nick2sd to be able to handle sub-strings for refering to players [MouseJstr]
- * made turning of skills on a map actually work [MouseJstr]
- * Updated Makefiles/GNUMakefiles to include the compilation of /common/malloc.o [PoW]
-
-09/19
- * Corrected @charstoragelist: [Yor]
- - because account2storage function create a void storage if it's not exist, somethimes a player could lost its storage.
- -> creation of account2storage2 to just ask pointer of storage if exist and use it in @charstoragelist.
- * Improved range system of @monster/@spawn (nearest of GM when less monsters) [Yor]
- * Client until 2004-09-06 (included) is now completely recognized [Yor]
- * Fixed kafra storage request for all new clients [Yor]
-
-09/18
- * Changed to Yor's code that doesn't try and read when it's already not found [Akaru]
- * Removed check for resnametable in data folder exit -> the resnametable isn't even used if present and it should be optional and not compulsory to have a resnametable in the data folder! [Akaru]
- * Added an option to choose which clients are accepted on the server (2nd part and finish: Check accepted versions) [Yor]
- * Added an option to choose which clients are accepted on the server (1st part: reading of the option) [Yor]
- * Fixed action request (sit, attack, etc..) for all new clients [Yor]
- * Fixed solve char name for all new clients [Yor]
- * Fixed get char name for all new clients [Yor]
- * Fixed an error about packet number on char name function [Yor]
- * Added items drop packet for all new clients [Yor]
- * Fixed: in clif_send (global send, not individual send) don't send a packet that client doesn't recognize [Yor]
-
-09/17
- * Added check to make sure mob is already moving before initiating random walk
- when the item they are going to loot disappears. [Valaris]
- * Client of 2004-07-13 is now completely recognized [Yor]
- * Fixed items take packet for all new clients [Yor]
- * Corrected packet sizes for each client version (not set packet size if packet doesn't exist) [Yor]
- * Fixed direction position for all new clients [Yor]
-
-09/16
- * Client of 2004-07-06 is now completely recognized [Yor]
- * Fixed skills to position with all new clients [Yor]
- * Fixed incomplete packet of authentification [Yor]
- * Fixed size of packets for all clients [Yor]
- * Improved detection of client version at authentification [Yor]
- * Improved packet parsing of client (search packet version before to parse) [Yor]
- * Added packets size of 0x20d and 0x20e [Yor]
-
-09/15
- * Added "nude" script command, will strip player of all equipment. Syntax : nude; [Valaris]
- * Removed sandstorm flag, since it does not work as intended (is not a constant effect like believed) [Valaris]
- * Added specialeffect script command. Syntax: specialeffect #; [Valaris]
- * Moved noicewall flag to a better position. [Valaris]
- * Added mob type check to skill_castfix to prevent crashing. [Valaris]
- * corrected error: skill to id (RFIFOW->RFIFOL) [Yor]
- * Added packets size of 0x204 and 0x20b [Yor]
- * Fixed skill_to_id with all new clients [Yor]
- * Fixed tick sending with all new clients [Yor]
- * Fixed items use with all new clients [Yor]
- * Fixed move with all new clients [Yor]
- * Speedup WantToConnect function [Yor]
- * Call correct function with any clients packet - size is not correctly set actually [Yor]
-
-09/14
- * Resetlvl will unequip items that require more than level 1. [Valaris]
- * Added message about new clients (not actually supported) [Yor]
- * Added correct call of clif_parse_WantToConnection function for all client types [Yor]
- * Added size of packet 0x0214 [Yor]
- * Fixed calls of 'clif_send' function [Yor]
-
-09/13
- * Modified item_db to have more name consistency, added more translations for items [Akaru]
- * Fixed in clif_sitting usage of a buffer [Yor]
- * Fixed in clif_movechar usage of a buffer for clif_set007b [Yor]
- * Fixed in clif_spawnpc usage of a buffer for clif_set0078 [Yor]
- * Corrected a commented printf in packet 0x2b0e for debug [Yor]
-
-09/12
- * Put (commented) parse printf in char.c at the right place (to have all informations) [Yor]
- * Added Alchemist JobQuest [Darkchild]
- * Added Inn Npcs [Darkchild]
-
-09/11
- * Added @charitemlist/@charstoragelist/@charcartlist GM commands to display items of a player [Yor]
-
-09/10
- * Added a better id control of monster id in @spawn/@monster... GM commands [Yor]
- * Correction of an error at reading of 'wisp_server_name' option (char.c) [Yor]
-
-09/09
- * Change @spawn/@monster2... GM commands to spawn in close area [Yor]
- * commented some printf in char.c to reduce (a little) lag [Yor]
- * Put @timer messages in msg_athena.conf [Yor]
- * Add a file for SQL developpers [Yor]
- * Changed name of newpacket variable of session (packet_ver) and add a message for nex client version [Yor]
- * Added new client packet sizes and expanded packet acception. [Valaris]
- * Added snow, fog, rain, leaves, petals, and sandstorm map flags. [Valaris]
-
-09/08
- * added clif_specialeffect to clif.c, for displaying a wide variety of effects (information from rofx) [Valaris]
- * Corrected in map: creation of new session before to delete previous session_data [Yor]
- * Corrected in login/char/ladmin: creation of new session before to delete previous session_data [Yor]
- * Prevented redeal dupe. Checks to make sure inventory index has not already been added (client prevents
- the possibility of stacking items, but server did not.) [Valaris]
-
-09/07
- * Added an option to determinate at which GM level nowarp and nowarpto flags are not more used [Yor]
- - new option in battle.conf: any_warp_GM_min_level
- - new checks and message about 'from' (nowarp) and 'to' (nowarpto) in GM commands
- * Third part of new authentification method (clif_parse_CloseKafra): ignore new 0xF7 [Yor]
- * Change name of new0x0072 variable by new_auth (because now, auth packet is 0x72 or 0x7E) [Yor]
- * Second part of new authentification method (clif_parse_WantToConnection): Auth by char-server of new packets resolved [Yor]
- * Improved check of new packet 0x7E to enter in WantToConnect Function [Yor]
-
-09/06
- * First part of new authentification method (clif_parse_WantToConnection) [Yor]
- - accepted new 0x7E for wantto connect
- - begin to found first authentificaiton and answer to client, but not found
- * Improved Char-server: [Yor]
- - Fixed a possible error on multi-map servers (no lastpoint)
- - Added log about character with same name of wisp server name.
- - Added a sub function to disconnect a player (used 3 times)
- * Improved. In global message, use buffer to send to other (avoid possible overwriting). [Yor]
- * Added Super Novice Job Quest [Darkchild]
-
-09/05
- * Fixed noskill flag to actually stop all usable skills when used. [AppleGirl]
- * Removed last lag on char-server causing by too much savings (on accreg) [Yor]
- * Removed a lag on char-server with a lot of players (for party, like guild) [Yor]
- * Removed a big lag on char-server with a lot of players: [Yor]
- - guilds was saved every time a player is online and a lot of other time (removed).
- - guilds are save only when characters are saved (no more bring forward with characters file, and less savings)
- * Added GM message that informs when a player blocks wisps of the server (against some bots that auto ignore wisps from a player) [Yor]
- * Added perfect GM hide in @where GM command [Yor on suggestion of PoW]
- * Correct NEW shops.txt with error displayed AT START of map-server! [Yor]
- * Correct NEW payon.txt that crash map-server AT START! [Yor]
- * More changes and official locations for new payon, things in correct place:
- - Guild Flags
- - Kafra
- - Shops/Refiners (except Pet Shop!)
- - Most Normal Npcs (not all!)
- All Based On ScreenShots From kRO!! [Darkchild]
- * Payon Warps about 80% finished, others were no screens taken from! [Darkchild]
- * Removed nowarp mapflag and new internal check about gmlevel [Yor]
- - gmlevel are checked before to call the function (of the GM comand). If you give gmlevel, people can use the function, including if you give level 0.
- if you want refuse some GM commands to normal players, set the level of the command with a value upper than 0 (of set GM_only_command option to yes).
- Not add new tests for nothing and use more cpu.
- - mapflag: no limit for GM commands: what'is the interest to have gm commands limited like player? (it's rule for all GM commands)
- A gm can have the possibility to go anywhere, specialy to check/control player ==> no mapflag!
- * Stopped client crashes when jobchanging into another class that doesn't support the weapon you are holding. [Valaris]
-
-09/04
- * Added nowarp mapflag [PoW]
- * Fixed nowarpto mapflag in atcommand.c [PoW]
- * Improved: On hack about name in global message, GM of ALL map-server received hack messages. [Yor]
- * Moved some GM messages of GM command from at_command.c to msg_athena.txt. [Yor]
- * Added @whogm GM command. [Yor]
- * Added a warning when a character has same name than wisp server name. [Yor]
-
-09/03
- * Added gm level display in all @who(map) GM command. [Yor]
- * Correction: [Yor] - Thanks to [EvilEden]
- - Soul Strike mistake (according to http://iro.ragnarokonline.com/game/jobmagskill.asp) - corrected cast time
- - npc/quests/monstertamers.txt: The Monster Tamer Shogo gives the Deviruchi 'Contracts in Shadow' (641) -> the Bapho Jr. Tamming Item 'Book_of_theDevil' (642).
- * Added monster/egg name to create egg in @makeegg GM command. [Yor]
- * Added an option to fix started limited time of a new account. [Yor]
- * Added @hatch in help.txt. [Yor]
- * Fixed ChaseWalk so now you can't use skills while in chase walk mode. [AppleGirl]
- * Fixed Looping of Broken Weapon if you continued to use it even after its broken [AppleGirl]
- * Updated Weapon Breaking So Now Icon Will Disappear when you unequip the broken item [AppleGirl]
- * Re-Added @hatch and added makepet to atcommand_athena.conf [Darkchild]
- * Moved job monsters to their respected files [Darkchild]
- * Fixed a bug in sence (showing wrong info!) [Darkchild]
- * Changed the npc/jobs/ folders heavily! [Darkchild]
- * Added COMPLETE Umbala NPC script [Darkchild]
- * Added New Payon maps @ bottom of the map_athena.conf [Darkchild]
- * Added New Payon NPCs and Warps [Darkchild]
- * Fixed typo and made layout a litle bit better of the readme files [Darkchild]
- * Added Items Ability to be unbreakable (using bonus bUnbreakable,100;) it will totally unbreakable
- any lower than a 100 it still has a chance of breaking but call it more durable ;p[AppleGirl]
- * Added Start_Weapon and Start_Armor to all the other starts in char_athena.conf [AppleGirl]
- * Updated skill_require_db and skill_cast_db.txt [AppleGirl]
- * Finish to add a (reserved) wisp name for server - part 3: in map-server replace name where server name is used for wisp [Yor]
- * Continue to add a (reserved) wisp name for server - part 2: in map-server, reception of the name [Yor]
- * Begin to add a (reserved) wisp name for server - part 1: in char-server [Yor]
-
-09/02
- * Added Meltdown's weapon breaking ability [AppleGirl]
- * Added GM level in front of each line to display only enable GM command of the help.txt. [Yor]
- * Removed message about limited time if your have unlimited account (that was for tests. sorry). [Yor]
- * Set day/night messages in msg_athena.conf (for foreign people). [Yor]
- * Added a function to return a string of msg_table outside of at_command. [Yor]
- * Fixed clean database at disconnect when session is not auth. [Yor]
- * Fixed a bug (but not solve the bug - need more research to found where solve it) in map_id2sd function. [Yor]
- * Set initialisation of ignore list after authentification (not need to be done before) [Yor]
- * Reduced size of packet 0x2afe (removed not used value) [Yor]
- * Improve first auth part (wanttoconnect) [Yor]
- * Added TODO 35 [Yor]
- * Made a few adjustments to Archer based class skills making more like normal classes instead of Uber Classes. [AppleGirl]
- * Updated the weapon and armor breaking to be more like official RO adding status icons and so on. [AppleGirl]
- * Updated a few skills based off a few sites, also fixed other skills that were coded incorrectly. [AppleGirl]
- * Fixed double connection with same account [Yor]
- - disconnect immediatly
- - no enter in database (block or others)
- - no creation of session
- - no more need to have 'new_fd'
- -> less memory usage, less tests
- * Removed 'other_fd' not used [Yor]
-
-09/01
- * Fixed Rainbow Egg quest in quests_lutie NPC [PoW]
- * Added packet length for client server-side friend list, if they choose add the client will not disconnect. [Valaris]
- Need to figure out the rest of the packets, then can implement.
- * Added server-side friend list 'add' send packet info to packet documentation. [Valaris]
- * Fixed: in chrif_authreq, don't send a request to char server if session is not found [Yor]
- * Fixed: amatsu.txt, when Carter Moores say: remove 10000 zeny, he removes them now! [Yor]
- * Removed an unknown item in shops.txt [Yor]
- * Fixed 3 goto in father - acolyte.txt [Yor]
- * Fixed bug with colors of 5 numbers/digits (warp to city instead of display with color) - wizard.txt [Yor]
- * Reduce size of mage.txt and fix a text in mes (no bug) [Yor]
- * Fixed thief.txt script (error on a goto) [Yor]
- * Fixed account length (WFIFOL(fd,2) instead of WFIFOW(fd,2)) when char-srv doesn't auth an account for map-srv (0x2afe packet) [Yor]
- * Added @job and @charjobchange to be similar with @charjob and @jobchange [Yor]
-
-08/31
- * Fixed messages of @(char)jobchange GM commands. [Yor]
- * Fixed a return value of jobchange function (pc.c). [Yor]
- * Added coredumps by system when crash. [Yor] - thanks MagicalTux
-
-08/30
- * Added some comments on gravity commands. [Yor]
- * Improved /mm, /monster and /item to have some answers. [Yor]
- * Modified skill_cast_db and skill.c to allow for status effect chance of wizard skills
- (stun for WZ_METEOR and blind for WZ_VERMILLION) [moonsoul]
- * Modified skill_cast_db and skill_db to properly reflect cast params and delay times for assassin cross
- skills Create Deadly Poison(407) and Soul Breaker(379) [moonsoul]
- * Added damage calcs to battle.c for Assassin Cross skill Soul Breaker(379) [moonsoul]
-
-08/29
- * Modified skill_require_db to reflect item requirements for assassin cross skills Create Deadly Poison(407)
- and Enchant Deadly Poison(378) [moonsoul]
- * Added @charmountpeco/@charpetrename/@charquestskill/@charlostskill GM commands. [Yor]
- * Added noicewall.txt to map_athena.conf (commented out), noicewall flag [Valaris]
- will not function when pvp is enabled on map.
- * Added noicewall flag, noicewall.txt. [Valaris]
- * Added wiz's temp fix for higher skill ids and skillnodex db. [Valaris]
- * Added: Usage of At command when failed (100%).
- * Modified: try to have samme presentation for all at-command code (100%).
- * Improved/fixed some GM commands [Yor]
- * Added some 'usages' in some GM commands [Yor]
- * Added baby classes to equipment codes, they will equip the same as their normal and advanced counter-parts. [Valaris]
- * Improved some GM commands [Yor]
- - Added in @(char)baselvlup/@(char)joblevelup GM command:
- When there are some status/skill points available and we reduce level -> remove points.
- - Added counter in @statsall GM command.
- - Fixed in @charsave GM command when map doesn't exist.
- - Fixed @charbaselvl GM command overflow
- - Fixed skill value (and crash) in @questskill/@lostskill GM command
- - Fixed number of spiritballs (@spiritball GM command)
- * Fixed random PvP crash bug [Lupus]
-
-08/28
- * Improved some GM commands [Yor]
- - Added memo points in @go GM commmand.
- - Added negativ value for @heal GM command.
- - Fixed @(6stat-adjustement) GM commands overflow.
- - Simplified @Statall GM commands.
- - Fixed @guildlvup GM commands.
-
-08/27
- * Fixed @(char)zeny/stpoint/skpoint GM commands (no more overflow, etc...) [Yor]
- * Improved @memo GM command: [Yor]
- You can memo anywhere (it's GM command, not /memo command like for any player).
- Without value, display actual memo points.
- * Improved @refine GM command: you can reduce refinement. [Yor]
- * Fixed @broadcast GM command send broadcast to all Map-servers. [Yor]
- * Fixed @(char)base/joblevelup command (any adjustement can be entered). [Yor]
-
-08/26
- * In at_command.c: [Yor]
- Fixed: initialisation of all strings.
- Added: Usage of At command when failed (75%).
- Modified: try to have samme presentation for all at-command code (75%).
- * Made it so that the pvp_nightmaredrop mapflag would work even without pvp being enabled, now works any time it is set. [Ancyker]
- * Added level check on /item and /monster. GM level must be >= both @monster and @item [Valaris]
- level specifications (both since they share the same packet)
- * Added my own extream mode map flags (disabled by default), makes players drop items at random everywhere (except towns). Full details in map_athena.conf. [Ancyker]
-
-08/25
- * Added: display usage when GM command failed (some GM commands) [Yor]
- * Added @email GM command to change your account e-mail [Yor]
-
-08/24
- * Modified changesex script command use same function as @charchangesex now [Yor]
- * Added @charchangesex GM command can be used on offline players [Yor]
- * Added gm ladmin command to change GM level of an account [Yor]
-
-08/23
- * Fixed some at_command messages: [yor]
- - remove all unused messages
- - create commented line of all messages in msg_athena.conf to have english, and under, translation if necessary
- - add some (arround 80, but not all) messages in msg_athena.conf
-
-08/22
- * Fixed: In GM commands, add a 'standard' message when GM level is too low [Yor]
- * Changed in battle_athena.conf [Yor]
- - atcommand_spawn_quantity_limit: 100 (20 is too short for mass spawnings.)
- - unknow: give translation of babelfish to help on the explanation (not writing: 'unknow' to not lost the information!)
- - day_duration: 7200000 & night_duration: 1800000 (set default to 30 min night, 2 hours day to show improvement of eathena by DEFAULT)
-
-08/21
- * Updated battle_athena.conf to be in English (not Engrish) [Ancyker]
- * Updated WZ_FIREPILLAR according 8-10 patch [AppleGirl]
- * Updated skill_cast_db and skill_require_db according to 8-10 kRO patch [AppleGirl]
- * Added how to use skill_castnodex_db.txt [AppleGirl]
- * Added skill_castnodex_db.txt, allowing some skills to be casted with out dex's effect on them
- Midas' idea [AppleGirl]
- * Improved answer messages of char-server on @(un)ban/@(un)block GM commands [Yor]
- * Added answer messages of char-server on @(un)ban/@(un)block GM commands [Yor]
- * Added block command (ladmin c) [Yor]
- * Added block command (ladmin perl) [Yor]
- * Fixed job_db1.txt comments to be in english, also spaced the columns to make it easier to read. [Ancyker]
- * Added: possibility to use "" or '' to give an account name in ladmin (Perl) (no more problem with account name which have spaces). [Yor]
- * Changed: atcommand_gm_only is set to 'no' by default, because: [Yor]
- - GM commands level now works correctly
- - GM commands levels are now set by default with diffrent types of GM
- * Added @inall/@exall GM command to block/unblock ALL wispers of a player [Yor]
-
-08/20
- * Added unblock command (ladmin C) [Yor]
- * Added unblock command (ladmin perl) [Yor]
- * Fixed: when limited time is in past, add new duration starts from actual time [Yor]
- * Added chardisguise/charundisguise [Kalaspuff]
- * Added default time [23:59:59] for timeset/banset ladmin (C) commands [Yor]
- * Fixed sage rebirth ability at professor job change NPC. [PoW]
- * Fixed pecopeco knight/crusader rebirth ability at LordKnight and Paladin job change NPCs. [PoW]
- * Added default time [23:59:59] for timeset/banset ladmin (perl) commands [Yor]
- * Added a check_ip_flag option in char-server [Yor]
- * Added a check_ip_flag option in login-server [Yor]
- * Added a display at start of login-server about IP checking configuration. [Yor]
-
-08/19
- * Added unban/unbanish command (ladmin c) [Yor]
- * Added unban/unbanish command (ladmin perl) [Yor]
- * Added parameter to choose how works timeadd (ladmin command) with unlimited time accounts [Yor]
- * Fixed @option/@charoption when player is disguised. [Yor]
- * Added: some information about TODO 19. [Yor]
- * Added: possibility to use "" or '' to give an account name in ladmin (C) (no more problem with account name which have spaces). [Yor]
-
-08/18
- * Guardians were immune to skills/spells, fixed. [Valaris]
- * Added custom draculax.txt script to display npcskilleffect command. [Valaris]
- * Added npc/events/custom folder. [Valaris]
- * Fixed Umbala Language Quest NPC bug [PoW]
- * Added temporary prevention of crash caused by peco + disguise, will look into a better solution. [Valaris]
- * Changed working of putting disguise on (much like Yor's setpos with undisguise) [Valaris]
- * Changed disguise id check to > 23 instead of max_pc_class. [Valaris]
- * Added bDisguise script command for items. [Valaris]
- Syntax : bonus bDisguise,npc_id/mob_id; Example bonus bDisguise,1002; for poring disguise
- * Added flag so @disguise command will override any disguise scripts. [Valaris]
- * Updated @disguise description in help.txt. [Valaris]
- * Added: @ignorelist/@charignorelist to know from which people a player ignore wisps [Yor]
- * Renamed: @makepet -> @makeegg (@makepet will be created later to create pet, not a egg) [Yor]
- * Fixed Phantom of Opera quest, fixed quests_aldebaren requirements [PoW]
- * Changed: anti-freeze disconnection in char-server set from 1mn 15s to 30s [Yor]
- * Fixed: free block memory on NULL pointer in char-server do_final [Yor]
- * Fixed: reset server information when map-server disconnected from char-server [Yor]
- * Changed: anti-freeze disconnection in login-server set from 1mn 15s to 30s [Yor]
- * Improved pecopeco checks in @option/@charoption/@jobchange/@charjob [Yor]
-
-08/17
- * Fixed pecopeco displayings in @option/@charoption/@jobchange/@charjob [Yor]
- * Correction of @rura, @where, @rurap and some other things in GM commands. [Yor]
- * Correction of a parameters' errors in GM commands. [Yor]
- * Correction of @charzeny Gm command (+ @zeny/@charzeny can add and remove zeny without problem). [Yor]
- * Acolyte Job Quest: Fixed Marthilda, Yosuke NPC bugs. [Lupus]
- * Added some comments in .conf about @gm [Yor]
- * Fixed max value of level_new_gm parameter (not 100, but 99) [Yor]
- * Added level_new_gm parameter in login-server to disable or set level of all GM created by @gm [Yor]
- * Fixed @GM GM command [Yor]
-
-08/16
- * Translation of final message of @gm [Yor]
- * Fixed on @GM: When login server is offline, char server sends impossible to create GM [Yor]
- * Fixed: refuse @gm GM command to ... a GM :) [Yor]
- * Added complete answers of /in /ex /inall /exall. [Yor]
- * Added option to send information to online GM when there is a hack, a spoof name, etc. [Yor]
- * Added individual ignore management, and wisp checks [Yor]
- * Added TODO 33 [Yor]
- * Fixed possible overflow with @ban GM command [Yor]
- * Speed up a little @ban GM command [Yor]
- * Added ignore all for wisps (to same map-server). Sorry, before, I was added only for not same map-server [Yor]
-
-08/15
- * Added a resume for 'email_creation' parameter [Yor]
- * Fixed double messages when a player wisp/page itself [Yor]
- * Added ignore all for wisps [Yor]
- * Added better explanation for the new 'email_creation' parameter [Yor]
- * Fixed: now, GM accounts are sended to all servers when auto-detect change of GM file is actived [Yor]
- * Fixed: at auto-creation of e-mail, don't ask the player if login-server is offline (we need login-server to save e-mail) [Yor]
- * Used config_switch instead of atoi for email_creation parameter [Yor]
- * Added an option to create e-mail at connection with client [Yor]
- * Added authentification with login_id2 (1040) - activated by default [Yor]
- * Added partial part of authentification with login_id2 (1040) [Yor]
- * Added some missing GM commands in help.txt [Yor]
- * Improved search of map-server when map is not found [Yor]
- * Added banish in ladmin (c) to be like of GM commands [Yor]
- * Fixed Angel Helm quest, fixed Spore Doll quest exploit, Fixed Morgenstein quest bug [Lupus]
-
-08/14
- * Added banish in ladmin (perl) to be like of GM commands [Yor]
- * Fixed some possible errors with maps management in char-server [Yor]
- * Fixed bug of map searching when to few maps on map-servers [Yor]
- * Changed some console displayings in char-server [Yor]
- * By default, activation of player ip check [Yor]
- * Added some of 1040: check of player ip between each server [Yor]
- * Fixed dupes in warp scripts, reorganized, thanks to midas fro GH warp [kobra_k88]
- * Added possibility to disable automatic reload of GM accounts file [Yor]
- * Added log when GM accounts file can not be readed [Yor]
- * Changed default of GM accounts file check for 120 sec to 15 sec [Yor]
- * Added automatic reload of GM accounts file if it was modified [Yor]
- * Added @mapmove, @broadcast, and @localbroadcast in help.txt [Yor]
- * Fixed possible error of monster id (GM command) if monster begins by a number. [Yor]
- * Added jobname in @charstats command. [Yor]
- * Fixed: If a GM command uses NULL pointer as command function, there is no more crash. [Yor]
- * Fixed Niflheim&Umbala guides. Fixed Niflheim city. removed 2 NPC clones. [Lupus]
- * Added Archer Skills quests, fixed Thief Skill Quest [kobra_k88]
-
-08/13
- * Add an option to fix a ban for hacker that spoof name (to set minutes of ban) [Yor]
- * Fixed incorrect mob IDs with Valaris's mob_db [Ancyker]
- * Added possibility to execute GM commands when you wisp someone [Yor]
- * Added a console message when a player try to spoof his name in Global message [Yor]
- * Added size of packet in packet send by map-srvr to char-srvr about online players [Yor]
- * Added check on individual stat at creation of a character [Yor]
- * Added npcskilleffect script command. Will allow npc to show effects of certain skills on specified XY coordinate.
- Syntax : npcskilleffect 21,10,148,150; skillid, skilllv, x, y. [Valaris]
- * Increase maximum weight can be used with an item now, thanks to orn. [Valaris]
- * Fixed mob names in Gonryun , thanks to unsul and Filougarou. [Valaris]
- * Fixed muramasa curse rate, thanks to OxiMoron. [Valaris]
- * Fixed Aldeabran&Comodo towns. Added Cheese quest to Comodo. Fixed Thief Job Quest [kobra_k88]
-
-08/12
- * Begin to add 1040 in login/char/chrif about authentification. not finished [Yor]
- * @mapmove, @broadcast, and @localbroadcast can now be used. [Valaris]
- * Looting mobs will not continue to item if it disappears, instead will walk away. [Valaris]
- * Unitinalized nameid in script.c [Valaris]
- * Added position in log when unknown packets are saved (login-server). [Yor]
- * Corrected possible error to contact not good player when a wisp concerns player on an other map-server. [Yor]
- * Added a function to obtain character name with index in auth structure (char.c). [Yor]
- * Corrected check/test error in mapif_send. [Yor]
-
-08/11
- * itemdb_searchname fixed (now firstly looks for item aliases 'name', if not found looks for item name 'jname'). [Lupus]
- * Optimized getitem, delitem. getweight, fixed there possible scripts exploits [Lupus]
- * Thief bug's long name in mob_db.txt was Thief Bug Larva, fixed. [Valaris]
- * Thief bug names were mixed around in monster.txt, fixed. [Valaris]
- * Fixed incorrect parse of usable item rate. [Valaris]
- * Added ban command in ladmin (C), like GM command [Yor]
- * Terminated some translations about wisp/page, and control/improvement/correction of wisp/page. All 'found' bugs are corrected [Yor]
- * Added translations in inter.c about wisp/page. [Yor]
- * Corrected printf datas in intif_parse_WisMessage when map-srv receives wisp message from inter-srv. [Yor]
- * Sended an answer when a wisp/page is supressed because of a timeout. [Yor]
- * Improved: if inter-srv is asked for a wisp, verify first if the character exists. Don't ask all map-server if it not exists. [Yor]
- * Changed Printf in intif_wis_message to have better information. [Yor]
- * Improved: Don't ask inter-server for a whisp/page if player is on the same map-server. [Yor]
- * Completed some printf and comments in char.c [Yor]
-
-08/10
- * Improved map_nick2sd function. Now, sensitiv case is removed when it's possible [Yor]
- * Corrected split of broadcast messages in char-server [Yor]
- * Message to Valaris from Yor (special file)
- * Improved accounts file saving: [Yor]
- - be sure that accounts file is save at least every minute.
- - save accounts file at end of login-server
- * Reduce displaying size on some errors about accounts file reading. [Yor]
- * Created log when change sex packet give an invalid value (login-server) [Yor]
- * Correction of unknow_packet displaying (in log). Separate is done after 8th char [Yor]
- * Give possibility to use account name with spaces in prompt commands finished by account name in ladmin (perl). [Yor]
-
-08/09
- * Fixed char-server lag. 3 tests from 3 people appeared to function properly again. [Valaris]
- * Basic Implementation of Basilica [AppleGirl]
- * Added ban command (ladmin perl) [Yor]
- * Correction of bug about auth_fifo when we block a player. Invalid value in array (login.c) [Yor]
- * Correction of some tests on server_fd array in login.c [Yor]
- * Improved Item_searching in all GM commands [Yor]
- * Created @undisguise GM command [Yor]
- * Added Umbala town&quests&guide. Some fixes in Yuno warps&shops&guides. Kafra fix. Added Valhallen quest. [kobra_k88],[Lupus]
- * Corrected char_divorce (char-server) to remove ring to both partner [Yor]
- * Eventual crashfix for clif_authfail_fd [Kalaspuff]
- * Corrected @jump GM command. [Yor]
- * Reduced size of conf/help.txt (max 200 lines in chat window). [Yor]
-
-08/08
- * Added NPCs to @disguise. [Valaris]
- * Mob disguises will now show up to player using it as well. Attack animation and sitting do show up to them yet. [Valaris]
- * Added @disguise GM command in help files [Yor]
- * Added @go 16 to visit prisoners [Yor]
- * Reduced number of accounts file saving when informations are not important: [Yor]
- - save immediatly any modification/creation/deletion of account (like before)
- - use counter before saving if only ip/time of last connection is changed (normal authentification)
- because these values are already save in log file.
- * Speed up account searching in login-server. [Yor]
- * Speed up character searching for @(un)block/@(un)ban. [Yor]
- * Created @unjail/@discharge GM command. [Yor]
- * According to GM definition level in at_command.conf, set level 20 to online_gm_display_min_level for online files. [Yor]
- * Speed up some sortings of online creation (strings based sortings) [Yor]
- * Fixed nullpointer crash with disguise in clif_changelook [Kalaspuff]
-
-08/07
- * Fixed so spells will still be cast if target walks out of range. (please don't overwrite this again) [Valaris]
- * Corrected a little error in online files creation (only 1 player was visible) [Yor]
- * Optimized memory management of online list [Yor]
- - less memory usage
- - less tests and loops (more speed)
- - more efficient (use directly char_dat position instead of search it)
- * Added Official Assassin Job Quest. Now eAthena contains all 2-1 Job Quests! [kobra_k88]
- * Fixed scripts: 32hats, warper2, platinum_skills, added/changed some mapflags and other misc script changes [Lupus]
- * Added @disguise command (enter a mob_id or name, and you will appear to others as that mob/npc!)
- * Fixed code for mob disguises, should not crash clients now.
- * Improved online management code when we receive char_id. [Yor]
- * Added code for mob disguises. Can not set yet. Atcommand needs created. [Valaris]
- * Improved mmo_char_send006b function [Yor]
- * Corrected: when save file of character can not be created, try backup file if flag is set to create it. [Yor]
- * Added an option to create backup of characters file [Yor]
- The backup_txt file was created because char deletion bug existed.
- Now this bug is corrected and no character disappear.
- But, create a file with a lot of characters can use CPU usage and decrease hard disk speed.
- So, I create an option with default value: no create backup.
- * Improved online management code and some others little codes (char.c). [Yor]
- * Respawn points of prisoners set to the jail rooms. Jail.txt mapflag addeed. So imprisoned players can't escape. [Lupus]
-
-08/06
- * Improved/Optimized some little code (char.c/login.c). [Yor]
- * Improved 0x2afa and 0x2afb (map transmissions between char and map). [Yor]
- * Optimized global message nick spoof fix. [Valaris]
- * Fixed crash in attacking guardians in a null guild. [Valaris]
- * Capped earned exp at 1000000000. [Valaris]
- * Set area size back to 20 for now, some things in path.c need to be fixed. [Valaris]
- * Fixed crash in guardian search. [Valaris]
-
-08/05
- * Added @jail <char_name> GM command [Yor]
- * Added explanation of @idsearch and @mapinfo in help.txt [Yor]
- * Improved @idsearch GM command [Yor]
- * Improved a little 3 loops in ladmin.c [Yor]
- * Improve some codes in char.c: [Yor]
- - less tests in online creation
- - mmo_char_send006b: remove duplicated memset, create a char_dat structure pointer
- - server_fd[] not seted/modified/checked correctly
- * Set max_walk_path back to 48. [Valaris]
- * Added translated Gonryun town. Fixed map names of Louyang shops. Added missing Blacksmith,
- added extra Rapairmen into refine.txt. In Inns added 4 different prices based on Base Lvl.[kobra_k88]
-
----------eAthena 1.0.0 RC3 TXT---------
-08/04
- * Set battle_athena.conf to more accurate settings. [Valaris]
- * Decreased default damage delay (stun after being hit) by 75%. [Valaris]
- * Max walk path is now correct (17). [Valaris]
- * Area size is now correct (14). [Valaris]
- * Improved some very little codes in char.c. [Yor]
- * Remove displayings of logs on console of map-server [Yor]
- use it for DEBUG, not by default, that decrease a lot the performance
- * Added (commented) printf in freeze function for debug if necessary [Yor]
- * Fixed melee ctrl-attack targetting. [Valaris]
- * Reset attack target when equipping arrows. [Valaris]
- * Improved (log and remove_control_chars functions). [Yor]
- * Added 'available free bytes' in displaying when size is expanded. [Yor]
- * Fixed incorrect returns in clif_authok. [Valaris]
- * Added pointer checks to chrif.c [Valaris]
- * Added some pointer checks to the mob ai. [Valaris]
- * New (lag-free) fix for NPCs / mobs not showing up when chars walk around [Kalaspuff]
-
-08/03
- * Made so if exp given is less than 0, 0 is given instead of 1 (plants were giving exp) [Valaris]
- * Added console displaying to have complete informations when we expand Wdata session. [Yor]
- * IMPORTANT: Add a TODO 31 for Guilds' coders. [Yor]
- * Old packet 0x2b16 use packet number 0x2b0e. [Yor]
- * remove packets 0x2b0e and 0x2b0f. [Yor]
- * on character_name ask packet: add account_id of asker. [Yor]
- * Improved script code in novice.txt. [Yor]
- * Fixed error in alberta.txt. [Valaris]
- * Allow player placement on afm-type maps. [Valaris]
- * Added afm loading. [Valaris]
- * Removed useless code for mob equipment. [Valaris]
- * Initial packet setup for possible playable mobs. [Valaris]
- * Added check for save_clothcolor for the dyefix, and added another check to make sure player is dyed before using the fix. [Valaris]
- * Improvement: Character asking of map-server to char-server is not more case sensitive. [Yor]
- * Added TODO 29 & 30. [Yor]
-
-08/02
- * Re-added "player not attached" error reporting. [Valaris]
- * Fixed errors in 32 hat quest that was causing player not attached errors. [Valaris]
- * Fixed input number function: commented out negative input check by Valaris in script.c (all scripts have been revised and fixed),
- made actual bug fix of buildin_input func (wrong variable type conversion (int)->(unsigned int) in clif.c
- Due to the fixed bug Merchant Job Quest works fine now [Lupus]
- * Fixed number input bugs/possible exploits: mage.txt IceCream.txt event_valentine.txt refine.txt
- milk_trader.txt grandpa_pharmacist.txt aldebaran.txt alberta.txt juice_maker.txt [Lupus]
- * Finished: offline player can be @ban/@block/@unban/@unblock by their character name. [Yor]
- * Added packet between map to char to work on offline players (@ban/@block/@unban/@unblock) [Yor]
- * Added check on character name with less than 4 characters [Yor]
- * Added @chardelitem GM command [Yor]
- * Fixed Kafras (no more buttonless msg bugs, Kafra Pass works fine) [Lupus]
- * Changed input exploit, only checks for negative now instead of having an input cap. Fixed up vending exploit. [Valaris]
- * Added check for src with High Wizard's soul drain. [Valaris]
- * Fixed up npc_suicide and npc_selfdestruction, should fix up crashes caused by them. [Valaris]
- * Added more pointer checks in the clif_authok function. [Valaris]
- * Added some pointer checks to clif.c, should prevent crashes. [Valaris]
- * Added some checks about writing errors of item names in GM commands (check cases). [Yor]
- * Fixed Hunter Job Quest 1.6 [Lupus]
- * Removed Kalaspuff's fix for mob/npc data not always being recieved. It was causing
- excessive amounts of lag. [Valaris]
-
-08/01
- * Added ability to spawn character pets. [Valaris]
- * Added show_mob_hp. [Valaris]
- * @item/@item2 GM commands now work correctly with name begining by a number. [Yor]
- * @spawn/@monster2 GM commands authorise spawn of guardians. [Yor]
- * Fixed so guardians may be spawned outside of castles. [Valaris]
- * Fixed/Improved @spawn/@monster2 GM command. [Yor]
- @spawn/@monster2 GM command: you can use space in the desired name now (use "") [Yor]
- * Added TODO 26 and 27. [Yor]
- * Guardians if owned by a guild will display guild name and castle on name request. [Valaris]
- * Added checks for null blocks in mapforeachin functions. [Valaris]
- * Addition of a GM level 99 account for test of GM commands. [Yor]
- * Creation of a default structure for GM levels (sub-gm, gm, admin, etc.). [Yor]
- * Improved @time GM command (better code and display more informations). [Yor]
- * Added informations about game time in @time command [Yor]
- * Added @time command to have server time [Yor]
- * Fix night at start if administrator want night and there is no duration for night and day [Yor]
- * Fix for NPCs / mobs not showing up when chars walk around [Kalaspuff]
- * Begin @unban/@unblock GM command (structure done). [Yor]
- * It's now possible to disable Night or Day (set to 0 in battle.conf). [Yor]
- * @day/@night: when already the desired cycle, display a message. [Yor]
- * Fixed overlapping Ice-Cream Maker NPC, duplicated NPCs, restored duplicated Akaru's MrSmile [Lupus]
-
-07/31
- * Terminated: night/day cycles. [Yor]
- * When a state comes back to normal, player stay in night if it's night. [Yor]
- * Started to add management of day/night: [Yor]
- creation of 3 parameters in battle.conf
- TODO: usage of these parameters (later).
- * added line '// $Id: Changelog.txt,v 1.65 2004/09/29 17:31:42 kalaspuff Exp $' in all code source files to avoid overwrite in CVS. [Yor]
- * Fixed number/quantity in @item command. [Yor]
- * Fixed when night and disconnect/reconnect, it's night. [Yor]
- * Removed extension to check a map in char.c (less tests). [Yor]
- * Added savepoint coordonates (x,y) if player is set to a new map (char.c). [Yor]
- * Added izlude to check major cities. [Yor]
- * Began adding developer mobs. [Valaris]
- * Added dyes and fixed client crashes with player mobs. [Valaris]
-
-07/30
- * Added temp fix for "nullpo player not attached" error message (script.c script_rid2sd) [Lupus]
- * Added checks for major cities in afm format. [Valaris]
- * Added preliminary AFM(Advanced Fusion Map) support. Actual map-reading works, but rest of server needs to recognize them.
- Thanks to alexkreuz [Valaris]
- * Changed Map and NPC loading display. [Valaris]
- * Removed unneeded 'End' and duplicate 'end' script commands. [Valaris]
- * Added 'language <language>' command in ladmin (perl) to change language of displaying. [Yor]
- * Fixed atcommand_gm_only parameter: [Yor]
- 0: you can define level command '0' for normal players (gm level 0)
- 1: even you define a level 0 for a command, normal player can not use it. Only GM level 1 or more can use command (if command level is possible for this GM)
- Note: This parameter is not like atcommand_for_all (this parameter doesn't exist actually) .
- * Fixed Kafras (Cart Service for Super Novice), some warps in Morroc, Aldebaran. [Lupus]
- Added official shop into St.Abbey. [Lupus]
- Added quests: Lutie Town Hat Quest by TonyMan, 23 new hats custom quest. [Lupus]
- Fixed jobchange.txt. [Lupus]
- Improved pvp.txt. [Lupus]
- Rearranged and updated! (now in 2 variants) mapflags. [Lupus]
- Updated map_athena.conf [Lupus]
- * Fixed: battle_athena config's atcommand_gm_only; yes was no and vice versa [Kalaspuff]
-
-07/29
- * Added 'language <language>' command in ladmin.c to change language of displaying. [Yor]
- * Re-added guardians don't attack guild members, someone must have removed it by accident. [Valaris]
- * Restore correct displaying (LAN/WAN) previous was good :) (sorry... prabably tiredness). [Yor]
- * Fixed some errors in novice.txt script. [Yor]
- * Kashy's script fixes. [Valaris]
- * Displaying of correct information in LAN/WAN test (displaying was reversed) in char.c [Yor]
- * Creation of a char_unblocked directory (char directory is blocked) [Yor]
- - modification of makefile
- * Added a note in TODO 14: encrypted password - problem with client versions [Yor]
-
----------eAthena 1.0.0 RC2 TXT---------
-07/28
- * Added metaller to equipped mobs. [Valaris]
- * Added a note in TODO 19 [Yor]
- * REMOVED last changelog: cvs server: [14:29:29] waiting for cvs's lock in /usr/cvsroot/athena/src/char [Yor]
- * Displaying of correct information in LAN/WAN test (displaying was reversed) in char.c [Yor]
- * Added "OMG" emotion to weapon/armor breaking. [Valaris]
- * Removed space in a pointer in mob.c. [Valaris]
- * Restored previous version of lan management in login.c, because: [Yor]
- - check test was incorrect (no mask for controled ip).
- - in check test, we recalculate every time the subnetwork (loss of time).
- - impossible to have a name definition for the sub-network (some network administrator use a name to define the sub-network).
- - no more default configuration of sub-network.
- - possible errors in the reading function of the lan file.
- - no more logs about sub-network.
- - BUT, conserved: - new default name for lan file
- - color for displaying of LAN/WAN
- * Removed some memsets from chrif.c that caused segfaults. [Valaris]
- * Added fix for anklesnare and spiderweb. [Valaris]
- * Added Kashy's Lan Support code. [Valaris]
- * Removed variables and assignment used by prevent_multi_login. [Valaris]
- * Removed prevent_multi_login. (many problems reported with it) [Valaris]
- * Fixed armor breaking. Was being broken when pc was attacking instead of when being attacked. [Valaris]
- * Fixed checkcart, checkfalcon, checkriding (they didn't return any value) in script.c [Lupus]
- * Fixed breeder.txt renter.npc, kafras NPC (added correct class check, added correct checkcart, checkfalcon, checkriding) [Lupus]
- * Fixed Kafra functions_kafras.txt NPC (added correct checkcart, fixed cmall cart giving bug) [Lupus]
- * Fixed Kafra functions_kafras.txt NPC (fixed Kafra Pass exploit) [Kobra_k88]
- * Fixed Hunter.txt coords of the Guild entrance warp [Lupus]
-
-07/27
- * Improved check command in ladmin.c [Yor]
- * Added map_id check in map_foreachinarea, to prevent eventual crashes [Kalaspuff]
- * Added @enablenpc and @disablenpc in help files [Yor]
- * Fixed Thunder Storm range (thanks midas) [Kalaspuff]
- * Added Anthell NPC trigger in Morroc.txt warps/town [Lupus]
- * Added missing Warps for Job Quests of Swordman, Hunter and Thief in jobquests.txt [Lupus]
- * Updated atcommand_conf, missing GM-level for @enablenpc and @disablenpc [Yor]
- * Removed possible overflow error in @enablenpc and @disablenpc [Yor]
- * Updated atcommand_conf, missing GM-level for haircolor [Kalaspuff]
- * Improved best job test in novice.txt [Yor]
- * Improved @go command: [Yor]
- - give list of cities if no value
- - added start point (to welcome newbies)
- - give possibilities to use city names (@go geffen): at least 3 characters, and some writing errors are tested
- * Replaced every Job Quest Script (excluding Assassin, 2-2 and 2-2-X ). Now all 2-1 Jobs have big quests. [Kobra_k88]
- * Replaced all Skill Quests (Added Sand Attack Skill Quest). [Kobra_k88]
- * Added Legendary Swords quest. [Kobra_k88]
- * Replaced 6 towns with new scripts: Izlude, Prontera, Morocc, Geffen, Alberta, Al De Baran. Splitted all towns quests into files. [Kobra_k88]
- * Splitted and optimized Kafras & Guides. [Kobra_k88]
- * Implemented Kafra Pass! [Kobra_k88]
- * Removed free Breeders (replaced by the correct ones). [Kobra_k88]
- * Placed all Sign Posts/Signs into a single file. [Lupus]
- * Files arrangement, additional warps/scripts correction. Fixed several scripts (NPC overlapping, bad sprites, etc). [Lupus]
-
-07/26
- * More accurate pvp point system. It skips ranks, needs more work. [Valaris]
- * Fixed crash in executioner card code. [Valaris]
- * Fixed mob respawn after death bug. [Valaris]
- * Fixed exp problem caused by bounds checking. [Valaris]
- * Fixed pvp rank so only one person may be rank 1. [Valaris]
- * Any time a person is on a pvp map, the rank will calculate, preventing bad rank packets from being sent. [Valaris]
- * Added Job Agencies for Training Ground (novice.txt). [Yor]
- * PVP respawn client crash fix. [Valaris]
- * Fixed small error in kafra.txt [Syrus22]
- * Finished adding special equipped mobs. [Valaris]
- * Added 2 living statues behind the NPC 'Monster Master'. [Yor]
- * Removed infinite possibilities to have items from helper (novice.txt, new_1-4.gat,60,149). [Yor]
- * Added 2 living statues behind the NPC 'Monster Expert'. [Yor]
- * Improved a little 1st course of novice training. [Yor]
-
-07/25
- * Allow mobs to be equipped with pet armor. mob_avail and clone mobs need to be created. [Valaris]
- * Removed [AppleGirl]'s armor breaking code. [Valaris]
- * Commented out data_dir. [Valaris]
- * Finished exp bounds checking. [valaris]
- * Added negative value checks to clif_updatestatus. [Valaris]
- * Added exp bounds checking for those rediculously high rate servers. [Valaris]
- * Added bounds checking to the @zeny and @charzeny commands. [Valaris]
- * Improved and corrected some errors 1st course of novice training. [Yor]
- * Removed no guild check for Guardians. Guardians SHOULD attack people with no guild. [Syrus22]
- * Fixed Alliance check in mob.c [Syrus22]
- * Added armor breaking to normal battle (crits will double the chance) [Valaris]
- * Fixed mistake in map.c causing compile errors. [Syrus22]
- * Fixed backstab bow penalty option. [Syrus22]
- * Fixed Alliance check in battle.c for emp/guardian damage. [Syrus22]
-
-07/24
- * Added backstab bow penalty option [Akaru]
- * Fixed OnGuardianDied events on prontera castles 3 to 5. [Valaris]
- * Another vending fix. [Valaris]
- * Fixed bugs in npc headers caused by someone using spaces and not tabs. (kafra.txt, guide.txt, yuno.txt) [Valaris]
- * Fixed a vending bug. [Valaris]
-
----------eAthena 1.0.0 RC1 TXT---------
-07/22
- * Fixed numerous startup errors in aldebaron castles and one geffen castle. [Valaris]
- * Full Guild Wars Script Complete!!! [Akaru]
- * Fixed rice ball item. [Valaris]
- * Fixed problems with options and peco riding. [Valaris]
- * Updated item_db with fix for Sleipnir and more translations. [Akaru]
- * Translated item_violetbox, mob_poring, mob_branch, mob_boss. Fixed wizard.txt (wrong item id), headgeatquest.txt(added Zeny check) [Lupus]
-
-07/21
- * Updated refine.txt. Added optional features and optimized the file. [Syrus22]
- * Evened out the # of columns in mob_db, filled in some blanks. [Valaris]
- * Undid compilation errors caused by Akaru's removal of nullpo.o from map-server compile [Valaris]
-
-07/20
- * Removed Ghostring from gef_fild13.gat [rg]
-
-07/19
- * Fixed Graffiti [Valaris]
- * Zeny Bug In Vending Fixed [Darkchild]
-
-07/18
- * Added a check about level of at_command when reading the file [Yor]
- * Updated /help and conf/help.txt [Yor]
- * Added @nuke command in conf/help.txt [Yor]
- * More WoE Castles Done [Hikaru]
- * Changed: inter.txt->inter.log in log directory [Yor]
- * Added some char_log when character can not be created (invalid value, invalid name, etc...) [Yor]
- * Changed: char.txt->char.log in log directory [Yor]
- * Update features.html/changlog.html [Yor]
- * Fixed compilationissue on FreeBSD [Kalaspuff]
-
-07/16
- * Remove limit for kami/kamib ladmin command. [Yor]
- * Fixed crash in weddingtxt.txt where it was checking an invalid equip index. [Valaris]
- * Added some TODO for next version. [Yor]
-
-07/15
- * Changed: login.txt->login.log in log directory [Yor]
- * added system to choice authorised ip for remote administration [Yor]
- * Added listBan/listOk commands in ladmin's. [Yor]
- * Speed up a little search_mapserver function. [Yor]
- * Init map strings of each servers when map-server send informations. [Yor]
- * Added some TODO for next version. [Yor]
-
-07/14
- * Fixed another lockup with multi_level_up [Valaris]
- * Added kami(yellow)/kamib(blue) commands in ladmin (terminated). [Yor]
- * Fixed name of ladmin_athena.conf. [Yor]
- * Fixed mvp item reading. [Valaris/Syrus22]
- * Added new move packet in map (ver.13jully04) [Yor]
- * Added new auth packet in map (ver.13jully04) [Yor]
- * Added kami/kamib commands in ladmin. not terminated: to do: login->char [Yor]
- * Updated Some Npcs [Darkchild]
- * Added Gefenia Warps [Darkchild]
- * Added Berzebub Quest [Darkchild]
- * Removed random alchemist marine sphere code, until some other system is worked out. [Valaris]
- * Fixed infinite loop caused by turning multi level off. [Valaris]
- * Added display id the char-server is freezed. [Yor]
- * Added debug printf about the max_connect_user in char-server. [Yor]
- * Added banadd command in ladmin.c [Yor]
- * Removed duplicate check in chrif.c. [Yor]
-
-07/13
- * Fixed GM_level code in map-server. [Yor]
- problem is in the hash system of the db -> use simple db until we found solution.
- note: for this db, it's not necessary to use a db system (little db, 2 values: key, value)
- * Improved GM_level code in map-srv, but not solve the problem. [Yor]
- * Fixed error of 'return' without value in chrif_parse (chrif.c). [Yor]
- * Added character name, account id and gm level on console in map-server when auth is accepted. [Yor]
- * Added gm_level of the account on console in char-server when auth is accepted. [Yor]
- * Added gm_level of the account on console in login-server when auth is accepted. [Yor]
- * Added timeadd command in ladmin.c [Yor]
- * Added help for each command (help <command>) in ladmin (perl and c). [Yor]
- * Fixed global message (normal speak) name spoof exploit. [Valaris]
- * Added timeset command in ladmin.c [Yor]
- * Added banset command in ladmin.c [Yor]
- * Added vending and trading dupe fixes, thanks to Kinko and Kazzy [AppleGirl]
- * Added multi_level_up command to battle_athena and commandline. [Valaris]
- Turning it off will allow a player to only level up once from a monster.
- * Added: explanations of ladmin_athena.conf keys in conf_ref.txt. [Yor]
- * Fixed: init mmo_map_server structure (to 0) in char-server. [Yor]
- * Added Gefenia Maps [Darkchild]
- * Added @nuke command do to user request. [Valaris]
- * Removed nick spoof fix code for now, it broke chat. [Valaris]
- * Added some code for @nuke command. [Valaris]
- * Finished adding battle_athena options to command line. Every option in battle_athena.conf
- can now be passed directly through the command prompt. [Valaris]
-
-07/12
- * Added many battle_athena options to command line arguments. [Valaris]
- * Allow battle_config_switch to be used globally in map-server. [Valaris]
- * Rewrote map-server command-line code. Will now begin implemented nice commands for map-server. [Valaris]
- * Added BETA version of ladmin in C. [Yor]
- * Added new packet structure of authentification and move - automatic detection. [Yor]
- * Added /item command. It is same as /monster. Both commands will search for mobid first, if not found will give item. [Valaris]
- * Fixed a displaying error in state command (perl ladmin). [Yor]
- * Added /monster command. Syntax is /monster <name/id>. [Valaris]
- * Fixed chat spoofing in global messages. [Valaris]
- * Prevent nick spoofing in whispers. [Valaris]
- * Added check about lenght of packet 0x72 for new client version [Yor]
- * Added Pet Equip Items Quest Npc
- * Added Pet Taming Items Quest Npc
- * Added Slotted Sunglasses Quest Npc
- * Added pet_equip_required option for pet skills. [Valaris]
- * Changed: create a sub-function for help command in ladmin (perl). [Yor]
-
-07/11
- * Added Petit pet skill. [Valaris]
- * Added some code for Petite Heaven Drive, still does not work, but doesn't crash. [Valaris]
- * Fixed dokebi and baby desert wolf pet skills. [Valaris]
- * Added Orc Warrior, Hunter Fly, Poison Spore, Baby Desert Wolf, Baphomet Jr, and Dokebi pet skills. [Valaris]
- * Added script command petskillattack.[Valaris]
- * Fixed search command in ldamin (perl) ignore sensitive case now. [Yor]
- * Fixed default to 0 for save_unknown_packets configuration in login. [Yor]
- * Fixed the warnings about implicit declarations. [Kalaspuff]
- * Added @guildrecall/@partyrecall commands. [Yor]
- * Added Isis pet skill. [Valaris]
- * Added petmag script command for magnificat. [Valaris]
-
-07/10
- * Added Banker NPC because alot of users wanted one. [Syrus22]
-
-07/09
- * Added Sohee pet skill. [Valaris]
- * Added petheal command. [Valaris]
- * Added Smokie pet skill. [Valaris]
- * Added bonus bPerfectHide for Smokie pet skill. [Valaris]
- * Added Spore pet skill. [Valaris]
- * Created petrecovery script command. [Valaris]
- * Added Poring, Drops, Poporing, and Yoyo loot skills. [Valaris]
- * Added petloot script command for pet looting. [Valaris]
- * Removed pet_loot config settings. [Valaris]
- * If pk_mode is on, a message will show up in map-server. [Valaris]
- * Fixed pk_mode extra experience and drops so will occur if monsters is 20 levels or higher than player. [Valaris]
- * Fixed @killmonster crash caused by implementation of pk_mode. [Valaris]
- * Finished setting up pk_mode, should be 100% complete now. [Valaris]
- * Added nopvp.txt for pk_mode. [Valaris]
- * Prevent novice engagement in pk_mode. [Valaris]
- * Fixed up and changed the exp penalty system. [Valaris]
- * Pk_mode will now give double exp loss if killed by player. [Valaris]
- * Updated conf/help with new commands [Yor]
- * Removed more pvp timer stuff from pk_mode [Valaris]
- * Increase drop rates +25% if over level 20 on pk_mode. [Valaris]
- * Changed +25% exp increase on pk_mode to 15%. [Valaris]
-
-07/08
- * Disabled pvp rank and timer if pk_mode is on. [Valaris]
- * All maps made pvp if pk_mode is on. [Valaris]
- * pk_mode additional 25% exp given over level 20 [Valaris]
- * Disable @pvpon and @pvpoff commands if pk_mode is on. [Valaris]
- * Added pk_mode option in battle_athena.conf (not yet implemented) [Valaris]
- * Reworked prevent_multi_login, should work perfectly now. [Valaris]
- * Removed need for eof=2 for prevent multilogin, will now just delete the blocks containing both sessions. [Valaris]
- * Added map-servers anti-freezed connection in char-server. [Yor]
- * Added char-servers anti-freezed connection in login-server. [Yor]
- * Fixed spy commands so that inputting the same id/name turns off the command. [Syrus22]
- * Created @partyspy command. [Syrus22]
- * Renamed search_guildname function to conform with normal naming standards in guild.c. [Syrus22]
- * Created @whomap/@whomap2/@whomap3 commands to show online players on a specifical map. [Yor]
- * Updated and Shrunk the Kafra Script. [Syrus22]
- * Create @reloadgmdb gm command. [Yor]
-
-07/07
- (Dated On Aegis Website)
- *--Released 1.0.0 RC3--*
- * Fixed crashed with prevent_multi_login. [Valaris]
- * Allow infinited local logins if prevent multi_login is on. [Valaris]
- * If prevent_multi_login is on, it will disconnect both clients on the same ip. [Valaris]
- * Prevent_multi_login will now list the character names of both accounts when logged out, and give a message. [Valaris]
- * added updated const.txt and pet_db.txt [Valaris]
- * GM accounts/level updating without restarting completed (by reloadgm ladmin command). [Yor]
- * Removed gm_account_filename definition from map.conf. [Yor]
- * Updated GM level by reloadGM ladmin command. [Yor]
- * Added a packet between char and map to send GM accounts and their level. [Yor]
- * Added a GM minimum level option to display 'GM' in online files. [Yor]
- * Added a warning when a GM account is defined twice in the file. [Yor]
- * Check for castle before guardian searches for emblem. [Valaris]
- * Prevent stealing from treasure boxes. [Valaris]
- * Enable mounted classes to use pedestrian counterpart's items. [Valaris]
- * Change so petskillbonus will only update stats(client-side) if need be to prevent errors. [Valaris]
- * Fixed crash with putting pets with skills back into egg. [Valaris]
- * Added Steel ChonChon, Rocker, and Deviruchi pet skills. [Valaris]
- * Added bAllStats(SP_ALL_STATS), bAgiVit(SP_AGI_VIT), bAgiDexStr(SP_AGI_DEX_STR) bonuses for pet skills. [Valaris]
- * Added ChonChon, Lunatic, Picky, and Savage Babe pet skills to pet_db.txt. [Valaris]
- * Added petskillbonus command for pet skills. Added pet_skill_bonus functions in pet.c. Made pointers for pet skills. [Valaris]
- * Added 'GM' display option for online files [Yor]
- * Improved GM accounts file reading in login-server [Yor]
-
-07/06
- * Changed heal dog in prontera to a poring. [Valaris]
- * NPCs with mob sprites can now be used in scripts. [Valaris]
- * Removed sd->brokencounter. Made getbrokenid more scripter friendly. Updated refine.txt getbrokenid commands. [Valaris]
- * Mounted classes will now use equipment of their pedestrian counterpart. [Valaris]
- * Improved management of GM account structure in char-server. [Yor]
- * Added packet betwen login to char to send GM accounts value. [Yor]
- * Added reloadGM command in ladmin to reload GM accounts file without stop the login-server. [Yor]
- * Added listGM/lsGM command in ladmin to list only GM. [Yor]
- * Correct an error in loop of char_divorce function (incorrect variable). [Yor]
- * Added some comments. [Yor]
- * Added a check on start_point.map when configuration is readed. [Yor]
- * Modified final message of login log at end of login-server. [Yor]
-
-07/05
- * Flamelauncher,frostweapon,lightningloader,seismicweapon, and enchant poison now check to make sure target's weapon is not already enchanted. [Valaris]
- * If sage breaks another person's weapon due to enchant failure, it will tell caster. [Valaris]
- * Modified venom splasher to hopefully stop crashes caused by spamming. [Valaris]
- * SA_FLAMELAUNCHER,SA_FROSTWEAPON,SA_LIGHTNINGLOADER,SA_SEISMICWEAPON now check to make sure target is holding a weapon. [Valaris]
- * SA_FLAMELAUNCHER,SA_FROSTWEAPON,SA_LIGHTNINGLOADER,SA_SEISMICWEAPON now will break target's weapon on failure (if one
- is being held and caster met requirements) [Valaris]
- * Prevent unidentified and broken items from being sold. [Valaris]
- * Added buildin_repair for equipment repair npc. [Valaris]
- * Added repair npc to forgery in prontera. (refine.txt) [Valaris]
- * Added sd->brokencounter and buildin_getbrokenid for item repair npc. [Valaris]
- * Corrected some item names [rg]
- * Fixed so @repairall success message and effect will only display once. [Valaris]
- * Added "No items needed to be repaired" message and added forge success effect to @repairall. [Valaris]
- * Added @repairall command. [Valaris]
- * Added equipment_breaking option, changed weapon_break_chance to weapon_break_rate (changed to %) [Valaris]
- * Crit's will now double weapon breaking chance if turned on. [Valaris]
- * Added missing commands in atcommand_athena.conf. [Yor]
- * Added @warpto command (same @jumpto). [Yor]
- * Added increase in chance to break weapon if using powerthrust. [Valaris]
- * Added weapon_break_chance to battle_athena.conf. [Valaris]
- * Modified multiple login from one ip prevention(and remove gm bypass). [Valaris]
- * Broken weapons will now have their description names in red. [Valaris]
- * Speed up characters saving [Yor]
- * Improved logs when a character isn't readed [Yor]
-
-07/04
- * Completed Prontera guild castles [Akaru]
- * break_weapon_chance now works, but broken weapon will not be displayed any differently than a normal weapon.
- Also does not yet affect a dual dagger assassin's 2nd weapon. No way to repair yet, and no skills/stats affect breaking chances. [Valaris]
- * Update int_storage to include broken column on all items (updates from old version) [Valaris]
- * Added @guildspy command. [Syrus22]
- * Added weapon_break_chance. (Not implemented yet) [Valaris]
- * Added break column for items in athena.txt (will upgrade older versions automatically) [Valaris]
- * Changed default required GM levels for GM commands (effective if corresponding directive(s) in /conf/atcommand_athena.conf is/are missing) to 1 [rg]
- * Added packet_table_en.txt in doc folder. Has some translations of the client_packet.txt. [Valaris]
- * Prevent @monster and @spawn of guardians/emperium. [Valaris]
- * Changed killmonster so it will not destroy guardians. [Valaris]
- * Added prevent_multi_login in battle_athena.conf to disable multiple logins from same ip (ignores gms, and will
- display ip of offending ip if turned on) [Valaris]
- * Added checks on player trading to prevent possible exploits. [Valaris]
- * Make sure cart is on before vending. [Valaris]
- * Cleaned up vending exploit fixes. Now checks to make sure not vending more than max items per skill level. [Valaris]
-
-07/03
- * Prevent use of potion pitcher on oneself, fixed potion pitcher so can be used on other targets. [Valaris]
- * Fixed the damage code for Falcon Assault, so its not totally useless. [?]
- * Update peco riders for people upgrading athena, fixed bug in unmounting pecos. [Valaris]
- * Removed option 32 from @option, added @mountpeco command. [?]
- * Removing peco will revert to proper job level, fixed so jobchanging from peco status to peco user without peco status,
- will update job to peco status. (ie going from Mounted crusader to Unmounted knight, will jobchange to mounted knight) [Valaris]
- * Fixed so Peco mounting will not reset job level. Set to remove peco status if jobchanging to a class that does not use them. [Valaris]
- * Peco mounting will now jobchange accordingly. [Valaris]
- * Added checkfalcon and checkriding script commands. [Valaris]
- * Added checkcart script command (since was already being used in scripts) [Valaris]
- * Re-added unix fd_setsize definitions, makefile will now pass -DFD_SETSIZE=4096 only for windows compiles.
- Tested new implementation of using -DFD_SETSIZE=4096 in makefile on windows box, and got past 64 connections even. [Valaris]
- * Improved messages between servers about connections. [Yor]
- * Improved pc_resetlvl, fixed the bug about options being left. [?]
-
-07/02
- * Added optional match_test in @who/who2/who3 commands (no sensitive case) [Yor]
- * If there is no map-server, send right message to client (char-server) [Yor]
- * Improved counter of users (char-server) [Yor]
- * Improved save of characters (char-server) [Yor]
- * Improved sorting of account before save (login-server) [Yor]
- * Improved map search at selection of a character (char-server) [Yor]
-
-07/01
- * Removed FD_SETSIZE definitions from socket.h, added -DFD_SETSIZE=4096 argument to makefiles. [Valaris]
- * Changed exploit fix in chrif.c [Valaris]
- * Added assassin mask view_id in item_db [Valaris]
- * Added a parameter to authorise minimum GM level at connection (login) [Yor]
- * Fixed crash caused by making raw connection to map-server. [Valaris]
- * Corrected a possible error at check of online players [Yor]
- * Improved characters names control/check [Yor]
- * Improved save/load of REG2 strings and values (login) [Yor]
- * When there is no char-server, login-server sends proper message instead of a void list of servers [Yor]
-
-06/30
- * Fixed a crash when used @charmodel,@charstpoint,@charskpoint and
- @charzeny with the wrong name [Kalaspuff]
- * Added possibilities for switchs in battle.conf (add some foreign language) [Yor]
- * Protected char-server again disconnection of login-server [Yor]
- * Added possible protection against packet exploits in chrif.c. [Valaris]
- * Login-server: Added an option for the format of the date (log, etc...) [Yor]
- Improved some little code.
- Added log for char-server packets.
- * Correction of prtg_cas03.txt that crash server AT START! [Yor]
- * Added functions of mapflag noskill [Kalaspuff]
-
-06/29
- (Dated On Aegis Website)
- *--Released 1.0.0 RC2--*
-
-06/28
- * Added monsters_ignore_gm option. Monster won't attack GMs if turned on unless attacked and within 1 cell. [Valaris]
- * Added drops_by_luk option in battle_athena.conf. Anything higher than 0 will turn this option on, and act as a mutiplier.
- Example : Setting of 10 with 50 luk would add 5 to the drop rate. So say a card has a drop rate of 2, it would become 7. [Valaris]
- * Fixed range and removed skill failed message from Venom Splasher, also moved some of it's code around. [Valaris]
- * When a player arrive on map-server, time limit of its account is displayed if not unlimited [Yor]
- * Fixed problem where warp portals broke in npc.c [Valaris]
- * Updated atcommand_heal so it works like it should [Kalaspuff]
-
-06/27
- * Changed Venom Splasher so it will increase damage based on level of Poison React (had it set so the player had to be
- using it, but it turns out it doesn't need to be) [Valaris]
- * Venom Splasher now works except for the counter part. Damage is instantly dealt if skill is successful. [Valaris]
- * Improved @item command to make correctly pet eggs [Yor]
- * Updated Chase Walk so you can't attack while you have it casted [?]
- * Removed un-needed code for graffiti from clif.c [Valaris]
- * Added @ban command (to ban a player for a limited time) [Yor]
- * Added @charblock command (you have been blocked by GM team) [Yor]
- * Added the mapflag nowarpto [Kalaspuff]
- * Updated the function of nowarp [Kalaspuff]
-
-06/26
- * When a player is banned (or with a state != 0), he is disconnected [Yor]
- * When sex is changed, skills of other sex are reseted (and skill points increased of the same number) [Yor]
- * To avoid problem with change sex and equipement, changed sex character is unequipped of all equipment [Yor]
-
-06/25
- * Added @charchangesex GM command [Yor]
- * Changed: Changesex is now done after that the login-server has confirmed the change [Yor].
- becuase sex is saved in account file.
-
-06/24
- * Added new classes in change sex script command (buildin_changesex). [Yor]
- * Translated pet_db.txt again [Valaris]
- * Initial implementation of Venom Splasher. Runs checks on target poison status and whether or not hp is less then 2/3.
- Will display skill failed if checks do not pass. Shows effect when successful. [Valaris]
- * Added administration system to change final date of a banishment. [Yor]
- * Added information about banishment in admin packets about an account. [Yor]
- * Updated Chase Walk so it cancels when recasted to fix it. [?]
- * Initial implementation for Chase Walk skill for Stalker Class [?]
- * When an account is banned, message_error_7 is not more modified [Yor].
-
-06/23
- (Dated On Aegis Website)
- *--Released 1.0.0 RC1--*
- * Added bRandomAttackIncrease for Executioner card. Chance stacks, attack does not. [Valaris]
- * Fixed magic_damage_return so it will actually work (for Maya card). [Valaris]
- * Add a ban timestamp in the structure of the accounts. Management not yet make [Yor]
-
-06/22
- * Don't send a message when it's void (packet 0x8e) - client doesn't display it [Yor].
- * Add a refresh time parameter for the html online file (refresh time in the explorer) [Yor].
- * Create a job_name function in atcommand to have the name of the job (suppress repeated code) [Yor].
- * Added New City: Jawaii
- * Fix free memory of online structure at end of char-server [Yor].
- * Remove possible duplicated online players (multiple map-servers) [Yor].
- * Add examples in state command (ladmin) [Yor].
- * Use a function to display warnings in login-server to avoid duplicated messages with import option [Yor].
- * Iinitial implementation for magicdamagereturn for Maya Card [?]
- * skill_out_range_consume - If it is set 'no' the skill will still be cast (like real servers).
- If it is set to yes, skill will fail and sp and items required will be lost. [Valaris]
-
-06/21
- * Updated Sacrifice skill code to be more flexible for user usage [?]
- * Changed SC_ATTACKPOTION and SC_MATTACKPOTION to SC_ATKPOT and SC_MATKPOT, also added it in item_db.txt [?]
- * Guild Territory will now display the # of castles owned or "None Taken". [Valaris]
- * Changed SC_ATTACKPOTION and SC_MATTACKPOTION so the increase can be specified in itemdb.txt.
- Example : sc_start SC_AtkPot,18,30; (+30 atk for 30 seconds) [Valaris]
- * Added SC_ATTACKPOTION and SC_MATTACKPOTION for +30 atk for specified time period (need to get the correct id's yet,
- right now giving wrong icons and wrong message). Added entries in const.txt, need more info to complete these. [Valaris]
- * Fixed so players will always spawn with guild emblem if one is needed. [Valaris]
- * Reduce number of tests in atcommand_character_stats_all (@charstatsall). [Yor]
- * Fix memory management for online players list. [Yor]
- * Party HP now updates instantly on change. [Valaris]
- * Fixed crash when non-guild members are in the area of guardians in attack mode.(Will ignore them) [Valaris]
- * A higher level GM is not displayed by who/who2/who3 if he uses HIDEGM. [Yor]
- * When a GM with HIDEGM relogs, he is always HIDEGM (only GM). [Yor]
- * Improve presentation of online.txt file. [Yor]
- * In /npc/quests/magicalhatquest, corrected checking for and deletion of Mage Hat instead of Wizard Hat. [rg]
-
-06/20
- * Fixed problem with guardian emblems disappearing [Valaris]
- * If a GM use GM HIDE, he is not counted in the number of players [Yor]
- * Setup prtg_cas01 to load guardians on server startup and to spawn them when purchased. Also switched from GuardianDied
- to OnGuardianDied (other way wasn't working). Changed so guardians won't be killed on agitend. [Valaris]
- * Guardians cannot attack and cannot be hurt during non woe time. [Valaris]
- * Switched checking of castle.txt format so it won't wipe guardian hp everytime it loads. [Valaris]
- * Made it so if guardians were installed in old db, that it will set guardians to full hp based on defense and class. [Valaris]
- * Autosave will save guardian HP data. [Valaris]
- * Castle.txt visibleG flags will be set when guardians are killed. [Valaris]
- * Moved emperium defense upgrade to mob.c. [Valaris]
- * Removed guardian hp saving from agitend. [Valaris]
- * Added option to choose which columns are displayed in the online files [Yor]
- * Added option to choose how to sort online players in the online files [Yor]
- * Correction of a new error on guild (from [Valaris]). Old castle.txt files couldn't be readed. [Yor]
- * Kafra Points And Rewards fixed [Darkchild]
- * Kafra file made a lot smaller with DoEvents [Darkchild]
- * Fixed lotsa bugs in Kafra's [Darkchild]
- * Initial implementation for paladin's skill sacrifice [?]
- * Loading/Saving of guardian hp (loads on agitstart, saves on agitend) [Valaris]
- * Added so guardian hp will change accordingly. Moved the guardian defense increase to mob.c [Valaris]
- * Implemented guardian and guardianinfo script commands [Valaris]
-
-06/19
- * Added Ghp0-7 into castle database [Valaris]
- * Added configuration parameters to choose online files filename [Yor]
- * Added online files (txt and html) [Yor]
- * Added choose of authorised letters/symbols for characters names [Yor]
- * Added 3 new Dragon Boat Festival monsters with temporary stats to mob_db [Akaru]
- * Translated more of item_db [Akaru]
- * Added correct effects for Dragon Boat Festival items [Akaru]
- * Solve problem about the change of MAX_GUILDPOSITION by [Valaris] when we load an old guild.txt file. [Yor]
- * Improve allow/deny configuration. Write warnings if necessary. [Yor]
-
-06/18
- * Add heal_payment.txt as an alternative to heal.txt. [Yor]
- * Sex change (char.C): Correct error in jobchange. Disconnect player if connected. [Yor]
- * Sex change/account deletion: Change authentification to avoid that player comes back on char-server within the 5 secondes before disconnection. [Yor]
- * Save configuration of login-server in log file at start. [Yor]
-
-06/17
- * Added fritz's vending exploit fixes. [Valaris]
- * Increased max guild castle size to accomodate for novice guild castles. [Valaris]
- * Fixed investment in prontera castle 1. [Valaris]
- * Implemented of showing guardian hp on guardian investment in prontera castle 1 (factors in defense investment) [Valaris]
- * Added strmobinfo script command. Syntax is strmobinfo(x,y). 'y' is the mob's id. x will show different values.
- 1=english name, 2=jap name, 3=level, 4=max_hp, 5=max_sp,6=base_exp,7=job_exp. [Valaris]
- * Disable % and / for 1st symbol of commands (party chat symbol and standard ragnarok GM commands) [Yor]
-
-06/16
- * Added fully functional economy for Prontera Castle 2 Guild Wars script [Akaru]
- * added fix for cross-class ensemble skills. [?]
- * Increased max guild member limit to accomodate for +2 member increase per extension level
- and increased max position to 56 to accomodate for all members. [Valaris]
- * More of fov's fixes for atcommand.c, chrif.c, and clif.c. [Valaris]
- * added fixes for class checking skills like bard & dancer skills and a priest skill. [?]
- * updated skill_cast_db and skill_require_db.txt [?]
- * changed int_guild.c added +4 for extension skill to match kRO [?]
- * remote administration: add a command/packet to change sex of an account [Yor]
- * Log detailled reason of refused connection in remote administration [Yor]
- * Create a mmo_auth_tostr for accounts [Yor]
- * Add a message when char-server is terminated [Yor]
- * Save deleted accounts (administration deletion) in log file [Yor]
- * Add a message when login-server is terminated [Yor]
-
-06/15
- * Added in fov's fixes for socket.c, atcommand.c, npc.c and skill.c [Valaris]
- * Added a char_log function. Save unreadable characters in log instead of a specific file [Yor]
- * Save invalid account lines in log file. Account will be never lost [Yor]
- * Sort characters of same player with the slot number in the characters file [Yor]
-
-06/14
- * Fix errors in prtg_cas01, prtg_cas05 and MrSmile scripts [Akaru]
- * Added fully functional economy for Prontera Castle 1 Guild Wars script [Akaru]
-
-06/13
- * If player is on map-server when the account is deleted, player is now disconnected [Yor]
- * Correction of char deletion bug when account is deleted [Yor]
- * Added Prontera Castle 5 guild wars script [Akaru]
- * Added Prontera Castle 4 guild wars script [Akaru]
- * Add checks about duplicated character ids and names [Yor]
- * Don't save a reg of a character if its string is void [Yor]
- * Read a character even if a reg string is void (don't suppress the char for that) [Yor]
- * Save characters in account_id order [Yor]
- * Save not readed characters in a file (char file name + "not_readed.txt") [Yor]
- * Display line number when a character can not be readed [Yor]
- * Initialise char_num! Display number of readed characters [Yor]
- * Do right initialization of char_dat [Yor]
- * Add red color for ERROR displays in char.c [Yor]
-
-06/12
- * Change 0 to '\0' for char in login.c. Add red color for ERROR displays [Yor]
- * Optimised Mr. Smile NPC script [Akaru]
- * Add a configuration in atcommand.conf to set the 1st character of ALL commands (Now, you can choose @, #, !..., any char that is not control character) [Yor]
- * Optimised Prontera Castle 1 and 2 guild wars scripts [Akaru]
- * Added Prontera Castle 3 guild wars script [Akaru]
- * Changed Graffiti placement, will allow placement of one painting at a time (old one will be replaced). [Valaris]
- * Graffiti displays to other plays and remains on map for set time period. [Valaris]
-
-06/11
- * Initial implementation of graffiti (does not change directions yet (vertical/upsidedown) and doesn't dissappear [Valaris]
- * Add config_switch (0/1, yes/no, ...) for char-server configuration [Yor]
- * Add a display when a player does a connection [Yor]
- * Add a display when a remote administration does a connection [Yor]
-
-06/10
- * Improve compiling instructions for cygwin (socket.h) (depends of the cygwin version). [Yor] with help of [Lostsoul]
- * Add parameters in login.conf to display or not parse information [Yor]
- * Remove some repeated codes in ladmin / add example when error of command [Yor]
- * Remove delete_session error in login.c (sorry) [Yor]
- * Display correct message for char-server disconnection [Yor]
- * Finish translation of ladmin [Yor]
- * Fixed Various Npc Bugs [Darkchild]
- * Added green colour for READY displays in char-server, login-server and map-server [Akaru]
-
-06/09
- * Add some comments in ladmin [Yor]
- * Remove displaying of packet 0x2714 from login-server [Yor]
- * Correct length of password send to login-server in char-server [Yor]
- * Char-server/login-server: put default lan to 127.0.0.1 instead of any hasardous value [Yor]
- * Change displaying of the title [Yor]
- * Optimised twin towers script to use duplicate [Akaru]
- * Edited to a more user friendly error message for invalid server communication password [Akaru]
- * Updated the item_db for more item name consistencies [Akaru]
- * Reverted training grounds back to new_1-?.gat maps. [Valaris]
- * Added added more variety to sending packets to guild members (same map, same map w/out self, ect) [Valaris]
-
-06/08
- * Put a HOWTO in lan_support.conf. [Yor]
- * Removed extra semicolons in char.c, map.c, and pc.c. [Valaris]
- * Added missing } to clif_storageitemlist in clif.c and found a couple lines ending with 2 semicolons, removed them. [Valaris]
-
-06/07
- * Translated refine_db.txt. [Valaris]
- * Negative vending fix. [Fritz]
- * Correction of mktime parameters in ladmin + some translations [Yor].
- * Add some checks on login-server configuration parameters [Yor].
-
-06/06
- * Fixed error in skill_tree.txt that would crash some people's servers when changing to Professor. [Valaris]
- * Added admin_state directive for enabling and disabling remote administration, instead of testing whether admin_pass == "" [rg]
- * Add title to the servers. [Yor]
- * Add warnings about default password usage (administration and gm passwords). [Yor]
- * Modify adduser.c for the default configuration. [Yor]
- * Write the complete admin_packet.txt. [Yor]
- * Champion NPC was looking for a priest instead of monk, changed to correct value. [Valaris]
- * Small fixes in guide.txt, kafra.txt, and swordsman.txt pointed out by StiNKy. [Valaris]
- * Begin splitting monsters.txt [Akaru]
- * Removed obselete monster spawn files [Akaru]
- * Complete Guild Wars for Prontera Castle 2 script done [Akaru]
- * Fixed prevent_logout option. [Valaris]
-
-06/05
- * Implemented guild castle regen.(Stackable 2x for castle owners) [Valaris]
- * Fixed player logout display on map-server console. [Valaris]
- * Added atcommand_spawn_quantity_limit directive to /conf/battle_athena.conf [rg]
- * Fixed noskill map flag [?]
- * Complete information about login configuration in conf_ref.txt [Yor]
- * Add possible configuration values on/off or yes/no in login-server [Yor]
- * Guardians and emp will now get +2000 hp for every defense investment within a castle [Valaris]
- * Changed the login server to reject all remote administration authentication if the admin_pass directive isn't set, and commented-out the admin_pass directive in /conf/login_athena.conf [rg]
- * Changed /src/common/grfio.c so it doesn't try to read GRF files with no respective directive in /conf/grf-files.txt [rg]
- * Changed so no one can spawn inside castles. [Valaris]
- * Updated item_db with more consistant names, fixed some unknown_items [Akaru]
- * Complete Guild Wars for Prontera Castle 1 script done [Akaru]
- * Disabled guild breaking, alliance breaking, and alliance making during WoE. [Valaris]
- * Will not default to prontera.gat if map-server is not connected. [Valaris]
- * Warp players who are not in guild out of castles when WoE starts. [Valaris]
-
-06/04
- * Allies now do no damage to guardians or emperium. [Valaris]
- * Prevent allies from being attacked by guardians. [Valaris]
- * Optimized guardian emblem code. [Valaris]
- * Fixed map-server crashing with spawning guardians in untaken castles. [Valaris]
- * Guardian emblems will change if castle is taken, but client needs to refresh map. [Valaris]
- * Fixed problem where guild emblem would vanish from guild info screen. [Valaris]
-
-06/03
- * Improve e-mails checks and LAN/WAN checks on char-server. [Yor].
- * Add some explanations in front of accounts file. [Yor]
- * Set a non LAN configuration for basic configuration in lan_support.conf. Explain parameters. [Yor]
- * add missing parameters of char_athena.conf, and explain them. [Yor]
- * Restore default admin pass and gm pass of login_athena.conf, and add missing parameters. [Yor]
- * fix missing include in char.c. [Yor]
- * Translation of checkversion. Add some explanations in front of file. [Yor]
- * Translation of getlogincount [Yor]
- * Finish translation of new login.c [Yor]
- * Implemented Guardian Emblems [Valaris]
-
-06/02
- * Added maximum_level option in battle_athena.conf [Valaris]
- * Added maximum level cap to all the level up commands. [Valaris]
- * Added "Deal has been cancelled" message to Fritz's input exploit fix. [Valaris]
-
-06/01
- * Fixed training ground npcs and warps, removed depreceated maps, using new ones. [Valaris]
-
-05/30
- * Small map-server crashing fix with Leo and Guide npcs in training ground [Valaris]
-
-05/29
- * Removed item_value_db.txt and all references to it [Valaris]
- * Removed unused class_equip_db.txt [Valaris]
- * Fixed stat and level reset bug where needed status points wouldnt reset unless relogged [Valaris]
- * @monster will summon monster without an amount specified [Valaris]
-
-05/28
- * Added heal and usable item rate modifier [Valaris]
- * Added pet equipment to equipment rate modifier [Valaris]
- * Added option to turn alchemist summon experience and drops on and off [Valaris]
- * Alchemist Marine Spheres now randomly explode [Valaris]
- * Fixed bug where if certain items lowered max hp (4 mysteltain, and 1 eddga) below 0
- would loop to server max hp value. [Valaris]
-
-05/26
- * Added New Hats [Darkchild]
- * Added New Monsters [Darkchild]
-05/23
- * Added @charstatsall, views all characters (easy for money bug scaning etc! [Fritz]
- * Max to input npc command, 0 is lowest, 99999999 is max, this to prevent money bugs! [Fritz]
-
-05/21
- (Dated On Aegis Website)
- *--Released 0.5.2--*
-
-05/20
- (Dated On Aegis Website)
- *--Released 0.5.1--*
- * got dye working again [Darkchild/fritz]
-
-05/19
- (Dated On Aegis Website)
- *--Released 0.5.0--*
-
-05/09
- * added Prontera Guild Castle 3 test guild wars test script [Akaru]
- * modified Prontera Guild Castle 1 and 2 guild wars test script [Akaru]
- * fixed several valkyrie jobchangers [Akaru]
-05/08
- (Dated On Aegis Website)
- *--Released 0.4.2--*
- *--Released 0.4.1--*
- * added Prontera Guild Castle 2 test guild wars test script [Akaru]
-
-05/07 (Dated On Aegis Website)
- *--Released 0.4.0--*
-
-05/06
- * added Prontera Guild Castle 1 test guild wars test script [Akaru]
-05/04
- * removed parses and added ENGLISH! [?]
-
-04/29 (Dated On Aegis Website)
- *--Released 953 Delta--*
-
-04/28 (Dated On Aegis Website) (Whose Ideas Were These?)
- *--Released 953 Gamma--*
-04/27
- *--Released 951 Beta--*
- * fixed @jobchange crash [credits to Mugendai, commited by Akaru]
-
-04/25 (Dated On Aegis Website)
- *--Released 947 Alpha--*
-04/23
- * added more Professor Skills and added checks [?]
-04/10
- * added more upper skills from moonsoul's works [?]
-02/12-04/10
- * CVS Down - Not Many changes could be made...*
-
-02/22 (Dated On Aegis Website)
- *--Released 817--*
-
-02/12
- * added more mob skill conditions (friendstatuseq, mysyatuseq, friendhpltmaxrate) [RoVeRT]
-02/06
- * dumped @skillall for @allskill [?]
-02/05
- * fixed provoke so it doesnt work on undead [RoVeRT]
- * added TyrNemesis^ card removal code and min/max settings [RoVeRT]
-02/04
- * added start_zeny and party_level_range to char_athena.conf [RoVeRT]
-02/03
- * Improved the prontera.gat map fallback. [Sara-chan]
- * Improved the way guild emblems act when logging in. [Sara-chan]
- * Undead-class armor, and Undead monster themselves will never be frozen [RoVeRT]
- * fixed negative values for NPC to always be 0
-01/26
- * mob_warpslave correction [RoVeRT]
-01/25
- * added poison hp reduction [AppleGirl]
-01/20
- * added intimidate [RoVeRT]
- * added mvp checks for some skills
-01/17
- * added skill check for empelium attack and removed drops from NULL kills [RoVeRT]
-01/16
- * added secondary effects for when characters with appropriate elemental armor
- are within area of effect of sage spells SA_VOLCANO(atk up), SA_DELUGE(max hp up),
- SA_VIOLENTGALE(flee up) [moonsoul]
- * removeal of @randmon as it isnt needed [RoVeRT]
-01/15
- * fixed auto spell so it works the prober way [RoVeRT]
-01/12
- * added mob_warpslave [RoVeRT]
- * added mob_warp to check noteleport mapflag
-01/07
- * added OnCommand for NPC [RoVeRT]
- * added new on death method for NPC spawned mobs [RoVeRT]
- * added mobcount [RoVeRT]
-01/06
- * fixed icon status for spear quicken [AppleGirl]
- * added quoted name support for @monster [RoVeRT]
-01/05
- * added indivudal support for card and equip drop rates [RoVeRT]
-01/04
- * added TF_PICKSTONE and skill check condition for TF_THROWSTONE [AppleGirl]
- * added updated cast_db.txt and fixed SA_VOLCANO, SA_DELUGE,
- SA_VIOLENTGALE, and SA_LANDPROTECTOR GRAPHICS [AppleGirl]
- * Fixed Effects of a few bard Skills. [AppleGirl]
- * added option to stop logout for 10 seconds after taking a hit [RoVeRT]
-01/03
- * added inet_ip support to char and map [RoVeRT]
- * added checkcart, checkfalcon and checkriding npc commands
-01/02
- * added new npc timer support that is independant of a player [RoVeRT]
-12/31
- * Added @refineall [Mark]
-12/30
- * added support for custom_item-db.txt with battle_athena.conf option [RoVeRT]
- * fixed @charzeny bug
- * translated help.txt to english anong with a few other files [RoVeRT]
-12/29
- * added umbala maps to map_athena.conf [RoVeRT]
-12/26
- * added Skill_range based on level, and partially working AutoGuard [Moonsoul]
- * added Correction of Whip and Instrument Damage Again [Sara-Chan]
-12/25
- * Spear Quicken Correct Graphics,Fixed Magnum Break (Which Fixes All Other
- Splash skills), and Fixed Brandish Spear [AppleGirl]
- * Updated Command For @SkillAll Added Atcommand_athena.conf [RoVeRT]
-12/24
- * Added Side Effects for multiple skills for 2-2 classes [AppleGirl]
-12/23
- * Added GM Command Called @Skillall [RoVeRT]
- * @skillall to skill-up all your current skills [RoVeRT]
- * @hide does hide you from all monsters [RoVeRT]
- * fire wall limited to 5 per map [RoVeRT]
- * to turn on PVP without @pvpon and to disable flywing search for mapflag [RoVeRT]
- * no luck with @morph at this time yet [RoVeRT]
- * splash attack added but still kinda buggy [RoVeRT]
- * Added in Dancing and Song Playing for Bard and Dancer [AppleGirl]
- * Added Skill Arrow Check For Archer Skills [AppleGirl]
- * Added Skill Status Recovery [AppleGirl]
- * Added Skill Bard and Dancer Skills Last Longer [AppleGirl]
- * Added Skill Grimtooth does splash damage [AppleGirl]
- * Added Skill Steal Fixed and Snatcher [AppleGirl]
- * Added Skill SonicBlow only works with Katars Now [AppleGirl]
-12/22
- * Added Skills Shield Boomerang, Shield Charge, and Defender [AppleGirl]
+Date Added
+
+-------- Read Changelog-SVN.txt for the newer SVN entries--------
+
+2006/04/30
+ * Skills with the move_enable state won't get the walkdelay increased on a
+ skill-cast. [Skotlex]
+ * Some corrections in the clif_parse_whisper function which should fix
+ crashes in the chat_log under "certain" conditions. [Skotlex]
+ * Fixed dangling pointer in pc_steal_item (missing lines) causing crash. [Lance]
+ * Fixed lack of initialization in chrif_authreq causing crashes in chrif_authok. [Lance]
+ * Fixed a logic error that was likely the cause of pet loot drops not
+ working. [Skotlex]
+ * If someone is expulsed from a guild while the guild storage is open, it
+ will be auto-closed now. [Skotlex]
+ * Modified battle_consume_ammo to prevent consuming multiple arrows on
+ AC_SHOWER. [Skotlex]
+ * Readded script command skillpointcount... [Skotlex]
+ * Fixed and enabled STEAL skill [Lupus]
+ * Implemented NJ_SHADOWJUMP. [blackhole89]
+ * Moved the soul-drain code to skill_counter_additionaleffect [Skotlex]
+ * Fixed fake NPC missing code. Thanks to Skotlex for pointing out. [Lance]
+
+2006/04/29
+ * Changed the HT_DETECTING method from invoking clif_changetraplook to
+ clif_skill_setunit since in the first the client ignores the fact that it
+ is now a trap (rendering skills like Remove Trap useless). [Skotlex]
+ * added script command skillpointcount. Returns total amount of skill
+ points a char has (the value returned is the same that SkillPoint would
+ have after invoking a skill reset) [Skotlex]
+ * Modified Defender. Speed reduction is 35-5*lv%, damage reduction on
+ devoted chars is 5+5*lv%. These values are custom, but should be closer to
+ "reality" than what we had. [Skotlex]
+ * When you have the wrong ammo type equipped, the equip arrows first
+ message will be sent, as suggested by Haplo [Skotlex]
+ * Changed checks of item's identify field from 0/1 to 0/non-zero [Skotlex]
+ * Corrected TK_JUMPKICK to place the caster on the tile next to the target
+ rather than on top of it. [Skotlex]
+ * Small change in pc_calc_skilltree which should fix the infinite loop...
+ [Skotlex]
+ * Added @noask command: enable/disable deals/invites autorejecting.
+ [LuzZza]
+ * Removed unreferenced local variable in pc.c [Lance]
+ * Reverted npc_checknear to exclude check for class_ -1.
+ * Removed npc_checknear in npc_buysellsel, npc_selllist and npc_buylist
+ as enough preventive measures of hacking are already implemented.
+ [Lance]
+ * Updated STEAL skill (WIP), added a battle config option: [Lupus]
+ 'skill_steal_max_tries' to set max number of stealing tries.
+ It could help to fix stealing exploit on mobs with few drops
+ * Added support for packet 0x229 (clif_changeoption). [Skotlex]
+ * Bumped up PACKETVER to 7 to enable use of packets 0x229 and 0x22c
+ [Skotlex]
+ * Added missing next/prev initialization in chat-creation. [Skotlex]
+ * Added missing sql-files/mob_db.sql... somehow it was missing from the
+ mob_db update. [Skotlex]
+ * Clones can't be class-changed now [Skotlex]
+ * Readded the class == -1 distance check in npc_checknear [Skotlex]
+ * Replaced check sd->trade_partner for sd->state.trading in clif.c [Skotlex]
+ * Using malloc for memory allocations that doesn't need to be pre-initialized.
+ * Eliminated initializations for pointers returned by calloc.
+ * Moved grfio_final to do_init since it's not used after server boot.
+ * Optimized scripts to return CONSTSTR instead of allocating memory just to return
+ a constant string. Some buildin functions still need work.
+ * Disabled graph since it doesn't work yet. [Lance]
+
+2006/04/28
+ * Modified the mob_db structure. The mvp related columns were moved to
+ before the drops, amount of drops increased from 10 to 15. [Skotlex]
+ * Updated sql-files/mob_db.sql (and mob_db2.sql) to latest. [Skotlex]
+ * Modified HP conversion so that it fails when you don't have enough Hp.
+ [Skotlex]
+ * Cleaned up Strip skills so that the skill animation will only show when
+ something was stripped. [Skotlex]
+ * Added constant MAX_MOB_DROP to specify the amount of normal drops a mob
+ has. The mob_db reading code will automatically parse the file according to
+ the number of drops expected (the Mexp/Mper and MVP item rewards must still
+ be after the normal drops). Set to 10 currently. [Skotlex]
+ * Mobinfo's drop list will use jName rather than Name for drop names.
+ [Skotlex]
+ * Some cleaning of the ASC_BREAKER code in skill_attack [Skotlex]
+ * Modified skill_attack so that all skills with amotion get their damage
+ delayed (should fix mob walk-teleport issues) [Skotlex]
+ * Added function stristr to strlib.c, used by mob.c and item_db.c for
+ case-insensitive seeks. [Skotlex]
+ * Removed the sending of the online guild list when you log-on, may fix the
+ "getting stuck" problem. [Skotlex]
+ * Added battle config default_skill_delay. Specifies the default skill
+ delay for most skills, it is also applied as a walkdelay (total skill
+ walkdelay is default_skill_delay + that skill's can't walk delay) [Skotlex]
+2006/04/27
+ * skill_castend_id and skill_castend_pos will trigger unit_stop_walking
+ with flag 1 (fix pos) rather than none. Should fix some skills making you
+ appear moving while doing them. [Skotlex]
+ * Modified clif_skill_nodamage to allow for a NULL source. This is to
+ simplify code related to AL_HEAL/MG_RECOVERY effects where someone shows a
+ healing value, but there's no "caster" in sight (Pitcher skills, Blood
+ Drain, Kaahi) [Skotlex]
+ * Updated Kaahi to use clif_skill_nodamage to display amount healed.
+ [Skotlex]
+ * Added unlocking ud.target on mob_unlocktarget, fixes mobs chasing you
+ around while cloaked. [Skotlex]
+ * Changed the default rate of clone mob skills to 5% modified by
+ mob_skill_rate setting. [Skotlex]
+ * Applied some changes in unit.c to make mobs pick chase paths as they
+ should. [Skotlex]
+ * unit_remove_map will reset attackable-time, canact and canwalk delays.
+ [Skotlex]
+ * Added a timer in clif.c so that walk requests that are done while your
+ cannot move duration will be delayed and processed afterwards (as long as
+ the walk delay remaining is less than 2000 ms) [Skotlex]
+ * Some changes in the slave skill conditions. All their skills are
+ triggered at a 10% chance now. [Skotlex]
+ * Changed in the behaviour of wedding skills, they should be getting all
+ the land-skill checks now. [Skotlex]
+ * Small change in @commands, may fix the null-pointer error. [Skotlex]
+ * Changebase script command will also refresh the weapon sprites (in case
+ you changed into Wedding/Xmas class) [Skotlex]
+ * Small change in the pet_ai that should stop the "strange" catch-up
+ behaviour of pets when you are much faster than them. [Skotlex]
+ * Corrected the unequip script of the wedding dress/tuxedo (it should be
+ Class, not bClass), item_db.sql was also corrected. [Skotlex]
+ * Small change in the pet_ai that should stop the "strange" catch-up
+ behaviour of pets when you are much faster than them. [Skotlex]
+ * Now when you do @baselevel to reduce your level and you don't have enough
+ stat points to deduct, you will get a stat-reset and THEN your stat points
+ will be reduced. [Skotlex]
+ * Added at command @commands, displays the list of commands available to
+ you. Defaults to level 1. [Skotlex]
+ * Added the missing clif_* calls to make changebase's view-class change
+ update on the client. [Skotlex]
+ * Added battle config hide_woe_damage which hides damage on woe maps
+ packet-wise (battle/client.conf). [Skotlex]
+ * Fixed base-level up @ command giving stat points instead of taking them
+ away when leveling down. [Skotlex
+ * Some small change in pc_heal which would let you have negative SP if you
+ were killed on the same pc_heal invocation. [Skotlex]
+ * Added 3rd argument to script command 'setmapflag' thx to Jbain [Lupus]
+ setmapflag "prontera.gat",mf_pvp;
+ setmapflag "prontera.gat",mf_jexp,100;
+ Now you can dinamically increase/decrease EXP rate on set maps
+ e.g. you can lower EXP on the cmd_fild02 ^_-
+2006/04/26
+ * Updated sql-files/item_db.sql to current. [Skotlex]
+ * Item use interval is set to a default of 100ms now since that should be
+ low enough to not bother real players and it should cap somehow bot/macro
+ spams. [Skotlex]
+ * Updated Full Buster so that the can't act delay carries on to the weapon
+ attack delay and can't use item intervals. [Skotlex]
+ * Added script command getbattleflag to retrieve the current value of a
+ battle_config switch. [Skotlex]
+ * When Taekwons level up they get Bless and Agi Up level 10 instead of the
+ S.Novice bonuses. [Skotlex]
+ * Increased number of hits for TK kicks. 3 hits for TK_COUNTER and
+ TK_TURNKICK, 2 hits for TK_STORMKICK and TK_DOWNKICK (until further
+ information arrives) [Skotlex]
+ * Modified how changebase script command works, the change caused by it is
+ permanent (at least until logout). Updated the Tuxedo and Wedding dress to
+ use onequip/onunequip scripts to change the look. [Skotlex]
+ * Changed the skill_wall_check to use shoot-path seeking. May fix
+ skill_wall_check setting. [Skotlex]
+ * Fixed typo in skill.c: skill_clear_group [Lance]
+
+2006/04/25
+ * Added battle config traps_setting to determine how traps should behave.
+ With &1 traps are invisible if you didn't see them get set up. With &2
+ traps will be removed after changing maps. The default is 2.
+ (battle/skill.conf) [Skotlex]
+ * Cleaned up a bit the implementation of SC_MAXIMIZEPOWER, SC_CHASEWALK and
+ SC_CLOAKING to prevent infinite looping timers. [Skotlex]
+ * Fixed NPC_SUICIDE dropping items. [Skotlex]
+ * Moved the mapflag skill restrictions from skill_checkcondition to
+ skillnotok, this makes auto-spells not work in maps where they aren't
+ allowed. [Skotlex]
+ * Added TK_HIGHJUMP to skillnotok, the skill is blocked in noteleport maps
+ (with the exception of gvg ones) [Skotlex]
+ * Modified and simplified the random item group format. It now is
+ <GroupID>,<ItemID>,<Rate>, where Rate normally is 1, greater numbers is the
+ equivalent of adding the line multiple times. Also has support for import
+ lines. [Skotlex]
+ * Added constants to identify all item groups to db/const.txt [Skotlex]
+ * Cleaned up and updated item_db to use these new constants (warning:
+ item_db.sql needs to be updated! Sql-db users should not update until this
+ file is updated) [Skotlex]
+2006/04/24
+ * Simplified npc_gettimerevent_tick so that it should return a tick value
+ even after the last ontimer label has been reached. [Skotlex]
+ * All GMs will be sent to the char server through packet 0x2aff now.
+ (previously hidden gms were not sent to the char-server as online) [Skotlex]
+ * Made mob_searchname compare versus sprite, name and jname now. [Skotlex]
+ * Added script command escape_sql. It will return an escaped string for use
+ in the sql_query script command (in case you want to use input of players
+ in your queries). [Skotlex]
+ * Removed the skill packet from TK_RUN as the client ignores the walkok
+ packet sent right after it. It displays just fine on the client now. [Skotlex]
+ * Added DNS Blocklist support. Set in login_athena.conf.
+ I'll make it more customizable tomorrow, I coded it pretty bad. [Zido]
+ * Corrected mob_spawn_delay/boss_spawn_delay/plant_spawn_delay settings
+ (they were named rate rather than delay in monster.conf) [Skotlex]
+ * Cleaned up @grind2, @monsterbig, @monstersmall. [Skotlex]
+ * Modified override_mobs_names to work only on the mob spawn files instead
+ of everywhere (so now script-summoned mobs should keep their custom names
+ intact) [Skotlex]
+ * Added logging of deleted characters when the char_log is enabled.
+ [Skotlex]
+ * Fixed skill_delayfix not altering delay at all after you reached 150.
+ [Skotlex]
+ * Applied ers to pet loot drops and cleaned up the pet loot drop function.
+ [Skotlex]
+ * Mob skill state MSS_ANY won't include MSS_DEAD now. [Skotlex]
+ * Added mob skill state MSS_ANYTARGET ("anytarget") which means any state
+ (except dead) on which the mob has a target set. [Skotlex]
+2006/04/23
+ * Added new column to mob_db Sprite_Name to hold the mob's sprite name.
+ Columns Name and JName now hold the mob's english and kro names
+ respectively. [Skotlex]
+ - Currently both Name and Jname have the KRO names, so someone will have to
+ update the Name column with the english Mob Names.
+ * Updated mob_db.sql and mob_db2.sql to latest. [Skotlex]
+ * Added battle_config option override_mob_names to make the spawned mob use
+ the mob_db names instead of the specified names in the spawn files.
+ Defaults to 0, 1 is to use Name column while 2 is to use the JName column
+ (see battle/monster.conf) [Skotlex]
+ * Idle skills won't trigger while the mob is walking (that is for the state
+ "walk") [Skotlex]
+ * Idle skills will now trigger each IDLE_SKILL_INTERVAL iterations (10
+ currently) [Skotlex]
+ * Added support for walk packet 0x22c, will be used when PACKETVER is set
+ to 7 or above (packetver is still set to 6 for now) [Skotlex]
+ * Normal walking will now also trigger mob skills (due to the walk skill
+ condition) [Skotlex]
+ * additional experience multiplicator as mapflags which is based off battle.conf
+ so with battle.conf rates 200 and "mapflag <jexp/bexp> 200" it will be 4x
+ on this specific map and 2x anywhere else [Jbain]
+2006/04/22
+ * Angelus was giving more bonus than it should. Fixed. [Zido]
+ * Added Option constants for Carts, fixed OPTION_FLYING (it conflicts with
+ OPTION_XMAS?) [Skotlex]
+ * Updated clif.c to check for OPTION_WEDDING|OPTION_XMAS instead of view
+ class to block attacks and skill usage. [Skotlex]
+ * Cleaned up change-cart code. [Skotlex]
+ * Modified SC_XMAS to not change your view anymore and only set the proper
+ option value (OPTION_XMAS) [Skotlex]
+ * Cleaned up the code regarding char_gm reading. [Skotlex]
+ * Changed the option field to unsigned short to make room for the higher
+ values. [Skotlex]
+2006/04/21
+ * SC_CLOAKING's val4 now holds whether cloaking ends or not on attack.
+ [Skotlex]
+ * Implemented NPC_INVISIBLE, it starts SC_CLOAKING with val4 set to 1.
+ [Skotlex]
+ * Updated the HP/SP leech structures to have race-data attached to them.
+ [Skotlex]
+ * Merged all leeching code to new battle_drain function. [Skotlex]
+ * Simplified a bit the code for Signum Crucis [Skotlex]
+ * Added script bonuses: [Skotlex]
+ bonus3 bHPDrainRateRace,<Race>,<Activation Rate>,<Drain %>;
+ bonus3 bSPDrainRateRace,<Race>,<Activation Rate>,<Drain %>;
+ bonus2 bHPDrainValueRace,<Race>,<Value>;
+ bonus2 bSPDrainValueRace,<Race>,<Value>;
+ * Fixed items not really getting unequipped when they should. [Skotlex]
+2006/04/20
+ * Fixed the equip/unequip scripts not triggering for compounded cards.
+ [Skotlex]
+ * Char server will now ignore packet 0x65 for already authentified
+ accounts. [Skotlex]
+ * Added two columns to item_db: equip_script and unequip_script are scripts
+ that are executed once when the corresponding item is equipped or
+ unequipped respectively. [Skotlex]
+ * Removed bonuses bDamageWhenUnequip, bLoseSPWhenUnequip as they are no
+ longer needed. [Skotlex]
+ * Updated sql-files/item_db.sql with latest. [Skotlex]
+ * Fixed buffer overflow in clif_MainChatMessage. It now prints a Debug
+ message with the offending line. [Skotlex]
+ * Cleaned up a bunch of GS/NJ skills [Skotlex]
+ * Fixed Gatling Fever crashing server when used by non players. [Skotlex]
+ * Added support for n to specify minutes to @charban. [Skotlex]
+ * Added state.trading to specify when a trading has started. Now you should
+ be able to walk around until the trade is either rejected or started.
+ [Skotlex]
+ * Armor defense is no longer reduced by the amount of characters targetting
+ you. [Skotlex]
+
+2006/04/19
+ * Updated the doc/script_commands.txt documentation in regards to npc mob
+ spawn lines. [Skotlex]
+ * Added back the "you can't walk delay while attacking" to
+ unit_attack_timer, now when you want to walk during your attack animation,
+ you will only stop attacking, you will have to click again to move.
+ [Skotlex]
+ * Fixed a pair of wrong mapflag lines in nopvp.txt [Skotlex]
+ * Removed the max cap of autoloot so you are now allowed to set autoloot
+ values above 100. [Skotlex]
+ * Initialized w1/w2/w3/w4 before reading each npc line to avoid sending
+ unread values to the parsers (for example, if w4 has a value in one line
+ and none on the next, it will be parsed with the previous value of w4 on
+ the following lines), this could cause serious problems with mapflags and
+ the recent "off" addition. [Skotlex]
+ * Updated getpartymember to receive an int which specifies what to
+ retrieve. 0: Character names (array $@partymembername$), 1 character char
+ ids (array $@partymembercid), 2 character account ids (array
+ $@partynameaid). By default it returns party member names. [Skotlex]
+ * Updated script_commands.txt with the updated behaviour of getpartymember.
+ [Skotlex]
+
+2006/04/18
+ * Fixed a typo in map_search_freecell which was returning incorrect cells
+ according to the ranges given. [Skotlex]
+ * A tiny fix to @kami [Zido]
+ * The IRC Bot can now autojoin when kicked, set in irc_athena. [Zido]
+ * Added @who to the IRC Bot, outputs all online characters. [Zido]
+ * Changed the memory manager fatal errors when allocating memory to print
+ out the size request as well as the file and line where they originated.
+ [Skotlex]
+ * Fixed the delete_timer (@summons, alchemist plants) not invoking
+ unit_free, hence causing memory leaks and the like. [Skotlex]
+ * Applied jA's patch to fix a bug in the scripting engine in regards to
+ priority of operators. Thanks to End of Exam for the information. [Skotlex]
+ * Removed message 592 from trade.c [Skotlex]
+ * Added support for disabling mapflags on a mapflag line: [Skotlex]
+ comodo.gat mapflag nomemo <- turns on nomemo mapflag
+ comodo.gat mapflag nomemo off <- turns off nomemo mapflag
+ * Removed mapflag nopvp due to the above change. [Skotlex]
+ * Cleaned up and optimized the restricted/zones mapflag. Restricted cards
+ will just not work in disallowed maps rather than blocking the compounded
+ equipement from being used. [Skotlex]
+ * Converted the format of the battle conf files to windows format [Playtester]
+ * Shinomori's method (kinda) of remote script execution with interaction. [Lance]
+
+2006/04/17
+ * skill_clear_unitgroup is now invoked in unit_remove_map only on death if
+ the applicable battle setting is set. [Skotlex]
+ * Changed setting clear_unit_ondeath to a type 4 (bl-based) which defaults
+ to BL_ALL. [Skotlex]
+ * Fixed Absorb spirit sphere not working on mobs, thanks to Vividd.
+ [Skotlex]
+ * Cleared the ud->target on pc_stop_attack to prevent attack resuming an
+ other such oddities. [Skotlex]
+ * I seem to have broken @kami with my last commit, fixed. [Zido]
+ * Added @users to the IRC Bot, outputs the # of users online. [Zido]
+ * The baby check when wearing a tuxedo/dress now works [Zido]
+ * Fixed pet being incorrectly removed when it had intimacy 0. [Skotlex]
+ * Some cleanup in the TK_RUN related code. [Skotlex]
+ * Added variable walk_count to unit_data to be use as a counter for cells
+ walked for walk-triggered skills, on-chase skill triggers are now done
+ every 5 cells (it is the closest value that makes the average mob trigger a
+ chase skill every second). [Skotlex]
+ * mob_skill_db needs updating since it's current use rates for chase-skills
+ assume the trigger is every 100ms rather than every second.
+ * Fixed TK_RUN having a cast-bar when attempting to stop-running and
+ generating timer_delete errors when halting as well. [Skotlex]
+ * Clearing the dummy npc after fooling the client. [Lance]
+ * Updated DLLS. Please DO NOT update the libs from now on
+ (except if mySQL has newer builds which are not compatible
+ with client DLL). [Lance]
+
+2006/04/16
+ * Fixed the first call to the walk timers having the tick interval halved,
+ which made all walking timers be off by half cell with the actual position
+ displayed client-side (so everyone reaches destination cell server-side
+ half-cell before the client). [Skotlex]
+ * Fixed being halted when you are walking so that: 1. Your position
+ refreshed on the screen is correct (the current tile if you haven't reached
+ at least half path between the current and next tile and the next tile
+ otherwise) and 2. If you are halted before walking even one cell, you will
+ be moved to the next cell (to effectively prevent stun-locking). [Skotlex]
+ * Modified @monster command to use map_search_freecell (prevents mobs
+ spawning on non-walkable tiles) [Skotlex]
+ * Modified @nuke to invoke skill_cast_nodamage_id instead of the damage_id
+ version (fixes sprite and splash damage for the skill) [Skotlex]
+ * Fixed char-sql server still reading the old lanconfig format rather than
+ the new one. [Skotlex]
+ * Removed water_height.txt reading (since it is always done from the rsw
+ now) [Skotlex]
+ * Fixed a possible crash in grfio_find_file [Skotlex]
+ * Corrected water-level-reading to account for a return of null from the
+ previously mentioned function [Skotlex]
+ * Fixed mysql ping setting being in minutes rather than hours. [Skotlex]
+ * Removed npc_event_sub from npc.h and moved it to npc.c [Skotlex]
+ * Cleaned up #warp to prevent spitting non-walkable tile warnings. [Skotlex]
+ * Changed the meaning of msg_athena 2, it is now "invalid target cell,
+ randomizing". [Skotlex]
+ * Fixed wrong check of Deluge + Suiton which broke the water-requirement
+ check for skills. [Skotlex]
+ * Cleared ud->target on remove-map, it should fix the phantom mob sprite
+ issue. [Skotlex]
+ * Temperory fixed compiler warnings/errors. Please compile before commiting.
+ [Lance]
+ * Added pcre3.dll, zlib1.dll and libmysql.dll. DO NOT DELETE THEM.
+ (Required by systems without these DLLs preinstalled) [Lance]
+ * Experimental npc_event_doall_sub with queue and npc_id allocation when needed.
+ [Lance]
+ * Added warnings to npc_scriptcont for easier debugging. [Lance]
+ * Missing lines in npc_parse_script! [Lance]
+ * Sending fake npc for inputs and menus for NPC without map coordinates. [Lance]
+
+2006/04/15
+ * Fixed upgrade_svn5902.sql, thanks to Koshiro for pointing it out.
+ [Skotlex]
+ * Updated skill_attack to allow characters not on a map to attack (enables
+ traps and the like to work when they aren't cleared on the character's
+ death) [Skotlex]
+ * Removed use of packet 0x1c9 for skill_unit display, except for Graffiti
+ (which is the only unit which requires the much larger packet) [Skotlex]
+ * clif_getareachar_skillunit will send the unit_id of UNT_ATTACK_SKILLS for
+ traps (this is to prevent them from displaying on the client) [Skotlex]
+ * Updated libs, Updated vc project files, And deleted uneeded DLLs.
+ Credits to ALZ. [Zido]
+2006/04/14
+ * Updated sql-files/mob_db.sql to current. [Skotlex]
+ * Fixed being able to do all the stuff you shouldn't be able to during the
+ petrifying state. [Skotlex]
+2006/04/13
+ * Updated sql-files/item_db.sql to current. [Skotlex]
+ * Added an Info message when pinging the SQL servers. [Skotlex]
+ * Fixed crash when looking for SC_MIRACLE in battle_calc_weapon_attack
+ [Skotlex]
+ * Some more standard C code cleanups. [Skotlex]
+ * atcommand_param and charcommand_stats to make them standard C (so it may
+ compile with the Borland C). Also cleaned atcommand_param against
+ overflows. [Skotlex]
+2006/04/12
+ * Removed the noteleport mapflags from two juperos maps [MasterOfMuppets]
+ - added the nopenalty mapflag to hugel.gat
+ * Halved the aftercast delay of auto-casted spells. [Skotlex]
+ * Allowed auto-spells to retrigger themselves. [Skotlex]
+ * Changed slave chasing from using unit_walktobl to map_search_freecell +
+ unit_walktoxy, since the previous behaviour makes all slaves always end up
+ on the same cell. [Skotlex]
+ * Removed area of effect of Assumptio. [Skotlex]
+ * Added "can't act" delay update when an auto-spell triggers. [Skotlex]
+ * Expanded the warp warning so that it also warns when a warps takes you to
+ a non-walkable tile. [Skotlex]
+ * Simplified the mob-drops structure by using a single timer with a linked
+ list of drops instead of separate timers for each drop. [Skotlex]
+2006/04/11
+ * Added special_state changebase to identify when a character has a
+ special-view associated with some equipment to correctly revert the look
+ when you take off said equipment (fixes tuxedo/wedding dress when you use
+ modify_wedding_display: yes) [Skotlex]
+ * Removed the piece of code that "guesses" that job classes between 24 and
+ 68 are advanced classes from mob_avail reading since they conflict with
+ NJ/GS. Use the correct class numbers from now on! [Skotlex]
+ * Cleaned up implementation of BlastMine and Claymore Trap. [Skotlex]
+ * Added Freezing trap information to battle_calc_weapon attack. [Skotlex]
+ * Merged the can't walk delay code into the weapon-damage delay one, means
+ less timers for attacks, as well as fixing the ghost-mob issue that
+ reappeared recently. [Skotlex]
+ * Traps will not be displayed when you walk within their range. [Skotlex]
+ * Added HT_DETECTING revealing traps. [Skotlex]
+ * Added ers handling for skill_timerskill structures. [Skotlex]
+ * You don't get critical'ed when in counter-attack stance anymore. [Skotlex]
+ * Changed the default counter-type to "always critical". [Skotlex]
+ * Implemented use of ers for skill_unit_groups to reduce memory usage.
+ * Note that it's NOT TESTED yet. Use with caution, at least some obvious
+ bugs are expected to be found... [Skotlex]
+ * Modified battle_check_range to do a path-check on distances less than 2
+ (rather than 3) to avoid being able to hit through walls. [Skotlex]
+ * Modified unit_walktoxy_sub to always move at least one cell when a large
+ chaserange is specified to prevent possible infinite loops where
+ attack_timer says you are not within range, but unit_walktoxy says you are.
+ [Skotlex]
+ * Fixed Looted items always dropping in quantities of one. [Skotlex]
+ * Removed the check that deletes Magnus Exorcism cells after they hit once.
+ [Skotlex]
+2006/04/10
+ * Temperory replaced strtoll to strtoul until the function changes. [Lance]
+ * Multiple optimizations to the unit_data auto-chase upgrade, also
+ simplified the mob and pet ai routines. [Skotlex]
+ * Simplified the walk routines to half the number of timers required for
+ walking. [Skotlex]
+ * Finished fixing the unit_data auto-chase update. Still need to do some
+ optimizations... but the current code-base should be usable. [Skotlex]
+ * Fixes to the unit_data update that lets characters auto-chase while
+ attacking. It seems to work mostly now, but there's still a few issues to
+ be resolved with ranged-attackers. [Skotlex]
+ * Modified the unit_data structure to handle automatically switching
+ between chasing and attacking a character. Note that it's a work in
+ progress and not yet properly tested/finished... [Skotlex]
+ - DON'T USE THIS YET. There's much testing that needs be done, but I had to
+ commit now so I may continue work on it later....
+ * Updated the subnet support to not require specifying the subnet mask, it
+ is auto-acquired from the char/map IP and the subnet-mask. [Skotlex]
+ * skill_wall_check defaults to yes now. [Skotlex]
+2006/04/09
+ * Added the missing last_thinktime initialization to pets. [Skotlex]
+ * Reverted the change in skill_wall_check to let skills go over pits.
+ [Skotlex]
+ * Changed use of strtol to strtoll when reading the equip_jobs as strtol's
+ result is just a signed int, fixes reading of equippable jobs for certain
+ items. [Skotlex]
+ * Corrected Knives being usable by Gunslinger. SQL users use
+ upgrade_svn5972.sql to ugprade that. [Skotlex]
+ * Modified @warp/@rura to prevent causing pc_setpos position error
+ messages. [Skotlex]
+ * Fixed the mob's last_thinktime not being updated on mob_spawn, causing
+ them to not "think". [Skotlex]
+ * Fixed @npcmove not sending the correct packets to make the moving refresh
+ client-side. [Skotlex]
+ * Fixed mobs with aggressive + looter mode never looting. [Skotlex]
+ * skill_wall_check now also checks for pits so that skill effects don't go
+ through them. [Skotlex]
+ * Now you can't leave/be-kicked from a guild inside guild castles. [Skotlex]
+ * Fixed map_waterheight prefixing extra "data\" [Lance]
+ * Mob_ai update. The attacked checks will trigger even if the mob can't
+ move. Being attacked while the mob can't move no longer will trigger
+ rude-attacked skills. [Skotlex]
+ * Changed the default of multi_hit_delay from 230 to 80 which seems more
+ official. [Skotlex]
+ * Wedding recall skills are now blocked by the nomemo mapflag instead of
+ nowarpto. [Skotlex]
+ * Skill delay for weapon types is now based on adelay (ASPD) rather than
+ amotion (ASPD/2) [Skotlex]
+ * Removed ending Endure when casting Berserk, may fix the timer mismatch
+ issues. [Skotlex
+2006/04/08
+ * Fixed skill_nocast_db reading so that when the same skill is specified
+ multiple times, the blocked effects add up instead of replacing each other.
+ [Skotlex]
+ * Fixed @movenpc [Skotlex]
+ * Cleaned up and improved the lootsearch routine to pick nearest item.
+ [Skotlex]
+ * Fixed trying to set the view_data for npcs who are located on a map, but
+ have no visual data. [Skotlex]
+ * Added irc_athena.conf :) from now on, set your irc configuration in
+ conf/irc_athena.conf [Zido]
+ * Removed the baby class check when using "changebase" to change to the
+ Wedding Sprite, since it fixes the bug that the sprite doesn't show
+ at all, and baby classes arn't messed up by it anymore.
+ (or so it seems) [Zido]
+ * Fixed up irc.c, no more crashes :D [Zido]
+
+2006/04/07
+ * Likely fixed a mob not returning to their original class view on respawn
+ after they changed class in their previous life. [Skotlex]
+ * The map-server can now read the equip_job column of the item_db as both
+ decimal and hexadecimal values. [Skotlex]
+ * Updated item_db.sql current item_db.txt [Skotlex]
+ * Added upgrade_svn5951.sql for those who would like to convert their
+ existing items. (it converts the equip_jobs fields to the new values used)
+ - See db/Changelog for further info regarding the equip_job fields change.
+ [Skotlex]
+2006/04/07
+ * Moved the Fusion HP penalty to battle_calc_weapon_attack [Skotlex]
+ * Some cleaning to use battle_heal/damage rather than pc_heal/damage where
+ appropiate. [Skotlex]
+ * Cleaned up the deadly-poison hp reduction code. [Skotlex]
+ * IRC User access levels now refresh on a mode set and join/part. [Zido]
+ * Added missing creation/destruction of the expcache_ers in guild.c
+ [Skotlex]
+ * Unified status_remove_buffs/status_remove_debuffs into a single function.
+ [Skotlex]
+ * Fixed pc_setpos ignoring the clrtype sent to it. [Skotlex]
+ * unit_free will now use clear type 3 for players (warping out effect)
+ [Skotlex]
+ * You can't invite someone to a guild now within Guild Castles. [Skotlex]
+2006/04/06
+ * Hopefully fixed the wedding item-trade restriction. [Skotlex]
+ * Fixed status_clear_buffs making SC_BERSERK's end send you to 100hp.
+ [Skotlex]
+ * Rewrote the guild exp cache code to prevent overflows and to use the
+ entry reusage system. [Skotlex]
+ * The IRC Bot is now able to check each users access level prefix
+ in the channel (~/&/@/%/+), the IRC command @kami now requires the
+ user to be at least channel operator(@). Now I need to make it store
+ the users access level on every nick/mode change. [Zido]
+ * Changed the default of skill_add_range to 0, said value now disables
+ skill-range checking when casting ends. [Skotlex]
+ * Corrected the Soul Drain formula, thanks to Haplo for pointing it out.
+ [Skotlex]
+ * Addded missing aldeg_cas01 to NOWARP mapflags, thanks to Justin84 [Lupus]
+ - And we set lhz_dun03 nowarpto mapflag by default till check it on eRO/kRO
+ * Changed the random warping of mobs with no players from mob_spawn to
+ unit_warp, which prevents MSC_SPAWN skills from being retriggered for
+ already spawned mobs. [Skotlex]
+ * Modified @allstats to prevent negative/overflow issues. [Skotlex]
+2006/04/05
+ * Fixed undisguising not clearing the mob sprite for the disguised
+ character. [Skotlex]
+ * Fixed parsing of job_db1.txt due to the MAX_WEAPON_TYPE change. [Skotlex]
+ * TK ranking kicks can't be used on sucession now (can't use any of the
+ kick skills twice in a row without using a different one first). [Skotlex]
+ * Modified the ammo checks so that ammo is consumed at the end of
+ battle_calc_weapon_attack (should fix element being lost on final arrow).
+ [Skotlex]
+ * Added a define list for weapon types in pc.h [Skotlex]
+ * Cleaned up pc_checkallowskill and moved the Gatling fever check to it.
+ [Skotlex]
+ * Some cleanup of clif_parseloadendack, fixed guild-member list being sent
+ on all map-changes. [Skotlex]
+ * Removed the hardcoded removal of characters who spawn in a castle. All
+ castle maps got the flag nosave now. [Skotlex]
+ * Added support for the 2006/04/04a Sakexe packet version. [Zephiris]
+
+2006/04/04
+ * Added inter config connection_ping_interval which specifies interval in
+ hours at which mysql_ping's must be done on all connection handles to keep
+ the mysql connection alive. Defaults to 0 (disabled) [Skotlex]
+ * Made the login sql handle on the char-sql server be used only when
+ gm_read_method 1 is enabled. [Skotlex]
+ * Small fixes to npc_enable, added BL_NPC handling on status_get_sc.
+ [Skotlex]
+ - Some changes to close-confine, status start will fail when the source is
+ not found or it doesn't has sc-data. [Skotlex]
+ - pc_setoption no longer changes the character's class when
+ mounting/dismounting, it only changes the view-class. [Skotlex]
+ * Modified the char-txt server to modify the class of mounted characters to
+ their non-mounted version. Added an upgrade_svn5902 file to handle the
+ class update on the sql tables. [Skotlex]
+2006/04/03
+ * Fixed pc_setpos using unit_remove_map with type 0 instead of 3, which
+ confuses clients and makes them think the character in question is still
+ standing on the spot where it was removed. This should fix the warp-portal
+ issue. [Skotlex]
+ * Fixed script command mapwarp. [Skotlex]
+ * Fixed Auto-counter. [Skotlex]
+ * Modified Rude-Attacked behaviour so that such skills only triggers when
+ the rude-attacked count is greater than 3. [Skotlex]
+ * Added config setting slaves_inherit_mode to determine whether slaves take
+ on their master's aggressive/passive status (defaults to yes) [Skotlex]
+ * Disabled NPCs are now handled through nd->sc.option&OPTION_INVISIBLE
+ checks. Should fix disable/enablenpc calls not working. [Skotlex]
+ * Moved skill_counter_additional_effect calls to trigger right after
+ skill_additional_effect (which means they trigger at the end of the attack
+ motion for physical attacks instead of at the beginning of the attack
+ animation) [Skotlex]
+ * Cleaned up (fixed?) a possible overflow in pc_isUseitem, thanks to
+ foobar. [Skotlex]
+ * When you have the wrong ammo-type equipped the skill-failed message is
+ now "skill can't be used with this weapon", which is less misleading than
+ "please equip arrows first". [Skotlex]
+ * Corrected pet-equipment display (I originally assumed they went in the
+ shield view-position, when they actually go in the head-bottom position).
+ [Skotlex]
+2006/04/02
+ * Fixed npc_gettimerevent_tick returning the difference since the last
+ triggered label instead of total elapsed time for the npc-timer. [Skotlex]
+ * Added a missing memset on ers_alloc'ing mob loot which was making data
+ from looted items fill in normal drop info (in other words, you could get
+ normal loots that were named after players, for example) [Skotlex]
+ * Added preventing sending packet clif_clearchar_id when the character in
+ question is invisible. [Skotlex]
+ * Added packet 0x7c in clif_spawn which was supposed to be used for
+ non-players (this fixes pets/mobs/npcs spawning as if they just teleported
+ into view) [Skotlex]
+ * Some cleanups to clif.c, removed some excess/broken packets/functions.
+ [Skotlex]
+ * Merged Larry's fix of using a timer to get rid of the glow-issue when you
+ login to night-enabled map. [Skotlex]
+ * Changed arrows View ID to 22 since daggers were already View ID 1.
+ The server was looking for daggers to be in your arrow slot. [Reddozen]
+ * Loading waterheight aliases from resnametable.txt. [Lance]
+ * Workround the warnings for clif.c (what to do? the original codes are ugly.. passing
+ values as pointers omgwtfbbq). [Lance]
+
+2006/04/01
+ * Added a exp-even-share check when someone leaves a party. [Skotlex]
+ * Added function clif_changetraplook to handle changing the appearance of
+ traps as they are triggered. Fixes all the nullpos related to trap usage.
+ [Skotlex]
+ * Fixed berserk not raising your HP to your new cap. [Skotlex]
+ * Fixed ground-skills not displaying damage done. [Skotlex]
+ * Fixed a few functions sending a negative ID for disguised characters
+ (such as clif_specialeffect) which very likely produced client crashes.
+ [Skotlex]
+ * A small cleanup on npc-whispering which could fix a reported crash on it.
+ [Skotlex]
+ * Removed the gm-whispering of the charnameack hack notice since it isn't
+ perfected yet. It is still reported on the console for debugging
+ purposes. [Skotlex]
+ * Fixes to the mob_ai routines. Prevent casting rude-attacked skills in
+ situations that shouldn't be considered as so. Fixed mobs failing to chase
+ after enemies when attacked from out of their view_range. [Skotlex]
+ * Should not exit when you can't find an NPC file.. [Lance]
+ * Dynamic shops support with script callback. (needs testing) [Lance]
+ * Cleaned up and fixed @where command. [Skotlex]
+ * Fixed standing up no really making you stand up. [Skotlex]
+ * Added upgrade_svn5834.sql to update view for item type 10. Because of the
+ ammo upgrade, all arrows need their view set to 1. This query does that to
+ all type 10 items (this includes all ninja weapons as well, but a proper
+ item_db.sql update is pending until the rest of throwables are updated)
+ [Skotlex]
+ * Fixed compiler warnings. [Lance]
+ * Added structure view_data to handle sprite information for all characters
+ (equipment, weapons, hair, dyes, etc). [Skotlex]
+ * Rewrote several clif functions to adapt to the new view_data class.
+ [Skotlex]
+ * Rewrote the way cloth dye packets are resent to optimize bandwidth usage.
+ [Skotlex]
+ * Fixed the npc_item_flag thing (enable_items/disable_items script command)
+ [Skotlex]
+ * Rewrote the disguise implementation to be bandwidth friendly. [Skotlex]
+ * Modified the hide options to change your class to INVISIBLE_CLASS, since
+ such classes don't even get their view packets sent around. [Skotlex]
+ * Added class 139 to npcdb_checkid which was required by some npcs in the
+ swordman quest. [Skotlex]
+ * April fool! Improved soundeffectall script command. (No, this is not a lie) [Lance]
+
+2006/03/31
+ * Fixed skill_require_db loading of the new ammo columns.
+ * Added a column to specify the amount of ammo required for skills that
+ require it. [Skotlex]
+ * Added support for ArrowType requirement on skills. It checks for having
+ an item equipped on the arrow-slot who's view has to match with the
+ required arrow-type (works the same way it does for weapons). [Skotlex]
+ * Skills will automatically be ranged and arrow-types when they have a
+ arrow-requirement in battle_calc_weapon_attack [Skotlex]
+ * Skills will automatically consume arrows if used with a bow and the skill
+ is an attack weapon-based skill even if the skill_require_db doesn't
+ specifies arrow requirements (this is for stuff like backstab used with
+ bows) [Skotlex]
+ * Fixed an infinite recursion in the Wedding Recall skills. [Skotlex]
+ * UNT_ATTACK_SKILLS unit packets won't be sent to the client as they are
+ supposed to be invisible anyway. [Skotlex]
+ * Started work on commands for the IRC Bot, At the moment you can use !eakami <message>
+ to broadcast a message, edit ALLOWED_NICK in irc.c to change the nickname
+ of the person that is allowed to use it (Shitty authentication method, I know,
+ but i'll make user/pass method soon enough.) [Zido]
+ * Modified a bit the skill packets of Sharp-Shooting and Brandish Spear in
+ hopes of fixing it. [Skotlex]
+ * Should fix a bug in GM stealth mode (@hide). [Lance]
+
+2006/03/30
+ * Updated char name option. [Vicious]
+ * Added a missing return that fixes crashes on status_change_timer when
+ source is not found. [Skotlex]
+ * Added year day return in gettime function. gettime(8) returns 1~366
+ [Foruken]
+ * the auth function in login.c won't jstrescapecpy passwords that were
+ encrypted. Thanks to foobar. (but are still more cases to check for? Dunno,
+ the code is kinda long...) [Skotlex]
+ * Endure level 11 and above are now considered infinite-endure, and invoked
+ when Berserk is active. [Skotlex]
+ * Set the minimum pet hungry delay to 10 [Skotlex]
+ * modified functions skill_delayfix and skill_castfix to reduce number of
+ arguments. Added function skill_castfix_sc for mobs (who only get status
+ change cast reductions, not dex based ones). Also, skill_delayfix will
+ never return a value below min_skill_delay_limit. [Skotlex]
+ * Modified brandish spear so you won't see the skill-animation for every
+ targetted mob. [Skotlex]
+ * Added the Steel Body icon to auto-berserk. [Skotlex]
+ * Now you can't cast auto-counter while the previous one is active.
+ [Skotlex]
+ * Added Veider's suggestion to do a hack-report when players request the
+ name of an invisible/cloaked character. [Skotlex]
+ * Added execution of OnInterIfInit, OnCharIfInit and OnInterIfInitOnce on script
+ reload. [Lance]
+ * Cleaned up mistakes in irc.c [Lance]
+
+2006/03/29
+ * Now none of the pet-menu options will have any effect when the pet's
+ intimacy is 0. [Skotlex]
+ * Applied a fix to not do range checks on npc_doevent when the npc is not
+ on a map. [Skotlex]
+ * You can't return to egg a pet that has run away now. [Skotlex]
+ * Added ers support to the delayed mob drops. [Skotlex]
+ * Some cleaning of the mob_ai. Mobs should stop chasing once you are beyond
+ their min_chase range. Improved rude-attacked checking when mobs can't
+ move. [Skotlex]
+ * range3 is now used as min-chase value of mobs. [Skotlex]
+ * Added a debug message when status_change_timer fails. Report it next time
+ it shows up. [Skotlex]
+ * Fixed tick direct modifications increasing duration instead of decreasing
+ it. [Skotlex]
+ * You can't SG_FEEL maps already memorized. [Skotlex]
+2006/03/28
+ * Fixed the Family recall warp skills. [Skotlex]
+ * Fixed pc_percentheal giving life when the rates are negative. [Skotlex]
+ * Fixed resetting stats losing the +52 bonus on high classes. [Skotlex]
+ * Fixed Wedding support skills healing yourself instead of partner.
+ [Skotlex]
+ * Added a check to prevent knocking back the Emperium at all costs.
+ [Skotlex]
+ * Fixed summon mobs being able to cast "summon" skills. [Skotlex]
+ * Summoned mobs will inherit the size and ai properties of the master. [Skotlex]
+ * Added a debug function to locate all "looping warps". [Skotlex]
+ - Now will someone help cleanup those warps?
+ * Some cleanup of the skill-use functions in clif.c [Skotlex]
+ * Fixed Gunslinger and Ninja skills not showing up and not working due to an error
+ in skill_require_db
+ - also commited a commented block for GS_FLING that needs to be looked at and posiably
+ cleaned before it's uncommented.
+ - fixed exp2 not accepting Gunslingers and ninjas
+ - fixed the "jobmaster" having the same problem as rebirth
+ - added the Gunslinger shops for guns and ammo [Reddozen]
+ * Modified clif_getareachar_pc to hide hidden GMs from normal players (players with GM
+ level > 0 still able to view) by NOT sending the coordinates. [Lance]
+
+2006/03/27
+ * Removed the limits.h file which just breaks compilation on *nix systems
+ [Skotlex]
+ * Updated some DB work from jA [Vicious]
+ * HW_GANBANTEIN now also removes traps. [Skotlex]
+ * PF_DOUBLECASTING takes effect amotion time after the initial cast instead
+ of amotion*div [Skotlex]
+ * SG_KNOWLEDGE now lasts time1 after you quit a map before it clears out
+ (defaults to 10 mins currently) [Skotlex]
+ * Modified Intravision to modify the status-change packet to specify
+ SI_INTRAVISION instead of cloaking/hiding/chasewalk. I believe this is how
+ intravision actually works. [Skotlex]
+ * Pet catching now uses the menuskill variables to prevent item usage from
+ disrupting the catch process. [Skotlex]
+ * Added Safetywall to the list not blocked by Dispell. [Skotlex]
+ * Added some include limits.h required by window compiles. [Skotlex]
+ * Corrected Wedding rings being trade-able. [Skotlex]
+2006/03/26
+ * GCC on Cygwin still complaining, resorted to including limits.h in malloc.h [Lance]
+ * Refixed the fix with a constant list for Win32 users - limits.h (imported from MSVC) [Lance]
+ * Fixed a problem in chrif.c where USHRT_MAX was undefined. [Codemaster]
+ * Added jAthena's new start and athena-start shell scripts. [Lance]
+ * Changed status_point/skill_point to unsigned short. Adjusted the code as
+
+ necessary to prevent overflows. [Skotlex]
+
+ * itemdb_exists and itemdb_searchname should now ignore dummy_item matches. [Skotlex]
+
+ * Fixed jstrescapecpy crashing when you pass a null string to parse. [Skotlex]
+
+
+2006/03/25
+ * Fixed the map-server freeze/crash on Warp Portal. [Skotlex]
+ * Fixed Grandcross/Granddarkness showing no skill animation. [Skotlex]
+ * Fixed mob-casted grandcross doing nothing unless the target was "self" [Skotlex]
+2006/03/24
+ * Fixed / finished most of Gunslinger [Reddozen]
+ - fixed some bullets in the item DB
+ - adjusted a few rates in skill_cast_db.txt for Gunslingers
+ - adjusted a couple skills in skill_db.txt to act correctly
+ - adjusted all the SP values for Gunslinger skills
+ - changed piercing shot to lv 5 from lv 10
+ - made ki Translation fail giving coins to Gunslingers
+ - equipping a weapon other than a gatlin gun should cancel SC_GATLINGING. Also made Gatlinfeaver on/off togelable
+ - GS_CRACKER will no longer stun players
+ - added GS_Disarm
+ * Fixed iteminfo only displaying first result when there were many. [Skotlex]
+ * Fixed pet hatching. [Skotlex]
+ * Small change that SHOULD fix the pet duplication issue. [Skotlex]
+ * Fixed Warp Portal. [Skotlex]
+ * Modified script commands atcommand/charcommand to execute even if there
+ isn't a player attached. They'll use a dummy player data with the same
+ position/name as the script's owner (usually an npc). Be careful when using
+ this as the result of some @/# commands may be unexpected! [Skotlex]
+ * Some cleaning around the return to egg code. Pets should stop duplicating
+ now. [Skotlex]
+ * Some cleaning of the egg hatching routine to prevent spawning the pet if
+ the egg can't be found in the inventory. [Skotlex]
+ * Removed a pair of autoadded "data/" strings on grfio.c to see if that
+ helps with the data_dir map loading. [Skotlex]
+ * Fixed skillidx not being set whenever a mob uses a skill. This explains
+ skills like metamorphosis/summon_slaves not working at all. [Skotlex]
+ * Fixed unit_skillcastcancel reading the nocastcancel flags the exact
+ wrong way around [blackhole89]
+ * Added function map_search_freecell to locate an available cell around an
+ area (for recall/warping skills). UNTESTED. [Skotlex]
+ * Added unit.c to the VC8 project files. Thanks to Joshuaali [Skotlex]
+ * Fixed Magnum-break/GrandCross displaying multiple times the skill effect
+ (once per target) [Skotlex]
+2006/03/23
+ * Fixed a crash in unit_useskill_pos2 [Skotlex]
+ * Updated mob_db.sql and item_db.sql to current txt versions. [Skotlex]
+ * Fixed Devotion not properly being cleared on death/near death in some
+ cases. [Skotlex]
+ * Fixed Shield-Reflect not being correctly ended when devotion does.
+ [Skotlex]
+ * Fixed DEX-based casting time and delay reduction. [blackhole89]
+ * Modified the function pc_percent_heal to prevent overflow problems. [Skotlex]
+ * Changed the second entry in the water_height.txt listing to specify
+ directly the .rsw file (instead of .gat). [Skotlex]
+ * Fixed Potion Pitcher sometimes crashing the server. [Skotlex]
+ * Fixed a compile warning by adjusting the acid demonstration formula.
+ [Skotlex]
+ * Added flag 2 to the skill_castnodex_db file for skills that shouldn't be
+ affected by delay/cast reducing skills/effects. [Skotlex]
+ * Added SantaPoring's water_height.txt modifications. [Lance]
+ * Minor cleanups. [Lance]
+
+2006/03/22
+ * Fixed function pc_isCardAllowedOn causing searches for non-existant item
+ id 0. [Skotlex]
+ * Fixed Arrow Shower. [Skotlex]
+ * Merged the unit_data structure from jA for handling unit-related data
+ (attack times, walking, auto-attack timers, skill related data). This is a
+ huge change that affects walking, attacking, auto-attacking, skill usage
+ and character clean up from maps. I spent the last two days clearing out
+ bugs, and even though I couldn't find any more, I wouldn't be surprised for
+ a corner-case or two I missed. [Skotlex]
+ * Modified unit_skillcastcancel to receive flag&2, which stands for "cancel
+ casting only if current skill is cancellable" [Skotlex]
+ * Battle config options changed from yes/no to BL_TYPE settings:
+ skillrange_by_distance, skill_noreiteration, skill_nofootset,
+ gvg_traps_target_all, skill_log, attack_direction_change,
+ auto_counter_type. See (Note 4) in the relevant battle config files.
+ [Skotlex]
+ * Clif.c will disconnect sessions that send an unknown command packet above
+ 0x30000 instead of just ignoring it. [Skotlex]
+ * Cleaned up error reporting during mob-skill loading to be less spamy with
+ non-loaded mobs. [Skotlex]
+ * Corrected water_height reading. It works now, with the exception that
+ cloned maps don't get their water-level read because they don't have a rsw
+ file. The solution is to add all cloned maps to water_level.txt (ie:
+ "new_1-1.gat new_zone01.rsw" makes the new_zone01.rsw stored water-level be
+ applied to map new_1-1.gat).
+ Anyone can help collect all the clone maps to fill up water_height?
+ * status_check_skilluse won't block skill-specific checks (silence,
+ berserk, steel-body, etc) when the skill in use is an item-invoked skill.
+ [Skotlex]
+ * Merged LittleWolf's function to read the map-height directly from the rsw
+ file. Now when building the map-cache, the water-heights should be
+ automatically read as well directly from the rsw's. [Skotlex]
+ WARNING: Not tested yet!
+ The water-height config file now is for aliases. When the rsw for a
+ certain map is not found, and this map exists in the water_height list,
+ then the water height of the second map listed in that file is used.
+ * Some cleanups in irc.c [Skotlex]
+ * Magic skills that ignore element now also don't take into account
+ elemental cards. [Skotlex]
+ * Fixed compiler warnings in battle.c [Lance]
+ * Changes by [reddozen] -->
+ - Updated Full Buster's damage, status effects, and skill levels
+ - Bullseye now only uses 1 coin
+ - changed Adjustment's required SP
+ - changed Incerase Accuracy's effect bonuses
+ - changed Magical Bullet's SP cost
+ - changed Piercing Shot's damage and SP
+ - changed Desperado's range, hit count, aftercast delay, and SP
+ - fixed Absorb Spirit Sphere being able to remove coins
+ - changed Acid Demonstration's damage to the new Japanese formula
+
+2006/03/21
+ * Fixed duel in pk-mode (same party/same guild/alliance non-targeting issue).
+ Thanks to Hobbit for pointing that out. [LuzZza]
+ * Fix on not showing guildmembers logins/logouts messages. [LuzZza]
+ * Fixed SC_SWOO's opt3 value. Small monsters should stay small for skill's
+ duration now. [Skotlex]
+ * Fixed allowing multiple recast of Dissonance/Ugly-Dance [Skotlex]
+ * Fixed those annoying irc.c compile warnings. [Skotlex]
+2006/03/20
+ * Added monster_ai&16 setting for executing the hard ai on ALL mobs in maps
+ with players instead of just mobs in the vecinity of players. [Skotlex]
+ * Cleaned up some guild functions. [LuzZza]
+ - Now guild leaving/explusion packets sends correctly.
+ - Fix to prevent creation alliance/opposition with same guilds.
+2006/03/19
+ * @stfu now allows negative intervals to be specified. [Skotlex]
+ * Added overflow check to the login-server when sending GM accounts to
+ char. [Skotlex]
+ * Small fix to prevent killer/killable states from allowing you to target
+ yourself. [Skotlex]
+ * Added Explosion Spirits to list of effects that dispel on logout.
+ [Skotlex]
+ * Fixed handling of guild skills by pc_blockskill_start, moved it to
+ skill.c [Skotlex]
+ * Fixed autoguard icon showing with stun. [Skotlex]
+ * Fixed acid demonstration breaking shield instead of armor. [Skotlex]
+ * Fixed Slim Pitcher crashing server ocassionally. [Skotlex]
+ * Hopefully fixed Ankle Snare lasting the whole trap's duration [Skotlex]
+ * Added sc_start(SC_ENDURE) on infinite endure bonus. [Skotlex]
+ * Fixed Berserk Pitcher consuming required items twice. [Skotlex]
+2006/03/18
+ * Fixed BA_DISSONANCE and DC_UGLYDANCE not working. status_check_skilluse was blocking
+ them due to the lack of an exception like BA_MUSICALSTRIKE has it. [blackhole89]
+ * Documentation update on NPC whisper and rid2name. [Lance]
+ * Fixed event_kill_pc to behave like what it should instead of another replication
+ of event_death. Added script function rid2name to convert bl ids to name. [Lance]
+ * Recoded setmobdata script function. Fixed mob_damage typo sd -> mvp_sd. [Lance]
+ * Added 'GetMonsterInfo(MobID,Idx)' script function. [Lupus]
+ You can get monsters name,level,race, etc by its Id. Check npc\sample\getmonsterinfo.txt
+ * Fixed warnings on compilers again. [Lance]
+
+2006/03/17
+ * Fixed the mob_skill_db by commenting out lines with targeted skills
+ being cast during an idle state. (Thanks to LittleWolf) [Zephiris]
+ * Removed a block of code from skill_check_condition that actually belongs
+ to status_check_skilluse. Should fix silence/stun blocking skills
+ regardless of settings. [Skotlex]
+ * Fixed misleading and inaccurately documented events and added a missing flag. [Lance]
+ * Fixed npc_cleanup_dbsub not removing key and caused pointer being freed problem. [Lance]
+ * Fixed handling of the char_gm_read config for packet 0x2af7 (reloadgmdb)
+ [Skotlex]
+ * Added battle_config debuff_on_logout which removes Asura's SP regen delay
+ and Strip-Equip effects on logout when set to yes (default,
+ conf/battle/skill.conf). [Skotlex]
+ * removed auto-attaching of player-run scripts in initnpctimer. You must
+ use attachnpctimer instead! [Skotlex]
+ * Final fix on Juperos NPC. [Lance]
+ * Fix on initnpctimer not attaching rid. [Lance]
+ * Fix on OnTouch ignoring -1 NPCs. [Lance]
+ * Fix on @reloadscript crashing due to passing non BL_SKILL bl to a function that accepts only BL_SKILL bl.
+ [Lance]
+ * Added area NPC detection in clif_parseLoadEndAck. [Lance]
+ * Fixed compiler warning in script.c get_mob_data. [Lance]
+ * Temperory resolved issues on Juperos until I get the exact description on the behaviour
+ in retail servers. [Lance]
+
+2006/03/16
+ * Changed NJ_ZENYNAGE according to this weeks patch to deal a random [MasterOfMuppets]
+ ammount of damage depending on the skill lvl.
+ * @kill_monster/@kill_monster2 won't touch Guardians/Emperium now. [Skotlex]
+ * Small change in the random item reading function, may fix @itemdbreload
+ messing up random item searches. [Skotlex]
+ * Restricted GS_BULLSEYE to only be used on demi-human or brute monster targets [MasterOfMuppets]
+2006/03/15
+ * mob_chat_sub fix. Added buildin_pcblockmove. [Lance]
+ * BL_PC and BL_MOB control script commands (experimental) [Lance]
+ * Made an adjustment to addspiritball() to allow Gunslingers to summon up to 10 spheres [reddozen]
+ * Fixed Tarot Card of Fate using time instead of time2 which is the one
+ that actually holds the effect duration. [Skotlex]
+ * Fixed mob random walk interval being set to up to 6K seconds in some
+ instances. [Skotlex]
+ * Added mapflag nodrop (prevents droping items to the ground). [Skotlex]
+ * Fixed mapflag notrade doing nothing. [Skotlex]
+ * Likely fixed Gravitation not hitting except for the last hit. [Skotlex]
+ * Removed the hardcoded duration of 30 seconds for sleep. [Skotlex]
+ * Fixed rangecheck for pet skill usage of INF_SELF_SKILL type of skills
+ [Skotlex]
+ * Removed inall/exall from atcommand.conf since those two do not exist!
+ (pointed out by Ancyker) [Skotlex]
+ * @me now uses entry 270 in msg_athena as output format. [Skotlex]
+ * gm_skill_unconditional setting now also overrides skill_partner_check
+ setting. [Skotlex]
+ * Emulated strtok_r functions to work strictly with ANSI compilers. [Lance]
+ * Added battle config options item_rate_adddrop, item_drop_add_min and
+ item_drop_add_max to control drop rate of card-acquired loot bonuses.
+ (conf/battle/drops.conf) [Skotlex]
+ * Added item_db2.sql and mob_db2.sql, thanks to Joshuaali [Skotlex]
+ * Added more usage of msg_athena on the slave atcommands messages. [Skotlex]
+ * Fixed twilight pharmacy dropping 1 item to the ground instead of the qty
+ produced. Thanks to k3dt [Skotlex]
+ * Fixed Plagiarism not working unless you had some sc active. [Skotlex]
+2006/03/14
+ * Fixed a possible crash in Venom Splasher if the countdown is too high.
+ [Skotlex]
+ * Fixed skill_notok blocking guild skills [Skotlex]
+ * Fixed Napalm vulcan's time2 entry in the skill_cast_db [Skotlex]
+ * Fixed the average_lv column size specification for levels above 255.
+ Thanks to Joshuaali (upgrade_svn5607.sql) [Skotlex]
+ * Updated @rura/@warp. Now you can use both "@warp mapname x y" and
+ "@warp mapname,x,y". [LuzZza]
+ * Added at-command @tonpc <NPC_name> (warp to NPC). [LuzZza]
+ * Fixed @where at-command. [LuzZza]
+ * Fixed WZ_WATERBALL + HW_MAGICPOWER [Skotlex]
+ * Fixed incorrect range check in autospell-when-hit triggers. [Skotlex]
+ * Modified Wedding recall skills to behave as in official [Skotlex]
+ * Modified Arrow Shower to be a ground-based skill and work as it should on
+ officials. However, the unit_id is still unknown. [Skotlex]
+ * Fixed skill_additional_effect triggering every time you were being hit
+ even if no damage was returned. [Skotlex]
+ * Fixed battle_calc_damage_return to make magic damage be returned by 100%,
+ and received damage nullified. [Skotlex]
+ * Changed a bit status_check_skilluse to check for dead characters, should
+ fix all the weird attack/attacked while dead bugs. [Skotlex]
+ * Fixed player auto-attack not cancelling when dead. [Skotlex]
+2006/03/13
+ * Finished some checks to make sure Land Protector Only blocks BF_MAGIC
+ skills. Hammerfall is no longer blocked. [Skotlex]
+ * Fixed script command warpparty looking for an attached player even when
+ it is not needed. [Skotlex]
+ * Shield Reflect is now passed through Devotion as well. [Skotlex]
+ - Devoted characters lose the devotion effect when the Crusader is at less
+ than 25% Hp. [Skotlex]
+ * chrif_scdata_save will not send a save scdata request when the char has
+ been already tagged as in the final save. [Skotlex]
+ * Some status_change_start cleanups, stuff like blessing should now remove
+ stone/curse even if the status does not begins because the character is
+ already blessed. [Skotlex]
+ * Cleaned SC_SUITON a bit to get rid of that compile warning. [Skotlex]
+ * Added function battle_calc_gvg_damage for gvg related damage reductions.
+ Fixes Gravitation being reduced as well as Pressure overriding max-castles
+ restriction. [Skotlex]
+ * Corrected char-server parameters so that the subnet config file is the
+ third parameter, not the second (which was conflicting with
+ inter_athena.conf's argument), thanks to foobar. [Skotlex]
+ * PR_BENEDICTIO now ignores mdef [Skotlex]
+ * Fixed chatlog's x/y column capacity in sql-files/logs.sql [Skotlex]
+2006/03/12
+ * Updated clone skill copy to consider combo-skills. [Skotlex]
+ * no_spawn_on_player won't work on mobs with no respawn delays now. [Skotlex]
+2006/03/10
+ * Cleaned up the Skillbreaker implementation, HP gaining happens at level 5
+ now. [Skotlex]
+ * Autospells won't trigger now on maps where said skills are forbidden.
+ [Skotlex]
+ * Changed div (multi-hit) behaviour. Skills with div above zero will get
+ their total damage increased by the number of hits, div less than zero is
+ just for "show", total number of hits displayed is abs(div), but damage
+ isn't increased by number of hits. [Skotlex]
+ * Adjusted several skill damage equations to make up for the above change.
+ [Skotlex]
+ * Fixed a overflow bug when one of the item_random* files has too many
+ random items. [Skotlex]
+ * Fixed a variable loopback problem on NPC shop price checking routine. [Lance]
+ * Fixed a memory overwrite crash on pc_readdb, thanks to foobar for the
+ fix. [Skotlex]
+ * Fixed only the first TK stance triggering when you have multiple of them
+ active. [Skotlex]
+ * Default of skill_attack_enable changed to yes. [Skotlex]
+2006/03/09
+ * Fixed the dancer/bard soul-linked skills toggling on/off with each call
+ to pc_calc_status. [Skotlex]
+ * Fixed a bug in the pc_skillreset function which allowed TK rankers to
+ accumulate skill points. [Skotlex]
+ * Fixed a major memory leak in status.c causing the last column of job_db1.txt
+ never being read. I have no idea how long this has been there, but signs point
+ to us using Katars at a random ASPD from somewhere in memory for ages. [blackhole89]
+ * Fixed a critical bug in job_db1.txt reading in status_readdb. [blackhole89]
+ * Fixed pc_damage_sp not properly substracting SP. [Skotlex]
+ * Made Magic Crasher a BF_WEAPON attack. [Skotlex]
+ * Made skill_unit_range a per-level setting. meteor and Lov now have their
+ unit range for bosses adjusted in the skill_unit_db rather than
+ hardcoded. [Skotlex]
+ * Added Gunslinger/Ninja Status Change icons. Somebody needs to look into
+ them though for not all SCs have a matching SI. [blackhole89]
+ * Changed ITEM_NAME_LENGTH to 50. [Skotlex]
+ * Fixed stun's duration not getting reduced by vit + luk/3 [Skotlex]
+ * Fixed #itemlist not taking into consideration crafted/forged items and
+ pet eggs. [Skotlex]
+2006/03/08
+ * More work on ninja/gs. Which made me do... [Vicious]
+ - Add more weapon type(17~21 for guns) [Vicious]
+ - Included MAX_WEAPON_TYPE in status.h and updated the codes
+ (Whose idea was it to do static number... esp dual weapon) [Vicious]
+ * Fixed a bug that was making the no_spawn_on_player setting useless.
+ [Skotlex]
+ * Added Deadly Poison and Bleeding to status_get_sc_def, meaning that now
+ vit does increases defense against being inflicted from it. [Skotlex]
+ * Fixed and tested @whodrops [Skotlex]
+ * Updates to Gunslinger skills' DB entries. [blackhole89]
+ * Rewrote pc_jobchange to be sane by using the map internal codes instead
+ of a mesh of complicated nested comparisons. [Skotlex]
+ * pc_authok will now change you to a novice if your class isn't identified
+ as a valid one. BACK UP before updating, because.. well, just in case you
+ start seeing novices filling up your city. [Skotlex]
+ * Mobs will now chase you even if you hit them from outside their range of
+ view. [Skotlex]
+ * Fixed item disappearing from the floor when you attempted to pick it up
+ and there was no room in your inventory. [Skotlex]
+ * About half-ish nj/gs skills are semi/fully-done. No effect/status yet though. [Vicious]
+ * Added atcommand @whodrops which lists mobs with the top drop-rates for a
+ given item. List of stored mobs and their dropchances is also defined by
+ MAX_SEARCH on map.h [Skotlex]
+ * Modified atcommands @mobinfo and @iteminfo to display multiple matches
+ instead of just one. Max number of matches to display is set in map.h
+ (MAX_SEARCH) which is currently 5. [Skotlex]
+2006/03/07
+ * Base for ninja/gunslinger is mostly done. need to work on skills now. [Vicious]
+ - Updated sql-files/ mob_db.sql and item_db.sql to current txt dbs. [Skotlex]
+ * @job ninja/gunslinger. No skill tree or anything yet. [Vicious]
+ * Gospel won't start taking effect until after 10 secs have passed since
+ invocation. [Skotlex]
+ * Now if a skill has inf set to 4 (self skill) and inf2 512 (cannot target
+ self) this skill becomes a target-auto-select skill, which targets your
+ current attack target, and won't stop your current attack. The current
+ attack is delayed by your aspd (except for a few skills such as the monk
+ combo skills which readjust this delay). All Monk combo skills plus Taekwon
+ kick skills have been updated to use this. [Skotlex]
+ * Added a check that forces self skills (inf = 4) to select yourself as
+ target to prevent oddities from crafted packets. [Skotlex]
+ * More ground work for Ninja/Gunslinger [Vicious]
+ * status_calc_pc now assumes that if your max hp is negative, it has
+ overflowed, and as such, it is set to the max_hp setting instead of 1. This
+ 'dangerous' assumptio is alright as long as there aren't equipment that can
+ send your hp to negative values. [Skotlex]
+ - Fixed the soul linker skill tree. (Thanks to muad_dib) [Zephiris]
+ * Added Gunslinger and Ninja into @job. of course, you need latest EXE
+ for make this work... and of course no skills yet! [Vicious]
+ * Storm Gust now knocks back on a random direction instead of away from the
+ storm. [Skotlex]
+2006/03/06
+ * Some fixes due to the guild-skill changing location (being moved from
+ 500->900 within the code) [Skotlex]
+ * Fixed npc_event doing a map-check when the npc is not on any map.
+ [Skotlex]
+ * Fixed a debug message showing up on skill castend nodamage id when using
+ a guild skill. [Skotlex]
+ * Fixed #save not working on maps not in the current map server. [Skotlex]
+ * Added battle config clear_skills_on_death to decide whether all
+ ground-based skills should be removed when you die. Defaults to yes.
+ [Skotlex]
+2006/03/05
+ * Removed my EXP limit as it did not do what it was supposed to [Codemaster]
+ * Fixed remove-trap [Skotlex]
+ * Fixed animation of Redemptio [Skotlex]
+ * Some reorganization of how the skill check functions behave
+ (skill_get_*). Guild skills have been moved to the range 900~915 (instead
+ of 500~519 in the code). [Skotlex]
+ * Set the default for display_delay_skill_fail to 'no' as it should have been
+ for a while (the kRO patch about that was last year, long time ago) [DracoRPG]
+ * Fixed easter.txt typo. [Lance]
+ * Extended summon command to enable custom timeouts. [Lance]
+
+2006/03/04
+ * Fixed a bug in the subnet checking function, login-TXT server. Also
+ changed the messages to be a bit more informative. [Skotlex]
+2006/03/03
+ * Added function battle_set_walkdelay in charge of updating walkdelays of
+ characters based on two criterias: when the delay is induced by damage, if
+ the current walk delay isn't over yet, do not update it. If the delay is
+ instead caused by a skill, then the current walk delay cannot be decreased,
+ only increased. [Skotlex]
+ * Added upgrade_svn5455.sql, it converts the manner and karma columns to
+ signed. Apply this if your tables have the field as unsigned (which would
+ explain mute always disappearing after relogging) [Skotlex]
+ * status_change_start now checks on a 0->10000 scale, should fix sc-cards
+ with very low rates never triggering (eg: some coma-inducing cards).
+ [Skotlex]
+ * Cleaned up the active guild skills. They should be usable now by
+ non-players as well. [Skotlex]
+ * Fixed crash on the NPC whisper system when the message's size was 1.
+ [Skotlex]
+ * Strip status changes are now removed on logout. [Skotlex]
+ * Added a column in skill_cast_db for specifying can't walk delays. It's
+ all set to 0 currently, so someone get updating them! [Skotlex]
+ * Removed the apply walk-delay entry from skill_cast_nodex as the new walk
+ delay column handles this now. [Skotlex]
+ * Fixed autoloot dropping the item to the ground even when it was
+ autolooted. [Skotlex]
+ * Fixed character deletion working on SQL without an email address (Thanks to Valaris) [Zephiris]
+ * Added event 8 for mobspawns that should spawn with special ai set. This
+ means that now in the mob_spawn files if you use 8 as the last entry, the
+ mob will use the special ai, and as such, it will only attack other mobs,
+ not players (can obviously be combined with 2 for small mobs and 4 for
+ large mobs, eg: 10 for a small mob with special ai set) [Skotlex]
+ * Modifed battle_check_target so that mobs with special ai will only target
+ by default mobs without said state (this will prevent normal clones from
+ fighting among themselves, for example) [Skotlex]
+ * Trick dead now ends on logout [Skotlex]
+ * Added mapflag nocommand which blocks @/# commands unless your gm level is
+ above gm_skill_unconditional's level. [Skotlex]
+ * Fixed weapon scripts not being executed unless the weapon was forged.
+ [Skotlex]
+ * gm_skill_unconditional is now a no/gm-level setting instead of yes/no
+ [Skotlex]
+2006/03/02
+ * Slaves inherit speed will now only work if the master can move. [Skotlex]
+ * Some cleanup and reorganization on the way pet-skill variables are
+ handled. [Skotlex]
+ * Fixed a typo that disabled all pet support skills from triggering (except
+ ground-based ones) [Skotlex]
+ * status_check_skilluse cleanup. Some status will only block skills when
+ they are first used, not on cast-end (which includes auto-spells and
+ ground-skill checks). Now when status_castcancel is 'no', skills WILL
+ come off after the cast bar is done. [Skotlex]
+ * Gravitation now only affects the caster, should have also fixed the skill
+ not doing damage when skill_caster_check is set. [Skotlex]
+ * Max fame list size is now defined by MAX_FAME_LIST constant (mmo.h)
+ [Skotlex]
+ * Individual fame lists sizes can now be specified through the char-server
+ (check the fame list configs in char_athena.conf) [Skotlex]
+ * Some cleanup on mob_can_reach code to prevent unnecessary path-searching
+ [Skotlex]
+ * Optimized the path-searching ai for mobs to try target cells around the
+ target in order rather than randomly picked cells. [Skotlex]
+ * Applied Snufkin's patch to fix compilation on FreeBSD. [Skotlex]
+ * Fixed mobs targetting themselves after using a support skill. [Skotlex]
+ * Gospel no longer blocks item usage of whoever is in the area of effect,
+ only the caster of Gospel can't use healing items now. [Skotlex]
+ * Added the long/near attack_def_rate card effects to battle_calc_magic
+ (horn card and the like will now work with spells) [Skotlex]
+ - Elemental fields should vanish on map-change now. [Skotlex]
+ - Land Protector only blocks magical ground skills now. [Skotlex]
+ * Fixed item pickup not picking anything unless you were in a party with
+ item distribution set [Skotlex]
+2006/03/01
+ * Made it so players that are at the max level do not receive EXP.
+ This makes it so a player at the max level (ie - 99) cannot join a party
+ and feed all of his or her EXP to the other party members [Codemaster]
+ * Mapregsql will now fully depend on mmysql_handle. [Lance]
+ * Optimized strcharinfo to use switch. [Lance]
+ * Some cleanup of the mob skill reading. Added error reporting for unknown
+ states/conditions, error reporting now specifies the file and line number.
+ [Skotlex]
+ * Silence will only block skills when they have begun casting, not when the
+ cast bar is done. This also means that auto-spells will likely come-out
+ even when silenced. [Skotlex]
+ * opt1 status will block skills when they are done casting only if the
+ sc_castcancel option is set. [Skotlex]
+ * strcharinfo now returns blank instead of crashing the map server when
+ there's no player attached. [Skotlex]
+ * Added a missing mysql_init call to the mapreg sql handle. [Skotlex]
+ * Checked and fixed the script engine barking when you try to have a label
+ with the same name as a const.txt defined parameter. [Skotlex]
+ * Turn Undead and Offensive Resurrection should now work on undead players.
+ [Skotlex]
+ * Fixed the range checking of Repair weapon [Skotlex]
+ * Rude attacked is now also triggered when you hit a target that can't move
+ out of their melee attack range. [Skotlex]
+ * Mob ai will attempt to do a long-range attacked condition skill before
+ unlocking a target when it is attacked and said target is out of melee
+ range of a non-walking mob. [Skotlex]
+ * Corrected mobskill event to set the target_id before triggering. This
+ should fix shortrange/longrange attacked mob skill conditions. [Skotlex]
+ * Moved MSC_SKILLUSED trigger to mobskill_event which is triggered in
+ battle_calc_damage. It is also triggered on skill_castend_nodamage_id.
+ [Skotlex]
+ * Added party_share_loot for handling party-share loot. it should now work
+ with autoloot as well. [Skotlex]
+ * Fixed skill_break_rate breaking stuff even if the rate is 0. [Skotlex]
+ * pc_stopwalking will not send a fixpos packet if you are sitting. [Skotlex]
+ * mob_can_reach rude-attacked condition now uses the mob's field of view.
+ [Skotlex]
+ * SC_NOCHAT is automatically started on pc_authok if manner is negative.
+ [Skotlex]
+ * Map server now refuses to start if you try to define a label with the
+ same name as some const.txt defined character parameter. [Skotlex]
+ * Corrected a few Compiling Warnings [Codemaster]
+ * Added the ability to select GM loading via Login (default) or Char [Codemaster]
+ * Added script command 'setbattleflag'. [Lance]
+2006/02/28
+ * Rewrote LAN support code. Changed configuration file name
+ lan_support.conf to subnet_athena.conf, changed it syntax. [LuzZza]
+ * Added script command 'equip' to equip items. [Lance]
+ * Fixed dependancies in map-server compiling (VC7.1). [Lance]
+ * Added autoequip flag check for pc_takeitem. If it impacts on perfomance, please remove it. [Lance]
+2006/02/24
+ * Prevented guild/party recall to work on GMs of greater level than
+ yourself. [Skotlex]
+ * Prevent muting players with higher GM level than yourself. [Skotlex]
+ * Fixed Lady Tanee's spawns. [Skotlex]
+2006/02/23
+ * Fixed the CL_WHITE define, thanks to FlavioJS [Skotlex]
+ * NPC break equipment stuff now has a 1.5% per skilllv success rate.
+ - This is a custom value as 20%-lv10 seems too high and 10%-lv10 seems too
+ low. [Skotlex]
+ * pc_setpos won't random warp players if placed on top of Moonlight Petals
+ [Skotlex]
+ * Removed the check in clif.c for npc_shopid as the client never sends a
+ packet when the trade is cancelled... [Skotlex]
+ * Player-summoned mobs won't level up now. [Skotlex]
+ * Fixed Super Novice explosion spirits triggering no matter what you said
+ on the third line. It now triggers on the fourth line.... [Skotlex]
+ * Fixed GTB blocking targetted spells when gtb_pvp_only was set. [Skotlex]
+ * Merged the code of Ankle snare and Spider web. It no longer moves target
+ if sc failed. [Skotlex]
+ * Players should stop walking as soon as they start vending or get into a
+ chat. [Skotlex]
+ * Added mob skill conditions myhpinrate and friendhpinrate. [Skotlex]
+ * Added monster_ai condition 16 (enable `friend` targetted skills to heal
+ oneself) [Skotlex]
+ * Fixed the shop id not clearing when buying/selling (which made you get
+ stuck afterwards). [Skotlex]
+ * Modified the way autospells stack to mimic official servers. Cards of the
+ same ID cannot stack, but different cards with the same skill can each
+ trigger indepedently of each other. [Skotlex]
+ * Added battle_config autospell_stacking to enable stacking of cards of
+ same ID. (see battle/item.conf) [Skotlex]
+ * Moved card-specific battle options to items.conf [Skotlex]
+ * Autospells triggered when hit will check the range to the target.
+ [Skotlex]
+ * Some cleaning up of status_calc_pc [Skotlex]
+ * In status_change_start capped the passed success chance to 100% [Skotlex]
+2006/02/22
+ * Windwalk's flee bonus is now +1 every 2 skill lvs. [Skotlex]
+ * Changed the way equipment breaking works. Function pc_break_equip was
+ removed and now skill_break_equip is used. Basicly, it's the same as
+ before, except that when you 'break' a piece of equipment of a
+ non-player, the corresponding strip(weapon/armor/shield/helm) status
+ effect is induced (duration: strip skill lv 1) [Skotlex]
+ * Cleaned up the Dev folder. [Skotlex]
+ - Take note of the file todo-for-stable, which holds all modifications in
+ trunk that have not yet made it into stable. Be sure to update the file
+ as needed.
+ * Updated the path searching code with jA's current implementation.
+ [Skotlex]
+ - There is a slight chance the CELL_NOSTACK mod broke, someone test that.
+2006/02/21
+ * Fixed the range-check of targetted skills (was evaluating the range as 0
+ always) [Skotlex]
+ * Now you should receive the party/guild mini-dots on map-load without the
+ need of waiting for others to "move" for you to receive the update (fixes
+ dead characters never showing up on the map) [Skotlex]
+ * Fix to prevent using main chat when it disabled in atcommand_athena. [LuzZza]
+ - Fixed message codes in duel functions.
+ - Small fix in log_refine, incorrect compare expression.
+ * Some cleaning of the warp portal code so that when it is "pre-casted" it
+ doesn't mess up with other casted skills. [Skotlex]
+ * Some fixing on the weapon-refine code. [Skotlex]
+ * Cleaned up some npc_event error reporting. [Skotlex]
+ * Some cleanup of the castend routines to not clear the skill variables if
+ for some reason the casted skill triggers another skill. [Skotlex]
+ * Vending is now cancelled on a pc_setpos [Skotlex]
+ * Pressure again ignores Basilica. [Skotlex]
+ * Fixed attacker's sc being nulled when the target's sc is empty (fixes
+ most status changes not taking effect during battle) [Skotlex]
+ * Slaves now do a battle_check_target to check if the new target is an
+ enemy when acquired through the master's skilltarget. [Skotlex]
+ * Fixed SC_SKE halving de2 twice. [Skotlex]
+2006/02/20
+ * The Super Novice Explosion Spirits skill will now trigger when the last
+ sentence is said (not after the next sentence as it was currently) [Skotlex]
+ * Now the default delay of amotion is applied only for BF_WEAPON, non
+ NK_NO_DAMAGE skills (so stuff like Summon Spirit Sphere get the default
+ skill delay rather than ASPD) [Skotlex]
+ * Made the Char-SQL server send the GM listing when the map server
+ connects. [Skotlex]
+ * Play-dead and Basilica now block Gospel [Skotlex]
+ * Map SQL server will no longer ignore the gm-list packets received from
+ char. [Skotlex]
+ * Login-SQL server will not free the current GM listing if the SQL reading
+ of it failed (prevents GM lists being lost on SQL connection problems)
+ [Skotlex]
+ * Login-SQL will now read for the GM list ALL accounts with level above 0,
+ not just those with level above min_gm_level (just like the TXT server
+ does) [Skotlex]
+ * SC_NOCHAT is not dispelled on death now. [Skotlex]
+ * Cleaned up the global message function, Super Novice Explosion Spirits
+ will not trigger on maps where said skill can't be used. [Skotlex]
+ * Close confine won't get the bonus range on cast as other skills do due to
+ exploits. [Skotlex]
+ * Fixed a bug in setnpctimer. [Skotlex]
+ * Menu-based skills now use their own variables separetly from the normal
+ skill variables. This should enable them to work even when you keep doing
+ other stuff between the menu invocation and selection. Also gives a better
+ control over packet-based exploits. Affected skill/script-commands are:
+ [Skotlex]
+ - Arrow Crafting
+ - Warp Portal / Teleport
+ - Item producing
+ - Identify
+ - Repair weapon
+ - Pet egg selection
+ - Hindsight
+ - Weapon refine.
+ - Feel of the Stars, Moon and Stars.
+ * Corrected the implementation of Gangster's Paradise to work as it should.
+ [Skotlex]
+ * Fixed Close-confine not properly ending on a knockback (that includes
+ backsliding) [Skotlex]
+ * Changed MAX_RANDITEM from 2000 to 10000 to fit new databases [Komurka]
+ * Fixed Taekwon stances not triggering. [Skotlex]
+ * Added atcommand @exp [Skotlex]
+ * Added error reporting when add_timer_interval receives a negative/0
+ interval value. [Skotlex]
+ * Fixed a possible infinite recursion bug with splash self skills. [Skotlex]
+ * Modified the way firewall_hits_on_undead works, to loop and invoke
+ multiple skill_attacks based on the value. Now it behaves a lot closer to
+ how Aegis Firewall does (except a good default value for this config switch
+ is missing) [Skotlex]
+ * Preparing eA for new mob_skill_db from Aegis 10.2 [Komurka]
+ - increased MAX_MOBSKILL 32 -> 40
+
+2006/02/19
+ * Some fixes to the last item usage tick. Items should be working fine now.
+ [Skotlex]
+ * Fixed parsing of @kamic/@kamib to check for case. [Skotlex]
+ * Now you can hide from Pressure. [Skotlex]
+ * Weapon endowing will work on targets already endowed with the same
+ element. [Skotlex]
+ * Now reseff cards will take effect even if the status change is passed
+ with &8 flag. In short, now reseff are ALWAYS applied to the status change
+ defense. [Skotlex]
+ * Removed a missing break that was making AM_TWILIGHT2/3 always fail.
+ [Skotlex]
+2006/02/18
+ * Removed the SP_<stat> cases from status_get_sc_def as they were colliding
+ with other status changes. [Skotlex]
+ * Implemented SG_MIRACLE (Miracle of the Sun, Moon and Stars) [Komurka]
+ - duration is stored in battle_config.sg_miracle_skill_duration (currently
+ it's set to 10 minutes)
+ - ratio is stored in battle_config.sg_miracle_skill_ratio (currently it's set
+ to 0.01% chance per character move)
+ - this skill enables you usage of all Warmth skills, Comfort skills, and also
+ all mobs will be target of the Stars regardless of the day and map
+ - you'll see message "[Miracle of the Sun, Moon and Stars]" when skill kicks in
+ * Added upgrade file upgrade_svn5322.sql because apparently not everyone
+ has the guild table with autoincremental guild_id defined. [Skotlex]
+ - If you can't create guilds, chances are you need to apply this ugprade.
+ * Fixed a missing break that was making Heal, Resurrection and some others
+ become attack skills [Skotlex]
+ * Some CELL_NOSTACK Mod updates: [Skotlex]
+ - Made the free-cell lookup more extensive.
+ - Allowed pc_setpos to place players on top of cells that are stacked
+ - Fixed a logic bug in the mob-walk code that was making them get stuck and
+ not move (triggered quite often when the cell no stack mod is enabled)
+2006/02/17
+ * Cleaned up irc.c, may it compile now on Windows? [Skotlex]
+ * Updated the VC project files by Joshuaali. [Skotlex]
+ * Fixed possible crash on pet egg select. [Skotlex]
+ * Massive update on the way splash/area (non-ground) skills work. [Skotlex]
+ - the new column 'splash' in skill_db is now used to determine the area of
+ effect of all related skills (eg: splash range of fireball, area of effect
+ of angelus, the splash damage area of mines, etc)
+ - nk definition update. &1 is no damage skills, &2 is for splash skills. A
+ skill can be tagged 3 to indicate it is both. This is used to indicate the
+ type of handling the skill should use, but it also helps as all splash
+ skills get an extra check to prevent them from hitting 'unhittable'
+ characters (ie: hidden) while all skills not tagged as non-damage can
+ trigger auto-spells.
+ - All self skills are automatically executed as no-damage skills and get
+ re-routed as damage skills when the source and target do not coincide (this
+ handles all combo skills)
+ - Some skills may have screwed up (I fixed/moved all which I could find
+ needed updating). As usual, report any issues.
+ * Added an upgrade_svn file that should fix the party table by making the
+ party_id auto-incremental. Apply this or new parties will always fail!
+ [Skotlex]
+ * Changed around the included files in irc.c to see if it compiles under
+ Win32 native. [Skotlex]
+ * Char-SQL server updates: [Skotlex]
+ - Removed the unnecessary party/guild check on each char-save.
+ - Removed the 'quick loaded char' messages.
+ - Some code cleanup.
+ - Fixed one or two memory leaks.
+ * Applied the suggested fixes by Joshuaali to fix the compiling of the sql
+ map server on Win32 systems. [Skotlex]
+ - note that irc.c is still uncompilable, but the rest "should be fine" now.
+ * Fixed the memory leak on opt_2str as pointed out by End of Exam [Skotlex]
+ * Fixed a few char SQL memory leaks as pointed out by End of Exam [Skotlex]
+2006/02/16
+ * Fixed a crash in AL_TELEPORT. [Skotlex]
+ * Now you can't close-confine and already confined mob. [Skotlex]
+ * mysql/my_global.h now includes winnt.h under Windows systems... [Skotlex]
+ * Some code cleanup of status.c [Skotlex]
+ * Removed the check that prevented mobs from walking into a basilica. [Skotlex]
+ * Added a new column in the skill_db to specify the
+ splash-range/area-of-effect of skills. (Work in progress) [Skotlex]
+ * Autocasted AL_TELEPORT should now automatically pick menu entry rather
+ than showing the box up. [Skotlex]
+ * The battle config options sp_rate and hp_rate are now applied
+ independently of the same type of bonuses from cards. [Skotlex]
+ * In CELL_NOSTACK mode, mob_canreach will now ignore other players when
+ checking if there's a path to the player. [Skotlex]
+ * Added RG_RAID to the list of skills that need a status_checkskilluse on
+ skill_attack. [Skotlex]
+ * Added the mapflag check monster_noteleport to AL_TELEPORT. [Skotlex]
+ * Fixed the sc_def rate not being reduced in status_change_start. [Skotlex]
+ * Changed the include in irc.c from strings.h to string.h, which fixes a
+ bunch of compilation warnings here... [Skotlex]
+ * Updated the SQL login/char servers to let the mysql server grant the new
+ IDs for accounts/chars/pets/parties/guilds instead of them being handled by
+ the server. [Skotlex]
+ * Some cleaning of the pc item use functions. [Skotlex]
+ * Gospel shouldn't block enemies in certain situations from using items
+ now. [Skotlex]
+2006/02/15
+ * Fixed crash in chrif_load_scdata warning message. [Skotlex]
+ * Fixed pets displaying "strangely" when they did not have their pet armor.
+ [Skotlex]
+ * Added battle config option pk_level_range for specifying valid level
+ ranges to engage in PK (battle/misc.conf) [Skotlex]
+ * Added battle config allow_es_magic_player to enable SL_S* skills to work
+ on non-mobs. (battle/skill.conf) [Skotlex]
+ * Fixed the char servers to store correctly exp as uints. They are also
+ capped to LONG_MAX before being sent to the client. [Skotlex]
+ * TK_DODGE now dodges all ranged attacks, when used with SPURT, dodges
+ everything. [Skotlex]
+ * The autospell loop now cancels after one successful cast. This means if
+ you have 10 autospells with 100% casting rate, only one will come off with
+ each hit instead of all of them. [Skotlex]
+ * Warm skill update: [Skotlex]
+ - they are type BF_WEAPON, so that they may trigger effect/spell cards.
+ - Changed their element to -1 to carry on weapon's element.
+ - Against player it only damages 60SP per "hit"
+ - Against non-players it is a knockback skill as it was before.
+ - Hit frequency increased to once every 100ms.
+ * TK_DODGE now only dodges ranged weapon attacks, while under Spurt mode
+ it dodges everything (provide better information if this is not how it
+ should behave as the current info given is conflicting itself >.<)
+ [Skotlex]
+ * Cleaned up and expanded the sc_def_rate battle config. The new battle
+ flags are mob_sc_def_rate, pc_sc_def_rate, mob_max_sc_def, pc_max_sc_def
+ [Skotlex]
+ * Modified Marionette Control so that the max bonus stats you get is capped
+ to your server's defined max stats instead of 99. [Skotlex]
+ * Mobs are no longer affected by the vs_traps_bctall switch. [Skotlex]
+ * Added function pc_damage_sp to damage the SP of players, updated code as
+ necessary. [Skotlex]
+ * Fixed @lvup command adding levels instead of substracting when you
+ specify a negative quantity. [Skotlex]
+2006/02/14
+ * pc_setinventorydata won't use itemdb_search on empty inventory slots (id
+ = 0) [Skotlex]
+ * Fixed the icon from Provoke being gone. [Skotlex]
+ * Fixed skill_timerskill (most notable skill broken: water ball doing 1
+ hit) [Skotlex]
+ * Removed the declaration of puchar and pchar from my_global.h which was
+ preventing compiles on native win NT systems. Drawback is now Win9X systems
+ will fail to compile instead... [Skotlex]
+ * Hiding cancels Close Confine now. [Skotlex]
+ * ST_MOVE_ENABLE now also checks for pc_can_move(), and only perform a walk
+ check if the skill is ground targetted. [Skotlex]
+ * Moved the berserk_cancel_buffs code to status_change_start. [Skotlex]
+ * Moved most checks of status_isimmune() to status_get_sc_def [Skotlex]
+ * Allowed Endow skills to go through status_isinmune characters. [Skotlex]
+ * Fixed PR_BENEDICTIO not taking away all SP. [Skotlex]
+ * Modified the way Status changes are linked to skills for an easier to
+ read implementation (see status_initChangeTables). [Skotlex]
+2006/02/13
+ * Added battle config sc_def_rate which adjusts natural defense of
+ characters against status changes (see conf/battle/battle.conf). [Skotlex]
+ * Pet eggs will now not be deleted from the inventory until they arrive
+ from the char-server. [Skotlex]
+ * pc_readdb will now print if any classes are missing their exp tables.
+ Only exception are JOB_WEDDING and JOB_XMAS. [Skotlex]
+ * Made the NPC_BREAK* skills attack skills again, their chance of equipment
+ breaking code was moved to skill_additional_effect. [Skotlex]
+ * Now when the exp table does not has enough data to reach the max level
+ specified, the max level will not be reduced to enable leveling through
+ quests/scripts/gm-commands/etc. [Skotlex]
+ * Made Land Protector Block Hammerfall. [Skotlex]
+ * Updated item_db code to stop creating items for every non-existant ID
+ used. Instead it will complain, and use a dummy item that has the view ID
+ of an apple, and it's type 3 (etc item). [Skotlex]
+ * Modified PA_GOSPEL so that the random damage attack becomes a BF_MISC
+ attack. [Skotlex]
+ * Added pc_resetskill when lowering job level and there's not enough
+ skill points to substract. [Skotlex]
+ * Fixed SG_FUSION costing SP to deactivate. [Skotlex]
+ * Some cleaning up at pc_setpos to prevent calling pc_clean_skilltree
+ [Skotlex]
+ * Enabled use of TF_HIDING while Cloaked. [Skotlex]
+ * pc_resetstate won't remove wedding skills now [Skotlex]
+ * NPC_POWERUP now gives +40% atk per level. [Skotlex]
+ * Water elementals can be frozen again. [Skotlex]
+ * Fixed the sc_def equation in status_change_start. [Skotlex]
+ * Fixed an extra semi-colon that broke win32 compiles. [Skotlex]
+ * Some rewriting of bounds checks in @baselvup, @joblvup and the #
+ equivalents to prevent signed/unsigned comparisons. [Skotlex]
+ * Now slaves give exp/loot (exception: player slaves still stick to the old
+ rules of no exp/loot) [Skotlex]
+2006/02/12
+ * Some path cleanups meant to get the CELL_NOSTACK mod working better with
+ path searching and the like. [Skotlex]
+ * Optimized functions skill_addtimerskill/skill_cleartimerskill [Skotlex]
+ * Fixed SC_DANCING for non players (was making dances only last 1 second
+ for them) [Skotlex]
+ * Modified map_moveblock to handle updating dance's position as well as
+ ending close confine status effects. [Skotlex]
+2006/02/10
+ * Fixed Sonic Blow's damage for lvl 1~9 [Vicious]
+ * The status window will now show the total power of both weapons instead
+ of just the right-hand weapon for dual wielders. [Skotlex]
+ * Removed #include <lcms.h> from irc.c, since it's unused and some people don't have it. [Valaris]
+ * Changed the default MAX_LEVEL supported by the map server to 1000. [Skotlex]
+ * Pet Lures won't be consumed now when used on a non-mob. [Skotlex]
+ * Fixed map_searchrandcell function. [Skotlex]
+ * Modified the NPC_BREAK* skills to break equipment at a 10%*lv rate. [Skotlex]
+ * Modified the drop item routines to perform stacking checks only for
+ player attempted item drops, therefore, mob drops will stack up to
+ infinity. [Skotlex]
+ * NPC_POWERUP now gives +20% attack per skill level. [Skotlex]
+2006/02/09
+ * Fixed "set baselevel, X" sending one to a different level than the one
+ requested. [Skotlex]
+ * Added range checking to mob skill loading of permillage and delay to
+ prevent overflows. [Skotlex]
+ * Fixed pc_gainexp not working for next level exp requirements above
+ INT_MAX. [Skotlex]
+ * Fixed the display of @showexp not working right for exp values above
+ INT_MAX. [Skotlex]
+ * Removed the conf sql code for now. Maybe will continue later with that project.
+ Lowered the irc keepalive timer, and added some checks for use_irc that should have been there.
+ Added a return line \n to the beginning of the title screen. [Valaris]
+ * Added function mob_respawn which makes a mob respawn on spot 3 seconds
+ after defeat if SC_KAIZEL is active. [Skotlex]
+ * Modified NPC_REBIRTH to use Kaizel level 1. [Skotlex]
+ * Added setting max_exp_gain_rate which caps how much exp you can get from
+ a single kill. See battle/exp.txt for details. [Skotlex]
+ * pc_readdb will now cap experience required per level to UINT_MAX, it will
+ warn if the exp table has exp values above said limit. [Skotlex]
+ * Changed the default of skill_delay_attack_enable to no. [Skotlex]
+ * Code rewrites in mob_damage and party_exp_even_share for correctly
+ handling overflow issues. Now uses UINT_MAX for range comparisons, as it
+ should be. [Skotlex]
+ * Also modified the mob_db reading to use UINT_MAX for exp limits, changed
+ their exp/job exp fields to unsigned int as well. [Skotlex]
+ * Modified multi_level_up behaviour to work as specified by Kyoki. That is,
+ on a level up, the max carry-over exp is the exp needed for the previous
+ level -1. [Skotlex]
+ * Modified the skill attack display of Meteor Assault and the Warm Skills
+ (I think the caster should no longer do fancy animations now on each hit)
+ [Skotlex]
+ * Added back water elemental targets being inmune to SC_FREEZE [Skotlex]
+ * SQL compile fix [Komurka]
+
+2006/02/08
+ * Added battle config option skill_caster_check, which does a
+ status_checkskilluse on all skill attacks. When enabled (default on) the
+ caster of the skill is checked on all skill_attacks, which means that
+ ground spells will make no effect if the caster is unable to fight
+ (stunned, frozen, etc) [Skotlex]
+ * Added battle config option status_cast_cancel. When enabled (default off)
+ some status changes (freeze, stone, etc) will cancel your cast. [Skotlex]
+ * Fixed the death exp penalty underflow bug. [Skotlex]
+ * Rewrote/organized status_change_start, it now receives the base rate for
+ the effect. It handles reducing this rate/duration through natural
+ resistances and whatever else should reduce it. [Skotlex]
+ * Fixes to exp2.txt on the novice job exp. Thanks to rollopop. [Skotlex]
+ - Also modified exp2.txt to use the normal max levels by default.
+2006/02/07
+ * Modified battle_check_distance, mobs should no longer find a diagonal
+ spot on which they lock onto their target, yet fail to attack from. [Skotlex]
+ * Removed the max level configs from battle/exp.txt [Skotlex]
+ * Now NPC_POWERUP uses SC_INCATKRATE instead of SC_EXPLOSIONSPIRITS for
+ enhancing damage. Instead of +1k atk per skilllv, it is +50% atk per
+ skilllv. [Skotlex]
+ * Fixed char server changing the save/last point to new grounds in certain
+ situations. [Skotlex]
+ * Fixed SG_STAR_ANGER not getting it's damage bonus at all. [Skotlex]
+2006/02/06
+ * Added a custom exp table that goes up to level 1000 (db/exp2.txt). [Skotlex]
+ - It uses a inverse exponential growth rate to mimic the official exp rate
+ increase as close as possible.
+ - It overrides the exp level of the last 5~10 official exp values for a
+ smoother curve.
+ - It's adjusted so that the Lv1000 exp requirement for Advanced Base/2nd
+ Job is close to the unsigned int limit without going above it (limit is
+ 4294967295 in my system. It goes up to 42k Million on Advanced
+ Base lv1000, I think)
+ * Fixed startnpctimer starting multiple timers instead of failing when the
+ npc timer is already running. [Skotlex]
+ * Venom Splasher update: [Skotlex]
+ - always hits (but splash damage targets can still avoid it)
+ - Being hit does not cancels it,
+ - works at 75% or less of target's HP
+ - being hit normally while under the count has a chance of causing poison.
+ - Damage is +400% + 50*lv%
+ * Using autoloot with no arguments now toggles it between @autoloot 0 and
+ @autoloot 100% [Skotlex]
+ * Falcon Assault now takes Blitz Beat lv5 as base damage. [Skotlex]
+ * Fixed pc_makesavestatus not updating status.option correctly. [Skotlex]
+ * Corrected Waterball so that higher levels can do insane amount of hits. [Skotlex]
+ * Altered slave behaviour. No more random walking, will stay within 2 cells
+ of their master. [Skotlex]
+ * Reverted the Summon Slave behaviour to not adjust level based on number
+ of current slaves. [Skotlex]
+ * Coma no longer sends SP to 1. [Skotlex]
+ * Updated Meteor so that when level 11 or more is casted, the area over
+ which meteors fall is tripled. [Skotlex]
+ * Dark elemental characters are now inmune to Curse. [Skotlex]
+ * Fixed sc_data saving to sql buffer building method. Thanks to its_sparky. [Skotlex]
+ * Changed the map zone reading from using pow to a bit shift. [Skotlex]
+ * Experience has now been changed to unsigned int, and is read as such from
+ the dbs. [Skotlex]
+ * Increased HT_DETECTING seek range to 7x7 [Skotlex]
+2006/02/05
+ * Added some of eAIRC bot code, written by me and LittleWolf.
+ It is disabled and has no configuration options yet, as it is not finished. [Valaris]
+ * Fixed and documented script command "callshop". [Skotlex]
+ * Updated sq;-files/mob_db.sql with current mob_db. [Skotlex]
+ * Updated sql-files/item_db.sql with current item_db. [Skotlex]
+2006/02/04
+ * Skotlex's Falcon Assault fix. [Vicious]
+2006/02/03
+ * Fixed the debug script messages specifying the wrong mapname for NPCs.
+ [Skotlex]
+ * Now you can't hide from earth elemental attacks (status_check_skilluse).
+ [Skotlex]
+ * Grand Cross/Grand Darkness can no longer get the ignore defense -armor
+ piercing bonuses from cards. [Skotlex]
+ * Loki's weil is now ignored by bosses. [Skotlex]
+ * Land Protector and Gantantein should now ignore traps. [Skotlex]
+ * Fixed Shinobi card so that it fails when you aren't next to a wall.
+ [Skotlex]
+ * After a guild master change, the new guild master has his guild skills
+ blocked for 5 minutes to prevent abuse. [Skotlex]
+ * Fixed txt-converter compilation errors [Komurka]
+
+2006/02/02
+ * Fixed crash in status_change_timer. For some reason the block type switch was removed. [Valaris]
+ * Crash fix in npc.c npc_timerevent.
+ was: struct timer_event_data *ted = (struct timer_event_data*)ted;
+ changed: struct timer_event_data *ted = (struct timer_event_data*)data;
+ Skotlex, I am assuming it's calling from the passed data var, If I'm wrong
+ please fix it. I just know what was there was definitely not correct. [Valaris]
+ * Improved the NPC timer system to enable multiple timers going on at a
+ time with different players attached to each. Now npc event timers are of
+ two types: attached or global. The global timers don't have a player
+ attached and can be started/halted by anyone. The character timers have a
+ player attached, and they can only be stopped by a script that has the same
+ player attached. [Skotlex]
+ - Now player attached scripts will auto-abort when the atteched player
+ quits the map server.
+ - Of course, this requires some major testing as it's prone to have bugs...
+ * Applied the Entry Reusage System to the battle delay damage timers.
+ [Skotlex]
+ * Fixed the map server complain when using the default user/password
+ showing up if you set the new user/pass on the import file. [Skotlex]
+2006/02/01
+ * Fixed compile errors and warning in chrif.c and charsave.c. [Valaris]
+ * Map and char server now will complain if they are run using the default
+ user/password set. [Skotlex]
+ * Trick Dead makes you stop walking now. [Skotlex]
+ * Soul Burn is not affected by Lex Aeterna, not affected by target's cards
+ neither. [Skotlex]
+ * Freeze and Stone take preference over Benedictio. [Skotlex]
+ * Sleep/Stun/Petrify/Freeze block each other out. [Skotlex]
+ * Fixed areamonster when the passed class is negative. [Skotlex]
+ * Removed the clear screen when launching the server. [Skotlex]
+ * Integrated the status change variables into a single structure for easier
+ management. [Skotlex]
+ * Break fall should no longer trigger when inflicted by freeze/stone/etc
+ [Skotlex]
+ * Fixed an overflow in grfio causing read problems in Win32 builds [celest]
+ * Changed resnametable loading behaviour - grfio will load from data directory
+ first, and then from the highest priority grf only if that fails [celest]
+ * Increased grfio filelist limit to 1048576 to avoid problems when loading
+ too many large grfs [celest]
+2006/01/31
+ * Fixed skill_check_cloak to use the current skill level of the cloaking
+ skill and not pc_checkskill() to know if a cloaker away from a wall should
+ be uncloaked. [Skotlex]
+ * Likely fixed opening guild storage. [Skotlex]
+ * Removed no penelty mapflag for nifilheim. Confirmed on iRO. [Kayla]
+ * Changed default value of gm_cant_drop_max_lvl to 98. Also reworded the
+ comments for cant_drop_max and min. [Kayla]
+ * Disabled pet skills by default. To my knowledge they are only enabled on
+ cRO, not iRO nor kRO. [Kayla]
+ * PF_SOULBURN no longer ignores mdef. [Skotlex]
+ * HW_GRAVITATION should now invoke auto spells. [Skotlex]
+ * Cleaned up damage return code. Reflect Shield and the like now should
+ also trigger autospells from normal attacks (previously it was only worked
+ on skill attack returned damage) [Skotlex]
+ * Cleaned up Summon Slave mob skill to only summon number of missing mobs
+ to complete the skill level (that is, SS level 5 will always bring the
+ total count of slaves to 5, never above). [Skotlex]
+ * Fixed being able to Encore skills you no longer have in your tree.
+ [Skotlex]
+ * Added no HP regen while Bleeding, -25% ATK and ASPD penalties as well.
+ [Skotlex]
+ * Added VIT reduces duration of confusion. [Skotlex]
+ * Added "onspawn" mob skill condition. [Skotlex]
+ * Changed the exp table format. The new format allows specifying exp tables
+ for any particular class. Thanks to Playstester for converting the official
+ exp table to the new format. [Skotlex]
+ - UNTESTED: Report any problems asap.
+2006/01/30
+ * Autoloot now uses the item's base drop chance rather than final drop rate
+ to determine if it should autoloot the item or not. [Skotlex]
+ * Fixed super novices getting +10 to all stats temporarily when their death
+ count isn't zero. [Skotlex]
+ * Fixed Kahai displaying HP-SP as the total healed instead of HP [Skotlex]
+ * Cleaned up skill_repairweapon to prevent crashes when the target
+ vanishes/changes/whatever before the weapon to repair has been selected.
+ [Skotlex]
+ * Parsing the Storage/Guild Storage from the char server will now fail if the
+ storage has been modified and not saved yet. [Skotlex]
+ * Being hit now cancels confuse. [Skotlex]
+ * Added back the bleeding icon. [Skotlex]
+ * Fixed Combo Finish Soul Linked Effect being a 11x11 area rather than 5x5
+ [Skotlex]
+ * Added 'restricted' mapflag, based on lordalfa patch [Komurka]
+ - you can set restriction zone on map (see mapflag/restricted.txt)
+ - you can turn off item usage on certain restricted map in item_noequip.txt
+ - you can turn off skill usage on certain restricted map in skill_nocast_db.txt
+ * Moved MVP log code so it can log all MVP, not only when player gets MVP item,
+ thanks to Hatred_ [Komurka]
+ * One more small fix on 'bSPVanishRate' (hp -> sp) [Komurka]
+ * Added bSPVanishRate to const.txt - Dark Priest Card should work now ^^
+ * Implemented bonus2 bSPVanishRate for Dark Priest Card [Komurka]
+ - it isn't finished - I get '[Warning]: pc_bonus2: unknown type 0 50 10!' ><
+ * Applied lordalfa patch - you can now forbid usage of certain cards on PVP/GVG/WoE
+ defined in item_noequip.txt [Komurka]
+
+2006/01/29
+ * Added support for more account states like "Unavailable due to hacking/bug
+ investigation" etc, thanks to NeoSaro [DracoRPG]
+2006/01/28
+ * Added the night mapflag to the new maps. Removed some indor maps. [Poki#3]
+ * Added DISGUISE MobID; UNDISGUISE; script commands [Lupus]
+ - Made them for Eastern Year of the Fire Dog Event.(to be uploaded today)
+2006/01/27
+ * Added support for mob_avail.txt replacement for NPC classes. [Skotlex]
+ * Added "sense_type" config to conf/battle/skill.conf to select which defense
+ is displayed on the sense screen. Defaults to displaying def+def2. [Skotlex]
+ * Modified traps so that once they trigger they set themselves as "Into the
+ Abyss" casted traps, so that if you remove them, you won't earn the item.
+ [Skotlex]
+ * Fixed Basilica (small bug introduced yesterday) [Skotlex]
+ * Hopefully cleaned out the warnings when compiling the char-SQL server.
+ [Skotlex]
+ * Updated the makefile for the plugins to take into account the ers.o file.
+ [Skotlex]
+2006/01/26
+ * Updated VC project files, thanks to D-Kalck. [Skotlex]
+ * Rare drop announces will now be done based on the mvp_sd (character who
+ did most damage) instead of sd (character that delivered final blow)
+ [Skotlex]
+ * Fixed TK Doridori bonuses to double your regen instead of giving 30Hp/3Sp
+ [Skotlex]
+ * Fixed Sense displaying def2/mdef2 when it should display def+def2 / mdef
+ + mdef2. [Skotlex]
+ * Fixed Super Novices losing their skill tree (showing up just basic skill)
+ under certain circumstances. [Skotlex]
+ * Cleanup and optimization of the movement routines. [Skotlex]
+ * Added experimental feature "Cell Stack Limit". When enabled (see
+ src/map/map.h) it should limit the amount of characters that can be placed
+ on the same cell. That's assuming it works (experimental and untested as of
+ yet) [Skotlex]
+ * Hopefully fixed Benedicto checking on the west/east tiles instead of the
+ left/right tiles of the caster. [Skotlex]
+ * Fixed mobs being unable to move on tick loopback (which happens every ~51
+ days) [Skotlex]
+2006/01/25
+ * Reverted last change, when you log again it still shows the fake
+ icon. [Foruken]
+ * Temporary fix to fake mute status when using pk_mode and
+ !muting_player [Foruken]
+ * Probably fixed the max base/job battle config options actually enabling
+ characters to reach one more level than the max specified. [Skotlex]
+ * Fixed BSS Sacramenti not hitting demon type enemies. [Skotlex]
+ * Now poisoned monsters will show HP updates as their health goes down
+ (let's see if this finally convinces people that poison works u.u)
+ [Skotlex]
+ * Splitted up battle_athena.conf into multiple configuration files.
+ battle_athena.conf only contains import lines now, and all the
+ configuration options are located in conf/battle/* [Skotlex]
+ * Updated the db version with the new one by FlavioJS [Skotlex]
+ * Improved the error reporting when failing to load a mob skill due to
+ insufficient fields. [Skotlex]
+ * Changed map_getallusers to use the db interface getall (hope it doesn't
+ breaks horribly) [Skotlex]
+ * Added an attack delay to TK kicks to prevent the top10 rankers from
+ attacking normally during the skill animation. [Skotlex]
+ * Updated script.c to display the file not found error using braces as
+ delimiters to help when npc filenames include spaces and the respective file
+ is not found due to them) [Skotlex]
+ * Changed TK_RUN to a misc attack type which should enable you to halt the
+ skill quickly after starting it. Updated SC_SPURT to be triggered when you
+ stop running if you stopped running one sec or less after you started.
+ Corrected the icon of SPURT to be that yellow Running Man. The previous
+ footsteps effect was assigned to CHASEWALK. [Skotlex]
+ * fixed battle config item_auto_get setting autoloot to just 0.01% drops
+ rather than 100%. [Skotlex]
+ * Added Sharp Shooting check to skill_attack to prevent hitting hidden
+ characters. [Skotlex]
+2006/01/24
+ * Some cleaning up of battle_calc_damage, Assumptio should now also reduce
+ damage of all types of attack, not just weapon-based ones. [Skotlex]
+ * Incremented SL_MONK combo SP cost reduction to 25% [Skotlex]
+ * Updated Full Adrenaline Rush to work on all weapons except bows. [Skotlex]
+ * Updated the script engine to report the src of an error when there's a
+ problem with one of the script functions. For example, if there's a "player
+ not attached error", it will also print which NPC caused it. [Skotlex]
+ * Added RFIFOSKIP(fd,RFIFOREST(fd)) to the end of the login server's parse functions.
+ This is good for clearing out packets of one byte. [Valaris]
+ * Fixed noteleport mapflag affecting Warp Portal. [Skotlex]
+ * Fixed map server crashing when parsing an incomplete mob-skill line. [Skotlex]
+ * @autoloot 100 will now pickup items that have drop rates ABOVE 100. [Skotlex]
+2006/01/23
+ * Added battle config "no_spawn_on_player", see battle_athena.conf for
+ details. [Skotlex]
+ * Fixed bows doing less damage on criticals when having high dex. [Skotlex]
+ * Moved the enemy_critical adjustment to status_get_critical. [Skotlex]
+ * Fixed @chardisguise to use the same id checks as @disguise. [Skotlex]
+ * Fixed SightBlaster 'hitting' dead characters. [Skotlex]
+ * Basilica check in status_checkskilluse expanded to help mobs release
+ their target as soon as they walk into a basilica. [Skotlex]
+ * When a player stops walking their to_x and to_y is updated to their
+ present position. This MAY fix warp portal not warping players that were
+ already there waiting to be warped. [Skotlex]
+2006/01/22
+ * typo fixes (fell -> feel) [Komurka]
+ - mob_db_mode_list.txt updated
+ - removed some unneeded comments (//komurka)
+ * Some changes of @main. Now you can send main-chat messages by sending whisper
+ to nick "Main" (or any other, it can be set in inter_athena.conf). [LuzZza]
+2006/01/21
+ * Changed gm_can_drop_lv battle conf switch to gm_cant_drop_min_lv and gm_cant_drop_max_lv [Komurka]
+ * SL_SWOO (Esu) will only lasts 1/5 of normal time when used on a Boss-type monster [Komurka]
+ -SL_SKE (Esk) won't work on a Boss-type monster anymore (if you KNOW that it should work on them
+ write about it on forum; either way don't bother guessing ... SL can solo ANY boss with this skill ~.~)
+2006/01/20
+ * Fixed the login-TXT login Log. [Skotlex]
+ * Small update to sql-files/item_db.sql to fix speed potions (a complete
+ update will be done when possible...) [Skotlex]
+ * Fixed clone script command's duration being in ms rather than seconds.
+ [Skotlex]
+ * Taekwon Ready Stances combo time is now 2000 - 4*agi -2*dex ms instead of
+ a flat 2 secs (same reduction that Monk combos get) [Skotlex]
+ * Cleaned up code of SG_HATE, may fix the skill seemingly not working.
+ [Skotlex]
+ * Likely fixed Even-Share parties not breaking up when a character with
+ too high/low level rejoins in char-TXT servers. [Skotlex]
+2006/01/19
+ * Added config option atc_slave_clone_limit to limit the amount of
+ @slaveclone's a player can have. [Skotlex]
+ * The clone commands now fail when used on someone of higher GM level than
+ the caster. [Skotlex]
+ * Increased the size of the clif_disp_onlyself packet by one to see if it
+ fixes the mysterious cropping of the last character in the message.
+ [Skotlex]
+ * Now when use_statpoint_table is set to yes, it will be used to determine
+ the stat points you earn on level up. [Skotlex]
+ * Small fixes as pointed out by FlavioJs in the login TXT server to prevent
+ crashes in Win32 compiles. [Skotlex]
+ * Merged Marquis's implementation of Enjoyable Rest's earth scroll bonus.
+ [Skotlex]
+ * Fixed players being able to send custom crafted mute requests that would
+ go through regardless of their gm level and mute others. [Skotlex]
+ * Updated mapflags [Lupus]
+ * Modified the client_connect function in socket.c to allow different parse_functions to be called
+ based on the listening socket. After a make_listen_bind returns a listen fd, set that fd's
+ func_parse member to whatever parse function to be used. If this value is not manually set
+ it will just use the default_func_parse function. This only affects server listening sockets
+ in which the func_parse member isn't even used. [Valaris]
+ * gvg_traps_target_all now also affects traps in pvp maps. [Skotlex]
+ * All reflected damage has now a chance to auto-cast spells. [Skotlex]
+ * Fixed Casting ground spells from within basilica. [Skotlex]
+
+2006/01/17
+ * Updated the map server code to use some of the new db functions. [Skotlex]
+ * Fixed ground skills checking the wrong target-type on movement, hence
+ making them mostly useless (this is what the Warp Portal report was about)
+ [Skotlex]
+ * Some code updates to implement the new db interface. [Skotlex]
+ - SQL compilation not tested, so if it breaks someone report to fix it :X
+ * Added @clouds2 and clouds2 mapflag using effect 516. [Valaris]
+ * Fixed some weather effects not working or not functioning correctly. [Valaris]
+ * Cleanups and organization to maps_athena.txt and map_index.txt, thanks to
+ Poki for the cleanup work. [Skotlex]
+ * Some cleanup of the SG_FEEL code [Skotlex]
+ * Fixed debug mode compiling in VC7.1. Added optimizations to VC7.1 release mode.
+ Defaulted VC7.1 SLN to debug mode. [Lance]
+ * Temperory solved the freeing freed pointer error upon map-server shutdown. [Lance]
+
+2006/01/16
+ * Fixed clif_disp_onlyself packet length, thanks to Orn. [Skotlex]
+ * Imported Freya's autoloot system which enables one to specify the maximum
+ drop-rate to loot. [Skotlex]
+ * Refix of the mapreg SQL saving fix of a while ago... [Skotlex]
+ * Playtester custom eamobs spawn updates: coal Mines, umbala fields, and
+ minor changes to Sphinx and Geffen Dungeon. [Skotlex]
+ * Incremented a bit clone skill usage rate, their rate/delays are now affected
+ by the battle_config options mob_skill_rate and mob_skill_delay [Skotlex]
+ * Optimized use of BL_* constants by making them stackable (meant for
+ map_foreach* calls). Should improve performance by avoiding
+ battle_check_target calls on a bunch of invalid targets such as
+ items/skills/npcs on skills and other misc places. [Skotlex]
+ * Fixed mob skills that should trigger on status on "any bad". [Skotlex]
+ * TK classes no longer are inmune to the strip-effects of Jump Kick [Skotlex]
+ * Fixed SQL mapreg saving. [Skotlex]
+ * Reverted Ice Wall Behaviour (you can snipe/cast through it again) [Skotlex]
+ * Fixed possible crash in skill_check_condition on consume-delayed items [Skotlex]
+ * Skills whose range is increased by Vulture Eyes now get the range
+ increased by 10 for non players (assumes VE level 10). [Skotlex]
+ * Added cardfixes of near_attack_def_rate and long_attack_def_rate to misc
+ attack calculations. [Skotlex]
+ * Fixed Spirit of Wizard not working in a couple of instances. [Skotlex]
+ * Advanced Book now gives 1%*skill level success chance to create element
+ convert potion [Skotlex]
+ * Changed the FEEL skill implementation to store/use map indexes instead of
+ map names.[Skotlex]
+ * Fixed compilation of plugins. [Skotlex]
+ * Applied flaviojs's new db interface and fixed compatibility problems with Visual Studio. [Lance]
+
+2006/01/15
+ * Fixed poison damaging player even when under 25% hp. [Skotlex]
+ * Fixed permanent character variables in Char-TXT [Skotlex]
+ * Fixed previous change for stable. Whoops my 5am work again. [Kayla]
+ * Fixed the trade exploit allowing for a user to send packets while in a trade.
+ For instance the bank NPC becoming a zeny dupe. Kudos to clown. [Kayla]
+ * Added script source error reporting to set and getarrayelement, should
+ print NPC name and location (map, coordinates) on the console when there's
+ an error with these two commands. [Skotlex]
+ * Removed treasure chests spawning upon agitbreak, leading to exploits. [Lance]
+
+2006/01/14
+ * Removed the 5% success penalty for trying to make a convertor for which
+ you don't have the relevant enchant skills. [Skotlex]
+ * Fixed compilation of Login Converter. [Valaris]
+ * Fixed bSPGainRace and bExpAddRace with RC_NonBoss and RC_Boss. [Valaris]
+ * Lex Divina now shows the animation even when used on someone you can't
+ (non-muted, non-enemy player) [Skotlex]
+ * Quick hack to make Shield Reflect trigger auto-spells (only this kind of
+ return damage does it? Because other reflect cards like Orc Lord behave
+ exactly the same way...) [Skotlex]
+ * Fixed grf loading to attempt to load from all grf files specified in
+ grf-files.txt (looking for them in the same order specified in the file,
+ returns the first match found) instead of only looking up on the last
+ specified grf... [Skotlex]
+ * Fixed compilation of plugins. [Skotlex]
+ * Added error reporting to the db when a null key/data is attempted to be
+ inserted and the db is configured to not allow them. [Skotlex]
+2006/01/13
+ * Fixed labels located at the beginning of a script not being counted at
+ all. [Skotlex]
+ * Applied blackhole89's patch to enable dynamic menus. [Skotlex]
+ - Script reference doc updated accordingly.
+ * Ranking Taekwons with lv 90+ no longer get Quest/Wedding skills for free.[Skotlex]
+ * Readjusted Scream And Frost Joke so now the effect goes off no matter
+ where the caster went, but the effect will happen only around the area
+ where the skill was done regardless of where the caster is (which is how it
+ should work from a logical stand point) [Skotlex]
+ * Scream and Frost Joke now take effect 2secs after casting, and caster
+ must remain in same map for it to take effect. [Skotlex]
+ * Flying Side Kick can't be used by Soul Linkers now. [Skotlex]
+ * npc_reload should now correctly remove mobs and npcs that aren't placed
+ in any map (such as mobs that were killed and are waiting for respawn) [Skotlex]
+2006/01/12
+ * Fixed Ice-Wall range problem. [LuzZza]
+ * Corrected the guild_db_final function in int_guild.c of SQL char-server to
+ compile and function with the new db code. [Valaris]
+ * Fixed some advanced skills being able to be copied even when restricted [Vicious]
+ * Fixed a possible crash-source related to item-picking packets. [Skotlex]
+ * Now Top 10 ranking Taekwons with base level 90+ get their whole
+ skill-tree maxed out (but only as bonus-skills, they aren't saved on the
+ dbs) [Skotlex]
+ * Some cleaning of the char_name_letters implementation. Characters don't
+ need a space between them, in fact, placing a space in that config makes
+ the space count towards allowed/disallowed characters. [Skotlex]
+ * Some modifications to the db code to make the code portable. It may
+ compile on windows now. (note I can't test SQL compiles yet so report any
+ problems ASAP) [Skotlex]
+ * Fixed Venom Knife consuming two daggers. [Skotlex]
+ * Inverted the packet order in many skills which cause status effects. The
+ client expects the status-change packet to arrive before the skill packet
+ in order for opt3-related changes to make effect on the character. [Skotlex]
+2006/01/11
+ * Added @main command into atcommand_athena.conf. [LuzZza]
+ * Tuxedo and Wedding Dress no longer get a 'forced' gender check regardless
+ of config ignore_items_gender setting. [Skotlex]
+ * Added support for 'invisible' shops. These are shops that are loaded but
+ not placed on any map, so you can't click on them. [Skotlex]
+ - Example: -<t>shop<t>Invisible Dealer<t>-,1750:-1,1751:-1,1752:-1,etc...
+ - Make sure they have a unique name if you want to reference to it with...
+ * Added script command 'callshop' for invoking shops from within a script. [Skotlex]
+ - Usage: callshop "Shop Name", flag;
+ - Distance to shop is still checked, so it's best to use 'invisible' shops.
+ - flag determines shop selection: 1: Show buy list, 2: show sell list.
+ Anything else: show the buy/sell/cancel menu.
+ - Function returns 1 if successful, 0 otherwise, but it is recommended that
+ the script should be closed right away to prevent problems.
+ - Documentation to the scripts_command.txt reference file not yet added
+ because this command is as of yet untested and may need further refining.
+ * Newly created SQL guilds won't save the member-list right away (this
+ seems to be the reason why sometimes when creating new guilds, the
+ guild-master keeps guild_id == 0 in the tables) [Skotlex]
+ * Fixed char/int_storage.c reporting lines with too many items when in
+ reality said items had the exact max amount allowed. [Skotlex]
+ * Moved the status_change_clear code below the exp penalty so that the
+ SC_BABY effect will work. [Skotlex]
+ * Fixed the map_index never finding the last map specified in the
+ map_index file. [Skotlex]
+ * Fixed an overflowed pointer in char/inter.c, and an already free'd pointer
+ error in map/guild.c [Skotlex]
+ * Added battle option party_item_share_type, now you can choose between
+ round-robin (previous implementation) and random (default) [Skotlex]
+ * Fixed compilation of the plugins (due to the db change) [Skotlex]
+ * Fixed a few issues with the map server (notably npc_command_sub was
+ broken) [Skotlex]
+ * Added proper escaping of the motd string before inserting it on the rag
+ server info SQL table. [Skotlex]
+2006/01/10
+ * Updated the map-server to conform to the new db interface. Removed
+ DB_DELAY_FINAL_CHANGES and related code from db.* as now eA fully complies
+ to the new interface. [Skotlex]
+ * Crafting Arrows, Weapon, Forging/Upgrading now all fail if you have an
+ npc going on to prevent your inventory from being modified while selling.
+ [Skotlex]
+ * Updated the char-SQL server to etc etc etc new db etc etc etc. [Skotlex]
+ * Cleaned up the description of size_fix.txt [Skotlex]
+ * Updated the char-TXT server to be blah blah blah new db blah blah. [Skotlex]
+ * Updated both login servers to be fully compliant with the new db
+ interface. [Skotlex]
+ * Moved skill damage bonuses from cards to the 'second layer' which means
+ they are applied on top of previous damage bonuses rather than just adding
+ to them. [Skotlex]
+ * Some more updates to the db code as specified by FlavioJS [Skotlex]
+ * Fixed the memory leak of npc_unload_ev. [Skotlex]
+2006/01/09
+ * Some more updates regarding the new db system. [Skotlex]
+ - Note that there's currently a leak regarding npc_events (ev_db), but this one is
+ not a serious problem (unless you use a lot of npc_reloads) and will be
+ fixed as the db gets improved.
+ * Moved the Kaupe code to battle_calc_weapon_attack where it will dogde all
+ weapon-based attacks that can be dodged (giving the illusion of infinite
+ flee for skill's duration). [Skotlex]
+ * Moved Sonic Acceleration and Soul Linked SB damage bonus to the second
+ layer of skill modifiers. [Skotlex]
+ * Enchant Deadly Poison and True Sight damage bonuses are now applied after
+ skill modifiers rather than added with them (damage % stack type). [Skotlex]
+ * Modified Ice-Wall to work using cell types defines instead of directly
+ modifying the gat terrain information. Main reason for this is to enable
+ pc_setpos to place players on top of an ice-wall, because otherwise it
+ was forcing players to warp-around even in maps with noteleport set which
+ is prone to exploits. [Skotlex]
+ * Fixed SG_FUSION (SG_FUSION <-> SC_FUSION #_#) [Komurka]
+ * Now sense elemental values are again uncapped (so enemy with -25% resist
+ will show 230% instead of 0%), as requested :P [Skotlex]
+ * Replaced the db subsystem for FlavioJS's implementation and initial work
+ on updating the eA code to use it as intended. [Skotlex]
+ * Fixed Char-TXT server saving last/save maps with spaces on the left. [Skotlex]
+ * Fixed Char-SQL server saving new character's maps with spaces on the left. [Skotlex]
+ * Fixed Charsave method 1 saving memo maps with spaces on the left. [Skotlex]
+ * Changed the order of packets sent for Assumptio (may fix the visual not
+ showing up?) [Skotlex]
+2006/01/08
+ * Fixed the guild SQL cache removing guilds from memory when said guilds
+ had no data to save (but were not yet marked for removal) [Skotlex]
+ * Added a cap to limit Star Gladiator's job level to that of the normal
+ classes (instead of 2nd classes) [Skotlex]
+ * Fixed TXT char server parsing only the first character permanent variable
+ received from the map server and ignoring the rest. [Skotlex]
+ * Fixed @users crashing the server. [Skotlex]
+ * Added Arrow Repel to the list of skills whose range is increased by Vulture Eye. [Skotlex]
+ * Fixed the item pick-up rule for party options being working backwards. [Skotlex]
+ * Fixed progress info in TK_MISSION [Komurka]
+ * Fixed an aproximation error when calculating distances which causes stuff
+ like mobs thinking they are within attack range when they actually aren't
+ [Skotlex]
+ * Char-server will now be notified after a character logs out when using
+ charsave_method:1 [Skotlex]
+ * Added check to update pet's position on pc_movepos (stuff like High Jump)
+ when the master moves too far away or to a position the pet can't reach.
+ [Skotlex]
+ * Fixed char-save method 1 saving map names with padding spaces to the
+ left. [Skotlex]
+ * Now sense elemental values are capped to 0 as lower bound (so for an
+ enemy with -25% resist, it'll show 0% instead of 230%) [Skotlex]
+ * Updated sql-files/ mob_db.sql and item_db.sql to current TXT data.[Skotlex]
+2006/01/07
+ * If player is dead, and is spawned (such as @refresh), death packet is sent. [Valaris]
+ * Cleaned pc_attack_timer so that the attack timer will auto-readjust when
+ it triggers during the can't act tick instead of cancelling the attack
+ sequence. [Skotlex]
+ * Fixed compilation of the TXT-converter. [Skotlex]
+ * walkto x,y request packets are now ignored if you are sitting. [Skotlex]
+ * Fixed a typo that was making the party item-pickup style shared not
+ taking effect for the item_first_get_time regardless of setting. [Skotlex]
+ * Applied Playtester's custom mob spawns to the eamobs/ set. [Skotlex]
+ - These custom mob spawns are an experiment to balance out mob spawns and
+ put some sense into them (no crap like too strong AND too weak mobs on the
+ same floor, increasing mob difficulty the deeper into the dungeon you go,
+ etc), without moving mobs too far from where players are used to see them neither.
+ - To enable them, modify scripts_main to use scripts_eamonsters rather than scripts_monsters.
+ - Currently, the modified dungeons are: Glast Heim, Geffen Tower, Clock
+ Tower, Sphinx, Pyramids, Byalan.
+ * Added check to make sure guildspy and partyspy variables have value. [Valaris]
+ * Separated the permanent variables from the character status structure. [Skotlex]
+ * permanent variables are now loaded on their own packets as needed to
+ reduce the bandwidth wasted between servers. [Skotlex]
+ * Permanent account variables are now saved when the script is finished
+ instead of each time they were modified. [Skotlex]
+ * OnInit scripts and related code now executes after all perm variables are
+ received (so now account variables are accessible during it) [Skotlex]
+ * Fixed typo in pc.c causing crashes in Line 769. [Lance]
+ * Corrected VC7.1 prject files to include mapindex.c and mapindex.h [Lance]
+ * Corrected Wrath of the Star formula (added missing STR in equation) [Komurka]
+ - Added movement speed bonus to SG_FUSION (same as PecoPeco gives)
+ - You can now 'turn off' SG_FUSION
+ * updated NoIcewall maplags, thanks to Sir Loon [Lupus]
+ * soundeffectall modified to rely on dependancies depending on situation. [Lance]
+ * Modified getd to return 'pointer' (will be 'dereferenced' automatically) instead of value,
+ making it very flexible when paired with getelementofarray() [Lance]
+2006/01/06
+ * Corrected main.sql having incorrect syntax [Foruken]
+ * Cleaned up some maps in maps_athena.txt and added a bunch of cloned maps
+ to map_index.txt [Skotlex]
+ * Refine bonus is no longer increased by the number of hits from the skill
+ except for TSS [Skotlex]
+ * Dispelled Berserk won't drop HP back to 100 now. [Skotlex]
+ * Mobs that use NPC_SUICIDE won't give neither exp or loot now. [Skotlex]
+ * Summoned mobs that cannot move will be removed from the map when the
+ master is gone to another map AND the mob's map is a gvg ground. [Skotlex]
+ * Fog of Wall effects now work in both directions (outside -> inside,
+ inside->outside) [Skotlex]
+ * Fixed the sql guild loading always returning a blank guild when the
+ guild_id does not exists! [Skotlex]
+2006/01/05
+ * Some changes to the guild SQL code to report whenever a guild's id is not
+ matching the one it was stored with in the db, which in turn free's the
+ guild and doesn't saves it to perhaps prevent data corruption. [Skotlex]
+ * Corrected the fifo-buffer readjusting code to set a reserve-buffer size
+ of 1/8th of the inter-server link (32K) for said links. [Skotlex]
+ * The mapif_send* and charif_send* functions (char/login servers) will now
+ adjust the buffer size when there isn't enough space to write data to them
+ rather than abort sending the data. [Skotlex]
+ * Increased inter-server socket buffer size to 256*1024. Should fix problems
+ with 0x3004. [Kayla]
+ * Increased inter-server socket buffer size to 192*1024. Should fix problems
+ with 0x2b01. [Kayla]
+2006/01/04
+ * Fixed buildin_monster not working for random classes (dead branch, etc). [Skotlex]
+ * Reverted inter-server socket buffer size to 131072 bytes. [Valaris]
+ * Removed reduction of socket buffer sizes after WFIFOSET if the max size
+ is >= FIFOSIZE_SERVERLINK. This should reduce inter-server buffer overflows. [Valaris]
+ * Script command 'monster' will now fail when trying to spawn a mob-class
+ that is not in the mob_db (warning will be printed on the console) [Skotlex]
+ * Fixed a crash when spawning a mob who's class is not in the mob_db. [Skotlex]
+ * Some cleanups and improvements to the character saving algorithm meant to
+ make it harder to have dupe exploits during char-map connection lag
+ moments. [Skotlex]
+ * Doubled the inter-server link buffer size. [Skotlex]
+ * Fixed status_get_adelay messing up the mob's aspd :X [Skotlex]
+ * Changed skill_delayfix to use the amotion value as default delay for
+ weapon skills with no delay instead of attack delay (adelay is actually
+ twice your aspd, amotion is the same as aspd) [Skotlex]
+ * Added upgrade_svn4783.sql, which corrects the structure of the mapreg
+ table to use varchars as it should. [Skotlex]
+ * Fixed Meteor Assault. [Skotlex]
+ * Fixed (I hope) the double free'd pointer issue in the login servers. [Skotlex]
+2006/01/03
+ * Fixed the warp unloading code. [Skotlex]
+ * Updated Jump Side Kick to also clear Berserk Pitcher. [Skotlex]
+ * Preserve now protects against the stripping effects of Side Kick. Taekwon
+ Classes (TK/SL/SG) are also inmune to it. [Skotlex]
+ * Hopefully fixed the guild information not being sent in some situations
+ when people are added/removed from a guild. [Skotlex]
+ * Some cleaning up and bug fixes to the guild module of the char-sql
+ server. Let's see if it fixes anything up... [Skotlex]
+ * Added battle option show_party_share_picker. When enabled tells the
+ picker of the item who received the item when in a party with 'Party Share'
+ loot style. [Skotlex]
+ * Added the nullpo_retv line required for win32 compiles... [Skotlex]
+ * Added some cleanup code to properly remove all warp related information
+ on npc_unload (untested as of yet!) [Skotlex]
+2006/01/02
+ * Completed (almost) packet 0x1e9 which gives the party info. Now you can
+ see the party's item options when opening the alt+p menu. [Skotlex]
+ * Fixed regen only working when overweight. [Valaris]
+ * Added body size to clones. [Valaris]
+ * Corrected TK_JUMPKICK to remove Soul Linker spirit buffs and related
+ effects (except Berserk-Pitched effect) [Skotlex]
+ * Corrected TK_RUN to give +10 dmg bonus to kick skills when not wearing a
+ weapon. [Skotlex]
+ * Added Kaina's Enjoyable Rest bonus and Max SP bonus. [Skotlex]
+ * Fixed Stone Curse consuming gems while Soul Linked. [Skotlex]
+ * Fixed party-change-map packet incorrectly checking if the even share rule
+ was broken (party share should now correctly break on map-change, or when a
+ player has it's level reset) [Skotlex]
+ * Corrected the Jump Kick base-level damage bonus when combo-used. [Skotlex]
+ * Added the running damage bonus to the TK kicks. [Skotlex]
+ * Made the TK kicks end the Soul Linked status on targets. [Skotlex]
+ * Corrected Spirit of Wizard to nullify any bounced back spells. [Skotlex]
+ * Cleaned up the natural/skill HP/SP regen routines. [Skotlex]
+ * Fixed Turn Kick not knocking back nearby enemies. [Skotlex]
+ * Added the damage bonus to Flying Side Kick when used from a combo.
+ However I am waiting for the actual equation (currently just does +300%
+ dmg) [Skotlex]
+ * Fixed Counter Kick for ranking Taekwons. [Skotlex]
+ * Added walk slowdown and aspd penalty to Eska. [Skotlex]
+ * Fixed status_get_size which seemed severly broken. [Skotlex]
+ * Fixed Kahai to only display actual amount of HP healed. [Skotlex]
+ * Now when a script's map is not found (or not loaded on the map server)
+ the script engine will skip the whole script instead of just the first
+ line. [Skotlex]
+ * Fixed Soul-Linked Dancers not receiving the Bard songs. [Skotlex]
+ * Updated Joshuaali's VC-8 project files. [Skotlex]
+2006/01/01
+ * Some improvements to the login server (txt/sql) to prevent memory 'leaks'
+ from accounts that logged in but where never properly set as logged out.
+ [Skotlex]
+ * Fixed mapindex not working for last map loaded in map_index.txt [Skotlex]
+ * Added support for packet 0x1e9, party_main_info. Packet is still
+ incomplete and the client is ignoring it currently... [Skotlex]
+ * Changing party options now does not alters item party options. [Skotlex]
+ * Corrected Kahai healing even when there's not enough SP to do so. [Skotlex]
+2005/12/31
+ * Fixed the additional effects on normal attacks of Enchant Poison, Enchant
+ Deadly Poison and Kahai not taking effect except when the attacker was a
+ player. [Skotlex]
+ * Resurrection now fails on gvg maps (when reviving) [Skotlex]
+ * Kaite now works on player-casted spells regardless of level... [Skotlex]
+ * Fixed Kahii healing 0 rather than 200*skilllv... [Skotlex]
+ * Mobs will now go after the loot as soon as they spot it rather than on
+ their next random-walk time. [Skotlex]
+ * Set the 56th byte in packets 7b and 1da. It deals with acceleration in directions.
+ It's just like the final byte in packet 0x87. Server-side update of this still needs to be figured out. [Valaris]
+ * Fixed Kaziel not starting Kyrie Elison upon resurrection. [Skotlex]
+ * Fixed Kahai's healing display. [Skotlex]
+ * Fixed Kaite bouncing back always one spell. [Skotlex]
+ * Fixed and tested @waterlevel. It requires the grfs to be present as the
+ map layout height information is stored there but not in the map data kept
+ in memory. [Skotlex]
+2005/12/30
+ * Disabled certain packets from taking effect during trades to prevent
+ possible exploits (such as picking and dropping items, buying selling from
+ npcs, etc) [Skotlex]
+ * Now you can't move items to/from your inventory to the cart/storage
+ during a trade (this is to prevent possible item dup exploits) [Skotlex]
+ * Emergency Recall now only works from within woe grounds... [Skotlex]
+ * Removed returns from non-null lines in MOTD. Replaced returns in null lines with a space. [Valaris]
+ * Fixed a bug where MOTD wasn't displaying blank returned lines. [Valaris]
+ * Updated mapindex so that name lookups ignore extensions, and the loaded
+ maps are always terminated in .gat. Id lookups will always return a string
+ terminated in gat. Purpose? It enables specifying mapnames without the .gat
+ extension, so you can have npcs in prontera, no need for the .gat. And the
+ returned string always has a .gat for needed when it is passed to the
+ client. Now you can safely get rid of the .gat extension in all mapnames. [Skotlex]
+ * Fixed the txt-converters so they compile cleanly again. [Skotlex]
+ * Added mapflag script support for no loot, no exp, no return, no warp to,
+ nightmare drops (see db/const.txt for names) [Skotlex]
+ * Removed an extra } in int_party.c that caused compile errors. [Valaris]
+ * Fixed a crash when warp portals passed from passive to active. [Skotlex]
+ * Added a missing label (M_0) that was causing people to freeze when viewing the city list from "Miss Yoon" [Zephiris]
+2005/12/29
+ * Newly created char-SQL guilds will be saved inmediately rather than at
+ their next turn in the cache (may fix those guild disappearing errors)
+ [Skotlex]
+ * Implemented a map-index which maps map-names to a unique number, this
+ reduces memory required to store maps as well as the size of related
+ packets between the char/map server. Maps and their indexes are stored in
+ db/map_index.txt, and the index of a map should NEVER change (see file for
+ more details). The index is translated to/from map-names for saving, so
+ save-structures are not required to be modified. [Skotlex]
+ - PD: The new mapindex also found a bunch of broken map names in various
+ NPCs, someone will have to go fix them up.
+ * Updated the party member structure to hold the char_id. For end users,
+ the most noticable change is that now you can have more than one
+ character from the same account belong to the same party. [Skotlex]
+ - TXT users will have to wipe the party files, SQL users use the respective
+ upgrade file (upgrade_svn4726.sql) to generate the new party column.
+ * Updated the char-sql server to hold parties in memories until they are no
+ longer needed (like the guild-cache), also optimized the save routine to
+ avoid needless SQL calls. [Skotlex]
+ ** WARNING: Because of the previous optimizations, a lot of code was changed around
+ the map/char servers, the char-sql's party system got pretty much a
+ rewrite, so some problems are to be expected. Some basic testing with
+ parties over here showed no problems, hence the work is getting commited
+ as it is because it isn't getting any better without further testing.
+ * Set value of the last byte in packet 0x87 (walkok) to 0x88 (10001000).
+ This is a default value in Aegis, and has something to do with animation speed in certain directions.
+ This byte is going to need to be fully analyzed since it does change in Aegis, just that I have
+ been unable to figure out what the conditions are. [Valaris]
+ * Mob skills are not even read now if mob skills are disabled in
+ battle_athena. [Skotlex]
+2005/12/28
+ * Fixed xmas and wedding palette ignore options. It will also no longer send the dye packet if @dye is used. [Valaris]
+ * Some code cleanup meant to fix possible memory leaks regarding
+ parse_script() [Skotlex]
+ * Small fix to party-share item pickup which should fix the current item
+ dup exploit. [Skotlex]
+ * Merged Reddozen's implementation of Kahai. [Skotlex]
+ * Implemented Kaite (it simply changes the target of spell to the caster,
+ so the caster's status changes and defense are the ones considered)
+ [Skotlex]
+ * Removed Guilds Glory from guild skill tree, can be enabled with require_glory_guild
+ battle conf switch [Komurka]
+ * Cleaned up the implementation of Poison and Deadly Poison. Corrected a bug
+ on Deadly Poison that was KO'ing human players when it triggers under
+ certain circumstances. [Skotlex]
+ * Added guild_skill_tree.txt [Komurka]
+ - corrected guild skill tree
+ * Battle Orders, Regeneration, Restore and Emergency Recall now share their
+ 5 minute delay. [Skotlex]]
+ * Implemented SC_INTRAVISION [DracoRPG]
+ * Reorganized a bit DEF/MDEF calculation code [DracoRPG]
+ * Added a small licence notice at the top of every Athena source/header file, I've tried
+ to put it only where it should have been but I'm not a pro ^^ [DracoRPG]
+2005/12/27
+ * The 50% Weight Icon will now show up at whatever % was specified in
+ natural_heal_weight_rate [Skotlex]
+ * Fixed char-txt server crashing if trying to read storage lines with more
+ items than the max (excess items will simply not be read and a warning
+ printed) [Skotlex]
+ * Added silent_console config option to the servers to filter out the
+ console output (login_athena, char_athena, map_athena config files). Makes
+ it possible to hide unwanted messages by category, so for example you can
+ remove all info messages, or all warning+notice messages, etc. [Skotlex]
+ * Removed unused battle switches enable_upper_class and unit_movement_type. [Skotlex]
+ * Reenabled battle switches pet_defense_type, mob_defense_type and
+ mob_remove_damaged. [Skotlex]
+ * Applied Irmin's patch to add support for SQL codepages. [Skotlex]
+ * Fixed friend list saving if using a custom char table name (SQL version). [Valaris]
+ * Added check for mute in main chat [Foruken]
+ * Likely fixed lose Hp/Sp script commands when used on accesories. [Skotlex]
+ * Added 2 new script commands: getfatherid, getmotherid [Lupus]
+ * Fixed compatibility problems with stricter compilers. [Lance]
+ * Added joshuali's new VC8 project files and SQL database upgrade script. [Lance]
+ * Fixed juicer script typo, eliminating unlimited juicing capability with zero zeny. [Lance]
+2005/12/26
+ * Added check for free'd guild pointer beforing freeing in guild_save in int_guild.c. [Valaris]
+ * Added @kamic command. Now you can send colored GM-messages.
+ Syntax: @kamic <color> <message>. Color is 3-bytes hexadecimal number RRGGBB. [LuzZza]
+ * Implemented main chat (global chat channel). Usage: @main <on|off>, @main <message>. [LuzZza]
+ * Chasewalk players can now be hit in the same way a Cloaked player could.
+ [Skotlex]
+ * Added option mob_npc_event_type, read battle_athena.conf for details.
+ [Skotlex]
+2005/12/24
+ * Fixed @go, thanks to Persian [Vicious]
+ * Updated @go command for new cities, done by Harbin [Vicious]
+ * Added root user check and warning to non-Windows compiles. [Valaris]
+ * Added a check to remove characters that would normally be left unremoved
+ during shutdown because they just happened to be between maps. [Skotlex]
+ * Fixed the production code always giving 1 item instead of the value they
+ should (50/100/200 for Twilight Pharmacy skills) [Skotlex]
+ * Corrected easy path searching algorithm failing for some cases (which
+ incidentally seemed to be the reason skill_wall_check was broken) [Skotlex]
+ * Fixed compile for TXT map-server. [Valaris]
+ * Fixed stone curse's defense being checked versus int rather than mdef. [Skotlex]
+ * Fixed firewall treating everyone as undead/fire-element. [Skotlex]
+ * Added SQL read of cast_db. [Valaris]
+ * Added SQL read of skill_require_db. [Valaris]
+ * Added SQL read of skill_db. [Valaris]
+ * Added setting use_new_sql_db to inter_athena.conf for development.
+ Do not enable this setting, it will be merged into use_sql_db once all work is finished. [Valaris]
+ * Added some work towards sqlizing the rest of the databases. [Valaris]
+ * Changed @help2 to #help to display char commands. Cut @help in half
+ @help2 has the other half. [Kayla]
+2005/12/23
+ * Missed a change in txt login.c for bind_up. [Valaris]
+ * Cleanup organization of clif.c and script.c.
+ Please don't put extra functions beyond inits, try and organize a little. [Valaris]
+ * Removed login_ip option from login_athena.conf as it is not used. [Valaris]
+ * Fixed bind_ip option in login servers. [Valaris]
+ * Fixed a bunch of terrible typos in chrif.c [Skotlex]
+ * Fixed a terrible typo in the handling of broadcast messages which was
+ causing the map server to send garbage packets to the char server.
+ [Skotlex]
+ * Added resistance (int + luk/3) to Stone Curse's equation [Skotlex]
+ * Updated sql-files/item_db.sql to current txt version. [Skotlex]
+ * Fog of Wall update... Blindess won't affect bosses, blindness ends as
+ soon as you step out (players only) [Skotlex]
+ * Implemented the Strip equipment effects on mobs. [Skotlex]
+ * Now when Berserk ends, the char's HP goes to 100. [Skotlex]
+ * LK's Concentration now gives +50 hit rather than +50% [Skotlex]
+ * Inverted the handling of Individual/Shared item pickup rule for parties.
+ [Skotlex]
+ * Fixed the item ruling for parties not being correctly read from the save
+ files. [Skotlex]
+ * Now Star Gladiator uses 2nd Adv.Class Job EXP table (13th column) [Lupus]
+ - In future there could be added the 14th EXP column, specially for Star Gladiator
+2005/12/22
+ * Begin work on packet optimization .. not done yet [MouseJstr]
+ * Finished work on @help/@help2. @help will no longer show # commands. @help2 shows
+ them instead. [Kayla]
+ * Fixed compile warnings in atcommand.c and map.c. Fixed compile error in script.c. [Valaris]
+ * wedding_modifydisplay's default is now no (that's how it is on official)
+ [Skotlex]
+ * Some cleaning to skill_attack, also added target checking for splash
+ attacks/groundbased skills [Skotlex]
+ * Mobs will now stop walking if their target no longer exists (picked up
+ items, for instance) [Skotlex]
+ * Modified firewall to cause no damage delay when hitting undead
+ characters. It may fix undead mobs warping when walking through the
+ firewall. [Skotlex]
+ * Added script command "clone" for cloning of players. See
+ doc/script_commands.txt for further information. [Skotlex]
+ * Added @waterlevel debug command to read/change the current's map
+ water-level (command untested) [Skotlex]
+ * Enabled names for forged weapon/created Potions by default [Lupus]
+ - Old issues have beed solved long time ago, now items by TOP10 BS/ALCH gain their TOP10 bonuses
+2005/12/21
+ * Now left_cardfix_to_right won't take effect when there's no weapon equipped
+ on the right hand. [Skotlex]
+ * Updated slave AI to support player masters as well (that is, you could
+ have a non aggressive slave, and it will target any mobs the master
+ targets) [Skotlex]
+ * Added battle option skill_wall_check, when enabled, all ground skills
+ will do a check for each cell to guarantee a straight path between the
+ cells and the target tile. Should prevent AOE skills from hitting through
+ walls. Due to the possible performance penalty this setting brings, it
+ defaults to no currently. [Skotlex]
+ * Default skill delay for skills with no delay is now the normal attack
+ delay. [Skotlex]
+ * Extremity Fist/Charge Attack will fail if the player can't move to the
+ target. [Skotlex]
+ * Prepare kick skills now only fail for Soul Linkers. [Skotlex]
+ * Merged in Marquis007's work on SL_SKA/SL_SWOO [Skotlex]
+ * All skills except Shield Boomerang get the weapon's refine bonus now.
+ [Skotlex]
+ * Taekwon Ready Stances will now fail if you are a Second Job of the
+ Taekwon Tree (SL, SG) [Skotlex]
+ * Another fix to item picking for party-share. Hopefully it works alright
+ now (at least I believe it should be dupe-proof now) [Skotlex]
+2005/12/20
+ * Updated water heights for some maps, thanks to [Lupus]
+ - removed p_track02.gat from the maps list. Thanks to Justin84
+ * Fixed produce_db items always failing... [Skotlex]
+ * Hopefully fixed picking up items on a party-share type of party. [Skotlex]
+ * Txt map servers will now send the whole list of online characters at
+ UPDATE_INTERVAL (10 secs) rather than CHECK_INTERVAL (1 hour) so that the
+ online.html file will be correctly updated. [Skotlex]
+ * Fixed char_sql and char crash because of buffer overrun. [Lance]
+ * Added a flag to tag non-weapon based skills so that they don't get the
+ following bonuses: Star crumb damage, Mastery bonuses, Weapon Refine damage
+ upgrades. Currently applies only to shield skills. [Skotlex]
+ * Removed use of castle_id for guilds in char-sql server (use corresponding
+ upgrade_svn* file). TXT servers haven't been touched yet because that
+ would mess up the guild save files. [Skotlex]
+ * Online list of characters will be sync'ed every 10 secs for TXT servers.
+ [Skotlex]
+ * Merged in Reddozen's work to get Twilight Pharmacy working. [Skotlex]
+ - Create Deadly Poison Bottle and Holy Water are now both handled by the
+ item producing code.
+2005/12/19
+ * Fixed char servers not parsing correctly the online count packet (/who
+ should work fine now) [Skotlex]
+ * Fixed the Dodge walking speed bonus to Assassin. [Skotlex]
+ * Added the new Garden City Hugel and Kiehl maps. [Valaris]
+ * Corrected Kaupe/Kaizel so that you can cast it on self/family when
+ not-linked, and anyone when linked. [Skotlex]
+ * Fixed the mob damage log not getting the ID of the attacker registered...
+ [Skotlex]
+ * Added a new timer which updates only the count of characters on the
+ current map server to the char server. Update interval is 10 secs.
+ [Skotlex]
+ * Updated status_clear_debuffs to clear many other types of ailments
+ (Gospel should be clearing up most negative status changes now) [Skotlex]
+ * Fixed exp calc type 0 (dmg/total dmg) being calculated as 0 always. [Skotlex]
+ * Implemented the item pickup style for parties. [Skotlex]
+ - Party share distributes items in round-robin fashion among players who
+ are in the same map.
+ - Pick-up Style shared is needed for anyone to be able to pick up the item
+ bypassing the timers set for first/second/third sd. [Skotlex]
+ * Optimized map server's online-listing update timers. [Skotlex]
+ * Some updates to the online db in the char/char_sql servers, should help
+ fix some memory leaks due to chars left tagged as 'online' even though
+ that's incorrect. [Skotlex]
+ * Added buildin_warpchar script function. Useful for warp one player from
+ another player npc-session. Sytax: warpchar "map.gat",x,y,Char_ID; [LuzZza]
+ * Now opening storage will fial if the guild storage is open and viceversa.
+ [Skotlex]
+ * Total damage a mob receives is now stored on it's own variable. Damage
+ log implementation clean-up. [Skotlex]
+2005/12/18
+ * Fixed Close Confine not affecting the caster. [Skotlex]
+ * Fixed all skills except Extremity Fist not getting the weapon size
+ modifiers [Skotlex]
+ * Fixed Warp Portal checking for noteleport instead of nowarp mapflag
+ (again?) [Skotlex]
+ * Fixed baseJob working as baseClass (I hope it works fine now) [Skotlex]
+ * Fixed Doridori bonus for Super Novices [Skotlex]
+ * Updated new MOTD code so that it can compile on VC. [Valaris]
+ * Fixed clone's dyes changing when they attack. [Valaris]
+ * Declared pc_read_motd(void) in pc.h for the motd reload command. [Valaris]
+ * Added @reloadmotd for reloading the motd.txt into memory. [Valaris]
+ * motd.txt will now load into memory at startup instead of being read everytime a player logs in. [Valaris]
+ - motd.txt can now have lines commented with "//" .
+ - MOTD_LINE_SIZE is defined in pc.c, change this to increase maximum amount of lines allowed in motd.txt.
+ - Default motd line maximum is 128.
+ * Added a new script function 'setitemscript ItemID,"{ end; }"' [Lupus]
+ - Very useful for events that give TEMP item bonuses for short time period 8) A Custom New Year Event NPC's coming soon.
+2005/12/17
+ * Updated the svn eol-style properties to make merging between
+ linux and windows easier when we use more complex branching
+ system [4544: MouseJstr]
+2005/12/16
+ * left_cardfix_to_right now also moves the ignore race/element defense
+ bonuses (Ice Pick, Weed Killer, etc) [Skotlex]
+ * Some fixes to the job_name functions (rearranging inside msg_athena.txt
+ as well) [Skotlex]
+ * Left card to right fix will now also apply to defense piercing effects
+ (Ice Pick) [Skotlex]
+ * Fixed char-converter being broken for a type mismatch [Foruken]
+2005/12/15
+ * Fixed clone skills again. This time ground-based skills are working, and
+ support skills have a re-cast delay of half the skill's actual effect. [Skotlex]
+ * Fixed clone commands sometimes spawning the clone on a non-walkable tile
+ (which in turn sends the clone to a random map location) [Skotlex]
+ * Added debug information to the guild cache. Total number of guilds in the
+ db will be printed now (as long as the save log is active) [Skotlex]
+ * Updated SG_HATE to pick the specific class (Select a Monk, and the bonus
+ is against monks only, not Champions/Acolytes/Baby Monks) [Skotlex]
+ * Removed hardcoded table names in login_sql/login.c [Foruken]
+ * Some cleaning regarding the job tree skill-raising restrictions code.
+ [Skotlex]
+ * Optimized/cleaned up the job_name function, job names are now acquired
+ from msg_athena.txt. [Skotlex]
+ * Fixed race defense bonus against Boss/Nonboss checking versus the target
+ instead of the attacker (should fix Alice Card) [Skotlex]
+ * Some cleaning in clif.c [Skotlex]
+2005/12/14
+ * Fixed 'dead_branch_active' option. [Skotlex]
+ * Optimized use of weather effects, or should I say, no use.
+ Also re-added clif_clearweather to some of the weather effects, when they are turned off.
+ Why those were removed are beyond me.. [Valaris]
+ * Temporarily changed the walk speed during Charge Attack and Extremity
+ Fist to simulate a faster 'zoom' to the target (somewhat untested yet)
+ [Skotlex]
+ * Corrected SL_HIGH so that the total of each stat is always 50...
+ [Skotlex]
+ * Optimized graffiti display packets (what was I thinking?) [Valaris]
+ * Corrected a statement in guild.c (== to =) in nulling out the guild cache. [Valaris]
+ * Implemented a mini cache for guilds/parties in the map server. Looking up
+ the same guild/party twice or more should result in instant seek times
+ until a different one is looked up. [Skotlex]
+ * Fixed saving account variables [Komurka]
+ * Fixed SL_KAIZEL not starting the proper effect. [Skotlex]
+ * Merged Reddozen's work of SL_KAUPE [Skotlex]
+ * Updated checkweight() script command to return false when the player has
+ inventory full. [Skotlex]
+ * Soullink check for SG_FUSION [Komurka]
+2005/12/13
+ * Fixed @slaveclone not attacking enemies. [Skotlex]
+ * Some more cleaning to the clone skills, proper support for Heal,
+ Resurrection, Double Attack, Triple Blows. [Skotlex]
+ * Updates/fixes/corrections to battle check target so that mobs with
+ special AI can fight mobs without it even if the mob doesn't has a human
+ master. Also updated it so that mobs with no special AI are all friends by
+ default. [Skotlex]
+ * Clone skill fixes, support/self skills are now triggering (never
+ triggered before), adjusted some of the skill usage rates. [Skotlex]
+ * Dyes will now work correctly on cloned or mob_avail class monsters.
+ save_clothcolor must be enable in battle_athena.conf. [Valaris]
+ * Added carts, falcons and pecos to clone and mob_avail class monster spawns. [Valaris]
+ * Likely fixed the @spawn names issue. [Skotlex]
+ * Fixed @*clone commands not resolving properly the target char. [Skotlex]
+ * Implemented the SL_ROGUE bonus to potions. They heal +100% more rather
+ than 50% (potions from ranking Alchemists, that is) [Skotlex]
+ * Merged in Reddozen's work with SL_KAIZEL [Skotlex]
+ * Added the check to prevent KA skills from being usable until you are Soul
+ Linked. [Skotlex]
+ * Enabled clif_parse_Taekwon (Why was taekwon parsed as clif_parse_Alchemist?) [Vicious]
+ * Moved the base attack code into it's own function to properly implement
+ the magnum break's elemental damage bonus (watch out for bugs as the code
+ was proof-read, but that usually doesn't says quite enough when it comes to
+ code). [Skotlex]
+ * Merged in Reddozen's work for SL_WIZARD [Skotlex]
+ * Updated clone command to allow attaching the clone to the invoking player
+ as a slave. @clone creates a friendly clone that attacks mobs. @slaveclone
+ makes a clone that follows the creator (it's a slave), @evilclone is the
+ stock clone as a mob). Also fixed min/max damage of clones. [Skotlex]
+ * Added one extra tile of range to melee mobs in mob_attack, should fix
+ mobs not attacking when they are range+1 tile from you, yet they refuse to
+ move in that final tile. [Skotlex]
+ * Corrected mob ai not moving closer to player if there's a distance of 2
+ or less between them (which would do no good if the mob's range is just 1) [Skotlex]
+ * Fixed SG_FRIEND - should work now [Komurka]
+ * Realtered global_reg value size to 256. [Lance]
+ * Adjusted pointers location for packets for new global_reg value (it's wrong + I adjusted the size) to 256 + 32 = 288 [Lance]
+ * Improved variable scope for scripts to accept all string variables. [Lance]
+ * Altered map, char and login server to correctly use global_reg [Lance]
+ * do_sendrecv merges from Freya [Lance]
+ = Requires recheck on packets again to see if I missed any pointer alterations =
+ * Improved @evilclone to accept character IDs [Lance]
+ * Corrected partywarp/guildwarp to correctly take into account nowarp/nowarpto mapflags. [Skotlex]
+ * Added a few custom scripts due to high demand. [Lance]
+ * Added monster museum. Adapted from Prometheus. [Lance]
+ * Corrected OnTouch to use exname instead of name to prevent conflicts. [Lance]
+2005/12/12
+ * added manner_system battle conf variable (now you can have PK server without manner system - which is unfinished ;/) [Komurka]
+ - some corrections in SI_ data (night uses soullink effect)
+ - changed global_reg value from int to char
+ added two new functions (pc_readglobalreg_str and pc_setglobalreg_str)
+ SG_FEEL now saves maps to global_reg
+ I've 'marked' all changes that SHOULD be checked with '//komurka'
+ - SG_FUSION hp penalty changed from 2% to 0.5%
+ - SG_SUN_COMFORT now increase VIT DEF
+ - implemented SG_FRIEND skill - this is the last SG skill - now it's a good time for bug reports :]
+ * Updated the max number of ingredients of produce_db to 12. [Skotelx]
+ * Updated clone code to also copy the skills from the source player. [Skotlex]
+ * Added Reddozen's implementation of SL_SKE and SL_MONK (sp recovery, Combo
+ Finisher splash damage, SP regen while in Fury) [Skotlex]
+ * Some reorganization of the Star Gladiator map-based skills. [Skotlex]
+ * Fixed @spawn/@monster atcommands 'freezing' server when used. [Skotlex]
+ * Fixed ground-based skills having their range-check messed up... [Skotlex]
+ * Corrected melee-ranged mobs failing the range check even if they were
+ standing next to you. [Skotlex]
+ * Added all duel-commands messages into msg_athena.conf. Commented out
+ code of drawing PVP-circle in duel because it not hiding when player use hide. [LuzZza]
+ * Removed @monster2, merged the code of atcommand_spawn/atcommand_monster
+ as suggested by Flaviojs. [Skotlex]
+ * Removed some unused entries in msg_athena.txt [Skotlex]
+ * When there are unused stack sections (invoked functions and ignored
+ return values) the unused stack section is free'd. This is still notified
+ when the etc_log is active. [Skotlex]
+ * Removed the TURBO code from socket.c as requested by MouseJstr. [Skotlex]
+ - It was actually slower than the normal code.
+ * Updated warp portal and script commands partywarp/guildwarp to take into
+ consideration mapflag nowarp as restriction rather than noteleport.
+ [Skotlex]
+ * Applied dontBR's update to his configure script [Kayla]
+ * Changed the bonus on Sonic blow.(It was giving 1500% instead of 1600%) [Vicious]
+ * Updated gettimetick() to use flag 2 and return System's tick, thanks to
+ Kyoki [Skotlex]
+ * Removed the mismatch stack error message caused by scripts where the
+ returning value of a function was ignored. [Skotlex]
+ * Corrected the Spirit of Assassin damage bonus of Sonic Blows. [Skotlex]
+ * Corrected BSS check versus undead, checking for partners on the Priest's
+ exact left and right, and sending partner's SP to negative. [Skotlex]
+ * Another Paladin's Gospel effect ends when you cast it (should fix Gospel
+ in Gospel bugs). Also, now Gospel only blocks usage of items of type 0
+ (healing). [Skotlex]
+ * Corrected berserk Pitcher displaying 0 heal. [Skotlex]
+ * Added Close Confine's flee bonus. [Skotlex]
+ * Corrected Slow Poison. Can be used when not poisoned, will not "pause"
+ poison's timer. [Skotlex]
+ * Implemented SG_FUSION skill [Komurka]
+ Don't ask me why in newer exe U see flying ... Santa ... -.-
+ * Updated the distance() function definition with one which uses a much
+ better approximation [Skotlex]
+ * Updated sql-files/ mob_db.sql & item_db.sql to latest. [Skotlex]
+ * Added @autotrade/@at and @away/@aw messages into msg_athena.conf (you can customize them) [Lupus]
+ * Updated default hardcoded GMlevel values of some @ATCommands according atcommand_athena.conf [Lupus]
+ and removed doubles of some commands, thanks to Rideword
+2005/12/11
+ * Corrected guild deletion in SQL (both from /breakguild and guild master character deletion). [Valaris]
+ * Added @evilclone commands. Syntax is @evilclone <playername>, [Valaris]
+ It will spawn an aggresive clone of the given player.
+ By default it will use mob id ranges 9001-10000, this range is #defined in mob.h.
+ * Fixed VS compile error in mob_clone_spawn. [Valaris]
+2005/12/10
+ * Added core player cloning code. Just need to create some commands. [Valaris]
+ * Redid the @help2 (char commands). [Kayla]
+ * Added jobname retrieving script function getJobName. [Lance]
+2005/12/09
+ * Changed default GM level for @setbattleflag to 99. [Valaris]
+ * Implemented the SL_SUPERNOVICE bonus to wear all heagears/various weapons
+ at high base levels. [Skotlex]
+ * Implemented SL_ROGUE bonuses: can't be dispelled, Chase Walk's str bonus
+ lasts 10x longer. [Skotlex]
+ * OneHand Quicken now dispels aspd potion effects. [Skotlex]
+ * Updated SL_STIN/SL_STUN to do miserable damage if the target's size is
+ 'incorrect'. [Skotlex]
+ * Updated @disguise so the max npc id you can use is 1000 (1001 is already
+ the first mob, Scorpion) [Skotlex]
+ * Fixed a possible infinite loop in pc_calc_skilltree when receiving
+ additional skills when Soul Linked. [Skotlex]
+ * Added the Taekwon bonus that gives you triple Max HP/SP when you are a
+ top 10 ranker and have base level 90+ [Skotlex]
+ * Added support for skill_db pl == -2. These skills don't take the element
+ of the weapon, but will take the element of any enchantment elemental
+ change (so the element used is neutral unless you are enchanted with
+ Fire/Wind/etc) [Skotlex]
+ * Coded in SL_STIN, SL_STUN and SL_SMA. [Skotlex]
+ * Should have fixed the crash with raw_time in char/char.c [Skotlex]
+ * Pressure can now be cast-break. [Skotlex]
+ * Likely fixed the client crash when hating a class rather than mob. [Skotlex]
+ * Removed @help2, note to self: do not commit at 4 am. Will redo later. [Kayla]
+ * Added @help2. @help did not fit in the screen. @help2 currently contains
+ just the char (#) commands. [Kayla]
+ * MAPREGSQL disabled (experimental) in VC7. To enable, define MAPREGSQL in preprocessor. [Lance]
+
+2005/12/08
+ * Changed default value of start_zeny to 0 to prevent packet exploits.
+ Also is 0z on offical servers. [Kayla]
+ * Fixed bug with objects (npcs, monsters, players, etc) not appearing when using @refresh. [Valaris]
+ * Updated effects for food production thx to Poki#3 [Komurka]
+ * SG_STAR_BLESS now gives 20%*skill lvl additional exp [Komurka]
+ * Modified clif_blown to use the clif_slide packet instead of clif_fixpos,
+ as Komurka tested it and it appears to be handled better by current
+ clients. [Skotlex]
+ * Added two new battle_athena.conf options:
+ duel_allow_teleport (def: no) and duel_autoleave_when_die (def: yes) [LuzZza]
+ * Small fix in allskill [Komurka]
+ * Updated Gloria Domini to bypass battle_calc_damage (misc damage
+ reductions) [Skotlex]
+ * Fixed a typo in pid.c, thanks to akusarujin [celest]
+ * Exploit fix in SG_FEEL [Komurka]
+ * Updated TK_MISSION to pick a random mob in the same way a dead branch
+ does. [Skotlex]
+ * Corrected SG_DEVIL giving the ASPD bonus below level 50. Only works at
+ max level... [Skotlex]
+ * Some cleaning to pc_calc_skilltree. Also updated it so that if you don't
+ use player_skillfree, you can't have ANY skill if you don't have NV_BASIC at
+ 9 (only exception are quest skills). [Skotlex]
+ * Implemented HT_POWER/Beast Strafing. [Skotlex]
+ - The damage equation is unknown.. for now it's the same as Double Strafe
+ except the skill modifier is +10%*str
+ - Currently the Combo is triggered 100% of Double Strafes done on beast
+ monsters.
+ * Added Reddozen's work for Hunter's Beast bane spirit bonus. [Skotlex]
+ * Corrected the drop delay for mobs when killed by magic to be 500ms (will
+ only work if killed by a player) [Skotlex]
+ * Updated SG skills (kRO Patch - 11/29/05) [Komurka]
+ * Enabled a few maps needed for the new novice training grounds, sorry I forgot to [MasterOfMuppets]
+ * Removed duplicate maps in maps_athena.conf. Thanks for the report Dr. Evil [Kayla]
+2005/12/07
+ * Pressure will always pull-off now after it has began casting. [Skotlex]
+ * Implemented Close Confine. [Skotlex]
+ * Change all 0x20e packets (18->26; 22->30) [Komurka]
+ Also added job_name(mob_id) in clif_hate_mob
+ (but it crashes client when U try to use SG_HATE skill on player ><)
+ * Fixed compile error in status.c. Check your work skot <3 [Kayla & MoM]
+ * Updated socket.c by adding a lots error reporting for functions that
+ previously were assumed to not fail. May help figure out what's going on
+ with the win32 builds... [Skotlex]
+ * Reviewed and cleaned up a bit the latest SG additions from Komurka. [Skotlex]
+ - My skill desc says that SG_DEVIL does not makes you blind until you reach
+ max job level, so I implemented that. Report if this is incorrect.
+ - SG_*_WARM skills should be working from what I read there.
+ * Modified a bit the TK_MISSION packet, GUESSING where the progress of the
+ current mission should go within said packet... [Skotlex]
+ * Implemented TK_MISSION. [Skotlex]
+ * Added more SG skills (Comfort, Warmth, Demon, Knowledge) [Komurka]
+ All of them should be checked by someone ^^;;
+ - SG_xx_WARM for now only shows cool red effect :> There is more code but for now it doesn't work
+ * Added new Geffen Field maps [Harbin]
+ * Disabled Atcommand Nuke (It was commented, not disabled) [Harbin]
+ * Added skip_teleport_lv1_menu option to Battle_Athena. Allows players to cast Teleport level 1 without menu. [Harbin]
+ * Merged in Reddozen's current Soul Linker work. [Skotlex]
+ - Berserk Pitcher should be working now.
+ - Bard/Dancer walk bonus when dancing/singing while soul-linked.
+ - Partial work on Twilight Pharmacy.
+ - proper skill effect
+ * Fixed One Hand quicken doing nothing. [Skotlex]
+ * skill_get_name now returns "UNKNOWN_SKILL" instead of null (should fix
+ some crashes when using it on skills with no defined name) [Skotlex]
+ * When weapon_delay_attack is enabled, items should drop inmediately after
+ mobs are killed rather than 500ms afterwards. [Skotlex]
+ * Added Exception Handling plugin to be used for native Win32 builds [celest]
+ - crashes will be logged in <server type>.stackdump along with file name and line numbers
+ - To activate, enable 'exchndl' in plugin_athena.conf
+
+ Public Service Message - Crash reports can be VERY VERY helpful, so please enable the
+ plugins if you can ('exchndl' for Win32, 'sig' for cygwin and linux) and send in any
+ reports you might get! We all want eA to be stable, ne? ^^
+
+ * Some compile error fixes for MinGW, FreeBSD and plugins [celest]
+ * Updated Makefile to set platform defines for FreeBSD [celest]
+ * Updated Makefile to auto-detect MinGW and include src/mysql [celest]
+ * Debug logging flag for logging output messages (only works well with native Win32) :D (Not enabled by default) [Lance]
+ * joshuali's new vcproj with debug mode correctly set up. [Lance]
+ * Fixed compile errors for Valaris's commit on date.h [Lance]
+ * Added updated vcproj for native VC8 win32 for date.h/c support. [Lance]
+ * Removed extra returns in date.h. [Lance]
+ * Probably fixed warnings in unzip.c [Lance]
+2005/12/06
+ * Updated item 12132 for the Xmas suit effect in item_db.sql. [Valaris]
+ * Implemented Xmas Suit: [Valaris]
+ -Added status change state SC_XMAS, and added it to const.txt.
+ -Cannot attack or use skills while in the Xmas state.
+ -Will save if you logout.
+ -"sc_start SC_XMAS,600000,0" added to item 12132 (using item will give you xmas suit for 10 minutes).
+ -Added xmas_ignorepalette option to battle_athena.conf.
+ * Fixed script error in Garm's Claw item causing an error. [Valaris]
+ * Added a missing ; to Skotlex's Previous SG skill editions that caused compile errors. [Valaris]
+ * Added JOB_GUNSLINGER(24), JOB_NINJA(25), and JOB_XMAS(26) to map.h enum list and const.txt. [Valaris]
+ * Added SC_SCRESIST to const.txt. [Valaris]
+ * Applied Komurka's Star Gladiator patch. [Skotlex]
+ - The following skills are now working: SG_FEEL, SG_HATE, SG_SUN_ANGER,
+ SG_MOON_ANGER, SG_STAR_ANGER, SG_SUN_BLESS, SG_MOON_BLESS, SG_STAR_BLESS
+ - The designated maps cannot be stored currently (cannot save character
+ string variables) and is pending on a script update to enable saving of
+ said type of variables.
+ * Added @away command. [LuzZza]
+ * Mostly fixed intravision making everyone see hidden/cloacked characters.
+ (the actual option value to see just the player's shadow is currently
+ unknown) [Skotlex]
+ * Updated Gospel [Skotlex]
+ - It should clear all buffs/debuffs now.
+ - Party-mates within range cannot use items.
+ * Implemented the SL_BARDDANCER bonus that enables the caster to be buffed
+ by their own song/dance/encore. [Skotlex]
+ * Completed Sight Thrasher (the option value is still missing, though.
+ Temporarily uses the one of Sight) [Skotlex]
+ * Corrected possible exp exploits in jA's exp calc method. [Skotlex]
+ * Corrected Spirit Skills showing up in all class trees. [Skotlex]
+ * Invoking @reloadscript now also invokes the OnInit event after loading. [Skotlex]
+ * Expanded Item Groups list from 20 to 32 item groups [Lupus]
+ * Fixed healing experience bug. Now only healing another players gives experience. [Harbin]
+2005/12/05
+ * Hopefully fixed gm_all_skill.... [Skotlex]
+ * Modified a bit the player attack code to give an extra range cell when
+ the target is moving. [Skotlex]
+ * Added skip_teleport_lv1_menu battle_athena option. It give a possibility to
+ disable (skip) Teleport Lv1 menu, that have only two lines `Random` and `Cancel`.
+ Of course, by default this option have `no` (don't skip) value. [LuzZza]
+ * Added FD_SETSIZE 4096 predefination to VC++ Project Files. Should fix 60 player limit bug with native compilations. [Harbin]
+ * Fixed char crash (I hope) when checking for two parents + baby in a party
+ with more than 3 characters, but from which only 3 were online at a time. [Skotlex]
+ * Merged in Reddozen's work on SL_BARDDANCER and cleaned up a bit the
+ Spirit Skills code when calculating the skill tree. [Skotlex]
+ * Updated mob ai so that support/aggressive mobs can't 'see' a player until
+ there's a direct line of sight between them. [Skotlex]
+ * Updated monster_ai&1 so that when not set mob-chase type is Aegis-like
+ (mobs will not change walk target tiles mid-walk) [Skotlex]
+ * Added battle_athena.conf option mobs_level_up_exp_rate to set the extra
+ exp rate a leveled up monsters gives. [Valaris]
+ * Added a custom X-Mas quest *Sign Your Items* [Lupus]
+ * Applied Harbin's patch to fix Arrow Shower + Traps. Someone test it out.
+ [Skotlex]
+ * Another fix to socket.c to enable TURBO mode to work on win32. [Skotlex]
+ * Fixed the combo status not ending after using TK_TURNKICK [Skotlex]
+ * Overflowed pointer fix in socket.c [Skotlex]
+ * Added 'Einbech' into @go command (u have to type at least 5 letters) [Lupus]
+ * More detailed error messages for missing '"'s in scripts. [Lance]
+2005/12/04
+ * Removed mail server switch from battle_athena.conf and added
+ full mail server configuration to inter_athena.conf. [Valaris]
+ * Fixed too big VVS damage of TOP10 BS weapons [Lupus]
+2005/12/03
+ * Fixed up TK Sprint (TK_RUN) skill: [Valaris]
+ -Disabled movement during skill use.
+ -Correct moves player server-side.
+ -Stops without sp use if skill is used during running.
+ -Server will not save status if player logs out.
+ * Some cleaning of socket.c to see if TURBO will now work on Windows, it
+ may also fix the select() problems on that platform as well. [Skotlex]
+ * Fixex "gm_skill_all" crashing the server from generating huge packets (or
+ so I hope) [Skotlex]
+2005/12/02
+ * Gave the Spirit Status Change a custom effect for now. [Skotlex]
+ * Merged in Reddozen's work for SL_HIGH (Spirit of Rebirth) [Skotlex]
+ * The Bonus skills acquired from being Soul Linked should now show up in
+ the skill tree. [Skotlex]
+ * Merged Reddozen's work of One-Hand Quicken and Adrenaline Rush 2. [Skotlex]
+ * Fixed Axe-Kick never triggering. [Skotlex]
+ * Slaves walk once again. [Skotlex]
+ * enable_items now also enables equipment stuff. [Skotlex]
+ * The attack motion in packets for ground-based skills is now 0 (it may
+ help somewhat with current firewall issues). [Skotlex]
+ * Added char-server option "save_log", when disabled, the char server will
+ stop printing info messages whenever something is loaded/saved. [Skotlex]
+ * Disabled random-walking for slaves [Skotlex]
+ * Added script commands enable_items/disable_items [Skotlex]
+ * Likely fixed the mob-skill target type "master" [Skotlex]
+ * Added target type "master" to the mobskill_db [Skotlex]
+ * Modified NPC_RUN to allow the caster to run away from the target [Skotlex]
+ * Implemented SL_SAGE (Soul Linker Sage buff for auto-cast bolts) [Skotlex]
+ * Updated char-sql guild saving so that instead of saving ALL guilds when
+ the time comes, the save interval is splitted on time-slots (based on guild
+ count in memory) and a guild is saved per time-slot (just like the map
+ server saves characters). [Skotlex]
+ * Fixed client crashes with using baby and advanced player classes as pets. [Valaris]
+ * Added missing ban_hack_trade option to battle_athena.conf. [Valaris]
+ * Hopefully fixed Counter Kick. [Skotlex]
+ * Uncommented and corrected the Soul Linker Monk buff (SP cost reduction
+ for monk combos) [Skotlex]
+ * Added a check in skills so that skills that are used on yourself, but had
+ it's target auto-selected cannot be used on non-enemies if it's nk is
+ different from 1 (1 = No damage skill) [Skotlex]
+ * Various cleanups to the char-sql server to prevent corner-case crashes
+ from queries that return no rows. [Skotlex]
+ * Massive Taekwon Boy skills related code cleanup. [Skotlex]
+ - Flying Side kick and Turn Kick should be fully working now, too.
+ * Cleaned up and reorganized the SC_ data listing. Added sc's for food
+ related bonuses: SC_HITFood, SC_FLEEFood, SC_BAtkFood, SC_WAtkFood,
+ SC_MAtkFood. [Skotlex]
+ - Some of the saved sc data will be wrong, so wipe the table/file if you
+ want to play it safe.
+ * Some corrects in duel code. [LuzZza]
+ * Sonic Blow and Shield Boomerang's after cast delay is now properly
+ adjusted by the Soul Link skills. [Skotlex]
+ * Party even share will be now broken after a base level reset. [Skotlex]
+ * Merged in Reddozen's Soul Linker current skills work. [Skotlex]
+ * Added countitem2(itemID,....) script function. [Lupus]
+ * Added axtoi script function that converts hex strings to integers. [Lance]
+ * Fixed incorrect time (that leads to crashes) in login server. [Lance]
+2005/12/01
+ * Moved KN_CHARGEATK code to merge it with Extremity Fist. Skill damage
+ modifier is currently set to +15% per cell (need actual value here) [Skotlex]
+ * Fixed client crash when logging in with Baby Knights and Crusaders riding Pecos. [Valaris]
+ * Implemented Ki Explosion. [Skotlex]
+ * Fixed client crashes with using baby and advanced player classes as monsters. [Valaris]
+ Make sure to use Item ID for weapons and shields in mob_avail.txt for player monsters and not View ID.
+ Updated Valaris and MC Cameri mobs in item_avail.txt to use Item IDs.
+ * Fixed cutting Castle Name (was 14 instead of 24) [Lupus]
+ * Corrected Grimtooth counting a short-range skill when it's actually
+ ranged. [Skotlex]
+ * Corrected Venom Splasher's splash range, and the splash damage is now
+ divided by number of targets (sort of, skill % dmg is adjusted according
+ number of targets) [Skotlex]
+ * Tarot Card of Fate won't break equipment now if equip_skill_break_rate is
+ 0. [Skotlex]
+ * Improvements and optimizations to the online db management in the char
+ txt/sql servers. [Skotlex]
+ * Updated the guild cache (char sql) to have it load/unload characters
+ whenever they are updated in the char online_db (previously they were only
+ updated on normal char-select/char-quit when there were more cases where a
+ char is set online/offline) [Skotlex]
+ * Now when the guild is not found in the cache it will be loaded from the
+ sql db first before failing. [Skotlex]
+ * Fixed equip_skill_break_rate equation being messed up for Acid Demonstration. [Skotlex]
+ * Fixed Aura Blade adding damage to Spiral Pierce (it shouldn't) [Skotlex]
+ * Script function getnameditem now sets flag 254 (created) instead of 255 (forged) [Lupus]
+ To prevent ADDITIONAL Blacksmith FAME TOP10 bonuses, applied to signed but not forged weapons
+ e.g. You have a custom quest for rare weapons. You tag items with players name (using getnameditem command).
+ if a TOP10 BS get an Infiltrator.. then it used to give extra atk bonus 8)
+2005/11/30
+ * Updated item_db.sql to latest. [Skotlex]
+ * Updated mob_db.sql to latest. [Skotlex]
+ * Updated Gospel to force the removal of the ground-effect when the status
+ change ends. [Skotlex]
+ * Made Snatch/Intimidate work on Guild maps (I have read around this is how
+ it is) [Skotlex]
+ * Added the auction maps to maps_athena.conf [MasterOfMuppets]
+ * When players are hit while moving, they should now move one last cell
+ in the same direction they were walking when interrupted. [Skotlex]
+ * Walk delay won't be applied now unless the attack deals damage... [Skotlex]
+ * Major reorganization of player variables and bonuses. If something broke,
+ report it up. Otherwise, struct map_session_data should look quite a bit
+ more clean now. [Skotlex]
+ * Fixed duel bug when you can't cast some skills on yourself. [LuzZza]
+ * Fixed (I think) pets losing the "rename flag" when you sent them back to
+ egg. [Skotlex]
+ * Added a index check in the equip packet, should fix crashes from invalid
+ packets. [Skotlex]
+ * Fixed a horrible bug that was making the walk delay not work for sure x.x
+ [Skotlex]
+2005/11/29
+ * Fixed race exp bonuses. [Skotlex]
+ * Fixed ## account variable saving disconnecting the char-login servers. [Skotlex]
+ * Updated the way multi-hit skills add overrefine/star crumb/spirit sphere
+ damage so that the total bonus is multiplied by the total number of this.
+ [Skotlex]
+ * Fixed the config variables being "lost" on startup. [Skotlex]
+ * Fixed Restore requiring Regeneration lv2 [Skotlex]
+ * Fixed the spirit sphere bonus not applying to Throw Spirit Sphere. [Skotlex]
+ * Rewrote and cleaned up duel code. Formed independent duel_xxx functions.
+ I suggest to place this functions in duel.c/duel.h. New features: [LuzZza]
+ - Now when you in duel, you can't attack anything out of your duel
+ (mobs, other players etc...);
+ - Now you can't take part in duel more often than it set in battle_athena.
+ Default delay is 60 minutes.
+ - New battle_athena.conf options: duel_allow_pvp - allow/disallow duel
+ on pvp-maps; duel_allow_gvg - allow/disallow duel on gvg-maps;
+ duel_time_interval - delay between using duel in minutes.
+ * Updated damage formula for Spiral Pierce. [Skotlex]
+ * Fixed speed change being lost when speed is increased/decreased while
+ walking with Free-cast. [Skotlex]
+ * Fixed pets being renameable after turning them back into eggs. [Skotlex]
+ * Reverted the guild data position in the mob/npc packets, should restore
+ the emblems in flags. [Skotlex]
+ * Corrected battle_check_target Guild checks returning true for non-guild,
+ party'ed characters and viceversa. [Skotlex]
+2005/11/28
+ * Added dontBR's experimental configure script. It's still in alpha stage,
+ so use with caution! [Skotlex]
+ * Fixed a pair of exp exploits possible with to Rich Man Kim and
+ race-add-exp card bonuses. [Skotlex]
+ * Updated behaviour of skillrange_from_weapon. If set, those skills with
+ negative range use the weapon's range. If not set, then the skill range
+ used is the absolute value of the range specified in the skill_db. [Skotlex]
+ * Small cleanup of the color broadcast packet using data provided by Master
+ of Muppets. It should hopefully fix the font-size on said colored messages.
+ [Skotlex]
+ * Fixed the setting of the guild id and guild emblem in packets 0x7b and
+ 0x78 for mobs/npcs (this is assuming the position is correct when filling
+ these same packets for players) [Skotlex]
+ * Added battle_config option skillrange_from_weapon which, when set, allows
+ weapon based, target-selected, offensive skills to take the equipped
+ weapon's range instead of the range defined in the skill_db. [Skotlex]
+ * WARNING/ACHTUNG! Update all your NPCs ASAP. Massive NPC fix's out. [Lupus]
+ * Updated monster_ai&8 so that mobs scatter as soon as they lose their
+ target. Use this setting for an effective counter measure to Grimtooth
+ mass-mob training. [Skotlex]
+ * Added pc_damage_walk_delay_rate to separate the walk delay adjustment of
+ players from that of mobs. The adjustment for players is 20% while for mobs
+ is 100%, pending further adjustments. [Skotlex]
+ * Added the weapon upgrade damage bonus of Spiral Pierce [Skotlex]
+ * Removed the mob_stop_walking code from mob_damage as it should be invoked
+ on battle_walkdelay (the mob walk delay issue will likely need it's own
+ config option) [Skotlex]
+ * Added joshuali's new Visual Studio files. [Lance]
+ * Novice Warp Portal fixes from jAthena. [Lance]
+ * Final warning elimination in plugins.c (most of them are gone with warning level set to 1). [Lance]
+ * Fixed typo in msg_athena.conf and 'users with autoloot turned on will not have their rare drops announced.'. Thanks to Kaseki.
+ * Mob should stop walking when hit if not enduring. Thanks to Playtester. [Lance]
+ * Included pcre.dll and libmysql.dll from joshuali. [Lance]
+ * Eliminated Level 3 warnings. Setting compile warnings to Level 3. (Level 4 just kills eAthena XD) [Lance]
+2005/11/27
+ * Fixed an overflow pointer bug in the gvg eliminate timer. [Skotlex]
+ * Updated the damage code if Spiral Pierce, Shield Chain and Shield
+ boomerang to be closer to official. [Skotlex]
+ * Fixed a crash when setting all chars offline in the char-sql server. Also
+ fixed that delete_timer mismatch on shutdown [Skotlex]
+ * Autospells now won't trigger if the range between the source and the
+ target is not satisfied. [Skotlex]
+2005/11/26
+ * Added bonus2 bAddSkillBlown for adding a custom knockback value to a
+ skill. Note that this knockback bonus is ADDED to whatever the default
+ knockback of the skill is. [Skotlex]
+ * Fixed Soul Linker skills showing up on the tree for leveling up. [Skotlex]
+ * Probably fixed the crash in inter_guild_CharOffline [Skotlex]
+ * Modified the skill get range routine to correctly account for the attack
+ range and the AC_VULTURE range bonus where needed. [Skotlex]
+ * Fixed alchemists Fame Points bug: It were giving 1 fame point [Lupus]
+ on making 4 Condensed Potions in row, instead of 3, etc. Now tested ^_-
+ * Some restructuring and cleaning up in map loading to make it easier for
+ future plans (like removing Grfio) [celest]
+ - split map loading into separate sources properly
+ - added map server will display a list of enabled map sources on startup
+ - added maps will be auto-imported into the map cache if it's loaded with
+ AFM, AF2, or any other source
+ The server looks for maps in this descending order: the map cache, AFM maps,
+ AF2 maps, and finally GAT files from the GRF (slowest); so, if you enable map
+ caching it should be a liiiittle bit faster then before ^^
+2005/11/25
+ * Uploaded fixes to int_guild, tested and working safely. [Kevin]
+ * Added @showzeny @ command. [Skotlex]
+ * Some code cleanup to make AutoBerserk work the way it was intended to
+ (skill toggles "auto-berserk" state on/off, if on, you automatically get
+ Provoked when under 25%HP) [Skotlex]
+ * Fixed Auto-Berserk auto-ending after a minute. [Skotlex]
+ * Added a fix to mob skills to prevent them from being checked too
+ frequently during battle (which was sort of bumping up their rate to double
+ or more from what the skill db would state) [Skotlex]
+ * Added cleaning up the fifo before sending the guild information (since
+ the packet is big, the fifo should be cleared to avoid overflow problems)
+ [Skotlex]
+ * Added monster_ai&8, when set monsters stop walking as soon as they lose
+ their current target [Skotlex]
+ * Reflect Sword again reflects damage versus players. [Skotlex]
+ * Corrections to the skill code so only Heaven's Drive may damage traps. [Skotlex]
+ * Reverted the mob random walk delay after unlocking a target to 3~6 secs. [Skotlex]
+ * Added pow, sqrt and distance to scripting commands. [Lance]
+ * Removed players with 0 Fame Points from Blacksmith/Alchem/Taekwon TOP10 lists [Lupus]
+ * Should fix night glowing bug. [Lance]
+ * Added setd and getd variable retrieving and setting with dynamic names. [Lance]
+ * Added petstat command as requested by Dubby. [Lance]
+2005/11/24
+ * Fixed a small bug in the guild search by name routine. Should fix the
+ crash on new guild creation. [Skotlex]
+ * Added debug information in case the guild isn't found in the cache when
+ it should be there. This should help fix any problems the guild cache
+ might have (eg: for some function that may take effect on a guild which
+ has no members online) [Skotlex]
+ * Finished cleaning up and merging the guild cache withthe guild timers
+ behaviour. It should be mostly safe to update now. [Skotlex]
+ * Reverted the sql save behaviour. [Skotlex]
+ - Now guilds timers and cache are both into effect, this requires a bit
+ more of cleaning to be considered done.
+ * Various things I made but already forgot xD [DracoRPG]
+ * Fixed and updated damage bonus for forged weapons: VVVS is +40 (was previously +50
+ for the right hand...) and "famous maker bonus" gives a no-miss +10 dmg, same as
+ 2 additional Star Crumbs. [DracoRPG]
+ * Added or updated several Taekwon skills [DracoRPG]
+ - Jump Kick uses clif_slide to the target's exact pos , waiting for capture/video
+ - Taekwon ranking is now supported by the fame system, but there's no way to gain
+ points atm (Taekwon Mission has no effect), infinite kick combo should be OK
+ - 4 basic kicks updated, you now stop attacking when a stance triggers, and have 2
+ seconds to hit the button before attacking again
+ - Run uses SC_SPORT to increase your STR and affect the way Break Fall works
+ - Break Fall dodges ranged magic/weapon attacks, as well as melee weapon ones
+ when SC_SPORT is active
+ * Made Sword Reject / Counter Instinct reflect damage only against monsters (not
+ 100% sure about it, but let's say 90%... iRO site says it, although it isn't
+ the best source ever) [DracoRPG]
+ * Made Spiral Pierce use SC_STOP instead of setting canwalk_tick, some other such things
+ need to be reviewed [DracoRPG]
+ * Fixed Pneuma. [Skotlex]
+ * Fixed dead mobs reappearing on the map. [Skotlex]
+ * Cleaned up the duel code in battle_check_target. [Skotlex]
+ * Added config option summons_inherit_effects, defaults to yes, check
+ battle_athena.conf for further details. [Skotlex]
+ * Updated duel [LuzZza]
+ - Now "@duel <Num>" may be used for indication max players limit of duel.
+ - Now "@duel <Nick>" creating duel for two players and automatically send invitation to Nick.
+ * Added a new script function: getequipcardid(equipSlot,CardSlot) [Lupus]
+ Returns Card ID or just a value from your EQUIPPED item
+ Useful to check equipped items PROPERTY, STRONG value, Author ID, etc
+ Check npc\sample\getequipcardid.txt and read script.c comment ^_-
+2005/11/23
+ * Fixed the crash on guild creation in new guild cache. [Kevin]
+ * Implemented duel organizing commands: @duel, @invite, @accept, @reject, @leave. [LuzZza]
+ * Made the walk-delay a timer, so that it triggers after the actual attack
+ motion of the src. [Skotlex]
+ * Added back the combo damage delay config, now renamed to
+ multihit_delay, and set to the default of 230ms it had before. [Skotlex]
+ * Added displaying file which caused an error on incorrect mob lines.
+ [Skotlex]
+ * Small memory corrections to sql castle saving/loading, mostly Lance's
+ work. [Skotlex]
+ * Updated the walk delay routine to not invoke stop-walking when character
+ is not walking (fixes the case in which the packet is sent while sitting,
+ which causes a 'standing' sprite even if the char is sitting). [Skotlex]
+2005/11/22
+ * Implemented a guild cache in char sql, saves all online guilds every 5 minutes. [Kevin]
+ * More grammar fixes [Kayla]
+ * Added 1-tile of range grace in skill_use_id and skill_use_pos since
+ that's how it is on Aegis servers. [Skotlex]
+ * Updated the skill info packets to deliver the skill names as expected by
+ the client. [Skotlex]
+ * Updated mob ai to enable changing targets while attacking ONLY if the
+ attacker is within melee range (Aegis AI). monster_ai&4 can be used to
+ override this and allow mobs to change target and pursue ranged attackers.
+ [Skotlex]
+ * Updated the config comments for the ip-related settings. Thanks to
+ akusarujin for the update. [Skotlex]
+ * Added rates to at_command.conf, set it's default to GM lv1 [Skotlex]
+ * Removed the icon from Fire Break's fire-elemental bonus. [Skotlex]
+ * Updated the walkdelay function to only be invoked if the attack did
+ damage. [Skotlex]
+ * Some more fixes to the english in ShowInfo()'s [Kayla]
+ * Cleaned out the SVN a bit [Kayla]
+2005/11/21
+ * Removed "(now unlimited loop start!)" from char-sql in an info line...wtf xD..[Kayla]
+ * Mob AI update: updated the conditions used to specify if a mob can change
+ targets as per the forum provided information (by Komurka and Kyoki).
+ Mode 512 (MD_CHANGETARGET) no longer does anything. [Skotlex]
+ * Mobs that assist now link nearby mobs when they attack. [Skotlex]
+ * Made the damage delay be applied after knockback rather than before
+ (magical/misc instant effect attacks are still applied before the
+ knockback) [Skotlex]
+ * The damage delay timer now stores the distance between source/target, if
+ this distance is increased by 2 or more, the damage delay fails and takes
+ no effect (if the '2' needs to be made higher, do point it out. It
+ shouldn't be much of a problem since you aren't supposed to be able to walk
+ from the damage delay anyway). [Skotlex]
+ * Changed the way damage delay works. It is no longer applied on
+ mob_damage/pc_damage, but instead is invoked from clif_damage (or
+ clif_skill_damage), which means the "can't walk" delay is sync'ed with the
+ damage packets when they are sent. This should fix most delay-damage
+ 'stun-lock' related issues. [Skotlex]
+2005/11/20
+ * Mobs now can't move while casting. [Skotlex]
+ * Updated mob_db.txt and mob_db.sql with the most recent data from Kyoki.
+ [Skotlex]
+ * Corrected the mob_db by adding the canmove/canattack bits to pretty much
+ all mobs that needed them. [Skotlex]
+ * Some fixes to the confusion code. [Skotlex]
+ * Crash-fix in status_change_start [Skotlex]
+ * Implemented confusion as it should be (not tested yet!) [Skotlex]
+ * Updated run_script to backup the current script of a player and
+ restore it if the current script ends inmediately. This should fix losing
+ the script info if status_calc_pc is invoked while running a script.
+ [Skotlex]
+ * Fixed a memory leak in the guild eliminate timer. [Skotlex]
+ * Removed the extra tile of range mobs have when walking. [Skotlex]
+ * Added mob reloading to battleconfig reload @ command. [Skotlex]
+ * Updated mob_db.sql with the new modes by Kyoki. [Skotlex]
+2005/11/19
+ * Made characters stop walking when inflicted by SC_STOP, may fix
+ GrimTooth's stop effect not seeming to take effect. [Skotlex]
+ * Made the pk_min_level config not take effect in WoE/GvG grounds.
+ [Skotlex]
+ * Fixed showing falcon when player is hide. [LuzZza]
+ * Updated mob_db.sql and item_db.sql to current [Skotlex]
+ * Updated the skill db step guessing code to allow for negative ranges (Now
+ spear boomerang should progressively get longer range with higher levels)
+ [Skotlex]
+ * Fixed Tarot Card, the card that gets two random effects can't retrigger
+ itself, and it causes STOP instead of Stun where appropiate. [Skotlex]
+ * Updated devotion to only work on damage attacks that have a source (will
+ prevent it from "blocking" COMA, which is what caused the crash). [Skotlex]
+ * Fixed not always showing CRIT attacks, thanks to Irmin [Lupus]
+2005/11/18
+ * Updated mob_ai so aggressive mobs change target when chasing, and
+ change-target mobs do so when attacking. [Skotlex]
+ * Fixed weapon forging showing success even when it fails. [Skotlex]
+ * Some cleaning up of @time, may fix the weird time displays. [Skotlex]
+ * Modified mob_ai so hyper-active mobs change target if they are
+ cast-sensors even if attacking (angry mode). They will also change target
+ if attacked while in angry/follow mode regardless of their change-target
+ mode. [Skotlex]
+ * Moved the night-inducing code from "map loaded ack" to "spawn pc", should
+ fix characters going ultra-blue after stuff like fly-wings. [Skotlex]
+ * Delayed the mob emotion when doing skills so that it gets executed AFTER
+ the skill is successfully performed. [Skotlex]
+ * Implemented PR_REDEMPTIO. Is the penalty for both base and job exp?
+ That's how it is currently. And if the map has the nopenalty flag,there's
+ no exp penalty. Awaiting further input on the matter (altough, do note the
+ skill isn't tested either) [Skotlex]
+ * Fixed three memory issues (char txt shutdown, npc reloading, ore
+ discovery logs) which were pointed out by End of Exam. [Skotlex]
+ * Added support for hyper-active mobs (MD_CHANGECHASE = 0x400), these mobs
+ will change to the closest target while chasing/following other players.
+ Needs be added to the mob_db. [Skotlex]
+ * Added support for hyper-aggressive mobs (MD_BERSERK = 0x800), these mobs
+ change their skill state to angry/follow instead of attack/chase when they
+ select/change target (except if they changed target because the new target
+ attacked them). Needs be added to the mob_db, for now all aggressive mobs
+ are considered hyper as well. [Skotlex]
+ * Updated mob mode cast-sensor (MD_CASTSENSOR = 0x010), mobs that are
+ Aggressive can also change target if they are chasing/following a player
+ when someone else casts a skill on them. [Skotlex]
+ * Fixed Dark Blessing. [Skotlex]
+ * Changed the default battle_delay_damage value from no to yes. [Skotlex]
+ * Added check to prevent reinitiating SC_GOSPEL on a character that already
+ has GOSPEL and val4 == BCT_SELF, may fix multiple Gospels being placed on
+ the ground. [Skotlex]
+2005/11/17
+ * Altered behaviour of NPC_EMOTION/NPC_EMOTION_ON as requested by Komurka.
+ [Skotlex]
+ - val[0] (the first one) is the emotion the mob does. If val[1] is
+ different from 0, then the mob's mode is changed to THIS value. If val[2]
+ is different from zero, it'll add/remove a mode based on skill used
+ (EMOTION_ON adds mode, EMOTION removes it), both can stack [Skotlex]
+ * Fixed for sure the Makefile... [Skotlex]
+ * Modified Wedding effects. That is, changing base to 22 does NOT displays
+ wedding outfit anymore. To display the wedding outfits, you have to start
+ SC_WEDDING instead. Tux/Wedding dress scripts likely need being updated.
+ [Skotlex]
+ * Added battle option disp_zeny, will display on console how much zeny you
+ earned (be it from selling, trading, mobs, etc, as long as you "earned"
+ zeny) [Skotlex]
+ * Updated status_calc_pc to prevent infinite recursion loops. [Skotlex]
+ * Applied End of Exam's suggested signedness fixes to npc.c [Skotlex]
+ * Updated sting lib, to avoid SQL troubles [Lupus]
+ * Fixed moonlit not properly checking for nearby walls. [Skotlex]
+ * Added a recursion protection system to status_calc_pc which should avoid
+ exploits derived from recursively calling status_calc_pc which certain
+ equipment scripts could trigger. Thanks to End of Exam for pointing it out.
+ [Skotlex]
+ * Applied Celest's patch which should help compiling eA under mingwin.
+ [Skotlex]
+2005/11/16
+ * Fixed AFM map loading (something was missing there which was gonna make
+ the map server crash for sure later on) [Skotlex]
+ * Some corrections to the mob states, linked/cast-sensitive mobs engage in
+ attach/chase modes, not angry/follow (which seem reserved entirely for
+ aggressive mobs) [Skotlex]
+ * Cleaned up and corrected target types MSS_AROUND->MSS_AROUND8, also added
+ and documented them in mob_skill_db.txt [Skotlex]
+ * Probably corrected whispers to GMs. Thanks to Slennox for pointing it
+ out. [Skotlex]
+ * Modified mob-skill states to use Aegis-based information. Modes are
+ MSS_IDLE, MSS_WALK, MSS_LOOT, MSS_DEAD, MSS_BERSERK, MSS_ANGRY, MSS_RUSH
+ and MSS_FOLLOW. Mob skill db is unaltered other than for the fact it now
+ supports "angry" and "follow" states. [Skotlex]
+ * Cleanup of how knockback routines are invoked. [Skotlex]
+ * Added MOB_LAZYSKILLPERC to mob.c, determines probability of a mob doing a
+ skill when there are no players nearby (but there has to be players in the
+ same map for it to trigger). Currently set to 10/1000 chance. [Skotlex]
+ * battle_check_target update. Rewrote the party/guild checks, this should
+ hopefully fix any problems left with pvp/gvg and mapflags not working
+ properly. [Skotlex]
+ * Fixed playerattached() returning char id instead of account id. [Skotlex]
+ * Added battle option party_even_share_bonus to enable use of Valaris's evn
+ share experience bonus equation rather than the official one. [Skotlex]
+ * Corrected @jump not displaying the actual coords you jumped to. Thanks to
+ kitty74x9 for noticing (and fixing) it out. [Skotlex]
+2005/11/15
+ * Fixed multi-hitting skills not increasing the "can-walk" delay
+ accordingly. [Skotlex]
+ * Modified way to updating hp/position of party members. [LuzZza]
+ * Added battle config option "aura_lv", specifies which level characters
+ have to be for the server to report their level as "max_lv" (which normally
+ is used to enable the aura). See battle_athena.conf for more details. It
+ may not work for your self, but only for other characters (this is,
+ afterall, untested yet) [Skotlex]
+ * Implemented High Jump (works 100%) and Fighting Chant (untested but should work). [DracoRPG]
+ * Various cleanups and typo fixes here and there. [DracoRPG]
+ * Corrected the upkeep SP cost of Moonlight Petals. [Skotlex]
+ * Modified Magnum Break's fire bonus to be 20% ADDITIONAL fire damage of
+ your total damage previous to the elemental modifier. [Skotlex]
+ * Modified Fatal Blow's stun chance to kRO's equation (+5% stun chance per
+ bash skill level over 5) [Skotlex]
+ * Corrected Sharpshooting's damage equation to +50%*skill_lv [Skotlex]
+ * Updated Magnum Break's bonus from 10% to 20% fire elemental. [Skotlex]
+ * Updated Arrow Shower to be a ground based skill (untested yet) [Skotlex]
+ * Pretty much rewrote how Moonlight Petals work, it should be working
+ mostly right now. [Skotlex]
+ * Splitted gat map information into gat and cell info. gat info is
+ permanent map data (walls, ground, etc) while cell is temp map info
+ (basilica, pneuma, etc). Modified Pneuma and Moonlight Petals to work based
+ on map cells. [Skotlex]
+2005/11/14
+ * New Visual Studio projects, compiling works, need zlib.dll for txt server. [Kevin]
+ * Longing for Freedom can't be used during Moonlight Petals now. [Skotlex]
+ * Corrected True Sight's critical bonus (from +0.1 cri per level to +1 cri
+ per level) [Skotlex]
+ * Made coma a status effect. SC_COMA. Sets HP/SP to 1. Bosses/Emperium are
+ inmune to it. [Skotlex]
+ * Fixed null pointer crash in battle_damage. [Skotlex]
+ * Increased max account variables to 32. [Skotlex]
+ * Pressure/Gloria Domini now isn't instant-cancelled by status effects, and
+ bypasses the Devotion/Sacrifice check. [Skotlex]
+ * Added handling of the /pk packet, even thought it just shows an empty
+ listing for now. [Skotlex]
+ * Applied zBuffer's suggested fix to prevent S. Novices from getting mental
+ Strength at 100% exp. [Skotlex]
+ * Fixed Friends List not able to add more than 20 friends (current clients support up to 40) [Lupus]
+ thanks to CAHTEXNIK for pointing it out 8)
+2005/11/12
+ * Probably fixed the name of freshly captured pet eggs. [Skotlex]
+ * Changes Win32 to not require svnversion.h, but instead tries to peek in
+ .svn\entries to check for svn version. If the file doesn't exist it'll
+ display "Unknown" though, which I guess isn't a good thing ^^; [celest]
+ * Removed the option to load zlib as a plugin for Win32 since it should be
+ linked at compile time [celest]
+ * Added zlib and libmysql .lib files for compiling in Visual Studio [celest]
+ Note: The project files on SVN don't have them yet, you'll need to include
+ them yourself for now
+ * Fixed a compile error in Visual Studio [celest]
+ * Readded a missing zlib file needed by Win32, sorry ^^; [celest]
+2005/11/11
+ * New readme content/layout (IE warning: IE hates new readme) [Evera]
+ * Imported use of the refine weapon packets from jA. [Skotlex]
+ * Removed SC_MODE, now NPC_EMOTION and NPC_EMOTION_ON can change a mob's
+ mode permanently (until their death, that is), and it won't work on
+ player summoned mobs. As before, val1 is the emotion value, val2 is the
+ mode to add/remove. Val3 is now ignored (used to be duration) [Skotlex]
+ (no, no need to wipe SC data this time around either)
+ * Cleaned up sql-files to use TYPE rather than ENGINE as TYPE is supported
+ by older MySQL versions and not quite deprecated yet. [Skotlex]
+ * Modified the party even share exp bonus to be +10% per extra party member
+ as official sources state. [Skotlex]
+ * Organized the clif_devotion packet, and added clif_marionette as per
+ jA's implementation. [Skotlex]
+ * Added db_path to map_athena.conf, used to specify an alternate directory
+ to locate the db/ files. Defaults to "db", obviously. [Skotlex]
+ * Removed SC_FALCON and SC_RIDING, the status icons are directly managed
+ through the change of the character's option now. The actual defines were
+ not removed to avoid shifting all the SC_ values again (no need to wipe sc
+ data) [Skotlex]
+ * Added additional debug information to battle_attr_fix until the cause of
+ those errors are found and resolved. [Skotlex]
+ * Fixed win32 compiles always reporting "unable to set socket to
+ non-blocking mode", together with other minor win32 fixes. [Skotlex]
+2005/11/10
+ * Fixed char-sql cart loading. [Skotlex]
+ * Updated the function that specifies the cards to support more than four
+ slots. [Skotlex]
+ - Since the packets are fixed sized the client can never receive data of
+ more than four cards, therefore if the client was compiled with MAX_SLOTS
+ above 4, a random subset of cards will be sent each time the item data is
+ sent (eg: if the item has 6 slots, it may randomly choose to send cards
+ 1->4, 2->5, or 3->6).
+ * Removed the OnAgitInit call when the map connects to char server. Fixes
+ double guardian spawn. [Skotlex]
+ * Fixed the sql query strings that would appear "incomplete" under certain
+ *nix systems. [Skotlex]
+ * Applied zBuffer's patches to correct memory leaks in the PCRE module
+ (regular expression support for npcs) and prevent server crashing when
+ scripts divide (or do mod %) by zero. [Skotlex
+2005/11/09
+ * Fixed Ankle Snare and Spider Web not being cleared when the trapped
+ target dies. [Skotlex]
+ * Fixed the range flag being incorrectly set in BF_MISC skill attacks.
+ [Skotlex]
+ * Corrected Venom Knife using Level1 always for the poisoning chance rather
+ than learned Envenom's level. [Skotlex]
+ * Fixed the crash on shutdown if PCRE support was enabled. [Skotlex]
+ * Fixed possible item duping while vending, thanks to End of Exam for
+ pointing it out. [Skotlex]
+ * Fixed the blue aura of Night effect. Thanks to zBuffer [Skotlex]
+ * Fixed mobs moving one tile when hit even if they can't move (this is what
+ broke Ankle Snare) [Skotlex]
+ * Fixed night/day implementation (which broke due to the addition of SI_
+ constants). [Skotlex]
+ * Cleaned up the SI_ constants to have defined only those which actually
+ display something on the client. [Skotlex]
+ * Fixed a bug which caused a captured pet's name to be displayed as beloved
+ even though it was just captured. [Skotlex]
+ * Added temp skill quests for all complete 2nd Class Quest Skills [Lupus]
+2005/11/08
+ * Updated the documentation on the announce script commands. [Skotlex]
+ * Removed the global color message support as there's now a way to craft
+ custom colored announces. [Skotlex]
+ * Probably fixed mapannounce. [Skotlex]
+ * Implemented SI_ constants to specify the icon number for different SC_
+ changes, idea adopted from jAthena. All SC_ data was reorganized and
+ several checks are now in place. It is likely all saved sc_data is wrong
+ after this update due to the numbers changing places. It won't cause any
+ glue-boots.. but the wrong status changes will be loaded the first time
+ anyway, so it may be a good idea to wipe that file/table for this update.
+ [Skotlex]
+ * Added mob boss inmunity to status changes: poison, curse, deadly poison.
+ [Skotlex]
+ * Now when the mob starts casting a skill and stops walking, a packet will
+ be sent to update the mob position on the clients. [Skotlex]
+ * Fixed a bug in mob_stop_walking which may fix stun-lock. [Skotlex]
+ * Fixed not showing named/carded items in Vending [Lupus]
+ (when you drag'n'drop them from your cart into your shop list)
+2005/11/07
+ * Expanded script commands announce/mapannounce/mapareaannounce to take an
+ additional parameter to define the color. This uses the new packet 0x1c3 to
+ send the broadcast, and even though the packet is not fully understood yet,
+ it should be at the point where it can be used. [Skotlex]
+ - eg: "announce "hello world", bc_map, 0xFFFF00;"
+ * Cleaned up and optimized the way card data is set in packets. Should
+ correct most, if not all, pet-egg related issues. [Skotlex]
+ * Removed combo_damage_delay and added damage_walk_delay_rate. Now the total
+ delay during which you can't move is a percent of the normal damage delay
+ rate adjusted by number of hits and this rate. Defaults to 50% for now. [Skotlex]
+ * Removed the random damage delay value from status_get_dmotion as it is
+ not really helping the walk-stun-lock. [Skotlex]
+ * Made Gravitation ignore target's cards. [Skotlex]
+ * Updated readme with new layout [Evera]
+ * Updated bAddMonsterDropItem bonuses to work with cards: Mimic Card, Mystcase Card
+ where bonus_item_rate = base_rate * (killed_mob_level/10) + 1
+ So if 2nd argument is negative, then it's 'rate'
+ Now, if you kill Porings, u'd have OBB/GIFT BOX drops with 0.01% chance
+ and if u kill Leaf Cats then u'd have them with 0.05% chance
+ Max chance is 0.1% (when u kill MVPs with level > 94) [Lupus]
+2005/11/06
+ * Cleaned up a bit the warp portal code. [Skotlex]
+ * Added a timer to invoke the OnAgitInit event 10 seconds after the char/map
+ servers are connected. Scripts should now carefully use OnInit to load the
+ castle data, and OnAgitInit to check for castle owners, mobs, WoE, etc.
+ [Skotlex]
+ * Reverted the damage delay equation to 800 -4*agi, which is the correct
+ data from packets examined. [Skotlex]
+ * Slow motion Fix: Reverted weight packet, thanks to Momoko [Lupus]
+2005/11/05
+ * Fixes on sending to client status of char (guild, position, etc). [LuzZza]
+ * Updated backsliding to work as it should. [Skotlex]
+ * Added back the GPL licence on the root directory (why was this removed?)
+ [Skotlex]
+ * Fixed knock-back packets, thanks to Vicious for collecting the packet
+ samples. [Skotlex]
+ * Fixed pretty much all ground skills not working when you "walked into
+ them" (they were fine if casted on top of you, though) [Skotlex]
+ * Fixed not working ZENY LOG. You can use logging filter as well. [Lupus]
+ - Only SQL logs available.
+ - Logs only Vending, Trade, Shops yet
+ - Don't forget to update your logs SQL DB and log_athena.conf
+ * Added previously removed (by an accident) "MVP Prize item log" into pick_log [Lupus]
+2005/11/04
+ * Added support for new quest skills to @allskills/@skillall. Thanks again to blackhole89 for
+ pointing that out! [Kayla]
+ * Fixed various occurencies of assuming Guild Skills being >= ID 10000
+ rather than 500<skill<1000 still after skill_chk. Thanks blackhole89! [Kayla]
+ * Hopefully fixed Weapon Refine. [Skotlex]
+ * Applied a change which prevents pc_setpos from working for characters
+ between maps, as doing so makes the character appear on a different
+ position on the client than the position stored in the server. [Skotlex]
+ * Added friend_db option to inter_athena.conf, now friend table is
+ usable in multi server and/or custom db configs. [Foruken]
+2005/11/03
+ * Corrected the basilica check which should disable casting offensive
+ skills from within inside the basilica. [Skotlex]
+ * Modifed status_change_end to prevent peco-peco/falcon from ending until
+ the player's 'falcon/peco option' value is removed first. [Skotlex]
+ * Removed the knockback code for players and changed it for a "fix
+ position" code. The new code is not right as it makes your character
+ "teleport" to the position rather than walk really fast to it, but it fixes
+ the "Do not use bot!" messages. [Skotlex]
+ (someone has to log the actual packets used when being knocked/knocking
+ back for this to really be fixed)
+ * Heaven Drive now can target traps. [Skotlex]
+ (I find it impossible to target a trap with Arrow Shower unless the
+ skill's info is set to 32 -target traps-, but when it's done so, the
+ client refuses to use the skill on enemies, and mode 33 makes the skill
+ useless. How does one makes this work?)
+ * Various cleanups to the skill system. [Skotlex]
+ * Update: Now your cast cancels on recieving status change such as:
+ Stun, Stone Curse, Freeze or Sleep [LuzZza]
+ * Updated the code to allow the Emperium to be inflicted by Pneuma and
+ Safety Wall. [Skotlex]
+ * Updated @recallall to revive any dead characters before moving them,
+ should fix that weird ghost bug. [Skotlex]
+2005/11/02
+ * Made Spell breaker not be able to cancel Pressure/Gloria domini [Skotlex]
+ * Another fix/optimization to thenight/day system. [Skotlex]
+ * Fixed possibility of freezing / stunning already frozen/stunned players
+ - Now you can't freeze an already frozen one [Lupus]
+ * Fixed non-GMs allowing send trade requests from far places [Lupus]
+ * Fix of lowest_gm_level (inter_athena), now logins with access under
+ lowest_gm_level overides gm_can_drop_lv. [Kayla]
+ * Spell Breaker now works on any skill with a cast time. [Skotlex]
+ * Made Dispell not work on Meltdown and Cart Boost [Skotlex]
+ * Made Meltdown not dispellable upon death. [Skotlex]
+ * Probably fixed Warp Portal [Skotlex]
+ * Fixed players being able to mute others even if their gm level is not
+ high enough to use @mute [Skotlex]
+ * Fixed Dispell not clearing a lot of status changes it should. [Skotlex]
+ * Corrected the way the Emperium skill-defense works. Damage skills other
+ than Gloria Domini, Raging Trifecta and Gravitation do no damage. Status
+ changing skills have no effect, and normal heal heals for 0. [Skotlex]
+ * Some more corrections to the night/day system. [Skotlex]
+ * Multiple fixes to the skill system. Should fix Warp Portal, Teleport and
+ mob skills crashing the server. [Skotlex]
+ * Updated sql-files/item_db.sql with the latest. [Skotlex]
+ * Some optimizations to the script config events loading/storing/saving.
+ (Somehow it fixes the warning from the memory manager on shutdown...)
+ [Skotlex]
+2005/11/01
+ * Updated battle_check_target to allow ground skills that affect "Everyone"
+ to affect the emperium, only the ones that target only enemies will have no
+ effect. [Skotlex]
+ * Changed the default of mob_max_skilllv from 11 to 100, as many of the
+ recent mobs use higher level skills. [Skotlex]
+ * Moved the check which made emperiums receive 0 damage to: [Skotlex]
+ - status_check_skilluse, so that all targetted skills fail.
+ - battle_check_target, so that all ground-based offensive skills fail.
+ * Cleaned up a bit the skill related code. [Skotlex]
+ * Updated @ commands. NO command comes at gm-level 0 by default now, that's how
+ it should be, the new default minimum is 1 for most trivial @ commands. Also added
+ a bunch of commands to conf/atcommand.conf which were missing. I STRONGLY
+ recommend everyone to at least fetch the new atcommand file as there
+ were abusable commands at level 0 (abusable in the sense they can incur
+ performance penalties if over-used by everyone) [Skotlex]
+ * Fixed crash when a mob was killed while under Rich Man Kim effect by a
+ non-player, also fixes Rich Man Kim not giving the correct exp bonus.
+ [Skotlex]
+ * Modified the socket subsystem to not close all connections on an "Service
+ Temporarily Unavailable" error (it is a non-fatal error which basicly means
+ "try again later"). [Skotlex]
+
+2005/10/31
+ * Fixed all players having the "plant" mode on... [Skotlex]
+ * Added a timer to delay the automatic respawn of characters in gvg or pvp
+ grounds. The delay is currently 1 second, but be warned that because of
+ this it may be possible to revive the character if some priest is insanely
+ fast as there's currently no way to "prevent" a character from being
+ resurrected. [Skotlex]
+ * More and more new quest skills! :3 [DracoRPG]
+ * Removed the setting where characters could logout overriding the
+ prevent_logout setting if they were dead (it made it extremely easy to
+ accidentally log out if you were killed while trying to escape) [Skotlex]
+ * Changed prevent_logout from yes/no to a "duration in ms" setting.
+ Defaults to 10secs (10000ms), note the client always says "wait 10 seconds"
+ regardless of the value of this setting. [Skotlex]
+ * Moved the status change of SC_RIDING/SC_FALCON from clif_changeoption to
+ pc_changeoption which correctly makes the falcon/riding states end on quit.
+ [Skotlex]
+ * Mob ai fix (mobs locking down into one target forever even if they should
+ be able to change targets) [Skotlex]
+ * Added routine to check party share level whenever one of the members
+ levels up. It's checked on the map server, and then a share request is sent
+ to the char-server if party_share_level is broken. [Skotlex]
+ * Corrected "show drain" to show nothing if the leeched values are
+ non positive. [Skotlex]
+ * Probably fixed Wand of Hermode not blocking the caster from walking.
+ [Skotlex]
+ * Applied Silent's fix to @where [Skotlex]
+ * Code cleanup regarding sign/unsigned comparisons. [Skotlex]
+ * Updates to new quest skills, some are fully functionnal, some half, some
+ not at all xD. [DracoRPG]
+2005/10/30
+ * Fixed a bug that broke pet skills. [Skotlex]
+ * @follow: Now to stop following, you may just type @follow, thx2Sartory [Lupus]
+ * Fixed & finished what I did yesterday with SCs and quest skills, thanks
+ to Silent. [DracoRPG]
+2005/10/29
+ * Reorganized SC IDs to make room for 2nd jobs quest skills statuses: upped
+ SC_SENDMAX to 300 and moved all required SC to 300+. BEWARE: as a side-
+ effect of this, you might get 'glue boots' if an SC was saved and cannot
+ be restored because the ID isn't used anymore, this should only happen
+ with bonuses from cooked foods & dances/songs (unlikely since they last 20
+ seconds only), and maybe a few other such things. Simply remove lines
+ with SC IDs above 200 in your sc_data file/table. [DracoRPG]
+ * Changed a bit the way Plant Cultivation fails: when it fails because of
+ missing items, it does nothing and displays "Skill had failed"; when the
+ 50% success rate test fails, the effect is displayed but no plant summoned.
+ How should it work exactly? Because previous way was a bit confusing for
+ the player, not explaining why it failed, so I'd like to know. [DracoRPG]
+ * Changed food cooking success rate to unmodifiable 50%, temporary value
+ waiting for accurate data ;) [DracoRPG]
+ * Fixed the code in skill.c so that skills are considered as guild skills
+ (for things such as inf, maxlv, etc) only when their ID >= 10k, enables
+ use of 2nd jobs quest skills with 1k+ IDs, thanks to Silent. [DracoRPG]
+ * Fixed the Flag guild script. Now one can only flag in using the flags infront
+ of the castle. [Kayla]
+ * Removed most of the built-in zlib files and the LOCALZLIB compile option
+ Note: All native Windows builds now require zlib1.dll, you can just download
+ it from http://www.zlib.org and place it in the main directory [celest]
+ * Changed the unzip library to be static linked instead of dynamic [celest]
+ * Small fix to the trading routing, should fix items with the no-trade flag
+ being able to be vended. [Skotlex]
+2005/10/28
+ * Fixed the size of the equip_job field in SQL item_db/item_db2, thanks to
+ blackhole89. [DracoRPG]
+ * Harmonized the way NPC events such as PCLoadMapEvent, PCBaseLvUpEvent, etc
+ are implemented. Caution, now PCLoadMapEvent NPC is called globally: it
+ is not needed to put it in a specific map. Use script functions to know
+ which map the player has been warped to. Thanks to Z3RO. [DracoRPG]
+ * Fixed the names of the job level up char commands. [Skotlex]
+ * Tiny change to the script engine which may fix those crashes. [Skotlex]
+ * Added blocking use of skills while sitting. [Skotlex]
+ * Implemented Trancid's expanded global announce system. [Skotlex]
+2005/10/27
+ * Applied Ilpalazzo-sama/Zzo's patch that cleans up and fixes some bugs
+ with the script engine. [Skotlex]
+ * Made land protectors from enemies cancel each other out. [Skotlex]
+ * Made it so Guardians/Emperiums with no owning guild can be attacked out
+ of woe. [Skotlex]
+ * Corrected being able to attack and use skills during the first interval
+ of Petrify [Skotlex]
+ * Fixed packet exploit that allowed you to produce multiple times without
+ first triggering the skill. [Skotlex]
+ * Cleaned up/simplified the implementation of SC_NOCHAT [Skotlex]
+ * Added file upgrade_svn3746.sql, use it to alter your `char` table column
+ "manner", which should NOT be unsigned (if your column already is
+ signed, then no need to apply this update) [Skotlex]
+ * More code cleanup to make eA ANSI-C compliant. [Skotlex]
+ * Some fixes to the night-day-system. [Skotlex]
+2005/10/26
+ * Some more multi-map server work. It seems to work now correctly and with
+ no memory leaks, however it likely needs more testing. Also added the
+ support into the char-TXT server. [Skotlex]
+ * Patched a crash where mobs with no space for looting would attempt to
+ loot. [Skotlex]
+ * Updated mapflags, readded gvg_dungeon. Now mapflags work according to
+ this post: [Skotle]
+ http://eathena.ws/board/index.php?showtopic=58201
+ * Likely fixed Party Even Share. [Skotlex]
+ * Added map flag "nightenabled", only maps with this flag will display the
+ night effect when it's night. Said maps are specified in mapflag/night.txt [Skotlex]
+ * Modified map flags gvg and gvg_dungeon. gvg now is basicly the same as
+ pvp, except guilds are automatically teamed up, while gvg_dungeon was
+ removed and replaced by gvg_castle, which is the flag now used for castle
+ maps which only modify the behaviour during WoE times. [Skotlex]
+ * Updated the login/char TXT Makefiles so the TXT_ONLY flag is passed, this
+ SHOULD fix the guild size mismatch errors... [Skotlex]
+ * Probably fixed a char-server crash related to whispers. [Skotlex]
+ * Updated the custom jobmaster so it should stop second advanced classes
+ from being able to re-change jobs. [Skotlex]
+ * Implemented dynamix's night system which uses a status change rather than
+ the "darkness levels", said config option removed as is no longer needed.
+ [Skotlex]
+ * Some fixes to the char-sql code when sending chars to another map server.
+ [Skotlex]
+ * LuzZza's ported Trade/Vending additional antispoof checks [Lupus]
+ - thanks to Yor&Freya Team. So LuzZza is our new dev (it was his 2nd test)
+2005/10/25
+ * Some work fixing up multi-map servers. It should now *work*, however each
+ time the player swaps map-server it triggers all the relevant
+ on-login/on-logout events, which likely needs to be corrected at a later
+ date. Only SQL has been updated so far, TXT is still pending. [Skotlex]
+ * Updated GrandCross so it does half damage on the caster (+half damage
+ from Faith, it does just 25% or less damage to self now) [Skotlex]
+ * Updated battle_check_target to consider normal mobs as always belonging
+ to the same party (should fix them fighting out when pkmode is on)
+ [Skotlex]
+ * Fixed the Makefile for TXT char/login servers (fixes guild structure size
+ mismatches) [Skotlex]
+ * Added script command "playerattached", returns the char_id of the player
+ currently attached to the script, 0 if there's no player attached (or
+ attached player is no longer on the map server) [Skotlex]
+ * Fixed @changegm in the char-txt server. [Skotlex]
+ * Some code cleanup to make eA ANSI-C complaint (not quite there, but
+ closer) [Skotlex]
+2005/10/24
+ * Applied Ilpalazzo-sama/zzo's patch that optimizes the status_get_*
+ functions. [Skotlex]
+ * Fixed changegm (as far as I know) [Skotlex]
+ * Modified again the code that checks who and what can target traps. It
+ should be set to only let heaven's drive, arrow shower and remove trap
+ target them. [Skotlex]
+ * Breaker now ignores mdef. [Skotlex]
+ * Fixed script command "makeitem" to only require an attached player if the
+ map is defined as "this". [Skotlex]
+ * Updated battle_check_target to enable only skills with inf 32 (can target
+ traps) to hit traps. Implementation may not be perfect depending on how
+ the client reacts to the associated skill_db change. [Skotlex]
+ * Cleaned up battle_weapon_attack. [Skotlex]
+ * Some optimizations to the struct mob_data. [Skotlex]
+ * Applied Ipalazzo-sama/zzo's memory optimization patches. [Skotlex]
+ * Fixed some quests and updated item_db. [Kayla]
+ * Updated Grimtooth to cause "Stop" on enemies instead of slow down. The
+ duration used is now skill's time 2. [Skotlex]
+ * Updated the mob_ai code so they do nothing if they were attacked but
+ can't attack back (and it did not invoke a rude attacked, that is,
+ monster_ai does not has 2 set) [Skotlex]
+2005/10/23
+ * Some fixes to @charmountpeco [Skotlex]
+ * Some cleanups to pet.c, fixes pet_timer being invoked when the pet is
+ idle. [Skotlex]
+ * Added a clause to ignore name solve requests of chat-rooms (for some
+ reason the client requests them...) [Skotlex]
+ * Updated sql-files/item_db.sql to the latest. [Skotlex]
+ * Removed that mob_spawn_once message that is just a debug message with no
+ real purpose anymore. [Skotlex]
+ * Fixed forging displaying success even when it fails. [Skotlex]
+ * Changed main.sql so that sc_data only has indexes, not a primary key
+ (I keep hearing mysql can't handle a triple column PK...) [Skotlex]
+ * Fixed Doublecast's success chance [Skotlex]
+ * 'Fixed' the warning on @reloadscript (just removed the warning and
+ avoided memory leaks, because properly unloading the user functions and
+ reloading them I could not get done) [Skotlex]
+ * Fixed possible crash due to custom packets, thanks to Andz for the info.
+ [Skotlex]
+ * Fixed mob's Scream/Frost Joke crashing the server if the message was too
+ long [Skotlex]
+ * Fixed the wrong attribute being passed to the attribute fix in
+ battle_calc_magic attack (strange deja vu feeling.. I am sure I fixed this
+ same bug before). [Skotlex]
+ * Fixed trading. [Skotlex]
+ * Removed Mastery damage being applied to Grand Cross [Skotlex]
+ * Some more fine-tuning of the Grand Cross equation. [Skotlex]
+ * Fixed mobs that couldn't attack not being able to use skills (first half
+ of why marine spheres were broken). [Skotlex]
+ * Updated summoned marine spheres so they can move (second half of why
+ marine spheres were broken). [Skotlex]
+ * Rewrote the produce system for mixed foods creation [DracoRPG]
+ * Small changes and optimizations to battle_calc_magic_attack, replaced redundant
+ magic_subrace with missing magic_addsize, updated crappy doc about it [DracoRPG]
+2005/10/22
+ * Modified Finger Offensive's formula to be 100% + 50%*skilllv which seems
+ to be a more factually correct equation than what is shown in the websites.
+ [Skotlex]
+ * Applied Ilpalazzo-sama's patch which speeds up the data zeroing in
+ status_calc_pc. [Skotlex]
+ * Crashfix on invalid lines when reading castle_db.txt [Skotlex]
+ * Updated GrandCross's damage formula according to Komurka's information.
+ [Skotlex]
+ * Also, now skills that ignore card modifiers only ignore the attacker's
+ card modifiers, no the target's (does not apply to skills like Pressure
+ that do fixed damage). [Skotlex]
+ * Updated Bowling bash damage, knockback to current Kro values. [Skotlex]
+ * Modified NPC_EMOTION and NPC_EMOTION_ON so they can be used to modify the
+ current mob's mode (instead of setting it). [Skotlex]
+ - Some examples:
+ 1269,Clock@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,0,6,4,300,,,
+ Adds mode 4 (aggressive) for 300 seconds to Clocks when attacking.
+ 1193,Alarm@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,4,10,,,
+ Removes the aggressive mode (4) from Alarms when chasing for 10 seconds.
+ - After a mob's mode is changed, their state is reset so they can stop
+ chasing/seek a target.
+ * Made GrimTooth be longranged, Soul Drain work only on targetted skills,
+ and Extremity Fist only checks for enemy state right before attacking (I am
+ not sure it is 100% as it should be still, though) [Skotlex]
+ * Eh.. now Safety Wall blocks all skills tagged as short-ranged. Report any
+ anomalies this causes. [Skotlex]
+ * Added support for global mob skills. In essence, you can now specify a
+ mob skill that is added to ALL mobs in a single line by using negative
+ class IDs. -1 adds the skill to normal mobs, -2 adds the skill to
+ bosses, and -3 to both. For example:
+ -1,All@AL_HEAL,any,28,10,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,
+ Adds Heal Lv10 to all normal mobs.
+ * Readded the level up buff bonus from the Taekwon class T.T [Skotlex]
+2005/10/21
+ * Removed the level up buff bonus from the Taekwon class T.T [Skotlex]
+ * Small change in mob_ai_sub_hard which may fix mobs casting their Rude
+ Attacked skill when they shouldn't. [Skotlex]
+ * Moved the code so that SNovice Steel Body should trigger inmediately upon
+ death, and bypass the exp loss penalty. [Skotlex]
+ * Added Taekwon boy to the buff on level up system. [Skotlex]
+ * Fixed Skills checking for water-cells instead of Land Protector cells.
+ [Skotlex]
+ * Added config option skillrange_by_distance, makes skills be long/short
+ ranged based on the source/target distance. Defaults to 6 (mobs + pets).
+ [Skotlex]
+ * Fixed Magic Power totally messing up matk. [Skotlex]
+ * Fixed Meteor Storm [Skotlex]
+ * Some changes to Moonlight Petals, it should make the skill finally be
+ considered an ensemble skill. [Skotlex]
+ * Updated skill_split_atoi to guess linear increases up to half of the data
+ provided. This means it can understand the more complex cast times of
+ skills such as Meteor and Soul Strike. If you provide the data of ten
+ levels, then it will check for patterns up to 5 steps long (meaning that
+ the diff between 1 and 6 is the same as the diff between 2 and 7 and so on,
+ and if they all match, the tested pattern is applied all the way to level
+ 100) [Skotlex]
+ * Some modifications to Magic Power, it should hopefully be working now. [Skotlex]
+ * Cleanups and fixes to Tarot Card. [Skotlex]
+ * Fixed a screwup in skill_split_atoi which was corrupting the skill db. [Skotlex]
+ * Free up block chunks allocated by the memory manager when shutting down [celest]
+ * Updated packets in packet_db and clif.c [celest]
+2005/10/20
+ * Turned on the error_log by default (had this been on before, I would had
+ noticed why Longing for Freedom was not working several WEEKS ago >.<)
+ [Skotlex]
+ * Fixed Longing for Freedom [Skotlex]
+ * Hopefully fixed even-share party on char relog exploit. [Skotlex]
+ * Modified Land Protector so it behaves more like Basilica. [Skotlex]
+ * Removed GM account reading from the char-sql server and moved it into
+ the login-sql server (Ancyker requested this was fixed... and this is how
+ it was working on the TXT servers) [Skotlex]
+ * Modified skill_split_atoi so it can guess linear changes in the values
+ and fill out the rest of the array correctly (eg: blowcount is defined as
+ 1:2:3:4:5, now the function can understand that and fill the rest of values
+ with 6:7:8:9:10 and so on. It can also understand two-step increases, if
+ the value is 1:2:2:3:3:4, it can guess that the following values should be
+ 4:5:5:6:6:7:7 and so on). This allows mobs to cast stuff like Thunderstorm
+ LV67 without the need of manually updating the dbs with the corresponding
+ values :O [Skotlex]
+ * Fixed monster_ai&1 doing the opposite of what it should do. [Skotlex]
+ * Rewrote the skill unit reiteration code so that it'll work with any AoE
+ skill that is set to not reiterate in skill_unit_db.txt, when no
+ reiteration is set, the skill cannot be stacked with itself, but it can
+ be placed on top of other AoE skills (except for Pneuma, Safety Wall,
+ Warp Portal, Basilica and the Hunter traps who all have their own checks
+ hardcoded) [Skotlex]
+ * Modified the way Magic Power works for AoE magic skills, it should now
+ work correctly for all AoE spells including Meteor. [Skotlex]
+ * Added mode "change target" (0x200 = 512) to specify mobs that can change
+ target while attacking. Since no mob in the db has been updated yet to
+ include this mode, for the time being all aggressive mobs will also be
+ considered as "change target" types (which is how eA has been managing it
+ up to this point) [Skotlex]
+ * Added a check in status_check_skilluse to make AoE skills fail if the
+ caster is standing on Basilica. [Skotlex]
+ * Reduced a bit the size of the party structure. [Skotlex]
+ * Fixed Play Dead [Skotlex]
+ * Reverted a memory fix in script.c which causes a crash.. [Skotlex]
+ * Reverted a small change which likely made magic power not work anymore on
+ ground skills. [Skotlex]
+2005/10/19
+ * Added an SQL update update_logs2.sql Use it for more effecient work of your MySQL server [Luups]
+ * Likely fixed Root and the Wedding Skills [Skotlex]
+ * Fixed that crash in skill_use_id.. oops. [Skotlex]
+ * Fixed demonstration triggering status effects. [Skotlex]
+ * Fixed ground placed skills causing skill_counter_additional_effect
+ triggering on the skill's owner. [Skotlex]
+ * Added corrections/checks that should prevent the char servers from
+ crashing if they parse a packet from a client where the session data is
+ expected to be but is not set. [Skotlex]
+ * Converted NPC_STOP to a status-inducing effect, SC_STOP which prevents
+ characters from moving. [Skotlex]
+ * General checks and cleanup (new function pc_can_move) to prevent chars
+ from walking when they shouldn't be able to. [Skotlex]
+ * Some changes to int_party, which may prevent crashes due to large parties
+ in congested situations. [Skotlex]
+ * Software Caused Connection Abort errors should inmediately terminate the
+ connection now (rather than waiting for the timeout) [Skotlex]
+ * Hopefully fixed Basilica by making battle_check_target use the mapcell
+ instead of the status change when deciding the enemy state. [Skotlex]
+ * Fixed being able to enable NPC clicks while a trading window is open. [Skotlex]
+ * Added status change SC_MODE which allows to temporarily override a mob's
+ mode. It can be invoked through mob skills NPC_EMOTION and NPC_EMOTION_ON
+ using the second and third value (new mode and duration in seconds,
+ respectively). Example:
+ 1269,Clock@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,0,6,133,300,,,
+ Makes the Clock do the /an emotion, and his mode changes to 133 (can
+ move, can attack, aggressive) for the following 300 seconds (if the mode
+ is 0, then the mode is not changed).
+ - Note that when a mob gets their mode changed, their state is reset (so
+ they stop attacking/chasing)
+ - Because of this update, the code that made mobs give up chasing after a
+ while is no longer needed and hence, removed.
+ * Implemented function status_check_skilluse which checks whether a skill
+ (or melee attack) can be used on an enemy based on their status (restricts
+ skills that may be used if opponent is cloaked/hidden, or blocks Aex
+ Aeterna if opponent is petrified/frozen, blocks skills while silenced, etc
+ etc). Note that the code simplification/modification is big, so beware of
+ any new bugs that might have been caused by the function. [Skotlex]
+2005/10/18
+ * Fixed card set bonuses for sure this time (or so I hope) [Skotlex]
+ * Fixed the Dissonance song bug which allowed you to cast a song afterwards
+ and it would not follow you around. [Skotlex]
+ * Modified the counting function to never count in skills (traps, AoE
+ skills) since traps were always being counted in for stuff like Napalm
+ beat/Blitz Beat/etc. [Skotlex]
+ * Fixed Devotion/Sacrifice check which should enable recasting on
+ characters. Thanks to Irmin for pointing it out. [Skotlex]
+ * Fixed offensive heal so it fails if not used on an enemy (instead of
+ failing when used on an ally). [Skotlex]
+ * Modified the char servers so they do a party range check when a character
+ logs in. This should fix parties keeping their even share even after a
+ low-level member rejoins the server. [Skotlex]
+ * Updated mob AI so that aggressive mobs will change targets if they are
+ attacked and their current target isn't attacking them (regardless of
+ range) [Skotlex]
+ * Some updates to the pet AI so their chase range is range3 instead of the
+ hardcoded value of 13. [Skotlex]
+ * Reverted Mika's fix since it makes it impossible for mobs to heal each
+ other. (what is the so called exp bug about?) [Skotlex]
+ * Fixed a possible crash in clif_equiplist(), thanks to Zoc [Skotlex]
+ * Spells are now considered a "miss" if they do no damage (this prevents
+ additional effects from triggering out such as freezing) [Skotlex]
+ * Temp bug fix of Exp increase when healing non-undead mob (by MiKa) [Lupus]
+2005/10/17
+ * Updated sql-files/mob_db.sql to match with the current one. [Skotlex]
+ (someone else also did this, but missed a few values from Incantation
+ Samurai. Altough who did it and why it is failed to be mentioned in the
+ log files?) [Skotlex]
+ * Fixed alchemists not being able to hit their marine spheres (how many
+ times this same bug keeps coming back from the dead anyway?) [Skotlex]
+ * Updated sql-files/item_db.sql to the current item_db.txt [Skotlex]
+ * Fixed magic rod not cancelling the additional effects from skills. [Skotlex]
+ * Cleaned up the card inserting code to prevent crashes from modified
+ packets. [Skotlex]
+ * Fixed offensive heal [Skotlex]
+ * Applied a random chance when reducing the mob's chase duration. This
+ should randomize how long the mob chases you around before giving up.
+ [Skotlex]
+ * Some modifications to the timer push heap function, may fix timer issues
+ when creating timers with tick values that overflow. [Skotlex]
+ * Modified the mob ai so it has a seek time, when the min_chase runs out
+ (it is constantly decreased while chasing, starts out at range3) the mob
+ will stop chasing, do a /swt, and stop being aggro for 10 secs. This is how
+ it should be according to what I understood from Komurka's explanation.
+ [Skotlex]
+ * Added config monster_ai, it determines some of the mob behaviour:
+ - If &1, mobs will use hard path finding to reach their target, otherwise
+ only easy (straight line) path searches will be used (for most offensive
+ purposes).
+ - If &2, mobs will use the rude attacked skill if they can't attack back no
+ matter what, otherwise they use it only if they can't reach the target.
+ [Skotlex]
+ - Still pending on what other things it could define. Currently defaults to
+ 0 (seems to be the official mob ai) [Skotlex]
+ * Now Atk/Matk potions duration don't get automatically multiplied by 1000,
+ duration must be specified in ms in the scripts. [Skotlex]
+ * Made all mobs with no guild belong to the same guild, this should prevent
+ mobs from attacking each other on WoE. [Skotlex]
+ * Fixed Into the Abyss + retrieving traps related exploits. [Skotlex]
+ * Changed monster_skill_nofootset to no to enable mobs casting stuff like
+ Bomb underneath characters. [Skotlex]
+ * Fixed Sacrifice, it can now be recasted on a player as long as it's by
+ the same crusader that is currently protecting the player. [Skotlex]
+ * Fixed some unitialized values error in magic and misc attacks. [Skotlex]
+ * Fixed 30% bonus from upper/baby classes affecting card bonuses. [Skotlex]
+ * Fixed baseClass not working on Acolyte class, thanks to Silent. [Skotlex]
+ * Made the stone curse animation only show up on successfully cursing. [Skotlex]
+ * Added Meditation's bonus to offensive heal, thanks to Orn. [Skotlex]
+ * Made devotion fail when already used on a char with that effect. [Skotlex]
+ * Made it so you can't quit while cloaking/hiding, and said status will end
+ on quit if force-quitting. [Skotlex]
+ * Cleaned up and fixed isequipped script commands, it should be working
+ correctly now (tested with the Assassin combo) [Skotlex]
+ * Fixed not stacking Long Attack Rate bonuses [Lupus]
+ - Bow Thimble +3%, Archer Skeleton Card +10%, Merman Card(when CARDS COMBO) +20%
+ - We should get rid of that +-15% ranged damage varianc (it doesn't cure "stoprate bug" anyways)
+2005/10/16
+ * Fixed wrong calculation of items max drop chance (when using MySQL MOB DB) [Lupus]
+ * Added nomemo mapflag to more levels of Thanatos Tower, thx2Justin84 [Lupus]
+2005/10/14
+ * Updated the gvg_dungeon mapflag to mean "guild versus guild regardless of
+ woe schedule" and set it on the guild versus guild maps. [Skotlex]
+ * Fixed perfect hiding. [Skotlex]
+ * Cleaned up (or rewrote?) the Run and High Jump code to merge them better
+ with the normal walking routines. [Skotlex]
+ * Corrected Turn Undead from ignoring element. [Skotlex]
+ * Updated Power Thrust Max & Power Thrust so that they don't stack (and
+ only PT Max cancels PT) [Skotlex]
+ * Some fine tuning in battle_check_attackable. [Skotlex]
+ * Changed db_final's implementation to End of Exam's. [Skotlex]
+ * Corrected Guardian removal routines to also update/save their respective
+ Castle data (Guardian HP and visibility) [Skotlex]
+ * Added map server setting "enable_spy", must be set to yes/on for @spy
+ commands to work. [Skotlex]
+ * Applied End of Exam's fix to the previous fix to the db. [Skotlex]
+ * Fixed spyguild/spyparty sending packets to the spied guild/party instead
+ of your own. [Skotlex]
+ * Rewrote the card hash implementation. Now it should work correctly for
+ any card set on any equipped item. Supports up to 4 slots in any of the
+ equipped items. [Skotlex]
+ * Updated the mob ai so it stops chasing right away if you
+ hide/cloak/vanish/etc. [Skotlex]
+ * Fixed some memory issues in the db handling. Credits to End of Exam.
+ [Skotlex]
+2005/10/13
+ * Updated the main.sql file with some of the recommendations by Zoc
+ [Skotlex]
+ - If your sc_data table works as it is, you don't have to touch it.
+ * Fixed Maxmize Power/Cloaking sending the sever to an "infinite loop" when
+ used by mobs. [Skotlex]
+ * Some cleaning to clif_send in regards to guild-related packets. [Skotlex]
+ * Added mob skill condition "afterskill", works like "skillused" except
+ it's triggered after the mob was the one doing the mentioned skill.
+ [Skotlex]
+ * Small cleanup and optimization of data saved when received member
+ information. [Skotlex]
+ * Fixed some memory issues in script loading and the plugin loading
+ mechanism. [Skotlex]
+ * Fixed magic attacks always doing minimum damage. [Skotlex]
+ * Fixed the crash in battle_check_attackable [Skotlex]
+ * Fixed Fireball hitting twice on the targetted mob. [Skotlex]
+ * Updated Recall Guild to work in gvg maps even if the nowarp flag is set.
+ [Skotlex]
+ * Updated Recall Partner to warp partner after 20 secs the thing is on the
+ ground, skill is blocked from reusage during that time. [Skotlex]
+ * Some updates to correctly decide whether skills hit cloaking and/or
+ hidden chars. [Skotlex]
+ * Updated skill code so that heaven's drive will hit and destroy traps
+ (untested), also AoE skills will not trigger on hidden characters. [Skotlex]
+ * Fixed the crash on magic rod. [Skotlex]
+ * Updated Maximize Power and Cloaking to last forever (until reuse, I
+ believe) for non-players. [Skotlex]
+ * Made Berserk end when you logout. [Skotlex]
+ * Made song/dances end when you unequip your weapon rather than on equip.
+ [Skotlex]
+ * Fixed one bug in battle_calc_magic attack and some cleaning of it as
+ well. [Skotlex]
+ * Updated sql-files/mob_db.sql to match the latest mob_db.txt [Skotlex]
+ * Updated sql-files/item_db.sql to match the latest item_db.txt. [Skotlex]
+ * Fixed stealing. Now it works like aegis one. [Lupus]
+2005/10/12
+ * Fixed everyone gaining high speed after casting a ground-based skill.
+ [Skotlex]
+ * Corrected the magical part of Soul Breaker ignoring mdef. [Skotlex]
+ * Updated Reverse Orcish to use the duration specified for the skill in
+ skill_cast_db.txt [Skotlex]
+ * Modified REVERSEORCISH to make it a status change (SC_ORCISH), since
+ there's no data about duration, defense, or if any stat reduces it's
+ duration, it currently is fixed to 5 minutes. [Skotlex]
+ * Fixed crash when sending the insert card packet with an invalid index. [Skotlex]
+ * Added script constant baseClass. [Skotlex]
+ - Example: if (baseClass == Job_Novice) will match on all novices and super
+ novices. if (baseClass == Job_Swordman) will match on all Swordmen, Knights
+ and Crusaders. Once tested several item scripts can be simplified in the
+ item_db.
+ - In contrast, the already defined baseJob works by stripping the upper
+ kind only. (eg: baseJob == Job_Swordman matches on swordman classes, but
+ not Crusader/Knight)
+ - I know the names can be confusing, but anyone has a better suggestion for
+ a name?
+ * Added a fix to prevent people from buying equipment in stackable from by
+ hexing the packets and specifying an amount greater than 1. [Skotlex]
+ - Thanks to End of Exam for pointing out the exploit.
+ * Added flag "move delay" to skill_castnodex_db.txt [Skotlex]
+ - By setting this flag to 1, players won't be able to move during the skill
+ delay time. Some reorganization was needed in skill.c to make room for
+ this, so some testing is required.
+ * Fixed the Char SQL server unnecessarily loading AND saving parties each
+ time a party-member changed maps. [Skotlex]
+ * Modified skill_min_damage so that it defines the minimum damage for
+ skills IF the skill does not misses/is blocked. Can be used to specify
+ to any of weapon attacks, magic attacks, or misc attacks. Defaults to 6
+ (magic + misc attacks) as that is what was set up previously. [Skotlex]
+ * Fixed Wand of Hermod and a potential crash related to ground based
+ skills. [Skotlex]
+ * Probably corrected npc load count when using reloadscript. [Skotlex]
+ * Likely fixed petheal [Skotlex]
+ * Fixed PVP client crash bug. By a new cadidate into eA coders LuzZza [Lupus]
+ * Updated maps comments, thanks to Justin84 [Lupus]
+2005/10/11
+ * Fixed not being able to cast resurrection on dead players. [Skotlex]
+ * Fixed party HP update crash. [Skotlex]
+ * Fixed players being killed always in one hit. [Skotlex]
+ * Fixed chars not being able to unhide. [Skotlex]
+ * Rewrote/optimized the hp updating code (both party hp and disp_hpmeter),
+ this should lower bandwidth a bit from all the unnecessary packets that
+ were previously being sent. [Skotlex]
+ * Removed the mysterious 2.2% drop chance for all items when read from the
+ sql db. [Skotlex]
+ * Updated targeted skills and normal attacking to fail when targetting
+ hidden characters. [Skotlex]
+ * Merged reddozen and Draco's code regarding TK skills. [Skotlex]
+ * Added a function to allow guilds to delete alliances with nonexisting
+ guilds. [Skotlex]
+ * Corrected the weapon damage return in battle_weapon_attack, thanks to PeF
+ for pointing it out. [Skotlex]
+ * Added max_baby_parameter to define the max parameter for baby classes.
+ Also fixed some instances where the baby parameter restriction was not
+ being taken into account. [Skotlex]
+ * Fixed Firewall doing knockback on the undead. [Skotlex]
+ * Fixed Waterball count when casted by non-players, thanks to Orn [Skotlex]
+ * Fixed the instrument/whips gender restriction being applied to Cap. [Skotlex]
+ * Damn typo: Fixed Mobs Drops with the same % droprate. thanx 2rover 4bugreport [Lupus]
+ * Fixed SQL Mob DB reading(no drops issue, etc) thanx to yoanykim for pointing it out [Lupus]
+2005/10/10
+ * Probably fixed the peco-riding issue. [Skotlex]
+ * Fixed clif_clearchar_delay (cause of the ghost mobs from my tests). [Skotlex]
+ * Small fix on the mob ai (attacked_id was never being reset if the
+ attacker no longer exists). [Skotlex]
+ * Added a couple of checks to prevent the mob_ai from executing if the mob
+ is dead. [Skotlex]
+ * Fixed a typo in skill_attack which causes all sort of unpredictable
+ behaviour, such as firewall never hitting. [Skotlex]
+ * Fixed a memory leak involving pets and cast cancel. [Skotlex]
+ * Made Wand of Hermod end when the caster is moved for whatever reason. [Skotlex]
+ * Increased the random damage delay modifier to +/-15% [Skotlex]
+ * Fixed "rare drop filter" considering "available in shops only items" as RARE items [Lupus]
+ * The GM can drop level now also determines whether a GM can store items in
+ the Guild Storage or not. Thanks to Kayla for pointing it out :P [Skotlex]
+ * Fixed Grimtooth so that it's slowdown works on both players and mobs.
+ [Skotlex]
+ * Fixed Fireball's damage. [Skotlex]
+ * Now the Wedding Dress and Tuxedo will always check for the correct
+ gender. [Skotlex]
+ * Cleaned up the code for Potion Pitcher. [Skotlex]
+ * Reverted Falcon Assault to be 5x Blitz Beat's damage at level 5. [Skotlex]
+ * The npc_counter is now reset in a @reloadscript. [Skotlex]
+ * Cleaned up Falcon Assault and made it's %dmg increase be an addition on
+ top of Blitz Beat (altough I am not so sure that's right) [Skotlex]
+ * Hardcoded the gender restrictions for items with view 13 & 14 (Musical
+ Instruments and Whips), changed ignore_item_genders to yes as default. [Skotlex]
+ * Changed GX duration to 900ms. [Skotlex]
+ * Cleared up the item get times descriptions in battle_athena.conf [Skotlex]
+ * Some timer fixes in status_change_start regarding sc_data loading. [Skotlex]
+2005/10/09
+ * Probably fixed Waterball so it does max number of hits when casted by a
+ non-player regardless of water availability. [Skotlex]
+ * Fixed perfect hiding. [Skotlex]
+ * Corrected magic damage return to only work on targetted skills [Skotlex]
+ * Some cleaning up of the skill_attack function. [Skotlex]
+ * At last finished 2 last logs filters options: [Lupus]
+ - Implemented 'Rare' items option (you can set rare_items_log value)
+ - Implemented 'Big amount' of items option (it would always log big set amount of items (per 1 action!) despite on the other filter option)
+ * Updated @iteminfo ATcommand. It would show you additional item info. [Lupus]
+ - Monsters drop this item with ?.?% chance
+ - Monsters don't drop this item
+ - This item is available in the shops only
+ - Tip: When you Trade/Vend goods, use @iteminfo to check items price and even rareness ^_-
+ * Rearranged item_data struct units to make it compatible with some old script commands after Skotlex's changes
+ - Tip: Now you can use GetItemInfo script command to find out if the item is rare or not
+2005/10/08
+ * Some improvements to the mob ai. [Skotlex]
+ * Fixed summoned marine spheres exploding on their own. [Skotlex]
+ * Probably fixed the attribute fix for magical attacks. [Skotlex]
+ * Made the gender check to not be ignored by default [Skotlex]
+ - This is necessary because the new job ID system makes both Dancer and
+ Bard be treated as the same job, so all bard/dancer comparisons were
+ changed to be gender comparisons, thus, the gender check is indispensable
+ for their weapons.
+ * Updated item_db structure. new column upper (after equip_jobs) defines
+ the type of job that can equip the item (1: Normal jobs, 2: Upper jobs,
+ 4: Baby jobs), merged the use_script and equip_script columns into one.
+ Also the equip_jobs column now has support for the following classes:
+ Taekwon (2^24), Star Gladiator (2^25) and Soul Linker (2^26)
+ The provided db/item_db.txt and sql-files/item_db,sql are already updated
+ with all the necessary changes (all equipable/usable items have their
+ upper set to 7)..
+ - Lupus, Nexus, get working on updating the item_db.
+ * Made FrostJoke/Scream work the same way out and inside woe grounds.
+ [Skotlex]
+ * Corrected Grand Cross Damage [Skotlex]
+2005/10/07
+ * Took out Lighthalzen's noteleport mapflag. Added it by accident. [Nexon]
+ * Some commented code cleanup and help.txt update [Foruken]
+ * Applied Draco's fixes to battle_calc_magic_attack. [Skotlex]
+ * Modified @showexp and @showdelay so they will work as people would expect
+ them to. [Skotlex]
+ * Figured out what ## variables are, and documented it on
+ doc/script_commands.txt [Skotlex]
+ * Foruken pointed out that the actual script problem was a certain
+ acalloc() that was changed to realloc(), so undid the last revert and
+ reverted this one instead. [Skotlex]
+ * Fixed a char-sql issue where character variables seemed to be saving
+ incorrectly. [Skotlex]
+ * Removed a free() that was added on R3421 that was supposed to fix a
+ memory leak but instead causes crashes :/ (so the memory leak is back in
+ there, but no more crash) [Skotlex]
+ * Applied End of Exam's script engine patch. [Skotlex]
+ - This adds support for nested blocks, if/else, fors, switches. See
+ <http://eathena.deltaanime.net/board/index.php?showtopic=50037>
+ for more information. Note that he admits it is not fully tested, so be
+ careful when trying out the new commands!
+2005/10/06
+ * Some corrections to the script engine, should fix a few memory leaks.
+ [Skotlex]
+ * Minor corrections to the screen output of the char_sql server when
+ saving. [Skotlex]
+ * Corrected authorisation issues in msg_athena.conf [Skotlex]
+ * Updated Wand of Hermod [Skotlex]
+ - Can't amp out of it.
+ - Affects everyone
+ - Only prevents people from casting supportive skills.
+ * Fixed mobs not doing their "rude-attacked" skill. [Skotlex]
+ * Corrected casters being able to walk during Wand of Hermod [Skotlex]
+ * Made Guild Recall be usable outside of WoE. [Skotlex]
+ * Changed the default gvg_traps_target_all to yes. [Skotlex]
+ * Changed the default for copyskill_restrict to 2 (cannot copy advanced
+ skills) [Skotlex]
+ * Added a bunch of code related to the 2nd job quest skills and Tae -second
+ classes skills, as provided by Draco and acquired from jA [Skotlex]
+ * Merged Draco's implementation of battle_calc_magic_attack. [Skotlex]
+ * Modifications to the mob AI to more accurately use Range2 (mob's sight
+ range) and Range3 (mob's chase distance ability) [Skotlex]
+ * Cleaned up item_db.txt, updated sql-files/item_db.sql to match. [Skotlex]
+ * Added logarithmic drops support for TXT itemdb loading (how could I had
+ forgotten that?) [Skotlex]
+ * Added battle options item_rate_treasure, item_drop_treasure_min,
+ item_drop_treasure_max, these override all other rate options when it comes
+ to Treasure box drops. [Skotlex]
+ * Cleaned up battle_athena.conf regarding drop rates. mvp_item_rate has
+ been changed to item_rate_mvp. [Skotlex]
+ * Implemented Maya Purple card effect (you can see any hidden mob). Thanks to jA [Lupus]
+ * Updated functions: pc_calc_base_job,pc_calc_base_job2 [Lupus]
+ - They return 24:Taekwon, 25:StarGladiator, 27:Soul Linker
+ Now someone should UPDATE Job fields of item_db.txt for TK,SL,SG classes
+ then I'll remove ugly hardcoded "temp plug" from pc_isequip function
+ [Item_DB JOB field note]: We don't check Knight2,Crusader2,Star Gladiator2 bits,
+ so don't set them.
+ In other words we use only these bits:
+ 0-Novice,1-Swordman,2,3,4,5,6-Thief
+ 7-Knight,8,9,10,11,12-Assassin,14-Crusader,15,16,17,18,19,20-Dancer
+ 23-Super Novice
+ 24-TK,25-SG,27-SL
+ Don't ever use other bits e.g. for Advanced classes. It's useless
+ * Added Poring Box logs (into dead branch logs)
+2005/10/05
+ * Updated nomemo and noteleports for Lighthalzen/Einbroch/Einbech maps and others. [Nexon]
+ * Fixed the mob AI. [Skotlex]
+ * Updated alchemist_summon_reward [Skotlex]
+ - Summons now never give exp, and they may drop items according to setting:
+ 0: Never drop items
+ 1: Only Marine spheres drop items (default)
+ 2: All summons drop items.
+ (maybe a different battle option can be made to make summons give exp?)
+ * Simplified the Grand Cross code. [Skotlex]
+ It is now entirely a magical attack with extra damage of the form base
+ atk * skill% - armor def% - vit def. Note that weapon properties won't
+ apply now as well as many of the offensive cards (those that do not apply
+ to both magic and weapon attacks, that is), and the def penalty from
+ having many mobs targeted on one is not applying neither (so the full
+ def is being taken into consideration). Report any corrections further
+ needed.
+ * Cleaned up, organized and improved somewhat the mob ai code. [Skotlex]
+ (update and test at your own risk as I can't test it currently)
+ * Some corrections to the way the guild master's name is updated during a
+ gm change. [Skotlex]
+ * Added a check to avoid saving negative durations for status changes. [Skotlex]
+ * Added a check to avoid loading status changes with negative durations
+ (the walk freeze problems seem related to timers and sc_data loading, so I
+ am shooting in the dark here at possible problem sources) [Skotlex]
+ * Various cleanups to ensemble related code, Longing For Freedom may be
+ working now. [Skotlex]
+ * Added the water levels to ayo_dun01, gon_dun01 and lhz_dun03, thanks to
+ Master of Muppets [Skotlex]
+ * Made Autocounter trigger autospells (was not doing so because it's NK
+ defines it as a no-damage skill) [Skotlex]
+ * Some cleanups on the mob slave AI code. [Skotlex]
+ * Added battle config retaliate_to_master, defaults to yes. [Skotlex]
+ - Why? Because in official, summoned mobs are not attacked by other mobs
+ (speaking about alchemists), if you set this to no, then mobs will
+ retaliate against the summon (both @summon and alchemist ones).
+ * Some fixes to the way the guildmaster flag is being set and checked. [Skotlex]
+ * Made the skilllv be 1 if the client sends less than that (this is why
+ active guild skills were not working. For some reason the client was
+ sending a request to do the skill at level 0!) [Skotlex]
+2005/10/04
+ * Likely fixed Aeterna + Soul Breaker/Destroyer. [Skotlex]
+ * Some cleaning of the mob ai. May help with some of the current exploits.
+ [Skotlex]
+ * Corrected Mob_ai code to make supportive mobs properly gang up on
+ summons. [Skotlex]
+ * Moved the plagiarize code to execute it before dealing damage (because on
+ WoE you are auto-restored when you get killed, hence the player was 'alive'
+ and it would copy the skill when killed by it on WoE) [Skotlex]
+ * Fixed Classical Pluck blocking AoE spells. [Skotlex]
+ * Updated Spider Web code to not retrigger if already trapped by one
+ (needed because spider webs can now stack) [Skotlex]
+2005/10/03
+ * Fixed a mistake with my last fix. [Kevin]
+ * Fixed often occurring memory leak in clif.c. [Kevin]
+ * Made NPC_DARKCROSS work (it's just a copy of Holy Cross with dark
+ attribute) [Skotlex]
+ * Removed resetting the manner when a player is saved. [Skotlex]
+ * Cleaned up map reading code to make it remove maps that could not be
+ loaded. It prevents crashes related to maps that weren't correctly loaded
+ on startup. [Skotlex]
+ * Fixed Endure to make it add armor mdef. [Skotlex]
+ * Small fixes to updating the guild master's name during a guild master
+ change. [Skotlex]
+ * Some corrections to the mob ai to enable mobs to attack other mobs
+ (summoned ones, of course) [Skotlex]
+ * Updated autotrading so that the char will close the shop and quit the map
+ server automatically when there's nothing left to vend. [Skotlex]
+ * Added checks to prevent a char from joining/creating multiple chat rooms
+ (anti-crash fix, it is). [Skotlex]
+ * Cleaned up and restructured the mob item drop code. It also fixes a
+ possible crash during the autoloot check. [Skotlex]
+ * Reupdated Wind Walk to add +5% flee bonus... AGAIN. [Skotlex]
+2005/10/02
+ * Fixed STEAL issue. [Lupus]
+ - Any Mob has 10 drop slots. If we pick an empty one, then we check previous slot, until we find a slot with an item.
+ Then we apply STEAL FORMULA for the item. (During the tests I managed to steal 2 poring cards 8)
+ If a mod doesn't have any slots then STEAL fails.
+ - Possible exploit: If a mob (e.g. NEW MOBS) has only one rare drop, then STEAL would always try to steal that the only slot 8)
+ How to fix: I suggest to fill other empty slots with Jellopies or Apples with zero chance.
+2005/10/01
+ * Expanded NPC shop log info of sold items (cards, refine, etc) [Lupus]
+ * Fixed compile errors in converters [celest]
+ * Updating built-in zlib to 1.2.3 [celest]
+ * Added unzip functions to grfio.c [celest]
+ * Finished Fusion AF2 maps support - just put the .af2 files in the
+ afm folder and start the map server as usual [celest]
+ NOTE: It will need a new unzip library, so do 'make clean', or delete
+ 'Makefile.cache' before recompiling!
+
+2005/09/30
+ * Updated the slave warp code. Now when a master recalls their slaves,
+ these will be placed 'randomly' around the master in an area_size/2 range.
+ [Skotlex]
+ * Cleaned up the mob link (supportive mode) code to prevent wasting time
+ trying to link friends every 100ms. Now the interval for linking friends is
+ MOB_MINLINKTIME (1 sec currently) [Skotlex]
+ * Updated mob code so when a mob hits another, they set their 'attacked id'
+ to the mob in question, and not the mob's master. [Skotlex]
+ * Some cleaning up of the Taekwon stance skills. Added a attack delay when
+ they trigger (same way as triple attack delays your continous attack) [Skotlex]
+ * Modified the range check in skill_use_id/skill_use_pos so that if you try
+ to use a skill while moving, it will change your path to move one cell towards the
+ target before casting (as long as you are within one tile of being in
+ range). [Skotlex]
+ * Moved the bleeding reduction formula to status_change_start, modified the
+ formula to be (lv/5+vit)% reduction. [Skotlex]
+ * Fixed the blind duration reduction formula. [Skotlex]
+ * Upgraded Meteor Assault so you can specify the duration of
+ blind/stun/bleeding independently in skill_cast_db.txt [Skotlex]
+ * Made TK_JUMPKICK share the same code as Ashura Strike (just to see what
+ happens, both seem like they behave the same way, no?) [Skotlex]
+2005/09/29
+ * Some tweaks and fixes around status.c, may fix the timer mismatches of
+ status_change_timer. [Skotlex]
+ * Fixed a memory leak regarding pet status recovery scripts. [Skotlex]
+ * Added timestamp support. Set timestamp_format to whatever you want, and
+ it will print a timestamp in said format before every Show* message. They
+ can be set independently for each server (defined at login_athena.conf,
+ char_athena.conf and map_athena.conf). Default is using no timestamps. [Skotlex]
+ * Modified the new auth login system to take into consideration when the
+ client tries to connect before the character data arrives from the char
+ server. [Skotlex]
+ (seems to work well, but could use more testing)
+ * Corrected the description of the 'skill_add_range' switches and made them
+ default to 5. Still pending further tuning (the official value of these
+ switches should have is still unknown) [Skotlex]
+ * Added Demonstration to list of skills affected by
+ 'gvg_traps_target_all' [Skotlex]
+ * Likely fixed Firepillar triggering multiple times when many characters
+ step unto it. [Skotlex]
+ * Increased the damage delay randomizer to be +/-10% rather than +/-5%, may
+ fix 'stun-lock'. [Skotlex]
+ * Added Consumable items log into pick_log [Lupus]
+ - You can see logs when someone uses items (boxes, potions, etc)
+ * Added AtCommands/CharCommands items deletion/creation log into pick_log [Lupus]
+ * Removed some of the unnecessary verbose messages from the char server
+ during data saving. [Skotlex]
+ * Added the new "online check" system (more of a fixing of a system that
+ was already there but was half working) [Skotlex]
+ it is turned on/off by using the online_check config options for the
+ login and char servers.
+ - char server: When the check is on, players are kicked out of the char
+ server when their character is already online, and the map servers are
+ instructed to kick the account out as well. If there's no reply from the
+ map servers, the char is automatically set offline after 15 secs.
+ - login server: When the check is on, players get "rejected from server"
+ when the account is online already, and afterwards the char servers are
+ told to kick that account out (like in the first case), if after 30 secs
+ there is no reply from the char servers logging off the account, the login
+ server sets it offline on it's own.
+ - The checks are by default on as they are meant to prevent possible
+ exploits on multi-map servers.
+ - However, I have not figured out where exactly a char server gets to know
+ that a player has changed map-servers, so this could cause trouble in said
+ enviroments until I figure it out (it won't go out of sync forever since
+ the map servers do update their list of online characters every then
+ seconds) :/
+ * Fixed crash, related to STEAL logs [Lupus]
+ * Added TXT logs for Pick_log [Lupus]
+2005/09/28
+ * Added 'scripts items operations' and 'vending' into pick_log: [Lupus]
+ Tested with refine, getitem, getnameditem, removecards, etc commands. They are all supported.
+ Now you can see if a player breaks his armor in NPC Cards Remover, etc.
+ You can track down any item within a single DB.
+ You can make a SQL query to find which items are most popular, which quests are most popular, etc
+ Of course, it could help you to find your local items exploits, cheaters and unfail admins ^_-
+ - Added 'Autolooted' and 'Stolen' items into pick_log
+ - TODO: Add TXT logs
+ * Fixed JobMaster NPC. Thanks Amada [Kayla]
+ * Removed card-fix flag from Cart Termination. [Skotlex]
+ * Updated battle_check_target so that a mob will consither another mob an
+ enemy if either one has special mob ai (is a @summon or summoned alchemist
+ mob). Summons from the same master should not be attacking each other,
+ however I do think they will attack summons from another player. [Skotlex]
+ * Removed 10 chances to pick an item from STEAL skill (it should have only 1 chance) [Lupus]
+2005/09/27
+ * Corrected again Wind Walk. Just +5 flee at lv10, walk bonus does not
+ stacks with other speed giving skills. [Skotlex]
+ * Corrected Wind Walk's walk and flee bonus (walk was a +4*skill_lv%
+ increase! and flee was +5 flee, rather than +5% flee of your total).
+ [Skotlex]
+ * Added atcommand @changeleader, transfers the leadership of a party to
+ someone else. [Skotlex]
+ (defaults as a GM-level 10 command, not quite yet tested)
+ * Added delitem2 script command with script sample by Mihilion [Lupus]
+ * Removed the check that prevented chars from logging out during status
+ changes, as the current system should save and restore these correctly.
+ [Skotlex]
+2005/09/26
+ * Fixed MAX GUILD capasity in mmo.h to allow correct +6 Guild Extension [Lupus]
+ * Changed back the TIMER_MIN_INTERVAL to 50. Who changed it back to 25?
+ (svn3015 skotlex: Changed TIMER_MIN_INTERVAL to 25 (from 10), it probably needs to be bumped even higher, awaiting results from testers to see if a higher value would be needed.
+ svn1284 lupus: timers optimization / speed up / bug fix : no freezing mobs [TIMER_MIN_INTERVAL: 50->10])
+ (note to self: make this a setting in inter_athena.conf) [Skotlex]
+ * Guild Extension now adds 6 per level. [Skotlex]
+ * Added define ENABLE_SC_SAVING in common/mmo.h, comment/remove this line
+ to disable saving of status changes (temporary measure) [Skotlex]
+ * Updated Double Casting to only work on Firebolt, Coldbolt and
+ Thunderbolt. [Skotlex]
+ * Fixed cloaking/hiding. [Skotlex]
+ * Updates to status_change_start, scdata loading now should display on the
+ targetted player. [Skotlex]
+ * Removed card modifiers from Meteor Assault. [Skotlex]
+ * Corrected skill_out_range_consume so that spells effectively fail if the
+ target goes out of range. [Skotlex]
+ * Another another check on the new auth system which may help prevent
+ exploits. [Skotlex]
+ * General cleanup and code improvements needed because of the new auth
+ system. [Skotlex]
+ * Fixed a bug in the new auth system (TXT) which was causing the gender to
+ be pretty much randomly sent. [Skotlex]
+ * Fixed a bug in changesex at the TXT char server level. [Skotlex]
+ * Updated new logging system. Now logs TRADE, NPC Shops [Lupus]
+ * Fixed a possible exploit in the new auth system. Thanks to End of Exam
+ for the information. [Skotlex]
+ * Corrected True Sight critical bonus. [Skotlex]
+ * Water Ball will now do the full number of hits regardless of available
+ water when used by non-players. [Skotlex]
+ * Changed the emoticon delay to 1 second. [Skotlex]
+ * Zeny/item kill bonuses now work on all skills, and not just physical
+ weapon attacks. [Skotlex]
+ * Added official Ayothaya Town script by MasterOfMuppets [Lupus]
+ * Added new Players / Monster Drops / Pickups Logging system [Lupus]
+ - Changed new log table, now it has field 'type':
+ M = Monsters Drop, P = Players Drop/Take, L = Mobs Loot Drop/Take, T = Players Trade Give/Take,
+ V = Players Vending Sell/Take, S = Shop Sell/Take, N = NPC Give/Take
+ NOTE: 'looted drop' might has cards, refine, etc. 'common drop' has item w/o cards/refine
+ - Now you can see Players(cheaters) passing any items w/o trade
+ - Now MOBS+PLAYERS drops come in the same table (easy to query)
+ Poring -5 Apple
+ Zelgadis +5 Apple
+ - You can tell off monsters by their LOW id. < 2000~
+ - Negative value of AMOUNT shows that a mob, or a player has dropped that items amount
+ - Positive value of AMOUNT shows that a player has pickedup that items amount
+ - It works 5x faster than old DROPLOGS
+ - TXT logs don't work yet
+ - TODO: Add Autolooted & MVP items in the log, too.
+ - TODO: Add Mobs Looters DROP items in the log. (Now only attacked mobs log loot drops)
+ - TODO: Add Scripts/Vending logs
+
+2005/09/25
+ * Modified battle_weapon_delay so that additional status effects are
+ invoked even if the attack does no damage, as long as the attack connects
+ (that is, it is not a miss/lucky dodge) [Skotlex]
+2005/09/24
+ * Updated several mob stats for the Lighthalzen and later mobs from the
+ data provided by Viccious Pucca. [Skotlex]
+ * Updated sql-files/mob_db.sql to contain the most recent mob_db. [Skotlex]
+ * Added support for saving/loading status changes when characters log
+ in/out. [Skotlex]
+ - TXT users: the file used by default is scdata.txt, can be changed by
+ setting scdata_txt to something else in inter_athena.txt.
+ - SQL users the table used by default is sc_data, can be changed by setting
+ scdata_db to something else in inter_athena.txt. Use upgrade_svn3273.sql to
+ generate the new table.
+ - It is currently unknown the behaviour of restoring some status changes,
+ if any anomality shows up, do report.
+ - Currently, even thought the sc data is restored, the client does not
+ receives the packet telling them that the effect started (like Gloria, you
+ can see you have +30 luk, but the message is never there) nor the visual
+ effects are in neither. This is a side effect of starting the status
+ effects on a player before the client finished loading the maps and spawns
+ in the map. Will be fixed later.
+ * Some memory optimizations tothe new auth system. [Skotlex]
+ * Moved the charsave_method config to inter_athena.txt [Skotlex]
+ * Fixed Demonstration/Bomb getting 100% breaking chance on low skill break
+ rates [Skotlex]
+ * Fixed chars being able to cast skills while rooted if they didn't have at
+ least root lv1 [Skotlex]
+ * Removed Assert in pet_walk, use a less unstable debugging tool, causes
+ errors in remote shells. [Kevin]
+ * Fixed TXT char login with new auth system. [Kevin]
+ * Done: Adjustable players titles for @who, @who2, @who3 commands [Lupus]
+ - Check msg_athena.conf for new lines
+2005/09/23
+ * Software Caused Connection Abort errors will now cause said socket to be
+ removed inmediately from the listening list of sockets, this may help with
+ the lag issues that arise when said error occurs. [Skotlex]
+ * Fixed Demonstration having 100% breaking chance if you set skill breaking
+ chance to 0. [Skotlex]
+ * Swapped functions of @who and @who3 commands. Because it's a spoil [Lupus]
+ to show players locations. You may enable @who for your common players now.
+ there's a shortcut for @WHO: @W
+ * Started adding adjustable players titles for @who, etc commands [Lupus]
+ - e.g. Super Player, GM, GM+, etc
+2005/09/22
+ * Updated sql-files/item_db.sql to have the most current version. [Skotlex]
+ * Finished first part of new auth system, fully tested. Will reduce char->map
+ lag by whatever it is you are haveing. [Kevin]
+ * Added consideration of GrandDarkness in various code sections that were
+ only checking for Grand Cross [Skotlex]
+ * Deployed use of map_getallusers all over the map server where it makes
+ sense to include disconnected players. [Skotlex]
+ * Corrected map_getallusers to depend on the actual count of players in the
+ db rather than the variable users (prevents possible crashes if the two
+ differ) [Skotlex]
+ * Updated the player counting function so that it correctly accounts for
+ all players (including those not connected like in autotrade) [Skotlex]
+ * Characters will now automatically stand if Soul Drain is triggered while
+ sitting. [Skotlex]
+ * Set default option gvg_traps_target_all: no [Lupus]
+ - In kRO it used to be 'yes' some time ago but has been reverted back to 'no'
+2005/09/21
+ * Corrected an error in the way guild alliances were being counted, as
+ pointed out by Viccious Pucca. [Skotlex]
+ * Fixed and deployed map_getallusers() on atcommands @who, @who2, @who3.
+ [Skotlex]
+ - This function should enable the aforementioned commands to work even on
+ players who are in the server but are not connected (eg: autotrade
+ players). It is temporarily only deployed on the @who functions pending on
+ feedback (bug reports, anything) before going ahead and implementing it on
+ all relevant atcommand/charcommand/script functions.
+ * Replaced the trim() function with Furoken's implementation (it should
+ remove tabs, consecutive spaces and other such unwanted characters from a
+ char's name) [Skotlex]
+ * Updated doc/script_commands.txt to explain the upper parameter of the
+ function jobchange. [Skotlex]
+ * Corrected sql query errors when logging trades and vending. [Skotlex]
+ * Updated doc/script_commands.txt with the script commands I've modified
+ or added that are not yet described within. [Skotlex]
+ * Small fix to clif.c which corrects characters that can't log in again if
+ they log out when the char and map server are not connected. [Skotlex]
+ * Cleaned up all SQL error reporting. It now follows the same standard
+ everywhere, and is followed by a debug line which includes the file, line
+ number and contents of the attempted query which caused the error. [Skotlex]
+ * Corrected an sql logs error when selecting a character with special
+ characters (eg: single quotes) on it. [Skotlex]
+2005/09/20
+ * Changed Palm Strike's initial animation display. [Skotlex]
+ (it will show as a normal attack that misses instead of an skill, but at
+ least the animation delay is correct and the skill can be chained now)
+ * Adjusted Cart Revolution's damage to be based on the Cart's Max Weight
+ (instead of the hardcoded 8000w value) [Skotlex]
+ * Fixed a memory leak when pets cancel their casting. [Skotlex]
+2005/09/19
+ * Added error reporting an item in the item_db.txt file has insufficient
+ fields (rather than just crashing) [Skotlex]
+ * Updated the item_db to use the new race and element constants. [Skotlex]
+ * Fixed (I think) battle option muting_players. Defaulted it to yes. [Skotlex]
+ * Added timers for displaying guildmates position. [Skotlex]
+ - All the packet related code was already there by Valaris, so I wonder why
+ this wasn't finished before?
+ * Added battle_athena options max_def/over_def_bonus (read
+ battle_athena.conf for desc) [Skotlex]
+ * Added error reporting when the magreg file fails to be saved. [Skotlex]
+ * Made berserk castable during the no-regen period when it expires. [Skotlex]
+ * Fixed a query error on sql refine logging. [Skotlex]
+ * General checks to the script engine string management. Should fix a bunch
+ of memory leaks. [Skotlex]
+2005/09/18
+ * More updates to status change IDs [DracoRPG]
+ * Implemented TK_SEVENWIND, allowed simultaneous use of several stances, thanks to
+ reddozen for all the info about that [DracoRPG]
+ * Allowed to pickup/drop items while in Frenzy [DracoRPG]
+2005/09/17
+ * Added a check that should prevent fighting against other guilds outside
+ of WoE times. [Skotlex]
+ * Hopefully fixed Hunter's Dectect skill. [Skotlex]
+ * Fixed the packet issues on the char txt server. [Skotlex]
+ * Miscellanous corrections to skill_attack. [Skotlex]
+ * Corrected the AutoSpellWhenHit rate of all items in the db (TXT + SQL)
+ [Skotlex]
+2005/09/16
+ * Reverted some of the contents of skill_unit_move_unit_group since the
+ previous algorithm was optimized. Walking during a Song/Dance should be
+ smooth again. [Skotlex]
+ * Rewrote the guild gm changing system. [Skotlex]
+ - @changegm works now (tested in SQL, TXT should also be working)
+ - Added script command "guildchangegm <guild id>,<new master's name>". Now
+ go write some Guild Master changing npc if you want it to cost money, have
+ a minimum guild level requirement, etc.
+ * Added Ishizu's logarithmic drops equation. [Skotlex]
+ (see battle_athena.conf for full details)
+ * Added a sub-function call to clear Castle owners when their guild is
+ broken. [Skotlex]
+ * Added a char-server call to clear the alliance when a guild is broken
+ (when a guild breaks, the alliance/opposition is removed from memory on the
+ map server, so it seems said change is not sent/saved on the char-server
+ side?) [Skotlex]
+ * Added script function sc_start4, starts an status change with all four
+ values. [Skotlex]
+ Use: sc_start4 TYPE, DURATION, VAL1, VAL2, VAL3, VAL4, <target ID>
+ * Added SC_ARMOR_ELEMENT/SC_DefEle, specifies elemental defense bonus
+ against two elements at a time. For example:
+ sc_start4 SC_DefEle, 60000, Ele_Fire, 20, Ele_Wind, -15;
+ Gives 20% additional fire resistance and reduces 15% Wind resistance for
+ 60 seconds.
+ * Expanded battle_attr_fix to consider the status changes of the involved
+ chars that affect elemental modifiers. [Skotlex]
+ * Fixed some status effects not being correctly ended/recalculated when you
+ stepped out of quagmire/song/dances. [Skotlex]
+ * Made quagmire be affected by the "gvg_traps_target_all" battle switch. [Skotlex]
+ * Added Bloody Branch log (along with Dead Branch) [Lupus]
+2005/09/15
+ * The skill Vending will now fail on GM characters who do not satisfy the
+ gm_can_drop level requirement. [Skotlex]
+ * Updated the sql-files mob_db.sql and item_db.sql files to the current
+ version (just feed'em to sql to have your item_db and mob_db tables
+ updated). [Skotlex]
+ * Now @allskill and it's ilk will give you ALL skills except the ones
+ marked as "npc skills" (those have an inf2 value of 2). [Skotlex]
+ * Some code optimization around song/dances, now the ensemble should be
+ cancelled if you walk (or are knocked out or whatever) out of it.
+ [Skotlex]
+ * Added log support to N slots. Now all cards should be logged [Skotlex]
+ - Note that I have not been able to test it yet, so report back any
+ problems caused by it.
+ * Fixed a memory leak when removing disconnected chars. [Skotlex]
+ * Re-enabled the Memory Manager by default. [Skotlex]
+ * Updated atcommand @rates so that it displays current exp rates in x form
+ (eg: "Current rates: Base 4.5x, Job 8.0x") as suggested by Mellowz.
+ [Skotlex]
+ * Corrected resetskill messing up with Wedding Skills. [Skotlex]
+ * Some adjustment to the status change defense (as per data provided by
+ Viccious Pucca) [Skotlex]
+ * VVVS weapons now give +50 damage instead of +40 (again thanks to
+ Viccious) [Skotlex]
+ * Success rate of making Star Crumbs now is 100% (regardless of skill
+ level?) [Skotlex]
+ * Couple of crash fixes on the map-server char saving method
+ (char_save_method: 1) [Skotlex]
+2005/09/14
+ * Yet another correction to SQL char saving. [Skotlex]
+ * Added support for N slots. [Skotlex]
+ - By changing the constant MAX_SLOTS in common/mmo.h, the server can be
+ configured to support items with more than 4 slots. Saving/Loading and
+ inserting of cards should be working correctly. Features still missing
+ are including the extra slots in the log functions and updating clif.c to
+ send the extra cards to the client (This is still work in progress).
+ - SQL Users interested in using this, need to manually add columns card4,
+ card5 and so on to the relevant tables (cart_inventory, guild_storage,
+ inventory, storage), example query:
+ ALTER TABLE inventory ADD COLUMN card4 int(11) NOT NULL default
+ '0' AFTER card3;
+ - TXT users need do nothing, the char server handles the
+ expanding/contracting of slots internally (if the number of slots is
+ shrinked, the additional slotted cards are lost)
+ - Never set the amount of slots to less than 4, as they are needed for
+ forged equipment.
+ * Likely fixed Lex Divina. [Skotlex]
+ * Likely fixed sql char-saving, too. [Skotlex]
+ * Lex Divina can now be casted on allies as long as they are silenced.
+ [Skotlex]
+ * Fixed crashes on GVG grounds involving characters with no guild. [Skotlex]
+ * Added a few socket features from Freya which hopefully will help
+ stabilize eA on Windows (testing needed!) [Skotlex]
+ * Miscellanous fixes and rewrites to memitemdata_to_sql, it'll probably
+ fixed the stackable named items duplication exploit. [Skotlex]
+ (note that it is not tested, so there's the chance I broke everything
+ instead, so upgrade for testing purposes only and report back!)
+ * Changed HP/SP drain rates so that the max (100%) is 1000. Adjusted item
+ db accordingly. [Skotlex]
+ * Disabled chars from muting themselves (as a temporary measure against the
+ mysterious "don't use bot!" message) [Skotlex]
+ * Added atcommand logging for /monster and /item (not quite tested yet, but
+ I think it'll work) [Skotlex]
+ * Changed autospell rates so that the max (100%) is 1000. Adjusted item
+ database accordingly. [Skotlex]
+ * Reverted displayed heal value. [Skotlex]
+2005/09/13
+ * Fixed Basilica [Skotlex]
+ * Rewrote the mechanics of how Devotion works. [Skotlex]
+ * Updated Heal so that it displays on-screen the actual amount that was
+ healed. [Skotlex]
+ * Changed the damage motion equation to 1/4th of what it was before (now
+ using player_damage_delay_rate: 100 is what was player_damage_delay_rate:
+ 25 in previous revisions) [Skotlex]
+ * The login servers will now notify when a player has an account ID under
+ 700000 (which won't let them connect to the map server) [Skotlex]
+ * Added support for SC_BLEEDING in skill_counter_additional_effect &
+ skill_additional_effect [Skotlex]
+ * Changed bonuses bAtkRate, bWeaponAtkRate and bCritRate to modify
+ base+watk damage, not just watk. [Skotlex]
+ * Corrected coma-effect killing bosses. [Skotlex]
+2005/09/12
+ * Party even share code won't try to give dead players their share of the
+ exp (since pc_gainexp would refuse so anyway) [Skotlex]
+ * Added trim() usage to char servers to prevent creation of characters with
+ spaces at the beginning or end of name. [Skotlex]
+ (the client won't let me create chars with said names so I can't really
+ test it, but on the very least valid names are not crashing it as far as
+ I can see)
+ * Expansion/optimization of the skill unit code. Now it should be correctly
+ identified when a character walks into a skill cell, walks out of a skill
+ cell, and walks out of the skill group (performance optimization,
+ client-side: songs and dance effects will work correctly, and Quagmire
+ won't spam "speed up/down" messages). [Skotlex]
+ - Got basic testing only (casting, amp/encore, walking, being knocked back,
+ warping), so report any problems found.
+ * Bomb/Demonstration should now be cast-able under the Emperium. [Skotlex]
+ * Acid Terror now knows ignores armor defense, but not vit defense. [Skotlex]
+ * Added an official Bards Job Quest (check npc\changelog.txt) [Lupus]
+2005/09/11
+ * Changed back the default of gx_all_hit to no. [Skotlex]
+ * Added check to prevent ensemble skills from changing position. [Skotlex]
+2005/09/10
+ * Removed the changing of targets for offensive songs in gvg grounds. [Skotlex]
+ * Corrected Grand Cross not always hitting 3 times. [Skotlex]
+ * Fixed the display of Auto Counter. [Skotlex]
+ * Added check to prevent auto-spells from being casted when the source and
+ target are the same (normally you can't hit yourself, though....) [Skotlex]
+ * Fixed Root [Skotlex]
+ * Fixed the issue which made mobs do nothing. [Skotlex]
+ * Change Provoke to affect armor def of mobs, and vit def of mobs/players. [Skotlex]
+ * Another change to autocounter, I think it will work now. [Skotlex]
+ * Fixed Defender's aspd bonus. [Skotlex]
+ * Fixed rooted character's root level (instead of using the caster's level) [Skotlex]
+ * Windows builds will now abort and exit when there's a "Software Caused
+ Connection Abort" error since it seems unrecoverable.. [Skotlex]
+ * Reverted back my char.c/sql char.c changes 8) Have to re-check [Lupus]
+ * Added official Louyang city (thanks to MasterOfMuppets), fixed some Kafra bugs [Lupus]
+ check npc/changelog.txt
+2005/09/09
+ * Fixed TXT/SQL char servers not reading properly their command line arguments [Lupus]
+ * Refixed those compiler errors >.< [Skotlex]
+ * Readded the damage delay to firewall. [Skotlex]
+ * Added an extra db (pc_db) to hold players, it should speed up map_id2sd
+ lookups. [Skotlex]
+ (note that all functions which do a search on all connected players do a
+ linear search on the connection sessions, and porting this to use the new
+ system will take a pretty annoyingly long time)
+ * Added checks to prevent dropped items from stacking (they can still
+ stack, but at max 2 items per cell). [Skotlex]
+ * Added Guild removing from memory upon guild break to Char SQL server
+ (TXT already had this correctly) [Skotlex]
+ * Changed Provoke to reduce armor defense, not vit defense. [Skotlex]
+ * Likely fixed the direction check in Auto Counter. [Skotlex]
+ * Removed the console functionality from socket.c (it was no good on the
+ map server since that session is used on disconnected players), also added
+ more checks to prevent parsing session 0. [Skotlex]
+ * Added check to prevent skills from triggering auto-skills of the same id
+ (prevents unlimited chain-reactions) [Skotlex]
+ * General fixes to guardian spawning code. [Skotlex]
+ (includes setting a timer so the Emperium gets it's guild data if not
+ available at spawn time).
+ * When the Emperium's guild is not found (in mob_spawn_sub, 5 secs after
+ trying to spawn it) the Castle will be reset back to no guild owning. [Skotlex]
+ * Fix to battle_check_target, should correct guardians/emperium [Skotlex]
+ * Guardians will now be deleted if their guild is not found in
+ mob_spawn_guardian_sub. [Skotlex]
+2005/09/08
+ * Added filter into chat log. Check log_athena.conf for more info [Lupus]
+ - Now you can turn off logs during WOE, etc
+ * Made Musical Strike/Slinging Arrow work while in ensembles. [Skotlex]
+ * Oops, fixed the compile error. [Skotlex]
+ * Various checks to prevent trying to send data to disconnected players in
+ clif_send [Skotlex]
+ * Moved the auto-spell code from weapon attacks to skill_additional_effect
+ and skill_counter_additional_effect. [Skotlex]
+ - The autospells will trigger for all skills/normal-attacks except those
+ with nk =1 (no damage skill) which is needed to prevent stuff like
+ heal, traps or dances from triggering it.
+ - Does not affect SC_HINDSIGHT triggered spells.
+ - NOT properly tested as of yet, report any abnormalities and skills it
+ should/should-not be working with.
+ * Fixed the crash when attempting to target a Emperium. [Skotlex]
+ * mob_spawn_guardian will now 'retry' to load the guild data five seconds
+ later if the guild info is not available at spawn time. [Skotlex]
+ * Fixed disconnected chars appearing as GMs on the console. [Skotlex]
+ * clif_send_sub won't try to send any data to disconnected chars now. [Skotlex]
+ (may fix possible buffer overflow crashes)
+2005/09/07
+ * According to the patch, enabled Butterfly wings in the Castles [Lupus]
+ * Adjusted MAX_GUILD constant according to Skotlex's changes [Lupus]
+ * Now when the castle owner guild id is loaded, and the guild is not in
+ memory, the map server will request it right away from the char server. [Skotlex]
+ * Corrected Guild Extension to be +4 to the max guildmates per level. [Skotlex]
+ * Changed the default max vending value to 1 Billion [Skotlex]
+ * Inverted meaning of pvp_noguild and pvp_noparty flags. the default then
+ for all maps where they are not set is: You can't attack parties/guildmates
+ on pvp maps. [Skotlex]
+ * Updated mapflag/pvp_noparty to mark only the gvg arenas. [Skotlex]
+ * Added mapflag/pvp_noguild, by default includes all pvp arenas. [Skotlex]
+ * Cleared up some of the warning messages on mob_spawn_guardian. [Skotlex]
+ * Fixed the compile error on skill.c... [Skotlex]
+ * Changed offensive song/dances target to BCT_ALL when invoked in pvp/gvg
+ grounds. [Skotlex]
+ * Added unit flags UF_NOMOB, UF_NOPC to give better control on who gets
+ affected by ground skills [Skotlex]
+ * Fixed the possible crash in map_foreachinpath. [Skotlex]
+ * Removed the error message in mob_guardian_changeguild when the new guild
+ has ID 0, the mob will just be removed instead. [Skotlex]
+2005/09/06
+ * Changed Assumptio to target all players around target. Mobs are no longer
+ affected. [Skotlex]
+ * Fixed battle_check_target fails on guild-mates in pvp maps. [Skotlex]
+ * Reverted battle_check_target to prevent floras from hitting themselves
+ until a better scheme can be thought of. [Skotlex]
+ * Reorganized battle_weapon_attack to allow counter/root from blocking
+ autotriggered skills (like TripleBlows/Sacrificial Ritual) [Skotlex]
+ * Fixed that crash on mob_spawn_guardian. [Skotlex]
+ * Added battle option gvg_traps_target_all, defaults to yes for now. [Skotlex]
+ * Added Zoc's fix to @autotrade (which made traders unable to login again..
+ ever) [Skotlex]
+ * Massive Guardian update. [Skotlex]
+ - Rewrote the guardian stat-passing system to minimize the need of db
+ lookups. Should greatly reduce the heavy lagging during WoE.
+ - Not properly tested (lack of resources), update at your own risk AND
+ PLEASE report any crashes/problems.
+2005/09/05
+ * Fixed Endure. [Skotlex]
+ * Fixed Harmonic Lick not adding status change resistant. [Skotlex]
+ * Moved ensemble stats calculating from status_change_start to
+ skill_unitsetting (performance purposes) [Skotlex]
+ * Fixed song/dance effects lasting 30 secs rather than 20. [Skotlex]
+ (still somewhat inefficient, needs better handling method)
+ * Battle check target fix: Novices/Low levels being unable to target mobs. [Skotlex]
+ * Temporarily made traps not target allies on gvg (Still up for dabate) [Skotlex]
+ * Battle check target update: Summoned creatures won't be checked versus
+ their master, means you should be able to target them as if they were
+ normal enemies. [Skotlex]
+ * Made Shield Chain long ranged (it has to be affected by pneuma/defender). [Skotlex]
+ * Fixed both trader/seller not being saved when using autotrade. [Skotlex]
+ * Added debug messages to figure out who is causing the rain of function
+ mismatches on deleting skill_timerskill. [Skotlex]
+2005/09/04
+ * Fixed Trade Bug (when Trade Window indication was wrong). Thanks to k3dt
+ * Now Water Ball isn't affected by RAIN mapflag anymore. Also corrected
+ caclulation of number of WB shots (was broken by a typo) [Lupus]
+ - Rain has been removed from kRO long ago.
+ * Now Safety Wall fails to protect against Acid Terror. [Skotlex]
+ * Added battle_config option firewall_hits_on_undead (defaults to 1) [Skotlex]
+ The deal is that each time the skill triggers on an undead, this number
+ of hits will be dealt instead of just one.
+ PROs: With a value of 5 or so, vertical firewall will work completely.
+ CONs: A high value means the whole tile can be wasted killing a single mob.
+ * Fixed working stealing with NOLOOT mapflag on. Thanks 2Lorky [Lupus]
+ * Now Knockback won't work when the target is already dead (prevents
+ ghosts) [Skotlex]
+ * BSS now targets every player in the area of effect (might be updated to
+ include mobs pending on further information) [Skotlex]
+ * Acid terror is now considered a ranged attack. [Skotlex]
+ * Crash fixes to the npc-whisper system. [Skotlex]
+ * Fixed classchange-able Emperium/Guardians/Treasure Boxes, thanks to alsimons [DracoRPG]
+ * Fixed songs/dances, updated Hip Shaker [DracoRPG]
+ * Fixed some fields in sql-files\main.sql... Who the hell added back `broken`? The field
+ `attribute` is the good one! Also changed `fame` type to the same as `zeny` (same max
+ value in the source code, so samemax value in the SQL saves !) [DracoRPG
+ * battle_check_target update: Fixed BCT_NOENEMY checks. [Skotlex]
+ * Moved Mental Sensing bonus from pc_gainexp to mob_damage, it is now a
+ status effect which the mob itself needs to be inflicted with to take
+ effect (and everyone involved in killing it will benefit) [Skotlex]
+ * Pets now won't move while casting (unless their master is like a screen
+ away or so) [Skotlex]
+2005/09/03
+ * Fixed speed calc for pushcart/stalk/dancing/singing. [Skotlex]
+ * Some crash-fixes introduced by the rewritten status system. [Skotlex]
+ * Adjusted the default gvg penalty values, added gvg_flee_penalty. [Skotlex]
+ * Fixed skill_blown causing a dangling pointer in the map data. [Skotlex]
+ (I believe this is the actual cause of all the crashes as of late)
+ * Fixed @autotrade venders not being saved after they sell an item. [Skotlex]
+ Now both characters are saved to prevent exploits, too.
+ * Fix to mob_setdelayspawn, if lucky might help with the crashes as of late. [Skotlex]
+ * Added status effect SC_WATK_ELEMENT, converts part of your weapon attacks
+ into a different element. Used in magnum break to give 10% fire damage
+ bonus to your attacks. [Skotlex]
+ * Made firewall hits not have any "damage delay", it merely knockbacks. [Skotlex]
+ * battle_check_target update: added novice/low-level pk prevention on
+ pk_mode [Skotlex]
+ * testing new SVN location [MouseJstr]
+2005/09/01
+ * Entirely rewrote status_calc_pc and status_get_[stat] functions to have a clear code.
+ They all use shared status_calc_[stat] functions to handle SC effects, this will avoid
+ to have 2 almost identical codes in different places for those effects [DracoRPG]
+ --> It compiles, it runs, it seems to work but I couldn't perform any extended testing
+ as always, feel free to report bugs ;)
+ * Added battle_option "slaves_inherit_speed" to decide whether slaves have
+ or not the same walk speed as their master. Defaults to yes. [Skotlex]
+ * Removed val4 from song/dances so that they won't be as bugged anymore.
+ (still pending on Draco's status update, but at least now stuff like Poem
+ of Bragi shouldn't cause insta-cast) [Skotlex]
+ * Changed the way song/dance status effects last. The first time you step
+ in a tile the status starts for 30 secs, not refreshed until it times out.
+ Not the way it really should be, but it's much better for performance
+ issues.
+ * Fixed summoned slaves having the same walk-speed as their master (fixes
+ metamorphosis-hatched mobs from having an egg's speed). [Skotlex]
+ * Added fix_timer_heap, should correct timer problems when the tick
+ overflows. Does it works? We'll find out in 48 days when the next
+ loop occurs. [Skotlex]
+ * Another update to battle_check_target [Skotlex]
+ (Should fix slave-skills hitting a slave's master)
+ * Corrected magic_damage_return code being double-invoked. [Skotlex]
+ * clif_GM_kick will now invoke map_quit if the player doesn't has a session [Skotlex]
+ (this should fix @kick and other such commands on autotrade chars and the
+ like)
+ * Fixed pc_damage/mob_damage returning 0 instead of damage dealt (which in
+ turn made all attack/skills not trigger their additional effects) [Skotlex]
+ * Updated Assumptio to target everyone instead of "not enemies" [Skotlex]
+ * Fixed a fatal dangling pointer in the mob_setdelayspawn when handling
+ mobs that don't respawn. [Skotlex]
+ * Updated WE_CALLPARENT to not check for range (as it should?) [Skotlex]
+ * Added flag accreg_dirty to identify when account variables have not been
+ saved yet, it'll retry then on every call to save the character (it will
+ prevent account variables from being lost when the char/map connection is
+ not established)
+2005/08/31
+ * Updated @npctalk to work as it should [Skotlex]
+ - Usage @npctalk NPC Name, Your Message Goes here
+ * Fixed Wind Walk's flee/speed bonus (as pointed out by Viccious Pucca). [Skotlex]
+ * Fixed a crash in pc.c when the last save point was not found (thanks to
+ Foruken) [Skotlex]
+ * Rewrote map_foreachinpath, it should work mostly right now. [Skotlex]
+ (the path 'stops' at the destination point rather than keep going
+ forward, but it can probably be fixed later)
+ * Moved battle_config spawndelay adjustments from mob.c (calculating it
+ each time they were killed) to npc.c (calculate it once during parsing).
+ [Skotlex]
+ * Synchronized additional status effects with the delayed damage [Skotlex]
+ (this should fix eg: enemies freezing when you start the attack
+ animation, and then breaking the ice when your attack animation finishes
+ and the damage shows up)
+ * Moved knockback to effect after damage is applied. [Skotlex]
+ * Fixed the Wedding Skills not displaying the actual amount healed. [Skotlex]
+ * Moved skill induced status effects to take effect before knock back. [Skotlex]
+ * Refixed "Don't Forget Me" [Skotlex]
+ * Changed 'pet_hair_style''s description and default value to 100 [Skotlex]
+ (100 is the value being reported to work with current clients)
+ * Fixed Freeze 'counter' not resetting when killed. [Skotlex]
+ * Fixed Endure adding to mdef2 instead of mdef. [Skotlex]
+08/30
+ * Fixed Breaker's magical part of the damage having element -1 [Skotlex]
+ (now it takes neutral element, because I don't think the magical part of
+ an attack can get the weapon's property)
+ * Fixed Magic Crasher having the min/max values inverted. [Skotlex]
+ * Updated "Don't Forget Me"/"Slow Grace" to last 20 secs after you step out
+ of the dance-zone. [Skotlex]
+ * Changed the default of defunit_noenemy to no, and added comments
+ explaining what it REALLY does. [Skotlex]
+ * Fixed perfect tableture's lucky dodge bonus. [Skotlex]
+ * Updated slave ai code to let slaves wander freely on the screen (will
+ wander as far as battle_config.view_area lets them) [Skotlex]
+ * Splitted Char-sql status saving into status/status2, the later is for
+ values that will seldomly change. [Skotlex]
+ * Updated servers so that when the player changes dye or hair color, the
+ char-server is notified and the guild_member data is updated on all map
+ servers. [Skotlex]
+ * Updated servers so they also report on sex change. [Skotlex]
+ (altough this one I have no tested yet)
+ * Changed bGetZenyNum/bAddZenyNum to be a bonus2 type [Skotlex]
+ (eg: bonus2 bGetZenyNum 10, 30 <- Receive 10z per mob level on 30% of
+ your weapon-based kills)
+ * Added script function groupranditem(i), returns a random item_id from the
+ specified item-group given. [Skotlex]
+ * Changed bLongAtkRate bonus to be more card-like (works just like
+ bLongAtkDef, except it's for attack) [Skotlex]
+ * [SQL] Added Storage Items sorting by nameid. On loading. [Lupus]
+ * Added GetItemInfo(Item ID,n) script function. Returns Buy/Sell Price, Def, etc [Lupus]
+ added sample/getiteminfo.txt Tested, fully working!
+ * Added ID#2258 Spiky Band(Sharp Headgear) to allowed equipment of Star Gladiator [Lupus]
+ * According to the 23 Aug Patch added complete equipment check for 3 new classes. [Lupus]
+ Now they can't equip forbidden items 8)
+08/29
+ * Added battle config option pet_hair_style and defaulted it to 24 [Skotlex]
+ According to information relayed by End of Exam, this should fix the new
+ clients showing the sword cursor for pets (older clients will be the ones
+ screwed instead, in said case you'll want to change pet_hair_style to 20)
+ * Updated battle_check_target to take into consideration the special states
+ killer/killable. [Skotlex]
+ * Corrected the Fury Guardian Angel not giving +50 critical. [Skotlex]
+ * Made mob_walktoxy fail when the mob is dead. [Skotlex]
+ (may fix the phantom mob issue?)
+ * Updated spawn parsing to identify small/big mobs. [Skotlex]
+ Use the "event" field (last column, the one after the two spawn delays)
+ to identify the mob's size: 2: small mob, 4: big mob. 1-2 is not used
+ because a hella lot of plants/mobs already use 1 in it (even though eA
+ completely ignores this value)
+ * Inverted the meaning of mapflags pvp_noparty/pvp_noguild [Skotlex]
+ When the flag is set, then you should NOT be able to hit your
+ party/guild-mates on pvp grounds.
+08/28
+ * Fixed demonstration/Bomb stacking. [Skotlex]
+ * Fixed damage versus plants in BF_WEAPON attacks. [Skotlex]
+ * Fixed the whole sqrtl mess. Thanks to Shinomori for clearing things up.
+ [Skotlex]
+ * Added new maps, thanks to Poki#3 [DracoRPG]
+ * Switched SCs between two taekwon kicks to get the proper icon ^^ [DracoRPG]
+ * Added the falling animation to TK_HIGHJUMP, but now the client doesn't refresh the
+ position u_u [DracoRPG]
+ * Reverted default option to allow anyone to plagiarize advanced skill (vicious or
+ someone else - I can't remember xD - told me it was like this on kRO, but not yet on
+ iRO) [DracoRPG]
+08/27
+ * Fixed the cast-bar from autocounter not disappearing after triggering the
+ skill. [Skotlex]
+ * Updated battle_check_target to make marine spheres universal enemies, so
+ anyone can attack them. [Skotlex]
+ * Cleaned up item_db.txt (format, commas, etc), added status bonuses to the
+ cooked foods. [Skotlex]
+ * Updated sql-files/item_db.sql to match with the current contents of
+ item_db.txt [Skotlex]
+ (sql users just feed it to mysql, it will drop and recreate the table)
+ * Fixed IDs for Taekwon-class : 4047 is Star Gladiator, 4048 is a second Star Gladiator
+ (probably used for a "Superman-mode" flying sprite) and 4049 is Soul Linker [DracoRPG]
+08/26
+ * Fixed being able to move during Encore skills when you did not need a
+ partner. [Skotlex]
+ * Fixed @reloadmobdb not properly erasing mob skills before re-reading. [Skotlex]
+ * Updated/fixed effect of most dances & songs according to kRO's website and ragnainfo's
+ very good Bard/Dancer Guide [DracoRPG]
+ * Fixed Raging Trifecta Blows missing Emperiums, thanks to happylight [DracoRPG]
+ * Changed the way short|long|magic_damage_return work : previously they gave 100% chance
+ to return x% damage, now it is x% chance to return 100% damage (Maya and High Orc Cards
+ should behave like this, I'm not sure for Orc Lord Card but it seems logical to be the
+ same system...) [DracoRPG]
+ * Fixed bonuses from Wind Walker, thanks to vicious_puca [DracoRPG]
+ * I also reorganized the hit/flee calc in status_calc_pc to consider first absolute values,
+ and then apply relative (percentage) modificators.. if you make a mix of both, it'll be
+ completely fucked up, and be sure it won't be like on officials (although my system maybe
+ isn't the good one neither...) [DracoRPG]
+ * Some rewrites to client version rejecting code [Skotlex]
+ Should eliminate lag when players try to log-on with a rejected client,
+ however there's the chance they won't be receiving the "your client is
+ not latest EXE version" message, and that's why the previous, laggy,
+ implementation was used :/
+ * Fixed Enchant Deadly Poison lasting forever after killed. [Skotlex]
+ * Fixed the duration argument of @summon [Skotlex]
+ * Now @summoned mobs will follow their master everywhere and that includes
+ warping from map to map. [Skotlex]
+ (why? Because I think that's neat, and will probably be needed anyway
+ once Homonculus get implemented)
+08/25
+ * Cleaned up mob_db.txt and updated sql-files/mob_db.sql [Skotlex]
+ Sql users can just feed mysql the .sql file and it will delete and refill
+ the table with the most updated db data.
+ * Corrections to damage versus plants. [Skotlex]
+ MAGIC and MISC attacks do 1 damage per hit.
+ WEAPON attacks do 1 damage, display miss if they hit multiple times.
+ * Instead of knocking back (which wasn't even working), characters that are
+ stepping on an icewall will cause that tile of the icewall to 'die' [Skotlex]
+ * Final damage equation update to Acid Demonstration. [Skotlex]
+ (it still won't ignore the raydric card, but why that is official in
+ itself is a big mystery)
+ * Added status change for temporary boosts of stats, plus added the
+ following constants (db/const.txt): [Skotlex]
+ - SC_IncAll, SC_IncStr, SC_IncAgi, SC_IncVit, SC_IncInt, SC_IncDex,
+ SC_IncDex
+ - It hasn't been tested yet what kind of visual these will cause
+ client-side.
+ (Now someone go and write down the script for the food items xP)
+ * Updated @summon to take a second parameter: duration. [Skotlex]
+ eg: "@summon lunatic 40" will summon a lunatic that lasts 40 mins or
+ until killed. Max duration is one hour.
+ * Updated Some Mobs Spawns, Drops check npc\changelog.txt [Lupus]
+ * Some toning down of the damage of Acid Demonstration (should /100, not
+ /10) [Skotlex]
+ * Likely fixed Blitzbeat from hitting neutral chars. [Skotlex]
+ * Updated Acid Demonstration to be a MISC skill who's damage is (base_Atk *
+ caster's int * target's vit /10) (half that on players). It's much more
+ closer to official values than the previous ones... [Skotlex]
+ * Corrected Pressure sapping SP even if you hide from it. [Skotlex]
+ (isn't Pressure a holy attack from the grand god himself? How can a thief
+ HIDE from his eyes? o.O)
+ * Updated Acid Demonstration damage formula. It's still wrong, but at least
+ it considers int and vit now. [Skotlex]
+ Current dummy formula: (100 + caster's int + target's vit)*(number of hits)%
+08/24
+ * Updated pet skills database. [Skotlex]
+ * Some corrections to socket.c, should stop all the recent crashing... [Skotlex]
+ * Added a case to knockback enemies if they somehow end up stepping into an
+ ice wall tile [Skotlex]
+ * Added checks to prevent walking, attacking or using skills while the
+ storage is open. [Skotlex]
+ * Added Lupus's mob skills for Einbroch mobs [Skotlex]
+ * (almost) rewrite of the storage system. [Skotlex]
+ Storages are marked dirty after an item is stored/retrieved from them and
+ will not be marked clean until the char-server acks the save request.
+ Upon map-server reconnection to the char, all storages that are currently
+ closed and dirty are saved.
+ * Synched chrif_save with the storage save functions when either one is
+ open to further prevent exploits. [Skotlex]
+ * Updated the mob_skill_db with Komurka's translation (Aegis -> eA) [Skotlex]
+ The max permilliage (rate) is now 10000 = 100%
+ * Various mob related summon/metamorphosis changes: [Skotlex]
+ - Summon Mob/Slave's level is the total number of mobs to summon, when the
+ skill definition offers multiple mobs, they are spawned in order
+ (round-robin scheme).
+ - Metamorphosis/Transformation level is the total number of mobs to
+ multiply into. Uses the same criteria as summon mob and the original mob
+ is deleted/killed (no loot drop). If the level is 1, then the mob transforms
+ into one of the defined classes randomly.
+ - Note that beyond code-proofreading and making sure it compiles, this
+ has not been tested yet!
+ * Added the bonus provided by the /doridori command to TK_HPTIME and TK_SPTIME. [Dralnu]
+ Thanks to Duduc.
+ * Updated battle_check_target to check using the master instead of the
+ slaves (applies for mobs/pets) [Skotlex]
+ - Should prevent slaves from attacking their master
+ * Implemented TK_HPTIME and TK_SPTIME exept the bonus provided by /doridori [Dralnu]
+ * Implemented delayed character logout [Skotlex]
+ How it works: When a player quits the server when they shouldn't (force
+ disconnect before the 10 secs, or leave when the char server is not
+ connected) his session is closed, but the player is left in-game just
+ like in @autotrade, and a timer is added. Every 10 secs it'll check if
+ the char server is online, and then save the character and delete it from
+ the map server. NOT TESTED YET, so report any anomalies.
+ * Fixed Shield Chain's skill-type (it's short ranged, not long?) [Skotlex]
+ * Fixed Decrease Agility's equation. [Skotlex]
+ * Fixed root'ed monks not being able to use root skills. [Skotlex]
+ * Added inter-server option "kick_on_disconnect" (defaults to yes) [Skotlex]
+ - The only people who may want to change it are overcrowded servers where
+ the char/map server link breaks due to overload and then everyone is
+ kicked out until said connection is reestablished.
+ - Of course, use at your own discretion until all possible exploits
+ caused by this are resolved.
+08/23
+ * Fixed provoke's success chance. [Skotlex]
+ * Battle_check_target update, should fix party/guild skills failing when
+ checking against yourself. [Skotlex]
+ * Updated map and char servers to allow them to reconnect without having to
+ kick out all players. [Skotlex]
+ - This is still experimental and what possible exploits may come from it
+ are yet unknown (however, considering that the reconnection should take
+ place in a few seconds after the disconnection...)
+ - Note that storage contents and player contents are all kept in the map
+ server's memory, unsaved data will be lost if player forces a
+ disconnection, storage changes will also be lost if they are open/closed
+ during said disconnection (and NOT reclosed after the connection is
+ restablished)
+ - These and more stuff might come up with time. Report away!
+ * Updated Gospel to not buff up Guildmates, only Party members. [Skotlex]
+ * Fixed @autotrade [Skotlex]
+ (tested on a limited scenario with few characters, needs more testing.
+ Test and report!)
+ * Implemented TK_STORMKICK, TK_DOWNKICK, TK_COUNTER and TK_TURNKICK. [Dralnu]
+ Note that at the moment if you use theses skills even if the corresponding
+ SC is inactive, it will use SP and will stop you if you are attacking.
+ Note too that because we don't know how it should work exactly, when a SC such as
+ SC_STORMKICK will be launched, it will notice you by a little message over your
+ head : Hit now !!. Finaly, TK_TURNKICK will not yet have the pushback effect.
+ * Fixed everyone having 20 flee... I hope. [Skotlex]
+ * Some corrections and updates to mob skill Metamorphosis [Skotlex]
+ (don't know if it'll work now, but the way it was before definitely was
+ not working)
+ * Probably fixed infinite endure wearing out when being hit. [Skotlex]
+ * Updated gvg range penalties to be as in official servers. [Skotlex]
+ - Skills (weapon/magic/misc) get a 40% penalty
+ - Ranged normal attacks get a 20% penalty, melee receives no penatly.
+ (battle flag gvg_weapon_attack_rate added to complete configuration)
+ * Added the -20 flee penalty on GVG grounds. [Skotlex]
+ * Fixed Enchant Deadly Poison's Damage (it was 500% - 5x at level 5, not 400%
+ - 4x) [Skotlex]
+ * Fixed Soul Breaker's magical part of the attack taking element -1 rather
+ than 0. [Skotlex]
+ * Login sql server will now only clear sstatus data of connected servers
+ rather than clean the table. [Skotlex]
+ * Added some checks to prevent infinite looping in the char servers. [Skotlex]
+ * Some updates to the way disconnections are handled in socket.c [Skotlex]
+08/22
+ * Fixed typo in skill.c causing errors [Codemaster]
+ * Added Irmin's recommendation to allow item names in getitenname() [Skotlex]
+ (kinda odd to use an item's name to get the item's name, isn't it?)
+ * Fixed Meteor Assault not displaying damage. [Skotlex]
+ * Fixed WE_CALLPARENT crashing the map server when either parent is
+ offline. [Skotlex]
+ * Added TK_HIGHJUMP. Note : To be able to see properly the full jump animation,
+ casting time will not depend on DEX. [Dralnu]
+ * Somes fixes in skill_db.txt and skill_cast_db.txt about Taekwon's skills. [Dralnu]
+ * Fully implemented the STR bonus part of TK_RUN [DracoRPG]
+ * Added activation/unactivation of TK stances, but not their specific effects [DracoRPG]
+ * Reverted magnum break, removed the Flame Launcher status change until
+ actual bonus can be implemented. [Skotlex]
+ * Skills update (mostly thanks to Vicious Pucca): [Skotlex]
+ - Success chance and stats of Provoke, mental Break, Signum Crusis, Soul Burn
+ - Decrease Agility duration halved for players.
+ - Magnum Break's final damage is splitted 80% weapon's element, 20% fire
+ element. No longer causes weapon endow.
+ - Bash's hit bonus (+5 per lv now)
+ * Fixed skill_db, Added perfect hit to TK_COUNTER [Dralnu]
+ * Changed skill_tree and job_db1 the same way I changed job_db2, it was necessary for
+ clear implementation of Taekwon (which has a very unusual ID for a 1st job) and renders
+ the code less messy (at least it's my humble opinion ^^) although it could be slightly,
+ but really slightly, more RAM-consuming [DracoRPG]
+ * Fixed classchange not clearing on unequip, fixed the mob's max hp not being updated on
+ class change [Skotlex]
+ * Basic implementation of Taekwon's kicks. [Dralnu]
+ * Likely fixed SP consumption of Warp Portal. [Skotlex]
+ * Changed some default values in battle config to get the 'official gaming experience' by
+ default [DracoRPG]
+ - Noone can plagiarize advanced skills (from ragnainfo)
+ - No rare drop announce
+ - Riding a Peco does not increase one's size
+ * Allowed Dispell to dispell songs/dances/ensembles [DracoRPG]
+ * Updated SC IDs to get correct client-side status icons (used 0808 Sakexe) [DracoRPG]
+ * Prevented from casting Ice Wall under self, independantly of UF_NOFOOTSET [DracoRPG]
+ * Removed /omg from equipment breaking and added it to Acid Terror only [DracoRPG]
+ * You can now change to Taekwon, but lots of things are still to do [DracoRPG]
+ * Began implementation of Taekwon skills [DracoRPG]
+08/21
+ * Changed how triple blows/sacrificial ritual triggers to enable
+ plagiarizing them. [Skotlex]
+ * Stolen items will be (un)identified using the same criteria normal drops
+ use. [Skotlex]
+ * Updated yet again battle_check_target. Guardians should stop attacking
+ out of woe now and alchemist should be able to hit their mines. [Skotlex]
+ * Fixed the map server going in an infinite loop if the connection breaks
+ while parsing packets from the char server. [Skotlex]
+ * Mostly rewrote Battle Chant, should be almost like the official one now... [DracoRPG]
+ * Added enums for skill units, makes the code really clearer (check skill.h) [DracoRPG]
+ * Merged battle_calc_weapon_attack_sub and battle_calc_weapon_attack [DracoRPG]
+ * Fixed Acid Terror WEP breaking rate thx2 ShAPoNe [Lupus]
+08/19
+ * More updates to battle_check_target, now you can't target any
+ ground-based skills that don't have a physical manifestation (ie:
+ Everything except traps and icewall) [Skotlex]
+ * Fixed "for sure" battle_check_target when it comes to neutral targets. [Skotlex]
+ * Removed pc_emotion, merged it with emotion. [Skotlex]
+ Usage: emotion emotion_number <, target>
+ - emotion number is the emotion's number (use e_* constants)
+ - target is 1-> player, 0-> npc. If ommited defaults to zero.
+ * Updated code so that when a guild master joins the game, their guild
+ skills are automatically blocked for 5 minutes. [Skotlex]
+ (prevents avoiding the skill-lock by relogging)
+ * Another update to battle_check_target, this time neutral targets should
+ work correctly (non allied/partied people who should be affected) [Skotlex]
+ * More fixes to battle_check_target, skills should not hit yourself on
+ pvp/gvg now. [Skotlex]
+ * Updated classchange to not change the class of bosses. [Skotlex]
+ * Optimization/Fixes to battle_check_target, GrandCross should work now. [Skotlex]
+ * Reverted Lupus's change on guild auras' max lv... Please double check your sources and
+ base yourself on kRO official website as much as possible, thanks. Link to kRO website:
+ http://guide.ragnarok.co.kr/GuildSystem.asp#ggg03 [DracoRPG]
+ * Fixed passive mobs incorrectly setting the attacked_id when hit by pets. [Skotlex]
+ * Rewrote battle_check_target. [Skotlex]
+ - Positive side-effects: offensive stuff won't hit your guildmates on gvg
+ (such as traps)
+ - Negative side-effects: Unknown, but there's bound to be some because of
+ the big change. I tested it with traps, spells, pets, passive and
+ aggressive mobs, but it's probable there's stuff I am still missing.
+ * Updated mob spawns of Glast Heim (gl_sew3 and gk_knt2) [Skotlex]
+ * Updated classchange code (Azoth, Heiroloist) to get random classes the
+ same way a dead branch does. Cannot convert to bosses. [Skotlex]
+ * Script/Npc/Item updates. [Skotlex]
+ * Bonus b(HP/SP)GainValue will always be considered 100% (the first
+ parameter) this is done to avoid exploits when combining it with
+ b(HP/SP)DrainValue (eg: Immaterial Sword) [Skotlex]
+ * Fixed max level of some guilds skills 5->1 [Lupus]
+ according to http://eathena.deltaanime.net/board/index.php?showtopic=757
+ * New items drops, new shop [Lupus]
+08/18
+ * Changed the way 'pl' works (in skill_db) : now 0 for 'weapon' attack skills means the
+ attack is always neutral. To make so that the skill takes the weapon's element, use -1
+ instead: this removes the need of hardcoded ele_flag. [DracoRPG]
+ * Fixed damage bonus from Sage's elemental flooring skills by moving the checks which were
+ totally wrong placed... Thanks to Antoine for pointing out they were broken. [DracoRPG]
+ * At the same time I had to change battle_calc_magic_attack quite alot. Maybe it won't work
+ perfectly, but at least it'll compile. Also added (forgotten?) support for 'skillatk'
+ bonus with magic skills. [DracoRPG]
+ * Rewritten most of Gloria Domini to make it be a BF_MISC skill that can hit and damage
+ Emperium and plants (yes it does), igonres WoE damage adjustments and other changes I
+ don't remember ^^ [DracoRPG]
+ * Modified mob_skilluse so that mobs NEVER use offensive heal. They'll now
+ /swt if they try it (and the skill fails) [Skotlex]
+ (there's still nothing that can be done about offensive Sanctuary)
+08/17
+ * Added script command pc_emotion, works just like emotion, except the
+ emotion is displayed on the character that's running the script. [Skotlex]
+ * Fixed the vicious compile error I added with SC_SPEEDUP1 [DracoRPG]
+ * Implemented Strengthen Guardians with a custom +10% ATK & ASPD / lv value [DracoRPG]
+ NOTE : It compiles, but I couldn't test the effect since guilds seem completely
+ broken on my test server...
+ * Moved Weaponry Research hidden bonus a bit to get the exact effect [DracoRPG]
+ * Implemented SC_SPEEDUP1 for Lightning Box effect [DracoRPG]
+ * Entirely replaced SC_DIVINA with SC_SILENCE (the 1st was an alias of the 2nd) [DracoRPG]
+ * Fixed the map-server disconnecting the char-server when kicking out all
+ clients. (Thanks to End of Exam for pointing it out) [Skotlex]
+ * Cleaned up error messages related to packet parsing in the char servers. [Skotlex]
+08/16
+ * Likely fixed the char-server crashes on mapif_send* functions. [Skotlex]
+ * Fixed auto-counter's display (it was working correctly, however the skill
+ was not being shown properly on the client) [Skotlex]
+ * Fixed Tomahawk not being considered a ranged attack. [Skotlex]
+08/15
+ * Added a few bug fix recommendations [Codemaster]
+ * Fixed a few problems with Wedding Skills [Codemaster]
+ * Fixed a bug with old clients connecting and socket reuse which would kick
+ all new connections on the same socket before even checking the packet version. [Skotlex]
+ * Fixed the tabs in the ayothaya mobs :X [Skotlex]
+ * Likely fixed the setsocketops error that was showing on every connection. [Skotlex]
+ * Updated vending code so that items that can't be traded can't be vended
+ either. [Skotlex]
+ * Messed with socket.c, changing lots of stuff around using some earlier
+ Freya SVN version as base, connection issues might hopefully get better. [Skotlex]
+ (NOTE: I have yet to try to compile this under Windows/Cygwin, so report
+ if it breaks)
+ * Updated Magnum Break: Target selectable, damage is (100+20*level)%, hit
+ bonus +10 per level. 5x5 splash area. [Skotlex]
+ * Likely fixed the max hp display of tiny/big mobs. [Skotlex]
+ * Updated Cloaking. It'll fail if the level is less than 3 and there's not
+ a wall nearby. [Skotlex]
+ If cloak_check is set to ignore walls, the wall-type speed will be used all
+ the time.
+ (I don't see what all the fuss is about as a Lv2 Cloak is just as good as
+ Hide, and you can't even use GrimTooth from it. And since lv2 won't let
+ you move anyway, why would anyone use Clock lv2 over Hiding?)
+ * Updated Assumptio. It will affect anyone in a 3x3 area around the target. [Skotlex]
+ (where anyone is anyone the same way Benedictio chooses it's target)
+ * Updated the delay that a mob can't move after attacking to be 1/4th of
+ the delay between attacks. [Skotlex]
+ eg: The mob attacks once every 1000ms, that means it can start chasing
+ you 250ms after an attack.
+ * Likely fixed the #fakename crash. [Skotlex]
+ * Updated the mob skill use code so that hopefully other players will be
+ considered friends when using support skills. [Skotlex]
+ NOTE: Not quite tested, use with care.
+ * Fixed @monsterbig/@monstersmall [Skotlex]
+ Support for said monster in normal spawn scripts is also fixed, however
+ the implementation is not stable (currently you add 10K to the ID to make
+ it a tiny mob, add 20K to make it a big mob, but those values depend on
+ MAX_MOB_DB which can change in the future. :/)
+ * When you drink a speed potion, the icon of the previous one will be
+ removed (however, all speed potions are still in effect server-side). [Skotlex]
+08/14
+ * Likely corrected the error printing in recv_to_fifo (reporting normal
+ disconnections when they likely are not). [Skotlex]
+ * Fixed the map-server spamming "Client does not has latest EXE message. [Skotlex]
+ * Updated char-sql to consider 0 an invalid map-server session number. [Skotlex]
+ * Fix in map->char auth request packet where char server spams data search error message, currently in testing. But works none the less. [Kevin]
+ * Removed all close()'s in clif.c, made clif_parse the only one who closes
+ a socket and deletes the session. [Skotlex]
+ * Updated socket.c to be much more verbose about connections and when they
+ are ended. [Skotlex]
+ (excuse all the extra messages, but they are to help track down the
+ current map-freeze bug)
+08/12
+ * Updated sql-files: mob_db.sql, item_db,sql, main.sql [Skotlex]
+ * Likely fixed mob reloading command. [Skotlex]
+ * Added more reports and some fixes/optimizations to socket.c [Skotlex]
+ * Added reporting of error when a connection can't be made non-blocking. [Skotlex]
+ * Updated Logging Filter: [Lupus]
+ - Implemented refine_items_log condition. You may log only certain refine value items.
+ - Added 'log_steal' option. It'd log stolen items in the drops log DB
+ * Added msg string and announce on stealing of rare items [Lupus]
+08/11
+ * Fixed bio-cannibalize's max hp issue. [Skotlex]
+ * Pneuma completely blocks Soul Breaker (as the forum consensus says it
+ does so) [Skotlex]
+ * clif_parse will now print the error message in case close(fd) fails. [Skotlex]
+ * Fixed players clicking on players disguised as NPCs trying to execute the
+ "npc". [Skotlex]
+ * Fixed possible overflows and exploits in log.c, thanks to Irmin [Skotlex]
+ * Probably fixed devotion's visual not updating. [Skotlex]
+ * Added flag pet_no_gvg, when set to yes/1 the pet is returned to an egg when
+ you enter Guild Grounds and you aren't allowed to hatch pets as well. Note
+ that it only does the check when the player changes maps (should be safe
+ because players are kicked out of castles when WoE starts)
+08/10
+ * Fixed PNEUMA blocking magic part of Soul Breaker, instead of physiacal attack one [Lupus]
+ * Fixed the Login/Char SQL crashing when determining the max id of empty
+ tables. [Skotlex]
+ Account and Char creation code tested, it is safe to use now.
+ * Removed use of settick_timer (fixes the "can't move!" bug) [Skotlex]
+ * Fixed (I think) being able to sit while casting. [Skotlex]
+ * Updated Char-SQL server to guarantee that new chars are created with
+ char_ids above 150K. [Skotlex]
+ (note from last update applies too)
+ * Updated Login-SQL server to guarantee that new accounts (_M/_F reg) are
+ created with account_ids above 2M. [Skotlex]
+ (note it hasn't been tested yet, but I think it should work)
+ * Fixed @readmail 0 [Skotlex]
+ * Fixed success rates for Dispell and Decrease Agility [Skotlex]
+ * Fixed cultivation not being in the list of skills for GMs with
+ gm_skill_all [Skotlex]
+ * Fixed mob's hp becoming zero after mob_hp_rate adjustments. [Skotlex]
+ * Skills update: [Skotlex]
+ - Changed concentration from +10% hit per level to +10 hit per level.
+ - Base level gives greater stun chance to Attack Weak Point (currently +1%
+ every ten levels)
+ - Changed Tiger Knuckle Fist to be a combo-only skill.
+ - Updated Spell break to damage 2% of target's max hp, heals half that.
+ * Small debug change in clif.c which forces a disconnection upon dual-login [Skotlex]
+ * Updated char-sql deletion to take into consideration the mysql version [Skotlex]
+ It should treat versions 4.1+ differently from the rest, please test and
+ report if it is still failing.
+ * Removed sql loading of storage every time you open it as it's an open
+ exploit on lagging servers. [Skotlex]
+ * Removed another "insufficient data" debug line. That should take care of
+ incomplete packets spamming the console. [Skotlex]
+ * Alright, removed the "insufficient data" debug line as it was just
+ causing mass lag. [Skotlex]
+08/09
+ * Fixed Magnum Break's damage display. [Skotlex]
+ * Finished fixing and testing the sql char deletion update. [Skotlex]
+ Deleted characters should now properly leave their party/guild.
+ * Throw Stone is now blocked by Kyrie and Pneuma [Skotlex]
+ * Fixed "[error] delete_timer error: no such timer -1" (stupid mistake x.x) [Skotlex]
+ * Some modifications to char-sql char deletion, so that characters are
+ correctly removed from parties and guilds. [Skotlex]
+ (Note that this is yet to be tested, so upgrade at your own risk or if
+ you want to help file bug reports until I can get to test it on my own
+ later today)
+ * Likely fixed Endure and the like not being 'disabled' on GvG grounds. [Skotlex]
+ * More debug messages to clif.c (these can be ignored on normal situations,
+ but might be useful during freezes) [Skotlex]
+ * Optimized the packet-version failed rejecting code. [Skotlex]
+ * Fixed Freezer Card combo casting Weapon Perfection on the enemy. [Skotlex]
+ * Added more information to the map-char connection process, meant to help
+ understand what is going on when things 'freeze'. [Skotlex]
+08/08
+ * Fixed players not really being disconnected when the char-server is out. [Skotlex]
+ * Added check to resend map server connection packets if the connection to
+ the char server was established but the initial packets get somehow lost. [Skotlex]
+ * Fixed Picky's pet-script being used for all pets... [Skotlex]
+ * Fixed an ugly bug that was causing status-changes to crash the map server [Skotlex]
+ * Added a timer to the map server. It'll try to reconnect 1 sec after it is
+ disconnected from the char server (in addition to the default "try to
+ connect every 10 secs" mechanism). [Skotlex]
+ * Reverted Safety Wall to last known working state. [Skotlex]
+ (from what I read in the code, it should be crash-safe anyway)
+ * Mob level up is now capped to max_base_level rather than 99. [Skotlex]
+ * Another fix to Safety Wall :X [Skotlex]
+ * Fixed Safety Wall (I think). Do test and pray it crashes no more. [Skotlex]
+ * Added settick_timer to timer.c, optimizes status retimings for dance
+ skills. [Skotlex]
+ * Made @autoloot and item_auto_get play along nicely (@autoloot toggles the
+ mode, item_auto_get sets the default state of it) [Skotlex]
+
+08/07
+ * Corrected the Payon Guild Flags [Codemaster]
+ * Lots of debug message cleanup in clif.c which should make more clear the
+ why characters are being disconnected. [Skotlex]
+ * Added OnAgitInit to the list of npc events executed on connection (it
+ will be executed only the first time it connects, thought) [Skotlex]
+ * Fixed the exp bonus on pvp maps (it was set to +115%, not +15%) [Skotlex]
+ * Updated skill_blown to avoid knocking back plants. [Skotlex]
+ * Made the damage delay of the finishing blow the same delay before sending
+ a char clear packet, this might fix mob sprites being left there after
+ killed. [Skotlex]
+ * More fixes to @autotrade
+ (You still can't disconnect your autotrader by entering in the
+ server again. And an autotrader rises map server usage to 70%+).
+ Started adding Freya's anti-bot thing [Lupus]
+ * Quick fix meant to prevent crashes when targetting "ghosts" of already
+ dead mobs. [Skotlex]
+ * Fixed Pneuma and Safety Wall crashing the server. [Skotlex]
+ (was caused by yesterday's skill upgrade not being... eh, complete)
+08/06
+ * Yet another @autotrade fix by irmin&Ultra. More fixes are coming soon 8)) [Lupus]
+ * Pretty big change in the way ground skills are handled, meant to fix
+ possible segmentation faults. [Skotlex]
+ Report if you notice any ground skill got broken, as pretty much all of
+ them have been affected.
+ * Removed the data about packet_version 14 in the packet_db [Skotlex]
+ This could mean that version 14 never really existed, and all following
+ versions need to be shifted up (who decides how to call these versions?
+ they certainly don't come coded in the login packet. We should ask
+ Sara-chan, the awesome ex-eA dev who pwns us al with her packet finding abilities.).
+ Note that no such changes have yet been decided other than removing version 14.
+ * Updated Devotion/Sacrifice. AutoGuard and Defender skills are now kept in sync
+ between the Crusader and those Devoted. [Skotlex]
+ * Added a battle_stopwalking to NPC_STOP effect [DracoRPG]
+08/05
+ * A li'l fix of @autotrade. Used some irmin's code and optimized a bit [Lupus]
+ * Fixed pc_setcart... [Skotlex]
+ * Updated Fireball and Stone Curse data [Skotlex]
+ Source used: http://guide.ragnarok.co.kr/jobmagskill.asp
+ * Updated map_server sql so that the storage is loaded from sql everytime [Skotlex]
+ * Updated the char deletion routine (sql) so that only the correct pets
+ will be deleted (those hatched and that are in the char's inventory/cart)
+ [Skotlex]
+ * Likely fixed the map server spamming the console when clients gets
+ rejected due to packet version. [Skotlex]
+ * Fixed the make_connection problem (sorry about that) [Skotlex]
+ * Updated make_connection (socket.c) so that it actually returns -1 when
+ the connection fails. [Skotlex]
+ * Fixed change-cart clearing other options. [Skotlex]
+ * Fixed @spawn not working with string names. [Skotlex]
+ * Fixed songs/dances not being moved when knocked back. [Skotlex]
+08/04
+ * Made mobs retaliate against a pet's master when for some reason a pet is
+ attacking a passive mob which is not yet attacking back. [Skotlex]
+ * Modified the mob_db to make it a dynamic array of mob databases. [Skotlex]
+ This allows usage of high mob ids without wasting memory on large gaps of
+ unused mob IDS.
+ NOTE: Other than loading/unloading the map server, this has not
+ been tested, if it crashes DO report right away (preferrably with a
+ backtrace)
+ * Bumped the MAX MOB ID to 10K [Skotlex]
+ * Added 2 new mobs, updated and added some items. Thanks to Landarma [Lupus]
+ Also fixed map-serv loading warnings (about wrong mob IDs)
+08/03
+ * Removed the clif_waitclose timer message, and placed it instead around
+ clif.c on the areas that are actually invoking the waitclose timer. [Skotlex]
+ * Changed the "Player not identified with account id" message to be more
+ descriptive (however I don't know how much of the player data is available
+ when disconnecting this way, so if it crashes DO REPORT it) [Skotlex]
+ * Modified @me so that it actually works as expected by IRC junkies. [Skotlex]
+ (tested and works correctly)
+ * Updated Enchant Deadly Poison: Can't be dispelled, won't end when you are killed. [Skotlex]
+ * Fixed draining more HP/SP than you can have [Skotlex]
+ * Fixed enchanted peach tree damaging you when attacking the undead [Skotlex]
+ * Removed the tick check from the packet_version guessing as it is an
+ unsigned int (so every value in said field is valid) [Skotlex]
+08/02
+ * The char server now notifies the map server about which is the max
+ account/char id available, this is used to help identify packet versions
+ more reliably. [Skotlex]
+ * Guardians won't level up now with mobs_level_up=1 [Skotlex]
+ * Updated Deluge, Volcano, Violent Gale & Land Protector to not require
+ gems when recasted, and the previous time remaining will be used instead.
+ [Skotlex]
+ * Fixed Zeny from mobs. [Skotlex]
+ * Changed the visual effect when pets heal status ailments to "Detoxify" [Skotlex]
+ * Fixed "bonus2 bSkillAtk" so that it works with up to five skills [Skotlex]
+ (previously it only worked for one skill at a time)
+ * Fixed Enchant Deadly Poison on normal attacks. [Skotlex]
+ * Updated the packet-guessing code, trying to load negative char accounts
+ should be fixed now. [Skotlex]
+08/01
+ * Updated the login servers so that account registration can be done with
+ _m/_f as well as _M/_F [Skotlex]
+ * Fixed login sql server not using md5sum on the passwords before creating
+ accounts (when md5 passwords are enabled) [Skotlex]
+ * Updated Enchant Deadly Poison: Increases Sonic Blow's damage by 4x and
+ affects all skills except Breaker/Meteor Assault [Skotlex]
+ * Added a check to prevent char-server freezes when receiving unknown
+ packets from the map server. [Skotlex]
+ * Fixed some problems with the clif optimizations from earlier today (wrong
+ animations being displayed for normal attacks/picking items) [Skotlex]
+ * Rewrote Ensemble skill implementation to be more efficient and less
+ error-prone [Skotlex]
+ (say, when you do an ensemble skill, your partner has to be
+ charged SP too? That is not the current case)
+ * Dance/Song checks so that the ground effect is more tightly coupled with
+ the status effect (if the dance's effect is cancelled for whatever reason,
+ the ground skill WILL be removed) [Skotlex]
+ * Fixed stat reset for Advanced Classes [Skotlex]
+ * Updated Lord Knight's Concentration (damage, defense, endure effect) [Skotlex]
+ * Likely fixed famous alchemist potion usage. [Skotlex]
+ * Small optimization to the packet version guessing code. [Skotlex]
+ * Added Warpparty and Warpguild script commands *requested* [Fredzilla]
+ * Fixed the exp exploit bug dealing with expaddrace [Skotlex]
+ * Added missing CharCommands logs (together with ATCommands) [Lupus]
+ TODO: '/' commands 8)
+ * Added mod for npc whisper system(lordalpha)[massdriller]
+ * Added lordalfa's str1 and str2 compare and check commands [massdriller]
+07/31
+ * Fixed (I think) the char sql server freezing when the map server sends it
+ a GM whisper request. [Skotlex]
+ * Rewrote the way that experience is given, this should prevent exp overflows
+ even in even-share parties. [Skotlex]
+ * Changed how the exp_calc_type works, take note that there's no longer a "2"
+ value for it! [Skotlex]
+ * Updated throw stone: Damage is modified by target's cards, 3% chance to
+ cause Stun/Blind. [Skotlex]
+ * Added rods/books to the list of items that can't break. [Skotlex]
+ * Fixed map server rejecting clients of packet versions 9 and below
+ (regardless of packet_ver_flag) [Skotlex]
+ * Updated Steel Body: Consumes 50% sp and is not dispellable. [Skotlex]
+ * Updated sprinkle sand's damage to 130%, Throw Stone's range and delay [Skotlex]
+ * Fixed increased dodge's flee bonus and speed bonus (to Assassins). [Skotlex]
+ * Simplified clif.c by removing all code related to hard-coded packet
+ information (the packet_db.txt is an essential file now) [Skotlex]
+ * Small fixes to provide clarity to # commands
+ (So many people ask "why doesnt @char????? work, like OMGWTFBBQ") [Fredzilla]
+ * Fixed a stupid typo in a drop rate display [Lupus]
+07/30
+ * Some more fixes to the job calculating equations. This one should fix item
+ usage for mounted classes and hopefully be the last fix needed regarding
+ the job system upgrade. [Skotlex]
+ * Corrected the parsing/reading of the skill tree. This fixes the Priest/Monk
+ skills appearing in the skill trees of Paladings/Crusaders. [Skotlex]
+ * Another fix about advanced/baby mounted characters not having skills. [Skotlex]
+ * Fixed character's class not getting updated when mounting/dismounting peco. [Skotlex]
+ * Fixed the default packet version checking in the guessing version code.
+ as pointed out by End of Exam. [Skotlex]
+ * Optimized the code that determines what packet version to use by default
+ when you specify "packet_db_ver: default" [Skotlex]
+ * Fixed job changing to high/baby classes [Skotlex]
+07/29
+ * Moved messages "One Castle", "Two Castles", etc into msg_athena.conf [Lupus]
+ * Fixed wrong msg_athena.conf messages in the trade hack spoof code [Lupus]
+ * Added a Rare Item announce string into msg_athena.conf [Lupus]
+ * Fixed compilation of the TXT server. [Skotlex]
+ * Fixed song/dances not clearing when you run out of SP [Skotlex]
+ * Fixed #fakename [Skotlex]
+ * Optimized Apple of Idun's implementation [Skotlex]
+ * Updated pc_calc_base_job and related functions and applied them around
+ the map server. This should fix all item related problems with Super Babies
+ and alike. [Skotlex]
+ * Simplified/optimized the code that mounts/dismounts from Pecos. [Skotlex]
+ * Changed Create Deadly Poison to not use the item producing interface (works simplier,
+ like Aqua Benedicta) and added a separate config option to choose whether the maker's
+ name is written on the Poison Bottle [DracoRPG]
+ * Changed NPC_STOP to immobilize the target during 2 seconds (from ragnainfo) [DracoRPG]
+ * Added "cartboost" state to skill_require_db (used for Cart Termination) [DracoRPG]
+ * Rewrote Soul Destroyer's damage dealing and displaying code, now everything is done at
+ once: no more people killed without damage displayed [DracoRPG]
+ * Readded Assassin Cross not affecting bows [Skotlex]
+ * Fixed Hip-Shaker (not tested, but I am assuming it works now) [Skotlex]
+ * Fixed Brandish spear's damage [Skotlex]
+ * Removed the after-cast delay of Recall Partner [Skotlex]
+ * Added optional announce of rare drops. When a SomePlayer kills a monster [Lupus]
+ with a rare drop then everyone gets announce: 'SomePlayer' won Pupa's Pupa Card (chance 0.01%)
+07/28
+ * Fixed the Server Whisper to GMs in the char-sql server [Skotlex]
+ (when an exploit that should be notified to GMs is triggered, the map
+ server would just hang instead...)
+ * Some code reorganization around the name-spoof exploit protection code. [Skotlex]
+ * Fixed not being able to do Extremity Fist after Glacier Fist/Tiger
+ Knuckle Fist [Skotlex]
+ * Likely fixed the Famous Alchemist potions not having that 50% boost. [Skotlex]
+ * Updated the Wedding Skills (they work with 10% HP/SP and heal 10% of
+ their target's, summoning has a cast time of 20s) [Skotlex]
+ * Reverted AssassinCross's song behaviour. [Skotlex]
+ * Odd bug wanting all Account and Char IDs to end with 0?! [Codemaster]
+ Note: Not all acc or char ids end with 0...this gave alot of problems with client version 16
+ * Fixed that compiling issue with buildin_getequippercentrefinery [Skotlex]
+ * Updated Bard's AssasinCross (Impressing Riff) to not affect Bows (is this
+ how it really is?) [Skotlex]
+ * Massive skills update (from now updated kRO website) [DracoRPG]
+ - Weapon forging, ore/metals refining, potion making : tried to correct rates ^^
+ - Weaponry Research : does NOT increase NPC equipment upgrading chance
+ - Skin Tempering : (4*skilllv)% fire resistance and (1*skilllv)% neutral resistance
+ - Hilt Binding : the original 'undropable weapon' part is dead
+ - Meteor Storm : (3*skilllv)% stun chance
+ - Lord of Vermilion : (4*skilllv)% blind chance
+ - Sandman : (40+10*skilllv)% sleep chance
+ - Ankle Snare : minimum trap time changed to (3+0.03*skill_lv) seconds
+ Tons of other skills could and should be reviewed the same way ! ^^
+ * Fixed massdriller's fixes ^_^ [Kevin]
+ * Some fixes to Whisper system. [massdriller]
+07/27
+ * Fixed the fame list packet mismatch bug. [Skotlex]
+ * Even more cleanups to socket.c and chrif.c to prevent even handling
+ Session #0 [Skotlex]
+ * Some more cleanups to chrif.c (the interface to the char server)'s code. [Skotlex]
+ * Appied End of Exam's socket/connection related fixes/suggestions. [Skotlex]
+ * Fixed a Segmentation Fault with friends list loading. [Kevin]
+ * Fixed the npc whisper system. [Kevin]
+ * Fixed most of the matrix bug, note to devs: Don't use tmp_output anymore! [Kevin]
+ * Fixed a small compile warning with previous fix. [Kevin]
+ * Added ATCommand @AutoTrade. You open a shop, setup your goods. Then use @AUTOTRADE.
+ Your will be closed, but your merchant would remain in the game. So you can vending
+ without your client ON. (originally by Fantik, changed by Lupus)
+ * Added ATCommand @ChangeGM. Your Guild Master can set another GM of the guild.
+ Note: It works, but have to be optimized, WIP. (originally by Fantik, changed by Lupus)
+ * Added lordalfa's npc whisper system [massdriller]
+ * added lordalfa's fix/enhancement for Execute Scripts::labels [massdriller]
+07/26
+ * Updated the packet-version guessing code, hopefully it does a better job now [Skotlex]
+ * Fixed the mob bug where they "stick to you" and won't let you escape [Skotlex]
+ * Reverted mob skill usage rates. A rate of 1000 (in mob_skill_db.txt) IS 100% usage. [Skotlex]
+ * Corrected Gospel not dissipating when you die. [Skotlex]
+ * Fixed Providence/Resistant soul so it can't be casted on yourself-other crusaders [Skotlex]
+ * Updated Quagmire to affect everyone in GVG maps. [Skotlex]
+ * Small fix to the packet_version identification [Skotlex]
+ A more complete testing/verification code comes later...
+ * Likely fixed the txt->sql converter. [Skotlex]
+ * Corrected some refine success rates. [Skotlex]
+ * Modified the packet client version guessing code (perhaps it more
+ accurately guesses the version now?) [Skotlex]
+ * Fixed reading of 'repairitem' packet in packet_db -> fixes Weapon Repair [DracoRPG]
+ * Rewrote Weapon Repair to allow use on other players [DracoRPG]
+ * Moved pc_item_repair, pc_item_refine and pc_item_identify to skill.c [DracoRPG]
+07/24
+ * Enchant Deadly Potion now does count card modifiers. [Skotlex]
+ * Fixed elemental modifiers not applying to skills. [Skotlex]
+ * Fixed mob_ghostring_fix config. [Skotlex]
+ * Fixed firewall stun-locking enemies that are not pushed back. [Skotlex]
+ * Added some checks into MONSTER spawn command (reports wrong number, ID, delays, etc.) [Lupus]
+ - somehow it doesn't report about wrong map names yet
+ * Added check for missing TAB characters into script parser [Lupus]
+07/23
+ * Fixed friend-saving on the new charsave sql method. [Skotlex]
+ * Corrected the ghostfix description in battle_athena. [Skotlex]
+ * Modified the Makefile to include FD_SETSIZE = 4096 when compiled under
+ Cygwin [Skotlex]
+ * Added a check for max mob skill level (when reading mob_skill db) [Lupus]
+ * More fixes/updates to the txt->sql converter of inventory/cart (will it ever work?) [Skotlex]
+ * Fixed job_db2 reading [Sasuke]
+ Field count is MAX_LEVEL+1 since job ID is the first field of the 'split' table
+07/22
+ * Changed a bit the aspd penalty for dual-wielding assassins. [Skotlex]
+ The new factor is 2/3 rather than 0.7, which should be closer to what
+ rodatazone says, but also makes them dual wielders a bit slower :X
+ * Fixed job_db2.txt reading so that it will read up to MAX_LEVEL job bonuses. [Skotlex]
+ * Changed the way the OS is detected in socket.h [Skotlex]
+ This MIGHT fix the current 60 user limit problem.
+ * Fixed characters not being able to attack and getting "there is a delay
+ after a skill" messages instead. [Skotlex]
+ * Fixed status changing cards not taking effect. [Skotlex]
+ * Fixed packet_ver_flag reading. [Skotlex]
+ (previously, if you tried setting it to 256 or 512 it would be
+ resetted back to 255, which would cause problems with the later clients)
+ * More fixes to the txt->sql converter. Does it works now? [Skotlex]
+ * Added water height values of Ayothaya, Ayo_dun02, sec_in02 maps (thanx 2Lorky) [Lupus]
+ * Fixed char-sql memo saving. [Skotlex]
+ * Added the wantoconnection packet of version 13 to version 14 [Skotlex]
+ Note that this will cause all ver13 clients to be identified as v14, it
+ WILL cause problems if you use ver13 clients. There is no easy way around
+ this as both versions seem to use the identical login packet. If you
+ want to give preference to v13 over v14, you can specify the default to
+ be it.
+ * Fixed Encore skills working when the partner has no weapon equipped. [Skotlex]
+07/21
+ * Fixed the fame lists, they work now. [Skotlex]
+ * Rewrote the friends system, it now works. [Skotlex]
+ Sql users upgrade with the 2574.sql upgrade, txt users will have to
+ wipe their friends.txt (there's no easy way to convert that one).
+ * Fixed the txt->sql converter not converting inventory/card. [Skotlex]
+ The friend conversion was removed due to the new structure.
+ * Restructured some of the logic behind auto-attacks and normal attacks
+ which should prevent most speed-hacks and be more responsive to players. [Skotlex]
+07/20
+ * Updated the txt->sql converter, I THINK it will work now. [Skotlex]
+ * Fixed Plagiarized skill's level not being saved. [Skotlex]
+ * Changed Pressure/Gloria Domini to take a % of current SP, not max SP (from a post on
+ ragnainfo, not personal custom shit! :p) [DracoRPG]
+ * Removed debug messages for fame list and signaled the bug that causes problems [DracoRPG]
+ * Removed the need of job_db2-2 (advanced jobs' stat bonuses) and moved its use to
+ job_db2 [DracoRPG]
+07/19
+ * Reorganized the way sql chars are being saved. [Skotlex]
+ * Merged battle options player_combo_damage_delay and
+ mob_combo_damage_delay into combo_damage_delay [Skotlex]
+ * Some code reorganization that hopefully should help with mobs not having
+ the same damage delay on the client and within the server. [Skotlex]
+ * corrected some bounds errors in the new packet_db code
+ that was corrupting memory [MouseJstr]
+ * Corrections to Tiger Knuckle Fist [Skotlex]
+ * Rewriting of part of the skill-additional effect code. (Should fix
+ Asura's penalty) [Skotlex]
+07/18
+ * Added a check that might prevent sql char crashes when requesting info
+ for non-existant Characters. [Skotlex]
+ * Fixed main.sql (start char_id should be 150k) [Skotlex]
+ * Some code-cleaning for Sacrificial Ritual [Skotlex]
+ * Optimization of auto-triggering skills (double attack, sacrifice, triple
+ blows) [Skotlex]
+ * Small fix to Sanctuary (shouldn't start healing until after 1.5 secs of
+ casted) [Skotlex]
+ * Implemented Palm Strike (you cast the skill, it pushes back the enemy and
+ deals damage 1 sec after it was casted) [Skotlex]
+ * Rewrote and tested Gospel's code, currently it works as follows: [Skotlex]
+ Offensive Effects:
+ 0: Defense ignoring damage 1~9999
+ 1: Curse enemy
+ 2: Blind enemy
+ 3: Poison enemy
+ 4: Lv10 Provoke
+ 5: Def, Def2 to 0
+ 6: Base Atk, Watk to 0
+ 7: Flee to 0
+ 8: Speed/Aspd -25%
+
+ Deffensive Effects:
+ 0: Heal 1~9999
+ 1: End all negative status effects
+ 2: Lv10 Bless
+ 3: Lv10 Inc Agi
+ 4: Aspersio (holy weapon)
+ 5: Benedictio (holy armor)
+ 6: +100% max hp
+ 7: +100% max sp
+ 8: +20 to all stats
+ 9: +25% def (armor and vit)
+ 10: +100% base atk
+ 11: +50 flee
+ 12: +50 hit
+ 13: Status effect inmunity
+ - Effects have a chance of 10*Skill_lv% of triggering every 5~15 secs
+ for whoever is on the skill area.
+ - Report any modifications/corrections needed on the forums.
+07/17
+ * More Sacrificial Ritual updates [Skotlex]
+ * Added Jawaii's water level, thanks to Manipulator [Skotlex]
+ * Sacrificial Ritual update [Skotlex]
+ * Bumped max Vending price to MAX_ZENY (currently 1000M) [Skotlex]
+ * Fixed a bug with Brandish Spear's damage. [Skotlex]
+ * Changed the minimum valid char_id from 150k to 1 as apparently many sql
+ servers somehow got their chars to start from id 1 instead of 150k. [Skotlex]
+ * Added a bunch of debug information to help me understand why the client
+ version check is failing. Report back the output on the forums. [Skotlex]
+ * The memory manager is now OFF by default [Skotlex]
+ (if the server now crashes instead of the matrix bug, then whoever
+ gets the traceback first gets to locate it's source)
+ * Various fixes to Sacrifice (self damage, display, defense reduction, etc) [Skotlex]
+ * Fixed Assumptio's damage reduction in pvp/normal maps [Skotlex]
+ * Tiny fix to #fakename [Codemaster]
+ * Probable fix for matrix bug. [Kevin]
+ * Fixed SegFault with friends list loading on sql. [Kevin]
+ * Fixed the spamming of 'unknown packet received' when a client connects
+ with an unidentifiable version. [Skotlex]
+ * Optimized sql loading of data when displaying the Char Select Screen [Skotlex]
+07/16
+ * Added NOLOOT, NOEXP mapflags files (thanks to Lorky,OSKOM) [Lupus]
+ * Updated Louyang monsters spawn (thanks to MasterOfMuppets) [Lupus]
+07/15
+ * Rewrote most of the packet_db handling code. [Skotlex]
+ eA now really supports multiple packet versions at the same time,
+ (so that transitioning from one packet version to another should be
+ smooth), there is no longer any need to mess with the db/packet_db.txt
+ file.
+ * The values for packet_ver_flag have changed, check the battle_athena
+ comments and set it up accordingly!
+ * Using the packet_db is the only way to manage packets now. [Skotlex]
+ * Added sql runservers to all branches as runserver-sql.bat [Evera]
+07/14
+ * Fixed the login-sql registration issue. [Skotlex]
+ * Made it so all ground-targetted skills fail if you try to cast them on a
+ cell you can't step in. [Skotlex]
+07/13
+ * Soul Change should now work on anyone in pvp/gvg maps [Skotlex]
+ * Wand of Hermod's target change from 'friend' to 'party' [Skotlex]
+ * Fixed triple blow's 'infinite damage delay'. [Skotlex
+ * Added check to prevent placing traps on non-walkable cells. [Skotlex]
+ * Fixed login-sql server not reading login_log value [Skotlex]
+ * Adjusted my fix of buildin_getequipisequiped to not leave
+ the return stack tweaked [MouseJstr]
+ * Changed skill_unit_onlimit to use strncpy instead of memcpy
+ in one spot to eliminate accessing unallocated memory [MouseJstr]
+ * Added check into _mmalloc for allocations of less then zero
+ to make debugging easier [MouseJstr]
+ * Fixed USE_MEMMGR to disable when running bounds checker or
+ the debugging malloc code [MouseJstr]
+ * Fixed the debugging malloc MACRO's to use the correct arguments
+ [MouseJstr]
+ * increased max maps per server to 1024 [MouseJstr]
+ * Added check into buildin_getequipisequiped to make sure arguments
+ don't go outside of array boundries *crash* [MouseJstr]
+ * Add a check into refine bonuses to not go outside of array
+ boundries if somebody has a wlv above 5 in the database *crash* [MouseJstr]
+ * Modified skill_tree code to confirm we are still inside the
+ skill_tree array before accessing a element from the skill_tree
+ array *crash* [MouseJstr]
+ * Changed the mob spawning code to use strncpy instead of memcpy
+ in some places to avoid copying unallocated and uninitialized
+ memory *crash* [MouseJstr]
+ * Fixed the compile problem on the previous upgrade. [Skotlex]
+ * Changed refine success chances to match jRO information. [Skotlex]
+ See http://tomcat1.s13.xrea.com/bs/calc.html and
+ http://eathena.deltaanime.net/board/index.php?showtopic=39997
+ for the details on the new equation.
+ (changed because the current equations seem somewhat outdated)
+ * Fixed max chance const of "mob skill usage". Now all mobs aren't hyperactive. [Lupus]
+ * Fixed global vars not being saved instantly (used to cause some scripts exploits) [Lupus]
+ Need some offensive testing.
+07/12
+ * Added Loli Ruri to the Magician set [Skotlex]
+ * Fixed 'theif' on the scripts. [Skotlex]
+ * Added mapflag pvp_noparty to the pvp rooms [Skotlex]
+ * More Dispell Fixes [Skotlex]
+ * log_login option now also works for the SQL Login server [Skotlex]
+07/11
+ * Fixed again Dispell. [Skotlex]
+ * Added nomemo mapflag to Ayothaya Dungeon. Check your memo DBs and wipe forbidden entries [Lupus]
+ - Yuno, Ayothaya Dungeon
+ * Fixed Dispell succes rate reduction by MDef working reversed [DracoRPG]
+ * Changed Guild auras to not be removed by Dispell (they came back when you walked
+ anyway :p) [DracoRPG]
+ * Changed the default for equip_natural_break_rate to 0 (official) [DracoRPG]
+ * Fixed the function that checks whether the player has valid equipment for his buffs :
+ don't return once one buff is stopped, since there can be more (e.g. Crus' shield buffs
+ will now ALL be stopped when the shield is unequipped, not only Guard ^^) [DracoRPG]
+07/10
+ * Fixed Alchemist Fame system using' account_id' instead of 'char_id', however this does
+ NOT solve the names problem : I left debug messages so you can see by yourself that the
+ bug comes from map_charid2nick that always returns null... [DracoRPG]
+07/09
+ * Added Novice Castles Usher NPC. 4 new Castles for all but 2nd classes! [Lupus]
+ * Updated Falcon Assault (now gives 500% at 5 lvl) [Lupus]
+ * Fixed True Sight (now gives +10 Crit, instead of +10%) [Lupus]
+ * Update Sharp Shooting (now gives 350% at 5lvl) [Lupus]
+ * Check other DB related skills req changes in db\changelog.txt [Lupus]
+ * Updated Palm Strike to push back even if it misses. [Skotlex]
+ * Updated Palm Strike cost/sphere requirement. [Skotlex]
+ (the delayed damage still needs to be coded in)
+ * Now adoption.txt NPC can also teach parents/babies their missing family skills [Lupus]
+ But the skills don't work yet (I tested)
+ * Massive mapflags fix. Also added there Novice Guilds. [Lupus]
+07/08
+ * Fixed below fix xD [DracoRPG]
+ * Added another sql injection fix [Kevin]
+ * Rewrote part of the name request code [Skotlex]
+ This means that now you can see other people's party even if they don't
+ belong to a guild, and the party/guild names are updated whenever someone
+ joins/leaves them. Not fully tested but works alright on the client I use
+ (0411)
+ * More Adoption skill fixes. [Skotlex]
+ * Added the Adoption skills to all classes [Skotlex]
+ They should be auto-granted upon adoption (and are not resetable,
+ learnable). This, of course, needs testing, do report if it does not
+ works. (those that already have someone adopted will need a custom npc to
+ give them the skills).
+ * Reverted Wedding Rings as they don't need to give the adoption skills
+ anymore [Skotlex]
+ * Added script command getchildid() [Skotlex]
+ * Updated wedding rings to give the adoption skill when equipped. [Skotlex]
+ * Fixed some adoption skills [Skotlex]
+ * Baby classes won't display the wedding sprite when they equip the
+ tux/wedding dress since that resets their size. [Skotlex]
+ * Added warning messages when mobs from the mob_db are not loaded due to
+ invalid IDs. [Skotlex]
+ * All the new monsters have been added. Check db\changelog.txt
+07/07
+ * Moved some declarations causing errors with gcc 2.95 [veider]
+ * Added valid fd test in inter.c char_sql - caused charserver crash [veider]
+ * Fixed pet-exploit where you could use a bow with no arrow equipped to
+ 'send' your pet to attack distant enemies. [Skotlex]
+ * Added a visual skill effect when pets heal a status ailment. [Skotlex]
+ (Adrenaline Rush was chosen because it's animation does resemble a
+ 'curative spell')
+ * Changed all SQL-related error messages to use ShowSQL [Skotlex]
+ ShowSQL now is also printed on the stderr (like ShowError and ShowFatalError)
+ * Beautified the output of the char server (sql) [Skotlex]
+ * Modified Dispel so that it can fail. [Skotlex]
+ As I have no information of how mdef protects against it, the current
+ dummy equation is: (50+10*SkillLv - mdef)% (note that mdef2 is not used!)
+ If someone knows the actual equation, do open a bug report.
+07/06
+ * Fixed Spider-web (works like a ground-targeted trap) [Skotlex]
+ * Fixed combo delay not working with skills that have a blowcount [Skotlex]
+ * Set the default skill combo delay value to 230ms [Skotlex]
+ (this default was empirically obtained testing with Jupitel Thunder as reference)
+ * Beautified output of the char server (txt) [Skotlex]
+ * Fixed script config import reading. [Skotlex]
+ (was working incorrectly and causing memory leaks)
+ * Another mob-ai fix, this time mobs should unlock their target once
+ it has died for sure. [Skotlex]
+ * Added player_combo_damage_delay & monster_combo_damage_delay [Skotlex]
+ See battle_athena.conf for description of how they work.
+ Defaults to 0 because it is not yet tested for an appropiate default.
+ * Removed player_damage_delay & monster_damage_delay [Skotlex]
+ Use player_damage_delay_rate:0 & monster_damage_delay_rate:0 instead.
+ * Set item_use_interval to 0 (official default, isn't it ?) [DracoRPG]
+ * Improved appearance of script-errors reported during loading. [Skotlex]
+ * Some mob-ai cleanup. Mobs should now unlock their target when it has died. [Skotlex]
+ * Some items, monster drops fixes [Lupus]
+07/05
+ * Fixed double attack damage [Skotlex]
+07/04
+ * Displayed name is now updated whenever a character leaves/joins a
+ party/guild. [Skotlex]
+ * Added some NEW official HEADGEARS quests thanks to Lorky [Lupus]
+ * Added zbuffer/lance's "Dynamic NPC Look 'n Feel" feature. [massdriller]
+07/02
+ * Fixed a small bug in PCloadmapevent thanks to lance. [massdriller]
+ * Added lance's PCLoadMapEvent script event command. to trigger, type in
+ -[TAB]script[TAB]PCLoadMapEvent[TAB]-1,{
+ YOUR SCRIPT HERE
+ PCLoadMapEvent as NPC Name will trigger when players step into the map.
+ OnPCLoadMapEvent as Label will trigger when players step into all maps. [massdriller]
+ * Added lordalfa's NPCKillEvent script event command. to trigger, type in
+ -[TAB]script[TAB]NPCKillEvent[TAB]-1,{
+ YOUR SCRIPT HERE
+ }
+ The script should run everytime a normal monster is killed. [massdriller]
+ * Added lordalfa's edit where Labels from Event Monsters be executed using the MVP RID,
+ and not the Last Hit guy RID. [massdriller]
+ * Added lordalfa's PCBaseUpEvent script event command. to trigger, type in
+ -[TAB]Script[TAB]PCBaseUpEvent[TAB]-1,{
+ YOUR CODE HERE;
+ }
+ the script should run everytime the user gains a level. [massdriller]
+ * Fixed Job Quests exploits (Advanced Classes were able to pass their 2nd job quests again) [Lupus]
+ High Novices were able to pass Super Novice Job Quest as well. They weren't able to GET those
+ professions, tough. But there were some items exploits.
+ Now Advanced classes get reborn guides from all main Job Quest NPCs (1st, 2nd Classes)
+07/02
+ * Fixed NEWnovice NPC set using gmcommand instead of atcommand. [Codemaster]
+ * Maps and bugs updates, some cleanup in Weapon Repair code [DracoRPG]
+ * Added new areas into map flags folder. According to the patch, added NOMEMO flag to Yuno [Lupus]
+ * Some monsters drops changes, cards fixes. [Lupus]
+ * Fixed sql-char server crash when deleting a Guild Master [Skotlex]
+ * Massive cards update (also thx 2Landarma) [Lupus] read db\changelog.txt
+07/01
+ * Fixed being able to steal from Treasure Box #1 [Skotlex]
+ * Char-sql server now uses autosave_interval to decide when to save a
+ modified guild. [Skotlex]
+ * Temporary patch to fix the 'invalid pointer' error on shutdown. [Skotlex]
+ * Changed all printf's to Show* messages (login/login-sql servers) [Skotlex]
+ * Cleaned up sql-account creation code. [Skotlex]
+ * Fixed 'unclean' guilds not getting saved on char-sql shutdown. [Skotlex]
+ * Corrected map-length calculations when auto-adding .gat (#/@ commands) [Skotlex]
+ * Fixed guild-skill sql loading. [Skotlex]
+ * Added battle_config option guild_exp_rate to adjust taxed experience
+ before adding it to the guild. [Skotlex]
+ * Some Guild-Sql saving optimizations [Skotlex]
+ * Changed all printfs to Show* messages (Map Server, common/ files) [Skotlex]
+ * Fixed crashes of Baby Knight/Crusader Peco riders. Added Baby Class support into
+ AT / CHAR commands @mountpeco [Lupus]
+06/30
+ * Added web server (http daemon) plugin, originally by jA, ported to plugin form
+ (but not yet finished) [celest]
+ - To activate it just edit plugin_athena.conf
+ - When running just access http://<your server IP>:<your server port>. The
+ default home page is httpd/index.html, you can edit it if you want.
+ - If graph creation is enabled you can view them in http://..../graph
+ (by default only memory usage graphs are added)
+ * Fixed crash when no grf's are loaded [celest]
+ * Some tidying ups in clif.c, guild.c, skill.c, storage.c [celest]
+ * Fixed a missing foreign key for guild_position in the SQL
+ guild convert files (main.sql has it already) [Aru]
+ * On Guild_skill table corruption in SQL: this is a problem with
+ some MySQL versions not supporting the syntax used in
+ convert_guild_tables properly. The solution is to drop table
+ guild_skill and re-create it with the query from main.sql. [Aru]
+06/29
+ * Fixed Bowling Bash and Spear Stab having knockback in
+ situations where knockback should be disabled (GvG/MVP) [Aru]
+ * Updated map configs with airport maps. [massdriller]
+06/28
+ * Fixed Land Protector's range
+ * Old Sakexes can now login to the server. [davidsiaw]
+ * Doubled Investigate/Occult-Sight's damage and made it non-elemental as per
+ ragnainfo sources. [Skotlex]
+ * Sacrifice now always hits.
+ * Added import of msg_conf.txt for custom message translations. [Skotlex]
+06/27
+ * Fixed Pressure missing. [Skotlex]
+ * Added 2Secs delay to Sonic Blows. [Skotlex]
+ * Removed battle config option maximum_level and replaced it with max_base_level,
+ max_job_level, max_super_novice_level and max_advanced_job_level. Refer to
+ battle_athena.conf for more details. [Skotlex]
+06/26
+ * Fixed typo 'identity'->'identify' in charsave.c [DracoRPG]
+ * Added missing ',' to guild_position definition of main.sql [Lupus]
+ * Added proper foreign keys to guild_position,
+ SQL users run upgrade_svn2331.sql [Aru]
+ * Added convert_guild_tables2.sql for use on guild tables
+ created with a 2314-2321 main.sql. Run this or
+ convert_guild_tables.sql if you are having issues with guild
+ skill saving [Aru]
+ * Fixed a bug with guild_skill table in main_old.sql if you're
+ fool enough to use it [Aru]
+ * @nuke++, ftw ;D [Valaris]
+ * Modified friend list loading in char-server (sql) to be more efficient. [Valaris]
+ * Modified mmo_friends_list_data_str (char-server txt) so it wouldn't make junk data. [Valaris]
+ * Added 'character_size' to battle config:
+ Do mounted (on Peco) characters increase their size [Lupus]
+ * Added new guild database structures to main.sql.
+ Removed obsolete guild_tables.sql.
+ If for some reason the new main.sql doesn't work for you, you
+ can use main_old.sql, but there will be garbage left in the DB
+ if a guild is deleted. [Aru]
+06/25
+ * Asura/Extremity-Fist needs Fury/Explosion-Spirits active no matter how
+ it's triggered. Not yet tested, but it should work. [Skotlex]
+ * Reorganized deletion process. Friends should now be no more problem [davidsiaw]
+ * Added SQL returned row check to friend-list loading, thanks to Sasuke-. [Valaris]
+ * Fixed drops_by_luk not behaving exactly the way it was before... ^^' [Skotlex]
+ * Proper clear of class sprite if used as a mob when killed. [Valaris]
+ * Added limit 10 to fame list SQL query (faster, when u got 1000+ bsm/alch in DB) [Lupus]
+ * Added missing field guild/char_id to main.sql database definition [Lupus]
+ Warning: Don't use guild_tables.sql databases yet! Use main.sql file
+06/24
+ * Small bug fix on the Monk combos introduced by previous reorganization. [Skotlex]
+ * Some corrections on player_cloak_type code. [Skotlex]
+ * Some code reorganizing related to Monk combos [Skotlex]
+ * Reverted behaviour of the drops_by_luk to Valaris's way [Skotlex]
+ Added drops_by_luk2 for those who want the alternate behaviour instead.
+ * Adjusted occult-sight/investigate damage modifier to be (def1+def2)/100 [Skotlex]
+ * Removed remaining bits of code for the ex-guild skill Charisma [DracoRPG]
+ * Added Lighthalzen to @go [DracoRPG]
+ * Fixed bug in bowling bash that made the target's sprite remain. [Valaris]
+ * Added status calculation to nude script command if anything was removed. [Valaris]
+06/23
+ * Fixed LittleWolf's detect hidden mode 256 for mobs (missed a line while merging). [Valaris]
+ * Disable AF2 loading -- eA doesn't support unzipping archives yet [celest]
+ * Updated UPnP plugin to 1.0.3.2 [celest]
+ - Added 'nat_ip' option to upnp.conf (use it to manually set your ip address
+ if auto detecting doesn't work)
+ - Fixed ip address not initialised properly
+06/22
+ * Stopped looting from Chase Walk [Aru]
+06/21
+ * Added send of fail packet on failing to pick up items under certain conditions
+ (this allows you to get an item you tried to pick up while cloaked when you uncloak). [Valaris]
+ * Updated map server to partially 1203~1249
+ - Added 'buyer_name' to battle config: shows the buyer's name when an item
+ has been sold through vending
+ - Added skills with 'water' requirement can be used in rain-enabled maps
+ - Fixed Soul Strike not dealing extra damage to undead
+ - Fixed Advanced Book not giving its aspd bonus
+ - Fixed skill name display when Frost Joke and Scream are casted by mobs
+ - Fixed exp overflow with Rich Man Kim
+ - Fixed exp overflow with party bonuses
+ - Fixed mob names not updated properly when respawning to its base class
+ - Reduced size of struct pet_db a bit
+ - Prevent trying to respawn a one-time-only mob if it can't find any
+ coordinates to add it
+ - Added slave mobs with no master/master died will be removed in mob_ai()
+ - Changed damage log by summoned mobs will use their masters' char_id instead
+ of account id (old system)
+ * Some tidying up in atcommand.c [celest]
+06/20
+ * Large monsters now have 2x base stats, drop rates, exp, and zeny (if enabled). [Valaris]
+ * Small monsters now have half base stats, drop rates, exp, and zeny (if enabled). [Valaris]
+ ** Note: this is referring to size just as @monsterbig and @monstersmall, not small, medium, brute, etc... [Valaris]
+ * Removed wedding rings from hasitems script command. [Valaris]
+ * Removed monsters_ignore_gms from battle_athena.conf, and added @monsterignore command. [Valaris]
+06/19
+ * Sirius: Even though the `id` field is never directly read or
+ written by Athena it is neccesary for the SQL server which
+ automatically handles it. Else each char may have only 1 item
+ in a given table. [Aru]
+ * overhauled PA_SACRIFICE. If you want to revert the old
+ behavior, you can comment out the new line for it in
+ skill_db.txt [Aru]
+ * removed broken SQL "upgrade" script [Aru]
+ * finished the mapservers direct char loading / Charsaving (SQL only!) [Sirius]
+ - set charsave_method in char / map conf to 1 if u want to use the feature
+ - please test it and make db backups, the save / load is completly rewritten.
+ * Fixed some compilation errors on FreeBSD (old compilers [veider]
+06/18
+ * Properly updated graph files (Oh god, i keep forgetting things now...
+ sorry again! >.< [celest]
+ * celest:
+ added a graph.c / graph.h with void graph_init and graph_final functions
+ due to compiling errors [sirius]
+ * SQL USERS: upgrade with upgrade_2252.sql!
+ * Added new maps, items. Thanks to Landarma [Lupus]
+ * Added graph creation code by jA / End_of_exam (currently disabled until
+ finished) [celest]
+ * Added grfio_crc32() [celest]
+06/17
+ !!!Bug: on optimizing run_script, Kafra NPC stopped working. Celest, read it plz. [Lupus]
+ -- Fixed, sorry ^^; Please test and tell me if anything goes wrong [celest]
+ --- Yes. It's fixed now. (Equipment upgraders, etc werent' working, too) [Lupus]
+ * Started adding the charsave_method, Loading is working, saving will be finished @ 18.6.05 [Sirius]
+ * SuperUser checking ... (never run athena as root!) [Sirius]
+ * Added eprintf/eprint (eprintf is equal to printf) but it displays line / file ... (to stdrerr)[Sirius]
+ * Fixed Ungoliatnt casting assumptio on it's target instead of self. [Skotlex]
+ * Switched two frees around that might have caused problems [Codemaster]
+ * Optimised run_script a bit, based on jA [celest]
+ * Fixed a memory leak in script.c [celest]
+06/16
+ * Fixed "unable to add to guild" bug. [Skotlex]
+ * fixed a typo of the guilds sql file DB definition [Lupus]
+ * Added left-out bonus bDef2 [celest]
+ * Moved minicore .o files compiling to under 'common' [celest]
+ * Fixed a client crash when using Advanced/Baby job sprites for mobs [Aru]
+ * Added a random modifier to returned damage modifiers to prevent stun-lock
+ abusers. [Skotlex]
+ It's currently set at +/-5%, not tested to know if that's enough or not,
+ feedback appreciated.
+ * Updated missing grfio.c, sorry ^^; and thanks Skotlex! [celest]
+ * Fixed crash in exporting ip address to plugins [celest]
+06/15
+ * Small mod on the new attack function to prevent Asura Strike from
+ overflowing and doing minimal damage instead of insane damage. [Skotlex]
+ * Merged Iro's patch to get #changesex working. Try it out. [Skotlex]
+ * nullpo fix (guild.c:550), it was an actual possible scenario when you
+ invite someone to a guild and quit before they reply. [Skotlex]
+ * Removed script command gmcommand and replaced it with atcommand &
+ charcommand. [Skotlex]
+ * Small fix regarding speed updating for Cast Cancel + Freedom of Cast [Skotlex]
+ * Added 'make depend' for resetting Makefile dependencies [celest]
+ * Readded 'make addons' (works the same as 'make plugins') [celest]
+ * Split zlib dll opening from grf opening in grfio.c [celest]
+ * Moved grfio.c back to /common, it'll be needed by the core later [celest]
+ * SQL Logs crash likely fixed. [Skotlex]
+ * Added Stone-Curse to the list of status effects undead chars are inmune
+ to. So far undead chars are inmune to Freeze and Stone Curse. [Skotlex]
+ * Fixed disp_hpmeter not working properly when set to 0/no [Skotlex]
+ * Added malloc_usage() for checking total memory used [celest]
+ * Added func_parse_table to assign a parse function according to SessionType
+ -- still not used anywhere yet [celest]
+ * Added 'SessionType' to session_data [celest]
+ * Some tidying up in charcommand.c [celest]
+ * Added temporary code for Shinobi's Rebirth skill [celest]
+ * Added guild exp overflow fix for TXT char [celest]
+06/14
+ * Various item_trade restriction fixes: [Skotlex]
+ - Fixed guild/normal storage flags not working right.
+ - Fixed a bug which allowed players to store items regardless of
+ restrictions.
+ - Modified the gm override level behaviour on trades so a high level gm
+ can both give and receive the otherwise untradeable item.
+ * Small fix to the sql-files/convert_guild_tables.sql script. [Skotlex]
+ * Modified function status_calc_speed to be faster since it's only used for
+ cloaking and freedom of casting. [Skotlex]
+ * Changed the stacking type from speed-bonuses to make it harder to reach max
+ walk speed. [Skotlex]
+ * Fixed a bug on the way aspd bonuses stack. [Skotlex]
+ * Changed map names length from 24 to 16 all over the char(txt/sq) and map
+ servers, this could fix the "matrix" bug (if done right...). [Skotlex]
+ * General cleanup and memory checks on char server (txt) [Skotlex]
+ * Miscellanous memory checks around charcommand.c and atcommand.c [Skotlex]
+ * Added Maeki's fix to Maeki's fix of SQL Char Server Guild Saving.
+ * Fixed characters not being able to uncloak
+ * Split used-by-plugins-only code to plugin.h [celest]
+ * Standardised plugin functions and names -- dll.c is now plugins.c, addon_athena
+ is now plugin_athena.conf and so on [celest]
+ * Updated UPnP plugin to 1.0.3.1 [celest]
+ - moved code in socket.c back into the plugin
+ - added configuration file support (plugins/upnp.conf) -- you'll need to do
+ 'make plugins' to install it
+ * Added 'make zlib' for compiling a zlib.dll [celest]
+06/13
+ * Fixed Asura Strike possibly doing minimal damage when it should do very
+ large damage instead. [Skotlex]
+ * Fixed another possible crash on chrif... [Skotlex]
+ * Applied Maeki's fix for Guild Sql Char server [Skotlex]
+ if it breaks, go stone him :X (I already got enough rocks to watch
+ out for...)
+ * Made berserk-cancels-users-other-self-buffs a battle_config
+ option, default: off [Aru]
+ * Some compiler warnings fixes [Skotlex]
+ * Added battle_config option equip_natural_break_rate. [Skotlex]
+ Default is 1 (0.01% chance).
+ * Changed sprinkle sand's range from 8 to 1. [Skotlex]
+ * Fixed map server failing to connect to char server... [Skotlex]
+ * Char-Sql server revision [Skotlex]
+ Miscellanous memory bounds/overflows checks/fixes.
+ * Fixed options start_armor/start_weapon (char sql) [Skotlex]
+ * Some more map server memory checks and cleanup (90%) [Skotlex]
+ * Fixed cloaking re-cloaking you instead of cancelling cloak. [Skotlex]
+ * Double Damage multiplier applied after vit/def reductions until further
+ information is available. [Skotlex]
+ * Restored previous speed stacking type until a fix for the new method can
+ be devised. [Skotlex]
+ * Removed MVP status from @summon'd monsters. [Valaris]
+ * Had the "monster target reset to none" code inside of check for the monster level up code, moved it out. [Valaris]
+ * Added update of mob hp display on monster level up if mob hp display and monster leveling are on. [Valaris]
+ * Added mob_clear_delay option to battle_athena.conf.
+ Can add a delay before sending monster death packet (time is in milliseconds and default 0 is off).
+ Increasing this can fix the problem with monster sprites still appearing after it died. Recommended value: 10. [Valaris]
+ * Fixed spawning multiple sized monsters via scripts. [Valaris]
+ * Added LittleWolf's mode 256 (0x100 internally) for monsters (adds detect hidden to a monster, doesn't have to be an MVP, demon or insect). [Valaris]
+ * Fixed bug allowing players to cast warp portal under players and other various invalid blocks. [Valaris]
+ * Removed talk conversion of Zherlthsh and Alice pets since clients now support them. Thanks to Kholdstare for pointing it out. [Valaris]
+ * Added "ORDER BY" statement to char-server SQL's reading of the memo db, fixing problems with people's memo lists
+ screwing up when they log back in. Not sure if this problem exists in TXT char-server as well. [Valaris]
+ * Map server memory cleanups... (85%) [Skotlex]
+ * Removed battle option "enemy_critical" [Skotlex]
+ Use enemy_critical_rate=0 instead.
+ * Changed the default of enemy_critical_rate to 0 [Skotlex]
+ * Ported oA's imalive and flushtimer system to eAthena plugin 'gui' [celest]
+ - You will only need the plugin if you are using a gui program like wxOAGUI
+ to run Athena
+ - To configure it check addons/gui.conf
+ - Passing "--gui" as a parameter, i.e "./map-server --gui" will activate it
+ as well (GUI program creators, you should handle this transparently)
+ * Added get_uptime to timer.c -- used by @uptime and the 'sig' plugin [celest]
+ * Merged the 'uptime' plugin into 'dump' and renamed to 'sig' -- it'll now
+ handle both crash and uptime logging [celest]
+ * Guild SQL updated again, `exp` and `next_exp` to BIGINT UNSIGNED [CLOWNISIUS]
+ * Updated the guild_upgrade made sure UNIQUE KEY guild_id is implemented [CLOWNISIUS]
+ * Pets no longer lose intimacy when you die on a nopenalty map [Aru]
+06/12
+ * Removed the dynamic mob messages (mobs spawned/removed) from default output [Skotlex]
+ (Use battle_config etc_log to enable them again)
+ * Fixed sql-files/convert_guild_tables.sql so that it actually works [Skotlex]
+ (works only on non-modified guild tables previous the new guild system)
+ * Small nullpo fix on @where.
+ * Fixed new account flood protection blocking _M/_F registration (txt/sql) [Skotlex]
+ The bug? The default disallowed time was 1 registration every 10K secs.
+ * Found & fixed the bug that was causing server instability on clif.c [Skotlex]
+ * Cloaked characters will uncloak on attack/skill-use [Skotlex]
+ * Fix on aspd_rate affecting skills not working [Skotlex]
+ * Miscellanous small fixes in map server. [Skotlex]
+ * The new attack function is now the unchangeable default. [Skotlex]
+ * Updated double_rate (side-winder) behaviour. [Skotlex]
+ It no longer adds to double attack's skill rate, instead the higher of
+ the two will be used on the currently equipped weapon.
+ * Dec Agi now cancels Cart-Boost and viceversa as explained by Ishizu [Skotlex]
+ * Cloaked characters now can't pick items. [Skotlex]
+ * Made the max speed rate a battle_config option, default 300% [Skotlex]
+ * Fixed the overflowed valstr free on skill.c:8840 [Skotlex]
+06/11
+ * Lord Knight's Beserk now cancels all the caster's other
+ self-buffs when used. It also cannot be re-used during the
+ no-SP-recovery penalty period after it expires. (This penalty
+ will now cancel on your death however.) [Aru]
+ * Reverted the previous stacking type for aspd as per rodatazone
+ information [Skotlex]
+ Speed modifiers, however, still stack on the new way as there's been
+ complains of characters reaching impossibly high walk speeds.
+ * Modified bAspdAddRate code so that it stacks linearly. [Skotlex]
+ * Changed default stacking type for skill modifiers [Skotlex]
+ If you have +50 aspd and +50aspd you won't get 100% aspd, instead now you
+ get 50% of the 50%, that is 75% aspd bonus. Changed meant to protect
+ against stacking skills to get impossibly high walking speed/attack
+ speeds.
+ * Modified the way bAspdRate & bSpeedRate work. [Skotlex]
+ They are meant to be non-stackable, so only the card/equipment with the
+ highest bonus prevails.(items with stackable bonus should use
+ bAspdAddRate & bSpeedAddRate instead.)
+ * Changed the DoppelGanger Card definition from bAspdRate to bAspdAddRate
+ to make it stackable. [Skotlex]
+ * Capped walkspeed at 4x default [Aru]
+ * Added Maeki's awesome convert_guild_tables.sql
+ You must still manually add the `char_id` field to the `guild`
+ table and fill it with the guildmasters' char_ids BEFORE
+ running it. [Aru]
+ * Removed inter_guild_storage_delete calls from int_guild,
+ innodb tables make it unneccessary [Aru]
+06/10
+ * Updated the default pet_db.txt support values [Skotlex]
+ We don't have an official list of the support rates, but 1% as default
+ (1.5% if they have max intimacy) is just ridiculous.
+ * More map server memory cleanups... (70%) [Skotlex]
+ * Fixed that crash upon login.... [Skotlex]
+ * More map server memory cleanups... (45%) [Skotlex]
+ * More map server memory bound cleanups and checks (35%) [Skotlex]
+ * Fixed Stalkers being able to use (plagiarized) ground-target
+ skills from Chase Walk
+ * Fixed come confusion between MVPs (status_get_mexp) and
+ mini-bosses (mode & 0x20) in battle.c
+ * Added battle_config option item_use_interval with default 500ms [Skotlex]
+ * Started map server memory bounds checking for overflows (20%) [Skotlex]
+ * Small optimizations on ensemble skills [Skotlex]
+ * Fixed some compile warnings on char-sql server [Skotlex]
+ * Added script function getitemslots(item_id); [Skotlex]
+ * Fixed a bunch of script functions generating a new dummy item instead of
+ failing when the item was not found. [Skotlex]
+ * Fixed mobhp display so that it will be displayed no matter which /showname option a player is using. [Valaris]
+ * Fixed names with disguises (I tested it. It works. No more bitching. :P). [Valaris]
+ * Completely overhauled SQL guild code to use innodb type tables
+ unfortunately, old guild tables are not compatible.
+ If you don't mind the data loss, wipe your current guild
+ tables and run guild_tables.sql to create new guild tables.
+ [Aru and CuteBoi]
+ * If you want to manually convert your old guild tables, you'll
+ need to add the foreign keys from guild_tables.sql to the
+ databases. And add the `char_id` field to the guild table.
+ Its value needs to be the char_id of the guildmaster [Aru]
+ * Added 'alchemist' mob skill condition [celest]
+ * Rewrote most of the old jA Self Destruction code [celest]
+06/09
+ * Fixed a possible null_po in clif.c:7714 caused by lagged clients [Skotlex]
+ * Fixed enemy damage_delay being modified by 400 instead of 100. [Skotlex]
+ * Changed behaviour of map_freeblock/map_freeblock_unlock as the previous
+ way seems to cause memory leaks. [Skotlex]
+ * Tidied up code relating to skill_get_inf2() [Skotlex]
+ * skill_db.txt updated. New inf2 values: [Skotlex]
+ 16: Guild skill, 32: Song/Dance skill, 64: Encore skill
+ * Other misc arrangements to skill_db.txt (see db/Changelog) [Skotlex]
+ * Tidied up code relating to skill_get_nk() [Skotlex]
+ * Readded the previously removed skills from item_db [Skotlex]
+ * getpetinfo(2) will return "null" on no pet. [Skotlex]
+ * Tidied up code relating to skill_get_inf() [Skotlex]
+ * Some small fixes to @grind, @useskill [Skotlex]
+ * Added fist (bare hands) to the list of unbreakable equipment in
+ pc_break_equipment [Skotlex]
+ * Reestructured battle_config options for equipment breaking [Skotlex]
+ Removed equipment_breaking and added equip_self_break_rate,
+ equip_skill_break_rate. Read battle_athena.conf for more info.
+ * Fixed getpetinfo(2) crash. [Skotlex]
+ * Added a couple missing lines from my PSIBlade merge of disguises. Name, attacking
+ and such are fixed now with disguises. [Valaris]
+ * Added battle_config option to set if advanced job skills may be plagiarized
+ * Fixed ASC_BREAKER to ignore race/size/element cards like it should
+ * Changed @fakename so it no longer needs to teleport the client to work [celest]
+ * Removed the old day/night system that uses the blind effect [celest]
+ * Fixed day/night cycles with darkness_level on not refreshing properly [celest]
+ * Fixed pc_follow_timer cancels if the player or the target warps [celest]
+ * Added @follow on the same target for the 2nd time will stop following [celest]
+ * Added Memory manager will perform a hash check when freeing memory, by
+ End_of_exam / jA 1213 -- fixes crashes when a pointer created by level 2 ALLOC
+ is passed to level 1 aFree
+06/08
+ * Updated idle time considerations. [Skotlex]
+ A character's idle time is reset upon: Walking, attacking (auto-attack
+ counts too), using a skill or using a item.
+ * idle_no_share changed from a Yes/No setting to # of seconds before
+ considering character idle (no/0 still disables). [Skotlex]
+ * Updated idle_no_share description in battle_athena.conf
+ * Modified @disguise so that it will always work with Npc/Mob names and Mob
+ Ids. Only npc by id is hardcoded for now. [Skotlex]
+ * Added atcommands cleanmap, npctalk, pettalk to atcommand_athena.conf with their
+ description. [Skotlex]
+ * Fixed spawn delays for anthell eggs [Skotlex]
+ * Removed equipment_breaking, use equipment_break_rate = 0 instead.
+ [Skotlex]
+ * Clarified some of the comments in battle_athena.conf [Skotlex]
+ * Steal/Snatcher won't work on summoned creatures now. [Skotlex]
+ * Some db updates (see db/Changelog) [Skotlex]
+ * Fixed rude_attacked state not being reset after triggered, credits to
+ Komurka [Skotlex]
+ * GM used Type 11 items will be exempt from the "GMs can do whatever they
+ want" rule regarding skill_usage because otherwise the used item is never
+ consumed. [Skotlex]
+ * Fixed Ice Falchion/Firebrand giving skills, they just cast the spell [Skotlex]
+ * Reduced Ice Falchion's freezing chance from 5% to 1% [Skotlex]
+ * Added Makefile caching [celest]
+ 'Makefile.cache' is created when you compile for the first time, and keeps
+ all your makefile definitions so it can be read directly when you recompile,
+ instead of redetecting things one-by-one.
+ 'Make [char_sql/login_sql/map_sql]' will now work properly too.
+ NOTE: A cache file created by compiling txt is NOT compatible with SQL, but
+ a cache created by SQL is compatible with TXT! Delete the cache file first
+ and compile SQL before TXT if you have to.
+ * Skills will reset at level down. [davidsiaw]
+06/07
+ * Temporary change of the way mob memory is removed when they don't have a
+ respawn time (check for memory leaks fixed after killing all summoned mobs)
+ [Skotlex]
+ * Fixed map_quit being called twice when a player requests to change char [Skotlex]
+ * Fixed compile issues on various versions of linux
+ (please avoid inline in include files until we offically go
+ over to being a c++ app) [MouseJstr]
+ * Fixed aFreed messages of double freeing sd->reg and sd->reg_str [Skotlex]
+ * Re-fixed sql-files/item_db.sql [Skotlex]
+ * Plagiarism won't work if the skill to be copied killed you. [Skotlex]
+ * Removed use of 'l' as prefix for temporary variables. [Skotlex]
+ * Updated max hair styles in battle_conf to 23 [Skotlex]
+ * Updated map server to jA1159~1203 [celest]
+ - Added imbueing weapons with random element (with bonus bAtkEle,10;)
+ - Added Soul Strike do additional damage on undead
+ - Added Grand cross will not damage self when cast by mobs
+ - Added Cannibalize & Marine Sphere summoned mobs will use their owner's name
+ - Added clean up player info when switching characters
+ - Added reinitialise storage when char server disconnects
+ - Changed some cloaking/chasewalk checks
+ - Fixed memory leak when map cache reading has an error
+ - Fixed a bug when receiving member info for an empty guild
+ - Skip still connecting players in clif_foreachclient()
+ * Weather will now properly appear/disappear without having to refresh the client. [Valaris]
+ * Complete monster disguise re-code: [Valaris]
+ -No more client crashes in PVP caused by disguises.
+ -Can view own attack/hit/cast/sit/turn animations.
+ -Monster sprite syncs up better than before.
+ -Fixed stat dupe exploit with disguises.
+ -Fixed crashes that prevented peco riders with disguises.
+ -No more refreshing of the screen when equipping/unequipping disguises.
+ * Fixed crashes caused by Graffiti Cleaner. [Valaris]
+ * Added following missing checks to Ensembles: [Valaris]
+ -Partner's equipment is an instrument.
+ -Partner is alive.
+ -Partner is not casting another skill (This allowed dance floor panel duping).
+ -That both people are in a party (before if both partner's were in no party (party ID 0)
+ it would allow them to use an ensemble.
+06/06
+ * Fixed and updated sql-files/item_db.sql to match with the current
+ db/item_db.txt [Skotlex]
+ * Removed variables with prefix "l" being treated as a temporary
+ variables by the scripting engine. [Skotlex]
+ * Updated description of idle_no_share battle_config option [Skotlex]
+06/05
+ * Added more debugging information to login-in characters to track down the
+ authook nullpo problem. [Skotlex]
+ * Added a temporary string length check on trade-request. [Skotlex]
+ (reports seem to indicate that the map-server garbage text bug could be
+ related to trading string length overflow, check the map-server output
+ for "name too long" messages).
+ * Fixed a few Visual Studio compile errors and warnings - not completely fixed [Codemaster]
+ * prevent_logout is now overriden by dead characters. There's no point in
+ waiting 10 secs since you were killed to quit/change character. [Skotlex]
+ * Passive mobs will now unlock their target once it's dead/gone too
+ far/in another map. [Skotlex]
+ Passive mobs are supposed to be defensive, not vengeful. Do report of any
+ abuses that might be possible from this to take proper measures.
+ * Fixed pet lures always failing (oops) [Skotlex]
+ * Corrected Various Jur's (id 1264) equip script to bonus2 [Skotlex]
+ * Fixed status_get_speed always returning 1000 when invoked on NPCs [Skotlex]
+ * Added battle_config option pet_support_min_friendly [Skotlex]
+ Specifies minimum pet intimacy/friendly value needed before attacking.
+ Default 900, see battle_athena.conf for more information.
+ * Some reorganizing of pet-catching code [Skotlex]
+ * Now mobs will do the /ag emotion when you use a lure on them and they
+ can't be caught (wrong lure, or mob not in the mob_db.txt). [Skotlex]
+ * Fixed a timer mismatch situation with pc_walk timers [Skotlex]
+ * Re-structured the pc_follow_timer code [Skotlex]
+ * Updated the pet_heal_timer code to match behaviour with
+ pet_supportskill_timer's one [Skotlex]
+ * Added support for universal lure. [Skotlex]
+ Use use_script "pet 0;" to create an item that will catch any non-boss
+ mob (will work as long as said mob has an entry in mob_db.txt, of course)
+ From what I read in the code, mapping multiple entries in mob_db.txt to
+ the same egg_id should work, so it should be possible to have all mobs as
+ pets using a single egg_id item and this custom lure.
+ * Updated Weapon Repair from jA 1228 [celest]
+ * Fixed TXT char disconnecting when sent a server packet from SQL map [celest]
+ * Fixed login failing with md5 encryption, thanks to End_of_exam
+ * Fixed lock_fclose() failing in Win32 builds, thanks to End_of_exam
+ * Updated sql-files/mob_db.sql to match with db/mob_db.txt [Skotlex]
+ * Corrected Zherlthsh's and Alice's attack animation speed (mob_db.txt) [Skotlex]
+ sql-users can use upgrade_svn2068.sql to update table mob_db.
+ * Re-fixed disp_hpmeter not getting disabled when set to 0/no [Skotlex]
+ * Fixed Grandcross/DarkCross to do 3 hits instead of 4 [Skotlex]
+ * Fixed #fakename =). [Kevin]
+ * Tidied up and rearranged Makefile a bit [celest]
+ - added 'make [common/map/login/char] options' -- only for txt though ^^;
+ - readded sse, mmx and o3 optimisation flags (disabled by default) -- you'll
+ have to edit and enable them yourself
+06/04
+ * Moved @charchangesex to #changesec *still disabled*. [Kevin]
+ * Fixed a major security hole in the mail system, thanks to Valaris for the info =). [Kevin]
+ * Moved @charsk/stpoint to #sk/stpoint. [Kevin]
+ * Moved @charmodel to #model. [Kevin]
+ * Moved @charst/skreset to #st/skreset. [Kevin]
+ * Re-updated sql-files/item_db.sql to use price buy/sell NULL instead of 0 [Skotlex]
+ The file is full of REPLACE instead of INSERT, so if you already have the
+ structure of the table right, you can just delete the table definition
+ and apply the file to update your item_db table.
+ * Commented out char_athena.conf. [Kevin]
+ * Moved @charlostskill to #lostskill. [Kevin]
+ * Moved @charquestskill to #questskill. [Kevin]
+ * status_change_start will halt silently instead of printing null_po messages
+ when trying to apply status effects on pets [Skotlex]
+ (Fixes null_po's from pets doing magnum break and who knows what other
+ skills)
+ * Moved #showexp and #showdelay to @showexp and @showdelay. [Kevin]
+ * Moved @charjoblvl and @charbaselvl to #joblvl and #baselvl. [Kevin]
+ * Readded the cloth dye packet upon-walk. Sorry about that [Skotlex]
+ * Fixed Party Exp Even Share [Skotlex]
+ * Added #fakename, due to popular demand =)[Kevin]
+ * Clothe dye is updated now on view_class change [Skotlex]
+ Most noticeable effect: Dye is not lost un unequipping a tuxedo/wedding dress.
+06/03
+ * Updated sql-files/item_db.sql to match with the current db/item_db.txt [Skotlex]
+ * Added some initialization code regarding dynamic mobs during map startup. [Skotlex]
+ * Fixed the typo on Thief's Sling Stone quest (Zargon->Garlet) [Skotlex]
+ Why noone fixed this before? o.O
+ * Removed a piece of code that updates your cloth's dye whenever you walk.
+ I have been testing for a bit, and this piece of code seems unneeded, and
+ not only that, it causes quite a bandwidth penalty by sending
+ dye-changing packets every time every character walks! [Skotlex]
+ If you get reports that the characters are getting displayed their
+ default color instead of their selected dye, report it so I add back that
+ piece of code (but it would be best if we could do without it, it would
+ save quite some bandwidth).
+ * Some compiler fixes in older versions of GCC, thanks to esca.
+ * Some optimizations to petskill_use [Skotlex]
+ * Fixed the default max hair dye color count, it is 8, not 9 @.@ [Skotlex]
+ * Changed disp_hpmeter's behaviour so that you can disable it by setting it
+ to "no" or 0. [Skotlex]
+ * Fixed gm chat kick protection. [Skotlex]
+ * 'Tidied' a bit party_exp_share (more like restructured it). [Skotlex]
+ * Re-added party_idle_no_share code. When was it removed? [Skotlex]
+ * Added skills going damanage when PVP isn't on fix. [Kevin]
+ * Fixed the party-even-share bonus for large parties. [Skotlex]
+ * Fixed gm chat kick protect.[Kevin]
+ * GM of higher or equal level can use @where on another GM.[Kevin]
+ * Fixed @fakename command.[Kevin]
+ * Stopped the map-server from invoking "OnAgitStart" each time it connects
+ to the char server. [Skotlex]
+ * Modified Abracadabra code to make it work with Pet Skills [Skotlex]
+ (Warning: Not yet tested)
+ * fixed a bug with Abracadabra
+06/02
+ * fixed compile issues on older gcc, thanks to esca [Shinomori]
+ * Added @size and @fakename gm commands. [Kevin]
+ * Added valaris's getstrlen and charisalpha functions into the script parser. [Kevin]
+ * Added clif_guild_xy(_remove), rest needs to be added somewhere. [Kevin]
+ * Fixed items lost on shutdown/crash, by valaris. [Kevin]
+ -Note: Was partially finished by massdriller =).
+ * A few things: [Kevin]
+ -Fixed valaris's gms can't be kicked function.
+ -Added battle_config option for valaris's function.
+ -Added battle_config option for gms can join password protected chats of valaris's .
+ * Moved "readme"'s and other non important files into doc/notes/ [massdriller]
+ * Cleanup in chat.c, party.c, storage.c [celest]
+ * Fixed an inconsistent message for log_chat in conf file reading [celest]
+ * Fixed mob class changing not checking array bounds, by Shinomori
+ * Fixed mob summoning slaves not checking array bounds, by Shinomori
+ * Updated max packets in clif.c [celest]
+ * Fixed some compile time warnings. [Kevin]
+ * Added GM chat kick protections, thanks to Valaris [massdriller]
+ * Added Password protection chat rooms access to gms, thanks to Valaris [massdriller]
+ * Fixed a couple of things in map.c, thanks to Valaris [massdriller]
+ * Storages now saves upon closing, thanks to Valaris [massdriller]
+ * exp share and added zeny share/party bonus exp thanks to Valaris [massdriller]
+06/01
+ * Fixed Divest Shield and Divest All not able to strip shields [DracoRPG]
+ * Changed the default max_hitrate to 100% as specified in rodatazone [Skotlex]
+ * Removed the console messages printed when the script command getmapxy is
+ invoked [Skotlex]
+ * Fixed non-droppable items blocking the client from further droping
+ other items [Skotlex]
+ * Changed the default of mob_remove_delay to 5 mins [Skotlex]
+ * Changed the minimum mob_remove_delay to 15 secs since mobs with instant
+ respawn actually take 5~10 secs to respawn [Skotlex]
+ * Fixed again disp_hpmeter, it looks like this time it works properly. [Skotlex]
+ * Added Esca's fixes to make eA properly compile under Sun-OS [Skotlex]
+ * Tested and fixed script function getnameditem [Skotlex]
+ Now you can use getnameditem(item,char) to get inscribed equipment (only
+ works with what you can equip, arrows excluded). The item description can
+ be the item id or the item name, and the character can as well be the
+ character id or character name. Function returns 1 if successful and
+ the character who's name is to be inscribed HAS to be online.
+ * Changed the way dynamic mobs are removed. Now all mobs have are tagged as
+ either cached/uncached, and only those cached are removed [Skotlex]
+ Mob-Slaves are the only non-cached enemies that are also tagged as
+ cached.
+ * Fixed a delete_timer mismatch in pet.c [Skotlex]
+ * Fixed some compile time things in older versions of gcc. [Kevin]
+ * Removed the clif message when you can't drop items [Skotlex]
+ Apparently this message breaks the clients and prevents further drops of
+ items? Might need further testing.
+ * Changed AspdRate and SpeedRate bonuses so they can stack [DracoRPG]
+ * Added script function getnameditem [Skotlex]
+ syntax: getnameditem itemid, inscribed char's name
+ Needed at least for wedding scripts. Only works on equippable items,
+ returns 1 on success, always makes only 1 item.
+ (it should also be able to use char's id or item's name instead)
+ Script function proof-read but not yet tested, so it might have a bug or
+ two, use at your own risk for now.
+ * Fixed dynamic mobs removing Guardians [Skotlex]
+ * Fixed sql queries in logs giving an error. [Kevin]
+ * Fixed @memo ignoring the nomemo map flag, thanks to Maeki. [Kevin]
+ * Enabled an account flood protection system defaulting to 1 account every 10 seconds. [Kevin]
+ * Corrected dynamic mob unloading to remove slaves. [Skotlex]
+ * Added Maeki's fix for handling the sql connection to the log server [Skotlex]
+ * A reminder to people who seem to have a broken item_db (wrong item
+ sprites, doing nothing on click, etc): there was an update to item_db
+ some days ago, a new column which is used to determine refineable
+ items (which goes between eLv and View) The shipped item_db.txt is
+ already updated, but if you have custom files, you can try updating
+ them using the gawk line (further below this changelog) or this short
+ sed command (from within the db directory):
+ gsed -re 's/([^,]*,){16}/&,/' < item_db.txt > item_db.fix
+ And then replace item_db.txt with the newly created file (if ya don't
+ have gsed, try sed. All *nix should come with one or the other, and you
+ can also get it with cygwin)
+ * Moved the dynamic mob spawns/deletes to map_addblock/map_delblock [Skotlex]
+ This pretty much guarantees that mobs won't be spawned/deleted twice from
+ the same map.
+ * Added random's battle_config flag for enabling/disabling dynamic mobs [Skotlex]
+ Dynamic mobs is good for medium to small servers, but on large ones it
+ gets to be somewhat pointless.
+ * Fixed disp_hpmeter, I think (can't test it, but the code looks ok) [Skotlex]
+ * Added battle athena option mob_remove_delay [Skotlex]
+ Now dynamic mobs are not removed inmediately, but after some time has
+ passed. Default value is 60 secs
+ * Added debugging information about dynamic mobs [Skotlex]
+ Helps keep track of how many mobs are being removed/spawned, use it to
+ track any possible bugs! Should be removed after dynamic mobs are good
+ enough.
+ * Some changes to dynamic mob unloading to avoid remove summoned mobs and
+ always remove mob slaves. [Skotlex]
+ * Fixed a nasty pc.c bug thanks to komurka [massdriller]
+ * Added Sasuke's modification to allow certain gm levels to see the
+ hp bars [massdriller]
+
+05/31
+ * Added Einbroch mobs to dead branch DB [Arutema]
+ * Fixed NPC Typo [Codemaster]
+ * Updated help.txt, fixed a compile time warning on BSD systems. [Kevin]
+ * @marry auto-gives named rings, removed @rings as in-needed [Arutema]
+ * Fixed some compilation errors in BSD systems. [Kevin]
+ * Restored dynamic mob cleaning to what it was a couple of nights ago
+ Should send the system back before all hell broke loose. [Skotlex]
+ * Added battle_config options min_hitrate & max_hitrate [Skotlex]
+ These only affect the new attack function, and th defaults are 5%-95%
+ * Added client-messages for when an item can't be drop/stored [Skotlex]
+ * Finished implementing the "optimization" item_trade.txt [Skotlex]
+ * Optimised the long forgotten MVP arena [massdriller]
+
+05/30
+ * Rewrote the trade-add-item function, it was hella messy [Skotlex]
+ * Updated item_trade.txt implementation [Skotlex]
+ GM-override lv is still to be implemented.
+ Code has been reviewed, but not actually tested yet, use with caution.
+ * Fixed fame list first loading, at server startup [DracoRPG]
+ * added lordalfa's @me action command [massdriller]
+ * Reverted changes to dynamic mob removal, now all mobs are removed [Skotlex]
+ mob_remove_damaged is still respected.
+ * Partial implementation of item_trade.txt, not quite finished yet [Skotlex]
+ * Fixed mob_remove_damaged [Skotlex]
+ * Added two new battle_athena options: [Skotlex]
+ show_hp_sp_drain (yes/no): displays drained hp/sp from attacks (ie:
+ Hunter Fly Card)
+ show_hp_sp_gain (yes/no): displays gained hp/sp from killing mobs (ie:
+ Sky Deleter Card)
+ * bHPGainValue, bSPGainValue will only display gained hp/sp when said
+ gain is above 0. [Skotlex]
+ * Changed hp_dispmeter from yes/no to GM-level [Skotlex]
+ Note that now the default value is hp_dispmeter: 100
+ * Fixed item_avail.txt reading could crash on newline [celest]
+ * Speedup and fixed @reloaditemdb messing up inventory data [celest]
+
+05/29
+ * Optimised job quests scripts [massdriller]
+ * Fixed guild expulsion bug, two chars on same account would be expelled. [Kevin]
+ * Dynamic mob unloading won't touch mobs with a deletetimer now [Skotlex]
+ this affects mobs scheduled to be removed (including @summon mobs)
+ * Dynamic mobs now also removes mobs that have a master [Skotlex]
+ * Fixed Knockback skills on the new attack function [Skotlex]
+ * Rewrote the vitality reduction equation in the new attack funcion [Skotlex]
+ The new equation conforms to rodatazone's information here:
+ http://rodatazone.simgaming.net/mechanics/substats.php#def
+ * Fixed item_db.txt to contain the new refinable column [Skotlex]
+ (I accidentally commited the old item_db last time...)
+ TXT users with custom items can update their custom db using gawk (*nix
+ or under Cygwin) this way (thanks to Sasuke):
+ gawk -F, '{ for (i=1; i<= NF; i++) { if (i==16) { printf $i; printf ",";printf ","; } else if ( i==NF ) { print $i; } else { printf $i; printf ","; } } }' db/item_db2.txt > item_db2.new.txt
+ Run it from within the root eAthena directory, and you'll get an updated
+ item_db2.txt in your root directory. However, all custom items are not
+ refineable by default this way, you still have to set to 1 the refineable
+ column where it applies on your custom item_db.
+ * Improved uptime checking, by Shinomori
+ * Improved calltable import/exporting, by Shinomori
+ * Standardised init/finalise functions' names [celest]
+ * Fixed SVN version display at client connection, thanks to Maeki [DracoRPG]
+ * Prevented Snatcher to try stealing players and already stolen mobs, thanks to shadow [DracoRPG]
+ * Fixed Parrying and slightly organized status_change_start [DracoRPG]
+ * Removed fame list update timer and made it to refresh the list everytime pc_addfame is ran [DracoRPG]
+
+05/28
+ ~ Name of NPC file in map_athena.conf is now scripts_main.conf
+ ~ Added a new column to item_db.txt/item_db2.txt: refineable [Skotlex]
+ The column goes between equip_level and view, use upgrade_svn1863.sql
+ to update sql tables (including item_db2.txt). Custom item users of txt
+ servers will have to update manually.
+ When the column's value is 0, NULL (sql) or blank (txt), the item can't be
+ refined.
+ OLD ITEM_DBS WILL NOT WORK WITH THIS NEW UPDATE, update your custom
+ items!
+
+ * Fixed a crash bug in pet_heal_timer on timer mismatch. [Skotlex]
+ Thanks to Celest for noticing it out.
+ * Fixed the critical attacks bug in the new attack function. [Skotlex]
+ * Added MassDriller's updated readme.html files. [committed by Skotlex]
+ * Fixed script_athena.conf reading of "event_requires_trigger". [Skotlex]
+ It was looking for "require_set_trigger" instead of
+ "event_requires_trigger", which effectively ignored the
+ event_require_trigger's value. Logout events should now be usable without
+ the need of a global variable.
+ * Registered all used timer functions to help debugging [celest]
+ * Added -DMINICORE to compile core.c (for converters and ladmin) [celest]
+ * Removed most unused code and files in char and login converters [celest]
+ * Moved converters to /txt-converters [celest]
+ * Some tidying up in core and socket.c [celest]
+ * Fixed a bug in the new attack function dealing with dual-wielding [Skotlex]
+
+05/27
+ * Removed YET AGAIN the mob's skill_idle_flag function. [Skotlex]
+ Komurka updated the mob_skill_db so that it is not needed anymore.
+ * Modified the critical equation on the new attack function [Skotlex]
+ The original equation ((1 + LUK*0.3 + EquipmentBonuses) * CritModifier -
+ TargetLuk/5) was meant for official servers, where mobs don't do
+ criticals. If applied to mobs, they get very high critical rate, so the
+ luk reduction was bumped up to TargetLuk*3/10 on situations where a player
+ is targeted by a mob.
+ * Re-Applied the idle_skill_flag [Skotlex]
+ It was removed because people said it was broken, however it works
+ exactly the way Komurka explained it to me:
+ A mob can cast only one idle skill, and can't do another one until it
+ moves. If the mob casts too many idle skills because it
+ casts/moves/casts, then increase the skill's delay in the database! If it
+ still does "not works", drop me a line explaining why, because it works
+ exactly as I was told it should.
+ * Small adjustment of the critical equation in the new attack function [Skotlex]
+ * Fixed some crashes related to pet skills and timers [Skotlex]
+ * Fixed 1 delete_timer error with pc_stopwalking [celest]
+
+05/26
+ * Tidied up mob.c and map.c a bit [celest]
+ * Removed rehash() in atcommand.c [celest]
+ * Fixed @reloadscript issue with dynamic mobs [celest]
+ * Added flush fifos first before reloading in @reloadscript [celest]
+ * Added spawn mobs with 1 second delay instead if moblist is full, by Shinomori
+ * Fixed wrong name saved when adding friends, thanks to Maeki
+ * Fixed itemhealrate stackable, thanks to starlon
+ * Set the new_attack_function to be used by default. [Skotlex]
+ This function replaces the three previously used functions (pc/mob/pet)
+ into a single one which was rewritten to follow the attack algorythm as
+ described in http://rodatazone.simgaming.net/mechanics/attacks.php
+ Please report any inconsistencies or strange behaviour that this new
+ function brings (only affects physical attacks/skills) on the boards.
+ If anyone can do some performance comparisons with the old method, that'd
+ be useful too.
+ If you absolutely don't want to test it and prefer the old method, in
+ battle_athena.conf add a line that goes:
+ new_attack_function: no
+
+05/25
+ * Fixed typos in Absorb Spirits, Double Casting and Tarot Card, thanks to Komurka
+ and Avaj
+ * Added missing code for Flasher, thanks to Komurka
+ * Fixed a string bug in grfio_resnametable [celest]
+ * Updated the readme files to the current statistics. [Mass Zero]
+
+05/24
+ * Added 'make addons' -- plugins will not be compiled by default now [celest]
+ * Ported uptime logging function to eAthena plugin [celest]
+ * Ported pid file creation function to eAthena plugin [celest]
+ * Ported stackdump creation function to eAthena plugin [celest]
+ * Added capability to export to plugins [celest]
+ * Fixed ensemble skills, thanks to Komurka
+ * Fixed Dissonance damage, thanks to shadow
+ * Reverted db/pet_db.txt to it's original form. [Skotlex]
+ The pet skills shipped with eA should be as close as possible to the
+ original servers. If you prefer the current custom skills in place just don't
+ update the pet_db.txt file.
+` (Somehow my custom pet skills table got updated to svn and I didn't notice
+ it ^^')
+
+05/23
+ * Fixed a few problems wit Dynamic Mobs [Wizputer]
+ Increased max mobs per map from 32 -> 128
+ Fix mob unloading
+ Special Mobs w/ Spawn delays are exempted (MVPs, Gaurdians, Branches, and summoned)
+ Added Option for damaged mobs not to be removed in battle config ( Default yes )
+ * Mob count in scripts returned 1 less then it was supposed to. [Kevin]
+ * Updated tool/stackdump script to support eA's own stackdumps [celest]
+ - Type ./stackdump help to check
+ * Changed mob_cleanup_sub simply to cleanup_sub [celest]
+ * Fixed some memory leaks with dynamic mobs [celest]
+ -- notes: Check bugs.txt
+ * Fixed some compile warnings in gcc 4.0 [celest]
+
+05/22
+ * Added Jbain's server restarter bat files. [massdriller]
+ * Drastically Improved Memory usage by making mobs dynamic [Wizputer]
+ Mobs load only when a PC is present on the map
+ Mobs that have special spawn delays are not loaded/unloaded
+ ( Reduced memory usage by 60% for 419 Maps )
+ * FIFO size fixes [Shinomori]
+ * Fame point system now uses pc_addfame [DracoRPG]
+ * Added support for new NPC sprites in @disguise, thanks to akusarujin [DracoRPG]
+ * CharSQL: changed the init / login connection issue, now 'online'
+ players will be set offline in login @ start / login reconnect [Sirius]
+
+05/19
+ * Fixed displaying new when char_new is set to one and changed the option to char_new_display. [Kevin]
+ * Fixed mysql fix. [Kevin]
+ * Fixed a previous fix with pet idle skills, needs db update not hard coding. [Kevin]
+ * Fixed mysql queries to support the following: [Kevin]
+ -Names now support the ' character
+ -Runs faster because querying string fields doesn't do strlen.
+ -Debug option to revert back to old debug queries, will disable the support of the two above.
+ * Added No Dead Branching Mapflags in cities [massdriller]
+ * Fixed Asura Strike to need only 1 spiritball if used after Chain Crush [celest]
+ * Added Asura Strike can be chained after Tiger Fist [celest]
+
+05/18
+ * Fixed up character creation, txt supports three status error and char_new is now enabled. [Kevin]
+ * CharSQL: fixed the Delete Char issue, now it's using the sd->email instead if the sql email [Sirius]
+ * Removed status points adding can be limited via gm level [celest]
+ * Removed double clean up when char server disconnects from map [celest]
+ * Removed 'mysql_real_escape_string' usage in SQL char until it'll no longer cause
+ crashes [celest]
+ * Added signal handler for SIGXFSZ [celest]
+ * Fixed some compile errors [celest]
+ * Fixed broken status changes [celest]
+ * Fixed Max Overthrust not working [celest]
+
+05/17
+ * Fixed null pointer in map.c. [Kevin]
+ * Fixed on a compile time error in status.c/h [Kevin]
+ * Fixed an invalid pointer in clif.c [Kevin]
+ * Removed 'Agi Up' visual effect from Berserk [DracoRPG]
+ * Tidied up npc.c a bit [celest]
+ * Added crash check in SQL char creation [celest]
+ * Changed Marionette Control's inf type [celest]
+ * Added infinite emperium/guardian hp fix, thanks to random
+
+05/16
+ * Fixed a slightly large inefficiency and bug in clif_foreachclient thanks to Sasuke-! [Kevin]
+ * Fixed a bug in minimap thanks to Komurka. [Kevin]
+ * Added mysql_real_escape_string() while creating a new character
+ - Might fix a few character names if you have no restrictions [Codemaster]
+ * Fixed 'rudeattacked' skill condition, thanks to Komurka
+ * Replaced zlib_win32.h and zconf_win32.h with the v1.2.2 files in /zlib [celest]
+ * Ported zlib.dll loading to eAthena plugin form [celest]
+ * Fixed some NPC skills acquirable by @allskill [celest]
+ * Merged sigpipe's handler with sig_proc [celest]
+ * Optimised timer.c a bit (partially from Shinomori's changes) [celest]
+ * Fixed up some more null pointers. [Kevin]
+ * Added Chat-Logging (for Whisper, Party and GuildChat!) [Sirius]
+ - Sql Log Users please upgrade: sql-files/upgrade_svn1759.sql
+
+05/15
+ * Minor bug fix by NSSTrunks
+ * Added Shinomori's MakeWord, MakeDWord and GetWord functions to split a 'long' into
+ 'short' & assemble 'short' into 'long', used for produced items and pet eggs [DracoRPG]
+ * Fixed famous player's produced items not giving bonuses if the producer had a too long
+ character ID (exceeding 'short' capacity and then stored both in card2 and 3) [DracoRPG]
+ * Added gm command symbol checks for atcommand/charcommand.c, thanks to akusarujin
+ * Added valid session check in clif_additem, thanks to Sasuke
+ * Fixed a heavy memory leak with the Memory Manager, by Shinomori
+ * Fixed a memory leak with empty scripts, by Shinomori
+ * Removed npc unloading via npcname_db finalising -- fixes some wild frees [celest]
+ * Fixed monsters' attacked_count never cleared if it successfully casts a skill
+ from 'rudeattacked' condition [celest]
+ * Fixed some NPC skills can be copied by Plagiarism [celest]
+ * Changed Enchant D.Poison's poisoning effect to not work on bosses instead of
+ damage bonus [celest]
+ * Fixed an item dupe bug, very rare occasions [Kevin]
+ * Tidied up pc.c [celest]
+ * Fixed some wild frees from npc unloading at shutdown [celest]
+ * Changed Make Arrow to not display equipped items as material choices [celest]
+ * Removed 'make_arrow_flag' -- use 'produce_flag' instead [celest]
+ * Fixed equip breaking bug in pc.c. [Kevin]
+ * Fixed alot of null pointers thanks to Sasuke-. [Kevin]
+ * Set default in battle_athena.conf of player_skillup_limit to yes. [Kevin]
+ * Extended hide_gm_session to @where [Kevin]
+ * Fixed a guild exp overflow bug in guild.c & int_guild.c[Kevin]
+ * new command @iteminfo item_name/id (@ii). It works, but will be improved [Lupus]
+ * added all known mapflags into @mapinfo command. Rearranged output [Lupus]
+
+05/14
+ * Simplified @cleanmap [celest]
+ * Fixed finalizing clean up could miss 1 map [celest]
+ * Added placeholder code for NPC_EMOTION_ON [celest]
+ * Fixed damage bonuses (damage_rate) not working for normal attacks [celest]
+ * Fixed Concentration (again ^^; ), thanks to lordalfa
+ * Fixed base file name sometimes not retrieved properly in core [celest]
+ * Removed "memwatch.h" includes for all source files other than malloc.h -- only
+ 1 define is enough [celest]
+ * Fixed wrong packet for 01-10aSakexe's UseSkillToPos [celest]
+ * Skip rearranging large memory blocks while cleaning up on memory manager
+ shutdown [celest]
+ * Updated the guild aura skills -- gives +1 stat per level, and runs a bit
+ faster [celest]
+ * Fixed broken Marionette Control -- changed to clowns/gypsies that are under
+ marionette will not be able to use the skill [celest]
+ * Fixed Absorb Spirits working on boss-type monsters [celest]
+ * Fixed Body Relocation hiding when used by monsters [celest]
+ * You can only use mute commands when the system is enabled. [Kevin]
+ * Fixed a guild bug in inif_guild_leave in intif.c, would expel are characters on an account [Kevin]
+ * Added new mapflags (mainly for fixing jobquests abuse and arenas) by Lorky, fixed added by [Lupus]
+ - noexp - on killing a monster you don't obtain both Base and Job EXP at all (including MVP EXP bonus)
+ - nobaseexp - on killing a monster you don't obtain Base EXP at all (including MVP EXP bonus)
+ - nojobexp - on killing a monster you don't obtain Job EXP at all (including MVP EXP bonus)
+ nobaseexp+nojobexp=noexp
+ in other words, 'noexp' set both mapflags 'nobaseexp' and 'nojobexp'
+ - noloot - on killing ANY monster you get no loot at all
+ - nomobloot - on killing a common monster you get no loot at all
+ - nomvploot - on killing a MVP monster you get no MVP loot at all
+ nomobloot+nomvploot=noloot
+ in other words, 'noloot' set both mapflags 'nomobloot' and 'nomvploot'
+
+05/12
+ * Very very very strong weapons (forged with 3 Star Crumbs) now give +40 dmg
+ instead of +15 dmg [DracoRPG]
+ * Weapons/potions made by a top-10 famous player now give bonus effects [DracoRPG]
+ * Updated the battle.c change made to generate compile time
+ errors if you put the wrong battle_config option with the
+ wrong type into the wrong place [MouseJstr]
+ * Added item type 11 into LOGs filter [Lupus]
+ * Removed mob_skill_use, if you don't want mobskills, set mob_skill_rate to
+ zero [Skotlex]
+ * Modified drops_by_luk behaviour. See battle_athena.conf for details [Skotlex]
+ The new system works a lot like Diablo 2, where having 100% better chance
+ of finding items means that you basicly get double drop rates than others.
+ * Implemented pet idle skills restrictions as explained by Komurka [Skotlex]
+ From what I was told, a mob can only cast a skill while in idle state
+ once, and it needs to move before it can do another idle-state skill.
+ * Tested and fixed wedding_ignorepalette, it now works as it should [Skotlex]
+ * Tested the new item type 11. I forgot to add the code for the sql
+ version, but that's now fixed and the new system works as it should [Skotlex]
+ * Put a fix in for the bug mentioned below [MouseJstr]
+ * Added code to make min_hair_style, max_hair_style, min_hair_color,
+ max_hair_color, min_cloth_color, max_cloth_color work [Skotlex]
+ What it does, is cap the values whenever you try to change the
+ character's dye via an npc/script, it won't touch character's dye colors
+ upon loading.
+ * Shrinked @mapinfo output, added 2 missing flags NOWARP / NOWARPTO [Lupus]
+ * New item type (11) to item_db: delay-consumed usables. [Skotlex]
+ . All items that have in their script "pet" or "itemskill" must be changed
+ from type 2 to 11. The new type of item has the property of not being
+ consumed on double click, but after a target is selected (hence it is
+ ideal for lures, skill-casting items and the yggdrasil leaf)
+ The item_db.txt file was updated to reflect these changes. Custom pet
+ lure owners, update!
+ SQL users can run upgrade_svn1705.sql which will upgrade both item
+ databases (including all custom lures)
+ * Added battle config option 'ignore_items_gender'. [Lupus]
+ So any player can equip any item regardless of the gender restrictions.
+ Note: It's ignored by default since gender check isn't implemented at
+ official servers.
+ There are 2 exceptions: Wedding Ring M/ Wedding Ring F (their gender check
+ won't be affected)
+
+05/11
+ * Added by popular demand battle config options mob_skill_rate &
+ mob_skill_delay. See battle_athena.conf for further information. [Skotlex]
+ * Added battle config option wedding_ignorepalette (default no)
+ When enabled, the wedding dress/tux will always display with the default
+ dye (not all palette packs bring palettes for the wedding class, nor
+ they should) (Needs testing)
+ * Changed most battle_athena options to unsigned short. This means the
+ maximum valid value is around 60K (65535 on most systems) which
+ translates to ~60 secs or 600% (600x) for most options. See
+ conf-tmpl/battle_athena.conf for details on which variables were
+ excluded (exp/drop rates values are excluded, obviously).
+ * Removed boss warping code since it is currently supported by the mob skill DB
+ 'rudeattacked' state [celest]
+ * Fixed plagiarised skills replacing actual learnt skills [celest]
+ * Fixed 'gmcommand' script command crashing when no players are attached [celest]
+ ... which means the command does not work in script events like OnClock!
+05/10
+ * Added code to prevent pet lures from being wasted until after selecting a
+ target (only works with official lures). [Skotlex]
+ * Added MAX_REFINE to status.h [Skotlex]
+ Enables for custom max refine levels using the success rates in
+ refine_db.txt, npcs will know they reached the max level when the success
+ chance returns 0. (npcs still need updating to support this model)
+ - Note: Whitesmith's refinery skill might need to be tweaked if you want
+ them to be able to forge above lv10 and up to whatever custom max you
+ wish.
+ - Note2: Npc's refine_sucess script command ignores this max.
+ * Skill updates [celest]
+ - Fixed Charge Arrow not requiring bows
+ - Fixed Enchant Deadly Poison working on bosses
+ - Fixed Concentration (again! xD) def penalty, thanks to UniRing
+ - Added code for NPC_REVENGE
+ * Added 'masterattacked' mob skill condition [celest]
+ * Added battle_config.use_statpoint_table [Skotlex]
+ When set to no, a new equation is used to calculate stat points after a
+ reset. I've tested the equation to death, so it should work flawlessly.
+ Advantages of using the equation: No need for statpoint.txt (it is still
+ read for the time being), and stat changes through npc buyers/sellers are
+ preserved after a reset.
+ * Restructured clif_parse_Wanttoconnection [celest]
+ * Fixed packet version detecting not working properly if last version's connection
+ packet is the same as the DB but with different values [celest]
+ * Added built-in support for 2005-05-09aSakexe and changed 'packet_ver_flag'
+ default in battle conf to 511 [celest]
+ * Added load local resnametables.txt into memory instead of opening and reading
+ it every time we look for a file [celest]
+ * Fixed crash if resnametables.txt was not found in a grf [celest]
+ * Removed some unnecessary steps in grf file lists loading [celest]
+ * Added display_hallucination for clients where the effect lags badly [Skotlex]
+ * Added the battle_config options for managing the pet-skills system [Skotlex]
+ * Incorporated the new pet attack/skill system. [Skotlex]
+ See db/pet_db.txt for explanation, or visit
+ http://www.eathena.deltaanime.net/board/index.php?showtopic=29918 for
+ details and support.
+ * Fixed Marionette skill. Now you can't target other Clowns or Gypsies [Lupus]
+ * Fixed all Hunters traps to affect Players in PVP/GVG places only. [Lupus]
+ And Shockwave Trap doesn't work on monsters, because they don't have SP
+
+05/09
+ ~ Added sql_files/upgrade_svn1665.sql to update hair, hair colour and clothes
+ colours' field format (thanks to Zoc)
+
+ * Updated char creation to support 24 hairstyles (from 5/10's patch) [celest]
+ * Fixed broken stats check during SQL char creation, thanks to Sasuke
+ * Removed an unnecessary check in plugins loading, thanks to Shinomori
+ * Changed grfio_read + grfio_size usage to grfio_reads() -- a bit faster [celest]
+ * Moved the win32 zlib .h files from /lib to /zlib [celest]
+ * Moved 'afm_dir' setting to map_athena.conf [celest]
+ * Moved grfio.c from /common to /map [celest]
+ * Changed grf-files.txt loading: [celest]
+ ~ 'data/sdata/adata' loading will still be supported, but is replaced with
+ grf: <path to grf or gpf file>
+ To load extra GRFs (if you have custom ones for your server for example,
+ or to load weekly kRO gpf's) just add as many 'grf' commands as you want
+ * Tidied up grfio.c a bit [celest]
+ * Added FULLY updated mobs skills DB by Komurka (up to Aegis Zone 8.5) [Lupus]
+ * added a packet to remove maps of other servers [Sirius]
+
+05/08
+ * documented the packetlentable of chrif [Sirius]
+ * fixed crash in clif_joinchatok [veider]
+ * Optimising 2 party queries in SQL char, thanks to Zoc
+ * Fixed a typo in SQL party saving, sorry ^^; [celest]
+ * Fixed compile errors in login and char converters [celest]
+ * Fixed ensemble skills and Benedictio, thanks to shaeh and massdriller
+ * Fixed typo in Concentration's hit bonus, thanks to UniRing
+ * Added additional hit bonus for Weapon Research [celest]
+ * Fixed a missing check in Absorb Spirits [celest]
+ * Made Meteor Assault cause Bleeding effect too. According the skill desc, it causes all effects
+ to ANY enemy by chance now. [Lupus]
+ * Typos and grammatical fixes in various files [DracoRPG]
+ * Changed Hair style, Hair & Clothes colors fields to unsigned to allow use of 255 palettes [DracoRPG]
+ * Enhanced @send to allow use of 20 additionnal arguments after the packet identifier [DracoRPG]
+ * ATK % bonuses provided by Power-Thrust (and similar skills) and attack skills now add instead of multiplicating [DracoRPG]
+ * Added sd->right_weapon and sd->left_weapon structs to store all weapon-specific values like watk [DracoRPG]
+ * Added pc_istop10fame function [DracoRPG]
+
+05/07
+ * Fixed plagiarised skills not updated when hit by different skill level [celest]
+ * Added server type will be set in the core earlier -- Fixes some plugins cannot
+ loaded if called before the server finished initialising [celest]
+ * Added high priority plugins (explicitly set in conf file) will not be unloaded
+ even if incompatible [celest]
+ * Added 'DLL_Test' plugin event [celest]
+ * Ported the upnp feature to eA plugin form [celest]
+ * massdriller's npc update, fixing SIGPIPE in core and SunOS additions to makefile [Shinomori]
+
+05/06
+ * Dev's pls take a look to Dev/mmo_change_report.txt [Sirius]
+ * Fixed build issue under linux machines [MouseJstr]
+ * Fixed possible stat exploit in char_sql, thanks WoWer [veider]
+ * Fixed compilation warnings on NetBSD [veider]
+ * Adding unequip script command, tnx to Spectre [Shinomori]
+
+05/04
+ * Fixed monsters can't use Heal/Potion Pitcher when hidden, thanks to Komurka
+ * Documented the sample plugin source a bit [celest]
+ * Added sample plugin 'sample.dll' [celest]
+ * Finished plugin events system [celest]
+ * Finished plugin loading system [celest]
+ * Added Shinomori's findfile function [celest]
+
+05/02
+ * Tidied up pc and mob counttargetted code [celest]
+ * Updated fame lists to display offline characters' names properly, and
+ * Changed char server to send char id instead of account id in fame lists, thanks
+ to Sara-chan
+ * Fixed a mistake in the friends list code [celest]
+ * Fixed friend's names not sent properly [celest]
+ * Changed Concentration's hit bonus, thanks to ShAPoNe
+
+05/01
+ ~ Added sql_files/upgrade_svn1623.sql to update item_db2's format, and mob stats
+ in mob_db to unsigned int (thanks to Zoc, Wallex and akusarujin)
+
+ * Added item_db2 and mob_db2 reading for SQL map, thanks to sbilly
+ * Added new mob skills -- could be inaccurate though ^^; [celest]
+ * Added proper support for script functions with no parameters, thanks to Wallex
+ i.e getrefine() instead of getrefine(0)
+ * Removed 'skill failed' message for Frost Diver [celest]
+ * Moved Lullaby and Dissonance effect code to skill_onplace_timer [celest]
+ * Updated some skill id's to fit in a few new mob skills (not coded yet) [celest]
+ * Increased mob skills using base chance to 1/1000 instead of 1/10000, and monster
+ delay base rate to 1/100 instead of 1/400, thanks to Komurka
+ * Fixed players able to request trade with gm's even if gm_can_drop_lv was set,
+ thanks to Komurka
+
+04/29
+ * fd checks in send/recv fifo, thanks to Sasuke [Shinomori]
+ * Restructured malloc.h / malloc.c a bit [celest]
+ * Fixed a memory leak in console [celest]
+ * Fixed console to be compatible with the dummy socket [celest]
+ * Fixed TXT login and map not shutdown cleanly if exitting by console [celest]
+ * Changed Spiral Pierce's effect to stop movement instead of stun [celest]
+ * Fixed Chase Walk to properly add a STR bonus [celest]
+ * Added effect for Tarot Card [celest]
+ * Cleaned up clif_specialeffect [celest]
+ * Added hidden gm's will not show warp effect when logging off, and will return
+ 'target character not logged in' when /exall is on, thanks to starlon
+ * Fixed non-movable monsters moving if they're blind [celest]
+ * Added boss-type monsters will auto teleport when 'rude-attacked' [celest]
+ -- note: Just a temporary fix, the mob skill db still needs updating
+ * Added boss-type monsters cannot be knocked back by skills, thanks to Komurka
+
+04/28
+ * Fixed a bot trading hack [celest]
+ * 'isequipped' will now 'tag' items that are used in its set, so a 2nd set will
+ not be able to use items from the 1st set [celest]
+ * Changed bAddItemHealRate to be based on total hp healed including vit bonuses
+ instead of base hp [celest]
+ * Tweaked skill casting time and delay logic again [celest]
+ * Fixed another typo in bAutospell, thanks to Komurka [celest]
+
+04/27
+ * Updated friend list functions, much thanks to Tsusai / Fusion!
+ * Added packet for a divorce notice ("<your name> has divorced with <your spouse>
+ name>") [celest]
+ * Added packet for /pvpinfo (only usable in pvp maps) [celest]
+ * Added display for /blacksmith and /alchemist [celest]
+ -- To-do: Offline characters won't have their name displayed properly yet
+ * Added display when blacksmiths and alchemists gain fame points [celest]
+ * Fixed talkie box not working when packet DB is enabled [celest]
+ * Removed redundant monk() and parse_SkillMessage in clif.c [celest]
+ * Updated @send to check send lengths from packet_db [celest]
+ * Fixed @mutearea's time always set to 15 minutes [celest]
+ * Fixed a typo in the bAutospell's, thanks to Komurka
+ * Reverted a setting in skill casting time calculating [celest]
+ * Fixed Gravitation not affecting enemies, and ignore element modifiers [celest]
+ * Added 'bSPLossRate' effect [celest]
+
+04/26
+ * Added @load/unloadnpc [celest]
+ usage: @loadnpc <path to script file, i.e npc/other/test.txt>,
+ @unloadnpc <NPC name>
+ * Changed @enable/disablenpc to @show/hidenpc [celest]
+ -- Note: the script commands 'enable/disablenpc' arent affected
+ * Updated max packet to 0x234 for 205-04-25aSakexe [celest]
+ * Added cannot use warps when hidden/cloaked [celest]
+ * Re-fixed an exp overflow bug and raised cap to 2bil [celest]
+ * Added some more of kRO's 04/26 patch [celest]
+ * Fixed a crash in stripping skills [celest]
+ * Tidied up battle.c a bit [celest]
+ * Added Devotion's effects will be lost if changed map/teleported [celest]
+ * Added bDoubleRate effects can stack with Double Attack [celest]
+ * Added support to have up to 20 autocast skills from cards [celest]
+ * Applied new advanced skills changes from 4/26 patch [DracoRPG]
+ I could not do everything, things remaining to do :
+ - Alter Double Casting success rate (did not find the code... is there one ? xD)
+ - Check that all songs/dances/duets are uncancelable by Dispell
+ - Make Wand of Hermod affect only party/guild members (and check for a warp portal !)
+
+04/25
+ * Further improvements on stripping/breaking + added support for targeting mobs with strip skills [DracoRPG]
+ * Added fd check to clif_additem [celest]
+ * Optimised weapon stripping/breaking a bit -- skip searching from the item DB
+ everything we call this [celest]
+ * Fixed a possible crash when adding timer function strings [celest]
+ * Tidied up skill casting time calculating a bit + Fixed a possible bad
+ setting when dex > 'castrate_dex_scale', thanks to phabyo [celest]
+ * Changed skill unit group checks in status_change_timer a bit [celest]
+ * Fixed possible sql injection with SQL gm command logging, thanks to starlon [celest]
+
+04/24
+ * Work on skills [DracoRPG]
+ - Cleanup in skill.c, added missing guild skills and switched all names to iRO ones in skill names list
+ - Fixed typo in a guild skill name : GD_KAFRACONTACT -> GD_KAFRACONTRACT
+ - Entirely rewrote equipment stripping/breaking so that stripping/breaking weapon will affect BOTH weapons of
+ a dual wielding Assassin, and that stripping/breaking shield won't affect two-handed or left-hand weapons
+ * Pets can't attack Guardians and Emperium, WoE or not !! [DracoRPG]
+ * Replaced autospell_type and autospell2_type with a simpler way to save auto-
+ casting [celest] + Fixed a typo, thanks to Landarma
+ * Fixed a typo in socket timeout messages [celest]
+
+04/23
+ * Fixed not working PVPOFF in scripts. [Lupus]
+ Due to the bug it could work only on maps with NOPVP flag.
+ * Added item produce pentlty to Baby Class [Lupus]
+ Comparing with common classes, Baby Alchemist/Blacksmith have 20% less chance of successful item making.
+
+04/22
+ * Fix main.sql to include the fields that are in the
+ upgrade files [MouseJstr]
+ * Added bonus4 support for bAutoSpelll [celest]
+ * Fixed Cast Cancel [celest]
+ * Fixed compile error in log.c -- had to remove the 'Log refined items' option
+ in log config [celest]
+ * Fixed plagariased skills not cleaned up properly when copying another new skill,
+ and corrected copying skill level [celest]
+ * Added Spiral Pierce ignores defense, thanks to Komurka
+ * Added base code for PK/Karma system (not completed) [celest]
+ - Added equipment drop based on alignment (not enabled yet)
+ - Added alignment shift after PK (not enabled yet)
+ - Added 5 minute silenced status PK penalty
+ * Added @packetmode (for debug only) [celest]
+ * Added clif_gm_silence to clif.c and rearranged ReqNoChat abit [celest]
+ * Added damage reduction in PK mode [celest]
+ * Added /memo cannot be used when dead [celest]
+ * Added bonus2 support for bAddMonsterDropItem [celest]
+ * Added db/item_group_db.txt [celest]
+ * Added bAddMonsterDropItemGroup [celest]
+ ~ check doc/item_bonus.txt
+ * Fixed bCriticalAddRace giving too little increments [celest]
+ * Fixed Ruwach revealing Chasewalking players [DracoRPG]
+ * Changed equipment breaking to 'on' by default [DracoRPG]
+
+04/21
+ * Fixed a typo in mobs skills checking [celest]
+
+04/20
+ * Fixed a few item errors with callfunc("Is_Merc_Class") (not checking if it returned 0)
+ * Changed a bad mistake in map cache configuration (swap between compressed and uncompressed options) [DracoRPG]
+ -> Check this !! using '1' you can get a 1MB mapinfo with all 450 maps inside !!
+ * Added Intravision vars and all the stuff, but not the code (for Maya Purple Card) [DracoRPG]
+ * Fixed memory leak in @reloadmobdb [celest]
+ * Fixed logging settings reset to default after reading the conf file [celest]
+ * Added support for 'masterhpltmaxrate' condition in the mob skill db [celest]
+ * Fixed Ruwach not dealing damage to revealed players/mobs [DracoRPG]
+
+04/19
+ * Fixed insert like item as card hack. [Ancyker]
+ * Fixed adoption script [Codemaster]
+ * Simplified @day and @night [celest]
+ * Added script command 'adopt', 'day' and 'night' [celest]
+ * Refixed the 'gtb_pvp_only' option, thanks to Zoc
+ * Added Baby Class support to all renters, job quests, etc [Lupus]
+ * Added UPnP plugin (will only load in Windows XP) [celest]
+ - if everything loads successfully you should get a "Firewall port xxx
+ successfully opened" and "Upnp mappings successfull" for each server.
+ If it doesn't, either your router has it turned off or doesn't support it
+ - Go here for the debug version and source code:
+ http://svn2.stormbirds.org:8080/svn/ea/devel/Celest/addons/upnp/
+
+ * Added extra info in 'goto' and 'if' script errors [celest]
+ * Added new mapflag 'gvg_dungeon' -- Same as GvG, but doesn't show simplified
+ effects for the client [celest]
+ * Fixed blind mobs can still follow out-of-range attackers [celest]
+ * Support for /blacksmith and /alchemist commands (doesn't do anything yet)
+ * Added allow gm levels for the /[str/agi/..]+ commands to be set in atcommand
+ config -- set to 0 by default [celest]
+
+04/18
+ * Fixed exp overflow in mob.c and guild.c [celest]
+ * Allow gm's to drop/trade limited items (i.e wedding rings) [celest]
+ * Fixed super novices' guardian angel couldn't be summoned because the message
+ was uncapitalised (yep you need to follow the caps too ^^) [celest]
+ * Fixed wrong EXP table usage / Max possible Job Level calculation of BABY CLASS [Lupus]
+ * Some changes to @send and @packet [celest]
+ * Fixed a crash in @adjcmdlvl [celest]
+04/17
+ * Corrected Strip skills rates [DracoRPG]
+ * Moved timer and db finalising to core.c [celest]
+ * Fixed a typo that was causing crashes from blind monsters [celest]
+ * Added reset all character's status to offline when map disconnects from char
+ (TXT) [celest]
+ * Fixed Tarot Card damage not showing, and the Lover Card to warp the caster
+ instead of target [celest]
+ * Fixed ground-targetting skills usable with Blade Stop on [celest]
+ * Started implementing Baby Class compatibility for items / job quests,
+ some optimizations due to usage of BaseJob [Lupus]
+04/16
+ * Fixed Frost Joke and Scream working on dead characters, and set them to not
+ affect hidden GM's [celest]
+ * Added support for 'rudeattacked' condition in the mob skill db [celest]
+ * Added blind monsters will try and move to its attacker's position [celest]
+ * Added monsters will try and escape if attacked but cannot retaliate
+ (a 'rude attack') [celest]
+ * Added a crash check in mob skill casting [celest]
+ * Adding support for Fusion AF2 maps (not finished) [celest]
+ * Added more correct Einbroch/Einbech monster spawn [Lupus]
+04/15
+ * Fixed building under FreeBSD [MouseJstr]
+ * Shield Chain and Acid Demonstration should now display damage properly [celest]
+ * Fixed memory leak when an npc with no maps defined is loaded [celest]
+ * Changed default mem manager log path to "log/[server name].leaks" [celest]
+04/14
+ * The display of account/character IDs is now a setting in battle_athena [Ancyker]
+ * Allow married couples to exchange normally untradeable rings with each other
+ * Finished adding saving character online/offline for TXT char and login [celest]
+ * Added save guild storage as well when auto saving characters to prevent duping
+ if the server crashes, by End_of_exam / jA 1064
+ * Moved Meditatio's effect back to status calculation [celest]
+ * Updated the fame list sending between char and map to separate blacksmiths
+ and alchemists [celest]
+ * Added 'setcell' support in scripts. Usage:
+ [map name]tab[cell type],[x0,y0,x1,y1]
+ * Added REGEN cell (0x20) [celest]
+ * Fixed a memory leak in SQL login [celest]
+ * Made display version on login settable in battle_athena. [Ancyker]
+04/13
+ * Removed Quagmire cancelling Crazy Uproar (Lord Exclamation) [DracoRPG]
+ * Corrected Song of Lutie (Apple of Idun) healing [DracoRPG]
+ * Moved server type info to version.h
+ * Added dumping svn revision or Athena version when saving stacktrace
+ * Added auto disable built-in stacktrace in Cygwin if 'error_start' is already
+ set in the environment, thanks to Ser
+ * Display a more appropriate message if items are not allowed in trading
+ * Implemented Longing for Freedom (roughly), Wand of Hermod, Gravitation and
+ Gambatein (14 of 14 skills done! Please post any problems, since they're done
+ mostly in a rush ^^; ) [celest]
+ * Added -1 skill id checks [celest]
+ * Fixed event timers crashing when freeing memory [celest]
+ * Fixed sage enchanting skills using up gems even if it failed [celest]
+
+04/12
+ * Fixes and updates [DracoRPG]
+ - Fixed Cart Boost speed bonus being not removed when the skill ended (missing calc_flag)
+ - Lv4 weapons don't give fame point anymore when upgraded to +10
+ - Axes and Maces can't be broken
+ * Added checks in event timers from crashing when freeing memory [celest]
+ * Implemented Acid Demonstration, fixed Double Casting [celest]
+ (10 of 14 skills roughly done)
+ * Implemented Double Casting, finished Tarot Card effects [celest]
+ * Overhaul on status changes' numbering -- some statuses will show icons now
+ * Implemented Mana Regeneration, Shield Chain, Plant Cultivation, Cart
+ Termination, Max Overthrust and Tarot Card [celest]
+ ~ To get the new skills you need 2005-04-11aSakexe!
+ * Enable cards to be stolen with level 5, thanks to Ishizu-chan
+
+04/11
+ ~ Please upgrade your SQL char DB with /sql-files/upgrade_svn1499.sql
+ to accomodate Fame saving!
+
+ * Fixed AC_DOUBLE and AC_SHOWER cast delays according to kRO Patch - 6/29/04
+ they both have 0.1 sec cast delay thanks to Moraddin
+ * Added SQL DB compatibility testing upon SQL char server startup -- now it
+ will not run if any important fields are missing [celest]
+ * Added sending list of characters with highest fame for TXT and SQL [celest]
+ * Added saving of fame for TXT and SQL [celest]
+ * Added saving of plagiarised skills for rogues [celest]
+ * Corrected heal and max hp bonus for Apple of Idun [celest]
+ * Added /tool/stackdump for Cygwin users to debug .stackdump files.
+ Usage: ./stackdump [map/char/login] [sql]
+ * Removed set_termfunc usage in char and login servers [celest]
+ * Card fix - owl_duke_card should cast Imposito manus on self, not on
+ enemy, wind_ghost_card should cast jupiter thunder level 10, not
+ Sight level 10 [veider]
+ * Finished coding fame point gain [DracoRPG]
+ * Fixed crash in clif_guild_memberlist not checking sd->fd could be NULL [veider]
+ * Fixed Punk card giving Sight (10) level 5 instead of Quagmarine (92)
+ level 5 [veider]
+
+04/10
+ * Performance improvements (currently protected with -DTURBO) to
+ common/socket.c for very large servers (500+ users) [MouseJstr]
+ * Fixed a warning in npc.c, started implementing fame point system [DracoRPG]
+ * Added fix for "bad setting of guild members", thanks to Alex14
+ * Fixed a bad typo in 'disp_hpmeter', thanks to starlon again ^^;
+ * Fixed Bleeding and Poisoned status continueing even after death [celest]
+ * Updated bleeding effect for Acid Terror, Head Crush and Pressure [celest]
+ * Fixed 'make converters' not working in clean builds [celest]
+ * Added capability for Mem manager to clean up ALL unfreed memory on shutdown.
+ Leaks will still be reported [celest]
+ * Added enable jA's MALLOC_DBN in db.c by default [celest]
+ * Fixed compile error caused by strerror_r() [veider]
+
+04/09
+ * We now can come up and shutdown leak free.. thanks go to celest for
+ assisting me in this long and painful quest [MouseJstr]
+ * hitting Control-C three times causes a instant shutdown without any
+ cleanup [MouseJstr]
+ * Fixed a NPC memory leak [MouseJstr]
+ * Added Einbroch to @go [DracoRPG]
+ * Fixed a NPC memory leak [MouseJstr]
+ * Added lower level gm's shouldn't be able to see higher level gm's with the
+ 'disp_hpmeter' option -- thanks to starlon
+ * Added 'make converters' -- compiled converters will go under
+ /tool [celest]
+ * Fixed Weapon Refine not checking if the item type is refineable [celest]
+ * Improved checking if items can be dropped, traded, refined or stored [celest]
+ * Fixed a bug in SQL char.c, thanks to Alex14
+ * Fixed some compile errors in the core [celest]
+ * Fixed compile errors when Mem manager is enabled [celest]
+ * Added Einbroch monsters spawn, fixed one mapflag for Einnech mines [Lupus]
+
+04/08
+ * Changed how signals shut the process down so that we were
+ not doing work in a signal handling thread but instead on
+ the main thread.. which is important due to the limited
+ stack size of a signal thread. [MouseJstr]
+ * Eliminated the use of atexit() so that we could control
+ the order objects were destroyed in as well as make
+ high end debuggers happier about what we were doing after
+ exit. [MouseJstr]
+ * Fixed a bug in do_final_npc() that was hanging
+ shutdown [MouseJstr]
+ * Fixed use of deprecated strerror in common/lock.c [MouseJstr]
+ * Fixed buffer read-overflow in mail system in char/char.c [MouseJstr]
+ * Fixed msg_table definition mismatch in map server [MouseJstr]
+ * Fixed memory leak when doubly allocating the scriptlabel_db [MouseJstr]
+ * Fixed two uninitialized memory reads in map/skill.c [MouseJstr]
+ * Fixed memory leak when accessing AFM files in map/map.c [MouseJstr]
+ * Changed default limit for MaxHP/SP from 32500 to 1M in battle_athena.conf [DracoRPG]
+ (this is because with Berserk and Tao Gunka Card, players can go up to 100k+ HP)
+ * Added 'delay_battle_damage' [celest]
+ * Fixed @kamib not working properly, thanks to maldersoft
+ * Fixed compile warnings in pc.c [MouseJstr]
+ * Fixed a crash in clif_send when sending messages to guild
+ members [MouseJstr]
+ * Added @shuffle map, @shuffle area, @shuffle world [MouseJstr]
+ * Added @mutearea [MouseJstr]
+ * Readded setting of sd->skilllv, sd->skillid to skill_use_id
+ caused skill failures for BARD/DANCER combo skills [veider]
+ * Changed how get_svn_revision() is implemented to compile the actual
+ constant into the executable. [MouseJstr]
+ * Replaced some printf's in the core with showmsg functions [celest]
+ * Replaced 'exists' with a built in function for WIN32 builds [celest]
+ * Added 'clouds' and 'fireworks' mapflag [celest]
+ * Added a new @fog and @fireworks [celest]
+ * Changed the old @fog to @clouds [celest]
+
+04/07
+ * Added @version atcommand [Ancyker]
+ * Readded @disablenpc (not the same as @hidenpc) [celest]
+ * Fixed @reloadscript not removing old NPC's and monsters first [celest]
+ * Some changes in mob and NPC unloading [celest]
+ * Changed the original @disablenpc to @hidenpc [celest]
+ * Fixed HP Conversion to properly not reduce HP if SP is full [celest]
+ * Updated Defender -- should reduce walking speed, and does not reduce attack speed
+ at level 5 [celest]
+
+04/06
+ * Fixed a crash in clif_send when checking packet version, thanks to Alex14
+ * Fixed a crash in Deluge, Volcano and Violent Gale, thanks to Alex14
+ * Skip partner checking when calculating status with Marionette Control on [celest]
+ * Fixed plagiarised skills become unuseable after saving character [celest]
+ * Fixed double skill fail messages for stone curse, thanks to wind
+ * Added modulus by zero check to rand(), thanks to starlon
+ * Improved error messages during npc parsing [MouseJstr]
+ * Fixed a crash in login_sql [MouseJstr]
+ * Added logs filters in more logs [Lupus]
+ now you can set individual bit-mask filter for each log file
+ Example: (drops log)
+ log_drop: 1 = logs ANY items
+ log_drop: 332 = logs only Healing items, Cards and those items which price is >= price_items_log
+
+04/05
+ * Fixed damage reflecting (silly typo xP) [celest]
+ * Fixed Backstab to not have a push back effect [celest]
+ * Fixed auto spell to not taking SP, thanks to Hekate
+ * Fixed Sanctuary to have proper healing count, thanks to Hekate
+ * Simplified Valaris' online_timer [celest]
+ * Updated Fogwall, Spiderweb, and HP Conversion, thanks to redcard [celest]
+ * Adding saving character online/offline for TXT char and login (unfinished)
+ * Added SERVER_TYPE to core for future plugins support [celest]
+ * Added support for the UPNP plugin to release port mappings and re-close firewall
+ ports on shutdown [celest]
+
+04/04
+ * Some work on re-enabling trade and storage logging [MouseJstr]
+ * Updated showmsg with Shinomori's improvements [celest]
+ * Fix showmsg for Visual Studio [MouseJstr]
+ * Update base code for the UPNP plugin loading [celest]
+ * Removed anti-freeze system for login and char -- Shinomori's update would
+ be enough to keep inter connections alive [celest]
+
+04/03
+ * integrating anti freeze system to status update [Shinomori]
+ * Fixed impossible drops at 0.01% chance [Lupus]
+ * Fixed some variable declarations in SQL login.c causing compilation errors [veider]
+ * Added NetBSD support into Makefile (Still lots of warrnings during compilation [veider]
+ * Finished Valkyrie. Now it correctly works. Valhallana reborns players to High Novices. [Lupus]
+ (added missed kRO condition: to reborn, player shouldn't have money nor items(equipment) )
+ Then Valhallana warps just reborn players to the home city of their main job.
+ On Job Level 10 of High Novice they can get 1st Advanced Job from correct 1-1 job quests NPC.
+ They'll get there all learnt skill quests.
+ On reaching 45 Job Level they may visit Valkyrie and get 2-2-1 / 2-1-1 class (3rd Job)
+ from a correct NPC.
+ * Fixed SKILL POINTS exploit in Assassin Job Quest [Lupus]
+
+04/02
+ * Added bonuses bUnstripable[Weapon|Armor|Helm|Shield]
+ instead of just bUnstripable that worked only for armor [DracoRPG]
+ * Updated Tiger Knucke Fist's 'fixed state' effect [celest]
+ * Allowed people to enable/disable using the online column via
+ 'register_users_online' in the login_athena.conf [Codemaster]
+ * Added the 3 baby skills WE_BABY, CALLBABY and CALLPARENT [celest]
+ * Some tidying up in skill.c [celest]
+
+04/01
+ * Updated ShowMessage functions to use vprintf [celest]
+ * Fixed a potential crash in pc_walk in Win32 builds [celest]
+ * Added bAddEffWhenHitShort and changed bAddEffWhenHit back to all physical
+ damage [celest]
+
+03/31
+ * Fixed memory corruption during shutdown via the script_buf
+ [SVN 1370: MouseJstr]
+ * Added some useful filename info to the script parser so that
+ it is easier to figure out what is going on [SVN 1370:
+ MouseJstr]
+ * updated the visual studio projects a little bit [SVN 1370:
+ MouseJstr]
+ * fixed memory corruption in mapif_guild_info:int_guild.c
+ [SVN 1367: MouseJstr]
+ * Fixed common/lock.c (problem with unistd.h include) [Codemaster]
+ * Added father/mother/child fields to mmo_char_tostr() and
+ mmo_char_fromstr() [veider]
+ * Added exp sharing between family members for TXT version [veider]
+ * Added char_married() and char_child() to TXT version [veider]
+ * Fixed memory corruption associated with afm files [SVN 1363: MouseJstr]
+ * More pedantic g++ fixes so that it builds without any and
+ all warnings [SVN 1362: MouseJstr]
+ * Removed some #include's causing warnings on some platforms
+ [SVN 1360: MouseJstr]
+ * Fixed a bug with InitTimer/StopTimer, thanks to ilpalazzo-sama
+ * Set 'undead_detect_type' to 0 by default, thanks to Dino9021
+ * Fixed Enchant Poison / Deadly Poison having too high poisoning chance
+ * Reverted the pc_remove_map() change temporarily
+ * Added back up old files in 'save' before saving new data -- also fixes
+ 'Access denied' errors when saving in TXT
+
+03/30
+ * sql native vc7 projects now build/link [1351: MouseJstr]
+ * Began sql projects for VC7 [1349: MouseJstr]
+ * text char-server and login-server now build using VC7. You
+ can use the eAthena.sln solution to build all three. These
+ are currently just the text versions of the servers. I have
+ not added projects yet to build the sql versions.
+ [SVN: 1347 MouseJstr]
+ * Made the map-server build cleanly using Microsoft Visual
+ Studio.. entirely native code without any cygwin dependency
+ [SVN: 1345 MouseJstr]
+ * Fixed @reloadgmdb in SQL -- after reloading ask the char to forward the new
+ accounts back to the map [celest]
+ * Added base code for loading Ser's UPNP plugin [celest]
+ * Added 'idle_no_share' to battle_athena.conf [celest]
+ * updated map server to jA1137~1159
+ - Added @reloadatcommand, @reloadbattleconf, @reloadstatusdb, @reloadpcdb
+
+ (Note: You should copy the latest msg_athena.conf from conf-tmpl and replace
+ your current one EVERYTIME it's updated to prevent it from crashing when it
+ can't find the newer messages!)
+
+ - Updated packet DB to support /item and /monster
+ - Added pc_remove_map()
+ - Added 2 new mobs skills: NPC_RUNAWAY and RECALL
+ - Updated BioCannibalize
+ - Updated Hammerfall, Meteor Shower and Lord of Vermillion -- when MvP's
+ cast them they should have much more range
+ - Some other skill tweaks
+ - Added item_findingore.txt
+ * Some tidying up in mob.c and skill.c [celest]
+
+03/29
+ * Please make sure to use the stable/sql-files/upgrade_svn1315.sql to
+ upgrade your mysql as a result of the new adoption system. Thank you
+ -MouseJstr
+
+ * More ANSI C++/C conformance fixes [SVN 1341: MouseJstr]
+ * Fixed SQL char server crashing when loading the item_db, my bad ^^; [celest]
+ * More ANSI C++/C conformance fixes [SVN 1334: MouseJstr]
+ * Added auto save guild data (only guardian HP and owner guild ID for now,
+ both cached) every 5 minutes during WOE [celest]
+ * Updated damage calculation for Magnum Break [celest]
+ * Fixed #item not working properly, thanks to TripleOxygen
+ * Fixed a lot of compile time problems with our mixed C++/C
+ conformance [1328: MouseJstr]
+ * Fixed use of storage variable to conform to ANSI C spec
+ [1327: MouseJstr]
+ * Added CIA-bot to the #athena channel [MouseJstr]
+ * Some tidying up in mail.c [celest]
+ * Added an invalid pointer check in clif_displaymessage [celest]
+ * Added sql upgrade file in sql-files for svn1315's update [celest]
+ * Added auto create 'save' folder from 'save-tmpl' when compiling for the
+ first time, thanks to Jbain
+ * Fixed 'use_sql_db' not read properly in SQL char server, thanks to Wallex
+ * Changed db/const.txt to have right baby jobs IDs [veider]
+ * Added three fields to mmo_charstatus - father/mother/child
+ needed for adoption system [veider]
+ * Added adoption support to charserver SQL version [veider]
+ * Added atcommand_adopt - create a family of three [veider]
+ * Added to char_commands showexp/showdelay so that
+ players could remove some messages [veider]
+ * Added percent to "Experience Gained" message [veider]
+ * Added adoption system support to party_check_exp_share()
+ so that parents can share exp with child [veider]
+
+03/28
+ * Fixed Auto Berserk activating by itself when changing maps [celest]
+ * Re-fixed the SQL syntax crash in logging [celest]
+
+03/27
+ * Fixed AutospellWhenHit effect to only work on melee attacks [celest]
+ * Fixed AddEffWhenHit effect to only work on melee attacks [celest]
+ * Moved guardian hostility checking and monster_ignore_gm check to battle.c --
+ processed earlier, and more appropiate [celest]
+ * Fixed a SQL syntax crash when logging character names with "'" in them
+ [celest]
+ * Added use dynamic allocation when loading the msg_table [celest]
+ * Fixed some memory leaks with the new timer changes [celest]
+ * Refresh the client when day comes to get rid of the night effect (if
+ night_darkness_level was used) [celest]
+ * Changed @refresh to fake map loading, but without teleporting side effect
+ (skill delays reset, extra load on server etc)[celest]
+ * Updated SQL file for the item_db, thanks to Zoc
+ * Fixed the 'show_mob_hp' option not updating when a monster is healed, thanks
+ to leinsirk10
+ * Added flexible Filter to the Monster Drops logging [Lupus]
+ - Now you can choose what types of items either to log or not.
+ - You can also log expensive items (you can set the min logging price)
+ * Optimized a bit ATCommands.c functions (inspired by Freya) [Lupus]
+ * Added missing parenthesis in my Improve Dodge code, not giving +4/lv to proper jobs [DracoRPG]
+ * Added all released cards into monsters drops and Old Card Album [Lupus]
+
+03/25
+ * Fixed a typo in my fix for Stalk / Tunnel Drive increasing instead of decreasing speed, sorry [DracoRPG]
+ * Rewrote a little bit Improve Dodge [DracoRPG]
+ - The speed bonus does not effect when Cloaked
+ - Assassins & Rogues get +4 Flee/lv, but all other jobs can get +3/lv
+ if they have the skill (not only Thiefs & Super Novices)
+ * Some minor changes to Sacrifice in battle.c [celest]
+ * Set the Emperium to be immune to Sacrifice [celest]
+ * Set the Emperium to be have max status effects immunity [celest]
+ * Fixed indoorsrwstable.txt reading even when 'indoors_override_grffile' is
+ set to 'no' [celest]
+ * Fixed @monsterbig/@monstersmall not working [celest]
+ * Fixed @killmonster2 not working [celest]
+
+03/24
+ * Updated obj_del to delete all GNUMakeFile and .o files + compiled exes [DracoRPG]
+ * Fixed a typo in Stalk / Tunnel Drive speed calculation [DracoRPG]
+ * Added some mapflags for new towns [Lupus]
+ * Added timer.c optimization / timers sort fix. 'no freezing mobs anymore' Thanx 2 Yor/Freya [Lupus]
+ * Added 'map_charid2id' [celest]
+ * Changed monster damage logging to save char ID's for the most time -- also
+ fixes an exp bug, thanks to Super Novice / Ezhik [celest]
+ * Implemented 'event_script_type' -- no changes at '0', at '1' script events
+ will work according to Qamera's original mod
+ For more info please refer to his thread:
+ http://www.eathena.deltaanime.net/board/index.php?showtopic=13305&hl=
+ * Set Emsolute Develop as a learnable skill [celest]
+ * Updated 'require_glory_guild' [celest]
+ - the skill is only acquirable if this is set to 'yes', otherwise it will not
+ appear in the guild skill tree. Default is changed to 'no'.
+ * Allow monsters to cast skills near themselves even when monster_nofootset
+ is set to 'yes' -- they're only not allowed to cast near players [celest]
+ * Print number of online users in online.txt/.html even if there's only 1 user
+ online [celest]
+
+03/23
+ * Adjusted my trade fix [1280: MouseJstr]
+ * Fixed possible memory corruption in storage if number of guilds
+ in database exceeds the max server can support [1278 : MouseJstr]
+ * Fixed @mapexit to properly flush the fifo's before shutting
+ server down to help insure all the char data is properly flushed
+ [1278: MouseJstr]
+ * Fixed trade exploit/crash from invalid data being sent
+ [1278: MouseJstr]
+ * Possible use of uninitialized data used during mob walk
+ calculation resulting in radical mob movement or crash
+ [1278: MouseJstr]
+ * Fixed some --addrace variables' sizes [celest]
+ * Added' require_glory_guild' - sets whether changing guild emblems require
+ the Glory of Guild skill [celest]
+ * Fixed alot of memory leaks [celest]
+ * Added stray memory cleaning routine to db.c [celest]
+ * Fixed some compile errors, sorry xP [celest]
+ * Corrected potion creation success chances, thanks to Avaj and DracoRPG
+ * Removed some unused potion creation code, thanks to DracoRPG
+ * Updated Joint Beat's effect, thanks to DracoRPG
+
+03/22
+ * Fixed Alchemist's CANNIBALIZE, now it summons correct # of plants. With their real HP [Lupus]
+ * Updated @reloadmobdb, @reloadskilldb, @reloaditemdb [celest]
+ * Some tidying up in @reloadscript (more work needed) [celest]
+ * Moved some gm command messages to msg_athena.conf [celest]
+ * Removed skill_range_leniency [celest]
+ * Removed enable_upper_class [celest]
+ * Removed riding_weight [celest]
+ * Added signal handler for SIGPIPE [celest]
+ * Updated Frost Joke to affect everyone else in PvP/GvG, thanks to veider
+ * Corrected Detect Trap range to be based on level, thanks to veider
+ * Updated Tunnel Drive's movement speed, thanks to veider
+ * Removed cdp_rate, suggested by leinsirk10
+ * Fixed a typo in Acid Terror, thanks to leinsirk10
+ * Fixed some typos/memory leak in script cleaning up, thanks to leinsirk10
+ * Added gm_can_drop_lv limitations for trading and opening storage, thanks to
+ Dino9021
+ * Changed shop_exp's calculation to use 0.01% increments, suggested by tcdiem
+ * Refixed "--en/ja--" usage in 'monster' script not working properly, thanks
+ to sbilly
+
+03/21
+ * Moved /tool and /webserver to under /src and added 'make tools' and 'make
+ webserver' [celest]
+ * Removed ladmin compiling from 'make sql' [celest]
+
+03/20
+ * Don't register the day/night timers if any one is set to 0 [celest]
+ * Fixed @storage / @gstorage ATcommands thanks2 Yor/Freya [Lupus]
+ * Added 4 new card effects from 3/15's patch -- check item_bonus.txt [celest]
+ * Added 'enable_ip_rules' to packet_athena.conf [celest]
+ * Updated socket debug messages to be more readable [celest]
+ * Added a sql upgrader to handle the mob_db changes to assist
+ in migrating to the newer SVN servers [MouseJstr]
+
+03/19
+ * Added getrefine() for 3/15's card patch -- returns the refined number
+ of the current item [celest]
+ * Fixed day and night settings not ignored even if they are set to 0,
+ my bad ^^; [celest]
+
+03/18
+ * Fixed a crash when freeing memory of pets [celest]
+ * Added Cygwin support to the -DDUMPSTACK option, and changed its format
+ to "<server type><number>.stackdump", thanks to Ser [celest]
+ * Removed duplicate fopen in login_log [celest]
+ * Don't log SQL char actions if log_char is not enabled in char_athena.conf
+ [celest]
+ * Updated shop_exp's calculation to give more exp, thanks to tcdiem [celest]
+ * Fixed the bDamageWhenUnequip effect dealing damage when unequipping unrelated
+ items [celest]
+ * Fixed compile errors in SQL char.c [celest]
+
+03/17
+ * Added ~86 new cards. Fixed new cards bugs, optimized [Lupus] thanks to Indiona,Landarma
+ * Removed nullpo warning from trade.c (my prev anti-spoof protection) [Lupus]
+ * Added the new Einbroch/Einbech maps to maps_athena.conf [celest]
+ * Added display script filename when a script error is found while parsing
+ [celest]
+ * Added 2 char-server packets to support Freya's login server [celest]
+ * Rewrite on Full Strip [celest]
+ * Fixed heap corrupion in map.c caused while loading maps
+ [SVN 1241: MouseJstr]
+ * Re-fixed compile error in map.c -- sorry ^^; [celest]
+ * trade.c fixed possibility of STORAGE+TRADE spooffing dupe [Lupus]
+ Now, on accepting trade your active Storage window closes. (Either Common or Guils Storage)
+ thanx to Sergey for the exploit test and report
+03/16
+ * map.c fixed compilation error [Lupus]
+ * Updated jA's dummy socket to mod1137 [celest]
+ * Added jA's ddos protection system -- check packet_athena.conf [celest]
+ * Moved stall_time's reading from inter_athena.conf to packet_athena.conf
+
+03/15
+ * Fixed a compile warning in pc.c [celest]
+ * Updated Soul Breaker's damage display, by DracoRPG [celest]
+
+03/14
+ * Fixed @marry and @divorce. Also added Wedding music+confetti effect to @marry [Lupus]
+ - @marry Player1,Player2
+ (don't miss the COMMA ',' betwin the names)
+ - @divorce Player
+ (in @divorce use any name from the couple)
+ * Added auto convert advanced job and baby class sprite ID's in mob_avail.txt
+ to correct format [celest]
+ * Added SC_Speedup cannot be stacked with Increase Agility [celest]
+
+03/13
+ * Added PvP/GvG check for Tiger Knuckle fist [celest]
+ * Fixed Pressure reducing the target's SP twice, thanks to deepin [celest]
+ * Fixed SQL logging not checking if its supposed to use SQL or TXT logs, thanks
+ to Alex14 [celest]
+ * Fixed 23 new cards (some effects chances were divided by 100, some cards had no bonuses
+ due to misplaced arguments, usage BONUS instead of BONUS2, etc) [Lupus]
+
+03/12
+ * Fixed Status Recovery dealing too short blind time on undead [celest]
+ * Fixed mobs not affected by Blind status [celest]
+ * Added an invalid id check check in map_id2sd [celest]
+ * Added sd check in clif_send [celest]
+ * Fixed usage of mvp_hp_rate and monster_hp_rate. MVP rate was used for common monsters [Lupus]
+ * Added additional random respawn delay for instant respawning monsters (0..5 seconds) [Lupus]
+ - Should be made as an option of battle_athena.conf
+
+03/11
+ * Speedup player autosaving -- don't save guild castle data at the same time,
+ thanks to Alex14 [celest]
+ * Optimised guild castle saving when autosaving player data, thanks to Yor /
+ Freya (UPDATE: view above)
+ * Added sd check in mob_damage, thanks to sbilly [celest]
+ * Added Sage enchanting skills can only be cast on party members [celest]
+ * Fixed Magic Power not working for ground-targeted skills [celest]
+ * Fixed Frost Diver having double freezing chances [celest]
+ * Added Breaker's magic damage to be blockable by Pneuma, thanks to DracoRPG
+ [celest]
+ * Corrected 1206Sakexe's packet detection, thanks to Yor / Freya [celest]
+ * When casting cloaking stop displaying the skill title after its finished,
+ thanks to Battitude [celest]
+
+03/09
+ * Some changes in sig_dump to allow Cygwin produce stackdumps upon crash again,
+ thanks to Ser [celest]
+ * Changed the default stackdump creation folder from /save to /log [celest]
+ * Fixed a typo in TXT login server logging, thanks to Skyer / eAthenaC [celest]
+ * Added HP and SP rate underflow checking [celest]
+ * Added stop auto attacking if no arrows were equipped [celest]
+ * Added new script command: 'cardscnt'. It returns N of inserted cards in the same weapon. [Lupus]
+ Now I can start fixing CARDS COMBO exploits. And it's possible to fix old cards power abuse, too.
+ e.g. Assassins can equip 2 4-slot weapons and have HUGE card bonuses.
+ It's said that you can have only ONE bonus per hand...
+ * Fixed and tested script command 'isequippedcnt'. It didn't return real value [Lupus]
+ Here's an easy way to test all items:
+ 4149,Gargoyle_Card,Gargoyle Card,6,20,0,10,,,,,,,2,,,,{},{ dispbottom "Gagoyle OK:"; dispbottom isequipped(4149); dispbottom isequippedcnt(4149); dispbottom cardscnt(4149); }
+ * Fixed "nice char save by the fountain of Prontera"; People (Helpers, GMs) did abuse their power and [Lupus]
+ used to @jail friend / @unjail friend. To make his save point in the middle of the Prontera.
+ So I made @unjail save coords to 0,0 (on unjail it makes player's save point to appear always in a random place of Prontera)
+ You can use this query to "Clear nice save point of all jail/unjail abusers friends"
+ SQL QUERY: update ragnarok.char set save_x = 0, save_y = 0 where (save_map = 'prontera.gat' and save_y = 191)
+03/08
+ * Added chance for Enchant Poison to poison enemy, and reduced Deadly Poison
+ chance [celest]
+ * Compacted some code for Deadly Poison [celest]
+ * Added DracoRPG's code for Soul Breaker - the magic attack part should work
+ as it should now, thanks! ^^ [celest]
+ * Reverted the reverted jA event change but this time without bugs (hopefully) [Shinomori]
+ * corrected status_change_timer as far as I understand the functionality
+ (better have a look at it, Celest), added a some security to prevent pending timers
+ * moved two variable declarations to scope start (mob.c and skill.c)
+ * Fixes Icewall can be directly cast on players and monsters -- also removes
+ the 'unsupported layout' message [celest]
+ * Added the new turbo_room and alde_tt to the maps config [celest]
+ * Speedup SQL inventory and storage saving, thanks to Ilpalazzo-sama [celest]
+ * Reverted a jA change in event loading [celest]
+
+03/07
+ * Added uptime logging support whenever the server closes, to enable change
+ the 0 to 1 in core.c [celest]
+ #define LOG_UPTIME 0
+ To-do: Add this as an option to log config
+ * Fixed 'make clean' not removing the .o files in /common [celest]
+ * Removed some unused code for Breaker and temporarily set Emperium to be
+ immune to Breaker [celest]
+
+ * Updated core and map-server to jA 1115~1137 [celest]
+ - Added monster_delay_damage to battle conf
+ - Increased some default settings in script conf
+ - Updated Brandish Spear, Soul Change, Soul Burn
+ - Updated Body Relocation (shorter distance)
+ - Added monster skill NPC_EXPLOSIONSPIRITS
+ - Corrected Mindbreaker level to 5
+ - Updated Meteor Assault to instant-cast
+ - Added command @users - shows the percentage of users in all maps
+ - Don't save status if the player is set for disconnection
+ - Added free block lock-checking system
+ - Added saving the processes' ID into [xx-server.pid]
+ - Fixed a memory leak with duplicate script labels
+ + For more detailed logs check 'Readme-jap'
+
+ * Fixed a typo in Volcano, thanks to Ilpalazzo-sama [celest]
+ * Fixed Apple of Idun reading the wrong skill level and giving too much HP
+ [celest]
+
+03/06
+ * Added new anti-hacker trade protection from Freya. [Lupus]
+ It also auto-ban hackers and broadcasts messages to all GMs. Good work, Yor!
+ * Misc fixes. [Lupus]
+ 2Shino: BTW Some players can't re-connect to the server. Due to the updated session checks in chrif.c
+ actually impossible, because the checks handle the connection with the char server, not with users
+ anyway, I checked again and rearranged code but functionality is still the same and valid [Shinomori]
+03/05
+ * Reversed drop_rate0item option, corrected MVP Drop rate (thanks to Freya) [Lupus]
+03/04
+ * Fixed SQL Guild Castle Saving (now fully working, tested on 100 players during WOE) [Lupus]
+03/02
+ * Fixed SQL Guild Castle Saving (partial, yet it doesn't clear GuildID when you abandon a castle) [Lupus]
+ + added 2 fixes by POW (Mac Guild Position fix, Max Guild Members fix)
+ * Fixed Emotion Flood (by Yor) [Lupus]
+ * SQL: Fixed temporary ban. Now banned players can enter the server when the ban time is over. [Lupus]
+ It wasn't working because STATE hasn't been cleared properly.
+ Also fixed wrong client messages (ban reasons: Banned by GM / Temp ban till DATE).
+03/01
+ * Effects from dancer/bard skills will stay for 20 seconds after leaving the
+ skill area [celest]
+ * Fixed /resetstate /resetskill being unuseable at all [celest]
+ * Fixed /mm /mapmove being useable by all players [celest]
+ * Fixed some compile errors in mob_once_spawn [celest]
+ * Corrected a typo in Chemical Protection skills, thanks to holyfork [celest]
+
+02/28
+ * Fixed SQL Castle saving bugs [Lupus]
+ * Corrected Tiger Fist, Chain Crush, and Palm Push Strike damage, thanks to
+ Eskadron [celest]
+ * Updated Endure to be usable in GvG, but only gives the mdef bonus [celest]
+ * Some rewrites on the passive guild skills effects [celest]
+
+02/27
+ * Fixed some bugs in Monk Job Quest. Now it's fully passable. [Lupus]
+02/26
+ * Added jA's dummy socket to prevent fd crashes [celest]
+ * Added some jA script commands: [Lupus] (first steps to add ELSE, FOR, WHILE, etc)
+ - getusersname (works like @WHO ATCommand, outputs by 10 names in the Pop-up window)
+ - dispbottom (print message in the common chat window)
+ - recovery (restore MaxHP/SP and revives all players on the server)
+ - getpetinfo (returns pet's name, type, class, hunger, intimacy)
+ - globalmes (works like Announce, but outputs in the common chat window)
+ - jump_zero (reserved - for future compatibility)
+ - select (reserved - for future compatibility)
+ - getmapmobs (# mobs on a named map, use "this" for current map)
+ check script.c for their paremeters (in English)
+02/25
+ * Fixed npc_dequeue, testing on remove of RoVeRT's npc timer system [Shinomori]
+02/24
+
+ * Re-added missing cart dupe-proof code. From Freya [Lupus]
+ * Some rewrites on Basilica [celest]
+ * Fixed another bad typo in skill list_num reading, thanks to orn [celest]
+ * Fixed Steal Item Rate. It has been multiplied twice on common_item_drop value for any kinds of items. [Lupus]
+ e.g. If you set droprate of comman items to 500%, then even rare items could be stolen more easily. Thanks to Freya
+ * Items Droprate fix. Now it adjusts correctly, w/o overflows. Thanks to Freya [Lupus]
+ * mob DBbs EXP reading fix. w/o overflows. Thanks to Freya [Lupus]
+
+02/23
+ * Added bAddItemHealRate [celest]
+ * Fixed a crash if adding an offline player to a party, thanks to Alex14
+ [celest]
+ * Fixed a crash with Warp [celest]
+ * New Cards: Some fixes, revisions, additions [Lupus]
+ * Fixed char server crash when sending wisp with a "'" in the names [celest]
+ * Fixed Backstab not checking for and consuming arrows [celest]
+ * Fixed another bad typo causing @allskill to not add points into advanced job
+ skills [celest]
+ * Fixed a bad typo in status.c's StatusChangeTable [celest]
+ * Corrected Spiral Pierce's hits in the skill_db [celest]
+ * Moved /common/*.o into a obj folder when compiling [celest]
+ * Updated core and map server to jA 1094~1115 [celest]
+ - Added End_of_exam's Memory Manager for detecting memory problems.
+ To enable remove the // in malloc.c line 11
+ // #define USE_MEMMGR
+ - Added @npctalk and @pettalk
+ - Added support for jA's local zlib
+ - Fixed a bug with path search long
+ - Updated malloc.c to support Memwatch
+ - Added DB data loss detection
+ - Added db/skill_unit_db.txt
+ - Updated skill unit system
+ - Changed Waterball to the new timerskill system
+ ~ For more detailed logs check 'Readme-jap' (knowledge in japanese required,
+ obviously ^^;)
+ Please test if there's any skills that might have suddenly stopped working,
+ thanks ^^;
+
+02/22
+ * Revised New Cards, added missing effects, fixed bugs [Lupus]
+ ~20 cards to check left 8) But on 22 Feb some new cards have been announced T__T'
+ * Cleaned up some compiler warnings [SVN 1158: MouseJstr]
+ * Added perl regular expression support.. look at src/map/npc_chat.c
+ for all the dirt on the new features. To build it, you have
+ to enable the PCRE_SUPPORT #define and you also have to
+ build/install the pcre library. [SVN 1157: MouseJstr]
+
+02/21
+ * Added actual item_db.sql into sql-files. [Lupus]
+ * Added actual mob_db.sql into sql-files. If you use SQL Mob DB then update it [Lupus]
+ * Updated Bleeding effect [celest]
+ * Removed some unused code for Graffiti [celest]
+
+02/20
+ * Char SQL: Rewrote/Fixed the castle save function, now the sql version saves castles! [Sirius]
+ * Fixed the /mm /mapmove command access bug [Sirius]
+ * Added skill requirements for the new guild skills [celest]
+ * Allow Emergency Recall to be cast in guild castles even if nowarp and
+ nowarpto mapflags are enabled [celest]
+ * Add 'minimum job level required' for skill_tree reading [celest]
+ - Berserk now requires job level 50
+ * Added Spring Trap to be able to trigger ankle snare traps that aren't
+ activated yet [celest]
+ * Added a fix in guild.c by Mellowz [celest]
+ * Some rewrites on the pet skill bonuses system -- also fixes pet bonuses
+ not effecting stats as they should [celest]
+ * Check whether a monster is still alive before starting a status change
+ -- also fixes the status_change_timer nullpo errors with grimtooth [celest]
+
+02/19
+ * Added bSubSize, bHPGainValue, and bDamageWhenUnequip [celest]
+ * Updated bSPDrainValue/Rate to accept a 'type' [celest]
+ * Set baby class players' size to 0(small) [celest]
+ * Fixed item_db2.txt reading printing wrong number of entries read [celest]
+ * Fixed @allskill not giving the newer stalker, whitesmith and creator skills
+ [celest]
+
+02/18
+ * Fixed a bug with statpoint.txt reading and giving too much stat points,
+ thanks to Benz / eAthenaC [celest]
+ * Fixed client errors when pecopeco Lord Knights/Paladins log in with a weapon
+ equipped [celest]
+ * Added bAddRace2 -- check item_bonus.txt [celest]
+ * Added mob_race2_db.txt -- contains 'main races' of certain monsters [celest]
+ * Updated description for backup_txt in char_athena.conf a bit [celest]
+ * Set read_map_from_cache to 2 (enable compression), and map_cache_file back to
+ saving in /db instead of /save, as suggested by Poki#3 [celest]
+ * Updated description for auto_counter_type, and set plaer_auto_counter_type
+ to 0 by default, as suggested by Poki#3 [celest]
+ * Use the event names from script_athena.conf to check whenever a player event
+ trigger is being read/set [celest]
+ * Removed an unused save/bank.txt [celest]
+ * Added some new cards effects. (check DB\changelog.txt) [Lupus]
+
+02/17
+ * Now all mobs have 10 drops slots. the last one is used for Cards Drops [Lupus]
+ Don't forget to update your SQL files (Drop Log: logs.sql and db_tables.sql
+ if u were using SQL Mobs DB. Update it from TXT! )
+ * Fixed Branch Log TXT filename [Lupus]
+ * Made all logs work with compiled TXT Server, too (removed old #ifndef) [Lupus]
+ * Added 4 columns into mob_db.txt (check DB\changelog.txt) [Lupus]
+ * Fixed some mobs drops (Whisper, etc) and some MVP mobs (bonuses were shifted...) [Lupus]
+ * Readded Chemical Protection -- i forgot to check for it when changing some
+ jA stuff earlier, sorry ^^; [celest]
+ * Removed some old eA code that was causing Frost Nova to do an extra hit
+ [celest]
+ * Corrected Vulcan Arrow's hits in skill_db -- the bug appeared when the
+ correct numbers hardcoded were removed [celest]
+ * Readded zlib and zconf .h files to under /lib for compiling in Windows,
+ thanks to Ser [celest]
+ * Fixed some compile errors in Windows, thanks to Ser [celest]
+ * Changed remove_control_characters back to supporting korean chars [celest]
+ * Moved some other code around [celest]
+ * Added Shinomori's changes to Dissonance -- don't increment the timer again
+ if the target has died [celest]
+ * Changed some nullpo checks back to normal null checks -- in some situations
+ it would be normal to get a NULL [celest]
+ * Changed some nullpo checks to print some debug information [celest]
+ * Added some sd checks before calling pc_blockskill [celest]
+ * Added Dino9021's fix for SQL char's friend list updating [celest]
+ * Fixed a crash if the player invited to join a guild is not online, thanks to
+ Alex14 [celest]
+ * Find the guild invitation sender first before clearing its ID [celest]
+
+ * Added 2 new script commands to support 2/15's cards patch... most of the
+ effects in kRO should be available now ^^ [celest]
+
+ - isequipped(...): Accepts a list of item ID's and checks whether all of
+ the items/cards have been equipped.
+ - isequippedcnt(...): Same as above, except it returns how many of the items
+ are being equipped
+
+ Example: if(isequipped(4002,4004,4006)) bonus bStr,1;
+
+02/16
+ * Char SQL: Fixed the Whisper chat on splittet mapservers (i think now all features work!) [Sirius]
+
+ * Added 3 more of the new card effects -- check item_bonus.txt [celest]
+
+ * Added 'bonus4' to support the new card effects that might need up to 4
+ parameters [celest]
+ * Set 'killerrid' and do PCKillEvent before calling PCDieEvent, thanks to
+ mrmagoo for pointing it out [celest]
+
+ * Added some new script event related options to script config [celest]
+
+ - [die/kill/login/logout]_event_name: Name of script to activate when an
+ event has occured
+ - event_requires_trigger: whether or not a 'set [EventName],1;' has to be
+ defined first for the event to be activated
+
+ * Added 8 of the new card effects on the 2/15's patch (still untested and
+ not yet added to the item_db)
+ - Refer to doc/item_bonus.txt for description
+
+ * Minor rewrites on self and enemy weapon/armor breaking during battle [celest]
+ * Added missing code for 'bBreakWeaponRate' and 'bBreakArmorRate' effects
+ [celest]
+ * Added missing code for 'bAddStealRate' effect [celest]
+ * Removed redundant 'infinite_autospell' in map_session_data [celest]
+ * Fixed Treasure Box spawn bug in all castles. [Lupus]
+ * Fixed wrong PresentLOG (it wasn't showing PRESENT BOX type ID) [Lupus]
+ * Expanded Monsters Drops Slots from 8 to 10. Everywhere in the sources. [Lupus]
+ But in TXT / SQL monsters DB reading functions, I added a temp plug
+ to make eA work fine with existing DBs. It reads only 8 drops and fills
+ 9th and 10th drops with Zero.
+ On expanding MOB_DB.TXT we'll remove that plug.
+ We are adding new cards and some monsters
+ have no free slots for them. Current state is tested and works fine.
+
+02/15
+ * Allow Potion Pitcher to be able to cast on yourself -- i've almost forgot
+ about this, thanks to Filougarou and Poki#3 for the fix ^^; [celest]
+ * Added Wallex's changes for weapon skills to read list_num from the skill_db
+ when calculating damage [celest]
+ * Login / Login SQL: Fixed the EXE-Version check (now it works finally :) [Sirius]
+ * Char SQL: Fixed the '0x2b05' reply to the mapserver (now multi - mapservers works again!)
+ * Rewrote skill blocking system that was allowing people to bypass blocking
+ time simply by casting a different skill [celest]
+ * Edited out some inconsistencies with skillnotok [celest]
+ * Corrected Investigate's damage calculation, thanks to matthias [celest]
+ * Generate the remaining entries of the stat point DB if the number of
+ entries in db/statuspoints.txt is less than MAX_LEVEL, or statuspoints.txt
+ was not found [celest]
+ * Try to spawn the player at a default map ("prontera.gat") when logging in if
+ the save point map was not found [celest]
+
+02/13
+ * added an @autoloot switch that Upa-kun has forgotten [Shinomori]
+ * changed pet_skillattack_timer and corrected the poison spore attack
+ * tighter check's on "unknown skill" error; but added prints to trace it
+ * Added Wallex's changes to only evoke script_rid2sd if agitcheck(1) is used
+ [celest]
+ * Merged jA's equipment breaking system into the current one, and corrected
+ items with unbreakable effects in the item_db [celest]
+ - "bonus bUnbreakable,[chance];" changed to
+ "bonus bUnbreakable[Weapon/Armor/Helm/Shield],0;"
+
+02/12
+ * Merged Dexity's pc_statpointdb into pc_readdb, changed statp's string
+ array to short (less memory), and fixed the db not giving status points if
+ character level is above 255 [celest]
+ * fixing and optimizing sharp shooting
+ have implemented two different versions, just have a look and
+ decide which to use, description is in the code [Shinomori]
+ * Changed default map cache path from db/map.info to save/mapinfo.txt [celest]
+ * Removed old code for Sharp Shooting (still a little buggy) [celest]
+ * Merged Shinomori's code into map_foreachinpath [celest]
+
+02/11
+ * mob.c fixed doubling entries in DROPS LOG, optimized [Lupus]
+ * item_noequip.txt now you can disable named consumable items
+ during GvG / PvP, too by Maya, optimized and checked [Lupus]
+ NOTE: Get rid of old cards on your server!!! IDs: 4149-4332
+ before using of this item_db.txt (some cards have changed their IDs)
+ and it could cause ALIEN cards in your players equipment 8))
+ i.g. a weapon compounding CARDS inserted in armor, etc...
+ * item_db.txt Massive update: [Lupus]
+ - Added all new missing items (up to st.Valentine's Day Event)
+ - Added new cards 4149-4332, sorted them and set their sripts.
+ - Fixed some names, typos, weigths and prices
+ * Commented out old custom cards from Old_Card_Album.txt till we brush them up [Lupus]
+ * Removed old custom cards from MOBs drops [Lupus]
+ thanks to Landarma(new items templates) Poki#3(removing cards from drops)
+ * Tidied up battle_check_target abit [celest]
+ * Updated traps to affect allies as well in GvG [celest]
+ * Check if login server is online before setting character to online (in SQL),
+ thanks to Alex14 [celest]
+ * Synchronise storage as well when saving character to cut down on item
+ rollbacks or duping, by Yor / Frea [celest]
+ * Added fix for super novices' Guardian Angel system crashing when base_exp = 0
+ thanks to Alex14 [celest]
+ * not realy fixing the "unknown skill" error
+ but returning skill_castend_damage_id when called with skillid < 0
+ still need to search a reason why it is called with -1 [Shinomori]
+ * EXPERIMENTAL: Reduced memory used for the skill_tree DB by 30+mb [celest]
+ * Added script commands isday and isnight - checks whether its night or
+ daytime. Example: if(isnight()) ... [celest]
+ * Skill Updates [celest]
+ - Sharp Shooting: Dropped jA's and kA's code and wrote a new
+ map_foreachinpath function in map.c -- about 14 times faster, but still
+ uncomplete
+ - Ankle Snare: Added matthias' suggestion to let agility reduce more trap
+ time, but no less than 3 seconds.
+ - Magnum Break: simplified code a bit, and changed to non-targetting /
+ automatically damages an area around the caster
+ - Tiger Fist: enable it to be used by its own besides as a part of
+ the combo skills
+ - Devotion: Fixed maximum level difference not reading its setting from
+ battle_athena.conf, thanks to leinsirk
+ - Soul Burn: Added some safety checks
+
+02/10
+ * Login/Login SQL: fixed the client version check function [Sirius]
+
+02/09
+ * Added conf-tmpl/readme.txt, explaining the import folder [1066: Ajarn]
+ * SQL Char: Rewrote the char_create function (now it's faster/optimized) [Sirius]
+ * SQL Char: Fixed the reply if a charname is invalid on create (now it replys denied..) [Sirius]
+ * SQL Char: Added a Character limit per Account (can be set in the config) [Sirius]
+ * SQL Char: Optimized some SQL-Querys [Sirius]
+
+02/06
+ * NULL entries for guild data fixed [Credit to Sirius] [1060: Ajarn]
+ * Login server uses login_db_userid and login_db_user_pass for
+ queries now [Credit to Sirius] [1059: Ajarn]
+ * Login server can now check clientversion in clientinfo
+ [Credit to Sirius] [1059: Ajarn]
+ * Fixed txt build compile problems[1057: MouseJstr]
+ * Corrected end-of-line issues in source code [1056: MouseJstr]
+ * Coded new command: @MOBINFO <monster name|monster N> [Lupus]
+ the command has also 2 aliases: @monsterinfo, @mi
+ It shows all Monster stats, Element, Race and stuff
+ It shows all items with their drop chance
+ It also shows MVP bonuses (MVP EXP, MVP Drops)
+
+02/05
+ * increased the max_files allowed in a grf [1054: MouseJstr]
+ * Changed the way char deletion works for SQL [1051: Ajarn]
+ - If the email the client fails check then check if the
+ email is blank and the DB email is a@a.com (default)
+ If so, assume it was created with _M/_F, and delete it
+ * SQL Login accepts _M/_F now [Credit to Sirius] [1049: Ajarn]
+ * Map server now actually reads bind_ip [1048: Ajarn]
+ Side note: login reads bind_ip, but doesn't use login_ip now.
+ * Made eA compile under AMD64 64-bit native [1047: MouseJstr]
+ * Changed interface binding to use a bind_ip instead of using
+ the login_ip, char_ip, or map_ip. This lets you still be
+ able to set your WAN IP seperate from what interface you
+ wish to bind to. Also, the default is back to binding to
+ all interfaces on the machine. [1045: MouseJstr]
+ * optimizing OnTouch event name generation [Shinomori]
+ * fixing Celests Sharp Shooting [Shinomori]
+ * Updated Sharp Shooting AoE code, thanks to Neodis / k-Athena [celest]
+ - Update: Adapt jA's path_search algorithm and removed the need of struct
+ 'dev' in map_session_data
+ - Update: Increase range to 14
+ * Tidied up explicit typecasts in status_get_max_hp, thanks to Ilpalazzo-sama
+ [celest]
+ * Non-MVP / miniboss summoned monsters should give exp, my mistake ^^; [celest]
+ Note:- minibosses are considered a 'Boss' as well, not just MVP's
+ * Fixed a typo that was preventing packet version 5 clients (628sak) from
+ logging in (it was supposed to only block those with 4 or below) [celest]
+
+02/04
+ * Fixed more compile signed/unsigned errors [SVN 1040: MouseJstr]
+ * TXT convertors now read the import command in inter_athena.conf
+ [SVN 1038: Ajarn]
+ * Fixed some compile errors [SVN 1037: MouseJstr]
+ * Added common/buffer.(c/h) [SVN 1033: Ajarn]
+ * Login server can now set it's ip address in the config [SVN 1033: Ajarn]
+ * Servers now bind to a single ip address, thus allowing multiple servers to
+ a single port [SVN 1033: Ajarn]
+ * Added experimental code to generate a stack dump when it segfaults, thanks
+ to Ser [celest]
+ - does not work with Cygwin, as it does not have glibc
+ - to enable, edit the Makefile and remove the # on the line:
+
+ # OPT += -DDUMPSTACK -rdynamic
+
+ - What it does: everytime eA crashes it'll generate a file "stackdump_
+ <number>.txt" in your save folder with a backtrace, which you can
+ examine and send to a dev to be fixed.
+
+ * Some more tidying up in status_get_ functions [celest]
+
+02/03
+ * When loading shop scripts automatically check if the prices can be exploited
+ with OC/DC [celest]
+ * If the buying price provided in item_db.txt is above 2x higher than selling
+ price for an item no need to reset and redetermine the buying price [celest]
+ * Fixed a mistake that was causing Ruwach to only work in PvP and PvM [celest]
+ * Added DracoRPG's code for Joint Beat effects, thanks! [celest]
+
+02/02
+ * Added checks to prevent some crashes in skill.c
+ [Full credit to shinomori] [SVN 1022: Ajarn]
+ * Removed nullpo check in skillnotok() -- otherwise it will display fail
+ messages for monster skills [celest]
+ * Added crash check for Ice Wall [celest]
+ * Added some optimisations by Ilpalazzo-sama [celest]
+ - reduce mob_data->size variable to 1 bytes
+ - change from if-else to switch statements in buildin_strmobinfo
+
+01/31
+ * Fixed a typo in Pressure causing it to deduct sp from the caster, and remove
+ its sp_rate requirement [celest]
+ * Updated skill_range_leniency code when casting a ground targetting spell
+ ( as in Revision 968) [celest]
+ * Added Karma and Manner to const.txt
+ -- To change a player's alignment to more Good/Evil in scripting for example,
+ use:
+ set Karma, Karma + <number here>;
+
+ In older exe's (11-08 or older) you can actually check your karma in the
+ character alignment screen (alt-A)
+ The rest is up to your scripting creativity ^^
+
+ * Delete players' ID from id_db when kicking everyone from the map-server due
+ to char disconnection -- Fixes an odd crash with lazy mob AI [celest]
+ * Added at(@) command @autoloot, which turns autoloot on or off for the
+ player who uses it [Upa-Kun]
+
+01/29
+ * Fixed Storage Bug with Named Stackable items. Thanks to Nimion [Lupus]
+ e.g. Arrows, Iron, Elemental stones, etc...
+ * Added a crash check to Safety Wall, thanks to LebrEf[TaVu] / Freya for
+ pointing it out [celest]
+ * Added some optimisations in clif_parse_MapMove, by Ilpalazzo-sama [celest]
+
+01/28
+ * Fixed a typo that was causing /in to always report failure even when the
+ name was removed from the ignore list [celest]
+ * Link "wisexin", "wisexlist" and "wisall" to the PM ignore functions, and
+ "friendslistadd" and "friendslistremove" to the friends list functions
+ when parsing the packet DB [celest]
+ * added clif_parse_PMIgnoreList (packet 0xd3) from jA [celest]
+ * Added DUMP_ALL_PACKETS and moved dump packets code in clif_parse a bit to
+ support it [celest]
+ * Added base code for Party Item Sharing -- still needs some work in client-
+ server support [celest]
+ * new GC link http://amber.stormbirds.org/~joshs/gc6.4.tar.gz
+ This fixes some issues... works better
+ * Added macros skill_chk and skill_get to check for out of bounds errors when
+ retrieving info from the skill_db [celest]
+
+01/27
+ * Added memory leak fixes with temporary script variables and pets-related
+ actions, by End_of_exam / jA 1109 [celest]
+ * Kick all characters when the char server disconnects from the map
+ server [celest]
+ * Added @changelook command for spriters to test view ID's [celest]
+ * Added a check to Pneuma to prevent crashing, thanks to LebrEf[TaVu]/Freya for
+ pointing it out [celest] [celest]
+ * Tweaked garbage collection code after feedback from users
+ [SVN 1002: MouseJstr]
+ * Fixed TRADE exploits (it cures proxy hack / vending+trade hack) thanks to Freya [Lupus]
+
+01/26
+ * Added bug fix for a memory leak caused when a character logs out,
+ by End_of_exam / jA 1108 [celest]
+ * Fixed a bug in gettick cache when compiling in Windows, thanks to Shinomori
+ (jA 1094) [celest]
+ * Added updates from jA 1092 [celest]
+ - Changed "read_map_from_bitmap" to "read_map_from_cache",
+ "map_bitmap_path" to "map_cache_file" in map_athena
+ - Fixed item effects not showing when only one was used
+ - Fixed a bug in Safety Wall
+ - Allow only either Storm Gust or Lord of Vermillion to cause damage if
+ stacked together
+ - Added path_search_long, map_find_skill_unit_oncell
+
+ * Added status_get_sc_def for calculating resistance against status
+ abnormalities [celest]
+ * Added status.c and status.h of jA 1091 update and moved some functions into
+ the new source files:
+ -- skill_status_change_ -> status_change_
+ -- battle_get_ -> status_get_
+ -- pc_calc_ -> status_calc_
+ -- pc_getrefinebonus and pc_percentrefinery -> status_getrefinebonus and
+ status_percentrefinery
+
+ * Updated auto_counter_type's description in battle_athena, thanks to
+ akusarujin for pointing it out [celest]
+ * Removed some unnecessary skill level checks in battle.c [celest]
+ * Removed my changes to /stable/Makefile which has libGC enabled by default
+ that i've accidentally commited, sorry ^^; [celest]
+ * Removed an unnecessary "cloneskill_lv" from map_session_data [celest]
+ * Removed WATER.TXT (this file wasn't used at all. There's no such mapflag as WATER even). [Lupus]
+ * Added Water Height of New Yuno Fileds 9 and 11.
+ Now Water Ball works there as should. Wizards could levelup on sleepers, too. [Lupus]
+ * libGC isn't ready to be the default quite yet... [MouseJstr]
+
+ Enough people have asked so... Once you grab a copy of the
+ libGC library from (http://amber.stormbirds.org/~joshs/gc6.3.tar),
+ you start up a bash shell from inside cygwin and untar
+ the gc6.3.tar. This will produce a gc6.3 directory. Then
+ cd into that directory and type ./configure. Once that is
+ done you type "make" and then "make install". This will
+ spray the various includes and libraries all over your
+ cygwin install (most in /usr/local).
+
+ Now, edit Makefile and change the CC line to use the
+
+ CC = gcc -pipe -DGCOLLECT
+
+ entry. Also change the GCLIB to
+
+ GCLIB = -L/usr/local/lib -lgc
+
+ Remember to comment out the ones no longer used. Do a clean
+ build and good luck. Obviously, this has not been tested
+ by that many people so you really are on the cutting edge
+ but if you have good results, send me a note
+ (joshs@stormbirds.org) so that we can see if it really is
+ ready for prime time.
+
+ What should you see? Well, the map-server should not
+ grow/consume extra memory anymore. More so, it should use
+ dramatically less memory then it did before using the
+ garbage collector.
+
+ The downside is that it will consume a little more CPU...
+
+ The question is, how much? how laggy? what effect on lots
+ of players? I've heard stories saying it makes the server
+ unplayable and others told me that they saw no
+ player-visible effects at all.
+
+
+01/25
+ * Fixed TXT compile problems with libGC [celest]
+ * Added "Clients older than 2004-09-06aSakray" option to packet_ver_flag in
+ battle_athena, just in case server owners still prefer the older clients.
+ With so many changes to Sakray over the past months its much better upgrading
+ to the newer clients (November or higher recommended) available ;P [celest]
+ * Merged Full Strip into jA's tidier stripping skills code -- also fixes
+ a typo that was causing Full Strip to do the reverse effect instead,
+ and the skill not updating the target's status after successfully unequipping
+ items [celest]
+ * Tidy up the 4 chemical protection skills into one code block [celest]
+ * Corrected Slim Pitcher's code -- sorry, i missed a few things ^^; [celest]
+
+01/24
+ * Fixed a typo in Provoke that was causing crashes [celest]
+ * Fixed another compile warning in src/char/char.c
+ [SVN 985] [MouseJstr]
+ * Fixed a account wipe bug in login/login.c (Thanks Wallex)
+ [SVN 984] [MouseJstr]
+ * Fixed a crash in char_sql/char.c where people were selecting
+ chars before requesting connections [SVN 983] [MouseJstr]
+ * some G++ compile tweaks and got through several files in the
+ map server - [SVN 976] [MouseJstr]
+
+ Why are we doing a C++ conversion? We have a lot of duplicate
+ code and would like to make the "classes" in the server share
+ code.. For example, a pet should be able to share code from
+ the player or from a mob. Similerly, introducing a new type
+ of entity in the game should be as simple as creating a
+ sub-class instead of having to crawl through the entire source
+ tree searching for every class check and introducing handler
+ code in for your new type.
+
+ Finally, while a garbage collector is "cool", it would still
+ be nice to have enough object knowledge on how to clean up
+ data that it is not absolutely required. It is faster for
+ us to clean up our own messes then introduce a whole system
+ for cleaning up after ourselves.
+
+ Is there a C++ performance penalty? Not if the code is
+ written correctly. For example
+ 1) No templates - code bloat and destroys cpu cache
+ coheriancy
+ 2) No C++ exceptions - slows down entering and
+ exiting functions
+ 3) No operator overloading - makes it hard to
+ understand what is going on.
+ 4) No C++ STL libraries - Templates, huge, bloated,
+ unportable
+ 5) No method inlining - code bloat and reduces cache
+ coheriancy. Let the optimizer do it...
+
+01/23
+ * char-server (SQL & TXT), login-server (SQL & TXT), and txt-coonvertors
+ (char and login) all compile on g++ now [svn 975] [Ajarn]
+ * Fixed the sizeof errors in g++ [SVN 972] [Ajarn]
+ * Reverted back some of the char* changes [SVN 972] [Ajarn]
+ * Changed parse_script to now return char* [SVN 969] [Ajarn]
+ * Converted run_script and run_script_main from unsigned char* to char*
+ [SVN 969] [Ajarn]
+ * Forgot a couple small changes [SVN 35] [Ajarn]
+ * Changed map_data.gat and map_data_other_server.gat from unsigned char*
+ to char* (this might be needed, because of unicode or something, please
+ correct me if I'm wrong) [SVN 34] [Ajarn]
+ * Converted decode_zip, encode_zip, remove_control_chars, mapif_sendall*,
+ and e_mail_check to use char* instead of unsigned char* (again, please test)
+ [SVN 34] [Ajarn]
+ * Modified skill unit group checking in skill_unit_onplace that might have
+ been causing crashes [celest]
+ * Updated packet 0x143 length's for version 14 (2004-11-01Sakexe) and version
+ 16 (2005-01-10Sakexe), thanks to jathena and ice2big [celest]
+ * Fixed login-server compile error with the "new" -> "new_" changes [celest]
+
+01/22
+ * Fixed an error that was in my last commit (optimising g++ build) [SVN 29]
+ [Ajarn]
+ * Made strlib functions char*, instead of unsigned char*. Strings are meant
+ to be char. (Shouldn't break anything, but might, please test this for me)
+ [SVN 26] [Ajarn]
+ * Added cast for TXT version [SVN 25] [Ajarn]
+ * Added cast from allocation calls, from void* to intended type [SVN 24] [Ajarn]
+ * Changed bool -> bool_. Still need to make convertions between
+ char* and unsigned char* valid, and some other convertions too.
+ Also, sizeof is being used wierd in map.c, at least g++
+ complains [SVN 22] [Ajarn]
+ * Changed the rest of the class variable names to class_ and all the new
+ variable names to new_, for futher g++ support [SVN 21] [Ajarn]
+ * Update both caster and target's SP after using Soul Change -- thanks to Aalye
+ / Freya [celest]
+ * Force a monster to switch attack target when being casted Provoke [celest]
+ * Corrected description for @enablenpc -- "@npcon" -> "@enablenpc" [celest]
+ * Since job normalising is still buggy require all 1st class skills to check
+ for Basic Skill level when calculating the skill tree [celest]
+
+01/21
+ * Updated packet DB configurations : enable_packet_db, packet_db_ver,
+ -- check the .txt for description [celest]
+
+ Note: For people having connection problems try setting 'enable_packet_db'
+ to 'no'... and use the latest client (01-10Sakexe)
+
+ * Fixed a small typo in 12-06's packets -- 21b => 21d [celest]
+ * Updated packet_db.txt to only contain the latest version, like jAthena,
+ since there's not much point to re-read packets eA already supports
+ (although if you remove all the //'s it can still read multiple versions)
+ [celest]
+ * Added clif_config in clif.c - for keeping packet/client connections related
+ stuff [celest]
+ * Send 'Game Exe not latest version' to a client if it hasn't been authentified
+ yet, but is sending a non-connection-related packet to prevent crashing
+ -- assume the client is using an unknown exe [celest]
+
+01/20
+ * Fixed compile time problems with the non-GC case [MouseJstr]
+ * Introduced aMallocA and aCallocA
+
+ These two functions allocate "atomic" memory which means
+ "memory that does not contain references to other memory".
+
+ This lets the garbage collector ignore these objects when searching
+ memory for references to other objects dramatically increasing
+ performance of the GC.
+
+ When in doubt, use aMalloc and aCalloc. It is better to add
+ a tiny bit of work to the GC then do cause a crash due to memory
+ being cleaned up when it shouldn't.
+ [MouseJstr]
+ * Modified all calls to aMalloc and aCalloc that reference
+ atomic memory to use aMallocA and aCallocA
+ [MouseJstr]
+ * Modified the socket buffer allocator to use "atomic" memory
+ for the fifo data buffers [MouseJstr]
+01/19
+ * added support for the Hans-J. Boehm libC garbage collector
+ (A copy is in http://amber.stormbirds.org/~joshs/gc6.3.tar).
+
+ It is ABSOLUTELY critical for people to use
+ aFree/aMalloc/aCalloc/aStrdup for this to work. If somebody
+ has just used free or malloc, this will crash when used with
+ the garbage collector.
+
+ A amusing environmental variable to set is GC_PRINT_STATS (to 1)
+ so that you see real time statistics of leaked data being
+ recovered.
+
+ grab a copy of the gc6.3.tar.. build it .. install it..
+ modify the Makefile to have the
+
+ CC = gcc -pipe -DGCOLLECT
+ GCLIB = -lgc
+
+ lines... and make the sql servers (the txt server doesn't
+ build using this right now due to stupid Makefile issues)
+
+ [MouseJstr]
+ * SVN 3 on http://svn.stormbirds.org/svn/eathena will be what
+ I diff against when I merge back into delta.. if we ever merge
+ back into delta [MouseJstr]
+ * Removed 12-06 Sakexe detection, since it doesn't seem to work, and
+ might be conflicting with 10-25 clients [celest]
+ * Update the Soul Burn target's SP when it has been successfully reduced to 0,
+ thanks to Aalye / Freya [celest]
+ * Moved SC_PRESERVE and SC_BATTLEORDERS's id so they'll display a status icon
+ when cast, thanks XiaoLin of cAthena [celest]
+ * Added missing code for Preserve -- i totally forgot to add it ^^; [celest]
+
+01/18
+ * Added some skill bug fixes, thanks to Aalye / Freya [celest]
+ - stop player attacking if the target goes into hiding
+ - fixed Sword Reject not working against swords, only daggers
+ - additional check in case Marionette Control doesn't end properly even
+ when one of the partners has logged off
+ * Added stun, bleeding and SP loss effect for Pressure, thanks to DracoRpg
+ [celest]
+ * TEST: Fixed more compile warnings in MSVC [celest]
+ * TEST: Fixed some compile errors in MS Visual C++, thanks to Ser [celest]
+
+01/17
+ * Some rewrites in skill_delayfix [celest]
+ - If the delay is < 0, add the weapon aspd delay to it
+ - If the skill is not weapon type, and has 0 delay, add 300ms as default
+ * Added min_skill_delay_limit as the minimum allowed delay for any skills
+ [celest]
+ * Some tidying up in battle_get_ functions [celest]
+ * Set exp table and job bonus table to 0 before reading - might solve some
+ memory bugs [celest]
+ * Updated skill range leniency code - If possible try and move towards the
+ skill target so that when casting it no longer falls out of range [celest]
+
+01/15
+ * Added effects to enemies for Gospel [celest]
+ * Added mobs spawn to all Yuno fields (according to 4th Jan patch) [Lupus]
+
+01/14
+ * Added party supporting effects for Gospel [celest]
+
+01/13
+ * Added and testing support for 2004-12-06Sakexe [celest]
+ * Removed emblem changing requiring Glory of Guild limited to TXT only [celest]
+ * Corrected a typo preventing Plagiarism to work, thanks to orn [celest]
+ * Fixed Berzebub card and other 'reduce cast delays' equipment not working
+ [celest]
+ * Updated packet_db.txt loading to support reading into multiple packet
+ versions [celest]
+ * Removed packet_db_ver defining in packet_db.txt -- it'll determine itself
+ based on MAX_PACKET_VER [celest]
+ * Integrated packet size and function DB's into 1 packet_db [celest]
+ * Added MAX_PACKET_VER -- maximum versions supported by eA, including the
+ packet_db -- and changed packet size and function DB's to use it [celest]
+ * When sending 'Game exe not latest version' packet don't close the session
+ immediately so it will still be delivered [celest]
+ * Added map-server display if an unidentified client was rejected --
+ also fixes the 'empty string sent to _showmessage' [celest]
+ * Added a bug - Celest, LOOK AT THIS BUG ASAP. [Codemaster]
+ * Tided up/fixed some mobs [Lupus]
+
+01/12
+ * Implemented Vending Log [Lupus]
+ TODO: use log option to log only important deals (much money, rare items, etc)
+
+01/11
+ * Added Shinomori's changes to npc event timers (I never realised it, thanks
+ ^^; ) [celest]
+ * Updated clif.c to be able to identify client versions based on the packet DB
+ [celest]
+ * Correct packet_db_ver to the maximum version allowed if it was set too high
+ or too low in packet_db.txt [celest]
+ * Added support for 2005-01-10Sakexe [celest]
+ * Updated packet functions for 2004-11-08 and 2004-12-06 (Note: eA *can*
+ support 12-06, but still doesn't recognise it... so unless we find a way,
+ it is *not* supported yet) [celest]
+ * Updated packet_db, thanks to Sara-chan [celest]
+ * REMOVED support for clients before packet version 10 (2004-08-25 and
+ earlier) - the client will receive a 'Game Exe not latest version' message
+ [celest]
+ * Added a check to prevent crashing when trying to log in with
+ 2005-01-10aSakexe in servers that don't support it [celest]
+ * Added a fix to @sound where if you forgot the .wav exention, i'd attempt to play the file without it (it adds the .wav) [Codemaster] [SVN 949]
+ * Added @disguiseall / @undisguiseall [Codemaster] [SVN 949]
+ * Added misc. clif.c fixes (jAthena added alot of close(fd)'s, so i added them, too) [Codemaster] [SVN 949]
+ * Added bug reports - Celest, you might want to check one of those out [Codemaster] [SVN 949]
+ * Fixed a bug in clif.c which didn't allow to enther the map-server.
+ It worked under win32, but didn't under Linux. [Lupus]
+
+01/10
+ * Completed adding packet DB reading... still needs (a lot) more work in
+ clif.c [celest]
+ * Added Shinomori's suggestions for npc timers, thanks again ^^ [celest]
+ * Removed checking for script event timers' length, and added Shinomori's
+ changes [celest]
+ * Start adding packet DB reading [celest]
+ * Added 'max_eventtimer_length' (default is 32) to script_athena.conf. [celest]
+ Some event timers with names longer than 24 could cause the server to close
+ itself, change this if you need support for even longer names
+ * Removed PCLoginEvent requiring 'PCLoginEvent' for the player to be set to 1
+ first to be activated. [celest]
+ * Added Shinomori and orn's fix for the skill tree to only check the first
+ required skill in the DB and skipping the rest [celest]
+ * Modified 'wedding' script command to work with "OnTimer" scripts even without
+ doing 'attachnpctimer' (The 'player not attached' error will still display,
+ but the effect will appear *over the NPC* instead of the player...
+ at least it won't fail ^^) [celest]
+ * Added 'attachnpctimer' script command for attaching the player to the current
+ npc's timer in "OnTimerxxxx" scripts, thanks to Wallex for the idea. [celest]
+ Syntax:
+ attachnpctimer;
+ attachnpctimer "<Player Name">;
+
+ Check /npc/sample/npc_test_npctimer2.txt for example.
+ * Added 'detachnpctimer' script command for detaching players from the npc's
+ timer. [celest] Syntax:
+ detachnpctimer;
+ detachnpctimer "<NPC Name">;
+
+ * Added 'OnInterIfInitOnce' for WoE scripts & modified the WoE scripts as well [Ajarn & Codemaster] [Thanks to FREYA] [SVN 943]
+ * Added the @sound command and the NPC command of soundeffectall
+ - works just like soundeffect, but plays for everyone in the area [Codemaster] [SVN 942]
+ * Don't allow Pets to attack Guardians outside of WoE [Codemaster] [SVN 940]
+ * Require 15% of HP or more for WE_MALE skill [Codemaster] [SVN 940]
+ * Require 15% of SP or more for WE_FEMALE skill [Codemaster] [SVN 940]
+
+01/07
+ * Upon changing to high novice 100 stat points should be given, not 88 [celest]
+ * Give high novices First Aid and Trick Dead upon job changing [celest]
+ * Remove some unnecessary checks in battle.c [celest]
+ * Added some checks to prevent novices still allowed to attack when using
+ Trick Dead [celest]
+ * Added 'summon' script command. Syntax:
+
+ summon <monster name>,<monster id>[,<event>];
+
+ Example: 'summon "Poring", 1002, "OnPoringKilled"; 'will summon (note:
+ not *spawn*) 1 poring that'll help its master for 1 minute,
+ and activate the "OnPoringKilled" event when killed.
+ 'summon "--ja--",-1;' will summon a random monster.
+
+ * Added Wallex's fix for the wedding script functions [celest]
+ * Added the below-mentioned alive packet to SQL's char and login [celest]
+ * Enabled login server 'anti-freeze' by default as a temporary solution
+ to char-login disconnection [celest]
+ * The TXT char server was rejecting login's "i'm alive" packet and disconnecting
+ it... fixed [celest]
+ * Stall_time wasn't being read in login_athena at all (not by the login server,
+ because the code didn't read it, nor by TXT map server, since its in the SQL
+ inter_athena.conf reading)... so moved it to inter_athena.conf, and
+ change sql_config_read in map.c to inter_config_read [celest]
+ * Some tidying up of battle_get_def and _def2 [celest]
+ * Added 'bDelayrate' and changed Phen card, Marduk Card and Berzebub Card's
+ effects to use this instead of bCastrate (which was reducing casting time,
+ not delay time) [celest]
+ * Some tidying up of skill_castfix and skill_delayfix [celest]
+ * Added Filougarou's fix for Bowling Bash causing it to only display damage,
+ but doesn't do any - thanks! [celest]
+ * Set delay_dependon_dex in battle_athena to 'no' by default [celest]
+
+ Note: Just to clarify things, on official servers dex is not supposed to
+ reduce skill delays, only Poem of Bragi and Berzebub card does!
+
+ * Fixed typo in skill_delayfix - reduce delays only if delaynodex was *not* set,
+ sorry ^^; [celest]
+
+01/06
+ * Fixed various memory corruptions causing crashes (SVN 925) [MouseJstr]
+ * Fixed typo in src/map/map.c causing compile
+ errors (SVN 924) [MouseJstr]
+ * Removed the alive_timer mechanism entirly replaced with
+ a stall detection mechanism that will disconnect a player
+ who has not sent any data for a configurable
+ (conf/login_athena.conf:stall_time) amount of time. The default
+ is currently 60 seconds.
+
+ The root cause of the disconnect error is that some NAT based
+ routers are not dropping the TCP connection when the aliased
+ machine goes offline abnormally. This means that we are seeing
+ a stalled but perfectly valid TCP connection.
+
+ (SVN 924) [MouseJstr]
+01/05
+ * Fixed some typos in map_versionscreen() [MC Cameri]
+ * Removed loop freeing in map-server's do_final(), it was causing seg faults [MC Cameri]
+ * Finished do_storage_final() in map-server's do_final(), it was there but doing nothing [MC Cameri]
+ * Fixed Celest's typo making all vended items cost 0 zeny [Codemaster] [SVN 919]
+ * If a vending item was priced at 0 it'll be auto changed to 1million [celest]
+ * Fixed TXT logging - log_athena.conf reading was kind of messed up [celest]
+ * Added a simplified version of Qamera's OnConnect: OnDisconnect: OnDeath:
+ NPC events mod, (All credits go to him.) except adapted based on eA's current
+ PCLoginEvent. (by davidsiaw) [celest]
+ - Currently only 4 events have been added: PCDieEvent, PCKillEvent,
+ PCLogoutEvent and PCLoginEvent
+ - For notes and usage example check /npc/sample/PCLoginEvent.txt (by
+ davidsiaw)
+ - To enable them for a player in a script, do
+ "set <name of event>, <0 or 1>;"
+ (yes it's saved in a permanent character variable and auto read every time)
+ - Simply put, if any of them is set to 1 the appropiate event will activate
+ p.s - Scripters who are already using PcLoginEvent, you'll need to add a
+ "set PCLoginEvent, 1;" now, sorry for the trouble.
+
+ * Optimised PCLoginEvent activation a bit [celest]
+ * Set 'droprate0item''s default to 'yes' so that items with 0 rate will never
+ drop [celest]
+ * Look at item type other than item ID as well to check whether it is a card
+ in card-related script commands - better support for custom items [celest]
+ * Reset all skill variables if the skill fails so certain skills can't be
+ abused (such as Warp, thanks to Alex14 for pointing it out) [celest]
+ * Added /mapflag/noreturn.txt for disabling butterfly wings (not fly wings)
+ [celest]
+ * Fixed skill_require_db reading somehow getting corrupted if weapons usable
+ for the skill is more than 20, thus causing the skills to fail everytime
+ [celest]
+ * Fixed @killmonster crashing the server with summoned monsters, thanks to
+ Alex14 [celest]
+ * Added double_connection_system to battle_athena (not completed yet) [celest]
+
+01/04
+ * Fixed GM Command Logging (Not sure why TXT logging still isn't working properly :( ) [Codemaster] [SVN 907]
+ * Fixed one of Lupus' additions to the item_db [Codemaster] [SVN 907]
+ * Fixed Seismic Weapon Skill (it 100% didn't break target's weapon at 4 level of the skill) [Lupus]
+
+01/02
+ * Re-fixed map-server crashing if an empty line is in skill_castnodex.txt,
+ thanks to Alex14 for pointing it out (SVN 899) [celest]
+ * Modified breaking rates calculating - meltdown's chances is separated from
+ self breaking chances (SVN 900) [celest]
+ * Reduced MAX_SKILL_LEVEL to 10 to save a bit of memory and speed [celest]
+ * Tidied up parts in skill_castfix a bit (SVN 895) [celest]
+ * Fixed map-server crashing if an empty line was added in any of the skill-xx
+ db files (SVN 895) [celest]
+ * Updated skill_castnodex reading - An *optional* 3rd value can be added to set
+ whether a skill's delay time can be affected by dex (SVN 895) [celest]
+ Example: 46,1,1 - double strafe's delay is not affected by dex
+ 46,1,0:0:0:0:1 - only level 5 double strafe is not affected by dex
+ * More atempts at memory leak fixes [Codemaster] [SVN 890]
+ * Updated weapon breaking rates, thanks to DracoRPG (SVN 891) [celest]
+ * Optimized enchanting skills success rates calculation, thanks to Wallex
+ (you were right! ^^; ) (SVN 891) [celest]
+ * Modified Spiral Pierce and Breaker to type ranged (SVN 891) [celest]
+
+01/01/05
+ * Attempted to fix a memory leak [Codemaster] - tell me if it works XD (NPC/Mob memory leak in npc_parse_mob(...)) [SVN 886]
+ * Added a char config that allows GMs that have a certain level or above to
+ bypass the server's user limit [Codemaster]
+ * Changed some create arrow outputs for new kRO 12/21/04 patch [Aria]
+ * Fixed some respawn delays of MVP/Miniboss monsters. Redo Umbala/Niflheim fields, added missing mobs, corrected
+ monsters quantity. In Niflheim fixed wrong Lord of Death monster ID. [Lupus]
+12/30
+ * Added ispartneron, getpartnerid, and warppartner script
+ commands to properly support jawaii NPC's (SVN 880) [MouseJstr]
+ * Moved supernovice guardian angel messages to msg_athena.conf [celest]
+
+12/29
+ * Fix account register wipe issue (SVN 868) [MouseJstr]
+ * Double storage/lag exploit fixed (SVN 867) [MouseJstr]
+ * Another -1 alive_timer fix (SVN 866) [MouseJstr]
+ * Added @dmstart and @dmtick for debugging malloc tests [MouseJstr]
+ * Fix some more compile errors on different platforms [MouseJstr]
+ * Fixing a crash if you change the name of a pet you don't have (SVN 863) [MouseJstr]
+ * Eliminated src/common/malloc.c when not needed [MouseJstr]
+ * Some code cleanup in prep for new debugging malloc (SVN 861) [MouseJstr]
+ * Updated Soul Breaker's damage calculation [celest]
+ * Updated Meteor Assault's cast delay to be not affected by dex [celest]
+ * Changed int_guild.c so it will calculate average guild level only if > 0
+ members are found - prevent divide by zero crashes (why would an empty guild
+ be requested to update its' member info in the first place?) [celest]
+ * Added Shinomori's fixes for string copying in script.c [celest]
+ * Removed @giveitem since #item it's the one that does this and added some of it's support to #item [MC Cameri]
+ -#item <item_name> <item_count> <charname|all|everyone>
+ * Uncommented out import in charcommand_athena.conf, there is
+ need to have it commented (all the others ones are
+ uncommented) [Ajarn]
+
+12/28
+ * When restarting the char-server, reset the online status
+ of all characters and guild-members (SVN 849) [MouseJstr]
+ * Fix double timer_delete caused by pc_alive_timer (SVN 848)
+ [MouseJstr]
+ * Fixed typo in npcs_athena.conf (mc_cameri verses mc_Cameri),
+ thanks Mellow972 for pointing that out (SVN 845) [MouseJstr]
+ * Reduced weapon breaking chance for Overthrust, thanks Draco - i almost
+ forgot to add this update [celest]
+ * added checks into the skill code to prevent proxy's/bots
+ from crashing the server by using skillid's that
+ are WAY out of range (SVN 841) [MouseJstr]
+ * Fixed clif.c errors that prevent old clients from being used. [nsstrunks]
+ * Fixed @jobchange to not default to upper (SVN 837) [MouseJstr]
+ * Fixed a compile error in @mobsearch (SVN 836) [MouseJstr]
+12/27
+ * Updated 1206's packet fuctions in clif.c [celest]
+ * Updated the new guild skills - cannot be reused within 5 minutes of
+ activating it [celest]
+ * Added @mobsearch, @cleanmap and @giveitem from jA [celest]
+ * Fixed the guild issues (SVN 832) [MouseJstr]
+ * Updated description for player_check_cloak_type [celest]
+ * Increased skill range limitations in pc_no_footset [celest]
+ * Added exp_calc_type - to alternate between 3 different versions for exp
+ calculating [celest]
+ * Reinitialized variable 'c' in map_readmap, it's supposed to have a start value. Ex. '-'. [MC Cameri]
+ * Commented out dump_timer_heap() again... [MC Cameri]
+ * Added include of string.h in malloc.c, was causing compile errors/warnings [MC Cameri]
+ * Modified the map progress bar to reduce updates (SVN 829) [MouseJstr]
+ * Updated map cache system from jA 1087 - change read_map_from_bitmap to 2 to
+ enable zlib compression [celest]
+ * don't delete alive_timers of -1 (SVN 823) [MouseJstr]
+ * switched malloc,calloc,realloc to aMalloc, aCalloc, aRealloc
+ so support the use of a garbage collector (SVN 821) [MouseJstr]
+ * Removed some printf's from map-sql [MC Cameri]
+ * Uncommented MSG_SQL, for _ShowMessage(), usage: ShowSQL() [MC Cameri]
+ * Removed fixed bugs in dev/bugs.txt [MC Cameri]
+ * Now I remember what I was smoking.. (SVN 819) [MouseJstr]
+ * Fixed a bug in the guild_castle persistance code
+ in char_sql. What was I smoking? (SVN: 816) [MouseJstr]
+ * Corrected a bad error in itemdb_read_itemslottable [celest]
+ * Corrected wrong logging of text in int_guild.c, thanks to Alex14 [celest]
+ * Summoned monsters will not give exp and items [celest]
+ * Added the 6 new Yuno fields to maps_athena.conf [celest]
+ * Added some Freya's optimisations in clif_parse [celest]
+ * Added clif_update_mobhp - monsters' hp viewing now updates properly [celest]
+ * Set alive_timer to -1 when quitting, not 0, or the map server might assume
+ its still active [celest]
+ * Changed the *_override_grffile to no by default, because many were having issues with it [Ajarn]
+
+12/26
+ * Fixed ANOTHER pet crash (double free) (SVN: 804) [MouseJstr]
+ * Added a proper #define for MAX_VENDING (SVN: 802) [MouseJstr]
+ * Fixed crash associated with vending more then 12 items
+ which walked on memory.. corrupting the pet data
+ structure (SVN: 801) [MouseJstr]
+ * Fixed a crash that resulted when disconnecting (SVN 800)
+ the new client when the old client is still connected [MouseJstr]
+ * Fixed some gcc 2.95 compile errors [MouseJstr]
+ * Fixed some array bounds errors (SVN 799) [MouseJstr]
+ * @mapexit (and do_final) now persist all data to the
+ char server before exiting to eliminate storage/inventory
+ inconsistancies.. [MouseJstr] (SVN 793)
+ * Some cleanup of spiritball memory management [MouseJstr]
+ * Dramatic performance work for exp updates to sql. Previously, [MouseJstr]
+ when u killed a mob (in party share), it would cause the char_server to
+
+ 1) Delete all guilds for all members of your party
+ 2) Re-create all guilds for all members of your party with the new exp
+ values.
+
+ Now it just generates 2 sql statements per party member,
+
+ 1) update the guild exp,
+ 2) update the guild_member exp.
+
+
+ src/common/socket.c src/common/socket.h src/char_sql/char.c
+ src/char_sql/int_guild.c src/map/chrif.h src/map/pc.c
+ src/map/map.c src/map/chrif.c
+
+ * Disabled import charcommand_conf.txt by default [celest]
+ * Added Bitmap File system from jA 1086 - automatically generates a cache
+ from maps in the GRF to speed up loading. You can enable/disable it with
+ read_map_from_bitmap in map_athena.conf. Note: AFM maps will override this
+ cache [celest]
+ * Added --run_once flag for the map server for testing purposes - closes itself
+ when everything is done loading [celest]
+ * Added some code for Moonlit Petals and Basilica [celest]
+
+12/24
+ * Added suggested fix when client disconnected [celest]
+ - send "disconnected due to time gap" and close session when timed out
+ - send "server still recognises last login" message and close existing
+ session when client reconnects
+ * Upped windwalk to lv 10 in skill_tree [MouseJstr]
+ * Fixed a scripting crash (SVN: 781) [MouseJstr]
+ * removed @changesex and @charchangesex until we can
+ fix it properly [MouseJstr]
+ * Fixed item-dup bug in storage and cart [MouseJstr]
+ * @skilltree was looking outside of the particular class
+ of the char to see if they could do a skill [MouseJstr]
+ * Fixed a calc_skill_tree bug where too many skills were
+ visible [MouseJstr]
+ * Added Dev/GDB_reports.txt, take a look in it devs [Ajarn]
+ * Corrected description for player_skill_nofootset and monster_skill_nofootset
+ in battle_athena.conf [celest]
+ * Added a special NPC Logging command 'logmes'. It works as mes"Hello world!";
+ It is useful for such NPC as BANKS, CASINO, etc. To keep track of won money, etc.
+ Check kafra_bank.txt 1.1 for example.
+ Note: mes = otput into client's NPC window
+ debugmes = output into map-server window
+ logmes = output into lognpc log DB.
+
+12/23
+ * Fixed some bugs in the clif.c changes (SVN 766 to SVN 767) [MouseJstr]
+ * Added ayo monsters to @disguise
+ * Began updated clif.c to work with 1108 and 1206, tested and works [nsstrunks]
+ * Fixed skills still being available after a job change [MouseJstr]
+ * Changed pc_alive_timer to use map_id2sd - should be more accurate [celest]
+ * Added jA 1084's fix to mob.c - check whether the player is still alive
+ when calculating exp [celest]
+ * Added clif_changed_dir, clif_adopt_process [celest]
+ * updated Backstab to show the target's new direction [celest]
+ * Corrected the file types of several files in the SVN tree to
+ fix the newline issues [MouseJstr]
+ * Updated mapflags (added missing payon_in03,ayo_in01,ayo_in02, que_god01, que_god02) [Lupus]
+ * Updated Sacrifice : it's now self-activating, and lasts for 5 attacks [celest]
+ * Fixed compile errors in party.c [celest]
+ * Moved SC_EDP back to 114 [celest]
+ * Added some of Shinomori's fixes [celest]
+ * Added optimisation in intif_parse_WisMessage from Freya [celest]
+
+12/22
+ * Eliminated skill tree mapping since we have entries
+ for all the classes in the skill_tree.txt files [MouseJstr]
+ * Added finding_ore_rate to battle_athena.conf, thanks to orn [celest]
+ * Changed how party exp is passed out to eliminate players
+ current in a chat window or those who havn't moved or attacked
+ in 2 minutes [MouseJstr]
+ * Fixed a bug in resnametable from local directories,
+ by fixing a bug in grfio_read causing memory corruptions [MouseJstr]
+ * Rearranged how guild messages, gm messages, and party messages
+ are moved back and forth between the inter server and the
+ map server.. eliminating unneeded round trips to eliminate
+ lag on a loaded char-server. [MouseJstr]
+
+ src\char_sql\int_party.c src\char_sql\int_guild.c
+ src\char_sql\inter.c src\map\atcommand.c src\map\guild.c
+ src\map\intif.c src\map\party.c src\char\int_guild.c
+ src\char\inter.c src\char\int_party.c
+
+ * Reverted npc.c back to before jA 1081. This fixes warp portals missing and other npc bugs [Ajarn]
+ * Added conditional SHOW_DEBUG_MSG for displaying ShowDebug()'s output, it was missing before [MC Cameri]
+ * Added #zeny, removed @charzeny [MC Cameri]
+ * Fixed reading itemslottable.txt causing cards to become unuseable [celest]
+ * Added error message if file renaming in lock_fclose fails [celest]
+ * Fixed frost diver not working ... my bad =p [celest]
+ * Corrected typo in clif_hpmeter - md -> sd [celest]
+ * Check if the player has been authentified by the char server before
+ clearing any timers in map_quit [celest]
+ * Added eventtimercount and timerskill_count - check these before clearing
+ or deleting timers [celest]
+ * Added sc_count check in skill_stop_dancing [celest]
+ * Translated the japanese part in battle_athena.conf [celest]
+ * Added ignore the new skill delays when chaining monk combos [celest]
+
+12/21
+ * Since conf/maps_list.txt was removed, added conf/maps_athena.conf [Ajarn]
+ * Fixed a few NPCs that were giving curly errors. It seems to be caused by a bug that the NPCs' last line isn't read or something [Codemaster]
+ * Fixed a tiny compile warning in npc.c [Codemaster]
+ * Allowed the NPCs without proper curly brackets to still load, but give an error still [Codemaster]
+ * Added variable 'current_file' which tells the filename of the script while loading npcs [MC Cameri]
+ -the variable its set in do_init_npc() or something like that, so you can only access it
+ after the use of do_init_npc().
+ * Fixed the display of a warning saying that a right curly brace was missing [MC Cameri]
+ * Removed @charwarp and @rura+ and added #warp, #rura, #rura+ [MC Cameri]
+ * Removed conf/npcs_list.txt, and placed it in npc/npcs_athena.conf [MC Cameri]
+ * Moved some code in pc_break_equip that was causing compile errors [celest]
+ * guild skills vanished due to incorrect placement of a
+ check for quest skills in the calc_skilltree code [MouseJstr]
+ * Fixed skill LK_HEADCRUSH, LK_JOINTBEAT to work on both on
+ and off peco's for lord knights (fixed typo in
+ skill_tree.txt) [MouseJstr]
+ * removed LK_SPIRALPIERCE from lord knights not on peco's[MouseJstr]
+ * Moved the code from map_quit to pc_makesavestatus that
+ "adjusts" the skill tree before persisting to the character
+ server [MouseJstr]
+ * made pc_makesavestatus() properly persist skills that are
+ unavailable but not forgotten (example, spiral pierce). You can now
+ get spiral pierce, get off your peco, log out, log in, and
+ get back on your peco and still have not lost the skill
+ points you invested. This also solves the problems of when
+ the skill tree gets changed, players loosing the points. [MouseJstr]
+ * Made pc_resetskill() properly reset skills that are
+ currently not visible due to skilltree changes [MouseJstr]
+ * Finished updating most of the map-server to 1082... i'll leave the more
+ technical ones for the other devs ^^; [celest]
+ * Added other new battle_athena options from jA 1082 ... descriptions not
+ translated yet [celest]
+ * Removed my own additions for skill delays using aspd and added jA's code
+ (-removed-) [celest]
+ * Adapted skill_range_leniency to jA's code - should be more stable [celest]
+ * Fixed drop rates only limited to multiples of 100's - thanks to jathena
+ for pointing it out [celest]
+ * Added missing code for castle_defense_rate [celest]
+ * Removed pc_undead_nofreeze - no code for it [celest]
+ * Updated unrefineable items table - thanks to jathena [celest]
+ * Added 3 new script commands: [celest]
+ - skilleffect : shows a skill effect on the player
+ - doskill/skilluseid (originally by Qamera) : casts a skill on the player
+ - skillusepos : casts a skill on a position
+ * Added SC_SpeedUp0 [celest]
+ * Merged itemdb_read for SQL and TXT [celest]
+ * Moved itemdb_read_itemslottable in itemdb.c for better readability [celest]
+ * Removed itemdb_read_cardillustnametable limited to TXT only [celest]
+ * Added reading itemslotcounttable.txt from the GRF to auto set number of slots
+ per item [celest]
+ * Added a display message when reading itemslottable from the GRF [celest]
+ * Added options in battle_athena.conf to enable/disable reading the GRF for
+ indoorrswtable.txt, leveluseskillspamount.txt, num2cardillustnametable.txt,
+ itemslottable.txt & itemslotcounttable.txt [celest]
+ * Removed conf/npcs_list.txt, and placed it in npc/npcs_athena.conf
+
+12/20
+ * Fixed npc_parse_mob with large/tiny monsters causing
+ memory corruption [MouseJstr]
+ * Fixed a crash in char.c with new chars [MouseJstr]
+ * Updated npcs_list.txt [Ajarn]
+ * If last_pos.x or .y == 0, set to start point [MouseJstr]
+ * Fixed map loading. If a map was not found, it would remove the next map in the list [Ajarn]
+ * Moddified some *_athena.conf's (my typos and some inncorect default values) [Ajarn]
+ * Added Valaris' double connection bug fix (imalive watchdog) [Valaris]
+ * Fixed map-server exiting when it came across a bad NPC file [Codemaster]
+ * Updated Valaris' large/tiny monsters - of course, he told us what he did wrong and how to fix it :) [Codemaster & Valaris]
+ * Updated makefiles to new strlib locations [Codemaster]
+ * Moved strlib.h and strlib.c into the common directory [Codemaster]
+ * Updated a bit of jA 1081 - it's not completly updated yet!!! [Codemaster]
+ * Fixed some gcc 2.95 problems [MouseJstr]
+ * Speedups in socket code [MouseJstr]
+ * made samesex weddings work and give out correct ring [MouseJstr]
+ * CFixed wedding NPC halting after server reboot/crash (shadowlady put in comments but didn't add to code) [Aria]
+ * Added reading leveluseskillspamount.txt from the GRF to auto set sp used for each skill [celest]
+ * Added reading indoorrswtable.txt from the GRF to auto set 'indoor' mapflags
+ [celest]
+ * Added check in grfio.c to prevent crashing if a file wasn't found [celest]
+ * Rolling GUILDCACHE and FASTCHAR into main branches/stable
+ tree [MouseJstr]
+ * Changed max_paramter to an unsigned int so that you can have over 255 as your max stat [Codemaster]
+ * Experimental: Reverting a change on deleting any skill units when we're
+ logging off - might reduce the 'delete_timer' errors [celest]
+ * Added check whether an item is allowed to be dropped, for example wedding
+ rings [celest]
+ * Updated Acid Terror - should never miss [celest]
+ * updated Sword Reject - should display reflected damage properly now [celest]
+ * Updated Double Strafe - should only work with bows [celest]
+ * Replaced checking whether items can be refined or not with a new function [celest]
+ * Added Gengar's fix for npctalk outputting to chat [celest]
+ * Allowed some values in script_config to be customised in script_athena.conf [celest]
+
+12/19
+ * Added -DFASTCHAR to char_sql for testing performance work
+ before I merge it into the main running code [MouseJstr]
+ * Added ShowDebug(), Debug(), DisplayDebug(), printDebug(), CL_DEBUG, MSG_DEBUG to _ShowMessage() [MC Cameri]
+ * Replaced many \033[x;xm with their corresponding CL_xx constants [MC Cameri]
+ * Separated NPCs and Maps from map_athena.conf into npcs_list.txt and maps_list.conf [MC Cameri]
+ * Modified all the *_athena.conf's to have the import command enabled by default [Ajarn]
+ * Added charcommand_conf.txt and log_conf.txt in conf-tmpl/import [Ajarn]
+ * Fixed import command for log_athena.conf file [Ajarn]
+ * Updated charcommand.conf [nsstrunks]
+
+12/18
+ * Added some of my info to Dev/quotes.txt, not done yet... [Ajarn]
+ * Added some ideas to Dev/Ideas_Suggestions.txt [Ajarn]
+ * Fixed import command in inter_athena.conf file [Ajarn]
+ * Fixed a few command compiling problems for TXT [Codemaster]
+ * Modified the main.sql to add the friend0 column; also added the upgrade_1.0.0.sql file [Codemaster]
+ * Introduced StringBuf into utils for use in building larger queries [MouseJstr]
+ * tested GUILD_CACHE (reducing guild related sql traffic to 30%) in
+ prep for unleasing it on the sql using public [MouseJstr]
+ * Fixed some SQL queries crashing char server [davidsiaw]
+ * Added several PID GM commands, thanks to Dino9021 [nsstrunks]
+ * Storage was merging items incorrectly [Mousejstr]
+ * eliminated a uninitialized var when using afm maps [MouseJstr]
+ * Added concept of dirty storage to reduce saves/load
+ to the char server (do a clean build!) [MouseJstr]
+ * Eliminated storage_storageopen2 as unused [MouseJstr]
+ * Switched to account2storage2() whenever possible
+ to eliminate the possibility of saving empty storage
+ back to the character server (storage wipes) [MouseJstr]
+ * Made it save storage as soon as you close the storage
+ window to reduce possibility of loss/abuse [MouseJstr]
+
+12/17
+ * Added #item [MC Cameri]
+ * Added #storagelist, removed @charstoragelist [MC Cameri]
+ * db.c: Fixed probs with OnInit, OnTime, and etc NPC probs
+ Just reverted it back. [Lupus]
+ * Fixed warning message in db.c line 445 [MC Cameri]
+ * Added #effect, removed @chareffect [MC Cameri]
+ * Reverted a change in map.c causing problems, sorry >.< [celest]
+ * Updated Sphere Mine - it'll now move in the opposite direction if
+ being hit by its master [celest]
+ * Updated Wind Walk [celest]
+ * Fixed skill #301 causing crashes [MouseJstr]
+ * Fixed documentation error on gm_skills_unconditionl [MouseJstr]
+ * added @grind test command.. only for testing [MouseJstr]
+ * Added clearweather to the atcommand configuration file. [nsstrunks]
+
+12/16
+ * Added a fix for AFM loading, thanks to Pete [celest]
+ * Updated maximum levels for supernovice to 99 [celest]
+ * Updated supernovice jobexp table - should be same from 50 onwards [celest]
+ * Corrected maximum job level checking in @joblvup and @charjob [celest]
+ * Added the new spell scrolls, thanks to Landarma [celest]
+ * Corrected a few skills, thanks to orn [celest]
+ * Corrected Extremity Fist to not require Explosion Spirits when being used
+ right after using Combo Finish or Dilemma [celest]
+ * Added instant cast weapon skills rely on attack speed as cast delays, not
+ on dex [celest]
+ * Fixed mob_ghostring_fix not working [celest]
+ * Changed default value for mob_ghostring_fix to 'yes' [celest]
+ * Added #itemlist, removed @charitemlist [MC Cameri]
+ * Changed @job and #job so that when it's used it unequips all the items, to prevent sprite errors [MC Cameri]
+ * Fixed a misuse of mysql_config (thanks Daegalus for
+ creating a reproducable environment for me) [MouseJstr]
+ * Fixed compile time errors for gcc 2.95 [MouseJstr]
+ * Updated Forging and Potion making formulas by DracoRPG [celest]
+ * Changes to the guild skills
+ - Dropped using sc_data and use flag values instead
+ - Changed moving guild skill units to once every 'move request' only instead
+ of every movement - should reduce server load abit
+ - Corrected crash when checking its skill requirements
+ * Initialise 'canregen' when logging into map - forgot to add this earlier,
+ sorry ^^; [celest]
+
+12/15
+ * Fixed more compile errors gcc 2.95 [MouseJstr]
+ * Removed log files from svn... they will be created when
+ needed [MouseJstr]
+ * Removed unused var in src/map/map.c:107 [MouseJstr]
+ * fix compile error in text converters [MouseJstr]
+ * Skill Updates [celest]
+ - Corrected traps to last longer in GvG
+ - Some minor changes to Hiding, Cloaking and Chasewalk to prevent it from
+ not working if sc_data is null
+ - Corrected an error in Cannibalize
+ - Updated Marionette Control to check its range from the partner
+ - Updated Berserk to disable hp and sp regen for 5 minutes after the skill
+ * Changed the weather gm commands to be able to toggle on and off. For example,
+ use @snow once to turn it on, reuse it again to turn it off. [celest]
+ * Added Jawaii and Ayothaya to @go list [celest]
+ * Changed the default values for ranged, magic and misc damage rate in
+ battle_athena to 60, 50 and 60 [celest]
+ * Removed redundant 'berserkdamagetick' from map_session_data [celest]
+ * Added changes to map.h according to Shinomori [celest]
+
+12/14
+ * Changed "Map-server can't connect to char-server" message to reduce output spamming and set it to
+ display only once [MC Cameri]
+ * Added a busy animation for npc loading [MC Cameri]
+ * Replaced the way map loading was displayed into a progress-like way [MC Cameri]
+ * Fixed some typos in _ShowMessage() [MC Cameri]
+ * Replaced lots of more printf's in map-server with _ShowMessage() [MC Cameri]
+ * Added constants for console colors in showmsg.h [MC Cameri]
+ * src/char_sql/int_guild.c:56 - t_mes2 was not big enough causing
+ stack overrun's, corruptions, and crashes [MouseJstr]
+ * common/mmo.h: changed base_level and job_level to unsigned int to increase max levels [Codemaster]
+ * char/char.c: added a NULL check for the file in parse_friend_txt [Codemaster]
+ * map/atcommand.c/.h: added @clearweather (thanks to Dexity) [Codemaster]
+ * map/charcommand.c/.h: added #spiritball [Codemaster]
+ * map/mob.c: fixed a compiler warning (ln was an int and was supposed to be an unsigned long int) [Codemaster]
+ * Added nullpo_retb to nullpo.c - does a break; if null [celest]
+ * Replaced some parts in skill.c with nullpo checks [celest]
+ * Corrected some typos - penaly -> penalty [celest]
+ * Skill Updates [celest]
+ - Most of 12/14's Sakray patch
+ * The SKILL_MAX_DB (yes, a different #define from the one below)
+ was not large enough for current skills causing memory
+ corruptions and crashes [MouseJstr]
+ * Fixed how socket handles EAGIN errors (retry instead of
+ disconnecting) [MouseJstr]
+
+12/13
+ * Skill Updates [celest]
+ - Added the new 'Throw Tomahawk' skill (Requires Sakexe1129 or newer)
+ - Added some new monster skills - but still not complete.
+ - Adjusted Palm Strike, Tiger Fist and Chain Crush based on 12/14's patch
+ * Removed redundant 'sg_count' for map_session_data and mob_data [celest]
+ * Save both persons' data after trading in case a crash causes them to
+ rollback - fix by Freya [celest]
+ * Removed 'type' paramater from pc_unequipitem to use 'flag' instead[celest]
+ * Moved unequip checking code from clif.c to pc.c [celest]
+ * Replaced many printf's in map-server with _ShowMessage(). [MC Cameri]
+ * Skill timers for skills with id's higher then 450 were
+ corrupting memory [MouseJstr]
+ * Increased max skills to 650 from 450 fixing MANY crashes [MouseJstr]
+ * Creating Guild events were reading beyond supplied guild names ,
+ causing crashes [MouseJstr]
+ * trades were derefing -2 into the inventory table sometimes [MouseJstr]
+ * Not having a arrow in your inventory but having a bow
+ could cause it to set sd->status.inventory[-1].equip=32768
+ resulting in a memory corruption [MouseJstr]
+ * local broadcasts of messages larger then 64 bytes were
+ corrupting the stack, causing crashes [MouseJstr]
+ * mob eventnames were reading beyond source point, risking
+ going over page boundries, causing crashes [MouseJstr]
+ * Internal MAIL system: moved all strings to msg_athena.conf [Lupus]
+
+12/12
+ * Made guild skills to check for skill levels first when casting [celest]
+
+12/11
+ * Modified arrow checking in skill.c [celest]
+ * Corrected Cart Revolution damage calculation [celest]
+
+12/10
+ * Fixed players unable to move in AFM maps [celest]
+ * Added error message if a player's last map couldn't be found [celest]
+ * Moved AFM map check to map_mapname2mapid [celest]
+ * Added USE_AFM and USE_AF2 to be used later [celest]
+ * Modified sc_data check in pc_damage [celest]
+
+12/9
+ * Moved a map_freeblock_unlock() around to eliminate a
+ crash [MouseJstr]
+ * Fixed how players are cleaned up when they disconnected
+ during authentication [MouseJstr]
+ * Adjusted some messages in @marry [MouseJstr]
+ * Skill Updates [celest]
+ - Fixed Auto Spell not working
+ - Fixed skill level check causing Baphomet card not to work at all (possibly
+ other problems too)
+ - Added some new monster skills based on jA mod 1077
+ * Changed @job to accept text job names - For example: @job wizard, @job high
+ priestess, @job super baby [celest]
+ * Added sc_data check for pc_damage [celest]
+
+12/8
+ * Fixed @rings [MouseJstr]
+ * Added @marry, @divorce, and @rings [MouseJstr]
+ * fixed @revive [MouseJstr]
+ * Added option to turn off login server logging [celest]
+ * Moved char server starting logging to after we've read the configuration
+ file first [celest]
+ * Fixed crash with supernovices with 100% base exp [celest]
+ * Updated the readme a little. [Mass Zero]
+
+12/7
+ * Added GUILDCACHE #define to int_guild.c for testing performance
+ effects [MouseJstr]
+ * Skill Updates [celest]
+ - Arrow Shower, Double Strafing, Charge Arrow, Throw Arrow, Sharp Shooting,
+ Arrow Vulcan, and Musical Strike now take arrows when used
+ - Level 6-10 Stone Curse will not consume a red gem now when it fails
+ - Players should be able to use items when they're stoned but not yet
+ completely petrified
+ - Corrected Triple Blow to work with bows (they actually do ^^)
+ * Added 'guildgetexp' script command [celest]
+ * Added bLongAtkRate item effect [celest]
+ * Implemented Confusion (50%) - still need more info on how monsters act
+ when they're confused [celest]
+ * Added 'Guardian Angel' code for supernovices [celest]
+
+12/6
+ * Fixed file props for new npcs [MouseJstr]
+ * Fixed weddings.txt as per Fress_Boy [MouseJstr]
+ * Added a case_sensitive to login [MouseJstr]
+ * Fixed follow crashing server when gm dies [MouseJstr]
+ * Fixed global message not working on txt [Wizputer]
+ * fixed a server crash in mobinsite [MouseJstr]
+ * fixed a server crash in party sharing exp [MouseJstr]
+ * fixed a server crash in BS_FINDINGORE [MouseJstr]
+ * Updated Chase Walk [celest]
+ * Added 'checkoption1' and 'checkoption2' script functions - Refer to
+ /npc/sample/npc_testchkoption.txt for similiar examples [celest]
+ * Updated maximum level for Guild Skills [celest]
+
+12/5
+ * Fixed another crash sending updates to disconnected
+ clients [MouseJstr]
+ * Fixed the range_check again to stop it from crashing
+ servers [MouseJstr]
+ * removed stubbed out unfinished atcommands as per Cameri [MouseJstr]
+ * Fixed nullpo's for gcc 2.95 [MouseJstr]
+ * Fixed bug in which login-txt was crashing in do_final() due to some free's [MC Cameri]
+ * Added nullpo's to all atcommand's functions, phew... [MC Cameri]
+ Note: I point out that MouseJstr has added some @commands that start with char which
+ havent been finished, they are just there but don't do anything.
+ * Removed mapbug.txt and corresponding function in map.c (realized it's pointless) [MC Cameri]
+ * Added allow_atcommand_when_mute - Change this to set whether muted players
+ can use gm commands [celest]
+ * Temporarily leaving the changing guild emblems requiring Glory of Guild
+ feature only for TXT until the SQL char-server supports guild skills fully[celest]
+ * Modified battle_range again to check if src's type is a player first [celest]
+ * Corrected typo in battle_range [celest]
+ * Fixed a crash where party chats can be sent to a
+ partially disconnected player [MouseJstr]
+
+12/4
+ * Fixed a crash in clif_send when player disconnects but player
+ object is not fully removed from map [MouseJstr]
+ * Fixed a crash associated with NPC_BARRIER [MouseJstr]
+ * Renamed flush_fifos_at_exit to flush_fifos [MouseJstr]
+ * call check_connect_char_server() on char_server disconnect [MouseJstr]
+ * stale skill groups were crashing server [MouseJstr]
+ * Fixed crash in SC_LULLABY [MouseJstr]
+12/3
+ * hacked the frozen mob issue [MouseJstr]
+ * Fixed a battle_range crash [MouseJstr]
+ * Updated Stone Curse, Soul Drain, Auto Berserk [celest]
+ * Added a fix for MVP exp being multiplied twice by Gengar
+ * Modified battle_range to check for sd first [celest]
+
+12/2
+ * Fixed double login feature, resets online users when map connects to char [Wizputer]
+ * Changed all LOGS inserts to INSERT DELAYED (MySQL has this feature and cache unimportant queries, then
+ executes them at once together = 10x faster) [Lupus]
+ * Skill Updates [celest]
+ - Modified Weapon Refine - should only +1 every time.
+ - Updated Berserk, Chase Walk, Slim Pitcher
+ - Added skill_range_leniency : In some cases when moving to cast a skill the
+ exe will a send a UseSkill packet before the server has moved us to the
+ correct position, causing it to fail. Leaving this at 1 should be enough.
+ - Fixed a bug that was causing monsters not to move towards the target
+ * Added check for clif.c in case the server didn't realise we've died [celest]
+ * Added a fix for @npcmove by JohnC and Fredzilla
+ * Added motd_type : Set this to 1 if your clients have langtype problems and
+ can't display the motd properly[celest]
+ * Edited atcommand.c to fix compile warnings [celest]
+
+12/1
+ - Make it build against gcc 2.95 [MouseJstr]
+ - Changed #define MAX_PET_DB to 300, it's easier for people adding new pets like this. [Nas]
+ * Skill Updates [celest]
+ - Updated Poison React
+ - Added Soul Change, Soul Burn
+ - Added a somewhat crude timer for Venom splasher
+ - Added a fix for Guild Skills causing crashes by Sara, thanks!
+
+11/30
+ * Fixed client crash when disguised characters die [celest]
+ * Skill Updates [celest]
+ - Fixed and finished Guild Skills (~90%)
+ - Fixed Meltdown and Overthrust used together breaking your own weapon
+ - Updated Weapon Repair :- uses different materials depending on repaired item
+ (Iron Ore/Iron/Steel/Rough Oridecon)
+ - Fixed sp recovery problem, thanks to OutSider for pointing it out
+ - Updated Tiger Knuckle Fist stun time
+ - Added cooldown time for Emergency Recall
+ - Fixed typo in skill.c, thanks to Toster
+
+11/29
+ * Fixed crash in src/char_sql/char.c when setting chars offline [MouseJstr]
+ * Added mapbug.txt which is displayed in map-server, displays
+ the last bug or w/e fixed for the map-server [MC Cameri]
+ -You may change it whenever you want
+ -It will only show if mapbug.txt exists
+ -This file must not be included in releases
+ * Made some changes in map_versionscreen() to make it easier to
+ read/change in the source [MC Cameri]
+ * Fixed a typo in _ShowMessage() removing the message caption. [MC Cameri]
+ * Fixed typo in map_helpscreen() showing -h instead of --?. [MC Cameri]
+ * Added more sc_data checks in skill.c and pc.c [celest]
+ * Updated Quagmire, Enchant Deadly Poison, Fog Wall [celest]
+
+11/28
+ * Fixed a crash in login_sql/login.c [MouseJstr]
+ * made common/socket.c more crash resistant [MouseJstr]
+ * Added flush_fifos to socket.c so that we can make sure everything
+ has been sent before we shut the process down [MouseJstr]
+ * Modified src/char_sql/char.c to flush fifos on exit [MouseJstr]
+ * Fixed a crash in src/map/map.c shutdown where it would
+ use the char_fd session after it was alrady cleaned up [MouseJstr]
+ * removed conf-templ/atcommand_athena.conf.orig [MouseJstr]
+ * removed a USE from sql-files/main.sql that should not be there [MouseJstr]
+ * Changed MSG_INFO color to bright white, since bright blue want so bright... [MC Cameri]
+ * Made Map Removed: %d string be displayed only if there were maps removed. [MC Cameri]
+ * Fixed online system for char not sending players left "online" to login when restarting [Wizputer]
+ * Fixed damage formula of Cart revolution: 150% +1% per 80ea [Lupus]
+ * Removed 2x Chance of Equipment Breaking during CRITICAL attacks [Lupus]
+ * Fix some file props [MouseJstr]
+ * Added map_versionscreen(), displayed when --version flag is passed on command-line. [MC Cameri]
+ * Finished map_helpscreen(), displayed when --help flag passed on command-line. [MC Cameri]
+ * Changed Guilds Extention Skill to +6 people per level. [Lupus]
+ (tested it for 2 weeks! or a big server)
+ * Added a fix for gettimeofday() for WIN32 [Codemaster]
+ * skill Updates:
+ - Updated Slow Poison, modified checks for skill_unit_onplace abit. [celest]
+ - Updated Finger Offensive, thanks to orn [celest]
+ * Updated packet_ver_flag's default value, thanks to iscandium [celest]
+ * Added warning if motd.txt was not found [celest]
+ (Turn on error_log in battle_athena.conf to enable it)
+
+11/27
+ * Fixed a few map crashes when char-server crashes [Wizputer]
+ * Added fix of 0x2aff and 0x2af8 flooding [Wizputer - thanks Toster]
+ * Fixed Map crash when person uses global message hacks [Wizputer]
+ * Fixed online system, online column works and prevent double login at the login server [Wizputer]
+ * Fixed some compile time errors associated with showmsg [MouseJstr]
+ * Added get_svn_revision() in core.c [MC Cameri]
+ -Only if you have the file .svn\entries, it will show the revision # at runtime.
+
+11/26
+ * Fixed Abrakadabra (2 minor bugs of consumed items - they were ignored if placed in 0 pos) [Lupus]
+ * Finished Full Strip, Weapon Refine, Slim Pitcher and Full Protection. [celest]
+ * Added skill_nocast_db.txt. Use it to set which skills cannot be used in
+ which conditions [celest]
+
+11/25
+ * Added @skilltree to help GM's answer skill tree questions [MouseJstr]
+ * Update Spider Web; I believe you cannot use it on yourself now. [Codemaster]
+ * Added Ore Discovery, and base code for Slim Pitcher and Preservation [celest]
+
+11/24
+ * @charreset #reset [MC Cameri]
+ * @charstatsall is now #statsall [MC Cameri]
+ * @charsave is now #save [MC Cameri]
+ * Updated most of jA's 1067; battle.c and skill.c might need more updates! [Codemaster]
+ * Fixed char-txt crashing when closing, Codemaster free()'s. [MC Cameri]
+ * Skill Updates: [celest]
+ - Updated guild skills (60%)
+ - updated Weapon Repair and Aura Blade by DracoRPG
+ - modified Weapon Repair to use Identify's packet, should show a list of
+ repairable items now
+
+11/23
+ * Fixed script loading small/large monsters. [Valaris]
+ * @charoption is now #option [MC Cameri]
+ * @charpetfriendly is now #petfriendly [MC Cameri]
+ * @charstats is now #stats [MC Cameri]
+ * Skill Updates: [celest]
+ - Added some code for the new guild skills (50%) and Moonlit Petals (5%)
+ - Notes to other devs: Guild skills with id's 10000-10014 will be stored in
+ skill_db[500-514]
+ - Corrected Hilt Binding
+ - Corrected Assassin Cross' dual wield
+ - Changed player_cloak_check_type to yes by default and edited description
+ since it's already fully implemented.
+ - Added a bit more restrictions to Call Partner and Emergency Recall and
+ updated mapflag for sec_pri.gat
+ - Added pc_calcspeed and updated Cloaking so it won't need to recalculate
+ the player's entire status everytime there is movement.
+
+11/22
+ * (TXT)Stripped some code off read_gm_accounts() and made with it addGM() [MC Cameri]
+ -Usage: addGM(account_id,level);
+ * (TXT)Changed GM_accounts.txt to meet new standards. [MC Cameri]
+ * (TXT)Enabled the use of id ranges in GM_accounts.txt [MC Cameri]
+ * Added a few free()'s so that I am sure it freed the allocated memory (char & login) [Codemaster]
+ * Changed monsters_ignore_gm option to a level value. [Valaris]
+ (accounts greater than or equal to this setting won't be attacked by aggressives.)
+ * Fixed mapflag #s and constants for setmapflag and remove mapflag. [Valaris]
+ * Added skill names for kRO 11/23's new skills [celest]
+ - Preserve, Full Strip, Weapon Refine, Slim Pitcher, Full Chemical Protection,
+ (Throw) Tomahawk
+ * timer.c static int timer_heap_max=0; //fix by Shinomori from eA forums
+ ititialize static var!!!
+ * Added the old effect list # into effect_list.txt of spira's. [shadow]
+ * Added new flag (#3) to clif_specialeffect [MC Cameri]
+ * @doom,@die,@doommap now display the Dark Cross effect on you. [MC Cameri]
+11/21
+ * Display IP when wdata is expanded [Wizputer]
+ * Added bClassChange,%; Has random chance to turn monster into another monster. [Valaris]
+ * Re-Fixed Trade/Vending exploit [Lupus]
+ * Fixed @whozeny. [Valaris]
+ * Added rest of mapflags to const.txt. [Valaris]
+ * Closed AFM files after reading, this fixed the improper char-server session #. [Valaris]
+ * Skill updates: [Celest]
+ - Updated Basilica, Sharp Shooting, Berserk, Meditatio (Thanks to DracoRPG!)
+ - Fixed a typo with Blade Stop that was causing crashes, sorry. ^^;
+ - Reverted changes to Cloaking, ours is already more updated! ^_^
+ - Added temporary code for guild skills to stop crashing
+ * @alive, @raisemap, @raise, @revive now display the resurrection skill animation [MC Cameri]
+ * @charpetrename(AtCommand) is now #petrename(CharCommand) [MC Cameri]
+ * @charjob/(AtCommand) is now #jobchange(CharCommand) [MC Cameri]
+ * Removed japanese interserver packets, should fix various problems (jumpto, where, charposreq). [Valaris]
+ * Added Yor's trade exploit bug fix. Added 2 skills bugs in the bugs.txt [Lupus]
+ * Added charcommand.c/.h for the following reasons: [MC Cameri]
+ - Less congestion in atcommand.c
+ - Port commands that start with @char to #, example:
+ ~ @charoption will now be #option
+
+11/20
+ * Added str_lower() function to atcommand.c (from OA). [MC Cameri]
+ * Simplified @charchangesex to @charchangesex [player], your sex is changed to the opposite one [MC Cameri]
+ * Added @refresh, which is like a @jumpto <<yourself>>. [MC Cameri]
+ * Added @petid <pet name> to find pet names, useful when you dont know which pets have eggs. [MC Cameri]
+ * Added an effect_list in docs/ for descriptions, free to add onto that later. [spira]
+ - Attempt to find new skill effects.
+ * Added "nogo" mapflag to prevent the use of @go on a specified map. [Valaris]
+ * Fixed small/big monster spawning crashing (mixed up the merge). [Valaris]
+ * Fixed crash with upgrading TXT and having more than 256 accounts. [Valaris]
+ * TXT upgrades will convert broken flag to attribute column. [Valaris]
+ * Prevent use of emotion packet to display red mute emote. [Valaris]
+ * Initialized "day" variable in npc.c. [Valaris]
+ * Added @whozeny. Shows list of top 50 online players and their zeny sorted from highest to lowest. [Valaris]
+ * Added @happyhappyjoyjoy. Makes all players on server do a random emote. [Valaris]
+ * Removed -funroll-loops from compile, thanks to kashy for pointing out the problems caused by this. (Do not re-add!) [Valaris]
+ * Added check for max vending_max_value when reading config [kobra_k88]
+ * Skill updates [celest]
+ - Napalm vulcan, Enchant Deadly Poison, Slow Poison (based on jAthena 1066)
+ - Create Deadly Poison, thanks to DracoRPG!
+ - Added effect for Meteor Assault
+ * Added night_darkness_level to battle_athena.conf. [celest]
+ Use this to set 'how dark' it'll become during night time. Use 0 for default,
+ or between 1-10. (Yeah, i know lots of people hated the original night! xP)
+ Warning: It may cause errors with old exe's!
+
+11/19
+ * Re-added check for empty bottle when using aqua benedicta. [Valaris]
+ * Fixed skills not showing after using @allskill [celest]
+
+11/18
+ * Added a line to @unmute, added @mute. [celest]
+ Usage: @mute <time in minutes> <character name>
+ * Added save_flag for skill_status_change_start [celest]
+ * Fixed muting not being saved when you quit/change characters/log off [celest]
+ * *Hopefully* fixed the skill tree problem where you have to use 49 skill
+ points first before 2nd job skills will show... please report any bugs found
+ with it, thank you. [celest]
+ * Added flag to pc_unequipitem (thanks to DracoRPG for suggestion) [celest]
+ * Skill updates [celest]
+ - Updated Cloaking (thanks to orn), Endure
+ - Pneuma (thanks to DracoRPG)
+ - Changed sc_ id for Basilica
+ - Cancel Basilica (100%) when caster moves or uses another skill
+ - Updated Poison React (90%), Endure
+ - Added SC_BLOCKSKILL, SC_SLOWDOWN
+ * Modified pc_attack to fix monster npc's not working in certain exes, thanks
+ to leinsirk10 [celest]
+ * Moved mapflags organized by type to main mapflag folder and removed "type" folder.
+ Removed mapflags organized by location.[kobra_k88]
+
+11/17
+ * Added stub-handler for packet 0x3090 into char_sql [MouseJstr]
+ * Fixed a crash in the afm reading/closing code [MouseJstr]
+ * Added skill_steal_type to battle_athena.conf for the new (but unconfirmed)
+ stealing formula [celest]
+ * Skill updates: [celest]
+ - Removed annoying skill fail messages from rogue's Snatcher
+ - Add sc_data check for firewall and fogwall
+ - Fixed Berserk (99% hopefully? ^_^)
+
+11/16
+ * Fix for compiling against gcc 2.95 [MouseJstr]
+ * Added day of week events (OnSat2000) into scripting engine [MouseJstr]
+ * Temporarily Disabled GM Command Logs; Weren't working Properly >_<! [Codemaster]
+ * Fixed a typo in ../db/Changelog.txt [Nana]
+ * Added -funroll-loops argument to makefile to further increase performance [Shinigami]
+ * Fixed 2 bugs in DELITEM script command. [Lupus]
+ - added deleting priority: If you have some items with the same ID and want to delete some of them, then
+ at first it'll delete common items then, if necessary, delete the rest items but upgraded/named/with cards. [Lupus]
+ * Added checks for Perfect hiding [celest]
+ * Modified level 0 skill check to allow auto blitz beat and steal. [celest]
+ * Added constant BaseJob. [celest] Usage: For example, instead of
+ If (Class==12) || (Class==4012) || (Class==4035)
+ you can use
+ If (BaseJob==12) or If (BaseJob==Job_Assassin)
+ * Added 'indoors' mapflag : When in-doors players will not be affected by Night [celest]
+ * Skill updates [celest]
+ - Assumptio is now disabled in GvG maps.
+ - Changed cloaking checks a bit.
+ - Tidied up some parts of skill.c abit. ;P
+ * Added pk_min_level option in battle_athena.conf. Change this to define the
+ minimum level players can attack others when pk_mode is on. [celest]
+
+11/15
+ * Added a Database Changelog.txt File, use it for any changes inside the db folder. [shadowlady]
+ * Added GM Command Logs & Added TXT Logs + TXT Log Options [Codemaster]
+ * Added spawning of monsters at specific level by adding ,# after the spawn name. [Valaris]
+ mobs_level_up option should be on when using this.
+ (Example: {ama_dun01.gat,0,0,0,0 monster Shinobi,99 1401,1,0,0,0} to spawn a level 99 shinobi.)
+ * Added addtoskill script command for (levels can stack on top of existing levels). [Valaris]
+ Use same usage as skill script command.
+ * Added -ffast-math argument to makefile to increase performance, thanks to kashy. [Valaris]
+ * Added small and big mob sprite spawning. [Valaris]
+ -Added @monstersmall and @monsterbig commands.
+ -For using in scripts, use id +2000 for small and id +4000 for big.
+ (Example: 3002 for small poring and 5002 for big poring)
+ * Added mobs_level_up option. [Valaris]
+ -Everytime a monster kills a play their level will increase and show levelup animation.
+ -Their 6 main stats and speed will increase as they level.
+ -They will recover 10% of the max hp of the player it kills.
+ -Player will gain extra exp based on how much stronger a monster is than normal.
+ -Skill estimation will show monsters current level (instead of reading from db).
+ -Will display level 99 aura if and when a monster hits level 99.
+ -They will not go higher than level 99.
+ * Fixed maximum skill levels not following skill tree [celest]
+ * Updated HP/SP for baby classes [celest]
+ * Corrected pc_calc_base_job [celest]
+ * Skill updates [celest]
+ - Marionette Control (70%), Berserk (thanks to DracoRPG)
+ * Modified pc_jobchange code to work with new pc_calc_base_job [celest]
+ * Corrected skill_tree_get_max, sorry >.< [celest]
+
+11/14
+ * Made the Advance jobchangers to kRO standars with the following;
+ - Checks if you are level 99/50 and 2nd class OR above.
+ - Checks if you have an Cart of Falcon equiped.
+ - Checks if you have any Quest Skills, stores a variable on you and gives them back
+ when you change to 1st advance class.
+ - Added minimum joblevel to change to an 2nd or 2-2 advance class to job 45 after kro. [Nana]
+ * Fixed loading of AFMs when no resnametable is found. [Valaris]
+ * mob_db.txt: Fixed Golden Thief Bug MVP MOB mode (it wasn't moving/attacking) [Lupus]
+ * Added AFM (Advanced Fusion Map) support, thanks to alexkreuz and fusion. [Valaris]
+ Use the afm_dir option in grf-files.txt (currently needs a resnametable.txt).
+ * Initialized password variable in login.c. [Valaris]
+ * Added zeny_from_mobs option. [Valaris]
+ * Corrected the file type attribute on most of the files in three which fixes the
+ newline issues between linux and dos [MouseJstr]
+ svn propset -R svn:eol-style native .
+ * Skill changes [celest]
+ - Corrected steal formula, updated BladeStop, Headcrush.
+
+11/13
+ * Fixed map-server loading, doesn't require data\resnametable.txt anymore [Wizputer]
+ * Updated & Optimized TXT Login from FREYA. (need to do SQL now) [Codemaster]
+ * Removed compile warnings in intif.c. [Valaris]
+ * Fixed chrif_changesex and @changesex, now uses packet 0x3000. [MC Cameri]
+ * Updated some skills, credits to orn and midas. [celest]
+ - Magnum Break, Throw Stone, Sprinkle Sand, Magic Power, Memorise, Quagmire,
+ Spider Web, Reject Sword, assassin's Dodge, Demonbane, Divine Protection.
+ - Firewall, Quagmire, Fog Wall (100%), Marionette Control (30%), Sandman,
+ Claymore Trap
+ - Adjusted some mob skills for mod support.
+ * Fixed weight increase when riding. [celest]
+
+11/12
+ * added folder: /save-tmpl, removed folder /save
+ * battle_athena.conf: Updated Packet Version Flags.
+ * !!!Fixed Mobs Attacking!!!: Thanks for MagicalTux and Yor, I fixed the mobs attacking by using one of their files. [Codemaster]
+ * Warps Update : Added ayothaya warps in ./npc/warps/ and in map_athena.conf [Nana]
+11/11
+ * Skill Updates : (Need to revise skill_cast_db.txt for new updates)
+ ( Sharp Shooting, Sword Reject, Chain Crush Combo, Tiger Knuckle Fist,
+ Head Crush, Arrow Vulcan, HP COnversion) Thanks to DracoRPG.
+ Fixed Devotion use requeriments. Thanks to Orn. [shadow]
+11/11
+ * Corrected minor typo in item_db, and removed/commented out dupe items.[kobra_k88]
+
+11/10
+
+ * Updated Sprout (Item #7193), Thin Trunk (Item #7186),
+ Huge Leaf (Item #7198), and Rante Whip (Items #1956, #1957)
+ - thanks to cheng - [Codemaster]
+ * Updated Parasite (Mob #1500) Drops - thanks to cheng [Codemaster]
+ * Updated Soft Grass Leaf (Item #7194) - thanks to cheng [Codemaster]
+ * Added, Fixed & Updated ALOT of skills: [Codemaster]
+ - Fire Pillar, Backstab, Grimtooth, Poison React, Falcon Assalt,
+ Skin Tempering, Hilt Binding, Frost Nova, TEMPORARY fix for Create Deadly Poison,
+ Enchant Deadly Poison, Endure, Sacrifice, Spider Web, Memorize,
+ Hyper Spirit Sphere, Palm Strike, Sword Reject, Pressure, Magic Crasher,
+ Amplify Magic Power, Napalm Vulcan, True Sight, Wind Walk, Aura Blade,
+ Concentration, Cart Boost, Magic Power
+ - Thanks goes to Celest, Midas, and DracoRPG!
+ * Fixed spira's mistake in using the packet_len_table; no biggie ^_^ [Codemaster]
+ * char/char.c & char_sql/char.c: Fixed start_armor and start_weapon - thanks to AppleGirl [Codemaster]
+ * Added packetver 6 flag to makefile. [Valaris]
+
+11/09
+ * mob_db.txt: Fixed Drake dropping the wrong card - thanks to roslen [Codemaster]
+ * chat.c: Fixed multiple joins in a single chat - thanks to Alex14 and CHaNGeTe. [Codemaster]
+ * clif.c: Fixed sitting. [spira]
+ * - Fixed item 657 Job ID , 11/09 patch updates to item_db, Correct stats for item 5097
+ - Added Unbreakable funcions to item_db armors/shields/garments/footgear [shadow]
+ * Defined SO_REUSEPORT to allow the servers to re-use ports if server crashes [Wizputer]
+
+11/08
+ * Added new script command: getMapXY(MapName$,MaxX,MapY,type,[CharName$]) by Lorky [Lupus]
+ Get position for char/npc/pet/mob objects.
+ * Attempted to fix the mob bug (still haven't :( ). Still updated mob.c/clif.c/chrif.c according to jA 1057. [Codemaster]
+ * Fixed item_cardalbum.txt: Removed extra column which mad all albums empty [Lupus]
+11/07
+ - Fixed a few npcs will start implementing new ones soon, have alot on paper, need to type them up. [Nasedo]
+ * clif.c: Added a few things from jAthena 1057 [Codemaster]
+ * Corrected some typos in item_db. Items 1143 and 1719 need to be re-checked.[kobra_k88]
+ * Fixed compiling error in Map Server in which @repairall was using old broken system [Shinigami]
+
+11/06
+ - Added missing items in item_db.txt and reorganised it.[Nasedo]
+ - Fixed wrong coords for payon guild flags (it has the old map coords), fixed some weapon effects in item_db,
+ updated the mob_db (90%+ done), added EP 5-9 mobs to mob_branch.txt and EP 6 cards to item_cardalbum.txt[shadowlady]
+ * atcommand.c/.h,chrif.c/.h, added @changesex. [MC Cameri]
+ * mob.c & clif.c: Added & Modified a few parts dealing with monsters and guilds [Codemaster]
+ * mob.c: Re-did a few parts according to jA's 1057 version. [Codemaster]
+11/05
+ * Fixed and redo optional Umbalian quests:
+ - Wise Man Fabius' Umbalian Language Quest (you can learn Umbalian language in
+ alternative way)
+ - On speaking with Umbalian Chief about meaning of masks you activate Turban Thief Quest
+ (For Sphinx Mask)
+ * Fixed several bugs in Niflheim Piano Keys Quest (wrong variable name, missing CLOSE buttons)
+ Zeny/Item Exploit in Niflhein Sairin NPC quest (should add similiar checks in every
+ easy quests with expensive prizes to avoid exploits) [Lupus]
+ * Revised and fixed all comodo,yuno,amatsu,gonryun,umbala mobs and drops. Also fixed mvp and woe mobs too [Shadowlady]
+ * Fixed crash from guild skill point allocation, there seems to be a problem with guilds loading still. [Valaris]
+ * Fixed committed typo in map_athena.conf, remove aria's dev npc (was giving errors preventing server startup). [Valaris]
+
+11/04
+ * Added sara-chan's packet db with support for 11-1 [Valaris]
+ * [alot of files >_<]: Changed connecting a bit, from oA source; it connected easier/better in my opinion so... [Codemaster]
+ * map/skill.c: Added a few checks for level 0 skills being used. [Codemaster]
+
+11/03
+ * Removed broken column, using attribute column for broken equip now. [Valaris]
+
+11/02
+ * Fixed compile time errors for gcc 2.95 [MouseJstr]
+ * Changed Blacksmith skill "Hammer Fall" to only be used with maces or Hammers [Aria]
+11/01
+ * Set Comodo Kafra to warp to Umbala (11/2/04 patch) [Aria]
+10/31
+ * Fixed Devnpcs giving off errors -_- [Aria]
+ * Fixed showmsg.c compile warnings thanks to LittleWolf. [Valaris]
+ * map/skill.c: removed a second declaration of sc_def_vit in skill_castend_nodamage_id; thanks to spira [Codemaster]
+ * map/battle.c: re-did Water Ball's damage calculation [Codemaster]
+10/30
+ * Added new guild skills to skill_db from sara-chan. [Valaris]
+ * db/skill_cast_db, map/skill.c, map/pc.c: Corrected a few CHASEWALK things; Thanks to Celest [Codemaster]
+ * char_sql/char.c: removed the double free()ing of gm_account [Codemaster]
+ * Added check for c value in int_guild.c before dividing to calculate average level. [Valaris]
+ * Commented unfinished dev npcs and added devnpc to map_athena. [Aria]
+ * Removed item requirement of Aqua Benedicta (10/26 patch) [Aria]
+ * Fixed some compiling error for Map-server [Shinigami]
+ * Removed Rogue's backstab pushback effect (kRO style again) [Aria]
+ * Changed requirement of Fire Pillar to fit kRO style; lv1-5 = no gem, but 6-10 = 1 gem. [Aria]
+ * Added Mugendai's oA GUI support for map-server (previously not added) [davidsiaw]
+ * Included Mugendai's oA GUI in the GUI folder [davidsiaw]
+
+10/29
+ * another exploit fix for mult in script [MouseJstr]
+ * Corrected mode for peco, condor mobs. Added custom mobs Easter Egg and Easter Bunny for easter egg event script.
+ Corrected mysteltain card location, penomena card typo.[kobra_k88]
+10/28
+ * Cloak Speed fixed [Aria]
+ * Throw stone damage fixed [Aria]
+ * Added new packets from Sara to packet database. [spira]
+ * Fixed and changed command lists to reflect on new packet changes. [spira]
+ - @jumpto, @recall, and @where
+ - Removed old @ignore* functions because they are no longer needed.
+ * Replaced old whisper ignoring code with better and more efficient code. [spira]
+ * Added packet_db.txt support, removed old packet functions. [spira]
+ * fixed forger-zeny exploit [MouseJstr]
+
+ Doing script math that returns a number greater then (1<<31) will now
+ return a (1<<31). This prevents you from finding a npc that
+ asks for a quantity then mults the cost by that quantity to get
+ what you need to pay.
+
+10/27
+ * Updated CSS styles for readme a bit [Aria]
+ * branched athena at version 340 to begin work on the packet_db
+ stuff from jA. To retrieve it, do a svn co http://dev.deltaanime.net:8080/svn/eathena/packetdb
+ later, once we are happy with it.. and feel it is stable, we will remerge it back into the main tree via the appropriate svn commands
+ as a FYI, the command I used to create this branch was:
+ svn copy http://dev.deltaanime.net:8080/svn/eathena/athena http://dev.deltaanime.net:8080/svn/eathena/packetdb -m "branch for packetdb work"
+ * Fixed Aldebaran (gatekeeper conditions bugs and wrong Key ID). Fixed some typos in other cities [Lupus]
+
+10/26
+ * Added more quotes -_- [Aria]
+ * Modified a few things related to guild skills. I hope it doesn't interfere with anyone else's work, and isn't seen as bad. [Sara-chan]
+ -Support for new guild skills, though they don't work yet. Added guild_skill_get_inf and guild_skill_get_max entries for them based on early info.
+ -Changed guild_skillup functions based on japanese code, but for a good reason.
+ It allows for guild skill trees, sort of. I made Kafra Contract and Guardian Research require Guild Approval, for instance.
+ I think the first four new guild skill requirements are correct, at the least.
+ I hope everything works alright, it's my first contribution to eA in quite some time and I'm rather rusty at programming of late.
+ * Fixed compile errors in showmsg.c. [Sara-chan]
+ * Fixed Mouse's devnpc only saying his quotes once per server reset [Aria]
+ * Added log_athena.conf & the logs.sql file [Codemaster]
+ * Added log configurations to inter_athena.conf [Codemaster]
+
+10/25
+ * Fixed a compiling error in Login-server [Shinigami]
+ * Added alot of Azndragon's spiffy logs & then added a few things of my own (Silly Dragon, structs are for kids!) [Codemaster]
+ * Corrected a small bug (forgot to change a few variables!) in my different GM option. [Codemaster]
+ * Fixed items and mobs in DB. Added new items. [Lupus]
+ * Fixed some NPC bugs (check NPC=changelog.txt) [Lupus]
+ * Fixed getting MAX PET ID (SQL only bug) [Lupus]
+ * Fix char/char.c which was crashing after double freeing logs
+ [MouseJstr]
+ * Improved basic server rebooters [MC Cameri]
+ * Commited common/showmsg.c/.h, previously missing x_X [MC Cameri]
+ * Added a basic server rebooter program, just use 'runserver.bat' to start up the server. [Shinigami]
+
+10/24
+ * Added files common/showmsg.c/.h which contain the function _ShowMessage(char *string, int flag) [MC Cameri]
+ -Check showmsg.h to see how to use it.
+ -This function is made to replace printf in all the cases, so it MUST be used instead of print from now on.
+ -Begin your own journey of replacing/removing old printfs, and using the new function.
+ -This function was previously called ShowMessage() in oA, it is now merged, some changes have been done:
+ 1.Outputting messages to a file is now disabled(commented out).
+ 2.MSG_SQL is now commented out.
+ 3.If the server is out of memory, it will not use abort().
+ 4.Returns 0 if successful, 1 otherwise.
+ -Example: ShowInfo("hello\n"); will print this to the screen: [Info]: hello
+ -Always add \n at the end. Unless someone edits the function to add the \n whether it exists or not.
+ -Just add #include "showmsg.h" wherever you need it.
+ * Edited ALL makefile's to include showmsg.o -> _ShowMessage(). [MC Cameri]
+ * Updated readme/gmcommands.html with new @uptime command [MC Cameri]
+ * Somebody had added some additional noskill checks that prevented
+ vending from happening in prontera [MouseJstr]
+ * Added bypass with gm_allskill of npc_selfdestruct2. [Valaris]
+ * Corrected some minor bugs in some Quests [Shinigami]
+ * Added new maps (from lateast kRO patch)
+ Touched WOE (u can't surrender the castle during the WOE), misc fix of the bank [Lupus]
+10/23
+ * Added the option to read GM accounts from a different table than login. Default set to login table. [Codemaster]
+ * Finished Aria and MC Cameri "Dev edition" NPCs. [Aria]
+ * Corrected extra stat points given to high classes. [Valaris]
+ * Added high classes getting the extra 40 stat points on stat reset. [Valaris]
+ * performance tweaks on socket.c to reduce lag [MouseJstr]
+
+ do a "OPT="-g -DNSOCKET" to compile with the changes
+ enabled.. and tell me if you notice a change in your
+ performance/lag
+
+ * Added @uptime to atcommand.c [MC Cameri]
+ * Added the stuff for my npc to Dev/quotes.txt [MC Cameri]
+
+10/22
+ * Replaced some checkcart and checkoption(x) with checkcart(0) in the guild folder [Aria]
+ * Waiting for various devs to tell me their coords, map, biography, quotes,
+ moving coords, etc. In the meantime, I replaced them with (x,y),(lols),
+ (sprite),(somewhere), and if they didn't give me any info, I didn't
+ add them yet =P. [Aria]
+ * Added Davidsiaw, Shinigami, Lord, Codemaster, MouseJstr, MC Cameri, and Darkchild
+ to "Dev edition" NPCs [Aria]
+ * Revised "Dev edition" NPC layout a bit, should go smoother now. Should be final
+ layout unless something goes wrong =O. [Aria]
+ * Fixed the eol markers on some checked in files [Mousejstr]
+ * Fix two crashes caused by calling isGM on mobs [MouseJstr]
+ * Added folder "mc_cameri" in npc/other which contains my bank npc. [MC Cameri]
+ * Changed "Dev edition" NPC layout so that they move by themselves by timers. [Aria]
+ * Changed "Dev edition" NPCs to walk during quotes, and added biography. [Aria]
+ * Fixed quest/all_quest.txt not showing the correct description of the binoculars. [Aria]
+ * Fixed quest/all_quest.txt not going to stop pass and not displaying requirements. [Aria]
+ * Fixed removing friends from the list [davidsiaw]
+ * Added PCLoginEvent NPC (When a character logs on, NPC runs as if he/she clicked the NPC) [davidsiaw]
+ The NPC sample is located in npc/sample/PCLoginEvent.txt (you only need one of these NPCs)
+
+10/21
+ * Fixed clothes_dyer.txt: Disabled Assassing/Rogues Dye. Also fixed wrong labels [Lupus]
+ * Fixed hair_dyer.txt: fixed missing menu label [Lupus]
+ * new_hats.txt 1.4 fixed amount of Fish Tail (300 -> 30), Zeny bugs in Ear of Angel,
+ Ear of Demon,Big Golden Bell, Mistress Crown,
+ Crown of The Ancient Queen, Indian Headband, Orc Hero Helm [Lupus]
+ * Fixed name of a flower in Prontera quest (Dreamy->Illusion) according to our DB [Lupus]
+ * Fixed item names in the temp Crusader Job Quest according to our DB [Lupus]
+
+10/20
+ * map/mob.c: Added mob_exclusion_add() & mob_exclusion_check() [Codemaster]
+ * map/map.h: Changed Vending Struct: amount and value to unsigned variables (so they CAN'T be 0 or less) [Codemaster]
+ * map/mob.h: Added mob_exclusion_add() & mob_exclusion_check() [Codemaster]
+ * Aligned the list of commands at the beginning of atcommand.c,
+ with tabs instead of spaces. [MC Cameri]
+ * Fixed AtCommand_SetBattleFlag, it was previously being called by "@send"
+ instead of "@setbattleflag". [MC Cameri]
+ * Finished basic layout, finished Aria starting to create Shinigami [Aria]
+ * Started to create "Dev edition" npcs [Aria]
+ * Fixed a compile error in src/char/char.c [MouseJstr]
+ * Fixed a bug in @trade where the distance was not ignored [MouseJstr]
+ * Fixed a potential inf loop in pc.c when multi_level_up is set to no. [MouseJstr]
+ * implemented Friends List support for TXT version [davidsiaw]
+ * added queries in main.sql for Friends List. mySQL support for friends list pending [davidsiaw]
+10/19
+ * switched login_sql/login.c to use binary when retrieving
+ by account name [MouseJstr]
+ * skill.c & skill.h: added skill_type_cloaking [Codemaster]
+ * storage.c & storage.h: added storage_storageopen2() [Codemaster]
+10/18
+ * Changed readme layout for 1.0 scheme. [Aria]
+ * added check for console variable in login_sql [MouseJstr]
+ * Fully translated the untranslated items in the database.sql for SQL. [Nana]
+ * Dev/TODO, asigned myself to some items. [MC Cameri]
+ * char/char.c: changed the online system to omniAthena's [Codemaster]
+ * char/char.c: added log_char and log_inter [Codemaster]
+ * char/char.c: added Mugendai's GUI Support [Codemaster]
+ * char/int_guild.c: added log_inter and db_path [Codemaster]
+ * char/inter.c: added log_inter [Codemaster]
+ * char/char.c: added db_path [Codemaster]
+ * char/inter.h: added log_inter [Codemaster]
+ * char_sql/char.c: added log_char and log_inter [Codemaster]
+ * char_sql/char.c: added Mugendai's GUI Support [Codemaster]
+ * char_sql/int_guild.c: added log_inter and db_path [Codemaster]
+ * char_sql/inter.c: added log_inter [Codemaster]
+ * char_sql/char.c: added db_path [Codemaster]
+ * char_sql/inter.h: added log_inter [Codemaster]
+ * conf-tmpl/char_athena.conf: Added log_char & db_path [Codemaster]
+ * conf-tmpl/inter_athena.conf: Added log_inter [Codemaster]
+
+10/18
+ * clif.c,clif.h,map.h,npc.c,npc.h,script.c: Added NPC Walking. [Valaris]
+ -npcspeed #; To change npc's walking speed.
+ -npcwalkto x,y; Move an npc to a position (keep it less than area size, or sprite will glitch and disappear).
+ -npcstop; Stops an npc's movement.
+
+10/17
+ * Made the IP autodetection code work under a pure win32
+ executable
+ * Fixed the win32 build and made a src\map\Makefile.win32 to
+ make it easier to do win32 builds of the map server
+
+ src\common\utils.c src\common\utils.h src\common\grfio.c
+ src\common\nullpo.h src\common\timer.c src\common\db.c
+ src\common\socket.c src\common\core.c src\common\mmo.h
+ src\common\socket.h src\map\script.c src\map\intif.c
+ src\map\npc.c src\map\clif.c src\map\map.c src\map\clif.h
+ src\map\chrif.c src\map\Makefile.win32
+
+ * skill.c: Fixed noicewall flag. [Valaris]
+ * battle.c: Battle calc weapon attack now checks to see if pc_breakweapon successfully broke the weapon then recalculates damage. [Valaris]
+ * pc.c: Removed broken weapon and equip status, just unequips items again when broken. [Valaris]
+ Removed useless code from pc_breakweapon and pc_breakarmor. [Valaris]
+ * Added template for server control from the console [Wizputer]
+ * conf-tmpl/login_athena.conf: added support for Mugendai's "I'm Alive" Timer and GUI Flush [Codemaster]
+ * login/login.c: added support for Mugendai's "I'm Alive" Timer and GUI Flush [Codemaster]
+ * login_sql/login.c: added support for Mugendai's "I'm Alive" Timer and GUI Flush [Codemaster]
+ * Usable GM commands from server console admin:<gm command>:<map of "GM"> <x> <y> [Wizputer]
+ * Added server:shutdown to shutdown server and help [Wizputer]
+ * Added user discretion for console commands in conf files [Wizputer]
+10/16
+ * Fixed Umbala Language Quest, where a certain NPC would freeze you due to an unfinished script [Shinigami]
+ * Fixed bug in new_hats.txt where free items are given out [Shinigami]
+ * Correct Morroc warp npc overlaying Kafra npc. [Aria]
+ * Corrected npc typos. [Aria]
+ * Skip over npc_selfdestruction2 on allskillup (thanks to celest) [Valaris]
+ * Fixed some typos in some of the NPCs [Shinigami]
+ * tweaked the auto-configure stuff to deal better with
+ machines that have no detectable IP addresses.. is this
+ possible? [MouseJstr]
+ src\char_sql\char.c src\char\char.c src\map\map.c
+ * Made it compile under gcc 2.95 [MouseJstr]
+ * made the char and map servers auto-configure their own IP's
+ whenever possible [MouseJstr]
+
+ If you do not specify the server IP address, it now determines it
+ on its own. This means that to get a server running that is
+ accessable from the internet you should only need to specify the
+ location of the data.grf files. This eliminates one more point
+ of misconfiguration.
+
+ It does not correctly auto-configure for when you are behind a
+ router or a firewall since there is no way of determining the
+ external IP address. On the other hand, we should be able to
+ eliminate the lan_conf file since we know our IP addresses as well
+ as our netmask.
+10/15
+ * added @setbattleflag to let me reset a battle_config at runtime [MouseJstr]
+ * --- RC5 release
+ * another fix to oA2eA-rc5.sql to fix the sell_price [MouseJstr]
+ * Redid readme, updated content a bit, and made ps2 poster in preperation for 1.0 RC5 release. [Evera]
+ * made MAX_HAIR_STYLE, MAX_HAIR_COLOR, and MAX_CLOTH_COLOR
+ configurable via battle_config. [MouseJstr]
+ * made the dex spell cast time scaling configurable via battle_config
+ [MouseJstr]
+ * made the visible area_size configurable via battle_config
+ [MouseJstr]
+ * Reorganized and added the warps into their respective folders, updated map_athena.conf. [Nana]
+ * Added 2 script commands GETLOOK, GETSAVEPOINT (thanks to Lorky). [Lupus]
+ * Added kafra_bank NPC - a new bank with daily interst of 0.1#%. [Lupus]
+ * Changed cast time for champion soul collect to 1 sec (thanks to midas). [Valaris]
+ * Added midas's fix for +30 hitrate with Sonic Blow. [Valaris]
+
+10/14
+ * Fixed help.txt for some @gm commands [MouseJstr]
+ * made login.c compile on gcc 2.95 [MouseJstr]
+ * Fix backwards compatability with old mob skill formats [MouseJstr]
+ * Added mail system commands and @refreshonline to help.txt. [Valaris]
+ * Fixed char guild storage bug [MouseJstr]
+ * Prevented breakage of Weapons/Armor if the respective Alchemist Chemical Protection skill is applied. [spira]
+ * Added so nochat end will set manner to 0. [Valaris]
+ * Added broken item check before breaking (to prevent an item from breaking more than once) [Valaris]
+ * Re-wrote parts of equipment breaking. It will check to make sure it was not a miss before doing break calculations. [Valaris]
+ * Re-added negative value exploit fix. [Valaris]
+ * Fixed guardian opposition search. [Valaris]
+ * Added @unmute. [Valaris]
+ * Added check for map existing before cleanup (server will exit instead of crashing if maps aren't found). [Valaris]
+
+10/13
+ * Fixed parse of antifreeze enable/disable flag. [Valaris]
+ * Fixed end-of-line flags in source tree [MouseJstr]
+
+10/12
+ * Prevent attack/skill usage while wearing tux/wedding dress. [Valaris]
+ * Remove item unequip on tux/wedding equip. [Valaris]
+
+10/11
+ * Added mail system (for SQL version only). [Valaris]
+ - @checkmail
+ - @listmail
+ - @listnewmail
+ - @readmail <#>
+ - @deletemail <#>
+ - @sendmail <name> <message>
+ - @sendprioritymail <name> <message>
+ - Added battle_athena.conf option to enable/disable mail system.
+ - Added mail.sql for sql mail system.
+ - Use "*" for name to send to all players. Level must be >= to @sendprioritymail level.
+
+ * Added @refreshonline to refresh player online status in SQL version. [Valaris]
+
+10/10
+ * Modified ja blacksmith repair code to function with our broken equipment system. [Valaris]
+ * Removed ja repair script commands, they aren't compatible with our broken equipment. [Valaris]
+ * Fixed error in Morroc jewel dealer. [Valaris]
+ * Added so supernovices will get flee from improve dodge. [Valaris]
+ * Fixed assassin and rogue flee bonus, was giving +50 instead of +40. [Valaris]
+ * Fixed bug with using remove trap on a snared monsters and the monster would stay stuck. [Valaris]
+ * Added a check for row return in an sql statement in login. [Valaris]
+ * Added some pointer initializations in map.c. [Valaris]
+ * Calculate pc status when equipping or unequipping pet items. [Valaris]
+ * Fixed crash in looting pet skills if loot size was greater than 10. [Valaris]
+
+10/05
+ * Fixed all mob spawn names (typos, errors, wrong names) according to the mob_db.txt [Lupus]
+ * Added YggdrasilKid's fixed exp.txt. [valaris]
+
+10/04
+ * Added missed close file functions in pc.c [Lupus]
+ * Added some new items, fixed some item names and translated all grabled items in item_db.txt [Lupus]
+ * Fixed bug in MOB_DB and in MOB_BRANCH DB related to wrong "Elder" ID number [Lupus]
+ * Fixed toggle for using sql item db in char-server. [Valaris]
+ * Added interval settings for anti-freeze system. [Valaris]
+ * Added enable/disable options in char_athena.conf and login_athena.conf for anti-freeze system. [Valaris]
+ * Re-added anti-freeze system. [Valaris]
+ * Cleaned up warning in src/common/db.c. [MouseJstr]
+ * Removed afm map checking from char. [Valaris]
+ * npc.c - Re-enabled new "OnTouch" function. Added a missing line to npc_event in npc.c(line 667).
+ pc.c - Added 2 missing "else" statements on (line 3702 and 3842). Now ontouch works correctly and activates
+ everytime instead of only once like in RC4. [kobra_k88]
+ * clif.c - Added: npc_scriptcont(sd,RFIFOL(fd,2)); to "void cliff_parse_NpcCloseClicked" function.
+ Now "close2" script command works properly. Previously, it would freeze the server.[kobra_k88]
+
+10/03
+ * added oA to eA database conversion .sql [MouseJstr]
+ * renamed sql to sql-files to eliminate a problem with make [MouseJstr]
+ * Fixed Assassin Quest where "Nameless One" NPC would freeze after clicking "next". [Shinigami]
+ * charkillable now returns status on target [MouseJstr]
+ * skill names now have descriptions pulled from the client [Mousejstr]
+ * Mapflag "petals" has been changed to "sakura". [Valaris]
+ * The weather @commands will now set that particular mapflag on until server is restarted, and will send weather effect
+ to everyone on that map. It also will not allow the occurance of the command more than once. This method means
+ everyone coming onto the map after the command has been used will see the effect. [Valaris]
+ * Added yor's latest ladmin.c. [Valaris]
+ * Fixed bug in delitem script command that caused it to delete all of an item. [Valaris]
+ * Modified Makefile's to work better in non-sql environment [MouseJstr]
+ * A lot of work on source tree making it more ANSI C compliant [MouseJstr]
+ * Finalized the timers on shutdown
+ turned off malloc debugging on db's. [MouseJstr]
+ * Added release hook's into db's [MouseJstr]
+ * Added runflag to core to allow cleaner shutdown [MouseJstr]
+ * Work on LCCWIN32 for building under Windows natively [MouseJstr]
+ * modified @mapexit to use runflag for cleaner shutdown [MouseJstr]
+ * Improve cleanup on exit of map server of all objects [MouseJstr]
+ * statpoint reader can now be larger then 1432 bytes [MouseJstr]
+ * Fixed so dancing effect is cleared when warping. [Valaris]
+
+10/02
+ * Modified battle config muting players option to work more effectively. [Valaris]
+ * Fixed mute from showing red bubble to players. [Valaris]
+ * Fixed disguise sprite staying when teleporting. [Valaris]
+ * Added a special mob ai check in mob.c. [Valaris]
+ * Fixed petit pet skill's damage from ever increasing. [Valaris]
+ * Removed pet weight and pet loot options, someone re-added them, and this conflicts with pet skills. [Valaris]
+ * Added new skills to mob_skill_db (skills for Alchemist summon marine sphere among others) [Valaris]
+ * Updated skill_cast_db and skill_require_db for summon marine sphere and biocanniablize skills. [Valaris]
+ * Fix for drops by luck crashing. [Valaris]
+ * Removed @nuke for now. [Valaris]
+ * Added japanese ankle snare code. [Valaris]
+ * Using better code for alchemist marine sphere. [Valaris]
+ * Reverted back to old method of OnTouch for now for compatibility with older scripts. [Valaris]
+ * Fixed an infinite loop with preventing multi level up and high novices. [Valaris]
+ * Storage saving in SQL was based on MAX_INVENTORY. Switched to MAX_STORAGE and MAX_GUILD_STORAGE. [Valaris]
+ Should resolve items disappearing. Thanks to fov for pointing this out.
+ * Updated skill_db entries for biocannibalize and summon marine sphere. [Valaris]
+ * Changed sql item name row sizes to 24, and changed memory allocation to 25 bytes instead of 29. [Valaris]
+ * Added upgrade_1.0.0-rc5_database.sql (will set name columns of item db to varchar(24). [Valaris]
+ * Removed anti-freeze system. [Valaris]
+ * Began removing AFM, unless someone wants to complete this. [Valaris]
+ * Added an online status timer. Will check online status of players every hour (for sql version). [Valaris]
+ * Added malloc to map.c. [Valaris]
+ * Added some variables for new mob exclusion. [Valaris]
+ * Using malloc in pc.c. [Valaris]
+ * Added skill reset checks to high/advanced/baby classes. [Valaris]
+
+10/01
+ * Fixed up const.db. [Valaris]
+ - Added
+ bBreakWeaponRate 1068
+ bBreakArmorRate 1069
+ bAddStealRate 1070
+
+ - Fixed
+ bMagicDamageReturn 1071
+ bRandomAttackIncrease 1072
+ bAllStats 1073
+ bAgiVit 1074
+ bAgiDexStr 1075
+ bPerfectHide 1076
+ bDisguise 1077
+
+ * Rewrote mute disable option in clif.c, it did not need to end status. [Valaris]
+ * Added a missing check for SC_NOCHAT in clif.c. [Valaris]
+ * Changed comments on max_lv in battle_config to be less
+ confusing [MouseJstr]
+ * Fixed Gypsy Job Quest, added Crusader Job Quest [Lupus]
+ * Adding missing noquests from previous tree [MouseJstr]
+ * merged conf files between txt and sql [MouseJstr]
+ * According to item_db.txt and mob_db.txt fixed some name differences, wrong item names in
+ pet_db.txt,mob_branch.txt,item_violetbox.txt,item_giftbox.txt,item_cardalbum.txt [Lupus]
+ * Added specialeffect2 script command. Works the same as specialeffect, but the effect will be applied
+ to the player interacting with the npc instead of being applied on the npc. [Valaris]
+ * Added hasitems script command. If a player has any items it will return 1 in an if statement. [Valaris]
+ * Added npctalk script command. Syntax : npctalk "These are my words"; [Valaris]
+ * Removed script::say in favor of Valaris's version. [MouseJstr]
+ * Fixed a bug in guild alliances where it was treating a friend as a foe. [MouseJstr]
+ * Fixed crash in weapon breaking. Was not doing a block type check on the source. [Valaris]
+
+
+09/29
+ * Fixed small, almost non-existing memoryleak, in grfio.c that could
+ cause some systems to exit the application [Kalaspuff]
+
+09/26
+ (Dated On Aegis Website)
+ *--Released 1.0.0 RC4--*
+09/25
+ * Reorganized Npc folder for release
+ * Updated map_athena.conf
+ * Remove certain statuses when warping (Cloaking, Sitting, Gangster's Paradise) that would allow the effect to
+ continue and a player to walk normally. [Valaris]
+ * Remove speed increase of theif and high thief from improve dodge (only assassins and assassin cross's are
+ supposed to get this bonus) [Valaris]
+ * removed more #ifdef's between TXT and SQL [MouseJstr]
+09/24
+
+ * Added @charkillable (to make players killable) [MouseJstr]
+ * Added @dropall (throws all items on ground) [MouseJstr]
+ * Added @chardropall (throws all players items on ground) [MouseJstr]
+ * Added @storeall (put all items in store) [MouseJstr]
+ * Added @charstoreall (put all players items in storage) [MouseJstr]
+ * Added @skillid (look up a skill by name) [MouseJstr]
+ * Added @useskill (use a skill by id) [MouseJstr]
+
+09/23
+ * Update Some Npc Stuff In Payon [Darkchild]
+ * Added Sage Quest [Darkchild]
+ * added @killable - all players can hit you, even out of pvp [MouseJstr]
+ * Changed Basilica to prevent the priest from walking [MouseJstr]
+ * Restore base files in save directory [Yor]
+ * Castle spawn/conquering fix: [Akaru]
+ - Spawns monster when the guild is not owned when the server starts
+ - Spawns emperium with the monsters when guild is not owned yet
+ - If AgitStart and AgitEnd occurs while castle had not been owned, it is just ignored so that the monsters that are guarding the castle and the emperium would not be killed.
+ - Prevent spawn of emperium/monsters after castle is owned
+ - In short, you can clear and conquer the castle any time even when it's not agitstart'ed if the castle is unowned, like in official servers
+
+09/22
+ * added @killer to let GM's hit players outside of pvp [MouseJstr]
+ * added @skilloff to turn off skills on a map [MouseJstr]
+ * added @skillon to turn on skills on a map [MouseJstr]
+ * added @follow to follow players (including warping after them) [MouseJstr]
+ * added battle_config option to control the max number of castles a guild can have [MouseJstr]
+ * upgraded the guild alliance checker [MouseJstr]
+ * added battle_config to control if ghosty armor works for mobs [MouseJstr]
+ * Fixed battle_config to control how much GTB actually helps [MouseJstr]
+ * Fixed battle_config to control if pvp battles give exp or drops [MouseJstr]
+ * Added map aliasing [MouseJstr]
+ * changed the map_nick2sd to be able to handle sub-strings for refering to players [MouseJstr]
+ * made turning of skills on a map actually work [MouseJstr]
+ * Updated Makefiles/GNUMakefiles to include the compilation of /common/malloc.o [PoW]
+
+09/19
+ * Corrected @charstoragelist: [Yor]
+ - because account2storage function create a void storage if it's not exist, somethimes a player could lost its storage.
+ -> creation of account2storage2 to just ask pointer of storage if exist and use it in @charstoragelist.
+ * Improved range system of @monster/@spawn (nearest of GM when less monsters) [Yor]
+ * Client until 2004-09-06 (included) is now completely recognized [Yor]
+ * Fixed kafra storage request for all new clients [Yor]
+
+09/18
+ * Changed to Yor's code that doesn't try and read when it's already not found [Akaru]
+ * Removed check for resnametable in data folder exit -> the resnametable isn't even used if present and it should be optional and not compulsory to have a resnametable in the data folder! [Akaru]
+ * Added an option to choose which clients are accepted on the server (2nd part and finish: Check accepted versions) [Yor]
+ * Added an option to choose which clients are accepted on the server (1st part: reading of the option) [Yor]
+ * Fixed action request (sit, attack, etc..) for all new clients [Yor]
+ * Fixed solve char name for all new clients [Yor]
+ * Fixed get char name for all new clients [Yor]
+ * Fixed an error about packet number on char name function [Yor]
+ * Added items drop packet for all new clients [Yor]
+ * Fixed: in clif_send (global send, not individual send) don't send a packet that client doesn't recognize [Yor]
+
+09/17
+ * Added check to make sure mob is already moving before initiating random walk
+ when the item they are going to loot disappears. [Valaris]
+ * Client of 2004-07-13 is now completely recognized [Yor]
+ * Fixed items take packet for all new clients [Yor]
+ * Corrected packet sizes for each client version (not set packet size if packet doesn't exist) [Yor]
+ * Fixed direction position for all new clients [Yor]
+
+09/16
+ * Client of 2004-07-06 is now completely recognized [Yor]
+ * Fixed skills to position with all new clients [Yor]
+ * Fixed incomplete packet of authentification [Yor]
+ * Fixed size of packets for all clients [Yor]
+ * Improved detection of client version at authentification [Yor]
+ * Improved packet parsing of client (search packet version before to parse) [Yor]
+ * Added packets size of 0x20d and 0x20e [Yor]
+
+09/15
+ * Added "nude" script command, will strip player of all equipment. Syntax : nude; [Valaris]
+ * Removed sandstorm flag, since it does not work as intended (is not a constant effect like believed) [Valaris]
+ * Added specialeffect script command. Syntax: specialeffect #; [Valaris]
+ * Moved noicewall flag to a better position. [Valaris]
+ * Added mob type check to skill_castfix to prevent crashing. [Valaris]
+ * corrected error: skill to id (RFIFOW->RFIFOL) [Yor]
+ * Added packets size of 0x204 and 0x20b [Yor]
+ * Fixed skill_to_id with all new clients [Yor]
+ * Fixed tick sending with all new clients [Yor]
+ * Fixed items use with all new clients [Yor]
+ * Fixed move with all new clients [Yor]
+ * Speedup WantToConnect function [Yor]
+ * Call correct function with any clients packet - size is not correctly set actually [Yor]
+
+09/14
+ * Resetlvl will unequip items that require more than level 1. [Valaris]
+ * Added message about new clients (not actually supported) [Yor]
+ * Added correct call of clif_parse_WantToConnection function for all client types [Yor]
+ * Added size of packet 0x0214 [Yor]
+ * Fixed calls of 'clif_send' function [Yor]
+
+09/13
+ * Modified item_db to have more name consistency, added more translations for items [Akaru]
+ * Fixed in clif_sitting usage of a buffer [Yor]
+ * Fixed in clif_movechar usage of a buffer for clif_set007b [Yor]
+ * Fixed in clif_spawnpc usage of a buffer for clif_set0078 [Yor]
+ * Corrected a commented printf in packet 0x2b0e for debug [Yor]
+
+09/12
+ * Put (commented) parse printf in char.c at the right place (to have all informations) [Yor]
+ * Added Alchemist JobQuest [Darkchild]
+ * Added Inn Npcs [Darkchild]
+
+09/11
+ * Added @charitemlist/@charstoragelist/@charcartlist GM commands to display items of a player [Yor]
+
+09/10
+ * Added a better id control of monster id in @spawn/@monster... GM commands [Yor]
+ * Correction of an error at reading of 'wisp_server_name' option (char.c) [Yor]
+
+09/09
+ * Change @spawn/@monster2... GM commands to spawn in close area [Yor]
+ * commented some printf in char.c to reduce (a little) lag [Yor]
+ * Put @timer messages in msg_athena.conf [Yor]
+ * Add a file for SQL developpers [Yor]
+ * Changed name of newpacket variable of session (packet_ver) and add a message for nex client version [Yor]
+ * Added new client packet sizes and expanded packet acception. [Valaris]
+ * Added snow, fog, rain, leaves, petals, and sandstorm map flags. [Valaris]
+
+09/08
+ * added clif_specialeffect to clif.c, for displaying a wide variety of effects (information from rofx) [Valaris]
+ * Corrected in map: creation of new session before to delete previous session_data [Yor]
+ * Corrected in login/char/ladmin: creation of new session before to delete previous session_data [Yor]
+ * Prevented redeal dupe. Checks to make sure inventory index has not already been added (client prevents
+ the possibility of stacking items, but server did not.) [Valaris]
+
+09/07
+ * Added an option to determinate at which GM level nowarp and nowarpto flags are not more used [Yor]
+ - new option in battle.conf: any_warp_GM_min_level
+ - new checks and message about 'from' (nowarp) and 'to' (nowarpto) in GM commands
+ * Third part of new authentification method (clif_parse_CloseKafra): ignore new 0xF7 [Yor]
+ * Change name of new0x0072 variable by new_auth (because now, auth packet is 0x72 or 0x7E) [Yor]
+ * Second part of new authentification method (clif_parse_WantToConnection): Auth by char-server of new packets resolved [Yor]
+ * Improved check of new packet 0x7E to enter in WantToConnect Function [Yor]
+
+09/06
+ * First part of new authentification method (clif_parse_WantToConnection) [Yor]
+ - accepted new 0x7E for wantto connect
+ - begin to found first authentificaiton and answer to client, but not found
+ * Improved Char-server: [Yor]
+ - Fixed a possible error on multi-map servers (no lastpoint)
+ - Added log about character with same name of wisp server name.
+ - Added a sub function to disconnect a player (used 3 times)
+ * Improved. In global message, use buffer to send to other (avoid possible overwriting). [Yor]
+ * Added Super Novice Job Quest [Darkchild]
+
+09/05
+ * Fixed noskill flag to actually stop all usable skills when used. [AppleGirl]
+ * Removed last lag on char-server causing by too much savings (on accreg) [Yor]
+ * Removed a lag on char-server with a lot of players (for party, like guild) [Yor]
+ * Removed a big lag on char-server with a lot of players: [Yor]
+ - guilds was saved every time a player is online and a lot of other time (removed).
+ - guilds are save only when characters are saved (no more bring forward with characters file, and less savings)
+ * Added GM message that informs when a player blocks wisps of the server (against some bots that auto ignore wisps from a player) [Yor]
+ * Added perfect GM hide in @where GM command [Yor on suggestion of PoW]
+ * Correct NEW shops.txt with error displayed AT START of map-server! [Yor]
+ * Correct NEW payon.txt that crash map-server AT START! [Yor]
+ * More changes and official locations for new payon, things in correct place:
+ - Guild Flags
+ - Kafra
+ - Shops/Refiners (except Pet Shop!)
+ - Most Normal Npcs (not all!)
+ All Based On ScreenShots From kRO!! [Darkchild]
+ * Payon Warps about 80% finished, others were no screens taken from! [Darkchild]
+ * Removed nowarp mapflag and new internal check about gmlevel [Yor]
+ - gmlevel are checked before to call the function (of the GM comand). If you give gmlevel, people can use the function, including if you give level 0.
+ if you want refuse some GM commands to normal players, set the level of the command with a value upper than 0 (of set GM_only_command option to yes).
+ Not add new tests for nothing and use more cpu.
+ - mapflag: no limit for GM commands: what'is the interest to have gm commands limited like player? (it's rule for all GM commands)
+ A gm can have the possibility to go anywhere, specialy to check/control player ==> no mapflag!
+ * Stopped client crashes when jobchanging into another class that doesn't support the weapon you are holding. [Valaris]
+
+09/04
+ * Added nowarp mapflag [PoW]
+ * Fixed nowarpto mapflag in atcommand.c [PoW]
+ * Improved: On hack about name in global message, GM of ALL map-server received hack messages. [Yor]
+ * Moved some GM messages of GM command from at_command.c to msg_athena.txt. [Yor]
+ * Added @whogm GM command. [Yor]
+ * Added a warning when a character has same name than wisp server name. [Yor]
+
+09/03
+ * Added gm level display in all @who(map) GM command. [Yor]
+ * Correction: [Yor] - Thanks to [EvilEden]
+ - Soul Strike mistake (according to http://iro.ragnarokonline.com/game/jobmagskill.asp) - corrected cast time
+ - npc/quests/monstertamers.txt: The Monster Tamer Shogo gives the Deviruchi 'Contracts in Shadow' (641) -> the Bapho Jr. Tamming Item 'Book_of_theDevil' (642).
+ * Added monster/egg name to create egg in @makeegg GM command. [Yor]
+ * Added an option to fix started limited time of a new account. [Yor]
+ * Added @hatch in help.txt. [Yor]
+ * Fixed ChaseWalk so now you can't use skills while in chase walk mode. [AppleGirl]
+ * Fixed Looping of Broken Weapon if you continued to use it even after its broken [AppleGirl]
+ * Updated Weapon Breaking So Now Icon Will Disappear when you unequip the broken item [AppleGirl]
+ * Re-Added @hatch and added makepet to atcommand_athena.conf [Darkchild]
+ * Moved job monsters to their respected files [Darkchild]
+ * Fixed a bug in sence (showing wrong info!) [Darkchild]
+ * Changed the npc/jobs/ folders heavily! [Darkchild]
+ * Added COMPLETE Umbala NPC script [Darkchild]
+ * Added New Payon maps @ bottom of the map_athena.conf [Darkchild]
+ * Added New Payon NPCs and Warps [Darkchild]
+ * Fixed typo and made layout a litle bit better of the readme files [Darkchild]
+ * Added Items Ability to be unbreakable (using bonus bUnbreakable,100;) it will totally unbreakable
+ any lower than a 100 it still has a chance of breaking but call it more durable ;p[AppleGirl]
+ * Added Start_Weapon and Start_Armor to all the other starts in char_athena.conf [AppleGirl]
+ * Updated skill_require_db and skill_cast_db.txt [AppleGirl]
+ * Finish to add a (reserved) wisp name for server - part 3: in map-server replace name where server name is used for wisp [Yor]
+ * Continue to add a (reserved) wisp name for server - part 2: in map-server, reception of the name [Yor]
+ * Begin to add a (reserved) wisp name for server - part 1: in char-server [Yor]
+
+09/02
+ * Added Meltdown's weapon breaking ability [AppleGirl]
+ * Added GM level in front of each line to display only enable GM command of the help.txt. [Yor]
+ * Removed message about limited time if your have unlimited account (that was for tests. sorry). [Yor]
+ * Set day/night messages in msg_athena.conf (for foreign people). [Yor]
+ * Added a function to return a string of msg_table outside of at_command. [Yor]
+ * Fixed clean database at disconnect when session is not auth. [Yor]
+ * Fixed a bug (but not solve the bug - need more research to found where solve it) in map_id2sd function. [Yor]
+ * Set initialisation of ignore list after authentification (not need to be done before) [Yor]
+ * Reduced size of packet 0x2afe (removed not used value) [Yor]
+ * Improve first auth part (wanttoconnect) [Yor]
+ * Added TODO 35 [Yor]
+ * Made a few adjustments to Archer based class skills making more like normal classes instead of Uber Classes. [AppleGirl]
+ * Updated the weapon and armor breaking to be more like official RO adding status icons and so on. [AppleGirl]
+ * Updated a few skills based off a few sites, also fixed other skills that were coded incorrectly. [AppleGirl]
+ * Fixed double connection with same account [Yor]
+ - disconnect immediatly
+ - no enter in database (block or others)
+ - no creation of session
+ - no more need to have 'new_fd'
+ -> less memory usage, less tests
+ * Removed 'other_fd' not used [Yor]
+
+09/01
+ * Fixed Rainbow Egg quest in quests_lutie NPC [PoW]
+ * Added packet length for client server-side friend list, if they choose add the client will not disconnect. [Valaris]
+ Need to figure out the rest of the packets, then can implement.
+ * Added server-side friend list 'add' send packet info to packet documentation. [Valaris]
+ * Fixed: in chrif_authreq, don't send a request to char server if session is not found [Yor]
+ * Fixed: amatsu.txt, when Carter Moores say: remove 10000 zeny, he removes them now! [Yor]
+ * Removed an unknown item in shops.txt [Yor]
+ * Fixed 3 goto in father - acolyte.txt [Yor]
+ * Fixed bug with colors of 5 numbers/digits (warp to city instead of display with color) - wizard.txt [Yor]
+ * Reduce size of mage.txt and fix a text in mes (no bug) [Yor]
+ * Fixed thief.txt script (error on a goto) [Yor]
+ * Fixed account length (WFIFOL(fd,2) instead of WFIFOW(fd,2)) when char-srv doesn't auth an account for map-srv (0x2afe packet) [Yor]
+ * Added @job and @charjobchange to be similar with @charjob and @jobchange [Yor]
+
+08/31
+ * Fixed messages of @(char)jobchange GM commands. [Yor]
+ * Fixed a return value of jobchange function (pc.c). [Yor]
+ * Added coredumps by system when crash. [Yor] - thanks MagicalTux
+
+08/30
+ * Added some comments on gravity commands. [Yor]
+ * Improved /mm, /monster and /item to have some answers. [Yor]
+ * Modified skill_cast_db and skill.c to allow for status effect chance of wizard skills
+ (stun for WZ_METEOR and blind for WZ_VERMILLION) [moonsoul]
+ * Modified skill_cast_db and skill_db to properly reflect cast params and delay times for assassin cross
+ skills Create Deadly Poison(407) and Soul Breaker(379) [moonsoul]
+ * Added damage calcs to battle.c for Assassin Cross skill Soul Breaker(379) [moonsoul]
+
+08/29
+ * Modified skill_require_db to reflect item requirements for assassin cross skills Create Deadly Poison(407)
+ and Enchant Deadly Poison(378) [moonsoul]
+ * Added @charmountpeco/@charpetrename/@charquestskill/@charlostskill GM commands. [Yor]
+ * Added noicewall.txt to map_athena.conf (commented out), noicewall flag [Valaris]
+ will not function when pvp is enabled on map.
+ * Added noicewall flag, noicewall.txt. [Valaris]
+ * Added wiz's temp fix for higher skill ids and skillnodex db. [Valaris]
+ * Added: Usage of At command when failed (100%).
+ * Modified: try to have samme presentation for all at-command code (100%).
+ * Improved/fixed some GM commands [Yor]
+ * Added some 'usages' in some GM commands [Yor]
+ * Added baby classes to equipment codes, they will equip the same as their normal and advanced counter-parts. [Valaris]
+ * Improved some GM commands [Yor]
+ - Added in @(char)baselvlup/@(char)joblevelup GM command:
+ When there are some status/skill points available and we reduce level -> remove points.
+ - Added counter in @statsall GM command.
+ - Fixed in @charsave GM command when map doesn't exist.
+ - Fixed @charbaselvl GM command overflow
+ - Fixed skill value (and crash) in @questskill/@lostskill GM command
+ - Fixed number of spiritballs (@spiritball GM command)
+ * Fixed random PvP crash bug [Lupus]
+
+08/28
+ * Improved some GM commands [Yor]
+ - Added memo points in @go GM commmand.
+ - Added negativ value for @heal GM command.
+ - Fixed @(6stat-adjustement) GM commands overflow.
+ - Simplified @Statall GM commands.
+ - Fixed @guildlvup GM commands.
+
+08/27
+ * Fixed @(char)zeny/stpoint/skpoint GM commands (no more overflow, etc...) [Yor]
+ * Improved @memo GM command: [Yor]
+ You can memo anywhere (it's GM command, not /memo command like for any player).
+ Without value, display actual memo points.
+ * Improved @refine GM command: you can reduce refinement. [Yor]
+ * Fixed @broadcast GM command send broadcast to all Map-servers. [Yor]
+ * Fixed @(char)base/joblevelup command (any adjustement can be entered). [Yor]
+
+08/26
+ * In at_command.c: [Yor]
+ Fixed: initialisation of all strings.
+ Added: Usage of At command when failed (75%).
+ Modified: try to have samme presentation for all at-command code (75%).
+ * Made it so that the pvp_nightmaredrop mapflag would work even without pvp being enabled, now works any time it is set. [Ancyker]
+ * Added level check on /item and /monster. GM level must be >= both @monster and @item [Valaris]
+ level specifications (both since they share the same packet)
+ * Added my own extream mode map flags (disabled by default), makes players drop items at random everywhere (except towns). Full details in map_athena.conf. [Ancyker]
+
+08/25
+ * Added: display usage when GM command failed (some GM commands) [Yor]
+ * Added @email GM command to change your account e-mail [Yor]
+
+08/24
+ * Modified changesex script command use same function as @charchangesex now [Yor]
+ * Added @charchangesex GM command can be used on offline players [Yor]
+ * Added gm ladmin command to change GM level of an account [Yor]
+
+08/23
+ * Fixed some at_command messages: [yor]
+ - remove all unused messages
+ - create commented line of all messages in msg_athena.conf to have english, and under, translation if necessary
+ - add some (arround 80, but not all) messages in msg_athena.conf
+
+08/22
+ * Fixed: In GM commands, add a 'standard' message when GM level is too low [Yor]
+ * Changed in battle_athena.conf [Yor]
+ - atcommand_spawn_quantity_limit: 100 (20 is too short for mass spawnings.)
+ - unknow: give translation of babelfish to help on the explanation (not writing: 'unknow' to not lost the information!)
+ - day_duration: 7200000 & night_duration: 1800000 (set default to 30 min night, 2 hours day to show improvement of eathena by DEFAULT)
+
+08/21
+ * Updated battle_athena.conf to be in English (not Engrish) [Ancyker]
+ * Updated WZ_FIREPILLAR according 8-10 patch [AppleGirl]
+ * Updated skill_cast_db and skill_require_db according to 8-10 kRO patch [AppleGirl]
+ * Added how to use skill_castnodex_db.txt [AppleGirl]
+ * Added skill_castnodex_db.txt, allowing some skills to be casted with out dex's effect on them
+ Midas' idea [AppleGirl]
+ * Improved answer messages of char-server on @(un)ban/@(un)block GM commands [Yor]
+ * Added answer messages of char-server on @(un)ban/@(un)block GM commands [Yor]
+ * Added block command (ladmin c) [Yor]
+ * Added block command (ladmin perl) [Yor]
+ * Fixed job_db1.txt comments to be in english, also spaced the columns to make it easier to read. [Ancyker]
+ * Added: possibility to use "" or '' to give an account name in ladmin (Perl) (no more problem with account name which have spaces). [Yor]
+ * Changed: atcommand_gm_only is set to 'no' by default, because: [Yor]
+ - GM commands level now works correctly
+ - GM commands levels are now set by default with diffrent types of GM
+ * Added @inall/@exall GM command to block/unblock ALL wispers of a player [Yor]
+
+08/20
+ * Added unblock command (ladmin C) [Yor]
+ * Added unblock command (ladmin perl) [Yor]
+ * Fixed: when limited time is in past, add new duration starts from actual time [Yor]
+ * Added chardisguise/charundisguise [Kalaspuff]
+ * Added default time [23:59:59] for timeset/banset ladmin (C) commands [Yor]
+ * Fixed sage rebirth ability at professor job change NPC. [PoW]
+ * Fixed pecopeco knight/crusader rebirth ability at LordKnight and Paladin job change NPCs. [PoW]
+ * Added default time [23:59:59] for timeset/banset ladmin (perl) commands [Yor]
+ * Added a check_ip_flag option in char-server [Yor]
+ * Added a check_ip_flag option in login-server [Yor]
+ * Added a display at start of login-server about IP checking configuration. [Yor]
+
+08/19
+ * Added unban/unbanish command (ladmin c) [Yor]
+ * Added unban/unbanish command (ladmin perl) [Yor]
+ * Added parameter to choose how works timeadd (ladmin command) with unlimited time accounts [Yor]
+ * Fixed @option/@charoption when player is disguised. [Yor]
+ * Added: some information about TODO 19. [Yor]
+ * Added: possibility to use "" or '' to give an account name in ladmin (C) (no more problem with account name which have spaces). [Yor]
+
+08/18
+ * Guardians were immune to skills/spells, fixed. [Valaris]
+ * Added custom draculax.txt script to display npcskilleffect command. [Valaris]
+ * Added npc/events/custom folder. [Valaris]
+ * Fixed Umbala Language Quest NPC bug [PoW]
+ * Added temporary prevention of crash caused by peco + disguise, will look into a better solution. [Valaris]
+ * Changed working of putting disguise on (much like Yor's setpos with undisguise) [Valaris]
+ * Changed disguise id check to > 23 instead of max_pc_class. [Valaris]
+ * Added bDisguise script command for items. [Valaris]
+ Syntax : bonus bDisguise,npc_id/mob_id; Example bonus bDisguise,1002; for poring disguise
+ * Added flag so @disguise command will override any disguise scripts. [Valaris]
+ * Updated @disguise description in help.txt. [Valaris]
+ * Added: @ignorelist/@charignorelist to know from which people a player ignore wisps [Yor]
+ * Renamed: @makepet -> @makeegg (@makepet will be created later to create pet, not a egg) [Yor]
+ * Fixed Phantom of Opera quest, fixed quests_aldebaren requirements [PoW]
+ * Changed: anti-freeze disconnection in char-server set from 1mn 15s to 30s [Yor]
+ * Fixed: free block memory on NULL pointer in char-server do_final [Yor]
+ * Fixed: reset server information when map-server disconnected from char-server [Yor]
+ * Changed: anti-freeze disconnection in login-server set from 1mn 15s to 30s [Yor]
+ * Improved pecopeco checks in @option/@charoption/@jobchange/@charjob [Yor]
+
+08/17
+ * Fixed pecopeco displayings in @option/@charoption/@jobchange/@charjob [Yor]
+ * Correction of @rura, @where, @rurap and some other things in GM commands. [Yor]
+ * Correction of a parameters' errors in GM commands. [Yor]
+ * Correction of @charzeny Gm command (+ @zeny/@charzeny can add and remove zeny without problem). [Yor]
+ * Acolyte Job Quest: Fixed Marthilda, Yosuke NPC bugs. [Lupus]
+ * Added some comments in .conf about @gm [Yor]
+ * Fixed max value of level_new_gm parameter (not 100, but 99) [Yor]
+ * Added level_new_gm parameter in login-server to disable or set level of all GM created by @gm [Yor]
+ * Fixed @GM GM command [Yor]
+
+08/16
+ * Translation of final message of @gm [Yor]
+ * Fixed on @GM: When login server is offline, char server sends impossible to create GM [Yor]
+ * Fixed: refuse @gm GM command to ... a GM :) [Yor]
+ * Added complete answers of /in /ex /inall /exall. [Yor]
+ * Added option to send information to online GM when there is a hack, a spoof name, etc. [Yor]
+ * Added individual ignore management, and wisp checks [Yor]
+ * Added TODO 33 [Yor]
+ * Fixed possible overflow with @ban GM command [Yor]
+ * Speed up a little @ban GM command [Yor]
+ * Added ignore all for wisps (to same map-server). Sorry, before, I was added only for not same map-server [Yor]
+
+08/15
+ * Added a resume for 'email_creation' parameter [Yor]
+ * Fixed double messages when a player wisp/page itself [Yor]
+ * Added ignore all for wisps [Yor]
+ * Added better explanation for the new 'email_creation' parameter [Yor]
+ * Fixed: now, GM accounts are sended to all servers when auto-detect change of GM file is actived [Yor]
+ * Fixed: at auto-creation of e-mail, don't ask the player if login-server is offline (we need login-server to save e-mail) [Yor]
+ * Used config_switch instead of atoi for email_creation parameter [Yor]
+ * Added an option to create e-mail at connection with client [Yor]
+ * Added authentification with login_id2 (1040) - activated by default [Yor]
+ * Added partial part of authentification with login_id2 (1040) [Yor]
+ * Added some missing GM commands in help.txt [Yor]
+ * Improved search of map-server when map is not found [Yor]
+ * Added banish in ladmin (c) to be like of GM commands [Yor]
+ * Fixed Angel Helm quest, fixed Spore Doll quest exploit, Fixed Morgenstein quest bug [Lupus]
+
+08/14
+ * Added banish in ladmin (perl) to be like of GM commands [Yor]
+ * Fixed some possible errors with maps management in char-server [Yor]
+ * Fixed bug of map searching when to few maps on map-servers [Yor]
+ * Changed some console displayings in char-server [Yor]
+ * By default, activation of player ip check [Yor]
+ * Added some of 1040: check of player ip between each server [Yor]
+ * Fixed dupes in warp scripts, reorganized, thanks to midas fro GH warp [kobra_k88]
+ * Added possibility to disable automatic reload of GM accounts file [Yor]
+ * Added log when GM accounts file can not be readed [Yor]
+ * Changed default of GM accounts file check for 120 sec to 15 sec [Yor]
+ * Added automatic reload of GM accounts file if it was modified [Yor]
+ * Added @mapmove, @broadcast, and @localbroadcast in help.txt [Yor]
+ * Fixed possible error of monster id (GM command) if monster begins by a number. [Yor]
+ * Added jobname in @charstats command. [Yor]
+ * Fixed: If a GM command uses NULL pointer as command function, there is no more crash. [Yor]
+ * Fixed Niflheim&Umbala guides. Fixed Niflheim city. removed 2 NPC clones. [Lupus]
+ * Added Archer Skills quests, fixed Thief Skill Quest [kobra_k88]
+
+08/13
+ * Add an option to fix a ban for hacker that spoof name (to set minutes of ban) [Yor]
+ * Fixed incorrect mob IDs with Valaris's mob_db [Ancyker]
+ * Added possibility to execute GM commands when you wisp someone [Yor]
+ * Added a console message when a player try to spoof his name in Global message [Yor]
+ * Added size of packet in packet send by map-srvr to char-srvr about online players [Yor]
+ * Added check on individual stat at creation of a character [Yor]
+ * Added npcskilleffect script command. Will allow npc to show effects of certain skills on specified XY coordinate.
+ Syntax : npcskilleffect 21,10,148,150; skillid, skilllv, x, y. [Valaris]
+ * Increase maximum weight can be used with an item now, thanks to orn. [Valaris]
+ * Fixed mob names in Gonryun , thanks to unsul and Filougarou. [Valaris]
+ * Fixed muramasa curse rate, thanks to OxiMoron. [Valaris]
+ * Fixed Aldeabran&Comodo towns. Added Cheese quest to Comodo. Fixed Thief Job Quest [kobra_k88]
+
+08/12
+ * Begin to add 1040 in login/char/chrif about authentification. not finished [Yor]
+ * @mapmove, @broadcast, and @localbroadcast can now be used. [Valaris]
+ * Looting mobs will not continue to item if it disappears, instead will walk away. [Valaris]
+ * Unitinalized nameid in script.c [Valaris]
+ * Added position in log when unknown packets are saved (login-server). [Yor]
+ * Corrected possible error to contact not good player when a wisp concerns player on an other map-server. [Yor]
+ * Added a function to obtain character name with index in auth structure (char.c). [Yor]
+ * Corrected check/test error in mapif_send. [Yor]
+
+08/11
+ * itemdb_searchname fixed (now firstly looks for item aliases 'name', if not found looks for item name 'jname'). [Lupus]
+ * Optimized getitem, delitem. getweight, fixed there possible scripts exploits [Lupus]
+ * Thief bug's long name in mob_db.txt was Thief Bug Larva, fixed. [Valaris]
+ * Thief bug names were mixed around in monster.txt, fixed. [Valaris]
+ * Fixed incorrect parse of usable item rate. [Valaris]
+ * Added ban command in ladmin (C), like GM command [Yor]
+ * Terminated some translations about wisp/page, and control/improvement/correction of wisp/page. All 'found' bugs are corrected [Yor]
+ * Added translations in inter.c about wisp/page. [Yor]
+ * Corrected printf datas in intif_parse_WisMessage when map-srv receives wisp message from inter-srv. [Yor]
+ * Sended an answer when a wisp/page is supressed because of a timeout. [Yor]
+ * Improved: if inter-srv is asked for a wisp, verify first if the character exists. Don't ask all map-server if it not exists. [Yor]
+ * Changed Printf in intif_wis_message to have better information. [Yor]
+ * Improved: Don't ask inter-server for a whisp/page if player is on the same map-server. [Yor]
+ * Completed some printf and comments in char.c [Yor]
+
+08/10
+ * Improved map_nick2sd function. Now, sensitiv case is removed when it's possible [Yor]
+ * Corrected split of broadcast messages in char-server [Yor]
+ * Message to Valaris from Yor (special file)
+ * Improved accounts file saving: [Yor]
+ - be sure that accounts file is save at least every minute.
+ - save accounts file at end of login-server
+ * Reduce displaying size on some errors about accounts file reading. [Yor]
+ * Created log when change sex packet give an invalid value (login-server) [Yor]
+ * Correction of unknow_packet displaying (in log). Separate is done after 8th char [Yor]
+ * Give possibility to use account name with spaces in prompt commands finished by account name in ladmin (perl). [Yor]
+
+08/09
+ * Fixed char-server lag. 3 tests from 3 people appeared to function properly again. [Valaris]
+ * Basic Implementation of Basilica [AppleGirl]
+ * Added ban command (ladmin perl) [Yor]
+ * Correction of bug about auth_fifo when we block a player. Invalid value in array (login.c) [Yor]
+ * Correction of some tests on server_fd array in login.c [Yor]
+ * Improved Item_searching in all GM commands [Yor]
+ * Created @undisguise GM command [Yor]
+ * Added Umbala town&quests&guide. Some fixes in Yuno warps&shops&guides. Kafra fix. Added Valhallen quest. [kobra_k88],[Lupus]
+ * Corrected char_divorce (char-server) to remove ring to both partner [Yor]
+ * Eventual crashfix for clif_authfail_fd [Kalaspuff]
+ * Corrected @jump GM command. [Yor]
+ * Reduced size of conf/help.txt (max 200 lines in chat window). [Yor]
+
+08/08
+ * Added NPCs to @disguise. [Valaris]
+ * Mob disguises will now show up to player using it as well. Attack animation and sitting do show up to them yet. [Valaris]
+ * Added @disguise GM command in help files [Yor]
+ * Added @go 16 to visit prisoners [Yor]
+ * Reduced number of accounts file saving when informations are not important: [Yor]
+ - save immediatly any modification/creation/deletion of account (like before)
+ - use counter before saving if only ip/time of last connection is changed (normal authentification)
+ because these values are already save in log file.
+ * Speed up account searching in login-server. [Yor]
+ * Speed up character searching for @(un)block/@(un)ban. [Yor]
+ * Created @unjail/@discharge GM command. [Yor]
+ * According to GM definition level in at_command.conf, set level 20 to online_gm_display_min_level for online files. [Yor]
+ * Speed up some sortings of online creation (strings based sortings) [Yor]
+ * Fixed nullpointer crash with disguise in clif_changelook [Kalaspuff]
+
+08/07
+ * Fixed so spells will still be cast if target walks out of range. (please don't overwrite this again) [Valaris]
+ * Corrected a little error in online files creation (only 1 player was visible) [Yor]
+ * Optimized memory management of online list [Yor]
+ - less memory usage
+ - less tests and loops (more speed)
+ - more efficient (use directly char_dat position instead of search it)
+ * Added Official Assassin Job Quest. Now eAthena contains all 2-1 Job Quests! [kobra_k88]
+ * Fixed scripts: 32hats, warper2, platinum_skills, added/changed some mapflags and other misc script changes [Lupus]
+ * Added @disguise command (enter a mob_id or name, and you will appear to others as that mob/npc!)
+ * Fixed code for mob disguises, should not crash clients now.
+ * Improved online management code when we receive char_id. [Yor]
+ * Added code for mob disguises. Can not set yet. Atcommand needs created. [Valaris]
+ * Improved mmo_char_send006b function [Yor]
+ * Corrected: when save file of character can not be created, try backup file if flag is set to create it. [Yor]
+ * Added an option to create backup of characters file [Yor]
+ The backup_txt file was created because char deletion bug existed.
+ Now this bug is corrected and no character disappear.
+ But, create a file with a lot of characters can use CPU usage and decrease hard disk speed.
+ So, I create an option with default value: no create backup.
+ * Improved online management code and some others little codes (char.c). [Yor]
+ * Respawn points of prisoners set to the jail rooms. Jail.txt mapflag addeed. So imprisoned players can't escape. [Lupus]
+
+08/06
+ * Improved/Optimized some little code (char.c/login.c). [Yor]
+ * Improved 0x2afa and 0x2afb (map transmissions between char and map). [Yor]
+ * Optimized global message nick spoof fix. [Valaris]
+ * Fixed crash in attacking guardians in a null guild. [Valaris]
+ * Capped earned exp at 1000000000. [Valaris]
+ * Set area size back to 20 for now, some things in path.c need to be fixed. [Valaris]
+ * Fixed crash in guardian search. [Valaris]
+
+08/05
+ * Added @jail <char_name> GM command [Yor]
+ * Added explanation of @idsearch and @mapinfo in help.txt [Yor]
+ * Improved @idsearch GM command [Yor]
+ * Improved a little 3 loops in ladmin.c [Yor]
+ * Improve some codes in char.c: [Yor]
+ - less tests in online creation
+ - mmo_char_send006b: remove duplicated memset, create a char_dat structure pointer
+ - server_fd[] not seted/modified/checked correctly
+ * Set max_walk_path back to 48. [Valaris]
+ * Added translated Gonryun town. Fixed map names of Louyang shops. Added missing Blacksmith,
+ added extra Rapairmen into refine.txt. In Inns added 4 different prices based on Base Lvl.[kobra_k88]
+
+---------eAthena 1.0.0 RC3 TXT---------
+08/04
+ * Set battle_athena.conf to more accurate settings. [Valaris]
+ * Decreased default damage delay (stun after being hit) by 75%. [Valaris]
+ * Max walk path is now correct (17). [Valaris]
+ * Area size is now correct (14). [Valaris]
+ * Improved some very little codes in char.c. [Yor]
+ * Remove displayings of logs on console of map-server [Yor]
+ use it for DEBUG, not by default, that decrease a lot the performance
+ * Added (commented) printf in freeze function for debug if necessary [Yor]
+ * Fixed melee ctrl-attack targetting. [Valaris]
+ * Reset attack target when equipping arrows. [Valaris]
+ * Improved (log and remove_control_chars functions). [Yor]
+ * Added 'available free bytes' in displaying when size is expanded. [Yor]
+ * Fixed incorrect returns in clif_authok. [Valaris]
+ * Added pointer checks to chrif.c [Valaris]
+ * Added some pointer checks to the mob ai. [Valaris]
+ * New (lag-free) fix for NPCs / mobs not showing up when chars walk around [Kalaspuff]
+
+08/03
+ * Made so if exp given is less than 0, 0 is given instead of 1 (plants were giving exp) [Valaris]
+ * Added console displaying to have complete informations when we expand Wdata session. [Yor]
+ * IMPORTANT: Add a TODO 31 for Guilds' coders. [Yor]
+ * Old packet 0x2b16 use packet number 0x2b0e. [Yor]
+ * remove packets 0x2b0e and 0x2b0f. [Yor]
+ * on character_name ask packet: add account_id of asker. [Yor]
+ * Improved script code in novice.txt. [Yor]
+ * Fixed error in alberta.txt. [Valaris]
+ * Allow player placement on afm-type maps. [Valaris]
+ * Added afm loading. [Valaris]
+ * Removed useless code for mob equipment. [Valaris]
+ * Initial packet setup for possible playable mobs. [Valaris]
+ * Added check for save_clothcolor for the dyefix, and added another check to make sure player is dyed before using the fix. [Valaris]
+ * Improvement: Character asking of map-server to char-server is not more case sensitive. [Yor]
+ * Added TODO 29 & 30. [Yor]
+
+08/02
+ * Re-added "player not attached" error reporting. [Valaris]
+ * Fixed errors in 32 hat quest that was causing player not attached errors. [Valaris]
+ * Fixed input number function: commented out negative input check by Valaris in script.c (all scripts have been revised and fixed),
+ made actual bug fix of buildin_input func (wrong variable type conversion (int)->(unsigned int) in clif.c
+ Due to the fixed bug Merchant Job Quest works fine now [Lupus]
+ * Fixed number input bugs/possible exploits: mage.txt IceCream.txt event_valentine.txt refine.txt
+ milk_trader.txt grandpa_pharmacist.txt aldebaran.txt alberta.txt juice_maker.txt [Lupus]
+ * Finished: offline player can be @ban/@block/@unban/@unblock by their character name. [Yor]
+ * Added packet between map to char to work on offline players (@ban/@block/@unban/@unblock) [Yor]
+ * Added check on character name with less than 4 characters [Yor]
+ * Added @chardelitem GM command [Yor]
+ * Fixed Kafras (no more buttonless msg bugs, Kafra Pass works fine) [Lupus]
+ * Changed input exploit, only checks for negative now instead of having an input cap. Fixed up vending exploit. [Valaris]
+ * Added check for src with High Wizard's soul drain. [Valaris]
+ * Fixed up npc_suicide and npc_selfdestruction, should fix up crashes caused by them. [Valaris]
+ * Added more pointer checks in the clif_authok function. [Valaris]
+ * Added some pointer checks to clif.c, should prevent crashes. [Valaris]
+ * Added some checks about writing errors of item names in GM commands (check cases). [Yor]
+ * Fixed Hunter Job Quest 1.6 [Lupus]
+ * Removed Kalaspuff's fix for mob/npc data not always being recieved. It was causing
+ excessive amounts of lag. [Valaris]
+
+08/01
+ * Added ability to spawn character pets. [Valaris]
+ * Added show_mob_hp. [Valaris]
+ * @item/@item2 GM commands now work correctly with name begining by a number. [Yor]
+ * @spawn/@monster2 GM commands authorise spawn of guardians. [Yor]
+ * Fixed so guardians may be spawned outside of castles. [Valaris]
+ * Fixed/Improved @spawn/@monster2 GM command. [Yor]
+ @spawn/@monster2 GM command: you can use space in the desired name now (use "") [Yor]
+ * Added TODO 26 and 27. [Yor]
+ * Guardians if owned by a guild will display guild name and castle on name request. [Valaris]
+ * Added checks for null blocks in mapforeachin functions. [Valaris]
+ * Addition of a GM level 99 account for test of GM commands. [Yor]
+ * Creation of a default structure for GM levels (sub-gm, gm, admin, etc.). [Yor]
+ * Improved @time GM command (better code and display more informations). [Yor]
+ * Added informations about game time in @time command [Yor]
+ * Added @time command to have server time [Yor]
+ * Fix night at start if administrator want night and there is no duration for night and day [Yor]
+ * Fix for NPCs / mobs not showing up when chars walk around [Kalaspuff]
+ * Begin @unban/@unblock GM command (structure done). [Yor]
+ * It's now possible to disable Night or Day (set to 0 in battle.conf). [Yor]
+ * @day/@night: when already the desired cycle, display a message. [Yor]
+ * Fixed overlapping Ice-Cream Maker NPC, duplicated NPCs, restored duplicated Akaru's MrSmile [Lupus]
+
+07/31
+ * Terminated: night/day cycles. [Yor]
+ * When a state comes back to normal, player stay in night if it's night. [Yor]
+ * Started to add management of day/night: [Yor]
+ creation of 3 parameters in battle.conf
+ TODO: usage of these parameters (later).
+ * added line '// $Id: Changelog.txt,v 1.65 2004/09/29 17:31:42 kalaspuff Exp $' in all code source files to avoid overwrite in CVS. [Yor]
+ * Fixed number/quantity in @item command. [Yor]
+ * Fixed when night and disconnect/reconnect, it's night. [Yor]
+ * Removed extension to check a map in char.c (less tests). [Yor]
+ * Added savepoint coordonates (x,y) if player is set to a new map (char.c). [Yor]
+ * Added izlude to check major cities. [Yor]
+ * Began adding developer mobs. [Valaris]
+ * Added dyes and fixed client crashes with player mobs. [Valaris]
+
+07/30
+ * Added temp fix for "nullpo player not attached" error message (script.c script_rid2sd) [Lupus]
+ * Added checks for major cities in afm format. [Valaris]
+ * Added preliminary AFM(Advanced Fusion Map) support. Actual map-reading works, but rest of server needs to recognize them.
+ Thanks to alexkreuz [Valaris]
+ * Changed Map and NPC loading display. [Valaris]
+ * Removed unneeded 'End' and duplicate 'end' script commands. [Valaris]
+ * Added 'language <language>' command in ladmin (perl) to change language of displaying. [Yor]
+ * Fixed atcommand_gm_only parameter: [Yor]
+ 0: you can define level command '0' for normal players (gm level 0)
+ 1: even you define a level 0 for a command, normal player can not use it. Only GM level 1 or more can use command (if command level is possible for this GM)
+ Note: This parameter is not like atcommand_for_all (this parameter doesn't exist actually) .
+ * Fixed Kafras (Cart Service for Super Novice), some warps in Morroc, Aldebaran. [Lupus]
+ Added official shop into St.Abbey. [Lupus]
+ Added quests: Lutie Town Hat Quest by TonyMan, 23 new hats custom quest. [Lupus]
+ Fixed jobchange.txt. [Lupus]
+ Improved pvp.txt. [Lupus]
+ Rearranged and updated! (now in 2 variants) mapflags. [Lupus]
+ Updated map_athena.conf [Lupus]
+ * Fixed: battle_athena config's atcommand_gm_only; yes was no and vice versa [Kalaspuff]
+
+07/29
+ * Added 'language <language>' command in ladmin.c to change language of displaying. [Yor]
+ * Re-added guardians don't attack guild members, someone must have removed it by accident. [Valaris]
+ * Restore correct displaying (LAN/WAN) previous was good :) (sorry... prabably tiredness). [Yor]
+ * Fixed some errors in novice.txt script. [Yor]
+ * Kashy's script fixes. [Valaris]
+ * Displaying of correct information in LAN/WAN test (displaying was reversed) in char.c [Yor]
+ * Creation of a char_unblocked directory (char directory is blocked) [Yor]
+ - modification of makefile
+ * Added a note in TODO 14: encrypted password - problem with client versions [Yor]
+
+---------eAthena 1.0.0 RC2 TXT---------
+07/28
+ * Added metaller to equipped mobs. [Valaris]
+ * Added a note in TODO 19 [Yor]
+ * REMOVED last changelog: cvs server: [14:29:29] waiting for cvs's lock in /usr/cvsroot/athena/src/char [Yor]
+ * Displaying of correct information in LAN/WAN test (displaying was reversed) in char.c [Yor]
+ * Added "OMG" emotion to weapon/armor breaking. [Valaris]
+ * Removed space in a pointer in mob.c. [Valaris]
+ * Restored previous version of lan management in login.c, because: [Yor]
+ - check test was incorrect (no mask for controled ip).
+ - in check test, we recalculate every time the subnetwork (loss of time).
+ - impossible to have a name definition for the sub-network (some network administrator use a name to define the sub-network).
+ - no more default configuration of sub-network.
+ - possible errors in the reading function of the lan file.
+ - no more logs about sub-network.
+ - BUT, conserved: - new default name for lan file
+ - color for displaying of LAN/WAN
+ * Removed some memsets from chrif.c that caused segfaults. [Valaris]
+ * Added fix for anklesnare and spiderweb. [Valaris]
+ * Added Kashy's Lan Support code. [Valaris]
+ * Removed variables and assignment used by prevent_multi_login. [Valaris]
+ * Removed prevent_multi_login. (many problems reported with it) [Valaris]
+ * Fixed armor breaking. Was being broken when pc was attacking instead of when being attacked. [Valaris]
+ * Fixed checkcart, checkfalcon, checkriding (they didn't return any value) in script.c [Lupus]
+ * Fixed breeder.txt renter.npc, kafras NPC (added correct class check, added correct checkcart, checkfalcon, checkriding) [Lupus]
+ * Fixed Kafra functions_kafras.txt NPC (added correct checkcart, fixed cmall cart giving bug) [Lupus]
+ * Fixed Kafra functions_kafras.txt NPC (fixed Kafra Pass exploit) [Kobra_k88]
+ * Fixed Hunter.txt coords of the Guild entrance warp [Lupus]
+
+07/27
+ * Improved check command in ladmin.c [Yor]
+ * Added map_id check in map_foreachinarea, to prevent eventual crashes [Kalaspuff]
+ * Added @enablenpc and @disablenpc in help files [Yor]
+ * Fixed Thunder Storm range (thanks midas) [Kalaspuff]
+ * Added Anthell NPC trigger in Morroc.txt warps/town [Lupus]
+ * Added missing Warps for Job Quests of Swordman, Hunter and Thief in jobquests.txt [Lupus]
+ * Updated atcommand_conf, missing GM-level for @enablenpc and @disablenpc [Yor]
+ * Removed possible overflow error in @enablenpc and @disablenpc [Yor]
+ * Updated atcommand_conf, missing GM-level for haircolor [Kalaspuff]
+ * Improved best job test in novice.txt [Yor]
+ * Improved @go command: [Yor]
+ - give list of cities if no value
+ - added start point (to welcome newbies)
+ - give possibilities to use city names (@go geffen): at least 3 characters, and some writing errors are tested
+ * Replaced every Job Quest Script (excluding Assassin, 2-2 and 2-2-X ). Now all 2-1 Jobs have big quests. [Kobra_k88]
+ * Replaced all Skill Quests (Added Sand Attack Skill Quest). [Kobra_k88]
+ * Added Legendary Swords quest. [Kobra_k88]
+ * Replaced 6 towns with new scripts: Izlude, Prontera, Morocc, Geffen, Alberta, Al De Baran. Splitted all towns quests into files. [Kobra_k88]
+ * Splitted and optimized Kafras & Guides. [Kobra_k88]
+ * Implemented Kafra Pass! [Kobra_k88]
+ * Removed free Breeders (replaced by the correct ones). [Kobra_k88]
+ * Placed all Sign Posts/Signs into a single file. [Lupus]
+ * Files arrangement, additional warps/scripts correction. Fixed several scripts (NPC overlapping, bad sprites, etc). [Lupus]
+
+07/26
+ * More accurate pvp point system. It skips ranks, needs more work. [Valaris]
+ * Fixed crash in executioner card code. [Valaris]
+ * Fixed mob respawn after death bug. [Valaris]
+ * Fixed exp problem caused by bounds checking. [Valaris]
+ * Fixed pvp rank so only one person may be rank 1. [Valaris]
+ * Any time a person is on a pvp map, the rank will calculate, preventing bad rank packets from being sent. [Valaris]
+ * Added Job Agencies for Training Ground (novice.txt). [Yor]
+ * PVP respawn client crash fix. [Valaris]
+ * Fixed small error in kafra.txt [Syrus22]
+ * Finished adding special equipped mobs. [Valaris]
+ * Added 2 living statues behind the NPC 'Monster Master'. [Yor]
+ * Removed infinite possibilities to have items from helper (novice.txt, new_1-4.gat,60,149). [Yor]
+ * Added 2 living statues behind the NPC 'Monster Expert'. [Yor]
+ * Improved a little 1st course of novice training. [Yor]
+
+07/25
+ * Allow mobs to be equipped with pet armor. mob_avail and clone mobs need to be created. [Valaris]
+ * Removed [AppleGirl]'s armor breaking code. [Valaris]
+ * Commented out data_dir. [Valaris]
+ * Finished exp bounds checking. [valaris]
+ * Added negative value checks to clif_updatestatus. [Valaris]
+ * Added exp bounds checking for those rediculously high rate servers. [Valaris]
+ * Added bounds checking to the @zeny and @charzeny commands. [Valaris]
+ * Improved and corrected some errors 1st course of novice training. [Yor]
+ * Removed no guild check for Guardians. Guardians SHOULD attack people with no guild. [Syrus22]
+ * Fixed Alliance check in mob.c [Syrus22]
+ * Added armor breaking to normal battle (crits will double the chance) [Valaris]
+ * Fixed mistake in map.c causing compile errors. [Syrus22]
+ * Fixed backstab bow penalty option. [Syrus22]
+ * Fixed Alliance check in battle.c for emp/guardian damage. [Syrus22]
+
+07/24
+ * Added backstab bow penalty option [Akaru]
+ * Fixed OnGuardianDied events on prontera castles 3 to 5. [Valaris]
+ * Another vending fix. [Valaris]
+ * Fixed bugs in npc headers caused by someone using spaces and not tabs. (kafra.txt, guide.txt, yuno.txt) [Valaris]
+ * Fixed a vending bug. [Valaris]
+
+---------eAthena 1.0.0 RC1 TXT---------
+07/22
+ * Fixed numerous startup errors in aldebaron castles and one geffen castle. [Valaris]
+ * Full Guild Wars Script Complete!!! [Akaru]
+ * Fixed rice ball item. [Valaris]
+ * Fixed problems with options and peco riding. [Valaris]
+ * Updated item_db with fix for Sleipnir and more translations. [Akaru]
+ * Translated item_violetbox, mob_poring, mob_branch, mob_boss. Fixed wizard.txt (wrong item id), headgeatquest.txt(added Zeny check) [Lupus]
+
+07/21
+ * Updated refine.txt. Added optional features and optimized the file. [Syrus22]
+ * Evened out the # of columns in mob_db, filled in some blanks. [Valaris]
+ * Undid compilation errors caused by Akaru's removal of nullpo.o from map-server compile [Valaris]
+
+07/20
+ * Removed Ghostring from gef_fild13.gat [rg]
+
+07/19
+ * Fixed Graffiti [Valaris]
+ * Zeny Bug In Vending Fixed [Darkchild]
+
+07/18
+ * Added a check about level of at_command when reading the file [Yor]
+ * Updated /help and conf/help.txt [Yor]
+ * Added @nuke command in conf/help.txt [Yor]
+ * More WoE Castles Done [Hikaru]
+ * Changed: inter.txt->inter.log in log directory [Yor]
+ * Added some char_log when character can not be created (invalid value, invalid name, etc...) [Yor]
+ * Changed: char.txt->char.log in log directory [Yor]
+ * Update features.html/changlog.html [Yor]
+ * Fixed compilationissue on FreeBSD [Kalaspuff]
+
+07/16
+ * Remove limit for kami/kamib ladmin command. [Yor]
+ * Fixed crash in weddingtxt.txt where it was checking an invalid equip index. [Valaris]
+ * Added some TODO for next version. [Yor]
+
+07/15
+ * Changed: login.txt->login.log in log directory [Yor]
+ * added system to choice authorised ip for remote administration [Yor]
+ * Added listBan/listOk commands in ladmin's. [Yor]
+ * Speed up a little search_mapserver function. [Yor]
+ * Init map strings of each servers when map-server send informations. [Yor]
+ * Added some TODO for next version. [Yor]
+
+07/14
+ * Fixed another lockup with multi_level_up [Valaris]
+ * Added kami(yellow)/kamib(blue) commands in ladmin (terminated). [Yor]
+ * Fixed name of ladmin_athena.conf. [Yor]
+ * Fixed mvp item reading. [Valaris/Syrus22]
+ * Added new move packet in map (ver.13jully04) [Yor]
+ * Added new auth packet in map (ver.13jully04) [Yor]
+ * Added kami/kamib commands in ladmin. not terminated: to do: login->char [Yor]
+ * Updated Some Npcs [Darkchild]
+ * Added Gefenia Warps [Darkchild]
+ * Added Berzebub Quest [Darkchild]
+ * Removed random alchemist marine sphere code, until some other system is worked out. [Valaris]
+ * Fixed infinite loop caused by turning multi level off. [Valaris]
+ * Added display id the char-server is freezed. [Yor]
+ * Added debug printf about the max_connect_user in char-server. [Yor]
+ * Added banadd command in ladmin.c [Yor]
+ * Removed duplicate check in chrif.c. [Yor]
+
+07/13
+ * Fixed GM_level code in map-server. [Yor]
+ problem is in the hash system of the db -> use simple db until we found solution.
+ note: for this db, it's not necessary to use a db system (little db, 2 values: key, value)
+ * Improved GM_level code in map-srv, but not solve the problem. [Yor]
+ * Fixed error of 'return' without value in chrif_parse (chrif.c). [Yor]
+ * Added character name, account id and gm level on console in map-server when auth is accepted. [Yor]
+ * Added gm_level of the account on console in char-server when auth is accepted. [Yor]
+ * Added gm_level of the account on console in login-server when auth is accepted. [Yor]
+ * Added timeadd command in ladmin.c [Yor]
+ * Added help for each command (help <command>) in ladmin (perl and c). [Yor]
+ * Fixed global message (normal speak) name spoof exploit. [Valaris]
+ * Added timeset command in ladmin.c [Yor]
+ * Added banset command in ladmin.c [Yor]
+ * Added vending and trading dupe fixes, thanks to Kinko and Kazzy [AppleGirl]
+ * Added multi_level_up command to battle_athena and commandline. [Valaris]
+ Turning it off will allow a player to only level up once from a monster.
+ * Added: explanations of ladmin_athena.conf keys in conf_ref.txt. [Yor]
+ * Fixed: init mmo_map_server structure (to 0) in char-server. [Yor]
+ * Added Gefenia Maps [Darkchild]
+ * Added @nuke command do to user request. [Valaris]
+ * Removed nick spoof fix code for now, it broke chat. [Valaris]
+ * Added some code for @nuke command. [Valaris]
+ * Finished adding battle_athena options to command line. Every option in battle_athena.conf
+ can now be passed directly through the command prompt. [Valaris]
+
+07/12
+ * Added many battle_athena options to command line arguments. [Valaris]
+ * Allow battle_config_switch to be used globally in map-server. [Valaris]
+ * Rewrote map-server command-line code. Will now begin implemented nice commands for map-server. [Valaris]
+ * Added BETA version of ladmin in C. [Yor]
+ * Added new packet structure of authentification and move - automatic detection. [Yor]
+ * Added /item command. It is same as /monster. Both commands will search for mobid first, if not found will give item. [Valaris]
+ * Fixed a displaying error in state command (perl ladmin). [Yor]
+ * Added /monster command. Syntax is /monster <name/id>. [Valaris]
+ * Fixed chat spoofing in global messages. [Valaris]
+ * Prevent nick spoofing in whispers. [Valaris]
+ * Added check about lenght of packet 0x72 for new client version [Yor]
+ * Added Pet Equip Items Quest Npc
+ * Added Pet Taming Items Quest Npc
+ * Added Slotted Sunglasses Quest Npc
+ * Added pet_equip_required option for pet skills. [Valaris]
+ * Changed: create a sub-function for help command in ladmin (perl). [Yor]
+
+07/11
+ * Added Petit pet skill. [Valaris]
+ * Added some code for Petite Heaven Drive, still does not work, but doesn't crash. [Valaris]
+ * Fixed dokebi and baby desert wolf pet skills. [Valaris]
+ * Added Orc Warrior, Hunter Fly, Poison Spore, Baby Desert Wolf, Baphomet Jr, and Dokebi pet skills. [Valaris]
+ * Added script command petskillattack.[Valaris]
+ * Fixed search command in ldamin (perl) ignore sensitive case now. [Yor]
+ * Fixed default to 0 for save_unknown_packets configuration in login. [Yor]
+ * Fixed the warnings about implicit declarations. [Kalaspuff]
+ * Added @guildrecall/@partyrecall commands. [Yor]
+ * Added Isis pet skill. [Valaris]
+ * Added petmag script command for magnificat. [Valaris]
+
+07/10
+ * Added Banker NPC because alot of users wanted one. [Syrus22]
+
+07/09
+ * Added Sohee pet skill. [Valaris]
+ * Added petheal command. [Valaris]
+ * Added Smokie pet skill. [Valaris]
+ * Added bonus bPerfectHide for Smokie pet skill. [Valaris]
+ * Added Spore pet skill. [Valaris]
+ * Created petrecovery script command. [Valaris]
+ * Added Poring, Drops, Poporing, and Yoyo loot skills. [Valaris]
+ * Added petloot script command for pet looting. [Valaris]
+ * Removed pet_loot config settings. [Valaris]
+ * If pk_mode is on, a message will show up in map-server. [Valaris]
+ * Fixed pk_mode extra experience and drops so will occur if monsters is 20 levels or higher than player. [Valaris]
+ * Fixed @killmonster crash caused by implementation of pk_mode. [Valaris]
+ * Finished setting up pk_mode, should be 100% complete now. [Valaris]
+ * Added nopvp.txt for pk_mode. [Valaris]
+ * Prevent novice engagement in pk_mode. [Valaris]
+ * Fixed up and changed the exp penalty system. [Valaris]
+ * Pk_mode will now give double exp loss if killed by player. [Valaris]
+ * Updated conf/help with new commands [Yor]
+ * Removed more pvp timer stuff from pk_mode [Valaris]
+ * Increase drop rates +25% if over level 20 on pk_mode. [Valaris]
+ * Changed +25% exp increase on pk_mode to 15%. [Valaris]
+
+07/08
+ * Disabled pvp rank and timer if pk_mode is on. [Valaris]
+ * All maps made pvp if pk_mode is on. [Valaris]
+ * pk_mode additional 25% exp given over level 20 [Valaris]
+ * Disable @pvpon and @pvpoff commands if pk_mode is on. [Valaris]
+ * Added pk_mode option in battle_athena.conf (not yet implemented) [Valaris]
+ * Reworked prevent_multi_login, should work perfectly now. [Valaris]
+ * Removed need for eof=2 for prevent multilogin, will now just delete the blocks containing both sessions. [Valaris]
+ * Added map-servers anti-freezed connection in char-server. [Yor]
+ * Added char-servers anti-freezed connection in login-server. [Yor]
+ * Fixed spy commands so that inputting the same id/name turns off the command. [Syrus22]
+ * Created @partyspy command. [Syrus22]
+ * Renamed search_guildname function to conform with normal naming standards in guild.c. [Syrus22]
+ * Created @whomap/@whomap2/@whomap3 commands to show online players on a specifical map. [Yor]
+ * Updated and Shrunk the Kafra Script. [Syrus22]
+ * Create @reloadgmdb gm command. [Yor]
+
+07/07
+ (Dated On Aegis Website)
+ *--Released 1.0.0 RC3--*
+ * Fixed crashed with prevent_multi_login. [Valaris]
+ * Allow infinited local logins if prevent multi_login is on. [Valaris]
+ * If prevent_multi_login is on, it will disconnect both clients on the same ip. [Valaris]
+ * Prevent_multi_login will now list the character names of both accounts when logged out, and give a message. [Valaris]
+ * added updated const.txt and pet_db.txt [Valaris]
+ * GM accounts/level updating without restarting completed (by reloadgm ladmin command). [Yor]
+ * Removed gm_account_filename definition from map.conf. [Yor]
+ * Updated GM level by reloadGM ladmin command. [Yor]
+ * Added a packet between char and map to send GM accounts and their level. [Yor]
+ * Added a GM minimum level option to display 'GM' in online files. [Yor]
+ * Added a warning when a GM account is defined twice in the file. [Yor]
+ * Check for castle before guardian searches for emblem. [Valaris]
+ * Prevent stealing from treasure boxes. [Valaris]
+ * Enable mounted classes to use pedestrian counterpart's items. [Valaris]
+ * Change so petskillbonus will only update stats(client-side) if need be to prevent errors. [Valaris]
+ * Fixed crash with putting pets with skills back into egg. [Valaris]
+ * Added Steel ChonChon, Rocker, and Deviruchi pet skills. [Valaris]
+ * Added bAllStats(SP_ALL_STATS), bAgiVit(SP_AGI_VIT), bAgiDexStr(SP_AGI_DEX_STR) bonuses for pet skills. [Valaris]
+ * Added ChonChon, Lunatic, Picky, and Savage Babe pet skills to pet_db.txt. [Valaris]
+ * Added petskillbonus command for pet skills. Added pet_skill_bonus functions in pet.c. Made pointers for pet skills. [Valaris]
+ * Added 'GM' display option for online files [Yor]
+ * Improved GM accounts file reading in login-server [Yor]
+
+07/06
+ * Changed heal dog in prontera to a poring. [Valaris]
+ * NPCs with mob sprites can now be used in scripts. [Valaris]
+ * Removed sd->brokencounter. Made getbrokenid more scripter friendly. Updated refine.txt getbrokenid commands. [Valaris]
+ * Mounted classes will now use equipment of their pedestrian counterpart. [Valaris]
+ * Improved management of GM account structure in char-server. [Yor]
+ * Added packet betwen login to char to send GM accounts value. [Yor]
+ * Added reloadGM command in ladmin to reload GM accounts file without stop the login-server. [Yor]
+ * Added listGM/lsGM command in ladmin to list only GM. [Yor]
+ * Correct an error in loop of char_divorce function (incorrect variable). [Yor]
+ * Added some comments. [Yor]
+ * Added a check on start_point.map when configuration is readed. [Yor]
+ * Modified final message of login log at end of login-server. [Yor]
+
+07/05
+ * Flamelauncher,frostweapon,lightningloader,seismicweapon, and enchant poison now check to make sure target's weapon is not already enchanted. [Valaris]
+ * If sage breaks another person's weapon due to enchant failure, it will tell caster. [Valaris]
+ * Modified venom splasher to hopefully stop crashes caused by spamming. [Valaris]
+ * SA_FLAMELAUNCHER,SA_FROSTWEAPON,SA_LIGHTNINGLOADER,SA_SEISMICWEAPON now check to make sure target is holding a weapon. [Valaris]
+ * SA_FLAMELAUNCHER,SA_FROSTWEAPON,SA_LIGHTNINGLOADER,SA_SEISMICWEAPON now will break target's weapon on failure (if one
+ is being held and caster met requirements) [Valaris]
+ * Prevent unidentified and broken items from being sold. [Valaris]
+ * Added buildin_repair for equipment repair npc. [Valaris]
+ * Added repair npc to forgery in prontera. (refine.txt) [Valaris]
+ * Added sd->brokencounter and buildin_getbrokenid for item repair npc. [Valaris]
+ * Corrected some item names [rg]
+ * Fixed so @repairall success message and effect will only display once. [Valaris]
+ * Added "No items needed to be repaired" message and added forge success effect to @repairall. [Valaris]
+ * Added @repairall command. [Valaris]
+ * Added equipment_breaking option, changed weapon_break_chance to weapon_break_rate (changed to %) [Valaris]
+ * Crit's will now double weapon breaking chance if turned on. [Valaris]
+ * Added missing commands in atcommand_athena.conf. [Yor]
+ * Added @warpto command (same @jumpto). [Yor]
+ * Added increase in chance to break weapon if using powerthrust. [Valaris]
+ * Added weapon_break_chance to battle_athena.conf. [Valaris]
+ * Modified multiple login from one ip prevention(and remove gm bypass). [Valaris]
+ * Broken weapons will now have their description names in red. [Valaris]
+ * Speed up characters saving [Yor]
+ * Improved logs when a character isn't readed [Yor]
+
+07/04
+ * Completed Prontera guild castles [Akaru]
+ * break_weapon_chance now works, but broken weapon will not be displayed any differently than a normal weapon.
+ Also does not yet affect a dual dagger assassin's 2nd weapon. No way to repair yet, and no skills/stats affect breaking chances. [Valaris]
+ * Update int_storage to include broken column on all items (updates from old version) [Valaris]
+ * Added @guildspy command. [Syrus22]
+ * Added weapon_break_chance. (Not implemented yet) [Valaris]
+ * Added break column for items in athena.txt (will upgrade older versions automatically) [Valaris]
+ * Changed default required GM levels for GM commands (effective if corresponding directive(s) in /conf/atcommand_athena.conf is/are missing) to 1 [rg]
+ * Added packet_table_en.txt in doc folder. Has some translations of the client_packet.txt. [Valaris]
+ * Prevent @monster and @spawn of guardians/emperium. [Valaris]
+ * Changed killmonster so it will not destroy guardians. [Valaris]
+ * Added prevent_multi_login in battle_athena.conf to disable multiple logins from same ip (ignores gms, and will
+ display ip of offending ip if turned on) [Valaris]
+ * Added checks on player trading to prevent possible exploits. [Valaris]
+ * Make sure cart is on before vending. [Valaris]
+ * Cleaned up vending exploit fixes. Now checks to make sure not vending more than max items per skill level. [Valaris]
+
+07/03
+ * Prevent use of potion pitcher on oneself, fixed potion pitcher so can be used on other targets. [Valaris]
+ * Fixed the damage code for Falcon Assault, so its not totally useless. [?]
+ * Update peco riders for people upgrading athena, fixed bug in unmounting pecos. [Valaris]
+ * Removed option 32 from @option, added @mountpeco command. [?]
+ * Removing peco will revert to proper job level, fixed so jobchanging from peco status to peco user without peco status,
+ will update job to peco status. (ie going from Mounted crusader to Unmounted knight, will jobchange to mounted knight) [Valaris]
+ * Fixed so Peco mounting will not reset job level. Set to remove peco status if jobchanging to a class that does not use them. [Valaris]
+ * Peco mounting will now jobchange accordingly. [Valaris]
+ * Added checkfalcon and checkriding script commands. [Valaris]
+ * Added checkcart script command (since was already being used in scripts) [Valaris]
+ * Re-added unix fd_setsize definitions, makefile will now pass -DFD_SETSIZE=4096 only for windows compiles.
+ Tested new implementation of using -DFD_SETSIZE=4096 in makefile on windows box, and got past 64 connections even. [Valaris]
+ * Improved messages between servers about connections. [Yor]
+ * Improved pc_resetlvl, fixed the bug about options being left. [?]
+
+07/02
+ * Added optional match_test in @who/who2/who3 commands (no sensitive case) [Yor]
+ * If there is no map-server, send right message to client (char-server) [Yor]
+ * Improved counter of users (char-server) [Yor]
+ * Improved save of characters (char-server) [Yor]
+ * Improved sorting of account before save (login-server) [Yor]
+ * Improved map search at selection of a character (char-server) [Yor]
+
+07/01
+ * Removed FD_SETSIZE definitions from socket.h, added -DFD_SETSIZE=4096 argument to makefiles. [Valaris]
+ * Changed exploit fix in chrif.c [Valaris]
+ * Added assassin mask view_id in item_db [Valaris]
+ * Added a parameter to authorise minimum GM level at connection (login) [Yor]
+ * Fixed crash caused by making raw connection to map-server. [Valaris]
+ * Corrected a possible error at check of online players [Yor]
+ * Improved characters names control/check [Yor]
+ * Improved save/load of REG2 strings and values (login) [Yor]
+ * When there is no char-server, login-server sends proper message instead of a void list of servers [Yor]
+
+06/30
+ * Fixed a crash when used @charmodel,@charstpoint,@charskpoint and
+ @charzeny with the wrong name [Kalaspuff]
+ * Added possibilities for switchs in battle.conf (add some foreign language) [Yor]
+ * Protected char-server again disconnection of login-server [Yor]
+ * Added possible protection against packet exploits in chrif.c. [Valaris]
+ * Login-server: Added an option for the format of the date (log, etc...) [Yor]
+ Improved some little code.
+ Added log for char-server packets.
+ * Correction of prtg_cas03.txt that crash server AT START! [Yor]
+ * Added functions of mapflag noskill [Kalaspuff]
+
+06/29
+ (Dated On Aegis Website)
+ *--Released 1.0.0 RC2--*
+
+06/28
+ * Added monsters_ignore_gm option. Monster won't attack GMs if turned on unless attacked and within 1 cell. [Valaris]
+ * Added drops_by_luk option in battle_athena.conf. Anything higher than 0 will turn this option on, and act as a mutiplier.
+ Example : Setting of 10 with 50 luk would add 5 to the drop rate. So say a card has a drop rate of 2, it would become 7. [Valaris]
+ * Fixed range and removed skill failed message from Venom Splasher, also moved some of it's code around. [Valaris]
+ * When a player arrive on map-server, time limit of its account is displayed if not unlimited [Yor]
+ * Fixed problem where warp portals broke in npc.c [Valaris]
+ * Updated atcommand_heal so it works like it should [Kalaspuff]
+
+06/27
+ * Changed Venom Splasher so it will increase damage based on level of Poison React (had it set so the player had to be
+ using it, but it turns out it doesn't need to be) [Valaris]
+ * Venom Splasher now works except for the counter part. Damage is instantly dealt if skill is successful. [Valaris]
+ * Improved @item command to make correctly pet eggs [Yor]
+ * Updated Chase Walk so you can't attack while you have it casted [?]
+ * Removed un-needed code for graffiti from clif.c [Valaris]
+ * Added @ban command (to ban a player for a limited time) [Yor]
+ * Added @charblock command (you have been blocked by GM team) [Yor]
+ * Added the mapflag nowarpto [Kalaspuff]
+ * Updated the function of nowarp [Kalaspuff]
+
+06/26
+ * When a player is banned (or with a state != 0), he is disconnected [Yor]
+ * When sex is changed, skills of other sex are reseted (and skill points increased of the same number) [Yor]
+ * To avoid problem with change sex and equipement, changed sex character is unequipped of all equipment [Yor]
+
+06/25
+ * Added @charchangesex GM command [Yor]
+ * Changed: Changesex is now done after that the login-server has confirmed the change [Yor].
+ becuase sex is saved in account file.
+
+06/24
+ * Added new classes in change sex script command (buildin_changesex). [Yor]
+ * Translated pet_db.txt again [Valaris]
+ * Initial implementation of Venom Splasher. Runs checks on target poison status and whether or not hp is less then 2/3.
+ Will display skill failed if checks do not pass. Shows effect when successful. [Valaris]
+ * Added administration system to change final date of a banishment. [Yor]
+ * Added information about banishment in admin packets about an account. [Yor]
+ * Updated Chase Walk so it cancels when recasted to fix it. [?]
+ * Initial implementation for Chase Walk skill for Stalker Class [?]
+ * When an account is banned, message_error_7 is not more modified [Yor].
+
+06/23
+ (Dated On Aegis Website)
+ *--Released 1.0.0 RC1--*
+ * Added bRandomAttackIncrease for Executioner card. Chance stacks, attack does not. [Valaris]
+ * Fixed magic_damage_return so it will actually work (for Maya card). [Valaris]
+ * Add a ban timestamp in the structure of the accounts. Management not yet make [Yor]
+
+06/22
+ * Don't send a message when it's void (packet 0x8e) - client doesn't display it [Yor].
+ * Add a refresh time parameter for the html online file (refresh time in the explorer) [Yor].
+ * Create a job_name function in atcommand to have the name of the job (suppress repeated code) [Yor].
+ * Added New City: Jawaii
+ * Fix free memory of online structure at end of char-server [Yor].
+ * Remove possible duplicated online players (multiple map-servers) [Yor].
+ * Add examples in state command (ladmin) [Yor].
+ * Use a function to display warnings in login-server to avoid duplicated messages with import option [Yor].
+ * Iinitial implementation for magicdamagereturn for Maya Card [?]
+ * skill_out_range_consume - If it is set 'no' the skill will still be cast (like real servers).
+ If it is set to yes, skill will fail and sp and items required will be lost. [Valaris]
+
+06/21
+ * Updated Sacrifice skill code to be more flexible for user usage [?]
+ * Changed SC_ATTACKPOTION and SC_MATTACKPOTION to SC_ATKPOT and SC_MATKPOT, also added it in item_db.txt [?]
+ * Guild Territory will now display the # of castles owned or "None Taken". [Valaris]
+ * Changed SC_ATTACKPOTION and SC_MATTACKPOTION so the increase can be specified in itemdb.txt.
+ Example : sc_start SC_AtkPot,18,30; (+30 atk for 30 seconds) [Valaris]
+ * Added SC_ATTACKPOTION and SC_MATTACKPOTION for +30 atk for specified time period (need to get the correct id's yet,
+ right now giving wrong icons and wrong message). Added entries in const.txt, need more info to complete these. [Valaris]
+ * Fixed so players will always spawn with guild emblem if one is needed. [Valaris]
+ * Reduce number of tests in atcommand_character_stats_all (@charstatsall). [Yor]
+ * Fix memory management for online players list. [Yor]
+ * Party HP now updates instantly on change. [Valaris]
+ * Fixed crash when non-guild members are in the area of guardians in attack mode.(Will ignore them) [Valaris]
+ * A higher level GM is not displayed by who/who2/who3 if he uses HIDEGM. [Yor]
+ * When a GM with HIDEGM relogs, he is always HIDEGM (only GM). [Yor]
+ * Improve presentation of online.txt file. [Yor]
+ * In /npc/quests/magicalhatquest, corrected checking for and deletion of Mage Hat instead of Wizard Hat. [rg]
+
+06/20
+ * Fixed problem with guardian emblems disappearing [Valaris]
+ * If a GM use GM HIDE, he is not counted in the number of players [Yor]
+ * Setup prtg_cas01 to load guardians on server startup and to spawn them when purchased. Also switched from GuardianDied
+ to OnGuardianDied (other way wasn't working). Changed so guardians won't be killed on agitend. [Valaris]
+ * Guardians cannot attack and cannot be hurt during non woe time. [Valaris]
+ * Switched checking of castle.txt format so it won't wipe guardian hp everytime it loads. [Valaris]
+ * Made it so if guardians were installed in old db, that it will set guardians to full hp based on defense and class. [Valaris]
+ * Autosave will save guardian HP data. [Valaris]
+ * Castle.txt visibleG flags will be set when guardians are killed. [Valaris]
+ * Moved emperium defense upgrade to mob.c. [Valaris]
+ * Removed guardian hp saving from agitend. [Valaris]
+ * Added option to choose which columns are displayed in the online files [Yor]
+ * Added option to choose how to sort online players in the online files [Yor]
+ * Correction of a new error on guild (from [Valaris]). Old castle.txt files couldn't be readed. [Yor]
+ * Kafra Points And Rewards fixed [Darkchild]
+ * Kafra file made a lot smaller with DoEvents [Darkchild]
+ * Fixed lotsa bugs in Kafra's [Darkchild]
+ * Initial implementation for paladin's skill sacrifice [?]
+ * Loading/Saving of guardian hp (loads on agitstart, saves on agitend) [Valaris]
+ * Added so guardian hp will change accordingly. Moved the guardian defense increase to mob.c [Valaris]
+ * Implemented guardian and guardianinfo script commands [Valaris]
+
+06/19
+ * Added Ghp0-7 into castle database [Valaris]
+ * Added configuration parameters to choose online files filename [Yor]
+ * Added online files (txt and html) [Yor]
+ * Added choose of authorised letters/symbols for characters names [Yor]
+ * Added 3 new Dragon Boat Festival monsters with temporary stats to mob_db [Akaru]
+ * Translated more of item_db [Akaru]
+ * Added correct effects for Dragon Boat Festival items [Akaru]
+ * Solve problem about the change of MAX_GUILDPOSITION by [Valaris] when we load an old guild.txt file. [Yor]
+ * Improve allow/deny configuration. Write warnings if necessary. [Yor]
+
+06/18
+ * Add heal_payment.txt as an alternative to heal.txt. [Yor]
+ * Sex change (char.C): Correct error in jobchange. Disconnect player if connected. [Yor]
+ * Sex change/account deletion: Change authentification to avoid that player comes back on char-server within the 5 secondes before disconnection. [Yor]
+ * Save configuration of login-server in log file at start. [Yor]
+
+06/17
+ * Added fritz's vending exploit fixes. [Valaris]
+ * Increased max guild castle size to accomodate for novice guild castles. [Valaris]
+ * Fixed investment in prontera castle 1. [Valaris]
+ * Implemented of showing guardian hp on guardian investment in prontera castle 1 (factors in defense investment) [Valaris]
+ * Added strmobinfo script command. Syntax is strmobinfo(x,y). 'y' is the mob's id. x will show different values.
+ 1=english name, 2=jap name, 3=level, 4=max_hp, 5=max_sp,6=base_exp,7=job_exp. [Valaris]
+ * Disable % and / for 1st symbol of commands (party chat symbol and standard ragnarok GM commands) [Yor]
+
+06/16
+ * Added fully functional economy for Prontera Castle 2 Guild Wars script [Akaru]
+ * added fix for cross-class ensemble skills. [?]
+ * Increased max guild member limit to accomodate for +2 member increase per extension level
+ and increased max position to 56 to accomodate for all members. [Valaris]
+ * More of fov's fixes for atcommand.c, chrif.c, and clif.c. [Valaris]
+ * added fixes for class checking skills like bard & dancer skills and a priest skill. [?]
+ * updated skill_cast_db and skill_require_db.txt [?]
+ * changed int_guild.c added +4 for extension skill to match kRO [?]
+ * remote administration: add a command/packet to change sex of an account [Yor]
+ * Log detailled reason of refused connection in remote administration [Yor]
+ * Create a mmo_auth_tostr for accounts [Yor]
+ * Add a message when char-server is terminated [Yor]
+ * Save deleted accounts (administration deletion) in log file [Yor]
+ * Add a message when login-server is terminated [Yor]
+
+06/15
+ * Added in fov's fixes for socket.c, atcommand.c, npc.c and skill.c [Valaris]
+ * Added a char_log function. Save unreadable characters in log instead of a specific file [Yor]
+ * Save invalid account lines in log file. Account will be never lost [Yor]
+ * Sort characters of same player with the slot number in the characters file [Yor]
+
+06/14
+ * Fix errors in prtg_cas01, prtg_cas05 and MrSmile scripts [Akaru]
+ * Added fully functional economy for Prontera Castle 1 Guild Wars script [Akaru]
+
+06/13
+ * If player is on map-server when the account is deleted, player is now disconnected [Yor]
+ * Correction of char deletion bug when account is deleted [Yor]
+ * Added Prontera Castle 5 guild wars script [Akaru]
+ * Added Prontera Castle 4 guild wars script [Akaru]
+ * Add checks about duplicated character ids and names [Yor]
+ * Don't save a reg of a character if its string is void [Yor]
+ * Read a character even if a reg string is void (don't suppress the char for that) [Yor]
+ * Save characters in account_id order [Yor]
+ * Save not readed characters in a file (char file name + "not_readed.txt") [Yor]
+ * Display line number when a character can not be readed [Yor]
+ * Initialise char_num! Display number of readed characters [Yor]
+ * Do right initialization of char_dat [Yor]
+ * Add red color for ERROR displays in char.c [Yor]
+
+06/12
+ * Change 0 to '\0' for char in login.c. Add red color for ERROR displays [Yor]
+ * Optimised Mr. Smile NPC script [Akaru]
+ * Add a configuration in atcommand.conf to set the 1st character of ALL commands (Now, you can choose @, #, !..., any char that is not control character) [Yor]
+ * Optimised Prontera Castle 1 and 2 guild wars scripts [Akaru]
+ * Added Prontera Castle 3 guild wars script [Akaru]
+ * Changed Graffiti placement, will allow placement of one painting at a time (old one will be replaced). [Valaris]
+ * Graffiti displays to other plays and remains on map for set time period. [Valaris]
+
+06/11
+ * Initial implementation of graffiti (does not change directions yet (vertical/upsidedown) and doesn't dissappear [Valaris]
+ * Add config_switch (0/1, yes/no, ...) for char-server configuration [Yor]
+ * Add a display when a player does a connection [Yor]
+ * Add a display when a remote administration does a connection [Yor]
+
+06/10
+ * Improve compiling instructions for cygwin (socket.h) (depends of the cygwin version). [Yor] with help of [Lostsoul]
+ * Add parameters in login.conf to display or not parse information [Yor]
+ * Remove some repeated codes in ladmin / add example when error of command [Yor]
+ * Remove delete_session error in login.c (sorry) [Yor]
+ * Display correct message for char-server disconnection [Yor]
+ * Finish translation of ladmin [Yor]
+ * Fixed Various Npc Bugs [Darkchild]
+ * Added green colour for READY displays in char-server, login-server and map-server [Akaru]
+
+06/09
+ * Add some comments in ladmin [Yor]
+ * Remove displaying of packet 0x2714 from login-server [Yor]
+ * Correct length of password send to login-server in char-server [Yor]
+ * Char-server/login-server: put default lan to 127.0.0.1 instead of any hasardous value [Yor]
+ * Change displaying of the title [Yor]
+ * Optimised twin towers script to use duplicate [Akaru]
+ * Edited to a more user friendly error message for invalid server communication password [Akaru]
+ * Updated the item_db for more item name consistencies [Akaru]
+ * Reverted training grounds back to new_1-?.gat maps. [Valaris]
+ * Added added more variety to sending packets to guild members (same map, same map w/out self, ect) [Valaris]
+
+06/08
+ * Put a HOWTO in lan_support.conf. [Yor]
+ * Removed extra semicolons in char.c, map.c, and pc.c. [Valaris]
+ * Added missing } to clif_storageitemlist in clif.c and found a couple lines ending with 2 semicolons, removed them. [Valaris]
+
+06/07
+ * Translated refine_db.txt. [Valaris]
+ * Negative vending fix. [Fritz]
+ * Correction of mktime parameters in ladmin + some translations [Yor].
+ * Add some checks on login-server configuration parameters [Yor].
+
+06/06
+ * Fixed error in skill_tree.txt that would crash some people's servers when changing to Professor. [Valaris]
+ * Added admin_state directive for enabling and disabling remote administration, instead of testing whether admin_pass == "" [rg]
+ * Add title to the servers. [Yor]
+ * Add warnings about default password usage (administration and gm passwords). [Yor]
+ * Modify adduser.c for the default configuration. [Yor]
+ * Write the complete admin_packet.txt. [Yor]
+ * Champion NPC was looking for a priest instead of monk, changed to correct value. [Valaris]
+ * Small fixes in guide.txt, kafra.txt, and swordsman.txt pointed out by StiNKy. [Valaris]
+ * Begin splitting monsters.txt [Akaru]
+ * Removed obselete monster spawn files [Akaru]
+ * Complete Guild Wars for Prontera Castle 2 script done [Akaru]
+ * Fixed prevent_logout option. [Valaris]
+
+06/05
+ * Implemented guild castle regen.(Stackable 2x for castle owners) [Valaris]
+ * Fixed player logout display on map-server console. [Valaris]
+ * Added atcommand_spawn_quantity_limit directive to /conf/battle_athena.conf [rg]
+ * Fixed noskill map flag [?]
+ * Complete information about login configuration in conf_ref.txt [Yor]
+ * Add possible configuration values on/off or yes/no in login-server [Yor]
+ * Guardians and emp will now get +2000 hp for every defense investment within a castle [Valaris]
+ * Changed the login server to reject all remote administration authentication if the admin_pass directive isn't set, and commented-out the admin_pass directive in /conf/login_athena.conf [rg]
+ * Changed /src/common/grfio.c so it doesn't try to read GRF files with no respective directive in /conf/grf-files.txt [rg]
+ * Changed so no one can spawn inside castles. [Valaris]
+ * Updated item_db with more consistant names, fixed some unknown_items [Akaru]
+ * Complete Guild Wars for Prontera Castle 1 script done [Akaru]
+ * Disabled guild breaking, alliance breaking, and alliance making during WoE. [Valaris]
+ * Will not default to prontera.gat if map-server is not connected. [Valaris]
+ * Warp players who are not in guild out of castles when WoE starts. [Valaris]
+
+06/04
+ * Allies now do no damage to guardians or emperium. [Valaris]
+ * Prevent allies from being attacked by guardians. [Valaris]
+ * Optimized guardian emblem code. [Valaris]
+ * Fixed map-server crashing with spawning guardians in untaken castles. [Valaris]
+ * Guardian emblems will change if castle is taken, but client needs to refresh map. [Valaris]
+ * Fixed problem where guild emblem would vanish from guild info screen. [Valaris]
+
+06/03
+ * Improve e-mails checks and LAN/WAN checks on char-server. [Yor].
+ * Add some explanations in front of accounts file. [Yor]
+ * Set a non LAN configuration for basic configuration in lan_support.conf. Explain parameters. [Yor]
+ * add missing parameters of char_athena.conf, and explain them. [Yor]
+ * Restore default admin pass and gm pass of login_athena.conf, and add missing parameters. [Yor]
+ * fix missing include in char.c. [Yor]
+ * Translation of checkversion. Add some explanations in front of file. [Yor]
+ * Translation of getlogincount [Yor]
+ * Finish translation of new login.c [Yor]
+ * Implemented Guardian Emblems [Valaris]
+
+06/02
+ * Added maximum_level option in battle_athena.conf [Valaris]
+ * Added maximum level cap to all the level up commands. [Valaris]
+ * Added "Deal has been cancelled" message to Fritz's input exploit fix. [Valaris]
+
+06/01
+ * Fixed training ground npcs and warps, removed depreceated maps, using new ones. [Valaris]
+
+05/30
+ * Small map-server crashing fix with Leo and Guide npcs in training ground [Valaris]
+
+05/29
+ * Removed item_value_db.txt and all references to it [Valaris]
+ * Removed unused class_equip_db.txt [Valaris]
+ * Fixed stat and level reset bug where needed status points wouldnt reset unless relogged [Valaris]
+ * @monster will summon monster without an amount specified [Valaris]
+
+05/28
+ * Added heal and usable item rate modifier [Valaris]
+ * Added pet equipment to equipment rate modifier [Valaris]
+ * Added option to turn alchemist summon experience and drops on and off [Valaris]
+ * Alchemist Marine Spheres now randomly explode [Valaris]
+ * Fixed bug where if certain items lowered max hp (4 mysteltain, and 1 eddga) below 0
+ would loop to server max hp value. [Valaris]
+
+05/26
+ * Added New Hats [Darkchild]
+ * Added New Monsters [Darkchild]
+05/23
+ * Added @charstatsall, views all characters (easy for money bug scaning etc! [Fritz]
+ * Max to input npc command, 0 is lowest, 99999999 is max, this to prevent money bugs! [Fritz]
+
+05/21
+ (Dated On Aegis Website)
+ *--Released 0.5.2--*
+
+05/20
+ (Dated On Aegis Website)
+ *--Released 0.5.1--*
+ * got dye working again [Darkchild/fritz]
+
+05/19
+ (Dated On Aegis Website)
+ *--Released 0.5.0--*
+
+05/09
+ * added Prontera Guild Castle 3 test guild wars test script [Akaru]
+ * modified Prontera Guild Castle 1 and 2 guild wars test script [Akaru]
+ * fixed several valkyrie jobchangers [Akaru]
+05/08
+ (Dated On Aegis Website)
+ *--Released 0.4.2--*
+ *--Released 0.4.1--*
+ * added Prontera Guild Castle 2 test guild wars test script [Akaru]
+
+05/07 (Dated On Aegis Website)
+ *--Released 0.4.0--*
+
+05/06
+ * added Prontera Guild Castle 1 test guild wars test script [Akaru]
+05/04
+ * removed parses and added ENGLISH! [?]
+
+04/29 (Dated On Aegis Website)
+ *--Released 953 Delta--*
+
+04/28 (Dated On Aegis Website) (Whose Ideas Were These?)
+ *--Released 953 Gamma--*
+04/27
+ *--Released 951 Beta--*
+ * fixed @jobchange crash [credits to Mugendai, commited by Akaru]
+
+04/25 (Dated On Aegis Website)
+ *--Released 947 Alpha--*
+04/23
+ * added more Professor Skills and added checks [?]
+04/10
+ * added more upper skills from moonsoul's works [?]
+02/12-04/10
+ * CVS Down - Not Many changes could be made...*
+
+02/22 (Dated On Aegis Website)
+ *--Released 817--*
+
+02/12
+ * added more mob skill conditions (friendstatuseq, mysyatuseq, friendhpltmaxrate) [RoVeRT]
+02/06
+ * dumped @skillall for @allskill [?]
+02/05
+ * fixed provoke so it doesnt work on undead [RoVeRT]
+ * added TyrNemesis^ card removal code and min/max settings [RoVeRT]
+02/04
+ * added start_zeny and party_level_range to char_athena.conf [RoVeRT]
+02/03
+ * Improved the prontera.gat map fallback. [Sara-chan]
+ * Improved the way guild emblems act when logging in. [Sara-chan]
+ * Undead-class armor, and Undead monster themselves will never be frozen [RoVeRT]
+ * fixed negative values for NPC to always be 0
+01/26
+ * mob_warpslave correction [RoVeRT]
+01/25
+ * added poison hp reduction [AppleGirl]
+01/20
+ * added intimidate [RoVeRT]
+ * added mvp checks for some skills
+01/17
+ * added skill check for empelium attack and removed drops from NULL kills [RoVeRT]
+01/16
+ * added secondary effects for when characters with appropriate elemental armor
+ are within area of effect of sage spells SA_VOLCANO(atk up), SA_DELUGE(max hp up),
+ SA_VIOLENTGALE(flee up) [moonsoul]
+ * removeal of @randmon as it isnt needed [RoVeRT]
+01/15
+ * fixed auto spell so it works the prober way [RoVeRT]
+01/12
+ * added mob_warpslave [RoVeRT]
+ * added mob_warp to check noteleport mapflag
+01/07
+ * added OnCommand for NPC [RoVeRT]
+ * added new on death method for NPC spawned mobs [RoVeRT]
+ * added mobcount [RoVeRT]
+01/06
+ * fixed icon status for spear quicken [AppleGirl]
+ * added quoted name support for @monster [RoVeRT]
+01/05
+ * added indivudal support for card and equip drop rates [RoVeRT]
+01/04
+ * added TF_PICKSTONE and skill check condition for TF_THROWSTONE [AppleGirl]
+ * added updated cast_db.txt and fixed SA_VOLCANO, SA_DELUGE,
+ SA_VIOLENTGALE, and SA_LANDPROTECTOR GRAPHICS [AppleGirl]
+ * Fixed Effects of a few bard Skills. [AppleGirl]
+ * added option to stop logout for 10 seconds after taking a hit [RoVeRT]
+01/03
+ * added inet_ip support to char and map [RoVeRT]
+ * added checkcart, checkfalcon and checkriding npc commands
+01/02
+ * added new npc timer support that is independant of a player [RoVeRT]
+12/31
+ * Added @refineall [Mark]
+12/30
+ * added support for custom_item-db.txt with battle_athena.conf option [RoVeRT]
+ * fixed @charzeny bug
+ * translated help.txt to english anong with a few other files [RoVeRT]
+12/29
+ * added umbala maps to map_athena.conf [RoVeRT]
+12/26
+ * added Skill_range based on level, and partially working AutoGuard [Moonsoul]
+ * added Correction of Whip and Instrument Damage Again [Sara-Chan]
+12/25
+ * Spear Quicken Correct Graphics,Fixed Magnum Break (Which Fixes All Other
+ Splash skills), and Fixed Brandish Spear [AppleGirl]
+ * Updated Command For @SkillAll Added Atcommand_athena.conf [RoVeRT]
+12/24
+ * Added Side Effects for multiple skills for 2-2 classes [AppleGirl]
+12/23
+ * Added GM Command Called @Skillall [RoVeRT]
+ * @skillall to skill-up all your current skills [RoVeRT]
+ * @hide does hide you from all monsters [RoVeRT]
+ * fire wall limited to 5 per map [RoVeRT]
+ * to turn on PVP without @pvpon and to disable flywing search for mapflag [RoVeRT]
+ * no luck with @morph at this time yet [RoVeRT]
+ * splash attack added but still kinda buggy [RoVeRT]
+ * Added in Dancing and Song Playing for Bard and Dancer [AppleGirl]
+ * Added Skill Arrow Check For Archer Skills [AppleGirl]
+ * Added Skill Status Recovery [AppleGirl]
+ * Added Skill Bard and Dancer Skills Last Longer [AppleGirl]
+ * Added Skill Grimtooth does splash damage [AppleGirl]
+ * Added Skill Steal Fixed and Snatcher [AppleGirl]
+ * Added Skill SonicBlow only works with Katars Now [AppleGirl]
+12/22
+ * Added Skills Shield Boomerang, Shield Charge, and Defender [AppleGirl]
diff --git a/doc/notes/INSTALL.txt b/doc/notes/INSTALL.txt
index ab8609bf3..c98db12b4 100644
--- a/doc/notes/INSTALL.txt
+++ b/doc/notes/INSTALL.txt
@@ -1,246 +1,246 @@
-eAthena SQL Installation and Upgrade Instructions
-
-1 Installation
- 1.1 Windows
- 1.2 Linux
- 1.3 FreeBSD
-2 Upgrading
- 2.1 Upgrading from version 817
- 2.2 Upgrading from version 0.5.2
- 2.3 Upgrading from version 1.0 RC 1
-3 Mail System
- 3.1 Adding the mail database
- 3.2 Activating the mail system
-
-1 Installation
-==============
-
-1.1 Windows
------------
-
-1. It is not the aim of this document to explain the installation, concepts or usage of MySQL. If you are unfamiliar with MySQL, familiarise yourself with it and read at least these sections of the MySQL reference manual (http://dev.mysql.com/doc/mysql/en/index.html):
-
-- 2.2.1 Installing MySQL on Windows
-- 2.4 Post-Installation Setup and Testing
-- 5.4 General Security Issues
-- 5.5 The MySQL Access Privilege System
-- 5.6 MySQL User Account Management
-
-2. If fast and secure access to a MySQL server is unavailable, install, start and configure MySQL database server version 4.0.x. If you are using a version of Windows which is a member of the NT family, we recommend that you install MySQL as a service.
-
-3. Create a new database and a new user account with only SELECT, INSERT, UPDATE and DELETE privileges on the database. For example:
-
-CREATE DATABASE ragnarok;
-GRANT
- SELECT,INSERT,UPDATE,DELETE
- ON `ragnarok`.* # database
- TO 'ragnarok'@'localhost' # username@address
- IDENTIFIED BY 'password'; # password
-
-For security, do not use the password "password" for your user account.
-
-4. Execute the batch queries stored in sql\main.sql. If you want your item and monster databases stored in your MySQL database, execute sql\database.sql too. For example:
-
-mysql -D ragnarok -h localhost -u root -p < sql/main.sql | more && mysql -D ragnarok -h localhost -u root -p < sql/database.sql | more
-
-5. Add an inter-server account for every character server you intend to link to your login server. For example:
-
-USE ragnarok
-INSERT INTO `login`
- (`userid`,`user_pass`,`sex`,`email`)
- VALUES ('inter-server_chaos','password','S','');
-
-Every character server linked to your login server requires its own inter-server account; inter-server accounts are used by the servers to communicate with each other. The differences between user and inter-server accounts are:
-
-- The "sex" field value must equal "S"
-- The "e-mail" field value is unused and therefore should be set to ""
-- The "level", "error_message", "connect_until", "memo", "ban_until" and "state" field values are unsued and therefore should be set to 0
-
-Anyone who knows the username and password of an inter-server account can control a character server using that account. Therefore, choose secure passwords for your inter-server accounts.
-
-6. Add accounts or convert existing accounts from a text file database.
-
-To add new accounts, use, for example:
-
-USE ragnarok
-INSERT INTO `login`
- (`userid`,`user_pass`,`sex`,`email`,`level`)
- VALUES ('<username>','<password>','<gender>','<e-mail address>',<game master level>);
-
-Where <gender> is either M, F, or S for male, female, and inter-server respectively and <e-mail address> is the e-mail address (for confirmation of character deletion).
-
-To convert existing accounts stored in a text file database, use login-converter.exe and char-converter.exe. Parties and guilds cannot be converted.
-
-7. Edit the configuration files in conf\ (except import\, mapflag\, help.txt, water.txt and water_height.txt) according to your computer configuration, network configuration, MySQL database server configuration and personal preferences.
-
-8. Download the latest cygwin1-yyyymmdd.dll.bz2 snapshot, where "yyyymmdd" is the build date, from http://cygwin.com/snapshots/. Extract cygwin1-yyyymmdd.dll from the archive, rename it to cygwin1.dll, and move it to your system or system32 directory -- depending on your version of Windows -- in your system root directory.
-
-9. Optionally compile:
-
-a. Install Cygwin with these packages:
-
-devel/
- gcc,
- gcc-g++,
- gcc-mingw-core,
- gcc-mingw-g++,
- make,
- mingw-runtime,
- mktemp
-
-b. Using Cygwin, install the MySQL libraries by compiling and installing the MySQL database server source distribution for Linux with "./configure --without-server && make && make install".
-
-c. Using Cygwin, enter "make" in the eAthena SQL directory. Recompile with "make clean && make".
-
-1.2 Linux
----------
-
-1. It is not the aim of this document to explain the installation, concepts or usage of MySQL. If you are unfamiliar with MySQL, familiarise yourself with it and read at least these sections of the MySQL reference manual (http://dev.mysql.com/doc/mysql/en/index.html):
-
-- 2.2.2 Installing MySQL on Linux
-- 2.4 Post-Installation Setup and Testing
-- 5.4 General Security Issues
-- 5.5 The MySQL Access Privilege System
-- 5.6 MySQL User Account Management
-
-2. If fast and secure access to a MySQL server is unavailable, install, start and configure MySQL database server version 4.0.x. If you are using a version of Windows which is a member of the NT family, we recommend that you install MySQL as a service.
-
-3. Create a new database and a new user account with only SELECT, INSERT, UPDATE and DELETE privileges on the database. For example:
-
-CREATE DATABASE ragnarok;
-GRANT
- SELECT,INSERT,UPDATE,DELETE
- ON `ragnarok`.* # database
- TO 'ragnarok'@'localhost' # username@address
- IDENTIFIED BY 'password'; # password
-
-For security, do not use the password "password" for your user account.
-
-4. Execute the batch queries stored in sql/main.sql. If you want your item and monster databases stored in your MySQL database, execute sql/database.sql too. For example:
-
-mysql -D ragnarok -h localhost -u root -p < sql/main.sql | more && mysql -D ragnarok -h localhost -u root -p < sql/database.sql | more
-
-5. Add an inter-server account for every character server you intend to link to your login server. For example:
-
-USE ragnarok
-INSERT INTO `login`
- (`userid`,`user_pass`,`sex`,`email`)
- VALUES ('inter-server_chaos','password','S','');
-
-Every character server linked to your login server requires its own inter-server account; inter-server accounts are used by the servers to communicate with each other. The differences between user and inter-server accounts are:
-
-- The "sex" field value must equal "S"
-- The "e-mail" field value is unused and therefore should be set to ""
-- The "level", "error_message", "connect_until", "memo", "ban_until" and "state" field values are unsued and therefore should be set to 0
-
-Anyone who knows the username and password of an inter-server account can control a character server using that account. Therefore, choose secure passwords for your inter-server accounts.
-
-6. Add accounts or convert existing accounts from a text file database.
-
-To add new accounts, use, for example:
-
-USE ragnarok
-INSERT INTO `login`
- (`userid`,`user_pass`,`sex`,`email`,`level`)
- VALUES ('<username>','<password>','<gender>','<e-mail address>',<game master level>);
-
-Where <gender> is either M, F, or S for male, female, and inter-server respectively and <e-mail address> is the e-mail address (for confirmation of character deletion).
-
-To convert existing accounts stored in a text file database, use login-converter and char-converter. Parties and guilds cannot be converted.
-
-7. Edit the configuration files in conf/ (except import/, mapflag/, help.txt, water.txt and water_height.txt) according to your computer configuration, network configuration, MySQL database server configuration and personal preferences.
-
-8. Compile with "make". Recompile with "make clean && make".
-
-1.3 FreeBSD
------------
-
-1. It is not the aim of this document to explain the installation, concepts or usage of MySQL. If you are unfamiliar with MySQL, familiarise yourself with it and read at least these sections of the MySQL reference manual (http://dev.mysql.com/doc/mysql/en/index.html):
-
-- 2.2.5 Installing MySQL on Other Unix-Like Systems
-- 2.4 Post-Installation Setup and Testing
-- 5.4 General Security Issues
-- 5.5 The MySQL Access Privilege System
-- 5.6 MySQL User Account Management
-
-2. If fast and secure access to a MySQL server is unavailable, install, start and configure MySQL database server version 4.0.x. If you are using a version of Windows which is a member of the NT family, we recommend that you install MySQL as a service.
-
-3. Create a new database and a new user account with only SELECT, INSERT, UPDATE and DELETE privileges on the database. For example:
-
-CREATE DATABASE ragnarok;
-GRANT
- SELECT,INSERT,UPDATE,DELETE
- ON `ragnarok`.* # database
- TO 'ragnarok'@'localhost' # username@address
- IDENTIFIED BY 'password'; # password
-
-For security, do not use the password "password" for your user account.
-
-4. Execute the batch queries stored in sql/main.sql. If you want your item and monster databases stored in your MySQL database, execute sql/database.sql too. For example:
-
-mysql -D ragnarok -h localhost -u root -p < sql/main.sql | more && mysql -D ragnarok -h localhost -u root -p < sql/database.sql | more
-
-5. Add an inter-server account for every character server you intend to link to your login server. For example:
-
-USE ragnarok
-INSERT INTO `login`
- (`userid`,`user_pass`,`sex`,`email`)
- VALUES ('inter-server_chaos','password','S','');
-
-Every character server linked to your login server requires its own inter-server account; inter-server accounts are used by the servers to communicate with each other. The differences between user and inter-server accounts are:
-
-- The "sex" field value must equal "S"
-- The "e-mail" field value is unused and therefore should be set to ""
-- The "level", "error_message", "connect_until", "memo", "ban_until" and "state" field values are unsued and therefore should be set to 0
-
-Anyone who knows the username and password of an inter-server account can control a character server using that account. Therefore, choose secure passwords for your inter-server accounts.
-
-6. Add accounts or convert existing accounts from a text file database.
-
-To add new accounts, use, for example:
-
-USE ragnarok
-INSERT INTO `login`
- (`userid`,`user_pass`,`sex`,`email`,`level`)
- VALUES ('<username>','<password>','<gender>','<e-mail address>',<game master level>);
-
-Where <gender> is either M, F, or S for male, female, and inter-server respectively and <e-mail address> is the e-mail address (for confirmation of character deletion).
-
-To convert existing accounts stored in a text file database, use login-converter and char-converter. Parties and guilds cannot be converted.
-
-7. Edit the configuration files in conf/ (except import/, mapflag/, help.txt, water.txt and water_height.txt) according to your computer configuration, network configuration, MySQL database server configuration and personal preferences.
-
-8. Compile with "gmake". Recompile with "gmake clean && gmake".
-
-
-2 Upgrading
-===========
-
-2.1 Upgrading from version 817
-------------------------------
-
-1. Execute the batch queries stored in sql/upgrade_817.sql and sql/upgrade_0.5.2_main.sql.
-
-2. If you want your item and monster databases stored in your MySQL database, execute the batch queries stored in sql/database.sql.
-
-2.2 Upgrading from version 0.5.2
---------------------------------
-
-1. Execute the batch queries stored in sql/upgrade_0.5.2_main.sql.
-
-2. If you created the item_db and mob_db tables, execute the batch queries stored in sql/upgrade_0.5.2_database.sql.
-
-2.3 Upgrading from version 1.0 RC 1
------------------------------------
-
-1. Execute the batch queries stored in sql/upgrade_1.0.0-rc1_main.sql.
-
-
-3 Mail System
-=============
-
-2.1 Adding the mail database
-----------------------------
-1. Execute the batch queries stored in sql/mail.sql
-
-2. Set mail_system option in conf/battle_athena.conf to 1 or yes.
+eAthena SQL Installation and Upgrade Instructions
+
+1 Installation
+ 1.1 Windows
+ 1.2 Linux
+ 1.3 FreeBSD
+2 Upgrading
+ 2.1 Upgrading from version 817
+ 2.2 Upgrading from version 0.5.2
+ 2.3 Upgrading from version 1.0 RC 1
+3 Mail System
+ 3.1 Adding the mail database
+ 3.2 Activating the mail system
+
+1 Installation
+==============
+
+1.1 Windows
+-----------
+
+1. It is not the aim of this document to explain the installation, concepts or usage of MySQL. If you are unfamiliar with MySQL, familiarise yourself with it and read at least these sections of the MySQL reference manual (http://dev.mysql.com/doc/mysql/en/index.html):
+
+- 2.2.1 Installing MySQL on Windows
+- 2.4 Post-Installation Setup and Testing
+- 5.4 General Security Issues
+- 5.5 The MySQL Access Privilege System
+- 5.6 MySQL User Account Management
+
+2. If fast and secure access to a MySQL server is unavailable, install, start and configure MySQL database server version 4.0.x. If you are using a version of Windows which is a member of the NT family, we recommend that you install MySQL as a service.
+
+3. Create a new database and a new user account with only SELECT, INSERT, UPDATE and DELETE privileges on the database. For example:
+
+CREATE DATABASE ragnarok;
+GRANT
+ SELECT,INSERT,UPDATE,DELETE
+ ON `ragnarok`.* # database
+ TO 'ragnarok'@'localhost' # username@address
+ IDENTIFIED BY 'password'; # password
+
+For security, do not use the password "password" for your user account.
+
+4. Execute the batch queries stored in sql\main.sql. If you want your item and monster databases stored in your MySQL database, execute sql\database.sql too. For example:
+
+mysql -D ragnarok -h localhost -u root -p < sql/main.sql | more && mysql -D ragnarok -h localhost -u root -p < sql/database.sql | more
+
+5. Add an inter-server account for every character server you intend to link to your login server. For example:
+
+USE ragnarok
+INSERT INTO `login`
+ (`userid`,`user_pass`,`sex`,`email`)
+ VALUES ('inter-server_chaos','password','S','');
+
+Every character server linked to your login server requires its own inter-server account; inter-server accounts are used by the servers to communicate with each other. The differences between user and inter-server accounts are:
+
+- The "sex" field value must equal "S"
+- The "e-mail" field value is unused and therefore should be set to ""
+- The "level", "error_message", "connect_until", "memo", "ban_until" and "state" field values are unsued and therefore should be set to 0
+
+Anyone who knows the username and password of an inter-server account can control a character server using that account. Therefore, choose secure passwords for your inter-server accounts.
+
+6. Add accounts or convert existing accounts from a text file database.
+
+To add new accounts, use, for example:
+
+USE ragnarok
+INSERT INTO `login`
+ (`userid`,`user_pass`,`sex`,`email`,`level`)
+ VALUES ('<username>','<password>','<gender>','<e-mail address>',<game master level>);
+
+Where <gender> is either M, F, or S for male, female, and inter-server respectively and <e-mail address> is the e-mail address (for confirmation of character deletion).
+
+To convert existing accounts stored in a text file database, use login-converter.exe and char-converter.exe. Parties and guilds cannot be converted.
+
+7. Edit the configuration files in conf\ (except import\, mapflag\, help.txt, water.txt and water_height.txt) according to your computer configuration, network configuration, MySQL database server configuration and personal preferences.
+
+8. Download the latest cygwin1-yyyymmdd.dll.bz2 snapshot, where "yyyymmdd" is the build date, from http://cygwin.com/snapshots/. Extract cygwin1-yyyymmdd.dll from the archive, rename it to cygwin1.dll, and move it to your system or system32 directory -- depending on your version of Windows -- in your system root directory.
+
+9. Optionally compile:
+
+a. Install Cygwin with these packages:
+
+devel/
+ gcc,
+ gcc-g++,
+ gcc-mingw-core,
+ gcc-mingw-g++,
+ make,
+ mingw-runtime,
+ mktemp
+
+b. Using Cygwin, install the MySQL libraries by compiling and installing the MySQL database server source distribution for Linux with "./configure --without-server && make && make install".
+
+c. Using Cygwin, enter "make" in the eAthena SQL directory. Recompile with "make clean && make".
+
+1.2 Linux
+---------
+
+1. It is not the aim of this document to explain the installation, concepts or usage of MySQL. If you are unfamiliar with MySQL, familiarise yourself with it and read at least these sections of the MySQL reference manual (http://dev.mysql.com/doc/mysql/en/index.html):
+
+- 2.2.2 Installing MySQL on Linux
+- 2.4 Post-Installation Setup and Testing
+- 5.4 General Security Issues
+- 5.5 The MySQL Access Privilege System
+- 5.6 MySQL User Account Management
+
+2. If fast and secure access to a MySQL server is unavailable, install, start and configure MySQL database server version 4.0.x. If you are using a version of Windows which is a member of the NT family, we recommend that you install MySQL as a service.
+
+3. Create a new database and a new user account with only SELECT, INSERT, UPDATE and DELETE privileges on the database. For example:
+
+CREATE DATABASE ragnarok;
+GRANT
+ SELECT,INSERT,UPDATE,DELETE
+ ON `ragnarok`.* # database
+ TO 'ragnarok'@'localhost' # username@address
+ IDENTIFIED BY 'password'; # password
+
+For security, do not use the password "password" for your user account.
+
+4. Execute the batch queries stored in sql/main.sql. If you want your item and monster databases stored in your MySQL database, execute sql/database.sql too. For example:
+
+mysql -D ragnarok -h localhost -u root -p < sql/main.sql | more && mysql -D ragnarok -h localhost -u root -p < sql/database.sql | more
+
+5. Add an inter-server account for every character server you intend to link to your login server. For example:
+
+USE ragnarok
+INSERT INTO `login`
+ (`userid`,`user_pass`,`sex`,`email`)
+ VALUES ('inter-server_chaos','password','S','');
+
+Every character server linked to your login server requires its own inter-server account; inter-server accounts are used by the servers to communicate with each other. The differences between user and inter-server accounts are:
+
+- The "sex" field value must equal "S"
+- The "e-mail" field value is unused and therefore should be set to ""
+- The "level", "error_message", "connect_until", "memo", "ban_until" and "state" field values are unsued and therefore should be set to 0
+
+Anyone who knows the username and password of an inter-server account can control a character server using that account. Therefore, choose secure passwords for your inter-server accounts.
+
+6. Add accounts or convert existing accounts from a text file database.
+
+To add new accounts, use, for example:
+
+USE ragnarok
+INSERT INTO `login`
+ (`userid`,`user_pass`,`sex`,`email`,`level`)
+ VALUES ('<username>','<password>','<gender>','<e-mail address>',<game master level>);
+
+Where <gender> is either M, F, or S for male, female, and inter-server respectively and <e-mail address> is the e-mail address (for confirmation of character deletion).
+
+To convert existing accounts stored in a text file database, use login-converter and char-converter. Parties and guilds cannot be converted.
+
+7. Edit the configuration files in conf/ (except import/, mapflag/, help.txt, water.txt and water_height.txt) according to your computer configuration, network configuration, MySQL database server configuration and personal preferences.
+
+8. Compile with "make". Recompile with "make clean && make".
+
+1.3 FreeBSD
+-----------
+
+1. It is not the aim of this document to explain the installation, concepts or usage of MySQL. If you are unfamiliar with MySQL, familiarise yourself with it and read at least these sections of the MySQL reference manual (http://dev.mysql.com/doc/mysql/en/index.html):
+
+- 2.2.5 Installing MySQL on Other Unix-Like Systems
+- 2.4 Post-Installation Setup and Testing
+- 5.4 General Security Issues
+- 5.5 The MySQL Access Privilege System
+- 5.6 MySQL User Account Management
+
+2. If fast and secure access to a MySQL server is unavailable, install, start and configure MySQL database server version 4.0.x. If you are using a version of Windows which is a member of the NT family, we recommend that you install MySQL as a service.
+
+3. Create a new database and a new user account with only SELECT, INSERT, UPDATE and DELETE privileges on the database. For example:
+
+CREATE DATABASE ragnarok;
+GRANT
+ SELECT,INSERT,UPDATE,DELETE
+ ON `ragnarok`.* # database
+ TO 'ragnarok'@'localhost' # username@address
+ IDENTIFIED BY 'password'; # password
+
+For security, do not use the password "password" for your user account.
+
+4. Execute the batch queries stored in sql/main.sql. If you want your item and monster databases stored in your MySQL database, execute sql/database.sql too. For example:
+
+mysql -D ragnarok -h localhost -u root -p < sql/main.sql | more && mysql -D ragnarok -h localhost -u root -p < sql/database.sql | more
+
+5. Add an inter-server account for every character server you intend to link to your login server. For example:
+
+USE ragnarok
+INSERT INTO `login`
+ (`userid`,`user_pass`,`sex`,`email`)
+ VALUES ('inter-server_chaos','password','S','');
+
+Every character server linked to your login server requires its own inter-server account; inter-server accounts are used by the servers to communicate with each other. The differences between user and inter-server accounts are:
+
+- The "sex" field value must equal "S"
+- The "e-mail" field value is unused and therefore should be set to ""
+- The "level", "error_message", "connect_until", "memo", "ban_until" and "state" field values are unsued and therefore should be set to 0
+
+Anyone who knows the username and password of an inter-server account can control a character server using that account. Therefore, choose secure passwords for your inter-server accounts.
+
+6. Add accounts or convert existing accounts from a text file database.
+
+To add new accounts, use, for example:
+
+USE ragnarok
+INSERT INTO `login`
+ (`userid`,`user_pass`,`sex`,`email`,`level`)
+ VALUES ('<username>','<password>','<gender>','<e-mail address>',<game master level>);
+
+Where <gender> is either M, F, or S for male, female, and inter-server respectively and <e-mail address> is the e-mail address (for confirmation of character deletion).
+
+To convert existing accounts stored in a text file database, use login-converter and char-converter. Parties and guilds cannot be converted.
+
+7. Edit the configuration files in conf/ (except import/, mapflag/, help.txt, water.txt and water_height.txt) according to your computer configuration, network configuration, MySQL database server configuration and personal preferences.
+
+8. Compile with "gmake". Recompile with "gmake clean && gmake".
+
+
+2 Upgrading
+===========
+
+2.1 Upgrading from version 817
+------------------------------
+
+1. Execute the batch queries stored in sql/upgrade_817.sql and sql/upgrade_0.5.2_main.sql.
+
+2. If you want your item and monster databases stored in your MySQL database, execute the batch queries stored in sql/database.sql.
+
+2.2 Upgrading from version 0.5.2
+--------------------------------
+
+1. Execute the batch queries stored in sql/upgrade_0.5.2_main.sql.
+
+2. If you created the item_db and mob_db tables, execute the batch queries stored in sql/upgrade_0.5.2_database.sql.
+
+2.3 Upgrading from version 1.0 RC 1
+-----------------------------------
+
+1. Execute the batch queries stored in sql/upgrade_1.0.0-rc1_main.sql.
+
+
+3 Mail System
+=============
+
+2.1 Adding the mail database
+----------------------------
+1. Execute the batch queries stored in sql/mail.sql
+
+2. Set mail_system option in conf/battle_athena.conf to 1 or yes.
diff --git a/doc/notes/README.win32.txt b/doc/notes/README.win32.txt
index 16a8c9524..22f3bac3a 100644
--- a/doc/notes/README.win32.txt
+++ b/doc/notes/README.win32.txt
@@ -1,32 +1,32 @@
- Building eAthena under win32
-
-There are currently two ways to build eAthena. The first and oldest way is by using cygwin (www.cygwin.org). This was the only way until the svn 1370 timeframe. The second way is by using Visual Studio .NET 2003.
-
-Building using cygwin:
-
- 1) delete every copy of cygwin1.dll on your system
- 2) Go to www.cygwin.com and run the setup.exe.
- 3) install gcc, make, bash, g++, and gdb. Basically install
- all developer tools if possible. If later you find you are
- missing something, re-run the setup and install that
- 4) make sure the ../bin of wherever you installed cygwin to is in your
- path. ie, if you put cygwin in C:/cygwin then add c:/cygwin/bin
- to your path
- 5) return to this directory and type "make txt"
-
-Building using Visual Studio .NET 2003
-
- 1) Make sure you have the platform SDK installed when you install
- this. If you don't have it, you can go to microsoft and download a
- copy.
- 2) open the eAthena.sln file
- 3) Build the components you wish..
-
- if you wish mysql support (http://dev.mysql.com/), grab a windows
- install of mysql
-
- http://dev.mysql.com/get/Downloads/MySQL-4.1/mysql-4.1.10a-win32.zip/from/pick#mirrors
-
- and install it into the default location on the C drive. This will
- best match how I set up the solutions/project files
-
+ Building eAthena under win32
+
+There are currently two ways to build eAthena. The first and oldest way is by using cygwin (www.cygwin.org). This was the only way until the svn 1370 timeframe. The second way is by using Visual Studio .NET 2003.
+
+Building using cygwin:
+
+ 1) delete every copy of cygwin1.dll on your system
+ 2) Go to www.cygwin.com and run the setup.exe.
+ 3) install gcc, make, bash, g++, and gdb. Basically install
+ all developer tools if possible. If later you find you are
+ missing something, re-run the setup and install that
+ 4) make sure the ../bin of wherever you installed cygwin to is in your
+ path. ie, if you put cygwin in C:/cygwin then add c:/cygwin/bin
+ to your path
+ 5) return to this directory and type "make txt"
+
+Building using Visual Studio .NET 2003
+
+ 1) Make sure you have the platform SDK installed when you install
+ this. If you don't have it, you can go to microsoft and download a
+ copy.
+ 2) open the eAthena.sln file
+ 3) Build the components you wish..
+
+ if you wish mysql support (http://dev.mysql.com/), grab a windows
+ install of mysql
+
+ http://dev.mysql.com/get/Downloads/MySQL-4.1/mysql-4.1.10a-win32.zip/from/pick#mirrors
+
+ and install it into the default location on the C drive. This will
+ best match how I set up the solutions/project files
+
diff --git a/doc/notes/Readme-jap.txt b/doc/notes/Readme-jap.txt
index daef9665a..f43c0499c 100644
--- a/doc/notes/Readme-jap.txt
+++ b/doc/notes/Readme-jap.txt
@@ -1,21260 +1,21260 @@
---------------------
-//1162 by pizza
-EƒXƒpƒCƒ‰ƒ‹ƒsƒA[ƒXEƒ\ƒEƒ‹ƒuƒŒ[ƒJ[E”­™¤Eƒtƒ@ƒ‹ƒRƒ“ƒAƒTƒ‹ƒg‚ɂ‚¢‚Ä–{ŽI€‹’‚ÉC³
-
- (db)
- skill_db.txt
- ƒXƒpƒCƒ‰ƒ‹ƒsƒA[ƒXEƒ\ƒEƒ‹ƒuƒŒ[ƒJ[‚ÌŽË’ö
- ƒ\ƒEƒ‹ƒuƒŒ[ƒJ[‚ª‰r¥–WŠQ‰Â
- skill_cast_db.txt
- ƒ\ƒEƒ‹ƒuƒŒ[ƒJ[‚̉r¥ŽžŠÔ
-
- (src/map)
- battle.c
- ”­™¤Eƒtƒ@ƒ‹ƒRƒ“ƒAƒTƒ‹ƒg‚ÌŒvŽZŽ®
- ƒXƒpƒCƒ‰ƒ‹ƒsƒA[ƒX‚ªƒjƒ…ƒ}‚Å–³Œø‰»
-
---------------------
-//1161 by Nameless
-
-EƒoƒCƒIƒvƒ‰ƒ“ƒg‚É‚æ‚颊Òmob‚ÌID‚ƃXƒLƒ‹‚ð–{ŽI€‹’‚ÉC³
-@¦ŒÄ‚Ño‚¹‚锂ɂ‚¢‚Ä‚Í‚Ü‚¾–¢ŽÀ‘•c
-
- (db)
- mob_avail.txt
- ƒNƒ‰ƒCƒAƒ“ƒg‚É‚æ‚Á‚Ä”­¶‚·‚é‰Â”\«‚Ì‚ ‚éƒOƒ‰–â‘è‚Ì
- Žb’è‘Ήž
- mob_db.txt
- ƒoƒCƒIƒvƒ‰ƒ“ƒg—pmob‚̃Xƒe‚ðˆê•”C³
- mob_skill_db.txt
- ƒoƒCƒIƒvƒ‰ƒ“ƒg—pmob‚ɃXƒLƒ‹‚ðC³
-
- (src/map)
- skill.c - case AM_CANNIBALIZE: C³
-
---------------------
-//1160 by Nameless
-
-E1158‚Ìfix
-@ƒtƒFƒAƒŠ[ƒt‚Ì”ñˆÚ“®‰»‚ƌĂÑo‚³‚ꂽMOB‚ÌHP‚ð‰º•ûC³
-
- (src/map)
- skill.c - case AM_CANNIBALIZE: C³
-
---------------------
-//1158 by ‚à‚Á‚³‚è
-EmobŒã‘ÞŽÀ‘• @Ž©•ª‚ªŒü‚¢‚Ä‚é•û‚Æ‚Í‹t‚Éskilllv‚Ì•ª‚®‚ç‚¢“®‚«‚Ü‚·
- —£‚ê‚·‚¬‚éŒÄ‚Ñ–ß‚³‚ê‚È‚¢‚Ì‚ÅŽæ‚芪‚«ŒÄ‚Ñ–ß‚µ‚ðC³
- IW‚̎΂߈ʒu‚ª‚¨‚©‚µ‚©‚Á‚½‚Ì‚ðC³iƒoƒO•ñƒXƒŒƒbƒh part8 >>110)
-
- (src/map)
- skill.c ŒÄ‚Ñ–ß‚µC³AŒã‘ޒljÁAIWC³
- skill.h
- mob.c
- map.h
- (db)
- skill_db.txt
---------------------
-//1158 by Nameless
-
-EƒAƒ‹ƒPƒ~‚̃oƒCƒIƒvƒ‰ƒ“ƒg‚ðC³
-@ŠeLV‚É‚ ‚킹‚ÄAƒ}ƒ“ƒhƒ‰ƒSƒ‰Aƒqƒhƒ‰Aƒtƒ[ƒ‰AƒtƒFƒAƒŠ[ƒtAƒWƒIƒOƒ‰ƒtƒ@[
-@‚ðŒÄ‚Ño‚·‚悤‚É‚µ‚½
-
- (src/map)
- skill.c - case AM_CANNIBALIZE: C³
-
---------------------
-//1157 by eigen
-
-Eƒo[ƒhƒ_ƒ“ƒT[ƒXƒLƒ‹‚ÌŽg—p‚ÅMAPŽI‚ª—Ž‚¿‚é•s‹ï‡‚ðC³
-
- (src/map)
- skill.c - skill_unit_onout() C³
-
---------------------
-//1156 by eigen
-
-E¹‘Ì~•ŸŽg—pŽžAƒ‚ƒ“ƒN‚ªl”ƒJƒEƒ“ƒg‚³‚ê‚Ä‚¢‚È‚©‚Á‚½•s‹ï‡‚ðC³
-ithanks to –{ŽI‘ŠˆáƒXƒŒpart3 >>121Žj
-Eƒo[ƒhƒ_ƒ“ƒT[ƒXƒLƒ‹‚ÌŒø‰Ê‚ªØ‚ê‚È‚©‚Á‚½•s‹ï‡‚ðC³
-
- (src/map)
- skill.c - skill_unit_onout(), skill_check_condition_char_sub() C³
-
---------------------
-//1155 by latte
-EƒfƒBƒ{[ƒVƒ‡ƒ“‚ɉr¥ŽžŠÔ•t—^
-EƒTƒNƒŠƒtƒ@ƒCƒXF”{—¦C³‚ƃ{ƒX‚É—LŒø‚ÉB
-EƒOƒ‰ƒ“ƒhƒNƒƒX‚̃GƒtƒFƒNƒg‚ÌC³
-
- (db)
- skill_cast_db.txt
- skill_db.txt
- (src/map)
- battle.c
-
---------------------
-//1154 by eigen
-
-Eƒo[ƒhƒ_ƒ“ƒT[ƒXƒLƒ‹Žg—p‚ÅMAPŽI‚ª—Ž‚¿‚é–â‘è‚ðC³
-EƒSƒXƒyƒ‹‚ÌŽÀ‘•
-Eƒ}ƒOƒiƒ€ƒuƒŒƒCƒN‚ÌŽd—l‚ð–{ŽI‚ɇ‚킹‚Ä•ÏX(‰Î‘®«’ljÁƒ_ƒ[ƒW‚Í–¢ŽÀ‘•‚Å‚·)
-
- (db)
- skill_cast_db.txt - ƒSƒXƒyƒ‹, ƒ}ƒOƒiƒ€ƒuƒŒƒCƒN‚ÉŠÖ‚·‚éC³
- skill_require_db.txt - ƒ}ƒOƒiƒ€ƒuƒŒƒCƒN‚ÉŠÖ‚·‚éC³
- skill_unit_db.txt - ƒSƒXƒyƒ‹‚ÉŠÖ‚·‚éC³
- (src/map)
- battle.c - battle_calc_pet_weapon_attack(), battle_calc_mob_weapon_attack(),
- battle_calc_pc_weapon_attack(), battle_calc_magic_attack() C³
- clif.c - clif_parse_UseSkillToId(), clif_parse_UseSkillToId(),
- clif_parse_WalkToXY(), clif_parse_ActionRequest(),
- clif_parse_UseSkillToId(), clif_parse_UseSkillMap() C³
- map.h - MAX_STATUSCHANGE‚Ì‘‰Á
- pc.c - pc_natural_heal_sub() C³
- skill.h - ƒ}ƒOƒiƒ€ƒuƒŒƒCƒN, ƒSƒXƒyƒ‹‚ÉŠÖ‚·‚éó‘ÔˆÙíƒe[ƒuƒ‹’ljÁ
- skill.c - skill_castend_damage_id(), skill_castend_nodamage_id(),
- skill_unit_onout(), skill_unit_onplace_timer(),
- skill_init_unit_layout() C³
- status.c - status_change_start(), status_change_end() C³
-
---------------------
-//1153 by ‚Û‚¦
-
-Eƒq[ƒ‹AƒTƒ“ƒN‚ÌC³
-@(ƒCƒrƒ‹ƒhƒ‹ƒCƒhC‘•”õ’†‚ÉPv,GvˆÈŠO‚¾‚ƃ_ƒ[ƒW‚ªo‚È‚¢‚悤‚ÉC³)
-@(ŠY“–PC‚Ƀq[ƒ‹‚ðŽg—p‚µ‚½ê‡SP‚¾‚¯Á”ï)
-E•ú’u‚³‚ê‚Ä‚éversion.h‚ÌXV
- (src/map)
- skill.c - skill_castend_id(),skill_unit_onplace_timer() C³
- (src/common)
- version.h - mod version 1153
---------------------
-//1152 by p
-
-EzΔ­Œ©C³
- (db)
- item_db.txt - ŒÃ‚¢Šª•¨‚Ì getitem ”Ô†‚ð–ß‚µ
- (src/map)
- itemdb.c - zΔ­Œ©Žž¶¬ˆ—‚Ì•ÏX
- mob.c - zΔ­Œ©ˆ—‚Ì•ÏX
---------------------
-//1151 by p
-
-Eƒuƒ‰ƒbƒNƒXƒ~ƒXƒXƒLƒ‹zΔ­Œ©‚ÌŽÀ‘•(‰¼)
- (conf)
- battle_athena.conf - zΔ­Œ©—¦‚ÌŽw’è
- (db)
- item_findingore.txt - z΃hƒƒbƒv—¦‚ÌŽw’è
- item_db.txt - ŒÃ‚¢Šª•¨‚Ì getitem ”Ô†•ÏX
- (src/map)
- itemdb.c - db/item_findingore.txt ‚Ì“Ç‚Ýž‚Ý‚Æ”­Œ©Žž¶¬
- battle.h - Ý’è•ÛŽ—p‚Ì€–ڒljÁ
- battle.c - Ý’è“Ç‚Ýž‚݈—’ljÁ
- mob.c - zΔ­Œ©ˆ—’ljÁ
-
---------------------
-//1150 by Theia
-
-Eƒxƒmƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚ðjROŽd—l‚É•ÏX
-@(Š®‘S‚Å‚Í‚È‚¢‚̂ŕ⊮Šó–])
-EƒVƒƒ[ƒvƒVƒ…[ƒeƒBƒ“ƒO‚ÌŒvŽZŽ®‚ð•ÏX
-@(¡‚Ü‚Å‚ÌŒvŽZŽ®‚¾‚Æ•K’†‚µ‚Ä‚¢‚½)
- (db)
- skill_cast.txt
- skill_require_db.txt
- (src/map)
- skill.c - ƒxƒmƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚Ì”­“®ðŒ‚ð•ÏX
- battle.c - ƒxƒmƒ€ƒXƒvƒ‰ƒbƒVƒƒ[,ƒVƒƒ[ƒvƒVƒ…[ƒeƒBƒ“ƒO‚Ì”{—¦‚ð•ÏX
-
---------------------
-//1149 by eigen
-
-Eˆê•”‚̃_ƒ“ƒT[ƒo[ƒhƒXƒLƒ‹‚̉‰‘tƒXƒLƒ‹ã‚©‚ço‚é‚ÆMAPŽI‚ª—Ž‚¿‚é•s‹ï‡‚ðC³
-
- (src/map)
- skill.c - skill_unit_onout() C³
-
---------------------
-//1148 by eigen
-
-EƒXƒgƒŠƒbƒvƒXƒLƒ‹‚ª‰r¥’†’f‚³‚ê‚È‚¢‚悤•ÏX
-EƒXƒgƒŠƒbƒvƒXƒLƒ‹¬Œ÷—¦‚̃XƒLƒ‹ƒŒƒxƒ‹”äd‚ð5‚É•ÏX
-EƒoƒbƒNƒXƒ^ƒu‚ÌŽË’ö‚ð•Ší‚ÉŠÖŒW‚È‚­1‚É•ÏX
-EƒoƒbƒNƒXƒ^ƒuŽg—pŽžA‹|‚ð‘•”õ‚µ‚Ä‚¢‚é‚È‚çƒ_ƒ[ƒW”¼Œ¸‚É•ÏX
-EƒAƒVƒbƒhƒeƒ‰[‚ƃfƒ‚ƒ“ƒXƒgƒŒ[ƒVƒ‡ƒ“‚ª‰r¥’†’f‚³‚ê‚é‚悤•ÏX
-EƒAƒVƒbƒhƒeƒ‰[Žg—pŒãA‘ŠŽè‚ÌŠZ‚ð”j‰ó‚·‚邱‚ƂɬŒ÷‚µ‚½ê‡ƒVƒ‡ƒbƒNƒGƒ‚‚ðo‚·‚悤•ÏX
-Eƒƒ‹ƒgƒ_ƒEƒ“‚Å”j‰ó‚Å‚«‚é‰ÓŠ‚ð•Ší‚ÆŠZ‚Ì‚Ý‚É•ÏX
-Eƒ_ƒ“ƒT[ƒo[ƒh‚̉‰‘tƒXƒLƒ‹”͈͊O‚Éo‚Ä‚àŒø‰Ê‚ª20•bŽ‘±‚·‚é‚悤•ÏX
-i‚½‚¾‚µŽ„‚ð–Y‚ê‚È‚¢‚łƇ‘tƒXƒLƒ‹‚Íœ‚­j
-E‘qŒÉ‚ÌÅ‘åŽû—e—Ê‚ð300‚É•ÏX
-iˆÈãthanks to –{ŽI‘ŠˆáƒXƒŒPart3 >>115Žj
-Eƒƒ‹ƒgƒ_ƒEƒ“ŠZ”j‰óŠm—¦‚ð0.7`7%‚É•ÏX
-
- (db)
- skill_db.txt - cast_cancelArange‚ÌC³
- skill_unit_db.txt - (1148-fix‚ÌŽæ‚èž‚Ý)
- (src/common)
- mmo.h - MAX_STORAGE‚ð300‚É
- (src/map)
- battle.c - battle_calc_pc_weapon_attack() C³
- skill.c - skill_additional_effect(), skill_castend_nodamage_id(),
- skill_castend_damage_id(), skill_unit_onout() C³
-
---------------------
-//1147 by eigen
-
-EƒCƒ“ƒfƒ…ƒAŽg—pŒãA10•bŒo‚½‚È‚¢‚ÆÄŽg—p‚Å‚«‚È‚¢‚悤•ÏX
-EƒV[ƒYƒ‚[ƒh‚ł̓Cƒ“ƒfƒ…ƒA‚ðŽg—p‚·‚é‚ÆMDEF‚ªã‚ª‚邾‚¯‚É•ÏX
-EŽc‰eŽg—pŒãA2•bŒo‚½‚È‚¢‚ƈ¢C—…‚ðŽg—p‚Å‚«‚È‚¢‚悤•ÏX
-
- (src/map)
- map.h - #define MAX_SKILL_ID, unsigned int skillstatictimer[MAX_SKILL_ID] ’ljÁ
- clif.c - clif_parse_UseSkillToId(), clif_damage() C³
- skill.c - skill_castend_nodamage_id(), skill_castend_pos2(), skill_use_id() C³
- pc.c - pc_setnewpc(), pc_authok() C³
- status.c - status_get_dmotion() C³
- battle.c - battle_calc_damage() C³
-
---------------------
-//1146 by eigen
-
-EƒCƒ“ƒfƒ…ƒAŽg—pŽžLv‚ɉž‚¶‚ÄMDEF‚ªã‚ª‚é‚悤‚É•ÏX
-EƒCƒ“ƒfƒ…ƒAŽg—p’†7‰ñƒ_ƒ[ƒW‚ðŽó‚¯‚é‚Ɖ𜂷‚é‚悤•ÏX
-EΓŠ‚°‚̌Œèƒ_ƒ[ƒW‚ð50‚É•ÏX
-
- (src/map)
- battle.c - battle_calc_damage(), battle_calc_misc_attack() C³
- status.c - status_calc_pc(), status_change_start(), status_change_end() C³
-
---------------------
-//1145 by End_of_exam
-
-Estart ‚̃`ƒFƒbƒNŠÔŠu‚ª’Z‚·‚¬‚½‚Ì‚ðC³(start)
-Eskill_unit_effect() ‚©‚ç–³ŒÀƒ‹[ƒv‚É“Ë“ü‚µ‚ÄAƒXƒ^ƒbƒNƒI[ƒo[ƒtƒ[‚Å—Ž‚¿‚é
-@‰Â”\«‚ª‚ ‚éƒoƒO‚ðC³(skill.c)
-Eƒyƒbƒg‚Ì“Ç‚Ýž‚Ý‚ÉŽ¸”s‚µ‚½Žž‚É—Ž‚¿‚éƒoƒO‚ðC³(pet.c)
-E‚QdƒƒOƒCƒ“‚ÌØ’fˆ—‚ªˆá‚Á‚Ä‚¢‚½ƒoƒO‚ðC³(map.c)
-
-E1142‚̃}ƒOƒkƒXƒGƒNƒ\ƒVƒYƒ€‚ÌC³‚ðŒ³‚É–ß‚·(skill.c)
-EƒƒfƒBƒ^ƒeƒBƒI‚ÌSP‰ñ•œ—ÊC³‚ÌŽæ‚èž‚Ý(skill.c thanks to ‚È‚È‚µ‚³‚ñ)
-
- (/)
- start - ƒ`ƒFƒbƒNŠÔŠu‚ðC³
-
- (src/map)
- map.c - map_quit() C³
- pet.c - pet_recv_petdata() C³
- skill.c - skill_unit_onplace_timer() , skill_unit_effect() C³
- status.c - status_calc_pc() C³
-
---------------------
-//1144 by ¹
-
-EVC‚ŃRƒ“ƒpƒCƒ‹‚µ‚½‚Æ‚«Œx‚ªo‚é‚Ì‚ðC³B
-EŠÈˆÕƒAƒCƒeƒ€Eƒ‚ƒ“ƒXƒ^[¢ŠÒƒRƒ}ƒ“ƒh@im‚ð’ljÁB
-E@im’ljÁ‚É”º‚¢AEGIS‚ÅŽg‚í‚ê‚Ä‚¢‚é/item,/monster‚ðŽÀ‘•B
-@(AEGIS‚ÌŽd—l‚É‘¥‚è‘•”õ‚Í1ŒÂ’PˆÊE–¢ŠÓ’è‚Å
-@‚Ù‚©‚̃AƒCƒeƒ€‚Í30ŒÂ’PˆÊEŠÓ’èÏ‚Ý‚Åo‚Ü‚·B)
-E@monster‚ð¢ŠÒ•C”“ü—Í‚È‚µ‚Å¢ŠÒ‚Å‚«‚é‚悤‚É‚µ‚½B
-EƒRƒ}ƒ“ƒh“ü—Í‚ÌÛ‚Æ‚ ‚éðŒ‚ð–ž‚½‚·‚Æ
-@ƒoƒbƒtƒ@ƒI[ƒo[ƒtƒ[‚ª”­¶‚·‚éƒoƒO‚ðC³B
- (src/map)
- atcommand.h C³B
- atcommand.c
- atcommand_monster() C³B
- atcommand_itemmonster() ’ljÁB
- clif.c
- clif_parse_GMkillall() C³B
- clif_parse_GMsummon() C³B
- clif_parse_GMitemmonster() ’ljÁB
- status.c
- status_change_start() C³B
- (db)
- packet_db.txt C³B
- (conf)
- msg_athena.conf C³B
- atcommand_athena.conf C³B
-
---------------------
-//1143 by End_of_exam
-
-Emap_quit(), pc_setpos() ‚ðFX®—(map.c pc.c)
-Eƒ‚ƒ“ƒXƒ^[‚ªƒoƒVƒŠƒJ‚ðŽg‚¤‚Æ—Ž‚¿‚éƒoƒO‚ðC³(skill.c)
-Eƒ{ƒXƒ‚ƒ“ƒXƒ^[‚ɃƒL‚Ì‹©‚Ñ‚ªŒø‚¢‚Ä‚¢‚½‚Ì‚ðC³(mob.c)
-Eƒ_ƒ“ƒX“r’†‚ɃT[ƒo[“à‚̕ʂ̃}ƒbƒv‚Ɉړ®‚µ‚½ê‡AƒXƒLƒ‹ƒ†ƒjƒbƒg‚ªÁ‚¦‚È‚¢
-@i“]‘—‘O‚̃}ƒbƒv‚ÉŽc‚Á‚Ä‚¢‚éjƒoƒO‚ðC³B(pc.c)
-E1134‚ŃT[ƒo[ŠÔ‚̃[ƒvƒ|[ƒ^ƒ‹‚ðŽg‚Á‚½Žž‚ÉAƒXƒLƒ‹Žg—pŽÒ‚ªæ‚Á‚½‚çƒT[ƒo[‚ª
-@—Ž‚¿‚éƒoƒO‚ðC³(skill.c)
-E1134‚ŃnƒG‚̉H‚ðŽg‚Á‚ăT[ƒo[ŠÔ‚ðˆÚ“®‚µ‚½ê‡AƒAƒCƒeƒ€‚ªŒ¸‚ç‚È‚¢ƒoƒO‚ðC³(pc.c)
-
- (src/map)
- map.c - map_quit() C³
- mob.c - mobskill_castend_id() , mobskill_castend_pos(),
- mobskill_use_id(), mobskill_use_pos() C³
- pc.c - pc_useitem(), pc_setpos() C³Apc_remove_map() ’ljÁ
- pc.h - pc_remove_map() ’ljÁ
- skill.c - skill_castend_nodamege_id(), skill_unit_onplace() C³
-
---------------------
-//1142 by ‚Âñ
-Eƒ}ƒOƒkƒXƒGƒNƒ\ƒVƒYƒ€‚ÅŽí‘°‚ɃAƒ“ƒfƒbƒg‚ðŽ‚ƒ‚ƒ“ƒXƒ^[‚É“–‚½‚ç‚È‚©‚Á‚½‚Ì‚ðC³
- (src/map)
- skill.c - && race!=1‚ð’ljÁ
-
---------------------
-//1141.1 by BDPQ‹â [ 2005/02/21 ]
-E1141‚Ì“Y•t–Y‚ê‚̒ljÁ‚Å‚·B\‚µ–ó‚ ‚è‚Ü‚¹‚ñ‚Å‚µ‚½B
-EGMƒRƒ}ƒ“ƒh‚ðs‚Á‚½Žž‚̃ƒbƒZ[ƒW‚ð’ljÁ‚µ‚Ü‚µ‚½B
-
- (conf)
- msg_athena.conf - 113`117 ’ljÁ (@reload` ‚ðs‚Á‚½Žž‚̃ƒbƒZ[ƒW‚ð’ljÁ)
-
---------------------
-//1141 by BDPQ‹â [ 2005/02/20 ]
-EGMƒRƒ}ƒ“ƒh‚ð’ljÁ
- @reloadatcommand - atcommand_athena.conf ‚ðÄ“Çž‚·‚é
- @reloadbattleconf - battle_athena.conf ‚ðÄ“Çž‚·‚é
- @reloadgmaccount - gm_account_filename (ƒfƒtƒHƒ‹ƒg GM_account.txt ) ‚ðÄ“Çž‚·‚é
- @reloadstatusdb - job_db1.txt / job_db2.txt / job_db2-2.txt / refine_db.txt / size_fix.txt ‚ðÄ“Çž‚·‚é
- @reloadpcdb - exp.txt / skill_tree.txt / attr_fix.txt ‚ðÄ“Çž‚·‚é
-EGMƒRƒ}ƒ“ƒhu@reloadmobdbv‚Ńyƒbƒg‚̃f[ƒ^ƒx[ƒX‚àÄ“Çž‚·‚é‚悤‚É•ÏX
- * @reload` ‚ɂ̓Nƒ‰ƒCƒAƒ“ƒg‚̃ŠƒƒO‚ª•K—v‚Èꇂà—L‚è‚Ü‚·B
-EGMƒRƒ}ƒ“ƒhu@who+v‚ŃŒƒxƒ‹‚à•\Ž¦‚·‚é‚悤‚É•ÏX
-Eƒq[ƒ‹‚ð‰½ƒŒƒxƒ‹ˆÈã‚Å9999ŒÅ’è‚É‚·‚é‚©‚̃IƒvƒVƒ‡ƒ“(heal_counterstop)’ljÁ
-
- (conf)
- atcommand_athena.conf - reloadatcommand reloadbattleconf reloadgmaccount reloadstatusdb reloadpcdb ’ljÁ (ƒfƒtƒHƒ‹ƒg99)
- battle_athena.conf - heal_counterstop ’ljÁ (ƒfƒtƒHƒ‹ƒg11)
- help.txt - reloadatcommand reloadbattleconf reloadgmaccount reloadstatusdb reloadpcdb who+ ‚Ìà–¾‚ð’ljÁ
-
- (doc)
- conf_ref.txt - 5. conf/battle_athena.conf •ÒW (heal_counterstop ‚Ìà–¾‚ƃTƒ“ƒvƒ‹‚ð’ljÁ)
- - 6. atcommand_athena.conf •ÒW (à–¾‚ƃTƒ“ƒvƒ‹‚ÉÄ“ÇžŠÖ˜A‚ð’ljÁ)
-
- (src/map)
- atcommand.c - AtCommandInfo atcommand_info •ÒW (\‘¢‘Ì’è‹`)
- - atcommand_whop() •ÒW (ƒvƒŒƒCƒ„[‚̃Œƒxƒ‹‚à•\Ž¦‚·‚é‚悤•ÏX)
- - atcommand_reloadatcommand() ’ljÁ (atcommand_athena.conf Ä“Çž)
- - atcommand_reloadbattleconf() ’ljÁ (battle_athena.conf Ä“Çž)
- - atcommand_reloadgmaccount() ’ljÁ (gm_account_filename Ä“Çž)
- - atcommand_reloadstatusdb() ’ljÁ (ƒXƒe[ƒ^ƒXŠÖ˜ADB Ä“Çž)
- - atcommand_reloadpcdb() ’ljÁ (ƒvƒŒƒCƒ„[ŠÖ˜ADB Ä“Çž)
- - atcommand_reloadmobdb() •ÒW (ƒyƒbƒg‚̃f[ƒ^ƒx[ƒX‚à“Çž‚ނ悤•ÏX)
- atcommand.h - AtCommandType •ÒW (\‘¢‘Ì’è‹`)
-
- battle.c - battle_config_read() •ÒW (heal_counterstop ‚̒ljÁ)
- battle.h - Battle_Config •ÒW (heal_counterstop ‚̒ljÁ)
-
- skill.c - skill_castend_nodamage_id() •ÒW (9999ƒq[ƒ‹•”‚ð battle_athena.conf ‚ðŽQÆ‚·‚é‚悤•ÏX)
-
- pet.h - int read_petdb(); ’ljÁ (ƒyƒbƒgŠÖ˜ADB Ä“Çž—p)
-
- pc.h - int pc_readdb(void); ’ljÁ (ƒvƒŒƒCƒ„[ŠÖ˜ADB Ä“Çž—p)
-
- status.h - int status_readdb(void); ’ljÁ (ƒXƒe[ƒ^ƒXŠÖ˜ADB Ä“Çž—p)
-
---------------------
-//1140 by eigen
-Eˆê•”‚̊‹«‚Åathena-start‚Æstart‚ª³í‚É“®ì‚µ‚Ä‚¢‚È‚©‚Á‚½ƒoƒO‚ðC³
-
- athena-start - ‰üsƒR[ƒh‚ð0A‚É“ˆê
- start - ‰üsƒR[ƒh‚ð0A‚É“ˆê
-
---------------------
-//1139 by ‚à‚Á‚³‚è
-ENPCŽæ‚芪‚«ŒÄ‚Ñ–ß‚µƒXƒLƒ‹ŽÀ‘•
-EƒRƒƒ“ƒg‚³‚ê‚Ä‚é9999ƒq[ƒ‹(skilllv>10‚ÌŽž)AL”͈̓ƒeƒI(skilllv>10‚ÌŽž)AL”͈̓nƒ“ƒ}[ƒtƒH[ƒ‹(skilllv>5‚ÌŽž)‚̃Rƒƒ“ƒgŽæ‚èŠO‚µB
-EL”͈Ílov‚Ì•t‚¯‰Á‚¦(skilllv>10‚ÌŽž)
-—á
-1312,Žæ‚芪‚«ŒÄ‚Ñ–ß‚µ—ƒ^[ƒgƒ‹ƒWƒFƒlƒ‰ƒ‹,attack,354,1,3000,0,0,no,self,always,0,,,,,,10
-1063,9999ƒq[ƒ‹—ƒ‹ƒiƒeƒBƒbƒN,idle,28,11,10,2000,60000,yes,self,always,0,,,,,,@
-
- (src/map)
- skill.c npc_recallƒXƒLƒ‹’ljÁ,ã‹L‚̃Rƒƒ“ƒgŽæ‚èŠO‚µ
- skill.h NPC_RECALL = 354‚ð’ljÁ
- mob.c ƒXƒLƒ‹’ljÁ‚Ì‚½‚ß‚ÉuŽæ‚芪‚«ƒ‚ƒ“ƒXƒ^[‚̈—v•”•ª‚É•t‚¯‰Á‚¦
- mob.h int mob_countslave(struct mob_data *md);‚ð’ljÁ
- map.h struct mob_data‚Érecall_flag‚Ærecallmob_countƒƒ“ƒo[’ljÁ
- (db)
- skill_db.txt ƒXƒLƒ‹’ljÁ
-
---------------------
-//1138 by End_of_exam
-
-E1132‚Ìsocket.c‚É•´‚êž‚ñ‚Å‚¢‚½‚©‚È‚è[‚ȃoƒOi‘—Mƒf[ƒ^‚ªƒ‰ƒ“ƒ_ƒ€‚É
-@‘‚«Š·‚í‚é‰Â”\«‚ª‚ ‚éƒoƒOj‚ðC³(socket.c)
-E1134‚Å‘g‚Ýž‚ñ‚¾ƒAƒCƒeƒ€dupe‘Îô‚ª•sŠ®‘S‚¾‚Á‚½‚Ì‚ðC³(pc.c party.c guild.c)
-
- (src/common/)
- socket.c - send_from_fifo() C³
-
- (src/map)
- pc.c - pc_setpos() C³
- party.c - FXC³
- guild.c - FXC³
-
---------------------
-//1137 by ‚¢‚Ç
-
-EƒT[ƒo[ƒXƒiƒbƒvƒVƒ‡ƒbƒg
-
---------------------
-//1136 by by eigen
-
-E1135‚ÅÁ‚¦‚Ä‚¢‚½battle_athena.conf‚Ì€–ڂƃfƒtƒHƒ‹ƒg’l‚𕜊ˆ
-Econf_ref.txt‚Énext_exp_limit‚Ìà–¾‚ð’ljÁ
-
- (conf)
- battle_athena.conf - Á‚¦‚½€–ڂƃfƒtƒHƒ‹ƒg’l‚𕜊ˆ
- (doc)
- conf_ref.txt - next_exp_limit‚Ìà–¾‚ð’ljÁ
-
---------------------
-//1135 by by Toshi^2
-Eƒpƒbƒ`1125‚ÅC³‚³‚ꂽAŒoŒ±’l‚ÌãŒÀÝ’è‚ð]—ˆ•ûŽ®‚̧ŒÀ–³‚µ‚à‘I‚ׂé‚悤‚É•ÏX
-
- (db)
- battle_athena.conf - next_exp_limit‚ð’ljÁB
- (src/map)
- battle.c - battle_config_read() C³
- battle.h - struct Battle_Config{}‚É int next_exp_limit; ‚ð’ljÁB
- pc.c - pc_gainexp() C³
-
---------------------
-//1134 by End_of_exam
-
-E1132‚Å#undef close‚ð–Y‚ê‚Ä‚¢‚½ƒoƒO‚ðC³(socket.c)
-E1133‚̃AƒCƒeƒ€dupe‘Îô‚ª•sŠ®‘S‚¾‚Á‚½‚Ì‚ðC³(map.c)
-Eathena-start stop , kill ‚̇”Ô‚ðmap -> char -> login ‚É•ÏX
-@@@@(athena-start thanks to eigen‚³‚ñ)
-
- (/)
- athena-start - athena-start stop , kill ‚̇”ÔC³
-
- (src/common)
- socket.c - #undef close ’ljÁ
-
- (src/map)
- map.c - map_quit() C³
-
---------------------
-//1133 by End_of_exam
-
-Emapflag nosave ‚ªŽw’肳‚ꂽƒ}ƒbƒv‚ÅŽ€‚ñ‚ŃŠƒXƒ^[ƒg‚·‚鎞‚ÉAƒZ[ƒuƒ|ƒCƒ“ƒg‚ª
-@•Êƒ}ƒbƒvƒT[ƒo[‚É‚ ‚é‚ÆA(nul,0,0)‚É”ò‚΂³‚ê‚Ä‚¢‚½ƒoƒO‚ðC³(pc.c)
-Eƒ}ƒbƒvƒT[ƒo[‚𕪔z‚µ‚Ä‚¢‚鎞‚ÉA×H‚ð‚µ‚½“ÁŽê‚ȃc[ƒ‹‚ðŽg‚¤‚±‚Æ‚É‚æ‚Á‚ÄA
-@ƒAƒCƒeƒ€‚ªdupe‚Å‚«‚½ƒoƒO‚ðC³B(pc.c)
-Ebuildin_menu, buildin_select() ‚ªƒoƒbƒtƒ@ƒI[ƒo[ƒtƒ[‚ð‹N‚±‚µ‚Ä‚¢‚½
-@ƒoƒO‚ðC³(script.c)
-
- (src/map)
- pc.c - pc_makesavestatus(), pc_setpos(), pc_autosave_sub() C³
- script.c - buildin_menu(), buildin_select() C³
-
---------------------
-//1132 by End_of_exam
-E@users ƒRƒ}ƒ“ƒh(ƒT[ƒo[“à‚Ìl”ƒ}ƒbƒv‚ð•\Ž¦)‚ð’ljÁ(atcommand.c / h)
-Eguild_check_alliance() ‚ðŒÄ‚Ño‚·‚Æ‚«‚̃`ƒFƒbƒN‚ð’ljÁ(mob.c battle.c)
-Eƒ}ƒbƒvƒT[ƒo[•ª”zŽž‚ɃMƒ‹ƒh‚̃ƒ“ƒo[‚ª”²‚¯‚½ŽžA‚»‚̃Mƒ‹ƒhƒƒ“ƒo[‚ª
-@ˆêl‚àƒƒOƒCƒ“‚µ‚Ä‚¢‚È‚¢ƒ}ƒbƒvƒT[ƒo[‚ª—Ž‚¿‚Ä‚¢‚½‚Ì‚ðC³(guild.c)
-E1130‚ÅŒ©Ø‚è‚̉ñ”ð—¦ã¸‚ªÁ‚¦‚Ä‚¢‚½‚Ì‚ð–ß‚·(status.c)
-Epid ‘Ήž”Å‚Ìstart, athena-start ‚ð“‡(start , athena_start)
-E“c‘ã–C‘ÎôAShinomori‚³‚ñ‚Ì do_sendrecv() ‚‘¬‰»‚ð‘g‚Ýž‚Þ
-@(socket.c socket.conf Makefile)
-Esocket ‚Ì‚‘¬‰»
-@@1. FIFOFLUSH ‚ªŽÀs‚³‚ê‚é•p“x‚ð‰º‚°‚é(socket.c char.c)
-@@2. •s³‚Èfd‚ð0 ‚É•ÏX(socket.c socket.h chrif.c char.c)
-
- (/)
- start - pid ƒtƒ@ƒCƒ‹‚ɑΉž‚·‚é‚悤‚ÉC³
- sthena-start - pid ƒtƒ@ƒCƒ‹‚ɑΉž‚·‚é‚悤‚ÉC³
- Makefile - "-D_XOPEN_SOURCE -D_BSD_SOURCE" ’ljÁ
-
- (conf/)
- help.txt - @users ’ljÁA@mes ‚ÌC³
- socket.conf - ƒAƒNƒZƒX§ŒÀ‚ÌÝ’èƒtƒ@ƒCƒ‹
-
- (src/common/)
- socket.c - ƒAƒNƒZƒX§ŒÀ‚̒ljÁAFX‚‘¬‰»
- socket.h - FIFO–½—ß‚Ì‚‘¬‰»
-
- (src/char/)
- char.c - parse_tologin(), parse_char() XV
-
- (src/map/)
- atcommand.c - @users ’ljÁ
- atcommand.h - @users ’ljÁ
- battle.c - battle_calc_damage() C³
- chrif.c - •s³‚Èfd‚ð0 ‚É•ÏX‚µ‚½‚Ì‚É”º‚¤C³
- guild.c - guild_member_leaved() C³
- mob.c - mob_gvmobcheck() C³
- status.c - status_calc_pc() C³
-
---------------------
-//1131 by eigen
-EƒMƒ‹ƒhŠg’£‚Ìl”‘•ª‚ð+2/Lv‚©‚ç+4/Lv‚É•ÏX
-EƒƒeƒIƒXƒg[ƒ€‚ɃXƒ^ƒ“‚ª‚©‚©‚é‚悤C³
-Eƒ[ƒhƒIƒuƒ”ƒ@[ƒ~ƒŠƒIƒ“‚ɈÈłª‚©‚©‚é‚悤C³
-Eƒqƒ‹ƒgƒoƒCƒ“ƒfƒBƒ“ƒO‚ðŽæ‚Á‚Ä‚¢‚ê‚ÎSTR+1 ATK+4‚ª•t‚­‚悤•ÏX
-Eƒqƒ‹ƒgƒoƒCƒ“ƒfƒBƒ“ƒO‚ðŽæ‚Á‚Ä‚¢‚ê‚ÎAREOTEWP‚ª‚ÌŒø‰ÊŽžŠÔ‚ª10%’·‚­‚È‚é‚悤•ÏX
-EAREOT‚̃p[ƒeƒB[ƒƒ“ƒo[Œø‰ÊŽžŠÔŒ¸­‚ð“P”p
-EƒtƒƒXƒgƒ_ƒCƒo[‚Å“€Œ‹‚·‚éÛA“€Œ‹ŽžŠÔ‚ªMDEF‚ɉe‹¿‚³‚ê‚é‚悤•ÏX
-Eskill_db.txtAskill_require_db.txtAskill_cast_db.txt‚ðOWN‚âŠeEWiki‚È‚Ç‚ðŽQl‚ÉC³
-
- (src/map)
- skill.c
- status.c
- (db)
- skill_db.txt
- skill_cast_db.txt
- skill_require_db.txt
-
---------------------
-//1130 by eigen
-EŠŽŒÀŠE—Ê‘‰Á‚Ì+100/Lv‚ð+200/Lv‚ÉC³
-EƒV[ƒt‚ÌãˆÊE‚ɉ—‚¢‚ĉñ”𗦑‰Á‚ÌFlee㸗¦+3/Lv‚ð+4/Lv‚ÉC³
-EƒAƒTƒVƒ“Œn‚ª‰ñ”𗦑‰Á‚ðŽæ“¾‚µ‚Ä‚¢‚éê‡AˆÚ“®‘¬“x‚ª+0.5%/Lv‚É‚È‚é‚悤C³
-EƒvƒŒƒbƒVƒƒ[‚ÌSPUŒ‚‚ðŽÀ‘•
-EƒvƒŠƒU[ƒuAƒtƒ‹ƒXƒgƒŠƒbƒvA•Ší¸˜BAƒXƒŠƒ€ƒsƒbƒ`ƒƒ[Aƒtƒ‹ƒPƒ~ƒJƒ‹ƒ`ƒƒ[ƒW
-‚ðdb‚ɒljÁ
-
- (src/map)
- skill.c - skill_additional_effect() C³
- status.c - status_calc_pc() C³
- (db)
- skill_db.txt
- skill_cast_db.txt
- skill_require_db.txt
- skill_tree.txt
-
---------------------
-//1129 by En_of_exam
-
-ENPC ƒCƒxƒ“ƒg‚ªd•¡‚µ‚½ê‡‚̃ƒ‚ƒŠ‰ð•úŽè‡‚ªˆá‚Á‚Ä‚¢‚½ƒoƒO‚ðC³
-@@(npc.c thanks to TOSHI^2‚³‚ñ)
-
- (src/map)
- npc.c - npc_parse_script() C³
-
---------------------
-//1128 by ”Y‚ß‚él
-EƒAƒCƒeƒ€‚ðÁ”‚¸‚ÉŽg—p‚·‚é‚©‚̃IƒvƒVƒ‡ƒ“’ljÁ
-EƒJ[ƒhA‘•”õ•iAƒGƒ‹EƒIƒŠ‚̃hƒƒbƒv—¦‚ð•Ê‚ÉÝ’èo—ˆ‚é‚悤‚ɃIƒvƒVƒ‡ƒ“’ljÁ
-Ebattle_athena.conf‚̉ŠúÝ’è‚Å–îE¹…“™‚ð쬎ž‚É–¼‘O‚ð•t‚¯‚È‚¢‚悤‚É•ÏX
-@i–{ŽI‚Å‚Í‚Ü‚¾—ˆ‚Ä‚È‚¢‚ÆŽv‚Á‚½‚̂ʼnŠúÝ’è‚ð•Ï‚¦‚Ü‚µ‚½j
- (src/map)
- battle.c
- mob.c
- pc.c
- battle.h
- (conf)
- battle_athena.conf
-
---------------------
-//1127 by End_of_exam
-
-Egetarraysize() ‚ª³‚µ‚¢’l‚ð•Ô‚³‚È‚¢ƒoƒO‚ðC³(script.c)
-@‚±‚̃oƒO‚̉e‹¿‚ÅAdeletearray() –½—ß‚Ì“®ì‚ª³í‚È‚à‚̂ƈقȂÁ‚Ä‚¢‚Ü‚µ‚½B
-
-Ebuildin_deletearray() ‚ÌÅ“K‰»(script.c)
-EƒVƒOƒiƒ‹ˆ—’†‚ÉÄ“xƒVƒOƒiƒ‹‚ªŒÄ‚΂ê‚é‰Â”\«‚ɑΈ‚·‚é(core.c)
-EˆÏ‘õ”Ì”„‚ð’ljÁ‚µ‚Ä‚Ý‚é(npc_test_seller.txt)
-
- (src/map)
- script.c - getarraysize() , buildin_deletearray() C³
-
- (src/common)
- core.c - sig_proc() C³
-
- (script/sample)
- npc_test_seller.txt - ˆÏ‘õ”Ì”„NPC
-
---------------------
-//1126 by eigen
-Eƒƒ‚ƒ‰ƒCƒY‚ÌŒø‰Ê‰ñ”‚Ɖr¥’Zk”ä—¦‚ð‚»‚ê‚¼‚ê5‰ñA1/2‚ÉC³
-
- (src/map)
- skill.c - 1/3‚É‚È‚Á‚Ä‚¢‚é‚Ì‚ð1/2‚ÉC³
- status.c - 3‰ñ‚É‚È‚Á‚Ä‚¢‚é‚Ì‚ð5‰ñ‚ÉC³
-
---------------------
-//1125 by lizorett
-Eƒuƒ‰ƒ“ƒfƒBƒbƒVƒ…ƒXƒsƒA‚̃mƒbƒNƒoƒbƒN‚ð3ƒZƒ‹‚É‚µAƒ~ƒXŽž‚ɂ̓mƒbƒNƒoƒbƒN‚µ‚È‚¢
-‚悤•ÏX
-EƒXƒsƒAƒXƒ^ƒu‚ð‘ÎÛ‚©‚玩•ª‚ÉŒü‚©‚Á‚Ä4ƒ}ƒX‚͈̔ÍUŒ‚‚É•ÏX(–{ŽIŽd—l)
-E‘é/“ŠÎ‚ðƒjƒ…ƒ}‚Å–h‚°‚é‚悤•ÏX
-Eƒ{ƒEƒŠƒ“ƒOƒoƒbƒVƒ…‚ª‘ÎۂɃ~ƒX‚µ‚½ê‡‚ɂ̓mƒbƒNƒoƒbƒN‚µ‚È‚¢‚悤•ÏX
-Eƒ\ƒEƒ‹ƒuƒŒƒCƒJ[‚̃_ƒ[ƒWŒvŽZAƒjƒ…ƒ}‚Ń~ƒX‚É‚È‚é‚悤•ÏX
-EŠl“¾ŒoŒ±’l‚ÌãŒÀ(Œ»ƒŒƒxƒ‹‚Ì•K—vŒoŒ±’l-1)‚ðÝ’è
-EƒoƒWƒŠƒJ“WŠJŽž‚É“WŠJŽÒ‚̓mƒbƒNƒoƒbƒN‚µ‚È‚¢‚悤•ÏX
-EƒƒeƒIƒAƒTƒ‹ƒg‚𑦎ž”­“®AŽg—pŽÒ’†SA‰r¥500msŒÅ’èAƒGƒtƒFƒNƒg—L‚É•ÏX
-EƒXƒgƒŠƒbƒvƒEƒFƒ|ƒ“Žž‚Ìmob‚ÌUŒ‚—͒ቺ‚ð10%‚É•ÏX
-EŠ|‚¯‚ç‚ê‚Ä‚¢‚é‚à‚Ì‚æ‚è’჌ƒxƒ‹‚̃uƒŒƒX‚É‚æ‚èŽô‚¢/Ή»‚ª‰ðœ‚Å‚«‚é‚悤•ÏX
-Eƒ\ƒEƒ‹ƒo[ƒ“/ƒ}ƒCƒ“ƒhƒuƒŒ[ƒJ[/ƒ\ƒEƒ‹ƒ`ƒFƒ“ƒWŽÀ‘•
-EƒVƒƒ[ƒvƒVƒ…[ƒeƒBƒ“ƒO‚ðŽËü‚É‚¢‚é“G‚É‚àƒ_ƒ[ƒW‚ð—^‚¦‚é‚悤•ÏXAƒNƒŠƒeƒBƒJƒ‹
-Šm—¦+20%‚Å–hŒä–³Ž‹ƒ_ƒ[ƒW‚É•ÏX
-E“ŠÎ‚ȂLjꕔ‚̃XƒLƒ‹‚ª‘‚È‚Ç‚É1ƒ_ƒ[ƒW‚É‚È‚ç‚È‚¢–â‘è‚ðC³
-
- (db)
- skill_db.txt- BDS/ƒƒeƒIƒAƒTƒ‹ƒg•ÏXAƒXƒLƒ‹’ljÁ
- skill_cast_db.txt
- - ƒXƒLƒ‹’ljÁ
- skill_require_db.txt
- - ƒXƒLƒ‹’ljÁ
- (src/map)
- battle.c - ƒ\ƒEƒ‹ƒuƒŒƒCƒJ[‚̃_ƒ[ƒWŒvŽZ‚ð•ÏX
- - ƒVƒƒ[ƒvƒVƒ…[ƒeƒBƒ“ƒO‚̃NƒŠƒeƒBƒJƒ‹Šm—¦C³
- - ‘é/“ŠÎ‚ðƒjƒ…ƒ}‚Å–h‚°‚é‚悤•ÏX
- skill.h - SC_MINDBREAKER’ljÁ
- skill.c - BDS/BB‚̃mƒbƒNƒoƒbƒN‚ðC³
- - ƒXƒsƒAƒXƒ^ƒu‚ð”͈ÍUŒ‚‚É•ÏX
- - ƒƒeƒIƒAƒTƒ‹ƒgC³
- - ƒ\ƒEƒ‹ƒo[ƒ“/ƒ}ƒCƒ“ƒhƒuƒŒ[ƒJ[/ƒ\ƒEƒ‹ƒ`ƒFƒ“ƒWŽÀ‘•
- path.c - ƒVƒƒ[ƒvƒVƒ…[ƒeƒBƒ“ƒO‚ÌŽËüŒvŽZ‚ð’ljÁ
- pc.c - Šl“¾ŒoŒ±’l‚ÌãŒÀ(‘O‚̃Œƒxƒ‹‚ÌŒoŒ±’l-1)‚ðÝ’è
- status.c - ƒ}ƒCƒ“ƒhƒuƒŒ[ƒJ[‚Ìmatkã¸/mdefŒ¸­‚ÌŽÀ‘•
- map.h - ƒVƒƒ[ƒvƒVƒ…[ƒeƒBƒ“ƒO‚ÌŽËüŒvŽZ—p\‘¢‘Ì‚ð’ljÁ
-
---------------------
-//1124 by ‚à‚Á‚³‚è
-“G‚ªŽg‚¤”š—ô”g“®ŽÀ‘•
-Œø‰Ê
-atk1,atk2 1000*skilllv‰ÁŽZ
-hit 20*skilllv‰ÁŽZ
-
- (src/map)
- skill.c
- skill.h NPC_EXPLOSIONSPIRITSŠÖŒW‚ð’ljÁ
- status.c@@@@
- (db)
- skill_db.txt
- skill_cast_db.txt
-
-
-
---------------------
-//1123 by Nameless
-EAthenaƒT[ƒrƒX‰»ƒLƒbƒg‚ð’ljÁ‚µ‚Ü‚µ‚½B(NT/2000/XP/2003/LH)
-@Ú‚µ‚¢•û–@‚Ídoc“à‚Ìinstasv.txt‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢
-
- (bin/tool)
- instasv.bat - ƒT[ƒrƒX“o˜^—pƒoƒbƒ`
- delasv.bat - ƒT[ƒrƒX–•Á—pƒoƒbƒ`
- (doc/)
- instasv.txt - à–¾‘(ƒeƒLƒXƒg”Å)
-
---------------------
-//1122 by End_of_exam
-
-E1120‚Ìstrdb ‚̃L[‚ð•Û‘¶‚µ–Y‚ê‚Ä‚¢‚½ƒoƒOC³idb.cj
-E”O‚Ì‚½‚ß1121A1120‚Ìreadme ‚ðƒ}[ƒW‚µ‚ÄA—¼•û‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚½ƒtƒ@ƒCƒ‹‚ð“Y•t‚·‚é
-
- (src/char)
- char.c - 1121‚Ì‚à‚Ì‚ð“Y•t
-
- (src/common)
- mmo.h - 1121‚Ì‚à‚Ì‚ð“Y•t
- db.h - 1120‚Ì‚à‚Ì‚ð“Y•t
- db.c - strdb ‚̃L[‚ð•Û‘¶‚·‚é‚悤‚É‚·‚é
-
- (src/map)
- battle.c - 1121‚Ì‚à‚Ì‚ð“Y•t
- guild.c - 1121‚Ì‚à‚Ì‚ð“Y•t
- guild.h - 1121‚Ì‚à‚Ì‚ð“Y•t
- mob.c - 1121‚Ì‚à‚Ì‚ð“Y•t
- skill.c - 1121‚Ì‚à‚Ì‚ð“Y•t
- skill.h - 1121‚Ì‚à‚Ì‚ð“Y•t
-
---------------------
-//1121 by _
-
-Eƒ[ƒhƒiƒCƒg/ƒpƒ‰ƒfƒBƒ“‚̃ƒOƒCƒ“Žž‚̃Gƒ‰[‘Îô
-EGv‚Å‚Ì“¯–¿‚̈µ‚¢‚ðC³
-@ƒGƒ“ƒyƒŠƒEƒ€UŒ‚•s‰ÂAƒK[ƒfƒBƒAƒ“‚©‚çUŒ‚‚³‚ê‚È‚¢‚悤‚ÉC³
-EV’ljÁƒXƒLƒ‹—p‚̒蔒ljÁC³
-
- (src/char)
- char.c
- C³ mmo_char_send006b()
- (src/common)
- mmo.h
- C³ MAX_SKILL=500
- ’ljÁ VƒMƒ‹ƒhƒXƒLƒ‹(ƒRƒƒ“ƒgƒAƒEƒg‚µ‚Ä‚Ü‚·)
- (src/map)
- battle.c
- C³ battle_calc_damage()
- guild.c
- guild.h
- ’ljÁ guild_check_alliance()
- mob.c
- C³ mob_gvmobcheck()
- skill.c
- C³ SkillStatusChangeTable[] (420-490)
- skill.h
- C³ MAX_SKILL_DB=500
- ’ljÁ 475ˆÈ~‚ÌVƒXƒLƒ‹ID
-
---------------------
-//1120 by End_of_exam
-
-Edb_foreach()‚̌ĂÑo‚µæ‚Ådb_erase()‚ªŒÄ‚Ño‚³‚ê‚Ä‚¢‚邳‚ê‚Ä‚¢‚éê‡A
-@•¡”‰ñ“¯‚¶ƒL[‚ÅŠÖ”‚ðŒÄ‚Ño‚·‰Â”\«‚ª‚ ‚éƒoƒO‚ðC³(db.h db.c)
-
-@cygwinã‚Å‚Qdfree‚ð‚µ‚½ê‡AƒvƒƒOƒ‰ƒ€‚ª–\‘–‚·‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B
-@charŽI‚Æ‚ÌÚ‘±‚ªØ‚ꂽmap ŽI‚ª–\‘–‚·‚éƒoƒO‚ÍA‚±‚ê‚É‹Nˆö‚µ‚Ä‚¢‚Ü‚·B
-
- (src/common)
- db.c - db_erase‚ðˆêŽž“I‚ɃƒbƒN‚·‚é‹@”\’ljÁ
- db.h - db_erase‚ðˆêŽž“I‚ɃƒbƒN‚·‚é‹@”\’ljÁ
-
---------------------
-//1119 by ICO
-
-ENPCƒXƒLƒ‹(ƒuƒŒƒCƒNƒEƒFƒ|ƒ“AƒuƒŒƒCƒNƒA[ƒ}[AƒuƒŒƒCƒNƒwƒ‹ƒ€AƒuƒŒƒCƒNƒV[ƒ‹ƒh)‚ÌŽÀ‘•
-Ebattle_athena.conf‚Émonster_damage_delay‚ð’ljÁB
-@no‚ðŽw’è‚·‚é‚ÆFW“™‚̃mƒbƒNƒoƒbƒNƒXƒLƒ‹‚Ì‹““®‚ª‘½­–{ŽI‚ɋ߂­‚©‚àcH
-
- (db)
- skill_db.txt
- skill_cast_db.txt
- (conf/)
- battle_athena.conf
- monster_damage_delay ’ljÁ
- (map/)
- battle.c
- battle.h
- mob.c
- monster_damage_delayŠÖ˜A‚ð’ljÁ
- skill.c
- skill.h
- skill_additional_effect,skill_castend_damage_id C³
-
---------------------
-//1118 by BDPQ‹â [ 2005/02/10 ]
-¡ƒf[ƒ^ƒx[ƒX‚ª•ÏX‚³‚ê‚Ä‚¢‚Ü‚·B“±“üŽž‚ɂ͌䒈ӂ­‚¾‚³‚¢¡
-EƒXƒLƒ‹‚̌Œè‰r¥ŽžŠÔ‚ð skill_cast_db.txt ‚Ɉړ®B
- ‰r¥ŽžŠÔ‚ÌŒvŽZ‚ÍA (’Êí‰r¥ + ŒÅ’è‰r¥)*ƒƒ‚ƒ‰ƒCƒY•â³ ‚Æ‚È‚è‚Ü‚·B
- skill_cast_db‚Ì‘Ž®‚Í
- [ID],[cast_list(’Êí‰r¥)],[fixed_cast_list(ŒÅ’è‰r¥)],[delay_list(ƒfƒBƒŒƒC)],[upkeep_time(ˆÛŽŽžŠÔ)],[upkeep_time2(ˆÛŽŽžŠÔ2)] ‚Å‚·B
-EƒAƒuƒ‰ƒJƒ^ƒuƒ‰‚ðƒfƒBƒŒƒC‚ÉASPD‚É‚æ‚éƒfƒBƒŒƒC‚ð•t‰Á‚µ‚È‚¢‚悤C³(‘¦”­“®ƒXƒLƒ‹—p)
-EV2ŽŸE‚Ìskill_cast_db‚ÉŠÖ‚·‚逖ڂÌC³
-
- (src/map)
- skill.c - skill_use_id() C³ (‰r¥ŽžŠÔŒvŽZ•” E ƒƒ‚ƒ‰ƒCƒY/–‚–@—Í‘• ŒÅ’è‰r¥ŽžŠÔ•”íœ)
- (ƒAƒuƒ‰ƒJƒ^ƒuƒ‰‚ÌC³)
- skill_use_pos() C³ (‰r¥ŽžŠÔŒvŽZ•”)
- skill_readdb() C³ (cast_db “Çž•”)
- skill.h - skill_db C³ (fixedcast‚̒ljÁ)
- skill_get_fixedcast() ’ljÁ (db‚©‚çŒÅ’è‰r¥ŽžŠÔ‚̎擾)
-
- (db)
- skill_cast_db.txt- fixed_cast_list ’ljÁ (ŒÅ’è‰r¥ŽžŠÔ)
- –‚–@—Í‘•-700Aƒƒ‚ƒ‰ƒCƒY-5000‚ÉÝ’è
-
- 361(ƒAƒXƒ€ƒvƒeƒBƒI) C³ ( R.O.M 776‚ðŽQl‚ɉr¥/ƒfƒBƒŒƒC‚ðC³ )
- 365(ƒ}ƒWƒbƒNƒNƒ‰ƒbƒVƒƒ[)C³ ( R.O.M 776‚ðŽQl‚ɉr¥/ƒfƒBƒŒƒC‚ð’ljÁ )
- 373(ƒ‰ƒCƒt’u‚«Š·‚¦) C³ ( R.O.M 776‚ðŽQl‚ɃfƒBƒŒƒC‚ðC³ )
- 375(ƒ\ƒEƒ‹ƒo[ƒ“) ’ljÁ ( R.O.M 776‚ðŽQl‚ɃfƒBƒŒƒC‚ð’ljÁ ) ( ƒXƒLƒ‹Œø‰Ê‚ÍŽÀ‘•‚µ‚Ä‚¢‚Ü‚¹‚ñ )
- 381(ƒtƒ@ƒ‹ƒRƒ“ƒAƒTƒ‹ƒg) C³ ( R.O.M 776‚ðŽQl‚ɃfƒBƒŒƒC‚ðC³ )
- 383(ƒEƒBƒ“ƒhƒEƒH[ƒN) C³ ( R.O.M 776‚ðŽQl‚ɉr¥/ƒfƒBƒŒƒC/Œø‰ÊŽžŠÔ‚ðC³ )
- 384(ƒƒ‹ƒgƒ_ƒEƒ“) C³ ( R.O.M 776‚ðŽQl‚ɉr¥/ƒfƒBƒŒƒC‚ðC³ )
- 387(ƒJ[ƒgƒu[ƒXƒg) C³ ( R.O.M 776‚ðŽQl‚ÉŒø‰ÊŽžŠÔ‚ðC³ )
- 398(ƒwƒbƒhƒNƒ‰ƒbƒVƒ…) C³ ( R.O.M 776‚ðŽQl‚ɃfƒBƒŒƒCŽ‘±ŽžŠÔ‚ðC³ )
- 406(ƒƒeƒIƒAƒTƒ‹ƒg) C³ ( R.O.M 776‚ðŽQl‚ɉr¥/ƒfƒBƒŒƒC‚ð’ljÁ )
-
- (doc)
- db_ref.txt - 1. db/skill_cast_db.txt C³ (fixed_cast_list‚Ì€–Ú‚ð’ljÁ)
-
---------------------
-//1117 by End_of_exam
-
-Eƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚ð“Åó‘Ô‚Ì“G‚ÉŽg—p‚µ‚½‚ªAŽ¸”s‚µ‚½Žži“Gƒ‚ƒ“ƒXƒ^[‚Ì
-@HP‚ª2/3 ˆÈゾ‚Á‚½Žžj‚É[‚ȃƒ‚ƒŠƒŠ[ƒN‚ª‹N‚«‚Ä‚¢‚½ƒoƒO‚ðC³(skill.c)
-E‚ ‚È‚½‚Ɉ§‚¢‚½‚¢‚ªŽ¸”s‚µ‚½Žž‚É[‚ȃƒ‚ƒŠƒŠ[ƒN‚ª‹N‚«‚Ä‚¢‚½ƒoƒO‚ðC³(skill.c)
-
-@ã‚Q‚‚ÍA‹¤‚Émap_freeblock_unlock() ‚ª”²‚¯‚Ä‚¢‚éˆ×‚É”­¶‚µ‚Ä‚¢‚Ü‚µ‚½B
-@ƒhƒƒbƒvƒAƒCƒeƒ€AƒXƒLƒ‹ƒ†ƒjƒbƒgAŽæ‚芪‚«‚È‚Ç‚ÅŠm•Û‚³‚ꂽƒƒ‚ƒŠ‚ªA
-@ˆÈ~‘S‚­ŠJ•ú‚³‚ê‚È‚­‚È‚é‚Æ‚¢‚¤‚©‚È‚è[‚ȃƒ‚ƒŠƒŠ[ƒN‚̃oƒO‚Å‚·B
-@map_freeblock_lock() ‚ðŒÄ‚Ôƒ‹[ƒ`ƒ“‚ðC³‚·‚éê‡Aƒ‹[ƒ`ƒ“‚𔲂¯‚é‚Æ‚«‚ÉA
-@map_freeblock_unlock() ‚ªŒÄ‚΂ê‚é‚悤‚É‹C‚ð•t‚¯‚Ä‚­‚¾‚³‚¢(return ‚É’ˆÓ!)B
-
-Emap_freeblock_unlock() ‚ð–Y‚ê‚Ä‚à—Ç‚¢‚悤‚ÉA’èŠú“I‚Éblock_free_lock‚ð
-@ƒNƒŠƒA‚·‚é‚悤‚ÉC³(map.c)
-EDebianD‚« ‚³‚ñ‚ÌMPVƒ‚ƒ“ƒXƒ^[‚ÌHPŒvŽZ‚ªƒI[ƒo[ƒtƒ[‚·‚éƒoƒOC³‚ÌŽæ‚èž‚Ý(status.c)
-
- (src/map)
- skill.c - skill_castend_nodamage_id() C³
- map.c - map_freeblock_timer() ’ljÁA do_init() C³
- status.c - status_get_max_hp() C³
-
---------------------
-//1116 by End_of_exam
-
-Ecopyarray ‚Å“¯‚¶”z—ñ‚ðŽw’肵‚½ŽžAƒRƒs[æ‚Ì—v‘f”Ô†‚ªƒRƒs[Œ³‚Ì—v‘f”Ô†‚æ‚è
-@‘å‚«‚¢Žž‚Ì“®ì‚ª•s’è‚É‚È‚Á‚Ä‚¢‚½ƒoƒO‚ðC³(script.c npc_test_array.txt)
-EŠÖ”錾‚¹‚¸‚ÉŠÖ”’è‹`‚µ‚½ƒ†[ƒU[’è‹`ŠÖ”‚ðŒÄ‚Ño‚»‚¤‚Æ‚·‚é‚ÆAƒGƒ‰[‚ªo‚é
-@ƒoƒO‚ðC³(script.c)
-EƒXƒNƒŠƒvƒg‚̃I[ƒo[ƒtƒ[”»’èŠî€‚ðŠÉ˜a‚³‚¹‚é(script.c)
-EƒMƒ‹ƒh‚Ì’m‚É\n‚ªŽg‚¦‚éƒoƒO‚ðC³(int_guild.c)
-EƒCƒxƒ“ƒgdb‚̃ƒ‚ƒŠƒŠ[ƒNC³‚ª•sŠ®‘S‚¾‚Á‚½‚Ì‚ðC³(npc.c)
-Edb_foreach‚̃`ƒFƒbƒN•û–@‚ð•ÏX(db.c)
-E‹N“®Žž‚É*.pid (ƒvƒƒZƒXID‚̃tƒ@ƒCƒ‹)‚ð쬂·‚é‚悤‚É‚·‚é(core.c)
-EŒoŒ±’lŠ“¾‚ª‘S‘Ì”­Œ¾‚É‚È‚Á‚Ä‚¢‚éƒoƒO‚ðC³(clif.c)
-E‹©‚Ô‚ð‘S‘Ì”­Œ¾‚É•ÏX(clif.c)
-Etester‚³‚ñ쬂ÌVC++ Toolkit2003 —p‚̃oƒbƒ`ƒtƒ@ƒCƒ‹‚𓯔º(vc07_make.bat)
-
- (/)
- vc07_make.bat - tester‚³‚ñ쬂̃oƒbƒ`ƒtƒ@ƒCƒ‹‚𓯔º
-
- (src/common)
- db.c - db_foreach() C³
- core.c - main() C³ , pid_create() , pid_delete() ’ljÁ
-
- (src/char)
- int_guild.c - mapif_parse_GuildPosition() C³
-
- (src/map)
- clif.c - clif_disp_onlyself() , clif_onlymessage() C³
- npc.c - npc_parse_script() C³
- script.c - buildin_copyarray() , parse_syntax() C³
-
- (script/sample)
- npc_test_array.txt - ƒ`ƒFƒbƒN€–ڂ̒ljÁ
-
---------------------
-//1115 by ‚¢‚Ç
-
-EƒT[ƒo[ƒXƒiƒbƒvƒVƒ‡ƒbƒg
-
---------------------
-//1114-fix1 by ‹HŽ}
-
-Ezlib‚ðmap-server“à•”‚ÉŽæ‚èž‚ß‚éƒIƒvƒVƒ‡ƒ“‚ð’ljÁ
-Emake‚ªMinGW+Msys‚ųí‚É’Ê‚é‚悤C³
-Ewin32_start.bat‚Ƀ`ƒFƒbƒN’ljÁ
-
- (src/common/zlib)
- trees.h - anybody's guessã‚Ìzlib_1_2_1_staticlib‚æ‚èŽæ‚èž‚Ý
- inffixed.h - “¯ã
- inffast.h - “¯ã
- crc32.h - “¯ã
- compress.c - “¯ã
- deflate.h - “¯ã
- inftrees.h - “¯ã
- zutil.c - “¯ã
- crc32.c - “¯ã
- inflate.h - “¯ã
- inffast.c - “¯ã
- trees.c - “¯ã
- inflate.c - “¯ã
- zconf.h - “¯ã
- deflate.c - “¯ã
- inftrees.c - “¯ã
- zutil.h - “¯ã
- zlib.h - “¯ã
- adler32.c - “¯ã
- Makefile - LOCALZLIB‚ªŽw’肳‚ê‚Ä‚¢‚鎞‚̂݃Rƒ“ƒpƒCƒ‹‚µ‚Ü‚·B
-
- (src/map/)
- Makefile - MinGW‚Ìê‡Aˆø”-wsock32‚ð’ljÁ‚µ‚Ü‚·B
- - LOCALZLIB‚ªŽw’肳‚ê‚Ä‚¢‚éꇃŠƒ“ƒN‚µ‚Ü‚·B
- - LOCALZLIB‚ª–³‚¢ê‡‚¾‚¯zlib.a‚ðƒŠƒ“ƒN‚µ‚Ü‚·B
- (src/char/)
- Makefile - MinGW‚Ìê‡Aˆø”-wsock32‚ð’ljÁ‚µ‚Ü‚·B
- (src/login/)
- Makefile - MinGW‚Ìê‡Aˆø”-wsock32‚ð’ljÁ‚µ‚Ü‚·B
- (src/common/grfio.c) - Zlib‚ð“à•ï‚µ‚½Û‚É_WIN32‚Æ‹£‡‚µ‚È‚¢‚悤•ÏX
- - zlib_win32.h zconf_win32.h‚ð”pŽ~
-
- (./)
- Makefile - #Link Zlib(NOTrecommended)Azlib‚ð“à•ï‚µ‚Ü‚·B
- win32_start.bat - athena-start‚Ì”¼ƒNƒ[ƒ“‰»B‰Šú‹N“®‚Å‚±‚¯‚È‚­‚È‚é‚Í‚¸‚Å‚·B
-
---------------------
-//1113 by End_of_exam
-
-Elinux ŠÂ‹«‚Å‘å—Ê‚Ìwarning ‚ªo‚Ä‚¢‚½‚Ì‚ðC³(malloc.h)
-Emap_quit() ‚Åcharid_db ‚̃f[ƒ^‚ð휂µ‚È‚¢‚悤‚É•ÏX(map.c thanks to lemit‚³‚ñ)
-Epc_eventtimer(), npc_event_timer() ‚Ìfree()‚ÅŒx‚ªo‚Ä‚¢‚½‚Ì‚ðC³(pc.c npc.c)
-Emap_eraseipport() ‚ªƒƒ‚ƒŠƒŠ[ƒN‚µ‚Ä‚¢‚½ƒoƒO‚ðC³(map.c)
-Eaddtimer –½—ß‚ÉŽw’è‚·‚éƒCƒxƒ“ƒg–¼‚ª‚Q‚R•¶Žš‚ɧŒÀ‚³‚ê‚Ä‚¢‚½‚̂𖳧ŒÀ‚É‚·‚é(pc.c)
-Epc_cleareventtimer() , pc_deleventtimer() ‚ªƒƒ‚ƒŠƒŠ[ƒN‚µ‚Ä‚¢‚½ƒoƒO‚ðC³
-@(pc.c thanks to Shinomori‚³‚ñ)
-
- (src/common/)
- malloc.h - "#undef strdup" ‚ð’ljÁ
-
- (src/map/)
- npc.c - npc_event_timer() C³
- pc.c - pc_eventtimer() , pc_addeventtimer() , pc_cleareventtimer(),
- pc_deleventtimer() C³
- map.c - map_quit() , map_eraseipport() C³
-
---------------------
-//1112 by lizorett
-EPC‚ªƒ}ƒbƒvˆÚ“®’†‚ÉA‚»‚ÌPC‚ªÝ’u‚µ‚½ƒXƒLƒ‹ƒ†ƒjƒbƒg‚Ìskill_unit_onout‚ªŒÄ‚΂ê
-‚È‚¢–â‘è(map-sever‚ª—Ž‚¿‚é‰Â”\«‚ ‚è)‚ðC³
-EƒoƒWƒŠƒJ‚ðŽd—l‚É•¹‚¹‚ÄC³
-E³íI—¹Žž‚Échar-server‚ªƒRƒAƒ_ƒ“ƒv‚·‚é–â‘è‚ðC³
-Emob‚ªƒEƒH[ƒ^ƒ{[ƒ‹Žg—pŽž‚̃qƒbƒg”‚ðC³(skill_db.txt‚ÉŽw’肵‚½”ƒqƒbƒg)
-EƒR[ƒeƒBƒ“ƒO‚³‚ê‚Ä‚¢‚éꇂɂ̓XƒgƒŠƒbƒv‚Å‚«‚È‚¢‚悤•ÏX
-E‘®«ê‚ðŽg—p‚µ‚½ÛA‘O‚Éo‚µ‚Ä‚¢‚½‘®«ê‚ªÁ‚¦‚È‚¢‚±‚Æ‚ª‚ ‚é–â‘è‚ðC³
-
- (db)
- skill_db.txt
- - mob‚̃EƒH[ƒ^ƒ{[ƒ‹‚̃JƒEƒ“ƒg”‚ðDB‚É‚¢‚ꂽ
- skill_unit_db.txt
- - ƒoƒWƒŠƒJ‚ðC³
- (char)
- char.c - do_final()‚Ìchar_dat‚̃ƒ‚ƒŠŠJ•úˆÊ’u‚ð•ÏX
- (map)
- clif.c - ƒoƒWƒŠƒJŽž‚ÉUŒ‚‚È‚Ç‚ª‚Å‚«‚È‚¢‚悤•ÏX
- map.c - ƒoƒWƒŠƒJˆÊ’u‚ðƒZƒ‹‚̃tƒ‰ƒO‚É“ü‚ê‚é‚悤•ÏX
- map.h - ƒoƒWƒŠƒJ—p‚̃Zƒ‹ƒtƒ‰ƒO’ljÁ
- mob.c - ƒoƒWƒŠƒJ‚Éi“ü‚Å‚«‚È‚¢‚悤‚É•ÏX
- pc.c - ˆÚ“®Žž(”ˆ‚È‚Ç)‚ɃoƒWƒŠƒJ‚ðÁ‚·‚悤C³
- skill.c - ƒoƒWƒŠƒJC³
- - ƒEƒH[ƒ^ƒ{[ƒ‹C³
- - skill_unit_onout‚̌ĂÑo‚µ‚ðC³
- - ƒR[ƒeƒBƒ“ƒO‚³‚ê‚Ä‚¢‚é‰ÓŠ‚̓XƒgƒŠƒbƒv•s‰Â‚É•ÏX
-
---------------------
-//1111 by Toshi^2
-EpcŒnmob‚É“]¶•—{Žq‚ðŽw’è‚Å‚«‚é‚悤‚É•ÏXB
-@db/mob_avail.txt‚Éà–¾•¶‚ð’ljÁ‚µ‚½‚Ì‚ÅA‚»‚ê‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
-
- (db)
- mob_avail.txt - ˆø”‚Ìà–¾‚ð’ljÁB
- (src/map)
- clif.c - clif_mob0078() clif_mob007b() clif_pet0078() clif_pet007b() C³
- mob.c - mob_readdb_mobavail() C³
- mob.h - \‘¢‘Ìmob_db‚Éushort transv‚ð’ljÁAmob_avail‚Ìtransƒtƒ‰ƒO‚ðŠi”[B
-
---------------------
-//1110 by lizorett
-Eƒ†ƒjƒbƒgŒnƒXƒLƒ‹(ƒjƒ…ƒ}Aƒ_ƒ“ƒX“™)‚Åmap_server.exe‚ª—Ž‚¿‚é–â‘è‚ðC³
- (ƒgƒŒ[ƒX‚Å‚Ískill_unit_onplace/skill_unit_onout‚Å—Ž‚¿‚é)
-EƒTƒ“ƒNƒ`ƒ…ƒAƒŠ‚Ìl”ƒJƒEƒ“ƒg•û–@‚ð•ÏX(–{ŽIŽd—l)
-Eƒ}ƒOƒkƒX‚͈̔͂ðL‚°AŽg—p‚µ‚½ƒ†ƒjƒbƒg‚ªíœ‚³‚ê‚é‚悤‚É‚·‚é(–{ŽIŽd—l)
-Eƒfƒ{[ƒVƒ‡ƒ“‚Ì‹——£‚ª’Z‚­‚È‚é–â‘è‚ðC³(ƒoƒO•ñƒXƒŒƒbƒh part8 >>15)
-Eƒfƒ{[ƒVƒ‡ƒ“‚Ånullpo‚ªo‚é–â‘è‚ðC³
-Emob‚̃Cƒ“ƒeƒBƒ~ƒfƒCƒg‚ª¬Œ÷‚·‚é‚Æmap-server‚ª—Ž‚¿‚é–â‘è‚ðC³(ƒoƒO•ñƒXƒŒƒb
-ƒh part8 >>42)
-EƒEƒH[ƒ^[ƒ{[ƒ‹‚ÌŽd—l‚ð–{ŽI‚ɋ߂¯‚é(…ꂪ­‚È‚¢ê‡‚É‚Íhit”‚ªŒ¸‚éA
-ƒfƒŠƒ…[ƒWã‚ÅŽÀs‚·‚é‚ƃ†ƒjƒbƒg‚ªŒ‡‚¯‚é)
-Eƒtƒ@[ƒ}ƒV[‚Ì»‘¢¬Œ÷Šm—¦‚̃R[ƒh‚ð•ÏX
-
- (db)
- skill_unit_db.txt
- - ƒ†ƒjƒbƒgID/”z’u‚È‚Ç‚ðdb‰»‚µ‚Ä‚¢‚Ü‚·
- (src/map)
- map.h - skill_unit_group‚̃ƒ“ƒo•ÏX
- mob.c - ˆÚ“®Žž‚ɃXƒLƒ‹ƒ†ƒjƒbƒg”»’f(skill_unit_out_all/skill_unit_move)
- ‚ð’ljÁ
- - ‘«Œ³’u‚«/d•¡’u‚«”»’f‚ð•ÏX
- pc.c - ˆÚ“®Žž‚ɃXƒLƒ‹ƒ†ƒjƒbƒg”»’f(“¯ã)‚ð’ljÁ
- - –³“GŽžŠÔ‚ªI‚í‚éۂɃXƒLƒ‹ƒ†ƒjƒbƒg”»’f(“¯ã)‚ð’ljÁ
- skill.h - skill_db‚ÌŽQÆŠÖ”‚ðdefine‚É•ÏX
- - ƒXƒLƒ‹”z’u‚ð“ü‚ê‚éskill_unit_layout\‘¢‘Ì‚ð’è‹`
- - SC_WATERBALLíœ
- skill.c - unit_id‚ðdb‰»(skill_unit_db.txt)
- - ƒXƒLƒ‹ƒ†ƒjƒbƒg‚̃ŒƒCƒAƒEƒg‚ð‹N“®Žž‚É’è‹`
- - ˆÚ“®Žž‚ɃXƒLƒ‹ƒ†ƒjƒbƒg”»’f(“¯ã)‚ð’ljÁ
- - ‘«Œ³’u‚«/d•¡’u‚«”»’f‚ð•ÏX
- - ƒXƒLƒ‹ƒ†ƒjƒbƒg‚̈ړ®ˆ—‚ð•ÏX
- - ƒfƒ{[ƒVƒ‡ƒ“‚ÌC³
- - mob‚̃Cƒ“ƒeƒBƒ~ƒfƒCƒg‚Å—Ž‚¿‚é–â‘è‚ðC³
- - ƒEƒH[ƒ^ƒ{[ƒ‹‚ÌŽd—l•ÏX
- status.c- SC_WATERBALL‚̈—‚ðíœ
-
---------------------
-//1109 by End_of_exam
-
-1108‚Ɉø‚«‘±‚«ƒƒ‚ƒŠƒŠ[ƒN‚̃oƒOC³‚Å‚·B‚Q‚‹¤‚É[‚ȃoƒO‚È‚Ì‚ÅA
-ÅV”Å‚ÉXV‚µ‚È‚¢•û‚Å‚àC³‚·‚邱‚Æ‚ð‚¨‚·‚·‚ß‚µ‚Ü‚·B
-
-Eƒyƒbƒg‚ª°‚ɃAƒCƒeƒ€‚ð—Ž‚Æ‚·ŽžAƒyƒbƒg‚ð—‘‚É–ß‚·Žž‚Ƀƒ‚ƒŠƒŠ[ƒN‚ª”­¶
-@‚µ‚Ä‚¢‚½ƒoƒO‚ðC³B(pet.c)
-
-EƒLƒƒƒ‰ƒNƒ^[ˆË‘¶ˆêŽž•Ï”‚Ì—˜—p‚µ‚½ƒLƒƒƒ‰‚ªƒƒOƒAƒEƒg‚·‚é‚ƃƒ‚ƒŠƒŠ[ƒN‚ª
-@”­¶‚µ‚Ä‚¢‚½ƒoƒO‚ðC³(map.c)
-
- (src/map)
- map.c - map_quit() C³
- pet.c - pet_remove_map(), pet_return_egg() pet_lootitem_drop() C³
-
---------------------
-//1108 by End_of_exam
-
-EˆÈ‘Oì‚Á‚½ƒƒ‚ƒŠƒ}ƒl[ƒWƒƒ[‚ð“‡B(malloc.c core.c)
-@—LŒø‚É‚·‚é‚É‚ÍAmalloc.c“à•”‚̃Rƒƒ“ƒg‚ðŠO‚·•K—v‚ª‚ ‚è‚Ü‚·BŠJ”­‚É‹¦—Í‚µ‚Ä
-@’¸‚¯‚é•û‚ÍAƒƒ‚ƒŠƒ}ƒl[ƒWƒƒ‚ð—LŒø‚É‚µ‚ÄAƒ`ƒFƒbƒNŒ‹‰Ê(map-server.log‚È‚Ç)‚ð
-@ƒAƒbƒvƒ[ƒh‚µ‚Ä‚­‚ê‚é‚Æ•‚©‚è‚Ü‚·B
-
-@@1. guild.c ‚ªƒRƒ“ƒpƒCƒ‹ƒGƒ‰[‚É‚È‚Á‚½‚Ì‚ÅC³(guild.c)
-@@2. pet.c ‚ªƒƒ‚ƒŠ‰ð•ú‚µ–Y‚ê‚Ä‚¢‚½‚Ì‚ÅAdo_final_pet() ‚ð’ljÁ(pet.c)
-@@3. do_final_socket ‚ð’ljÁ‚µ‚ÄAI—¹Žž‚É‘S‚Ä‚ÌÚ‘±‚ðØ’f‚·‚é(socket.c)
-@@4. deplicate ‚ÌŒ³ƒXƒNƒŠƒvƒg‚ªI—¹Žž‚Éfree‚³‚ê‚È‚¢ƒoƒO‚ðC³(npc.c)
-@@5. do_final_script ‚ÅŠJ•ú‚³‚ê‚È‚¢ƒƒ‚ƒŠ‚ª‚ ‚éƒoƒO‚ðC³(script.c)
-@@6. do_init_*** ‚̌Ă΂ê‚釔Ԃª‚¨‚©‚µ‚©‚Á‚½‚Ì‚ðC³(map.c)
-@@7. ƒCƒxƒ“ƒg–¼‚ªd•¡‚µ‚½‚Æ‚«‚ɃƒbƒZ[ƒW‚ðo‚·‚悤‚É•ÏX(npc.c)
-@@8. map_quit() “à•”‚Åcharid_db ‚ðfree‚µ–Y‚ê‚Ä‚¢‚éƒoƒO‚ðC³(map.c)
-
-@“Á‚É8.‚ÍÅd—v‚ÅAƒLƒƒƒ‰‚ªƒƒOƒAƒEƒg‚·‚é“x‚Ƀƒ‚ƒŠƒŠ[ƒN‚ª”­¶‚·‚é‚Æ‚¢‚¤A
-@ň«‚ÈŒ‹‰Ê‚É‚È‚Á‚Ä‚¢‚Ü‚µ‚½B‹C‚É‚È‚é•û‚ÍC³‚µ‚Ä‚¨‚«‚Ü‚µ‚傤B
-
-Edelete_session ‚ÅNULLƒ`ƒFƒbƒN‚ð‘Ó‚Á‚Ä‚¢‚½ƒoƒO‚ðC³(socket.c)
-Echrif_disconnect_sub ‚Ådelete_session ‚ðŒÄ‚Ԃ悤‚É•ÏX(chrif.c)
-Eƒ}ƒ‹ƒ`ƒ‰ƒCƒ“ƒRƒƒ“ƒgi/* ` */j‚̉ðÍ‚ð–Y‚ê‚Ä‚¢‚½ƒoƒO‚ðC³(npc.c)
-E‹âs‚È‚Ç‚ÌNPC ‚ÅZeny‚ªMAX_ZENY‚É‚È‚ç‚È‚¢ƒoƒO‚ðC³(pc.c)
-E1107‚Ì»‘¢Šm—¦‚ªˆê•”Á‚³‚ê‚Ä‚¢‚½‚Ì‚ðC³(skill.c thanks to lizorett‚³‚ñ)
-EƒZ[ƒW“]EŽŽŒ±‚̃Cƒxƒ“ƒg‚ªÕ“Ë‚ð‹N‚±‚µ‚Ä‚¢‚½‚Ì‚ðC³(npc.c)
-@@npc_parse_script : dup event jobsage_2nd::OnTimer150000
-@@npc_parse_script : dup event jobsage_2nd::OnTimer30000
-@@npc_parse_script : dup event jobsage_success::OnTimer7000
-@@npc_parse_script : dup event jobsage_success::OnTimer3000
-
- (src/common)
- core.c - do_init_memmgr() ’ljÁ
- malloc.c - ƒƒ‚ƒŠƒ}ƒl[ƒWƒƒ‚̒ljÁ
- malloc.h - ƒƒ‚ƒŠƒ}ƒl[ƒWƒƒ‚̒ljÁ
- socket.c - delete_session‚̃oƒOAdo_final_socket‚̒ljÁ
-
- (src/map)
- chrif.c - chrif_disconnect_sub() ‚ðC³
- guild.c - guild_recv_info(), guild_castledataloadack() C³
- map.c - map_quit() ‚̃ƒ‚ƒŠƒŠ[ƒNAdo_final,do_init C³
- npc.c - npc_parse_script_line() , npc_parse_script() ‘¼C³
- pc.c - pc_setparam() C³
- pet.c - do_final_pet() ’ljÁ
- pet.h - do_final_pet() ’ljÁ
- script.c - do_init_script(), do_final_script() C³
- skill.c - skill_produce_mix() C³
-
---------------------
-//1107 by code
-E@npctalk, @pettalkƒRƒ}ƒ“ƒh’ljÁ
-Eƒ_ƒ[ƒW‚Ì’x‰„‚ðŽÀ‘•
-E@mes‚ð‘S‘Ì”­Œ¾‚ÉC³
-Eƒtƒ@[ƒ}ƒV[‚Ì»‘¢¬Œ÷Šm—¦C³
-E@storage‚Å‘qŒÉ‚ª“ñd‚ÅŠJ‚­‚±‚Æ‚ª‚È‚¢‚悤C³
-Escript‚É globalmes, getmapmobs ŠÖ”‚ð’ljÁ
-
- (/src/map)
- atcommand.c
- atcommand.h
- battle.c
- clif.c
- clif.h
- npc.c
- npc.h
- script.c
- skill.c
- storage.c
-
---------------------
-//1106 by sylpheed
-
-Eitem_rate_details:1‚ª“®‚©‚È‚©‚Á‚½‚Ì‚ðC³
-
- (src/map/)
- mob.c
-
---------------------
-//1105 by End_of_exam
-
-E1101‚̃}ƒbƒv‚ÌÄ•ª”z‚ªãŽè‚­‚¢‚©‚È‚¢ƒoƒO‚ðC³(char.c thanks to Mystle‚³‚ñ)
-
- (src/char/)
- char.c - parse_frommap() C³
-
---------------------
-//1104 by nameless
-EBCC32‚̃Rƒ“ƒpƒCƒ‹ƒIƒvƒVƒ‡ƒ“‚È‚Ç‚ÌÅ“K‰»
-EBCC32/VC++‚ÅÅ“K‚ÈÅ“K‰»ƒIƒvƒVƒ‡ƒ“‚ðŒ©‚Â‚¯‚邽‚߂̃xƒ“ƒ`
-Ebcc32_clean.bat‚Æbcc32_make.bat‚ð“‡AƒNƒŠ[ƒ“ƒrƒ‹ƒh‚ÌŽ¸”s‚ð‚µ‚È‚¢‚悤‚ÉB
-
-¦P4‚¾‚©‚ç‚Æ‚©Opteron‚¾‚©‚ç“Á’èƒIƒvƒVƒ‡ƒ“‚Å‘‚¢‚Æ‚¢‚¤‚±‚Æ‚Å‚Í‚È‚¢‚悤‚Å‚·B
-¦P4‚Å‚àƒƒbƒg‚É‚æ‚Á‚Ä‚Í-5‚ªÅ“K‚¾‚Á‚½‚è-3 -O2‚ªÅ“K‚¾‚Á‚½‚è‚·‚é‚à‚Ì‚ª‚ ‚é‚悤‚Å‚·
-¦Žv‚¢ž‚݂ŃIƒvƒVƒ‡ƒ“‚ð‚‚¯‚È‚¢‚悤‚É‚·‚邽‚ß‚Éì‚è‚Ü‚µ‚½B
-¦­‚µ‚Å‚àƒŒƒXƒ|ƒ“ƒX‚ðã‚°‚ĉ^—p‚µ‚½‚¢‚Æ‚¢‚¤l‚ÍŠˆ—p‚µ‚Ä‚­‚¾‚³‚¢B
-
- (/)
- bcc32_make.bat
-
- Å“K‰»ƒIƒvƒVƒ‡ƒ“‚̒ljÁ‚ÆŒxƒƒbƒZ[ƒW‚Å[‚Å‚Í‚È‚¢‚à‚Ì‚ð
- Š®‘S‚É•\Ž¦‚µ‚È‚¢‚悤‚ÉÝ’èAbcc32_clean.bat‚ðmake‚É“‡‚µ‚½
- ‚Ì‚ÅŠmŽÀ‚ɃNƒŠ[ƒ“ƒrƒ‹ƒh‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½
-
- bench.bat
- bench.c
-
- Å“K‚ȃRƒ“ƒpƒCƒ‹ƒIƒvƒVƒ‡ƒ“‚ðŒ©‚Â‚¯‚邽‚߂̃xƒ“ƒ`‚Å‚·B
- bench.bat‚ŃRƒ“ƒpƒCƒ‹•ŽÀs‚ªs‚í‚ê‚Ü‚·B
- Œ‹‰Ê‚Íbench.txt‚ÉŠi”[‚³‚ê‚Ü‚·‚Ì‚Å”’l‚̈ê”Ô¬‚³‚¢‚à‚Ì‚ð‘I‚ñ
- ‚Åbcc32_make.bat‚Ì23s–ڂɒljÁEC³‚µ‚Ä‚ ‚°‚Ä‚­‚¾‚³‚¢B
- ¦‰Šúó‘Ô‚Å‚Íbcc32—p‚É‚È‚Á‚Ä‚¢‚Ü‚·‚Ì‚Å
---------------------
-//1103 by End_of_exam
-
-Echar_athena.conf ‚Ìdefault_map_type‚ª0 ‚É‚È‚Á‚Ä‚¢‚鎞‚ÉAPVPƒKƒCƒh‚Å
-@ƒZ[ƒu‚µ‚½ŒãAPVPƒGƒŠƒA“à‚ŃƒOƒAƒEƒg‚µ‚½ƒLƒƒƒ‰‚ªƒƒOƒCƒ“‚Å‚«‚È‚­‚È‚é
-@ƒoƒO‚ðC³B(npc_etc_pvp.txt) ‘½‚­‚Ì•ûX‚©‚ç‚Ìî•ñ’ñ‹ŸŠ´ŽÓ‚µ‚Ü‚·B
-@inpc_etc_pvp.txt “à•”‚Ì ".gat" ‚Ì•t‚¯–Y‚ê‚ÆA‚±‚̃~ƒX‚ɑΉž‚µ‚Ä‚¢‚È‚¢
-@@pc.c ‚̃oƒO‚Å‚·B‚±‚̃pƒbƒ`‚ð“–‚Ä‚È‚¢‚Å‚±‚̃oƒO‚ðC³‚µ‚½‚¢ê‡A
-@@“Y•t‚µ‚½C³ƒtƒ@ƒCƒ‹‚ðŽQl‚É‚µ‚È‚ª‚çAnpc_etc_pvp.txt‚É".gat"‚ð
-@@•t‰Á‚µ‚Ä‚­‚¾‚³‚¢Bj
-
-Edo_final“à•”‚Å•s³‚Ȉ—‚ðs‚¤ê‡‚ª‚ ‚é‚Ì‚ðC³(map.c thanks to lizorett‚³‚ñ)
-Eƒ}ƒbƒvƒLƒƒƒbƒVƒ…‚Ì“Ç‚Ýž‚Ý‚ÉŽ¸”s‚µ‚½‚Æ‚«‚Ƀƒ‚ƒŠƒŠ[ƒN‚µ‚Ä‚¢‚½ƒoƒO‚ðC³(map.c)
-
- (src/map)
- pc.c - pc_setsavepoint() C³
- map.c - do_final(), map_cache_read() C³
-
- (src/char)
- char.c - search_mapserver() , parse_char() C³
-
- (script/npc/etc)
- npc_etc_pvp.txt - ".gat" ‚ð•t‰Á‚·‚é
-
---------------------
-//1102 by l’Œ‚³‚ñA
-EƒoƒO•ñƒXƒŒ >>35-37‚É‚ ‚Á‚½C³”Å
-@Ú‚µ‚¢‚±‚Ƃ̓XƒŒ‚ðŒ©‚Ä‚­‚¾‚³‚¢
- (src/map)
- pc.c
-
---------------------
-//1101 by End_of_exam
-
-EsocketŠÖ˜A‚ÌC³(socket.c socket.h)
-
-@1. FIFOŠÖ˜A‚ðfd ‚ª•s³(fd<=0)‚ÌŽž‚É‚à³í‚É“®ì‚·‚é‚悤‚É•ÏX
-@2. socket.h ‚Ì“à•”‚ðFX‚Æ®—
-@3. make_connection() ‚ªÚ‘±‚ÉŽ¸”s‚µ‚½Žž‚ɃGƒ‰[‚ð•Ô‚³‚È‚¢ƒoƒO‚ðC³
-@@@‚»‚Ì•ÏX‚ɇ‚킹‚ÄAchrif.c check_connect_char_server() , char.c
-@@@check_connect_login_server() ‚ðC³B‚±‚ê‚ŃT[ƒo[ƒ]ƒ“ƒr‰»‚̃oƒO‚Í
-@@@‰ðŒˆ‚µ‚½‚ÆŽv‚¢‚Ü‚·‚ªAÄ”­‚µ‚½‚ç•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
-
-Echar - map ŠÔ‚̃RƒlƒNƒVƒ‡ƒ“‚ðŒ©’¼‚µ(char.c chrif.c map.c map.h)
-
-@1. char - map ŠÔ‚̃RƒlƒNƒVƒ‡ƒ“‚ªØ‚ꂽ‚çAmap ŽI‚ÉÚ‘±‚µ‚Ä‚¢‚éƒLƒƒƒ‰‚ð
-@@‘S‚ÄØ’f‚·‚é‚悤‚É‚·‚éB‚±‚ê‚ÍA“¯Šú‚ðŽæ‚é‚Ì‚ª“‚¢‚Ì‚ÆAcharŽI‚Æ‚Ì
-@@’ÊM‚ª•K—v‚Ȉ—iƒp[ƒeƒBAƒMƒ‹ƒhAƒyƒbƒg‘¼j‚ª‚Å‚«‚È‚­‚Ȃ邽‚ß‚Å‚·B
-@2. •¡”‚Ìmap ŽI‚Å“¯‚¶ƒ}ƒbƒv‚ð’S“–‚·‚邱‚Æ‚ª‚ ‚éƒoƒO‚ðC³
-@3. map ŽI‚ÌŠ„‚è“–‚Ä•û–@‚ÌŒ©’¼‚µ
-@@•¡”‚Ìmap ŽI‚Å“¯‚¶ƒ}ƒbƒv‚ð“Ç‚Ýž‚ß‚ÎA‚Ç‚ê‚©‚P‚‚ª—Ž‚¿‚Ä‚¢‚鎞‚Å‚àA
-@@³í‚Èmap ŽI‚ɃƒOƒCƒ“‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½B—Ⴆ‚ÎA“¯‚¶ƒ}ƒbƒv‚ð
-@@mapŽIA‚ÆB‚É“Ç‚Ýž‚Ü‚¹‚Ä‚¨‚¯‚ÎAA‚ª—Ž‚¿‚Ä‚¢‚鎞‚É‚ÍB‚ÉAB‚ª—Ž‚¿‚Ä‚¢‚é
-@@Žž‚É‚ÍA‚É“]‘—‚³‚ê‚Ü‚·B‚½‚¾‚µA—D懈ʂ̎w’è‚Í‚Ü‚¾o—ˆ‚Ä‚È‚¢‚Ì‚ÅA
-@@‚P‚‚Ìmap ŽI‚Él”‚ªW’†‚µ‚·‚¬‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B
-
- (src/map)
- chrif.c - map ŽI‚ÌŠ„‚è“–‚Ä•û–@‚ÌŒ©’¼‚µ
- map.c - map ŽI‚ÌŠ„‚è“–‚Ä•û–@‚ÌŒ©’¼‚µ
- map.h - map ŽI‚ÌŠ„‚è“–‚Ä•û–@‚ÌŒ©’¼‚µ
-
- (src/char)
- char.c - map ŽI‚ÌŠ„‚è“–‚Ä•û–@‚ÌŒ©’¼‚µ
-
- (src/common)
- socket.c - FXC³iã‹LŽQÆj
- socket.h - FXC³iã‹LŽQÆj
-
---------------------
-//1100 by nyankochan
-E1098‚ÌC³
- (src/map)
- pc.c
-
---------------------
-//1099 by End_of_exam
-
-Emapflag nosave ‚ª•s³‚ÈŽž‚É‹N“®‚ð’†’f‚³‚¹‚é‚悤‚É‚·‚é(npc.c)
-Epc_autosave ‚ªŒÄ‚΂ê‚é‰ñ”‚ªˆÙí‚É‚‚­‚È‚éƒoƒO‚ðC³(pc.c)
-
-pc_autosave() ‚Ì“à•”‚ªA
-
-> interval = autosave_interval/(clif_countusers()+1);
-> if(interval <= 0)
-> interval = 1;
-
-‚Æ‚¢‚¤•—‚É‚È‚Á‚Ä‚¢‚é‚Ì‚ÅA‚Pƒ}ƒbƒvƒT[ƒo[‚É200l‚̃Lƒƒƒ‰‚ªÚ‘±‚µ‚Ä‚é‚ÆA
-autosave_interval(def:15 * 1000) / 200 = 0.075 •b‚²‚Æ‚ÉŠÖ”‚ªŒÄ‚΂ê‚Ü‚·B
-‚³‚·‚ª‚É‚±‚Ìó‘Ô‚¾‚ÆcharŽI‚ªŒµ‚µ‚­‚È‚é‚Ì‚ÅAŠÖ”‚ðŒÄ‚Ño‚·Å¬ŠÔŠu‚ð
-0.2 •b‚É•ÏX‚µ‚Ü‚µ‚½B
-
- (src/map)
- pc.c - pc_autosave ‚ªŒÄ‚΂ê‚é‰ñ”‚ªˆÙí‚É‚‚­‚È‚éƒoƒO‚ðC³
- npc.c - mapflag nosave ‚ª•s³‚ÈŽž‚É‹N“®‚ð’†’f‚³‚¹‚é
-
---------------------
-//1098 by nyankochan
-E“üŽè‘•”õ•i‚̌”1ŒÅ’è
- (src/map)
- pc.c
-
---------------------
-//1097 by End_of_exam
-
-Žå‚ɃoƒOC³‚Å‚·BƒoƒO•ñ‚µ‚Ä‚­‚ꂽŠF—l‚ÉŠ´ŽÓAŠ´ŽÓB
-
-EZeny‘B‘Îô(pc.c trade.c script.c)
- 1. ŒðŠ·Apc_setparam ‚ÅMAX_ZENY ‚ð’´‚¦‚éꇂª‚ ‚éƒoƒO‚ðC³
- 2. ƒXƒNƒŠƒvƒg‚ɃI[ƒo[ƒtƒ[‘Îô‚ð’ljÁ
-
-EƒƒOƒCƒ“¬Œ÷ŽžEƒAƒJƒEƒ“ƒg•Ï”XVŽž‚É–³ðŒ‚Émmo_auth_sync ‚ð
-@ŒÄ‚ñ‚Å‚¢‚½‚Ì‚ðƒ^ƒCƒ}[‚ðŽg—p‚µ‚½’èŠúXV‚É•ÏX(login.c login_athena.conf)
-
-EdbŠÖŒW‚ɃoƒO‚ªö‚ñ‚Å‚¢‚é–Í—l‚È‚Ì‚ÅAƒ`ƒFƒbƒN‹@\‚ð’ljÁ‚·‚é(db.c db.h)
-@ˆê•”ƒAƒJƒEƒ“ƒg‚̂݃ƒOƒCƒ“•s‰ÂA‘qŒÉƒƒXƒgA@who‚Å•\Ž¦‚³‚ê‚éƒLƒƒƒ‰‚ª
-@ˆê•”Á‚¦‚é‚Ȃǂ̃oƒO‚ÌŒ´ˆö‚ªdbŠÖ˜A‚É‚ ‚é–Í—l‚Å‚·B
-@udb_foreach : data lost %d of %d item(s)v‚Æ‚¢‚¤ƒƒbƒZ[ƒW‚ª•\Ž¦
-@‚³‚ꂽꇂ̓oƒO‚ª‚ ‚éidb‚É“ü‚Á‚Ä‚¢‚é‚Í‚¸‚̃f[ƒ^‚ªÁ‚¦‚½j‚Ì‚ÅA
-@•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
-
-E‚ ‚é•û–@‚Å’Êí‚æ‚è‹­‚¢ƒLƒƒƒ‰‚ªì‚ê‚Ä‚µ‚Ü‚¤ƒoƒO‚ÌC³(char.c)
-EƒMƒ‹ƒh‚Ì–ðE–¼‚É•s³‚È•¶Žš‚ªŽg‚¦‚éƒoƒO‚ðC³(int_guild.c)
-EƒXƒNƒŠƒvƒg“à‚Å‚O‚Å‚ÌœŽZŽž‚ª‹N‚±‚Á‚½Žž‚ÉINT_MAX‚ð•Ô‚·‚悤‚É‚·‚é(script.c)
-
- (conf/)
- login_athena.conf - autosave_time ‚̒ljÁ
-
- (src/common)
- db.h - ƒ`ƒFƒbƒN‹@\‚̒ljÁ
- db.c - ƒ`ƒFƒbƒN‹@\‚̒ljÁ
-
- (src/login)
- login.c - mmo_auth_sync ‚Ƀ^ƒCƒ}[‚ð“K—p
-
- (src/char)
- char.c - ’Êí‚æ‚è‹­‚¢ƒLƒƒƒ‰‚ªì‚ê‚Ä‚µ‚Ü‚¤ƒoƒO‚ÌC³
- int_guild.c - ƒMƒ‹ƒh‚Ì–ðE–¼‚É•s³‚È•¶Žš‚ªŽg‚¦‚éƒoƒO‚ðC³
-
- (src/map)
- trade.c - MAX_ZENY ‚ð’´‚¦‚éꇂª‚ ‚éƒoƒO‚ðC³
- pc.c - MAX_ZENY ‚ð’´‚¦‚éꇂª‚ ‚éƒoƒO‚ðC³
- script.c - ƒI[ƒo[ƒtƒ[‘ÎôA‚O‚Å‚ÌœŽZŽž‚̈—‚ð’ljÁ
-
---------------------
-//1096 by lizorett
-E•Ç‰z‚µ‚ɃXƒLƒ‹‚ªŒ‚‚Ä‚Ä‚µ‚Ü‚¤ƒoƒO‚ðC³(ƒoƒO•ñƒXƒŒƒbƒh part8 >>28)
-
- (src/map)
- path.c - •Ç‰z‚µ‚ɃXƒLƒ‹‚ªŒ‚‚Ä‚Ä‚µ‚Ü‚¤ƒoƒO‚ðC³
-
---------------------
-//1095 by lizorett
-EƒXƒNƒŠƒvƒg‚̃GƒXƒP[ƒv”»’f‚ð•ÏX
-EƒXƒLƒ‹ƒ†ƒjƒbƒgƒOƒ‹[ƒv‚Ìgroup_id‚͈̔͂ð•ÏX
-Eskill_unitsetting()‚Å‘S‚ẴXƒLƒ‹‚Åskill_get_time()‚ðŽg—p‚·‚é‚悤•ÏX
-EƒTƒCƒgƒ‰ƒbƒVƒƒ[‚ðƒ†ƒjƒbƒgƒXƒLƒ‹‚©‚ç”͈ÍUŒ‚–‚–@‚É•ÏX(–{ŽIŽd—l)
-
- (src/map)
- skill.c - skill_unitgrouptickset_* ‚Å skill_id/group_id‚ªd‚È‚ç‚È‚¢‚悤
- ‚Égroup_id‚͈̔͂ð§ŒÀ
- - SkillStatusChangeTable‚ÉSC_SAFETYWALL,SC_PNEUMA’ljÁ
- - skill_unitsetting()‚Å‘S‚ẴXƒLƒ‹‚Åskill_get_time()‚ðŽg—p‚·‚é
- ‚悤•ÏX
- - ƒTƒCƒgƒ‰ƒbƒVƒƒ[‚ð”͈ÍUŒ‚–‚–@‚É•ÏX
- npc.c - ƒGƒXƒP[ƒv”»’f‚ðparse_simpleexpr()‚Æ“¯—l‚É‚µA‘SŠp”»’f‚ðíœ
- (db)
- skill_cast_db.txt
- - TS/MS/LoV/FN/SG/HD/GX‚Éupkeep_time‚ðÝ’è
-
---------------------
-//1094 by End_of_exam
-
-EƒTƒuƒ‹[ƒ`ƒ“ŒÄ‚Ño‚µ\•¶‚̒ljÁ(script.c npc.c npc_convertlabel_db())
-E‹tƒAƒZƒ“ƒuƒ‹ˆ—‚̒ljÁ(script.c , DEBUG_DISASM ‚ð—LŒø‚É‚µ‚Ä‚­‚¾‚³‚¢B)
-Eswitch ‚̈ꎞ•Ï”Á‹ŽˆÊ’u‚ð•ÏX(script.c)
-ERERUNLINE‚ÌÕ“®‚ª‰ö‚µ‚©‚Á‚½‚Ì‚ÅC³(script.c / h , map.h)
-Eƒ\[ƒX‚ð“Ç‚Ý‚â‚·‚­‚·‚邽‚ß‚Ébuildin_*‚ðƒtƒ@ƒCƒ‹ÅŒã‚Ɉړ®(script.c)
-EV‚µ‚­‰Á‚í‚Á‚½\•¶‚̃Tƒ“ƒvƒ‹‚Æ‚µ‚ÄuƒnƒmƒC‚Ì“ƒv‚ð’ljÁ(npc_test_hanoi.txt)
-Ebuildin_getitemname C³(script.c , Ž¿–âƒXƒŒƒbƒh Part14 >>129-130)
-
-Ebcc ‚ŃRƒ“ƒpƒCƒ‹‚µ‚½Žž‚É—Ž‚¿‚éƒoƒO‚ðC³(map.c map_id2bl “à•”)
-EWindows‚ŃRƒ“ƒpƒCƒ‹‚µ‚½Žž‚ÉAgettick()‚̃LƒƒƒbƒVƒ…‚ª–³Œø‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ð
-@C³(timer.c , thanks to Shinomori)
-
- (src/common)
- timer.c gettick() ‚̃oƒOC³
-
- (src/map)
- script.c FX•ÏXiã‹LŽQÆj
- script.h struct script_state C³
- npc.c npc_convertlabel_db() ‚Å—Ž‚¿‚é‚Ì‚ðC³
- map.c map_id2bl() ‚ðC³(—Ž‚¿‚é‚Ì‚Íbcc ‚¾‚¯H)
- map.h map_session_data C³
-
- (doc/)
- script_ref.txt function \•¶‚̒ljÁ
-
- (script/sample/)
- npc_test_hanoi.txt ƒnƒmƒC‚Ì“ƒ
-
---------------------
-//1093 by ‚¢‚Ç
-
-EƒT[ƒo[ƒXƒiƒbƒvƒVƒ‡ƒbƒg
-
---------------------
-//1092 by lizorett
-E‰“‹——£UŒ‚‚̃pƒXŒŸõƒAƒ‹ƒSƒŠƒYƒ€‚ð–{ŽI‚Æ“¯‚¶‚É‚È‚é‚悤•ÏX
-EƒXƒg[ƒ€ƒKƒXƒgAƒ[ƒhƒIƒuƒ”ƒ@[ƒ~ƒŠƒIƒ“‚ðd‚Ë‚½ê‡A•Ð•û‚©‚炾‚¯ƒ_ƒ[ƒW‚ð
-Žó‚¯‚é‚悤C³(Žd—l‚ª•s–¾‚È‚Ì‚Åæ‚ÉŒ©‚‚¯‚½ƒ†ƒjƒbƒg‚©‚çUŒ‚‚·‚é‚悤‚É‚µ‚Ä‚¢‚Ü‚·)
-EƒAƒCƒeƒ€‚ªˆê‚‚µ‚©‚È‚¢ê‡AƒAƒCƒeƒ€‚ðŽg—p‚µ‚Ä‚àƒGƒtƒFƒNƒg‚ª•\Ž¦‚³‚ê‚È‚¢–â‘è
-‚ðC³
-EƒZ[ƒtƒeƒB[ƒEƒH[ƒ‹Žg—pŽž‚ɃAƒhƒŒƒX•s³‚Æ‚È‚éꇂª‚ ‚é–â‘è‚ðC³
-Emap_getcell/map_setcell‚ÌŽd—l•ÏX
-E1085‚̃rƒbƒgƒ}ƒbƒv‘Ήž‚Ì­Õ‚ÌÁ‹Ž
-E1088‚̃AƒCƒXƒEƒH[ƒ‹‚Ì•ÏX‚ðŠª‚«–ß‚µ(–{ŽI‚ɇ‚킹‚é)
-E‘SŠp”»’f(npc.c)‚ðC³(For English User Forum >>54)
-
- (’ˆÓ) map_athena.conf‚̃}ƒbƒvƒLƒƒƒbƒVƒ…Žw’è‚ðs‚¤ƒpƒ‰ƒ[ƒ^–¼‚ð•ÏX‚µ‚Ä‚¢‚Ü‚·
-
- (conf)
- map_athena.conf - read_map_from_bitmap‚ðread_map_from_cache ‚É•ÏX
- - map_bitmap_path‚ðmap_cache_file‚É•ÏX
- (src/map)
- map.h - ƒZƒ‹ƒ^ƒCƒv–¼Ì•ÏX(CELL_CHKHIGH,CELL_CHKTYPE)A
- íœ(CELL_SET*)
- - skill_unit_group_ticksetƒƒ“ƒo–¼•ÏX(group_id -> id)
- - ƒrƒbƒgƒ}ƒbƒvŠÖ˜A‚Ì‹Lq‚Ì­Õ‚ðíœ
- map.c - map_getcell() ƒZƒ‹ƒ^ƒCƒv–¼Ì•ÏX‚Ǝ኱‚̃R[ƒh•ÏX
- - map_setcell()‚ð1084ˆÈ‘O‚ÌŽd—l‚É–ß‚µACELL_SETNPC‚Ì
- ƒtƒ‰ƒO‚ð’ljÁ
- - map_cacheŠÖ˜A‚Ìׂ©‚ÈC³
- npc.c - ‘SŠp”»’f(is_zenkaku)‚ð³Šm‚És‚¤‚悤•ÏX
- - map_getcell()‚̃Zƒ‹ƒ^ƒCƒv–¼Ì•ÏX‚É’Ç]
- pc.c - ƒAƒCƒeƒ€‚ªˆê‚‚µ‚©‚È‚¢ê‡AŽg—pŽž‚̃GƒtƒFƒNƒg‚ª•\Ž¦
- ‚³‚ê‚È‚¢–â‘è‚ðC³
- - map_getcell()‚̃Zƒ‹ƒ^ƒCƒv–¼Ì•ÏX‚É’Ç]
- skill.c - ƒXƒg[ƒ€ƒKƒXƒgAƒ[ƒhƒIƒuƒ”ƒ@[ƒ~ƒŠƒIƒ“‚ðd‚Ë‚½ê‡
- •Ð•û‚©‚炾‚¯ƒ_ƒ[ƒW‚ðŽó‚¯‚é‚悤C³
- - ƒZ[ƒtƒeƒB[ƒEƒH[ƒ‹Žg—pŽž‚ɃAƒhƒŒƒX•s³‚Æ‚È‚éꇂª
- ‚ ‚é–â‘è‚ðC³
- - map_getcell()‚̃Zƒ‹ƒ^ƒCƒv–¼Ì•ÏX‚É’Ç]
- skill.h - ŠÖ”’è‹`•ÏX
- path.c - ‰“‹——£UŒ‚‚̃pƒXŒŸõˆ—‚ð’ljÁ(path_search_long)
- - map_getcell()‚̃Zƒ‹ƒ^ƒCƒv–¼Ì•ÏX‚É’Ç]
- battle.c - ‰“‹——£UŒ‚‚̃pƒXŒŸõ‚ðŽg—p‚·‚é‚悤•ÏX
-
---------------------
-//1091 by End_of_exam
-
-––@’ˆÓ@––
-
-@¡‰ñ‚̃pƒbƒ`‚͉ü‘¢“à—e‚ª•¡ŽG‚È‚Ì‚ÅA“±“ü‚ÍTd‚És‚Á‚Ä‚­‚¾‚³‚¢B
-@status.c / h ‚Ö‚Ì•ª—£‚ÍAŠÖ”–¼‚Ì’u‚«Š·‚¦‚¾‚¯‚É—¯‚ß‚½‚‚à‚è‚Å‚·‚ªA
-@Žv‚í‚ʃoƒO‚ªö‚ñ‚Å‚¢‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B
-
-EƒXƒpƒQƒeƒB‘Îô‚̈êŠÂ‚Æ‚µ‚ÄAƒXƒe[ƒ^ƒXŒvŽZAó‘ÔˆÙí‚ÉŠÖ‚í‚é•”•ª‚ð
-@status.c / h ‚Æ‚µ‚Ä•ª—£Bbattle.c ‚©‚ç39KB’ö , skill.c ‚©‚ç41KB’ö ,
-@pc.c ‚©‚ç38KB’öˆÚ“®‚Å‚«‚Ü‚µ‚½B­X‹­ˆø‚Å‚·‚ªAƒXƒLƒ‹Žg—p‚âUŒ‚‚È‚Ç‚Ì
-@ˆ—‚Ì—¬‚ê‚ð‚‚©‚Ý‚â‚·‚­‚·‚邽‚ß‚É‚ÍAbattle.c / skill.c ‚Ì’†g‚ð
-@Œ¸‚ç‚·•K—v‚ª‚ ‚é‚Æl‚¦‚½‚½‚ß‚Å‚·B
-
- battle_get_* => status_get_*
- skill_status_change_* => status_change_*
- pc_calcstatus => status_calc_pc
- pc_calc_sigma => status_calc_sigma
- pc_getrefinebonus => status_getrefinebonus
- pc_percentrefinery => status_percentrefinery
-
-Ebattle.c , script.c ‚ÌŠª‚«–ß‚è‚ð–ß‚·
-Enpc.c ‚̉ö‚µ‚¢•ÏX‚ð–ß‚µA‚«‚¿‚ñ‚ÆNUL ‚ð•t‚¯‰Á‚¦‚é‚悤‚É‚·‚é
-Escript.c ‚̃~ƒX‚𒼂·ijump_non_zero => jump_zero@ˆÓ–¡‚ª‹t‚É‚È‚Á‚Ä‚Ü‚µ‚½cj
-Eskill.c ‚Ì•ŠíC— ‚̃Rƒƒ“ƒgƒ~ƒX‚ðC³
-EWIN32‚ŃRƒ“ƒpƒCƒ‹‚µ‚½ŽžAÅ‘åÚ‘±l”‚ª60l’ö‚ɧŒÀ‚³‚ê‚Ä‚¢‚½ƒoƒO‚ðC³
-
- (/)
- athena.dsw , athena.dsp , bcc32_make.bat , src/login/login.dsp
- src/char/char.dsp , src/map/map.dsp
- ƒRƒ“ƒpƒCƒ‹ðŒ‚Ì•ÏX
-
- (src/map/)
- ã‚Ì•ª—£‚ɇ‚킹‚ăRƒ“ƒpƒCƒ‹ƒGƒ‰[‚Ìo‚È‚¢‚悤‚ÉC³
-
---------------------
-//1090 by Sapientia
-Eƒ`ƒƒƒbƒg‚Ì•Ö—˜‚³‚Ì‚½‚ß‚É‹©‚ԒljÁ (ƒMƒ‹ƒhƒ`ƒƒƒbƒg‚Ƌ敪‚·‚邽‚߂ɃEƒFƒ`ƒMƒV‚Ì‘O‚É [‹©‚Ô‚±‚Æ]‚ª•t‚«)
-Eatcomand_athena.conf ‚Å onlymes ‚ð 0‚Åݒ肵‚ÄŠFŽg‚¤‚悤‚ÉŠˆ«‰»
- ƒIƒŠƒWƒiƒ‹‚Ȃ̂ŃfƒtƒHƒ‹ƒg‚Å GM‚¾‚¯Žg‚¤‚±‚Æ‚ª‚Å‚«‚é‚悤‚Éݒ肵‚Ü‚µ‚½.
-E@mes [Œ¾‚¤‚±‚Æ] ‚ÅŽg—p
-
- (src/map)
- atcommand.c atcommand_charkami ’ljÁ
- atcommand.h
- clif.c clif_onlymessage ’ljÁ
- clif.h
- (src/conf)
- atcommand_athena.conf onlymes ’ljÁ
- help.txt @mes à–¾’ljÁ
-
-
---------------------
-//1089 by ¹
-EVC.NET2003‚ŃRƒ“ƒpƒCƒ‹‚·‚é‚Æ‘å—Ê‚ÉŒx‚ªo‚é‚Ì‚ðC³
-E‚»‚Ì‘¼ƒoƒbƒtƒ@ƒI[ƒo[ƒtƒ[“™‚Ìׂ©‚¢ƒoƒOC³
-
- (src/char)
- int_guild.c Œx‰ÓŠ‚ðC³
-
- (src/map)
- atcommand.c, battle.c, clif.c, itemdb.c, pc.c, pc.h, script.c, skill.c
- Œx‰ÓŠ‚ðC³
- npc.c Œx‰ÓŠ‚ƃoƒbƒtƒ@ƒI[ƒo[ƒtƒ[C³
-
---------------------
-//1088 by Sapientia
-EƒEƒBƒUƒhƒXƒLƒ‹ Icewall ‚±‚̃Lƒƒƒ‰ƒNƒ^[‚⃂ƒ“ƒXƒ^[‘«‚à‚Æ‚ÉÝ’u‚³‚ê‚邱‚Æ‚ð–hŽ~
-Eƒ[ƒhƒiƒCƒgƒXƒLƒ‹ Berserk Žg—p‚ÌŽž HP‚ª 1/3‚É‚È‚ê‚Ήñ•œ‚·‚éƒoƒOC³
-
- (src/map)
- pc.c Berserk C³
- skill.c Icewall C³
-
---------------------
-//1087 by End_of_exam
-
-Eƒ}ƒbƒvƒLƒƒƒbƒVƒ…‚Ɉ³k‹@”\‚ð’ljÁ(1MB’ö‚Ék‚Ü‚é‚悤‚Å‚·)
-Enpc.c ‚ÌŠª‚«–ß‚è‚ðC³(Ž¿–âƒXƒŒƒbƒh Part14 , 111)
-Emap_athena.conf ‚̃Rƒƒ“ƒgƒAƒEƒg‚ðC³(AthenaŽG’kƒXƒŒƒbƒhPart7 , 146)
-EWindows —p‚Ì‹N“®ƒXƒNƒŠƒvƒg‚ð’ljÁ‚µ‚Ä‚Ý‚é(eAthena ‚Ì‚ðŒ³‚É‰ü‘¢j
-
- (/)
- win32_start.bat Windows —p‚Ì‹N“®ƒtƒ@ƒCƒ‹
-
- (src/map)
- map.c ˆ³k‹@”\‚̒ljÁ
- npc.c Šª‚«–ß‚è‚ðC³
-
- (src/common)
- grfio.c decode_zip , encode_zip ‚̃GƒNƒXƒ|[ƒg
- grfio.h decode_zip , encode_zip ‚̃GƒNƒXƒ|[ƒg
-
- (conf/)
- map_athena.conf C³
-
---------------------
-//1086 by End_of_exam
-
-Žå‚É1085‚̃oƒOC³‚¾‚Á‚½‚è‚à‚µ‚Ü‚·B
-u‚Ä‚ß[A‚P‚©‚ç‘‚«’¼‚µ‚₪‚Á‚Äv‚Æ‚¢‚¤“Ë‚Áž‚Ý‚¾‚¯‚ÍŠ¨•Ù‚µ‚Ä‚­‚¾‚³‚¢‚Ü‚¹B
-
-Eƒf[ƒ^\‘¢‚Ì‘å•ÏX(map.c)
- ƒ}ƒbƒv‚ð휕’ljÁ‚µ‚Ăೂµ‚­“®‚­‚悤‚É•ÏX
- ƒ}ƒbƒvƒLƒƒƒbƒVƒ…쬒†‚É‹­§I—¹‚·‚é‚ÆÄ‹N“®Žž‚É•sˆÀ’è‚É‚È‚éƒoƒO‚ðC³
- ˆ³kƒtƒ‰ƒO‚̒ljÁiŽù—v‚ ‚é‚Ì‚©•s–¾Bcompress‚ð^‚É‚·‚é‚ÆAŒ»Ý‚̃\[ƒX‚Å
- “Ç‚ß‚È‚­‚È‚è‚Ü‚·Bj
-
-E‚È‚ñ‚©Õ“®‚ª‚ ‚₵‚·‚¬‚é‚Ì‚ÅAƒrƒbƒgƒ}ƒbƒvˆ—‚ð“P”p‚·‚é(map.c map.h)
- npc_touch_areanpc : some bug@‚ª‚½‚­‚³‚ño‚Ä‚­‚é -> Œ´ˆö•s–¾H
- ‹°‚ç‚­’Ês‰Â”\”»’肪³‚µ‚­Ý’肳‚ê‚Ä‚¢‚È‚¢‚Á‚Û‚¢‚ñ‚Å‚·‚ª“ä‚Å‚·B
- ”read_map_from_bitmap ‚ÌÝ’è‚ðÈ‚­‚ƃƒOƒCƒ“Žž‚É—Ž‚¿‚éƒoƒO‚ðC³
-
-EƒLƒƒƒbƒVƒ…“à‚É‘S‚Ẵ}ƒbƒv‚ª‚ ‚ê‚ÎAgrf –³‚µ‚Å‚à“®ì‚·‚é‚悤‚É•ÏXB(grfio.c map.c)
-
- (src/map)
- map.c ƒoƒOC³‘¼
- map.h ƒoƒOC³‘¼
-
- (src/common)
- grfio.c ƒtƒ@ƒCƒ‹‚ªŒ©‚‚©‚ç‚È‚¢Žž‚Éexit ‚ðŒÄ‚΂Ȃ¢‚悤‚ÉC³
-
---------------------
-//1085 by zalem
-Eƒ}ƒbƒvƒf[ƒ^‚Ì“Ç‚Ýž‚݂̓rƒbƒgƒ}ƒbƒvƒtƒ@ƒCƒ‹‚©‚çs‚È‚¦‚é‚悤‚È‹@”\’ljÁ
-
- grfƒtƒ@ƒCƒ‹‚©‚çˆê“xƒrƒbƒgƒ}ƒbƒvƒtƒ@ƒCƒ‹‚ð쬂µ‚ĈȌã‚Í‚»‚Ì
- 쬂³‚ꂽƒrƒbƒgƒ}ƒbƒvƒtƒH[ƒ}ƒbƒg‚̃tƒ@ƒCƒ‹‚©‚çƒ}ƒbƒvî•ñ‚ð“Ç‚Ýž‚Þ
- ‚Æ‚¢‚¤•û–@‚ð̂邱‚Æ‚É‚æ‚Á‚ÄAmap-server‚ª—§‚¿ã‚ª‚鎞ƒ}ƒbƒvî•ñ‚ð“Ç‚ÝŽæ‚é
- ‚Ì‚ÉŠ|‚©‚鎞ŠÔ‚ª‚Ù‚Æ‚ñ‚Ç‚È‚­‚È‚éA‚Ü‚½1int‚É32ŒÂ‚̃Zƒ‹î•ñ‚ªŠi”[‚Å‚«‚é‚Ì
- ‚ÅAmapî•ñ‚ÉŠÖ‚·‚郃‚ƒŠŽg—p—Ê‚à‚RŠ„‚è‹ß‚­‚Ü‚ÅŒ¸‚é‚Ì‚Å(‚»‚Ì‚©‚í‚è‚É
- ‚ ‚é’ö“xCPU‚Ì•‰’S‚ª‘å‚«‚­‚È‚é)A’ljÁ‚µ‚Ä‚Ý‚½B
- conf/map_athena.conf‚Ìread_map_from_bitmapƒIƒvƒVƒ‡ƒ“‚Å—˜—p‚·‚é
- ‚©‚Ç‚¤‚©‚ðŽw’è‚Å‚«A‚»‚̉º‚É‚ ‚émap_bitmap_path‚Ńtƒ@ƒCƒ‹–¼‚ð•ÏX‚·‚é
- (ƒfƒtƒHƒ‹ƒg‚Ådb/map.info)
- ‚Ü‚¾ƒeƒXƒg’iŠK‚È‚Ì‚ÅA“±“ü‚Í‚²Td‚É(ˆê‰žLinux‚ÅA‚¢‚ë‚¢‚ë‚Æ
- ƒeƒXƒg‚µ‚Ä‚Ý‚½‚ª...)
-
-Emap_getcell()‚É4”Ô–Úˆø”‚̒ljÁ‚Æmap_setcell()‚Ì4”Ô–Úˆø”‚Ì•ÏX
-
- ŠÖ”‚Ì—˜—pˆÓ}‚ª‚í‚©‚è‚â‚·‚¢‚悤‚ÉA‚»‚µ‚Ä‚±‚ê‚©‚ç‚Ì•ÏX‚ð—eˆÕ‚É‚·‚é
- ‚½‚ß‚ÉAmap_getcell()‚Æmap_setcell()‚Ì‚»‚ꂼ‚ê4”Ԗڂ̈ø”‚ð’ljÁA•ÏX‚µ‚Ä‚Ý‚½A
- map_getcell()‚Ì4”Ԗڂ̈ø”‚Ímap.h‚Å’è‹`‚³‚ê‚Ä‚éCELL_CHK—ñ‹“Œ^Amap_setcell()
- ‚Ì4”Ԗڂ̈ø”‚Ímap.h‚Å’è‹`‚³‚ê‚Ä‚éCELL_SET—ñ‹“Œ^‚ð‚Æ‚é‚悤‚É•ÏX.‚Ü‚½Aã‚Ì
- Feature‚ɑΉž‚·‚邽‚ßAmap_getcell()‚ðƒ|ƒCƒ“ƒ^‚É•ÏX‚µ‚½B
-
- Žå‚È•ÏX“_F
-
- src/map/map.h read_gat(),read_gatp()ƒ}ƒNƒ‚Ì•ÏX
- —ñ‹“Œ^ CELL_CHK,CELL_SET‚ð’ljÁ,map_getcell(),map_setcel()—p
- map_data\‘¢‘̂Ƀƒ“ƒo[int* gat_fileused[MAX_CELL_TYPE+2]’ljÁ
- src/map/map.c map_getcell()‚ðŠÖ”Œ^ƒ|ƒCƒ“ƒ^‚É•ÏX,map_getcellp()‚ðread_gatp()
- ‚Ì‚½‚߂ɒljÁ,ŽÀۂɉº‚ÌŽl‚‚̊֔‚Ì‚Ç‚Á‚¿‚ÉŽw‚·‚©‚Ímap_read_flag‚É‚æ‚é
- map_getcell_gat(),map_getcell_bitmap() ’ljÁ
- map_getcellp_gat(),map_getcellp_bitmap() ’ljÁ
- map_setcell() •ÏX
- map_createbitmap() ’ljÁ
- map_readmapfromfile() ’ljÁ
- map_readallmap() •ÏX
- map_config_read() •ÏX
- do_final() •ÏX
- ˆÈ‰º‚Ì*.cƒtƒ@ƒCƒ‹“à‚Ìmap_getcell(),map_setcell(),read_gat(),read_gatp()‚ðŒÄo‚µ‚½•”•ª‚ð‚·‚×‚Ä•ÏX
- src/map/atcommand.c
- src/map/mob.c
- src/map/npc.c
- src/map/path.c
- src/map/pc.c
- src/map/pet.c
- src/map/skill.c
-
- conf/map_athena.conf read_map_from_bitmap,map_bitmap_path ’ljÁ
-
---------------------
-//1084 by lizorett
-EŒoŒ±’lŠl“¾‚̃oƒOC³(ƒoƒO•ñƒXƒŒƒbƒh part7 >>134)
- (src/map)
- mob.c ŒoŒ±’lŒvŽZC³
-
---------------------
-//1083 by End_of_exam special thanks to lizorett‚³‚ñ
-Eƒ\ƒPƒbƒg‚̃fƒXƒgƒ‰ƒNƒ^ˆ—‚̒ljÁ
- (common/socket.c common/socket.h login/login.c char/char.c map/clif.c map/chrif.c)
- ƒ\ƒPƒbƒg‚ð•Â‚¶‚鎞‚̈—‚Ì—¬‚ꂪ•ÏX‚É‚È‚è‚Ü‚·B¡‚܂Ń\ƒPƒbƒg‚ð•Â‚¶‚éꇂÍA
- ‚Ü‚¸session[fd]->eof ‚ð^‚É‚µ‚½ŒãAƒp[ƒYƒ‹[ƒ`ƒ““à‚Ō㈗iƒƒ‚ƒŠ‰ð•ú‚È‚Çj
- ‚µ‚Ä‚¢‚Ü‚µ‚½B‚Å‚·‚ªAclose(fd); ‚ª‚Qd‚ÉŽÀs‚³‚ê‚ăT[ƒo[‚ª—Ž‚¿‚é‚È‚Ç‚Ì
- ƒoƒO‚ª”­¶‚µ‚Ä‚¢‚½‚èAˆ—‚Ì—¬‚ꂪ‚‚©‚Ý‚É‚­‚¢‚Æ‚¢‚Á‚½——R‚©‚çAsocket.c “à•”‚Å
- ‘S‚Ĉ—‚·‚é‚悤‚É•ÏX‚µ‚Ü‚µ‚½Bƒ\ƒPƒbƒg‚ð•Â‚¶‚鎞‚ÌŽå‚È—¬‚ê‚ÍŽŸ‚Ì’Ê‚è‚Å‚·B
-
- 1. ƒ\[ƒX“à‚©‚çsession[fd]->eof = 1; ‚ð‚·‚é
- 2. socket.c “à‚©‚çsession[fd]->destruct() ‚ªŒÄ‚΂ê‚é
- 3. ƒƒ‚ƒŠ‚̉ð•ú•Œãˆ—(socket.c delete_session“à•”)
-
- close(fd) ‚ÍAsession[fd]->eof = 1; ‚É’u‚«Š·‚¦‚Ü‚µ‚½(#define)B
- ‚Ü‚½Adelete_session() ‚𖾎¦“I‚ɌĂԕK—v‚Í‚ ‚è‚Ü‚¹‚ñB
-
-Eƒ}ƒbƒvŽI•ª”zŽž‚̃AƒCƒeƒ€dupe–â‘èC³(map/map.c map/pc.c map/chrif.c)
- ƒ\ƒPƒbƒgØ’fŽž‚É‘qŒÉƒf[ƒ^‚̃LƒƒƒbƒVƒ…‚ðÁ‚·‚悤‚É•ÏX
- ‚QdƒƒOƒCƒ“Žž‚Ƀ}ƒbƒvƒT[ƒo[‚ªˆá‚Á‚½ê‡‚É‚àØ’f‚Å‚«‚é‚悤‚ÉC³
-
-EŒÃ‚¢ƒo[ƒWƒ‡ƒ“‚ŃƒOƒCƒ“‚µ‚½Žž‚ÉmapŽI‚ª—Ž‚¿‚éƒoƒO‚ðC³(map/clif.c)
- clif_parse() “à•”
-
- if(packet_db[cmd].len==0) {
- -> if(cmd<MAX_PACKET_DB && packet_db[cmd].len==0) {
-
-Egcc ‚ŃRƒ“ƒpƒCƒ‹‚µ‚½Žž‚Étimer.c ‚Åwarning ‚ªo‚½‚Ì‚ðC³(common/timer.c)
- timer.c:116: warning: `check_timer_heap' defined but not used
-
- (src/common/)
- socket.c ƒ\ƒPƒbƒg‚̃fƒXƒgƒ‰ƒNƒ^ˆ—‚ð’ljÁ
- socket.h ƒ\ƒPƒbƒg‚̃fƒXƒgƒ‰ƒNƒ^ˆ—‚ð’ljÁ
- timer.c warning C³
-
- (src/map/)
- clif.c ƒ\ƒPƒbƒg‚̃fƒXƒgƒ‰ƒNƒ^ˆ—‚ð’ljÁ
- chrif.c ƒ\ƒPƒbƒg‚̃fƒXƒgƒ‰ƒNƒ^ˆ—‚ð’ljÁ
- map.c ƒ}ƒbƒvŽI•ª”zŽž‚̃AƒCƒeƒ€dupe–â‘èC³
- pc.c ƒ}ƒbƒvŽI•ª”zŽž‚̃AƒCƒeƒ€dupe–â‘èC³
-
- (src/char/)
- char.c ƒ\ƒPƒbƒg‚̃fƒXƒgƒ‰ƒNƒ^ˆ—‚ð’ljÁ
-
- (src/login/)
- login.c ƒ\ƒPƒbƒg‚̃fƒXƒgƒ‰ƒNƒ^ˆ—‚ð’ljÁ
-
---------------------
-//1082 by lizorett (2004/12/18) special thanks to –¼–³‚µ—l@‚‡—‚‚…
-E”’nŽæ‚è‚ðƒ{ƒX‚É–³Œø‚É•ÏX
-E1079‚Ì•ÏX•”•ª‚ÉNULLƒ`ƒFƒbƒN‚ð’ljÁ
-EƒJ[ƒh‚ÌŒø‰Ê‚ªæ‚ç‚È‚¢ƒXƒLƒ‹‚ɃGƒ“ƒ`ƒƒƒ“ƒgƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“Œø‰Ê‚ªæ‚ç‚È‚¢‚æ
- ‚¤‚É•ÏX
-EƒGƒ“ƒ`ƒƒƒ“ƒgƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“‚ÌŒø‰Ê‚ɶŽè‚ªÚ‚ç‚È‚¢‚悤‚É•ÏX
-EƒTƒNƒŠƒtƒ@ƒCƒX‚ðŽÀ‘•
-EƒXƒg[ƒ€ƒKƒXƒg‚̃mƒbƒNƒoƒbƒN‚ªƒXƒLƒ‹Žw’èˆÊ’u‚ð’†S‚Æ‚·‚é‚悤•ÏX
-EƒXƒLƒ‹‚ÌŽË’ö‹——£‚©‚ç1ƒZƒ‹—£‚ꂽꊂðŽw’肵‚ăXƒLƒ‹‚ðŽg‚¤‚Ɖ½‚à‹N‚±‚ç‚È‚¢–â‘è
- ‚ðC³
-EŒoŒ±’l‚Ì”z•ª‚ðC³(ƒ_ƒ[ƒW‚ð—^‚¦‚½l‚ª‚¢‚È‚¢ê‡‚âA“Ń_ƒ[ƒW‚ª‚ ‚éꇂɌo
- Œ±’l‚ª­‚È‚­‚È‚Á‚Ä‚¢‚½)
-E‘•”õ‚µ‚Ä‚¢‚È‚¢‰ÓŠ‚ւ̃XƒgƒŠƒbƒvƒXƒLƒ‹‚ªŽ¸”s‚·‚é‚悤•ÏX
-Eƒpƒbƒ`ƒAƒbƒvƒXƒŒƒbƒh Part 6H‚Ì>>116,>>125,>>126 ‚̃tƒ@ƒCƒ‹‚ð”O‚Ì‚½‚߃}[ƒW
-
- (db/)
- skill_db.txt, skill_cast_db.txt, skill_require_db.txt
- - ƒTƒNƒŠƒtƒ@ƒCƒX‚Ì‹Lq‚ðC³/’ljÁ
- (src/map/)
- battle.c - ƒGƒ“ƒ`ƒƒƒ“ƒgƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“‚Ì•ÏX
- - ƒTƒNƒŠƒtƒ@ƒCƒX‚ÌŽÀ‘•
- - ƒXƒg[ƒ€ƒKƒXƒg‚̃mƒbƒNƒoƒbƒN•ûŒü‚ð•ÏX
- - ”’nŽæ‚è‚ðƒ{ƒX‚É–³Œø‚É•ÏX
- skill.h - SC_SACRIFICE‚ð’ljÁ
- skill.c - ƒTƒNƒŠƒtƒ@ƒCƒX‚ÌŽÀ‘•
- - skill_castend_damage_id()‚ÌMG_FROSTDIVER/MG_STONECURSE‚É
- NULLƒ`ƒFƒbƒN‚ð’ljÁ
- mob.c - ŒoŒ±’l‚Ì”z•ª‚ðC³
- script.c - ŒÂ•Ê‚Éo‚³‚ê‚Ä‚¢‚½ƒtƒ@ƒCƒ‹‚ðƒ}[ƒW(>>125)
- npc.c - ŒÂ•Ê‚Éo‚³‚ê‚Ä‚¢‚½ƒtƒ@ƒCƒ‹‚ðƒ}[ƒW(>>126)
- (src/common)
- core.c - ŒÂ•Ê‚Éo‚³‚ê‚Ä‚¢‚½ƒtƒ@ƒCƒ‹‚ðƒ}[ƒW(>>116)
-
---------------------
-//1081 by End_of_exam
-Euƒ‹[ƒv\•¶‚Ì•û‚àŽÀ‘•‚µ‚Ä‚­‚¾‚³‚¢v‚Æ‚¢‚¤—v–]‚ð–á‚Á‚½‚Ì‚ÅA
-@for , while , do - while \•¶‚𓱓üBŒÂl“I‚É—]‚èŽù—v‚Í–³‚¢‚ÆŽv‚¤‚Ì‚Å‚·‚ªcB
-
-Eelse‚ªŠ®‘S‚ɉðÍ‚Å‚«‚Ä‚È‚©‚Á‚½ƒoƒO‚ðC³B
-Eswitch ‚Ìbreak; ‚ªêŠ‚É‚æ‚Á‚Ă̓Rƒ“ƒpƒCƒ‹ƒGƒ‰[‚É‚È‚éƒoƒO‚ðC³B
-
- (src/map/)
- script.c : \•¶‚ðŠg’£BFX®—B
-
- (doc/)
- script_ref.txt : ã‚ÌC³‚ɇ‚킹‚Ä•ÏXB
-
---------------------
-//1080 by End_of_exam
-
-EƒXƒNƒŠƒvƒg‚ð if - else if - else \•¶ , switch \•¶‚ɑΉž‚³‚¹‚Ü‚µ‚½B
-@‘½dƒlƒXƒg‚ª‰Â”\‚Å‚·‚Ì‚ÅA¡‚Ü‚Å‚æ‚茩‚â‚·‚¢ƒXƒNƒŠƒvƒg‚ª‘‚¯‚é‚ÆŽv‚¢‚Ü‚·B
-@if(aa) { aaa(); } else if(bb) { cc; if(dd) { ee() } else { ff(); } }
-@‚»‚ê‚É”º‚¢A__ ‚©‚çŽn‚Ü‚é•Ï”‚⃉ƒxƒ‹‚ð—p‚¢‚é‚ÆA•s“s‡‚ª¶‚¶‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B
-
-EƒXƒNƒŠƒvƒg‚ÉV‚µ‚¢ŠÖ”(selectŠÖ”Emenu–½—ß‚ÌŠÖ””Å)‚ð’ljÁ‚µ‚Ü‚µ‚½B
-
- (src/map/)
- script.c : \•¶‚ðŠg’£
- npc.c : npc_perse_script ‚ÌC³( { , } ‚̃lƒXƒg‚ɑΉž )
-
- (script/)
- npc/town/npc_town_alberta.txt : ˆêƒJŠ goto ‚ª”²‚¯‚Ä‚½‚Ì‚ÅC³
- sample/npc_debug_pota.txt : switch , select ‚ðŽg‚Á‚Ä‘‚«’¼‚µ
- (ƒfƒoƒbƒO‚ÉŽg‚킹‚Ä–á‚¢‚Ü‚µ‚½)
-
- (doc/)
- script_ref.txt : ã‚ÌC³‚ɇ‚킹‚Ä•ÏX
---------------------
-//1079 by Yuuki
-EΉ»’†‚ɃXƒg[ƒ“ƒJ[ƒX‚ðŽg‚¤‚ÆΉ»‰ðœ
-EFD‚ŃXƒLƒ‹’ljÁŒø‰Ê‚ðŽg‚¤‚Æ•X‰»’†ƒ_ƒ[ƒW”»’è‚Åæ‚ÉŠ„‚ê‚Ä‚à‚¤ˆê“x•X‰»”»’肪‚­‚é‚̂ŃXƒLƒ‹’ljÁŒø‰Ê‚‚©‚킸
-EBB‚Ň–°Î‰»•X‰»‚ªŠ„‚ê‚È‚¢ƒoƒO‚ÌC³(“ÆŽ©‚̃_ƒ[ƒW”»’èŽg‚Á‚Ä‚½‚Ì‚ÅÁ‚µ‚ij‹K‚̃_ƒ[ƒW”»’è‚É–ß‚µ‚½)
-EƒfƒBƒŒƒC0‚̃XƒLƒ‹‚Éadelay/2’ljÁ(GŽI‚ÅTSŽg‚Á‚ÄŒŸØ‚µ‚½Œ‹‰ÊÅ‚à‚±‚ꂪ‹ß‚©‚Á‚½’ÊíUŒ‚‚æ‚è‚Í‚â‚©‚Á‚½‚Ì‚Å)
-
- (src/map)
- skill.c
-
---------------------
-//1078 by End_of_exam
-
-EVisual C++ 6.0 / bcc32 ‚ŃRƒ“ƒpƒCƒ‹o—ˆ‚é‚悤‚ÉC³(•Ê“rzlib.dll ‚ª•K—v)
-E1074‚ÍŒ‡”Ô‚É‚µ‚Ü‚·BFX‚Æ‚²–À˜f‚ð‚©‚¯‚½Ž–‚ð‚¨˜l‚Ñ‚µ‚Ü‚·B
-
-––@’ˆÓ@––
- ¡‰ñ‚̃o[ƒWƒ‡ƒ“‚ÌŠ®‘S‚È“®ìŠm”F‚Í‚µ‚Ä‚¢‚Ü‚¹‚ñil’Œ”ňµ‚¢‚É‚µ‚Ä‚­‚¾‚³‚¢jB
- –{Ši“I‚ȉ^—p‚É“¥‚ÝØ‚é‘O‚É‚ÍA•K‚¸“®ìŠm”F‚ð‚·‚é‚悤‚É‚µ‚Ä‚­‚¾‚³‚¢B
- ꇂɂæ‚Á‚Ä‚ÍAƒRƒ“ƒpƒCƒ‹o—ˆ‚È‚¢A•s³‚È“®ì‚É‚È‚éc“™X‚Ì–â‘肪‹N‚±‚é‚©‚à
- ‚µ‚ê‚Ü‚¹‚ñ‚ªA‚»‚Ì‚Æ‚«‚ÍA‘›‚ª‚¸AQ‚Ä‚¸‚ÉAƒl\‚Ì~—Õ‚ð‘҂‚悤‚¨Šè‚¢‚µ‚Ü‚·B
-
-–– ‚¨Šè‚¢ ––
- ‚±‚̃pƒbƒ`‚ðŠ®‘S”Å‚É‚µ‚Ä‚­‚ê‚é•ûAŽg—pŠ´ƒŒƒ|[ƒg‚ð“Še‚µ‚Ä‚­‚ê‚é•û‚ð•åW‚µ‚Ü‚·B
- ƒpƒbƒ`‚ðŒöŠJ‚·‚é‚‚¢‚Å‚ÉA‘å—Ê‚Ìwarning ‚ðC³‚µ‚Ä‚­‚ꂽ‚çŠð‚µ‚¢‚È`A‚ÆŽv‚Á‚Ä‚Ý‚½‚èB
-
- (/)
- bcc32_make.bat , bcc32_clean.bat
- bcc32 ‚ŃRƒ“ƒpƒCƒ‹ / ƒNƒŠ[ƒ“@‚ðŠÈ’P‚É‚·‚邽‚߂̃oƒbƒ`ƒtƒ@ƒCƒ‹B
-
- athena.dsp , athena.dsw , src/login/login.dsp , src/char/char.dsp ,
- src/map/map.dsp
- Visual C++ —p‚̃vƒƒWƒFƒNƒgƒtƒ@ƒCƒ‹ & ƒ[ƒNƒXƒy[ƒX
-
- (src/)
- ƒRƒ“ƒpƒCƒ‹o—ˆ‚é‚悤‚ÉFXC³B
-
- (src/common/timer.c)
- “ÆŽ©‚̎蔲‚«ƒAƒ‹ƒSƒŠƒYƒ€i‚Q•ªƒ\[ƒgj‚ðÌ—p‚µ‚½ƒo[ƒWƒ‡ƒ“B
-
---------------------
-//1077 by sylpheed
-EƒT[ƒo[ƒXƒiƒbƒvƒVƒ‡ƒbƒg
-E‰º‹L“ñ‚‚ðŽæ‚èž‚Ý
-Ž¿–âƒXƒŒƒbƒh Part14-41 Plala‚³‚ñ
-ƒoƒO•ñƒXƒŒƒbƒh part7-68 ...‚³‚ñ
-
-1074‚ÍŽæ‚èž‚ñ‚Å‚¢‚Ü‚¹‚ñB
-
---------------------
-//1076 by mare
-EŠØ‘Œö’m‚Ì’Ê‚èƒAƒŠƒX‚ƃWƒ‹ƒ^ƒX‚̃GƒT‚Ì•ÏXB
-EGM‚̃Aƒuƒ‰ƒJƒ^ƒuƒ‰ê—pƒXƒLƒ‹‚̃tƒ‰ƒO‚ªÁ‚¦‚Ä‚½‚Ì‚Å•œŠˆB
-Eƒuƒ‰ƒbƒNƒXƒ~ƒXƒMƒ‹ƒhˆõ‚ɃvƒŠ[ƒXƒg‚Ìꇂ̃ZƒŠƒt‚ð’ljÁB
-EƒNƒ‰ƒXƒ`ƒFƒ“ƒW‚Å‘S‚Ä‚ÌŽw’èIDƒ{ƒX‚ªo‚é‚悤‚Éi‚È‚Á‚Ä‚é‚Æ‚¢‚¢‚È‚Ÿj
- (db)
- pet_db.txt
- (conf)
- battle_athena.conf
- (script/npc/job)
- npc_job_10blacksmith.txt
- (src/map)
- mob.c
---------------------
-//1075 by kag
-E‹|Žè—p‚ÌŽwŠÑ‚ÌŒø‰ÊŽÀ‘•‚Ì•zÎ
-EŒø‰Ê‚ª‚Í‚Á‚«‚è‚Æ‚µ‚È‚¢‚Ì‚Åitem_db‚ÌC³‚Í‚¢‚ê‚Ä‚¢‚Ü‚¹‚ñB
-E1075”Ô‚Å‚¢‚¢‚Ì‚©‚È‚Ÿ‚ÆŽv‚Á‚½‚èB
-
- (db)
- const.txt
- bWeponAtk=1073‚ÆbWeponAtkRate=1074‚ð’ljÁ
-
- (src/map)
- battle.c
- int battle_get_baseatk()C³
- static struct Damage battle_calc_pc_weapon_attack()C³
- map.h
- int weapon_atk[16],weapon_atk_rate[16];
- SP_WEPON_ATK,SP_WEPON_ATK_RATE, // 1073-1074‚ð’ljÁ
- pc.c
- memset(sd->weapon_atk,0,sizeof(sd->weapon_atk));
- memset(sd->weapon_atk_rate,0,sizeof(sd->weapon_atk_rate));‚ð’ljÁ
-
- pc_bonus2() C³
- (doc)
- item_bonus.txt
- bWeponAtk,bWeponAtkRate,bHPDrainValue,bSPDrainValue@’ljÁB
-
---------------------
-//1073 by LP@@
-EƒAƒRƒXƒLƒ‹‚̈ꕔ‹y‚уTƒCƒgƒXƒLƒ‹‚ÌC³(“ú–{‚É‚Í¡ŒŽ––‚É—ˆ‚锤H@2004/12/06)
-‘¬“xŒ¸­‚͈ړ®‘¬“xŒ¸­—Ê‚ªAƒVƒOƒiƒ€ƒNƒ‹ƒVƒX‚ͬŒ÷—¦ADEFŒ¸­—Ê‚Ì‘‰Á—Ê‚ª
-‚Í‚Á‚«‚肵‚È‚©‚Á‚½‚̂ŘM‚Á‚Ä‚¢‚Ü‚¹‚ñB
- (src/map)
- battle.c
- ƒf[ƒ‚ƒ“ƒxƒCƒ“AƒfƒBƒoƒCƒ“ƒvƒƒeƒNƒVƒ‡ƒ“ŒvŽZŽ®‚ðC³B
- skill.c
- ƒ‹ƒAƒtAƒTƒCƒg‚Ì—LŒø”͈͂ðC³i—¼•û10x10¨ƒ‹ƒAƒt5x5,ƒTƒCƒg7x7jB
-
- (db)
- skill_cast.db
- ƒAƒNƒAƒxƒlƒfƒBƒNƒ^‚̉r¥‹y‚уfƒBƒŒƒC‚ðC³B
-
-//1072 by kag
-E“]¶ƒXƒLƒ‹‚ð’†S‚ÉC³
- (src/map)
- battle.c
- –‚–@—Í‘•‚ðƒXƒLƒ‹ƒŒƒxƒ‹*5%‚ÉC³B
- –‚¿‚É–î‚ÌATK‚ªæ‚ç‚È‚­‚È‚é‚悤‚ÉC³B
- ƒI[ƒ‰ƒuƒŒ[ƒh‚̒ljÁƒ_ƒ[ƒW‚ð100‚ÉC³B
- ƒo[ƒT[ƒN‚Ì—^ƒ_ƒ‚ð‚Q”{‚É‚È‚é‚悤‚ÉC³B
- ƒwƒbƒhƒNƒ‰ƒbƒVƒ…‚ÌŒvŽZŽ®‚ðC³B
- ƒXƒpƒCƒ‰ƒ‹ƒsƒA[ƒX‚ÌŒvŽZŽ®‚¾‚¯C³B
- ƒvƒŒƒbƒVƒƒ[‚ÌŒvŽZŽ®‚ðC³B
- ˜A’Œ•öŒ‚‚ÌŒvŽZŽ®‚ðC³B
- ƒ\[ƒhƒŠƒWƒFƒNƒg‚Ì”½ŽË—¦‚ðƒXƒLƒ‹ƒŒƒxƒ‹*15%‚ÉC³B
- ƒAƒ[ƒoƒ‹ƒJƒ“‚ÌŒvŽZŽ®‚ðC³B–î‚Ì‘®«‚ªæ‚é‚悤‚ÉC³B
- ƒtƒ@ƒ‹ƒRƒ“ƒAƒTƒ‹ƒg‚ÌŒvŽZŽ®‚ðC³BŠæ‹­ƒtƒ‰ƒO‚Å‚Pƒ_ƒ‚É‚È‚é‚悤‚ÉC³B
- ƒuƒŠƒbƒcƒr[ƒg‚ðŠæ‹­ƒtƒ‰ƒO‚Å‚Pƒ_ƒ‚É‚È‚é‚悤‚ÉC³B
- ƒfƒ‚ƒ“ƒXƒgƒŒ[ƒVƒ‡ƒ“‚ð•K’†AƒJ[ƒh‚ðæ‚ç‚È‚¢‚悤‚ÉC³B
- ƒAƒVƒbƒhƒeƒ‰[‚ð–hŒä–³Ž‹A•K’†A–³‘®«AƒJ[ƒh‚ðæ‚ç‚È‚¢‚悤‚ÉC³B
- skill.c
- –‚–@—Í‘•‚É0.7•b‚̌Œè‰r¥’ljÁB
- LP@@ ‚³‚ñ‚̃AƒXƒ€ƒLƒŠƒGd•¡•s‰Â‚ð’ljÁB
-
- (db)
- skill_db.txt
- ‹¶‹CE‚ð‰r¥–WŠQ‚Å‚«‚é‚悤‚ÉC³B
- skill_cast_db.txt
- ƒvƒŒƒbƒVƒƒ[‚̉r¥AƒfƒBƒŒƒC‚ð’ljÁB
- –ÒŒÕd”hŽR‚̃fƒBƒŒƒC‚ð’ljÁB
- ƒ‰ƒCƒt’u‚«Š·‚¦‚̃fƒBƒŒƒC‚ð’ljÁB
- ƒtƒ@ƒ‹ƒRƒ“ƒAƒTƒ‹ƒg‚̉r¥AƒfƒBƒŒƒC‚ð’ljÁB
- ƒEƒCƒ“ƒhƒEƒH[ƒN‚̃fƒBƒŒƒCAŽ‘±ŽžŠÔ‚ð•ÏXB
- ƒAƒ[ƒoƒ‹ƒJƒ“‚̉r¥AƒfƒBƒŒƒC‚ð’ljÁB
- ƒNƒŠƒGƒCƒgƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“‚̃fƒBƒŒƒC‚ð’ljÁB
- skill_require_db.txt
- ƒI[ƒ‰ƒuƒŒ[ƒh‚ÌÁ”ïSP‚ðC³B
- ƒRƒ“ƒZƒ“ƒgƒŒ[ƒVƒ‡ƒ“‚ÌÁ”ïSP‚ðC³B
- –‚–@—Í‘•‚ÌÁ”ïSP‚ðC³B
- ƒiƒp[ƒ€ƒoƒ‹ƒJƒ“‚ÌÁ”ïSP‚ðC³B
- ƒvƒŒƒbƒVƒƒ[‚ÌÁ”ïSP‚ðC³B
- ƒTƒNƒŠƒtƒ@ƒCƒX‚ÌÁ”ïSP‚ðC³B
- –ÒŒÕd”hŽR‚ÌÁ”ïSP‚ðC³B
- ƒŠƒWƒFƒNƒgƒ\[ƒh‚ÌÁ”ïSP‚ðC³B
-
-//1071 by ICO
-Enpc_job_09wizard.txt,npc_job_16sage.txt‚ðC³
-EŽæ‚芪‚«‚ª¢Š«ŒnƒXƒLƒ‹‚ðŽg—p‚·‚éÛ‚Ì‹““®‚ðC³
-
- (src/map)
- mob.c
- Žæ‚芪‚«‚Ì¢Š«ŒnƒXƒLƒ‹‚ð‹K§‚·‚éƒ^ƒCƒ~ƒ“ƒO‚ð•ÏX
- skill.c
- ¢Š«ŒnƒXƒLƒ‹‚Ì”­“®ðŒ‚ðC³
-
-//1070 by sylpheed
-Eƒhƒƒbƒv—¦‚̃Œ[ƒg‚²‚Æ‚Ì’²®‚ð’ljÁ
- ƒhƒƒbƒvÝ’è1`9 10`99 100`999 1000`10000‚Ō•ʂɔ{—¦‚ÆÅ’á/Å‚’l‚Ìݒ肪‰Â”\‚Å‚·
-E@weather 0 ‚ª“®‚©‚È‚¢‚Ì‚ðC³
-E“]¶“ñŽŸE‚ÌHP/SP25“㸎À‘•
-ƒhƒƒbƒv”{—¦‚ÍeAthena‚̃AƒCƒeƒ€Ží—Þ–ˆ‚ÌÝ’è‚ðˆÚA‚µ‚Ä‚à—Ç‚©‚Á‚½‚Ì‚Å‚·‚ª
-Ží—Þ–ˆ‚¾‚ƃŒ[ƒg‚ÌŠJ‚«‚ª‘å‚«‚¢ê‡‚ª‚ ‚èA‚ ‚Ü‚èˆÓ–¡‚ª‚È‚¢‚½‚ß
-‚±‚̂悤‚ÈŒ`‚ŃŒ[ƒgÚ×Ý’è‚ð’ljÁ‚µ‚Ä‚Ý‚Ü‚µ‚½B
-mob_db‚ð˜M‚é‚æ‚èŠy‚Ƀhƒƒbƒv—¦‚Ì•ÏX‚ª‚Å‚«‚é‚ÆŽv‚¢‚Ü‚·B
-
-weather 0‚ª“®‚©‚È‚¢‚Ì‚Í——R‚ª—Ç‚­‚í‚©‚ç‚È‚©‚Á‚½‚Ì‚Å
-“®‚­‚悤‚ÉC³‚·‚é‚‚¢‚Å‚ÉA‰Jƒtƒ‰ƒOÁ‹ŽŽž‚É
-“ø‚ªo‚é‚悤‚ɒljÁ‚µ‚Ä‚Ý‚Ü‚µ‚½B
-
-“]¶‚ÌHP/SP‚ÉŠÖ‚µ‚Ä‚ÍA“]¶‚µ‚Ä‚¢‚Ä‚à“ñŽŸE‚É‚È‚Á‚Ä‚È‚¢ê‡
-‘‰Á‚Í‚µ‚È‚¢‚悤‚È‚Ì‚ÅA‚»‚̂悤‚ÉŽÀ‘•‚µ‚Ä‚Ý‚Ü‚µ‚½B
-wedding_modifydisplay: yes ‚ÌŽž‚ɃhƒŒƒX/ƒ^ƒLƒV[ƒh‚ð‘•”õ‰ðœ‚·‚é‚Æ
-‘‰Á•ª‚ªÁ‚¦‚Ä‚µ‚Ü‚¢‚Ü‚·¥¥¥
-‚í‚©‚é•û‚¢‚½‚çC³‚¨Šè‚¢‚µ‚Ü‚·orz
-
- (src/map)
- atcommand.c
- @weatherŠÖ˜A‚ÌC³(case 0‚ðŽÀs‚·‚é‚悤‚ÉC³)
- ‰Jƒtƒ‰ƒO‚ðÁ‚µ‚½ê‡“ø‚ªo‚é‚悤‚É‚µ‚Ä‚Ý‚Ü‚µ‚½(JP‘ ‚ÅŽg‚¦‚é‚©•s–¾)
- (ƒ}ƒbƒvˆÚ“®‚µ‚È‚¢‚Æ“VŒó‚ªÁ‚¦‚È‚¢‚Ì‚Íragexe‚ÌŽd—l‚©‚ÈH)
- battle.c
- battle.h
- mob.c
- item_rate_detailsŠÖ˜A‚ð’ljÁ
- pc.c
- “]¶“ñŽŸEŽž‚ÌHP/SPÅ‘å’l25%‘‰Á‚ð’ljÁ
- “]¶‚µ‚Ä‚¢‚Ä‚à“ñŽŸE‚Å‚È‚¢ê‡‚ÍHP/SP‘‰Á‚Í–³‚µ‚̂悤‚Å‚·
- (conf)
- help.txt C³
- msg_athena.conf 112’ljÁ
-
- (doc)
- conf_ref.txt C³
- help.txt C³
-
-//1069 by lizorett (2004/11/26) special thanks to –¼–³‚µ—l@‚‡—‚‚…
-Eƒƒ‹ƒgƒ_ƒEƒ“‚ÌŽÀ‘•
-E–‚–@—Í‘•‚ª‰r¥‚Ì‚ ‚é–‚–@‚Å—LŒø‚É‚È‚ç‚È‚©‚Á‚½–â‘è‚ðC³
-Emap-server‚ªƒ_ƒEƒ“‚·‚é–â‘è‚ÌC³(Ž¿–âƒXƒŒƒbƒh Part13 >>55)
-Emap-server‚É•s³ID‚ŃƒOƒCƒ“‚·‚é‚Æchar-server‚ªƒ_ƒEƒ“‚·‚é–â‘è‚ÌC³
-EƒTƒtƒ‰ƒMƒEƒ€‚ª–³‰r¥ƒXƒLƒ‹‚ÅŽæ‚èÁ‚³‚ê‚È‚¢–â‘è‚ðC³
-Ed•¡‚µ‚Ä–Ò“Åó‘Ô‚Æ‚È‚ç‚È‚¢‚悤C³
-Eƒ}ƒOƒiƒ€ƒuƒŒƒCƒN‚̃_ƒ[ƒW‚ðC³
-Eƒo[ƒTƒN’†‚ÉHP/SP‹zŽûA“łȂǂ̃_ƒ[ƒW‚ðŽó‚¯‚é‚悤C³
-EŒŽŒõŒ•‚ÌSP‹zŽû—Ê‚ª‘‰Á‚µ‚Ä‚¢‚­–â‘è‚ðC³(Žb’è)
-E@help‚ɃL[ƒ[ƒhŒŸõ‹@”\‚ð’ljÁ
-
- (src/map)
- battle.c - ƒ}ƒWƒbƒNƒpƒ[‚É‚æ‚éMATK‘‰Á‚ÌŽÀ‘•
- - •ŠíŠZ”j‰ó‚ðpc_break_equip()‚É‘‚«Š·‚¦
- - HP/SP‹zŽû‚ðC³
- map.h - ‘•”õ”j‰ó‚Ì’è‹`‚ð’ljÁ
- pc.c - pc_break_armor()/pc_break_weapon()‚ðAV‹K‚Ì‘•”õ”j‰ó‚Ì
- ŠÖ”pc_break_equip()‚É“‡
- - –‚–@—Í‘•‚̃R[ƒh‚ðíœ(battle.c‚Ås‚¤)
- - HP/SP‹zŽûŠÖŒW‚Ì•Ï”‚̉Šú‰»‚ð’ljÁ
- pc.h - ŠÖ”’è‹`‚ðC³
- skill.c - ƒƒ‹ƒgƒ_ƒEƒ“‚É‚æ‚é‘•”õ”j‰ó‚ðŽÀ‘•
- - –‚–@—Í‘•‚ÉŠÖ‚·‚éC³
- - d•¡‚µ‚Ä–Ò“Åó‘Ô‚Æ‚È‚ç‚È‚¢‚悤C³
- clif.c - map-server‚ªƒ_ƒEƒ“‚·‚é–â‘è‚ÌC³
- atcommand.c - @help‚ɃL[ƒ[ƒhŒŸõ‚ð’ljÁ("@help jobchange"‚È‚Ç)
- (src/char)
- char.c - char-server‚ªƒ_ƒEƒ“‚·‚é–â‘è‚ÌC³
- (db)
- const.txt - bUnbreakableHelm, bUnbreakableShield’ljÁ
- skill_cast_db.txt
- - ƒƒ‹ƒgƒ_ƒEƒ“‚Ìó‘ÔˆÙ펞ŠÔ‚ðÝ’è
-
-//1068 by huge
-Eatcommand‚ð‚¢‚­‚‚©’ljÁ‚ÆAeAthena‚©‚ç‚¢‚­‚‚©ˆÚAB(help.txtŽQÆ)
-E”ñGMƒLƒƒƒ‰‚ª@‚ÅŽn‚Ü‚é”­Œ¾‚ð‚µ‚½ŽžA‚»‚Ì‚Ü‚Ü•\Ž¦‚·‚é‚悤‚É‚µ‚½B(GMƒŒƒxƒ‹0‚̃Rƒ}ƒ“ƒh‚ÍŽÀs)
-E“V‹CƒRƒ}ƒ“ƒh‚ɇ‚킹‚ÄAmapflagÝ’è‚Å‚«‚é‚悤‚ÉB
-Escript‚ð‚¢‚­‚‚©’ljÁ‚ÆAeAthena‚©‚çˆê‚ˆÚAB
-E‰ŠúHP”{—¦‚ÆSP”{—¦‚ðbattle_athena‚ÅÝ’è‚Å‚«‚é‚悤‚É‚µ‚½B
-E‘SƒLƒƒƒ‰‚ªAGM‚ɂ͈ʒuEHP‚ð’Ê’m‚³‚¹‚é‚悤battle_athena‚ÅÝ’è‚Å‚«‚é‚悤‚É‚µ‚½B
-EƒhƒNƒƒhƒƒbƒv‚ɂ‚¢‚ÄAbattle_athena‚ÅÝ’è‚Å‚«‚é‚悤‚É‚µ‚½B
-EGM‚̃AƒCƒeƒ€ƒhƒƒbƒv‚âŒðŠ·‚ɂ‚¢‚ÄGMƒŒƒxƒ‹‚ð§ŒÀ‚Å‚«‚é‚悤‚É‚µ‚½B
-EƒfƒBƒeƒNƒeƒBƒ“ƒOƒXƒLƒ‹C³B
-¦ƒfƒtƒHƒ‹ƒg‚Ì“ú–{ƒNƒ‰ƒCƒAƒ“ƒg‚¾‚ÆA‰J‚Å—Ž‚¿‚Ü‚·B
-
- (conf/)
- atcommand_athena.conf C³
- battle_athena.conf C³
- help.txt C³
- msg_athena.conf C³
-
- (doc/)
- help.txt C³
- script_ref.txt C³
- conf_ref.txt C³
-
- (src/map/)
- atcommand.c
- atcommnad.h
- guild.h party.h‚ð“Ç‚Þ—l‚ÉC³
- is_atcommand() C³
- atcommand() C³
- ¦ˆÚAEV‹KƒRƒ}ƒ“ƒh‚ɂ‚¢‚Ä‚Í help.txt ‚ðŠm”F‚µ‚ĉº‚³‚¢B
- battle.c
- battle.h
- hp_rate,sp_rate,hp_meter,bone_drop ’ljÁ
- clif.c
- clif.h
- clif_spawnpc() C³
- clif_hpmeter() ’ljÁ
- guild.c
- guild.h
- guild_searchname() ’ljÁ
- guild_searchname_sub() ’ljÁ
- map.h
- “VŒó‚ÉŠÖ‚·‚éflag’ljÁ
- npc.c
- npc_parse_mapflag() C³
- party.c
- party.h
- party_searchname() ’ljÁ
- party_searchname_sub() ’ljÁ
- pc.c
- pc.h
- pc_calcstatus() C³
- pc_damage() C³
- pc_walk() C³
- pc_can_drop() ’ljÁ
- script.c
- gmcommand ˆÚA’ljÁ
- dispbottom ’ljÁ
- getusersname ’ljÁ
- recovery ’ljÁ
- petinfo ’ljÁ
- checkequipedcard ’ljÁ
- getexp íœ(set‚ðŽg‚¤‚悤‚É‚µ‚ĉº‚³‚¢)
- skill.c
- skill.h
- skill_castend_pos2() C³
-
- {AthenaŽG’kƒXƒŒƒbƒhPart7 >>54 ‚à‚Á‚³‚肳‚ñ‚Ì•ª
- ‹Lq˜R‚ꂪ‚ ‚Á‚½‚ç‚·‚¢‚Ü‚¹‚ñB
---------------------
-//1067 by kai
-EƒƒfƒBƒeƒCƒeƒBƒI‚É‚æ‚éƒq[ƒ‹‰ñ•œ—Ê‘‰Á‚ÌŒø‰Ê‚ðC³
-EƒAƒhƒoƒ“ƒXƒhƒJƒ^[ƒ‹Œ¤‹†‚ÌC³
-EPvPŽž‚É‚¨‚¯‚éƒAƒXƒ€ƒvƒeƒBƒI‚ÌŒø‰Ê‚ðC³
-
- (src/map)
- skill.c
- 2120s@heal += heal*(skill*2)/100; //ƒƒfƒBƒeƒCƒeƒBƒI‚ÌC³
-
- battle.c
- 1723s@damage += dmg*(10+(skill * 2))/100; //ƒAƒhƒoƒ“ƒXƒhƒJƒ^[ƒ‹Œ¤‹†‚ÌC³
-
- 2598`2599A3580`3582s@ƒAƒXƒ€ƒvƒeƒBƒI‚ÌC³
- if(map[target->m].flag.pvp)‚Æ‚µƒ_ƒ[ƒWŒvŽZ‚ð2/3‚ÉC³
-
---------------------
-//1066 by lizorett (2004/11/17) special thanks to –¼–³‚µ—l@‚‡—‚‚…
-EƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“쬎À‘•
-EƒGƒ“ƒ`ƒƒƒ“ƒgƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“ŽÀ‘•
-Eƒ\ƒEƒ‹ƒuƒŒƒCƒJ[ŽÀ‘•
-Ebattle_weapon_attack‚Å–¢‰Šú‰»‚Ì’l‚ª–ß‚³‚ê‚éƒoƒOC³
-E‘¼Žg—pSP‚Ì•ÏX“™‚Ìׂ©‚¢C³
-
- (db)
- const.txt - –Ò“Å(SC_DPoison)‚ð’ljÁ
- item_db.txt - —΃n[ƒu,—΃|[ƒVƒ‡ƒ“,–œ”\–ò‚É–Ò“Å‚ðŽ¡‚·Œø‰Ê‚ð’ljÁ
- produce_db.txt - ƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“‚ÌÞ—¿‚Ì’è‹`‚ð’ljÁ
- skill_cast_db.txtƒGƒ“ƒ`ƒƒƒ“ƒgƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“Aƒ\ƒEƒ‹ƒuƒŒƒCƒJ[
- ‚Ì’è‹`‚ðC³/’ljÁ
- skill_db.txt - ƒ\ƒEƒ‹ƒuƒŒƒCƒJ[/ƒGƒ“ƒ`ƒƒƒ“ƒgƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“/
- ƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“쬂̒è‹`‚ðC³
- - ƒiƒp[ƒ€ƒoƒ‹ƒJƒ“‚̃qƒbƒg”C³
- skill_require_db.txt
- - ƒGƒ“ƒ`ƒƒƒ“ƒgƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“‚ª“Å–ò‚Ì•r‚ðŽg—p‚·‚é
- ‚悤‚ÉC³
- - ƒ\ƒEƒ‹ƒuƒŒ[ƒJ[/ƒƒeƒIƒAƒTƒ‹ƒg‚ÌŽg—pSP‚ðC³
- (src/map)
- battle.h - battle_config.cdp_rate‚ð’ljÁ
- battle.c - ƒ\ƒEƒ‹ƒuƒŒ[ƒJ[ŽÀ‘•
- - ƒƒeƒIƒAƒTƒ‹ƒg‚ɃJ[ƒhŒø‰Ê‚ª‚©‚©‚ç‚È‚¢‚悤•ÏX
- - 4213s‚ÌðŒ‚Å–¢‰Šú‰»‚Ì’l‚ª–ß‚³‚ê‚éƒoƒOC³
- - battle_config.cdp_rate‚ð’ljÁ
- skill.h - ƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“쬂ÌÞ—¿‚ª7‚‚Ȃ̂ÅAƒe[ƒuƒ‹
- ‚ð’ljÁBÞ—¿‚Ìő唂ðdefine‚Å•ÏX‚Å‚«‚é‚悤C³
- - SC_DPOISON(182)/SC_EDP(183)‚ð’ljÁ
- skill.c - –Ò“ÅŒø‰Ê‚ð’ljÁ
- - ƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“쬂ðŽÀ‘•
---------------------
-//1065 by End_of_exam
-
-EƒT[ƒo[ƒ]ƒ“ƒr‰»‚ÉŽb’è‘Έ
-Ecalc_index(path.c)‚Ì•s“s‡‚ðC³
-
- (common/)
- timer.c
- TIMER_MIN_INTERVEL(ƒ^ƒCƒ}[‚ÌŬƒCƒ“ƒ^[ƒoƒ‹j‚ð’ljÁ‚µ‚Ü‚µ‚½B
- ‚»‚ê‚É”º‚¢Ado_timer() ‚Ì–ß‚è’l‚ÌÅ’á‚ð 10ms ‚©‚ç 50ms ‚É•ÏX‚µ‚Ü‚µ‚½B
-
- select‚ª10msˆÈ“à‚ÉI‚í‚ç‚È‚¢ŠÂ‹«‚¾‚ÆAƒ‚ƒ“ƒXƒ^[‚ð‘å—Ê¢ŠÒ‚µ‚½Žž‚È‚Ç‚ÉA
- ƒNƒ‰ƒCƒAƒ“ƒg‚©‚ç‚̃pƒPƒbƒg‚É”½‰ž‚µ‚È‚­‚È‚é–Í—l‚Å‚·B
- ƒ[ƒJƒ‹ƒeƒXƒgiƒ‚ƒ“ƒXƒ^[‘å—Ê¢ŠÒj‚ð‚µ‚Ä‚Ý‚½‚Æ‚±‚ëA25ms‚É•ÏX‚µ‚½Žž“_‚Å
- ‰ü‘P‚µ‚Ü‚µ‚½‚ªAŠÂ‹«‚É‚æ‚Á‚Ä‚Í50ms‚Å‚à•s\•ª‚©‚à‚µ‚ê‚Ü‚¹‚ñB
- ‚»‚ÌꇂÍATIMER_MIN_INTERVEL‚ð‘‚₵‚Ä—lŽq‚ðŒ©‚Ä‚­‚¾‚³‚¢B
-
- “¯—l‚ÌŒ»Û‚Æ‚µ‚ÄA‘½”‚̃Nƒ‰ƒCƒAƒ“ƒg‚ªÚ‘±‚·‚é‚ƃT[ƒo[‚ª”½‰ž‚µ‚È‚­‚È‚é
- ‚Æ‚¢‚¤‚Ì‚ª‚ ‚è‚Ü‚·‚ªA‚±‚̃pƒbƒ`‚É‚æ‚Á‚Ä‚ ‚é’ö“x‰ü‘P‚³‚ê‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB
-
- (map/)
- map.h : MAX_WALKPATH
- path.c “à‚Ì calc_index‚ª•s“s‡‚ð‹N‚±‚·(48*48-1 = 1000 1111 1111(b)) ‚½‚ßA
- MAX_WALKPATH‚ð 48 ‚©‚ç 32 ‚É•ÏX‚µ‚Ü‚µ‚½B(32*32-1 = 0011 1111 1111(b))
-
- #define calc_index(x,y) (((x)+(y)*MAX_WALKPATH) & (MAX_WALKPATH*MAX_WALKPATH-1))
---------------------
-//1064 by nameless
-EGCC 3.3.0/3.3.1‚ª“à•ï‚·‚é0/0=•Ï”Å‘å’l‚Ì–â‘è‘Îô(int:65535/long:4294967294)
-E–‚–@–hŒäE–hŒäE‘®«–hŒä‚ª³‚µ‚­“K—p‚³‚ê‚È‚¢–â‘è‚ðC³
-Eƒiƒp[ƒ€ƒoƒ‹ƒJƒ“‚ð’P‘Ì–‚–@‚̃R[ƒh‚ÉC³‚µAŽô‚¢Œø‰Ê‚ðŽÀ‘•
-
- (src/map)
- skill.c
- 442`448s •s“™†[<]‚ð[>]‚ÉC³
- 512`519s •s“™†[>]‚ð[<]‚ÉC³
- 529`538s ƒRƒ“ƒpƒCƒ‰ƒoƒO‚Ì’ù³•û–@‚Æ—á/*`*/‚Ì•”•ª‚ð
- gcc‚̃o[ƒWƒ‡ƒ“‚ɇ‚킹‚Ķ‚©‚µ‚½‚èŽE‚µ‚½‚è
- ‚µ‚Ä‚­‚¾‚³‚¢B3.3.2‚©‚ç‚Í’¼‚Á‚Ä‚¢‚é‚悤‚Å‚·
- 1857s ƒiƒp[ƒ€ƒoƒ‹ƒJƒ“‚ð’ljÁ
- 660`664s ƒiƒp[ƒ€ƒoƒ‹ƒJƒ“‚ÌŽô‚¢Œø‰Ê‚ð’ljÁ
- (src/char)
- char.c
- C³‚µ‚«‚ê‚Ä‚¢‚È‚©‚Á‚½•”•ª‚ðC³‚µ‚Ü‚µ‚½B
-
---------------------
-//1063 by ŽµŽ
-EŒŽŒõŒ•‚ÌŒø‰ÊŽÀ‘•
-E¶ŽèƒJ[ƒh‚É‚æ‚éA•ŠíUŒ‚Žž‚ÌHP/SP‹zŽûŒø‰Ê‚ª‰EŽè‚ɉe‹¿‚·‚é—l‚ÉC³(–{ŽIŽd—l)
- (left_cardfix_to_right‚ªyes‚ÌŽž‚Ì‚ÝBno‚¾‚Æ]—ˆ’Ê‚è)
-
- (db)
- const.txt
- bHPDrainValue=1071‚ÆbSPDrainValue=1072‚ð’ljÁ
- item_db.txt
- ŒŽŒõŒ•‚ÌEquipScript‚Ébonus2 bSPDrainValue,100,3‚ð’ljÁ
-
- (src/map)
- battle.c
- battle_weapon_attack() C³
- map.h
- short hp_drain_value,sp_drain_value,hp_drain_value_,sp_drain_value_;‚ð’ljÁ
- SP_HP_DRAIN_VALUE,SP_SP_DRAIN_VALUE, // 1071-1072‚ð’ljÁ
- pc.c
- pc_bonus2() C³
-
---------------------
-//1062 by nameless
-EƒpƒPƒbƒg‘—ŽóM‚ł̌둗MC³
-EƒoƒO•ñƒXƒŒƒbƒh part7 ‚©‚ç‚ÌŽæ‚èž‚ÝEC³ >> 56,57,58
-Efix1059‚ÌŽæ‚èž‚Ý
-EƒnƒCƒEƒBƒY‚̃lƒCƒp[ƒ€ƒoƒ‹ƒJƒ“‚ÌŽÀ‘•(eAŽæ‚èž‚Ý)
-ECPUÅ“K‰»ƒR[ƒh‚ÌC³(athlonŒn)E’ljÁ(Œºl” /Linux Zaurus)
-
- (/)
- Makefile
- athlonŒnÅ“K‰»‚ÌC³
- Œºl” (Kuro-Box 200MHz”Å[PPC 603x])
- Œºl” (Kuro-Box 266MHz”Å[PPC 604x])
- Linux Zaurus (SL-C7xx)
- ‚ÌÅ“K‰»ƒR[ƒh‚ð‹Lq
-
- (db)
- skill_cast_db.txt
- 400,500,1200:1600:2000:2400:2500,0,0 //HW_NAPALMVULCAN#ƒiƒp[ƒ€ƒoƒ‹ƒJƒ“#
- (src/map)
- clif.c
- clif_parse() C³
- (src/char)
- char.c
- 1367s cmd = RFIFOW(fd,0);’ljÁ
- (src/map)
- skill.c
- switch(skillid)‚Écase HW_NAPALMVULCAN:ˆÈ‰º20s‚قǒljÁ
---------------------
-//1061 by lizorett (2004/11/9)
-E•s³‚ȃMƒ‹ƒhƒXƒLƒ‹ƒpƒPƒbƒg‚ðŽó‚¯‚½ê‡‚Émap/charƒT[ƒo‚ª—Ž‚¿‚錻ۂðC³
-E•s³‚ȃpƒPƒbƒg‚ðŽó‚¯‚½ê‡‚ÉcharƒT[ƒo‚ª—Ž‚¿‚錻ۂðC³
-EŒ‹¥‚µ‚½ƒLƒƒƒ‰‚ð휂·‚é‚ÆcharƒT[ƒo‚ª—Ž‚¿‚錻ۂðC³
-E” ‚ðˆê‚‚¾‚¯Ž‚Á‚½ó‘Ô‚Å” ‚©‚ç” ‚ª‚Å‚é‚ÆA” ‚ªÁ‚¦‚邽‚悤‚ÉŒ©‚¦‚é
- (ƒŠƒƒO‚·‚é‚ÆŒ©‚¦‚é)–â‘è‚ðC³
-EƒXƒiƒbƒ`ƒƒ[‚̃XƒLƒ‹Ž¸”s‚ð•\Ž¦‚µ‚È‚¢‚悤‚É‚Å‚«‚éÝ’è‚ð’ljÁ
-Eƒfƒ{[ƒVƒ‡ƒ“‚̃Œƒxƒ‹§ŒÀ(10ƒŒƒxƒ‹·)‚ð•ÏX‚Å‚«‚éÝ’è‚ð’ljÁ
-
- (src/common)
- mmo.h
- ƒMƒ‹ƒhƒXƒLƒ‹‚Ìenum‚ð’ljÁ(src/map/skill.h‚©‚çˆÚ“®)
- (src/map)
- skill.h
- ƒMƒ‹ƒhƒXƒLƒ‹‚Ìenum‚ðíœ(src/common/mmo.h‚Ɉړ®)
- guild.c
- guild_checkskill ƒXƒLƒ‹‚͈̔̓`ƒFƒbƒN‚ð’ljÁ
- guild_skillup ƒXƒLƒ‹‚͈̔̓`ƒFƒbƒN‚ð’ljÁ
- skill.c
- skill_additional_effect display_snatcher_skill_fail‚̈—‚ð’ljÁ
- skill_castend_nodamage_id devotion_level_difference‚̈—‚ð’ljÁ
- battle.c
- display_snatcher_skill_fail,devotion_level_difference‚̉Šú‰»‚ð’ljÁ
- (src/char)
- int_guild.c
- guild_checkskill ƒXƒLƒ‹‚͈̔̓`ƒFƒbƒN‚ð’ljÁ
- mapif_parse_GuildSkillUp ƒXƒLƒ‹‚͈̔̓`ƒFƒbƒN‚ð’ljÁ
- char.c
- parse_char •s³‚ȃpƒPƒbƒg‚ðŽó‚¯‚½ê‡‚ɂ̓_ƒ“ƒv‚·‚é‚悤C³
- char_divorce i<MAX_INVENTORY‚ðj<MAX_INVENTORY‚É•ÏX
- (conf)
- battle_athena.conf
- display_snatcher_skill_fail,devotion_level_difference‚ð’ljÁ
---------------------
-//1060 by mosya
-Eƒ‚ƒ“ƒXƒ^[‚ªƒXƒLƒ‹‰r¥’†‚ÉÀ•WƒYƒŒ‚ð‹N‚±‚·–â‘è‚ðC³
-EMOB‚ÌAI•ÏXB‘O‰q‚ªƒ^ƒQ‚ðŽæ‚Á‚Ä‚¢‚é‚Ì‚ÉAŒã‰q‚ÉUŒ‚‚ð‚µ‚É‚ä‚­‚Ì‚ðC³
- (src/map)
- mob.c
- mob_ai_sub_hard() •ÏX
- mobskill_castend_id() •ÏX
- mobskill_castend_pos() •ÏX
- mobskill_use_id() •ÏX
- mobskill_use_pos() •ÏX
---------------------
-//1059 by SPDFMember
-EeAthena‚ðŽQl‚ɃŠƒ[ƒhDBŒn“‚ð’ljÁ‚µ‚Ü‚µ‚½B
- (conf/)
- atcommand_athena.conf
- reloaditemdb
- reloadmobdb
- reloadskilldb‚ð’ljÁ
- help.txt
- reloaditemdb
- reloadmobdb
- reloadskilldb‚Ìà–¾‚ð’ljÁ
- msg_athena.conf
- 89
- 90
- 91‚ð’ljÁ
- (src/map)
- atcommand.c
- reloaditemdb
- reloadmobdb
- reloadskilldb‚ð’ljÁB
- atcommand.h
- AtCommand_ReloadItemDB,
- AtCommand_ReloadMobDB,
- AtCommand_ReloadSkillDB,‚ð’ljÁ
- itemdb.c
- static int itemdb_readdb(void);’ljÁ
- itemdb.h
- void itemdb_reload(void);’ljÁ
- mob.c
- void mob_reload(void)’ljÁ
- mob.h
- void mob_reload(void);’ljÁ
- skill.c
- void skill_reload(void)’ljÁ
- skill.h
- void skill_reload(void);’ljÁ
---------------------
-//1058 by lizorett
-EƒMƒ‹ƒh‘qŒÉƒAƒCƒeƒ€‚ªMAX_STORAGEŒÂˆÈã‚ ‚é‚ÆŽæ‚èo‚¹‚È‚¢‚à‚Ì‚ª‚ ‚é–â‘è‚ðC³
- (src/map)
- clif.c
- clif_parse_DropItem item_index/item_amount‚͈̔̓`ƒFƒbƒN‚ðíœ
- (pc_dropitem ‚Ń`ƒFƒbƒN‚·‚é)
- clif_parse_MoveToKafra item_amount‚̃`ƒFƒbƒN‚ðíœ
- (storage_*storageadd‚Ń`ƒFƒbƒN‚³‚ê‚Ä‚¢‚é)
- clif_parse_MoveFromKafra item_index/item_amount‚̃`ƒFƒbƒN‚ðíœ
- (storage_*storageget‚Ń`ƒFƒbƒN‚³‚ê‚Ä‚¢‚é)
- pc.c
- pc_dropitem n/amount‚͈̔̓`ƒFƒbƒN‚ð’ljÁ
---------------------
-//1057 by BDPQ‹â
-EƒEƒH[ƒ^[ƒ{[ƒ‹‚̃_ƒ[ƒW‚ð–{ŽI’m’l¨ŽÀ‘ª’l‚ÉC³B
- [ MATK+SkillLv*30 ¨ MATK*(1+SkillLv*0.3) ]
-
- (src/map)
- battle.c
- battle_calc_magic_attack •ÏX [ 3848s–Ú‚ ‚½‚è ]
-
---------------------
-//1056 by robert
-‡”Ô‚ðŒŸ¸‚·‚é‚Ì‚Í•s–@‚©‚Ç‚¤‚©
- (src/map)
- clif.c
- clif_parse_DropItem
- clif_parse_MoveToKafra
- clif_parse_MoveFromKafra
---------------------
-//1055 by Nameless
-EŠeŽíCPU‚ɑ΂·‚éƒR[ƒhÅ“K‰»ƒIƒvƒVƒ‡ƒ“‚ðÝ’è(‘S27Ží) ¦GCC 3.3.1 €‹’
-EPentium 3‚̃IƒvƒVƒ‡ƒ“‚ªSSE2‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ð’ù³
-E‹HŽ}‚³‚ñArobert‚³‚ñ‚ÌPacketî•ñ‚ÌŽæ‚èž‚Ý(‚¨“ñl‚ÉŠ´ŽÓ)
-
- (/)
- makefile
- i486/586/p54c/mmx/P3/P4/Cele
- k6/k6-2/k6-3/athlonŒn
- Via C3(Eden)
- PowerPC/G4Œn
-
- (src/map/)
- clif.c
- clif_parse_MoveToKafra{}
- ƒR[ƒhŽæ‚èž‚Ý
-
---------------------
-//1054 by Nameless
-ECygwin‚ŃRƒ“ƒpƒCƒ‹‚µ‚½athena‚ªÚ‘±53`58l•t‹ß‚ÅÚ‘±•s”\‚É‚È‚éƒoƒO‚ð‰ðÁ
-
- (src/common/)
- socket.h
- #ifdef CYGWIN
- #undef FD_SETSIZE
- #define FD_SETSIZE 4096
- #endif
- ˆÈã‚Ìs‚ðíœ
- (/)
- makefile
- OS_TYPE = -DCYGWIN
- «
- OS_TYPE = -DCYGWIN -DFD_SETSIZE=4096
- ‚ÉC³
-
- #optimize for Athlon-4(mobile Athlon)
- #CFLAGS += -march=athlon -mcpu=athlon-4 -mfpmath=sse
-
- #optimize for Athlon-mp
- #CFLAGS += -march=athlon -mcpu=athlon-mp -mfpmath=sse
-
- #optimize for Athlon-xp
- #CFLAGS += -march=athlon -mcpu=athlon-xp -mfpmath=sse
-
- #optimize for pentium3
- #CFLAGS += -march=i686 -mcpu=pentium3 -mfpmath=sse -mmmx -msse2
-
- ŠeŽíCPU‚ÌÅ“K‰»‚ð’ljÁgcc3.1ˆÈã‚ðŽg‚Á‚Ä‚¢‚éꇂÍ#‚ðŠO‚µ
- ‚ÄÅ“K‰»‚ðs‚¤‚±‚Æ‚ª‚Å‚«‚é‚ÆŽv‚¢‚Ü‚·B
-
- ¦makefile‚ŃZƒbƒg‚µ‚Ä‚¨‚©‚È‚¢‚ÆAƒRƒ“ƒpƒCƒ‹‚ÌۂɈꕔ
- FD_SETSIZE‚ª¬‚³‚­‚È‚Á‚Ä‚µ‚Ü‚¤ƒoƒO(?)‚ª‚ ‚é‚炵‚­AÚ‘±l”‚ª
- 60lŽã‚ÅÚ‘±•s”\‚ª”­¶‚µ‚Ä‚µ‚Ü‚¢‚Ü‚·B
-
---------------------
-//1053 by TEILU
-EƒpƒPƒbƒgƒp[ƒT[‚ðƒ^ƒCƒ}[ŒÄo‚µ‚É•ÏX‚Å‚«‚éÝ’è‚̒ljÁ
-E¸˜B‚̉”۔»’è‚Å‚c‚a‚ɂǂ̂悤‚ÈÝ’è‚ð“ü‚ê‚Ä‚àƒAƒNƒZƒTƒŠ‚Í
- ¸˜B‚Å‚«‚È‚©‚Á‚½•s‹ï‡‚ðC³
-
- (conf/)
- map_athena.conf
- packet_parse_time: 0 ’ljÁ
- (src/common/)
- core.c
- packet_parse_time ’ljÁ
- main() •ÏX
- socket.c
- parsepacket_timer() ’ljÁ
- socket.h
- parsepacket_timer() ’ljÁ
- (src/map/)
- map.c
- packet_parse_time ’ljÁ
- map_config_read() •ÏX
- script.c
- buildin_getequipisenableref() •ÏX
-
---------------------
-//1052 by
-‹êŠ‚‚«‚ÅŒŸõƒRƒ}ƒ“ƒh’ljÁB
- GMƒRƒ}ƒ“ƒh’ljÁ
- @who+ ‹êŠ‚‚«ŒŸõ
-
- (conf/)
- atcommand_athena.conf
- who+: 1 ’ljÁ
- (/src/common/)
- version.h
- Ver 1051->1052 •ÏX
- (/src/map)
- atcommand.c
- ATCOMMAND_FUNC(whop); ’ljÁ
- { AtCommand_WhoP,"@who+",0, atcommand_whop }, ’ljÁ
- atcommand.h
- AtCommand_WhoP, ’ljÁ
---------------------
-//1051 by Plala
-EƒyƒRƒyƒR‹R掞MAX Weight‚ð‘‚₹‚é‚悤‚É‚µ‚Ü‚µ‚½B
-battle_athena.conf‚ÅÝ’è‰Â”\‚Å‚·B
-
- (conf/)
- battle_athena.conf
- riding_weight ’ljÁ
- (map/)
- battle.c
- battle_config.riding_weight ’ljÁ
- battle.h
- int riding_weight; ’ljÁ
- clif.c
- clif_parse_RemoveOption •ÏX
- pc.c
- int pc_calcstatus •ÏX
- 1415‚Ésd->max_weight +=battle_config.riding_weight; ‚ð’ljÁ
- (common/)
- version.h
- Ver 1050->1051 •ÏX
---------------------
-//1050 by code
-EŠeŽí“VŒó‘€ìƒRƒ}ƒ“ƒh‚ÌŒ©’¼‚µ
-¦‚¢‚¿‚¢‚¿@misceffect‚ŌĂÑo‚³‚¸‚ÉŠÈ’P‚É“VŒó‘€ì‚ðs‚¦‚é‚悤‚É
-¦ƒNƒ‰ƒCƒAƒ“ƒgˆË‘¶‚Í—Ž‚¿—t‚Å‚Í‚È‚­‰J‚Å‚µ‚½AŠÔˆá‚¢‚Ü‚µ‚½(^-^;
-
- (src/common/)
- version.h
- Ver 1049->1050 •ÏX
- (/src/map)
- atcommand.c
- AtCommand_Rain{} •ÏX
- AtCommand_Snow{} •ÏX
- AtCommand_Cherry{} •ÏX
- AtCommand_Fog{} •ÏX
- AtCommand_Maple{} •ÏX
-
---------------------
-//1049 by code
-E–¶A—Ž—t‚Ì2‚‚̓VŒó‘€ìƒRƒ}ƒ“ƒh‚ð’ljÁ‚µ‚Ü‚µ‚½B
-¦—Ž‚¿—t‚ÉŠÖ‚µ‚Ă̓Nƒ‰ƒCƒAƒ“ƒgˆË‘¶‚È‚Ì‚ÅjRO‚¾‚Æ—Ž‚¿‚é‚©‚àc
-
- GMƒRƒ}ƒ“ƒh’ljÁ
- @fog –¶
- @maple —Ž—t
-
- (conf/)
- atcommand_athena.conf
- fog: 1 ’ljÁ
- maple: 1 ’ljÁ
-
- msg_athena.conf
- 87: –¶‚ª—§‚¿ž‚ß‚Ü‚µ‚½B ’ljÁ
- 88: —Ž‚¿—t‚ª~‚Á‚Ä‚«‚Ü‚µ‚½B ’ljÁ
- (/src/common/)
- version.h
- Ver 1048->1049 •ÏX
- (/src/map)
- atcommand.c
- ATCOMMAND_FUNC(fog); ’ljÁ
- ATCOMMAND_FUNC(maple); ’ljÁ
- { AtCommand_fog,"@fog",0, atcommand_fog }, ’ljÁ
- { AtCommand_maple,"@maple",0, atcommand_maple }, ’ljÁ
-
- atcommand.h
- AtCommand_Fog, ’ljÁ
- AtCommand_Maple, ’ljÁ
-
---------------------
-//1048 by code
-E‰JAáAƒTƒNƒ‰á‚Ì3‚‚̓VŒó‘€ìƒRƒ}ƒ“ƒh‚ð’ljÁ‚µ‚Ü‚µ‚½B
-¦Õ“®“I‚ɒljÁ‚µ‚Ä‚µ‚Ü‚Á‚½‚̂ŃoƒO‚ª‚ ‚é‚©‚à’m‚ê‚Ü‚¹‚ñ(Š¾
-
- GMƒRƒ}ƒ“ƒh’ljÁ
- @rain ‰J
- @snow á
- @cherry ƒTƒNƒ‰á
-
- (conf/)
- atcommand_athena.conf
- rain: 1 ’ljÁ
- snow: 1 ’ljÁ
- cherry: 1 ’ljÁ
-
- msg_athena.conf
- 84: ‰J‚ª~‚èo‚µ‚Ü‚µ‚½B ’ljÁ
- 85: Ⴊ~‚èo‚µ‚Ü‚µ‚½B ’ljÁ
- 86: ƒTƒNƒ‰á‚ð~‚点‚Ü‚·B ’ljÁ
- (/src/common/)
- version.h
- Ver 1047->1048 •ÏX
- (/src/map)
- atcommand.c
- ATCOMMAND_FUNC(rain); ’ljÁ
- ATCOMMAND_FUNC(snow); ’ljÁ
- ATCOMMAND_FUNC(cherry); ’ljÁ
- { AtCommand_rain,"@rain",0, atcommand_rain }, ’ljÁ
- { AtCommand_snow,"@snow",0, atcommand_snow }, ’ljÁ
- { AtCommand_cherry,"@cherry",0, atcommand_cherry }, ’ljÁ
-
- atcommand.h
- AtCommand_Rain, ’ljÁ
- AtCommand_Snow, ’ljÁ
- AtCommand_Cherry, ’ljÁ
-
---------------------
-//1047 by SVN
-E»‘¢ƒAƒCƒeƒ€‚Ì»ìŽÒ‚Ì–¼‘O‚ðˆø‚­map©¨char‚̃pƒPƒbƒg‚ªŠÔˆá‚Á‚Ä‚¢‚½‚Ì‚ðC³
-E“ñdƒƒOƒCƒ“‚ð‚µ‚½Žž‚Échar-server‚ª—Ž‚¿‚é‰Â”\«‚ª‚ ‚Á‚½‚Ì‚ðC³
-EƒK[ƒfƒBƒAƒ“‚ðGvŽžŠÔŠO‚ɉ£‚ꂽAIDŽw’è‚̃XƒLƒ‹‚ª“–‚½‚Á‚½Askill_unit‚ȃXƒLƒ‹UŒ‚‚ª“–‚½‚Á‚½‚Ì‚ðC³
-EƒOƒ‰ƒtƒBƒeƒB‚ÌRange‚ð‚Æ‚è‚ ‚¦‚¸3‚É‚µ‚Ä‚Ý‚½
- (db/)
- skill_db.txt
- (char/)
- char.c
- parse_frommap()
- (map/)
- clif.c
- clif_parse_ActionRequest() •ÏX
- clif_parse_UseSkillToId() •ÏX
- mob.c
- mob_gvmobcheck() ’ljÁ
- mob.h
- mob_gvmobcheck() ’è‹`’ljÁ
- skill.c
- skill_attack() •ÏX
-
---------------------
-//1046 by SVN
-¦db/packet_db.txt‚Í2004-09-06aSakexe—p‚È‚Ì‚ÅAjROƒNƒ‰ƒCƒAƒ“ƒg‚ÅŽg—p‚·‚éÛ‚Íu//jRO‚Í‚±‚±‚Ü‚ÅvˆÈ‰º‚ðƒRƒƒ“ƒgƒAƒEƒg‚·‚邩휂µ‚Ä‚­‚¾‚³‚¢
-
-E•ÏX“_‚ª‘½‚¢‚Ì‚ÅÚׂ̓tƒ@ƒCƒ‹AŠÖ”‚²‚Æ‚É‹Lq‚µ‚Ä‚¢‚Ü‚·
-E1045‚É‚»‚Ì‚Ü‚Üã‘‚«‚µ‚Ä‚à“®ì‚µ‚Ü‚·‚ªAŽg‚í‚ê‚È‚¢ƒtƒ@ƒCƒ‹‚ª‚¢‚­‚‚©Žc‚è‚Ü‚·
-Escript/ˆÈ‰º‚Í–¼‘O‚ª•ÏX‚³‚ê‚Ä‚¢‚éƒtƒ@ƒCƒ‹‚ª‘å—Ê‚É‚ ‚é‚Ì‚Åscript/‚Ì•ÏX“_‚ðŽQl‚É‚µ‚Ä‚­‚¾‚³‚¢
-EƒXƒNƒŠƒvƒg—p‚ÌŠÖ”‚â–½—ß‚ª‘‚¦‚½‚èŽd—l‚ª•ÏX‚³‚ê‚Ä‚¢‚é‚à‚Ì‚ª‚ ‚è‚Ü‚·
- Šî–{“I‚ɂ͌݊·«‚ª‚ ‚é‚Í‚¸‚Å‚·‚ªAgetgdskilllv()‚¾‚¯‚Í‘æ“ñˆø”‚𔎚‚Å‚Í‚È‚­ƒXƒLƒ‹–¼(GD_APPROVAL‚È‚Ç)‚É’u‚«Š·‚¦‚é•K—v‚ª‚ ‚è‚Ü‚·
- getgdskilllv()‚ªŽg‚í‚ê‚Ä‚¢‚é/script/npc/gvg_big5/*.* ‚Í’†‘Œê‚Å•K—v‚È‚¢‚Ì‚Å휂µ‚Ä‚­‚¾‚³‚¢
- ’ljÁ‚â•ÏX‚ÉŠÖ‚µ‚Ä‚ÍŠT‚Ëscript_ref.txt‚É”½‰f‚µ‚Ä‚ ‚è‚Ü‚·‚ªAÚׂÍscript.c‚Ì•ÏX“_‚ð“Ç‚ñ‚Å‚­‚¾‚³‚¢
-E’ljÁ‚³‚ꂽ@ƒRƒ}ƒ“ƒh‚ɂ‚¢‚Ä‚Í@help‚Æatcommand.c‚Ì•ÏX“_‚ð“Ç‚ñ‚Å‚­‚¾‚³‚¢
-E’ljÁ‚³‚ꂽݒè‚Íconf_ref.txt‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢
-E‹Lq˜R‚ê‚Ì•ÏX“_‚à‚ ‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñ
-
-’ljÁ‚µ‚½ƒtƒ@ƒCƒ‹‚ÍuAv
-•ÏX‚µ‚½ƒtƒ@ƒCƒ‹‚ÍuCv
-휂µ‚½ƒtƒ@ƒCƒ‹‚ÍuDv
-ˆÚ“®‚µ‚½ƒtƒ@ƒCƒ‹‚ÍuMv
- /
- C athena-start
- ./conf/import ˆÈ‰º‚ð‹N“®Žž‚ÉŽ©“®ì¬‚·‚é‚悤‚É•ÏX
- seqƒRƒ}ƒ“ƒh‚ðŽg‚í‚È‚¢‚悤‚É‚µ‚ÄFreeBSD‚Å‚à“®ì‚·‚é‚悤‚É•ÏX
- start
- ‚·‚Å‚ÉAthena‚ª‹N“®‚µ‚Ä‚¢‚鎞‚͉½‚à‚µ‚È‚¢‚悤‚É•ÏX
- exec‚Å ./ ‚ªƒ_ƒu‚Á‚Ä‚¢‚½‚Ì‚Åíœ
- stop
- FreeBSD‚Å‚àƒVƒFƒ‹‚É–ß‚é‚悤‚É•ÏX
- kill
- “¯ã
- C Makefile
- PACKETDEF ‚É PACKETVER=6 ‚ð’ljÁ
- FreeBSD‚𔻒肵‚Ä make ‚Æ gmake ‚ðØ‚è‘Ö‚¦‚é‚悤‚É•ÏX
- CFLAGS ‚ð•ª‰ð‚µ‚Ä˜M‚è‚â‚·‚¢‚悤‚É•ÏX
- C start
- 1s–ڂ̃VƒFƒ‹Žw’肪³‚µ‚­‚È‚©‚Á‚½‚Ì‚ð•ÏX
- ‚·‚Å‚ÉAthena‚ª‹N“®‚µ‚Ä‚¢‚鎞‚͉½‚à‚µ‚È‚¢‚悤‚É•ÏX
- ‹N“®Šm”F‚ÌðŒŽ®‚ð athena-start ‚Æ“¯‚¶•¨‚É•ÏX
- bin/tool/
- ƒVƒFƒ‹ƒXƒNƒŠƒvƒg‚̉üsƒR[ƒh‚ð CRLF ‚©‚ç LF ‚Ì‚Ý‚É•ÏX
- C getlogincount
- ƒƒOƒCƒ“ƒo[ƒWƒ‡ƒ“‚ð $loginversion ‚Æ‚µ‚Ä•ÏX‚Å‚«‚é‚悤‚É•ÏX
- C ladmin
- ƒAƒJƒEƒ“ƒg–¼‚Éu-v‚ðŽg‚¦‚é‚悤‚É•ÏX
-
- conf/
- D import/
- ”z•z•¨‚©‚çíœ(athena-start start ‚ÅŽ©“®ì¬‚³‚ê‚é)
- C atcommand_athena.conf
- shuffle maintenance misceffect ’ljÁ
- C char_athena.conf
- default_map_type default_map_name ’ljÁ
- C help.txt
- à–¾’ljÁ
- C login_athena.conf
- login_version login_type ’ljÁ
- C map_athena.conf
- npc map FX•ÏX
- C mapflag.txt
- ÅV”Å‚ÉXV
- C msg_athena.conf
- 81ˆÈ~’ljÁ
- C water_height.txt
- ÅV”Å‚ÉXV
- db/
- C castle_db.txt
- ƒMƒ‹ƒh‰ð‘ÌŽž‚É”­¶‚·‚é OnGuildBreak ƒCƒxƒ“ƒg‚Ì‚½‚ß‚É <Event_Name> ’ljÁ
- C const.txt
- GvG‚ÌŠJŽnŽžŠÔ“™‚ðÝ’è‚Å‚«‚é‚悤‚ɒljÁ
- ƒ}ƒbƒvƒtƒ‰ƒO mf_notrade mf_noskill ’ljÁ
- ƒpƒ‰ƒ[ƒ^ PartnerId Cart ’ljÁ
- ƒ{[ƒiƒX bBreakWeaponRate bBreakArmorRate bAddStealRate bUnbreakableWeapon bUnbreakableArmor ’ljÁ
- ƒXƒe[ƒ^ƒX•Ï‰» SC_WEDDING ’ljÁ
- ƒXƒNƒŠƒvƒg–½—ß getgdskilllv —p‚É GD_APPROVAL ‚ȂǒljÁ
- C exp.txt
- “]¶“ñŽŸE‚ªBaseLv12‚É‚È‚é‚Æ‚«‚É•K—v‚ÈŒoŒ±’l‚ð41¨481‚ÉC³
- C item_db.txt
- C mob_db.txt
- C mob_skill_db.txt
- C skill_cast_db.txt
- C skill_db.txt
- C skill_require_db.txt
- C skill_tree.txt
- ÅV”Å‚ÉXV
- A packet_db.txt
- ƒpƒPƒbƒg’è‹`ƒtƒ@ƒCƒ‹’ljÁ
- doc/
- C client_packet.txt
- V‚µ‚­”»–¾‚µ‚½ƒpƒPƒbƒg‚ð‚¢‚­‚‚©’ljÁ
- C conf_ref.txt
- V‚µ‚­’ljÁ‚µ‚½Ý’è‚Ìà–¾‚ð’ljÁ
- C db_ref.txt
- skill_cast_db.txt ‚Ì list_hp_rate list_sp_rate ‚Å•‰”‚ðŽw’肵‚½Žž‚Ì‹““®‚ð’ljÁ
- C help.txt
- conf/help.txt “¯—l‚É•ÏX
- C inter_server_packet.txt
- V‹K‚ŒljÁ‚µ‚½ƒpƒPƒbƒg‚ð’ljÁ‚ÆŽÀ‘Ô‚Æ‚ ‚Á‚Ä‚¢‚È‚©‚Á‚½•”•ª‚ðC³
- C item.txt
- ÅV”Å‚ÉXV
- C item_bonus.txt
- V‹K‚ŒljÁ‚³‚ꂽƒ{[ƒiƒX‚ð’ljÁ
- C script_ref.txt
- V‹K–½—߂̒ljÁ‚ÆŠù‘¶–½—ß‚Ì•ÏX‚È‚Ç
- C serverlink_packet.txt
- V‹K‚ŒljÁ‚µ‚½ƒpƒPƒbƒg‚ð’ljÁ‚ÆŠù‘¶‚Å‘‚©‚ê‚Ä‚¢‚È‚©‚Á‚½ƒpƒPƒbƒg‚̒ljÁ
- script/
- mob/
- C npc_monster.txt
- ÅV”Å‚ÉXV
- ƒjƒuƒ‹ƒwƒCƒ€‚ÌMob‚Ínpc_parse_mob()‚Ì•ÏXƒTƒ“ƒvƒ‹‚É‚È‚Á‚Ä‚Ü‚·
- npc/
- ‚Ù‚Ú‚·‚ׂĂÌNPC‚ðnpc_function.txt‚ðŽg‚Á‚½ƒ†[ƒU[’è‹`ŠÖ”‚Æ•¡»‚È‚Ç‚Å‘‚«Š·‚¦
- ˆÚ“®‚µ‚½ƒtƒ@ƒCƒ‹‚ÉŠÖ‚µ‚Ă͈ړ®Œã‚̃tƒ@ƒCƒ‹‚ªŠÜ‚Ü‚ê‚Ä‚¢‚é‚̂ňړ®‘O‚̃tƒ@ƒCƒ‹‚Ì‚Ý휂µ‚Ä‚­‚¾‚³‚¢
- —á) etc/npc_etc_cTower.txt ‚ÍŠÜ‚Ü‚ê‚Ä‚¢‚é‚Ì‚Å npc_cTower.txt ‚ðíœ
- M npc_cTower.txt
- ¨etc/npc_etc_cTower.txt
- A npc_function.txt
- M npc_pota.txt
- ¨../sample/npc_debug_pota.txt
- M npc_pvp.txt
- M npc_pvproom.txt
- 2ƒtƒ@ƒCƒ‹‡‘Ì
- ¨etc/npc_etc_pvp.txt
- M npc_resetJ.txt
- ¨../sample/npc_debug_reset.txt
- A etc/
- A npc_etc_gefenia.txt
- C gvg/
- ‚·‚ׂÄev_agit_common.txt‚ðŽg‚Á‚½ƒ†[ƒU[’è‹`ŠÖ”‚Å‘‚«Š·‚¦
- ‚·‚ׂÄ휂µ‚Ä‚©‚炱‚̃pƒbƒ`‚ð“–‚Ä‚Ä‚­‚¾‚³‚¢
- ƒMƒ‹ƒh‰ðŽUŽž‚ÉÔ‚ð•úŠü‚·‚邽‚ß‚Éev_agit_Ô.txt‚ÉOnGuildBreakƒCƒxƒ“ƒg‚ð’ljÁ
- D test/
- A ev_agit_common.txt
- D ev_agit_event.txt
- D TEST_prtg_cas01_AbraiJ.txt
- D TEST_prtg_cas01_mob.txt
- D gvg_big5/
- C job/
- “]EƒXƒNƒŠƒvƒg‚Ì–¼‘O‚ðnpc_job_[JOB”Ô†][ƒWƒ‡ƒu–¼].txt‚É•ÏX
- ‚·‚ׂÄ휂µ‚Ä‚©‚炱‚̃pƒbƒ`‚ð“–‚Ä‚Ä‚­‚¾‚³‚¢
- C quest/
- M npc_event_arrow.txt
- ¨../../sample/npc_debug_arrow.txt
- A npc_event_hat2.txt
- ƒjƒuƒ‹“¯ŽžŽÀ‘•‚ÌV“ª‘•”õƒXƒNƒŠƒvƒg‚ð’ljÁ
- src/
- calloc() realloc() ‚ð‹É—ÍŠeŒ^‚ɃLƒƒƒXƒg‚·‚é‚悤‚É•ÏX
- calloc() Œã‚É memset() ‚Å \0 ‚ð–„‚ß‚Ä‚¢‚½‚Ì‚ðíœ
- calloc() ‚È‚Ì‚É(ƒTƒCƒY*ŒÂ”,1)‚ÅŽw’肵‚Ä‚¢‚½‚Ì‚ð(ŒÂ”,ƒTƒCƒY)‚É•ÏX
- ƒƒ‚ƒŠŠm•Û‚ðƒGƒ‰[ˆ—‚ð‚Ü‚Æ‚ß‚½ŠÖ”‚É‘‚«Š·‚¦
- malloc() ¨ aMalloc()
- calloc() ¨ aCalloc()
- realloc() ¨ aRealloc()
- strcpy() ‚ð strncpy() ‚É‹É—Í•ÏX
-
- char/
- C char.c
- ƒXƒy[ƒX‚ŃCƒ“ƒfƒ“ƒg‚³‚ê‚Ä‚¢‚½‚Æ‚±‚ë‚ðƒ^ƒu‚Å“ˆê
- A isGM()
- A read_gm_account()
- GMƒAƒJƒEƒ“ƒg‚ª•K—v‚É‚È‚Á‚½‚̂ŒljÁ
- C mmo_char_tostr()
- C mmo_char_fromstr()
- nullpoƒ`ƒFƒbƒN’ljÁ
- C count_users()
- •K—v‚È‚¢{}‚ðíœ
- C char_delete()
- nullƒ`ƒFƒbƒN’ljÁ
- 휃ƒbƒZ[ƒW‚ðƒRƒ“ƒ\[ƒ‹‚É•\Ž¦‚·‚é‚悤‚É‚µ‚½
- 휎ž‚ÉÚ‘±‚µ‚Ä‚¢‚éƒLƒƒƒ‰‚ðØ’f‚·‚é‚悤map-server‚É’Ê’m(0x2b19ƒpƒPƒbƒg)‚·‚é‚悤‚É‚µ‚½
- C parse_tologin()
- C 0x2713
- char-serverƒƒ“ƒeƒiƒ“ƒXݒ莞‚ÍGMˆÈŠO“ü‚ê‚È‚¢‚悤‚É‚µ‚½
- Ú‘±”§ŒÀ‚ÅÅ‘å’l‚Å‚àGM‚ÍÚ‘±‚Å‚«‚é‚悤‚É‚µ‚½
- C 0x272a
- 0x2730‚ð0x272a‚É•ÏX‚µ‚ĔԆ‚ð‹l‚ß‚½
- ƒAƒJƒEƒ“ƒg휂µ‚½Žž‚ɃLƒƒƒ‰‚ªˆê•”Á‚³‚ê‚È‚¢–â‘è‚ðC³
- A 0x272c
- ŽóMŽž‚Élogin-server‚É’Ê’m(0x2b15ƒpƒPƒbƒg)‚µ‚ăƒ“ƒeƒiƒ“ƒXó‘Ô‚É‚È‚é‚悤‚É‚µ‚½
- A char_erasemap()
- map-serverØ’fŽž‚É‘¼map-server‚Ƀ}ƒbƒv‚Ì휂ð’Ê’m(0x2b16ƒpƒPƒbƒg)‚·‚é‚悤‚É‚µ‚½
- ‚±‚ê‚É‚æ‚葼map-serverŠÇŠ‚̃}ƒbƒv‚Ɉړ®‚µ‚悤‚Æ‚µ‚ÄA‚»‚Ìmap-server‚ªØ’f‚³‚ê‚Ä‚¢‚½‚çA
- pc_setpos()‚Å‘¶Ý‚µ‚È‚¢ƒ}ƒbƒv‚Æ‚¢‚¤‚±‚Ƃňړ®‚µ‚悤‚Æ‚µ‚È‚­‚È‚é‚Ì‚ÅA
- ƒNƒ‰ƒCƒAƒ“ƒg‚ªu‰i‰“‚É‚¨‘Ò‚¿‚­‚¾‚³‚¢ó‘Ôv‚É‚È‚ç‚È‚¢‚悤‚É‚È‚è‚Ü‚·
- C parse_frommap()
- map-serverØ’fŽž‚Échar_erasemap()‚ðŽÀs‚·‚é‚悤‚É‚µ‚½
- map-serverØ’fŽž‚ÉŠÇŠ‚̃}ƒbƒv‚ɃLƒƒƒ‰‚ªŽc‚Á‚Ä‚¢‚½‚çØ’f‚ð‘¼map-server‚É’Ê’m(0x2b17ƒpƒPƒbƒg)‚·‚é‚悤‚É‚µ‚½
- C 0x2afc
- ”FØŽ¸”sŽž‚É char_dat[].mapip/mapport ‚ð 0 ‚É‚·‚é‚悤‚É‚µ‚½
- ”FجŒ÷Žž‚É char_dat[].mapip/mapport ‚ðmap-server‚ÌIPƒAƒhƒŒƒX‚ƃ|[ƒg‚É‚·‚é‚悤‚É‚µ‚½
- ”FجŒ÷Žž‚É‘¼map-server‚ɃLƒƒƒ‰‚ªƒƒOƒCƒ“‚µ‚½‚±‚Æ‚ð’Ê’m(0x2b09ƒpƒPƒbƒg)‚·‚é‚悤‚É‚µ‚½
- C 0x2b02
- C 0x2b05
- ƒRƒ“ƒ\[ƒ‹‚Ö‚Ìo—͂ɃpƒPƒbƒg”Ô†‚ð‹Lq‚·‚é‚悤‚É‚µ‚½
- C 0x2b08
- ƒpƒPƒbƒgŽd—l‚ð•ÏX‚µ‚Ä account_id mapip mapport ‚à’Ê’m‚·‚é‚悤‚É•ÏX
- map-server‚ÉÚ‘±‚µ‚Ä‚¢‚È‚¢Žž‚Í‚·‚×‚Ä 0 ‚ª“ü‚è‚Ü‚·
- A 0x2b13
- map-server‹N“®“r’†‚ȂǂŃLƒƒƒ‰‚ªƒƒOƒCƒ“‚Å‚«‚È‚¢‚悤‚É‚·‚é server[].active ƒtƒ‰ƒO‚ð‘€ì‚·‚é
- active = 0 ‚ŃLƒƒƒ‰‚̓ƒOƒCƒ“‚Å‚«‚¸‚ÉØ’f‚³‚ê‚é
- map-server‚ª‹N“®‚ðŠ®—¹‚µ‚½‚Æ‚«‚É active = 1 ‚É‚·‚éƒpƒPƒbƒg‚ª‘—‚ç‚ê‚Ä‚­‚é
- A 0x2b14
- char-server‚ðƒƒ“ƒeƒiƒ“ƒXó‘Ô‚É‚·‚é char_maintenance ƒtƒ‰ƒO‚ð‘€ì‚·‚é
- login-server‚É‚à’Ê’m(0x272bƒpƒPƒbƒg)‚µ‚ă[ƒ‹ƒh‘I‘ð‰æ–ʂŃƒ“ƒeƒiƒ“ƒX•\Ž¦‚ð‚·‚é
- ƒƒ“ƒeƒiƒ“ƒXó‘Ô‚Å‚ÍGMˆÈŠO‚̃†[ƒU[‚̓ƒOƒCƒ“‚Å‚«‚Ü‚¹‚ñ
- A 0x2b18
- ƒLƒƒƒ‰ƒNƒ^[‚ÌØ’f‚ð‘¼map-server‚É’Ê’m(0x2b17ƒpƒPƒbƒg)‚·‚é‚悤‚É‚µ‚½
- C search_mapserver()
- ˆø”‚É struct mmo_charstatus *cd ‚ð’ljÁ
- cd‚ª“n‚³‚ꂽ•’T‚µ‚Ä‚¢‚éƒ}ƒbƒv‚ªÚ‘±‚µ‚Ä‚¢‚émap-server‚É–³‚©‚Á‚½‚Æ‚«‚ÉAʼn‚ÉŒ©‚‚¯‚½map-server‚Ìʼn‚ÉŒ©‚‚¯‚½ƒ}ƒbƒv‚ÉÚ‘±‚·‚é‚悤‚É‚µ‚½
- ‚±‚ê‚Í char_athena.conf default_map_type: 2 ‚ÌŽž‚Ì‹““®‚Å‚·
- C parse_char()
- C 0x65
- ƒƒ“ƒeƒiƒ“ƒXó‘Ô‚ÌŽž‚ÉGMˆÈŠO‚ðØ’f‚·‚é‚悤‚É‚µ‚½
- Å‘åÚ‘±”‚ªÝ’肳‚ê‚Ä‚¢‚ÄÅ‘åÚ‘±”‚Ì‚Æ‚«‚àGM‚ÍÚ‘±‚Å‚«‚é‚悤‚É‚µ‚½
- C 0x66
- char-server‚ÉÚ‘±‚µ‚Ä‚¢‚émap-server‚Élast_point‚ªŒ©‚‚¯‚ç‚ê‚È‚©‚Á‚½‚Æ‚«‚ÉA
- default_map_type&1 ‚ÌŽž‚Í default_map_name ‚ÉÚ‘±‚·‚é
- default_map_type&2 ‚ÌŽž‚Í Å‰‚ÉŒ©‚‚¯‚½map-server‚Ìʼn‚ÉŒ©‚‚¯‚½ƒ}ƒbƒv‚ÉÚ‘±‚·‚é
- ‚»‚ê‚Å‚àŒ©‚‚©‚ç‚È‚¢Žž‚ÍØ’f‚·‚é‚悤‚É‚µ‚½
- ƒRƒ“ƒ\[ƒ‹‚Ö‚Ìo—͂ɃpƒPƒbƒg”Ô†‚ð‹Lq‚·‚é‚悤‚É‚µ‚½
- C 0x2af8
- ‘¼ƒ}ƒbƒv‚ÉÚ‘±‚µ‚Ä‚¢‚éƒLƒƒƒ‰î•ñ‚ð’Ê’m(0x2b09ƒpƒPƒbƒg)‚·‚é‚悤‚É‚µ‚½
- C 0x187
- S 0187ƒpƒPƒbƒg‚ð•ÔM‚·‚é‚悤‚É‚µ‚½
- C check_connect_login_server()
- char_port‚ðWFIFOL‚Å‘—‚Á‚Ä‚¢‚½‚Ì‚ðWFIFOW‚ÉC³
- 80‚Æ82‚ÌŠÔ‚ª‹ó‚¢‚Ä‚¢‚½‚Ì‚ð‹l‚߂ăpƒPƒbƒg’·‚ð86¨84‚É•ÏX
- C char_config_read()
- default_map_type default_map_name ‚ð“Ç‚Ýž‚ނ悤‚É‚µ‚½
- A gm_account_db_final()
- Šm•Û‚µ‚½ gm_account_db ‚̃ƒ‚ƒŠ‚ðI—¹Žž‚ÉŠJ•ú‚·‚é‚悤‚É‚µ‚½
- C do_final()
- inter.c ‚È‚Ç‘¼ƒtƒ@ƒCƒ‹‚ÌI—¹ˆ—(do_final_*)‚ð’ljÁ‚µ‚½
- exit_dbn() ‚Ådb—p‚̃ƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
- Ú‘±‚³‚ê‚Ä‚¢‚émap-server‚̃ZƒbƒVƒ‡ƒ“‚ð휂·‚é‚悤‚É‚µ‚½
- do_final_timer()‚Åtimer‚ðI—¹‚³‚¹‚é‚悤‚É‚µ‚½
- C do_init()
- server[].active = 0 ‚ʼnŠú‰»
- read_gm_account() ‚ÅGMƒAƒJƒEƒ“ƒgƒtƒ@ƒCƒ‹‚ð“Ç‚Ýž‚ނ悤‚É‚µ‚½
- C char.h
- mmo_map_server ‚É active ƒtƒ‰ƒO‚ð’ljÁ‚µ‚½
- C int_guild.c
- C mapif_parse_GuildSkillUp()
- ƒMƒ‹ƒhƒ|ƒCƒ“ƒg‚ðÁ”‚È‚¢‚ŃMƒ‹ƒhƒXƒLƒ‹‚ðã‚°‚邽‚ß‚É int flag ‚ð’ljÁ
- C inter_guild_parse_frommap()
- 0x303C
- ƒpƒPƒbƒg’è‹`‚ð•ÏX‚µ‚Äflag‚ð’ljÁ‚µ‚½
- A guild_db_final()
- A castle_db_final()
- A do_final_int_guild()
- I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
- C int_guild.h
- A do_final_int_guild()
- ’è‹`‚ð’ljÁ
- C int_party.c
- A party_db_final()
- A do_final_int_party()
- I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
- C int_party.h
- A do_final_int_party()
- ’è‹`‚ð’ljÁ
- C int_pet.c
- A pet_db_final()
- A do_final_int_pet()
- I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
- C int_pet.h
- A do_final_int_pet()
- ’è‹`‚ð’ljÁ
- C int_storage.c
- A storage_db_final()
- A guild_storage_db_final()
- A do_final_int_storage()
- I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
- C int_storage.h
- A do_final_int_storage()
- ’è‹`‚ð’ljÁ
- C inter.c
- ƒpƒPƒbƒg’·’è‹`‚ð•ÏX
- A mapif_parse_CharPosReq()
- 0x3090ƒpƒPƒbƒg‚ւ̑Ήž
- ƒLƒƒƒ‰‚̈ʒu—v‹‚ðmap-server‚É’Ê’m(0x3890ƒpƒPƒbƒg)‚·‚é
- A mapif_parse_CharPos()
- 0x3091ƒpƒPƒbƒg‚ւ̑Ήž
- ƒLƒƒƒ‰‚̈ʒu—v‹‚ð‚µ‚½ƒLƒƒƒ‰‚Ɉʒuî•ñ‚ð’Ê’m(0x3891ƒpƒPƒbƒg)‚·‚é
- A mapif_parse_CharMoveReq()
- 0x3092ƒpƒPƒbƒg‚ւ̑Ήž
- —v‹‚µ‚½ƒLƒƒƒ‰‚Ü‚Å‘Îۂ̃Lƒƒƒ‰‚ð”ò‚΂·—v‹‚ð’Ê’m(0x3892ƒpƒPƒbƒg)‚ð‚·‚é
- A mapif_parse_DisplayMessage()
- 0x3093ƒpƒPƒbƒg‚ւ̑Ήž
- ƒLƒƒƒ‰‚ɃƒbƒZ[ƒW‚ð‘—M(0x3893ƒpƒPƒbƒg)‚·‚é
- C inter_parse_frommap()
- Še’ljÁƒpƒPƒbƒg‚ւ̑Ήž‚ð’ljÁ‚µ‚½
- A wis_db_final()
- A accreg_db_final()
- A do_final_inter()
- I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
- C inter.h
- A do_final_inter()
- ’è‹`‚ð’ljÁ
- C Makefile
- A nullpo.o nullpo.h ‚ð’ljÁ
- A malloc.o malloc.h ‚ð’ljÁ
- common/
- C db.c
- A exit_dbn()
- I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚邽‚߂ɒljÁ
- C db.h
- A exit_dbn()
- ’è‹`’ljÁ
- A malloc.h
- A malloc.c
- ƒƒ‚ƒŠŠm•ÛŠÖ”‚Ì‚Ü‚Æ‚ß
- C mmo.h
- C mmp_charstatus
- mapip mapport ’ljÁ
- C guild_castle
- castle_event ’ljÁ
- C Makefile
- A malloc.o malloc.h malloc.c ‚ð’ljÁ
- C nullpo.h
- ŒÃ‚¢gcc‚ŃRƒ“ƒpƒCƒ‹‚Å‚«‚é‚悤‚É\‚ðíœ
- C socket.c
- C recv_to_fifo()
- ”Ä—p«‚ð‚‚߂邽‚ß‚É read() ‚ð recv() ‚É•ÏX
- C send_from_fifo()
- ”Ä—p«‚ð‚‚߂邽‚ß‚É write() ‚ð send() ‚É•ÏX
- C timer.c
- A do_final_timer()
- I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
- C timer.h
- A do_final_timer()
- ’è‹`’ljÁ
- login/
- C login.c
- A login_version login_type
- clientinfo.xml‚ÅŽw’è‚·‚é login_version login_type ‚ŃƒOƒCƒ“‚ð‹K§‚·‚é‚Æ‚«‚ÉŽg‚¢‚Ü‚·
- C parse_fromchar()
- A 0x272b
- server[].maintenance ƒtƒ‰ƒO‚ð•ÏX‚·‚é
- •ÏX‚µ‚½“à—e‚ðchar-server‚É•ÔM(0x272cƒpƒPƒbƒg)‚·‚é
- C parse_admin()
- C 0x7932
- 0x2730¨0x272a ‚É•ÏX
- C parse_login()
- C 0x64 0x01dd
- login_version login_type ‚ð”»’è‚·‚é‚悤‚É‚µ‚½
- C 0x2710
- ƒpƒPƒbƒg’·‚Ì’è‹`‚ª³‚µ‚­‚È‚©‚Á‚½‚Ì‚ðC³‚µ‚½
- char.c check_connect_login_server ‚Ì•ÏX‚𔽉f
- C login_config_read()
- login_version login_type‚Ì“Ç‚Ýž‚Ý‚ð’ljÁ
- A gm_account_db_final()
- C do_final()
- I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É•ÏX
- C Makefile
- A malloc.o malloc.h ‚ð’ljÁ
- map/
- C atcommand.c
- ƒRƒ“ƒpƒCƒ‹ƒIƒvƒVƒ‡ƒ“‚Åmemwatch‚ð“Ç‚Ýž‚ß‚é‚悤‚É‚µ‚½
- C atcommand_where()
- ‘¼map-server‚É‚¢‚éƒLƒƒƒ‰‚̋ꊂà•\Ž¦‚Å‚«‚é‚悤‚É‚µ‚½
- C atcommand_jumpto()
- ‘¼map-server‚É‚¢‚éƒLƒƒƒ‰‚É‚à”ò‚ׂé‚悤‚É‚µ‚½
- C atcommand_who()
- ƒ[ƒ‹ƒh“à‚Ì‚·‚ׂĂɂ¢‚éƒLƒƒƒ‰‚ð•\Ž¦‚·‚é‚悤‚É‚µ‚½
- C atcommand_go()
- ƒjƒuƒ‹ƒwƒ‹ƒ€‚̈ړ®ƒ|ƒCƒ“ƒg‚ð•ÏX
- C atcommand_recall()
- ‘¼map-server‚É‚¢‚éƒLƒƒƒ‰‚àŒÄ‚Ño‚¹‚é‚悤‚É‚µ‚½
- A atshuffle_sub()
- A atcommand_shuffle()
- PC‚ÆMOB‚̃Vƒƒƒbƒtƒ‹‚ðs‚¤ @shuffle ‚ð’ljÁ
- A atcommand_maintenance()
- char-server‚ðƒƒ“ƒeƒiƒ“ƒXó‘Ô‚É‚·‚é @maintenance ‚ð’ljÁ
- A atcommand_misceffect()
- ŽÀs‚µ‚½ƒLƒƒƒ‰‚©‚ç0x1f3ƒpƒPƒbƒg‚ð”­M‚µ‚ăGƒtƒFƒNƒg‚ð•\Ž¦‚·‚é @misceffect ‚ð’ljÁ
- A atcommand_summon()
- ƒR[ƒ‹ƒzƒ€ƒ“ƒNƒ‹ƒX‚Æ‹©‚ñ‚ÅŽw’肵‚½Mob‚𢊫‚·‚é @summon ‚ð’ljÁ
- ¢Š«‚³‚ꂽMob‚Í‘¼‚ÌMob(Pv“™‚Å‚Í“G‘ÎPCŠÜ‚Þ)‚ðUŒ‚‚µ‚Ü‚·
- ¢Š«‚³‚ꂽMob‚ÉUŒ‚‚³‚ꂽMob‚Í¢Š«Žå‚ðUŒ‚‚µ‚Ü‚·(ƒoƒCƒIƒvƒ‰ƒ“ƒg‚̃tƒ[ƒ‰‚Æ“¯‚¶‹““®)
- ¢Š«‚³‚ꂽMob‚Í1•ªŒã‚ÉÁ–Å‚µ‚Ü‚·
- ƒlƒ^‚Ȃ̂ʼnB‚µƒRƒ}ƒ“ƒh‚Æ‚µ‚Ähelp.txt‚É‚Í‹Lq‚µ‚Ä‚Ü‚¹‚ñ
- C atcommand.h
- ’ljÁ‚µ‚½@ƒRƒ}ƒ“ƒh‚ð AtCommandType ‚ɒljÁ
- C msg_table[] ‚ðŠO‚©‚çŽg‚¦‚é‚悤‚É‚·‚邽‚ß‚Éextern‚µ‚½
- C battle.c
- ƒRƒ“ƒpƒCƒ‹ƒIƒvƒVƒ‡ƒ“‚Åmemwatch‚ð“Ç‚Ýž‚ß‚é‚悤‚É‚µ‚½
- A battle_config.castle_defense_rate
- –{ŽI‚Å–hŒä’l‚ª‚ǂ̂悤‚ɉe‹¿‚·‚é‚©‹ï‘Ì“I‚É‚Í•ª‚©‚ç‚È‚©‚Á‚½‚Ì‚ÅAÔ‚Ì–hŒä’l‚𔽉f‚³‚¹‚é—¦‚ðÝ’è‚Å‚«‚é‚悤‚É‚µ‚½
- C battle_get_opt1()
- C battle_get_opt2()
- C battle_get_option()
- NPC‚̃IƒvƒVƒ‡ƒ“‚à•Ô‚·‚悤‚É‚µ‚½
- A battle_get_opt3()
- opt3‚ð•Ô‚·‚悤‚ɒljÁ
- C battle_calc_damage()
- Ô“à‚ÌMob‚ւ̃_ƒ[ƒW‚Í–hŒä’l‚ÅŒ¸ŽZ(ƒ_ƒ[ƒW*(–hŒä’l/100)*(castle_defense_rate/100))‚³‚ê‚é‚悤‚É‚µ‚½
- ƒK[ƒfƒBƒAƒ“‚ɂ̓XƒLƒ‹‚ªŒø‚­‚悤‚É‚µ‚½
- C battle_calc_pet_weapon_attack()
- C battle_calc_mob_weapon_attack()
- C battle_calc_pc_weapon_attack()
- ƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚̃_ƒ[ƒWŒvŽZ‚ð‚·‚é‚悤‚É‚µ‚½
- C battle_weapon_attack()
- •ŠíUŒ‚‚É‚æ‚鑦Ž€‚ÌŽd—l‚ð•ÏX
- •ŠíAŠZ”j‰ó‚ÌŠm—¦ŒvŽZ‚ð‚·‚é‚悤‚É•ÏX
- ƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚ª‰ðœ‚³‚ê‚é‚悤‚É•ÏX
- C battle_check_target()
- src ‚¶‚á‚È‚­‚Ä ss ‚©‚çparty_id guild_id‚ðŽæ“¾‚·‚é‚悤‚ÉC³
- target=BCT_NOENEMY ‚ȃXƒLƒ‹ Œû“JAƒnƒ~ƒ“ƒO‚È‚Ç‚ªPvPAGvG‚ÌŽž‚É‚à‘¼PC‚ɉe‹¿‚·‚é‚悤‚É‚µ‚½
- Mob‚ªspecial_ai‚È‚çMob‚ð“G‚Æ‚Ý‚È‚·‚悤‚É‚µ‚½
- C battle_config_read()
- castle_defense_rate ‚ð“Ç‚Ýž‚ނ悤‚É‚µ‚½
- C battle.h
- A battle_get_opt3()
- ’è‹`’ljÁ
- C Battle_Config
- castle_defense_rate ’ljÁ
- C chat.c
- C chat_createnpcchat()
- ˆø”‚É int pub ‚ð’ljÁ
- pub=3 ‚ł̓`ƒƒƒbƒg‚̊Ŕ‚É(0/20)‚̂悤‚È•\Ž¦‚ª‚³‚ê‚È‚­‚È‚è‚Ü‚·
- A do_final_chat()
- ‰½‚à‚µ‚Ä‚È‚¢‚¯‚Ç‚Æ‚è‚ ‚¦‚¸’ljÁ
- C chat.h
- C chat_createnpcchat()
- ’è‹`‚ð•ÏX
- A do_final_chat()
- ’è‹`‚ð’ljÁ
- C chrif.c
- ƒpƒPƒbƒg’·ƒe[ƒuƒ‹‚ðŠg’£
- C chrif_connect()
- C chrif_changemapserver()
- WFIFOL‚Ń|[ƒg‚ð‘—‚Á‚Ä‚¢‚½‚Ì‚ðWFIFOW‚ÉC³
- A chrif_recverasemap()
- ‘¼map-server‚ªØ’f‚³‚ꂽ‚±‚Æ‚ªchar-server‚æ‚è’Ê’m‚³‚ꂽŽž‚ÉA‚»‚Ìmap-server‚ªŠÇ—‚µ‚Ä‚¢‚½ƒ}ƒbƒv‚Ìî•ñ‚ð휂·‚é‚悤‚É‚µ‚½
- A chrif_mapactive()
- map-server‹N“®€”õ’†‚É0AŠ®—¹Žž‚É1‚ðchar-server‚É’Ê’m(0x2b13)‚µ‚Ä‹N“®“r’†‚Ƀ†[ƒU[‚ªƒƒOƒCƒ“‚Å‚«‚È‚¢‚悤‚É‚µ‚½
- A chrif_maintenance()
- char-server‚ðƒƒ“ƒeƒiƒ“ƒXó‘Ô‚É‚µ‚½‚è‰ðœ‚µ‚½‚è‚ð’Ê’m(0x2b14)‚·‚é
- A chrif_maintenanceack()
- char-server‚ðƒƒ“ƒeƒiƒ“ƒXó‘Ô‚É‚µ‚½Žž‚̉ž“š
- ƒƒ“ƒeƒiƒ“ƒXó‘Ô‚É‚µ‚½Ž|‚ðƒ}ƒbƒv“à‚É’Ê’m‚·‚é
- A chrif_chardisconnect()
- char-server‚ɃLƒƒƒ‰‚ªØ’f‚³‚ꂽ‚±‚Æ‚ð’Ê’m(0x2b18)‚·‚é
- A chrif_parse_chardisconnectreq()
- char-server‚©‚ç‚̃Lƒƒƒ‰Ø’f—v‹‚ðŽó‚¯‚ÄA‘ÎÛƒLƒƒƒ‰‚ª‚¢‚éꇂɂÍØ’f‚·‚é
- C chrif_parse()
- C 0x2b09
- map_addchariddb() ‚̈ø”‘‰Á‚ɑΉž
- A 0x2b15
- A 0x2b16
- A 0x2b17
- A 0x2b19
- ŠeV‹KƒpƒPƒbƒg‚ɑΉž
- C check_connect_char_server()
- Ú‘±Žžchar-server‚Émap-server‚Ì€”õ‚ªo—ˆ‚½‚±‚Æ‚ð’Ê’m‚·‚é‚悤‚É‚µ‚½
- A do_final_chrif()
- I—¹Žž‚Échar-server‚Æ‚ÌÚ‘±‚ð휂·‚é‚悤‚É‚µ‚½
- C chrif.h
- A chrif_mapactive()
- A chrif_maintenance()
- A chrif_chardisconnect()
- A do_final_chrif()
- ’è‹`‚ð’ljÁ
- C clif.c
- ‚·‚ׂẴpƒPƒbƒg’è‹`‚ð packet_db ‚©‚ç“Ç‚Ýž‚ނ悤‚É•ÏX
- packet_db.txt‚ð•ÏX‚·‚邱‚Æ‚ÅA“xX•ÏX‚³‚ê‚éŠØ‘ƒNƒ‰ƒCƒAƒ“ƒg‚̃pƒPƒbƒg’è‹`‚ɑΉž‚µ‚â‚·‚­‚È‚è‚Ü‚·
- packet_len_table[] ‚Í packet_db[].len ‚É’u‚«Š·‚í‚è‚Ü‚µ‚½
- <time.h> ‚ðinclude
- clif_parse_*‚ð擪‚Å錾‚·‚é‚悤‚É‚µ‚½
- clif_parse_*“à‚ÌRFIFOŒn‚ÅŽg‚í‚ê‚Ä‚¢‚é‘æ2ˆø”‚Í packet_db[cmd].pos[] ‚Å•\‹L‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½
- ƒpƒPƒbƒg”Ô†‚ÌÅ‘å’l‚ð MAX_PACKET_DB ‚Å’è‹`‚·‚é‚悤‚É‚µ‚½
- C clif_set0078()
- C clif_set007b()
- ƒpƒPƒbƒg‚Ì“à—e‚ª–{ŽI‚ƈá‚Á‚Ä‚¢‚½‚Ì‚Åguild_emblem_id,manner,opt3‚𳂵‚­‘—‚é‚悤‚É•ÏX
- C clif_class_change()
- MobˆÈŠO‚ÌNPC‚Å‚àŽg‚¦‚é‚悤‚É‚µ‚½
- C clif_mob0078()
- C clif_mob007b()
- ƒK[ƒfƒBƒAƒ“‚ɃMƒ‹ƒhƒGƒ“ƒuƒŒƒ€‚ð•\Ž¦‚·‚é‚悤‚É•ÏX
- C clif_npc0078()
- ƒ[ƒvƒ|[ƒ^ƒ‹‚ðƒMƒ‹ƒhƒtƒ‰ƒbƒO‚É‚·‚éƒIƒvƒVƒ‡ƒ“‚ð—LŒø‚É‚µ‚½Žž‚Émap-server‚ª—Ž‚¿‚é–â‘è‚ðC³
- C clif_spawnnpc()
- NPC‚ª–³Œø‚Å‚àHideó‘Ô‚ÌŽž‚̓pƒPƒbƒg‚ð‘—‚é‚悤‚É•ÏX
- C clif_quitsave()
- ƒLƒƒƒ‰I—¹Žž‚Échar-server‚ÉØ’f‚ð’Ê’m‚·‚é‚悤‚É‚µ‚½
- C clif_scriptmenu()
- C clif_dispchat()
- C clif_changechatstatus()
- len‚É1ƒoƒCƒg’ljÁ
- C clif_updatestatus()
- ƒ}ƒi[ƒ|ƒCƒ“ƒg‚ð‘—M‚·‚é‚悤‚É‚µ‚½
- A clif_changestatus()
- ŽüˆÍ‚ÉÔƒGƒ‚ó‘Ô‚Å‚ ‚邱‚Æ‚ð‘—M
- A clif_misceffect2()
- ƒGƒtƒFƒNƒg‚ð”­¶‚³‚¹‚éƒpƒPƒbƒg‚ð‘—M
- @misceffect, misceffect–½—ß‚ÅŽg—p
- C clif_changeoption()
- ó‘ÔˆÙ펞ˆÈŠO‚Íó‘ÔˆÙíƒAƒCƒRƒ“•\Ž¦ƒpƒPƒbƒg‚ð‘—‚ç‚È‚¢‚悤‚É‚µ‚½
- PC‚ÌŽž‚Í clif_changelook() ‚ð‘—M‚·‚é‚悤‚É‚µ‚½(Œ‹¥ˆßÖ•\Ž¦—pH)
- C clif_traderequest()
- ŽæˆøƒpƒPƒbƒg‚Ì 0xe5 ¨ 0x1f4 ‚ɉ¼‘Ήž(–{ŽI‚Å‚ÌŽZoŽ®‚Í•s–¾‚È‚Ì‚Å‚Æ‚è‚ ‚¦‚¸ char_id ‚ð‘—M)
- C clif_tradestart()
- ŽæˆøƒpƒPƒbƒg‚Ì 0xe7 ¨ 0x1f5 ‚ɉ¼‘Ήž(–{ŽI‚Å‚ÌŽZoŽ®‚Í•s–¾‚È‚Ì‚Å‚Æ‚è‚ ‚¦‚¸ char_id ‚ð‘—M)
- C clif_getareachar_pc()
- ƒ}ƒi[ƒ|ƒCƒ“ƒg‚ª•‰”‚ÌŽž‚É‚ÍÔƒGƒ‚•\Ž¦ƒpƒPƒbƒg‚ð‘—M‚·‚é‚悤‚É‚µ‚½
- C clif_getareachar_npc()
- NPC‚ÌHideó‘ԂɑΉž
- C clif_getareachar_skillunit()
- C clif_skill_nodamage()
- Ž©”š‚ÌŽž‚Íheal‚𕉔‚É‚Å‚«‚é‚悤‚É‚µ‚½
- C clif_skill_setunit()
- ƒOƒ‰ƒtƒBƒeƒB‚ɑΉž
- A clif_item_repair_list()
- •ŠíC—ƒXƒLƒ‹‚ɑΉž‚µ‚悤‚Æ‚µ‚½‚¯‚ǃpƒPƒbƒg‚ª•ª‚©‚ç‚È‚¢‚Ì‚Å“ÚÁ’†
- C clif_produceeffect()
- map_addchariddb() ‚̈ø”‘‰Á‚ɑΉž
- C clif_guild_skillinfo()
- –¢ŽÀ‘•ƒMƒ‹ƒhƒXƒLƒ‹ ƒJƒŠƒXƒ}‚ð•\Ž¦‚µ‚È‚¢‚悤‚É‚µ‚½
- C clif_callpartner()
- ‚ ‚È‚½‚Ɉ§‚¢‚½‚¢ Žg—pŽž‚É‘ŠŽè‚Ì–¼‘O‚ð‹©‚Ô‚æ‚¤‚É‚µ‚½
- C clif_sitting()
- ˆø” fd ‚Í•s—v‚È‚Ì‚Åíœ
- C clif_GM_kick()
- ƒtƒ‰ƒO‚ð0‚É‚·‚é‚悤‚É‚µ‚½
- A clif_wisexin()
- Wis‹‘”Û‹–‰Â‚̉ž“š‚ð‘—M
- A clif_wisall()
- Wis‘S‹‘”Û‹–‰Â‚̉ž“š‚ð‘—M
- A clif_soundeffect()
- SE‚ð–‚炷ƒpƒPƒbƒg‚ð‘—M
- soundeffect–½—ß‚ÅŽg—p
- C clif_parse_LoadEndAck()
- Œ‹¥Œã‚̃EƒFƒfƒBƒ“ƒOƒhƒŒƒX‚âƒ^ƒLƒV[ƒh‚Ìó‘Ô‚ðƒƒOƒAƒEƒg‚µ‚Ä‚à1ŽžŠÔ‚ÍŒp‘±‚³‚ê‚é‚悤‚É‚µ‚½
- ÔƒGƒ‚ó‘Ԃ̓ƒOƒAƒEƒg‚µ‚Ä‚àƒƒOƒCƒ“‚µ‚½Žž‚©‚ç‚Ü‚½Œp‘±‚·‚é‚悤‚É‚µ‚½
- C clif_parse_QuitGame()
- C clif_parse_Restart()
- I—¹‚Å‚«‚È‚¢ðŒ‚ð pc_isquitable() ‚É‚Ü‚Æ‚ß‚½
- C clif_parse_GlobalMessage()
- C clif_parse_Wis()
- C clif_parse_PartyMessage()
- C clif_parse_GuildMessage()
- ÔƒGƒ‚ó‘Ô‚Å‚Í”­Œ¾‚Å‚«‚È‚¢‚悤‚É‚µ‚½
- C clif_parse_ActionRequest()
- ƒMƒ‹ƒh–¢‰Á“ü‚È‚Ç‚Ìꇂ̓K[ƒfƒBƒAƒ“‚âƒGƒ“ƒyƒŠƒEƒ€‚ð‰£‚ê‚È‚¢‚悤‚É‚µ‚½
- clif_sitting()‚̈ø”•ÏX‚ɑΉž
- C clif_parse_UseItem()
- ÔƒGƒ‚ó‘Ԃł̓AƒCƒeƒ€‚ðŽg‚¦‚È‚¢‚悤‚É‚µ‚½
- C clif_parse_EquipItem()
- ƒAƒCƒeƒ€‚ª”j‰ó‚³‚ê‚Ä‚¢‚鎞‚Í‘•”õ‚Å‚«‚È‚¢‚悤‚É‚µ‚½
- C clif_parse_TradeRequest()
- C clif_parse_TradeAck()
- notradeƒ}ƒbƒv‚Å‚ÍŽæˆø—v¿‚ð‘—‚ê‚È‚¢‚悤‚É‚µ‚½
- C clif_parse_UseSkillToId()
- C clif_parse_UseSkillToPos()
- C clif_parse_UseSkillMap()
- noskillƒ}ƒbƒv‚ł̓XƒLƒ‹‚ðŽg—p‚Å‚«‚È‚¢‚悤‚É‚µ‚½
- ƒ`ƒƒƒbƒg’†‚̓XƒLƒ‹‚ðŽg—p‚Å‚«‚È‚¢‚悤‚É‚µ‚½
- ÔƒGƒ‚’†‚̓XƒLƒ‹‚ðŽg—p‚Å‚«‚È‚¢‚悤‚É‚µ‚½
- ƒEƒFƒfƒBƒ“ƒOó‘Ԃł̓XƒLƒ‹‚ðŽg—p‚Å‚«‚È‚¢‚悤‚É‚µ‚½
- C clif_parse_MoveToKafra()
- itemdb_isdropable()==0 ‚Í‘qŒÉ‚É“ü‚ê‚ç‚ê‚È‚¢‚悤‚É‚µ‚½
- C clif_parse_GMReqNoChat()
- GM‰EƒNƒŠƒbƒN‚ÅÔƒGƒ‚‚ð•t—^E‰ðœ‚Å‚«‚é‚悤‚É‚µ‚½
- C clif_parse_GMReqNoChatCount()
- –{ŽI‚Å‚Ì•Ô“šƒpƒPƒbƒg‚ª‚æ‚­•ª‚©‚ç‚È‚¢‚̂ʼn¼‘Ήž
- –{“–‚̓AƒJƒEƒ“ƒg–¼‚ª•Ô‚é‚Ì‚©‚ÈH
- C clif_parse_sn_explosionspirits()
- ƒNƒ‰ƒCƒAƒ“ƒg‚©‚çƒpƒPƒbƒg‚ª—ˆ‚½Žž‚ɃRƒ“ƒ\[ƒ‹‚ɃƒO‚ð•\Ž¦‚·‚é‚悤‚É‚µ‚½
- BaseLv99ˆÈã‚ÌŽž‚É0‚ÅœŽZ‚·‚é‰Â”\«‚ª‚ ‚é‚Ì‚ð‰ñ”ð
- A pstrcmp()
- clif_parse_wisexin()‚Ìqsort()‚ÅŽg—p
- A clif_parse_wisexin()
- Wis‹‘”Û‹–‰Â‚ɑΉž
- A clif_parse_wisexlist()
- Wis‹‘”ÛƒŠƒXƒg•\Ž¦‚ɑΉž
- A clif_parse_wisall()
- Wis‘S‹‘”Û‹–‰Â‚ɑΉž
- A clif_parse_GMkillall()
- GMƒRƒ}ƒ“ƒh/killall(=@kickall)‚ɑΉž
- A clif_parse_GMsummon()
- GMƒRƒ}ƒ“ƒh/summon(=@recall)‚ɑΉž
- A clif_parse_GMshift()
- GMƒRƒ}ƒ“ƒh/shift(=@jumpto)‚ɑΉž
- A clif_parse_debug()
- packet_db.txt‚̃fƒoƒO—p‚ɒljÁ
- ƒpƒPƒbƒg“à—e‚ðƒ_ƒ“ƒv‚µ‚Ü‚·
- C clif_parse()
- clif_parse_func_table ‚ðíœ(packet_db[cmd].func‚É“ü‚é‚悤‚É‚È‚è‚Ü‚µ‚½)
- A packetdb_readdb()
- packet_db.txt‚ð“Ç‚Ýž‚Ý‚Ü‚·
- ƒtƒH[ƒ}ƒbƒg‚Í ƒpƒPƒbƒg”Ô†,ƒpƒPƒbƒg’·[,ƒRƒ}ƒ“ƒh,ƒRƒ}ƒ“ƒhˆø”‚̈ʒu(:‹æØ‚è‚Å•¡”Žw’è)]
- ƒRƒ}ƒ“ƒhˆø”‚̈ʒu‚ÍŠeƒRƒ}ƒ“ƒh‚ɑΉž‚·‚éŠÖ”“à‚Åݒ肳‚ê‚Ä‚¢‚é‚Ì‚Åclif.c‚ð“Ç‚Ü‚È‚¢‚Æ•ª‚©‚ç‚È‚¢“ï‰ð‚ȃtƒH[ƒ}ƒbƒg‚Å‚·
- •ÏX‚³‚ꂽƒpƒPƒbƒg‚Ípacket_db.txt‚Ì––”ö‚ɒljÁ‚µ‚Ü‚·
- ŒÃ‚¢ƒNƒ‰ƒCƒAƒ“ƒg‚ð—˜—p‚·‚éꇂɂ͕s—v‚È’è‹`‚ð––”ö‚©‚ç휂·‚ê‚΂悢‚悤‚É‚µ‚Ü‚·
- A do_final_clif()
- I—¹Žž‚ɃZƒbƒVƒ‡ƒ“‚ð휂·‚é‚悤‚É‚µ‚½
- C do_init_clif()
- packet_db‚ð“Ç‚Ýž‚ނ悤‚É‚µ‚½
- I—¹Žž‚ɃZƒbƒVƒ‡ƒ“‚ð휂ł«‚é‚悤‚É make_listen_port() ‚Ì–ß‚è’l‚ð map_fd ‚É“ü‚ê‚é‚悤‚É‚µ‚½
- C clif.h
- A MAX_PACKET_DB
- A struct packet_db
- A clif_changestatus()
- A clif_misceffect2()
- A clif_callpartner()
- A clif_sitting()
- A clif_soundeffect()
- A clif_item_repair_list()
- A do_final_clif()
- ’è‹`‚ð’ljÁ
- C clif_class_change
- clif_mob_class_change() ‚©‚ç•ÏX
- C guild.c
- C guild_read_castledb()
- castle_event ‚ð“Ç‚Ýž‚ނ悤‚É‚µ‚½
- C guild_skillup()
- ˆø”‚ð•ÏX
- flag=1 ‚ŃMƒ‹ƒhƒ|ƒCƒ“ƒg‚ðŽg—p‚µ‚È‚¢‚悤‚É‚µ‚½
- C guild_broken()
- ƒMƒ‹ƒh‰ðŽUŽž‚ÉŠ—LÔ‚ð”jŠü‚·‚邽‚ß‚Ì OnGuildBreak ƒCƒxƒ“ƒg‚ð’ljÁ
- A guild_db_final()
- A castle_db_final()
- A guild_expcache_db_final()
- A guild_infoevent_db_final()
- A do_final_guild()
- I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
- C guild.h
- C guild_skillup()
- ’è‹`‚ð•ÏX
- A do_final_guild()
- ’è‹`‚ð’ljÁ
- C intif.c
- atcommand.h ‚ðinclude
- packet_len_table[] Šg’£
- C intif_guild_skillup()
- ˆø” flag ’ljÁ
- A intif_charposreq()
- ƒLƒƒƒ‰‚Ìꊗv‹ƒpƒPƒbƒg‚ð‘—M
- flag=1 @jumpto
- flag=0 @where
- A intif_jumpto()
- ‘¼map-server‚̃Lƒƒƒ‰‚É @jumpto o—ˆ‚é‚悤‚É‚µ‚½
- A intif_where()
- ‘¼map-server‚̃Lƒƒƒ‰‚É @where o—ˆ‚é‚悤‚É‚µ‚½
- A intif_charmovereq()
- ƒLƒƒƒ‰‚ðŒÄ‚ÑŠñ‚¹‚é
- flag=1 @recall
- flag=0 ‚ ‚È‚½‚Ɉ§‚¢‚½‚¢
- A intif_displaymessage()
- ‘¼map-server‚̃Lƒƒƒ‰‚ɃƒbƒZ[ƒW‚ð‘—‚ê‚é‚悤‚É‚µ‚½
- (Wis‚Å‚Í‚È‚­‚Ä‘—‚è‚Á‚Ï‚È‚µB@recall ¬Œ÷Žž—p)
- C intif_parse_WisMessage()
- Wis‹‘”Û‚Ì”»’è‚ð‚·‚é‚悤‚É‚µ‚½
- A intif_parse_CharPosReq()
- ƒLƒƒƒ‰‚̋ꊂðInter‚Ö•Ô“š
- A intif_parse_CharPos()
- ƒLƒƒƒ‰‚̋ꊂªInter‚©‚ç‘—‚ç‚ê‚Ä‚«‚½‚Ì‚Å
- flag=1 ƒLƒƒƒ‰‚Ìꊂֈړ®(@jumpto)
- flag=0 ƒLƒƒƒ‰‚Ìꊂð•\Ž¦(@where)
- A intif_parse_CharMoveReq()
- ƒLƒƒƒ‰‚ª‚¢‚½‚çŽw’èˆÊ’u‚Ɉړ®‚³‚¹‚é
- flag=1 @recall ‚È‚Ì‚ÅGMƒŒƒxƒ‹‚ð”äŠrAƒƒbƒZ[ƒW‚ð•\Ž¦
- A intif_parse_DisplayMessage()
- Žw’èƒLƒƒƒ‰‚ɃƒbƒZ[ƒW‚ð‘—M
- C intif_parse()
- VƒpƒPƒbƒg‚ð’ljÁ
- C intif.h
- C intif_guild_skillup()
- ’è‹`•ÏX
- A intif_jumpto()
- A intif_where()
- A intif_charmovereq()
- A intif_displaymessage()
- ’è‹`‚̒ljÁ
- C itemdb.c
- A itemdb_isdropable()
- ƒAƒCƒeƒ€‚ªŽÌ‚Ä‚ç‚ê‚é‚©‚Ç‚¤‚©‚Ì”»’è‚ð‚·‚é
- A itemdb_read_cardillustnametable()
- grfƒtƒ@ƒCƒ‹‚©‚ç num2cardillustnametable.txt ‚ð“Ç‚Ýž‚Þ
- cutincard–½—ß‚ÅŽg—p
- C do_init_itemdb()
- itemdb_read_cardillustnametable() ‚ð’ljÁ
- C itemdb.h
- C struct item_data
- char cardillustname[64] ’ljÁ
- A itemdb_isdropable()
- ’è‹`‚̒ljÁ
- C Makefile
- A malloc.o malloc.h ‚ð’ljÁ
- C map.c
- C struct charid2nick
- @who‚Å‘¼map-server‚̃Lƒƒƒ‰‚à•\Ž¦‚Å‚«‚é‚悤‚É account_id ip port ‚ð’ljÁ
- C map_freeblock()
- C map_freeblock_unlock()
- “ñdfree()‘Îô‚ÅNULL‚ð‘ã“ü‚·‚é‚悤‚É‚µ‚½
- C map_delblock()
- Œ©‚â‚·‚¢‚悤‚ÉŒJ‚è•Ô‚µŽg—p‚³‚ê‚é•Ï”‚ð‚Ü‚Æ‚ß‚½
- C map_addchariddb()
- charid2nick ‚ÌŠg’£‚É‚ ‚킹‚Ĉø”‚ð‘‚₵‚½
- A map_delchariddb()
- charid_db ‚©‚çƒLƒƒƒ‰‚ðíœ(ŽÀÛ‚É‚Íip port‚ð0‚É)‚·‚é
- C map_quit()
- Œ‹¥ó‘Ô’†‚̓ƒOƒAƒEƒg‚µ‚Ä‚à1ŽžŠÔ‚Íó‘Ô‚ª‘±‚­‚悤‚ÉPCƒOƒ[ƒoƒ‹•Ï” PC_WEDDING_TIME ‚ÉŠJŽnŽžŠÔ‚ð‹L˜^‚·‚é‚悤‚É‚µ‚½
- C map_id2bl()
- Œ©‚â‚·‚¢‚悤‚É‘‚«Š·‚¦
- A map_eraseipport()
- ‘¼map-serverŠÇ—‚̃}ƒbƒv‚ð map_db ‚©‚ç휂·‚é
- A map_who_sub()
- A map_who()
- ‘¼map-server‚É‚¢‚éƒLƒƒƒ‰‚à @who ‚Å•\Ž¦‚³‚ê‚é‚悤‚É‚µ‚½
- •\Ž¦ãƒLƒƒƒ‰‚ªŽc‚邱‚Æ‚ª‚ ‚é‚Ì‚Í’²¸’†
- A id_db_final()
- A map_db_final()
- A nick_db_final()
- A charid_db_final()
- C do_final()
- I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É•ÏX
- C map.h
- A MAX_WIS_REFUSAL
- Wis‹‘”ÛƒŠƒXƒg‚Ì•Û‘¶Å‘å’l
- C struct map_session_data
- C special_state
- A unbreakable_weapon
- •Ší‚ªâ‘΂ɉó‚ê‚È‚¢
- A unbreakable_armor
- ŠZ‚ªâ‘΂ɉó‚ê‚È‚¢
- A opt3
- ‰æ–ÊŠO‚©‚ç“ü‚Á‚Ä‚«‚½ƒLƒƒƒ‰‚Ìó‘Ô
- A areanpc_id
- OnTouchƒCƒxƒ“ƒg‚ðŽÀs‚µ‚½NPC‚ÌID
- A wis_refusal[][]
- Wis‹‘”ÛƒŠƒXƒg
- A wis_all
- Wis‘S‹‘”Ûƒtƒ‰ƒO
- A break_weapon_rate
- •Ší”j‰ó—¦
- A break_armor_rate
- ŠZ”j‰ó—¦
- A add_steal_rate
- ’ljÁƒXƒeƒB[ƒ‹—¦
- C struct npc_data
- A opt1,opt2,opt3,option
- PC‚Æ“¯‚¶
- C u.scr
- A src_id
- I—¹Žž‚̃ƒ‚ƒŠŠJ•ú—p
- C struct mob_data
- A opt3
- PC‚Æ“¯‚¶
- A guild_id
- ƒK[ƒfƒBƒAƒ“‚È‚Ç‚ÅŽg—p
- D exclusion_*
- ŠÖ˜AŠÖ”‚ðÁ‚µ‚½‚Ì‚Å휂µ‚½
- C struct map_data
- C flag
- A notrade
- Žæˆø‹ÖŽ~ƒ}ƒbƒvƒtƒ‰ƒO
- A noskill
- ƒXƒLƒ‹Žg—p‹ÖŽ~ƒ}ƒbƒvƒtƒ‰ƒO
- ’蔂̒ljÁ
- SP_PARTNER SP_CART
- SP_BREAK_WEAPON_RATE SP_BREAK_ARMOR_RATE SP_ADD_STEAL_RATE
- SP_UNBREAKABLE_WEAPON SP_UNBREAKABLE_ARMOR
- D talkie_mes[]
- ’è‹`íœ
- C map_addchariddb()
- ’è‹`•ÏX
- A map_delchariddb()
- A map_eraseipport()
- A map_who()
- ’è‹`’ljÁ
- C mob.c
- D mob_exclusion_add()
- D mob_exclusion_check()
- ˆÓ–¡‚ª‚ ‚éŽg—p‚ð‚³‚ê‚Ä‚¢‚È‚¢‚Ì‚Æbattle_check_target()‚Å‘ã—p‚Å‚«‚é‚Ì‚Å휂µ‚½
- C mob_stop_walking()
- type&4‚Å–Ú“I‚Ìꊂ܂ŋ——£‚ª‚ ‚ê‚Î1•ài‚ñ‚ÅŽ~‚Ü‚é‚悤‚É‚µ‚½
- C mob_attack()
- Mob‚ªMob‚ðUŒ‚‚Å‚«‚é‚悤‚É‚µ‚½
- C mob_target()
- C mob_ai_sub_hard_slavemob()
- mob_exclusion_check()‚ðíœ
- C mob_ai_sub_hard_activesearch()
- C mob_ai_sub_hard()
- special_mob_ai‚ÈꇂÍMob‚àõ“G‚·‚é‚悤‚É‚µ‚½
- ƒ‹[ƒgƒ‚ƒ“ƒXƒ^[‚ª–Ú•W‚̃AƒCƒeƒ€‚ðŒ©Ž¸‚Á‚½Žž‚Í–Ú“I‚ÌêŠ‚Ü‚Å•à‚©‚È‚¢‚悤‚É‚µ‚½
- C mob_damage()
- ƒXƒtƒBƒAƒ}ƒCƒ“‚ª‰£‚ç‚ꂽŽž‚ÉŽ©”š‚µ‚È‚©‚Á‚½‚Ì‚ðC³‚µ‚½
- ƒXƒtƒBƒAƒ}ƒCƒ“‚ª‰£‚ç‚ê‚ÄŽ©”š‚·‚鎞‚Ɉړ®‚·‚é‚悤‚É‚µ‚½
- src‚ªMob‚ÌŽž‚Ísrc‚̃^[ƒQƒbƒg‚ðŠO‚·‚悤‚É‚µ‚½
- C mob_skillid2skillidx()
- ƒCƒ“ƒfƒbƒNƒX‚ª0‚©‚çŽn‚Ü‚é‚̂ɃGƒ‰[‚à0‚ð•Ô‚·‚µ‚Ä‚¢‚½‚Ì‚ðC³‚µ‚½
- ƒXƒtƒBƒAƒ}ƒCƒ“‚ª‰£‚ç‚ê‚Ä‚àŽ©”š‚µ‚È‚¢Œ´ˆö‚Í‚±‚ê
- C mobskill_use()
- Ž©”šó‘Ԃł̓XƒLƒ‹‚ðŽg—p‚Å‚«‚È‚¢‚悤‚É‚µ‚½
- C mob_spawn()
- ƒK[ƒfƒBƒAƒ“‚ƃGƒ“ƒyƒŠƒEƒ€‚ªÔ‚Å”­¶‚µ‚½ê‡‚Í guild_id ‚ðÝ’è
- opt3 ‚ð 0 ‚ʼnŠú‰»
- C mob_can_reach()
- GvGˆÈŠO‚ł̓K[ƒfƒBƒAƒ“‚͉½‚à‚µ‚È‚¢‚悤‚É‚µ‚½
- C mob_catch_delete()
- Mob‚ªÁ‚¦‚é‚Æ‚«‚̃GƒtƒFƒNƒg‚ð type ‚ÅŽw’è‚Å‚«‚é‚悤‚É‚µ‚½
- C mob_timer_delete()
- ƒXƒtƒBƒAƒ}ƒCƒ“‚ƃoƒCƒIƒvƒ‰ƒ“ƒg‚ªÁ‚¦‚é‚Æ‚«‚̓eƒŒƒ|ƒGƒtƒFƒNƒg‚ÅÁ‚¦‚é‚悤‚É‚µ‚½
- C mob_deleteslave_sub()
- nullƒ`ƒFƒbƒN‘O‚É‘ã“ü‚µ‚Ä‚¢‚é•”•ª‚ðC³
- C mob_class_change()
- clif_class_change() ‚Ì•ÏX‚ɑΉž
- C mob.h
- C mob_catch_delete()
- ’è‹`•ÏX
- D mob_exclusion_add()
- D mob_exclusion_check()
- ’è‹`íœ
- C npc.c
- C struct npc_src_list
- A prev
- I—¹Žž‚̃ƒ‚ƒŠŠJ•ú—p‚ɒljÁ
- C npc_checknear()
- ƒCƒxƒ“ƒgPC‚ÌꇂÉí‚ÉOK‚ð•Ô‚µ‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ðC³
- A npc_enable_sub()
- npc_enable() ‚©‚çŒÄ‚΂ê‚ÄŽüˆÍ‚ÌPC‚ÉOnTouchƒCƒxƒ“ƒg‚ðŽÀs‚·‚é
- C npc_enable()
- flag ‚É‚æ‚é‹““®‚ð’ljÁ
- flag=2 NPC‚ÌHideó‘Ô‚ð‰ðœ‚·‚é
- flag=4 NPC‚ðHideó‘Ô‚É‚·‚é
- Hide‚µ‚Ä‚¢‚éNPC‚Í–³Œø‚É‚È‚è‚Ü‚·
- —LŒø‚É‚µ‚½Žž‚É npc_enable_sub() ‚ðŒÄ‚Ԃ悤‚É‚µ‚½
- C npc_event()
- ƒGƒ‰[Žž‚Í1‚ð•Ô‚·‚悤‚É•ÏX
- OnTouchƒCƒxƒ“ƒg‚©‚çŒÄ‚΂ꂽ‚Æ‚«‚̓Cƒxƒ“ƒg‚ªŒ©‚‚©‚ç‚È‚¢ƒGƒ‰[‚ð•Ô‚³‚È‚¢‚悤‚É‚µ‚½
- C npc_touch_areanpc()
- PC‚ªƒGƒŠƒA“à‚ð’Ê‚Á‚½Žž‚ɉ½“x‚àŽÀs‚³‚ê‚é‚Ì‚ðC³
- NPC‚ÉOnTouchƒCƒxƒ“ƒg‚ª‚ ‚Á‚½ê‡‚É‚ÍŽÀs‚·‚é‚悤‚É‚µ‚½
- ŒÝŠ·«‚ð•Û‚‚½‚ß‚ÉOnTouchƒCƒxƒ“ƒg‚ª–³‚¢ê‡‚Í¡‚Ü‚Å‚Æ“¯‚¶‚悤‚É“®‚«‚Ü‚·
- C npc_parse_warp()
- option,opt1,opt2,opt3 ‚ð 0 ‚ʼnŠú‰»
- C npc_parse_warp()
- C npc_parse_shop()
- ID‚ðnpc_get_new_npc_id()‚Ŏ擾‚·‚é‚悤‚É‚µ‚½
- option,opt1,opt2,opt3 ‚ð 0 ‚ʼnŠú‰»
- C npc_convertlabel_db()
- ƒƒ‚ƒŠŠm•ÛŒã‚Énull‚©‚Ç‚¤‚©Šm”F‚µ‚Ä‚¢‚È‚¢‚Ì‚ðC³
- C npc_parse_script()
- bad duplicate name!ƒGƒ‰[•\Ž¦‚ª‰üs‚³‚ê‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ðC³
- I—¹Žžƒƒ‚ƒŠŠJ•ú—p‚Éduplicate‚Å src_id ‚ð‘}“ü
- ID‚ðnpc_get_new_npc_id()‚Ŏ擾‚·‚é‚悤‚É‚µ‚½
- option,opt1,opt2,opt3 ‚ð 0 ‚ʼnŠú‰»
- C npc_parse_mob()
- memwatch‘Îô‚Ńƒ‚ƒŠ‚ðˆêŠ‡Šm•Û‚µ‚È‚¢‚悤‚É‚µ‚½
- ƒ‚ƒ“ƒXƒ^[–¼‚É --ja-- --en-- ‚ðŽw’è‚·‚é‚Æmob_db‚Ì–¼‘O‚ðŽg‚¤‚悤‚É‚µ‚½
- ID‚ðnpc_get_new_npc_id()‚Ŏ擾‚·‚é‚悤‚É‚µ‚½
- C npc_parse_mapflag()
- notrade noskill ‚ð“Ç‚Ýž‚ނ悤‚É‚µ‚½
- A ev_db_final()
- A npcname_db_final()
- A do_final_npc()
- I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
- C do_init_npc()
- ƒƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
- C npc.h
- A do_final_npc()
- ’è‹`‚̒ljÁ
- C party.c
- A party_db_final()
- A do_final_party()
- I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
- C party.h
- A do_final_party()
- ’è‹`‚̒ljÁ
- C pc.c
- A pc_numisGM()
- account_id‚ÅGM‚©‚Ç‚¤‚©”»’f‚·‚é
- A pc_isquitable()
- PC‚ªI—¹‚Å‚«‚éó‘Ô‚É‚ ‚é‚©‚Ç‚¤‚©”»’f‚·‚é
- 1‚ð•Ô‚·‚Æ‚«‚ÍI—¹‚Å‚«‚È‚¢
- C pc_counttargeted_sub()
- Mobó‘Ô‚É‚æ‚Á‚Ä’l‚𳂵‚­•Ô‚³‚È‚¢‚悤‚È‹C‚ª‚·‚é‚Ì‚ÅðŒ‚ð‰¼•ÏX
- C pc_makesavestatus()
- ƒ}ƒi[ƒ|ƒCƒ“ƒg‚ª³”‚Ìê‡‚Í 0 ‚É‚·‚é
- C pc_authok()
- wis_all ‚ð 0 ‚ʼnŠú‰»
- map_addchariddb() ‚Ì•ÏX‚ɑΉž‚Æí‚ÉŽÀs‚·‚é‚悤‚É‚µ‚½
- C pc_calcstatus()
- break_weapon_rate break_armor_rate add_steal_rate ‚ð 0 ‚ʼnŠú‰»
- Œ‹¥ó‘Ô‚Å‚Í•à‚­‘¬“x‚ª”¼•ª‚É‚È‚é‚悤‚É‚µ‚½
- C pc_bonus()
- SP_UNBREAKABLE_WEAPON SP_UNBREAKABLE_ARMOR SP_BREAK_WEAPON_RATE SP_BREAK_ARMOR_RATE SP_ADD_STEAL_RATE
- ˆ—‚ð’ljÁ
- C pc_dropitem()
- ƒAƒCƒeƒ€‚ðŽÌ‚Ä‚ç‚ê‚é‚©‚Ç‚¤‚©”»’è‚·‚é‚悤‚É‚µ‚½
- C pc_putitemtocart()
- ƒAƒCƒeƒ€‚ðƒJ[ƒg‚Ɉړ®‚Å‚«‚é‚©”»’è‚·‚é‚悤‚É‚µ‚½
- C pc_steal_item()
- ƒXƒeƒB[ƒ‹—¦‚É add_steal_rate ‚ð‰ÁŽZ‚·‚é‚悤‚É‚µ‚½
- C pc_walk()
- C pc_movepos()
- ”͈ÍNPC‚ª‚¢‚È‚¢‚Æ‚«‚É‚Í areanpc_id=0 ‚É‚µ‚½
- C pc_checkbaselevelup()
- ƒXƒpƒmƒr‚ªƒŒƒxƒ‹ƒAƒbƒv‚µ‚½Žž‚É‚©‚©‚éƒXƒLƒ‹‚̃Œƒxƒ‹‚ð–{ŽI‚É‚ ‚킹‚½
- C pc_skillup()
- guild_skillup() ‚Ì•ÏX‚ɑΉž
- C pc_damage()
- ƒXƒpƒmƒr‚ªExp99%‚ÅHP‚ª0‚É‚È‚é‚ÆHP‚ª‰ñ•œ‚µ‚Ä‹à„ó‘Ô‚É‚È‚é‚悤‚É‚µ‚½
- C pc_readparam()
- nullƒ`ƒFƒbƒN‘O‚Ésd‚ðŽg‚Á‚Ä‚¢‚½‚Ì‚ðC³
- A SP_PARTNER
- Œ‹¥‘ŠŽè‚Ìchar_id
- A SP_CART
- ƒJ[ƒg‚ðˆø‚¢‚Ä‚¢‚éꇂÍ0ˆÈオ•Ô‚é
- C pc_jobchange()
- ƒ}ƒi[ƒ|ƒCƒ“ƒg‚ª•‰”‚ÌꇂÍÔƒGƒ‚•\Ž¦‚·‚é‚悤‚É‚µ‚½
- A pc_break_weapon()
- •Ší”j‰ó‚ð‚·‚é
- A pc_break_armor()
- ŠZ”j‰ó‚ð‚·‚é
- C pc_natural_heal_sp()
- ƒXƒpƒmƒr‚Í”š—ôó‘Ô‚Å‚àSP‚ªŽ©‘R‰ñ•œ‚·‚é‚悤‚É‚µ‚½
- A gm_account_db_final()
- A do_final_pc()
- I—¹Žž‚Ƀƒ‚ƒŠŠJ•ú‚·‚é‚悤‚É‚µ‚½
- C pc.h
- A pc_numisGM()
- A pc_isquitable()
- A pc_break_weapon()
- A pc_break_armor()
- A do_final_pc()
- ’è‹`’ljÁ
- C pet.c
- C pet_data_init()
- C pet_lootitem_drop()
- ƒƒ‚ƒŠŠm•Û‚Å‚«‚½‚©‚Ç‚¤‚©Šm”F‚µ‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ÅC³
- C pet_catch_process2()
- mob_catch_delete() ‚Ì•ÏX‚ɑΉž
- C script.c
- ’ljÁ‚µ‚½ŠÖ”‚̃vƒƒgƒ^ƒCƒv‚ð擪‚ɒljÁ
- buildin_func[]‚ɒljÁ‚µ‚½–½—ß‚âŠÖ”‚ð’ljÁ
- ‰‰ŽZŽq‚É C_R_SHIFT C_L_SHIFT ‚ð’ljÁ
- C parse_subexpr()
- ‰‰ŽZŽq >> << ’ljÁ
- C get_val()
- PCŽå‘Ì‚Ì•Ï”‚ÅPC‚ªƒAƒ^ƒbƒ`‚³‚ê‚Ä‚¢‚È‚©‚Á‚½‚çƒGƒ‰[‚ðo‚·‚悤‚É‚µ‚½
- PCŽå‘Ì‚Ì•Ï”‚Åsd=NULL‚¾‚Á‚½ê‡‚É‚Ípc_read*‚Ŏ擾‚És‚©‚È‚¢‚悤‚É‚µ‚½
- A buildin_close2()
- ƒXƒNƒŠƒvƒg‚ð’†’f‚µ‚ÄCloseƒ{ƒ^ƒ“‚ð•\Ž¦‚µ‚Ü‚·
- C buildin_areawarp_sub()
- Random‚¾‚¯‚Å‚È‚­SavePoint‚É‚à”ò‚΂¹‚é‚悤‚É‚µ‚½
- A buildin_cutincard()
- ƒJ[ƒh‚̃AƒCƒeƒ€ID‚ðŽw’è‚·‚邱‚ƂŃJ[ƒh‰æ‘œ‚ð•\Ž¦‚µ‚Ü‚·
- C buildin_getitem()
- ˆø”‚ð•ÏX‚µ‚ĊӒ肵‚½ó‘Ô‚Å“n‚·‚©‚Ç‚¤‚©‚ðŽw’è‚Å‚«‚é‚悤‚É‚µ‚½
- account_id‚ðŽw’è‚·‚邱‚Æ‚ÅA‚»‚ÌPC‚ɃAƒCƒeƒ€‚ð“n‚¹‚é‚悤‚É‚µ‚½(Œ‹¥—pŠg’£)
- C buildin_getitem2()
- account_id‚ðŽw’è‚·‚邱‚Æ‚ÅA‚»‚ÌPC‚ɃAƒCƒeƒ€‚ð“n‚¹‚é‚悤‚É‚µ‚½(Œ‹¥—pŠg’£)
- C buildin_readparam()
- ƒLƒƒƒ‰–¼‚ðŽw’è‚·‚邱‚Æ‚ÅA‚»‚ÌPC‚̃pƒ‰ƒ[ƒ^‚ð“Ç‚ÝŽæ‚ê‚é‚悤‚É‚µ‚½
- C buildin_getcharid()
- ƒLƒƒƒ‰–¼‚ðŽw’è‚·‚邱‚Æ‚ÅA‚»‚ÌPC‚ÌŠÖŒWID‚ðŽæ“¾‚Å‚«‚é‚悤‚É‚µ‚½
- A buildin_getpartymember()
- Žw’èID‚̃p[ƒeƒBl”‚̎擾‚ƃp[ƒeƒB[ƒƒ“ƒo[‚ÌID‚ð”z—ñ‚Ŏ擾‚Å‚«‚Ü‚·
- A buildin_guildskill()
- ƒMƒ‹ƒhƒXƒLƒ‹‚ðŠo‚¦‚邱‚Æ‚ª‚Å‚«‚Ü‚·
- C buildin_getgdskilllv()
- ƒMƒ‹ƒhƒXƒLƒ‹ID‚ðGD_APPROVAL‚̂悤‚ȃXƒLƒ‹–¼‚ÅŽw’è‚·‚é‚悤‚É‚µ‚½
- A buildin_hideoffnpc()
- Hideó‘Ô‚ÌNPC‚ð•\Ž¦‚·‚é
- A buildin_hideonnpc()
- NPC‚ðHideó‘Ô‚É‚·‚é
- C buildin_sc_start()
- IDŽw’肵‚½ƒLƒƒƒ‰‚ðó‘ÔˆÙí‚É‚Å‚«‚é‚悤‚É‚µ‚½
- A buildin_sc_start2()
- Šm—¦Žw’è‚ŃLƒƒƒ‰‚ðó‘ÔˆÙí‚É‚Å‚«‚Ü‚·(ƒAƒCƒXA‚¨‚à‚¿“™‚ÅŽg—p)
- A buildin_getscrate()
- ó‘ÔˆÙí‘Ï«‚ðŒvŽZ‚µ‚½Šm—¦‚ð•Ô‚·
- C buildin_changebase()
- ID‚ÅŽw’肵‚½ƒLƒƒƒ‰‚ÌŒ©‚½–Ú‚ð•ÏX‚·‚邱‚Æ‚ª‚Å‚«‚é‚悤‚É‚µ‚½
- C buildin_waitingroom()
- limit=0‚ÌŽž‚Í(1/10)‚ð•\Ž¦‚µ‚È‚¢‚悤‚É‚µ‚½
- C buildin_setmapflag()
- MF_NOTRADE MF_NOSKILL ‚ð’ljÁ
- C buildin_flagemblem()
- NPC‚ª“Á’è‚Å‚«‚È‚©‚Á‚½‚Æ‚«‚Émap-server‚ª—Ž‚¿‚é–â‘è‚ðC³
- A buildin_getinventorylist()
- ”z—ñ‚ÅŠŽ•i‚ð•Ô‚µ‚Ü‚·
- A buildin_getskilllist()
- ”z—ñ‚ÅŠ—LƒXƒLƒ‹‚ð•Ô‚µ‚Ü‚·
- A buildin_clearitem()
- ŠŽƒAƒCƒeƒ€‚ð휂µ‚Ü‚·
- A buildin_getrepairableitemcount()
- ‰ó‚ê‚Ä‚¢‚éƒAƒCƒeƒ€‚𔂦‚Ü‚·
- A buildin_repairitem()
- ‰ó‚ê‚Ä‚¢‚éƒAƒCƒeƒ€‚ð‚·‚×‚ÄC—‚µ‚Ü‚·
- A buildin_classchange()
- NPC‚ðƒNƒ‰ƒXƒ`ƒFƒ“ƒW‚µ‚Ü‚·
- A buildin_misceffect()
- ƒGƒtƒFƒNƒg‚ð•\Ž¦‚µ‚Ü‚·
- A buildin_soundeffect()
- Žw’肵‚½SE‚ð–‚炵‚Ü‚·
- C op_2num()
- C run_script_main()
- ƒVƒtƒg‰‰ŽZŽq‚ð’ljÁ
- A mapreg_db_final()
- A mapregstr_db_final()
- A scriptlabel_db_final()
- A userfunc_db_final()
- C do_final_script()
- I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
- C skill.c
- <timer.h> intif.h ‚ðinclude
- ƒRƒƒ“ƒg‚̃XƒLƒ‹–¼‚ðjROŽd—l‚É‘‚«Š·‚¦
- C SkillStatusChangeTable[]
- ƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[ ƒOƒ‰ƒtƒBƒeƒB Ž©”š Ž©”š2 ‚ð’ljÁ
- C skill_additional_effect()
- ƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[’ljÁ
- ƒAƒ“ƒNƒ‹ƒXƒlƒA‚ðíœ
- C skill_attack()
- ƒ`ƒƒƒbƒg’†‚ɃXƒLƒ‹‚ª‰e‹¿‚µ‚È‚¢‚悤‚É‚µ‚½(ƒ`ƒƒƒbƒgƒLƒƒƒ“ƒZƒ‹)
- ƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚ÍSkillLv=-1‚Åclif_skill_damage()‚·‚é‚悤‚É‚µ‚½
- Ž©”š‚̓_ƒ[ƒW•\Ž¦‚µ‚È‚¢‚悤‚É‚µ‚½
- C skill_castend_damage_id()
- ƒAƒVƒbƒhƒeƒ‰[‚Å•Ší”j‰ó‚ð‚·‚é‚悤‚É‚µ‚½
- ƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚ª3*3‚͈̔ÍUŒ‚‚ð‚·‚é‚悤‚É‚µ‚½
- Ž©”š‚̈—‚ð•ÏX‚µ‚½
- C skill_castend_nodamage_id()
- sd‚Ædstsd‚ÅPC‚©‚Ç‚¤‚©‚ð”»’è‚·‚é‚悤‚É‚µ‚½
- ƒXƒpƒmƒr‚̉łªƒq[ƒ‹‚ðŽg‚¤‚Ɖñ•œ—Ê‚ª2”{‚É‚È‚é‚悤‚É‚µ‚½
- clif_sitting()‚Ì•ÏX‚ɑΉž
- •ŠíC—‚̓pƒPƒbƒg‚ª•ª‚©‚ç‚È‚¢‚̂ŃRƒƒ“ƒgƒAƒEƒg
- ƒXƒgƒŠƒbƒv`AƒPƒ~ƒJƒ‹`‚ðƒXƒLƒ‹ƒ†ƒjƒbƒg‚ÉŽg—p‚µ‚½ê‡Amap-server‚ª—Ž‚¿‚é–â‘è‚ðC³
- ŒN‚¾‚¯‚ÍŒì‚é‚æA‚ ‚È‚½‚ׂ̈ɋ]µ‚É‚È‚è‚Ü‚·‚ÌŒvŽZ‚ðMAX_HP‚Ü‚½‚ÍMAX_SP‚©‚ç‚·‚é‚悤‚É‚µ‚½
- ‚ ‚È‚½‚Ɉ§‚¢‚½‚¢ ‚ð‘ŠŽè‚Ì–¼‘O‚ð‹©‚ÔA•¡”Ý’u‚Å‚«‚È‚¢“™A–{ŽI•—‚É‚µ‚½
- ƒAƒ“ƒNƒ‹ƒXƒlƒA‚ÅPC‚ªˆø‚Á‚©‚©‚Á‚Ä‚¢‚鎞‚ɃŠƒ€[ƒuƒgƒ‰ƒbƒv‚µ‚Ä‚àPC‚ª“®‚¯‚é‚悤‚É‚È‚ç‚È‚©‚Á‚½‚Ì‚ðC³
- ƒAƒ“ƒR[ƒ‹‚ð‹©‚Ô‚æ‚¤‚É‚µ‚½
- ƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚ðŽÀ‘•‚µ‚½
- Ž©”š‚ÅŽ©”šó‘Ô‚ðŠJŽn‚·‚é‚悤‚É‚µ‚½
- C skill_castend_pos2()
- ƒoƒCƒIƒvƒ‰ƒ“ƒgAƒXƒtƒBƒAƒ}ƒCƒ“
- ƒpƒPƒbƒg‡”Ô‚ð•ÏX
- Žw’肵‚½êŠ‚ÉÝ’u‚·‚é‚悤‚É‚µ‚½
- Œø‰ÊŽžŠÔ‚ðskill_cast_db.txt‚ÅŽw’è‚·‚é‚悤‚É‚µ‚½
- mob_exclusion_add()‚ðíœ
- ƒOƒ‰ƒtƒBƒeƒB‚ðŽÀ‘•A1ŒÂ‚µ‚©’u‚¯‚Ü‚¹‚ñ
- C skill_castend_map()
- ƒ[ƒvƒ|[ƒ^ƒ‹‚ÍŽÀÛ‚ÌÝ’uŽž‚Ƀuƒ‹[ƒWƒFƒ€ƒXƒg[ƒ“‚ðÁ”ï‚·‚é‚悤‚É‚µ‚½
- C skill_unitsetting()
- ƒOƒ‰ƒtƒBƒeƒB‚̃XƒLƒ‹ƒ†ƒjƒbƒg‚ð1ŒÂ‚ÉC³
- ƒg[ƒL[ƒ{ƒbƒNƒXAƒOƒ‰ƒtƒBƒeƒB‚Ì•¶Žš—ñ‚Í sd->message ‚ÉŠi”[‚·‚é‚悤‚É‚µ‚½
- C skill_unit_onplace()
- ƒ`ƒƒƒbƒgŽž‚̓XƒLƒ‹ƒ†ƒjƒbƒg‚ª“®ì‚µ‚È‚¢‚悤‚É‚µ‚½(ƒ`ƒƒƒbƒgƒLƒƒƒ“ƒZƒ‹)
- ƒAƒ“ƒNƒ‹ƒXƒlƒA‚É‚©‚©‚鈗‚ðskill_additional_effect()‚©‚çˆÚ“®
- ƒ[ƒvƒ|[ƒ^ƒ‹‚ÉpŽÒ‚ªæ‚Á‚½‚çÁ‚¦‚é‚悤‚É‚µ‚½
- ƒfƒ‚ƒ“ƒXƒgƒŒ[ƒVƒ‡ƒ“‚É‚æ‚é•Ší”j‰ó‚ð‚·‚é‚悤‚É‚µ‚½
- ƒAƒ“ƒNƒ‹ƒXƒlƒAAƒXƒpƒCƒ_[ƒEƒFƒbƒu‚Ńƒ‚ƒŠƒAƒNƒZƒXˆá”½‚ª‹N‚«‚é‰Â”\«‚ª‚ ‚Á‚½‚Ì‚ðC³
- C skill_unit_onout()
- ƒAƒ“ƒNƒ‹ƒXƒlƒA‚Åu}v‚ª‘«‚è‚È‚©‚Á‚½‚½‚ß‚É‹ß‚­‚ð’Ê‚è‚©‚©‚Á‚½‚¾‚¯‚Å1•bŒãã©‚É–ß‚Á‚Ä‚µ‚Ü‚Á‚½‚Ì‚ðC³
- C skill_unit_onlimit()
- ƒ[ƒvƒ|[ƒ^ƒ‹”­“®‘O‚̈—‚ðíœ
- ‚ ‚È‚½‚Ɉ§‚¢‚½‚¢‚ð‘¼map-server‚É‚¢‚Ä‚àŒÄ‚ׂé‚悤‚É‚µ‚½
- A skill_check_condition_mob_master_sub()
- ƒ}ƒbƒv“à‚Å“¯‚¶PC‚©‚ço‚½ƒoƒCƒIƒvƒ‰ƒ“ƒg‚âƒXƒtƒBƒAƒ}ƒCƒ“‚Ì”‚𔂦‚é
- C skill_check_condition()
- hp_rate‚Æsp_rate‚É•‰”‚ðŽw’è‚·‚é‚ÆÁ”ïŒvŽZ‚ðMax’l‚©‚ç‚·‚é‚悤‚É‚µ‚½
- ‚ ‚È‚½‚Ɉ§‚¢‚½‚¢‚ðŒ‹¥‚µ‚Ä‚¢‚È‚¢ó‘Ô‚ÅŽg‚Á‚½‚çŽg—pŽ¸”s‚ð•\Ž¦‚·‚é‚悤‚É‚µ‚½
- ƒoƒCƒIƒvƒ‰ƒ“ƒg‚ƃXƒtƒBƒAƒ}ƒCƒ“‚ÌÝ’u”‚ðskill_cast_db.txt‚ÅÝ’è‚Å‚«‚é‚悤‚É‚µ‚½
- ƒtƒ@ƒCƒA[ƒEƒH[ƒ‹‚Ì”§ŒÀ‚ð skill_use_pos() ‚©‚çˆÚ“®
- C skill_use_id()
- ƒoƒWƒŠƒJ‚ðGvG‚Å‚ÍŽg—p‚Å‚«‚È‚¢‚悤‚É‚µ‚½
- ƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚Í‘ÎÛ‚ª“Åó‘Ô‚Å‚È‚¯‚ê‚ÎŽg—pŽ¸”s
- C skill_use_pos()
- ƒtƒ@ƒCƒA[ƒEƒH[ƒ‹‚Ì”§ŒÀ‚ð skill_check_condition() ‚Ɉړ®
- C skill_status_change_end()
- opt3‚̈—‚ð’ljÁ
- Œ‹¥ó‘Ô‚ÌI—¹‚ð’ljÁ
- ƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚ð’ljÁ
- Ž©”š‚ð’ljÁ
- C skill_status_change_timer()
- Œ‹¥ó‘Ô‚ÆÔƒGƒ‚ó‘Ԃ̃^ƒCƒ}[ÄÝ’è‚ð’ljÁ
- Ž©”šó‘Ô‚Å‚Í1•b‚²‚Æ‚É‘¬“x‚ª•Ï‰»‚·‚é‚悤‚É‚µ‚½
- C skill_status_change_start()
- opt3‚̈—‚ð’ljÁ
- ƒOƒ‰ƒtƒBƒeƒB‚͒ljÁ‚Å’u‚¢‚½‚ç‘O‚Ì‚ÍÁ‚¦‚é‚悤‚É‚µ‚½
- Œ‹¥ó‘Ô‚ÆÔƒGƒ‚ó‘Ô‚ð’ljÁ
- ƒOƒ‰ƒtƒBƒeƒB‚Íó‘ÔˆÙíŠJŽnŽž‚ɃXƒLƒ‹ƒ†ƒjƒbƒg‚ðÝ’u‚·‚é‚悤‚É‚µ‚½
- ƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚Í“Á‚ɉ½‚à’ljÁ‚Í‚È‚µ
- Ž©”š‚͉r¥ƒpƒPƒbƒg‚ð‚±‚±‚Å‘—‚é‚悤‚É‚µ‚½
- C skill_status_change_clear()
- opt3‚̈—‚ð’ljÁ
- C skill_unit_timer_sub()
- ƒ[ƒvƒ|[ƒ^ƒ‹”­“®‘O‚ªŽžŠÔØ‚ê‚É‚È‚é‚Æ‚«‚ÉŒ©‚½–Ú‚ð•ÏX‚µ‚Ä–{ŽI‚̂悤‚ÉŒø‰Ê‰¹‚ªo‚é‚悤‚É‚µ‚½
- ƒuƒ‰ƒXƒgƒ}ƒCƒ“ˆÈŠO‚Ìã©‚ÍŽžŠÔØ‚ê‚Åã©‚É–ß‚é‚悤‚É‚µ‚½
- C skill.h
- ó‘ÔˆÙí‚ɃXƒLƒ‹–¼‚ð‚¢‚­‚‚©‚‚¯‚½‚èAV‹K‚Ìó‘ÔˆÙí‚ð‘‚₵‚½
- C storage.c
- A storage_db_final()
- A guild_storage_db_final()
- C do_final_storage()
- I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
- C trade.c
- C trade_tradeadditem()
- C trade_tradecommit()
- itemdb_isdropable()‚ÅŒðŠ·‚Å‚«‚È‚¢ƒAƒCƒeƒ€‚ð”»’è‚·‚é‚悤‚É‚µ‚½
- C vending.c
- vending_purchasereq()
- ‹àŠzŒvŽZ‚ðdouble‚Å‚·‚é‚悤‚É‚µ‚Äint‚ÅŒ…‚ ‚ӂꂵ‚È‚¢‚悤‚É‚µ‚½
-
---------------------
-//1045 by TEILU
-
-EƒXƒeƒB[ƒ‹AƒXƒeƒB[ƒ‹ƒRƒCƒ“AƒXƒiƒbƒ`ƒƒ[‚ÌŽ¸”sƒƒbƒZ[ƒW‚ª
- ƒŒƒxƒ‹‚ª‚P`‚X‚ÌŽž‚É•Ï‚¾‚Á‚½‚Ì‚ÅC³B
- (map/)
- skill.c
-
-E¸˜B‚̉”ۂðî•ñƒTƒCƒg‚ðŒ³‚É‚c‚a‚ÉÝ’èBi“ª‘•”õ‚Írusi‚³‚ñ쬕ª‚ðŽg—pj
- (db/)
- item_db.txt
-
-Eƒtƒ@ƒCƒA[ƒEƒH[ƒ‹‚ª§ŒÀ”‚ð’´‚¦‚½‚Æ‚«‚ɃXƒLƒ‹Žg—pŽ¸”s‚ª
- o‚éƒ^ƒCƒ~ƒ“ƒO‚ð•ÏXB
- (map/)
- skill.c
-
-EƒAƒuƒ‰ƒJƒ^ƒuƒ‰ê—pƒXƒLƒ‹‚ðgm_all_skillݒ莞‚É•\Ž¦‚Å‚«‚é‚悤‚É•ÏXB
- battle_athena.conf‚Ìgm_all_skill_add_abra‚Éyes‚ðÝ’è‚·‚ê‚Î
- ƒXƒLƒ‹ƒŠƒXƒg‚É•\Ž¦‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚·B
- (conf/)
- battle_athena.conf
- (db/)
- skill_require_db.txt
- (map/)
- battle.c
- battle.h
- pc.c
-
---------------------
-//1044 by TEILU
-
-E1042‚Å@itemidentify‚ÌŒ ŒÀ‚ÌÝ’è‚ð–Y‚ê‚Ä‚¢‚½‚̂ŒljÁB
- (conf/)
- atcommand_athena.conf
-
-EƒXƒeƒB[ƒ‹AƒXƒeƒB[ƒ‹ƒRƒCƒ“AƒXƒiƒbƒ`ƒƒ[‚ÌŽ¸”sŽž‚É
- Ž¸”sƒƒbƒZ[ƒW‚ð•\Ž¦‚·‚é‚悤‚É•ÏXB
- (map/)
- skill.c
-
-EƒAƒCƒeƒ€‚c‚a‚ɸ˜B‰Â”Ûƒtƒ‰ƒO‚̃Jƒ‰ƒ€‚ð’ljÁ
- ¸˜B‚̉”ۂð‚c‚a‚ðŽQÆ‚·‚é‚悤‚ÉC³
- ¦‚Æ‚è‚ ‚¦‚¸’†’iA‰º’iA’†‰º’i‚Ì“ª‘•”õ‚ƃAƒNƒZƒTƒŠˆÈŠO‚Ì
- ‘•”õ•i‚Í‚·‚ׂĸ˜B‰Â‚ÌÝ’è‚Å‚c‚a‚ðì‚è‚Ü‚µ‚½B
- ‚c‚a‚ÍC³‚ª•K—v‚É‚È‚è‚Ü‚·B
- (db/)
- item_db.txt
- (map/)
- itemdb.c
- itemdb.h
- script.c
-
---------------------
-//1043 by dusk
-EdocƒtƒHƒ‹ƒ_EconfƒtƒHƒ‹ƒ_“à‚Ìhelp.txt‚É1042(TEILU‚³‚ñ)‚Ìà–¾’ljÁ
- @itemidentify‚Ìà–¾‚Í‚V‚Qs–Ú‚Ì@itemreset‚̉º‚ÉB
-
-EValkyrie Realms 5 (‰Eã)‚ÌŠø‚ÌC³
- Valkyrie Realms 5 (‰Eã)‚ÌŠø‚ðŒ©‚é‚Æ–¢Žæ“¾ó‘ÔƒRƒƒ“ƒg‚΂Á‚©‚èo‚Ä‚¢‚½‚Ì‚ð
- ‚¿‚á‚ñ‚ÆŠm”F‚Å‚«‚é‚悤‚ÉB
- ¦ Valkyrie Realms‚ÌŠeÔ‚É–ß‚éŠø‚Ƃ͈Ⴂ‚Ü‚·B
- prtg_cas05.txt“à‚̃Mƒ‹ƒhƒ_ƒ“ƒWƒ‡ƒ“‚É“ü‚郌ƒo[ˆÈŠO‚Ì
- getcastledata "prtg_cas05.gat",1,@GIDp5;‚ð
- set @GIDp5,getcastledata("prtg_cas05.gat",1);‚ÉC³B
-
---------------------
-//1042 by TEILU
-
-E@healƒRƒ}ƒ“ƒh‚ɉ½‚à“n‚³‚È‚¢‚ÆŠ®‘S‰ñ•œ‚·‚é‚悤‚É•ÏXB
- (map/)
- atcommand.c
-
-E@itemitemidentifyƒRƒ}ƒ“ƒh‚̒ljÁ
- –¢ŠÓ’è‚ÌŠŽƒAƒCƒeƒ€‚ð‘S‚ĊӒ肵‚Ü‚·B
- (conf/)
- msg_athena.conf
- (map/)
- atcommand.c
- atcommand.h
-
---------------------
-//1041 by mare
- FIX NPC Script Command - buildin_getgdskilllv()
- Add NPC Sctipt Command - buildin_agitcheck()
- (script/npc/job/)
- npc_job_wizard.txt
- ƒ‰ƒEƒŒƒ‹‚³‚ñ‚̑䎌Aƒmƒr‚ƃvƒŠ‚Ìꇂ̕ª’ljÁ
--------------------
-//1040 by ŒÓ’±—–
-
-EƒT[ƒo[ŠÔÚ‘±‚̃pƒPƒbƒg•\’ljÁ
- (doc/)
- serverlink_packet.txt
- inter<->map ˆÈŠO‚̃T[ƒo[ŠÔÚ‘±‚̃pƒPƒbƒg•\
-
-EŽd—lƒXƒŒ‚Ì Login_ID2 ŠÖŒW‚Å‚²‚ɂ傲‚É‚å
-EƒT[ƒo[ŠÔÚ‘±‚̃pƒPƒbƒgˆê•”•ÏX
- (login/)
- login.c
- auth_fifo ‚É ip ƒƒ“ƒo’ljÁ
- ƒpƒPƒbƒg•ÏX‚É”º‚¤•ÏX‘¼
- (char/)
- char.c
- auth_fifo ‚É login_id2, ip ƒƒ“ƒo’ljÁ
- ƒpƒPƒbƒg•ÏX‚É”º‚¤•ÏX‘¼
- (map/)
- chrif.c
- chrif_authok()’ljÁ
- ƒpƒPƒbƒg•ÏX‚É”º‚¤•ÏX‘¼
-
-EŽ©“®Ä‹N“®ƒXƒNƒŠƒvƒg start ‚ɃRƒƒ“ƒg‚ÅŠÈ’P‚Èà–¾’ljÁ
- start
- ƒRƒƒ“ƒg’ljÁ
-
---------------------
-//1039 by Ni+S
- EƒMƒ‹ƒhŠÖŒW‚̃XƒNƒŠƒvƒg
- Š—LŽÒ‚Ì‹‚È‚¢ƒAƒWƒg‚©‚çAƒMƒ‹ƒh‚ÉŠ‘®‚µ‚Ä‚È‚¢ƒLƒƒƒ‰‚È‚ç
- ƒMƒ‹ƒhƒ_ƒ“ƒWƒ‡ƒ“‚É“ü‚ê‚Ä‚µ‚Ü‚¤‚Æ‚¢‚¤•s‹ï‡‚ª‚ ‚è‚Ü‚µ‚½
-
- ‚±‚ê‚ÍAŠ—LŽÒ‚Ì‹‚È‚¢ƒAƒWƒg‚Ì’l‚ª0‚Å‚ ‚èA
- getcharid(2)‚ŃMƒ‹ƒhID‚ð•Ô‚·‚Ì‚Å‚·‚ªA
- ƒMƒ‹ƒh‚ÉŠ‘®‚µ‚Ä‚¢‚È‚¢ƒLƒƒƒ‰‚Ígetcharid(2)‚Å0‚ð•Ô‚·ˆ×A
- ’l‚ªˆê’v‚µ‚Ä‚µ‚Ü‚¢‹N‚±‚Á‚Ä‚¢‚½Œ»Û‚Å‚µ‚½
- –¢Š‘®ƒLƒƒƒ‰‚ª“ü‚ê‚È‚¢‚悤‚ÉC³‚µ‚Ü‚µ‚½
-
- Eƒtƒ@[ƒ}ƒV[/ƒ|[ƒVƒ‡ƒ“ì¬DB
- ƒŒƒbƒhƒXƒŠƒ€ƒ|[ƒVƒ‡ƒ“
- ƒCƒGƒ[ƒXƒŠƒ€ƒ|[ƒVƒ‡ƒ“
- ƒzƒƒCƒgƒXƒŠƒ€ƒ|[ƒVƒ‡ƒ“
- ‚ÌÞ—¿‚ðA‹ó‚̃|[ƒVƒ‡ƒ“•r‚©‚玎Œ±ŠÇ‚ÉC³
-
---------------------
-//1038 by Plala
-E“]ENPCŠÖ˜A‚Ìd‘å‚ȃoƒOC³
- (script/npc/job)
- npc_job_aco.txt C³
- npc_job_merchant.txt C³
- npc_job_thief.txt C³
-
- Eã‹LNPC‚Å“r’†‚܂ŃNƒGƒXƒg‚ði‚ß‚Ä‘¼‚ÌE‚É“]E‚·‚é‚ÆA
- Ä‚Ñ“]E‰Â”\‚¾‚Á‚½“_‚ðC³‚µ‚Ü‚µ‚½
-
-
---------------------
-//1037 by ŒÓ’±—–
-
-** FOR ENGLISH DEVELOPERS **
-DO NOT UPLOAD IF YOU DON'T USE JAPANESE ENCODE (SHIFT-JIS) !
-WHY WE(JAPANESE) REPAIR ERROR CHARACTER AFTER EVERY YOUR UPLOADING ?
-BREAKING IS EASY, REPAIRING IS VERY DIFFICULT !
-
-** ‰pŒêŒ—‚ÌŠJ”­ŽÒ‚Ì•û‚Ö(“ú–{Œê–ó) **
-“ú–{ŒêƒGƒ“ƒR[ƒh(ƒVƒtƒgJIS)‚ðŽg‚¤‹C‚ª–³‚¢‚È‚çƒAƒbƒvƒ[ƒh‚µ‚È‚¢‚Ä‚­‚¾‚³‚¢I
-‚È‚º‰äXi“ú–{lj‚ª‚ ‚È‚½•û‚̃Aƒbƒvƒ[ƒh‚Ì‚½‚Ñ‚É•¶Žš‰»‚¯‚𒼂³‚È‚¯‚ê‚΂Ȃç‚È‚¢‚ñ‚Å‚·‚©H
-‰ó‚·‚Ì‚ÍŠÈ’P‚Å‚·‚ªA’¼‚·‚Ì‚Í‚Æ‚Ä‚à“‚¢‚ñ‚Å‚·I
-
-E•¶Žš‰»‚¯‚𪫂ÅC³
- (map/)
- script.c
-
-Eladmin‚ªPOSIX•K{‚ÉBDigest::MD5‚ª–³‚­‚Ä‚àŽÀs‚Å‚«‚é‚悤‚ÉC³
-Eserverstatus.cgi‚ÅANet::Ping‚ª–³‚­‚Ä‚àŽÀs‚Å‚«‚é‚悤‚ÉC³
- (bin/tool/)
- ladmin
- (bin/tool/cgi/)
- serverstatus.cgi
-
-Escript_ref‚Å”²‚¯‚Ä‚é‚à‚Ì‚Å‚í‚©‚é‚à‚Ì‚ðC³
- ‰½ŒÌ‚©script_ref‚©‚甲‚¯‚Ä‚é‚à‚Ì(getarg‚È‚Ç)‚̈ꕔ‚ðĂђljÁ
- ** ƒAƒbƒvƒ[ƒh‚·‚é‚Æ‚«‚ÍÅVƒpƒbƒ`‚©‚ç‚Ì·•ª‚ðƒAƒbƒvƒ[ƒh‚µ‚Ü‚µ‚傤 **
- (doc/)
- script_ref.txt
-
-Eaccount_making.txtC³
- ladminƒXƒNƒŠƒvƒg‚̃pƒX
- (doc/)
- accoun_tmaking.txt
-
---------------------
-//1036 by Michael
-E’ljÁ Script Command:
- getequipid(EquipPos); EquipPos: 1-10
- gettimetick(Type); Type: 0 SystemTick, 1 TimeSecondTick(0-86399)
- gettime(Type); Type: 1 Sec, 2 Min, 3 Hour, 4 Weekday, 5, Monthday, 6 Month, 7 Year
- gettimestr("TimeFMT", Len); TimeFMT: Time format strinf / Len: String Length
-
- (map/)
- script.c
- buildin_getequipid(); ’ljÁ
- buildin_gettimetick(); ’ljÁ
- buildin_gettime(); ’ljÁ
- buildin_gettimestr(); ’ljÁ
-
---------------------
-//1035 by Michael
-E’ljÁ GVG Script NPC edit from Aegis NPC(Chinese-big5 version), Please someone translate to Japanese.
-EC³ NPC Script Command - buildin_getgdskilllv()
- getgdskilllv(Guild_ID, Skill_ID);
-
- (map/)
- script.c
- buildin_getgdskilllv() C³
-
---------------------
-//1034 by (Pepermint)
- FIX NPC Script Command - buildin_getgdskilllv()
- Add NPC Sctipt Command - buildin_agitcheck()
- (map/)
- script.c
- buildin_getgdskilllv() C³
- buildin_agitcheck() ’ljÁ
-
---------------------
-//1033 by Michael
-E’ljÁ NPC Script Command - buildin_getgdskilllv()
- getgdskilllv(Guild_ID, Skill_ID);
- skill_id = 1:GD_APPROVAL,2:GD_KAFRACONTACT,3:GD_GUARDIANRESEARCH,4:GD_CHARISMA,5:GD_EXTENSION
-
- (map/)
- script.c
- buildin_getgdskilllv() ’ljÁ
-
---------------------
-//1032 by (“Ê)
-E1031‚ʼn½ŒÌ‚©íœ‚³‚ê‚Ä‚¢‚½buildin_getitemname()‚𕜊ˆ
-EƒoƒOƒXƒŒ‚È‚Ç‚Éo‚½C³‚𔽉f
-E‚»‚Ì‘¼×‚©‚¢C³
-
- (map/)
- clif.c
- clif_disp_onlyself() NULLƒ`ƒFƒbƒN’ljÁ
- map.c
- map_nick2sd() nick‚ªNULL‚¾‚Æ‚·‚®NULL‚ð•Ô‚·‚悤‚É•ÏX
- mob.c
- mob_setdelayspawn() NULLƒ`ƒFƒbƒN•ÏX
- mob_delete() C³
- npc.c
- npc_parse_warp() C³
- script.c
- buildin_getitemname() •œŠˆ
-
---------------------
-//1031 by huge
-ENPC‚Ìscript‚ÉAmakepet‚ð’ljÁB
- makepet —‘ID; ‚ÅAƒyƒbƒg‚ð쬂µ‚Ü‚·B
-ENPC‚Ìscript‚ÉAgetexp‚ð’ljÁB
- getexp Base,Job; ‚ÅA‚»‚ꂼ‚ê‚ÌŒoŒ±’l‚ð‘‚₵‚Ü‚·B
-Eƒyƒbƒg‚Ì—‘‚ðNPC‚Ìdelitem‚ÅÁ‚µ‚½‚èshop‚Å”„‚Á‚½ŽžAƒyƒbƒgƒZ[ƒuƒf[ƒ^‚©‚ç휂·‚é‚悤C³B
-EƒfƒBƒ{[ƒVƒ‡ƒ“¬Œ÷ðŒC³B(–¢Šm”F)
-EŒoŒ±’l•\Ž¦‚ð‰Â”\‚É‚µ‚Ä‚Ý‚Ü‚µ‚½Bconf‚É‚Äݒ肵‚Ä‚­‚¾‚³‚¢B
-
- (conf/)
- battle_athena.conf C³
- (doc/)
- conf_ref.txt C³
- script_ref.txt C³
- (map/)
- battle.c
- battle.h
- disp_experience ’ljÁ
- clif.c
- clif.h
- clif_disp_onlyself() ’ljÁ
- pc.c
- pc_gainexp() C³
- script.c
- buildin_delitem() C³
- buildin_makepet() ’ljÁ
- buildin_getexp() ’ljÁ
- npc.c
- #include C³
- npc_selllist() C³
- skill.c
- skill_castend_nodamage_id() C³
-
-
---------------------
-//1030 by (“Ê)
-Emap_athena.conf‚ÉV¥“‡ƒUƒƒC‚ðƒRƒƒ“ƒgƒAƒEƒg‚µ‚ĒljÁ
-EƒNƒ[ƒ“ƒXƒLƒ‹‚ÅŠo‚¦‚½ƒXƒLƒ‹‚ðŽ©“®ƒZ[ƒu‚²‚Æ‚É–Y‚ê‚Ä‚¢‚½‚Ì‚Å‚Æ‚è‚ ‚¦‚¸ƒƒOƒIƒtŽž‚É‚Ì‚Ý–Y‚ê‚é‚悤‚É•ÏX‚µ‚½‚‚à‚è
-Emobskill_castend_pos‚Ì–³ŠQnullpoƒ`ƒFƒbƒN‚ð•ÏX
-EEmotion‚Ìݒ肪‚È‚¢Mob‚ªƒXƒLƒ‹‚ðŽg—p‚·‚é‚Æ‚«‚É/!‚ðo‚µ‚Ä‚¢‚½‚Ì‚ðC³
-EƒoƒOƒXƒŒ‚É“Š‚°‚½trade.c‚ð“Y•tB‚Æ‚è‚ ‚¦‚¸‘ŠŽè‚ªŠŽ‚Å‚«‚éŽí—Þ‚ÌŒÀŠE‚ð’´‚¦‚½ê‡‚Í“n‚³‚¸‚ÉŒ³‚É–ß‚·‚悤‚É•ÏX
-
- (conf/)
- map_athena.conf ƒUƒƒC’ljÁ
- (doc/)
- client_packet.txt ƒpƒPƒbƒg’·‚ÌXV
- (map/)
- map.c
- map_quit() I—¹Žž‚ɃNƒ[ƒ“ƒXƒLƒ‹‚ÅŠo‚¦‚½ƒXƒLƒ‹‚ð–Y‚ê‚é‚悤‚É•ÏX
- mob.c
- mobskill_castend_pos() nullpoƒ`ƒFƒbƒN•ÏX
- mob_readskilldb() C³
- pc.c
- pc_makesavestatus() ƒNƒ[ƒ“ƒXƒLƒ‹‚ð–Y‚ê‚é‚Ì‚ðmap_quit‚É”C‚¹‚½
- trade.c
- trade_tradecommit() ŠŽ‚Å‚«‚éŽí—ÞˆÈã‚ðŽæˆø‚µ‚½ê‡‚ɃAƒCƒeƒ€‚ªÁ‚¦‚È‚¢‚悤‚É
-
---------------------
-//1029 by (“Ê)
-E20040619RagexeHC_jp.rgz‚Ì0x204‚Æ0x20bƒpƒPƒbƒg‚ɑΉž
-Echar‚Ælogin‚à’m‚ç‚È‚¢ƒpƒPƒbƒg‚ª—ˆ‚½‚çƒpƒPƒbƒgƒ_ƒ“ƒv‚ðo—Í‚·‚é‚悤‚Éclif.c‚©‚çƒRƒsƒy
-
- (doc/)
- client_packet.txt VƒpƒPƒbƒg’ljÁ
- (char/)
- char.c
- parse_char() 0x20b‘Ήž
- (login/)
- login.c
- parse_login() 0x204‘Ήž
-
---------------------
-//1028 by (“Ê)
-EƒEƒ“ƒoƒ‰ˆÈ~AMob‚ªƒXƒLƒ‹‚ðŽg—p‚·‚é‚Æ‚«‚ɃGƒ‚[ƒVƒ‡ƒ“‚ðo‚·‚悤‚É‚È‚Á‚½‚Ì‚ÅAmob_skill_db‚ðŠg’£
- ƒTƒ“ƒvƒ‹‚ŃI[ƒNƒEƒH[ƒŠƒA[‚ª‹i‰Œ‚·‚é‚Æu/cv‚ðo‚·‚̂ƃI[ƒNƒŒƒfƒB‚ª‘¬“x‚ðŽg‚¤‚Æu/‚¿‚ãv‚ðo‚µ‚Ü‚·
-EƒAƒCƒeƒ€682,683‚ðŽg—p‚·‚é‚Æ30•bŠÔATK‚âMATK‚ª‘‚¦‚é‚炵‚¢‚Ì‚Å‚»‚ê‚Á‚Û‚­
-Ejob_db2.txt‚É“ä‚Ìs‚ª2s‚ ‚Á‚½‚Ì‚ðíœ
-E”͈͖‚–@‚ȂǂŃXƒLƒ‹ƒ†ƒjƒbƒg‘ŠŽè‚ɃXƒe[ƒ^ƒX•ÏX‚ð‚©‚¯‚悤‚Æ‚µ‚½ê‡‚Énullpo‚ªo‚½‚Ì‚ðC³
-
- (db/)
- const.txt SC_INCATK SC_INCMATK’ljÁ
- item_db.txt ª‚ð682,683‚ɒljÁ
- job_db2.txt “ä‚Ì2s‚ðíœ
- mob_skill_db.txt Emotion’ljÁ
- (map/)
- mob.c
- mobskill_use() ƒXƒLƒ‹Žg—pŽž‚ɃGƒ‚[ƒVƒ‡ƒ“‚ðo‚·‚悤‚É•ÏX
- mob_readskilldb() Emotion‚ð“Ç‚Ýž‚ނ悤‚É•ÏX
- mob.h •ÏX
- pc.c
- pc_calcstatus() •ÏX
- skill.c
-
- skill_status_change_end() •ÏX
- skill_status_change_start() •ÏX‚ÆNULLƒ`ƒFƒbƒNC³
- skill.h •ÏX
-
---------------------
-//1027 by Ni+S
-EgetitemnameŠÖ”’ljÁ
-EƒXƒNƒŠƒvƒg‚ÉgetitemnameŠÖ”‚ð’ljÁ
-Eitemid‚æ‚èAjname‚𕶎š—ñ‚Å•Ô‚µ‚Ü‚·
-EÚ‚µ‚­‚Íscript_ref.txt‚ÅB
-
- script.c
- getitemname()’ljÁ
-
---------------------
-//1026 by (“Ê)
-E1023‚Å“ü‚ê‚Ä‚È‚©‚Á‚½clif.h‚𓯫
-EƒoƒCƒIƒvƒ‰ƒ“ƒg‚ƃXƒtƒBƒA[ƒ}ƒCƒ“‚Åo‚µ‚½mob‚ð“|‚·‚Æmob_timer_delete()‚Ånullpo‚ªo‚é–â‘è‚ð‰ðŒˆ‚µ‚½‚‚à‚è
-EƒoƒO•ñƒXƒŒƒbƒh part6 >>63 Dest‚³‚ñ‚Ìscript.cC³‚ðŽæ‚èž‚Ý
-
- (map/)
- clif.h •ÏX
- map.h •ÏX
- mob.c
- mob_changestate() •ÏX
- skill.c
- skill_castend_pos2() •ÏX
- mob_spawn() •ÏX
- do_init_mob() add_timer_func_list‚Émob_timer_delete‚ª–³‚©‚Á‚½‚̂ŒljÁ‚µ‚Ä‚Ý‚½
- script.c
- script_load_mapreg() •ÏX
-
-------------------------
-//1025 by Sel
-Eƒ[ƒhƒiƒCƒg‚̃Wƒ‡ƒu•â³‚ªŠÔˆá‚Á‚Ä‚¢‚½‚Ì‚ðC³
-EƒI[ƒ‰ƒuƒŒ[ƒhŒø‰ÊŽžŠÔ‚ðC³
-EƒI[ƒ‰ƒuƒŒ[ƒh•Ší§ŒÀ‚ð‘fŽèˆÈŠO‘S‚Ä‚ÉC³
-EƒRƒ“ƒZƒ“ƒgƒŒ[ƒVƒ‡ƒ“•Ší§ŒÀ‚𗼎葄‚Ì‚Ý‚©‚ç•ÐŽè‘„+—¼Žè‘„‚ÖC³
-EƒgƒDƒ‹[ƒTƒCƒgŒø‰ÊŽžŠÔ‚ðC³
-
- (db/)
- job_db2-2.txt •ÏX
- skill_cast_db.txt •ÏX
- skill_require_db.txt •ÏX
---------------------
-//1024 by mare
-Eƒtƒ@[ƒ}ƒV[Þ—¿‚Ì•ÏXA»‘¢‰Â”\–ò•i‚̒ljÁ
- 6/8“ú–{ŽI‚É‚«‚½‚à‚Ì‚Æ“¯‚¶‚É‚µ‚Ü‚µ‚½
-
- (db/)
- produce_db.txt •ÏX
-
---------------------
-//1023 by (“Ê)
-E1022‚ŃGƒ“ƒoƒO‚µ‚½npc_parse_script()‚ð–ß‚µ
-EƒXƒpƒCƒ‰ƒ‹ƒsƒA[ƒX‚Ìd—ʒljÁƒ_ƒ[ƒWŒvŽZŽ®‚ð‚¿‚å‚Á‚Æ•ÏX
-E–‚–@—Í‘•‚ÌŒvŽZŽ®‚ð‚¿‚å‚Á‚Æ•ÏX
-Eƒeƒ“ƒVƒ‡ƒ“ƒŠƒ‰ƒbƒNƒX‚ªÀ‚Á‚ÄŽg‚¤‚Ì‚Å‚Í‚È‚­Žg‚¤‚ÆÀ‚é‚Æ‚¢‚¤î•ñ‚ðŒ©‚©‚¯‚½‚Ì‚Å•ÏX
-Eª‚É”º‚¢skill_require‚ÌsittingðŒ”pŽ~
-Eƒo[ƒT[ƒN‚ðGvG‚ÅŽg—p‚Å‚«‚È‚¢‚悤‚É•ÏX
-
- (db/)
- skill_cast_db.txt •ÏX
- skill_require_db.txt •ÏX
- (doc/)
- db_ref.txt C³
- (map/)
- battle.c
- battle_calc_pc_weapon_attack() •ÏX
- clif.c
- clif_sitting() ’ljÁ
- clif_parse_ActionRequest() •ÏX
- npc.c
- npc_parse_script() C³
- pc.h •ÏX
- pc.c
- pc_calcstatus() •ÏX
- pc_natural_heal_hp() •ÏX
- pc_setstand() ’ljÁ
- skill.c
- skill_castend_nodamage_id() ƒeƒ“ƒVƒ‡ƒ“ƒŠƒ‰ƒbƒNƒX‚ðŽg‚¤‚ÆÀ‚é‚悤‚É
- skill_check_condition() ST_SITTING”pŽ~
- skill_use_id() ƒo[ƒT[ƒN‚ðGvG‚ÅŽg—p‚Å‚«‚È‚¢‚悤‚É
- skill_status_change_timer() ƒeƒ“ƒVƒ‡ƒ“ƒŠƒ‰ƒbƒNƒX‚Í10•b‚²‚Æ‚ÉSP‚ð12Á”ï
- skill_status_change_start() ƒeƒ“ƒVƒ‡ƒ“ƒŠƒ‰ƒbƒNƒX•ÏX
- skill_readdb() sitting”pŽ~
- skill.h •ÏX
-
---------------------
-//1022 by (“Ê)
-ENULLƒ`ƒFƒbƒN•ÏX
-Elogin,char,mapI—¹Žž‚ÉŠJ•ú‚³‚ê‚Ä‚¢‚È‚©‚Á‚½ƒƒ‚ƒŠ‚ð”÷–­‚ÉŠJ•ú‚·‚é“w—Í‚ð‚µ‚Ä‚Ý‚½
-EƒXƒpƒmƒr”š—ô”g“®ŽÀ‘•AƒNƒŠƒeƒBƒJƒ‹+50
-EƒXƒpƒmƒrƒ{[ƒiƒX‚ð•ÏXAʼn‚©‚çˆê“x‚àŽ€‚ñ‚Å‚È‚¢JobLv70‚ÉAll+15ABaseLv99‚ÉMHP+2000
-
- (doc/)
- client_packet.txt S 01ed’ljÁ
- (char/)
- do_final() •ÏX
- do_init() •ÏX
- (login/)
- do_final() ’ljÁ
- do_init() •ÏX
- (map/)
- atcommand.c Dest‚³‚ñ‚Ì•ÏX‚ðŽæ‚èž‚Ý
- battle.c “¯ã
- chat.c NULLƒ`ƒFƒbƒN•ÏX
- chrif.c NULLƒ`ƒFƒbƒN•ÏX
- clif.c NULLƒ`ƒFƒbƒN•ÏX
- clif_parse() •ÏX
- clif_parse_sn_explosionspirits() ’ljÁ
- clif_parse_sn_doridori() –¼‘O•ÏX
- guild.c NULLƒ`ƒFƒbƒN•ÏX
- intif.c NULLƒ`ƒFƒbƒN•ÏX
- itemdb.c NULLƒ`ƒFƒbƒN•ÏX
- map.c NULLƒ`ƒFƒbƒN•ÏX
- do_final() •ÏX
- mob.c NULLƒ`ƒFƒbƒN•ÏX
- npc.c NULLƒ`ƒFƒbƒN•ÏX
- npc_parse_script() bufŠJ•ú–Y‚êH‚ðŠJ•ú
- party.c NULLƒ`ƒFƒbƒN•ÏX
- path.c NULLƒ`ƒFƒbƒN•ÏX
- pc.c NULLƒ`ƒFƒbƒN•ÏX
- pc_calcstatus() ƒXƒpƒmƒr•ÏX
- pet.c NULLƒ`ƒFƒbƒN•ÏX
- storage.c NULLƒ`ƒFƒbƒN•ÏX
- trade.c NULLƒ`ƒFƒbƒN•ÏX
- vending.c NULLƒ`ƒFƒbƒN•ÏX
-
---------------------
-//1021 by Kalen
-Eƒvƒƒ“ƒeƒ‰Š¥¥•iNPC‚ɂă^ƒLƒV[ƒh”Ì”„
-EUmbala‚̃[ƒvŒ©’¼‚µ
- D2F‚̃[ƒv‚ð–{ŽIŽg—p‚É•ÏXBd•¡ƒ|ƒCƒ“ƒgC³
-EUmbalaNPCC³
- ƒ‰ƒxƒ‹‚ðŽg—p‚µ‚È‚­‚¢‚¢êŠ‚Í‹É—Ííœ(-)
- ƒZ[ƒuƒ|ƒCƒ“ƒgC³
- ƒoƒ“ƒW[ƒWƒƒƒ“ƒv‘ä’ljÁ
- Š[œ–å’ljÁ
- •ª‰ðA‡¬ˆ—’ljÁ
- ƒJƒvƒ‰AˆÄ“à—vˆõ‚ð‚ ‚é‚ׂ«êŠ‚ÖˆÚ“®B
- ¦ˆê•”Emo‚ɂ‚¢‚ÄAŠà•ðŽ©g‚ª‹t‚ÉŽæ‚èˆá‚¦‚Ä‚¢‚é‚Ý‚½‚¢‚È‚Ì‚Å“ÆŽ©‚Å•Ï‚¦‚Ü‚µ‚½B
- Œ©‚Ä‚à‚炦‚Εª‚©‚è‚Ü‚·‚ª18‚Æ28‚ð‹t‚É‚·‚é‚ÆNPC‚̉ï˜b“à—e‚ɇ‚¤Emo‚ªo‚½‚Ì‚Å
- ƒNƒGƒXƒgƒtƒ‰ƒO‚ÌðŒ’ljÁ
- @‚±‚ê‚É‚æ‚è‚·‚Å‚ÉI‚¦‚Ä‚¢‚éꇂłà“r’†‚É‚È‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B
-EƒXƒpƒmƒr“]ENPC’ljÁ
- “Ê‚³‚ñ‚̃ƒO‚ðŠî‚É쬂µ‚Ü‚µ‚½B
-EƒAƒ‹ƒPƒ~ƒXƒgƒMƒ‹ƒh‚̃mƒr‚Ìꇂ̑ΉžC³(“Ê‚³‚ñ‚©‚ç‚̃ƒO‚æ‚è)
-EŒ‹¥NPC’ljÁ
- ‚½‚¾‚µA‚Ü‚¾ƒeƒXƒg’iŠK‚Å‚·B–â‘è“_‚ª‚ ‚邽‚ߌ‹¥•s‰Â”\‚Å‚·B
- (/script)
- (/warp)
- npc_warp_umbala.txt
- (/npc)
- (/town)
- npc_town_umbala.txt
- npc_town_kafra.txt
- npc_town_guide.txt
- npc_town_prontera.txt
- (/quest)
- npc_event_marriage.txt(VEƒeƒXƒg)
- (/job)
- npc_job_alchemist.txt
- npc_job_supernovice.txt(V)
-
---------------------
-//1020 by (“Ê)
-Enullpo‚Ì•ÏX‚ɑΉž‚µ‚Ämap_athena.conf‚ÌÝ’è휕skill.c‘‚«Š·‚¦
-EÀ‚Á‚Ä‚¢‚é‚ÆHPR‚ÆSPR‚ª’Êí‚Ì”¼•ª‚Å”­“®‚µ‚½‚Ì‚ðC³
-EƒXƒpƒmƒr‚ªˆê’èðŒ(ƒNƒ‰ƒCƒAƒ“ƒgˆË‘¶)‚Å/doridori‚·‚é‚ÆSPR‰ñ•œ—Ê‚ª”{‚É‚È‚é‚悤‚É•ÏX
-EŒ‹¥Ž®—p‚̃GƒtƒFƒNƒg‚ðƒXƒNƒŠƒvƒg‚©‚çwedding–½—ß‚Å”­¶‚³‚¹‚邱‚Æ‚ªo—ˆ‚é‚悤‚µ‚½
-E‡‘t‚ðŠJŽn‚µ‚½PC‚͇‘t’†‚ÉI—¹‚Å‚«‚È‚¢‚悤‚É‚µ‚½‚‚à‚è(–¢Šm”F)
-
- (conf/)
- map_athena.conf nullpo_checkíœ
- (doc/)
- client_packet.txt XV
- conf_ref.txt nullpo_checkíœ
- (map/)
- map.c
- map_config_read() nullpo_checkíœ
- map.h “¯ã
- skill.c NULLƒ`ƒFƒbƒNÄ“x‘“ü‚ê‘Ö‚¦
- clif.c
- clif_wedding_effect() ’ljÁ
- clif_parse_QuitGame() ‡‘tŠJŽnŽÒ‚͇‘t’†‚ÉI—¹‚Å‚«‚È‚¢‚悤‚É•ÏX
- clif_parse_doridori() ’ljÁ
- clif_parse() doridori’ljÁ
- clif.h •ÏX
- pc.c
- pc_authok() doridori‰Šú‰»’ljÁ
- pc_natural_heal_hp() À‚Á‚Ä‚¢‚é‚Æ‚«‚ÌHPRŽžŠÔC³
- pc_natural_heal_sp() À‚Á‚Ä‚¢‚é‚Æ‚«‚ÌHPRŽžŠÔC³Adoridori’ljÁ
- script.c
- buildin_wedding_effect() ’ljÁ
-
-
---------------------
-//1019 by Dest
-Enullpoƒ‚ƒWƒ…[ƒ‹‚ɃR[ƒfƒBƒ“ƒOƒ~ƒX”­Œ©/C³
-E“¯Avoid‚ÈŠÖ”‚©‚çŒÄ‚΂ꂽŽž‚Ìnullpo_retv_f()‚ð’ljÁ
-E“¯AðŒƒRƒ“ƒpƒCƒ‹‚ɑΉž
-
- (common/)
- nullpo.c
- nullpo_info_core() ƒR[ƒfƒBƒ“ƒOƒ~ƒXC³
- nullpo.h
- NULLPO_CHECKƒtƒ‰ƒO‚É‚æ‚éðŒƒRƒ“ƒpƒCƒ‹’ljÁ
- nullpo_retv_f() ’ljÁ
-
---------------------
-//1018 by chloe
-EƒEƒ“ƒoƒ‰ƒ‚ƒ“ƒXƒ^[‚ð’ljÁ
-
- (script/mob/)
- npc_monster.txt •ÏX
- ŠeƒEƒ“ƒoƒ‰ƒ}ƒbƒv‚ÉMob”z’u
- (db/)
- mob_db.txt •ÏX
- 1495,STONE_SHOOTER,ƒtƒŒƒCƒ€ƒVƒ…[ƒ^[ C³
- 1511,AMON_RA,ƒAƒ‚ƒ“ƒ‰[ C³
-
---------------------
-//1017 by (“Ê)
-EƒoƒO•ñƒXƒŒƒbƒh part6 >>46 Dest‚³‚ñ‚Ìnullpoƒ‚ƒWƒ…[ƒ‹‚ð’ljÁ•void‚ÈŠÖ”‚©‚çŒÄ‚΂ꂽŽž‚Ìnullpo_retv()‚ð’ljÁ(‚Æ‚è‚ ‚¦‚¸skill.c‚ÌNULLƒ`ƒFƒbƒN‚¾‚¯“ü‚ê‘Ö‚¦)
-E“¯>>39 Sel‚³‚ñ‚©‚ç•ñ‚ª‚ ‚Á‚½ƒRƒ“ƒZƒ“ƒgƒŒ[ƒVƒ‡ƒ“‚ðC³
-EŽd—l‚ɂ‚¢‚ÄŒê‚臂¤ƒXƒŒƒbƒh >>33 Kalen‚³‚ñ‚Ìî•ñ‚ðclient_packet.txt‚É”½‰f
-E–{ŽI‘ŠˆáƒXƒŒƒbƒh part3 >>24 M —zqcM6jBw‚³‚ñ‚Ìî•ñ‚ðª
-E“¯>>30 ‚Í‚¿‚³‚ñ‚ÌC³‚𔽉f
-
- (conf/)
- map_athena.conf nullpo_check’ljÁ
- (db/)
- item_db.txt Œ‹¥Žw—Ö‚ð•Ší-ƒAƒNƒZƒTƒŠ‚É•ÏX•ÅV”Å
- (doc/)
- client_packet.txt XV
- conf_ref.txt nullpo_check’ljÁ
- (common/)
- Makefile •ÏX
- nullpo.c ’ljÁ
- nullpo.h ’ljÁ
- (map/)
- Makefile •ÏX
- map.c
- map_config_read() nullpo_check’ljÁ
- map.h “¯ã
- skill.c NULLƒ`ƒFƒbƒN‘“ü‚ê‘Ö‚¦
- skill_status_change_start() ƒRƒ“ƒZƒ“ƒgƒŒ[ƒVƒ‡ƒ“C³
- skill_castend_nodamage_id() ƒeƒŒƒ|[ƒgC³
- clif.c
- clif_skill_setunit() ƒRƒƒ“ƒgC³
- pc.c
- pc_calcstatus() ƒRƒ“ƒZƒ“ƒgƒŒ[ƒVƒ‡ƒ“C³
-
---------------------
-//1016 by ‚ÈB
-EAthenaŽG’kƒXƒŒƒbƒhPart4 42 ‚©‚éŽì‚̃Eƒ“ƒoƒ‰NPC‚ð’ljÁ
-
- (script/npc/town/)
- npc_town_umbala.txt’ljÁ
- ƒCƒxƒ“ƒgƒfƒoƒbƒO—l(230`256s–Ú)‚̓Rƒƒ“ƒgƒAƒEƒg
- (conf/)
- map_athena.conf town ‚É npc: script/npc/town/npc_town_umbala.txt ’ljÁ
-
---------------------
-//1015 by (“Ê)
-EƒŠƒ€[ƒuƒgƒ‰ƒbƒv‚ð–{ŽIŽd—l‚ÆAthenaŽd—l‚Å‘I‚ׂé‚悤‚É‚µ‚½
-EƒXƒpƒmƒr‚ÉAll+10‚·‚éðŒ‚ª—Ç‚­•ª‚©‚ç‚È‚©‚Á‚½‚¯‚Çʼn‚©‚ç+10‚¶‚á‚È‚¢‚Ì‚ÍŠm‚©‚È‚Ì‚Å‚Æ‚è‚ ‚¦‚¸Base99‚ňê“x‚àŽ€‚ñ‚Å‚È‚¯‚ê‚΂Ƃ¢‚¤ðŒ‚É•ÏX
-Eƒ_ƒ“ƒX’†‚É‚«”ò‚΂³‚ê‚Ä‚àƒGƒtƒFƒNƒg‚͈ړ®‚µ‚È‚¢‚»‚¤‚È‚Ì‚Å•ÏX
-E@go 13”÷’²®
-
-
- (conf/)
- battle_athena.conf skill_removetrap_type’ljÁ
- (doc/)
- client_packet.txt –{ŽI‘ŠˆáƒXƒŒƒbƒh part3 23 M —zqcM6jBw‚³‚ñ‚Ìî•ñ‚ð’ljÁ
- conf_ref.txt skill_removetrap_type’ljÁ
- (map/)
- atcommand.c
- atcommand_go() ƒEƒ“ƒoƒ‰‚ÌoŒ»ˆÊ’u”÷’²®
- battle.c
- battle_config_read() skill_removetrap_type’ljÁ
- battle.h “¯ã
- pc.c
- pc_calcstatus() ƒXƒpƒmƒrAll+10ðŒ•ÏX
- skill.c
- skill_blown() ƒ_ƒ“ƒX’†‚Ì‚«”ò‚΂µ‚ðŒ³‚É–ß‚µ‚½
- skill_castend_nodamage_id() ƒŠƒ€[ƒuƒgƒ‰ƒbƒvŽd—l•ÏX
-
- --------------------
-//1014 by (Pepermint)
-I fixed again the problem if you put minus sign(-) in front of digits,
-the error comes up when you puchase a item.
-When you put a minus sign(-), the error sign will be changed shrotage of
-amount as original server dose.
-
-I tested with it in ver. 1013, it was working
-
---------------------
-//1013 by (“Ê)
-EƒT[ƒo[ƒXƒiƒbƒvƒVƒ‡ƒbƒg
-
---------------------
-//1012 by (“Ê)
-Ehelp.txt‚É‚ ‚é@go‚Ìà–¾‚©‚ç13‚Æ14‚ðíœ
-@‹@”\‚ÍÁ‚¦‚Ä‚È‚¢‚Ì‚ÅŽg‚¦‚邱‚Æ‚ÍŽg‚¦‚Ü‚·‚ªAhelp‚ÉÚ‚¹‚é‚Ì‚ÍjRO‚É—ˆ‚Ä‚©‚ç‚Æ‚¢‚¤‚±‚Æ‚Å
-Ecast_db.txt‚ðskill_cast_db.txt‚ɉü–¼
-E‚‚¢‚Å‚Émake clean‚ÅGNUmakefile‚àÁ‚µ‚Ă݂邱‚Æ‚É‚·‚é
-Eu-0‚³‚ñ‚ÌŒŸØ‚Ȃǂ𑇂µ‚ă_ƒ“ƒXƒ†ƒjƒbƒgŠÖ˜A‚ð•ÏX
-@‰‰‘tEƒ_ƒ“ƒX’†‚̃nƒG‚̓†ƒjƒbƒg•t‚«‚Å”ò‚Ô‚»‚¤‚Å‚·
-@‰‰‘tEƒ_ƒ“ƒX’†‚Ƀ[ƒvƒ|ƒCƒ“ƒg‚Éæ‚Á‚½‚çó‘Ô‚ª‰ðœ‚³‚ê‚é‚悤‚Å‚·
-@‡‘t’†‚ɕЕû‚ªƒnƒG”ò‚Ñ‚µ‚½‚çƒGƒtƒFƒNƒg‚ÍŒ³‚ÌꊂɎc‚èA”ò‚ñ‚¾æ‚ł͇‘tó‘Ô‚ªŒp‘±‚µ‚Ä“®‚¯‚È‚¢•ŽžŠÔ‚²‚Æ‚ÉSPÁ”ï‚·‚é‚悤‚Å‚·
-EPC_DIE_COUNTER‚ªƒXƒNƒŠƒvƒg‚©‚ç•ÏX‚³‚ꂽŽž‚É‚·‚®‚É”½‰f‚³‚ê‚é‚悤‚É•ÏX
-
- (conf/)
- help.txt @goà–¾•ÏX
- (db/)
- skill_cast_db.txt ‰ü–¼
- (map/)
- pc.c
- pc_setpos() ƒ_ƒ“ƒX’†’f‚̃^ƒCƒ~ƒ“ƒO•ÏX
- pc_setglobalreg() PC_DIE_COUNTER“Á•Êˆ—’ljÁ
- skill.c
- skill_castend_id() NULLƒ`ƒFƒbƒN•ÏX
- skill_stop_dancing() ƒ}ƒbƒvˆÚ“®‚È‚Ç‚Å‚Ì‹““®‚ð•ÏX
- skill_readdb() skill_cast_db‚ɉü–¼
- skill_blown() ”ò‚΂³‚ꂽ‚çƒ_ƒ“ƒXˆÚ“®
- npc.c
- npc_touch_areanpc() ƒ[ƒvƒ|ƒCƒ“ƒg‚Éæ‚Á‚½‚çƒ_ƒ“ƒX‰ðœ
-
---------------------
-//1011 by ƒpƒCƒ“
-Eƒp[ƒeƒB—v¿‚âƒMƒ‹ƒh—v¿‚ðo‚µ‚Ä‚¢‚é‚Æ‚«‚É‘¼‚Ì—v¿‚ð‹‘”Û‚éˆ—‚ð’ljÁ
-@battle_athena.conf‚ÅØ‚è‘Ö‚¦‚ªo—ˆ‚é‚悤‚É‚È‚Á‚Ä‚¢‚Ü‚·B
-Emake clean ‚ÅŽ–‚ª‘«‚è‚é‚Ì‚ÅAobjectdel.bat‚ðÁ‹Ž
-
- (map)
- clif.c
- clif_party_invite()•ÏX(nullpo‚Ì•¶Œ¾ˆá‚Á‚Ä‚Ü‚µ‚½)
- guild.c
- guild_invite()•ÏX
- party.c
- party_invite()•ÏX
- battle.c
- battle_config_read()•ÏX
- battle.h•ÏX
- trade.c
- trade_traderequest()•ÏX
-
---------------------
-//1010 by (“Ê)
-Egcc 2.95‘Îô
-EƒXƒpƒmƒr‚Ì1“xŽ€‚Ê‚Ü‚ÅAll+10‚ðƒXƒNƒŠƒvƒg•Ï”‚ÅŽÀ‘•‚µ‚Ă݂鎎‚Ý
- PC_DIE_COUNTER Ž€‚Ê‚Æ+1A“]E‚·‚é‚Æ0‚É‚È‚è‚Ü‚·
- ª‚̓Lƒƒƒ‰ƒNƒ^‰i‘±‚ȃXƒNƒŠƒvƒg•Ï”‚È‚Ì‚ÅNPC‚ÅŽQÆ•ÄÝ’è‚Æ‚©”äŠr“IŠy‚©‚à
-
- (map/)
- chrif.c
- chrif_divorce() gcc2.95‘Îô
- skill.c
- skill_attack() gcc2.95‘Îô
- skill_unit_move_unit_group() gcc2.95‘Îô
- map.h map_session_data‚Édie_counter‚ð’ljÁ
- npc.c
- npc_click() nullpoƒƒbƒZ[ƒW‚ðC³
- pc.c
- pc_setrestartvalue() nullpoƒƒbƒZ[ƒW‚ðC³
- pc_authok() die_counter‰Šú‰»‚̒ljÁ
- pc_calcstatus() die_counter=0‚̃Xƒpƒmƒr‚ÍAll+10
- pc_damage() PC_DIE_COUNTERÝ’è
- pc_jobchange() PC_DIE_COUNTERÝ’è
- pc_readparam() gcc2.95‘Îô
- pc_divorce() gcc2.95‘Îô
- pc_get_partner() gcc2.95‘Îô
-
---------------------
-//1009 by ‚Ò‚´‚Ü‚ñ
-Eƒ_ƒ“ƒXˆÚ“®Œy—ʉ»ŽÀ‘•
-@battle_athena.conf‚ÅØ‚è‘Ö‚¦‰Â”\‚Å‚·BÚ‚µ‚­‚Íconf_ref‚ð
-@ƒIƒŠƒWƒiƒ‹ƒAƒbƒvƒf[ƒg‚̈×AƒfƒtƒHƒ‹ƒg‚Å‚Íoff‚É‚µ‚Ä‚¢‚Ü‚·
-@‚Ü‚½A‚±‚ÌŒy—ʉ»ƒ‚[ƒh‚͉ñü•‰‰×‚ð‘å•‚É팸‚Å‚«‚é(‚‚à‚è)‚Å‚·‚ªA
-@‚»‚Ì•ªƒT[ƒo[‘¤‚̈—‚ªd‚½‚­‚È‚è‚Ü‚·(‚Æ‚¢‚Á‚Ä‚à‚ ‚é’ö“x‚ÌCPU‚ª‚ ‚ê‚ΑS‘R–â‘è‚É‚È‚ç‚È‚¢’ö“x‚Ì•‰‰×‚Å‚·‚ª)
-EŒ‹¥ƒVƒXƒeƒ€^Œ‹¥ƒXƒLƒ‹ŽÀ‘•
-@Œ‹¥Žw—Ö‚Ì“Á•Êˆµ‚¢‚ª–¢ŽÀ‘•‚Å‚·(—Ž‚Æ‚¹‚½‚èŽæˆø‚Éo‚¹‚½‚肵‚Ü‚·)
-@—£¥‚Ì‚Ý–¢ƒeƒXƒg‚Å‚·B
-EŒ‹¥—pƒXƒNƒŠƒvƒg(marriageAdivorce)’ljÁB
-@Emarriage <partner_name>
-@@<partner_name>: Œ‹¥‘ŠŽè‚Ì–¼‘O
-@@–ß‚è’l: ¬Œ÷:1@Ž¸”s:0
-@@Œ‹¥ˆ—‚ðs‚¢‚Ü‚·B‘Îۂ͘b‚µŠ|‚¯‚½ƒvƒŒƒCƒ„[‚Æ<partner_name>‚̃Lƒƒƒ‰ƒNƒ^[‚ÅA‚Ç‚¿‚ç‚©‚ªŠù¥‚Ìꇂ͎¸”s‚µ‚Ü‚·B
-@@1‰ñ‚ÌmarriageƒXƒNƒŠƒvƒg‚ÅV˜Y¨V•w‚ÆV•w¨V˜Y‚ÌŒ‹¥ˆ—‚𓯎ž‚És‚¢‚Ü‚·B
-@@‚Ü‚½A‚±‚̃XƒNƒŠƒvƒg‚ÅŒ‹¥Žw—Ö‚Í—^‚¦‚ç‚ê‚Ü‚¹‚ñB
-@Edevorce
-@@ˆø”–³‚µ
-@@–ß‚è’l: ¬Œ÷:1@Ž¸”s:0
-@@—£¥ˆ—‚ðs‚¢‚Ü‚·B‘Îۂ͘b‚µŠ|‚¯‚½ƒvƒŒƒCƒ„[‚ÅA–¢¥‚Ìꇂ͎¸”s‚µ‚Ü‚·B
-@@marriageƒXƒNƒŠƒvƒg‚Æ“¯—l‚Ɍ݂¢‚Ì—£¥ˆ—‚𓯎ž‚És‚¢‚Ü‚·B
-@@‚Ü‚½A‚±‚̃XƒNƒŠƒvƒg‚ª¬Œ÷‚·‚é‚ÆŽ©“®“I‚É‘ÎÛƒLƒƒƒ‰ƒNƒ^[‚ÌŒ‹¥Žw—Ö‚Í”’D‚³‚ê‚Ü‚·B
-
-@‚Ç‚¿‚ç‚̃XƒNƒŠƒvƒg‚̈—‚àA2l‹¤ƒƒOƒCƒ“‚µ‚Ä‚¢‚È‚¢‚ƬŒ÷‚µ‚Ü‚¹‚ñB
-
- (map/)
- pc.c
- pc_ismarried()Apc_marriage()Apc_divorce()Apc_authok()•ÏX
- pc_get_partner() ’ljÁ
- map.c
- map_quit() •ÏX
- skill.c
- skill_use_id()Askill_castend_nodamage_id() •ÏX
- skill_unitsetting()Askill_unit_onlimit() •ÏX
- script.c
- buildin_marriage()Abuildin_devorce() ’ljÁ
- pc.h •ÏX
- battle.h •ÏX
-
---------------------
-//1008 by ‚Ò‚´‚Ü‚ñ
-EGMƒZƒbƒVƒ‡ƒ“‰B‚µŽÀ‘•(–¢ƒeƒXƒg)
-@GMƒAƒJƒEƒ“ƒg‚̃Lƒƒƒ‰ƒNƒ^[‚ð@who“™‚Å•\Ž¦‚·‚é‚©‚Ç‚¤‚©Ý’è‚Å‚«‚Ü‚·B
-@Ú‚µ‚­‚Íconf_ref.txt‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
-EŒ‹¥ƒVƒXƒeƒ€‰¼ŽÀ‘•
-@char-mapŠÔ’ÊM‚Ì‚ÝŽÀ‘•‚Å‚·B‚Ü‚¾Œ‹¥‚·‚邱‚Æ‚Ío—ˆ‚Ü‚¹‚ñB
-@®A‚±‚̃pƒbƒ`‚©‚çathena.txt‚̃o[ƒWƒ‡ƒ“‚ª•Ï‚í‚è‚Ü‚·B
-@ƒf[ƒ^‚̌݊·«‚Í•Û‚Á‚½‚‚à‚è‚Å‚·‚ªA”O‚̈׃oƒbƒNƒAƒbƒv‚ðŽæ‚Á‚Ä‚¨‚­Ž–‚ð‹­‚­„§‚µ‚Ü‚·B
-
- (map/)
- clif.c
- clif_countusers() •ÏX
- battle.c
- battle_config_read() •ÏX
- atcommand.c
- atcommand_who() •ÏX
- pc.c
- pc_ismarried()Apc_marriage()Apc_divorce() ’ljÁ
- chrif.c
- chrif_divorce() ’ljÁ
- chrif_parse() •ÏX
- (char/)
- char.c
- char_divorce() ’ljÁ
- char_delete()Ammo_char_fromstr()Ammo_char_tostr() •ÏX
-
---------------------
-//1007 by (“Ê)
-ENULLƒ`ƒFƒbƒN‚ÌŒ©’¼‚µ
-
- (map/)
- clif.c
- clif_send() •ÏX
- skill.c
- skill_delunit() •ÏX
-
---------------------
-//1006 by (ruhu)
-¥@go‚É—Œ—z‚ƃjƒtƒ‹ƒwƒCƒ€’ljÁ
-
- (conf/)
- help.txt ƒjƒtƒ‹ƒwƒCƒ€A—Œ—z’ljÁ
- (map/)
- atcommand.c
- atcommand go() ƒjƒtƒ‹ƒwƒCƒ€A—Œ—z’ljÁ
---------------------
-//1005 by (“Ê)
-ENULLƒ`ƒFƒbƒN‚ÌŒ©’¼‚µ‚ƒljÁA‘å—Ê‚É•ÏX‚µ‚½‚Ì‚Å–â‘肪o‚é‰Â”\«‚ª‘å‚Å‚·
-EƒEƒ“ƒoƒ‰•ªŠ„ƒpƒbƒ`‚ª”z•z‚³‚ꂽ‚Ì‚Å@go 12‚ɃEƒ“ƒoƒ‰‚ð’ljÁ
-Eƒ[ƒhƒiƒCƒg ƒo[ƒT[ƒN‚ð‚¿‚å‚Á‚Æ‚»‚ê‚Á‚Û‚­(ASPD‘‰Á‚È‚Ç‚Í–¢ŽÀ‘•)
-EƒNƒ‰ƒEƒ“¥ƒWƒvƒV[ ŒŽ–¾‚è‚Ìò‚É—Ž‚¿‚é‰Ô‚Ñ‚ç‚ÌŽg—pðŒ‚ð‡‘t‚Æ“¯‚¶‚É•ÏX(Œø‰Ê“™‚Í–¢ŽÀ‘•)
-EƒuƒŒƒbƒVƒ“ƒO‚ª–{ŽI‚ł̓Xƒe[ƒ^ƒXƒAƒbƒv¨ƒGƒtƒFƒNƒg‚¾‚Á‚½‚Ì‚Å‚»‚̂悤‚É•ÏX
-E–{ŽI‘ŠˆáƒXƒŒƒbƒh part2 >>145 zzz‚³‚ñ‚Ì•ñ‚𔽉f
-E“¯ƒXƒŒ >>143 plala‚³‚ñ‚Ì•ñ‚𔽉f
-
- (db/)
- skill_require_db.txt •ÏX
- (conf/)
- help.txt ƒEƒ“ƒoƒ‰’ljÁ
- map_athena.conf ƒEƒ“ƒoƒ‰ŠÖ˜A‚̃Rƒƒ“ƒgƒAƒEƒg‚ð‰ðœ
- (map/)
- atcommand.c NULLƒ`ƒFƒbƒN‹­‰»
- atcommand() @mapmove‚È‚Ç‚Å—Ž‚¿‚é–â‘è‚ðC³
- atcommand_go() ƒEƒ“ƒoƒ‰’ljÁ
- battle.c NULLƒ`ƒFƒbƒN‹­‰»
- battle_calc_mob_weapon_attack() ƒo[ƒT[ƒNŽžƒ_ƒ[ƒW150%
- battle_calc_pc_weapon_attack() ƒo[ƒT[ƒNŽžƒ_ƒ[ƒW150%
- chat.c NULLƒ`ƒFƒbƒN‹­‰»
- chrif.c NULLƒ`ƒFƒbƒN‹­‰»
- clif.c NULLƒ`ƒFƒbƒN‹­‰»
- clif_parse_ActionRequest() ƒ_ƒ“ƒXŽž‚̈—‚ðŽáŠ±•ÏX
- clif_parse_GlobalMessage() ƒo[ƒT[ƒNŽž‚͉ï˜b‚ªo—ˆ‚È‚¢‚悤‚É•ÏX
- clif_parse_Wis() ƒo[ƒT[ƒNŽž‚͉ï˜b‚ªo—ˆ‚È‚¢‚悤‚É•ÏX
- clif_parse_PartyMessage() “¯ã
- clif_parse_GuildMessage() “¯ã
- clif_parse_TakeItem() ƒo[ƒT[ƒNŽž‚̓AƒCƒeƒ€‚ðŽæ‚ê‚È‚¢‚悤‚É•ÏX
- clif_parse_DropItem() ƒo[ƒT[ƒNŽž‚̓AƒCƒeƒ€‚ð—Ž‚Æ‚¹‚È‚¢‚悤‚É•ÏX
- clif_parse_UseItem() ƒo[ƒT[ƒNŽž‚̓AƒCƒeƒ€‚ðŽg‚¦‚È‚¢‚悤‚É•ÏX
- clif_parse_EquipItem() ƒo[ƒT[ƒNŽž‚Í‘•”õ‚Å‚«‚È‚¢‚悤‚É•ÏX
- clif_parse_UnequipItem() ƒo[ƒT[ƒNŽž‚Í‘•”õ‰ðœ‚Å‚«‚È‚¢‚悤‚É•ÏX
- clif_parse_UseSkillToId() ƒo[ƒT[ƒNŽž‚̓XƒLƒ‹Žg—p‚ª‚Å‚«‚È‚¢‚悤‚É•ÏX
- clif_parse_UseSkillToPos() “¯ã
- clif_parse_UseSkillMap() “¯ã
- guild.c NULLƒ`ƒFƒbƒN‹­‰»
- intif.c NULLƒ`ƒFƒbƒN‹­‰»
- itemdb.c NULLƒ`ƒFƒbƒN‹­‰»
- map.c NULLƒ`ƒFƒbƒN‹­‰»
- map_quit() ƒo[ƒT[ƒNŽž‚ɃƒOƒAƒEƒg‚·‚é‚ÆHP 100/SP 0‚É‚È‚é‚悤‚É•ÏX
- mob.c
- mob_attack() clif_fixmobpos()‚ð‘—M‚µ‚È‚¢‚悤‚É•ÏX
- mob_timer() NULLƒ`ƒFƒbƒNðŒ‚ð•ÏX
- mobskill_castend_id() “¯ãAƒo[ƒT[ƒNŽžƒXƒLƒ‹‚ðŽg‚¦‚È‚¢‚悤‚É•ÏX
- mobskill_castend_pos() ƒo[ƒT[ƒNŽžƒXƒLƒ‹‚ðŽg‚¦‚È‚¢‚悤‚É•ÏX
- mobskill_use_id() “¯ã
- mobskill_use_pos() “¯ã
- npc.c NULLƒ`ƒFƒbƒN‹­‰»
- party.c NULLƒ`ƒFƒbƒN‹­‰»
- path.c NULLƒ`ƒFƒbƒN‹­‰»
- pc.c NULLƒ`ƒFƒbƒN‹­‰»
- pc_calcstatus() ƒo[ƒT[ƒNŽž‚Í‘¬“xUP•MHP3”{AƒƒfƒBƒeƒCƒeƒBƒI‚ÌSP‰ñ•œ‘‰Á‚ðSPR‚Å‚Í‚È‚­’Êí‰ñ•œ‚É‚©‚©‚é‚悤‚É‚µ‚½
- pc_heal() ƒo[ƒT[ƒNŽž‚͉ñ•œ‚µ‚È‚¢
- pc_jobchange() “]E’¼Œã1•à“®‚©‚È‚¢‚Æ•ž‚ÌF‚ª”½‰f‚³‚ê‚È‚©‚Á‚½‚Ì‚ðC³
- pc_natural_heal_sub() ƒo[ƒT[ƒN’†‚ÍSP‚ªŽ©‘R‰ñ•œ‚µ‚È‚¢‚悤‚É•ÏX(HP‚Í—Ç‚­•ª‚©‚ç‚È‚©‚Á‚½‚̂ʼnñ•œ‚·‚é‚悤‚É‚µ‚Ä‚ ‚é)
- pet.c NULLƒ`ƒFƒbƒN‹­‰»
- skill.c
- skill_castend_nodamage_id() ƒuƒŒƒbƒVƒ“ƒO“™‚̃pƒPƒbƒg‡‚ð•ÏXAƒXƒg[ƒ“ƒJ[ƒX‚ð•sŽ€‚É‚Í–³Œø‚É‚µ‚½
- skill_castend_map() ‚µ‚‚±‚¢‚­‚ç‚¢‚Ƀo[ƒT[ƒNŽž‚ɃXƒLƒ‹‚ðŽg‚¦‚È‚¢‚悤‚É•ÏX
- skill_check_condition() “¯ã
- skill_use_pos() “¯ã
- skill_use_id() “¯ã•ŒŽ–¾‚è‚Ìò‚É—Ž‚¿‚é‰Ô‚Ñ‚ç’ljÁ
- skill_status_change_end() ƒo[ƒT[ƒNŽž‚É‚ÍIAƒAƒCƒRƒ“‚ðÁ‹Ž‚·‚é‚悤‚É•ÏX
- skill_status_change_timer() NULLƒ`ƒFƒbƒNðŒ‚ð•ÏXAŒŽ–¾‚è‚Ìò‚É—Ž‚¿‚é‰Ô‚т玞SPÁ”ïAƒo[ƒT[ƒNŽžHP100ˆÈã‚È‚ç10•b‚ ‚½‚è1%Œ¸‚ç‚·‚悤‚É•ÏX
- skill_status_change_start() ƒo[ƒT[ƒNŽž‚É‚ÍIAƒAƒCƒRƒ“‚ð•\Ž¦‚·‚é‚悤‚É•ÏX
- skill_delunit() NULLƒ`ƒFƒbƒNðŒ‚ð•ÏX
- skill_check_condition_char_sub() ŒŽ–¾‚è‚Ìò‚É—Ž‚¿‚é‰Ô‚Ñ‚ç’ljÁ
- skill_check_condition_use_sub() “¯ã
- skill_is_danceskill() “¯ã
- skill_initunitgroup() “¯ã
- trade.c NULLƒ`ƒFƒbƒN‹­‰»
- vending.c NULLƒ`ƒFƒbƒN‹­‰»
-
---------------------
-//1004 by (“Ê)
-ENULLƒ`ƒFƒbƒN‚ŃGƒ“ƒoƒO‚µ‚Ä‚¢‚½‚Æ‚±‚ë‚ð‚¢‚­‚‚©C³‚Æ‘¼‚ÌNULLƒ`ƒFƒbƒN‹­‰»
-Eskill.c‚Å‚ànullpo‚ð•\Ž¦‚·‚é‚悤‚É•ÏX
-
- (map/)
- battle.c
- battle_damage() NULLƒ`ƒFƒbƒN‹­‰»
- battle_heal() “¯ã
- clif.c
- clif_damage() “¯ã
- map.c
- map_addflooritem() NULLƒ`ƒFƒbƒN‹­‰»
- mob.c
- mob_once_spawn() —]Œv‚ÈNULLƒ`ƒFƒbƒN‚ðíœ
- mob_once_spawn_area() “¯ã
- mob_damage() “¯ã
- mob_counttargeted() “¯ã
- mobskill_castend_id() “¯ã
- mob_summonslave() ƒƒbƒZ[ƒWŠÔˆá‚¢‚ðC³
- pc.c
- pc_damage() NULLƒ`ƒFƒbƒN‹­‰»
- skill.c ‚Ù‚Ú‘S•” NULLŠÖ˜AC³
-
---------------------
-//1003 by (“Ê)
-EjROƒNƒ‰ƒCƒAƒ“ƒg‚Å/accountŽg—pŽž‚ÉŒq‚ª‚ç‚È‚¢Œ´ˆö‚Ì0x200ƒpƒPƒbƒg–â‘è‚ðC³
-E0x1c9ƒpƒPƒbƒg‚ÌŒŠ–„‚ß‚ðˆø‚«‘±‚«Œp‘±’†
-Eˆêl‚Ź‘̂⇑t‚ðŽg—p‚Å‚«‚éÝ’è(player_skill_partner_check)‚ð’ljÁ
- ˆêl‚Ň‘t‚ðŽÀs‚µ‚½ê‡‚É‚Í’Êí‚̃_ƒ“ƒX‚Æ‹““®‚ª“¯‚¶‚É‚È‚è‚Ü‚·
-Eƒvƒƒ{ƒbƒN‚Í•sŽ€‚ɑ΂µ‚Ä”­“®‚µ‚È‚¢‚悤‚É•ÏX
-EFW‚Ì‚«”ò‚΂µ”»’è‚ð•ÏX
-EƒfƒŠƒ…[ƒW‚É…ê”»’è‚ð’ljÁA¹…‚ðì‚ê‚é‚Ì‚ðŠm”F
-EƒnƒCƒfƒBƒ“ƒO‚Ì—LŒøŽžŠÔ‚ª³‚µ‚­‹@”\‚·‚é‚悤‚ÉC³
-EƒAƒXƒyƒ‹ƒVƒI‚ð•sŽ€‚ÉŽg—p‚µ‚½ê‡A¹‘®«‚Ì40ƒ_ƒ[ƒW‚ð—^‚¦‚é‚悤‚É•ÏX
-EƒAƒXƒyƒ‹ƒVƒI‚ð•sŽ€ˆÈŠO‚ÌMOB‚ÉŽg—p‚µ‚Ä‚àŒø‰Ê‚ª–³‚¢‚悤‚É•ÏX
-E‡‘tAƒ_ƒ“ƒXA‰‰‘t’†‚ÌŒo‰ßŽžŠÔ‚É‚æ‚éSPÁ”ï‚ðŽÀ‘•
-E•ñ‚Ì‚ ‚Á‚½ƒK[ƒfƒBƒAƒ“‚ªƒMƒ‹ƒh–¢‰Á“üPC‚ðƒ^[ƒQƒbƒg‚µ‚½‚çmap‚ª—Ž‚¿‚é–â‘è‚ÌC³(ƒK[ƒfƒBƒAƒ“ŽÀ‘•“–Žž‚©‚炸‚Á‚Æ—Ž‚¿‚Ä‚½H)
-Emob.cAstorage.c‚Ìnullƒ`ƒFƒbƒN‚ð‹­‰»
- ƒGƒ‰[‚Å—Ž‚¿‚é‚ׂ«‚Æ‚±‚ë‚ð–³—‚â‚è’Ê툗‚É–ß‚µ‚Ä‚¢‚é‚Ì‚Å‘¼‚Å–â‘肪‚Å‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñ
- ‚»‚Ìê‡AƒRƒ“ƒ\[ƒ‹‚ÉuŠÖ”–¼ nullpov‚Æ•\Ž¦‚³‚ê‚é‚Ì‚Å•\Ž¦‚³‚ꂽꇂ͕ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·
- ‚à‚µ‚©‚µ‚½‚ç³í‚Ȉ—‚Å‚à•\Ž¦‚³‚ê‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñ‚ªA‚»‚ÌÛ‚à•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·
- –{—ˆƒGƒ‰[AŽÀ‚ͳíA‚Ç‚¿‚ç‚É‚µ‚Ä‚à‚±‚ꂪ•\Ž¦‚³‚ê‚é‚̂̓oƒO‚Å‚·
-
- (conf/)
- battle_athena.conf player_skill_partner_check’ljÁ
- (db/)
- skill_db.txt ƒAƒXƒyƒ‹ƒVƒI‚Ì‘®«‚ð¹‚É•ÏX
- (doc/)
- conf_ref.txt player_skill_partner_checkà–¾’ljÁ
- (login/)
- login.c
- parse_login() 0x200ƒpƒPƒbƒg‘Ήž
- (map/)
- mob.c NULLƒ`ƒFƒbƒN‚Å‚Ù‚Ú‘S•”
- storage.c NULLƒ`ƒFƒbƒN‚Å‚Ù‚Ú‘S•”
- battle.h •ÏX
- battle.c
- battle_calc_magic_attack() ƒAƒXƒyƒ‹ƒVƒI‚ð’ljÁAFW‚ð•ÏX
- battle_config_read() Ý’è’ljÁ
- clif.c
- clif_getareachar_skillunit() ’²¸Œ‹‰Ê‚Ì”½‰f
- clif_skill_setunit() “¯ã
- [1001‚Æ1002‚ÌŠÔ‚Ì•ÏX“_]
- skill.c NULLƒ`ƒFƒbƒN‚ð‘òŽR
- skill_castend_damage_id() ƒAƒXƒyƒ‹ƒVƒI’ljÁ
- skill_castend_nodamage_id() ƒAƒXƒyƒ‹ƒVƒIAƒvƒƒ{ƒbƒNˆ—•ÏX
- skill_castend_id() ƒAƒXƒyƒ‹ƒVƒIˆ—•ÏX
- skill_check_condition_char_sub() player_skill_partner_check‚ɑΉž
- skill_check_condition_use_sub() “¯ã
- skill_use_id() “¯ã
- skill_check_condition() “¯ã•ƒfƒŠƒ…[ƒW‘Ήž
- skill_status_change_timer() ƒnƒCƒfƒBƒ“ƒOC³Aƒ_ƒ“ƒX‰‰‘t‡‘t’†‚ÌSPÁ”ïŽÀ‘•
- skill_initunitgroup() ƒ_ƒ“ƒXSPÁ”ï—p•ÏX
- skill_status_change_start() “¯ã•ƒvƒƒ{ƒbƒN‚ðƒ{ƒX‚ÉŒø‚©‚È‚¢‚悤‚É(‚Å‚àbattle.c‚ÅŽ~‚ß‚Ä‚é‚©‚ç’Ê킱‚±‚Ü‚Å—ˆ‚È‚¢)
-
---------------------
-//1002 by ‚Ò‚´‚Ü‚ñ
-Eƒ|[ƒ^ƒ‹ƒoƒOC³
-EƒXƒLƒ‹ŠÖŒW‚ÌNullƒ`ƒFƒbƒN‹­‰»(by(“Ê))
- (map/)
- skill.c
- skill_castend_map() C³
-
---------------------
-//1001 by (“Ê)
-E0x1c9‚Å‚¢‚­‚‚©ƒpƒPƒbƒg‚ðŒ©”ä‚ׂĕω»‚Ì‚È‚¢‚Æ‚±‚ë‚ðŒÅ’è’l‚Å–„‚ßž‚Ý(¡Œãî•ñ‚ªW‚Ü‚é‚Æ•Ï‚í‚é‰Â”\«‘å)
-Eƒ_ƒ“ƒX’†‚ÍSP‚¾‚¯‰ñ•œ‚µ‚È‚¢‚悤‚É•ÏX
-E¹‘Ì‚Å‘Š•û‚ÌSP‚ª10ˆÈ‰º‚¾‚ÆŽg—pŽ¸”s‚É‚µ‚ÄŽg—p‚µ‚½‚çSP‚ð10Œ¸‚炵‚Ä‚Ý‚é(–¢Šm”F)
-E‡‘t‚̃XƒLƒ‹Žg—pƒpƒPƒbƒg‚ðŽáŠ±•ÏX
-
- (map/)
- clif.c
- clif_getareachar_skillunit() 0x1c9‚ÌŒŠ–„‚ߊJŽn
- clif_skill_setunit() 0x1c9‚ÌŒŠ–„‚ߊJŽn
- pc.c
- pc_natural_heal_sub() ƒ_ƒ“ƒX’†‚ÍSP‚̂݉ñ•œ‚µ‚È‚¢‚悤‚É•ÏX
- skill.c
- skill_check_condition() •ÏX
- skill_check_condition_char_sub() ¹‘Ì‚Í‘Š•û‚ÌSPƒ`ƒFƒbƒN‚·‚é‚悤‚É•ÏX
- skill_check_condition_use_sub() ¹‘Ì‚Í‘Š•û‚ÌSP‚ðŒ¸‚ç‚·‚悤‚É•ÏX
-
---------------------
-//1000 by ‚Ò‚´‚Ü‚ñ
-E0999‚Ì•ÏXŽæ‚è–ß‚µ
-Eƒgƒ‰ƒbƒv‚ÌŠª‚«ž‚ÝŽÀ‘•
-EƒCƒhƒDƒ“‚Ì—ÑŒç‚ÅNPC‚܂ʼnñ•œ‚µ‚½(‚悤‚ÉŒ©‚¦‚é)–â‘èC³(–¢ƒeƒXƒg)
-Eƒfƒ‚ƒ“ƒXƒgƒŒ[ƒVƒ‡ƒ“‚̃GƒtƒFƒNƒg•ÏX(‚±‚¿‚ç‚É–¾‹L)
- (map/)
- skill.c
- skill_count_target() ’ljÁ
- skill_unit_onplace()Askill_trap_splash() •ÏX
---------------------
-//0999 by eAthena Dev Team (Yor's Fixes)
-(login/)
- added email for accounts
-(char/)
- added email for character deletion
---------------------
-//0998 by (“Ê)
-Ebattle.c‚ňø”‚Ì‘¶Ý‚ðŠm”F‚¹‚¸‚É’l‚ðŒ©‚És‚Á‚Ä‚éŠÖ”‚ð‚¢‚­‚‚©C³
-Eƒ_ƒ“ƒX’†‚ÍÀ‚ê‚È‚¢‚悤‚É‚µ‚½(–{ŽI‘ŠˆáƒXƒŒƒbƒh part2 >>114 DoT‚³‚ñ)
-Eƒ_ƒ“ƒX’†‚ÍHPASP‚ª‰ñ•œ‚µ‚È‚¢‚悤‚É•ÏX(“¯ã)
-Eƒ_ƒ“ƒX’†‚Í’ÊíUŒ‚‚Å‚«‚È‚¢‚悤‚É‚µ‚½(–{ŽI‘ŠˆáƒXƒŒƒbƒh part2 >>116 EEE‚³‚ñ)
-E‡‘t’†•Ð•û‚ª—Ž‚¿‚½ê‡AŽc‚Á‚½‚Ù‚¤‚ʼn‰‘t‚ðŒp‘±‚·‚é‚悤‚É‚µ‚½(“¯ã)
-E‡‘t’†‚̓AƒhƒŠƒuˆÈŠO‚Å‚«‚È‚¢‚悤‚É•ÏX(“¯ã)
-E‡‘t”­“®ðŒ‚Ƀ_ƒ“ƒX’†‚¶‚á‚È‚¢•À‚Á‚Ä‚¢‚È‚¢‚ð’ljÁ(–{ŽI‘ŠˆáƒXƒŒƒbƒh part2 >>118 ‚ë‚낳‚ñ)
-Eˆ¢C—…Žg—pŒã‚ÉHP‚à‰ñ•œ‚µ‚È‚©‚Á‚½‚Ì‚ðC³
-
- (map/)
- battle.c
- battle_counttargeted() C³
- battle_getŒn ‚½‚Ô‚ñ‘S•”C³
- clif.c
- clif_parse_WalkToXY() ‡‘t‚Ì”»’f•û–@‚Ì•ÏX
- clif_parse_ActionRequest() ƒ_ƒ“ƒX’†‚͉£‚ç‚È‚¢À‚ç‚È‚¢‚悤‚É•ÏX
- map.c
- map_quit() ƒ_ƒ“ƒX’†’f’ljÁ
- mob.c
- mob_damage() skill_stop_dancing‚̈ø”‘‰Á‚É‚æ‚é•ÏX
- pc.c
- pc_setpos() “¯ã
- pc_damage() “¯ã
- pc_equipitem() “¯ã
- pc_natural_heal_sub() ƒ_ƒ“ƒX’†‚ÍŽ©‘R‰ñ•œ‚µ‚È‚¢‚悤‚É•ˆ¢C—…Žž‚ÍSP‚̂݉ñ•œ‚µ‚È‚¢‚悤‚É
- skill.c
- skill_castend_nodamage_id() skill_stop_dancing‚̈ø”‘‰Á‚É‚æ‚é•ÏX
- skill_status_change_start() “¯ã
- skill_check_condition_char_sub() ‘ŠŽè‚ªƒ_ƒ“ƒX’†‚âÀ‚Á‚Ä‚¢‚Ä‚à‡‘t‚Å‚«‚È‚¢‚悤‚É•ÏX
- skill_check_condition_use_sub() “¯ã
- skill_use_id() ‡‘t‚Ì”»’f•û–@‚Ì•ÏX•‡‘t’†‚̓AƒhƒŠƒuˆÈŠO‹ÖŽ~‚É
- skill_status_change_end() ‡‘t‚̃_ƒ“ƒXó‘Ô‰ðœ‚Í‘ŠŽè‚Ìval4‚ð0‚É‚·‚é‚悤‚É‚µ‚½
- skill_is_danceskill() –ß‚è’l•ÏX
- skill_stop_dancing() ˆø”‘‰ÁA‡‘t‚ŕЕû‚¾‚¯—Ž‚¿‚½‚Æ‚«‚̈—’ljÁ
- skill_delunitgroup() ‡‘tŽž‚̃Xƒe[ƒ^ƒX•ÏXˆ—‚ðª‚Ɉڂµ‚½
- skill_clear_unitgroup() Ž©•ª‚Ìbl->id‚ƃ†ƒjƒbƒgƒOƒ‹[ƒv‚Ìgroup->src_id‚ªˆá‚¤‚Æ‚«‚Í휂µ‚È‚¢‚悤‚É•ÏX
- skill.h •ÏX
-
---------------------
-//0997 by (“Ê)
-E“ñl‚Ň‘tAŽOl‚Ź‘Ì‚ðŽÀ‘•
- ‡‘t ƒo[ƒhEƒ_ƒ“ƒT[‚ª—×Ú‚µ‚½ƒZƒ‹‚É‚¢‚Ä“¯‚¶ƒXƒLƒ‹‚ðŽ‚Á‚Ä‚¢‚鎞‚É”­“®
- ƒXƒLƒ‹ƒŒƒxƒ‹‚Í—¼ŽÒ‚̃XƒLƒ‹ƒŒƒxƒ‹‚Ì’†ŠÔ
- –{ŽIŽd—l‚ª•ª‚©‚ç‚È‚¢‚¯‚ǎ΂ߗ×Ú‚àOK
- ¹‘Ì Žg—pŽÒ‚ÌXŽ²‚Å-1‚Æ+1‚ÌꊂɈêl‚¸‚ƒAƒRƒ‰ƒCƒg‚©ƒvƒŠ[ƒXƒg‚ª‚¢‚鎞‚É”­“®‚·‚é‚ÆŽv‚¤(–¢ƒeƒXƒg)
- Žg—pŽÒ › ƒAƒRƒvƒŠ œ
- OK œ›œ
-
- NG œ
- ›œ
-Eƒg[ƒL[ƒ{ƒbƒNƒX‚ðŽg‚Á‚ÄÝ’uŽž‚ÉÀ‚Á‚Ä‚¢‚½Žž‚̓XƒLƒ‹Žg—pŽ¸”s‚É‚µ‚Ä‚Ý‚½
-
- (db/)
- item_db.txt ‘º³‚ÌŽô‚¢—¦‚ð5%‚É(by e2‚³‚ñ)
- (map/)
- skill.c
- skill_check_condition_char_sub() ’ljÁ
- skill_check_condition_use_sub() ’ljÁ
- skill_check_condition() •ÏX
- skill_use_id() •ÏX
- skill_initunitgroup() •ÏX
- skill_delunitgroup() •ÏX
- clif.c
- clif_parse_UseSkillToPos() •ÏX
-
---------------------
-//0996 by (“Ê)
-EƒAƒhƒŠƒu‚Ì5•b§ŒÀ‚ðcast_db.txt‚Ìupkeep_time2‚ŧŒä‚Å‚«‚é‚悤‚É•ÏX
-E‘º³‚ÅŽ©•ª‚ðŽô‚킹‚邽‚ß‚Ébonus2 bAddEff2‚ð’ljÁ
-EŽô‚í‚ê‚Ä‚¢‚ÄI—¹‚Å‚«‚È‚¢Žž‚É‚àu¡‚ÍI—¹‚Å‚«‚Ü‚¹‚ñv‚ª•\Ž¦‚³‚ê‚é‚悤‚É‚µ‚½
-Eƒ_ƒ“ƒXƒGƒtƒFƒNƒg“™ˆÚ“®Žž‚ÉŒø‰Ê‚Ì“K—p”»’f‚ªˆÚ“®‘O‚És‚í‚ê‚Ä‚¢‚½‚Ì‚ðˆÚ“®Œã‚É•ÏX•Žg‚í‚È‚­‚Ä‚¢‚¢•Ï”‚ð”pŽ~
-
- (db/)
- cast_db.txt
- const.txt
- item_db.txt
- (doc/)
- item_bonus.txt
- (src/)
- clif.c
- clif_parse_QuitGame() •ÏX
- map.h addeff2,arrow_addeff2 ’ljÁ
- pc.c
- pc_calcstatus() •ÏX
- pc_bonus2() •ÏX
- skill.c
- skill_additional_effect() •ÏX
- skill_check_condition() •ÏX
- skill_unit_move_unit_group() •ÏX
-
---------------------
-//0995 by (“Ê)
-Ebattle.pet_lootitem‚̃fƒtƒHƒ‹ƒg‚ªyes‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ðC³
-Ebattle.pet_lootitem‚Ì“K—p‚ðforeach‘O‚Å‚â‚é‚悤‚ÉC³
-Eƒyƒbƒg‚̉Šú‰»‚Åpd->lootitem‚ª‚ ‚鎞‚µ‚©‰Šú‰»‚³‚ê‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ðC³
-E—̈悪ˆÚ“®‚µ‚Ä‘ÎÛ‚ª—̈悩‚甲‚¯‚Ä‚àŒø‰Ê‚ª‰ðœ‚³‚ê‚È‚¢–â‘è‚ðC³
-EƒAƒhƒŠƒu‚̓_ƒ“ƒX”­“®‚©‚ç5•bˆÈãŒo‚½‚È‚¢‚ÆŽg—p‚Å‚«‚È‚¢‚悤‚É‚µ‚½
-
- (map/)
- pet.c
- pet_data_init() C³
- pet_ai_sub_hard() C³
- pet_ai_sub_hard_lootsearch() C³
- skill.c
- skill_blown() •ÏX
- skill_unit_onlimit() ƒGƒ‰[ƒƒbƒZ[ƒWC³
- skill_check_condition() •ÏX
- skill_initunitgroup() sd_data[SC_DANCING].val3‚Égettick()
- skill_unit_move_unit_group_sub() ’ljÁ
- skill_unit_move_unit_group() •ÏX
- skill.h skill_unit_move_unit_group() ˆø”•ÏX
- battle.c
- battle_config_read() pet_lootitem=0‚ÉC³
- pc.c
- pc_walk() •ÏX
-
---------------------
-//0994 by huge
-Ebattle.pet_lootitem‚ª“K‰ž‚³‚ê‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ðC³B
-Eƒyƒbƒg‚ɃpƒtƒH[ƒ}ƒ“ƒX‚ð‚³‚¹‚½ŒãA10•bŠÔ‚­‚ç‚¢‚ÍE‚킹‚È‚¢‚悤‚ÉB
-
- (map/)
- map.h pet_data‚Élootitem_timer’ljÁB
- pet.c
- pet_ai_sub_hard_lootsearch() C³B
- pet_lootitem_drop() C³B
-
---------------------
-//0993 by (“Ê)
-Eˆêl‚Ň‘t‚¾‚¯‚LJ‘tƒXƒLƒ‹’†‚Í“®‚¯‚È‚¢‚悤‚É
-EƒAƒ“ƒR[ƒ‹ŽÀ‘•B’¼‘O‚ÉŽg‚Á‚½ƒ_ƒ“ƒXƒXƒLƒ‹‚𔼕ª‚ÌSP‚ÅŽg‚¦‚Ü‚·
-Eƒ_ƒ“ƒX’†‚Ɉړ®‚·‚é‚ƃGƒtƒFƒNƒg‚àˆÚ“®‚·‚é‚悤‚É‚µ‚½
-E–¢ŽÀ‘•‚̃XƒLƒ‹‚ªŽg‚í‚ê‚é‚ÆUnknown skill‚Æ•\Ž¦‚³‚ê‚邱‚Æ‚ª‚ ‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñ
-ESage‚̃LƒƒƒXƒgƒLƒƒƒ“ƒZƒ‹‚ÅŽÀ‚Í‘O‚̃XƒLƒ‹‚ðŠo‚¦‚Ä‚¢‚È‚©‚Á‚½–â‘è‚ÌC³
-
- (map/)
- clif.c
- clif_parse_WalkToXY() •ÏX
- map.h ƒAƒ“ƒR[ƒ‹—p•Ï”‚̒ljÁ
- pc.c
- pc_walk()
- skill.c
- skill_blown
- skill_castend_nodamage_id
- skill_unitsetting() •ÏX
- skill_unit_onplace() ã©‚Å“¯‚¶ˆ—‚ð‚µ‚Ä‚¢‚écase‚ð‚Ü‚Æ‚ß‚½
- skill_unit_onout() Žg‚í‚ê‚Ä‚È‚¢unit2‚ðíœ
- skill_check_condition() •ÏX
- skill_use_id
- skill_initunitgroup() Žg‚Á‚½ƒ_ƒ“ƒXƒXƒLƒ‹‚ð•Ï”‚É“ü‚ê‚é‚悤‚É‚µ‚½
- skill_unit_move_unit_group() ’ljÁ
- skill.h •ÏX
-
---------------------
-//0992 by nokia
-
-map_quit‚ðC³‚µ‚ăƒ‚ƒŠ‚ðŽß•ú‚·‚鎞‰½“x‚à‚ðŽß•ú‚·‚邽‚߃ƒ‚ƒŠ‚̊ԈႢ‚ª‹N‚±‚é–â‘è‚𵂭
-
- (map/)
- map.c
- map_quit()
-
---------------------
-//0991 by (“Ê)
-Eƒg[ƒL[ƒ{ƒbƒNƒX‚ðŽ©•ª‚ª“¥‚ñ‚Å‚à”­“®‚µ‚È‚¢–{ŽIŽd—l‚É•ÏX
-EƒXƒLƒ‹‰r¥’†‚ƃfƒBƒŒƒC’†‚̓Nƒ‰ƒCƒAƒ“ƒg‚ðI—¹‚Å‚«‚È‚¢‚悤‚É‚µ‚½‚¯‚ÇA“G‚ÉUŒ‚‚³‚ê‚Ä‚¢‚é‚Æ‚«‚ÍI—¹‚Å‚«‚Ü‚·(‚²‚ß‚ñ‚È‚³‚¢‚ÁII)
-
- (map/)
- clif.c
- clif_parse_QuitGame() •ÏX
- skill.c
- skill_unitsetting() •ÏX
-
---------------------
-//0990 by ‚Ò‚´‚Ü‚ñ
-Eˆê•”‚̃gƒ‰ƒbƒv‚ð”͈ÍUŒ‚‚É•ÏXiŠª‚«ž‚Ý‚Í–¢ŽÀ‘•jB
-Emapflag‚Épvp_nocalcrank‚Æpvp_nightmaredrop’ljÁB
- E<gatname><tab>mapflag<tab>pvp_nocalcrank<tab>dummy
- @PvP‚É‚æ‚郉ƒ“ƒLƒ“ƒOŒvŽZ‚ð‚µ‚È‚¢‚悤‚É‚µ‚Ü‚·B
- E<gatname><tab>mapflag<tab>pvp_nightmaredrop<tab><item>,<type>,<per>
- @PvP‚É‚ÄŽ€–S‚µ‚½ê‡A<per>‚ÌŠm—¦‚ŃAƒCƒeƒ€‚ðƒhƒƒbƒv‚µ‚Ü‚·B
- @<item>: ƒhƒƒbƒv‚·‚éƒAƒCƒeƒ€ID‚ðŽw’肵‚Ü‚·Brandom‚Æ‹Lq‚·‚é‚ÆŠŽ•i‚©‚烉ƒ“ƒ_ƒ€‚Ƀhƒƒbƒv‚µ‚Ü‚·B
- @<type>: ƒhƒƒbƒv‚·‚éƒAƒCƒeƒ€‚̃^ƒCƒv‚ðŽw’肵‚Ü‚·Binventory:ŠŽ•i equip:‘•”õ•i all:‘S•”
- @<per>: ƒhƒƒbƒv‚·‚éŠm—¦‚Å‚·B–œ•ª—¦‚ÅŽw’肵‚Ü‚·B
- (map/)
- skill.c
- skill_unit_onplace() •ÏX
- skill_trap_splash() ’ljÁ
- pc.c
- pc_damage() •ÏX
- npc.c
- npc_parse_mapflag() •ÏX
- map.h
- map_data‚Ƀƒ“ƒo’ljÁ
- (conf/)
- mapflag.txt
- ƒiƒCƒgƒƒAƒ‚[ƒh‚ɃhƒƒbƒvÝ’è’ljÁ
-
---------------------
-//0989 by (“Ê)
-EƒXƒvƒŠƒ“ƒOƒgƒ‰ƒbƒv‚ð–^Š‚ÅŒ©‚½SS‚ðŒ³‚ÉŽÀ‘•‚µ‚Ä‚Ý‚½Bˆá‚Á‚½‚ç‘ŠˆáƒXƒŒ‚Ö
-EƒfƒBƒeƒNƒeƒBƒ“ƒO‚ð–^Š‚ÅŒ©‚½‰ðà•¶‚ðŒ³‚ÉŽÀ‘•‚µ‚Ä‚Ý‚½Bˆá‚Á‚½‚ç‘ŠˆáƒXƒŒ‚Ö
-EƒLƒƒƒXƒgƒLƒƒƒ“ƒZƒ‹Žž‚Ìdelete_timerƒGƒ‰[‚ɒljÁ‚ŃXƒLƒ‹ID‚ð•\Ž¦‚·‚é‚悤‚É‚µ‚½B‚ ‚킹‚Ä•ñ‚·‚é‚ƃGƒ‰[‚ÌŒ´ˆö‚ª•ª‚©‚é‚©‚à
-
- (map/)
- skill.c
- skill_castend_nodamage_id() •ÏX
- skill_castend_pos2() •ÏX
- skill_castcancel() •ÏX
-
---------------------
-//0988 by (“Ê)
-Eƒg[ƒL[ƒ{ƒbƒNƒX‚Íí‚É‘«Œ³‚É’u‚¯‚é‚悤‚É•ÏX‚ÆKalen‚³‚ñ‚É–á‚Á‚½î•ñ“™‚ðŒ³‚ÉƒpƒPƒbƒg‚ð–{ŽI‚É‚ ‚킹‚Ä‚Ý‚½
-EƒVƒ‡ƒbƒNƒEƒF[ƒuƒgƒ‰ƒbƒv‚ÉŒø‰Ê‚ð’ljÁ‚µ‚½‚‚à‚è(–¢Šm”F)
-Eƒuƒ‰ƒXƒgƒ}ƒCƒ“‚ƃNƒŒƒCƒ‚ƒAƒgƒ‰ƒbƒv‚ð‰£‚é‚Æ‚«”ò‚Ԃ悤‚É‚µ‚½
-EƒŠƒ€[ƒuƒgƒ‰ƒbƒv‚Åã©(skill_require_db‚ÅŽw’肵‚½ƒAƒCƒeƒ€)‚ð‰ñŽû‚Å‚«‚é‚悤‚É‚µ‚½
-Eª‚ÌŽÀ‘•‚É‚æ‚èã©‚ÌŽžŠÔØ‚ê‚Åã©‚ªo‚éƒIƒŠƒWƒiƒ‹Žd—l‚̓Rƒƒ“ƒgƒAƒEƒg
-Eƒuƒ‰ƒXƒgƒ}ƒCƒ“‚ÌŒø‰ÊŽžŠÔ‚ª’·‚¢‚Ì‚ðC³
-
- (db/)
- cast_db.txt
- (map/)
- battle.c
- battle_check_target() •ÏX
- mob.c
- mobskill_castend_pos() •ÏX
- skill.c
- skill_additional_effect() •ÏX
- skill_blown() •ÏX
- skill_castend_nodamage_id() •ÏX
- skill_castend_pos2() •ÏX
- skill_unitsetting() •ÏX
- skill_unit_onplace() •ÏX
- skill_unit_ondamaged() •ÏX
- skill_castend_pos() •ÏX
- skill_unit_timer_sub() •ÏX
-
---------------------
-//0987 by ŒÓ’±—–
-
-Eƒ†[ƒU[’è‹`ŠÖ”/ƒTƒuƒ‹[ƒeƒBƒ“‚Ɉø”‚ðŽw’è‰Â”\‚É
- Ú‚µ‚­‚Í script_ref.txt ‚ðŽQÆ
-
- (map/)
- scirpt.c
- buildin_getarg()’ljÁ
- buildin_callsub(),buildin_callfunc(),run_func()C³
- (doc/)
- script_ref.txt
- ˆø”‚ɂ‚¢‚Ä‚Ìà–¾’ljÁ
-
-Egetguildname,getpartyname,getcastlename,strcharinfoC³
- C_STR‚Œ蔕¶Žš—ñ(C_CONSTSTR)‚ð•Ô‚µ‚Ä‚¢‚½–â‘èC³
- strcharinfo‚ŃMƒ‹ƒh–¼‚È‚Ç‚ðŠ“¾‚·‚éÛA–¢Š‘®‚¾‚Á‚½‚Æ‚«‚Ì–â‘è
-
- (map/)
- script.c
- buildin_getguildname(),buildin_getpartyname()
- buildin_getcastlename(),buildin_strcharinfo()
-
---------------------
-//0986 by (“Ê)
-Eclient_packet‚Ì‹Lq‚©‚ç„Ž@‚µ‚ăg[ƒL[ƒ{ƒbƒNƒX‚ðŽÀ‘•‚µ‚Ä‚Ý‚½‚‚à‚è
-
- (db/)
- skill_db.txt
- (map/)
- clif.c
- clif_talkiebox() ’ljÁ
- clif_parse_UseSkillToPos() •ÏX
- clif_parse() •ÏX
- clif.h •ÏX
- map.h •ÏX
- skill.c
- skill_castend_pos2() •ÏX
- skill_unitsetting() •ÏX
- skill_unit_onplace() •ÏX
-
---------------------
-//0985 by (“Ê)
-EƒT[ƒo[snapshot
-E/script/extension‚ÉŒê‚è•”‚ð’ljÁ‚µ‚½‚è
-E0984‚ÅAthenaŽG’kƒXƒŒƒbƒh part3>>92 Michael‚³‚ñ‚ÌC³‚ðŽæ‚èž‚ñ‚Å‚½
-EƒoƒO•ñƒXƒŒƒbƒh part5 >>45‚É“]Ú‚³‚ê‚Ä‚½ ‚ ‚â‚Ë‚³‚ñ‚ÌC³‚ðŽæ‚èž‚Ý
-EƒoƒO•ñƒXƒŒƒbƒh part5 >>54 rari‚³‚ñ‚Ì‚½‚Ê‚«–XC³‚ðŽæ‚èž‚Ý
-
- (script/extension/)
- npc_event_kataribe6.txt ’ljÁ
- npc_event_kataribe7.txt ’ljÁ
- (script/npc/)
- quest/npc_event_hat.txt C³
- job/npc_job_magician.txt C³
-
---------------------
-//0984 by (“Ê)
-EƒZ[ƒW‚̃tƒŠ[ƒLƒƒƒXƒg‚Æ‚¢‚¤ƒXƒLƒ‹‚Ì‘¶Ý‚ð’m‚ç‚È‚©‚Á‚½‚Ì‚Å0983‚Ì•ÏX‚ðˆê•”–ß‚µ
-EƒAƒCƒeƒ€XV‚µ‚½‚¯‚Ç‚‚ê”L‚ƃCƒ“ƒfƒBƒAƒ“ƒoƒ“ƒ_ƒi‚ª‘•”õ‚Å‚«‚È‚¢H
-Eƒ}ƒbƒvƒtƒ‰ƒO‚ƃ‚ƒ“ƒXƒ^[”z’u‚ðÅV”Å‚É
-
- (db/)
- item_db.txt
- (conf/)
- mapflag.txt
- (script/mob/)
- npc_monster.txt
- (map/)
- clif.c
- clif_parse_WalkToXY() C³
-
---------------------
-//0983 by (“Ê)
-E’·‚¢‰r¥’†‚É•à‚«‚Ü‚í‚ꂽ‹C‚ª‚·‚é‚Ì‚ÅC³
-Eƒyƒbƒgƒ‹[ƒŒƒbƒg‰ñ“]’†‚É‘ÎÛ‚ª’@‚«ŽE‚³‚ꂽ‚çmap-server‚ª¢‚é‚Ì‚ðC³
-EƒvƒƒtƒFƒbƒT[ ƒ‰ƒCƒt’u‚«Š·‚¦‚̎蔲‚«ˆ—‚ð‚¿‚å‚Á‚ƃ}ƒV‚É‚µ‚½
-
- (map/)
- clif.c
- clif_parse_WalkToXY() C³
- pet.c
- pet_catch_process2() C³
- skill.c
- skill_castend_nodamage_id() C³
-
---------------------
-//0982 by (“Ê)
-E“]¶ƒXƒLƒ‹‚Ì`
- ƒXƒg[ƒJ[ ƒŠƒWƒFƒNƒgƒ\[ƒh ‘ŠŽè‚ªPC‚Ìꇂ͌•‚¶‚á‚È‚¯‚ê‚Î’µ‚Ë•Ô‚³‚È‚¢—\’è
- ƒvƒƒtƒFƒbƒT[ ƒƒ‚ƒ‰ƒCƒY 12•b‚̌ŒèƒLƒƒƒXƒgƒ^ƒCƒ€A‚»‚ÌŒãƒXƒLƒ‹Žg—p‚̃LƒƒƒXƒgƒ^ƒCƒ€‚ª3‰ñ‚¾‚¯1/3‚É‚È‚é
- ƒvƒƒtƒFƒbƒT[ ƒ‰ƒCƒt’u‚«Š·‚¦ HP‚ð10%Œ¸‚炵‚ÄSP‚ð‘‚â‚·BŒ¸‚Á‚½HP‚̃GƒtƒFƒNƒg‚Í–³‚µ‚É‚µ‚Ä‚Ý‚½
-EŒ©Ø‚è‚Ɖñ”𗦑‰Á‚ÌFlee㸂ªƒXƒe[ƒ^ƒX•Ï‰»Žž‚É‚µ‚©”½‰f‚³‚ê‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ðC³
-E0981‚ÅŽ©•ªˆÈŠO‚Í•à‚¢‚½‚ç•ž‚ÌF‚ª–ß‚Á‚Ä‚µ‚Ü‚¤‚Ì‚ð‚È‚ñ‚Æ‚©‚µ‚½‚‚à‚è
-
- (db/)
- skill_require_db.txt
- (map/)
- battle.c
- battle_calc_damage() C³
- clif.c
- clif_movechar() C³
- clif_getareachar_pc() C³
- pc.c
- pc_calcstatus() C³
- skill.c
- SkillStatusChangeTable •ÏX
- skill_castend_nodamage_id() •ÏX
- skill_use_id() •ÏX
- skill_use_pos() •ÏX
- skill_status_change_timer() •ÏX
- skill_status_change_start() •ÏX
- skill.h •ÏX
-
---------------------
-//0981 by (“Ê)
-E“]¶ƒXƒLƒ‹‚Ì`
- ƒXƒg[ƒJ[ ƒŠƒWƒFƒNƒgƒ\[ƒh ˆê’èŠm—¦‚Ń_ƒ[ƒW‚𔼕ª‚É‚µ‚ÄŒ¸‚炵‚½•ª‚ð‘ŠŽè‚É’µ‚Ë•Ô‚·‚悤‚É‚µ‚½c‚ªA’µ‚Ë•Ô‚µ‚½ƒ_ƒ[ƒW‚̃GƒtƒFƒNƒgo‚Ü‚¹‚ñ
-E•ž‚ÌF‚ð•ÏX••Û‘¶‚µ‚Ä‚¢‚éꇂɃŠƒƒO‚·‚é‚ÆŒ³‚ÌF‚É–ß‚Á‚Ä‚é‚悤‚ÉŒ©‚¦‚é–â‘è‚ÌC³
-
- (db/)
- skill_db.txt
- (map/)
- clif.c
- clif_parse_LoadEndAck() C³
- battle.c
- battle_calc_damage() C³
- skill.c
- skill_status_change_timer() C³
- skill_status_change_start() C³
-
---------------------
-//0980 by (“Ê)
-E—á‚É‚æ‚Á‚Ä“]¶ƒXƒLƒ‹‚ƃ‚ƒ“ƒNŠÖ˜A
- ƒXƒiƒCƒp[ ƒVƒƒ[ƒvƒVƒ…[ƒeƒBƒ“ƒO ƒNƒŠƒeƒBƒJƒ‹—¦’²®H
- ƒnƒCƒEƒBƒU[ƒh ƒ\ƒEƒ‹ƒhƒŒƒCƒ“ MSP‘—Ê‚ÆMob‚ð“|‚µ‚½‚Æ‚«‚ÉSP(mobLv*(65+15*SkillLv)/100)‰ñ•œB‚Å‚à–{“–‚͔͈ÍUŒ‚‚Ìꇂ͉ñ•œ‚µ‚È‚¢‚炵‚¢H
- ƒnƒCƒEƒBƒU[ƒh –‚–@—Í‘• Žg‚Á‚½‚çMATK‚ªSkillLv%‘—ÊBŽŸ‚̃XƒLƒ‹Žg—pŽž‚ÉŒ³‚É–ß‚é
- ƒ‚ƒ“ƒN ‹C’D ‚¿‚å‚Á‚ÆæŽæ‚肵‚Ä20%‚ÌŠm—¦‚Å“G‚ÌLv*2‚ÌSP‚ð‹zŽûB¬Œ÷‚µ‚½‚Æ‚«‚̓^[ƒQƒbƒg‚ðŽæ“¾‚·‚é‚悤‚É‚µ‚Ä‚Ý‚½
-EƒAƒCƒeƒ€–¼‚ðjROƒEƒ“ƒoƒ‰‚É€‹’‚³‚¹‚Ä‚Ý‚½‚‚à‚è
-
- (db/)
- cast_db.txt
- item_db.txt
- (map/)
- battle.c
- battle_calc_pc_weapon_attack() •ÏX
- mob.c
- mob_damage() •ÏX
- pc.c
- pc_calcstatus() •ÏX
- skill.c
- skill_castend_nodamage_id() •ÏX
- skill_use_id() •ÏX
- skill_use_pos() •ÏX
- skill_status_change_end() •ÏX
- skill_status_change_timer() •ÏX
- skill_status_change_start() •ÏX
-
---------------------
-//0979 by (“Ê)
-E“]¶ƒXƒLƒ‹‚ð‚¿‚å‚Á‚Æ’²®
- ƒnƒCƒEƒBƒU[ƒh ƒ}ƒWƒbƒNƒNƒ‰ƒbƒVƒƒ[ •ŠíUŒ‚‚ÅBaseATKŒvŽZ‚ðMATK2‚Å‚µ‚Ä‚Ý‚é
-E‘§‚ð–{ŽIŽd—l•—‚ÉHP‚ÆSP‚̉ñ•œƒ^ƒCƒ}[‚𕪂¯‚ÄÀ‚Á‚Ä‚¢‚È‚­‚Ä‚à“®‚©‚È‚¯‚ê‚΃^ƒCƒ}[‚ªi‚ނ悤‚É‚µ‚½
-Eˆ¢C—…Žg—pŒã‚ÉHP‚ÆSP‚ª5•ªŠÔŽ©‘R‰ñ•œ‚µ‚È‚¢–{ŽIŽg—p•—‚É‚µ‚½(csat_db.txt‚Ìupkeep_time2‚Å’²®‰Â”\)
-EŒÃ‚¢gcc‚Åskill_unit_timer_sub_onplace()‚ ‚½‚è‚ŃRƒ“ƒpƒCƒ‹ƒGƒ‰[‚É‚È‚Á‚½‚Ì‚ðC³
-
- (db/)
- cast_db.txt
- (map/)
- battle.c
- battle_calc_pet_weapon_attack() •ÏX
- battle_calc_mob_weapon_attack() •ÏX
- battle_calc_pc_weapon_attack() •ÏX
- map.h
- pc.c
- pc_authok() •ÏX
- pc_walk() •ÏX
- pc_spirit_heal() íœ
- pc_spirit_heal_hp() ’ljÁ
- pc_spirit_heal_sp() ’ljÁ
- pc_natural_heal_sub() •ÏX
- skill.c
- skill_additional_effect() •ÏX
- skill_castend_damage_id() •ÏX
- skill_status_change_start() •ÏX
- skill_unit_timer_sub_onplace() C³
-
---------------------
-//0978 by (“Ê)
-E“]¶ƒXƒLƒ‹‚ðC³‚µ‚½‚èFX
- ƒXƒiƒCƒp[ ƒtƒ@ƒ‹ƒRƒ“ƒAƒTƒ‹ƒg ‚Æ‚è‚ ‚¦‚¸”ò‚Ô‚¾‚¯‚¾‚ÆŽv‚Á‚Ä‚­‚¾‚³‚¢
- ƒXƒiƒCƒp[ ƒVƒƒ[ƒvƒVƒ…[ƒeƒBƒ“ƒO ƒ_ƒ[ƒW‘‰Á‚¾‚¯‚Ç1‘Ì‚¾‚¯
- ƒNƒ‰ƒEƒ“EƒWƒvƒV[ ƒAƒ[ƒoƒ‹ƒJƒ“ ƒ_ƒ[ƒW‘‰Á‚Æ9‰ñUŒ‚
- ƒnƒCƒEƒBƒU[ƒh ƒ}ƒWƒbƒNƒNƒ‰ƒbƒVƒƒ[ ƒGƒtƒFƒNƒg‚¾‚¯
-
-EƒAƒCƒeƒ€ŒðŠ·‚Åd—Ê‚ÌŒvŽZ‚ªˆá‚Á‚Ä‚¢‚½‚Ì‚ðC³
- (doc/)
- client_packet.txt ƒpƒPƒbƒg’·ƒe[ƒuƒ‹XV
- (map/)
- battle.c
- battle_calc_misc_attack() •ÏX
- battle_calc_pet_weapon_attack() •ÏX
- battle_calc_mob_weapon_attack() •ÏX
- battle_calc_pc_weapon_attack() •ÏX
- clif.c ƒpƒPƒbƒg’·‚Ì’è‹`‚ðXV
- skill.c
- skill_castend_damage_id() •ÏX
- trade.c
- trade_tradeadditem() C³
-
---------------------
-//0977 by (“Ê)
-E“]¶ƒXƒLƒ‹‚ðC³‚µ‚½‚èFX
- ƒAƒTƒVƒ“ƒNƒƒX ƒƒeƒIƒAƒTƒ‹ƒg ƒGƒtƒFƒNƒg‚ªˆá‚¤H
- ƒ[ƒhƒiƒCƒg ƒvƒŒƒbƒVƒƒ[ •K’†ƒ_ƒ[ƒW‚É‚µ‚Ä‚Ý‚½
- ƒ[ƒhƒiƒCƒg ƒI[ƒ‰ƒuƒŒ[ƒh‚Ì•K’†damage2‚ª‘¼‚Å‚à“K—p‚³‚ê‚Ä‚¢‚½‚Ì‚ðC³
- ƒ[ƒhƒiƒCƒg ƒSƒXƒyƒ‹ ƒGƒtƒFƒNƒgoŒ»ˆÊ’u‚Ì’²®
- ƒnƒCƒvƒŠ[ƒXƒg ƒAƒVƒƒƒ“ƒvƒeƒBƒI Œø‰ÊŽÀ‘•
- ƒnƒCƒvƒŠ[ƒXƒg ƒƒfƒBƒeƒCƒeƒBƒI Œø‰ÊŽÀ‘•
- ƒnƒCƒvƒŠ[ƒXƒg ƒoƒWƒŠƒJ SG‚Ý‚½‚¢‚ÉMob‚ªN“ü‚µ‚悤‚Æ‚·‚é‚Æ‚«”ò‚΂³‚ê‚é‚悤‚É‚µ‚½
- ƒzƒƒCƒgƒXƒ~ƒX ƒJ[ƒgƒu[ƒXƒg Œø‰ÊŽÀ‘•
- ƒzƒƒCƒgƒXƒ~ƒX ƒƒ‹ƒgƒ_ƒEƒ“ ƒGƒtƒFƒNƒg‚Æó‘ÔˆÙ펞ŠÔ‚¾‚¯(ŽÀÛ‚Ìó‘ԕω»‚Í–³‚µ)
- ƒzƒƒCƒgƒXƒ~ƒX ƒNƒŠƒGƒCƒgƒRƒCƒ“ –¼‘O“ü‚è‚Ì‹à‰Ý‚Æ‚©ì‚ê‚邾‚¯
- ƒXƒg[ƒJ[ ƒŠƒWƒFƒNƒgƒ\[ƒh ƒGƒtƒFƒNƒg‚Æó‘ÔˆÙ펞ŠÔ‚¾‚¯(ŽÀÛ‚Ìó‘ԕω»‚Í–³‚µ)
- ƒNƒ‰ƒEƒ“EƒWƒvƒV[ ƒ}ƒŠƒIƒlƒbƒgƒRƒ“ƒgƒ[ƒ‹ ƒGƒtƒFƒNƒg‚Æó‘ÔˆÙ펞ŠÔ‚¾‚¯(ŽÀÛ‚Ìó‘ԕω»‚Í–³‚µ)
- ƒvƒƒtƒFƒbƒT[ ƒtƒHƒOƒEƒH[ƒ‹ ƒGƒtƒFƒNƒg‚Æ—LŒøŽžŠÔ‚¾‚¯
- ƒXƒiƒCƒp[ ƒEƒCƒ“ƒhƒEƒH[ƒN ‘¬“x㸂ÆQMAŽ„‚ð–Y‚ê‚È‚¢‚Å‚ª‚©‚©‚é‚Ɖ𜂳‚ê‚é‚悤‚É‚µ‚½
- ƒXƒiƒCƒp[ ƒgƒDƒ‹[ƒTƒCƒg QMAŽ„‚ð–Y‚ê‚È‚¢‚łʼn𜂳‚ê‚é‚悤‚É‚µ‚Ä‚Ý‚½
-EƒgƒDƒ‹[ƒTƒCƒg‚Ì’Ô‚èŠÔˆá‚¢‚ðC³
-Estorage.c‚ŃRƒ“ƒpƒCƒ‹Œx‚ªo‚È‚¢‚悤‚É‚µ‚½‚‚à‚è
-
- (db/)
- cast_db.txt
- skill_db.txt
- skill_require_db.txt
- produce_db.txt
- (map/)
- battle.c
- battle_get_str() C³
- battle_get_agi() C³
- battle_get_vit() C³
- battle_get_int() C³
- battle_get_dex() C³
- battle_get_luk() C³
- battle_get_flee() C³
- battle_get_hit() C³
- battle_get_critical() C³
- battle_get_baseatk() C³
- battle_get_atk() C³
- battle_get_atk2() C³
- battle_get_def() C³
- battle_get_def2() C³
- battle_get_speed() C³
- battle_calc_damage() C³
- battle_calc_pet_weapon_attack() •ÏX
- battle_calc_mob_weapon_attack() •ÏX
- battle_calc_pc_weapon_attack() •ÏX
- pc.c
- pc_calcstatus() C³
- skill.c
- skill_get_unit_id() C³
- skill_additional_effect() C³
- skill_castend_nodamage_id() C³
- skill_castend_pos2() C³
- skill_unit_group() C³
- skill_unit_onplace() C³
- skill_unit_onout() C³
- skill_castend_pos() C³
- skill_check_condition() C³
- skill_status_change_end() C³
- skill_status_change_start() C³
- skill_can_produce_mix() C³
- skill_produce_mix() C³
- skill.h C³
- storage.c
- storage_comp_item() C³
- storage.h C³
-
---------------------
-//0976 by (“Ê)
-E“]¶ƒXƒLƒ‹‚ðC³‚µ‚½‚èFX
-E€”õ‚¾‚¯‚µ‚ÄŽÀ‘•‚Å‚«‚Ä‚È‚¢ƒXƒLƒ‹‚à‚ ‚è‚Ü‚·
- ƒ[ƒhƒiƒCƒg ƒI[ƒ‰ƒuƒŒ[ƒh ‘½•ª‚±‚ñ‚ÈŠ´‚¶H
- ƒ[ƒhƒiƒCƒg ƒpƒŠƒCƒ“ƒO ’µ‚Ë•Ô‚·‚¯‚ÇUŒ‚‚ð1‰ñŽ~‚ß‚é‚Ì‚Í–¢ŽÀ‘•
- ƒ[ƒhƒiƒCƒg ƒRƒ“ƒZƒ“ƒgƒŒ[ƒVƒ‡ƒ“ ƒCƒ“ƒfƒ…ƒA`‚Í—Ç‚­•ª‚©‚ç‚È‚¢‚Ì‚Å•ú’u
- ƒ[ƒhƒiƒCƒg ƒXƒpƒCƒ‰ƒ‹ƒsƒA[ƒX ’Êíƒ_ƒ[ƒW‘‰Á‚Æd—ʃ_ƒ[ƒW‘‰Á‚ƈꉞ5‰ñUŒ‚(‚È‚ñ‚©ˆá‚¤‹C‚ª‚·‚é)
- ƒ[ƒhƒiƒCƒg ƒwƒbƒhƒNƒ‰ƒbƒVƒ… ƒ_ƒ[ƒW‘‰Á‚ƃXƒe[ƒ^ƒX•ÏXH
- ƒ[ƒhƒiƒCƒg ƒWƒ‡ƒCƒ“ƒgƒr[ƒg ƒ_ƒ[ƒW‘‰Á‚ƃXƒe[ƒ^ƒX•ÏXH
- ƒAƒTƒVƒ“ƒNƒƒX ƒAƒhƒoƒ“ƒXƒhƒJƒ^[ƒ‹Œ¤‹† ‚½‚Ô‚ñ‚±‚ñ‚ÈŠ´‚¶H
- ƒXƒiƒCƒp[ ƒgƒDƒ‹[ƒTƒCƒg ‚½‚Ô‚ñ‚±‚ñ‚ÈŠ´‚¶H
- ƒXƒiƒCƒp[ ƒEƒBƒ“ƒhƒEƒH[ƒN ‚½‚Ô‚ñ‚±‚ñ‚ÈŠ´‚¶H‚Å‚à‘¬“x㸂Ƃ©‚Æ‹£‡‚µ‚½Žž‚̈—‚Í–¢ŽÀ‘•
- ƒXƒpƒCƒ_[ƒEƒFƒbƒu ‚Æ‚è‚ ‚¦‚¸ƒAƒ“ƒNƒ‹ƒXƒlƒA‚Æ“¯‚¶‚悤‚ÈŠ´‚¶•‰ñ”𗦔¼Œ¸
- ƒ`ƒƒƒ“ƒsƒIƒ“ ‹¶‹CŒ÷ “K“–‚É‘‚₵‚Ä‚¢‚½‚Ì‚ð‚¿‚á‚ñ‚Æ‘‚â‚·‚悤‚É‚µ‚½
-EoŒŒó‘Ô‚ÆœÜó‘Ô‚ÌŽæ‚舵‚¢‚ª‚æ‚­‚í‚©‚è‚Ü‚¹‚ñ‚ÁII
-
- (db/)
- cast_db.txt
- skill_db.txt
- skill_require_db.txt
- (doc/)
- db_ref.txt
- (map/)
- battle.c
- battle_get_str() C³
- battle_get_agi() C³
- battle_get_vit() C³
- battle_get_int() C³
- battle_get_dex() C³
- battle_get_luk() C³
- battle_get_flee() C³
- battle_get_hit() C³
- battle_get_critical() C³
- battle_get_baseatk() C³
- battle_get_atk() C³
- battle_get_atk2() C³
- battle_get_def() C³
- battle_get_def2() C³
- battle_get_speed() C³
- battle_calc_damage() C³
- clif.c
- clif_parse_WalkToXY() C³
- mob.c
- mob_can_move() C³
- mobskill_castend_pos() C³
- pc.c
- pc_calcstatus() C³
- pc_checkallowskill() C³
- skill.c
- skill_get_unit_id() C³
- skill_additional_effect() C³
- skill_castend_nodamage_id() C³
- skill_castend_pos2() C³
- skill_unit_group() C³
- skill_unit_onplace() C³
- skill_unit_onout() C³
- skill_castend_pos() C³
- skill_check_condition() C³
- skill_status_change_end() C³
- skill_status_change_start() C³
- skill_readdb() C³
- skill.h C³
---------------------
-//0975 by Sin
-E0973‚ÅŽÀ‘•‚³‚ꂽƒXƒNƒŠƒvƒg‚É‚æ‚éBaseLv, JobLv‚Ì•ÏXŽž‚ÉA
-@ƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒg‚âƒXƒLƒ‹ƒ|ƒCƒ“ƒg‚ðŽæ“¾‚Å‚«‚é‚悤‚ÉC³B
-@¦Ž¿–âƒXƒŒpart5 >>115 ”Y‚ß‚él ‚³‚ñ‚Ìpc.c‚ðŽQl‚É‚³‚¹‚Ä’¸‚«‚Ü‚µ‚½B‘½ŽÓB
-
- (map/)
- pc.c
- pc_setparam()
- case SP_BASELEVEL: C³
- case SP_JOBLEVEL: C³
---------------------
-//0974 by latte
-EƒOƒ‰ƒ“ƒhƒNƒƒX‚ð–{ŽI‚ÉŠî‚«C³
- ƒAƒ“ƒfƒbƒhˆ«–‚‹­§ˆÃˆÅ•t—^
- ”½“®ƒ_ƒ[ƒW”¼Œ¸Aƒ‚[ƒVƒ‡ƒ“‚È‚µ
- MOB(PC)‚ªd‚È‚Á‚½‚Æ‚«‚ÌHIT”
- %UPŒn•ŠíƒJ[ƒhŒø‰Ê‚È‚µ
- ‘®«‘Š«“ñdŒvŽZ
- MOBƒ_ƒ[ƒW•\Ž¦”’
-
- Œã”¼4€–Ú‚ÍÝ’è‰Â
-
-E퓬Šî–{ŒvŽZ‚ð–{ŽI‚ÉŠî‚«”÷C³iDEXƒTƒCƒY•â³A‹|Å’áƒ_ƒAPCƒTƒCƒY•â³j
-
-EŠ®‘S‰ñ”ð
- ƒXƒ^ƒ““™‚ÅŠ®‘S‰ñ”ð‚ª”­¶‚µ‚È‚©‚Á‚½‚Ì‚ðC³
- AGIVITƒyƒiƒ‹ƒeƒB‚ªŠ®‘S‰ñ”ð‚Ì“G‚àƒJƒEƒ“ƒg‚µ‚ÄŒvŽZ‚³‚ê‚Ä‚¢‚½‚Ì‚ðC³@Ý’è‰Â
- ƒI[ƒgƒJƒEƒ“ƒ^[‚Í–¢C³
-
-E‘qŒÉ‚ð•Â‚¶‚é‚Æ‚«AƒAƒCƒeƒ€ID‚Ń\[ƒg‚·‚é‚悤‚É‚µ‚½
-
-Ekalen‚³‚ñ‚̃vƒ‚PŽ·Ž–NPCƒXƒNƒŠƒvƒg‚ð‰ü‘¢‚µ‚Ä
- ¤‹Æ–h‰q’lA“ŠŽ‘‹àŠzA•ó” ‚Ì”‚ð–{ŽI‚É€‹’(¤‹Æ’l‚Í1~100)
- ‘SÔ‚ÉÝ’u
-
- (/script/npc)
- aldeg_cas01.txt ... prtg_cas05.txt C³
- (/script/npc/gvg)
- aldeg_cas01.txt ... prtg_cas05.txt ’ljÁ
- tbox.txt ’ljÁ
-
- (/conf)
- battle_athena.conf
- 6€–ڒljÁ
-
- (/map)
- mob.c/mob.h
- mob_attack() C³
- mob_counttargeted_sub(),mob_counttargeted() C³
- mobskill_use() C³iª‚̈ø”‚¾‚¯j
- pc.c/pc.h
- pc_counttargeted_sub(),pc_counttargeted() C³
- pc_attack_timer() C³
- pet.c
- pet_attack() C³
-
- map.h
- pc_data, mob_data, map_data •Ï”‚P‚’ljÁ
- enum1‚’ljÁ
- map.c/map.h
- map_count_oncell() ’ljÁ skill.c‚Å‚æ‚©‚Á‚½‚©‚àEEE
-
- skill.c
- GXŠÖ˜AC³(skill_additional_effect(), skill_attack(), skill_castend_damage_id(), skill_unit_onplace())
-
- battle.c C³
- battle.h C³
-
- storage.c/storage.h
- storage_comp_item() ’ljÁ
- sortage_sortitem(), sortage_gsortitem() ’ljÁ
- storage_storageclose(), storage_guild_storageclose() C³
---------------------
-//0973 by Ž‚Žqo^.^o
-EƒXƒNƒŠƒvƒg‚ÌBASELEVEL,JOBLEVEL–½—ߒljÁ
- —á: set BASELEVEL,1;
- —á: set JOBLEVEL,1;
- (map/)
- pc.c
- pc_setparam()
- case SP_BASELEVEL: €–ڒljÁ
- case SP_JOBLEVEL: €–ڒljÁ
-
---------------------
-//0972 by (“Ê)
-E“]¶ƒXƒLƒ‹‚ðƒGƒtƒFƒNƒg‚¾‚¯‚¢‚­‚‚©’ljÁ‚µ‚½‚è
-Eó‘ԕω»‚Í‚»‚Ì‚¤‚¿’N‚©‚ª
- ƒGƒtƒFƒNƒg(ƒXƒe[ƒ^ƒX•Ï‰»ƒAƒCƒRƒ“ŠÜ‚Þ)‚Ì‚Ý
- SC_AURABLADE: /* ƒI[ƒ‰ƒuƒŒ[ƒh */
- SC_PARRYING: /* ƒpƒŠƒCƒ“ƒO */
- SC_CONCENTRATION: /* ƒRƒ“ƒZƒ“ƒgƒŒ[ƒVƒ‡ƒ“ */
- SC_TENSIONRELAX: /* ƒeƒ“ƒVƒ‡ƒ“ƒŠƒ‰ƒbƒNƒX */
- SC_BERSERK: /* ƒo[ƒT[ƒN */
- SC_ASSUMPTIO: /* */
- SC_TURESIGHT: /* ƒgƒDƒ‹[ƒTƒCƒg */
- SC_CARTBOOST: /* ƒJ[ƒgƒu[ƒXƒg */
- SC_WINDWALK: /* ƒEƒCƒ“ƒhƒEƒH[ƒN */
-
- (db/)
- cast_db.txt
- (map/)
- skill.h
- skill.c
- SkillStatusChangeTable[] €–ڒljÁ
- skill_castend_nodamage_id() €–ڒljÁ
- skill_status_change_end() €–ڒljÁ
- skill_status_change_start() €–ڒljÁ
-
---------------------
-//0971 by (“Ê)
-Eatcommand.h‚ÉŽc‚Á‚Ä‚¢‚½jobchange2‚Æ‚©‚ÌŽcŠ[‚ðíœ
-E“]¶ƒXƒLƒ‹‚ðƒGƒtƒFƒNƒg‚¾‚¯‚¢‚­‚‚©’ljÁ‚µ‚½‚èƒ`ƒƒƒ“ƒsƒIƒ“‚Í‚»‚ê‚È‚è‚ɒljÁ‚µ‚½‚è
- ƒGƒtƒFƒNƒg‚Ì‚Ý
- ƒnƒCƒvƒŠ[ƒXƒg ƒoƒWƒŠƒJ(HP_BASILICA)
- ƒzƒƒCƒgƒXƒ~ƒX ƒJ[ƒgƒu[ƒXƒg(WS_CARTBOOST)
- ƒXƒiƒCƒp[ ƒgƒDƒ‹[ƒTƒCƒg(SN_SIGHT)
- ƒWƒvƒV[ ŒŽ–¾‚è‚Ìò‚É—Ž‚¿‚é‰Ô‚Ñ‚ç(CG_MOONLIT)
- ƒpƒ‰ƒfƒBƒ“ ƒSƒXƒyƒ‹(PA_GOSPEL)
- ’ljÁƒ_ƒ[ƒW“™‚È‚µ
- ƒ[ƒhƒiƒCƒg ƒwƒbƒhƒNƒ‰ƒbƒVƒ…(LK_HEADCRUSH)
- ƒ[ƒhƒiƒCƒg ƒWƒ‡ƒCƒ“ƒgƒr[ƒg(LK_JOINTBEAT)
- ƒ[ƒhƒiƒCƒg ƒXƒpƒCƒ‰ƒ‹ƒsƒA[ƒX(LK_SPIRALPIERCE)
- ƒpƒ‰ƒfƒBƒ“ ƒvƒŒƒbƒVƒƒ[(PA_PRESSURE)
- ƒpƒ‰ƒfƒBƒ“ ƒTƒNƒŠƒtƒ@ƒCƒX(PA_SACRIFICE)
- ‚»‚ê‚È‚è(ƒRƒ“ƒ{‚ÍŒq‚ª‚è‚Ü‚·‚ªƒfƒBƒŒƒC‚Í“K“–Aƒ_ƒ[ƒW’ljÁ‚Í‚ ‚邯‚Ç‚»‚êˆÈŠO‚̒ljÁŒø‰Ê‚Í–³‚µ)
- ƒ`ƒƒƒ“ƒsƒIƒ“ –ÒŒÕd”hŽR(CH_PALMSTRIKE)
- ƒ`ƒƒƒ“ƒsƒIƒ“ •šŒÕŒ(CH_TIGERFIST)
- ƒ`ƒƒƒ“ƒsƒIƒ“ ˜A’Œ•öŒ‚(CH_CHAINCRUSH)
- ƒ`ƒƒƒ“ƒsƒIƒ“ ‹¶‹CŒ÷(CH_SOULCOLLECT)
-
- (db/)
- cast_db.txt
- skill_db.txt
- skill_require_db.txt
- (map/)
- atcommand.h ƒSƒ~íœ
- battle.c
- battle_calc_pet_weapon_attack() •ÏX
- battle_calc_mob_weapon_attack() •ÏX
- battle_calc_pc_weapon_attack() •ÏX
- clif.c
- clif_parse_UseSkillToId() •ÏX
- skill.c
- skill_get_unit_id() €–ڒljÁ
- skill_attack() ƒ`ƒƒƒ“ƒsƒIƒ“ƒRƒ“ƒ{ˆ—’ljÁ
- skill_castend_damage_id() •ÏX
- skill_castend_nodamage_id() •ÏX
- skill_castend_id() •ÏX
- skill_unitsetting() •ÏX
- skill_check_condition() •ÏX
- skill_use_id() •ÏX
-
---------------------
-//0970 by (“Ê)
-EƒhƒŒƒCƒN‚̃EƒH[ƒ^[ƒ{[ƒ‹‚ªˆÙí‚É’É‚¢(121”­H‚炤)‚Ì‚ÅLv5ˆÈã‚ÌꇂÍ25”­‚ɧŒÀ
-EƒVƒOƒiƒ€ƒNƒ‹ƒVƒX‚ÌŒvŽZŽ®‚ð14+SkillLv‚©‚ç10+SkillLv*2•ÏX
-Eƒ\[ƒX‚Ì‹C‚ªŒü‚¢‚½‚Æ‚±‚ë‚É—Ž‘‚«
-EDBŠÖŒW‚ð‚Ü‚Æ‚ß‚Ä“¯«
-
- (map/)
- battle.c ƒRƒƒ“ƒgQY(BB)¶·¶·
- skill.c skill_status_change_start()
- (db/)
- cast_db.txt
- item_db.txt
- mob_skill_db.txt
- skill_db.txt
- skill_require_db.txt
- skill_tree.txt
-
---------------------
-//0969 by ‚Ò‚´‚Ü‚ñ
-
-E”’nŽæ‚èó‘ԂŕЕû‚ªŽ€–S‚µ‚½ê‡A•Ð•û‚Ì”’nŽæ‚肪‰ðœ‚³‚ê‚È‚¢–â‘èC³
-Ebattle_athena.conf‚É€–ڒljÁ
-@ƒyƒbƒgEƒvƒŒƒCƒ„[Eƒ‚ƒ“ƒXƒ^[‚Ì–³‘®«’ÊíUŒ‚‚ð‘®«–³‚µ‚É‚·‚é‚©”Û‚©‚ðÝ’è‚Å‚«‚Ü‚·
-@Ú‚µ‚­‚Íconf_ref‚ðB
-E—ƒRƒ}ƒ“ƒh@idsearchŽÀ‘•
-@ƒ[ƒh‚µ‚½item_db‚©‚猟õŒê‹å‚Ƀ}ƒbƒ`‚·‚éƒAƒCƒeƒ€‚ÆID‚ð—…—ñ‚·‚éƒRƒ}ƒ“ƒh‚Å‚·
-@—Ⴆ‚Îu@idsearch ƒŒƒCv‚Æ“ü—Í‚µ‚½ê‡AƒuƒŒƒCƒh‚⃌ƒCƒhƒŠƒbƒNƒJ[ƒh“™‚ªˆø‚Á‚©‚©‚è‚Ü‚·
-EƒAƒVƒbƒhƒeƒ‰[‚ƃfƒ‚ƒ“ƒXƒgƒŒ[ƒVƒ‡ƒ“ŽÀ‘•
-@‘•”õ”j‰ó‚Í–¢ŽÀ‘•‚Å‚·
-EƒCƒhƒDƒ“‚Ì—ÑŒç‚̉ñ•œŽd—l‚ðŠÛ‚²‚Æ•ÏXB
- (map/)
- battle.c
- battle.h
- ‘®«•â³‚ÌC³‚âƒAƒVƒbƒhƒeƒ‰[Eƒfƒ‚ƒ“ƒXƒgƒŒ[ƒVƒ‡ƒ“‚̃_ƒ[ƒWŽZoŽ®’ljÁ“™B
- battle_config‚É€–ڒljÁ
- skill.c
- skill_idun_heal()’ljÁBforeachinarea‚ň—‚·‚é‚悤‚É•ÏX
- ƒAƒVƒbƒhƒeƒ‰[‚ƃfƒ‚ƒ“ƒXƒgƒŒ[ƒVƒ‡ƒ“‚̈—’ljÁB
- atcommand.c
- atcommand.h
- @idsearch’ljÁB
-
---------------------
-//0968 by ŒÓ’±—–
-
-EƒLƒƒƒ‰ƒNƒ^[ID‚ªŽg‚¢‚܂킳‚ê‚È‚¢‚悤‚ÉC³
-EƒLƒƒƒ‰ƒNƒ^[휎žAƒp[ƒeƒB[AƒMƒ‹ƒh‚ð’E‘Þ‚·‚é‚悤‚ÉC³
-EƒAƒJƒEƒ“ƒg휎žAƒLƒƒƒ‰ƒNƒ^[‚Æ‘qŒÉ‚ð휂·‚é‚悤‚ÉC³
-E‘qŒÉ/ƒMƒ‹ƒh‘qŒÉ휎žA‘qŒÉ“à‚̃yƒbƒg‚ð휂·‚é‚悤‚ÉC³
- E’ˆÓFƒƒOƒCƒ“‚µ‚Ä‚¢‚éƒAƒJƒEƒ“ƒg‚ð휂µ‚½ê‡‚Ì“®ì‚Í•s–¾
-
- (char/)
- char.c
- ƒpƒPƒbƒg2730‚̈—Achar_delete()’ljÁA휈—C³‚È‚Ç
- int_storage.c/int_party.c/int_guild.c/int_party.h/int_guild.h
- inter_party_leave(),inter_guild_leave()’ljÁA
- inter_storage_delete(),inter_guild_storage_delete()C³‚È‚Ç
- (login/)
- login.c
- parse_admin()‚ðƒAƒJƒEƒ“ƒg휎ž‚ɃpƒPƒbƒg2730‚ð‘—‚é‚悤‚ÉC³
-
-Eathena-start stop ‚Å’âŽ~‚³‚¹‚½ê‡Aƒf[ƒ^‚ª•Û‘¶‚³‚ê‚È‚¢–â‘è‚ðC³
- kill‚Å‘—‚éƒVƒOƒiƒ‹‚ðSIGKILL‚©‚çSIGTERM‚É•ÏXB
- ‚Ç‚¤‚µ‚Ä‚àSIGKILL‚𑗂肽‚¢ê‡‚Í athena-start kill ‚ðŽg‚Á‚Ä‚­‚¾‚³‚¢B
-
- athena-start
- stopC³Akill’ljÁ
-
---------------------
-//0967 by Asong
-Eƒ‚ƒ“ƒXƒ^[‚ÌŽc‰e‚ðŽÀ‘•B
-@’Ê탂ƒ“ƒXƒ^[‚̓XƒLƒ‹‚É‚æ‚éƒtƒBƒ‹ƒ^[‚ª‚©‚©‚ç‚È‚¢‚Ì‚ÅŽc‘œ‚ªo‚Ü‚¹‚ñB
-@‚o‚bŒ^ƒ‚ƒ“ƒXƒ^[‚É‚ÍŽc‘œ‚ªo‚Ü‚·B
-Eƒ‚ƒ“ƒXƒ^[ƒXƒLƒ‹Žg—p‘ÎÛ‚ð’ljÁB
-@around5`around8‚̓^[ƒQƒbƒg‚ÌŽü•ÓƒZƒ‹‚ð‘ÎÛ‚É‚µ‚Ü‚·B
-@
-@ (map)
-@ mob.c
-@ mobskill_use() C³
-@ mob_readskill() C³
-@ mob.h C³
-@ skill.c
-@ skill_castend_pos2() C³
-
---------------------
-//0966 by (“Ê)
-EƒT[ƒo[snapshot
-EƒfƒBƒŒƒNƒgƒŠ\‘¢‚ð•ÏX(common,login,char,map‚Í/srcˆÈ‰º‚Ɉړ])
-@‚»‚ê‚É”º‚¤Makefile“™‚̃pƒX‘‚«Š·‚¦
-Enpc_turtle.txt‚ðnpc_town_alberta.txt‚É“‡
-Eƒ‚ƒ“ƒN‚̃Rƒ“ƒ{‚ÉŠÖ‚·‚éƒfƒBƒŒƒC‚ð•ÏX
-Ebattle_config.enemy_critical‚̃fƒtƒHƒ‹ƒg‚ðno‚É•ÏX
-E“]¶E“™‚𖳌ø‚É‚·‚éenable_upper_class‚̒ljÁ
-E@joblvup,@charjlvl‚ÅJobƒŒƒxƒ‹‚ªÅ‚‚Ì‚Æ‚«‚É•‰”‚ðŽw’肵‚Ä‚àƒŒƒxƒ‹‚ð‰º‚°‚ç‚ê‚È‚©‚Á‚½–â‘è‚ðC³
-
- (conf)
- battle_athena.conf C³
- (doc)
- conf_ref.txt C³
- (map)
- atcommand.c
- atcommand_joblevelup() C³
- atcommand_character_joblevel() C³
- battle.c
- battle_calc_attack() C³
- battle_config_read() C³
- battle.h C³
- pc.c
- pc_calc_skilltree() C³
- pc_calc_base_job() C³
- pc_jobchange() C³
- pc_readdb() C³
- skill.c
- skill_attack() C³
---------------------
-//0965 by ‚Ò‚´‚Ü‚ñ
-E@mapexitŽÀsŽž‘SƒZƒbƒVƒ‡ƒ“‚ðkick‚·‚é‚悤‚É•ÏXB
-E”’nŽæ‚莞‚ɕЕû‚ª“|‚ê‚Ä‚àA‚à‚¤•Ð•û‚Ì”’n‚ª‰ðœ‚³‚ê‚È‚¢–â‘èC³B(–¢ƒeƒXƒg)
-EƒXƒeƒB[ƒ‹î•ñŒöŠJ‹@”\ŽÀ‘•B(–¢ƒeƒXƒg)
-@ƒXƒeƒB[ƒ‹‚ɬŒ÷‚·‚é‚ÆA‰½‚ðƒXƒeƒB[ƒ‹‚µ‚½‚Ì‚©
-@‰æ–Ê“à‚ÌPTƒƒ“ƒo[‘Sˆõ‚É’m‚点‚é‹@”\‚Å‚·B
-@battle_athena.conf‚Ìshow_steal_in_same_party‚ÅÝ’è‚Å‚«‚Ü‚·B
-@ƒIƒŠƒWƒiƒ‹ƒAƒbƒvƒf[ƒg‚̈×AƒfƒtƒHƒ‹ƒg‚Íno‚É‚µ‚Ä‚¢‚Ü‚·B
-EƒCƒhƒDƒ“‚Ì—ÑŒç‚̉ñ•œŒø‰ÊŽÀ‘•B
-
- (conf/)
- battle_athena.conf‚É€–ڒljÁB
- (map/)
- atcommand.c
- atcommand_mapexit() C³B
- pc.c
- pc_steal_item() C³B
- pc_show_steal() ’ljÁB
- skill.c
- skill_unitsetting()Askill_unit_onplace() C³B
- battle.c
- battle_config_read() C³B
- battle.h C³B
- (doc/)
- conf_ref.txt ”²‚¯‚Ä‚½‚Ì‚ðFX’ljÁB
-
---------------------
-//0964 by (“Ê)
-
-E‚±‚Ì‘O’ljÁ‚µ‚½skill_tree2.txt‚ð”pŽ~‚µ‚½‚Ì‚Å휂µ‚Ä‚­‚¾‚³‚¢
-Eskill_tree.txt‚̃tƒH[ƒ}ƒbƒg‚ð•ÏX•Kalen‚³‚ñ‚È‚Ç‚Ìî•ñ‚ðŒ³‚É“]¶ƒcƒŠ[‚ÌŒ©’¼‚µ
-E‚»‚ê‚É‚Æ‚à‚È‚Á‚Äpc.c‚̃tƒ@ƒCƒ‹“Ç‚Ýo‚µ•”•ª‚È‚Ç‚ð•ÏX
-EAthenaŽG’kƒXƒŒƒbƒh part3 >>14 miya‚³‚ñ‚ÌŽw“E‚ª‚ ‚é‚Ü‚Å‚·‚Á‚©‚è–Y‚ê‚Ä‚¢‚½atcommand_athena.conf‚ÌC³‚𓯫
-
- (conf/)
- atcommand_athena.conf C³
- (db/)
- skill_tree.txt C³
- skill_tree2.txt ”pŽ~
- (map/)
- map.h PC_CLASS_BASE“™’ljÁ
- pc.c
- pc_calc_skilltree() C³
- pc_allskillup() C³
- pc_readdb() C³
-
---------------------
-//0963 by (“Ê)
-
-E@jobchange2, @jobchange3”pŽ~ @jobchange‚Ɉø”’ljÁ @helpŽQÆ
- —á: @jobchange2 10 ¨ @jobchange 10 1
-E“¯—l‚É@charjob2, @charjob3”pŽ~ @charjob‚Ɉø”’ljÁ @helpŽQÆ
- —á: @charjob2 10 ‚Ù‚°‚Ù‚° ¨ @charjob 10 1 ‚Ù‚°‚Ù‚°
-E“¯—l‚ɃXƒNƒŠƒvƒg‚Ìjobchange2, jobchange3–½—ß”pŽ~ jobchange‚Ɉø”’ljÁ script_ref.txtŽQÆ
- —á: jobchange2 10; ¨ jobchange 10,1;
-Eª‚Ç‚ê‚à’ljÁ‚³‚ꂽˆø”‚ÍÈ—ª‰Â”\‚Å‚·B‚È‚Ì‚ÅA“]¶ƒm[ƒrƒX‚ÍŒ»ó‚̃XƒNƒŠƒvƒg‚Å“]¶ˆêŽŸE‚É“]E‚Å‚«‚Ü‚·B
- —á: Novice High ¨ @jobchange 10 ¨ Whitesmith
- Novice ¨ @jobchange 10 ¨ Blacksmith
-EƒXƒNƒŠƒvƒg‚©‚ç“]¶‚µ‚Ä‚¢‚é‚©”»’è‚·‚邽‚ß‚ÉUpper‚ð’ljÁ‚µ‚Ü‚µ‚½BUpper 0=’Êí, 1=“]¶, 2=—{Žq
- Upper=0‚ÌŽž‚ÉBaseLevel=99‚È‚ç“]¶‚³‚¹‚é`‚Æ‚©‚»‚¤‚¢‚¤ƒXƒNƒŠƒvƒg’N‚©‘‚¢‚Ä‚­‚¾‚³‚¢
- ‚»‚ÌŽž‚ÉŒ³‚ÌE‹Æ‚Í‹L‰¯‚µ‚Ä‚¢‚È‚¢‚̂ʼni‘±•Ï”‚Æ‚©‚ÅŠo‚¦‚³‚¹‚Ä”»’肳‚¹‚È‚¢‚Æ“]¶Œã‰½‚É‚Å‚à“]E‚Å‚«‚¿‚ႤH
-EƒoƒCƒIƒvƒ‰ƒ“ƒg‚ƃXƒtƒBƒAƒ}ƒCƒ“‚ŌĂÑo‚³‚ê‚éMob‚Ì–¼‘O‚ð--ja--‚É‚µ‚Ämob_db.txt‚©‚ç“ǂނ悤‚É‚µ‚½
-
- (conf/)
- help.txt C³
- (db/)
- const.txt
- (doc/)
- help.txt C³
- script_ref.txt C³
- (map/)
- atcommand.c
- atcommand_jobchange() C³
- atcommand_jobchange2() íœ
- atcommand_jobchange3() íœ
- atcommand_character_job() C³
- atcommand_character_job2() íœ
- atcommand_character_job3() íœ
- map.h C³
- pc.c
- pc_readparam() C³
- pc_jobchange() C³
- pc.h C³
- script.c
- buildin_jobchange() C³
- buildin_jobchange2() íœ
- buildin_jobchange3() íœ
- skill.c
- skill_castend_pos2() C³
-
---------------------
-//0962 by (“Ê)
-
-EE‹Æ‚Í0`23‚ň—‚µ‚½‚¢‚Ì‚Å“]¶E—p‚̃XƒLƒ‹ƒcƒŠ[’ljÁAeAthena‚ðŽQl‚ÉŠg’£
- ‚Á‚Ä‚¢‚¤‚©ŠØ‘–{ƒT[ƒo‚Å‚ÌŽÀ‘•‚ÌŽ‘—¿‚ªŒ©“–‚½‚ç‚È‚¢‚Ì‚Å“K“–
-Esakexe.exe‚ð‰ðÍ‚µ‚Äskill_db.txt•ÏXA‚±‚ê‚àeAthena‚ðŽQl‚ÉŠg’£
- ‚ǂꂪ–{ƒT[ƒo‚ÅŽÀ‘•‚³‚ê‚Ä‚¢‚éƒXƒLƒ‹‚©•ª‚©‚è‚Ü‚¹‚ñ‚ÁII
-¦ƒXƒLƒ‹ƒcƒŠ[‚ª•\Ž¦‚³‚ꂽ‚©‚ç‚Æ‚¢‚Á‚ÄŽg‚¦‚é‚킯‚¶‚á‚ ‚è‚Ü‚¹‚ñ‚ÁII
-
- (common/)
- mmo.h ’è”C³
- (db/)
- skill_db.txt •ÏX
- skill_require_db.txt •ÏX
- skill_tree2.txt ’ljÁ
- (map/)
- skill.h ’è”C³
- pc.c
- pc_calcstatus() C³
- pc_allskillup() C³
- pc_calc_skilltree() C³
- pc_readdb() C³
-
---------------------
-//0961 by ŒÓ’±—–
-
-EƒXƒNƒŠƒvƒg‚ɃTƒuƒ‹[ƒ`ƒ“/ƒ†[ƒU[’è‹`ŠÖ”‹@”\’ljÁ
- Ú‚µ‚­‚̓Tƒ“ƒvƒ‹‚Æscript_ref.txt‚ð“Ç‚ñ‚Å‚­‚¾‚³‚¢B
- ’n–¡‚É‘å‰ü‘¢‚È‚Ì‚ÅAƒXƒNƒŠƒvƒgŠÖŒW‚ŃoƒO‚ª‚ ‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB
-
- (map/)
- map.h/map.c
- struct map_session_data ‚ɃXƒNƒŠƒvƒgî•ñ‘Þ”ð—p‚̃ƒ“ƒo’ljÁ
- map_quit()C³
- script.h/script.c
- FXC³(run_script(),run_func()‚ªŽå)
- npc.c
- npc_parse_function()’ljÁ‘¼
- (conf/sample)
- npc_test_func.txt
- ƒ†[ƒU[’è‹`ŠÖ”/ƒTƒuƒ‹[ƒeƒBƒ“‚̃eƒXƒgƒXƒNƒŠƒvƒg
- (doc/)
- script_ref.txt
- ƒTƒuƒ‹[ƒeƒBƒ“‚È‚Ç‚Ìà–¾’ljÁ
-
---------------------
-//0960 by (“Ê)
-E–{ŽI‘ŠˆáƒXƒŒƒbƒh part2 >>62 KK‚³‚ñ‚̃Aƒ“ƒNƒ‹ƒXƒlƒAC³‚𓯫
-EƒoƒO•ñƒXƒŒƒbƒh part5 >>14-16 rb‚³‚ñ‚̃oƒOC³‚𓯫
-EFor English User Forum >>15 Mugendai‚³‚ñ‚ÌŽw“E‚Å0x1d7‚ðŽg‚¤‚Ì‚ÍVal>255‚ÉC³(0xc3‚ÌVal‚Í1ƒoƒCƒg‚¾‚©‚ç0x1d7‚ðŽg‚¤‚Ì‚©‚Æ”[“¾)
-Epc_calc_base_job()‚ð•ÏX‚µ‚ÄŒ³job‚¾‚¯‚Å‚È‚­ƒmƒr‚©ˆêŽŸE‚©“ñŽŸE(type)A’Êí‚©“]¶‚©—{Žq(upper)‚ð•Ô‚·‚悤‚É‚µ‚½
-
- (map/)
- atcommand.c
- atcommand_joblevelup() C³
- atcommand_character_joblevel() C³
- clif.c
- clif_changelook() C³
- pc.h C³
- pc.c
- pc_setrestartvalue() C³
- pc_equippoint() C³
- pc_isequip() C³
- pc_calc_skilltree() C³
- pc_calcstatus() C³
- pc_isUseitem() C³
- pc_calc_base_job() C³
- pc_allskillup() C³
- pc_damage() C³
- pc_jobchange() C³
- pc_equipitem() C³
- script.c
- buildin_changesex() C³
- skill.c
- skill_castend_nodamage_id() C³
- skill_unit_onplace() C³
-
---------------------
-//0959 by (“Ê)
-Ehelp.txt‚ªdoc‚¶‚á‚È‚­‚Äconf‚Ì‚ª“Ç‚Ýo‚³‚ê‚Ä‚½Q|P|›
-Egamejoke‚ðŽQl‚É“]¶“ñŽŸE‚̃Xƒe[ƒ^ƒX‰Ád’l‚ðjob_db2-2.txt‚É‹Lq
-EƒXƒNƒŠƒvƒg‚Éjobchange2‚Æjobchange3‚ð’ljÁ‚»‚ꂼ‚ê“]¶E‚Æ—{ŽqE‚Ö“]E‚³‚¹‚é–½—ß‚Å‚·
-
- (conf/)
- help.txt C³
- (db/)
- job_db2.txt C³
- job_db2-2.txt ’ljÁ
- (doc/)
- help.txt C³
- script_ref.txt C³
- (map/)
- pc.c
- pc_calcstatus() C³
- pc_readdb() C³
- script.c
- buildin_jobchange() C³
- buildin_jobchange2() ’ljÁ
- buildin_jobchange3() ’ljÁ
-
---------------------
-//0958 by (“Ê)
-E“]¶E•û–Ê‚ÌŽÀ‘•‚ðFX
-Ed—ʧŒÀ‚Í—Ç‚­•ª‚©‚ç‚È‚¢‚Ì‚ÅŒ³‚ÌE‹Æ‚Ì’l‚ð‚»‚Ì‚Ü‚ÜŽg‚Á‚Ä‚¢‚Ü‚·(ƒ‚ƒ“ƒNƒ`ƒƒƒ“ƒsƒIƒ““™)
-E‘•”õ•i‚à“¯ãAHP‚âSP‚̃e[ƒuƒ‹‚à“¯ã‚È‚Ì‚ÅA“]¶‚µ‚Ä‚àHP‚È‚Ç‚ª‘‚¦‚È‚¢ƒKƒbƒJƒŠŽd—l‚Å‚·
-
- (map/)
- atcommand.c
- atcommand_joblevelup() C³
- atcommand_character_joblevel() C³
- pc.c
- pc_setrestartvalue() C³
- pc_equippoint() C³
- pc_isequip() C³
- pc_calcstatus() C³
- pc_isUseitem() C³
- pc_calc_base_job() ’ljÁ
- pc_damage() C³
- pc_jobchange() C³
- pc_equipitem() C³
- pc.h C³
- script.c
- buildin_changesex() C³
- skill.c
- skill_castend_nodamage_id() C³
-
---------------------
-//0957 by (“Ê)
-E@charjob2‚Æ@charjob3‚ð’ljÁAŠÖŒW‚Æ‚µ‚Ä‚Í@charjobÌ@jobchangeA@charjob2Ì@jobchange2A(ry
-E@mapexit‚ð’ljÁAmap-server‚ð—Ž‚Æ‚·ƒRƒ}ƒ“ƒh‚Å‚·atcommand_athena.conf‚Å‚Í99Ý’è‚É‚³‚ê‚Ä‚Ü‚·‚Ì‚ÅŽg—p‚É‚Í\•ª’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
-
- (map/)
- atcommand.c
- atcommand_character_job2() ’ljÁ
- atcommand_character_job3() ’ljÁ
- atcommand.h C³
- (conf/)
- atcommand_athena.conf C³
- (doc/)
- help.txt C³
-
---------------------
-//0956 by (“Ê)
-E“]¶E‰¼ŽÀ‘•(@jobchange2)AŒ©‚½–Ú‚ÆŒoŒ±’lƒe[ƒuƒ‹‚¾‚¯‚Å‚·
-E—{ŽqE‰¼ŽÀ‘•(@jobchange3)AŒ©‚½–Ú‚¾‚¯‚Å‚·Œ»ó‚Å‚ÍŒoŒ±’l‚Í“]¶“ñŽŸE‚Æ“¯‚¶‚Æ‚¢‚¤ƒ}ƒ]Žd—l
-¦ã‹L2“_‚Í“]¶E‚ªŽÀ‘•‚³‚ê‚Ä‚¢‚éƒNƒ‰ƒCƒAƒ“ƒg‚Å‚È‚¯‚ê‚ÎŽÀs‚·‚é‚ƃGƒ‰[—Ž‚¿‚·‚é‚Ì‚Å’ˆÓII
-@‚»‚̌㒼ڃZ[ƒuƒf[ƒ^‚ð˜M‚ç‚È‚¢‚ƃLƒƒƒ‰ƒZƒŒ‚É‚às‚¯‚È‚­‚È‚è‚Ü‚·II
-EAthenaŽG’kƒXƒŒƒbƒh part2 >>149 ‹HŽ}‚³‚ñ‚Ì•ñ‚ðŒ³‚ÉƒK[ƒfƒBƒAƒ“‚ðC³
-EԈȊO‚ŃK[ƒfƒBƒAƒ“‚Æ‚©ƒGƒ“ƒyƒŠƒEƒ€‚ð‰£‚é‚Æmap-server‚ª—Ž‚¿‚Ä‚¢‚½‚Ì‚àC³(–¢Šm”F)
-EƒXƒpƒmƒr‚ÌJobƒe[ƒuƒ‹‚ÍFor English User Forum >>13 kingbo‚³‚ñ‚̃f[ƒ^‚ðŒ³‚ÉC³
-E“]¶E‚ÌŒoŒ±’lƒe[ƒuƒ‹‚ÍOWN‚ðŽQÆ‚µ‚ÄBase99‚ÌŒoŒ±’l‚Í•s–¾‚¾‚Á‚½‚Ì‚Å“K“–‚ÉÝ’è
-
- (map/)
- atcommand.c
- atcommand_jobchange() C³
- atcommand_jobchange2() ’ljÁ
- atcommand_jobchange3() ’ljÁ
- atcommand.h C³
- clif.c
- clif_changelook() C³
- pc.c
- pc_nextbaseexp() C³
- pc_nextjobexp() C³
- pc_jobchange() C³
- pc_readdb() C³
- battle.c
- battle_calc_damage() C³
- mob_can_reach() C³
-
---------------------
-//0955 by huge
-Eƒyƒbƒg‚̃‹[ƒg‹@”\B
- EŽd—l‚Ímob‚̃‹[ƒg‚É‹ß‚¢Š´‚¶‚Å‚·‚ªAŽË’ö‚ð’Z‚­‚µ‚Ä‚Ü‚·B
- EE‚Á‚½ƒAƒCƒeƒ€‚ÍAƒpƒtƒH[ƒ}ƒ“ƒX‚ð‚·‚é‚Æ°‚É—Ž‚Æ‚µ‚Ü‚·B
- E—‘‚É–ß‚µ‚½‚èAƒƒOƒIƒt‚µ‚½‚Æ‚«‚ÍPC‚̎茳‚É“ü‚é‚悤‚É‚µ‚Ü‚µ‚½B(d—Ê’´‰ß‚̓hƒƒbƒv)
- EE‚¦‚éŒÂ”‚̓‹[ƒgmob“¯—l‚Ì10ŒÂ‚Å‚·‚ªA11ŒÂ–Ú‚ÍE‚¢‚És‚«‚Ü‚¹‚ñB
- Eƒ‹[ƒgŒ ‚Ì–â‘è‚©‚çAƒAƒCƒeƒ€‚Éfirst_id‚ª“ü‚Á‚Ä‚¢‚ÄA‚»‚ꂪŽ”‚¢ŽåˆÈŠO‚¾‚Á‚½‚çA‰½•bŒo‚Æ‚¤‚ÆE‚¢‚Ü‚¹‚ñB(–¢Šm”F)
- E‚»‚ê‚ÆA‰×•¨Ž‚¿‚É‚³‚ê‚é‚Ɖˆ£‘z‚È‚Ì‚ÅAd—ʧŒÀ‚à‚‚¯‚Ü‚µ‚½B‚±‚ê‚Íconf‚ÅÝ’è‰Â”\‚Å‚·B
-Eatcommand‚ÅA@where‚ª‚¤‚Ü‚­“­‚¢‚Ä‚È‚©‚Á‚½‚Ì‚ÅC³(‚Ü‚½ƒEƒ`‚¾‚¯‚©‚È‚Ÿ¥¥¥j
-E@memo‚Åmemo‚·‚鎞‚ÍAmapflag‚𖳎‹‚·‚é‚悤‚ÉB
-EƒXƒtƒBƒAƒ}ƒCƒ“‚Ì–¼‘O‚¾‚¯C³B
-
- (conf/)
- battle_athena.conf
- pet_lootitem,pet_weight ’ljÁ
- (doc/)
- conf_ref.txt C³
- (map/)
- atcommand.c
- atcommand_memo() C³
- atcommand_where() C³
- battle.c
- battle_config_read() C³
- battle.h C³
- map.c
- map_quit() C³
- map.h
- pet_data{} C³
- pc.c
- pc_memo() C³
- pet.c
- pet_performance() C³
- pet_return_egg() C³
- pet_data_init() C³
- pet_ai_sub_hard() C³
- pet_lootitem_drop() ’ljÁ
- pet_delay_item_drop2() ’ljÁ
- pet_ai_sub_hard_lootsearch() ’ljÁ
- pet.h C³
- skill.c
- skill_castend_pos2() C³
-
---------------------
-//0954 by (“Ê)
-Eobject_del.bat‚ÅŠeserver.exe‚à휂·‚é‚悤‚É‚µ‚½
-EFor English User Forum >>11 kingbo‚³‚ñ‚ÌC³‚ðŽæ‚èž‚Ý
-EƒoƒO•ñƒXƒŒƒbƒh part5 >>10 Sin‚³‚ñ‚ÌC³‚ðŽæ‚èž‚Ý
-E‚‚¢‚Å‚ÉŒ©‚©‚¯‚½atcommand_character_joblevel‚Ì•s‹ï‡‚ðC³
-E@ƒRƒ}ƒ“ƒh‚ŃWƒ‡ƒuƒŒƒxƒ‹‚ðã‚°‚é‚Æ‚«‚ɃXƒpƒmƒr‚ÍJob70‚܂őΉž(–¢Šm”F)
-
- (/)
- object_del.bat C³
- (map/)
- atcommand.c
- atcommand_joblevelup() C³
- atcommand_character_joblevel() C³
- atcommand_character_baselevel() C³
-
- code by kingbo 2004/4/29 PM 06:15
- base on 0953
- now i sure it works well
- (map/)
- mob.c
- mob_can_reach() fix
-
---------------------
-//0953 by (“Ê)
-Emob_skill_db.txt‚ÌðŒ’l‚É0ˆÈŠO“ü‚Á‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ð’ù³
-Egcc 2.95‚ŃRƒ“ƒpƒCƒ‹‚Å‚«‚é‚悤‚É’ù³(by ƒoƒOƒXƒŒpart5 >>2 ˆ©‚³‚ñ)
-Eª‚âLinux‚È‚Ç‚ðl—¶‚µ‚Ästart‚âMakefile‚Ȃǂ̉üs‚ðLF‚É•ÏX
-E0952‚Åo‚½ƒRƒ“ƒpƒCƒ‹Œx‚ðo‚È‚¢‚悤‚ÉC³
-E0952‚ÅXV‚³‚ê‚È‚©‚Á‚½conf_ref.txt‚ðC³
-
- (/)
- start ‰üsƒR[ƒh•ÏX
- athena-start ‰üsƒR[ƒh•ÏX
- (db/)
- mob_skill_db.txt C³
- (doc/)
- conf_ref.txt C³
- (login/)
- Makefile ‰üsƒR[ƒh•ÏX
- (map/)
- Makefile ‰üsƒR[ƒh•ÏX
- atcommand.c
- atcommand() 錾ˆÊ’uC³
- atcommand_where() 錾ˆÊ’uC³
- battle.c
- battle_calc_pet_weapon_attack() C³
- battle_calc_mob_weapon_attack() C³
- battle_calc_pc_weapon_attack() C³
- battle_calc_magic_attack() C³
- clif.c
- clif_skill_fail() 錾ˆÊ’uC³
- guild.c
- guild_gvg_eliminate_timer() 錾ˆÊ’uC³
- mob.c
- mob_damage() 錾ˆÊ’uC³
- script.c
- buildin_deletearray() 錾ˆÊ’uC³
- buildin_getequipcardcnt() 錾ˆÊ’uC³
- buildin_successremovecards() 錾ˆÊ’uC³
-
---------------------
-//0952 by CG
-Econf‚ÅDEF‚ÆMDEF‚ÌŒvŽZ•û–@‚ð‘I‘ð‚Å‚«‚é‚悤‚ÉB
-
- (conf/)
- battle_athena.conf •ÏX
- (map/)
- battle.c
- battle_calc_pet_weapon_attack() C³
- battle_calc_mob_weapon_attack() C³
- battle_calc_pc_weapon_attack() C³
- battle_calc_magic_attack() C³
- battle.h C³
-
---------------------
-//0951 by (“Ê)
-EƒT[ƒo[snapshot
-EƒoƒO•ñƒXƒŒƒbƒh part4 >>95 KAJIKEN‚³‚ñ‚ÌC³‚𓯫
-E“¯ >>138 ƒoƒO‚©‚ÈH‚³‚ñ‚ÌC³‚𓯫
-EAthenaŽG’kƒXƒŒƒbƒh part2 >>112 –¼–³‚µ‚³‚ñ‚ÌPVPƒiƒCƒgƒƒAƒ‚[ƒh‚̃Aƒ“ƒ_[ƒNƒƒXƒ}ƒbƒvƒ[ƒvƒ|ƒCƒ“ƒg‚𓯫
-E“¯ >>96 ‹HŽ}‚³‚ñ‚Ìnpc_gldcheck.txt‚𓯫
-EƒXƒiƒbƒvƒVƒ‡ƒbƒg‚Ésave/‚ð“ü‚ê‚é‚Ì‚ð‚â‚ß‚Ü‚µ‚½B–³‚¢ê‡‚Íathena-start‚ªì‚Á‚Ä‚­‚ê‚Ü‚·
-Eathena-start‚Ålog/‚ª–³‚¢ê‡‚Éì‚é‚悤‚É•ÏX
-E‚»‚Ì‘¼H
-
- (/)
- athena-start •ÏX
- (db/)
- mob_db.txt •ÏX
- (conf/)
- map_athena.conf •ÏX
- (conf/extension/)
- npc_gldcheck.txt ’ljÁ
- (conf/npc/)
- npc_event_ice.txt •ÏX
- npc_job_alchemist.txt •ÏX
- npc_event_valentine.txt •ÏX
- npc_town_geffen.txt •ÏX
- npc_event_whiteday.txt •ÏX
- npc_event_potion.txt •ÏX
- npc_town_comodo.txt •ÏX
- (conf/warp/)
- npc_warp_pvp.txt ’ljÁ
-
---------------------
-//0950 by (“Ê)
-Emob_db‚ÌModeƒtƒ‰ƒO‚Ɉȉº‚Ì•¨‚ð’ljÁ
- 0x40(64) ƒ_ƒ[ƒW‚ð1‚ɌŒè(‘‚âƒNƒŠƒXƒ^ƒ‹‚È‚Ç)
- 0x80(128) UŒ‚‚ðŽó‚¯‚½‚Æ‚«‚É”½Œ‚‚ð‚·‚é
-Eã‹L‚Ì•ÏX‚Ì‚½‚ßmob_db.txt‚Ù‚Ú‘S•”•ÏXAmob_db2.txt‚ðì‚Á‚Ä‚¢‚él‚Í
- ‘‚È‚Ç1ƒ_ƒŒÅ’è‚É‚ÍMode‚É64‚ð‘«‚³‚È‚¢‚Æ•’ʂɃ_ƒ[ƒW
- ‚»‚Ì‘¼Mob‚ÍMode‚É128‚ð‘«‚³‚È‚¢‚Æ”½Œ‚‚µ‚Ä‚±‚È‚­‚È‚é‚Ì‚Å’ˆÓ
-
- (db/)
- mob_db.txt C³
- (map/)
- battle.c
- battle_calc_pet_weapon_attack()
- battle_calc_mob_weapon_attack()
- battle_calc_pc_weapon_attack()
- battle_calc_magic_attack()
- mob.c
- mob_once_spawn()
- mob_attack()
- mob_target()
- mob_ai_sub_hard()
-
---------------------
-//0949 by ‚Ò‚´‚Ü‚ñ
-
-EƒXƒe[ƒ^ƒXˆÙí‘Ï«‘S–ÊC³B
-@‘Ï«ŽZoŽ®‘S–ÊC³B
-@ƒXƒe[ƒ^ƒXˆÙí‘Ï«100%‚̃Lƒƒƒ‰ƒNƒ^[‚É‚Íó‘ÔˆÙí‚ðs‚í‚È‚¢‚悤‚ÉC³B
-EƒfƒBƒXƒyƒ‹‚ÌŽd—l•ÏXB
-@‰ðœ‚µ‚½‚çƒVƒXƒeƒ€ã–â‘è‚Ì‚ ‚éƒXƒe[ƒ^ƒX•Ï‰»ˆÈŠO•Ð‚Á’[‚©‚ç‰ðœ‚·‚é‚悤‚ÉC³B
-EƒtƒƒXƒgƒ_ƒCƒo[‚ÌŽd—l•ÏXB
-@“€Œ‹—¦C³(ƒ}ƒWƒXƒŒƒeƒ“ƒvƒŒ€‹’)B
-EƒŠƒJƒoƒŠ[‚ÌŽd—l•ÏXB
-@ƒmƒ“ƒAƒNƒeƒBƒuƒ‚ƒ“ƒXƒ^[‚ÉŽg—p‚·‚é‚ƃ^[ƒQƒbƒg‚ªƒŠƒZƒbƒg‚³‚ê‚é‚悤‚ÉC³B
-EƒNƒ@ƒOƒ}ƒCƒA‚ÌŽd—l‚ªƒAƒŒ‚¾‚Á‚½‚Ì‚ÅC³B
-@‰‰‘t‚â‘®«ê‚Æ“¯—l‚Érange‚ň—‚·‚é‚悤‚ÉC³B
-@DEX/AGI”¼Œ¸‚̉e‹¿‚ª‰r¥ˆÈŠO‚É‚à‹y‚Ô—l‚ÉC³B
-EƒXƒLƒ‹ƒ^[ƒQƒbƒg’†‚ÉŽ€‚ñ‚¾U‚è‚ðŽg—p‚µ‚Ä‚àƒXƒLƒ‹‚ª‰ñ”ð‚Å‚«‚È‚¢–â‘èC³B
-E”’nŽæ‚肪“®ì‚µ‚È‚¢–â‘èC³(cast_db‚ª”²‚¯‚Ä‚Ü‚µ‚½)B
- (map/)
- pc.c
- pc_calcstatus()C³
- skill.c
- skill_additional_effect()Askill_attack() C³
- skill_status_change_start()Askill_unitsetting() C³
- (db/)
- cast_db.txt C³B
-
---------------------
-//0948 by ŒÓ’±—–
-
-Ewarpwaitingpc‚ª³‚µ‚­PC‚ð“]‘—‚Å‚«‚È‚¢–â‘è‚ðC³
-EƒXƒNƒŠƒvƒg‚Ì“Ç‚Ýž‚ÝŽž‚ɃGƒ‰[‚Ü‚½‚ÍŒx‚ªo‚éê‡AŒx‰¹‚ð–‚炷‚悤‚ÉB
- i—¬‚ꂽƒƒO‚ðŒ©‚È‚¢l‘Îô‚Å‚·j
-
- (map/)
- script.c
- buildin_warpwaitingpc()C³
- disp_error_message()C³
-
-Eatcommand.cC³
- Eatcommand_athena.conf‚Ìmapmove‚ð“ǂނ悤‚É
- E@str‚È‚Ç‚ÌÈ—ªŽž‚Ì•K{ƒŒƒxƒ‹‚ð0‚ÉB
- E@param‚ÍŽg‚í‚È‚¢‚̂ŃRƒƒ“ƒg‰»
-
- (map/)
- atcommand.c
- ŠY“–ŒÂŠC³
-
-Emob‚ªÅ‘å15•b‚قLjړ®‚µ‚È‚¢ê‡‚ª‚ ‚é–â‘èC³
- EŽè”²‚«‚Å‚È‚¢mobˆ—‚ÅAˆÚ“®‚µ‚È‚¢ŽžŠÔ‚ª7•bˆÈ㑱‚©‚È‚¢‚悤‚ÉC³
-
- (map/)
- mob.c
- mob_ai_sub_hard()C³
-
-E‰õ‘¬‘Dˆõ‚̈ɓ¤`s‚«‚Ì”»•ÊŽ®C³ (by ID:F8nKKuY)
- (conf/npc/)
- npc_town_comodo.txt
-
---------------------
-//0947 by (“Ê)
-EŽæ‚芪‚«‚ÍŽæ‚芪‚«‚𢊫‚µ‚È‚¢‚悤‚ÉC³
-E˜I“V‚̔̔„‰¿Ši‚ÌãŒÀ‚ðbattle_athena.conf‚ÅÝ’è‚Å‚«‚é‚悤‚ÉC³
-
- (conf/)
- battle_athena.conf
- vending_max_value’ljÁ
- (doc/)
- conf_ref.txt C³
- (map/)
- skill.c
- skill_castend_nodamage_id() C³
- battle.c
- battle_config_read() C³
- battle.h C³B
- vending.c
- vending_openvending() C³B
-
---------------------
-//0946 by Kalen
-Eƒvƒ–kWarpŒ©’¼‚µ
-ŽQlF–{ŽI(1F,2F)‚ç‚®‚Ȃ̉½‚©(3F)
- (conf/warp/)
- npc_warp.txt
-
-EŒê‚è•”‚Ì2T3T’ljÁ(‚Ç‚¤‚¹Œ©‚È‚¢‚ÆŽv‚¢‚Ü‚·‚ªc)
- (conf/npc/)
- npc_event_kataribe.txt
-
---------------------
-//0945 by ŒÓ’±—–
-
-ENPCƒ^ƒCƒ}[ƒ‰ƒxƒ‹ƒf[ƒ^‚ª³‚µ‚­ƒCƒ“ƒ|[ƒg‚³‚ê‚È‚¢–â‘è‚ðC³
-ENPCƒ^ƒCƒ}[‰Šú’l‚âƒ^ƒCƒ}[ID‚ª³‚µ‚­‰Šú‰»‚³‚ê‚È‚¢–â‘è‚ðC³
-ENPC‚Ìduplicate‚ðs‚¤‚ƃAƒNƒZƒXˆá”½‚ª‹N‚±‚éꇂª‚ ‚é–â‘è‚ðC³
-
- (map/)
- npc.c
- npc_parse_scriptC³
-
-Eƒpƒbƒ`ƒAƒbƒvƒXƒŒ‚S‚Ì87‚Ìpc.c‚Ƃ肱‚Ý
- (map/)
- pc.c
- ƒJ[ƒhd—ʧŒÀ‚ðŒ³‚É–ß‚µ‚½‚à‚Ì
-
---------------------
-//0944 by huge
-EƒMƒ‹ƒh‚Ìã”[ŒoŒ±’l‚ÌãŒÀ‚ðAconf‚ŧŒÀ‚Å‚«‚é‚悤‚ÉB
-E˜I“X‚̔̔„‰¿Ši‚ð10M‚܂łɧŒÀB
-EƒJ[ƒg‚Ìd—ʧŒÀ‚ªˆêŒ…‰º‚ª‚Á‚Ä‚½‚ñ‚Å‚·‚ªAƒEƒ`‚¾‚¯‚Å‚·‚©HC³‚µ‚Ä‚Ý‚Ü‚µ‚½‚ªB
-
- (conf/)
- battle_athena.conf
- guild_exp_limit’ljÁ
- (doc/)
- conf_ref.txt C³
- (map/)
- atcommand.c
- ‘h¶Žž‚ÌSP‰ñ•œ‚ÅAׂ©‚¢C³B
- battle.c
- battle_config_read() C³
- battle.h C³B
- guild.c
- guild_change_position() C³B
- pc.c
- pc_calcstatus() C³B
- vending.c
- vending_openvending() C³B
-
---------------------
-//0943 by (“Ê)
-Ebattle_athena.conf‚Ådead_branch_active‚ðyes‚É‚·‚é‚ƌÖ؂̎}‚Å¢Š«‚³‚ê‚郂ƒ“ƒXƒ^[‚ªƒAƒNƒeƒBƒu‚É‚È‚é‚悤‚É•ÏX
-E”÷–­‚É•ÏX‚µ‚½client_packet.txt‚𓯫
-
- (conf/)
- battle_athena.conf
- dead_branch_active’ljÁ
- (doc/)
- client_packet.txt C³
- conf_ref.txt C³
- (map/)
- battle.c
- battle_config_read() C³
- battle.h C³
- map.h C³
- mob.c
- mob_once_spawn() C³
- mob_attack() C³
- mob_target() C³
- mob_ai_sub_hard_lootsearch() C³
- mob_ai_sub_hard() C³
-
-E‰pŒêƒXƒŒ‚Ìkingbo‚³‚ñ‚Ì•ÏX‚𓯫
- code by kingbo 2004/4/16 PM 09:47
-
- support guildcastle guardian
- maybe still have problems..need to try
- Good Luck Q^^Q
- P.S: sorry my poor english ^^a
-
- (map/)
- mob.c
- mob_can_reach() fix
- battle.c
- battle_calc_damage() fix
-
- (conf/gvg/)
- prtg_cas01_guardian.txt
-
---------------------
-//0942 by ŒÓ’±—–
-
-EƒAƒNƒZƒXƒRƒ“ƒgƒ[ƒ‹‚Å•s³‚ȃƒ‚ƒŠ‚ɃAƒNƒZƒX‚·‚éꇂª‚ ‚éƒoƒO‚ðC³
- (login/)
- login.c
- check_ipmask()C³
-
-EƒXƒNƒŠƒvƒgƒŠƒtƒ@ƒŒƒ“ƒX­‚µ’ljÁ‚ÆC³
- (doc/)
- script_ref.txt
- C³
-
---------------------
-//0941 by (“Ê)
-
-Ee2‚³‚ñ‚Ì•ñ‚ðŒ³‚É¢Š«‚³‚ꂽŽè‰º‚̃Xƒs[ƒh‚𢊫Žå‚Æ“¯‚¶‚É‚µ‚Ä‚Ý‚é
-
- (map/)
- battle.c
- battle_get_speed() C³
- mob.c
- mob_spawn() C³
- mob_summonslave() C³
-
---------------------
-//0940 by End_of_exam
-
-Eƒq[ƒ‹‚âƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[‚ðŽg—p‚µ‚Ä‚à‰ñ•œ‚µ‚È‚¢ƒoƒO‚ðC³(0938`)B
-
-@Thanks for Pepermint, reporting the bug that using PotionPitcher with
-@BluePotion was no effective.
-@iƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[{‚o‚ÅŒø‰Ê‚ª‚È‚¢Ž–‚ð•ñ‚µ‚Ä‚­‚ꂽPepermintŽ‚ÉŠ´ŽÓj
-
- (map/)
- battle.c
- battle_heal() C³
-
---------------------
-//0939 by (“Ê)
-EcutinƒpƒPƒbƒg‚ð0x145(ƒtƒ@ƒCƒ‹–¼16•¶Žš)‚©‚ç0x1b3(64•¶Žš)‚É•ÏX
-E‚‚¢‚Å‚ÉŽG’kƒXƒŒ‚Éã‚°‚½athena-start‚𓯫
-
- (/)
- athena-start saveƒtƒ@ƒCƒ‹‚ª–³‚¢‚Æ‚«‚Éì‚é‚悤‚É
- (map/)
- clif.c
- clif_cutin() –{ŽIƒpƒPƒbƒg€‹’‚É•ÏX
- (doc/)
- client_packet.txt C³
-
---------------------
-//0938 by ‚Ò‚´‚Ü‚ñ
-
-Eƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[‚Ń|‚ð“Š‚°‚Ä‚àƒGƒtƒFƒNƒg‚¾‚¯‚¾‚Á‚½ƒoƒOC³B
-E˜I“XŠJÝ‚ª“Á’è‚̃AƒCƒeƒ€”z’u‚ÅŽ¸”s‚·‚éƒoƒOC³B
-EƒXƒNƒŠƒvƒgŠÖ”getareadropitemŽÀ‘•B
-@Žw’èƒGƒŠƒA“à‚̃hƒƒbƒvƒAƒCƒeƒ€‚ðƒJƒEƒ“ƒg‚·‚éŠÖ”‚Å‚·
-
-@‘Ž®Fgetareadropitem <mapname>,<x0>,<y0>,<x1>,<y1>,<item>;
-@@mapnameF‘ÎÛƒ}ƒbƒv–¼(—áFprontera.gat)
-@@x0‚Æx1F‘ÎÛXÀ•W”͈Í
-@@y0‚Æy1F‘ÎÛYÀ•W”͈Í
-@@itemFƒJƒEƒ“ƒg‚·‚é‘ÎÛƒAƒCƒeƒ€
-
-@–ß‚è’lFmapname“àÀ•W(x0,y0)-(x1,y1)‚͈͓̔à‚É—Ž‚¿‚Ä‚¢‚éitem‚Ì‘ŒÂ”
-@@@@@Žæ“¾Ž¸”sŽž‚É‚Í-1‚ð•Ô‚µ‚Ü‚·B
-@Eitem‚Ì’l‚ÍID‚Å‚àƒAƒCƒeƒ€–¼("Red_Jemstone"‚Æ‚©)‚Å‚à‚¢‚¢‚Å‚·B
-
- (map/)
- battle.c
- battle_heal() C³B
- vending.c
- vending_openvending() C³B
- script.c
- ƒ[ƒJƒ‹ƒvƒƒgƒ^ƒCƒv錾C³B
- struct buildin_func[] C³B
- buildin_getareadropitem()Abuildin_getareadropitem_sub() ’ljÁB
-
---------------------
-//0937 by netwarrior
-
-- Fix Japanese remarks problem in 0936
-- Fix minor problem in battle_heal()
-
---------------------
-//0936 by Pepermint
-
-Retouch about problem of increase in quantity at the CART,
-when enter the an minus quantity in the CLIENT.
-
-Retouch about problem of not recovery,use POTIONPITCHER skill.
-
- (map/)
- battle.c
- battle_heal()
-
- vending.c
- vending_purchasereq()
-
---------------------
-//0935 by ŒÓ’±—–
-
-E“à—e‚Ì“¯‚¶ƒXƒNƒŠƒvƒgNPC‚ð‰½“x‚à‹Lq‚µ‚È‚­‚Ä‚àŒ¾‚¢‚悤‚ÉC³
- ENPC’è‹`‚Ì"script"‚Æ‘‚­•”•ª‚ð"duplicate(NPC–¼)"‚Æ‚·‚é‚ÆA
- ŠY“–‚ÌNPC‚ƃXƒNƒŠƒvƒg‚ð‹¤—L‚·‚é‚悤‚ÉBNPC–¼‚Í•\Ž¦–¼‚Å‚Í‚È‚­
- ƒGƒNƒXƒ|[ƒg‚³‚ê‚é–¼‘O‚ðŽw’肵‚Ü‚·B
- <—á>
-prontera.gat,165,195,1 duplicate(ƒJƒvƒ‰Eˆõ) ƒJƒvƒ‰Eˆõ2 112
-
- E‹¤—LŒ³‚ÌNPC‚Í“¯‚¶ƒ}ƒbƒvƒT[ƒo[‚É‘¶Ý‚·‚é•K—v‚ª‚ ‚邽‚ßA
- “¯‚¶ƒ}ƒbƒv‚Å‚È‚¢ê‡‚Íduplicate‚·‚ׂ«‚Å‚Í‚È‚¢B
- ‚½‚¾‚µANPC‚̈ʒu‚ð"-"‚É‚·‚邱‚Æ‚ÅAƒ}ƒbƒvã‚É‚Í‘¶Ý‚µ‚È‚¢‚ªA
- ƒ}ƒbƒvƒT[ƒo[“à‚É‚Í‘¶Ý‚·‚éNPC‚ð쬂ł«‚é‚Ì‚ÅA
- ‚»‚ÌNPC‚ð‹¤—LŒ³‚É‚·‚é‚Ì‚Å‚ ‚ê‚΂ǂ̃}ƒbƒv‚Ö‚à‹¤—L‚Å‚«‚éB
- <—á>
-
-- script ƒeƒXƒg::test1 112,{ // ‚±‚ÌNPCƒOƒ‰ƒtƒBƒbƒNID‚ÍŽg—p‚µ‚È‚¢
-// (—ª)
-}
-prontera.gat,165,195,1 duplicate(test1) ƒeƒXƒg2 112
-geffen.gat,99,99,1 duplicate(test1) ƒeƒXƒg3 112
-
- Eã‚̃}ƒbƒv‚É‘¶Ý‚µ‚È‚¢NPC‚̓Cƒxƒ“ƒg‚É‚à‚·‚邱‚Æ‚ª‚Å‚«‚éB
- i‚ǂ̃}ƒbƒvƒT[ƒo[‚©‚ç‚Å‚à•K‚¸ŒÄ‚Ño‚¹‚éƒCƒxƒ“ƒg‚É‚È‚éj
-
- (map/)
- map.h
- struct npc_label_list’ljÁ,struct npc_dataC³
- npc.c
- npc_parse_script()C³
- •s—v‚É‚È‚Á‚½ƒ‰ƒxƒ‹ƒf[ƒ^ƒx[ƒXŠÖ˜A‚ÌŠÖ”‚ðíœ
-
---------------------
-//0934 by ‚Ò‚´‚Ü‚ñ
-
-EMOB‚Ìó‘ÔˆÙí‘Ï«‚ª‚₽‚ç‚‚©‚Á‚½‚Ì‚ðC³B
-E‘¬“xŒ¸­‚ÌŽd—l•ÏX(¬Œ÷—¦ŒvŽZŽ®•ÏXEŽ¸”sŽž‚ɂ̓GƒtƒFƒNƒg–³‚µ)B
-E‰½Žž‚ÌŠÔ‚É‚©ó‘ÔˆÙí‚ÌŒp‚¬‘«‚µ‹ÖŽ~‚ªƒRƒƒ“ƒgƒAƒEƒg‚³‚ê‚Ä‚¢‚½‚Ì‚Å–ß‚µB
-Eƒ|ƒCƒYƒ“ƒŠƒAƒNƒg‚̃AƒCƒRƒ“•\Ž¦‚ª–³‚­‚È‚Á‚Ä‚¢‚½‚Ì‚ÅC³(‚Å‚ào‚邾‚¯c)
-E”’nŽæ‚èŽÀ‘•B
-
- (map/)
- battle.c
- battle_weapon_attack() C³B
- clif.c
- clif_parse_WalkToXY()Aclif_parse_ActionRequest() C³B
- clif_parse_TakeItem()Aclif_parse_UseItem() C³B
- clif_parse_DropItem()Aclif_parse_EquipItem() C³B
- clif_parse_UnequipItem() C³B
- mob.c
- mob_can_move()Amob_attack()Amob_ai_sub_hard() C³B
- mobskill_use_id()Amobskill_use_pos() C³B
- mobskill_castend_id()Amobskill_castend_pos() C³B
- pc.c
- pc_attack_timer()Apc_setpos() C³B
- skill.c
- SkillStatusChangeTable[] C³B
- skill_additional_effect()Askill_castend_damage_id() C³B
- skill_castend_nodamage_id()Askill_check_condition() C³B
- skill_status_change_start()Askill_status_change_end() C³B
- skill_use_id() C³B
- skill.h C³B
- (db/)
- cast_db.txt C³B
-
---------------------
-//0933 by ŒÓ’±—–
-
-EƒEƒBƒU[ƒh“]EŠNPC‰¼ŽÀ‘•
- Eeathena‚̃f[ƒ^‚Ì–|–óA‚¨‚æ‚Ñ–^Š‚Ì̂̃f[ƒ^‚ðŒ³‚Éì‚Á‚½‚Ì‚Å
- ŠàŽI‚Æ‚Í”÷–­‚ɈقȂÁ‚Ä‚é‚ÆŽv‚¢‚Ü‚·B
- uŒÃ‚¢Šª•¨v‚Æ‚©Žg‚¦‚Ü‚¹‚ñ‚µB
- EŒ»s‚Ìjob_2nd.txt‚ƈê‚É“Ç‚Ýž‚Þ‚ÆANPC‚ªd‚È‚é‚Ì‚ÅA
- job_2nd.txt‚ÌŠY“–ƒXƒNƒŠƒvƒg‚ðƒRƒƒ“ƒg‰»‚µ‚Ä‚­‚¾‚³‚¢B
- ‚½‚¾‚µA‚»‚Ìꇂ̓Z[ƒW‚É“]E‚³‚¹‚Ä‚à‚炦‚È‚¢‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
-
- (conf/npc/)
- npc_job_wizard.txt
- ’ljÁ
- (conf/warp/)
- npc_warp_job.txt
- ƒEƒBƒU[ƒh“]EŠ‚̃[ƒv‚ðƒRƒƒ“ƒg‰»
-
-EƒoƒOC³
- Egoto‚âmenu‚щƒxƒ‹‚ªŒ©‚‚©‚ç‚È‚¢‚Æ‚«ƒXƒNƒŠƒvƒg‚ÌŽÀs‚ð’†’f‚·‚é‚悤‚É.
- E‚P‰ñ‚̃XƒNƒŠƒvƒg‚ÌŽÀs‚É‚¨‚¢‚ÄAŽÀs–½—ß”‚ª–ñ8000‚ð’´‚¦‚é‚©A
- goto‚âmenu‚ÌŽÀs‰ñ”‚ª–ñ500‰ñ‚ð’´‚¦‚é‚ÆŽÀs‚ð’†’f‚·‚é‚悤‚ÉB
- EŠÖ”/–½—ߎÀsŽž‚É‚àƒGƒ‰[ƒ`ƒFƒbƒN‚ð“ü‚ꂽ
- EƒMƒ‹ƒh/ƒp[ƒeƒB/ƒyƒbƒg‚Ì–¼‘O‚É“ú–{Œê‚ªŽg‚¦‚È‚¢–â‘èC³
-
-
- (char/)
- int_guild.c/int_party.c
- –¼‘O–â‘èC³
- (map/)
- pet.c
- –¼‘O–â‘èC³
- script.c
- C³
-
---------------------
-//0932 by End_of_exam
-
-E0930‚ŃMƒ‹ƒh‘qŒÉ‚Ì’†g‚ªÁ‚¦‚éƒoƒO‚ðC³B
-
- (char/)
- int_storage.c guild_storage_tostr() C³B
-
---------------------
-//0931 by (“Ê)
-EƒT[ƒo[snapshot
-EAthenaDBŒv‰æ‚©‚çXV‚Ì‚ ‚Á‚½•¨‚𔽉f
-Eatcommand_athena.conf‚Éstr“™‚ð’ljÁ
-Eƒ[ƒvƒ|[ƒ^ƒ‹‚Ì–{ŽI‘Šˆá“_‚ðC³
-E–¶‚³‚ñ‚Ìaldeg_cas03`05‚𓯫
-Ep‚³‚ñ‚Ìnpc_event_kataribe.txt“¯«
-EKAJIKEN‚³‚ñ‚Ìnpc_warp_louyang.txt“¯«
-
- (db/)
- item_db.txt •ÏX
- (conf/)
- atcommand_athena.conf •ÏX
- map_athena.conf •ÏX
- (conf/gvg/)
- aldeg_cas03.txt •ÏX
- aldeg_cas04.txt •ÏX
- aldeg_cas05.txt •ÏX
- (conf/mob/)
- npc_monster.txt •ÏX
- (conf/npc/)
- npc_event_kataribe.txt ’ljÁ
- (conf/warp/)
- npc_warp_louyang.txt ’ljÁ
- (map/)
- pc.c pc_memo() •ÏX
-
---------------------
-//0930 by ŒÓ’±—–
-
- Šù‘¶‚Ì char/ ‚É‚ ‚élock.c‚Ælock.h‚Í휂µ‚Ä‚­‚¾‚³‚¢B
- ‚±‚ê‚ç‚Í common/ ‚Ɉړ®‚³‚ê‚Ü‚·B
-
-EƒXƒNƒŠƒvƒg’ljÁC³
- Esetarrayi”z—ñ‚ÖƒŠƒXƒg‘ã“üj’ljÁ
- Ecleararrayi”z—ñ‚ðŽw’è’l‚ŃNƒŠƒAj’ljÁ
- Ecopyarrayi”z—ñ‚ðƒRƒs[j’ljÁ
- Egetarraysizei”z—ñ‚Ì—LŒø‚È—v‘f”‚ð‹‚ß‚éj’ljÁ
- Edeletearrayi”z—ñ‚Ì—v‘f‚ð휂µ‚Â߂éj’ljÁ
- EwarpwaitingpcFl”‚âƒAƒJƒEƒ“ƒgID‚ðƒ}ƒbƒv•Ï”‚ɃZƒbƒg‚·‚é‚悤‚ÉC³
-
- (map/)
- script.c
- FX
- (doc/)
- script_ref.txt
- –½—ߒljÁ‚È‚Ç
- (npc/sample/)
- npc_test_array.txt
- ”z—ñŒnƒeƒXƒg—pNPCƒXƒNƒŠƒvƒg
-
-EƒoƒOC³‚È‚Ç
- EƒLƒƒƒ‰ƒNƒ^[–¼/ƒAƒJƒEƒ“ƒg–¼/ƒp[ƒeƒB–¼/ƒMƒ‹ƒh–¼/ƒyƒbƒg–¼‚É
- ƒRƒ“ƒgƒ[ƒ‹ƒR[ƒh‚ðŽg‚¦‚È‚¢‚悤‚ÉC³B
- Echar.c‚È‚Ç‚Ì•Û‘¶‚ÌŒø—¦‚ðX‚ɃAƒbƒvB
- E‘qŒÉƒtƒ@ƒCƒ‹/ƒMƒ‹ƒh‘qŒÉƒtƒ@ƒCƒ‹‚É‹ós‚ªŽc‚ç‚È‚¢‚悤‚ÉC³
- Elock.*‚ðcommon/‚Ɉړ®Aƒtƒ@ƒCƒ‹‚ª•Û‘¶‚Å‚«‚È‚­‚È‚éƒoƒOC³A
- ƒAƒJƒEƒ“ƒg‚ƃ}ƒbƒv•Ï”‚Ì•Û‘¶‚É‚àlock_fopen‚ðŽg‚¤‚悤‚ÉB
-
- (common/)
- lock.c/lock.h
- ƒtƒHƒ‹ƒ_ˆÚ“®Alock_fopenC³
- (login/)
- login.c
- mmo_auth_new()C³
- (char/)
- char.c
- mmo_char_tostr(),make_new_char()C³
- int_storage.c
- storage_tostr(),guild_storage_tostr(),
- inter_storage_save_sub(),inter_guild_storage_save_sub()C³
- int_party.c
- int_guild.c
- –¼‘O–â‘èC³
- (map/)
- pet.c
- –¼‘O–â‘èC³
-
---------------------
-//0929 by ‚Ò‚´‚Ü‚ñ
-
-Eƒ‰ƒ“ƒhƒvƒƒeƒNƒ^[Š®‘SŽÀ‘•B
-Eƒvƒƒ{ƒbƒN‚̃XƒLƒ‹Žd—l•ÏX(‰r¥–WŠQE“€Œ‹AΉ»A‡–°‰ðœ)B
-EƒŠƒJƒoƒŠ[‚̃XƒLƒ‹Žd—l•ÏX(ƒAƒ“ƒfƒbƒh‚ÉŽg—p‚·‚é‚ƈê’èŠm—¦‚ňÈŌø‰Ê)B
-Eó‘ÔˆÙí’†‚Å‚à‘•”õ‚ÌØ‚è‘Ö‚¦‚ªo—ˆ‚é‚悤‚É•ÏXB
-EƒAƒCƒeƒ€Ž©“®Žæ“¾’†‚É@killmonster‚ðŽg—p‚·‚é‚Æ—Ž‚¿‚éƒoƒOC³B
-EŒÓ’±—–‚³‚ñ‚ªã‚°‚Ä‚¢‚½npc.c‚𓯫‚µ‚Ü‚µ‚½B
-Eskill_db‚Å‹C‚É‚È‚Á‚Ä‚½‚Æ‚±‚ð‚¿‚å‚±‚Á‚ÆC³B
-
- (map/)
- clif.c
- clif_parse_EquipItem() C³B
- skill.c
- skill_castend_nodamage_id() C³B
- skill_unitsetting()Askill_unit_onplace() C³B
- skill_landprotector() ’ljÁB
- mob.c
- mob_delay_item_drop()Amob_delay_item_drop2() C³B
- npc.c C³
-
- (db/)
- skill_db.txt C³B
-
---------------------
-//0928 by End_of_exam
-
-EƒLƒƒƒ‰‚â‘qŒÉ“àƒAƒCƒeƒ€‚ªÁ‚¦‚é–â‘è‚ÉŽb’è‘ΈiƒLƒƒƒ‰ŽI‚̉ü—ÇjB
-
-@1.ƒLƒƒƒ‰ƒf[ƒ^E‘qŒÉƒf[ƒ^‚̃f[ƒ^•ÏŠ·ˆ—‚ð‰ü—ÇB
-@@(char/char.c , char/int_storage.c)
-
-@2.ƒtƒ@ƒCƒ‹‘‚«o‚µ‚ªI‚í‚é‚Ü‚ÅA‹Œƒtƒ@ƒCƒ‹‚ðŽc‚·‚悤‚ÉC³B
-@ichar/lock.c, char/lock.h ‚̒ljÁBƒƒCƒNƒtƒ@ƒCƒ‹‚ÌC³B
-@@char/int_storage.c,int_guild.c,int_party.c,int_pet.c,char.c,inter.c
-@@“à‚É‚ ‚éAƒf[ƒ^‘‚«o‚µˆ—‚ð•ÏXBj
-
---------------------
-//0927 by ‚Ò‚´‚Ü‚ñ
-
-E•ŠíUŒ‚ˆÈŠO‚ÉŽí‘°•â³‚ª“ü‚Á‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ðC³B
-E‰‰‘t’†‚ÉŠyŠíE•ÚˆÈŠO‚Ì•Ší‚ÉŽ‚¿•Ï‚¦‚é‚Ɖ‰‘t‚ªŽ~‚Ü‚é—l‚ÉC³B
-E‰‰‘t‚ÌŒø‰Ê‚ª‰‰‘tŽÒŽ©g‚É‚Í‚©‚©‚ç‚È‚¢‚悤‚ÉC³B
-EƒAƒCƒeƒ€Ž©“®Žæ“¾‹@”\ŽÀ‘•
-@“G‚ð“|‚µ‚½Žž‚ÉAƒAƒCƒeƒ€‚ªƒhƒƒbƒv‚³‚ê‚é‚Ì‚Å‚Í‚È‚­A‚»‚Ì“G‚Ɉê”Ô‘½‚­‚̃_ƒ[ƒW‚ð
-@—^‚¦‚½l(ƒ‹[ƒgŒ 1ˆÊ‚Ìl)‚ɃhƒƒbƒvƒAƒCƒeƒ€‚ªŽ©“®‚Å—^‚¦‚ç‚ê‚é‹@”\‚Å‚·B
-@battle_athena.conf‚Ìitem_auto_get‚ÅÝ’è‚Å‚«‚Ü‚·B
-@ƒIƒŠƒWƒiƒ‹ƒAƒbƒvƒf[ƒg‚̈×Abattle_athena.conf‚ł̃fƒtƒHƒ‹ƒg‚Å‚Íno‚É‚µ‚Ä‚¢‚Ü‚·B
-E‘®«ê(ƒfƒŠƒ…[ƒWEƒoƒCƒIƒŒƒ“ƒgƒQƒCƒ‹Eƒ{ƒ‹ƒP[ƒmEƒ‰ƒ“ƒhƒvƒƒeƒNƒ^[)‰¼ŽÀ‘•
-@ˆê•”‚Ì‹@”\‚ª–¢ŽÀ‘•‚Å‚·
-@@ƒfƒŠƒ…[ƒWF…ê‚ð—p‚¢‚½ƒEƒH[ƒ^[ƒ{[ƒ‹
-@@ƒoƒCƒIƒŒƒ“ƒgƒQƒCƒ‹Fƒtƒ@ƒCƒA[ƒEƒH[ƒ‹‚ÌŽ‘±ŽžŠÔ•â³
-@@ƒ{ƒ‹ƒP[ƒmFƒAƒCƒXƒEƒH[ƒ‹‹ÖŽ~
-@@ƒ‰ƒ“ƒhƒvƒƒeƒNƒ^[FƒIƒuƒWƒFƒNƒgÝ’uŒnƒXƒLƒ‹‹ÖŽ~(‚‚܂èo‚邾‚¯‚ÌLP‚Å‚·)
-
- (map/)
- battle.c
- battle_calc_damage()Abattle_calc_magic_attack() C³B
- battle_calc_misc_attack()Abattle_config_read() C³B
- mob.c
- mob_delay_item_drop()Amob_delay_item_drop2() C³B
- pc.c
- pc_calcstatus()Apc_equipitem() C³B
- skill.c
- ƒ[ƒJƒ‹ƒvƒƒgƒ^ƒCƒv錾C³B
- SkillStatusChangeTable[] C³B
- skill_castend_nodamage_id()Askill_castend_pos2() C³B
- skill_unitsetting()Askill_unit_onplace() C³B
- skill_unit_onout()Askill_unit_ondelete() C³B
- skill_status_change_start()Askill_status_change_end() C³B
- skill_clear_element_field() ’ljÁB
- battle.h C³B
- skill.h C³B
- (conf/)
- battle_athena.conf
- item_auto_get€–Ú‚ð’ljÁB
- (db/)
- cast_db.txt C³B
-
---------------------
-//0926 by ŒÓ’±—–
-
-EƒMƒ‹ƒhé‚̉Šú‰»•û–@•ÏX
- E‘S‚ẴMƒ‹ƒhéi{è‹’ƒMƒ‹ƒhî•ñj‚ðŠ“¾‚µ‚½‚Æ‚«‚ÉOnAgitInit‚ª
- ‚æ‚΂ê‚é‚悤‚ÉBGetCastleData‚âRequestGuildInfo‚Ì•K—v‚ª‚È‚­‚È‚è‚Ü‚·B
- ]‚Á‚ÄAŒ»Ý‚ÌgvgƒXƒNƒŠƒvƒg‚ÌOnInterIfInit‚âOnRecvCastleXXX‚Í
- •K—v‚È‚­‚È‚è‚Ü‚·Bi‚¨‚»‚ç‚­Œ»s‚̃XƒNƒŠƒvƒg‚à“®ì‚͉”\‚Å‚·j
- ‰Šú‰»‚ª•K—v‚ÈNPC‚Í•Ï‚í‚è‚ÉOnAgitInit‚ðŽg‚Á‚Ä‚­‚¾‚³‚¢B
- ‚È‚¨A•s—v‚É‚È‚Á‚½–½—ß‚È‚Ç‚ð휂·‚é—\’è‚Í‚ ‚è‚Ü‚¹‚ñB
-
- (char/)
- inter.c/inter.h/char.c/int_guild.c/int_guild.h
- ƒ}ƒbƒvƒT[ƒo[Ú‘±Žž‚Ɉ—‚ðs‚¦‚é‚悤‚ÉC³
- Ú‘±Žž‚ɃMƒ‹ƒhéƒf[ƒ^‚ð‘—M‚·‚é‚悤‚É
- (map/)
- intif.c/guild.c/guild.h
- Ú‘±Žž‚̃Mƒ‹ƒhéƒf[ƒ^ˆêŠ‡ŽóMˆ—•ƒMƒ‹ƒhî•ñ—v‹A
- OnAgitInit‚̌ĂÑo‚µ‚È‚Ç
- chrif.c
- ‹ŒOnAgitInit‚̌ĂÑo‚µíœ
- (doc/)
- inter_server_packet.txt
- ƒMƒ‹ƒhéƒf[ƒ^ˆêŠ‡‘—MƒpƒPƒbƒg0x3842’ljÁ
-
-EƒXƒNƒŠƒvƒg‚ÉNPCŽå‘̃Cƒxƒ“ƒgŽÀs–½—ߒljÁ
- Edonpcevent(NPCŽå‘̃Cƒxƒ“ƒgŽÀs)’ljÁ
- ‚±‚¿‚ç‚Ídoevent‚ƈႢƒuƒ[ƒhƒLƒƒƒXƒg‰Â”\‚Å‚·BÚׂÍscript_refB
- Eisloggedin‚̃Rƒ“ƒpƒCƒ‹Œx‚ª‚Å‚È‚¢‚悤‚ÉC³
- (map/)
- script.c
- buildin_donpcevent()’ljÁ‚È‚Ç
- (doc/)
- script_ref.txt
- doevent,donpcevent,OnAgitInit’ljÁ‚È‚Ç
-
-E‚»‚Ì‘¼C³
- (map/)
- clif.c
- clif_parse_GMReqNoChat()’ljÁ
-
-
---------------------
-//0925 by ŒÓ’±—–
-
-EƒXƒNƒŠƒvƒg‚̃oƒOC³
- Emonster,areamonster‚Ì–â‘èC³
- ‚±‚ê‚ç‚Íscript_rid2sd‚ðŽg—p‚µ‚È‚¢‚悤‚É‚µ‚Ü‚µ‚½B
- sd‚ªNULL‚Ì‚Æ‚«AƒŒƒxƒ‹ƒ`ƒFƒbƒN‚ðs‚í‚È‚¢‚悤‚É‚µ‚Ü‚µ‚½B
-
- (map/)
- script.c/mob.c
- buildin_monster(),buildin_areamonster(),mob_once_spawn()‘¼
-
-EƒXƒNƒŠƒvƒg‚Ì‹@”\’ljÁ
- Edetachrid–½—ßiƒvƒŒƒCƒ„[‚̃fƒ^ƒbƒ`j’ljÁ
- EisloggedinŠÖ”iƒvƒŒƒCƒ„[‚̃ƒOƒCƒ“ƒ`ƒFƒbƒNj’ljÁ
- Egetitem,getitem2–½—ß,countitem,checkweightŠÖ”‚Å
- nameid‚ɃAƒCƒeƒ€‚Ì–¼‘O‚ðŽw’è‰Â”\‚ÉB
- (item_db‚ȂǂɈˑ¶‚·‚邽‚ßAŽg—p‚·‚ׂ«‚Å‚Í‚ ‚è‚Ü‚¹‚ñ‚ªAˆê‰ž)
-
- (map/)
- script.c
- FX
- (doc/)
- script_ref.txt
- •ÏX•”•ª‚ƃGƒ‰[à–¾C³
-
-Eathena-start‚Æstart‚ðC³
- Eathena-start stop‚ŃvƒƒZƒX‚ªI—¹‚·‚é‚܂ő҂‚悤‚É
- Estart‚ÅÄ‹N“®‚³‚¹‚é‚Æ‚«athena-start restart‚ðŒÄ‚Ԃ悤‚ÉB
-
---------------------
-//0924 by (“Ê)
-
-EƒoƒO•ñƒXƒŒƒbƒh part4 >>66‚Ìnpc‚ðŽæ‚èž‚Ý
-E“¯ >>51‚Ìguild.c‚𔽉f
-E“¯ >>38‚Ìatcommand_athena.conf‚Ö‚Ì•ÏX‚ðŽæ‚èž‚Ý
-E‚È‚º‚©npcƒtƒHƒ‹ƒ_‚É‚ ‚Á‚Ämap_athena.conf‚È‚¢ƒtƒ@ƒCƒ‹‚ðˆê——‚ɒljÁB‚‚¢‚łɃMƒ‹ƒhƒtƒ‰ƒbƒO‚̃Rƒƒ“ƒgƒAƒEƒg‚ð‰ðœ
-Econf/npc/npc_job_1st.txt npc_script2.txt npc_shop3.txt‚̓XƒiƒbƒvƒVƒ‡ƒbƒg‚©‚ç휂µ‚Ä‚­‚¾‚³‚¢
-
- (map/)
- guild.c C³
- (conf/)
- map_athena.conf C³
- atcommand_athena.conf C³
- (conf/npc/)
- npc_event_hat.txt C³
- npc_event_oni.txt C³
- npc_job_1st.txt íœ
- npc_script2.txt íœ
- npc_shop3.txt íœ
-
---------------------
-//0923 by ŒÓ’±—–
-
-EƒXƒNƒŠƒvƒg‚̃oƒOC³
-Escript_rid2sd‚ªŽ¸”s‚µ‚Ä‚àƒT[ƒo[‚ðI—¹‚µ‚È‚¢‚悤‚É•ÏX
- Emonster,areamonster‚È‚Ç‚ªŽÀs‚Å‚«‚È‚¢–â‘èC³
-
- (map/)
- script.c/mob.c
- buildin_monster()‚È‚ÇC³
-
- (doc/)
- script_ref.txt
- ƒ‰ƒxƒ‹‚ƃGƒ‰[‚Ìà–¾C³
-
---------------------
-//0922 by ŒÓ’±—–
-
-EƒXƒNƒŠƒvƒgƒGƒ‰[‚Ìs”Ô†‚ª³‚µ‚­•\Ž¦‚³‚ê‚é‚悤‚É
-
- (map/)
- itemdb.c / npc.c
- itemdb_readdb(),npc_parse_script()C³
-
-EƒLƒƒƒ‰ƒNƒ^[î•ñ‚ɃAƒNƒZƒX‚Å‚«‚È‚¢ó‘ԂŃAƒNƒZƒX‚·‚é‚ƃGƒ‰[‚ðo‚·‚悤‚ÉC³
-Egoto/menu‚щƒxƒ‹‚ªŽw’肳‚ê‚éꊂɃ‰ƒxƒ‹ˆÈŠO‚ªŽw’肳‚ê‚é‚ÆŒx‚ðo‚·‚悤‚É
-Escript_ref‚ɃGƒ‰[ƒƒbƒZ[ƒW‚Ìà–¾’ljÁ
-EƒCƒxƒ“ƒg‹N“®‚³‚ꂽƒXƒNƒŠƒvƒg‚ŃLƒƒƒ‰ƒNƒ^[‚ðŽg—p‚Å‚«‚é‚悤‚É‚·‚éŠÖ”’ljÁ
- EattachridiŽw’肵‚½ID‚Ìî•ñ‚ðŽg—p‚Å‚«‚é‚悤‚É‚·‚éj’ljÁ
- Egetcharidi3‚ŃAƒJƒEƒ“ƒgID‚ðŠ“¾‚Å‚«‚é‚悤‚ÉjC³
- (map/)
- script.c
- script_rid2sd(),buildin_attachrid()’ljÁ
- ‘½XC³B
- (doc/)
- script_ref.txt
- ƒGƒ‰[ƒƒbƒZ[ƒW‚Ìà–¾’ljÁA•Ï”/ƒ‰ƒxƒ‹‚Ìà–¾C³
- ‘¼C³
-
---------------------
-//0921 by RR
-EƒXƒNƒŠƒvƒgƒoƒOC³(‚²–À˜f‚ð‚¨‚©‚¯‚µ‚Ü‚µ‚½)
- (conf/npc/)
- npc_event_tougijou.txt
-
-Esteal—¦C³(Ž©DEX - “GDEX + SLv*3 +10‚Ì•”•ª‚ňê“x”»’è‚ð‚µ‚Ä‚¢‚½‚Ì‚Å)
-E0918‚Å0914ˆÈ‘O‚ÉŠª‚«–ß‚Á‚Ä‚µ‚Ü‚Á‚Ä‚¢‚½•”•ª‚ðŒ³‚É–ß‚µ‚½
- (map/)
- pc.c
- pc_steal_item() C³
- itemdb.c
- pet.c
- skill.c C³
-
---------------------
-//0920 by Ž‚Žqo^.^o
-E Steal—¦ = Drop—¦ * (Ž©DEX - “GDEX + SLv*3 +10) /100
- (map/)
- pc.c
- int pc_steal_item()C³
-
---------------------
-//0919 by RR
-Eatcommand‚Ìlvup‚ðŽg‚¤‚Ǝ擾ƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒg‚ª‚¨‚©‚µ‚¢–â‘è‚ÌC³
-EƒoƒOC³(ƒoƒO•ñƒXƒŒ‚ÅC³‚Ìo‚½‚à‚Ì‚ÌŽæ‚èž‚Ý@ŒÓ’±—–‚³‚ñAp‚³‚ñA‹¤‚É‚¨”æ‚ê—l‚Å‚·)
- (map/)
- atcommand.c
- atcommand_baselevelup()C³
- guild.c
- guild_gvg_eliminate_timer()C³
- pc.c
- pc_setreg(),pc_setregstr()C³
- (login/)
- login.c
- parse_login()C³
---------------------
-//0918 by ¹
-Eitem_dbŽ©‘Ì‚ªƒI[ƒo[ƒ‰ƒCƒh‰Â”\‚É‚È‚Á‚½‚Ì‚ÅAclass_equip_db.txt‚Ì”pŽ~B
-Epet_db.txtAproduce_db.txt‚àƒI[ƒo[ƒ‰ƒCƒh‰Â”\‚ÉC³B
- (map/)
- itemdb.c
- do_init_itemdb() C³B
- pet.c
- read_petdb() C³B
- skill.c
- skill_readdb() C³B
-
---------------------
-//0917 by RR
-EƒXƒNƒŠƒvƒgC³
- “‘¾˜YƒCƒxƒ“ƒg‚Æ“¬‹ZêƒCƒxƒ“ƒg‚ðNPCƒ^ƒCƒ}[‚É•ÏX
- (conf/npc/)
- npc_event_momotarou.txt
- npc_event_tougijou.txt C³
-EƒXƒLƒ‹ƒcƒŠ[C³(ƒoƒO•ñƒXƒŒ25‚æ‚è)
- (db/)
- skill_db.txt C³
-
---------------------
-//0916 by (“Ê)
-Enpc_monster‚Énpc_mob_job‚ð“‡Bnpc_mob_job.txt‚Í휂µ‚Ä‚©‚Ü‚¢‚Ü‚¹‚ñ
-
- (conf/)
- map_athena.conf npc_mob_job‚ðíœ
- (conf/mob/)
- npc_monster.txt XV
-
---------------------
-//0915 by ŒÓ’±—–
-
-ENPCƒ^ƒCƒ}[ŠÖŒW‚Ì–½—ߒljÁ•C³‘¼
- EdelwaitingroomiNPCƒ`ƒƒƒbƒgI—¹jˆø”‚ðŒ©‚Ä‚È‚©‚Á‚½‚Ì‚ÅC³
- EinitnpctimeriNPCƒ^ƒCƒ}[‰Šú‰»j’ljÁ
- EstopnpctimeriNPCƒ^ƒCƒ}[’âŽ~j’ljÁ
- EstartnpctimeriNPCƒ^ƒCƒ}[ŠJŽnj’ljÁ
- EgetnpctimeriNPCƒ^ƒCƒ}[î•ñŠ“¾j’ljÁ
- EsetnpctimeriNPCƒ^ƒCƒ}[’lÝ’èj’ljÁ
-
- Šù‘¶‚Ìaddtimer‚Ȃǂ̓vƒŒƒCƒ„[’PˆÊ‚Ì‚½‚ßANPC’PˆÊ‚̃^ƒCƒ}[‚ðì‚è‚Ü‚µ‚½B
- ‚±‚¿‚ç‚ÍAaddtimer‚ȂǂƂ͈ႢAOnTimerXXX‚Æ‚¢‚¤•—‚Ƀ‰ƒxƒ‹‚ðŽw’肵‚Ü‚·B
- Ú‚µ‚­‚̓Tƒ“ƒvƒ‹‚Æscrit_ref.txt‚ðŽQÆB
-
- (map/)
- map.h
- struct npc_data C³Astruct npc_timerevent_list’ljÁ
- npc.c / npc.h
- npc_timerevent(),npc_timerevent_start(),npc_timerevent_stop(),
- npc_gettimerevent_tick(),npc_settimerevent_tick()’ljÁ
- npc_parse_script()C³
- script.c
- buildin_*npctimer()’ljÁ‚È‚Ç
- (conf/sample/)
- npc_test_npctimer.txt
- NPCƒ^ƒCƒ}[Žg—pƒTƒ“ƒvƒ‹
- (doc/)
- script_ref.txt
- NPCƒ^ƒCƒ}[ŠÖŒW‚Ì–½—ß/ŠÖ”’ljÁA’蔃‰ƒxƒ‹‚Ìà–¾C³
-
-ESage‚̃A[ƒXƒXƒpƒCƒN‚ÌŠ“¾ðŒC³
- (db/)
- skill_tree.txt
- ƒA[ƒXƒXƒpƒCƒN‚ÌsiƒTƒCƒYƒ~ƒbƒNƒEƒFƒ|ƒ“‚ðLv1‚Éj
-
---------------------
-//0914 by p
-E”͈̓XƒLƒ‹Žg—pŽž‚ɉð•úς݃ƒ‚ƒŠ‚ðŽQÆ‚µ‚Ä‚¢‚½–â‘è‚ɑΉž
-Eƒƒ‚ƒŠ‚ð‰Šú‰»‚¹‚¸‚ÉŽg—p‚µ‚Ä‚¢‚½—̈æ‚ðA‰Šú‰»‚µ‚Ä‚©‚çŽg—p‚·‚é‚悤‚É•ÏX
- (common/)
- db.c
- grfio.c
- socket.c
- timer.c
- (char/)
- char.c
- int_guild.c
- int_party.c
- int_pet.c
- int_storage.c
- inter.c
- (login/)
- login.c
- (map/)
- ‚Ù‚Æ‚ñ‚Ç.c
-
---------------------
-//0913 by Kalen
-
-EGVGScript‚ÌC³
-@911‘Ήž
-@ƒtƒ‰ƒO‚©‚çƒAƒWƒg‚Ö–ß‚é‹@”\’ljÁ
-@–ß‚é‚Æ‚«‚É•·‚©‚ê‚é‚悤‚ÉC³(TESTscript)
-@Ԏ擾Žž::OnRecvCastleXXX‚ð”­“®‚·‚é‚悤‚ÉC³
- (conf/gvg/)
- ‚Ù‚Æ‚ñ‚Ç.txt
-
---------------------
-//0912 by (“Ê)
-E‚±‚̃tƒ@ƒCƒ‹‚Ì•¶Žš‰»‚¯‚ÆTEST_prtg_cas01_AbraiJ‚Ì•¶Žš‰»‚¯‚ðC³
-EƒoƒO•ñƒXƒŒ‚Ì>>19-20‚ðŽæ‚èž‚Ý
-EÌ‚â‚Á‚¿‚Ü‚Á‚½battle_athena.conf‚̌뎚‚Ì’ù³
-
- (common)
- mmo.h
- #define MAX_STAR 3‚ÉC³
- (conf)
- battle_athena.conf
- (conf/gvg/)
- TEST_prtg_cas01_AbraiJ.txt
- (map)
- atcommand.c
- get_atcommandinfo_byname() C³
-
-
---------------------
-//0911 by Michael_Huang
-
- Mounting Emblem of the Flag-NPC.
- (Added Script Command: FlagEmblem).
-
-(conf/gvg/)
- TEST_prtg_cas01_AbraiJ.txt (FlagEmblem Test)
-
- (map/)
- map.h struct npc_data{}
- clif.c clif_npc0078()
- script.c buildin_flagemblem()
-
---------------------
-//0910 by RR
-EƒXƒNƒŠƒvƒg‚̊ԈႢ‚ðC³
-(conf/gvg/)
- ev_agit_payg.txt
- ev_agit_gefg.txt
-
-E‚ЂÈÕ‚è‚Ɉê“x“ü‚Á‚½‚çƒ}ƒbƒv•Ï”‚ªŽc‚Á‚½‚Ü‚Ü‚É‚È‚é‚Ì‚ÅAƒ}ƒbƒv•Ï”‚ðŽg‚í‚È‚¢‚悤•ÏX
-(ˆêŽž“Iƒ}ƒbƒv•Ï”‚É‚·‚ê‚Ζâ‘è‚È‚¢‚Æ‚àŒ¾‚¦‚Ü‚·‚ªA
-town_guide‚Ætown_kafra‚ÉŽžŠúŒÀ’è‚Ì•¨‚ªí’“‚µ‚Ä‚µ‚Ü‚¤‚Ì‚ª‹C‚É‚È‚Á‚½‚Ì‚ÅA
-‚»‚ê‚ç‚ðevent_hinamatsuri‚ÖˆÚ“®‚µA•’i‚Ì‚ðdisable‚µ‚Ä‚¢‚Ü‚·)
- (conf/npc/)
- npc_event_hinamatsuri
- npc_town_guide
- npc_town_kafra
-
-EƒXƒLƒ‹ƒŠƒZƒbƒgŽž‚̃XƒLƒ‹Žæ“¾§ŒÀ”»’è‚ðƒXƒLƒ‹ƒ|ƒCƒ“ƒg48ˆÈãÁ”ï‚©‚çA
- ƒXƒLƒ‹ƒ|ƒCƒ“ƒg58ˆÈãÁ”ï‚©Žc‚èƒXƒLƒ‹ƒ|ƒCƒ“ƒg‚ªJOBLEVEL‚æ‚謂³‚­‚È‚Á‚½‚Æ‚«‚É•ÏX
-E@modelŽž‚Ì•žFõF§ŒÀ‚ðŠÉ˜a(’jƒAƒTAƒ[ƒO‚Ì‚Ý‚Ö)
- (map/)
- pc.c pc_calc_skilltree()
- atcommand.c atcommand_model()
-
-
---------------------
-//0909 by ŒÓ’±—–
-
-ENPCƒ`ƒƒƒbƒgŠÖŒW‚Ì–½—ߒljÁ
- EwaitingroomiNPCƒ`ƒƒƒbƒgì¬jC³iƒCƒxƒ“ƒg‚ð‹N‚±‚·l”‚ðŽw’è‰Â”\j
- EdelwaitingroomiNPCƒ`ƒƒƒbƒgI—¹j’ljÁ
- EenablewaitingroomeventiNPCƒ`ƒƒƒbƒgƒCƒxƒ“ƒg—LŒø‰»j’ljÁ
- EdisablewaitingroomeventiNPCƒ`ƒƒƒbƒgƒCƒxƒ“ƒg–³Œø‰»j’ljÁ
- EgetwaitingroomstateiNPCƒ`ƒƒƒbƒgó‘ÔŠ“¾j’ljÁ
- EwarpwaitingpciNPCƒ`ƒƒƒbƒgƒƒ“ƒo[ƒ[ƒvjC³
- Ú‚µ‚­‚Íscript_ref.txt‚ðŽQÆ
-
- (map/)
- script.c/npc.c/npc.h/chat.c/chat.h/clif.c
- ‘½XC³
- (doc/)
- script_ref.txt
- C³
- (conf/sample/)
- npc_test_chat.txt
- ’ljÁ–½—߂̃eƒXƒgƒXƒNƒŠƒvƒg
-
-EƒXƒNƒŠƒvƒg‚̊ԈႢ‚ðC³
- (conf/npc/)
- npc_event_skillget.txt
- npc_event_yuno.txt
- npc_town_lutie.txt
- npc_turtle.txt
- “ä–½—ßadditem‚ðgetitem‚É’uŠ·
- npc_town_guide.txt
- “ä–½—ßscriptlabel‚ðƒRƒƒ“ƒg‰»
- npc_event_momotaro.txt
- npc_job_swordman.txt
- npc_job_magician.txt
- ';'•t‚¯–Y‚êC³
- (conf/gvg/)
- ev_agit_aldeg.txt
- @GID4‚ð@GIDa4‚É’uŠ·
- ev_agit_gefg.txt
- ev_agit_payg.txt
- Annouce‚ÉFŽw’è‚Æ';'‚Ì•t‚¯–Y‚ê‚ðK«
-
-
-EAthenaDBŒv‰æ‚̃f[ƒ^‚Ƃ肱‚ÝA‚»‚Ì‘¼C³
- ˆÀ’肵‚Ä‚¢‚éƒf[ƒ^‚©‚Ç‚¤‚©‚í‚©‚è‚Ü‚¹‚ñ‚ªB
-
- (db/)
- item_db.txt/mob_db.txt/mob_skill_db.txt
- AthenaDBŒv‰æ‚̃f[ƒ^‚Ƃ肱‚Ý
- mob_skill_db.txt.orig
- ˆÈ‘O‚̃f[ƒ^iƒRƒƒ“ƒg•”•ª‚È‚Ç‚ÌŽQl‚Éj
- (conf/)
- water_height.txt/mapflag.txt
- AthenaDBŒv‰æ‚̃f[ƒ^‚Ƃ肱‚Ý
- map_athena.conf
- npc_monster3*.txt‚ðíœ
- ’ljÁƒ}ƒbƒvƒf[ƒ^ (by ID:UVsq5AE)
- (conf/mob/)
- npc_monster.txt
- AthenaDBŒv‰æ‚̃f[ƒ^‚Ƃ肱‚Ý
-
---------------------
-//0908 by ŒÓ’±—–
-
-EƒXƒNƒŠƒvƒg‚̃Gƒ‰[ƒ`ƒFƒbƒNˆ—‚ð‘‚₵‚½
- E•¶Žš—ñ‚Ì“r’†‚ʼnüs‚ª‚ ‚é‚ƃGƒ‰[‚ðo‚·‚悤‚ÉB
- EŠÖ”ŒÄ‚Ño‚µ‰‰ŽZŽq'('‚Ì’¼‘O‚ÉŠÖ”–¼ˆÈŠO‚ª‚ ‚é‚ƃGƒ‰[‚ðo‚·‚悤‚ÉB
- E–½—ß‚ª‚ ‚é‚ׂ«‚Æ‚±‚ë‚ÉŠÖ”–¼ˆÈŠO‚ª‚ ‚é‚ƃGƒ‰[‚ðo‚·‚悤‚ÉB
- E–½—ß‚¨‚æ‚ÑŠÖ”‚̈ø”‹æØ‚è‚Ì','‚ðÈ—ª‚·‚é‚ÆŒx‚ðo‚·‚悤‚ÉB
- E–½—ß‚¨‚æ‚ÑŠÖ”‚̈ø”‚Ì”‚ªˆÙ‚È‚é‚ÆŒx‚ðo‚·‚悤‚ÉB
-
- (map/)
- script.c
- FXC³
-
-ENPCƒXƒNƒŠƒvƒgC³
- (conf/npc/)
- npc_town_guide.txt
- ‚Ss–Ú‚Í‚¢‚ç‚È‚¢‚悤‚Ȃ̂ŃGƒ‰[‚ªo‚È‚¢‚悤‚ɃRƒƒ“ƒg‰»
- npc_event_hat.txt
- ƒRƒ‚ƒh‚̉¼–ÊEl‚ƃtƒFƒCƒˆƒ“‚Ì”N (by ID:dS8kRnc)
- (conf/sample/)
- npc_card_remover.txt
- @menu‚ðŽg‚Á‚Ä’Z‚­‚µ‚½••¶Í­‚µC³
-
-E‚»‚Ì‘¼
- (db/)
- skill_tree.txt
- Sage‰ž‹}Žè“–
-
---------------------
-//0907 by p
-Eatcommand() ‚Ì”ì‘剻‚ª‚Ђǂ¢‚̂ŃŠƒtƒ@ƒNƒ^ƒŠƒ“ƒO
- @ ƒRƒ}ƒ“ƒh‚ð’ljÁ‚·‚éꇂÍAatcommand.h “à‚Œ蔂ðAatcommand.c “à‚Å
- ŠÖ”’è‹`ƒ}ƒNƒ‚ƃ}ƒbƒsƒ“ƒOƒe[ƒuƒ‹Aˆ——p‚ÌŠÖ”‚ð‹Lq‚µ‚Ä‚­‚¾‚³‚¢B
-Eglobal •Ï”‚Ì atcommand_config ‚ðÁ‹ŽB
- @ ƒRƒ}ƒ“ƒh–ˆ‚̃Œƒxƒ‹‚Í get_atcommand_level() ‚Ŏ擾‚µ‚Ä‚­‚¾‚³‚¢B
-Eˆê•”‚̃Lƒƒƒ‰–¼‚ðŽæ‚é @ ƒRƒ}ƒ“ƒh‚ÅA”¼ŠpƒXƒy[ƒX‚ðŠÜ‚Þ–¼‘O‚̃Lƒƒƒ‰‚ð
- ³í‚Ɉ—‚Å‚«‚Ä‚¢‚È‚©‚Á‚½–â‘è‚ðC³B
- ‚±‚̉e‹¿‚É‚æ‚èA@rura+ ‚È‚ÇAƒLƒƒƒ‰–¼‚ªƒpƒ‰ƒ[ƒ^‚Ì“r’†‚É‚ ‚Á‚½‚à‚Ì‚Í
- ‘S‚ÄÅŒã‚ɉñ‚³‚ê‚Ä‚¢‚Ü‚·B
-E@ ƒRƒ}ƒ“ƒh‚Ì•¶Žš—ñ‚ð³í‚Ɏ擾‚Å‚«‚È‚©‚Á‚½ê‡‚ÉAƒoƒbƒtƒ@‚Ì“à—e‚ð
- ƒ`ƒFƒbƒN‚¹‚¸‚Ɉ—‚ðs‚¨‚¤‚Æ‚µ‚Ä‚¢‚½•”•ª‚ðC³‚µ‚Ü‚µ‚½B
-
- (common/)
- mmo.h
- (map/)
- atcommand.h
- atcommand.c
- clif.h
- clif.c
-
---------------------
-//0906 by Selena
-EŒÓ’±—–‚³‚ñ‚ÌC³‚É‚ ‚킹‚ÄAƒoƒ‹ƒLƒŠ[ƒŒƒ‹ƒ€‚PˆÈŠO‚̃XƒNƒŠƒvƒg‚ÌC³B
-E@ƒRƒ}ƒ“ƒh“ü—̓~ƒX‚ÌۂɃGƒ‰[ƒƒbƒZ[ƒW‚ð•\Ž¦B
- (conf/gvg/)
- ev_agit_aldeg.txt
- ev_agit_gefg.txt
- ev_agit_payg.txt
- ev_agit_prtg.txt
- aldeg_cas01`05.txt
- gefg_cas01`05.txt
- payg_cas01`05.txt
- prtg_cas02`05.txt
- (map/)
- atcommand.c
-
---------------------
-//0905 by ŠÇ—l
-
-EƒT[ƒo[snapshot
-E‘OƒXƒŒ‚̃tƒ@ƒCƒ‹Žæ‚è–Y‚ꂽl‚ª‚¢‚é‚©‚à‚µ‚ê‚È‚¢‚Ì‚Å
-
---------------------
-//0904 by ŒÓ’±—–
-
-EƒXƒNƒŠƒvƒgˆ—C³
- Echar/interƒT[ƒo[‚ÉÚ‘±‚µ‚½Žž‚ÉOnCharIfInit/OnInterIfInitƒCƒxƒ“ƒg‚ª
- ŒÄ‚΂ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½B
- OnAgitInit‚ÍOnInterIfInit‚É•ÏX‚·‚ׂ«‚Å‚·B
- Egetcastledata–½—ß‚Å‘æ‚Qƒpƒ‰ƒ[ƒ^‚ª0‚Ì‚Æ‚«A‘æ‚Rƒpƒ‰ƒ[ƒ^‚É
- ƒCƒxƒ“ƒg–¼‚ðÝ’è‚Å‚«‚Ü‚·B‚±‚̃Cƒxƒ“ƒg‚̓Mƒ‹ƒhé‚̃f[ƒ^‚ð
- InterƒT[ƒo[‚©‚犓¾Š®—¹‚µ‚½‚Æ‚«‚ÉŽÀs‚³‚ê‚Ü‚·B
- E‹N‚±‚·NPCƒCƒxƒ“ƒg–¼‚ð"::"‚ÅŽn‚ß‚é‚ÆA“¯–¼ƒ‰ƒxƒ‹‚ðŽ‚‘SNPC‚̃Cƒxƒ“ƒg
- ‚ðŽÀs‚Å‚«‚Ü‚·B
- ‚½‚Æ‚¦‚ÎAgetcastledata "prtg_cas01.gat",0,"::OnRecvCastleP01";
- ‚Æ‚·‚é‚Æ‘S‚Ä‚ÌNPC‚Ì OnRecvCastleP01ƒ‰ƒxƒ‹‚ªŽÀs‚³‚ê‚Ü‚·B
- Erequestguildinfo–½—ߒljÁB“Á’èƒMƒ‹ƒh‚Ìî•ñ‚ðInterƒT[ƒo[‚É
- —v‹‚Å‚«‚Ü‚·B‘æ‚Pƒpƒ‰ƒ[ƒ^‚̓Mƒ‹ƒhIDA‘æ‚Qƒpƒ‰ƒ[ƒ^‚̓Cƒxƒ“ƒg–¼‚Å
- ‚±‚̃Cƒxƒ“ƒg‚̓Mƒ‹ƒhî•ñ‚ðInterƒT[ƒo[‚©‚犓¾Š®—¹‚µ‚½‚Æ‚«‚É
- ŽÀs‚³‚ê‚Ü‚·B
-
- (map/)
- guild.c/guild.h/npc.c/npc.h/script.c/intif.c/chrif.c
- FXC³
-
-EƒMƒ‹ƒhéŠÖ˜ANPCC³
- iƒoƒ‹ƒLƒŠ[ƒŒƒ‹ƒ€‚P‚Ì‚ÝC³B‘¼‚Ìé‚̃XƒNƒŠƒvƒg‚ÍŠeŽ©‚ŘM‚Á‚Ä‚­‚¾‚³‚¢B
- ‚Æ‚¢‚¤‚©A‚Þ‚µ‚ë˜M‚Á‚½‚ç‚ ‚Á‚Õ‚µ‚Ü‚µ‚傤j
- E‰Šú‰»ˆ—‚ðOnAgitInit‚Å‚È‚­OnInterIfInit‚É•ÏXB
- Eéƒf[ƒ^Š“¾Š®—¹ˆ—‚Æ‚µ‚ÄOnRecvCastleP01‚ð’ljÁB
- EŽIÄ‹N“®ŽžAƒMƒ‹ƒhê‘®ƒJƒvƒ‰‚ª³‚µ‚­•\Ž¦‚³‚ê‚é‚悤‚ÉB
- EƒMƒ‹ƒhê‘®ƒJƒvƒ‰‚Ì–¼‘O‚ð"ƒJƒvƒ‰Eˆõ::kapra_prtg01"‚É•ÏXB
- i"::"ˆÈ~‚̓GƒNƒXƒ|[ƒg‚³‚ê‚é–¼‘O‚ÅA"::"ˆÈ‘O‚ª•\Ž¦–¼j
- "ƒJƒvƒ‰Eˆõ#prt"‚æ‚è–¼‘O‚ð’·‚­‚µ‚Ä‹£‡‚µ‚É‚­‚­‚·‚邽‚ß‚Å‚·B
- ‚±‚ÌŠÖŒW‚ÅAdisablenpc‚Ȃǂ̃pƒ‰ƒ[ƒ^‚ð"kapra_prtg01"‚ÉC³B
- (conf/gvg/)
- prtg_cas01.txt
- ƒMƒ‹ƒhê‘®ƒJƒvƒ‰C³
- ev_agit_prtg.txt
- ‰Šú‰»ˆ—C³iƒoƒ‹ƒLƒŠ[ƒŒƒ‹ƒ€‚P‚Ì‚Ýj
- TEST_prtg_cas01_AbraiJ.txt
- ƒMƒ‹ƒhê‘®ƒJƒvƒ‰ŒÙ—p/é”jŠüC³
-
-ENPC‚ÌC³
- (conf/npc/)
- npc_job_swordman.txt
- npc_event_hat.txt
- C³
-
-EƒAƒJƒEƒ“ƒg‚ð휂µ‚Ä‚àƒAƒJƒEƒ“ƒgID‚ðÄ—˜—p‚µ‚È‚¢‚悤‚ÉC³
-EƒMƒ‹ƒh/ƒp[ƒeƒB‚ɂ‚¢‚Ä‚àˆê‰ž“¯“™‚̈—’ljÁiƒRƒƒ“ƒg‰»‚³‚ê‚Ä‚¢‚Ü‚·B
- ƒMƒ‹ƒh‚âƒp[ƒeƒB‚ÍID‚ðÄ—˜—p‚µ‚Ä‚à‚¨‚»‚ç‚­–â‘è‚È‚¢‚½‚ßj
-
- (login/)
- login.c
- “Ç‚Ýž‚Ý/•Û‘¶ˆ—C³
- (char/)
- int_guild.c/int_party.c
- “Ç‚Ýž‚Ý/•Û‘¶ˆ—C³
-
---------------------
-//0903 by ŒÓ’±—–
-
-El14/l15‚¨‚æ‚уvƒŒƒtƒBƒbƒNƒXl‚ð"„§‚³‚ê‚È‚¢(deprecated)"‹@”\‚Æ‚µ‚Ü‚µ‚½B
- E‚Ü‚¾Žg—p‚Å‚«‚Ü‚·‚ªA¡Œã‚Ì“®ì‚ª•ÛႳ‚ê‚È‚¢‚Ì‚ÅA‘¬‚â‚©‚É‘ã‘Ö‹@”\‚ð
- Žg—p‚·‚é‚悤‚ɈÚs‚µ‚Ä‚­‚¾‚³‚¢B
- EƒvƒŒƒtƒBƒbƒNƒX'l'‚Í‘ã‘Ö‹@”\‚̃vƒŒƒtƒBƒbƒNƒX'@'‚ðŽg—p‚µ‚Ä‚­‚¾‚³‚¢B
- El15‚Í‘ã‘Ö‹@”\‚Ì@menu‚ðŽg—p‚µ‚Ä‚­‚¾‚³‚¢B
- El14‚Í‘ã‘Ö‹@”\‚Í‚ ‚è‚Ü‚¹‚ñBinput–½—߂̈ø”‚ðÈ—ª‚µ‚È‚¢‚ʼnº‚³‚¢B
- E‚±‚ê‚ç‚Ì„§‚³‚ê‚È‚¢‹@”\‚ðŽg—p‚·‚é‚ÆŒxƒƒbƒZ[ƒW‚ª‚Å‚Ü‚·B
-
- (map/)
- script.c
- parse_simpleexpr()C³
- (conf/warp/)
- npc_warp.txt/npc_warp25.txt/npc_warp30.txt
- •Ï”–¼l0‚ð@warp0‚ÉC³
- (conf/npc/)
- npc_event_hat.txt
- •Ï”–¼l15‚ð@menu‚ÉC³
- (doc/)
- script_ref.txt
- ”z—ñ•Ï”‚Ìà–¾’ljÁ
- •Ï”‚̃vƒŒƒtƒBƒbƒNƒX'l'Ainput–½—ß‚Ìl14Amenu–½—ß‚Ìl15‚Ì
- à–¾‚ðC³
-
---------------------
-//0902 by ŒÓ’±—–
-
-EƒXƒNƒŠƒvƒg‚ª”z—ñ•Ï”‚ɑΉžB
- Earray[number]‚̂悤‚ÉŽg‚¢‚Ü‚·B”’lŒ^A•¶Žš—ñŒ^—¼•ûŽg‚¦‚Ü‚·B
- EŽg‚¦‚éƒvƒŒƒtƒBƒbƒNƒX‚Í @, $, $@ ‚Å‚·B
- iˆêŽž“IƒLƒƒƒ‰ƒNƒ^[•Ï”AˆêŽž“I/‰i‘±“Iƒ}ƒbƒvƒT[ƒo[•Ï”j
- Enumber==0‚Í”z—ñ‚¶‚á‚È‚¢•Ï”‚Æ’l‚ð‹¤—L‚µ‚Ü‚·B
- i@hoge[0]‚Æ@hoge‚Í“¯‚¶•Ï”‚ð•\‚·j
- E‚Ü‚¾‰¼ŽÀ‘•’iŠK‚Ȃ̂ŃoƒO•ñ‚æ‚낵‚­‚¨Šè‚¢‚µ‚Ü‚·B
-Eƒ}ƒbƒvƒT[ƒo[•Ï”‚Ì“Çž’†‚ÉCtrl+C‚ð‚·‚é‚ƃf[ƒ^”j‘¹‚̉”\«‚ª‚ ‚é–â‘è‚ðC³.
-Eƒ}ƒbƒvƒtƒ@ƒCƒ‹“Ç‚Ýž‚݉æ–Ê‚ª‚³‚Ñ‚µ‚¢‚Ì‚Å‚¹‚߂ătƒ@ƒCƒ‹–¼‚ð•\Ž¦‚·‚é‚悤‚ÉB
-
- (conf/sample/)
- npc_test_array.txt
- ”z—ñ•Ï”ƒeƒXƒgƒXƒNƒŠƒvƒg
- (map/)
- script.c
- buildin_set(),buildin_input(),get_val(),
- parse_simpleexpr()C³
- buildin_getelementofarray()’ljÁ
- do_final_script()C³‚È‚Ç
- map.c
- map_readmap(),map_readallmap()C³
-
---------------------
-//0901 by ‚Ò‚´‚Ü‚ñ
-
-E˜I“XƒoƒO‚ÌC³
-
- (map/)
- pc.c
- pc_cartitem_amount() ’ljÁB
- vending.c
- vending_openvending() C³B
- clif.c
- clif_parse_NpcClicked() C³B
- pc.h C³B
-
---------------------
-//0900 by ‚Ò‚´‚Ü‚ñ
-
-EƒAƒuƒ‰ƒJƒ_ƒuƒ‰‚̃‰ƒ“ƒ_ƒ€ƒXƒLƒ‹”­“®—¦‚ðabra_db.txt‚ÅÝ’è‚Å‚«‚é‚悤‚ÉB
-EƒXƒtƒBƒA[ƒ}ƒCƒ“‚ƃoƒCƒIƒvƒ‰ƒ“ƒg‚Ì”÷C³B
-ENoreturnƒ}ƒbƒv‚Å’±‚ªÁ”‚¯‚³‚ê‚éƒoƒOC³B
-Eˆê•”‚̃Aƒuƒ‰ŒÅ—LƒXƒLƒ‹‚ª³‚µ‚­“®ì‚µ‚È‚©‚Á‚½ƒoƒOC³B
- (map/)
- mob.c
- mob_damage()Amobskill_use() C³B
- mob_skillid2skillidx() ’ljÁB
- skill.c
- skill_readdb()Askill_abra_dataset() C³B
- skill_castend_nodamage_id()Askill_castend_pos2() C³B
- script.c
- buildin_warp() C³B
-
- skill.h C³B
- map.h C³B
- (db/)
- abra_db.txt ’ljÁB
- skill_db.txt C³B
-
---------------------
-//0899 by ŒÓ’±—–
-
-EŽæ‚芪‚«MOB‚̈—C³
- EŽæ‚芪‚«¢Š«‚ŃRƒA‚ð“f‚­ƒoƒOC³
- EŽå‚ª•Êƒ}ƒbƒv‚É”ò‚Ô‚ÆAƒeƒŒƒ|[ƒg‚Å’Ç‚¢‚©‚¯‚é‚悤‚ÉC³
- EŽæ‚芪‚«ˆ—‚ð‚æ‚èŒy‚­•ÏX
-
- (map/)
- mob.c
- mob_ai_sub_hard_mastersearch()‚ðmob_ai_sub_hard_slavemob()
- ‚É–¼‘O‚ð•Ï‚¦‚Ĉ—C³B
- mob_summonslave()C³
-
---------------------
-//0898 by ŒÓ’±—–
-
-Eeathena‚©‚çCardRemoverNPC‚ÌŽæ‚èž‚Ý
- NPCƒf[ƒ^‚à“ú–{Œê–󂵂Ă܂·‚ªA‚©‚È‚è“K“–‚Å‚·B
-
- (map/)
- script.c
- buildin_getequipcardcnt(),buildin_successremovecards()
- buildin_failedremovecards()’ljÁ
- (conf/sample/)
- npc_card_remover.txt
- ƒJ[ƒhŽæ‚èŠO‚µNPC‚Ì“ú–{Œê–ó
- ƒvƒƒ“ƒeƒ‰‚̸˜BŠ‚Ì’†‚̶‰º‚Ì•”‰®‚É‚¢‚Ü‚·
-
-Eƒ|[ƒ^ƒ‹‚ŕʃ}ƒbƒv‚É”ò‚΂µ‚½MOB‚ª‚»‚̃}ƒbƒv‚É•¦‚«’¼‚·ƒoƒOC³
- (map/)
- map.h
- struct mob_data‚Émƒƒ“ƒo’ljÁ
- mob.c
- mob_spawn(),mob_once_spawn()C³
- npc.c
- npc_parse_mob()C³
-
-
---------------------
-//0897 by ‚Ò‚´‚Ü‚ñ
-
-Eׂ©‚¢’²®
-EƒXƒgƒŠƒbƒvŒn‚ƃPƒ~ƒJƒ‹ƒvƒƒeƒNƒVƒ‡ƒ“ŒnƒXƒLƒ‹‚Ì‘SŽÀ‘•
-@–{ŽI‚Å‚Ìׂ©‚¢Žd—l‚ª•ª‚Á‚½‚Ì‚ÅŽÀ‘•‚µ‚Ü‚µ‚½B
-@Šm—¦‚ÍŽb’è‚Å‚·B
-
- (map/)
- pc.c
- pc_isequip() C³
- skill.c
- skill_status_change_start()Askill_castend_nodamage_id() C³B
- skill_abra_dataset() C³B
- battle.c
- battle_get_def()Abattle_get_atk2() C³B
- battle_get_vit()Abattle_get_int() C³B
- (db/)
- const.txt C³B
- skill_db.txt C³B
- cast_db.txt C³B
-
---------------------
-//0896 by ŒÓ’±—–
-
-E‰i‘±“Iƒ}ƒbƒv•Ï”‹@”\’ljÁ
-Eƒ}ƒbƒv•Ï”‚𕶎š—ñŒ^•Ï”‚Æ‚µ‚Ä‚àŽg—p‚Å‚«‚é‚悤‚É‚µ‚½
- E¡‚܂ł̃vƒŒƒtƒBƒbƒNƒX $ ‚͉i‘±“I‚É‚È‚è‚Ü‚·B
- ˆêŽž“Iƒ}ƒbƒv•Ï”‚ðŽg—p‚·‚éꇂ̓vƒŒƒtƒBƒbƒNƒX $@ ‚ðŽw’肵‚Ä‚­‚¾‚³‚¢.
-
- E‰i‘±“I/ˆêŽž“I‚Æ‚à‚É•¶Žš—ñŒ^‚ɑΉž‚µ‚Ä‚¢‚Ü‚·B
- •¶Žš—ñŒ^‚̃|ƒXƒgƒtƒBƒbƒNƒX‚Í$‚Å‚·B
-
- <—á> $@hoge ”’lŒ^ˆêŽžƒ}ƒbƒv•Ï”A$hoge$ •¶Žš—ñŒ^‰i‘±ƒ}ƒbƒv•Ï”
- E‰i‘±ƒ}ƒbƒv•Ï”‚̓fƒtƒHƒ‹ƒg‚Å‚Í save/mapreg.txt ‚É•Û‘¶‚³‚ê‚Ü‚·B
- ‚±‚ê‚Ímap_athena.conf‚Ìmapreg_txt‚ÅÝ’è‚Å‚«‚Ü‚·B
-
-Estr_data‚ªÄŠ„‚è“–‚Ä‚³‚ê‚é‚ƃ}ƒbƒv•Ï”‚ª³í‚ÉŽg—p‚Å‚«‚È‚¢ƒoƒOC³
- Estrdb‚©‚çnumdb‚É‚µ‚ÄA•Ï”–¼‚Ístr_buf‚É“ü‚ê‚é‚悤‚ÉB
-
-Emap_athena.conf‚Ìdelnpc,npc:clear‚ª³‚µ‚­“­‚©‚È‚¢ƒoƒOC³
-
- (map/)
- npc.c
- npc_delsrcfile(),npc_clearsrcfile()C³
- script.c / script.h
- ƒ}ƒbƒv•Ï”Œn‚©‚È‚èC³
- map.c
- map_read_config()C³‚È‚Ç
- (conf/)
- map_athena.conf
- mapreg_txt’ljÁ
- (doc/)
- conf_ref.txt
- mapreg_txt,help_txt,motd_txt’ljÁ
- script_ref.txt
- •¶Žš—ñŒ^•Ï”‚Ìà–¾C³
-
---------------------
-//0895 by Selena
-
-Emapflag‚Énozenypenalty‚ð’ljÁB
-@GVG‚âŠX’†‚̃eƒ‚È‚Ç‚ÅŽ€–S‚µ‚½Û‚ÉAZenyƒyƒiƒ‹ƒeƒB[”­¶‚ðŠO‚·—pB
-
- (map/)
- pc.c
- pc_setrestartvalue() C³
- script.c
- buildin_setmapflag()Abuildin_removemapflag() C³
- npc.c
- npc_parse_mapflag() C³
- map.h
- map_data() C³
- (db/)
- const.txt C³B
-
---------------------
-//0894 by ‚Ò‚´‚Ü‚ñ
-
-EƒR[ƒ}ˆÈŠO‚̃Aƒuƒ‰ƒJƒ_ƒuƒ‰ŒÅ—LƒXƒLƒ‹‘SŽÀ‘•B
-@ƒI[ƒgƒXƒyƒ‹‚ɂ̓Œƒxƒ‹ƒAƒbƒvˆÈŠO‘½•ª‘S•”悹‚ê‚Ü‚·B(ƒI[ƒgƒXƒyƒ‹ƒŒƒxƒ‹ƒAƒbƒv‚Í–¢ƒeƒXƒg)
-EƒAƒuƒ‰ƒJƒ_ƒuƒ‰‰¼ŽÀ‘•
-@”­“®ƒXƒLƒ‹‚ªƒŒƒxƒ‹ˆË‘¶‚¶‚á‚ ‚è‚Ü‚¹‚ñB
-@‘S‚Ä‚Ì”­“®—¦‚ª—˜_ã‹Ïˆê‚Å‚·B
-@ƒAƒCƒeƒ€ƒXƒLƒ‹‚ðŽg‚Á‚ÄŽÀ‘•‚µ‚Ä‚¢‚é‚̂ňꕔ‚ÌŽg—pðŒ‚𖳎‹‚µ‚Ü‚·iƒWƒFƒ€ã©‹C‹…“™j
-EƒAƒCƒeƒ€ƒXƒLƒ‹‚ªƒLƒƒƒXƒgEƒfƒBƒŒƒC–³‚µ‚¾‚Á‚½‚Ì‚ðC³B
-
- (map/)
- skill.c
- skill_castend_nodamage_id()Askill_use_id()Askill_use_pos() C³B
- skill_abra_dataset() ’ljÁB
- (db/)
- skill_db.txt C³B
-
---------------------
-//0893 by ŒÓ’±—–
-
-E‘¼ƒ}ƒbƒv‚©‚çƒ|[ƒ^ƒ‹‚Ìã‚Ƀ[ƒv‚µ‚Ä‚«‚½PC‚ªƒ[ƒv‚µ‚È‚¢–â‘è‚ðC³
-Eƒ`ƒƒƒbƒg’†‚ÌPC‚ðƒ[ƒvƒ|[ƒ^ƒ‹‚Å”ò‚΂·‚©‚Ç‚¤‚©Ý’è‰Â”\‚É
-EMOB‚ðƒ[ƒvƒ|[ƒ^ƒ‹‚Å”ò‚΂·‚©‚Ç‚¤‚©Ý’è‰Â”\‚É
- MOB‚̃[ƒvƒ|[ƒ^ƒ‹‚ð‹–‰Â‚·‚é‚ÆAƒeƒ‚ªŠÈ’P‚É‚Å‚«‚é‚Ì‚Å’ˆÓB
-
-EƒAƒJƒEƒ“ƒg•Ï”•ÏX‚Æ“¯Žž‚Ƀtƒ@ƒCƒ‹‚É‘‚«o‚·‚悤‚ÉC³
-Eƒ}ƒbƒvƒf[ƒ^‚̃[ƒh•”•ª‚̃ƒO•\Ž¦‚Í‚ ‚Ü‚èd—v‚¶‚á‚È‚¢‚ÆŽv‚¤‚Ì‚Å•ÏXB
-
- (char/)
- inter.c
- mapif_parse_AccReg()‚Åinter_accreg_save()‚ðŒÄ‚Ԃ悤‚ÉC³
- (map/)
- mob.c/mob.h
- mob_warp()‚̈ø”•ÏX‚ÆC³
- battle.c/battle.h
- mob_warp()ŒÄ‚Ño‚µ‚̈ø”C³
- battle_configŠÖ˜A
- map.c
- map_readallmap(),map_readmap()C³
- pc.c
- pc_setpos()C³
- skill.c
- mob_warp()ŒÄ‚Ño‚µ‚̈ø”C³
- skill_unit_onplace()C³
- (conf/)
- battle_athena.conf
- chat_warpportal,mob_warpportal‚̒ljÁ
- (doc/)
- conf_ref.txt
- chat_warpportal,mob_warpportal‚̒ljÁ
-
---------------------
-//0892 by ŒÓ’±—–
-
-EŠeŽíconfƒtƒ@ƒCƒ‹‚ŕʃtƒ@ƒCƒ‹‚ðƒCƒ“ƒ|[ƒg‚Å‚«‚é‚悤‚É‚µ‚½
- EŽ©•ª‚̃T[ƒo[—p‚ÌÝ’è‚ð•Êƒtƒ@ƒCƒ‹‚É‹Lq‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚·B
- E‘S‚Äuimport: ƒtƒ@ƒCƒ‹–¼vŒ`Ž®‚Å‹Lq‚µ‚Ü‚·B
- EŠeŽíconfƒtƒ@ƒCƒ‹ilogin,char,map,inter,atcommand,battlej‚ÌÅŒã‚É
- conf/import/*_conf ‚ð“ǂނ悤‚ÉŽw’肵‚½‚Ì‚ÅA‚»‚±‚ÉŽ©•ª—p‚ÌÝ’è‚ð
- ‘‚¢‚Ä‚¨‚¯‚ÎA•ÏX•”•ª‚̂݃I[ƒo[ƒ‰ƒCƒh‚µ‚Ü‚·B
- msg,script‚Ìconf‚ɂ‚¢‚Ä‚ÍA‚±‚ÌŒÀ‚è‚Å‚Í‚ ‚è‚Ü‚¹‚ñ‚ªAimport–½—ß‚Ì
- ˆ—‚͒ljÁ‚³‚ê‚Ä‚¢‚é‚Ì‚ÅAŽ©•ª‚Åimport–½—߂𑂯‚Γ®‚«‚Ü‚·B
- EV‚µ‚¢ƒXƒiƒbƒvƒVƒ‡ƒbƒg‚ªo‚½ê‡‚È‚Ç‚ÉA‚±‚Ìconf/importƒtƒHƒ‹ƒ_‚ð
- Ì‚ÌAthena‚©‚çƒRƒs[‚·‚邾‚¯‚ÅŽ©•ª—p‚ÌÝ’è‚ð“K—p‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚·.
-
-Emap_athena.conf‚Ìmap‚Ænpc‚ŒljÁ‚µ‚½ƒtƒ@ƒCƒ‹‚ð휂ł«‚é‚悤‚É‚µ‚½
- Eã‚ÉŠÖ˜A‚·‚é•ÏX‚Å‚·B
- Edelmap,delnpc–½—ß‚ðŽg—p‚·‚ê‚ÎAmap,npc–½—߂ŒljÁ‚µ‚½ƒtƒ@ƒCƒ‹‚ð
- “Ç‚Ýž‚Ü‚È‚¢‚悤‚ÉŽw’è‚Å‚«‚Ü‚·B‚±‚±‚Ńtƒ@ƒCƒ‹–¼‚Å‚Í‚È‚­A
- all ‚ÆŽw’è‚·‚é‚Æ‚»‚ê‚Ü‚Å‚ÉŽw’肳‚ꂽƒtƒ@ƒCƒ‹‚ð‘S‚Ä“Ç‚Ýž‚Ü‚È‚­‚µ‚Ü‚·.
- Emap,npc–½—ß‚ÅAƒtƒ@ƒCƒ‹–¼‚Éclear‚ðŽw’è‚·‚é‚ÆA
- delmap,delnpc‚Ìall‚Æ“¯“™‚Ì“®ì‚ð‚·‚é‚悤‚É‚È‚è‚Ü‚µ‚½B
-
-Elogin_athena.conf‚Ìallow‚Ædeny‚ðƒNƒŠƒA‚Å‚«‚é‚悤‚É‚“‚½
- Eallow‚¨‚æ‚Ñdeny–½—ß‚Åclear‚ðŽw’è‚·‚é‚ƈȑO‚̃zƒXƒgî•ñ‚ð‘S휂µ‚Ü‚·.
-
- (conf/)
- ŠeŽíconfƒtƒ@ƒCƒ‹‚ÌÅŒã‚Éimport–½—ߒljÁ
- (conf/import)
- *.txt
- ƒCƒ“ƒ|[ƒg‚³‚ê‚éƒtƒ@ƒCƒ‹B‚±‚ê‚ç‚ÉŽ©•ª—p‚ÌÝ’è‚ð‘‚­‚Æ‚æ‚¢B
- (login/)
- login.c
- login_read_config()C³
- (char/)
- char.c/inter.c
- char_read_config(),inter_read_config()C³
- (map/)
- map.c
- map_read_config(),map_addmap()C³Amap_delmap()’ljÁ
- npc.c
- npc_addsrcfile()C³,npc_delsrcfile(),npc_clearsrcfile()’ljÁ
- battle.c/atcommand.c/script.c
- battle_read_config(),atcommand_read_config(),
- msg_read_config(),script_read_config()C³
- (doc/)
- conf_ref.txt
- C³
-
---------------------
-//0891 by (“Ê)
-
-EuƒXƒLƒ‹Žg—p‚ÌŒã‚ÍA‚µ‚΂炭‚¨‘Ò‚¿‚­‚¾‚³‚¢v‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©Ý’è‚Å‚«‚é‚悤‚É‚µ‚½B
- E–{ŽI‘ŠˆáƒXƒŒƒbƒh@‘´‚̇U>>5‚³‚ñ‚̃R[ƒh‚ðƒpƒNƒŠ‚Ü‚µ‚½B
- (doc/)
- conf_ref.txt C³B
- (conf/)
- battle_athena.conf C³B
- (map/)
- battle.h C³B
- battle.c
- battle_config_read() C³B
- clif.c
- clif_skill_fail() C³B
-
---------------------
-//0890 by Ž€_
-
-EƒMƒ‹ƒh‘qŒÉ‚ðˆê“x‚Ɉêl‚¾‚¯‚ªŽg—p‚·‚é‚悤‚É•ÏXB(–¢ƒeƒXƒg)
-Ebattle_athena.conf‚©‚çplayer_undead_nofreeze íœB
-E@ƒRƒ}ƒ“ƒh@gstorage ’ljÁB
-EƒXƒNƒŠƒvƒgguildstorage‚ðguildopenstorage‚É•ÏXB
-E‚»‚Ì‘¼×‚©‚¢ƒoƒOC³B
- (doc/)
- conf_ref.txt C³B
- script_ref.txt C³B
- (conf/)
- atcommand_athena.conf C³B
- battle_athena.conf C³B
- help.txt C³B
- (conf/sample/)
- gstorage_test.txt ’ljÁB
- (char/)
- makefile C³B
- int_storage.h C³B
- int_storage.c
- inter_storage_delete()Ainter_guild_storage_delete() ’ljÁB
- int_guild.c
- guild_check_empty()Amapif_parse_BreakGuild() C³B
- (map/)
- makefile C³B
- battle.h C³B
- battle.c
- battle_config_read() C³B
- guild.c
- guild_broken() C³B
- storage.h C³B
- storage.c
- storage_guild_storageopen() C³B
- storage_delete()Aguild_storage_delete() ’ljÁB
- script.c
- buildin_guildstorage() ‚ð buildin_guildopenstorage()‚É•ÏXB
- intif.c
- intif_parse_LoadGuildStorage() C³B
- mob.c
- mob_summonslave()Amob_damage()Amob_delete() C³B
- mob_catch_delete()Amob_readdb() C³B
- skill.c
- skill_castend_nodamage_id()Askill_status_change_start() C³B
- clif.c
- clif_parse_ActionRequest() C³B
- atcommand.h C³B
- atcommand.c
- atcommand() C³B
-
---------------------
-//0889 by ŒÓ’±—–
-
-E•¶Žš—ñŒ^ˆêŽž“IƒLƒƒƒ‰ƒNƒ^[•Ï”‹@”\’ljÁB
- EƒvƒŒƒtƒBƒbƒNƒX@,ƒ|ƒXƒgƒtƒBƒbƒNƒX$‚ðŽg—p‚µ‚Ü‚·Bi@hoge$‚È‚Çj
- Einput‚Å•¶Žš—ñ•Ï”‚ðŽw’è‚·‚é‚Æ•¶Žš—ñ“ü—Í‚É‚È‚è‚Ü‚·B
- EŠÖŒW‰‰ŽZŽqi”äŠr‰‰ŽZŽqj‚Å•¶Žš—ñ‚Ç‚¤‚µ‚ðŽw’è‚·‚é‚Æ•¶Žš—ñ‚Ì”äŠr‚ª
- ‚Å‚«‚Ü‚·B”’l‚Æ•¶Žš—ñ‚𬂺‚Ä”äŠr‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñB
- E‚Æ‚è‚ ‚¦‚¸ƒTƒ“ƒvƒ‹•t‚¯‚Ä‚Ü‚·B
-
- (map/)
- map.h
- struct map_session_data‚Énpc_str,regstr,regstr_numƒƒ“ƒo’ljÁ
- script.c
- buildin_set(),get_val(),buildin_input(),op_2num()‚È‚ÇC³
- op_2str(),op_2()’ljÁ
- clif.c / clif.h
- 01d5ƒpƒPƒbƒg’·C³
- clif_parse_NpcStringInput(),clif_scriptinputstr()’ljÁ
- pc.c / pc.h
- pc_readregstr(),pc_setregstr()’ljÁ
- (doc/)
- script_ref.txt
- ‰‰ŽZŽq‚Ìà–¾’ljÁA•Ï”‚Ìà–¾C³Ainput,menuC³
- (conf/sample/)
- npc_test_str.txt
- •¶Žš—ñ•Ï”‚ðŽg—p‚µ‚½ƒXƒNƒŠƒvƒg‚Ì—áB
- •¶Žš—ñ‚Ì‘ã“üAŒ‹‡A”äŠrA“ü—͂Ȃǂ̃eƒXƒg‚ðs‚¤‚à‚ÌB
-
---------------------
-//0888 by Ž€_
-
-EÝŒv‚©‚çŠÔˆá‚Á‚Ä‚¢‚½ƒMƒ‹ƒh‘qŒÉC³B(‚½‚¾•¡”l‚ÌŽg—p‚É‚æ‚éƒoƒO‚ª‚ ‚é‰Â”\«‚Í‚Ü‚¾‚ ‚è‚Ü‚·B)
-Eׂ©‚¢ƒoƒOC³B
- (doc/)
- inter_server_packet.txt C³B
- conf_ref.txt C³B
- (conf/)
- inter_athena.conf C³B
- help.txt C³B
- (common/)
- mmo.h C³B
- (char/)
- makefile C³B
- int_storage.h C³B
- int_storage.c
- account2storage()Ainter_storage_init()Astorage_fromstr() C³B
- inter_storage_save()Amapif_load_storage() C³B
- mapif_parse_SaveStorage() C³B
- guild_storage_fromstr()Aguild_storage_tostr() ’ljÁB
- inter_storage_save_sub()Ainter_guild_storage_save_sub() ’ljÁB
- inter_guild_storage_save()Amapif_parse_LoadGuildStorage() ’ljÁB
- mapif_parse_SaveGuildStorage()Amapif_load_guild_storage() ’ljÁB
- mapif_save_guild_storage_ack()Aguild2storage() ’ljÁB
- int_party.c
- inter_party_init() C³B
- int_guild.h C³B
- int_guild.c
- inter_guild_init() C³B
- inter_guild_search() ’ljÁB
- int_pet.c
- inter_pet_init() C³B
- inter.c
- inter_init()Ainter_save()Ainter_config_read() C³B
- (map/)
- makefile C³B
- map.h C³B
- map.c
- map_quit()Ado_init() C³B
- pc.c
- pc_setpos() C³B
- storage.h C³B
- storage.c
- do_init_storage()Ado_final_storage()Aaccount2storage() C³B
- storage_storageopen()Astorage_storageadd()Astorage_storageget() C³B
- storage_storageaddfromcart()Astorage_storagegettocart() C³B
- storage_storageclose()Astorage_storage_quit() C³B
- storage_storage_save() C³B
- guild2storage()Astorage_guild_storageopen() ’ljÁB
- guild_storage_additem() Aguild_storage_delitem() ’ljÁB
- storage_guild_storageadd()Astorage_guild_storageget() ’ljÁB
- storage_guild_storageaddfromcart()Astorage_guild_storagegettocart() ’ljÁB
- storage_guild_storageclose()Astorage_guild_storage_quit() ’ljÁB
- intif.h C³B
- intif.c
- intif_send_storage()Aintif_parse_LoadStorage()Aintif_parse() C³B
- intif_request_guild_storage()Aintif_send_guild_storage() ’ljÁB
- intif_parse_SaveGuildStorage()Aintif_parse_LoadGuildStorage() ’ljÁB
- clif.h C³B
- clif.c
- clif_additem()Aclif_parse_MoveToKafra() C³B
- clif_parse_MoveFromKafra()Aclif_parse_MoveToKafraFromCart() C³B
- clif_parse_MoveFromKafraToCart()Aclif_parse_CloseKafra() C³B
- clif_parse_LoadEndAck() C³B
- clif_guildstorageitemlist()Aclif_guildstorageequiplist() ’ljÁB
- clif_updateguildstorageamount()Aclif_guildstorageitemadded() ’ljÁB
- guild.c
- guild_broken() C³B
- script.c
- buildin_openstorage()Abuildin_guildstorage() C³B
- skill.c
- skill_castend_nodamage_id() C³B
- mob.c
- mob_summonslave()Amob_damage() C³B
- atcommand.c
- atkillmonster_sub()Aatcommand() C³B
-
---------------------
-//0887 by Ž‚Žqo^.^o
-
-E(db/)
- skill_tree.txt C³
-
---------------------
-//0886 by ‚Ò‚´‚Ü‚ñ
-
-EƒT[ƒo[snapshot
-Eƒtƒ@ƒCƒ‹’²®
-
---------------------
-//0885 by huge
-
-EƒMƒ‹ƒh‹¤—L‘qŒÉ‚ÌŽÀ‘•Bguildstorage‚ÅŠJ‚¯‚Ü‚·B
- Ž©•ª‚ÌŽI‚ÅŽÀŒ±‚Í‚µ‚Ä‚Ý‚Ü‚µ‚½‚ªA‰ß‘a’n‚È‚Ì‚Å‘½l”ƒMƒ‹ƒh‚É‚È‚é‚Æ‚Ç‚¤“®‚­‚©•ª‚©‚è‚Ü‚¹‚ñB
- (”O‚Ì‚½‚߃oƒbƒNƒAƒbƒv‚Í•K‚¸Žæ‚Á‚Ä‚¨‚¢‚ĉº‚³‚¢)
-Eareawarp‚ÅA‘ÎÛƒ}ƒbƒv–¼‚ð"Random"‚É‚·‚é‚ÆA“¯ƒ}ƒbƒv“à‚щƒ“ƒ_ƒ€‚É”ò‚Ԃ悤‚ÉC³B
-EGMƒRƒ}ƒ“ƒh‚Ŷ‚«•Ô‚µ‚½‚Æ‚«‚ÉSP‚à‘S‰ñ•œ‚·‚é‚悤‚ÉC³B
-EƒfƒBƒ{[ƒVƒ‡ƒ“‚ÌðŒ‚ð‚¿‚å‚Á‚ÆC³B
-
- (char/)
- int_storage.c
- mapif_load_storage() C³B
- mapif_parse_SaveStorage() C³B
- inter.c
- inter_send_packet_length[] C³B
- inter_recv_packet_length[] C³B
- (map/)
- atcommand.c
- @alive,@raise,@raisemap C³B
- intif.c
- packet_len_table[] C³B
- intif_request_storage() C³B
- intif_send_storage() C³B
- intif_parse_LoadStorage() C³B
-
- map.h
- map_session_data state‚Éstorage_flag ’ljÁB
- script.c
- buildin_areawarp_sub() C³B
- buildin_openstorage() C³B
- buildin_guildstorage() ’ljÁB
- skill.c
- skill_castend_nodamage_id() C³B
- storage.c
- account2storage() C³B
- storage_storageopen() C³B
- storage_storage_save() C³B
-
---------------------
-//0884 by Ž€_
-
-Eׂ©‚¢ƒoƒOC³B
-Ebattle_athena.conf‚Épet_strAzeny_penaltyAresurrection_exp ’ljÁB
-E0878‚Ì‹âsŠÖŒW‚̃R[ƒh‚Í‚à‚¤‚¢‚ç‚È‚¢‚Ì‚Å‘S‚ÄíœB
-Ezeny_penalty‚ðݒ肵‚ÄŽg‚¤ê‡‚ÍŽè”—¿‚Í‚È‚­‚µ‚½•û‚ª‚¢‚¢‚©‚àB
-Eƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[‚Åpercentheal‚É‚àPP‚ÆLP‚É‚æ‚é‰ñ•œƒ{[ƒiƒX‚ª•t‚­‚悤‚É•ÏXB(‚½‚¾vit‚âintAHPRAMPR‚É‚æ‚é‰ñ•œƒ{[ƒiƒX‚ª•t‚«‚Ü‚¹‚ñB)
-E‚Ù‚Æ‚ñ‚Ç–¢ƒeƒXƒgB
- (common/)
- mmo.h C³B
- (conf/)
- battle_athena.conf C³B
- (doc/)
- conf_ref.txt C³B
- (map/)
- map.c
- do_init()Ado_final() C³B
- script.c
- buildin_openbank() íœB
- buildin_failedrefitem() C³B
- storage.h C³B
- storage.c
- do_init_bank()Ado_final_bank()Aaccount2bank() íœB
- storage_bank()Astorage_readbank() íœB
- skill.c
- skill_castend_nodamage_id()Askill_attack() C³B
- battle.h C³B
- battle.c
- battle_calc_pet_weapon_attack()Abattle_config_read() C³B
- pc.c
- pc_setrestartvalue() C³B
- clif.c
- clif_skill_nodamage()Aclif_refine() C³B
- itemdb.c
- itemdb_isequip3() C³B
- atcommand.c
- atcommand() C³B
-
---------------------
-//0883 by Kalen
-
-EWarpFXC³
- EƒAƒTƒVƒ“ƒMƒ‹ƒhŽü‚èC³(̂̂܂܂̃Šƒ“ƒN‚¾‚Á‚½‚Ì‚ÅŒ»Ý‚Ìó‘Ô‚ÉC³B)
- EYuno‚ÌWarp‘S–ÊŒ©’¼‚µ(YumilLoopC³ASageCastleRandomWarp’ljÁA—ˆã‚³‚ñ‚̉ƒljÁ)
- Eƒ‚ƒ“ƒNƒMƒ‹ƒhŽü‚è’ljÁ
-ENPCFXC³
- E–XŽqì¬NPC‚ð•Êƒtƒ@ƒCƒ‹‚ÖBˆê•”’ljÁ(ep2.5’ljÁ•ª)
- @ŽQlData(R.O.M776): ttp://green.sakura.ne.jp/~youc/ro/data/itemmaking.html#04
- EƒAƒTƒVƒ“ƒMƒ‹ƒhC³
- E“ñŽŸE“]EŠÖŒWNPCˆê•”’ljÁ(‚±‚ê‚ŃRƒ‚ƒh¬Œ€ê‚Ös‚¯‚Ü‚·)
- Eƒ}ƒXƒ^[ƒAƒ‹ƒPƒ~ƒXƒg‚̑䎌C³
- EƒAƒ‹ƒfƒoƒ‰ƒ“‚̈ēà—vˆõ‚ðˆÚ“®&‘䎌C³&ƒCƒ[ƒW’ljÁ
- EBBS‚É‚ ‚ª‚Á‚Ä‚¢‚½ƒRƒ‚ƒhƒXƒNƒŠƒvƒg’ljÁ(event_hat“™‚Ö•ªŽU)
- EƒRƒ“ƒƒ“ƒNƒGƒXƒgŠÖŒWNPCˆê•”’ljÁ(—ˆã[yuno]Aƒlƒ‹[prontera])
- (conf/warp/)
- npc_warp.txt
- npc_warp30.txt
- npc_warp_job.txt
- (conf/npc/)
- npc_event_hat.txt(V‹K)
- npc_job_2nd.txt
- npc_job_alchemist.txt
- npc_town_aldebaran.txt
- npc_town_comodo.txt
- npc_town_gonryun.txt
- npc_town_guide.txt
- npc_town_yuno.txt
- npc_town_lutie.txt
-
---------------------
-//0882 by ŒÓ’±—–
-
-EƒXƒNƒŠƒvƒg‚É0881‘Š“–‚̃AƒJƒEƒ“ƒg‹¤—L•Ï”‹@”\‚̃vƒŒƒtƒBƒbƒNƒX•ÏX
- E0881‚̃AƒJƒEƒ“ƒg•Ï”‚̓vƒŒƒtƒBƒbƒNƒX##‚É‚È‚è‚Ü‚µ‚½B
- E0881‚̃AƒJƒEƒ“ƒg•Ï”‚Í‘Sƒ[ƒ‹ƒh‚Å‹¤—L‚³‚ê‚Ü‚·B
- E•Ï”‚̌”‚Ímmo.h‚ÌACCOUNT_REG2_NUM‚Å’è‹`‚³‚ê‚Ä‚¢‚Ü‚·(16)B
-Eƒ[ƒ‹ƒh“à‚̃AƒJƒEƒ“ƒg‹¤—L•Ï”‹@”\’ljÁ
- E•Ï”–¼‚̃vƒŒƒtƒBƒbƒNƒX‚Í#‚Å‚·B
- E•Ï”‚̌”‚Ímmo.h‚ÌACCOUNT_REG_NUM‚Å’è‹`‚³‚ê‚Ä‚¢‚Ü‚·(16)B
- E0881‚Ì‹âsƒXƒNƒŠƒvƒg‚Í‚±‚¿‚ç‚ðŽg—p‚·‚é‚悤‚É‚È‚è‚Ü‚·B
- ‚æ‚Á‚ĈȑO‚̃f[ƒ^‚ª‚‚©‚¦‚È‚¢‚Ì‚Å‚ ‚ç‚©‚¶‚߈ø‚«o‚µ‚Ä‚¨‚¢‚Ä‚­‚¾‚³‚¢.
- E•Ï”ƒf[ƒ^‚Í save/accreg.txt ‚É•Û‘¶‚³‚ê‚Ü‚·B
- ‚±‚̃tƒ@ƒCƒ‹–¼‚Í inter_athena.conf ‚Å•ÏX‰Â”\‚Å‚·Bconf_ref.txtŽQÆB
-
- (common/)
- mmo.h
- ACCOUNT_REG_NUM‚ð16‚ÉAACCOUNT_REG_NUM2’ljÁ
- struct mmo_charstatus‚Éaccount_reg2_num,account_reg2ƒƒ“ƒo’ljÁ
- (login/)
- login.c
- account_reg‚ð‘S‚Äaccount_reg2‚É’u‚«Š·‚¦
- (char/)
- char.c
- account_reg‚ð‘S‚Äaccount_reg2‚É’u‚«Š·‚¦
- inter.c
- ƒ[ƒ‹ƒh“àƒAƒJƒEƒ“ƒg•Ï”‹@”\’ljÁB
- inter_accreg*()’ljÁAaccreg_db’ljÁ‚È‚ÇB
- (map/)
- chrif.c/chrif.h
- account_reg‚ð‘S‚Äaccount_reg2‚É’u‚«Š·‚¦
- 0881‚ł̃oƒO‚ðC³
- intif.c/intif.h
- ƒ[ƒ‹ƒh“àƒAƒJƒEƒ“ƒg•Ï”‹@”\’ljÁB
- pc.c/pc.h
- pc_*accountreg()=>pc_*accountreg2()‚ÉB
- pc_setaccountreg(),pc_readaccountreg()’ljÁB
- script.c
- buildin_set(),buildin_get_val(),buildin_input()C³
- (doc/)
- inter_server_packet.txt
- ƒ[ƒ‹ƒh“àƒAƒJƒEƒ“ƒg•Ï”ŠÖŒW
- conf_ref.txt
- accreg_txt’ljÁ
-
---------------------
-//0881 by ŒÓ’±—–
-
-EƒXƒNƒŠƒvƒg‚ɃAƒJƒEƒ“ƒg‹¤—L•Ï”‹@”\’ljÁ
- E•Ï”–¼‚ɃvƒŒƒtƒBƒbƒNƒX#‚ð•t‚¯‚邱‚ƂŃAƒJƒEƒ“ƒg‹¤—L•Ï”‚É‚È‚è‚Ü‚·B
- EƒAƒJƒEƒ“ƒg•Ï”‚Í•ÏX‚µ‚½Žž“_‚Å‘SƒT[ƒo[‚Ƀ|ƒXƒg‚³‚ê‚é‚Ì‚Å
- •p”É‚É‘‚«Š·‚¦‚é‚ƃT[ƒo[ŠÔ’ÊM‚ª”ì‘剻‚µ‚Ü‚·B
- EƒAƒJƒEƒ“ƒg•Ï”‚Í•ÏX‚µ‚½Žž“_i‚»‚µ‚Ä‚»‚ꂪloginŽI‚É“Í‚¢‚½Žž“_j‚Å
- account.txt‚É‘‚«o‚³‚ê‚Ü‚·B
- EƒOƒ[ƒoƒ‹•Ï”i‰i‘±•Ï”j‚̌”‚ð96‚ÉŒ¸‚炵AŒ¸‚Á‚½32ŒÂ•ª‚ð
- ƒAƒJƒEƒ“ƒg•Ï”‚É‚µ‚Ä‚¢‚Ü‚·‚ªAmmo_charstatus‚̃TƒCƒY‚ª
- 16000byte‚ð’´‚¦‚È‚¢ŒÀ‚è‘‚â‚·‚±‚Æ‚ª‚Å‚«‚Ü‚·Bƒ0879‚Ì•ÏX‚ðŽQÆ
- •Ï”‚̌”‚Ímmo.h‚ÌACCOUNT_REG_NUM‚Å’è‹`‚³‚ê‚Ä‚¢‚Ü‚·B
- E0878‚Ì‹âs‚ðƒAƒJƒEƒ“ƒg•Ï”‚ðŽg—p‚·‚é‚悤‚ÉC³
- bank.txt‚̃f[ƒ^‚ªŽg‚¦‚È‚­‚È‚é‚Ì‚Å‚ ‚ç‚©‚¶‚߈ø‚«o‚µ‚Ä‚¨‚¢‚ĉº‚³‚¢B
-
- (common/)
- mmo.h
- GLOBAL_REG_NUM‚ð96‚ÉAACCOUNT_REG_NUM‚ð’ljÁ
- struct mmo_charstatus‚Éaccount_reg_num,account_regƒƒ“ƒo’ljÁ
- (login/)
- login.c
- ƒpƒPƒbƒg2728ˆ—’ljÁ
- (char/)
- char.c
- ƒpƒPƒbƒg2729,2b10ˆ—’ljÁ
- (map/)
- chrif.c
- chrif_saveaccountreg(),chrif_accountreg()
- (ƒpƒPƒbƒg2b10,2b11ˆ—)’ljÁB
- pc.c/pc.h
- pc_readaccountreg(),pc_setaccountreg()’ljÁ
- script.c
- buildin_set(),buildin_get_val(),buildin_input()C³
- (conf/sample/)
- bank_test.txt
- ƒAƒJƒEƒ“ƒg•Ï”Žg—p”Å‚Ì‹âsƒXƒNƒŠƒvƒg
-
---------------------
-//0880 by Ž€_
-
-Eƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[‚𳂵‚­ŽÀ‘•‚Æ‚¿‚å‚Á‚Æ‹@”\Šg’£B
-Eƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[‚ŃŒƒxƒ‹•Ê‚ÉŽg‚¦‚éƒAƒCƒeƒ€‚ðskill_require_db.txt‚ÉÝ’è‚Å‚«‚é‚悤‚É‚µ‚Ü‚µ‚½B‚½‚¾ƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[‚ÅŽg‚¦‚éƒAƒCƒeƒ€‚ÍitemhealApercenthealAsc_startAsc_endˆÈŠO‚Ì•¨‚ª“ü‚Á‚Ä‚¢‚é‚Ƴ‚µ‚­“®ì‚µ‚Ü‚¹‚ñB
-ƒŒƒxƒ‹5‚Ü‚Å‚Í–{ŽI‚ɇ‚킹‚Ä‚¢‚Ü‚·‚ªÅ‘僌ƒxƒ‹‚ð10‚Ü‚ÅŠg’£‚·‚é‚ƃŒƒxƒ‹6 - ƒ}ƒXƒeƒ‰‚ÌŽÀA7 - ƒ[ƒ„ƒ‹ƒ[ƒŠ[A8 - ƒCƒOƒhƒ‰ƒVƒ‹‚ÌŽíA9 - ƒCƒOƒhƒ‰ƒVƒ‹‚ÌŽÀA10 - ƒo[ƒT[ƒNƒ|[ƒVƒ‡ƒ“‚Éݒ肵‚Ä‚¢‚Ü‚·Bskill_db.txt‚ðC³‚·‚ê‚΂±‚ꂪ—LŒø‚É‚È‚è‚Ü‚·B(‚Ç‚±‚ðC³‚·‚é‚©‚à‚í‚©‚ç‚È‚¢l‚Í’ú‚߂邱‚Æ‚Å‚·B) ƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[‚É‚æ‚éƒAƒCƒeƒ€Žg—p‚ÍŽg—pðŒ‚𖳎‹‚µ‚Ü‚·B­‚µ‚̓Aƒ‹ƒPƒ~ƒXƒg‚ÉŠó–]‚ª‚Å‚«‚½‚©‚à...(‘½•ª–³—...)
-Ebattle_athane.conf‚Éproduce_item_name_inputAproduce_potion_name_inputAmaking_arrow_name_inputAholywater_name_input ’ljÁB
-Eƒp[ƒeƒBˆõ‚É‚¾‚¯Žg‚¤ƒXƒLƒ‹‚ƃMƒ‹ƒhˆõ‚É‚¾‚¯Žg‚¤ƒXƒLƒ‹‚ðÝ’è‚Å‚«‚é‚悤‚ÉC³B
-E‚»‚Ì‘¼×‚©‚¢C³B
- (conf/)
- battle_athane.conf C³B
- (doc/)
- conf_ref.txt C³B
- db_ref.txt C³B
- (db/)
- skill_db.txt C³B
- skill_require_db.txt C³B
- (map/)
- map.h C³B
- skill.h C³B
- skill.c
- skill_status_change_timer()Askill_attack()Askill_use_id() C³B
- skill_castend_nodamage_id()Askill_castend_damage_id() C³B
- skill_castend_id()Askill_castend_pos()Askill_produce_mix() C³B
- skill_arrow_create()Askill_check_condition() C³B
- skill_status_change_clear()Askill_readdb() C³B
- mob.c
- mobskill_use_id()Amob_changestate() C³B
- pc.c
- pc_itemheal()Apc_percentheal()Apc_calcstatus() C³B
- battle.h C³B
- battle.c
- battle_delay_damage()Abattle_damage()Abattle_heal() C³B
- battle_get_adelay()Abattle_get_amotion() C³B
- battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
- battle_weapon_attack()Abattle_config_read() C³B
- clif.c
- clif_skill_fail() C³B
- script.c
- buildin_sc_start()Abuildin_sc_end() C³B
- makefile C³B
-
---------------------
-//0879 by ŒÓ’±—–
-
-E‘—MFIFO‚̃oƒbƒtƒ@ƒI[ƒo[ƒtƒ[‚ÌÆŽã«‚ÌC³
- E2048ƒoƒCƒgˆÈã‚̃pƒPƒbƒg‚ð‘—‚é‚Æ‚«AFIFO‚ª–ž”t‚É‹ß‚¯‚ê‚Î
- ƒoƒbƒtƒ@ƒI[ƒo[ƒtƒ[‚É‚æ‚é•s³ƒAƒNƒZƒX‚ª‹N‚±‚Á‚Ä‚¢‚½–â‘èC³B
- EFIFO‚ª–ž”t‚É‹ß‚¢‚Æ‚«WFIFOSET‚³‚ꂽƒpƒPƒbƒg‚ªŽÌ‚Ä‚ç‚ê‚Ä‚¢‚½–â‘èC³B
- EFIFO‚ªƒI[ƒo[ƒtƒ[‚·‚éê‡AŽ©“®“I‚ÉFIFO‚ðŠg’£‚·‚é‚悤‚É‚µ‚½B
- i‚½‚¾‚µAˆê“x‚ÉWFIFOSET‚·‚éƒpƒPƒbƒg‚ª16384ƒoƒCƒgˆÈ‰º‚Ɖ¼’肵‚Ä‚¢‚éj
- Eusocket: ? wdata expanded to ???? bytesv‚ÍFIFO‚ªŠg’£‚³‚ꂽ‚Æ‚«‚É
- ‚ł郃O‚¾‚ªAƒGƒ‰[‚Å‚Í‚È‚­AƒpƒPƒbƒg‚ͳ‚µ‚­‘—M‚³‚ê‚éB
- Eusocket: ? wdata lost !!v‚̓pƒPƒbƒg‚ª‘rŽ¸‚µ‚½‚±‚Æ‚ð•\‚·ƒƒO‚ÅA
- ƒGƒ‰[‚Å‚ ‚邪64KB‚ð’´‚¦‚é’´‹‘å‚ȃpƒPƒbƒg‚ðWFIFOSET‚µ‚È‚¢‚Æo‚È‚¢B
- E16384ƒoƒCƒg‚ð’´‚¦‚éƒpƒPƒbƒg‚ðWFIFOSET‚·‚é‚ƃGƒ‰[ƒƒbƒZ[ƒW‚È‚µ‚ÉA
- •s³ƒAƒNƒZƒX‚ª‹N‚±‚é‰Â”\«‚ª‚ ‚é‚Ì‚ÅA’´‚¦‚È‚¢‚悤‚É‚·‚邱‚ÆB
-
- (common/)
- socket.c /socket.h
- WFIFOSET()‚ðƒ}ƒNƒ‚©‚çŠÖ”‚É•ÏX
- realloc_fifo()’ljÁ
-
-EƒT[ƒo[ŠÔ’ÊMFIFO‚̃oƒbƒtƒ@ƒTƒCƒY‚ð‘å‚«‚­‚µ‚½
- E‘å—ʂ̃f[ƒ^‚ª’ÊM‚³‚ꂽ‚Æ‚«‚Ƀf[ƒ^ˆ—’x‰„‚ª‹N‚«‚É‚­‚­‚·‚邽‚ßB
- Eƒƒ‚ƒŠŽg—p—Ê‚ª‘‚¦‚½B(‚¬‚肬‚è‚Ìl‚Í65536‚ÉÝ’è‚·‚é‚ÆŒ³’Ê‚è‚É‚È‚é)
- EƒT[ƒo[ŠÔ’ÊM‚ÌFIFOƒTƒCƒY‚Í mmo.h ‚Å’è‹`‚³‚ê‚Ä‚¢‚éB
- •ÏX‚·‚éꇂÍ64KB(65536)ˆÈã‚Ì’l‚É‚·‚邱‚ÆB
- ‘å‚«‚­‚·‚é‚Æ‹‘åƒf[ƒ^ŽóMŽž‚Ì’x‰„‚ªŒ¸‚邪ƒƒ‚ƒŠ‚𑽂­Žg‚¤B
- E@kickallŽž‚ȂǂɃf[ƒ^‘—M‚ªŒƒ‚µ‚­‚È‚é‚Ì‚Å•ÏX‚µ‚½‚ªA
- “¯ŽžƒƒOƒCƒ“l”‚ª­‚È‚¢‚Æ‘‚₵‚Ä‚àˆÓ–¡‚Í–³‚¢B
-
- (common/)
- mmo.h
- FIFOSIZE_SERVERLINKƒ}ƒNƒ’ljÁB
- (login/)
- login.c
- 2710ƒpƒPƒbƒg‚Årealloc_fifo()‚ðŒÄ‚Ԃ悤‚É
- (char/)
- char.c
- 2af8ƒpƒPƒbƒg‚Årealloc_fifo()‚ðŒÄ‚Ԃ悤‚É
- check_connect_login_server()‚Årealloc_fifo()‚ðŒÄ‚Ԃ悤‚É
- (map/)
- chrif.c
- check_connect_char_server()‚Årealloc_fifo()‚ðŒÄ‚Ԃ悤‚É
-
---------------------
-//0878 by huge
-
-EƒJƒvƒ‰‹âsƒT[ƒrƒXB
- Ž©•ª‚ÌŽI‚ÅŽÀ‘•‚µ‚Ä‚½‚ñ‚Å‚·‚ªAˆÓŠO‚ÆDŠ´G‚¾‚Á‚½‚Ì‚Åo‚µ‚Ä‚Ý‚Ü‚·B
- NPCscript‚ÅAopenbank(0);‚Å—a‹àŠz‚ð•Ô‚µ‚ÄA’†‚É”Žš‚ð“ü‚ê‚é‚Æo‚µ“ü‚ꂵ‚Ü‚·B
- Ú‚µ‚­‚̓Tƒ“ƒvƒ‹‚𓯕•‚µ‚½‚Ì‚ÅA‚»‚ê‚ðŽQÆB
-
- (common/)
- mmo.h
- struct bank ’ljÁB
- (map/)
- map.c
- do_final(),do_init() C³B
- script.c
- buildin_openbank() ’ljÁB
- storage.c
- storage.h
- ƒOƒ[ƒoƒ‹•Ï”’ljÁB
- do_init_bank(),do_final_bank(),account2bank() ’ljÁB
- storage_bank(),storage_readbank() ’ljÁB
-
---------------------
-//0877 by ŒÓ’±—–
-
-EloginŽI‚̃AƒNƒZƒXƒRƒ“ƒgƒ[ƒ‹‚ªƒlƒbƒgƒ}ƒXƒN•\‹L‚ɑΉž
- 192.168.0.0/24 ‚â 192.168.0.0/255.255.0.0 ‚Æ‚¢‚Á‚½•\‹L‚ɑΉžB
-Ebattle_athena.conf‚ÉGM‚ª–³ðŒ‚Å‘•”õ•i‚ð‘•”õ‚Å‚«‚é•
- –³ðŒ‚ŃXƒLƒ‹‚ðŽg—p‚Å‚«‚éÝ’è’ljÁ
- ‚±‚ê‚ç‚̓fƒoƒO—p‚È‚Ì‚Å“®ì‚É•s“s‡‚ª‚ ‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB
-
- (login/)
- login.c
- check_ip()C³,check_ipmask()’ljÁ
- (map/)
- battle.c/battle.h
- battle_config‚Égm_allequip,gm_skilluncond’ljÁ
- battle_config_read()C³X
- skill.c
- skill_check_conditio()C³
- pc.c
- pc_isequp()C³
- (doc/)
- conf_ref.txt
- allow•ÏXAgm_all_equipmentAgm_skill_unconditional’ljÁ
-
---------------------
-//0876 by Ž€_
-
-Eׂ©‚¢ƒoƒOC³B
-E@ƒRƒ}ƒ“ƒh‚ɃeƒXƒg‚ׂ̈ɓü‚ê‚Ä‚¢‚½•¨‚ª“ü‚Á‚Ä‚¢‚½‚Ì‚ÅC³B
-Eƒnƒ“ƒ}[ƒtƒH[ƒ‹‚ÌŽË’ö‚ð5‚©‚ç4‚ÉC³(–{ŽIŽË’ö‚Í•s–¾)‚ƃŠƒUƒŒƒNƒVƒ‡ƒ“‚ª–³‘®«‚¾‚Á‚½‚̂𹑮«‚ÉC³B
- (db/)
- skill_db.txt C³B
- (map/)
- mob.c
- mob_catch_delete()Amob_stop_walking() C³B
- storage.c
- storage_additem() C³B
- pc.c
- pc_damage()Apc_stop_walking() C³B
- clif.c
- clif_parse_UseSkillToId()Aclif_parse_UseSkillToPos() C³B
- battle.c
- battle_calc_magic_attack() C³B
- skill.c
- skill_check_condition() C³B
- atcommand.c C³B
-
---------------------
-//0875 by ŒÓ’±—–
-
-Eparty_share_level‚ðinter_athena.conf‚Ɉڂµ‚½
- (ƒp[ƒeƒBŠÖ˜A‚̈—‚ÌŠÇŠ‚ªinterŽI‚Ì‚½‚ß)
-Einter_athena.conf‚Éinter_log_file€–ڒljÁ
-EƒMƒ‹ƒhì¬/‰ðŽU/éè—Ì/é”jŠü‚ªƒƒO‚ÉŽc‚é‚悤‚É
-EƒMƒ‹ƒh‰ðŽUŽž‚Ƀƒ‚ƒŠƒŠ[ƒN‚µ‚Ä‚¢‚½–â‘è‚ðC³
- (char/)
- char.c/char.h
- party_share_levelŠÖ˜A
- (inter/)
- inter.c/inter.h
- party_share_level / inter_log_file ŠÖ˜A
- ƒƒOo—Í—p‚Éinter_log()’ljÁ
- int_guild.c
- ì¬/‰ðŽU/éè—Ì/é”jŠü‚ðƒƒO‚Éo—Í
- ƒƒ‚ƒŠƒŠ[ƒNC³
- (doc/)
- conf_ref.txt
- C³
-
-EƒT[ƒo[ó‘ÔŠm”F—pCGIƒXƒNƒŠƒvƒg“Y•t‚È‚Ç
- EŽ©ŒÈÓ”C•Úׂȉðà–³‚µAŽ¿–₳‚ê‚Ä‚àƒXƒ‹[‚·‚é‰Â”\«—L‚è
- EƒGƒfƒBƒ^‚ÅŠJ‚¢‚½‚ç­‚µà–¾—L‚è
- ECGIÝ’u‚ÌŠî–{‚³‚¦‚í‚©‚ê‚Ζâ‘è‚È‚¢‚Í‚¸
-
- (tool/cgi/)
- serverstatus.cgi
- ƒT[ƒo[ó‘ÔŠm”F—pCGIƒXƒNƒŠƒvƒg
- addaccount.cgi
- à–¾C³
-
---------------------
-//0874 by Kalen
-EWhiteDayƒCƒxƒ“ƒg’ljÁ
- conf/npc/npc_event_whiteday.txt(V‹K)
- ‚½‚¾A‚¨‰ÙŽq”„‚Á‚Ă邾‚¯‚Ý‚½‚¢cGM‚ª‚È‚É‚â‚é‚Ì‚©‚Í’m‚è‚Ü‚¹‚ñ‚ªB
- sakRO‚Ì‚Ù‚¤‚ł̓zƒƒCƒgƒ`ƒ‡ƒR‚炵‚«‚à‚Ì‚ª’ljÁ‚³‚ꂽ‚Ì‚É
- jRO‚ŒljÁ‚³‚ꂽ‚Ì‚Í—’d“P‹Žƒpƒbƒ`‚Ì‚Ý(*L„t`;)c
-
-EAlchemistƒMƒ‹ƒh‚Å“û”«A»‘¢‘‚ð•Ï‚¦‚é‚悤‚É
- conf/npc/npc_job_alchemist.txt(V‹K)
- “]EƒNƒGƒXƒg‚ª•ª‚©‚ç‚È‚©‚Á‚½‚̂ʼn·‚ß‚Ä‚¢‚Ü‚µ‚½‚ª
- ”ƒ‚¦‚È‚¢‚Æ•s•Ö‚Æ•·‚¢‚½‚Ì‚ÅA’ljÁ
-
-EõFNPCŽÀ‘•
- conf/npc/npc_event_dye.txt(XV)
- ”¯Œ^•ÏX‚ªsakRO‚É—ˆ‚½‚炵‚¢‚Ì‚Å
- ‚È‚ñ‚Æ‚È[‚­XV
-
---------------------
-//0873 by Ž€_
-
-E@ƒRƒ}ƒ“ƒhitem2‚Ækillmonster ’ljÁB
-EƒXƒNƒŠƒvƒggetitem2‚Ækillmonsterall ’ljÁB
-E–î쬂Åì‚ç‚ꂽ–î‚໑¢ŽÒ‚Ì–¼‘O‚ª•t‚­‚悤‚ÉC³B
-Ebattle_athena.conf‚Émonster_class_change_full_recover’ljÁB
-E‘•”õƒXƒNƒŠƒvƒg‚ÉbWeaponComaEle‚ÆbWeaponComaRace ’ljÁB
-E­‚µŠÔˆá‚¢‚ª‚ ‚Á‚½ƒ_ƒ[ƒWŒvŽZŽ®C³B
-EbInfiniteEndure‚̈—‚ðƒCƒ“ƒfƒ…ƒA•\Ž¦‚È‚µ‚Å“à•”ˆ—‚·‚é‚悤‚É•ÏXB
-EƒI[ƒgƒXƒyƒ‹‚Åcastend_nodamage_id()‚ðŒÄ‚ÔƒXƒLƒ‹‚àŽg—p‚Å‚«‚é‚悤‚ÉC³B
-E‚»‚Ì‘¼×‚©‚¢C³‚ƃoƒOC³B
-E‚Ù‚Æ‚ñ‚Ç–¢ƒeƒXƒg‚Ȃ̂ŃoƒO‚ª‚ ‚Á‚½‚ç•ñ‚¨Šè‚¢‚µ‚Ü‚·B
- (conf/)
- help.txt C³B
- atcommand_athena.conf C³B
- battle_athena.conf C³B
- char_athena.conf C³B
- (db/)
- const.txt C³B
- item_db.txt C³B
- (doc/)
- item_bonus.txt C³B
- script_ref.txt C³B
- conf_ref.txt C³B
- (map/)
- map.h C³B
- map.c
- map_quit() C³B
- skill.h C³B
- skill.c
- skill_castend_nodamage_id()Askill_status_change_clear() C³B
- skill_castend_id()Askill_castend_pos()Askill_arrow_create() C³B
- skill_status_change_timer() C³B
- pc.c
- pc_calcstatus()Apc_bonus2()Apc_equipitem() C³B
- pc_unequipitem()Apc_damage() C³B
- battle.h C³B
- battle.c
- battle_get_dmotion()Abattle_weapon_attack() C³B
- battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
- battle_calc_magic_attack()Abattle_config_read() C³B
- clif.c
- clif_parse_LoadEndAck()Aclif_damage()Aclif_skill_damage() C³B
- clif_skill_damage2() C³B
- itemdb.h C³B
- itemdb.c
- itemdb_isequip3() ’ljÁB
- mob.h C³B
- mob.c
- mob_delay_item_drop()Amob_damage()Amob_changestate() C³B
- mob_class_change()Amob_delete()Amob_catch_delete() C³B
- script.c
- buildin_getitem() C³B
- buildin_killmonsterall_sub()Abuildin_killmonsterall() ’ljÁB
- atcommand.h C³B
- atcommand.c
- atcommand() C³B
- atkillmonster_sub() ’ljÁB
-
---------------------
-//0872 by ElFinLazz
-
-EƒXƒLƒ‹ƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[C³
-EƒXƒLƒ‹ƒMƒ€ƒ\ƒoƒ“ƒOƒhƒ“ƒ{ƒ‹ƒIƒbƒl‹ïŒ»
-EƒXƒLƒ‹ƒAƒuƒ‰ƒJƒ_ƒu‚È‚ç‹`ƒR[ƒ}‹ïŒ»
-EƒR[ƒ}‚Ì•ŠíƒIƒvƒVƒ‡ƒ“’ljÁ(Ží‘°, 番—¦)
-EƒIƒvƒVƒ‡ƒ“à–¾’ljÁ
- (db/)
- const.txt C³.
- (doc/)
- item_bonus.txt C³.
- (map/)
- map.h C³.
- skill.c
- skill_castend_nodamage_id(), skill_unit_group(), skill_status_change_start() C³.
- pc.c
- pc_calcstatus(), pc_bonus2(), pc_gainexp() C³.
- battle.c
- battle_weapon_attack() C³.
-
---------------------
-//0871 by Ž€_
-
-E0869‚̃oƒOC³B
-Echar_athena.conf‚Ælogin_athena.conf‚É€–ڒljÁB(ƒLƒƒƒ‰ŽI‚ƃƒOƒCƒ“ŽI‚̃ƒOƒtƒ@ƒCƒ‹‚ð•Ï‚¦‚邱‚Æ‚ª‚Å‚«‚é‚悤‚É‚µ‚Ü‚µ‚½BƒfƒtƒHƒ‹ƒg‚Ålog/ƒtƒHƒ‹ƒ_[‚É“ü‚é‚Ì‚ÅlogƒtƒHƒ‹ƒ_[‚ðì‚é•K—v‚ª‚ ‚è‚Ü‚·B)
-EƒGƒiƒW[ƒR[ƒg‚̈—‚ð­‚µC³Bƒ‚ƒ“ƒXƒ^[‚ªŽg‚Á‚½ê‡‚̓XƒLƒ‹ƒŒƒxƒ‹*6%‚Ì•¨—ƒ_ƒ[ƒW‚ðŒ¸‚ç‚·‚悤‚É•ÏXB
-E•ŠíˆÈŠO‚Ì•¨‚ł໑¢ŽÒ‚Ì–¼‘O‚ð•\Ž¦‚·‚é‚悤‚É•ÏXB(–{ŽI‚ł̓vƒŒƒ[ƒ“ƒgƒ{ƒbƒNƒX‚ÆŽèì‚èƒ`ƒ‡ƒRƒŒƒbƒgˆÈŠO‚Í•\Ž¦‚³‚ê‚Ü‚¹‚ñ‚ªƒpƒPƒbƒg‚Í‚ ‚邱‚Æ‚¾‚µ“ü‚ê‚Ä‚Ý‚Ü‚µ‚½B)
-E‚»‚Ì‘¼ƒXƒLƒ‹ŠÖŒW‚Ìׂ©‚¢C³B
-E@ƒRƒ}ƒ“ƒhˆê‚‚ƃXƒNƒŠƒvƒgˆê‚‚ð’ljÁ‚µ‚Ü‚µ‚½‚ªà–¾‚ÍŒã‚̃pƒbƒ`‚Å‘‚«‚Ü‚·B
- (conf/)
- char_athena.conf C³B
- login_athena.conf C³B
- (doc/)
- conf_ref.txt C³B
- (login/)
- login.c
- parse_login()Alogin_config_read()Alogin_log() C³B
- (char/)
- char.h C³B
- char.c
- char_config_read()Amake_new_char()Aparse_char() C³B
- int_party.c C³B
- int_storage.c C³B
- int_guild.c C³B
- int_pet.c C³B
- (map/)
- map.h C³B
- skill.c
- skill_status_change_start()Askill_additional_effect() C³B
- skill_castend_nodamage_id()Askill_check_condition() C³B
- skill_status_change_clear()Askill_produce_mix() C³B
- skill_status_change_timer() C³B
- pc.c
- pc_calcstatus()Apc_insert_card()Apc_additem()Apc_cart_additem() C³B
- storage.c
- storage_additem() C³B
- battle.c
- battle_get_adelay()Abattle_get_amotion()Abattle_calc_damage() C³B
- clif.c
- clif_additem()Aclif_equiplist()Aclif_storageequiplist() C³B
- clif_tradeadditem()Aclif_storageitemadded()Aclif_use_card() C³B
- clif_cart_additem()Aclif_cart_equiplist()Aclif_vendinglist() C³B
- clif_openvending()Aclif_arrow_create_list() C³B
- clif_skill_produce_mix_list()Aclif_parse_SelectArrow() C³B
- clif_parse_ProduceMix() C³B
- script.c
- buildin_produce() C³B
- buildin_getitem2() ’ljÁB
- atcommand.c
- atcommand() C³B
-
---------------------
-//0870 by shuto
-
-Emapflag‚ÌUéíMAP‚Énomemo’ljÁ
-EƒMƒ‹ƒh•ó” ‚ÅA•ó” oŒ»‚Æ“¯Žž‚ÉMAPŽI‚ª—Ž‚¿‚é–â‘èC³(by ‚Ò‚´‚Ü‚ñ)
-
---------------------
-//0869 by Ž€_
-
-Ebattle_athena.conf‚Éplayer_land_skill_limitAmonster_land_skill_limitAparty_skill_penaly ’ljÁB
-Echar_athena.conf‚Éparty_share_level ’ljÁB
-E‚»‚Ì‘¼×‚©‚¢C³B
- (conf/)
- char_athena.conf C³B
- battle_athena.conf C³B
- (doc/)
- conf_ref.txt C³B
- (char/)
- char.h C³B
- char.c
- char_config_read() C³B
- int_party.c
- party_check_exp_share() C³B
- (map/)
- map.h C³B
- skill.c
- skill_attack()Askill_castend_damage_id() C³B
- skill_castend_nodamage_id()Askill_status_change_start() C³B
- skill_castend_pos() C³B
- pc.c
- pc_calcstatus() C³B
- mob.c
- mobskill_castend_pos() C³B
- battle.h
- battle.c
- battle_get_adelay()Abattle_get_amotion()Abattle_calc_damage() C³B
- battle_config_read() C³B
- pet.c
- pet_data_init() C³B
-
---------------------
-//0868 by Ž€_
-
-Eƒ}ƒWƒbƒNƒƒbƒhŽÀ‘•‚ƃXƒyƒ‹ƒuƒŒƒCƒJ[C³B
-Eƒ}ƒWƒbƒNƒƒbƒh‚Ìꇖ{ŽI‚ÅŽg‚Á‚Ä‚à‚È‚ñ‚Ì•\Ž¦‚à‚È‚­”­“®‚Ì‘O‚É‚ÍŽg‚Á‚½‚©‚Ç‚¤‚©‚ÌŠm”F‚ª‚Å‚«‚È‚¢‚̂ŃXƒLƒ‹‰r¥ƒpƒPƒbƒg(0x13e)‚ð—˜—p‚µ‚ÄŽg—p‚·‚鎞ƒXƒLƒ‹–¼‚ªo‚é‚悤‚É‚µ‚Ä‚¢‚Ü‚·B(–{ŽI‚ƈႤ‚¼‚Æ‚©‚Å•¶‹å‚ª‚±‚È‚¢‚悤‚É)
-EƒXƒyƒ‹ƒuƒŒƒCƒJ[‰r¥ƒLƒƒƒ“ƒZƒ‹‚ÉŠÖŒW‚È‚­skill_db.txt‚Éݒ肳‚ê‚Ä‚éskill_type‚ªmagic‚̃XƒLƒ‹‚Ì‚Ý”j‚邱‚Æ‚ª‚Å‚«‚Ü‚·B(ƒ‰ƒOƒiƒQ[ƒg‚Ìà–¾‚ð“K—p)
-Eskill_db.txt‚Ì‘Ž®‚ª•Ï‚í‚Á‚½‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢BƒmƒbƒNƒoƒbƒN‹——£‚ÌÝ’è‚à‚Å‚«‚Ü‚·‚ª”O‚ׂ̈ɂ¢‚Á‚Ä‚¨‚«‚Ü‚·‚ªAŽI‚ł̃eƒXƒg‚ÅFW‚̃mƒbƒNƒoƒbƒN‹——£‚Í2‚ŃTƒ“ƒN‚à2‚Å‚ ‚邱‚Æ‚ðŠm”F‚µ‚Ä‚¢‚Ü‚·BŠØ‘‚Ì2003”N11ŒŽ19“úƒpƒbƒ`‘O‚ÌŽI‚Å‚Í‚ ‚è‚Ü‚·‚ª2-2‚Í“K—p‚³‚ê‚Ä‚¢‚銂Ȃ̂Ŗ{ŽI‚̈Ⴂ‚Í‚È‚¢‚ÆŽv‚¢‚Ü‚·B
-E‚»‚Ì‘¼ƒXƒLƒ‹ŠÖŒW‚Ìׂ©‚¢C³B
-E0867‚Å‘‚«–Y‚êBƒ‚ƒ“ƒXƒ^[‚̃q[ƒ‹‚ŃAƒ“ƒfƒbƒhƒ‚ƒ“ƒXƒ^[‚ªUŒ‚‚³‚ê‚ÄŽ©–Å‚·‚é‚̂Ńq[ƒ‹‚⃊ƒU‚Ìê‡mob_skill_db.txt‚Ìval1(’l1)‚É1‚ð“ü‚ê‚é‚ƃAƒ“ƒfƒbƒhƒ‚ƒ“ƒXƒ^[‚àUŒ‚‚ðŽó‚¯‚¸‰ñ•œ‚·‚é‚悤‚É‚È‚è‚Ü‚·B–{ŽI‚ł̓‚ƒ“ƒXƒ^[‚̃q[ƒ‹‚̓Aƒ“ƒfƒbƒh‚ÉŠÖŒW‚È‚­‰ñ•œ‚·‚é‚悤‚Å‚·B‚½‚¾ŒÂl“I‚ɂ̓]ƒ“ƒr‚ªƒq[ƒ‹‚µ‚ÄŽ©–Å‚·‚é•û‚ª³‚µ‚¢‚ÆŽv‚¤‚Ì‚Åmob_skill_db.txt‚ÅÝ’è‚Å‚«‚é‚悤‚É‚µ‚Ä‚¨‚è‚Ü‚·B
- (doc/)
- db_ref.txt C³B
- (db/)
- cast_db.txt C³B
- skill_db.txt C³B
- (map/)
- skill.h C³B
- skill.c
- skill_status_change_start()Askill_status_change_end() C³B
- skill_castend_damage_id()Askill_castend_nodamage_id() C³B
- skill_attack()Askill_status_change_timer()Askill_castcancel() C³B
- skill_unit_onplace()Askill_use_id()Askill_castend_id() C³B
- skill_readdb() C³B
- skill_get_blewcount() ’ljÁB
- mob.c
- mobskill_use_id()Amob_spawn()Amob_attack() C³B
- battle.c
- battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
- battle_calc_pc_weapon_attack()Abattle_calc_magic_attack() C³B
- battle_calc_misc_attack()Abattle_weapon_attack() C³B
- clif.c
- clif_damage() C³B
- pet.c
- pet_attack() C³B
- pc.c
- pc_attack_timer()Apc_authok() C³B
- pc_spirit_heal()Apc_natural_heal_sub() C³B
-
---------------------
-//0867 by Ž€_
-
-EƒXƒLƒ‹ŠÖŒW‚Ìׂ©‚¢C³B
-Ebattle_athena.conf‚Éplayer_undead_nofreeze’ljÁB
-EV‚µ‚¢ƒAƒCƒeƒ€ƒpƒPƒbƒg‚ɑΉžB(PACKETVER‚ð5ˆÈã‚É‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B)
-Emob_avail.txt‚ŃvƒŒƒCƒ„[‚ÌŽp‚ðŽw’肵‚½ŽžƒyƒRƒyƒR‚â‘é‚ð•t‚¯‚邱‚Æ‚ª‚Å‚«‚é‚悤‚É•ÏXB“ª‰º’iŽŸ‚ɃIƒvƒVƒ‡ƒ“‚ðÝ’è‚Å‚«‚Ü‚·B(‚½‚¾ƒnƒCƒfƒBƒ“ƒO‚ƃNƒ[ƒLƒ“ƒO‚ÍŽw’è‚Å‚«‚È‚¢‚悤‚É‚È‚Á‚Ä‚¢‚Ü‚·B)
- makefile C³B
- (conf/)
- battle_athena.conf C³B
- (doc/)
- conf_ref.txt C³B
- client_packet.txt C³B
- (map/)
- battle.h C³B
- battle.c
- battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
- battle_calc_pc_weapon_attack()Abattle_config_read() C³B
- clif.c
- clif_mob_class_change()Aclif_spawnmob()Aclif_spawnpet() C³B
- clif_damage()Aclif_skill_damage()Aclif_skill_damage2() C³B
- clif_itemlist()Aclif_cart_itemlist()Aclif_storageitemlist() C³B
- clif_mob0078()Aclif_mob007b()Aclif_pet0078()Aclif_pet007b() C³B
- pc.c
- pc_attack_timer() C³B
- skill.c
- skill_castend_nodamage_id()Askill_additional_effect() C³B
- skill_status_change_start() C³B
- mob.h C³B
- mob.c
- mobskill_castend_id()Amob_getfriendstatus_sub() C³B
- mob_readdb_mobavail() C³B
-
---------------------
-//0866 by ‚Ò‚´‚Ü‚ñ
-
-EMOTD‚̃ƒbƒZ[ƒW‚ð‘S‚Ä•ÒW‚Å‚«‚é‚悤‚É•ÏXB
-EƒNƒ[ƒ“ƒXƒLƒ‹ŽÀ‘•B
-@ƒhƒ‹•ž‚̃q[ƒ‹ƒAƒ^ƒbƒN‚É‚æ‚éƒq[ƒ‹K“¾‚Í–¢ƒeƒXƒg‚Å‚·B
-EƒMƒ‹ƒh•ó” ‰¼ŽÀ‘•B
-@ƒ”ƒ@ƒ‹ƒLƒŠ[‚P‚Ì‚Ý‚Å‚·B
-@¤‹Æ“ŠŽ‘‚É‚æ‚é•ó” ŒÂ”‚ÌŽZoŽ®‚Í“K“–‚Å‚·(‰ŠúŒÂ”4ŒÂ‚Æ‚µ‚©’m‚ç‚È‚¢‚Ì‚Å)B
-@OnclockƒCƒxƒ“ƒg‚Å“®ì‚³‚¹‚Ä‚¢‚Ü‚·B”CˆÓ‚ÌŽž‚É•ÏX‚µ‚Ä‚­‚¾‚³‚¢B
-EAthenaDBŒv‰æ‚Ìmob_db.txt‚Æmapflag.txt‚ð“ü‚ê‚Ä‚¨‚«‚Ü‚µ‚½B
-
- (map/)
- pc.c
- pc_makesavestatus()Apc_calc_skilltree() C³B
- pc_allskillup()Apc_calc_skillpoint() C³B
- pc_resetskill()Apc_authok() C³B
- skill.c
- skill_attack() C³B
- map.h C³B
- (conf/)
- gvg/TEST_prtg_cas01_AbraiJ.txt C³B
- motd.txt C³B
- mapflag.txt C³B
- (db/)
- mob_db.txt C³B
-
---------------------
-//0865 by ‚Ò‚´‚Ü‚ñ
-
-EŽ©•ª‚ªè—Ì‚µ‚Ä‚¢‚éƒAƒWƒg‚̃Gƒ“ƒyƒŠƒEƒ€‚ðUŒ‚‚Å‚«‚½ƒoƒOC³B
-EƒAƒuƒ‰ƒC‚ªè—̃Mƒ‹ƒhƒƒ“ƒo[‘Sˆõ‚ðƒ}ƒXƒ^[‚Æ‚Ý‚È‚µ‚Ä‚¢‚½ƒoƒOC³B
-@‚±‚ÌC³‚É”º‚Á‚ăXƒNƒŠƒvƒgƒŠƒtƒ@ƒŒƒ“ƒX‚ɉü•Ï‚ª‚ ‚è‚Ü‚·B
- Egetcharid(0)‚ÅAŽ©•ª‚ÌcharID‚ð•Ô‚·‚悤‚ÉB
- Egetguildmasterid(<n>)’ljÁB
- @<n>=ƒMƒ‹ƒhID
- @ŠY“–ƒMƒ‹ƒh‚̃}ƒXƒ^[‚ÌcharID‚ð•Ô‚µ‚Ü‚·B
-
- (map/)
- guild.c
- guild_mapname2gc() ’ljÁB
- battle.c
- battle_calc_damage() C³B
- script.c
- buildin_getcharid() C³B
- buildin_getguildmasterid() ’ljÁB
- ƒ[ƒJƒ‹ƒvƒƒgƒ^ƒCƒv錾‚̈ꕔ‚ðC³A’ljÁB
- guild.h C³B
-
---------------------
-//0864 by ŒÓ’±—–
-
-EinterŽI‚Ìwis‚̈—•ÏX
- EŽ©‘OƒŠƒ“ƒNƒŠƒXƒg‚©‚çdb.h‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚éƒf[ƒ^ƒx[ƒX‚ðŽg—p‚·‚é‚悤‚É
- EWIS‚ÌID‚ð16ƒrƒbƒg‚©‚ç32ƒrƒbƒg‚É‘‚₵‚½iƒpƒPƒbƒg‚àC³j
- EƒƒbƒZ[ƒW‚̃TƒCƒYƒ`ƒFƒbƒN‚ð“ü‚ꂽ
- EƒpƒPƒbƒgƒXƒLƒbƒv‚ª“ñ‰ñs‚í‚ê‚é‰Â”\«‚ª‚ ‚éƒoƒOC³
-
- (char/)
- inter.c
- wisŠÖŒW‘å••ÏX
- (map/)
- intif.c
- wisŠÖŒW‚ÌC³BŽå‚ɃpƒPƒbƒgˆ—B
- (doc/)
- inter_server_packet.txt
- ƒpƒPƒbƒg3002,3801‚ð•ÏX
-
---------------------
-//0863 by Ž€_
-
-Eׂ©‚¢C³B
-Ebattle_athena.conf‚Éplayer_attack_direction_change’ljÁB
-Emob_skill_db.txt‚ðC³‚·‚鎞’§”­‚ÌC³‚ðŠÔˆá‚Á‚ÄC³B
-Eƒ‚ƒ“ƒXƒ^[‚̃XƒLƒ‹Ž©”š–â‘èC³B(–¢ƒeƒXƒg)
- (conf/)
- battle_athena.conf C³B
- (doc/)
- conf_ref.txt C³B
- (db/)
- mob_skill_db.txt C³B
- (map/)
- mob.c
- mobskill_use_id()Amobskill_use()Amobskill_castend_id() C³B
- pc.c
- pc_skill()Apc_attack_timer() C³B
- skill.c
- skill_castend_damage_id() C³B
- battle.h C³B
- battle.c
- battle_weapon_attack()Abattle_config_read() C³B
-
---------------------
-//0862 by ŒÓ’±—–
-
-EmobƒXƒLƒ‹Žg—pðŒ’ljÁ
- Efriendhpltmaxrate : –¡•û‚ÌHP‚ªŽw’è“–¢–ž‚Ì‚Æ‚«(ƒeƒXƒgÏ‚Ý)
- Efriendstatuson : –¡•û‚ªŽw’肵‚½ƒXƒe[ƒ^ƒXˆÙí‚É‚È‚Á‚Ä‚¢‚é‚Æ‚«
- Efriendstatusoff : –¡•û‚ªŽw’肵‚½ƒXƒe[ƒ^ƒXˆÙí‚É‚È‚Á‚Ä‚¢‚È‚¢‚Æ‚«
- Emystatuson : Ž©•ª‚ªŽw’肵‚½ƒXƒe[ƒ^ƒXˆÙí‚É‚È‚Á‚Ä‚¢‚é‚Æ‚«
- Emystatusoff : Ž©•ª‚ªŽw’肵‚½ƒXƒe[ƒ^ƒXˆÙí‚É‚È‚Á‚Ä‚¢‚È‚¢‚Æ‚«
- ƒXƒe[ƒ^ƒXŒn‚Í–¢ƒeƒXƒg‚Å‚·Bmob_skill_db.txt‚ÉŽw’è•û–@‚ð‘‚¢‚Ä‚¢‚Ü‚·B
- ‚½‚Æ‚¦‚ÎŽ©•ª‚ª“Å‚©‚Ç‚¤‚©‚Í mystatus,poison ‚ÅA
- ƒnƒCƒfƒBƒ“ƒO’†‚©‚Ç‚¤‚©‚Í mystatuson,hiding ‚ÅŽw’肵‚Ü‚·B
-EmobƒXƒLƒ‹Žg—pƒ^[ƒQƒbƒg’ljÁ
- Efriend : –¡•û
- Earound : Ž©•ª‚ÌŽüˆÍiŒ»Ý‚ÌŽd—l‚Å‚ÍŽüˆÍ81ƒ}ƒXj‚Ì‚Ç‚ê‚©
- Earound1`around4 : Ž©•ª‚ÌŽüˆÍ‚X,25,49,81ƒ}ƒX‚Ì‚Ç‚ê‚©(”͈͂𖾎¦)
- friend‚ÍðŒ‚ªfriendŒn(friendhpltmaxrate‚È‚Ç)‚Ì‚Æ‚«‚ÉŽg—p‰Â”\B
- aroundŒn‚Íꊎw’èƒXƒLƒ‹‚ÅŽg—p‰Â”\B
-
- (map/)
- mob.c / mob.h
- mob_getfriend*()’ljÁAmobskill_use()C³‚È‚Ç
- (db/)
- mob_skill_db.txt
- ʼn‚Ìà–¾‚Ì‚ÝC³Bƒf[ƒ^‚ÍC³‚µ‚Ä‚¢‚Ü‚¹‚ñB
-
---------------------
-//0861 by ‚¢‚Ç
-
-EƒT[ƒo[snapshot
-
---------------------
-//0860 by J
-
-EŽ€_‚³‚ñ‚̎艺¢Š«‚ÌC³‚ɇ‚킹‚ÄMOBƒXƒLƒ‹DB‚ðC³
-(/conf)
- mob_skill_db.txt C³B
-
---------------------
-//0859 by Ž‚Žqo^.^o
-Alchemist warp C³(AegisŽQl)
-(/conf)
- (/warp)
- npc_warp_job.txt C³
-
---------------------
-//0858 by Ž€_
-
-Eׂ©‚¢C³B
-EMAX_MOBSKILL‚ð24‚©‚ç32‚É•ÏXB(‚½‚¾­‚µ‚Å‚·‚ª‚Ü‚½ƒƒ‚ƒŠ[Žg—p—Ê‚ª‘‚¦‚Ü‚·B)
-Eƒvƒƒ{ƒP[ƒVƒ‡ƒ“‚ÅŽæ‚és“®‚ðmob_skill_db.txt‚Ìval1(’l1)‚ÅÝ’è‚Å‚«‚é‚悤‚ÉC³B
-EŽè‰º¢Š«‚Å•¡”‚ÌŽí—Þ‚ðÝ’èoØ‚é‚悤‚ÉC³B(Å‘å5‚‚܂Å)
-Eƒƒ^ƒ‚ƒ‹ƒtƒH[ƒVƒX‚ƃgƒ‰ƒ“ƒXƒtƒH[ƒ[ƒVƒ‡ƒ“‚à•¡”‚ÌŽí—Þ‚ðÝ’è‚Å‚«‚é‚悤‚ÉC³B
- (db/)
- skill_db.txt C³B
- mob_skill_db.txt C³B
- (map/)
- skill.c
- skill_castend_damage_id()Askill_castend_nodamage_id() C³B
- map.h C³B
- mob.h C³B
- mob.c
- mob_readskilldb()Amob_summonslave()Amob_class_change() C³B
-
---------------------
-//0857 by J
-
-EOWN Ragnarok‚É‚Ì‚Á‚Ä‚¢‚½î•ñ‚ðŒ³‚ÉMOBƒXƒLƒ‹‚ðC³B
-Echase(“ËŒ‚)‚ªŽÀ‘•‚³‚ê‚Ä‚¢‚é‚Æ‚Ì‚±‚Æ‚È‚Ì‚Å“ËŒ‚(?)‚ðchase‚É‚©‚¦‚Ä
-ƒRƒƒ“ƒgƒAƒEƒg‚ð‚Í‚¸‚µ‚Ü‚µ‚½B
-EŽ€_‚³‚ñ‚ªŽÀ‘•‚µ‚½MOBƒXƒLƒ‹‚ðŽg—p‚·‚郂ƒ“ƒXƒ^[‚ðŽëêî•ñ‚ÉÚ‚Á‚Ä‚éî•ñ‚ðŒ³‚ÉŽÀ‘•B
- (/conf)
- mob_skill_db.txt
-
---------------------
-//0856 by Ž€_
-
-EƒoƒOC³‚Æׂ©‚¢C³B
-Ebattle_athena.conf‚Émonster_attack_direction_change’ljÁB
-Ebattle_athena.conf‚Ìbasic_skill_check‚ƃJƒvƒ‰‚Ì‘qŒÉ—˜—p‚ð‡‚킹‚Ä‚¢‚Ü‚µ‚½‚ª‚¢‚‚̂܂ɂ©‚È‚­‚È‚Á‚½‚Ì‚ÅŽæ‚è–ß‚µB(basic_skill_check‚ªno‚È‚çŠî–{‹@”\ƒXƒLƒ‹ƒŒƒxƒ‹‚ÉŠÖŒW‚È‚­‘qŒÉ‚ðŽg‚¦‚Ü‚·B)
-EƒsƒA[ƒVƒ“ƒOƒAƒ^ƒbƒN‚ÌŽË’ö‚ð3ƒZƒ‹‚É•ÏX‚µ‚Ä‹ßÚUŒ‚‚Æ‚µ‚Ä”FŽ¯‚·‚é‚悤‚ÉC³B
-EAŽI‚ł̃eƒXƒg‚ŃAƒ“ƒfƒbƒh‚Ì”FŽ¯‚ð‘®«‚É‚æ‚Á‚Ä‚·‚邱‚Æ‚ª‚í‚©‚Á‚½‚Ì‚Åundead_detect_type‚̃fƒtƒHƒ‹ƒg‚ð0‚É•ÏXB
-Eƒƒ^ƒ‚ƒ‹ƒtƒH[ƒVƒX‚âƒgƒ‰ƒ“ƒXƒtƒH[ƒ[ƒVƒ‡ƒ“‚ÅŒ©‚½–Ú‚ªƒvƒŒƒCƒ„[‚È‚ç0x1b0ƒpƒPƒbƒg‚ð‘—‚ç‚È‚¢‚悤‚É•ÏXB
-Eƒjƒ…[ƒ}ƒoƒO‚ÍC³‚µ‚Ä‚Ý‚Ü‚µ‚½‚ªƒXƒLƒ‹ƒ†ƒjƒbƒg‚ÌŽžŠÔ‚É‚æ‚éì“®Žd—l‚Í‚Ü‚¾•ªÍ‚ªŠ®‘S‚¶‚á‚È‚¢‚Ì‚Å‘¼‚Ì•s‹ï‡‚ªo‚Ä‚­‚é‚©‚à...
- (conf/)
- battle_athena.conf C³B
- mapflag.txt C³B(•’ʂ̃_ƒ“ƒWƒ‡ƒ“‚ªƒV[ƒYƒ‚[ƒh‚Å‚ ‚é‚Í‚¸‚ª‚È‚¢‚Ì‚Å)
- (conf/npc/)
- npc_town_kafra.txt C³B
- (db/)
- skill_db.txt C³B
- (doc/)
- conf_ref.txt C³B
- script_ref.txt C³B
- (map/)
- pc.c
- pc_modifybuyvalue()Apc_modifysellvalue() C³B
- battle.h
- battle.c
- battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
- battle_calc_pc_weapon_attack()Abattle_weapon_attack() C³B
- battle_config_read() C³B
- skill.c
- skill_unitsetting()Askill_castend_damage_id() C³B
- skill_castend_nodamage_id() C³B
- mob.c
- mob_attack() C³B
- pet.c
- pet_attack() C³B
- clif.c
- mob_class_change() C³B
-
---------------------
-//0855 by asong
-
-Eƒƒ^ƒ‚ƒ‹ƒtƒH[ƒVƒX‚Å‚o‚b‚Æ‚µ‚Ä•\Ž¦‚·‚é‚l‚n‚a‚ðŽw’肵‚½ê‡‘q—Ž‚¿‚·‚éƒoƒO‚ðuŽb’èvC³B
-E0x1b0ƒpƒP‚Å‚Í–³‚­0x7b‚ðŽg‚¤‚±‚Ƃʼn½‚Æ‚©‚µ‚Ä‚¢‚Ü‚·B
-EŽg‚¢•ª‚¯‚ð‚µ‚½‚¢‚Æ‚±‚ë‚Å‚·‚ª“–•û‚b‚Ì’mŽ¯‚ª–³‚­ðŒ•ªŠò‚ªãŽè‚­‚¢‚«‚Ü‚¹‚ñ‚Å‚µ‚½B
-E‚à‚µ‚©‚µ‚½‚çƒvƒp‚Ì›z‰»i‰H‰»Hj‚ª‚¨‚©‚µ‚­‚È‚Á‚Ä‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB
- (/map)
- clif.c
- mob_class_change() C³B
-
---------------------
-//0854 by Kalen
-
-E•s‘«‚µ‚Ä‚¢‚½ˆêŽŸE“]EƒNƒGƒXƒg’ljÁ‹y‚ÑA‚»‚ê‚É”º‚¤WarpAMobC³)
- (/conf)
- (/npc)
- npc_job_archer.txt
- npc_job_swordman.txt
- npc_job_thief.txt(‘䎌C³A“_”ˆ—•ÏX)
- npc_job_magician.txt
- (/warp)
- npc_warp25.txt(ˆê•”ˆÚ“®)
- npc_warp.txt(ˆê•”ˆÚ“®)
- npc_warp_job.txt(VÝ)
- (/mob)
- npc_mob_job.txt
-E—Õ‚èQuest’ljÁ‹y‚ÑA‚»‚ê‚É”º‚¤NPCC³BƒAƒ}ƒcs‚«‘D‚Å—¿‹à‚ðŽæ‚ç‚È‚©‚Á‚½–â‘èC³
- (/conf)
- npc_event_hinamatsuri.txt
- npc_town_amatsu.txt
- npc_town_guide.txt
- npc_town_kafra.txt
- —Õ‚è‚ð—LŒø‚É‚·‚é‚ƃAƒ}ƒcƒJƒvƒ‰‚ðW‚ÉA
- ƒAƒ‹ƒxƒ‹ƒ^“ìƒJƒvƒ‰‚ð휂ɂ·‚é‚悤‚É‚µ‚Ä‚¢‚Ü‚·B
-
---------------------
-//0853 by Ž€_
-
-EƒoƒOC³‚ÆNPCƒXƒLƒ‹ŠÖŒW‚ÌC³B
-Eƒ_[ƒNƒuƒŒƒX‚ðMISCUŒ‚‚É•ÏXB(‚½‚¾–½’†”»’è—L‚è)
-EƒNƒŠƒeƒBƒJƒ‹ƒXƒ‰ƒbƒVƒ…AƒRƒ“ƒ{ƒAƒ^ƒbƒNAƒKƒCƒfƒbƒhƒAƒ^ƒbƒNAƒXƒvƒ‰ƒbƒVƒ…ƒAƒ^ƒbƒNAƒuƒ‰ƒCƒ“ƒhƒAƒ^ƒbƒNAƒJ[ƒXƒAƒ^ƒbƒNAƒyƒgƒŠƒtƒ@ƒCƒAƒ^ƒbƒNAƒ|ƒCƒYƒ“ƒAƒ^ƒbƒNAƒTƒCƒŒƒ“ƒXƒAƒ^ƒbƒNAƒXƒŠ[ƒvƒAƒ^ƒbƒNAƒXƒ^ƒ“ƒAƒ^ƒbƒNAƒ‰ƒ“ƒ_ƒ€ƒAƒ^ƒbƒNAƒ_[ƒNƒlƒXƒAƒ^ƒbƒNAƒtƒ@ƒCƒAƒAƒ^ƒbƒNAƒOƒ‰ƒEƒ“ƒhƒAƒ^ƒbƒNAƒz[ƒŠ[ƒAƒ^ƒbƒNAƒ|ƒCƒYƒ“ƒAƒ^ƒbƒNAƒeƒŒƒLƒlƒXƒAƒ^ƒbƒNAƒEƒH[ƒ^[ƒAƒ^ƒbƒNAƒEƒBƒ“ƒhƒAƒ^ƒbƒNAƒ}ƒWƒJƒ‹ƒAƒ^ƒbƒNAƒuƒ‰ƒbƒhƒhƒŒƒCƒ“Aƒƒ“ƒ^ƒ‹ƒuƒŒƒCƒJ[‚̓‚ƒ“ƒXƒ^[‚Ì•ŠíŽË’ö‚É•ÏXB‚»‚µ‚Ä‚±‚ê‚ç‚̃XƒLƒ‹‚ðƒ‚ƒ“ƒXƒ^[‚ÌUŒ‚ŽË’ö‚É‚æ‚Á‚ĉ“‹——£UŒ‚‚Æ‹ß‹——£UŒ‚‚É‚È‚é‚悤‚É•ÏXB
-EƒsƒA[ƒVƒ“ƒOƒAƒ^ƒbƒN‚Í•ŠíŽË’ö+2‚É•ÏXB
-EƒGƒiƒW[ƒhƒŒƒCƒ“Aƒnƒ‹ƒVƒl[ƒVƒ‡ƒ“‚Í–‚–@ŽË’ö‚É•ÏXB
-Eƒ_[ƒNƒuƒŒƒbƒVƒ“ƒO‚ÌŽË’ö‚ð4‚É•ÏX‚Æ‚©‚©‚éŠm—¦‚ð50+ƒXƒLƒ‹ƒŒƒxƒ‹*5%‚É•ÏXB(ˆê‰ž‚±‚ê‚à–‚–@‚È‚Ì‚Å­‚µŽË’ö‚ðL‚­‚µ‚Ü‚µ‚½BŠî–{–‚–@ŽË’ö‚Å‚ ‚é8‚É•Ï‚¦‚é‚ׂ«‚È‚Ì‚©‚Ç‚¤‚©‚Í”÷–­...)
-EƒKƒCƒfƒbƒhƒAƒ^ƒbƒN‚̓ZƒCƒtƒeƒBƒEƒH[ƒ‹‚ƃjƒ…[ƒ}‚𖳌ø‚É‚·‚é•ñ‚ª‚ ‚è‚Ü‚µ‚½‚̂ŃZƒCƒtƒeƒBƒEƒH[ƒ‹‚ƃjƒ…[ƒ}‚ªŒø‚©‚È‚¢‚悤‚ÉC³B
-EƒfƒBƒtƒFƒ“ƒ_[‚̓GƒtƒFƒNƒg‚¾‚¯o‚é‚悤‚ÉC³B(ƒXƒLƒ‹‚ÌŽd—l“™‚ð‚í‚©‚é•û‚Íî•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·B)
-Eƒgƒ‰ƒ“ƒXƒtƒH[ƒ[ƒVƒ‡ƒ“ŽÀ‘•B(ƒƒ^ƒ‚[ƒtƒHƒVƒX‚Æ“¯‚¶•¨‚¾‚»‚¤‚Å‚·B‚½‚¾‚±‚ê‚Í‘S‘RŠÖŒW‚È‚¢•Ê‚̃‚ƒ“ƒXƒ^[‚ɂȂ镨‚炵‚¢‚Å‚·Bƒjƒtƒ‹ƒwƒCƒ€‚ÉŽg‚¤‚â‚‚ª‚¢‚é‚Ý‚½‚¢‚Å‚·B)
-EAthenaŽG’kƒXƒŒƒbƒh ‘´‚Ì“ó‚Ì80‚ðscript_ref.txt‚Æ‚µ‚ĒljÁ‚Æ‚¿‚å‚Á‚ÆC³B
- (db/)
- skill_db.txt C³B
- (doc/)
- script_ref.txt ’ljÁB
- (map/)
- battle.c
- battle_calc_damage()Abattle_calc_pet_weapon_attack() C³B
- battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
- battle_calc_magic_attack()Abattle_calc_misc_attack() C³B
- skill.c
- castend_damage_id()Acastend_nodamage_id()Askill_use_pos() C³B
- clif.c
- clif_spawnnpc()Aclif_parse_Restart()Aclif_parse_QuitGame() C³B
- mob.c
- mobskill_castend_id()Amobskill_castend_pos() C³B
- mobskill_use_id()Amobskill_use_pos() C³B
-
---------------------
-//0852 by ‚Ò‚´‚Ü‚ñ
-
-E‹T“‡4FE‹aD2FEƒAƒ}ƒcD1F‚ðƒeƒŒƒ|•s‰ÂAƒV[ƒYƒ‚[ƒh‚É•ÏXB
-Enosave‚̈ø”‚ÉSavePoint‚ªŽw’è‚Å‚«‚Ä‚È‚©‚Á‚½‚̂ŒljÁB
-EPVP‚Ìmapflag‚ðmapflag.txt‚É“‡B
- (map/)
- npc.c
- npc_parse_mapflag() C³B
- (conf/)
- mapflag.txt C³B
- npc/npc_pvp.txt C³B
-
---------------------
-//0851 by ŒÓ’±—–
-
-EƒƒOƒCƒ“Žž‚̈Ɖ»key‚ªí‚É“¯‚¶‚Æ‚¢‚¤‘å‚«‚È–â‘肪‚ ‚Á‚½‚Ì‚ÅC³
-EƒƒOƒCƒ“ŠÇ—ŽÒƒƒOƒCƒ“(ladmin‚ÅŽg—p)‚ŃpƒXƒ[ƒh‚̈Ɖ»‚ɑΉž
- (login/)
- login.c
- login_session_dataì¬AˆÃ†‰»key‚ðƒNƒ‰ƒCƒAƒ“ƒg‚²‚Æ‚É쬂ȂÇ
- (tool/)
- ladmin
- ver.1.05‚ÉBƒfƒtƒHƒ‹ƒg‚ŃpƒXƒ[ƒh‚ðˆÃ†‰»‚·‚é‚悤‚ÉB
- ˆÃ†‰»‚Ì‚½‚ß‚ÉDigest::MD5ƒ‚ƒWƒ…[ƒ‹‚ðŽg—p‚µ‚Ü‚·B
- Digest::MD5‚ª–³‚¢ê‡‚̓pƒXƒ[ƒh‚̈Ɖ»‚ðs‚¢‚Ü‚¹‚ñB
- (doc/)
- admin_packet.txt
- ƒƒOƒCƒ“ƒT[ƒo[ŠÇ—ƒƒOƒCƒ“•”•ª•ÏX
-
---------------------
-//0850 by Ž€_
-
-ENPCƒXƒLƒ‹ŽÀ‘•B(ƒnƒ‹ƒVƒl[ƒVƒ‡ƒ“AƒL[ƒsƒ“ƒOAƒŠƒbƒNAƒƒ“ƒ^ƒ‹ƒuƒŒƒCƒJ[Aƒvƒƒ{ƒP[ƒVƒ‡ƒ“AƒoƒŠƒ„[Aƒ_[ƒNƒuƒŒƒbƒVƒ“ƒOAƒ_[ƒNƒuƒŒƒX)
-EƒXƒLƒ‹Ž©”š‚̧ŒÀ‚Ímob_skill_db.txt‚Å‚â‚ê‚΂¢‚¢‚à‚Ì‚È‚Ì‚ÅŽæ‚è–ß‚µB
-Ebattle_athena.conf‚Épet_hungry_friendly_decrease’ljÁB
-Eƒyƒbƒg‚Ì• ‚ªŠ®‘S‚ÉŒ¸‚é‚ÆŽx‰‡UŒ‚‚𒆎~‚·‚é‚悤‚É•ÏXB
-E‘®«•ÏXƒXƒLƒ‹‚ªì“®‚µ‚È‚©‚Á‚½–â‘èC³B
-Eƒƒ“ƒ^ƒ‹ƒuƒŒƒCƒJ[‚Í10+ƒXƒLƒ‹ƒŒƒxƒ‹*5%‚ÌSP‚ðŒ¸‚ç‚·B(UŒ‚‚Í’Êí•ŠíƒXƒLƒ‹UŒ‚)
-EƒŠƒbƒN‚Í•K’†‚ÅSP-100AƒXƒ^ƒ“Šm—¦ƒXƒLƒ‹ƒŒƒxƒ‹*5%B(ƒ_ƒ[ƒW‚Í–³‚µAbNoWeaponDamage‚Å–³Œø)
-Eƒvƒƒ{ƒP[ƒVƒ‡ƒ“‚̓‚[ƒVƒ‡ƒ“‚ª€”õ‚³‚ê‚Ä‚È‚¢ƒ‚ƒ“ƒXƒ^[‚Í“ü‚ê‚Ä‚à‚È‚ñ‚ÌŒø‰Ê‚à‚È‚µB
-Eƒ_[ƒNƒuƒŒƒbƒVƒ“ƒO‚Í‚©‚©‚é‚ÆHP‚ª1‚É‚È‚éB‘Ï«‚Í–‚–@–hŒä‚Å“K—pB
-Eƒ_[ƒNƒuƒŒƒX‚Í500+(ƒXƒLƒ‹ƒŒƒxƒ‹-1)*1000+rand(0,1000)‚̃_ƒ[ƒWB‰ñ”ð‚Å‚«‚邪–hŒä–³Ž‹‚Å‹ß‹——£•¨—UŒ‚‚¾‚ªƒZƒCƒtƒeƒBƒEƒH[ƒ‹‚Í–³Ž‹‚µ‚Ĉő®«UŒ‚B(–{ŽI‚ÌŒvŽZŽ®‚É‚ ‚Á‚Ä‚¢‚é‰Â”\«‚Í‚È‚¢‚©‚àB‚½‚¾ƒ_ƒ[ƒW—Ê‚Æ–½’†•â³ˆÈŠO‚Í–{ŽI‡‚킹)
-ENPCƒXƒLƒ‹‚̈ێŽžŠÔ‚Í“K“x‚ÉÝ’èB
-Eƒ‚ƒ“ƒXƒ^[‚Ì‘®«UŒ‚‚ƃKƒCƒfƒbƒhƒAƒ^ƒbƒN‚ªƒZƒCƒtƒeƒBƒEƒH[ƒ‹‚𖳎‹‚·‚é‚Æ‚Ì•ñ‚ðŽó‚¯‚½‚Ì‚Å‚·‚ªC³‚·‚é‚©‚Ç‚¤‚©‚Í‚¿‚å‚Á‚Æ”÷–­B(ƒXƒvƒ‰ƒbƒVƒ…ƒAƒ^ƒbƒN‚àƒZƒCƒtƒeƒBƒEƒH[ƒ‹–³Ž‹‚©‚à)
- (conf/)
- battle_athena.conf C³B
- (doc/)
- conf_ref.txt C³B
- (db/)
- cast_db.txt C³B
- skill_db.txt C³B
- (map/)
- mob.c
- mob_damage() C³B
- clif.h C³B
- clif.c
- clif_skill_estimation()Aclif_damage()Aclif_skill_damage() C³B
- clif_skill_damage2()Aclif_pet_performance() C³B
- pet.c
- pet_performance()Apet_target_check()Apet_hungry() C³B
- skill.h C³B
- skill.c
- skill_additional_effect()Askill_castend_damage_id() C³B
- skill_castend_nodamage_id()Askill_status_change_start() C³B
- battle.h C³B
- battle.c
- battle_get_def()Abattle_get_mdef()Abattle_calc_damage() C³B
- battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
- battle_calc_pc_weapon_attack()Abattle_config_read() C³B
-
---------------------
-//0849 by lapis
-
-EŠX’†‚̃eƒXƒgƒMƒ‹ƒhƒtƒ‰ƒO‚Ì•\Ž¦‚ª‚¨‚©‚µ‚©‚Á‚½‚Ì‚ðC³B
-EƒMƒ‹ƒhƒƒ“ƒo[‚ÍŠø‚©‚çƒAƒWƒg‚É”ò‚ׂé‚悤‚ÉC³B
- (conf/gvg)
- TEST_prtg_cas01_AbraiJ.txt C³B
-
---------------------
-//0848 by huge
-
-EƒXƒLƒ‹Ž©”š‚ðAHP‚ª‘S‰ñ•œ‚µ‚Ä‚¢‚鎞‚ÍŽg‚¦‚È‚¢‚悤C³B
-EƒXƒtƒBƒAƒ}ƒCƒ“EƒoƒCƒIƒvƒ‰ƒ“ƒgEEEƒ^[ƒQƒbƒg•ÏX‚Å‚«‚È‚¢...B
-Emob‚Ƀ^[ƒQƒbƒg–³Ž‹ID‚ðÝ’è‚Å‚«‚é‚悤‚É‚µ‚Ü‚µ‚½B(Gv—pmob‚ÉŽg‚¦‚éH)
- (map/)
- map.h C³B
- mob_data‚É int exclusion_src,exclusion_party,exclusion_guild ’ljÁB
- mob.h C³B
- mob.c
- mob_exclusion_add() ’ljÁB
- mob_exclusion_check() ’ljÁB
- mob_timer_delete() ’ljÁB
- mob_attack() C³B
- mob_target() C³B
- mob_ai_sub_hard_activesearch() C³B
- mob_ai_sub_hard_mastersearch() C³B
- mob_ai_sub_hard() C³B
- skill.c
- skill_castend_damage_id() C³B
- skill_castend_pos2() C³B
-
---------------------
-//0847 by Ž€_
-
-E˜I“XƒoƒOC³B
- (map/)
- clif.c
- clif_vendinglist()Aclif_openvending() C³B
- vending.c
- vending_openvending() C³B
- skill.c
- skill_castend_nodamage_id() C³B
-
---------------------
-//0846 by Ž€_
-
-EƒoƒOC³‚Æׂ©‚¢C³B
-Ebattle_athena.conf‚Ìenemy_str‚ªƒyƒbƒg‚É‚à“K—p‚·‚é‚悤‚É•ÏXB
-EbHPDrainRate‚ÆbSPDrainRate‚Åx‚ªƒ}ƒCƒiƒX‚Å‚àì“®‚·‚é‚悤‚É•ÏXB
-EPC‚âNPC‚ÌŽp‚ð‚µ‚½ƒ‚ƒ“ƒXƒ^[‚àŽ€‚Ê‚Æ5•bŒãƒ}ƒbƒv‚©‚çÁ‚¦‚é‚悤‚É•ÏXB
- (map/)
- battle.c
- battle_calc_pet_weapon_attack()Abattle_weapon_attack() C³B
- skill.c
- skill_attack()Askill_castend_damage_id() C³B
- pc.c
- pc_allskillup() C³B
- clif.h C³B
- clif.c
- clif_openvending()Ado_init_clif() C³B
- clif_clearchar_delay()Aclif_clearchar_delay_sub() ’ljÁB
- mob.c
- mob_damage() C³B
-
---------------------
-//0845 by ‚Û‚Û‚Û
-
-Emob_avail.txt‚ÅPCƒOƒ‰ƒtƒBƒbƒN(0`23)‚ðŽw’肵‚½ƒyƒbƒg‚ªoŒ»‚µ‚½‚Æ‚«ƒNƒ‰ƒCƒAƒ“ƒgƒGƒ‰[‚ª‚Å‚é‚Ì‚ðŽb’èC³B
-Emob_avail.txt‚Ńyƒbƒg‚É‚àPCƒLƒƒƒ‰‚Ì«•ÊE”¯Œ^&FE•ŠíE‚E“ª‘•”õ‚ðŽw’è‚Å‚«‚é‚悤‚É‚µ‚Ü‚µ‚½B
-EMOB‚ÌATKŒvŽZ‚ÉSTR‚ð“K—p‚·‚é‚©‚Ç‚¤‚©Ý’è‰Â”\‚É‚µ‚½B
- (map/)
- clif.c
- clif_pet0078()Aclif_pet007b()Aclif_spawnpet()C³B
- battle.hC³B
- battle.c
- battle_config_read()Abattle_calc_mob_weapon_attack()C³B
-
---------------------
-//0844 by ‚Û‚Û‚Û
-
-Emob_avail.txt‚ÅPCƒOƒ‰ƒtƒBƒbƒN(0`23)‚ðŽw’肵‚½MOB‚ªoŒ»‚µ‚½‚Æ‚«ƒNƒ‰ƒCƒAƒ“ƒgƒGƒ‰[‚ª‚Å‚é‚Ì‚ðŽb’èC³B
-Emob_avail.txt‚ÅPCƒLƒƒƒ‰‚Ì«•ÊE”¯Œ^&FE•ŠíE‚E“ª‘•”õ‚ðŽw’è‚Å‚«‚é‚悤‚É‚µ‚Ü‚µ‚½B
-@ƒOƒ‰ƒtƒBƒbƒN‚·‚è‘Ö‚¦æID‚ª0`23‚ÌŽž‚¾‚¯—LŒø‚ÅAŽw’è•û–@‚Í
- MOB-ID,ƒOƒ‰ƒtƒBƒbƒN‚·‚è‘Ö‚¦æID,«•Ê(0=female,1=male),”¯Œ^,”¯F,•Ší,‚,ã’i“ª‘•”õ,’†’i“ª‘•”õ,‰º’i“ª‘•”õ
-@‚Æ‚È‚è‚Ü‚·B‘•”õ‚Íitem_db‚ÌView—“ŽQÆ‚Ì‚±‚ÆB
- (map/)
- clif.c
- clif_mob_0078()Aclif_mob007b()Aclif_spawnmob()C³B
- mob.hC³B
- mob.c
- mob_get_sex()Amob_get_hair()Amob_get_hair_color()Aob_get_weapon()A
- mob_get_shield()Amob_get_head_top()Amob_get_head_mid()Amob_get_head_buttom()’ljÁB
- mob_readdb()Amob_readdb_mobavail()C³B
-
---------------------
-//0843 by Ž€_
-
-EƒŠƒtƒŒƒNƒgƒV[ƒ‹ƒhŽÀ‘•B
-EƒAƒCƒeƒ€ƒXƒNƒŠƒvƒg‚ÉbShortWeaponDamageReturn‚Æ
-bLongWeaponDamageReturn ’ljÁB
-E‚»‚Ì‘¼ƒXƒLƒ‹ŠÖŒW‚⑼‚ÌŠC³B
- (db/)
- item_db.txt C³B
- skill_db.txt C³B
- cast_db.txt C³B
- const.txt C³B
- (doc/)
- item_bonus.txt C³B
- (map/)
- map.h C³B
- battle.c
- battle_get_def()Abattle_get_def2()Abattle_calc_pet_weapon_attack() C³B
- battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
- battle_weapon_attack()Abattle_calc_magic_attack() C³B
- pc.c
- pc_calcstatus()Apc_bonus()Apc_bonus2()Apc_equipitem() C³B
- pc_unequipitem()Apc_checkallowskill() C³B
- skill.c
- skill_attack()Askill_unit_onplace()Askill_status_change_start() C³B
- skill_status_change_end()Askill_status_change_timer() C³B
- skill_castend_nodamage_id() C³B
- clif.c
- clif_additem()Aclif_equiplist()Aclif_storageequiplist() C³B
- clif_tradeadditem()Aclif_storageitemadded()Aclif_cart_additem() C³B
- clif_cart_equiplist()Aclif_vendinglist()Aclif_openvending() C³B
- clif_damage()Aclif_skill_damage()Aclif_parse_LoadEndAck() C³B
-
---------------------
-//0842 by Ž€_
-
-EƒXƒLƒ‹ŠÖŒW‚ÌC³‚Æׂ©‚¢C³B
-EaegisŽI‚ÅFX‚ÆŒŸØ‚µ‚½•¨‚ð“K—pB
-EƒƒeƒI‚͈̔͂ð7*7ALoV13*13ASG11*11AFN5*5‚ÉC³B
-EƒVƒOƒiƒ€ŽÀ‘•B(‚½‚¾PVP‚ŃvƒŒƒCƒ„[‚É‚©‚©‚é‚©‚Ç‚¤‚©‚ª‚í‚©‚ç‚È‚©‚Á‚½‚Ì‚Å
-‚©‚©‚é•ûŒü‚ÅŽÀ‘•B)‚±‚ê‚Å1ŽŸE‹Æ‚̃XƒLƒ‹‚̓NƒŠƒA‚©‚à...
-E‘•”õƒXƒNƒŠƒvƒg‚ÉbHPDrainRate‚ÆbSPDrainRate’ljÁB
-E‚»‚Ì‘¼×‚©‚¢C³­‚µB
- (doc/)
- item_bonus.txt C³B
- (db/)
- cast_db.txt C³B
- item_db.txt C³B
- const.txt C³B
- (map/)
- map.h C³B
- skill.c
- skill_castend_damage_id()Askill_castend_nodamage_id() C³B
- skill_unitsetting()Askill_castend_pos2()Askill_castend_id() C³B
- skill_status_change_start()Askill_status_change_timer() C³B
- skill_status_change_end()Askill_unit_onplace() C³B
- skill_frostjoke_scream()Askill_attack() C³B
- skill_attack_area() ’ljÁB
- battle.c
- battle_calc_magic_attack()Abattle_get_element()Abattle_get_def() C³B
- battle_get_def2()Abattle_get_mdef()Abattle_damage() C³B
- battle_calc_damage()Abattle_calc_pet_weapon_attack() C³B
- battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
- battle_weapon_attack() C³B
- mob.c
- mobskill_castend_id() C³B
- pc.c
- pc_calcstatus()Apc_bonus2()Apc_attack_timer() C³B
- clif.c
- clif_spawnmob()Aclif_spawnpet()Aclif_spawnnpc() C³B
- clif_parse_ActionRequest() C³B
-
---------------------
-//0841 by Kalen
-
-E…—n‰t‚ªì‚ê‚È‚©‚Á‚½‚̂ŒljÁ
- conf/npc/npc_job_magician.txt
-
---------------------
-//0840 by Kalen
-
-E‹SƒCƒxƒ“ƒg’ljÁ
- conf/npc/npc_event_oni.txt
-
-Emap_athena.confC³(ƒoƒŒƒ“ƒ^ƒCƒ“ƒRƒƒ“ƒgƒAƒEƒgB‹S’ljÁ)
- conf/map_athena.conf
-
---------------------
-//0839 by shuto
-
-EƒRƒ“ƒƒ“NPC’ljÁ(ƒJƒ“ ƒ\ƒ“ƒ\ƒ“‚ª”²‚¯‚Ä‚½)
-
---------------------
-//0838 by Ž€_
-
-EƒXƒLƒ‹ƒTƒCƒgƒ‰ƒbƒVƒƒ[ŽÀ‘•B
-Eƒ‚ƒ“ƒXƒ^[‚̃Nƒ[ƒLƒ“ƒO‚ƃ}ƒLƒVƒ}ƒCƒYƒpƒ[‚ÍŽ‘±ŽžŠÔ‚ðƒŒƒxƒ‹*5•b‚É•ÏXB
-E‚»‚Ì‘¼×‚©‚¢ƒoƒOC³B
- (db/)
- skill_db.txt C³B
- (map/)
- skill.c
- skill_castend_damage_id()Askill_castend_nodamage_id() C³B
- skill_castend_pos2()Askill_unitsetting()Askill_get_unit_id() C³B
- skill_status_change_start() C³B
- battle.c
- battle_calc_magic_attack() C³B
-
---------------------
-//0837 by Ž€_
-
-EƒXƒLƒ‹ŠÖŒW‚Ìׂ©‚¢C³B
-EƒtƒƒXƒgƒmƒ”ƒ@‚ðƒ†ƒjƒbƒgÝ’uŽ®‚É•ÏXB
-Eƒ[ƒhƒIƒuƒ”ƒ@[ƒ~ƒŠƒIƒ“‚͈̔͂ð11*11‚ÉC³‚Æ40ƒqƒbƒg‚·‚é‚悤‚É•ÏXB(ƒ‰ƒOƒiƒQ[ƒg‚Ìî•ñB
-13*13à‚à‚ ‚è‚Ü‚·‚ª...)
-Eƒ†ƒsƒeƒ‹ƒTƒ“ƒ_[‚̃mƒbƒNƒoƒbƒN‚ð2~7‚É•ÏXB
-EƒXƒg[ƒ€ƒKƒXƒg‚ÌUŒ‚‰ñ”‚ðƒŒƒxƒ‹ˆË‘¶‚©‚ç10‰ñ‚ɌŒèB
-EƒTƒ“ƒNƒ`ƒ…ƒAƒŠ‚̃mƒbƒNƒoƒbƒN‚ð3‚©‚ç2‚É•ÏXB(aegisŽI‚ŃmƒbƒNƒoƒbƒN‚ª‚ ‚邱‚Æ‚ÍŠm”F‚µ‚Ü‚µ‚½‚ª‚Ç‚ê‚®‚ç‚¢‚È‚Ì‚©‚ª•s–¾‚¾‚Á‚½‚Ì‚Å­‚µŒ¸‚炵‚Ä‚Ý‚Ü‚µ‚½B)
-Eƒ‚ƒ“ƒXƒ^[‚̉r¥ŽžŠÔ‚ª‘‚­‚È‚Á‚Ä‚¢‚½–â‘èC³B(dex•â³‚ª“ü‚Á‚Ä‚µ‚Ü‚Á‚½‚¹‚¢‚Å‚·B)
-E‚»‚Ì‘¼ƒI[ƒgƒXƒyƒ‹“–‚½‚è‚Ìׂ©‚¢C³B
- (db/)
- skill_db.txt C³B
- (map/)
- skill.c
- skill_castfix()Askill_delayfix()Askill_timerskill() C³B
- skill_castend_pos2()Askill_unitsetting()Askill_castend_damage_id() C³B
- skill_castend_nodamage_id()Askill_get_unit_id()Askill_attack() C³B
- battle.c
- battle_calc_magic_attack()Abattle_weapon_attack() C³B
-
---------------------
-//0836 by Žß‘¸
-
-Eƒ‚ƒ“ƒXƒ^[‚ÌŽæ‚芪‚«¢ŠÒ‚ÌŠÔŠu‚𒆃{ƒXˆÈŠOŠ®‘SC³B
- (db/)
- mob_skill_db.txt C³B
-
---------------------
-//0835 by (“Ê)
-
-E”’nŽæ‚è‚Ń|[ƒY‚ð‚Æ‚é‚悤‚É‚µ‚½B
-(ƒ|[ƒY‚¾‚¯‚È‚Ì‚ÅAŽÀÛ‚ÉUŒ‚‚ðŽó‚¯Ž~‚ß‚½‚è‚Í‚Å‚«‚Ü‚¹‚ñ)
-clif_bladestop()‚ðŒÄ‚Ô‚±‚Æ‚Å”’nŽæ‚èó‘Ô‚ÌONAOFF‚̃pƒPƒbƒg‚ª‘—‚ê‚Ü‚·B
-
- (map/)
- clif.h C³B
- clif,c
- clif_bladestop() ’ljÁ
- skill.c
- skill_castend_nodamage_id() C³B
-
---------------------
-//0834 by Žß‘¸
-
-Eƒ‚ƒ“ƒXƒ^[Žæ‚芪‚«¢ŠÒ‚ÌŠÔŠu‚ª’Z‚·‚¬‚é‚Æ‚ÌŽ–‚ʼnž‹}ˆ’uB(¡‰ñ‚͉©‹à峂̂Ý)
- (db/)
- mob_skill_db.txt C³B
-
---------------------
-//0833 by (“Ê)
-
-Ememo‹ÖŽ~’nˆæ‚Å/memoŽž‚ÌC³B
-E‚‚¢‚Å‚Éitem_db‚ðXVB
-
- (doc/)
- client_packet.txt
- R 0189 XVB
- (db/)
- item_db.txt ÅV”Å‚ÖXVB
- (map/)
- pc.c
- pc_memo() C³B
-
---------------------
-//0832 by Ž€_
-
-EƒR[ƒhÅ“K‰»‚Æׂ©‚¢C³B
-EƒI[ƒgƒXƒyƒ‹‚ð’n–Ê–‚–@‚ɑΉžB
-EƒTƒ“ƒ_[ƒXƒg[ƒ€‚ƃwƒ”ƒ“ƒYƒhƒ‰ƒCƒu‚ðƒ†ƒjƒbƒgÝ’uŽ®‚É•ÏXB
-EƒfƒBƒtƒFƒ“ƒ_[‚ÌUŒ‚‘¬“x’ቺ‚ð–{ŽI‚É‚ ‚킹B
-E‚»‚Ì‘¼×‚©‚¢C³B
- (doc/)
- item_bonus.txt C³B
- (db/)
- skill_require_db.txt C³B
- cast_db.txt C³B
- (map/)
- map.h C³B
- path.c
- calc_index()Apath_search() C³B
- skill.c
- skill_unitsetting()Askill_castend_pos2()Askill_get_unit_id() C³B
- skill_status_change_timer_sub()Askill_castend_nodamage_id() C³B
- skill_additional_effect()Askill_frostjoke_scream() C³B
- pc.c
- pc_calcstatus()Apc_skill()Apc_allskillup() C³B
- battle.c
- battle_get_speed()Abattle_get_adelay()Abattle_get_amotion() C³B
- battle_weapon_attack() C³B
-
---------------------
-//0831 by Ž€_
-
-E­‚µC³B
-EƒI[ƒgƒXƒyƒ‹C³B‘•”õ‚É‚æ‚镨‚ƃXƒLƒ‹‚É‚æ‚镨‚ð•ÊX‚É“K—pA”­“®Šm—¦C³B
-E‘•”õ‚É‚æ‚éƒI[ƒgƒXƒyƒ‹‚ÍŽw’肵‚½ƒŒƒxƒ‹‚æ‚è2‚‰º‚Ü‚Å”»’è‚ð‚µ‚Ü‚·B‚‚܂背ƒxƒ‹5‚ðÝ’è‚·‚é‚ƃŒƒxƒ‹3‚©‚ç5‚Ü‚Å”­“®‚µ‚Ü‚·B
-Ebattle_athana.conf‚Ìplayer_cloak_check_wallAmonster_cloak_check_wall‚ðplayer_cloak_check_typeAmonster_cloak_check_type‚É•ÏXB
-EƒAƒCƒeƒ€ƒ‹[ƒgŒ ŒÀŽžŠÔ‚ð–{ŽI‚ɇ‚킹‚ÄC³B
-E‚»‚Ì‘¼ƒXƒLƒ‹ŠÖŒW‚Ìׂ©‚¢C³B
- (doc/)
- conf_ref.txt C³B
- db_ref.txt C³B
- item_bonus.txt C³B
- (conf/)
- battle_athana.conf C³B
- (db/)
- item_db.txt C³B
- (map/)
- map.h
- map.c
- block_free_maxABL_LIST_MAX C³B
- skill.h C³B
- skill.c
- skill_additional_effect()Askill_attack()Askill_castend_damage_id() C³B
- skill_castend_nodamage_id()Askill_unit_onplace() C³B
- skill_status_change_end()Askill_status_change_start() C³B
- skill_initunitgroup()Askill_unitsetting()Askill_castfix() C³B
- skill_delayfix()Askill_autospell()Askill_use_id()Askill_use_pos() C³B
- skill_check_cloaking()Askill_unit_timer_sub()Askill_check_condition() C³B
- battle.h C³B
- battle.c
- battle_damage()Abattle_get_agi()Abattle_get_speed() C³B
- battle_get_adelay()Abattle_get_amotion()Abattle_get_flee() C³B
- battle_weapon_attack()Abattle_calc_magic_attack() C³B
- battle_config_read() C³B
- mob.c
- mob_attack()Amob_damage()Amobskill_use_id() C³B
- mobskill_use_pos()Amob_spawn()Amob_class_change() C³B
- mob_can_move() C³B
- pc.c
- pc_attack_timer()Apc_checkweighticon()Apc_calcstatus() C³B
- pc_damage()Apc_equipitem()Apc_unequipitem() C³B
- pc_bonus2()Apc_bonus3()Apc_memo()Apc_authok() C³B
- pc_isUseitem() C³B
- clif.h C³B
- clif.c
- clif_changeoption()Aclif_parse_LoadEndAck()Aclif_autospell() C³B
- clif_skill_memo() C³B
- clif_skill_teleportmessage() ’ljÁB
- script.c
- buildin_sc_start() C³B
- atcommnad.c
- atcommand() C³B
-
---------------------
-//0830 by huge
-
-EƒI[ƒgƒXƒyƒ‹‚ÅAŽ©•ª‚ÌK“¾‚µ‚Ă郌ƒxƒ‹‚æ‚è‚à‚‚¢ƒŒƒxƒ‹‚Å
- –‚–@‚ª”­“®‚µ‚Ä‚¢‚½‚Å‚ ‚낤–â‘è‚ðC³B
-EƒI[ƒgƒXƒyƒ‹‚Å‚àA‚¿‚á‚ñ‚ÆSP‚ªŒ¸‚é‚悤‚ÉC³(‚Ç–Y‚ê)
- (map/)
- battle.c
- battle_weapon_attack() C³B
- skill.c
- skill_autospell() C³B
-
---------------------
-//0829 by Kalen
-
-Emob_dbC³
- Ž©ŽI—p‚Ì‚ÆŠÔˆá‚Á‚ÄUP‚µ‚Ä‚µ‚Ü‚Á‚½‚悤‚Å‚·B
- –{—ˆ‚Ì‚à‚Ì‚É’¼‚µ‚Ü‚µ‚½B
-
---------------------
-//0828 by ¹
-
-EƒT[ƒo‚ÌSnapshot
-EMVPƒ{ƒXŒn‚©‚çƒoƒJƒ“ƒXƒ`ƒPƒbƒg‚ª‘å—Ê‚Éo‚Ä‚¢‚½–â‘è‚ðC³B
- (common/)
- version.h C³B
- (db/)
- mob_db.txt C³B
-
---------------------
-//0827 by J
-
-EŒÅ’èMOB‚Ì‚Í‚¸‚̃ƒKƒŠƒX‚Æl–Ê“Ž÷‚ª•à‚¢‚Ä‚¢‚½‚Ì‚ðC³B
-E“¬‹Zê‚ÌMOB‚ɃXƒLƒ‹‚ðŽÀ‘•B
-EƒpƒTƒi‚ƃtƒ@ƒ‰ƒI‚ªƒXƒLƒ‹‚ªÝ’肳‚ê‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ðŽÀ‘•B
- (db/)
- mob_db.txt C³B
- mob_skill_db.txt C³B
-
---------------------
-//0826 by ‚Ò‚´‚Ü‚ñ
-
-Eˆê•”‚̉‰‘tƒXƒLƒ‹‚ðŽg‚¤‚ÆŽI‚ª—Ž‚¿‚éƒoƒOC³B
-EƒNƒ[ƒLƒ“ƒO’†‚ɃXƒLƒ‹‚ðŽg—p‚Å‚«A
-@Žg—p‚·‚é‚ƃNƒ[ƒLƒ“ƒO‚ª‰ðœ‚³‚ê‚é‚悤‚ÉC³B
-EKalen‚³‚ñ‚Ìmob_db.txt‚ð‚Ü‚Æ‚ß‚Ü‚µ‚½B
- (map/)
- skill.c
- skill_unit_onplace()Askill_unit_onout() C³B
- skill_status_change_start()Askill_status_change_timer() C³B
- skill_use_id()Askill_use_pos() C³B
- (db/)
- mob_db.txt C³B
-
---------------------
-//0825 by Ž€_
-
-Eׂ©‚¢C³B(ׂ©‚¢‚±‚Æ‚Ì‚í‚è‚É‚ÍC³‚µ‚½Š‚ª‘½‚¢‚¯‚Ç...)
-Eƒ[ƒvƒ|[ƒ^ƒ‹‚Ì’†‚ÉŽ~‚Ü‚Á‚½ŽžˆÈŠO‚̓[ƒv‚µ‚È‚¢‚悤‚ÉC³B
-Ebattle_athena.conf‚Éplayer_skill_nofootsetAmonster_skill_nofootset ’ljÁB
-ENPC‚ðƒNƒŠƒbƒN‚µ‚½Œã˜I“X‚ðƒNƒŠƒbƒN‚µ‚ĘI“X‚ð•Â‚¶‚é‚Æ“®‚¯‚È‚­‚È‚éƒoƒOC³B
-‚½‚¾˜I“X‚ð•Â‚¶‚鎞‰½‚̃pƒPƒbƒg‚à“]‘—‚µ‚Ä‚±‚È‚¢‚̂ŘI“X‚ðƒNƒŠƒbƒN‚·‚é‚ÆNPC‚̈—‚©‚甲‚¯‚é‚悤‚É‚µ‚Ü‚µ‚½B(–{ŽI‚Å‚ÍNPC‚̈—‚ª”²‚¯‚È‚¢‚炵‚¢‚Å‚·‚ª‚»‚êˆÈŠO•û–@‚ª‚È‚©‚Á‚½‚Ì‚Á‚ÅB)
-Ekillmonster‚ÌAll‚Å¢Š«‚³‚ꂽƒ‚ƒ“ƒXƒ^[‚¾‚¯Á‚·‚悤‚É•ÏXB
-Eƒ\[ƒXÅ“K‰»‚âƒXƒLƒ‹ŠÖŒW‚Ìׂ©‚¢C³‘½”B
- (doc/)
- conf_ref.txt C³B
- db_ref.txt C³B
- (conf/)
- battle_athana.conf C³B
- atcommnad_athena.conf C³B
- (db/)
- item_db.txt C³B
- skill_db.txt C³B
- (login/)
- parse_fromchar() C³B
- (map/)
- map.h C³B
- clif.c
- clif_closevendingboard()Aclif_parse_VendingListReq() C³B
- clif_mob0078()Aclif_mob007b()Aclif_pet0078()Aclif_pet007b() C³B
- skill.h C³B
- skill.c
- skill_check_condition()Askill_castend_pos2() C³B
- skill_castend_damage_id()Askill_castend_nodamage_id() C³B
- skill_castend_id()Askill_status_change_start()Askill_castfix() C³B
- skill_delayfix()Askill_check_unit_range_sub() C³B
- skill_check_unit_range()Askill_castend_pos()Askill_stop_dancing() C³B
- skill_unit_onplace()Askill_readdb()Askill_timerskill()Askill_blown() C³B
- skill_check_unit_range2_sub()Askill_check_unit_range2() ’ljÁB
- skill_get_maxcount() ’ljÁB
- mob.c
- mobskill_castend_id()Amobskill_castend_pos()Amob_deleteslave() C³B
- mob_stop_walking()Amob_walk()Amob_damage() C³B
- pc.c
- pc_calcstatus()Apc_checkskill()Apc_stop_walking() C³B
- pc_walk()Apc_damage() C³B
- npc.c
- npc_touch_areanpc() C³B
- pet.c
- pet_stop_walking() C³B
- script.c
- buildin_killmonster()Abuildin_killmonster_sub() C³B
- battle.h
- battle.c
- battle_calc_magic_attack()Abattle_get_flee()Abattle_get_flee2() C³B
- battle_get_adelay()Abattle_get_amotion()Abattle_get_max_hp() C³B
- battle_get_hit()Abattle_get_critical()Abattle_get_atk2() C³B
- battle_damage()Abattle_config_read() C³B
- atcommand.h C³B
- atcommand.c C³B
-
---------------------
-//0824 by ‚Ò‚´‚Ü‚ñ
-
-EƒZƒCƒtƒeƒBƒEƒH[ƒ‹Eƒjƒ…[ƒ}‚Ì‘«Œ³’u‚«‚ª‚Å‚«‚È‚©‚Á‚½–â‘èC³B
-EƒGƒ“ƒyƒŠƒEƒ€‚Ƀq[ƒ‹“™‚ÌŽx‰‡ƒXƒLƒ‹‚ªŒø‚¢‚Ä‚¢‚½–â‘èC³B
-E“¬‹Zê‚Ń‚ƒ“ƒXƒ^[ƒŠƒZƒbƒg‚ª‚Å‚«‚È‚©‚Á‚½–â‘èC³B
-@killmonster‚Í"killmonster <mapname>,<eventname>"‚Æ‹Lq‚µ‚Ä
-@ŠY“–eventname‚ðŽ‚ƒ‚ƒ“ƒXƒ^[‚ð휂µ‚Ü‚·‚ª
-@eventname‚ÉAll‚Æ“ü‚ê‚é‚ÆŠY“–MAP‚Ì‘Sƒ‚ƒ“ƒXƒ^[‚ðÁ‹Ž‚·‚é‚悤‚É‚µ‚Ü‚µ‚½B
-
- (map/)
- skill.c
- skill_check_unit_range_sub()Askill_castend_nodamage_id() C³B
- script.c
- buildin_killmonster()Abuildin_killmonster_sub() C³B
- (conf/npc/)
- npc_event_tougijou.txt C³B
-
---------------------
-//0823 by Kalen
-
-E“¬‹Zêƒf[ƒ^‘µ‚Á‚½‚Ì‚ÅAŠ®¬
- conf/npc/npc_event_tougijou.txt
- ‚½‚¾‚µA‚±‚¿‚ç‚Ń`ƒFƒbƒN‚µ‚½‚Æ‚±‚ëkillmonster‚ª‚¤‚Ü‚­‚¢‚©‚¸A
- Ž¸”sAŽžŠÔ؂ꂵ‚½ê‡ƒ‚ƒ“ƒXƒ^[ƒŠƒZƒbƒg‚ªo—ˆ‚Ü‚¹‚ñB
- ƒCƒxƒ“ƒg‚ªÝ’肳‚ê‚Ä‚¢‚郂ƒ“ƒXƒ^[‚͈—‚Å‚«‚È‚¢‚Ì‚©‚ÆŽv‚¢‚Ü‚µ‚½‚ª
- Agit‚Ì‚Ù‚¤‚̃Gƒ“ƒy‚ÌKillmonster‚Í‚¿‚á‚ñ‚Æ“®‚¢‚Ä‚Ü‚·‚µc
- Œ´ˆö•ª‚©‚é•û‚¨Šè‚¢‚µ‚Ü‚·<(_ _)>
-
-Egon_test‚Ìmapflag’ljÁ
- conf/mapflag.txt
-
-Emob_dbXV
- 1419`1491‚ªŠù‘¶‚ÌMob‚Ì’è‹`‚΂©‚è‚Ȃ̂ŒljÁ‚µ‚Ü‚¹‚ñ‚Å‚µ‚½‚ªA
- ’²‚ׂ½Š“¬‹Zê‚ÌMob‚̃f[ƒ^‚Å‚ ‚邱‚Æ‚ª•ª‚©‚è‚Ü‚µ‚½(Drop‚ð˜M‚Á‚½‚à‚Ì)
- –{ŽI‚ł͈łè‚ñ‚²‚ª•ñ‚³‚ê‚Ä‚¢‚Ü‚·B‚ªA‚±‚¿‚ç‚ÍDrop‹ó”’‚ň—‚µ‚Ü‚µ‚½B
- ƒNƒ‰ƒCƒAƒ“ƒgã‚Å‚Í“¯–¼‚Å‚µ‚½‚ªA‹æ•Ê‚Ì‚½‚ßÚ“ª‚ÉG_‚ð‚‚¯‚Ä‹æ•Ê‚µ‚Ä‚Ü‚·B
- mob_skill_db‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚µ‚½«
-
---------------------
-//0822 by ‚Ò‚´‚Ü‚ñ
-
-E‰‰‘tƒXƒLƒ‹‚ł̕Ⳃðƒ_ƒ“ƒT[‚É‚à“K—pB
-EƒTƒ“ƒNƒ`ƒ…ƒAƒŠƒoƒOC³B
-EKalen‚³‚ñ‚ÌMOBƒXƒLƒ‹ƒf[ƒ^ƒx[ƒX‚ð‚Ü‚Æ‚ß‚Æ‚«‚Ü‚µ‚½B
-
- (map/)
- skill.c
- skill_status_change_start()Askill_unit_onplace() C³B
- battle.c
- battle_get_critical()Abattle_get_hit() C³B
- pc.c
- pc_calcstatus() C³B
-
---------------------
-//0821 by huge
-
-EƒI[ƒgƒXƒyƒ‹‰¼ŽÀ‘•B
-Etimer‚Å”»’肵‚悤‚©‚Æ‚àŽv‚¢‚Ü‚µ‚½‚ªA‘•”õ‚Ì–³ŒÀƒI[ƒgƒXƒyƒ‹‚ׂ̈Ésc_[].val1‚ÅŒ©‚ă}ƒXB
-Ebonus2 bAutoSpell’ljÁBˆê‰ž‚Ç‚ñ‚ȃXƒLƒ‹‚Å‚àŽw’è‚Å‚«‚é‚悤‚É‚µ‚Ä‚Ü‚·‚ª(”Ô†‚Ískill_treeŽQÆ)
- skill_castend_damage_id‚̃^ƒCƒvˆÈŠO‚̃XƒLƒ‹‚ðŽw’肵‚È‚¢‚Å‚­‚¾‚³‚¢B
- ”­“®Šm—¦‚ÍALv1:50%ALv2:35%ALv3:15%A‚»‚êˆÈã‚Í 5%ŒÅ’è‚Å‚·B
- ‚ ‚ÆAƒXƒLƒ‹ƒŒƒxƒ‹‚àŽw’è‚Å‚«‚Ü‚·‚ªAŒÀŠE‚ð’´‚¦‚½”Žš‚ð“ü‚ê‚é‚Æ’Ä‚¿‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB
-¡‘‚«•û—áFiƒtƒ@ƒCƒAƒ{ƒ‹ƒgLv3‚ÌŽžjbonus2 bAutoSpell 19,3;
-
- (db/)
- const.txt C³B
- (map/)
- battle.c
- battle_weapon_attack() C³B
- clif.h
- clif.c
- packet_len_table C³B
- clif_autospell() ’ljÁB
- clif_parse_AutoSpell() ’ljÁB
- map.h C³B
- pc.c
- pc_bonus2() C³B
- pc_equipitem() C³B
- pc_unequipitem() C³B
- skill.h
- skill.c
- skill_castend_nodamage_id() C³B
- skill_autospell() ’ljÁB
- skill_status_change_end() C³B
- skill_status_change_start() C³B
- status_change‚̔Ԇƒe[ƒuƒ‹C³B
-
---------------------
-//0820 by ‚Ò‚´‚Ü‚ñ
-
-EƒAƒhƒŠƒu‚̃ƒbƒZ[ƒW‚ª“ü‚Á‚Ä‚È‚©‚Á‚½‚Ì‚ÅC³
-Eƒo[ƒh‚̉‰‘tƒXƒLƒ‹‚ÅŠyŠí‚Ì—ûK‚⎩ƒXƒe[ƒ^ƒX‚̕Ⳃª“ü‚Á‚Ä‚È‚©‚Á‚½‚Ì‚ðC³B
-@struct status_change‚Ìval‚ª3‚•K—v‚¾‚Á‚½‚Ì‚Å(val4‚Í—\–ñ‚³‚ê‚Ä‚½‚Á‚Û‚¢‚Ì‚Å)val5‚ð’ljÁ‚µ‚Ü‚µ‚½
- (map/)
- map.h C³B
- skill.c
- skill_status_change_start()Askill_castend_nodamage_id() C³B
- skill_castfix()Askill_delayfix() C³B
- battle.c
- battle_get_flee()Abattle_get_max_hp() C³B
- battle_get_adelay()Abattle_get_amotion() C³B
- battle_calc_misc_attack() C³B
- pc.c
- pc_calcstatus() C³B
-
---------------------
-//0819 by Kalen
-
-EƒRƒ“ƒƒ“(NPCAWarp)C³
- conf/npc/npc_town_gonryun.txt(ˆÄ“àˆõ•â[)
- conf/npc/npc_event_tougijou.txt
- conf/warp/npc_warp_gonryun.txt(h2F‚ÆD2F‚È‚Ç)
-
-EMOBC³
- conf/mob/npc_monster30.txt(ˆê”½–Ø–È•s‘«’ljÁ)
- conf/mob/npc_monster35.txt(ƒRƒ“ƒƒ“Mob’ljÁ)
-
-EDBC³
- db/mob_db.txt(ƒRƒ“ƒƒ“[‘S‚Ä]+ƒEƒ“ƒoƒ‰[’è‹`]’ljÁBAspeed“™“K“–‚Å‚·B‚Ü‚Ÿ–³‚¢‚æ‚è‚Ü‚µ‚Æ‚¢‚¤‚±‚Æ‚Å)
- db/mob_skill_db.txt(î•ñ‚ðŒ³‚ÉƒRƒ“ƒƒ“‚ÌMob•ª’ljÁ)
- db/item_db.txt(Athena DB Project 2/19 21:10DL•ª)
-
---------------------
-//0818 by ‚ ‚ä‚Ý
-
-EƒeƒŒƒ|[ƒgƒXƒLƒ‹Lv1‚ÅA‘I‘ðƒEƒCƒ“ƒhƒE‚ªo‚Ä‚±‚È‚¢ƒoƒO‚ðC³B
-Ed—Ê‚ª90“ˆÈã‚ÌꇂłàAˆê•”‚̃XƒLƒ‹‚ªŽg—p‰Â”\‚¾‚Á‚½ƒoƒO‚ðC³B
-E@allskillƒRƒ}ƒ“ƒh‚ÌC³‚Æ‚©B
-
- (conf/)
- msg_athena.conf C³B
- (map/)
- atcommand.c
- atcommand() C³B
- pc.c
- pc_allskillup() C³B
- skill.c
- skill_castend_nodamage_id() C³B
- skill_check_condition() C³B
-
---------------------
-//0817 by huge
-
-EƒfƒBƒ{[ƒVƒ‡ƒ“‚̈—C³
- EŽ…‚Ìo‚µ•û‚̓pƒP‚ð–á‚Á‚½‚Ì‚Å‚Å‚«‚Ü‚µ‚½‚ªAƒAƒCƒRƒ“‚Ì•û‚Í‚Ü‚¾•ª‚©‚ç‚È‚¢‚Å‚·B
- E‚ ‚ÆAŽ©•ª‚̊‹«‚Å2lˆÈã‚É“¯Žž‚ÉŠ|‚¯‚ê‚È‚©‚Á‚½‚Ì‚ÅA•¡”l‚É‚©‚¯‚½ê‡
- ‘½•ª0‚Ì—…—ñ‚ÌŠ‚É2l–ÚA3l–ÚEEE‚ÌID‚ª“ü‚é‚ñ‚¶‚á‚È‚¢‚©‚È‚Ÿ‚Æ‚¢‚¤—\‘ª‚Å‚â‚Á‚Ä‚Ü‚·B
-EƒnƒCƒfƒBƒ“ƒO’†A‹y‚уNƒ[ƒLƒ“ƒO’†‚Ƀ_ƒ[ƒW‚ðŽó‚¯‚é‚Æ‰ð‚¯‚é‚悤C³B
-
- (map/)
- battle.c
- battle_damage() C³B
- clif.c
- clif_devotion() C³B
- pc.c
- pc_walk() C³B
- skill.c
- skill.h
- skill_castend_nodamage_id() C³B
- skill_devotion() skill_devotion2() C³B
- skill_devotion3()skill_devotion_end() C³B
-
---------------------
-//0816 by ‚Ò‚´‚Ü‚ñ
-Eƒtƒ@ƒCƒA[ƒEƒH[ƒ‹3–‡§ŒÀŽÀ‘•B
-Ed‚Ë’u‚«‹ÖŽ~‚ðƒvƒŒƒCƒ„[Eƒ‚ƒ“ƒXƒ^[‚É‚à“K—p‚·‚é‚悤‚ÉC³B
-EŠ¦‚¢ƒWƒ‡[ƒNEƒXƒNƒŠ[ƒ€‚ÌPvPEGvG‚ÅAŒø‰Ê‚ªŽ©•ª‚É‚à‹y‚ÔƒoƒOC³B
-@‚‚¢‚Å‚ÉPTƒƒ“ƒo[‚É‚Í’áŠm—¦‚Å‚©‚©‚é‚Ì‚àŽÀ‘•B
-EŠ¦‚¢ƒWƒ‡[ƒNEƒXƒNƒŠ[ƒ€EƒXƒsƒAƒu[ƒƒ‰ƒ“‚̃fƒBƒŒƒCC³B
-@ƒ~ƒ…[ƒWƒJƒ‹ƒXƒgƒ‰ƒCƒNE–‚¿‚̉r¥ŽžŠÔC³B
- (map/)
- skill.c
- skill_check_condition()Askill_check_unit_range_sub() C³B
- skill_check_unit_range()Askill_delunitgroup() C³B
- skill_castend_pos2()Askill_frostjoke_scream() C³B
- map.h C³B
- (db/)
- cast_db.txt C³B
-
---------------------
-//0815 by Ž€_
-
-E0814‚̃oƒOC³‚Æׂ©‚¢C³B
-Emapflag monster_noteleportAnoreturn’ljÁ‚Ænoteleport‚ÌŽd—l•ÏXB
-noteleport‚̓vƒŒƒCƒ„[‚̃nƒG‚ƃeƒŒƒ|[ƒgAƒ[ƒvƒXƒLƒ‹‚̧ŒÀ‚ð‚·‚é‚ª’±‚ͧŒÀ‚µ‚È‚¢‚悤‚É•ÏXAmonster_noteleport‚̓‚ƒ“ƒXƒ^[‚̃eƒŒƒ|[ƒg‚ð§ŒÀ‚·‚镨‚Ånoreturn‚Í’±‚ÌŽg—p‚ð§ŒÀ‚·‚镨‚Å‚·B‚½‚¾mapflag.txt‚ÍC³‚µ‚Ä‚¢‚Ü‚¹‚ñB(noreturn‚ðÝ’è‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B)
-Ebattle_athena.conf‚Ìplayer_auto_counter_type‚Æmonster_auto_counter_type‚ªà–¾’Ê‚è‚É‹@”\‚µ‚È‚©‚Á‚½–â‘èC³B
-Ebattle_athena.conf‚Éplayer_cloak_check_wall ‚Æmonster_cloak_check_wall ’ljÁB
-Eƒ{ƒXƒ‚ƒ“ƒXƒ^[‚Ì”FŽ¯‚ðMVPŒoŒ±‚Æmode‚Ì0x20‚Ås‚È‚Á‚Ä‚¢‚½•¨‚ðmode‚¾‚¯‚É‚·‚é‚悤‚É•ÏXB(–{ŽI‚̃Cƒxƒ“ƒgƒ‚ƒ“ƒXƒ^[‚ÅMVPŒoŒ±‚ð‚­‚ê‚邪ó‘ÔˆÙí‚ÉŠ|‚©‚é‚â‚‚ª‚ ‚Á‚½‚炵‚­C³BHP‚ª1‰­‚à‚ ‚Á‚Ä“Å‚¶‚á‚È‚¢‚Æ“|‚¹‚È‚©‚Á‚½‚炵‚¢‚Ì‚Å...) ‚‚܂èMVPŒoŒ±‚ª‚ ‚Á‚Ä‚àƒ{ƒXˆµ‚¢‚Å‚Í‚È‚¢ƒ‚ƒ“ƒXƒ^[‚ðì‚邱‚Æ‚à‰Â”\‚Å‚·B
-Eó‘ÔˆÙí‚ÉŠ|‚©‚Á‚½ó‘Ô‚ÅÚ‘±Ø’f‚ª‚Å‚«‚È‚¢‚悤‚ÉC³B(‚½‚¾ƒ^ƒCƒ}[ƒ`ƒFƒbƒN‚Å‚Í‚È‚­opt1‚Æopt2‚ðƒ`ƒFƒbƒN‚·‚邾‚¯‚È‚Ì‚ÅŒ©‚½–Ú‚ª•Ï‚í‚éó‘ÔˆÙ킾‚¯‚É“K—p‚³‚ê‚Ü‚·B)
-E¡‚³‚ç‚Å‚·‚ªÌ‚ÌyareCVS(2003”N9ŒŽƒo[ƒWƒ‡ƒ“)‚Å“K—p‚³‚ê‚Ä‚¢‚½ƒ‰ƒO‚ðŒ¸‚ç‚·ˆ×‚̈—‚ð“ü‚ê‚Ä‚Ý‚Ü‚µ‚½B‚Ç‚ñ‚ÈŒø‰Ê‚ª‚ ‚é‚©‚ÍŽ©•ª‚Å‚à‚í‚©‚è‚Ü‚¹‚ñB(‚½‚¾“ü‚ê‚Ä‚Ý‚½‚¾‚¯...)
-EƒV[ƒYƒ‚[ƒh‚ÆPVP‚Å‹ÖŽ~‘•”õ‚ªŠO‚³‚ê‚Ä‚àŒø‰Ê‚ªÁ‚¦‚È‚¢ƒoƒOC³B
-E‚»‚Ì‘¼×‚©‚¢C³B
-E–¢ƒeƒXƒg‚Ì•¨‚à‚©‚È‚è‚ ‚è‚Ü‚·B
- (common/)
- socket.c
- connect_client()Amake_listen_port()Amake_connection() C³B
- (conf/)
- battle_athena.conf C³B
- (doc/)
- conf_ref.txt C³B
- (map/)
- battle.h C³B
- battle.c
- battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
- battle_calc_magic_attack()Abattle_config_read() C³B
- skill.c
- skill_unit_onplace()Askill_status_change_timer() C³B
- skill_castend_nodamage_id()Askill_use_id() C³B
- skill_check_unit_range_sub()Askill_timerskill() C³B
- skill_additional_effect()Askill_attack()Askill_status_change_start() C³B
- skill_check_cloaking() C³B
- clif.c
- clif_item_identify_list()Aclif_parse_QuitGame()Aclif_GM_kick() C³B
- pc.c
- pc_attack_timer()Apc_isUseitem()Apc_checkitem C³B
- mob.c
- mob_warp()Amob_walk()Amob_attack()Amob_target() C³B
- mob_ai_sub_hard_activesearch()Amob_ai_sub_hard_mastersearch() C³B
- mob_ai_sub_lazy()Amob_damage() C³B
- npc.c
- npc_parse_mapflag() C³B
- map.h C³B
-
---------------------
-//0814 by Ž€_
-
-EƒoƒOC³‚Æׂ©‚¢C³B
-Ebattle_athena.conf‚Ìplayer_auto_counter_type‚Æmonster_auto_counter_type‚ÌŽd—l‚ð•ÏXB(–{ŽI‚ł̓XƒLƒ‹”½Œ‚‚Í‚Å‚«‚È‚¢‚Ý‚½‚¢‚È‚Ì‚ÅÝ’è‚Å‚«‚é‚悤‚É•ÏXB)
-E“Å‚ÆΉ»‚É‚æ‚éHPŒ¸­‚ð–{ŽI‚ɇ‚킹‚ÄC³‚ÆŠ®‘SΉ»‚Ì‘O‚Å‚Í“®‚¯‚é‚悤‚É•ÏXB(“Å‚Í1•b‚É3+Å‘åHP‚Ì1.5%(ƒ‚ƒ“ƒXƒ^[‚Í0.5%)AΉ»‚Í5•b‚É1%) –¢ƒeƒXƒg
-EMVPŒoŒ±’l‚Í–{ŽI‚Å‚¢‚‚à“ü‚é‚悤‚É‚È‚Á‚½‚Ì‚ÅC³B
-EƒXƒeƒB[ƒ‹‚ÌŠm—¦‚ð­‚µ‰º‚°B
-Eƒ‚ƒ“ƒXƒ^[‚̃nƒCƒfƒBƒ“ƒOAƒNƒ[ƒLƒ“ƒOAƒ}ƒLƒVƒ}ƒCƒYƒpƒ[‚ª‚·‚®‚ɉ𜂳‚ê‚é–â‘èC³B(ƒ‚ƒ“ƒXƒ^[‚É‚ÍSP‚ª‚È‚¢‚¹‚¢‚Å‚·BŽæ‚芸‚¦‚¸ƒNƒ[ƒLƒ“ƒO‚̓nƒCƒfƒBƒ“ƒO‚ÌŽžŠÔ‚ð“K—p‚µ‚ă}ƒLƒVƒ}ƒCƒYƒpƒ[‚̓EƒGƒ|ƒ“ƒp[ƒtƒFƒNƒVƒ‡ƒ“‚ÌŽžŠÔ‚ð“K—p‚µ‚Ü‚·B) –¢ƒeƒXƒg
-EƒTƒ“ƒNƒ`ƒ…ƒAƒŠ‚ðl”‚©‚ç‰ñ”‚É•ÏXB
-EPVP‚ÅŽ©•ª‚̃gƒ‰ƒbƒv‚ÉUŒ‚‘ÎÛ‚É‚È‚é‚悤‚É•ÏXB
-Evitƒyƒiƒ‹ƒeƒB‚Ì“K—p‚ÅæŽZ–hŒä‚àŒ¸‚é‚悤‚É•ÏXB(–¢ƒeƒXƒg)
-E‚»‚Ì‘¼×‚©‚¢ƒoƒOC³B
- (conf/)
- battle_athena.conf
- (doc/)
- conf_ref.txt
- (db/)
- skill_db.txt
- (map/)
- map.h C³B
- script.c
- buildin_itemskill() C³B
- mob.c
- mob_can_move()Amob_ai_sub_hard()Amob_damage() C³B
- skill.c
- skill_unitsetting()Askill_unit_onplace()Askill_castend_nodamage_id() C³B
- skill_attack()Askill_status_change_start() C³B
- skill_status_change_timer()Askill_status_change_timer_sub() C³B
- skill_addtimerskill()Askill_cleartimerskill() C³B
- skill_check_unit_range_sub() C³B
- battle.c
- battle_calc_damage()Abattle_check_target() C³B
- battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
- battle_calc_pc_weapon_attack() C³B
- pc.c
- pc_steal_item() C³B
- clif.c
- clif_parse_WalkToXY()Aclif_closevendingboard() C³B
-
---------------------
-//0813 by Kalen
-EƒRƒ“ƒƒ“NPC’ljÁ
- conf/npc/npc_town_gonryun.txt(ƒNƒGƒXƒg‚Í•s–¾
- conf/npc/npc_town_kafra.txt
- conf/npc/npc_town_guide.txt
- (conf/npc/npc_event_tougijou.txt)ƒf[ƒ^•s‘«
-
-E‘SGvGMAP‚ÌMobƒf[ƒ^’ljÁ
- conf/mob/npc_monster_gvg.txt
-
-ETESTmob‚©‚çƒeƒXƒgƒMƒ‹ƒhƒtƒ‰ƒOˆÚ“®
- conf/gvg/TEST_prtg_cas01_AbraiJ.txt
-
---------------------
-//0812 by huge
-
-EƒfƒBƒ{[ƒVƒ‡ƒ“‚̉¼ŽÀ‘•
- EƒpƒPƒbƒg‚ª‘S‘R•ª‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½‚Ì‚ÅA
- ‚¢Ž…‚ào‚È‚¢‚µAƒAƒCƒRƒ“‚·‚ç•\Ž¦‚Å‚«‚Ü‚¹‚ñB
- Eƒ_ƒˆÚ“®‚¾‚¯‚ÅAƒmƒbƒNƒoƒbƒNEƒI[ƒgƒK[ƒh‚Í“K‰ž‚³‚ê‚Ü‚¹‚ñB
-
- (map/)
- clif.c
- clif.h
- clif_devotion() ’ljÁB
- skill.c
- skill_castend_nodamage_id() C³B
- skill_devotion() skill_devotion2() ’ljÁB
- skill_devotion3() skill_devotion_end() ’ljÁB
- skill_status_change_end() C³B
- skill_status_change_start() C³B
- skill_brandishspear_first() C³B
- skill_brandishspear_dir() C³B
- pc.c
- pc_authok() C³B
- pc_walk() C³B
- pc_damage() C³B
- battle.c
- battle_damage() C³B
- map.h
- map_session_data{}
- struct square dev ’ljÁB
- skill.h ‚Ìbrandish‚ðsquare‚ɉü–¼‚µA
- (common/) mmo.h ‚Ɉړ®
-
---------------------
-//0811 by ‚Ò‚´‚Ü‚ñ
-
-EUé’†‚Í’±‚ªŽg‚¦‚é‚悤‚ÉC³
-EŠ¦‚¢ƒWƒ‡[ƒNEƒXƒNƒŠ[ƒ€ŽÀ‘•(PTƒƒ“ƒo[‚É’áŠm—¦‚ʼn]X‚Í–¢ŽÀ‘•‚Å‚·)
-EGVGƒXƒNƒŠƒvƒg‚ðC³(ŽŽsöŒë‚µ‚·‚¬‚Ä‚Ç‚±‚ð‚Ç‚¤‚µ‚½‚©Šo‚¦‚Ä‚Ü‚¹‚ñc)
-@GVGƒXƒNƒŠƒvƒg‚ÉŠÖ‚µ‚Ä‚Å‚·‚ªAŠù’m‚̃oƒO‚ª‚ ‚è‚Ü‚·
-@‚»‚ê‚ÍAè—̃Mƒ‹ƒhƒ}ƒXƒ^[ˆÈŠO‚ÌPC‚ªAè—̃Mƒ‹ƒhƒ}ƒXƒ^[‚æ‚èæ‚ÉNPC‚ɘb‚µŠ|‚¯‚é‚Æ
-@ƒ}ƒbƒvƒT[ƒo‚ª—Ž‚¿‚é‚Æ‚¢‚¤‚à‚Ì‚Å‚·B
-@‚±‚ê‚ÍAgetguildmasterEgetguildname‚ðŽg—p‚µ‚Ä‚¢‚éƒXƒNƒŠƒvƒg‚·‚ׂĂɋN‚±‚蓾‚邱‚Æ‚Å‚ ‚è
-@æ‚Éè—̃Mƒ‹ƒhƒ}ƒXƒ^[ˆÈŠO‚Řb‚µŠ|‚¯‚é‚ÆAguild_search‚ª‰½ŒÌ‚©(ŠY“–ID‚̃Mƒ‹ƒh‚ª‚ ‚é‚É‚àŠÖ‚í‚炸)
-@NULL‚ð•Ô‚·Ž–‚É‹Nˆö‚µ‚Ü‚·B
-@³’¼ƒXƒNƒŠƒvƒgŠÖŒW‚Í‚æ‚­‚í‚©‚Á‚Ä‚¢‚È‚¢‚Ì‚ÅA‚±‚ê‚ÍŽ„‚Ì‹Zp‚Å‚ÍC³‚Ì‚µ‚悤‚ª‚ ‚è‚Ü‚¹‚ñB
-@Žb’è“I‚ȑΈ‚Æ‚µ‚ÄNULL‚ð•Ô‚µ‚ÄMAPŽI‚ª—Ž‚¿‚é‚­‚ç‚¢‚Ȃ當Žš—ñunullv‚ð•Ô‚·‚悤‚É‚µ‚Ü‚µ‚½B
-
- (map/)
- skill.c
- skill_frostjoke_scream() ’ljÁB
- skill_additional_effect()Askill_timerskill() C³B
- skill_castend_nodamage_id() C³B
- pc.c
- pc_isUseitem() C³B
- script.c
- buildin_getpartyname()Abuildin_getguildname() C³B
- buildin_getguildmaster() C³B
- (db/)
- cast_db.txt C³B
- (conf/gvg/)
- ev_*.txtˆÈŠO‚Ìtxt‘S‚Ä‚ðC³B
-
---------------------
-//0810 by ¹
-
-EMVP‚̈—‚ð•ÏXB(Šm—¦‚Å10000‚ª‚ ‚Á‚Ä‚àA‘¼‚̃AƒCƒeƒ€‚ào‚é‚悤‚É‚µ‚Ü‚µ‚½)
-EMVP‚Å‘•”õ‚ð“üŽè‚µ‚½ê‡AŠÓ’èÏ‚Ý‚Å“üŽè‚µ‚Ä‚¢‚½–â‘è‚ðC³B
-EƒXƒLƒ‹‰r¥’†‚ɃCƒO—t‚âŠg‘勾‚ðŽg‚¤‚ƃvƒŒ[ƒ„[‚ÌŽg—p‰Â”\‚È
-@‘SƒXƒLƒ‹‚ÌLV‚ª1‚ɌŒ肳‚ê‚Ä‚µ‚Ü‚¤–â‘è‚ðC³B
-EƒI[ƒNƒA[ƒ`ƒƒ[“™Aƒ‚ƒ“ƒXƒ^[‚É‚æ‚é㩃XƒLƒ‹‚Ì—LŒøŠúŒÀ‚ªØ‚ꂽ‚Æ‚«‚ÉA
-@Ý’u—pƒgƒ‰ƒbƒv‚ªo‚é–â‘è‚ðC³B
-EƒƒOƒCƒ“ƒGƒ‰[(ƒpƒXƒ[ƒh“ü—̓~ƒX‚âBAN“™)‚̃Gƒ‰[ƒƒbƒZ[ƒW‚ª
-@³‚µ‚­ƒNƒ‰ƒCƒAƒ“ƒg‚É’Ê’m‚³‚ê‚È‚¢–â‘è‚ðC³B
-E‚»‚Ì‘¼×‚©‚ÈC³B
- (common/)
- version.h C³B
- (login/)
- login.c
- parse_login() C³B
- parse_fromchar() C³B
- (char/)
- int_guild.c
- mapif_parse_GuildLeave() C³B
- (map/)
- itemdb.c
- itemdb_read_itemnametable() C³B
- atcommand.c
- atcommand() C³B
- skill.c
- skill_unit_timer_sub() C³B
- script.c
- buildin_itemskill() C³B
- mob.c
- mob_damage() C³B
-
---------------------
-//0809 by Kalen
-
-E“ŒŒÎéƒ[ƒvƒ|ƒCƒ“ƒgC³
-EƒAƒ}ƒcŽõŽi‰®C³
-EƒoƒOƒXƒŒ129‚Ì–â‘èC³H
-
-
---------------------
-//0808 by ‚Ò‚´‚Ü‚ñ
-
-E‘•”õ§ŒÀ‚ªãŽè‚­“®ì‚µ‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ðC³B
-Eƒ‚ƒ“ƒnƒEƒMƒ‹ƒh‚ÍGvGŠJŽnŽž‚Éì‚ç‚ê‚é‚悤‚É•ÏXB
-EGvGŠJŽnŽž‚ÉŠY“–ƒ}ƒbƒv‚É‚¢‚é‘SPC(è—̃Mƒ‹ƒhˆõˆÈŠO)‚ðƒZ[ƒuƒ|ƒCƒ“ƒg‚É–ß‚·‚悤‚ÉC³B
-Eƒ‚ƒ“ƒnƒEƒMƒ‹ƒhƒAƒWƒg‚ŃGƒ“ƒy‚ð‰ó‚·‚ÆAƒ‚ƒ“ƒnƒE‚ªÁ‚¦‚é‚悤‚ÉC³B
-@‚±‚ÌC³‚É”º‚Á‚Ämaprespawnguildid‚̈ø”‚Ìflag‚ÌŽd—l‚ð•ÏX‚µ‚Ü‚µ‚½
-@flag‚̓rƒbƒgƒtƒ‰ƒO‚É‚È‚èA
-@@1ƒrƒbƒg–ÚFè—̃Mƒ‹ƒhˆõ‚ðƒZ[ƒuƒ|ƒCƒ“ƒg‚É–ß‚·‚©
-@@2ƒrƒbƒg–ÚFè—̃Mƒ‹ƒhˆõˆÈŠO‚ðƒZ[ƒuƒ|ƒCƒ“ƒg‚É–ß‚·‚©
-@@3ƒrƒbƒg–ÚFƒGƒ“ƒyEƒK[ƒfƒBƒAƒ“ˆÈŠO‚ÌMOB‚ðÁ‚·‚©
-@‚¢‚¸‚ê‚àA0=NOA1=YES‚É‚È‚è‚Ü‚·
-
- (conf/gvg/)
- ev_agit_aldeg.txt C³B
- ev_agit_gefg.txt C³B
- ev_agit_payg.txt C³B
- ev_agit_prtg.txt C³B
- TEST_prtg_cas01_AbraiJ.txt C³B
- TEST_prtg_cas01_mob.txt C³B
- (map/)
- pc.c
- pc_checkitem() C³B
- script.c
- buildin_maprespawnguildid_sub() C³B
- buildin_maprespawnguildid() C³B
-
---------------------
-//0807 by Ž€_
-
-E0805‚ÅFD_SETSIZE‚ðC³‚·‚銂ðŠÔˆá‚Á‚½‚Ì‚ÅC³‚µ‚Ü‚µ‚½B56–¼Ž~‚܂肪Ž¡‚é‚ÆŒ¾‚¤•ÛØ‚Í‚ ‚è‚Ü‚¹‚ñ‚ª...
-Eˆê“x‚É“]‘—‚·‚éƒpƒPƒbƒg‚Ì’·‚³‚ð32768bytes‚©‚ç65536bytes‚É•ÏXB
- (common/)
- mmo.h C³B
- socket.h C³B
- socket.c C³B
-
---------------------
-//0806 by Kalen
-
-EagitƒtƒHƒ‹ƒ_¨gvgƒtƒHƒ‹ƒ_‚ÖˆÚs
- ”ˆÓŒ©‚ ‚é‚ÆŽv‚¢‚Ü‚·‚ªAjRO‚Å‚ÍUéí‚ðgvg‚ƌĂԂ±‚Æ‚ªˆê”Ê“I‚È‚Ì‚Å‚±‚¿‚ç‚É“‡‚µ‚Ü‚·B
- conf/gvg/
- ###agitƒtƒHƒ‹ƒ_‚ð휂µ‚Ä‚­‚¾‚³‚¢###@(Please delete the "agit" folder.)
- getmaster‘Ήž
-
-EƒAƒ}ƒc‚ÌŽõŽi‰®ƒoƒOC³‚Æ€–ڒljÁ(thx 114
- conf/npc/npc_town_amatsu.txt
-
-Emap_flagÄC³
- conf/map_flag.txt
- [GVGMAP]Šm‚©‚Éí‚ɃV[ƒYƒ‚[ƒh‚È‚ç–â‘è‚È‚¢‚Å‚·‚ªA휂³‚ê‚Ü‚µ‚½‚Ì‚Å
- í‚ɃV[ƒYƒ‚[ƒh‚Å‚Í‚ ‚è‚Ü‚¹‚ñB]‚Á‚ĉ𜎞(ŽžŠÔŠO)‚É‚ÍŽ}AƒeƒŒƒ|‚ªŽg‚¦‚Ü‚·
- ŽžŠÔ‘O‚ÉŽ}ŽT‚«A‚Ü‚¾ŽÀ‘•‚µ‚Ä‚Ü‚¹‚ñ‚ª•ó” ’DŽæ‚à‰Â”\‚É‚È‚é‚Ì‚ÅŽ}AƒeƒŒƒ|‚Íí‚ÉŽg—p•s‰Â‚Å–â‘è‚È‚¢‚ÆŽv‚¢‚Ü‚·B
-
-Œã‘O‰ñ‘‚«–Y‚ê‚Ü‚µ‚½‚ªAmomotaroƒCƒxƒ“ƒg‚Å‚·‚ªA‚¿‚å‚Á‚Æ•sˆÀ’è‚ȉ”\«‚ª‚ ‚è‚Ü‚·B
-Œ´ˆö‚ª‚í‚©‚ç‚È‚¢‚Ì‚Å‚·‚ªAƒ‹[ƒv‚µ‚Ä‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñBˆê‰žƒRƒƒ“ƒgƒAƒEƒg‚µ‚Ä‚ ‚è‚Ü‚·
-
---------------------
-//0805 by Ž€_
-
-E•¶Žš‰»‚¯C³B
-EƒV[ƒYƒ‚[ƒh‚ł̃eƒŒƒ|[ƒg‹ÖŽ~‚âŒÃ–Ø‚ÌŽ}Žg—p‹ÖŽ~‚̓\[ƒXƒŒƒxƒ‹‚Å
-ˆ—‚µ‚Ä‚¢‚é‚Ì‚Åmapflag.txt‚©‚çíœB(ˆö‚Ý‚Énopenalty‚àƒ\[ƒXƒŒƒxƒ‹‚Å
-ˆ—‚µ‚Ä‚¢‚Ü‚·B)
-Ebattle_athena.conf‚Ìagit_eliminate_time‚ðgvg_eliminate_time‚É•ÏXB
-E@ƒRƒ}ƒ“ƒh@GMíœB
-EFD_SETSIZE‚©cygwin‚Å64‚Éݒ肳‚ê‚Ä‚¢‚½‚Ì‚¹‚¢‚ÅÅ‘åÚ‘±l”‚ª56–¼‚ð
-‰z‚¦‚é‚ƃ}ƒbƒvŽI‚ª–³ŒÀƒ‹[ƒv‚·‚é–â‘èC³B(‚½‚¾ƒeƒXƒg‚ª‚Å‚«‚È‚©‚Á‚½•¨‚È‚Ì‚Å–{“–‚É‘åä•v‚É‚È‚Á‚½‚©‚Ç‚¤‚©‚Í•s–¾‚Å‚·B‚ ‚­‚Ü‚Å‚àŽ©•ª‚Ì—\‘ª‚É‚·‚¬‚È‚¢•¨‚Å‚·‚ª...)
-E•¶Žš‰»‚¯‚Ì‚¹‚¢‚Å‚Ç‚±‚ð‚Ç‚¤C³‚µ‚½‚©Šo‚¦‚Ä‚È‚¢‚Ì‚ÅC³‚µ‚½ƒtƒ@ƒCƒ‹‚¾‚¯B
- (conf/)
- atcommand_athena.conf
- battle_athena.conf
- mapflag.txt
- (db/)
- castle_db.txt
- (doc/)
- conf_ref.txt
- (common/)
- mmo.h
- (login/)
- login.c
- (char/)
- inter.c
- int_guild.c
- (map/)
- atcommand.h
- atcommand.c
- battle.h
- battle.c
- chrif.c
- guild.h
- guild.c
- intif.h
- intif.c
- map.h
- map.c
- mob.c
- npc.c
- npc.h
- script.c
- skill.c
- pc.c
- makefile
-
---------------------
-//0804 by Žß‘¸
-
-EƒAƒ‹ƒxƒ‹ƒ^‚Ì‚Ê‚¢‚®‚é‚݃Cƒxƒ“ƒg‚Å‚¤‚³‚¬‚Ì‚Ê‚¢‚®‚é‚Ý‚ð‚ ‚°‚é‚ƃT[ƒo[‚ª—Ž‚¿‚éƒoƒOC³
-
- (conf/npc/)
- npc_event_doll.txt C³B
-
---------------------
-//0803 by ‚Ò‚´‚Ü‚ñ
-
- GvG‚ŃGƒ“ƒyƒŠƒEƒ€•ö‰óŽžgvg_eliminate_time‚Ì’l‚ÉŠÖ‚í‚炸‘¦À‚É‘Þ‹Ž‚³‚¹‚ç‚ê‚Ä‚¢‚½ƒoƒOC³
- GvG‚̃ZƒŠƒt‚ðˆê•”C³
- interŽI‚Åcastle.txt‚ª‚È‚¢‚Æ‹N‚±‚éFX‚ȃGƒ‰[‚ðC³
- help.txt‚ðC³(@gvgstart¨@agitstart‰]X)
-
- (conf/)
- gvg/TEST_prtg_cas01_AbraiJ.txt C³B
- agit/ev_agit_prtgJ.txt C³B
- help.txt C³B
- (map/)
- int_guild.c
- inter_guild_init() C³B
-
---------------------
-//0802 by Michael_Huang
-
- Added NPC Script - 'GetGuildMaster' Command.
- (common/)
- version.h
- Mod_Version 0802
- (map/)
- script.c
- buildin_getguildmaster_sub() buildin_getguildmaster()
-
---------------------
-//0801 by Kalen
-EƒAƒ}ƒcC³
-@@ŽÀ‘•‘O‚̃f[ƒ^A”²‚¯‚Ä‚éƒf[ƒ^‚Ȃǂ𒲸‚µC³
- conf/npc/npc_town_guide.txt
- conf/npc/npc_town_amatsu.txt
- conf/npc/npc_event_momotaro.txt
- conf/npc/npc_event_alchemist.txt
- conf/mob/npc_monster35.txt
- conf/warp/npc_warp_amatsu.txt
-Emap_flagC³
- [GVGMAP]Ž}AƒeƒŒƒ|‚Íí‚ÉŽg—p•s‰Â
-EGVGŠÖŒW
- 0800‚̃Rƒ}ƒ“ƒh‚ɑΉž
-
---------------------
-//0800 by Michael_Huang
-
- Added Agit NPC Script & Command.
- Fix FreeBSD GCC compatibility.
- Attachment Agit Demo NPCs.
-
- (char/)
- int_guild.c
- mapif_guild_castle_dataload() mapif_guild_castle_datasave()
- int mapif_parse_GuildCastleDataLoad() int mapif_parse_GuildCastleDataSave()
- inter_guild_parse_frommap() inter_guildcastle_tostr() inter_guildcastle_fromstr()
- inter.c
- inter_send_packet_length[] inter_recv_packet_length[]
- (common/)
- mmo.h
- GLOBAL_REG_NUM, struct global_reg {}
- version.h
- Mod_Version 0799.
- (conf/)
- atcommand_athena.conf
- agitstart: 1,agitend: 1
- battle_athena.conf
- agit_eliminate_time: 7000
- map_athena.conf
- conf/agit/ev_agit_*.txt
- (doc/)
- conf_ref.txt
- battle_athena.cnf
- agitdb_ref.txt
- (login/)
- login.c
- parse_login()
- (map/)
- atcommand.h
- agitster, agitend
-
- atcommand.c
- @agitstart, @agitend
- battle.h
- battle_config.agit_eliminate_time
- battle.c
- battle_config_read()
- chrif.c
- chrif_changedsex() chrif_connectack()
- guild.h
- guild_agit_start() guild_agit_end() guild_agit_break()
- guild.c
- guild_read_castledb() do_init_guild()
- guild_agit_start() guild_agit_end() guild_agit_eliminate_timer() guild_agit_break()
- intif.h
- intif_guild_castle_dataload() intif_guild_castle_datasave()
- intif.c
- packet_len_table[] intif_guild_castle_dataload() intif_guild_castle_datasave()
- intif_parse_GuildCastleDataLoad() intif_parse_GuildCastleDataSave() intif_parse()
- map.h
- agit_flag
- map.c
- agit_flag
- npc.h
- npc_event_doall() npc_event_do()
- npc.c
- npc_event_do_sub() npc_event_do()
- script.c
- buildin_maprespawnguildid() buildin_agitstart() buildin_agitend()
- buildin_getcastlename() buildin_getcastledata() buildin_setcastledata()
- skill.c
- skill_unit_onplace()
- skill_gangster_count()
-
---------------------
-//0799 by ‚Ò‚´‚Ü‚ñ
-
-EGvGŽÀ‘•‚ׂ̈Éinter-mapŠÔ‚Ì’ÊMŽd—l•ÏX
-E0798‚̃Rƒ“ƒpƒCƒ‹ƒGƒ‰[C³(byƒoƒO•ñƒXƒŒ82Ž)
- (login/)
- login.c
- parse_login() C³B
- (map/)
- intif.c
- packet_len_table[] C³B
- intif_parse_GuildCastleInfo() C³B
- intif_parse_GuildCastleChange()‚ðintif_parse_GuildCastleChangeErr()‚ɉü–¼EC³B
- intif_parse() C³B
- guild.c
- guild_read_castledb() C³B
-
- (char/)
- inter.c
- inter_send_packet_length[] C³B
- int_guild.c
- inter_guildcastle_tostr() C³B
- inter_guildcastle_fromstr() C³B
- mapif_parse_GuildChangeCastle() C³B
- mapif_parse_GuildCastleInfo() C³B
- mapif_guild_castle_info() C³B
- mapif_guild_change_castle()‚ðmapif_guild_change_castle_err()‚ɉü–¼EC³B
- (common/)
- mmo.h C³B
- version.h C³B
-
---------------------
-//0798 by ŒÓ’±—–
-
-Elogin-server‚̃ƒOƒCƒ“Ž¸”sƒpƒPƒbƒg‚Ì’·‚³‚ª‚¨‚©‚µ‚©‚Á‚½‚Ì‚ðC³
-Elogin-server‚ɃAƒNƒZƒXƒRƒ“ƒgƒ[ƒ‹‹@”\’ljÁ
- Elogin_athena.cnf‚Éorder,allow,deny‚ð‹Lq‚·‚邱‚Æ‚ÅA
- IP’PˆÊ(‘O•ûˆê’v)‚ŃAƒNƒZƒX‚ð‹ÖŽ~‚·‚é‹@”\B
- EŽw’è•û–@‚Í doc/conf_ref.txt ‚ðŽQÆ
-
- (doc/)
- conf_ref.txt
- login_athena.cnf‚Ì•”•ªC³
- (login/)
- login.c
- ƒOƒ[ƒoƒ‹•Ï” access_* ’ljÁ
- parse_login()C³,check_ip()’ljÁ
-
-EƒAƒJƒEƒ“ƒg쬗pCGIƒXƒNƒŠƒvƒg’ljÁ
- EŽ©ŒÈÓ”C•Úׂȉðà–³‚µAŽ¿–₳‚ê‚Ä‚àƒXƒ‹[‚·‚é‰Â”\«—L‚è
- EƒGƒfƒBƒ^‚ÅŠJ‚¢‚½‚ç­‚µà–¾—L‚è
- ECGIÝ’u‚ÌŠî–{‚³‚¦‚í‚©‚ê‚Ζâ‘è‚È‚¢‚Í‚¸
- EƒƒbƒZ[ƒW‚͉pŒêA“ú–{Œê—¼‘Ήž
- iAccept-Language‚ªja‚È‚ç“ú–{Œê‚É•ÏŠ·‚µ‚Ü‚·j
- EŠÇ—ŽÒƒpƒXƒ[ƒh‚È‚µ‚Å“®‚­‚̂ŃZƒLƒ…ƒŠƒeƒB‚É‚Í’ˆÓ(.htaccess‚È‚Ç„§)
-
- (tool/cgi/)
- addaccount.cgi
- ƒAƒJƒEƒ“ƒg쬗pCGIB
-
-E‚»‚Ì‘¼
- (tool/)
- backup
- castle.txt‚àƒoƒbƒNƒAƒbƒv‚·‚é‚悤‚É
-
---------------------
-//0797 by Ž€_
-
-E­‚µC³B
-Ebattle_athena.conf‚Ì€–Ú•ÏXB(lootitem_time íœAitem_first_get_timeA
-item_second_get_timeAitem_third_get_timeAmvp_item_first_get_timeA
-mvp_item_second_get_timeAmvp_item_third_get_time ’ljÁB)
-EƒAƒCƒeƒ€ƒ‹[ƒgŒ ŒÀ‚𳂵‚­ŽÀ‘•BʼnUŒ‚‚Å‚Í‚È‚­—^‚¦‚½ƒ_ƒ[ƒW‚Ì
-—Ê‚É‚æ‚Á‚ÄŽû“¾Œ ŒÀ‚ð—^‚¦‚é‚悤‚É•ÏXB(ʼnŽû“¾Œ ŒÀ‚̂݃eƒXƒg)
-ƒp[ƒeƒB‚Ìꇃp[ƒeƒB‚ÌÝ’è‚ɇ‚킹‚é•K—v‚ª‚ ‚è‚Ü‚·‚ª‚Ü‚¾ƒpƒPƒbƒg‚ª
-•s–¾‚ÈŠ‚ª‚ ‚éˆ×“¯‚¶ƒp[ƒeƒB‚È‚çŽû“¾‚Å‚«‚é‚悤‚É‚È‚Á‚Ä‚¢‚Ü‚·B
-Eƒ{ƒEƒŠƒ“ƒOƒoƒbƒVƒ…‚̃oƒOC³B(‘½•ªC³‚³‚ꂽ‚Í‚¸...)
-E‘•”õƒXƒNƒŠƒvƒgbonus‚ÉbSplashRange‚ÆbSplashAddRange’ljÁB
-bSplashRange‚ÆbSplashAddRange‚Í•Ší‚Ń_ƒ[ƒW‚ð—^‚¦‚½Žž‚Ì‚Ý”­“®A’Êí‚Ì•ŠíUŒ‚ˆµ‚¢‚È‚Ì‚Å”ð‚¯‚ç‚ê‚邪(Flee2‚É‚æ‚銮‘S‰ñ”ð‚Í•s‰Â”\)ƒNƒŠ‚Ío‚È‚¢‚悤‚É‚È‚Á‚Ä‚¢‚Ä•Ší‚É‚æ‚éó‘ÔˆÙí‚Í”­¶‚µ‚Ü‚¹‚ñB–{ŽIŽd—l‚È‚ñ‚Ä’m‚è‚Ü‚¹‚ñB
-EƒXƒLƒ‹‚Ìd‚Ë’u‚«ˆ—‚ð–{ŽI‚ɇ‚킹‚ÄC³B
-Emapflag‚Ìgvg‚Í‚¢‚‚à‚È‚Á‚Ä‚¢‚é‚킯‚¶‚á‚È‚¢‚Ì‚ÅíœB
-E‚»‚Ì‘¼×‚©‚¢C³B
- athena-start C³B
- (common/)
- mmo.h C³B
- (conf/)
- mapflag.txt C³B
- battle_athena.conf C³B
- (db/)
- const.txt C³B
- item_db.txt C³B
- (doc/)
- conf_ref.txt C³B
- item_bonus.txt C³B
- (map/)
- mob.c
- mob_spawn()Amob_damage()Amob_class_change()Amob_warp() C³B
- mob_delay_item_drop()Amob_delay_item_drop2() C³B
- mobskill_castend_pos() C³B
- pc.c
- pc_takeitem()Apc_dropitem()Apc_equipitem() C³B
- pc_calcstatus()Apc_bonus() C³B
- skill.c
- skill_attack()Askill_additional_effect()Askill_castend_damage_id() C³B
- skill_castend_nodamage_id()Askill_produce_mix() C³B
- skill_arrow_create()Askill_unit_timer_sub()Askill_castend_pos() C³B
- map.h C³B
- map.c
- map_addflooritem() C³B
- script.c
- buildin_getitem() C³B
- pet.c
- pet_return_egg()Apet_get_egg()Apet_unequipitem() C³B
- battle.h C³B
- battle.c
- battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
- battle_calc_pc_weapon_attack() C³B
- battle_weapon_attack()Abattle_config_read() C³B
-
---------------------
-//0796 by huge
-
-Eׂ©‚¢C³
- (conf/npc/)
- npc_event_valentine.txt C³B
-
- (map/)
- pc.c
- pc_takeitem() C³B
- skill.c
- skill_unit_timer_sub() C³B
-
---------------------
-//0795 by Kalen
-
-EŽG’k341‚Ìnpc_warp_niflheim.txt’ljÁ
- conf/warp/npc_warp_niflheim.txt
-
-Emapflag.txtC³(GVGMAPÝ’è)
- @nosave‚Í‚µ‚Ä‚¢‚Ü‚¹‚ñ
-
-Emap_athena.conf‚ÌC³
- @umbala niflheim“™‚̒ljÁ
- @ƒRƒƒ“ƒgƒAƒEƒg‚µ‚Ä‚ ‚è‚Ü‚·B
-
-EƒoƒŒƒ“ƒ^ƒCƒ“ƒXƒNƒŠƒvƒg’ljÁ
- conf/npc/npc_event_valentine.txt
- @ƒ`ƒ‡ƒR’B‚ÌDrop‚͘M‚Á‚Ä‚¢‚Ü‚¹‚ñB‚¨D‚Ý‚Å‚Ç‚¤‚¼
- @®AŽèì‚èƒ`ƒ‡ƒR‚ðH‚ׂ½‚Æ‚«‚̃GƒtƒFƒNƒg‚Í
- @ÅVƒNƒ‰ƒCƒAƒ“ƒg‚É‚·‚ê‚ÎŒ©‚¦‚Ü‚·B
-
-EGVGScript’ljÁ
- conf/gvg/ˆÈ‰º
- @WeissŽž‘ã‚É쬂µ‚½‚à‚Ì‚ðAthena—p‚ɃRƒ“ƒo[ƒg&‘䎌C³
- @prtg_cas01ˆÈŠO‚ÍŠø‚Ì‚Ý‚Å‚·B
- @GVGDATA‚ÍŽIÄ‹N“®‚ÅÁ–Å‚µ‚Ü‚·B
- @ƒGƒ‰[‚ªo‚é‚悤‚È‚çƒRƒƒ“ƒgƒAƒEƒg‚µ‚Ä‚­‚¾‚³‚¢B
- @MobDataAŽ·Ž–Script‚àprtg_cas01‚Ì‚Ý‚Å‚·B(TestScript)
- @‚ ‚­‚܂ŃeƒXƒgƒXƒNƒŠƒvƒg‚Å‚·BGVGŽÀ‘•‚ÌŽQl‚É‚Ç‚¤‚¼
-
---------------------
-//0794 by DRG
-
-Eskillused‚ÅŽw’肵‚½IW,QM‚È‚Ç‚É‚Ì‚Á‚Ä‚éŠÔMOBƒXƒLƒ‹‚ðŽg—p‚·‚é‚悤‚É•ÏX
-EƒAƒbƒvƒXƒŒ‚R‚Ì7‚Ìathena-start‚ðˆê‰žŠÜ‚ß‚Æ‚«‚Ü‚µ‚½
-
- athena-start
- (map/)
- skill.c
- skill_unit_onplace() C³B
-
---------------------
-//0793 by huge
-
-EƒT[ƒo[snapshot
-EƒT[ƒo[‚ªƒNƒ‰ƒbƒVƒ…‚·‚éƒoƒO‚ðC³
-E”­“®‚¹‚¸‚Éã©‚ªÁ‚¦‚½‚çAÝ’u—pƒgƒ‰ƒbƒv‚ª•Ô‚Á‚Ä‚­‚é‚悤‚ÉC³B
-Eƒ‹[ƒgŒ ŒÀ‚ÅA“¯‚¶ƒp[ƒeƒB[‚̃Lƒƒƒ‰‚Í‚·‚®E‚¦‚é‚悤‚ÉC³B
-EƒoƒO•ñƒXƒŒ‚R >>54 ‚̃oƒOC³B
-EƒƒOƒCƒ“Žž‚ɃT[ƒo[‘¤‚ÉID‚ð•\Ž¦‚·‚é‚悤‚É‚µ‚Ü‚µ‚½B
- (login/)
- login.c
- parse_login() C³B
- (conf/npc/)
- npc_event_doll.txt C³B
- (map/)
- skill.c
- skill_unit_timer_sub() C³B
- mob.c
- mob_spawn_dataset() C³B
- mob_damage() C³B
- pc.c
- pc_additem() C³B
-
---------------------
-//0791 by ¹
-
-Eƒ}ƒbƒvƒT[ƒo‚ªƒNƒ‰ƒbƒVƒ…‚·‚éƒoƒOC³B
-EƒCƒO—t‚ðŽg‚Á‚Ä‚àƒWƒFƒ€‚ª•K—v‚É‚È‚é–â‘è‚ðC³B
-EPvP‹­§‘—ŠÒŽÀ‘•B
-EPvP‚ŃŠƒUƒŒƒNƒVƒ‡ƒ“‚ªo—ˆ‚È‚©‚Á‚½–â‘è‚ðC³B
-E‚»‚Ì‘¼×‚©‚ÈC³B
- (map/)
- guild.c
- mob.c
- pc.c
- skill.c
-
---------------------
-//0790 by Ž€_
-
-EƒoƒOC³B
- (conf/)
- battle_athena.conf ŒëŽšC³B
- (doc/)
- conf_ref.txt ŒëŽšC³B
- (common/)
- mmo.h C³B
- (map/)
- itemdb.h C³B
- map.h C³B
- skill.c
- skill_check_condition()Askill_use_pos()Askill_unit_onplace() C³B
-
---------------------
-//0789 by huge
-
-EƒhƒƒbƒvƒAƒCƒeƒ€‚Ƀ‹[ƒgŒ ŒÀ‚ðŽÀ‘•B
-Eʼn‚ÉUŒ‚‚µ‚½lˆÈŠO‚ªƒhƒƒbƒvƒAƒCƒeƒ€‚ðE‚¦‚é‚Ü‚Å‚ÌŽžŠÔ‚ðÝ’è‚Å‚«‚é‚悤‚ÉB
- (/conf)
- battle_athena.conf €–ڒljÁB
-
- (/doc)
- conf_doc.txt à–¾’ljÁB
-
- (/map)
- battle.h
- Battle_Config{} C³B
- battle.c
- battle_config_read() C³B
- itemdb.h
- item_data {} C³B
- map.h
- flooritem_data {} C³B
- mob_data {} C³B
- map.c
- map_addflooritem() C³B
- mob.c
- delay_item_drop{} C³B
- mob_spawn() C³B
- mob_damage() C³B
- mob_delay_item_drop() C³B
- mob_warp() C³B
- pc.c
- pc_takeitem() C³B
-
---------------------
-//0788 by ‚ ‚ä‚Ý
-
-EcardƒXƒLƒ‹‚̈—H‚ðC³B
-E@allskillƒRƒ}ƒ“ƒh‚ÌÄC³B
-
- (map/)
- pc.c
- pc_skill() C³B
- pc_allskillup() C³B
-
---------------------
-//0787 by ‚Û‚Û‚Û
-
-Eƒyƒbƒg‚É‚àmob_avail.txt‚ÌÝ’è‚ð“K—p‚·‚é‚悤‚É‚µ‚½B
-EMOBƒXƒLƒ‹‚Ìskillused‚Åval1‚É0‚ð“ü‚ê‚é‚Æ‚ ‚ç‚ä‚éƒXƒLƒ‹‚ɑ΂µ‚Ä”­“®‚·‚é‚悤‚É‚µ‚½B
-Eskillused‚Å”­“®‚µ‚½ƒXƒLƒ‹‚Ì‘ÎÛ‚ðA”­“®‚³‚¹‚½PC‚É‚·‚é‚©‚Ç‚¤‚©Ý’è‚Å‚«‚é‚悤‚É‚µ‚½(‘ÎIWƒnƒ‚È‚ÇH)B
- (/map)
- clif.c
- clif_pet0078()Aclif_pet007b()C³B
- mob.c
- mobskill_use()C³B
- skill.c
- skill_attack() Askill_castend_damage_id()C³B
- battle.h
- battle.c
- battle_config_read()C³B
-
---------------------
-//0786 by huge
-
-EBDSC³
- ‘O‚©‚ç‚«”ò‚΂µ‚Äs‚­‚Æ—Ç‚­‚È‚¢‚©‚à‚µ‚ê‚È‚¢‚Ì‚ÅAŒã‚ë‚©‚爗
- —LŒø”͈͂ÌC³
-
- (/map)
-
- skill.h
- skill.c
- skill_castend_damage_id() C³B
- skill_castend_nodamage_id() C³B
- skill_brandishspear_first() C³B
- skill_brandishspear_dir() C³B
-
---------------------
-//0785 by Ž€_
-
-E–{ŽI‚ɇ‚킹‚ÄC³B(ŠØ‘ˆÆ‚̃pƒbƒ`notice‚ðŽQl‚µ‚ÄC³‚µ‚Ü‚µ‚½B)
-EBB‚ÆBS‚̃LƒƒƒXƒeƒBƒ“ƒOŽžŠÔ‚ð0.7•b‚É‚µ‚ăfƒBƒŒƒC‚Í0‚É•ÏXB
-Eghost‚Ì•Ï‚í‚è‚Ƀ}ƒbƒvˆÚ“®Œã‚Ì–³“GŽžŠÔ‚ðÝ’èB‚±‚ÌŽžŠÔ‚ÌŠÔ‚Í‚Ç‚ñ‚ÈUŒ‚‚àŽó‚¯‚È‚¢‚ªˆÚ“®‚âUŒ‚AƒXƒLƒ‹Žg—pAƒAƒCƒeƒ€Žg—p‚Å‚±‚ÌŽžŠÔ‚Í‚È‚­‚È‚è‚Ü‚·BƒV[ƒYƒ‚[ƒh‚Å‚Í‚±‚Ì–³“GŽžŠÔ‚ð2”{‚Æ‚µ‚Ä“K—pB
-EƒV[ƒYƒ‚[ƒh‚ÅŽ€‚ñ‚Å‚àŒoŒ±‚ªŒ¸‚ç‚È‚¢‚悤‚ÉC³B(mapflag‚Ìnopenalty‚ðÝ’è‚·‚é•K—v‚Í‚ ‚è‚Ü‚¹‚ñB)
-EƒXƒLƒbƒh‚ÅŠŠ‚ׂ鋗—£‘‰ÁB
-EŠù‚É’¾–Ù‚É‚©‚©‚Á‚Ä‚é‘ÎۂɃŒƒbƒNƒXƒfƒBƒr[ƒi‚ðŽg‚¤‚Æ’¾–Ù‚ª‰ðœ‚³‚ê‚é‚悤‚É•ÏXB
-EŽô‚¢‚É‚©‚©‚é‚ƈړ®‘¬“x‚àŒ¸‚é‚悤‚ÉC³B
-Ebattle_athena.conf‚É€–Ú•ÏXB
-EƒXƒLƒ‹‚Ìd‚Ë’u‚«‚ð”»’fˆ—‚ð­‚µ•ÏXB
-EHP‚ÌŽ©‘R‰ñ•œŽžŠÔ‚ª4•b‚Å‚Í‚È‚­6•b‚¾‚Æ‚í‚©‚Á‚½‚̂ŃfƒtƒHƒ‹ƒgC³‚Æbattle_athena.confC³B
-E‚»‚Ì‘¼×‚©‚¢C³‚âƒoƒOC³B
-E–w‚ǃeƒXƒg‚µ‚Ä‚Ü‚¹‚ñB
- (conf/)
- atcommand_athena.conf C³B
- battle_athena.conf C³B
- (doc/)
- conf_ref.txt C³B
- (db/)
- cast_db.txt C³B
- (map/)
- atcommand.c C³B
- clif.c
- clif_mob0078()Aclif_mob007b()Aclif_skill_estimation() C³B
- clif_mob_class_change()Aclif_parse_WalkToXY() C³B
- clif_parse_ActionRequest()Aclif_parse_LoadEndAck() C³B
- clif_parse_UseItem()Aclif_parse_UseSkillToId() C³B
- clif_parse_UseSkillToPos()Aclif_parse_UseSkillMap() C³B
- mob.h C³B
- mob.c
- mob_get_viewclass()Amob_attack()Amob_target() C³B
- mob_ai_sub_hard_activesearch()Amob_ai_sub_hard() C³B
- mobskill_castend_id()Amobskill_castend_pos() C³B
- skill.h C³B
- skill.c
- skill_can_produce_mix()Askill_castend_damage_id() C³B
- skill_castend_nodamage_id()Askill_castend_id() C³B
- skill_castend_pos()Askill_use_id()Askill_readdb() C³B
- skill_check_condition()Askill_unit_onplace()Askill_unitsetting() C³B
- skill_additional_effect()Askill_check_unit_range() C³B
- skill_check_unit_range_sub()Askill_status_change_end() C³B
- skill_status_change_start() C³B
- pc.h
- pc.c
- pc_ghost_timer()Apc_setghosttimer()Apc_delghosttimer() íœB
- pc_gvg_invincible_timer() -> pc_invincible_timer()‚É•ÏXB
- pc_setgvginvincibletimer() -> pc_setinvincibletimer()‚É•ÏXB
- pc_delgvginvincibletimer() -> pc_delinvincibletimer()‚É•ÏXB
- pc_authok()Apc_attack_timer()Apc_calcstatus() C³B
- pc_setrestartvalue()Apc_damage()Apc_allskillup() C³B
- do_init_pc() C³B
- battle.h C³B
- battle.c
- battle_config_read()Abattle_weapon_attack()Abattle_check_target() C³B
- battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
- battle_calc_pc_weapon_attack()Abattle_get_speed() C³B
- map.h C³B
- map.c
- map_quit() C³B
-
---------------------
-//0784 by ‚ ‚ä‚Ý
-
-EƒJ[ƒhƒXƒLƒ‹‚ðŠo‚¦‚Ä‚¢‚éó‘Ô‚Å@allskillƒRƒ}ƒ“ƒh‚ðŽg—p‚·‚é‚Æmap-server‚ª–\‘–‚·‚é–â‘è‚ðC³B
-
- (map/)
- pc.c
- pc_allskillup() C³B
-
---------------------
-//0783 by huge
-
-Eƒuƒ‰ƒ“ƒfƒBƒbƒVƒ…ƒXƒsƒA‚ÌC³
- ”͈͎w’èAŽÎ‚ß‚ÌÛ‚ÌŠiŽq”͈ÍAUŒ‚—ÍŒvŽZ
- ‘½•ª‡‚Á‚Ä‚é‚ÆŽv‚¤‚ñ‚Å‚·‚¯‚ÇAƒCƒ}ƒCƒ`Ž©M‚ªŽ‚Ä‚È‚¢EEE
- (ŽQl)‚Ý‚·‚Ƃꑃ -ƒXƒLƒ‹ŠÖ˜A“¤î•ñ
-EƒXƒyƒ‹ƒuƒŒƒCƒJ[‚ð‚¿‚å‚Á‚ÆC³
-Eƒvƒƒ{ƒbƒN‚ðMVPmob‚ÉŒø‚©‚È‚¢‚悤C³
-EƒoƒO•ñƒXƒŒ‚R >>8 ‚Å•ñ‚³‚ꂽ‚à‚Ì‚ÌŽæ‚èž‚Ý
-
- (/db)
- create_arrow.txt C³B
- skill_db.txt C³B
-
- (/map)
- battle.c
- battle_calc_pet_weapon_attack() C³B
- battle_calc_mob_weapon_attack() C³B
- battle_calc_pc_weapon_attack() C³B
-
- skill.h
- skill.c
- skill_brandishspear_first() ’ljÁB
- skill_brandishspear_dir() ’ljÁB
- skill_castend_nodamage_id() C³B
- skill_castend_damage_id() C³B
- skill_unit_group() C³B
-
---------------------
-//0782 by ‚Ò‚´‚Ü‚ñ
-E@allskillƒRƒ}ƒ“ƒh‚ÌŽg—pðŒ‚ªŽQÆ‚³‚ê‚Ä‚¢‚È‚©‚Á‚½ƒoƒOC³
- (/map)
- atcommand.c
- atcommand() C³B
-
---------------------
-//0781 by Chunglyeng
-Eƒoƒh, ƒ_ƒ“ƒT[‰¹Šy‹ïŒ»
- (/map)
- skill.c C³B
-
---------------------
-//0780 by reia
-EƒyƒRƒyƒR‚Ì—‘‚È‚Ç‚ª›z‰»‚·‚é‚ƃmƒr‚É‚È‚Á‚Ä‚µ‚Ü‚¤–â‘èC³B
-EGMƒRƒ}ƒ“ƒhu@kickallv‚ª‰½Žž‚ÌŠÔ‚É‚©–³Œø‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ÅC³B
-
- (/conf)
- atcommand_athena.conf C³B
- (db/)
- mob_skill_db.txt C³B
- (map/)
- atcommand.c
- atcommand_config_read() C³B
-
---------------------
-//0779 by ‚ ‚ä‚Ý
-
-E‘SƒXƒLƒ‹Žæ“¾ƒRƒ}ƒ“ƒh‚̒ljÁB
- EGM‚Å‘SƒXƒLƒ‹‚ðŠo‚¦‚ç‚ê‚é‚悤‚É‚µ‚Ä‚¢‚éꇂâAƒXƒLƒ‹‚Ì”‚ª‘½‚¢E‹Æ‚͈ꕔ‚̃XƒLƒ‹•\Ž¦‚ª‚¨‚©‚µ‚­‚È‚è‚Ü‚·B‚»‚Ìꇂ̓ŠƒƒO‚µ‚ĉº‚³‚¢B
- @allskill : Œ»Ý‚ÌE‹Æ‚Ŏ擾‰Â”\‚È‘SƒXƒLƒ‹‚ðŽæ“¾‚·‚éB(ƒNƒGƒXƒgƒXƒLƒ‹ŠÜ‚Þ)
-
- (conf/)
- battle_athena.conf C³B
- help.txt C³B
- (map/)
- atcommand.h C³B
- atcommand.c
- atcommand() C³B
- pc.h C³B
- pc.c
- pc_allskillup() ’ljÁB
- (doc/)
- conf_ref.txt C³B
- help.txt C³B
-
---------------------
-//0778 by huge
-
-EƒXƒyƒ‹ƒuƒŒƒCƒJ[‚ÌC³
- EƒLƒƒƒXƒeƒBƒ“ƒOƒ^ƒCƒ€‚Ì–³‚¢ƒXƒLƒ‹‚É‚ÍŒø‚©‚È‚¢‚悤‚ÉC³B
- EŽg—p‚³‚ꂽ‘ŠŽè‚ÌÁ”ïSP‚ÌC³B
-
- (map/)
- skill.c
- skill_castend_nodamage_id() C³B
-
---------------------
-//0777 by ‚Ò‚´‚Ü‚ñ
-
-EƒMƒ‹ƒhUé퉼ŽÀ‘•
-@EŠî–{“I‚È•”•ª‚¾‚¯‚µ‚©ŽÀ‘•‚µ‚Ä‚È‚¢ãA‚¢‚­‚‚©‚Ì“_‚Å–{ŽI‚Æ‘Šˆá‚ª‚ ‚è‚Ü‚·B
-@EUéíŠJŽn‚ÆI—¹‚Í@ƒRƒ}ƒ“ƒh‚Ås‚¢‚Ü‚·
- @gvgstart : UéíŠJŽn
- @gvgend : UéíI—¹
-@Ebattle_athena.conf‚É€–ڒljÁB
- (char/)
- int_guild.c
- inter_guild_init()Ainter_guild_readdb()Ainter_guild_save() C³B
- inter_castle_save_sub()Amapif_guild_castle_info() ’ljÁB
- mapif_guild_change_castle()Amapif_parse_GuildCastleInfo() ’ljÁB
- mapif_parse_GuildChangeCastle() ’ljÁB
- inter.c
- inter_config_read() C³B
- inter_send_packet_length[]Ainter_recv_packet_length[] C³B
- int_guild.h C³B
- (map/)
- atcommand.c
- atcommand()Aatcommand_config_read() C³B
- battle.c
- battle_config_read() C³B
- guild.c
- guild_castle_search()Aguild_read_castledb()’ljÁB
- do_init_guild() C³B
- guild_gvg_init()Aguild_gvg_final()Aguild_gvg_final_sub() ’ljÁB
- guild_gvg_eliminate()Aguild_gvg_eliminate_sub() ’ljÁB
- guild_gvg_eliminate_timer()Aguild_gvg_empelium_pos() ’ljÁB
- guild_gvg_break_empelium() ’ljÁB
- intif.c
- intif_parse()Apacket_len_table[] C³B
- intif_parse_GuildCastleInfo()Aintif_parse_GuildCastleChange() ’ljÁB
- intif_guild_castle_info()Aintif_guild_castle_change() ’ljÁB
- mob.c
- mob_damage() C³B
- atcommand.h C³B
- battle.h C³B
- guild.h C³B
- intif.h C³B
- mob.h C³B
- (common/)
- mmo.h C³B
- (conf/)
- battle_athena.conf C³B
- inter_athena.conf C³B
- msg_athena.conf C³B
- atcommand_athena.conf C³B
- (db/)
- castle_db.txt ’ljÁB
---------------------
-//0776 by Ž€_
-
-ENPCƒXƒLƒ‹›z‰»ŽÀ‘•B(mob_skill_db.txt‚Ìval1‚ðŽg‚¢‚Ü‚·B)
-Emob_skill_db.txt‚ÌŠm—¦‚ð番—¦‚©‚ç–œ•ª—¦‚É•ÏXB(‚½‚¾mob_skill_db.txt‚ÌC³‚Í‚µ‚Ä‚Ü‚¹‚ñB)
-Eƒ‚ƒ“ƒXƒ^[‚ªƒ_ƒuƒ‹ƒAƒ^ƒbƒN‚·‚é–â‘èC³B(C³‚³‚ꂽ‚©‚Ç‚¤‚©‚ÌŽ©M‚Í‚ ‚è‚Ü‚¹‚ñ‚ª...)
-E‚»‚Ì‘¼×‚©‚¢C³B
- (db/)
- mob_skill_db.txt C³B
- skill_db.txt C³B
- (map/)
- map.h C³B
- mob.h C³B
- mob.c
- mob_spawn_dataset()Amob_spawn() C³B
- mob_changestate()Amobskill_use() C³B
- mob_class_change() ’ljÁB
- npc.c
- npc_parse_mob() C³B
- battle.c
- battle_check_target() C³B
- clif.h C³B
- clif.c
- clif_mob_class_change() ’ljÁB
- skill.c
- skill_castend_nodamage_id() C³B
-
---------------------
-//0775 by Ž€_
-
-EƒV[ƒYƒ‚[ƒh‚̈—C³B
-EƒV[ƒYƒ‚[ƒh‚Ì–³“GŽžŠÔ‚ÌŠÔ‚Í‚Ç‚ñ‚ÈUŒ‚‚àŽó‚¯‚È‚¢‚悤‚ÉC³B
-EƒV[ƒYƒ‚[ƒh‚Ì–³“GŽžŠÔ‚ªŽžŠÔØ‚ê‚É‚È‚é‘O‚ɂ͉𜂳‚ê‚È‚¢‚悤‚ÉC³B
-Ebattle_athena.conf‚É€–ڒljÁB
-E@hide‚â/hide‚É‚æ‚éGMƒnƒCƒfƒBƒ“ƒO’†‚ÍŽ©•ª‚ÉŽ©“®Žg—p‚³‚ê‚éƒXƒLƒ‹ˆÈŠO‚̃XƒLƒ‹Žg—p‚âUŒ‚‚ðŽó‚¯‚È‚¢‚悤‚ÉC³B
-EƒnƒCƒfƒBƒ“ƒO’†’n‘®«ƒXƒLƒ‹ˆÈŠO‚ÌUŒ‚‚ðŽó‚¯‚È‚¢‚悤‚ÉC³B(ƒgƒ‰ƒbƒv‚âƒNƒ@ƒOƒ}ƒCƒA“™‚̃XƒLƒ‹‚͉e‹¿‚ðŽó‚¯‚é‚©‚Ç‚¤‚©•s–¾‚È‚Ì‚Å¡‚Ü‚Å‚Æ“¯‚¶‚悤‚ɉe‹¿‚ðŽó‚¯‚é‚悤‚Ɉ—B)
-Eƒgƒ“ƒlƒ‹ƒhƒ‰ƒCƒu‚̈ړ®‘¬“x‚ð–{ŽI‚ɇ‚킹‚Ü‚µ‚½B
-E‚»‚Ì‘¼ƒoƒOC³‚âׂ©‚¢C³B(–w‚Ç–¢ƒeƒXƒg)
- (conf/)
- battle_athena.conf C³B
- (doc/)
- conf_ref.txt C³B
- (map/)
- battle.h C³B
- battle.c
- battle_check_target()Abattle_calc_damage() C³B
- battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
- battle_calc_pc_weapon_attack()Abattle_calc_magic_attack() C³B
- battle_calc_misc_attack() C³B
- battle_config_read()Abattle_weapon_attack() C³B
- pc.h C³B
- pc.c
- do_init_pc()Apc_authok() C³B
- pc_attack()Apc_attack_timer() C³B
- pc_setgvg_ghosttimer()Apc_delgvg_ghosttimer()‚ð
- pc_setgvginvincibletimer()Apc_delgvginvincibletimer()‚ÉC³B
- pc_gvg_invincible_timer() ’ljÁB
- pc_attack_timer()Apc_steal_item()Apc_calcstatus() C³B
- clif.c
- clif_parse_ActionRequest()Aclif_parse_UseItem() C³B
- clif_parse_UseSkillToId()Aclif_parse_UseSkillToPos() C³B
- clif_parse_UseSkillMap()Aclif_parse_WalkToXY() C³B
- map.h C³B
- map.c
- map_quit() C³B
- mob.c
- mob_attack()Amob_target()Amob_ai_sub_hard_activesearch() C³B
- mob_ai_sub_hard_mastersearch()Amob_ai_sub_hard() C³B
- mob_damage()Amobskill_castend_id()Amobskill_castend_pos() C³B
- skill.c
- skill_castend_damage_id()Askill_attack() C³B
- skill_castend_id()Askill_castend_pos()Askill_castend_map() C³B
-
---------------------
-//0774 by Ž‚Žqo^.^o
-EMonk job bouns C³
-EƒhƒPƒr C³
-(db/)
- job_db2.txt C³
- pet_db.txt C³
-
---------------------
-//0773 by ¹
-
-Eׂ©‚¢ƒoƒOC³
- (map/)
- skill.c C³B
- battle.c C³B
-
---------------------
-//0772 by ‚Ò‚´‚Ü‚ñ
-
-EƒV[ƒYƒ‚[ƒh‰º‚ňȉº‚Ì“_‚ðC³
-@E˜A‘±‚µ‚ÄUŒ‚‚Å‚«‚È‚­‚È‚Á‚Ä‚¢‚½ƒoƒOC³
-@Eƒ_ƒ[ƒWŒyŒ¸—¦‚ª³‚µ‚­Ý’è‚Å‚«‚È‚©‚Á‚½ƒoƒOC³
-@E–³“GŽžŠÔŽÀ‘•Bbattle_athena.conf‚Ìgvg_ghost_time‚ÅÝ’è‚Å‚«‚Ü‚·
-
-EƒnƒCƒfƒBƒ“ƒO‚Å–‚–@UŒ‚“™‚ð‰ñ”ð‚Å‚«‚È‚©‚Á‚½ƒoƒOC³
-
- (map/)
- skill.c
- skill_attack()Askill_unit_onplace()Askill_check_condition() C³B
- clif.c
- clif_parse_ActionRequest()Aclif_parse_UseItem() C³B
- clif_parse_UseSkillToId()Aclif_parse_UseSkillToPos() C³B
- clif_parse_UseSkillMap()Aclif_parse_WalkToXY() C³B
- pc.c
- do_init_pc()Apc_authok() C³B
- pc_attack()Apc_attack_timer() C³B
- pc_setgvg_ghosttimer()Apc_delgvg_ghosttimer() ’ljÁB
- pc_gvg_ghost_timer() ’ljÁB
- map.c
- map_quit() C³
- battle.c
- battle_config_read()Abattle_weapon_attack() C³B
- battle.h C³B
- pc.h C³B
-
---------------------
-//0771 by huge
-
-EƒXƒyƒ‹ƒuƒŒƒCƒJ[ŽÀ‘•
- (map/)
- skill.c
- skill_castend_nodamage_id() C³B
- (db/)
- skill_db.txt C³B
-
---------------------
-//0770 by ¹
-
-E” Œn‚̈—•ÏX
-E‚»‚Ì‘¼ƒoƒOC³
- (map/)
- battle.c C³B
- itemdb.c C³B
- mob.c C³B
- script.c C³B
-
---------------------
-//0769 by Ž€_
-
-EƒV[ƒYƒ‚[ƒhC³B
-E–³“GŽžŠÔ‚Ì•û‚Íghost_timerˆÈŠO‚Ì•û–@‚ÅŽÀ‘•‚·‚é‚‚à‚è‚È‚Ì‚Å¡‚Í휂µ‚Ä‚¢‚Ü‚·B
-EƒXƒNƒŠƒvƒgviewpoint‚ª³‚µ‚­“®ì‚µ‚È‚¢–â‘èC³B
-Eproduce_db.txt‚ðC³B(“û”«‚Ískill_require_db.txt‚ň—‚µ‚Ä‚¢‚Ü‚·B‚»‚µ‚ăAƒCƒeƒ€‚Ì”‚ð0‚É‚·‚ê‚ÎÁ–Õ‚Í‚³‚ê‚È‚¢‚¯‚Çì‚鎞•K—v‚ȃAƒCƒeƒ€‚É‚È‚è‚Ü‚·B)
-E‚»‚Ì‘¼×‚©‚¢C³B
- (conf/)
- battle_athena.conf C³B
- (doc/)
- conf_ref.txt C³B
- (db/)
- produce_db.txt C³B
- (map/)
- battle.h C³B
- battle.c
- battle_calc_damage()Abattle_calc_weapon_attack() C³B
- battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
- battle_calc_pc_weapon_attack()Abattle_calc_magic_attack() C³B
- battle_calc_misc_attack()Abattle_check_target()Abattle_config_read() C³B
- skill.c
- skill_unit_onplace()Askill_castend_damage_id()Askill_castend_id() C³B
- skill_use_id()Askill_use_pos()Askill_check_condition() C³B
- skill_can_produce_mix() C³B
- pc.c
- pc_attack_timer()Apc_attack()Apc_isUseitem()Apc_delitem() C³B
- pc_damage() C³B
- mob.c
- mob_damage()Amobskill_use_id()Amobskill_use_pos() C³B
- script.c
- buildin_viewpoint()Abuildin_emotion() C³B
- makefile C³B
-
---------------------
-//0768 by ‚Ò‚´‚Ü‚ñ
-
-EƒV[ƒYƒ‚[ƒh‰º‚ÅAˆÈ‰º‚Ì“_‚ðC³
-@EŽ€–S‚µ‚½‚çƒZ[ƒuƒ|ƒCƒ“ƒg‚É‹­§‘—ŠÒ‚·‚é‚悤‚ÉC³
-@E“Á’è‚̃AƒCƒeƒ€‚ªŽg—p‚Å‚«‚È‚¢‚悤‚ÉC³(ƒAƒ“ƒeƒBƒyƒCƒ“ƒƒ“ƒgEƒnƒG‚̉H)
-@E“Á’è‚̃XƒLƒ‹‚ªŽg—p‚Å‚«‚È‚¢‚悤‚ÉC³(ƒ[ƒvƒ|[ƒ^ƒ‹EƒoƒbƒNƒXƒeƒbƒvEƒCƒ“ƒeƒBƒ~ƒfƒCƒgEƒeƒŒƒ|[ƒgEƒCƒ“ƒfƒ…ƒA)
-@E“¯–¿ƒMƒ‹ƒh‚É‚Í–³ðŒ‚ÅUŒ‚‚Å‚«‚È‚¢‚悤‚ÉC³
-@E“G‘΃Mƒ‹ƒh‚É‚Í–³ðŒ‚ÅUŒ‚‚Å‚«‚é‚悤‚ÉC³
-@E–³“GŽžŠÔ’†‚Í—¼ŽÒ‚Æ‚àUŒ‚‚Å‚«‚È‚¢‚悤‚ÉC³
-
-ƒ\[ƒXƒŒƒxƒ‹‚ŃeƒŒƒ|AƒnƒG‚ÌŽg—p‚ð‹Ö‚¶‚Ä‚¢‚邽‚ßUéíMAP‚Ìmapflag‚Énoteleport‚Í•K—v‚ ‚è‚Ü‚¹‚ñ
-‚Ü‚½A–³“GŽžŠÔ‚Íghost_timerˆË‘¶‚Å‚·B‚‚܂èbattle_athena.conf“à‚Ìghost_time‚ª–³“GŽžŠÔ‚É‚È‚è‚Ü‚·
-
- (map/)
- skill.c
- skill_castend_damage_id()Askill_castend_id() C³
- skill_check_condition() C³
- pc.c
- pc_damage() C³
- battle.c
- battle_weapon_attack() C³
-
---------------------
-//0767 by huge
-
-Eƒtƒ@[ƒ}ƒV[‚ÅA»‘¢‚Ì‘‚ªŒ¸‚é–â‘è‚ðC³
-E•Ší»‘¢DB‚ÅA‚¢‚­‚‚©”²‚¯‚Ä‚¢‚½‚Ì‚ðC³
-
- (map/)
- skill.c C³B
- (db/)
- produce_db.txt C³B
-
---------------------
-//0766 by ‚Ò‚´‚Ü‚ñ
-
-EƒV[ƒYƒ‚[ƒh‰º‚ÅAˆÈ‰º‚Ì“_‚ðC³
-@E³‹KƒMƒ‹ƒh³”F‚ª‚È‚¢‚ƃGƒ“ƒyƒŠƒEƒ€‚ÉUŒ‚‚ªŒø‚©‚È‚¢‚悤‚ÉC³
-@EƒGƒ“ƒyƒŠƒEƒ€‚ɑ΂·‚éƒXƒLƒ‹UŒ‚‚ªŒø‚©‚È‚¢‚悤‚ÉC³
-@E–‚–@UŒ‚A‰“‹——£UŒ‚A㩂̃_ƒ[ƒW•â³‚ðŽÀ‘•
-@@–‚–@UŒ‚F50%@‰“‹——£UŒ‚F75%@ã©F60%
-@@‚±‚ê‚Íl‚É‚àƒGƒ“ƒyƒŠƒEƒ€‚É‚à“K—p‚³‚ê‚Ü‚·
- (map/)
- battle.c
- #include "guild.h" ’ljÁ
- battle_calc_damage()Abattle_calc_weapon_attack() C³
-
---------------------
-//0765 by ‚Ò‚´‚Ü‚ñ
-
-E‘•”õ§ŒÀŽÀ‘•
-E‘•”õ§ŒÀ‚ª‚©‚©‚Á‚½‘•”õ•i‚ÍŠY“–ƒ}ƒbƒv‚Ɉړ®‚µ‚½Û‚ÉŽ©“®“I‚É‘•”õ‚ªŠO‚êA
-@Ä‘•”õ‚à‚Å‚«‚È‚­‚È‚è‚Ü‚·
-E§ŒÀ‚Å‚«‚é‚Ì‚Í‘•”õ•i‚Ì‚Ý‚Å‚·BƒJ[ƒh—ނͧŒÀ‚Å‚«‚Ü‚¹‚ñ
- (db/)
- item_noequip.txt ’ljÁ
- (map/)
- itemdb.h C³
- itemdb.c
- do_init_itemdb()Aitemdb_search() C³
- itemdb_read_noequip ’ljÁ
- pc.c
- pc_checkitem()Apc_isequip() C³
-
---------------------
-//0764 by Ž€_
-
-E‘S‚Ẵ_ƒ[ƒW‚ª1‚É‚È‚é–hŒä‚ð10000‚©‚ç1000000‚É•ÏXB
-Ebattle_athena.conf‚É€–ڒljÁB
-Eƒ‚ƒ“ƒXƒ^[‚©‚çŒoŒ±’l‚ð–Ⴄˆ—‚ð–{ŽI‚̂悤‚ÉC³B
-EƒXƒLƒ‹ƒXƒ[ƒ|ƒCƒYƒ“ŽÀ‘•B
-EŒðŠ·ƒoƒOC³B
-E‚»‚Ì‘¼×‚©‚¢C³B
-EƒeƒXƒg‚Í–w‚Ç‚µ‚Ä‚Ü‚¹‚ñB
- (db/)
- mob_db.txt C³B
- skill_db.txt C³B
- (doc/)
- conf_ref.txt C³B
- db_ref.txt C³B
- (conf/)
- battle_athena.conf C³B
- (map/)
- makefile C³B
- battle.h C³B
- battle.c
- battle_get_def()Abattle_get_mdef() C³B
- battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
- battle_calc_pc_weapon_attack()Abattle_calc_magic_attack() C³B
- battle_calc_misc_attack()Abattle_config_read() C³B
- skill.h C³B
- skill.c
- skill_castend_nodamage_id()Askill_castend_damage_id() C³B
- skill_check_condition()Askill_status_change_timer() C³B
- skill_status_change_end()Askill_status_change_start() C³B
- skill_additional_effect()Askill_produce_mix()Askill_unit_timer_sub() C³B
- skill_check_unit_sub()‚ð skill_check_unit_range_sub()‚É•ÏXB
- skill_check_unit_range() ’ljÁB
- skill_castend_pos()Askill_area_sub_count() C³B
- mob.c
- mobskill_castend_pos()Amob_damage() C³B
- clif.c
- clif_parse_TradeRequest()Aclif_parse_TradeAck() C³B
- clif_parse_TradeAddItem()Aclif_parse_TradeOk() C³B
- clif_parse_TradeCansel()Aclif_parse_TradeCommit() C³B
- map.h C³B
- map.c
- do_init() C³B
- pc.c
- pc_calc_skilltree()Apc_calcstatus() C³B
- tarde.c
- trade_tradeack() C³B
-
---------------------
-//0763 by ŒÓ’±—–
-
-EƒT[ƒo[snapshot
- ƒtƒHƒ‹ƒ_‚ð®—‚µ‚½‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
- ˆÈ‘O‚̃Z[ƒuƒf[ƒ^(account.txt‚È‚Ç)‚ÍsaveƒtƒHƒ‹ƒ_‚É’u‚¢‚Ä‚­‚¾‚³‚¢
- cnfƒtƒ@ƒCƒ‹‚ÍŠeŽíƒtƒ@ƒCƒ‹‚̃pƒX‚ª•Ï‚í‚Á‚Ä‚é‚Ì‚ÅA
- ‚±‚̌¢‚à‚Ì‚ðƒRƒs[‚Å‚Í‚È‚­AV‚µ‚­‘‚«Š·‚¦‚È‚¨‚µ‚Ä‚­‚¾‚³‚¢B
-
-EƒtƒHƒ‹ƒ_®—
- confƒtƒHƒ‹ƒ_
- NPCŠÖ˜A‚ðconf/npc/AMOB”z’uŠÖ˜A‚ðconf/mob/AWARPŠÖ˜A‚ðconf/warp/
- ƒeƒXƒg‚âƒTƒ“ƒvƒ‹‚ðconf/sample/‚Ɉړ®‚µ‚Ü‚µ‚½B
- dbƒtƒHƒ‹ƒ_
- sampleƒtƒHƒ‹ƒ_‚Ì‚¤‚¿dbŠÖŒW‚ð db/sample‚Ɉړ®‚µ‚Ü‚µ‚½B
- help.txt/motd.txt
- confƒtƒHƒ‹ƒ_‚Ɉړ®‚µ‚Ü‚µ‚½
- account.txt/athena.txt/guild.txt/party.txt/pet.txt/storage.txt
- saveƒtƒHƒ‹ƒ_‚Ɉړ®‚µ‚Ü‚µ‚½
- tool/backup
- ƒpƒXC³
-
-Emotd.txt/help.txt‚̃pƒX‚ðmap_athena.cnf‚ÅŽw’è‚Å‚«‚é‚悤‚É
- map.h/map.c/atcommand.c/atcommand.hC³
-
-Eathena-start‚ÉrestartƒIƒvƒVƒ‡ƒ“’ljÁ
- ./athena-start restart‚ÅAthena‚ðÄ‹N“®‚µ‚Ü‚·
-
---------------
-//0761 by ‚Û‚Û‚Û
-
-EMOB‚ÌMDEF‚É10000ˆÈãŽw’肵‚Ä‚àƒtƒ@ƒCƒAƒsƒ‰[‚Å•’ʂɃ_ƒ[ƒW‚ð—^‚¦‚Ä‚µ‚Ü‚¤‚Ì‚ðC³B
- (map/)
- battle.c
-
---------------
-//0760 by ll3y
-
-E•¶Žš‰»‚¯C³
- (map/)
- script.c
-
---------------
-//0759 by Ž‚Žqo^.^o
-EƒXƒsƒAƒNƒCƒbƒPƒ“ C³
-EDancer skill tree C³
-(db/)
- cast_db.txt C³
- skill_tree.txt C³
-
---------------
-//0758 by hack
-EPut GM messages into msg_table which is loaded from msg_athena.conf.
-(Easy to translate into other language)
- (map/)
- atcommand.h
- atcommand.c
- msg_conf_read() Read conf/msg_athena.conf
- Put messages into msg_table which is loaded from msg_athena.conf.
- map.c
- do_init()
- (conf/)
- msg_athena.conf Store the message of atcommand, easy to translate into other language.
-
---------------
-//0757 by Michael
- (map/)
- script.c
- buildin_viewpoint()
- Fix packet sequence of viewpoint command.
-
---------------
-//0756 by ll3y
-
-EInterix(Windows Services for Unix 3.5)‚ŃRƒ“ƒpƒCƒ‹‚ª’Ê‚é‚悤‚ÉC³
- Interop Systems(http://www.interopsystems.com/)‚æ‚ègmake‚Æzlib‚ðŽæ‚Á‚Ä‚­‚é‚©A
- Ž©‘O‚ÅInterix—p‚ð—pˆÓ‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B
- (common/)
- socket.h C³B
-
---------------
-//0755 by Ž€_
-
-EƒoƒOC³‚Æà–¾’ljÁB(•ñ‚³‚ꂽ‚Ì‚Í‘½•ª‘S‚ÄC³‚³‚ꂽ‚Ì‚©‚Æ...)
-E0751‚ŃXƒLƒ‹‚Ìő僌ƒxƒ‹‚ð100‚Ü‚ÅÝ’è‚Å‚«‚é‚悤‚É‚µ‚Ü‚µ‚½B
-Ecast_db.txt‚É“ü‚Á‚Ä‚¢‚éó‘ÔˆÙí‚̈ێŽžŠÔ‚ÍŽ©•ª‚ª“K“x‚É“ü‚ꂽ•¨‚Å‚·B–{ŽI‚ÌŽd—l‚È‚ñ‚Ä’m‚è‚Ü‚¹‚ñ‚Ì‚ÅB
- (doc/)
- db_ref.txt C³B
- (db/)
- cast_db.txt C³B
- skill_db.txt C³B
- (map/)
- skill.h C³B
- skill.c
- skill_check_unit_sub()Askill_castend_id()Askill_use_id() C³B
- skill_status_change_end()Askill_status_change_start() C³B
- skill_castend_map() C³B
- mob.c
- mobskill_castend_id()Amobskill_castend_pos() C³B
- pc.c
- pc_calcstatus() C³B
- battle.c
- battle_calc_pc_weapon_attack()
- battle_calc_mob_weapon_attack()
- battle_calc_magic_attack()
-
---------------
-//0754 by Ž‚Žqo^.^o
-(db/)
- cast_db.txt C³
-
---------------
-//0753 by ¹
-
-EIW‚Ì”­¶ƒ|ƒCƒ“ƒg‚ðŽw’è‚·‚é‚ƃƒeƒI‚̃GƒtƒFƒNƒg‚ªˆêØo‚È‚­‚È‚é
-@–â‘肪•œŠˆ‚µ‚Ä‚¢‚½‚Ì‚ÅC³B
-Ewarning‚ðo‚È‚¢‚悤‚ɃR[ƒhC³B
- (map/)
- skill.c
- skill_castend_pos2() C³B
- chrif.h
-
---------------
-//0752 by ‚Ò‚´‚Ü‚ñ
-
-EchangesexƒXƒNƒŠƒvƒgŽÀ‘•B«•Ê‚𔽓]‚³‚¹‚邱‚Æ‚ª‚Å‚«‚Ü‚·
-@«•Ê”½“]¬Œ÷Œã‚ÍA‚»‚̃vƒŒƒCƒ„[‚Í‹­§“I‚ÉÚ‘±‚ðØ’f‚³‚ê‚Ü‚·
-@‚Ü‚½Aƒ_ƒ“ƒT[Eƒo[ƒh‚̌݊·«‚Í‚©‚È‚è‰ö‚µ‚¢‚Å‚·
-@ƒ_ƒ“ƒT[Eƒo[ƒh‚ªƒXƒƒbƒg“à‚Ç‚±‚©‚É‹‚éƒAƒJƒEƒ“ƒg‚Å‚Ì”½“]‚ÍAˆÈ‰º‚Ì“_‚É’ˆÓ‚µ‚ĉº‚³‚¢
-@E•K‚¸”½“]‚³‚¹‚é‘O‚É‚»‚̃Lƒƒƒ‰ƒNƒ^[‚ðƒXƒLƒ‹ƒŠƒZƒbƒg‚µ‚Ä‚­‚¾‚³‚¢
-@@‚»‚Ì‚Ü‚Ü”½“]‚³‚¹‚é‚ÆA‹¤’Ê‚·‚éƒXƒLƒ‹(ŠyŠí‚Ì—ûK“™)‚µ‚©Žc‚ç‚È‚­‚È‚Á‚Ä‚µ‚Ü‚¢‚Ü‚·
-@Eƒ_ƒ“ƒT[Eƒo[ƒhê—p•Ší‚ð‘•”õ‚µ‚Ä‚¢‚éꇂÍAŠO‚µ‚Ä‚©‚甽“]‚³‚¹‚Ä‚­‚¾‚³‚¢
-@@‚»‚Ì‚Ü‚Ü”½“]‚³‚¹‚é‚ÆA‚»‚̃Lƒƒƒ‰ƒNƒ^[‚ÌŠJŽnŽž‚É
-@@ƒNƒ‰ƒCƒAƒ“ƒgƒGƒ‰[‚ªo‚Ü‚·io‚邾‚¯‚ÅA—Ž‚¿‚邱‚Æ‚Í‚È‚¢‚Ì‚Å‚·‚ªcj
-Eƒf[ƒ^ƒx[ƒXC³ by Ž‚Žqo^.^o
- (map/)
- chrif.c
- packet_len_table[]Achrif_parse()C³
- chrif_changesex()Achrif_changedsex()’ljÁ
- chrif.h C³
- (char/)
- char.c
- parse_frommap()Aparse_tologin()C³
- (login/)
- login.c
- parse_fromchar()C³
- (db/)
- cast_db.txt C³
- skill_require_db.txt C³
-
---------------
-//0751 by Ž€_
-
-Eskill_db.txt‚Æcast_db.txt‚Ì•ÏX‚Æskill_require_db.txt‚̒ljÁB
-E“Å‚É‚©‚©‚é‚ÆHP‚ªŒ¸‚é‚悤‚É•ÏXBHP‚Í1•b‚ÉÅ‘åHP‚Ì1%Œ¸‚è‚Ü‚·B(–¢ƒeƒXƒg)
-EΉ»‚ðis’†‚Ì•¨‚ÆŠ®‘S‚È•¨‚É•ª‚¯‚ÄHP‚ªŒ¸‚é‚悤‚É•ÏXB(1•b‚ÉÅ‘åHP‚Ì1%)ƒuƒŒƒbƒVƒ“ƒO‚ÅŠ®‘SΉ»‚¾‚¯Ž¡‚¹‚é‚悤‚ÉC³B(–¢ƒeƒXƒg)
-Eƒnƒ“ƒ^[‚̃gƒ‰ƒbƒv‚ɃGƒtƒFƒNƒgŽÀ‘•B‚½‚¾ƒ‰ƒ“ƒhƒ}ƒCƒ“‚ƃVƒ‡ƒbƒNƒEƒF[ƒu‚Í”š”­ƒGƒtƒFƒNƒg‚ªo‚È‚¢‚悤‚Å‚·Bƒ‰ƒ“ƒhƒ}ƒCƒ“‚̓tƒ@ƒCƒAƒsƒ‰[‚Ì”š”­ƒGƒtƒFƒNƒg‚ªo‚é‚悤‚É•Ï‚¦‚Ä‚¢‚Ü‚·B
-EƒI[ƒgƒJƒEƒ“ƒ^[‚Ì•ûŒüƒ`ƒFƒbƒN‚ð‚·‚é‚悤‚É•ÏX‚Æ–{ŽIŽd—l‚ɇ‚킹‚Ü‚µ‚½B
-EƒoƒbƒNƒXƒ^ƒu‚à•ûŒüƒ`ƒFƒbƒN‚ð‚·‚é‚悤‚É•ÏXB
-EƒCƒ“ƒeƒBƒ~ƒfƒCƒg‚̈—•ÏXB
-EƒfƒBƒtƒFƒ“ƒ_[‚̈ړ®‘¬“xŒ¸­‚ð–{ŽI‚ɇ‚킹‚Ü‚µ‚½BASPD‚ÍŸŽè‚È‚ª‚ç
-(30 - (skilllv*5))%‚ªŒ¸‚é‚悤‚É‚µ‚Ü‚µ‚½‚ª–{ŽI‚Å‚¢‚­‚ç’öŒ¸‚é‚Ì‚©‚Ìî•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
-Eƒgƒ“ƒlƒ‹ƒhƒ‰ƒCƒuLV1‚ňړ®‘¬“x‚ª150‚©‚ç312‚É‚È‚é‚Ì‚ªŠm”F‚³‚ê‚ÄŒvŽZ‚ð•ÏX‚µ‚Ü‚µ‚½‚ªƒŒƒxƒ‹‚É‚æ‚Á‚Ä‚Ç‚ê‚®‚ç‚¢‘‰Á‚·‚é‚©‚Í•s–¾‚Å‚·Bî•ñ‚ð‹‚ß‚Ü‚·B(¡‚ÌŒvŽZŽ®‚Í“K“x‚Éì‚Á‚½•¨‚Å‚·B)
-Eƒ|[ƒVƒ‡ƒ“»‘¢‚ÌŒvŽZŽ®•ÏX‚Æ‚¿‚å‚Á‚ÆC³B
-Eˆê•”’n–ʃXƒLƒ‹‚Ìd‚Ë’u‚«‚ð‹ÖŽ~B
-EbNoMagicDamage‚Å–‚–@‚É‚æ‚éˆÙí‚âƒXƒe[ƒ^ƒXƒAƒbƒvŒø‰Ê‚ªo‚È‚¢‚悤‚ÉC³B(ƒŠƒUƒŒƒNƒVƒ‡ƒ“ˆÈŠO‚Ì–‚–@‚Í–³Œø‚É‚È‚è‚Ü‚·B)
-Ebattle_athena.conf‚É€–ڒljÁB
-E‚»‚Ì‘¼FX‚ÆC³B
-E•ÏX‚³‚ꂽskill_db.txtAcastdb.txt‚ƒljÁ‚³‚ꂽskill_require_db.txt‚Ì\‘¢‚Í¡‚ÌŠŽ©•ª‚µ‚©’m‚ç‚È‚¢‚Ì‚Ådb_ref.txt‚Éà–¾‚ð’ljÁ‚·‚é—\’è‚È‚Ì‚Å‚»‚ê‚Ü‚Å‚Í‚±‚ê‚ç‚Ì•ÏX‚ÍT‚¦‚Ä‚­‚¾‚³‚¢B
- (char/)
- int_guild.c C³B
- (conf/)
- battle_athena.conf C³B
- (doc/)
- conf_ref.txt C³B
- (db/)
- skill_db.txt C³B
- skill_require_db.txt C³B
- cast_db.txt C³B
- (map/)
- battle.h C³B
- battle.c
- battle_counttargeted()Abattle_calc_pet_weapon_attack() C³B
- battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
- battle_weapon_attack()Abattle_config_read() C³B
- skill.h C³B
- skill.c
- skill_attack()Askill_castend_damage_id() C³B
- skill_castend_nodamage_id()Askill_status_change_start() C³B
- skill_check_condition()Askill_castend_pos() C³B
- skill_use_id()Askill_use_pos() C³B
- skill_status_change_timer()Askill_status_change_start() C³B
- skill_check_unit_sub() ’ljÁB
- pc.h C³B
- pc.c
- pc_damage()Apc_counttargeted()Apc_counttargeted_sub() C³B
- mob.h C³B
- mob.c
- mob_countslave()Amob_counttargeted()Amob_counttargeted_sub() C³B
- mobskill_use()Amob_can_move()Amob_damage() C³B
- mobskill_use_id()Amobskill_use_pos()Amobskill_castend_id() C³B
- mobskill_castend_pos() C³B
- map.c
- map_quit() C³B
-
---------------
-//0750 by CHRIS
-
-EƒXƒLƒ‹ŠÖŒW‚ÌDB‚ð’²®
- (db/)
- skill_db.txt
- cast_db.txt
- skill_require_db.txt
-
---------------
-//0749 by Ž€_
-
-EFX‚Æ•ÏX‚ÆC³B
-EƒXƒLƒ‹‚ÌŽd—l•ÏX‚âŽÀ‘•Aó‘ÔˆÙí‚ÌŽd—l•ÏX‚âŽÀ‘•B
-EƒXƒLƒ‹‚ÌŽg—pðŒ‚ðdb‚ÉÝ’è‚Å‚«‚é‚悤‚É•ÏXB
-Eskill_db.txt‚Æcast_db.txt‚ÌŽd—l•ÏXB
-Eƒ}ƒbƒvŽI‚Ì–³ŒÀƒ‹[ƒv‰Â”\«‚ª‚ ‚é•”•ª‚ðC³B(‚ ‚­‚Ü‚Å‚à‰Â”\«‚ª
-‚ ‚Á‚½‚¾‚¯‚Ì•¨‚Å‚·B–³ŒÀƒ‹[ƒv‚ÌŒ´ˆö‚Æ‚Í’fŒ¾‚Å‚«‚Ü‚¹‚ñB)
-Eƒgƒ‰ƒbƒv‚Ì”­“®ŽÀ‘•B(‚½‚¾ŽÀÛ‚É“®ì‚Í‚Ü‚¾C³‚µ‚Ä‚¢‚Ü‚¹‚ñB
-Œ©‚½–Ú‚ª•Ï‚í‚Á‚½‚¾‚¯‚Å‚·B)
-Ebattle_athena.conf‚É€–ڒljÁ‚ðíœB
-E0748‚ÌC³íœ‚Æ•¶Žš‰»‚¯C³B
-Eskill_db.txtAcast_db.txtAskill_require_db.txt‚Ì•û‚ª‚Ü‚¾Š®¬‚³‚ê‚Ä‚¢‚È‚¢‚Ì‚Å
-‚©‚È‚è‚̗ʂ̃XƒLƒ‹‚ª³‚µ‚­“®ì‚µ‚Ü‚¹‚ñB(db_ref.txt‚ÉÝ’è•û–@‚ð“ü‚ê‚È‚¢‚Æ
- ‚¯‚È‚¢‚Ì‚Å‚·‚ªŽžŠÔ‚ª‚È‚©‚Á‚½‚Ì‚Å...) ‚»‚µ‚ÄC³‚Í‚µ‚Ü‚µ‚½‚ªƒeƒXƒg‚Í
-–w‚ñ‚Ç‚µ‚Ä‚Ü‚¹‚ñ‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
- (char/)
- char.c C³B
- int_party.h C³B
- int_party.c C³B
- int_guild.h C³B
- int_guild.c C³B
- int_pet.h C³B
- int_pet.c C³B
- int_storage.h C³B
- int_storage.c C³B
- char‚Ì•û‚͑債‚½C³‚Í‚µ‚Ä‚Ü‚¹‚ñB
- (conf/)
- battle_athena.conf C³B
- (doc/)
- conf_ref.txt C³B
- (db/)
- skill_db.txt C³B
- cast_db.txt C³B
- skill_require_db.txt ’ljÁB
- produce_db.txt C³B
- (map/)
- map.h C³B
- map.c
- map_check_dir() ’ljÁB
- map_readmap()Amap_addblock()Amap_delblock() C³B
- map_foreachinarea()Amap_foreachinmovearea() C³B
- map_addflooritem() C³B
- pc.h C³B
- pc.c
- pc_spiritball_timer()Apc_addspiritball()Apc_delspiritball() C³B
- pc_steal_item()Apc_steal_coin()Apc_calcstatus() C³B
- pc_checkallowskill()Apc_jobchange()Apc_checkweighticon() C³B
- pc_damage()Apc_equipitem()Apc_walk()Apc_stop_walking() C³B
- pc_authok()Apc_counttargeted()Apc_counttargeted_sub() C³B
- pc_damage()Apc_setpos() C³B
- skill.h C³B
- skill.c
- skill_get_range()Askill_get_sp()Askill_get_num() C³B
- skill_get_cast()Askill_get_delay() C³B
- skill_get_hp()Askill_get_zeny()Askill_get_time() ’ljÁB
- skill_get_time2()Askill_get_weapontype() ’ljÁB
- skill_get_unit_id()Askill_blown()Askill_additional_effect() C³B
- skill_attack()Askill_castend_damage_id() C³B
- skill_castend_nodamage_id()Askill_castend_id() C³B
- skill_castend_pos()Askill_unit_onplace() C³B
- skill_unit_timer_sub_onplace()Askill_unitsetting() C³B
- skill_use_id()Askill_use_pos()Askill_check_condition() C³B
- skill_status_change_end()Askill_status_change_timer() C³B
- skill_status_change_start()Askill_can_produce_mix() C³B
- skill_produce_mix()Askill_gangsterparadise() C³B
- skill_gangster_out()Askill_gangster_in() C³B
- skill_gangster_count() ’ljÁB
- skill_readdb() C³B
- battle.h C³B
- battle.c
- distance()Abattle_counttargeted()Abattle_get_range() ’ljÁB
- battle_get_dir() ’ljÁB
- battle_get_maxhp()Abattle_get_str()Abattle_get_agi() C³B
- battle_get_vit()Abattle_get_dex()Abattle_get_int() C³B
- battle_get_luk()Abattle_get_flee()Abattle_get_hit() C³B
- battle_get_flee2()Abattle_get_critical()Abattle_get_baseatk() C³B
- battle_get_atk()Abattle_get_atk2()Abattle_get_def() C³B
- battle_get_def2()Abattle_get_mdef()Abattle_get_speed() C³B
- battle_get_adelay()Abattle_get_amotion()Abattle_get_party_id() C³B
- battle_get_guild_id()Abattle_get_size() C³B
- battle_check_undead() ’ljÁB
- battle_check_target()Abattle_addmastery() C³B
- battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
- battle_calc_pc_weapon_attack()Abattle_weapon_attack() C³B
- clif.h C³B
- clif.c
- clif_skillinfo()Aclif_skillinfoblock()Aclif_skillup() C³B
- clif_item_skill()Aclif_changeoption()Aclif_parse_LoadEndAck() C³B
- clif_01ac() ’ljÁB
- clif_parse_WalkToXY()Aclif_parse_ActionRequest() C³B
- clif_parse_TakeItem()Aclif_parse_DropItem() C³B
- mob.h C³B
- mob.c
- mobskill_castend_id()Amobskill_castend_pos() C³B
- mobskill_use_id()Amobskill_use_pos()Amob_heal() C³B
- mob_spawn()Amob_damage()Amob_walk() C³B
- mob_stop_walking()Amob_warp()Amob_counttargeted() C³B
- mob_counttargeted_sub()Amob_countslave() C³B
- mob_attack()Amob_target()Amob_ai_sub_hard_activesearch() C³B
- mob_ai_sub_hard_mastersearch()Amob_ai_sub_hard() C³B
- script.c
- buildin_sc_start() C³B
- path.c
- can_move() C³B
- pet.c
- pet_data_init()Apet_stop_walking() C³B
- npc.c
- npc_parse_warp()Anpc_parse_shop()Anpc_parse_script() C³B
-
---------------
-//0748 by Michael
- (map/)
- pc.c
- pc_walk();
- Fix Player cannot move in ICEWALL but have Path.
- mob.c
- mob_walk();
- Fix Monster cannot move in ICEWALL but have Path.
- path.c
- can_move();
- Fix Player&Monster cannot move in ICEWALL.
-
---------------
-//0747 by ¹
-Eƒyƒbƒg‚ªƒGƒ‚‚ðo‚·‚Æmap-server‚ª—Ž‚¿‚邱‚Æ‚ª‚ ‚Á‚½–â‘è‚ðC³B
- (map/)
- clif_parse_SendEmotion() C³B
-
---------------
-//0746 by Michael
- (map/)
- script.c
- Add Script command - checkoption(type);
- Attach a npc_testchkoption.txt npc script!
-
---------------
-//0745 by ‚Ò‚´‚Ü‚ñ
-EƒMƒƒƒ“ƒOƒXƒ^[ƒpƒ‰ƒ_ƒCƒXŽÀ‘•
-EPvPƒGƒŠƒA‚Ìmapflag‚ðC³(“¯Žm“¢‚¿‚ª–³‚­‚È‚Á‚½‚©‚ÆŽv‚¢‚Ü‚·)
-EƒV[ƒYƒ‚[ƒh‚ŃmƒbƒNƒoƒbƒN‚ª‚ ‚Á‚½ƒoƒO‚ðC³
-EƒCƒ“ƒeƒBƒ~‚Ì’x‰„ŽžŠÔ‚ð­‚µ’²®
- (map/)
- skill.c
- skill_attack()Askill_additional_effect()C³
- skill_gangsterparadise()Askill_gangster_in()Askill_gangster_out()’ljÁ
- clif.c
- clif_parse_ActionRequest()C³
- mob.c
- mob_target()Amob_attack()C³
- mob_ai_sub_hard()Amob_ai_sub_hard_mastersearch()C³
- mob_ai_sub_hard_activesearch()C³
- map.h C³
- skill.h C³
- (conf/)
- npc_pvp.txt C³
-
---------------
-//0744 by ¹
-
-EƒAƒCƒXƒEƒH[ƒ‹AƒƒeƒIƒXƒg[ƒ€‚̃Rƒ“ƒ{‚ŃƒeƒIƒXƒg[ƒ€‚̃GƒtƒFƒNƒg‚ª•\Ž¦‚³‚ê‚È‚­‚È‚é–â‘è‚ðC³B
-EHP‹zŽûƒXƒLƒ‹‚̃GƒtƒFƒNƒgC³B
-Ebattle_athena.conf‚É€–ڒljÁB
-EƒpƒPŽü‚è‚Ìׂ©‚¢C³B
- (conf/)
- battle_athena.conf
- (doc/)
- conf_ref.txt
- (map/)
- battle.c
- battle.h
- clif.c
- pc.c
- pet.c
- skill.c
-
---------------
-//0743 by J
-
-EŽæ‚芪‚«¢Š«‚È‚Ç‚ð–{ŽI‚ÉŽ—‚¹‚éˆ×‚ÌC³B
-@‚ ‚Æ–{ŽI‘ŠˆáƒXƒŒ‚É‚ ‚Á‚½ƒSƒXƒŠƒ“‚ÌŽæ‚芪‚«‚ðC³B
-@ƒfƒŠ[ƒ^[‚Ì‹ó‚Æ’n‚̃XƒLƒ‹‚ª‹t‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ðC³B
- (db/)
- mob_skill_db.txt C³
-
---------------
-//0742 by ‚Ò‚´‚Ü‚ñ
-
-EƒCƒ“ƒeƒBƒ~ƒfƒCƒg‚ðŽÀ‘•
-@UŒ‚‚ƃ[ƒv‚Ì•ª•Ê‚ª‚¤‚Ü‚­‚¢‚©‚È‚©‚Á‚½‚Ì‚Å
-@SC_INTIMIDATE‚ðŽg‚Á‚Ä’x‰„ˆ—‚ð‚µ‚Ü‚µ‚½
-Eskill_db‚̌뎚“™‚ðC³
- (map/)
- skill.c
- skill_additional_effect()Askill_castend_map()C³
- skill_castend_nodamage_id()AC³
- skill_status_change_start()Askill_status_change_end()C³
- map.h C³
- skill.h C³
- (db/)
- skill_db.txt C³
-
---------------------
-//0741 by whitedog
-
-snapshot
-
---------------
-//0740 by ‚Û‚Û‚Û
-EPC‚ªMOB‚Ƀ^ƒQ‚ç‚ꂽ‚Æ‚«3•C–Ú‚©‚ç–hŒä‚Ɖñ”ð‚ªŒ¸‚é‚悤‚É‚µ‚½B
-@1•C‚ɂ‚«‰ñ”ð‚Í10%A–hŒä‚Í5%Œ¸‚è‚Ü‚·B
- (map/)
- pc.h
- pc.c
- pc_counttargeted()Apc_counttargeted_sub()’ljÁ
- battle.c
- battle_get_flee()Abattle_get_def()Abattle_get_def2()C³B
-
---------------
-//0739 by ¹
-Eƒtƒ@ƒCƒA[ƒEƒH[ƒ‹“™‚ÌÝ’uŒnƒXƒLƒ‹‚ª³‚µ‚­•\Ž¦‚³‚ê‚È‚¢–â‘è‚ðC³B
-Eƒ}ƒŠƒ“ƒXƒtƒBƒA‚ªŽ©”š‚·‚é‚ƃTƒ“ƒ_[ƒXƒg[ƒ€“™‚̃_ƒ[ƒW‚ª•\Ž¦‚³‚ê‚È‚­‚È‚é–â‘è‚ðC³B
-EHP‹zŽûŒnƒXƒLƒ‹‚Å“G‚ª‰ñ•œ‚µ‚Ä‚éƒGƒtƒFƒNƒg‚ªo‚é‚悤C³B
- (map/)
- skill.c
- skill_castend_damage_id() C³B
- battle.c
- battle_calc_misc_attack() C³B
- clif.c
- clif_getareachar_skillunit() C³B
- clif_skill_setunit() C³B
-
---------------
-//0738 by ‚Ò‚´‚Ü‚ñ
-EƒXƒg[ƒ€ƒKƒXƒg‚ðŠ®‘S‚É–{ŽIŽd—l‚ÉC³(3‰ñ‚Åâ‘Γ€Œ‹•“€Œ‹ó‘Ô‚Ì“G‚ÍSG‚ð‚­‚ç‚í‚È‚¢)
-EƒTƒtƒ‰ƒMƒEƒ€‚ªŽ©•ª‚É‚©‚¯‚ç‚ê‚éƒoƒOC³
- (map/)
- skill.c
- skill_additional_effect()Askill_attack()C³
- skill_castend_nodamage_id()C³
- map.h C³
-
---------------
-//0737 by ‚Û‚Û‚Û
-EƒAƒ“ƒNƒ‹‚ª•à‚¢‚Ä‚¢‚é“G‚ÉŒø‚©‚È‚¢&•¡”‚Ì“G‚ÉŒø‚­‚Ì‚ðC³B
- (map/)
- skill.c
- skill_unit_onplace()Askill_unit_onout()C³
- mob.c
- mob_stop_walking()C³
-
---------------
-//0736 by ‚Ò‚´‚Ü‚ñ
-Eó‘ÔˆÙí‘Ï«‚ªŒø‰ÊŽžŠÔ‚É‚à‹y‚Ô—l‚ÉC³B”­“®—¦‚Æ“¯—¦‚ÅŒø‰ÊŽžŠÔ‚ªŠ„‚èˆø‚©‚ê‚Ü‚·
-EƒXƒg[ƒ“ƒJ[ƒX‚ÌŒø‰ÊŽžŠÔ‚ð‰i‹v‚©‚çƒ}ƒWƒXƒŒƒeƒ“ƒvƒŒ€‹’‚É
-EUŒ‚‚ðŽó‚¯‚½Žž‚Ƀyƒbƒg‚ÌŽx‰‡UŒ‚‚ðŽó‚¯‚ç‚ê‚È‚¢‚悤C³(ƒRƒƒ“ƒgƒAƒEƒg‚µ‚½‚¾‚¯)
-@‚±‚ê‚ÍVITŒ^‚Ƀyƒbƒg‚ð•t‚¯‚Ä•ú’u‚·‚邾‚¯‚ÅŽ©“®‚ŃŒƒxƒ‹ã‚°‚ª‚Å‚«‚é‚Ì‚ð
-@–h‚®‚½‚ß‚ÌŽb’è“I‚Ȉ’u‚Å‚·
- (map/)
- skill.c
- skill_castend_nodamage_id()Askill_addisional_effect()C³
- skill_status_change_start()C³
- pc.c
- pc_damage() C³
-
---------------
-//0735 by ‚Û‚Û‚Û
-
-E“G‚ð“|‚µ‚ăŒƒxƒ‹‚ªã‚ª‚Á‚½‚Æ‚«PTŒö•½”͈͂̃`ƒFƒbƒN‚ð‚·‚é‚悤‚É‚µ‚½B
-EƒI[ƒgƒJƒEƒ“ƒ^[‰¼ŽÀ‘•B
-@Œü‚«‚âŽË’öƒ`ƒFƒbƒN‚Í‚µ‚Ä‚¢‚Ü‚¹‚ñB‚Ü‚½ƒ^ƒCƒ~ƒ“ƒO‚ª‚¨‚©‚µ‚¢‚©‚à‚µ‚ê‚Ü‚¹‚ñB
-@MOBƒXƒLƒ‹‚Æ‚µ‚ÄŽg‚¤‚Æ‚«‚̓^[ƒQƒbƒg‚ðself‚É‚µ‚Ä‚­‚¾‚³‚¢B
- (conf/)
- battle_athena.conf€–ڒljÁ
- (doc/)
- conf_refC³
- (map/)
- battle.h
- battle.c
- battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack()
- battle_config_read()C³
- pc.c
- pc_checkbaselevelup()Apc_attack_timer()C³
- skill.c
- skill_castend_nodamage_id()Askill_status_change_start()C³
- clif.c
- clif_parse_WalkToXY()C³
- mob.c
- mob_attack()C³
-
---------------
-//0734 by Ž€_
-
-Eplayer_skillup_limit‚̈—C³‚Æׂ©‚¢C³B
-Eplayer_skillup_limit‚ªyes‚Ìê‡skill_tree.txt‚Åݒ肳‚ê‚Ä‚é‚»‚̉ºˆÊE‹Æ‚Ì
-ƒXƒLƒ‹ƒcƒŠ[‚ðŽg‚¢‚Ü‚·‚Ì‚Å‚»‚ÌE‹Æ‚Å‚Í–³‚­‚È‚é‚Í‚¸‚̃XƒLƒ‹‚ªo‚邱‚Æ‚ª
-‚ ‚è‚Ü‚·‚ª‚±‚ê‚ÍŽd—l‚Å‚ ‚èƒoƒO‚Å‚Í‚ ‚è‚Ü‚¹‚ñBƒoƒO•ñ‚³‚ê‚Ä‚à–³Ž‹‚µ‚Ü‚·B
- (doc/)
- conf_ref.txt C³B
- (char/)
- char.c
- mmo_char_sync_timer()Ado_init() C³B
- inter.c
- inter_init() C³B
- inter_save_timer() íœB
- (map/)
- pc.c
- pc_calc_skilltree() C³B
- pc_resetskill() C³B
-
---------------
-//0733 by Ž€_
-
-EƒoƒOC³‚Æׂ©‚¢C³B
-EŽ€‚ñ‚¾Œã‚É‚·‚®‚ɃZ[ƒuƒ|ƒCƒ“ƒg‚ɖ߂炸‚É‚µ‚΂炭•ú’u‚µ‚Ä‚é‚ÆA
-•ú’u‚µ‚Ă鎞ŠÔ‚É‚æ‚Á‚ÄŒoŒ±’l‚ªŒ¸­‚·‚éƒoƒOC³B(–¢ƒeƒXƒg)
-Emob_availe.txt‚Åݒ肵‚½ƒ‚ƒ“ƒXƒ^[‚Ƀ‚ƒ“ƒXƒ^[î•ñ‚ðŽg‚¤‚¿ˆÆ—Ž‚¿‚·‚é–â‘èC³B
-Ebattle_athena.conf‚É€–ڒljÁB
-E‚»‚Ì‘¼×‚©‚¢C³B
- (conf/)
- battle_athena.conf C³B
- (doc/)
- conf_ref.txt C³B
- (map/)
- clif.c
- clif_skill_estimation()Aclif_parse_Restart() C³B
- pc.c
- pc_setrestartvalue()Apc_makesavestatus() C³B
- pc_read_gm_account()Apc_calc_skilltree() C³B
- pc_calc_skillpoint() ’ljÁB
- map.c
- map_quit() C³B
- mob.c
- mob_damage() C³B
- skill.c
- skill_unit_timer_sub()Askill_unit_timer() C³B
- battle.h C³B
- battle.c
- battle_config_read() C³B
-
---------------
-//0732 by Kalen
-
-Enpc_town_kafra.txt‚Ì‘S–ÊŒ©’¼‚µ
- ƒJƒvƒ‰—˜—pŒ”‚Ì”pŽ~
- ‘qŒÉ—˜—p—¿‚ð–{ŽI(jRO)‚Æ“¯ˆê‰¿Ši‚É’²®
- ƒJ[ƒgŽg—p—¿‚ð–{ŽI(jRO)‚Æ“¯ˆê‰¿Ši‚É’²®
- ƒ|ƒCƒ“ƒgŽQÆ•ÏX
- ƒWƒ…ƒm[‚̃Z[ƒuƒ|ƒCƒ“ƒgC³
- ƒAƒ}ƒc‚̃Z[ƒuƒ|ƒCƒ“ƒgC³
-
---------------
-//0731 by ‚Û‚Û‚Û
-
-E•ž‚ÌF‚ð•Û‘¶‚·‚é‚©battle_athena.conf‚Å‘I‘ð‚Å‚«‚é‚悤‚ÉB
-@•¾ŠQ‚ª‚ ‚é‚Ì‚Å•Û‘¶‚µ‚È‚¢‚悤‚É‚Æ‘‚¢‚Ä‚ ‚Á‚½‚̂ŃfƒtƒHƒ‹ƒg‚Å‚Í•Û‘¶‚µ‚Ü‚¹‚ñB
-EƒXƒNƒŠƒvƒg’ljÁ
-@strcharinfo(1) Ž©•ª‚̃p[ƒeƒB[–¼‚ðŽæ“¾‚µ‚Ü‚·B
-@strcharinfo(2) Ž©•ª‚̃Mƒ‹ƒh–¼‚ðŽæ“¾‚µ‚Ü‚·B
-@getcharid(1) Ž©•ª‚̃p[ƒeƒB[ID‚ðŽæ“¾‚µ‚Ü‚·B
-@getcharid(2) Ž©•ª‚̃Mƒ‹ƒhID‚ðŽæ“¾‚µ‚Ü‚·B
-@getpartyname(ID) ID‚ÅŽw’肵‚½ƒp[ƒeƒB[‚Ì–¼‘O‚ðŽæ“¾‚µ‚Ü‚·B
-@getguildname(ID) ID‚ÅŽw’肵‚½ƒMƒ‹ƒh‚Ì–¼‘O‚ðŽæ“¾‚µ‚Ü‚·B
- (map/)
- battle.h
- battle.c
- battle_config_read()C³
- pc.c
- pc_makesavestatus()C³
- script.c
- buildin_strcharinfo()C³
- buildin_getcharid()Abuildin_getpartyname()Abuildin_getpartyname_sub()
- buildin_getguildname()Abuildin_getguildname_sub()’ljÁ
-
---------------
-//0730 by ‚Ò‚´‚Ü‚ñ
-
-EƒXƒg[ƒ€ƒKƒXƒg‚Ì“€Œ‹ŽžŠÔ‚ð–{ŽI‚É‚ ‚킹‚ÄC³(ƒXƒLƒ‹ƒŒƒxƒ‹‚ÉŠÖŒW‚È‚­ˆê’è‚Ì“€Œ‹ŽžŠÔ(10•b)‚É‚È‚è‚Ü‚·)
-EƒXƒ^ƒ“AˆÃˆÅA’¾–ÙA“Å‚Ìó‘ÔˆÙ펞ŠÔ‚ÌuŒp‚¬‘«‚µv‚ª‚Å‚«‚È‚¢‚悤‚ÉC³
-Eó‘ÔˆÙ킪Š|‚©‚è‚É‚­‚·‚¬‚Ä‚½‚Ì‚ÅMOB‚Ìó‘ÔˆÙí‘Ï«‚ðŠÉ˜a(‚Ü‚½’²®‚·‚é‚©‚à)
- (map/)
- skill.c
- skill_castend_nodamage_id()Askill_addisional_effect()C³
- skill_status_change_start()C³
-
---------------
-//0729 by DRG
-
-EƒJ[ƒgƒŒƒ{ƒŠƒ…[ƒVƒ‡ƒ“‚ªƒJ[ƒg‚È‚µ‚ÅŽg‚¦‚½•s‹ï‡‚ÌC³
-EƒJ[ƒgƒŒƒ{ƒŠƒ…[ƒVƒ‡ƒ“‚ªJOBLV30‚ÅŠo‚¦‚ꂽ‚Ì‚ðC³
- (conf/)
- npc_event_skillget.txt
- ƒJ[ƒgƒŒƒ{ƒŠƒ…[ƒVƒ‡ƒ“€C³
- (map/)
- skill.c
- skill_check_condition()C³
-
---------------
-//0728 by ‚Û‚Û‚Û
-
-EE‚ª•Ï‚í‚Á‚Ä‚àƒMƒ‹ƒh‚ÌE‹Æ—“‚ªXV‚³‚ê‚È‚¢•s‹ï‡‚ÌC³B
-
- (char/)
- inter.c
- ƒpƒPƒbƒg’·ƒŠƒXƒgC³B
- int_guild.c
- mapif_guild_memberinfoshort()Amapif_parse_GuildChangeMemberInfoShort()A
- inter_guild_parse_frommap()C³
- (map/)
- intif.h
- intif.c
- intif_guild_memberinfoshort()Aintif_parse_GuildMemberInfoShort()
- intif_parse()C³
- guild.h
- guild_send_memberinfoshort()Aguild_recv_memberinfoshort()C³
-
-
---------------
-//0727 by ¹
-
-E•ŠíŒ¤‹†ƒXƒLƒ‹‚É‚æ‚Á‚ăzƒ‹ƒOƒŒƒ“‚Ȃǂ̸˜BNPC‚ª
-@³í‚É“®ì‚µ‚È‚¢–â‘è‚ðC³B
-
- (map/)
- pc.c
- pc_percentrefinery() C³B
-
---------------
-//0726 by ŒÓ’±—–
-
-Emob_skill_db2.txt‚ª‚ ‚ê‚Îmob_skill_db.txt‚ðƒI[ƒo[ƒ‰ƒCƒh‚·‚é‚悤‚ÉC³
- ƒIƒŠƒWƒiƒ‹‚ÌMOBŽg—pŽž‚âAŒ»sMOB‚ÌŽg—pƒXƒLƒ‹‚ð•ÏX‚µ‚½‚¢ê‡‚ÉB
-
-Emob_skill_db.txt‚Åmob_id‚ÌŽŸ‚̃_ƒ~[•¶Žš—ñ‚ª"clear"‚¾‚Á‚½ê‡A
- ‚»‚ÌMOB‚̃XƒLƒ‹‚ð‰Šú‰»‚·‚é‹@”\’ljÁB
- Emob_skill_db2.txt‚Å‚ ‚éMOB‚̃XƒLƒ‹‚ðŠ®‘S‚É‘‚«Š·‚¦‚é‚Æ‚«‚ÉŽg—p‚µ‚Ä
- ‚­‚¾‚³‚¢B
- Eclear‚µ‚È‚©‚Á‚½ê‡‚Ímob_skill_db.txt‚Ì‚à‚̂ɒljÁ‚³‚ê‚Ü‚·B
-
- mob.c
- mob_readskilldb()C³
-
-
-EƒAƒCƒeƒ€–¼/MOB–¼‚ª‘SŠp12•¶Žši24ƒoƒCƒgj‚ ‚éƒAƒCƒeƒ€/MOB‚ªA
- @ƒRƒ}ƒ“ƒh‚ÅŽæ‚èŠñ‚¹/¢Š«‚Å‚«‚È‚¢–â‘èC³B
- mob.c
- mobdb_searchname()C³
- itemdb.c
- itemdb_searchname_sub()C³
-
-EŒ»ÝŽž‚ŃCƒxƒ“ƒg‚ð‹N‚±‚·uŽžŒvƒCƒxƒ“ƒgv‹@”\‚ð’ljÁ
- EOnInit‚Æ“¯‚¶‚悤‚É‚»‚ꂼ‚ê‚ÌNPC‚ÅAOn`‚ÅŽn‚܂郉ƒxƒ‹‚ð’è‹`‚µ‚Ü‚·B
- OnMinute?? F–ˆŽžA??•ª‚ɃCƒxƒ“ƒg‚ð‹N‚±‚µ‚Ü‚·B(0-59)
- OnHour?? F–ˆ“úA??Žž‚ɃCƒxƒ“ƒg‚ð‹N‚±‚µ‚Ü‚·B(0-23)
- OnClock???? F–ˆ“úA??Žž??•ª‚ɃCƒxƒ“ƒg‚ð‹N‚±‚µ‚Ü‚·B
- OnDate???? F–ˆ”NA??ŒŽ??“ú‚ɃCƒxƒ“ƒg‚ð‹N‚±‚µ‚Ü‚·B
- EÚ‚µ‚­‚Í npc_test_ev.txt ‚ðŽQÆ
-
- (conf/)
- npc_test_ev.txt
- “à—e’ljÁ
- (map/)
- npc.c
- FXC³
-
-E‚»‚Ì‘¼
- clif.c
- ƒRƒ“ƒpƒCƒ‹Œx‚ªo‚È‚¢‚悤‚ÉC³
-
---------------
-//0725 by Ž€_
-
-EŽI—Ž‚¿ƒoƒOC³B
-Eƒ‚ƒ“ƒXƒ^[‚ɃCƒxƒ“ƒg‚ªÝ’肳‚ê‚Ä‚¢‚ÄŽ©ŽE‚â‚È‚É‚©‚Ń_ƒ[ƒW‚ð—^‚¦‚½
-•¨‚ª‚È‚¢ê‡ŽI—Ž‚¿Šm’è‚È‚Ì‚Å‚»‚̃}ƒbƒv‚É‚ ‚éƒvƒŒƒCƒ„[‚ð—˜—p‚µ‚Ä
-ƒCƒxƒ“ƒgƒXƒNƒŠƒvƒg‚ðŽÀs‚·‚é‚悤‚É•ÏXB
- (map/)
- makefile C³B
- mob.c
- mob_timer()Amob_damage() C³B
-
---------------
-//0724 by Ž€_
-
-EƒoƒOC³‚ƈÀ’艻‚ׂ̈ÌC³B
-Eƒyƒbƒg‚ÌUŒ‚‚ŃCƒxƒ“ƒg‚ªˆ—‚³‚ꂸŽI—Ž‚¿‚É‚È‚é–â‘èC³B(–¢ƒeƒXƒg)
-Eƒ‚ƒ“ƒXƒ^[‚Ì‘å—Ê”­¶‚ÅŽI‚ª—Ž‚¿‚é–â‘èC³B(ƒ‚ƒ“ƒXƒ^[‚ð10000•C‚ðŒÄ‚ñ‚Å
-–‚–@‚Å“|‚·‚±‚Æ‚ð5‰ñ’öƒeƒXƒgB‚½‚¾“®‚©‚È‚¢‚â‚‚̂ÝB)
-EŽæ‚芪‚«‚ªƒ{ƒX‚ƈê‚ÉŽ€‚ÊŽžƒAƒCƒeƒ€‚ð—Ž‚Æ‚³‚È‚¢‚悤‚É•ÏXB(–¢ƒeƒXƒg)
-Ebattle_athena.conf‚Ìpc_skillflee‚ðplayer_skillfree‚É•ÏX‚µ‚Ĉ—‚ð•ÏXB
-EƒAƒCƒXƒEƒH[ƒ‹‚Éskill_unit_setting‚ðŽg‚¤ƒXƒLƒ‹‚ÅUŒ‚‚Å‚«‚È‚¢‚悤‚ÉC³B
-E‚»‚Ì‘¼×‚©‚¢C³­‚µBˆÀ’艻‚³‚ꂽ‚©‚Ç‚¤‚©‚Í‚Ü‚¾‚í‚©‚è‚Ü‚¹‚ñ‚ªXP1800+A512MAƒ‚ƒ“ƒXƒ^[”z’u50%‚Å10000•C¢Š«‚µ‚ĈÙí‚È‚©‚Á‚½‚Ì‚Å‘åä•v‚É‚È‚Á‚½‚ÆŽv‚¢‚Ü‚·B‘åä•v‚¶‚á‚È‚­‚Ä‚àÓ”C‚Í‚Æ‚ê‚Ü‚¹‚ñ‚ª...
- (conf/)
- battle_athena.conf C³B
- (doc/)
- conf_ref.txt C³B
- (map/)
- mob.h C³B
- mob.c
- mob_timer()Amob_deleteslave_sub()Amob_damage() C³B
- npc.c
- npc_event() C³B
- skill.c
- skill_area_sub()Askill_unit_onplace()Askill_castend_nodamage_id() C³B
- clif.c
- clif_parse_GMKick() C³B
- battle.h
- battle.c
- battle_damage()Abattle_check_target()Abattle_config_read() C³B
- pc.c
- pc_calc_skilltree()Apc_checkskill() C³B
- map.h C³B
- map.c
- map_foreachinarea()Amap_foreachinmovearea() C³B
- map_foreachobject() C³B
-
---------------
-//0723 by DRG
-
-E0719‚ÌC³
- (map/)
- pc.c pc_calc_skilltree()C³
-
---------------
-//0722 by ƒpƒCƒ“
-
-Egcc 2.29Œn—ñ‚Å‚àƒRƒ“ƒpƒCƒ‹‚ª’Ê‚é‚悤‚ÉC³B
-@‚±‚ê‚͈ȑO‚É‚à’¼‚µ‚½‚Í‚¸‚È‚Ì‚Å‚·‚ªA‚È‚º‚©Œ³‚É–ß‚Á‚Ä‚¢‚Ü‚µ‚½‚Ì‚Å
-@ŠF‚³‚ñ’ˆÓ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
-@‚ ‚ÆAgcc3Œn—ñ‚È‚ç’蔂͂ǂ±‚É‘‚¢‚Ä‚à–â‘è‚È‚¢‚Ì‚Å‚·‚ªA
-@gcc2.29Œn—ñ‚Å‚Íu•K‚¸ƒuƒƒbƒN—v‘f‚̈ê”Ôʼnv‚É‘‚©‚È‚¢‚ƃRƒ“ƒpƒCƒ‹‚ª
-@’Ê‚è‚Ü‚¹‚ñ‚Ì‚Å‚±‚¿‚ç‚à‚²’ˆÓŠè‚¢‚Ü‚·B
-
-ƒRƒ“ƒpƒCƒ‹‚ª’Ê‚é—á
-void hoge() {
- const char booboo = 1;
- c
-
-ƒRƒ“ƒpƒCƒ‹‚ª’Ê‚ç‚È‚¢—á
-void hoge() {
- c
- const char booboo = 1;
- c
-
- (map/)
- skill.h ƒ}ƒNƒ‚ðC³
- skill.c skill_addisional_effect()C³
-
---------------
-//0721 by ¹
-
-Eƒ{ƒX‚ɃŒƒbƒNƒXƒfƒr[ƒi‚ªŒø‚¢‚½–â‘è‚ðC³B
-Eƒ{ƒX‚ɃJ[ƒh‚É‚æ‚éó‘ÔˆÙ킪Œø‚©‚È‚©‚Á‚½–â‘è‚ðC³B
-@–{ŽI‚ł̓}ƒŠƒiƒJ[ƒh“™‚ŃI[ƒNƒq[ƒ[‚È‚Ç‚ð‰£‚é‚ÆŽžX“€Œ‹‚µ‚Ü‚·B
-@(Œ‹\”÷–­‚ÈŽÀ‘••û–@‚È‚Ì‚ÅA‰½‚©–â‘肪‚ ‚Á‚½ê‡
-@ ‚»‚Ì•ÓÚ‚µ‚¢•û‚¨‚è‚Ü‚µ‚½‚çC³‚µ‚Ä‚â‚Á‚Ä‚­‚¾‚³‚¢(^^; ))
-
---------------
-//0720 by ŒÓ’±—–
-
-EPC‚ÉIW‚ðd‚Ë‚é‚ÆMOB‚ªUŒ‚‚µ‚Ä‚±‚È‚¢–â‘è‚ðC³
- EIW‚Éd‚È‚Á‚Ä‚¢‚Ä‚àA—×ډ”\‚È‚çMOB‚ª‹ßŠñ‚Á‚Ä‚«‚Ü‚·
- E‚Ç‚ñ‚È’nŒ`‚É‚¢‚Ä‚àA—×Ú‚µ‚Ä‚¢‚é‚È‚çUŒ‚‰Â”\‚É‚È‚è‚Ü‚·
- E‚½‚¾‚µAMOB‚ª‰“‹——£UŒ‚‰Â”\‚ÅAUŒ‚”͈͓à‚ÉPC‚ª‚¢‚Ä‚àA
- —×Ú•s‰Â”\‚È‚çUŒ‚‚µ‚Ä‚«‚Ü‚¹‚ñB‚±‚ê‚Ì‰ðŒˆ‚Í‚©‚È‚è–Ê“|‚È‚Ì‚ÅB
-
- mob.c
- mob_can_reach()C³
- battle.c
- battle_check_range()C³
-
---------------
-//0719 by DRG
-
-E‰ºˆÊƒXƒLƒ‹‚ª‚È‚¢ê‡‚ÍãˆÊƒXƒLƒ‹‚ª‚Ó‚ê‚È‚¢‚悤‚É‚µ‚Ü‚µ‚½B
-@battle_athena.conf‚Ìskillflee‚ÅÝ’è‰Â”\‚Å‚·B
-@‰ºˆÊƒXƒLƒ‹‚ª‚È‚¢‚Ü‚ÜãˆÊƒXƒLƒ‹‚ð‚Ó‚Á‚½ó‘Ô‚ÅA‚±‚̃IƒvƒVƒ‡ƒ“‚ðŽg‚¤ê‡‚̓XƒLƒ‹ƒŠƒZƒbƒg‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B
-@ˆê”ʃAƒJ‚ɃXƒLƒ‹ƒŠƒZƒbƒg‚ð‰ð•ú‚µ‚½‚¢‚Æ‚«‚ÉŽg‚Á‚Ä‚â‚Á‚ĉº‚³‚¢B
- (conf/)
- battle_athena.conf
- (map/)
- battle.c
- battle.h
- pc.c pc_calc_skilltree(),pc_checkskill()C³
-
---------------
-//0718 by Ž€_
-
-EFX‚ÆC³B
-E“Å‚É‚æ‚Á‚Ä–hŒä‚ªŒ¸‚é‚悤‚É•ÏXB(HP‚Í‚Ü‚¾Œ¸‚è‚Ü‚¹‚ñB)
-EƒAƒCƒXƒEƒH[ƒ‹‚ÉUŒ‚‚Å‚«‚é‚悤‚É•ÏXB(¡‚Í‘S‚Ä‚ÌUŒ‚‚É“–‚½‚è‚Ü‚·B)
-‚½‚¾ˆÆ‚̃oƒO‚炵‚­ƒAƒCƒXƒEƒH[ƒ‹‚ðƒNƒŠƒbƒN‚·‚é‚ƈƂ©‚ç0x89ƒpƒPƒbƒg‚ª30‰ñˆÈã˜A‘±‚Å‘—‚Á‚Ä‚­‚邱‚Æ‚ª‹N‚±‚è‚Ü‚·‚ªŒ´ˆö‚Í•s–¾‚Å‚·B‘½•ªˆÆ‚̃oƒO‚¾‚ÆŽv‚¢‚Ü‚·‚ª...)
-E퓬‚ÉŠÖ‚í‚éŒvŽZ“™‚ðC³B
-Eƒ[ƒj‚ª‘‚¦‚éƒoƒOC³B(‘½•ª‚±‚ê‚Å‚±‚̃oƒO‚Í‚È‚­‚È‚é‚ÆŽv‚¢‚Ü‚·‚ª‚Ç‚¤‚È‚Ì‚©•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·B)
-E“ñ“—¬‚̶Žè•Ší‚ÌŽí‘°A‘®«ASize‚̃_ƒ[ƒW•â³‚ð‰EŽè•Ší‚É“K—p‚·‚é‚©‚Ç‚¤‚©‚ðÝ’è‚Å‚«‚é‚悤‚É•ÏXB
-E‚»‚Ì‘¼C³‚Í‚µ‚½‚Í‚¸‚Å‚·‚ªŠo‚¦‚Ä‚Ü‚¹‚ñB(C³‚µ‚Ä‚È‚¢•¨‚à‚ ‚è‚Ü‚·‚ªdiff“–‚Ä‚Ì“r’†‚Å‚Ç‚ê‚ðì‹Æ‚µ‚½‚Ì‚©‚ð–Y‚ꂽ‚Ì‚Å...)
- (common/)
- mmo.h C³B
- (conf/)
- battle_athena.conf C³B
- (doc/)
- conf_ref.txt C³B
- (map/)
- battle.h C³B
- battle.c
- battle_get_baseatk()Abattle_get_speed()Abattle_get_adelay() ’ljÁB
- battle_get_amotion() Abattle_calc_pet_weapon_attack() C³B
- battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
- battle_get_atk()Abattle_get_atk_()Abattle_get_atk2() C³B
- battle_get_attack_element()Abattle_get_attack_element2() C³B
- battle_get_str()Abattle_get_agi()Abattle_get_vit()Abattle_get_int() C³B
- battle_get_dex()Abattle_get_luk()Abattle_get_flee() C³B
- battle_get_flee2()Abattle_get_hit()Abattle_get_critical() C³B
- battle_get_def()Abattle_get_def2()Abattle_get_mdef() C³B
- battle_get_element()Abattle_check_target()Abattle_check_range() C³B
- battle_weapon_attack()Abattle_config_read() C³B
- clif.c
- clif_skill_estimation()Aclif_mob0078()Aclif_mob007b() C³B
- pc.c
- pc_attack_timer()Apc_attack()Apc_calcstatus()Apc_payzeny() C³B
- pc_getzeny() C³B
- npc.c
- npc_buylist()Anpc_selllist() C³B
- pet.c
- pet_attack()Apet_randomwalk()Apet_ai_sub_hard() C³B
- mob.h C³B
- mob.c
- calc_next_walk_step()Amob_attack()Amobskill_castend_id() C³B
- mobskill_use_id()Amobskill_use_pos()Amob_ai_sub_hard() C³B
- mob_damage()Amob_changestate() C³B
- mob_get_adelay()Amob_get_speed() íœB
- skill.h C³B
- skill.c
- skill_unitsetting()Askill_unit_ondamaged()Askill_unit_timer_sub() C³B
- skill_unit_timer()Askill_area_sub()Askill_unit_onplace() C³B
- skill_status_change_start() C³B
- chat.c C³B
- makefile C³B
- chrif.c C³B
- guild.c C³B
- itemdb.c C³B
- map.c C³B
- party.c C³B
- script.c C³B
- path.c C³B
-
---------------
-//0717 by ¹
-
-E‘å—ʂɃ‚ƒ“ƒXƒ^[‚ð¢ŠÒ‚µ‚Ĉê“x‚É“|‚·‚Æmap-server‚ª—Ž‚¿‚é–â‘è‚ðC³B
-@(ƒJƒz‚ð100‘Ì‚¸‚¢ŠÒ‚µ‚Ä50‰ñƒeƒXƒg‚ð‚µ‚½‚Ì‚Å‹°‚ç‚­‘åä•v‚¾‚ÆŽv‚¢‚Ü‚·B)
-E‚»‚Ì‘¼Œ‹\ׂ©‚¢C³
- (common/)
- mmo.h
- (map/)
- chat.c
- chrif.c
- clif.c
- guild.c
- itemdb.c
- map.c
- mob.c
- npc.c
- party.c
- path.c
- pc.c
- pet.c
- script.c
- skill.c
- skill.h
-
---------------
-//0716 by ¹
-
-E¸˜B¬Œ÷—¦‚ɑ΂µ‚ÄBS‚Ì•ŠíŒ¤‹†‚ª³‚µ‚­“K—p‚³‚ê‚Ä‚¢‚È‚©‚Á‚½–â‘è‚ðC³B
- (map/)
- pc.c
- pc_percentrefinery() C³B
-
---------------
-//0715 by Ž€_
-
-Eƒ}ƒbƒvƒT[ƒo[‚©‚ç•\Ž¦‚³‚ê‚镨‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©‚Ìݒ肪‚Å‚«‚é‚悤‚É‚µ‚Ü‚µ‚½BƒXƒLƒ‹•\Ž¦‚¾‚¯‚Å‚à‚È‚­‚µ‚Ä‚â‚é‚ƃT[ƒo[‚ª‚©‚È‚èŠy‚É‚È‚Á‚½‚è‚à‚µ‚Ü‚·B
-ŠJ”­‚âƒoƒOƒgƒŒ[ƒX‚ÌŽž‚Í•\Ž¦‚·‚邱‚Æ‚ð‚¨Š©‚ß‚µ‚Ü‚·B
-E‚»‚Ì‘¼×‚©‚¢C³B
-EC³‚µ‚½Š‚ð‘S‚Ä‘‚¯‚È‚¢‚̂Ńtƒ@ƒCƒ‹‚¾‚¯B
- (doc/)
- conf_ref.txt
- (conf/)
- battle_athena.conf
- (map/)
- makefile
- skill.c
- script.c
- pet.c
- pc.c
- path.c
- party.c
- npc.c
- itemdb.c
- intif.c
- guild.c
- chat.c
- battle.h
- battle.c
- chrif.c
- atcommand.c
- clif.c
- mob.c
- map.c
-
---------------
-//0714 by Ž€_
-
-Eׂ©‚¢C³B
-EƒV[ƒ‹ƒhƒu[ƒƒ‰ƒ“‚Å‚‚Ìd—ʂƸ˜B‚É‚æ‚Á‚ă_ƒ[ƒW‚ª‘‚¦‚é‚悤‚ÉC³B¸˜Bƒ_ƒ[ƒW‚ð‘«‚·Žž“K—p‚Ń_ƒ[ƒW+d—Ê+‚¸˜B*4(‚±‚Ì4‚Írefine_db.txt‚Ì–h‹ï‚̉ß踘Bƒ{[ƒiƒX‚ðŽg‚Á‚Ä‚é‚Ì‚Å•ÏX‰Â”\‚Å‚·B)‚É‚È‚è‚Ü‚·B
-EƒXƒLƒ‹‚É‚æ‚é‚«”ò‚΂µˆ—‚Å0x88ƒpƒPƒbƒg‚ðŽg‚Á‚Ä‚¢‚Ü‚µ‚½‚ª‚»‚̃pƒPƒbƒg‚Ì—D懈ʂª‚©‚È‚è’á‚¢‚炵‚­Œã‚Å—ˆ‚éƒpƒPƒbƒg‚É‚æ‚Á‚Ä–³Ž‹‚³‚ê‚邱‚Æ‚à‚ ‚é‚悤‚Ȃ̂ŃvƒŒƒCƒ„[‚¾‚¯‚É“K—p‚µ‚ă‚ƒ“ƒXƒ^[‚É‚Í0x78‚ðŽg‚¤‚悤‚É•ÏX‚µ‚Ü‚µ‚½B
-‚Å‚àˆÊ’u‚¸‚ê‚ÍŠ®‘S‚É‚È‚­‚È‚ç‚È‚¢‚悤‚Å‚·B(‹°‚ç‚­ˆÆ‚̃oƒO‚¾‚ÆŽv‚¢‚Ü‚·BŽI‚Ì
-À•W‚ðŠm”F‚µ‚Ä‚Ý‚Ü‚µ‚½‚ªŽI‚Ì•û‚Í–â‘肪‚ ‚è‚Ü‚¹‚ñ‚Å‚µ‚½B)
-ƒvƒŒƒCƒ„[‚Ìê‡0x78(PACKETVER‚ª4ˆÈã‚È‚ç0x1d8)‚ªŽg‚¦‚Ü‚¹‚ñB•ªg‚ðì‚Á‚Ä‚µ‚Ü‚¤‚Ì‚Å...
-EƒoƒO•ñƒXƒŒƒbƒh2 ‚Ì47‚ðŽæ‚èž‚Ý‚Ü‚µ‚½B
-E‚»‚Ì‘¼C³‚µ‚½Š­‚µ‚ ‚èB
- (db/)
- refine_db.txt C³B
- item_db.txt C³B
- (map/)
- battle.c
- battle_stopattack()Abattle_stopwalking() C³B
- battle_get_attack_element2()Abattle_calc_pc_weapon_attack() C³B
- battle_weapon_attack() C³B
- path.c
- path_blownpos() C³B
- pc.h C³B
- pc.c
- pc_stop_walking()Apc_damage() C³B
- pc_getrefinebonus() ’ljÁB
- mob.c
- mob_damage() C³B
- pet.c
- pet_target_check()Apet_stop_walking()Apet_performance() C³B
- skill.c
- skill_attack()Askill_blown()Askill_status_change_start() C³B
- skill_castend_damage_id() C³B
- makefile C³B
-
---------------
-//0713 by ‚Û‚Û‚Û
-
-Emob_avail.txt’ljÁBitem_avail.txt‚Æ“¯—l‚ÌŽw’è‚Ń‚ƒ“ƒXƒ^[‚ÌŒ©‚½–ڂ𑼂ÌID‚Ì‚à‚Ì‚É•ÏX‚µ‚Ü‚·B
-@ƒ‚ƒ“ƒXƒ^[‚ÌIDˆÈŠO‚ðŽw’肵‚½‚è‚·‚é‚ÆPC‚âNPC‚ÌŽp‚ð‚µ‚½MOB‚Ɉê•û“I‚ÉUŒ‚‚³‚ê‚éꇂª‚ ‚é‚Ì‚Å’ˆÓB
- (db/)
- mob_avail.txt ’ljÁB
- (map/)
- clif.c
- clif_mob0078()Aclif_mob007b() C³B
- mob.h C³B
- mob.c
- mob_readdb_mobavail()Amob_get_viewclass()’ljÁB
- do_init_mob()Amob_readdb() C³B
-
---------------
-//0712 by Ž€_
-
-EƒV[ƒ‹ƒhƒ`ƒƒ[ƒWAƒV[ƒ‹ƒhƒu[ƒƒ‰ƒ“ŽÀ‘•B
-EƒI[ƒgƒK[ƒh‚Í‚Æ‚è‚ ‚¦‚¸ƒGƒtƒFƒNƒg‚ªo‚é‚悤‚É•ÏX‚µ‚Ü‚µ‚½B
-E0708‚Å‘‚«–Y‚êBƒfƒBƒtƒFƒ“ƒ_[‚ðŽg‚Á‚½ŽžASPD‚ƈړ®‘¬“x‚Í20%’ቺ‚µ‚Ü‚·B
-–{ŽI‚Œቺ‚·‚é‚Ì‚ÍŠm‚©‚̂悤‚Å‚·‚ª‚Ç‚ê‚®‚ç‚¢‰º‚ª‚é‚Ì‚©‚Í‚³‚Á‚Ï‚è‚í‚©‚è‚Ü‚ñ‚Ì‚Å...
-E‚»‚Ì‘¼×‚©‚¢C³B
- (db/)
- cast_db.txt C³B
- skill_db.txt C³B
- (map/)
- battle.h C³B
- battle.c
- battle_calc_damage()Abattle_calc_pet_weapon_attack() C³B
- battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
- battle_calc_magic_attack()Abattle_calc_misc_attack() C³B
- skill.c
- skill_additional_effect()Askill_attack()Askill_castend_nodamage_id() C³B
- skill_check_condition()Askill_status_change_start() C³B
- skill_castend_damage_id() C³B
- pc.h C³B
- pc.c
- pc_calcstatus()Apc_checkallowskill()Apc_unequipitem() C³B
-
---------------
-//0711 by npc
-
-Ezλ‘¢ƒGƒtƒFƒNƒg‚ÌC³
-EƒXƒNƒŠƒvƒg–„‚ßž‚Ý•Ï”‚ÉHp,MaxHp,Sp,MaxSp‚ð’ljÁ(“Ç‚Ýž‚Ý‚Ì‚Ý)
- (map/)
- skill.c
- skill_produce_mix()C³B
- pc.c
- pc_readparam()C³B
- (db/)
- const.txt C³B
-
---------------
-//0710 by ŒÓ’±—–
-
-E–¼‘O‚É”¼ŠpƒXƒy[ƒX‚ª“ü‚Á‚½ƒp[ƒeƒB[‚ð쬂µ‚½‚Æ‚«A‚¨‚æ‚ÑA
- ”¼ŠpƒXƒy[ƒX‚ª“ü‚Á‚½–¼‘O‚ÌPC‚ðƒp[ƒeƒBƒƒ“ƒo‚É‚µ‚½‚Æ‚«A
- party.txt‚ª³‚µ‚­“Ç‚Ýž‚ß‚È‚­‚È‚é–â‘è‚ðC³
-
- (char/)
- int_party.c
- inter_party_fromstr()C³
-
-EMessage of the Day ‹@”\’ljÁ
- EƒƒOƒCƒ“‚µ‚½ƒ†[ƒU[‚ÉMOTD‚ð•\Ž¦‚³‚¹‚邱‚Æ‚ªo—ˆ‚Ü‚·B
- Emap-server.exeŽÀsŽž‚̃JƒŒƒ“ƒgƒfƒBƒŒƒNƒgƒŠihelp.txt‚Æ“¯‚¶
- ƒfƒBƒŒƒNƒgƒŠj‚Émotd.txt‚ðì‚é‚Æ•\Ž¦‚µ‚Ü‚·B
- EMOTD‚ª•\Ž¦‚³‚ê‚éƒ^ƒCƒ~ƒ“ƒO‚ÍA
- uƒ}ƒbƒvƒT[ƒo[‚ɃƒOƒCƒ“‚µ‚½’¼Œã‚ÌAƒ}ƒbƒvƒ[ƒhŠ®—¹Žžv‚Å‚·B
- ‚‚܂èAƒƒOƒCƒ“’¼ŒãAƒLƒƒƒ‰ƒZƒŒ’¼Œã‚¨‚æ‚ÑA
- ƒ}ƒbƒvƒT[ƒo[ŠÔˆÚ“®‚ÌŽž(ƒ}ƒbƒvƒT[ƒo[‚Ì•ªŽU‚ðs‚Á‚Ä‚¢‚éꇂ̂Ý)
- ‚̃}ƒbƒvƒ[ƒh‚ªI‚í‚Á‚½Žž‚É•\Ž¦‚³‚ê‚Ü‚·B
- E•\Ž¦•û–@‚Íhelp.txt‚Æ“¯‚¶‚Å•’ʂ̃ƒbƒZ[ƒW‚Æ‚µ‚Ä‘—M‚µ‚Ü‚·B
- iƒMƒ‹ƒh’mƒƒbƒZ[ƒW‚Í•¶Žš”§ŒÀ‚ª‚ ‚èAGMƒAƒiƒEƒ“ƒX‚Í’·ŽžŠÔ
- ‰æ–Ê‚Ìã•”‚É•\Ž¦‚³‚ê‚Ä‚µ‚Ü‚¤‚½‚ßj
- E‰ï˜b‚Æ‹æ•Ê‚ª‚‚­‚悤‚ÉA"< Message of the Day >"A"< End of MOTD >"
- ‚Ì•¶‚Å㉺‚ðˆÍ‚¢‚Ü‚·B
-
- (map/)
- pc.c
- pc_authok()C³
-
-
---------------
-//0709 by ‚Û‚Û‚Û
-
-EƒXƒNƒŠƒvƒg‚Éemotion’ljÁ
-@emotion n;‚ÆŽg‚¤‚ÆNPC‚ªƒGƒ‚‚ðo‚µ‚Ü‚·Bn‚Í0`33‚ªŽg—p‰Â”\B
-E¸˜B‚ÆŠXƒKƒCƒh‚ÌNPC‚ð–{ŽI‚̑䎌‚ɇ‚킹‚ÄC³B
- (conf/)
- npc_town_refine.txtAnpc_town_guide.txt C³B
- (map/)
- script.c
- buildin_emotion() ’ljÁB
-
---------------
-//0708 by Ž€_
-
-EƒXƒLƒ‹ƒLƒƒƒXƒgƒLƒƒƒ“ƒZƒ‹AƒfƒBƒtƒFƒ“ƒ_[AƒI[ƒgƒK[ƒhŽÀ‘•B
-EƒI[ƒgƒK[ƒh‚ÌꇃK[ƒh‚µ‚Ä‚àƒGƒtƒFƒNƒg‚Ío‚Ü‚¹‚ñBƒ~ƒX‚ɂȂ邾‚¯‚Å‚·B–{ŽI‚Ì•û‚Í•\Ž¦‚³‚ê‚é‚©‚Ç‚¤‚©‚à‚í‚©‚ç‚È‚¢‚µƒpƒPƒbƒgî•ñ‚à‚È‚¢‚Ì‚Å...
-EƒfƒBƒtƒFƒ“ƒ_[‚Í–¢ƒeƒXƒgBbLongAtkDef‚ðŽg‚Á‚Ä‚é‚̂Ńzƒ‹ƒ“ƒJ[ƒh‚̂悤‚ÉbLongAtkDef‚ðã‚°‚镨‚ð‘•”õ‚µ‚ÄŽg‚¤‚Ɖ“‹——£•¨—UŒ‚‚ð‘S‚Ä–³Œø‚É‚Å‚«‚Ü‚·B(‚±‚ê‚à–{ŽI‚ÌŽd—l‚ª‚Ç‚¤‚È‚Ì‚©‚Í‚í‚©‚è‚Ü‚¹‚ñB)
-E‚»‚Ì‘¼×‚©‚¢C³B
- (db/)
- cast_db.txt C³B
- (map/)
- map.h C³B
- map.c
- map_quit() C³B
- skill.h C³B
- skill.c
- skill_castend_nodamage_id()Askill_use_id()Askill_check_condition() C³B
- skill_castend_id()Askill_castend_nodamage_id()Askill_castcancel() C³B
- pc.c
- pc_calcstatus()Apc_setpos()Apc_damage() C³B
- battle.c
- battle_calc_damage()Abattle_damage() C³B
- clif.c
- clif_parse_UseSkillToId()Aclif_parse_UseSkillToPos() C³B
- mob.c
- mob_damage() C³B
- itemdb.c
- itemdb_searchrandomid() C³B
-
---------------
-//0707 by Ž€_
-
-E0705‚̈¢C—…”e–PŒ‚̃oƒOC³B
- (db/)
- skill_db.txt
- (map/)
- skill.c
- skill_castend_id()
- skill_castend_pos()
- battle.c
- battle_calc_pc_weapon_attack()
- clif.c
- clif_parse_UseSkillToId()
-
---------------
-//0706 by kalen
-EC³
- conf/npc_warp_umbala.txt
-
---------------
-//0705 by Ž€_
-
-EFX‚ÆC³B
-EƒvƒŒƒCƒ„[‚̃NƒŠƒeƒBƒJƒ‹ŒvŽZ‚ɃoƒO‚ª‚ ‚Á‚½‚Ì‚ÅC³B
-E”š—ô”g“®‚̈—C³B
-Eƒ‚ƒ“ƒN‚̃Rƒ“ƒ{‚ðC³B
-Eˆ¢C—…”e–PŒ‚ÌŽg—p‚É‚æ‚Á‚ă}ƒbƒvŽI‚Ì–³ŒÀƒ‹[ƒvƒoƒOC³B(‚±‚ê‚©‚È‚è’v–½“I‚È•¨‚¾‚Á‚½‚悤‚Å‚·B)
-EƒRƒ“ƒ{‚ÅŽg‚¤ˆ¢C—…”e–PŒ‚Í“G‚ðƒNƒŠƒbƒN‚·‚é•K—v‚ª‚È‚¢‚悤‚ÉC³B
-E–Ò—´Œ‚Å“G‚ð‚«”ò‚΂·‹——£‚ð5ƒZƒ‹‚É•ÏXB‚æ‚Á‚ăRƒ“ƒ{‚ÅŽg‚¤ˆ¢C—…”e–PŒ‚Í‹——£ƒ`ƒFƒbƒN‚ð‚µ‚Ü‚¹‚ñB5ƒZƒ‹”ò‚΂³‚ꂽ“G‚͈¢C—…”e–PŒ‚ÌŽË’ö‚©‚ç—£‚ꂽ‚킯‚È‚Ì‚Å‹——£ƒ`ƒFƒbƒN‚È‚µ‚Å”­“®‚µ‚Ü‚·B(–{ŽI‚ÌŽd—l‚È‚ñ‚Ä’m‚è‚Ü‚¹‚ñB)
-Eƒ}ƒbƒv‚Ì–¼‘O‚ð16byte‚©‚ç24bytes‚É•ÏXB(‘債‚½ˆÓ–¡‚Í‚ ‚è‚Ü‚¹‚ñ‚ªˆÀ‘S‚ׂ̈̕¨‚Å‚·B)
-EƒEƒFƒfƒBƒ“ƒOƒLƒƒƒ‰‚É‚æ‚éˆÆ—Ž‚¿‚ð–h‚®ˆ×‚ÉC³B
-E‚»‚Ì‘¼­‚µC³B(ƒeƒXƒg‚Í–w‚ñ‚Ç‚µ‚Ä‚Ü‚¹‚ñB)
- (conf/)
- battle_athena.conf C³B
- (db/)
- skill_db.txt C³B
- (common/)
- mmo.h C³B
- (doc/)
- conf_ref.txt C³B
- item_bonus.txt C³B
- (map/)
- battle.h C³B
- battle.c
- battle_get_flee2()Abattle_calc_pet_weapon_attack() C³B
- battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
- battle_weapon_attack()Abattle_calc_magic_attack() C³B
- battle_config_read() C³B
- skill.h C³B
- skill.c
- skill_status_change_start()Askill_castend_damage_id() C³B
- skill_check_condition()Askill_use_id()Askill_blown() C³B
- skill_castend_map()Askill_unit_onlimit()Askill_attack() C³B
- pc.c
- pc_attack_timer()Apc_setpos()Apc_setsavepoint() C³B
- pc_movepos()Apc_calcstatus()Apc_bonus() C³B
- clif.h C³B
- clif.c
- clif_set0078()Aclif_set007b() C³B
- clif_updatestatus()Aclif_initialstatus()Aclif_parse_UseSkillToId() C³B
- clif_skillinfo() ’ljÁB
- map.h C³B
- map.c
- map_setipport()Amap_addmap() C³B
- ‚»‚Ì‘¼”²‚¯‚½Š­‚µ‚ ‚èB
-
---------------------
-//0704 by kalen
-
-EUmbala Warp’ljÁ
- conf/npc_warp_umbala.txt
-
---------------------
-//0703 by ‚¢‚Ç
-
-EƒT[ƒo[snapshot
-
---------------
-//0702 by ‚Û‚Û‚Û
-
-Eƒtƒ@[ƒ}ƒV[‚̃GƒtƒFƒNƒg‚ð–{—ˆ‚Ì‚à‚Ì‚É•ÏX
-EƒXƒNƒŠƒvƒg‚Å‚Ì–„‚ßž‚Ý•Ï”‚ÉBaseExp,JobExp,NextBaseExp,NextJobExp’ljÁ
- (map/)
- skill.c
- skill_produce_mix() C³B
- pc.c
- pc_readparam()Apc_setparam() C³B
- (db/)
- const.txt C³B
-
---------------
-//0701 by ‚Ò‚´‚Ü‚ñ
-
-EƒXƒe[ƒ^ƒXˆÙí”»•ÊŽ®“±“üBŠeƒXƒe[ƒ^ƒXˆÙí‚Ì”­“®—¦‚ªVIT/INT/MDEF‚ɉe‹¿‚·‚é‚悤‚É‚È‚è‚Ü‚·BŽ‘±ŽžŠÔ’Zk‚Í‚Ü‚½¡“x‚Å_|P|›
-E•sŽ€‚É“€Œ‹‚ªŒø‚¢‚½ƒoƒOC³B
- (map/)
- skill.c
- skill_additional_effect()Askill_castend_nodamage_id() C³B
-
---------------
-//0700 by “ì
-
-E697‚̃oƒOC³B
-@@@@(db/)
- mob_db.txt
-
---------------
-//0699 by Ž€_
-
-E‘•”õ‚̃{[ƒiƒXƒNƒŠƒeƒBƒJƒ‹‚ÍŽ©•ª‚̊ԈႢ‚¾‚Á‚½‚Ì‚ÅbCriticalRate‚ðbCritical‚É•ÏXB‚»‚ê‚Æ0695‚Å‘‚«–Y‚ê‚Å‚·‚ªASPD‚ðã‚°‚éƒJ[ƒh‚â‘•”õ‚̈ꕔ‚ðbAspdAddRate‚©‚çbAspdRate‚É•ÏX‚µ‚Ü‚µ‚½B‚Ý‚·‚Ƃꑃ‚̃Vƒ~ƒ…ƒŒ[ƒ^[‚É‚æ‚é‚ƃhƒbƒyƒ‹ƒJ[ƒh‚Í•¡”‚Å‚àˆê‚‚µ‚©“K—p‚³‚ê‚È‚¢‚Ý‚½‚¢‚¾‚Á‚½‚Ì‚ÅB
- (db/)
- item_db.txt
-
---------------
-//0698 by Ž€_
-
-Eˆê•”‚̃Lƒƒƒ‰‚Éd—Ê‚ª‚O‚É‚È‚Á‚ăJƒvƒ‰‚Ȃlj½‚à‚o‚bC‚m‚b‚o‚ª•\Ž¦‚³‚ê‚È‚­‚È‚éƒoƒOC³B(‚»‚ꂾ‚¯)
- (common/)
- mmo.h C³B
- (map/)
- clif.c
- clif_updatestatus() C³B
- pc.c
- pc_calcstatus() C³B
-
---------------
-//0697 by “ì
-
-Emob_dbC³
-@ƒhƒƒbƒv‚ð’†S‚ÉC³B
-@@@@(db/)
- mob_db.txt
-
---------------
-//0696 by Ž€_
-
-EƒoƒOC³B
-EƒeƒŒƒ|[ƒg‚âƒ[ƒv“™‚ÌŽžƒXƒLƒ‹ƒ†ƒjƒbƒg‚©‚甲‚¯‚鈗‚ª“ü‚Á‚Ä
-‚È‚©‚Á‚½‚Ì‚ÅSAFETYWALL“™‚É‚æ‚Á‚ÄŽI—Ž‚¿‚ª‹N‚±‚Á‚½‚悤‚Å‚·B(Šm‚©•ñ‚à
-‚ ‚Á‚½‚ÆŽv‚¢‚Ü‚·‚ª...) ‚æ‚Á‚ÄC³‚Í‚µ‚Ü‚µ‚½‚ªŠm”F‚Í‚µ‚Ä‚Ü‚¹‚ñB•ñ‚ð
-‚¨Šè‚¢‚µ‚Ü‚·B
-EƒXƒLƒ‹‚É‚æ‚é‚«”ò‚΂µˆ—‚ð‚¿‚å‚Á‚ÆC³‚ƃ‚ƒ“ƒXƒ^[‚̃R[ƒh‚ð­‚µC³B
-‘½•ª•Ï‚É‚È‚Á‚½‚±‚Æ‚Í‚È‚¢‚ÆŽv‚¢‚Ü‚·‚ª•Ï‚¾‚Á‚½‚ç•ñ‚µ‚Ä‚­‚¾‚³‚¢B
-E‚»‚Ì‘¼×‚©‚¢C³B
- (map/)
- skill.h C³B
- skill.c
- skill_blown()Askill_attack()Askill_unit_move() C³B
- skill_castend_nodamage_id()Askill_castend_damage_id() C³B
- skill_unit_out_all()Askill_unit_out_all_sub() ’ljÁB
- mob.c
- mob_stop_walking()Amob_spawn()Amob_warp() C³B
- mob_can_move()Amob_changestate() C³B
- map.h C³B
- pc.c
- pc_setpos() C³B
- battle.c
- battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
- battle_calc_pc_weapon_attack() C³B
-
---------------
-//0695 by Ž€_
-
-E­‚µC³B
-EƒvƒŒƒCƒ„[‚ÌŠî–{ƒpƒ‰ƒ[ƒ^‚ð2byte‚ÉŠg’£B
-Eitem_db.txt‚ðƒ‰ƒOƒiƒQ[ƒg‚Ìà–¾‚ɇ‚킹‚ÄC³B
-EbAddEff‚ÆbResEff‚ÌŠm—¦‚ð•S•ª—¦‚©‚ç–œ•ª—¦‚É•ÏXB
-EƒXƒNƒŠƒvƒgstatusup‚Æstatusup2’ljÁB
-statusup bStr; ‚̂悤‚ÉŽg‚Á‚Ä‹@”\‚̓Xƒe[ƒ^ƒXƒ|ƒCƒ“ƒg‚ðŒ¸‚ç‚µ‚Ä
-Šî–{ƒpƒ‰ƒ[ƒ^‚ð1ã‚°‚éB
-statusup2 bInt,n; ‚̂悤‚ÉŽg‚Á‚Ä‹@”\‚̓Xƒe[ƒ^ƒXƒ|ƒCƒ“ƒg‚ðŒ¸‚ç‚³‚¸‚É
-Šî–{ƒpƒ‰ƒ[ƒ^‚ðnã‚°‚éB
-E‚»‚Ì‘¼×‚©‚¢C³B
- (conf/)
- battle_athena.conf C³B
- (db/)
- item_db.txt C³B
- const.txt C³B
- (doc/)
- item_bonus.txt C³B
- conf_ref.txt C³B
- (common/)
- mmo.h C³B
- (char/)
- char.c
- mmo_char_send006b()Aparse_char() C³B
- (map/)
- map.h C³B
- clif.h C³B
- clif.c
- clif_initialstatus()Aclif_updatestatus() C³B
- pc.h C³B
- pc.c
- pc_bonus()Apc_calcstatus()Apc_equippoint()Apc_equipitem() C³B
- pc_jobchange()Apc_checkbaselevelup()Apc_statusup() C³B
- pc_statusup2() ’ljÁB
- battle.h C³B
- battle.c
- battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
- battle_calc_pc_weapon_attack()Abattle_config_read() C³B
- skill.c
- skill_additional_effect()Askill_status_change_start() C³B
- script.c
- buildin_statusup()Abuildin_statusup2() ’ljÁB
- atcommnad.c C³B
-
---------------
-//0694 by Ž€_
-
-EƒoƒOC³‚Æׂ©‚¢C³B
-EbCriticalRate‚ª³‚µ‚­“K—p‚³‚ê‚È‚©‚Á‚½–â‘èC³B
-Eƒyƒbƒg‚É‚æ‚éƒXƒe[ƒ^ƒXƒ{[ƒiƒX’ljÁBƒXƒe[ƒ^ƒXƒ{[ƒiƒX‚Í‘•”õ‚Ì
-ƒXƒNƒŠƒvƒg‚É‚æ‚Á‚Äݒ肵‚Ü‚·B‚½‚¾ƒyƒbƒg‚É‚æ‚éƒ{[ƒiƒX‚̓J[ƒh‚É‚æ‚镨‚Æ“¯‚¶ˆµ‚¢‚ð‚µ‚Ü‚·B‚»‚µ‚Ä‘®«‚Ì“K—p‚͈ê”Ô—D懈ʒႢ‚Å‚·B¡‚͉½‚à“ü‚Á‚Ä‚Ü‚¹‚ñ‚ª...
- (conf/)
- battle_athena.conf C³B
- (db/)
- const.txt C³B
- pet_db.txt C³B
- (doc/)
- item_bonus.txt C³B
- conf_ref.txt C³B
- db_ref.txt C³B
- (map/)
- map.h C³B
- map.c
- map_quit() C³B
- battle.h C³B
- battle.c
- battle_calc_pc_weapon_attack()Abattle_weapon_attack() C³B
- battle_calc_magic_attack()Abattle_calc_misc_attack() C³B
- battle_config_read() C³B
- pc.c
- pc_calcstatus()Apc_bonus()Apc_setpos()Apc_authok() C³B
- pc_damage()Apc_autosave_sub() C³B
- pet.h C³B
- pet.c
- pet_hungry()Apet_birth_process()Apet_recv_petdata()Apet_food() C³B
- pet_return_egg()Apet_ai_sub_hard()Aread_petdb() C³B
- clif.c
- clif_sendegg()Aclif_parse_LoadEndAck() C³B
- atcommand.c C³B
- makefile C³B
-
---------------
-//0693 by ŒÓ’±—–
-
-ESC_*‚Ì—ñ‹“•\‚ðƒŠƒiƒ“ƒoƒŠƒ“ƒO
- ƒNƒ‰ƒCƒAƒ“ƒg‚É’Ê’m‚·‚é‚Ì‚ð64–¢–ž‚©‚ç128–¢–ž‚É‘‚₵‚½
- ƒpƒPƒbƒgî•ñ‚ɇ‚¤‚悤‚ɃŠƒiƒ“ƒo[
- StatusChange‚Ì”z—ñ‚ð128‚©‚ç192‚É‘‚₵‚½‚̂Ńƒ‚ƒŠŽg—p—Ê‚ª‘‚¦‚Ü‚·B
-
- (db/)
- const.txt
- SC_* ‚Ì”’l‚ð•ÏX
- (map/)
- skill.h
- SC_* ‚Ì—ñ‹“‚Ì”’l‚ð•ÏX
- map.h
- MAX_STATUSCHANGE‚ð128‚©‚ç192‚É‘‚₵‚½
- skill.c
- skill_status_change_start(),skill_status_change_end(),
- skill_status_change_clear()‚Ì’Ê’mˆ—‚ð•ÏX
-
-E‰‰‘t/ƒ_ƒ“ƒX‚̈—‚ð•ÏX
- ‰‰‘t/ƒ_ƒ“ƒX’†‚©‚Ç‚¤‚©‚ðSC_DANCING‚Å”»’è‚·‚é‚悤‚É•ÏX
- i”»’舗‚ª‘½­‚‘¬‰»‚³‚ꂽ‚Í‚¸j
- ƒ[ƒv(ƒ}ƒbƒvˆÚ“®‚┈‚È‚Ç)‚·‚é‚Ɖ‰‘t/ƒ_ƒ“ƒX‚ð’†’f‚·‚é‚悤‚É•ÏX
-
- skill.h/skill.c
- skill_check_dancing()íœAskill_stop_dancing()’ljÁ
- skill_delunitgroup(),skill_initunitgroup()•ÏX
- skill_status_change_start()•ÏX
- skill_castend_nodamage_id()•ÏX
- ‘‚«‘¹‚¶‚ª‚ ‚é‚©‚àEE
- pc.c
- pc_calcstatus(),pc_setpos(),pc_damage()•ÏX
-
-E•s‹¦˜a‰¹ƒXƒLƒ‹‚ÌC³
- (db/)
- skill_db.txt
- •s‹¦˜a‰¹ƒXƒLƒ‹‚ÌHIT”C³
- (map/)
- skill.c
- skill_status_change_timer()•ÏX
- battle.c
- battle_calc_misc_attack()C³
-
---------------
-//0692 by ŒÓ’±—–
-
-EƒAƒhƒŠƒuƒXƒLƒ‹‚ªŽg—p‚Å‚«‚È‚¢–â‘èC³iskill_db‚Ì“Y•t‚µ–Y‚êj
- (db/)
- skill_db.txt
- ƒAƒhƒŠƒu‚ÌÁ”ïSP‚ð1‚ÉC³
-
-Emob_db2.txt‚ª‚ ‚ê‚Îmob_db.txt‚ɃI[ƒo[ƒ‰ƒCƒh‚·‚é‚悤‚É
- ƒIƒŠƒWƒiƒ‹mob‚ðì‚Á‚Ä‚él‚ÍŽg‚¤‚Æ•Ö—˜‚©‚à‚µ‚ê‚Ü‚¹‚ñB
-
- mob.c
- mob_readdb()
-
-EŽI—Ž‚¿ƒoƒO•ñŽž‚Ì‚½‚߂̃Xƒ^ƒbƒNƒoƒbƒNƒgƒŒ[ƒXƒƒOŠ“¾•û–@‚ðЉî
- ŽI—Ž‚¿ƒoƒO‚Ì•ñŽž‚ÉA‚±‚Ìî•ñ‚ðƒRƒsƒy‚·‚é‚ÆŠJ”­ŽÒ‚ªŠì‚Ñ‚Ü‚·B
- Cygwin‚Åcore‚Ì“f‚©‚¹‚é•û–@‚àЉ‚Ä‚Ü‚·B
-
- (doc/)
- coredump_report.txt
-
---------------
-//0691 by ŒÓ’±—–
-
-Eitem_db2.txt‚ª‚ ‚ê‚Îitem_db.txt‚ɃI[ƒo[ƒ‰ƒCƒh‚·‚é‚悤‚É
- ƒIƒŠƒWƒiƒ‹ƒAƒCƒeƒ€‚ðì‚Á‚Ä‚él‚ÍŽg‚¤‚Æ•Ö—˜‚©‚à‚µ‚ê‚Ü‚¹‚ñB
-
- itemdb.c
- itemdb_readdb()C³
-
-E‰‰‘t/ƒ_ƒ“ƒXŒnƒXƒLƒ‹‰¼ŽÀ‘•
- E‰‰‘t/ƒ_ƒ“ƒX’†‚͈ړ®‚ª’x‚­AƒXƒLƒ‹‚àŽg‚¦‚È‚¢‚悤‚É‚È‚è‚Ü‚µ‚½
- EƒAƒhƒŠƒuƒXƒLƒ‹‚ʼn‰‘t/ƒ_ƒ“ƒX‚ð’†’f‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½
- E‰‰‘t/ƒ_ƒ“ƒX‚ÍΉ»‚Ȃǂ̈ÙíAMHP‚Ì1/4ˆÈã‚̃_ƒ[ƒW‚Å’†’f‚µ‚Ü‚·
- EƒLƒƒƒ‰ƒNƒ^[ƒOƒ‰ƒtƒBƒbƒN‚͉‰‘t/ƒ_ƒ“ƒX‚µ‚Ü‚¹‚ñ
- E‰‰‘t/ƒ_ƒ“ƒX’†‚ÌSPÁ”ï‚Í–¢ŽÀ‘•‚Å‚·
- EˆÚ“®‚µ‚Ä‚àŒø‰Ê”͈͂͂‚¢‚Ä‚«‚Ü‚¹‚ñ
- Ed•¡‚µ‚Ä‚à•s‹¦˜a‰¹‚Ȃǂɕω»‚µ‚Ü‚¹‚ñ
- EƒGƒtƒFƒNƒg‚ªo‚Ä‚àŒø‰Ê‚Í–¢ŽÀ‘•‚Ì‚à‚Ì‚ª‚ ‚è‚Ü‚·
- E‚Ù‚Æ‚ñ‚Ç–¢ƒeƒXƒg‚È‚Ì‚Å‘½”‚Ì•s“s‡‚ª‚ ‚é‚ÆŽv‚¢‚Ü‚·
-
- skill.h
- SC_* ‚Ì—ñ‹“•\‚ðC³
- skill.c
- skill_check_dancing()’ljÁ
- SkillStatusChangeTable[]C³
- skill_unit_onout(), skill_status_change_start(),
- skill_status_change_timer(),skill_unitsetting(),
- skill_castend_id(),skill_castend_pos(),skill_castend_map(),
- skill_castend_nodamage_id()C³
- ‚»‚Ì‘¼‚Í–Y‚ê‚Ü‚µ‚½
- pc.c
- pc_calcstatus(),pc_damage()C³
-
---------------
-//0690 by ”g˜Q
-
-Eׂ©‚¢C³
- (db/)
- item_db.txt ‚ƃƒMƒ“ƒMƒ‡ƒ‹ƒh‚Ìbonus‚ðC³B
- (doc/)
- item_bonus.txt C³B
-
---------------
-//0689 by Ž€_
-
-E‘qŒÉƒoƒOC³‚Æׂ©‚¢C³B
- (map/)
- pc.c
- pc_modifybuyvalue()Apc_modifysellvalue() C³B
- storage.c
- storage_storageopen() C³B
- storage_storage_quit()Astorage_storage_save() C³B
-
---------------
-//0688 by ¹
-
-EƒfƒBƒXƒJƒEƒ“ƒgAƒRƒ€ƒpƒ‹ƒVƒ‡ƒ“ƒfƒBƒXƒJƒEƒ“ƒgAƒI[ƒo[ƒ`ƒƒ[ƒW‚ª“K—p‚³‚ê‚È‚©‚Á‚½–â‘è‚ðC³B
- (map/)
- pc.c
- pc_modifybuyvalue() C³B
- pc_modifysellvalue() C³B
-
---------------
-//0687 by Ž€_
-
-E­‚µC³B
-Ebattle_athena.conf‚É€–ڒljÁB(Ú‚µ‚¢‚±‚Æ‚Íconf_ref.txt‚Å)
-Eitem_avail.txt‚̈—‚ð•ÏXBƒAƒCƒeƒ€ID‚ÌŒã‚É0‚ð“ü‚ê‚é‚Æ¡‚Ü‚Å’Ê‚è‚ÉŽg—p•s‰Â”\‚ɂȂ邪0ˆÈŠO‚Ì”’l‚ð“ü‚ê‚é‚ÆŽg—p•s‰Â”\‚Å‚Í‚È‚­‚»‚Ì”’l‚ðƒAƒCƒeƒ€‚ÌID‚Æ‚µ‚ÄŒ©‚½–Ú‚¾‚¯‚ð‚»‚ê‚É•ÏX‚µ‚Ü‚·B‚æ‚Á‚ĈƗŽ‚¿ƒAƒCƒeƒ€‚ð•Ê‚Ì•¨‚É•\Ž¦‚µ‚ĈƗŽ‚¿‚ð–h‚®‚±‚Æ‚ª‚Å‚«‚Ü‚·B(•\Ž¦‚¾‚¯•Ï‚¦‚ÄŽI‚̈—‚Í–{“–‚̃AƒCƒeƒ€ID‚Ì•¨‚Æ‚µ‚Ä”FŽ¯‚µ‚Ü‚·BC³‚Í‘S‚Ä‚µ‚½‚ÆŽv‚¢‚Ü‚·‚ª”²‚¯‚½Š‚ª‚ ‚é‚©‚à’m‚è‚Ü‚¹‚Ì‚ÅŒ©‚½–Ú•ÏX‚µ‚½ƒAƒCƒeƒ€‚ňƗŽ‚¿‚ª‹N‚±‚Á‚½‚ç•ñ‚µ‚Ä‚­‚¾‚³‚¢B) ŽI‚̈—‚Í‚±‚ꂪŒÀŠE‚Å‚·B(­‚È‚­‚Æ‚àŽ©•ª‚É‚Í) ƒAƒCƒeƒ€‚ª“¯‚¶•¨‚ª“ñ‚•\Ž¦‚³‚ê‚ĊԈႢˆÀ‚¢‚Æ‚©‚Ç‚¤‚±‚¤‚Æ‚©‚Ì•¶‹å‚ðŒ¾‚¢‚½‚¢l‚͈Æì‚ê‚æBˆÈãB
-EƒWƒ‹ƒ^ƒX‚ƃAƒŠƒX‚̃Rƒ}ƒ“ƒgƒAƒEƒg‰ðœBitem_avail.txt‚Å—‘‚ðƒ‹ƒr[‚ƃAƒNƒAƒ}ƒŠƒ“‚Å•\Ž¦‚µ‚ĕߊlƒAƒCƒeƒ€‚à‘¼‚Ì•¨‚É•\Ž¦‚·‚é‚悤‚É•ÏX‚µ‚Ä‚¢‚Ü‚·B
-Eƒ_ƒ[ƒWŒvŽZ‚̃oƒOC³B(‘債‚½•¨‚¶‚á‚ ‚è‚Ü‚¹‚ñ‚ª‹|‚¾‚¯‚¿‚å‚Á‚Æ–â‘肪‚ ‚Á‚½‚悤‚Å‚·B)
-E” “™‚̃AƒCƒeƒ€‚Å“¾‚½‘•”õ•i‚Í–¢ŠÓ’è‚É‚È‚é‚悤‚É•ÏXB
-E‘•”õƒ{[ƒiƒX‚Ì“à•”ˆ—C³‚Æ­‚µ•ÏXB(Ú‚µ‚¢‚±‚Æ‚Íitem_bonus.txt‚Å)
-EƒLƒƒƒ‰ŽI‚Ƀe[ƒ^‚𑗂鎞ƒLƒƒƒ‰A‘qŒÉAƒyƒbƒg‚̃e[ƒ^‚𓯎ž‚É‘—‚é‚悤‚É•ÏXB(ƒLƒƒƒ‰ŽI‚ƃ}ƒbƒvŽI‚ÌŠÔ‚Ì“]‘——Ê‚ª‘‚¦‚é‚©‚à’m‚è‚ê‚Ü‚¹‚ñ‚ªƒf[ƒ^‚𓯊ú‰»‚ׂ̈ł·B)
-EFW‚Ì“®ìŠÔŠu‚ð0.25•b‚©‚ç0.1•b‚É•ÏXB(‚±‚ê‚Å ‚蔲‚Í­‚µŒ¸‚é‚Í‚¸‚Å‚·B)
-EƒJ[ƒgƒŒƒ{ƒŠƒ…ƒVƒ‡ƒ“‚Å‚Ç‚ñ‚Èó‘ÔˆÙí‚à‚©‚©‚ç‚È‚¢‚悤‚É•ÏXB
- (conf/)
- battle_athena.conf C³B
- (db/)
- const.txt C³B
- item_avail.txt C³B
- pet_db.txt C³B
- (doc/)
- conf_ref.txt C³B
- item_bonus.txt C³B
- (map/)
- map.h C³B
- map.c
- map_quit() C³B
- battle.h C³B
- battle.c
- battle_calc_pc_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
- battle_calc_pet_weapon_attack()Abattle_calc_magic_attack() C³B
- battle_get_dmotion()Abattle_config_read() C³B
- pc.c
- pc_calcstatus()Apc_bonus()Apc_bonus3()Apc_setpos() C³B
- pc_makesavestatus()Apc_autosave_sub()Apc_modifybuyvalue() C³B
- pc_modifysellvalue()Apc_stop_walking() C³B
- skill.c
- skill_additional_effect()Askill_unitsetting() C³B
- clif.c
- clif_buylist()Aclif_selllist()Aclif_set009e()Aclif_set0078() C³B
- clif_set007b()Aclif_additem()Aclif_itemlist()Aclif_equiplist() C³B
- clif_storageitemlist()Aclif_storageequiplist()Aclif_changelook() C³B
- clif_arrow_create_list()Aclif_useitemack()Aclif_tradeadditem() C³B
- clif_storageitemadded()Aclif_getareachar_item() C³B
- clif_skill_produce_mix_list()Aclif_cart_additem()Aclif_cart_itemlist() C³B
- clif_cart_equiplist()Aclif_vendinglist()Aclif_openvending() C³B
- clif_produceeffect()Aclif_sendegg()Aclif_pet_equip()Aclif_mvp_item() C³B
- clif_pet0078()Aclif_pet007b() C³B
- itemdb.h C³B
- itemdb.c
- itemdb_searchrandomid()Aitemdb_search()Aitemdb_readdb() C³B
- itemdb_read_itemavail()Aitemdb_read_itemvaluedb() C³B
- itemdb_equippoint() íœB
- storage.h C³B
- storage.c
- storage_storage_quitsave() ->storage_storage_quit()‚É•ÏX‚ÆC³B
- storage_storageclose() C³B
- atcommand.c C³B
- pet.c
- pet_change_name()Apet_equipitem()Apet_unequipitem() C³B
- pet_birth_process()Apet_return_egg() C³B
- script.c
- buildin_getitem() C³B
- mob.c
- mob_stop_walking() C³B
- makefile C³B
-
---------------
-//0686 by ¹
-
-Eׂ©‚¢C³B
- (map/)
- pc.h C³B
-
---------------
-//0685 by ”g˜Q
-
-E0683A0684‚Å‚Ìbonus‚̒ljÁ‚É‚Æ‚à‚È‚Á‚Äitem_db.txt‚ðC³
-E‘¼FXC³
- (db/)
- item_db.txt C³B
- (doc/)
- item_bonus.txt C³B
-
---------------
-//0684 by Ž€_
-
-Eׂ©‚¢C³B
-EŽ€‚ñ‚¾‚Ó‚è‚ÌŽžƒXƒLƒ‹‚ƃAƒCƒeƒ€‚ªŽg‚¦‚È‚¢‚悤‚É•ÏXB
-EbInfiniteEndure’ljÁB‹@”\‚Í–³ŒÀƒCƒ“ƒfƒ…ƒAB
-Eƒ_ƒ[ƒW•\Ž¦‚̈—­‚µ•ÏXB
- (db/)
- const.txt C³B
- (doc/)
- item_bonus.txt C³B
- (map/)
- map.h C³B
- pc.c
- pc_calcstatus() C³B
- pc_equipitem()Apc_unequipitem() C³B
- clif.c
- clif_parse_UseItem()Aclif_parse_UseSkillToId() C³B
- clif_parse_UseSkillToPos()Aclif_parse_UseSkillMap() C³B
- clif_damage()Aclif_skill_damage()Aclif_skill_damage2() C³B
- clif_parse_LoadEndAck() C³B
- skill.c
- skill_status_change_timer() C³B
-
---------------
-//0683 by Ž€_
-
-EƒoƒOC³‚Æbonus’ljÁB
-E‘qŒÉƒoƒOA‘®«ƒoƒOC³‚Æ‚»‚Ì‘¼‚̃oƒOC³B
-EƒXƒNƒŠƒvƒgbonus3’ljÁB¡‚ÍbAddMonsterDropItem‚¾‚¯‚ª‘Ήž‚É‚È‚Á‚Ä‚¢‚Ü‚·B
-Ebonus bRestartFullRecover;n;“™‚Ån‚Í–³ˆÓ–¡‚¾‚¯‚ÇÁ‚·‚Ì‚Í‚¿‚å‚Á‚Æ‚Ü‚¸‚¢‚Å‚·‚Ì‚Å0‚É‚µ‚Ä“ü‚ꂽ•û‚ª‚¢‚¢‚Å‚·Bbonus‚Í2‚‚̔’l‚ª•K—v‚ȃXƒNƒŠƒvƒg‚È‚Ì‚ÅB
-EbDefRatioAtk‚ð–hŒä–³Ž‹‚É•ÏXB
-E0677‚Å‘‚«–Y‚êB
-E•Ší‚Ì‘®«“K—p—D懈ʂ𻑢>ƒJ[ƒh>•Ší‚É•ÏXB»‘¢‚ªÅ—Dæ‚Å‚·B(‘®«‚ª‚ ‚鎞‚ɘb‚Å‚·B‘®«‚ª‚È‚¢ê‡‘®«‚ ‚镨‚Éã‘‚«‚³‚ꂽ‚è‚Í‚µ‚Ü‚¹‚ñB)
-E‘•”õ‚Å“K—p‚³‚ê‚éŒø‰Ê‚Ì—D懈ʂð‰EŽè>¶Žè>‘Ì>“ªã>“ª’†>“ª‰º>ƒ[ƒu>ŒC>ƒAƒNƒZƒTƒŠ[1>ƒAƒNƒZƒTƒŠ[2>–î‚ÉÝ’èB(–{ŽIŽd—l‚ª‚Ç‚¤‚È‚Ì‚©•ª‚©‚邱‚Æ‚ª‚Å‚«‚»‚¤‚È•¨‚Å‚à‚È‚¢‚̂ŃAƒeƒi‚ÌŽd—l‚ÆŒ¾‚¤‚±‚Æ‚ÅB) ‰EŽè‚ªÅ—Dæ‚Å‚·B
-E•Ší‚ÌŽË’ö‚ð‰EŽè‚ƶŽè‚Ì•Ší‚Ì’†‚Å’·‚¢•¨‚ð“K—p‚·‚é‚悤‚É•ÏXB
- (db/)
- const.txt C³B
- (doc/)
- item_bonus.txt C³B
- (map/)
- map.h C³B
- battle.c
- battle_calc_pc_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
- battle_calc_pet_weapon_attack()Abattle_calc_magic_attack() C³B
- battle_damage() C³B
- pc.c
- pc_autosave_sub()Apc_calcstatus() C³B
- pc_bonus()Apc_bonus2() C³B
- pc_bonus3() ’ljÁB
- script.c
- buildin_bonus3() ’ljÁB
- mob.c
- mob_once_spawn()Amob_damage() C³B
- storage.h C³B
- storage.c
- storage_storage_save() ’ljÁ
- atcommand.c C³B
-
---------------
-//0682 by ¹
-
-EƒXƒs[ƒhƒAƒbƒvƒ|[ƒVƒ‡ƒ“Œn‚̃oƒOC³
- (map/)
- pc.c
- pc_calcstatus() C³B
-
---------------
-//0681 by Ž€_
-
-E‘•”õƒoƒOC³B
- (map/)
- pc.c
- pc_equipitem() C³B
-
---------------
-//0680 by ¹
-
-Eׂ©‚¢C³B
-Eu@monstervƒRƒ}ƒ“ƒh‚Ń‚ƒ“ƒXƒ^[ID‚ÌŽw’è‚Éu-1vAu-2v“™‚ðŽw’è‚·‚é‚Æ
-@ƒ‚ƒ“ƒXƒ^[‚ðƒ‰ƒ“ƒ_ƒ€‚Å¢ŠÒ‚Å‚«‚é‹@”\‚ð’ljÁB
- (map/)
- mob.c
- atcommand.c
-
---------------
-//0679 by ”g˜Q
-
-E0676‚ÅV‚µ‚¢ƒAƒCƒeƒ€Œø‰Ê‚ªŽÀ‘•‚³‚ꂽ‚Ì‚ÅAitem_db.txt‚ðC³(bonus bAddMonsterDropItem,n,x; ‚ÍAŽí‘°”»’肪‚Å‚«‚È‚¢‚Ì‚Å‚Æ‚è‚ ‚¦‚¸•Û—¯‚µ‚Ü‚µ‚½B)
-E‘¼FXC³
- (db/)
- item_db.txt
- job_db1.txt
- (doc/)
- item_bonus.txt
-
---------------
-//0678 by ¹
-
-E¢ŠÒŠÖ˜A‚Ìׂ©‚¢C³B
- (map/)
- mob.c
- mob_once_spawn_area() C³B
-
---------------
-//0677 by Ž€_
-
-Eׂ©‚¢C³B
-EƒAƒCƒeƒ€”„”ƒ‚É‚æ‚Á‚Ä“¾‚ç‚ê‚éŒoŒ±’l‚ðƒJ[ƒh‚É‚æ‚éƒXƒLƒ‹‚Å‚Í“¾‚ç‚ê‚È‚¢‚悤‚ÉC³B
-E“Å‚ÉŠ|‚©‚é‚ÆŽ©‘R‰ñ•œ‚Å‚«‚È‚¢‚悤‚ÉC³B
-E0676‚Å‘‚«–Y‚êB»‘¢•Ší‚Ìꇻ‘¢‚É‚æ‚Á‚Ä—^‚¦‚½‘®«‚ª•Ší‚Ì‘®«‚æ‚è—D悵‚Ä“K—p‚³‚ê‚é‚悤‚É•ÏXB(»‘¢•Ší‚ª–³‘®«‚Ìꇂ͓K—p‚³‚ê‚Ü‚¹‚ñB)
- (doc/)
- item_bonus.txt ŒëŽšC³B
- (map/)
- npc.c
- npc_buylist()Anpc_selllist() C³B
- pc.c
- pc_calcstatus()Apc_natural_heal_sub() C³B
-
---------------
-//0676 by Ž€_
-
-EFX‚ÆC³B
-Ebattle_athena.conf‚É€–ڒljÁB(Ú‚µ‚¢‚±‚Æ‚Íconf_ref.txt‚Å)
-E‚Ý‚·‚Ƃꑃ‚ðŽQl‚µ‚ă_ƒ[ƒWŒvŽZ‚ð­‚µC³B
-E‘•”õbonus‚ÉFX‚ƒljÁB(Ú‚µ‚¢‚±‚Æ‚Íitem_bonus.txt‚Å)
-EŽ©“®ƒZ[ƒu‚·‚鎞(ƒLƒƒƒ‰ŽI‚Ƀf[ƒ^‚𑗂鎞)‘qŒÉ‚̃f[ƒ^‚à‘—‚é‚悤‚É•ÏXB
-E0667‚ÅŒ¾‚¢–Y‚êBƒJ[ƒg‚ðŠO‚µ‚Ä‚àƒAƒCƒeƒ€‚ªÁ‚¦‚È‚¢‚悤‚É•ÏXB(–{ŽI‚ÅÁ‚¦‚é‚Ì‚ªŽd—l‚¾‚ÆŽv‚Á‚Ä‚¢‚½‚¯‚ÇC³‚³‚ꂽ‚Ý‚½‚¢‚È‚Ì‚ÅB)
-EŽæˆø—v¿‚ðŽó‚¯‚鑤‚ÍŠî–{ƒXƒLƒ‹‚ðƒ`ƒFƒbƒN‚µ‚È‚¢‚悤‚ÉC³B(Žó‚¯‚鑤‚ÌŠî–{ƒXƒLƒ‹ƒ`ƒFƒbƒN‚ÍŽ©•ª‚ª“ü‚ꂽ•¨‚Å‚Í‚È‚¢‚Å‚·B‚¢‚‚̊Ԃɂ©“ü‚Á‚Ä‚¢‚½‚Ì‚Å휂µ‚Ü‚µ‚½B)
-E–h‹ï‚̸˜Bƒ{[ƒiƒX‚ð’[”–³Ž‹‚É•ÏXB(‚±‚ꂪ–{ŽI‚ÌŽd—l‚Ý‚½‚¢‚È‚Ì‚Å)
-EƒAƒ“ƒNƒ‹‚̈—­‚µ•ÏXB(‚©‚©‚ç‚È‚¢‚ÆŒ¾‚¤•ñ‚ª‚ ‚è‚Ü‚µ‚½‚Ì‚Å...)
-EƒvƒŒƒCƒ„[‚̃Xƒe[ƒ^ƒXŒvŽZ‚Å–â‘è‚ ‚è‚»‚¤‚ÈŠC³B
-EƒJ[ƒh‚ÌID‚Å‹@”\‚ªŒˆ‚Ü‚Á‚Ä‚¢‚½ƒJ[ƒh‚àƒXƒNƒŠƒvƒg‚É‚æ‚Á‚Ä•Ï‚¦‚邱‚Æ‚ª‚Å‚«‚é‚悤‚É•ÏXB(Ú‚µ‚¢‚±‚Æ‚Íitem_bonus.txt‚Å)
-EaspdŒvŽZ•û–@­‚µ•ÏXB
-E–î‚ÉbCriticalAbAtkEleAbHitAbAddEleAbAddRaceAbAddSizeAbAddEff‚ð“K—p‚Å‚«‚é‚悤‚É•ÏXB–î‚ðŽg‚¤ƒXƒLƒ‹‚â‹|‚É‚æ‚éUŒ‚‚¾‚¯‚É–î‚ÌbCriticalAbAtkEleAbHitAbAddEleAbAddRaceAbAddSizeAbAddEff‚ª“K—p‚³‚ê‚é‚悤‚ÉC³B
-EƒLƒŠ‚ÌŽÀ‘•‚ɈׂÉC³‚Í‚µ‚Ü‚µ‚½‚ªƒLƒŠ‚ª–hŒä–³Ž‹‚È‚Ì‚©‚Ç‚¤‚©‚ª‚í‚©‚ç‚È‚©‚Á‚½‚Ì‚Å–hŒä–³Ž‹‚Í‚µ‚È‚¢‚悤‚É‚È‚Á‚Ä‚¢‚Ü‚·B
-EƒeƒXƒg‚µ‚½•¨‚ÍbAddMonsterDropItem‚ÆbGetZenyNum‚¾‚¯‚Ȃ̂ųí‚É“®ì‚·‚é‚©‚Ç‚¤‚©‚Ì•ñ‚ª—~‚µ‚¢Š‚Å‚·B(‚‚¢‚Å‚Éitem_db‚ÌC³‚à...‚±‚ê‚Å‹zŽûŒn‚ƃI[ƒgƒXƒyƒ‹ŒnˆÈŠO‚Í–w‚ÇŽÀ‘•‚Å‚«‚é‚Í‚¸‚Å‚·B‘½•ª...)
-E‚»‚Ì‘¼‚ÍŠo‚¦‚Ä‚È‚¢‚¯‚ÇC³‚µ‚½Š‚ª­‚µ‚ ‚é‚©‚à...
- (conf/)
- battle_athena.conf C³B
- (doc/)
- conf_ref.txt C³B
- item_bonus.txt C³B
- (db/)
- const.txt C³B
- (char/)
- inter.c
- inter_init() C³B
- int_storage.c
- mapif_parse_SaveStorage() C³B
- (map/)
- trade.c
- trade_traderequest() C³B
- pc.h C³B
- pc.c
- pc_autosave_sub()Apc_calcstatus() C³B
- pc_bonus()Apc_bonus2() C³B
- pc_setrestartvalue()Apc_setequipindex() C³B
- pc_check_equip_wcard()Apc_check_equip_dcard()Apc_check_equip_card() íœ
- ‚»‚Ì‘¼C³B
- skill.h C³B
- skill.c C³B
- skill_castend_nodamage_id()Askill_unit_onplace() C³B
- skill_check_condition()Askill_additional_effect() C³B
- skill_attack()Askill_status_change_start() C³B
- map.h C³B
- battle.h C³B
- battle.c
- battle_get_def()Abattle_get_mdef2() C³B
- battle_weapon_attack()Abattle_damage() C³B
- battle_calc_magic_attack()Abattle_calc_pc_weapon_attack() C³B
- battle_calc_mob_weapon_attack()Abattle_calc_pet_weapon_attack() C³B
- battle_calc_misc_attack()Abattle_config_read() C³B
- mob.c
- mob_damage() C³B
- pet.c
- pet_target_check() C³B
- clif.c
- clif_set0078()Aclif_set007b()Aclif_changelook() C³B
- atcommand.c C³B
-
---------------
-//0675 by ”g˜Q
-
-EŠØŽI‚Å‘º³‚ÌŒø‰Ê‚ª•ÏX‚³‚ꂽ‚Ì‚Å•ñ‚ðŒ³‚Éitem_db.txt‚ðC³
-Ejob_db1.txt‚ðC³
- (db/)
- item_db.txt
- job_db1.txt
-
---------------
-//0674 by npc
-
-Eƒtƒ@[ƒ}ƒV[‚̉¼ŽÀ‘•B
- (db/)
- produce_db.txt
- (map/)
- skill.c
-
---------------
-//0673 by “ì
-
-EW’†—ÍŒüã‚É‘•”õ•i‚̕Ⳃª“ü‚Á‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ðC³B
-@@@@@(map/)@@@
-@@@@@ pc.c
-
---------------
-//0672 by “ì
-
-EW’†—ÍŒüã‚É‘•”õ•i‚̕Ⳃª“ü‚Á‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ðC³B
-@@@@@(map/)@@@
-@@@@@ pc.c
-
---------------
-//0672 by ¹
-
-Eƒ‚ƒ“ƒXƒ^[Œn‚̃oƒOC³(‚·‚Ý‚Ü‚¹‚ñA‚Ü‚¾Žc‚Á‚Ä‚Ü‚µ‚½(^^; )
- (map/)
- mob.c
-
---------------
-//0671 by ¹
-
-EIDƒ`ƒFƒbƒN”͈͂ÌC³‘¼B
-E@monster‚Å”‚ðŽw’肵‚È‚­‚Ăࢊ҂ł«‚é‚悤‚ÉC³B
- (map/)
- atcommand.c
- battle.c
- battle.h
- mob.c
- pet.c
- (conf/)
- battle_athena.conf
- (doc/)
- conf_ref.txt
-
---------------
-//0670 by RR
-
-Eƒ‚ƒ“ƒXƒ^[ƒhƒƒbƒv—¦‚ðC³(–{ŽI€‹’ADB‚Å‚ÌÝ’è+1/10000)B
-E—Ž‰º—¦‚O‚Éݒ肵‚½ƒAƒCƒeƒ€‚ð—Ž‚Æ‚·‚©‚Ç‚¤‚©‚ðbattle_athena.conf‚ÅÝ’è‰Â”\‚ÉB
- (map/)
- mob.c
- mob_damage() C³B
- battle.c
- battle.h
- (conf/)
- battle_athena.conf
-
---------------
-//0669 by ¹
-
-Eƒ‚ƒ“ƒXƒ^[ƒhƒƒbƒv‚ÌC³B
- (map/)
- mob.c
- mob_damage() C³B
-
---------------
-//0668 by ¹
-
-Eƒ‚ƒ“ƒXƒ^[ID‚͈̔̓`ƒFƒbƒN‚ðC³B
- (map/)
- mob.c
- mob_dbAmob_once_spawn()Amob_once_spawn_area()A
- mob_summonslave()Amob_read_randommonster()Amob_readdb() C³B
-
---------------
-//0667 by Ž€_
-
-EÅ‘åHPŒvŽZŽ®‚ðƒ~ƒXƒgƒŒ‘ƒ‚ðŽQl‚µ‚ÄC³B(‘½•ª‚±‚ê‚Å–{ŽI‚É‚ ‚Á‚Ä‚¢‚é‚ÆŽv‚¢‚Ü‚·B)
-E–h‹ï‚̸˜Bƒ{[ƒiƒX‚ð0.7‚É•ÏXB(¡‚Í’[”‚ðŽlŽÌŒÜ“ü‚µ‚Ä‚¢‚Ü‚·‚ª–{ŽI‚ª’[”–³Ž‹‚È‚çC³‚µ‚Ä‚¨‚«‚Ü‚·B)
-E@refineƒRƒ}ƒ“ƒh‚Å‘•”õêŠID‚É0‚ð“ü‚ê‚é‚Æ‘•”õ‚µ‚Ä‚¢‚é‘S‚Ä‚Ì‘•”õ‚ð¸˜B‚·‚é‚悤‚É•ÏXB
-E‚»‚Ì‘¼×‚©‚¢C³B
- (db/)
- item_db.txt
- 7140A7142‚ðŒ³‚É–ß‚µ‚Ä0666‚Ì•¨‚̓Rƒ}ƒ“ƒgƒAƒEƒg‚µ‚Ü‚µ‚½B
- job_db1.txt C³B
- refine_db.txt C³B
- (map/)
- mob.c
- mob_once_spawn() C³B
- itemdb.c
- itemdb_read_randomitem() C³B
- pet.c
- pet_food() C³B
- pc.c
- pc_readdb()Ado_init_pc()Apc_calcstatus()Apc_setoption() C³B
- pc_calc_sigma() ’ljÁB
- ‚»‚Ì‘¼C³B
- map.h C³B
- battle.c
- battle_calc_magic_attack()Abattle_calc_misc_attack() C³B
- atcommand.c C³B
-
---------------
-//0666 by ¹
-
-Eƒ‰ƒ“ƒ_ƒ€ƒAƒCƒeƒ€‚Ìׂ©‚¢C³B
-Ebattle_athena.conf‚Ì€–ڒljÁB
-EŒÃ–Ø‚ÌŽ}‚Å¢ŠÒ‚·‚郂ƒ“ƒXƒ^[‚ÌŠm—¦‚ðÝ’èo—ˆ‚é‚悤‚É‚µ‚Ü‚µ‚½B
-Eƒ‚ƒ“ƒXƒ^[¢ŠÒƒAƒCƒeƒ€‚ð•¡”ì‚鎖‚ªo—ˆ‚é‚悤‚É‚µ‚Ü‚µ‚½B
-E¢ŠÒƒAƒCƒeƒ€‚̃Tƒ“ƒvƒ‹‚Æ‚µ‚Ä
-@¶–½‚ÌŽíŽq‚ðƒ|ƒŠƒ“Œn¢ŠÒA
-@ƒGƒ“ƒuƒŠƒI‚ðMVPƒ{ƒXŒn¢ŠÒ‚É‚µ‚Ä‚Ý‚Ü‚µ‚½B
-@‚ ‚Ü‚è‚¢‚¢ƒTƒ“ƒvƒ‹‚ðŽv‚¢‚‚©‚È‚©‚Á‚½‚Ì‚ÅA
-@‰½‚©‚¢‚¢ˆÄ‚ðŽv‚¢‚‚¢‚½l‚Í‘‚«Š·‚¦‚Ä‚â‚Á‚Ä‚­‚¾‚³‚¢(^^;
- (conf/)
- battle_athena.conf
- (doc/)
- conf_ref.txt
- (map/)
- mob.h
- mob_db C³B
- mob.c
- mob_once_spawn()Amob_makedummymobdb()Amob_readdb() C³B
- mob_readbranch() -> mob_read_randommonster()‚É•ÏXB
- battle.h
- battle_config C³B
- battle.c
- battle_config_read() C³B
- itemdb.c
- itemdb_read_randomitem() C³B
- (db/)
- item_db.txt
- item_bluebox.txt
- item_cardalbum.txt
- item_giftbox.txt
- item_scroll.txt
- item_violetbox.txt
- mob_branch.txt
- mob_poring.txt ’ljÁB
- mob_boss.txt ’ljÁB
-
---------------
-//0665 by J
-
-E‰…—ì•Žm‚ÌŽæ‚芪‚«‚ªƒJƒuƒL”EŽÒ‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ðŽð“V‹ç‚ÉC³B
-EƒIƒbƒg[‚ɃtƒFƒCƒNƒGƒ“ƒWƒFƒ‹‚ªo‚·‚Í‚¸‚ÌŽæ‚芪‚«‚ª‚‚¢‚Ä‚½‚Ì‚ðC³B
- (db/)
- mob_skill_db.txt
-
---------------
-//0664 by ¹
-
-E¸˜BŽ¸”sŽž‘¼‚̃vƒŒ[ƒ„[‚É‚àƒGƒtƒFƒNƒg‚ª•\Ž¦‚³‚ê‚é‚悤‚ÉC³B
- (map/)
- script.c
- buildin_failedrefitem() C³B
-
---------------
-//0663 by lide
-
-Eƒuƒ‰ƒ“ƒfƒBƒbƒVƒ…ƒXƒsƒAC³
- (map/)
- battle.c
- skill.c
-
---------------
-//0662 by Ž€_
-
-Eׂ©‚¢C³‚ƃoƒOC³B
-Eƒvƒƒ{ƒbƒN‚É‚æ‚Á‚ă‚ƒ“ƒXƒ^[‚ÍæŽZ–hŒä‚ÆŒ¸ŽZ–hŒä‚ªŒ¸‚é‚悤‚ÉC³‚µ‚ăvƒŒƒCƒ„[‚ÍŒ¸ŽZ–hŒä‚¾‚¯Œ¸‚é‚悤‚ÉC³B
-EƒXƒNƒŠƒvƒggetgmlevel’ljÁB‹@”\‚Í‚»‚ÌNPC‚Ƙb‚µ‚Ä‚¢‚éƒvƒŒƒCƒ„[‚ÌGMƒŒƒxƒ‹‚ð•Ô‚µ‚Ü‚·B
-E0659‚Ì‘‚«–Y‚ê‚Å‚·‚ªƒyƒbƒg‚̃pƒtƒHƒ}ƒ“ƒX‚ÌŽí—Þ‚ªe–§“x‚É‚æ‚Á‚Ä‘‚¦‚é‚悤‚É•ÏX‚µ‚Ü‚µ‚½B
- (map/)
- clif.c
- pc.c
- script.c
-
---------------
-//0661 by Ž€_
-
-Eׂ©‚¢C³B
-EÚ‘±‚µ‚½Žž‚̃yƒbƒg‚̃ƒbƒZ[ƒW‚ðe–§“x‚ª‚«‚í‚ß‚Äe‚µ‚¢‚ÌŽž‚Ì‚Ý‚Éo‚é‚悤‚É•ÏXB
-E0659‚Å‘‚«–Y‚ê‚Å‚·‚ªƒyƒbƒg‚ÌŽx‰‡UŒ‚‚Íe–§“x‚ª‚«‚í‚ß‚Äe‚µ‚¢‚ÌŽž‚Ì‚Ý‚É”­¶‚µ‚Ü‚·B(‚»‚ê‚Æe–§“x‚É‚æ‚Á‚ÄŽx‰‡UŒ‚Šm—¦‚ª­‚µ•Ï‰»‚µ‚Ü‚·B)
-EƒWƒ‹ƒ^ƒX‚ƃAƒŠƒX‚Ì—‘‚ÌID‚ðitem_db.txt‚ɇ‚킹‚Ü‚µ‚½B(Ž©•ª‚ªì‚Á‚½pet_db.txt‚Ì•û‚ªŽ©•ªŸŽè‚Éݒ肵‚Ä‚¢‚½•¨‚Å‚µ‚½‚Ì‚ÅB‚ÄŒ¾‚¤‚©–¢ŽÀ‘•ƒAƒCƒeƒ€‚¾‚©‚ç”Ô†‚ª‚í‚©‚ç‚È‚©‚Á‚½‚¾‚¯‚Å‚·‚ª...)
-Epet_db.txt‚Ìattack_rate‚ª³‚µ‚­“K—p‚³‚ê‚È‚©‚Á‚½ƒoƒOC³B
- (db/)
- pet_db.txt
- (map/)
- clif.c
- clif_parse_LoadEndAck() C³B
- pc.c
- pc_attack_timer() C³B
-
---------------------
-//0660 by ‚¢‚Ç
-
-EƒT[ƒo[snapshot
-
---------------
-//0659 by Ž€_
-
-Eƒyƒbƒg‚ðFX‚ÆC³B(ƒyƒbƒg‚̃R[ƒh‚ð‚Ù‚Æ‚ñ‚Ç•Ï‚¦‚Ü‚µ‚½B)
-EŽè“®“I‚¾‚Á‚½ƒyƒbƒg‚Ì“®‚«‚ðƒ‚ƒ“ƒXƒ^[‚̂悤‚ÉAI‚Æ‚µ‚Ĉ—B
-EÚ‘±‚µ‚½Žž‚̃yƒbƒg‚̃ƒbƒZ[ƒWŽÀ‘•B(–{ŽI‚Í‚Ç‚¤‚È‚Ì‚©‚í‚©‚è‚Ü‚¹‚ñ‚ª
-Athena‚ÍÚ‘±‚·‚é‚Æ100%˜b‚·‚悤‚É‚È‚Á‚Ä‚¢‚Ü‚·B)
-Eƒyƒbƒg‚̃XƒyƒVƒƒƒ‹ƒpƒtƒHƒ}ƒ“ƒXŽÀ‘•B(‚½‚¾‘䎌‚ª‚¿‚å‚Á‚Æ•Ï‚Å‚·B‚¢‚­‚ç’T‚µ‚Ä‚àŠY“–‚·‚éƒpƒPƒbƒg‚ªŒ©‚‚©‚ç‚È‚©‚Á‚½‚Ì‚ÅB)
-Eƒyƒbƒg‚̑䎌‚𑼂̃yƒbƒg‚Ì•¨‚É•ÏX‚·‚é‹@”\’ljÁB(Ú‚µ‚¢‚±‚Æ‚Ídb_ref.txt‚Æpet_db.txt‚ÅB)
-Eƒyƒbƒg‚É‚æ‚éŽx‰‡UŒ‚•ÏXBpet_db.txt‚ÅUŒ‚‚·‚鎞‚ÆUŒ‚‚ðŽó‚¯‚½Žž‚ÌŽx‰‡UŒ‚
-Šm—¦‚ð•ÊX‚ÉÝ’è‚Å‚«‚Ü‚·BUŒ‚‚·‚鎞‚Ìê‡UŒ‚‚·‚é“x‚Ƀ`ƒFƒbƒN‚ð‚µ‚Ü‚·‚Ì‚Å
-UŒ‚‘¬“x‚ª‘¬‚¢‚ÆŽx‰‡UŒ‚‚ðŽó‚¯‚â‚·‚­‚È‚è‚Ü‚·BUŒ‚‚ðŽó‚¯‚½Žž‚à“¯‚¶‚Å‚·B(‚±‚¿‚ç‚̓_ƒ[ƒW‚ð‹ò‚炤“x‚É‚È‚è‚Ü‚·‚ªB) Žx‰‡UŒ‚Šm—¦‚̓\ƒq[AƒWƒ‹ƒ^ƒXAƒAƒŠƒX‚¾‚¯Ž©•ªŸŽè‚Éݒ肵‚Ä‚¢‚Ü‚·B(‘¼‚Ì‚Í‘S•”1%‚ÉBƒyƒbƒg‚ÌŽx‰‡UŒ‚‚Í“¯‚¶ƒ‚ƒ“ƒXƒ^[‚É‚Í‚Å‚«‚È‚¢‚悤‚É‚È‚Á‚Ä‚¢‚Ü‚·B‚»‚µ‚ăyƒbƒg‚Ì퓬”\—͂̓‚ƒ“ƒXƒ^[‚Æ“¯‚¶‚Å‚·B)
-E/hideƒRƒ}ƒ“ƒhŽÀ‘•B
-Eƒvƒƒ{ƒbƒN‚É‚æ‚Á‚ÄæŽZ–hŒä‚àŒ¸‚é‚悤‚ÉC³B
-EƒtƒŠ[ƒLƒƒƒXƒg‚̃oƒOC³B
-Eƒm[ƒrƒX‚̃Xƒe[ƒ^ƒXƒ{[ƒiƒXíœB
-Ebattle_athena.conf‚Ì€–ڒljÁ‚ÆíœB
-EC³‚µ‚½ƒtƒ@ƒCƒ‹‚¾‚¯B–¢ƒeƒXƒg‚µ‚½•¨‚à‚©‚È‚è‚ ‚è‚Ü‚·‚Ì‚Å–â‘肪‚ ‚Á‚½‚ç•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
- (conf/)
- battle_athena.conf
- (doc/)
- conf_ref.txt
- db_ref.txt ’ljÁB(¡à–¾‚ª“ü‚Á‚Ä‚¢‚é‚Ì‚Ípet_db.txt‚Ì‚Ý‚Å‚·B )
- client_packet.txt
- (db/)
- pet_db.txt
- job_db2.txt
- (map)
- clif.h
- clif.c
- map.h
- map.c
- pet.h
- pet.c
- pc.c
- mob.h
- mob.c
- npc.c
- atcommand.c
- skill.c
- battle.h
- battle.c
-
---------------
-//0658 by huge
-
-Eƒyƒbƒg‚ª‚Æ‚Ç‚ß‚ð‚³‚·‚ÆAŽ”‚¢Žå‚ÉŒoŒ±’l‚ª“ü‚é‚悤‚É‚µ‚Ü‚µ‚½B
-EŒÅ’è’lƒ_ƒ[ƒW‚¶‚á–¡‚ª–³‚¢‚Ì‚ÅATK1`ATK2‚ÌŠÔ‚Å—”‚ðŽæ‚é‚悤‚É‚µ‚Ü‚µ‚½B
-E‚ ‚ÆAƒyƒbƒg‚ª‚Æ‚Ç‚ß‚ð‚³‚·‚©‚Ç‚¤‚©‚ÌÝ’è‚ðAbattle_athena.conf‚ɉÁ‚¦‚Ü‚µ‚½B
-
- (conf/)
- battle_athena.conf pet_finish’ljÁB
- (map/)
- battle.c
- battle_config_read() C³B
- battle.h C³B
- pet.c
- pet_attack() C³B
- (doc/)
- conf_ref.txt à–¾’Ç‹LB
-
---------------
-//0657 by huge
-
-Eƒyƒbƒg‚É‚æ‚éUŒ‚‚ðŽÀ‘•B
-Eƒyƒbƒg‚ðŽ‚Á‚Ä‚¢‚ÄAƒyƒbƒg‚ª‘•”õ•i‚ð‚‚¯‚Ä‚ÄA‚³‚ç‚Ƀ‰ƒ“ƒ_ƒ€‚É‚æ‚é”»’è‚Å”­“®‚µ‚Ü‚·B
-E‚½‚¾‚Ì—V‚ÑS‚Å‚·‚—
-Ebattle_athena.conf‚Å•p“x‚ðÝ’è‚Å‚«‚Ü‚·BÚׂÍdoc‚ÅB
-
- (conf/)
- battle_athena.conf pet_attack’ljÁB
-
- (map/)
- battle.c
- battle_config_read() C³B
- battle.h C³B
- pc.c
- pc_attack_timer() C³B
- pet.c
- pet.h
- pet_attack() ’ljÁB
- (doc/)
- conf_ref.txt à–¾’Ç‹LB
-
- ‚Æ‚è‚ ‚¦‚¸Aƒyƒbƒg‚ª“®‚¢‚Ä‚é‚È‚Ÿ‚Á‚ÄŠ´‚¶‚ÆAƒ_ƒ‰ñ”‚ð‘‚₵‚½’ö“x‚Å‚·B
-
---------------
-//0656 by Ž€_
-
-EƒOƒ‰ƒ“ƒhƒNƒƒX‚ÌC³B(‚¨‚¢‚¨‚¢‰½“x–Ú‚¾...)
-EƒOƒ‰ƒ“ƒhƒNƒƒXŒvŽZŽ®ŠÔˆá‚¢‚ÅC³B(€3‚ª‚Ü‚¸‚©‚Á‚½‚Ý‚½‚¢‚Å‚·B)
-‚Å‚à‚Ü‚¾”½ŽËƒ_ƒ[ƒW‚ª‚Ý‚·‚Ƃꑃ‚æ‚è‚¿‚å‚Á‚Æ‚‚¢‚Å‚·B(10‚®‚ç‚¢‚¾‚©‚ç
-ŠÖŒW‚È‚¢‚©‚à)
-Eƒ‚ƒ“ƒN‚Ì‹C‹…‚ð•K’†‚ÉC³B(Ž©•ª‚̊ԈႢ‚̂悤‚Å‚·‚Ì‚Å...)
- (map/)
- skill.c C³B
- battle.c C³B
-
---------------
-//0655 by Ž€_
-
-EƒOƒ‰ƒ“ƒhƒNƒƒX‚ÌC³B
-EŽ©•ª‚È‚è‚Éî•ñ‚ðŽûW‚µ‚Ä‚Ý‚½Œ‹‰ÊƒOƒ‰ƒ“ƒhƒNƒƒX”½ŽËƒ_ƒ[ƒW‚Í
-ƒvƒŒƒCƒ„[ƒLƒƒƒ‰‚ª‚»‚̃Lƒƒƒ‰Ž©g‚ɃOƒ‰ƒ“ƒhƒNƒƒX‚ðŽg‚Á‚½Žž‚Ì
-ƒ_ƒ[ƒW‚¾‚»‚¤‚È‚Ì‚ÅC³‚µ‚Ü‚µ‚½B(‚Ý‚·‚Ƃꑃ‚ÌŒvŽZ‚Æ‚Í‚©‚È‚èˆá‚¤‚悤‚È
-‹C‚à‚µ‚Ü‚·‚ª...)
-E–‚–@‚ƃgƒ‰ƒbƒvA‘é‚ÌUŒ‚‚É‚à‘®«‘Ï«‚ÆŽí‘°‘Ï«‚ð“K—p‚·‚é‚悤‚ÉC³B
-(–{ŽI‚ÌŽd—l‚É‚ ‚Á‚Ä‚¢‚é‚©‚Ç‚¤‚©‚Í•s–¾‚Å‚·‚ª“K—p‚µ‚½•û‚ª³‚µ‚¢‚ÆŽv‚Á‚½‚Ì‚Å
-C³‚µ‚Ü‚µ‚½B)
- (map/)
- skill.c C³B
- map.h C³B
- battle.c C³B
-
---------------
-//0654 by Ž€_
-
-EƒOƒ‰ƒ“ƒhƒNƒƒX‚ÌC³‚Æׂ©‚¢C³B(ŒvŽZŽ®ŠÔˆá‚¢‚ÅC³B)
-E0653‚Å‘‚«–Y‚êB‹CŒ÷‚É‚æ‚é’ljÁƒ_ƒ[ƒW‚Í•K’†‚Å‚Í‚È‚¢‚炵‚¢‚Ì‚Å
-C—û‚̉ÁŽZ‚Æ“¯‚¶Š‚ÉŒvŽZ‚·‚é‚悤‚É•ÏX‚µ‚Ü‚µ‚½B
-EƒJ[ƒg‚ɃoƒO‚ª‚ ‚è‚»‚¤‚¾‚Á‚½‚Ì‚Å‚¿‚å‚Á‚ÆC³B
-Eƒ_ƒ[ƒWŒvŽZ‚ð‚Ù‚ñ‚Ì­‚µC³B(ƒ_ƒ[ƒW—Ê‚ª•Ï‚í‚Á‚½‚è‚Í‚µ‚Ü‚¹‚ñB)
- (map/)
- battle.c
- battle_calc_magic_attack() C³B
- battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
- skill.c
- pc_damage_feedback() -> skill_damage_feedback()‚É•ÏXB
- skill_unit_timer() C³B
- pc.c
- pc_setoption() C³B
- atcommand.c C³B
-
---------------
-//0653 by Ž€_
-
-E0652‚ÌC³‚Æׂ©‚¢C³B¡‚Ü‚Å’Ê‚è–¢ƒeƒXƒg‚à‘½‚¢‚Å‚·B
-EƒOƒ‰ƒ“ƒhƒNƒƒX‚̈—C³B(–{ŽI‚É‚ ‚Á‚Ä‚¢‚é‚©‚Ç‚¤‚©‚ÌŽ©g‚Í‚ ‚è‚Ü‚¹‚ñB)
-ƒ‰ƒOƒi[ƒQ[ƒg‚Ìà–¾‚É‚æ‚é‚ÆŽn‚ß‚ÉŒ»ÝHP‚Ì20%‚ªÁ–Õ‚³‚ê‚Ä‚»‚ÌŒã“G‚É—^‚¦‚½
-ƒ_ƒ[ƒW‚Ì’†‚ňê”Ô‚‚¢•¨‚ª–ß‚Á‚Ä‚­‚é‚悤‚Å‚·B‚»‚µ‚Ä‚»‚Ì–ß‚Á‚Ä‚«‚½
-ƒ_ƒ[ƒW‚͹‚Ì‘®«‚ðŽ‚¿ƒgƒ‰ƒXƒg‚É‚æ‚Á‚Ĺ‚Ì‘Ï«‚ª50%‚É‚È‚Á‚Ä‚¢‚é‚Ì‚Å
-”¼•ª‚ð‹ò‚炤‚±‚Æ‚É‚È‚é‚悤‚Å‚·B(¹‚̑ϫオ‚é‘•”õ‚ð‚µ‚Ä‚¢‚ê‚Ζ߂Á‚Ä‚­‚é
-ƒ_ƒ[ƒW‚͎󂯂Ȃ¢‚悤‚Å‚·B)
-–â‘è‚Ȃ̂̓vƒŒƒCƒ„[‚Ì–hŒä‘®«‚ðŒvŽZ‚·‚é‚©‚Ç‚¤‚©‚Å‚·B¡‚Í–hŒä‘®«ŒvŽZ‚Ì
-Œã‚Ź‚Ì‘®«‚ðŒvŽZ‚µ‚Ä‚¢‚Ü‚·B‚»‚µ‚Ä–ß‚Á‚Ä‚­‚éƒ_ƒ[ƒW‚ÍHPƒo[‚ÍŒ¸‚邯‚Ç
-•\Ž¦‚Í‚³‚ê‚Ü‚¹‚ñB–{ŽI‚Ì•û‚ª‚Ç‚¤‚È‚Ì‚©•s–¾‚È‚Ì‚Å...
-‚»‚ê‚ƈꉞƒ‚ƒ“ƒXƒ^[‚àƒOƒ‰ƒ“ƒhƒNƒƒX‚ÌŽg—p‚ª‰Â”\‚Å‚·B‚½‚¾ƒ‚ƒ“ƒXƒ^[‚Ìê‡
-Œ»ÝHP‚Ì20%Á–Õ‚ÌŒã‚̃_ƒ[ƒW‚͎󂯂܂¹‚ñB(ƒ‚ƒ“ƒXƒ^[‚ªŽg‚¤
-ƒOƒ‰ƒ“ƒhƒNƒƒX‚̃eƒXƒg‚Í‚µ‚Ä‚Ü‚¹‚ñB)
-Eƒ_ƒ[ƒW‚É‚æ‚éƒfƒBƒŒƒC’†‚É‚Ü‚½ƒfƒBƒŒƒC‚ª‚©‚©‚ç‚È‚¢‚悤‚ÉC³B(‘債‚½ˆÓ–¡‚Í‚È‚¢‚©‚à...)
-E’l’i‚ªƒ[ƒ‚̃AƒCƒeƒ€‚à”„‚ê‚é‚悤‚É•ÏXB
-E@ƒRƒ}ƒ“ƒhheal‚̈—­‚µC³B
-EˆÚ“®ƒR[ƒh­‚µC³B
- (map/)
- clif.c
- clif_selllist() C³B
- battle.c
- battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
- battle_calc_magic_attack()Abattle_calc_misc_attack() C³B
- skill.c
- skill_additional_effect()Askill_unit_onplace() C³B
- skill_status_change_start()Askill_unit_onplace() C³B
- skill_castend_damage_id()Askill_castend_id()Askill_attack() C³B
- skill_unitsetting()Askill_check_condition() C³B
- skill_use_id()Askill_use_pos() C³B
- npc.c
- npc_parse_script() C³B
- pc.h C³B
- pc.c
- pc_walk()Apc_walktoxy_sub()Apc_stop_walking() C³B
- map.h C³B
- mob.h C³B
- mob.c
- mob_stop_walking()Amob_changestate()Amob_walk() C³B
- pet.c
- pet_changestate() C³B
- atcommand.c C³B
- (db/)
- skill_db.txt ƒOƒ‰ƒ“ƒhƒNƒƒXC³B
- cast_db.txt ƒOƒ‰ƒ“ƒhƒNƒƒXC³B
-
---------------
-//0652 by ŒŽ‰r‚Ý
-
-EƒOƒ‰ƒ“ƒhƒNƒƒX‚ð‰¼ŽÀ‘•
- (db/)
- skill_db.txt
- cast_db.txt
- (map/)
- battle.c
- Damage battle_calc_misc_attack
- Damage battle_calc_magic_attack
- skill.c
- skill_additional_effect
- skill_castend_damage_id
- skill_castend_pos2
- skill_unit_group *skill_unitsetting
- skill_unit_onplace
- skill_check_condition
-
---------------
-//0651 by ”g˜Q
-
-Eitem_db.txt‚ðC³
- (db/)
- item_db.txt
- ‘•”õ•i‚̃AƒCƒeƒ€Œø‰Ê‚ðC³
-
---------------
-//0650 by Ž€_
-
-EŽO’i¶‚Ì”­“®ðŒ‚ð‹|‚Æ“ñ“—¬ˆÈŠO‚É•ÏXB
-E•\Ž¦‚ð‚¹‚¸‚É“à•”‚ň—‚¾‚¯‚·‚éNPC‚ÌCLASS‚ð111‚©‚ç32767‚É•ÏXB
-Eׂ©‚¢C³B
- (map/)
- clif.c
- clif_getareachar_npc()Aclif_spawnnpc()Aclif_pcoutsight() C³B
- npc.h C³B
- battle.c
- battle_calc_pc_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
-
---------------
-//0649 by ”g˜Q
-
-EDB‚ÆDOCC³
- (db/)
- item_db.txt
- ƒOƒ“ƒOƒj[ƒ‹‚ÍLV4•Ší‚È‚Ì‚ÅAŠØ‘‚̃f[ƒ^‚É‚ ‚킹‚Ä•—‘®«‚Å‚Í‚È‚­‚µ‚Ü‚·B
- mob_db.txt
- size_fix.txt
- ŠyŠí‚Í‘åŒ^‚ɑ΂µ‚Ä75%‚¾‚»‚¤‚Å‚·B
- (doc/)
- item_bonus.txt
-
---------------
-//0648 by Ž€_
-
-EƒVƒ‡ƒbƒv‚Ì’l’i‚É-‚ð“ü‚ê‚é‚ÆŽI‚ª—Ž‚¿‚é–â‘èC³B(itemdb‚̉Šú‰»‚ðnpc‚æ‚è
-æ‚É‚·‚é‚悤‚É•ÏXB) ‚»‚ꂾ‚¯‚Å‚·B
- (map/)
- map.c
- do_init()
-
---------------
-//0647 by nini
-
-Eitem_dbC³
-EƒXƒiƒbƒ`ƒƒ[Žd—l•ÏXB‹|ˆÈŠO‚Ì‚·‚ׂĂ̕Ší‚Åo‚é‚悤‚É‚È‚Á‚Ä‚Ü‚·B
- (/map/)
- battle.c
- ŽO’i¶‚Ì”­“®ðŒ’ljÁ
- skill.c
- ƒXƒiƒbƒ`ƒƒ[‚Ì”­“®ðŒ’ljÁ
- (/db/)
- item_db.txt
- ƒVƒ‹ƒNƒnƒbƒg‚ÉSP㸒ljÁ
-
---------------
-//0646 by last
-
-Eitem_db.txt‚ÌC³(‘®«ŠÖ˜A)
- (/db/)
- item_db.txt
-
---------------
-//0645 by ‚é‚é‚éi•ree_ronj
-
-Eitem_value_db.txt‚ɃfƒBƒXƒJƒEƒ“ƒg•ƒI[ƒo[ƒ`ƒƒ[ƒW“™‚̃XƒLƒ‹‚É‚æ‚鉿Ši•Ï“®‚ðŽó‚¯‚é‚©‚Ç‚¤‚©‚̃tƒ‰ƒOƒƒ“ƒg‚ð’ljÁB
-@ŽÀÛ‚ÌŒ`Ž®‚̓Tƒ“ƒvƒ‹‚Æ‚µ‚Ä—pˆÓ‚µ‚½item_value_db.sample.txt‚ðŒ©‚Ä‚­‚¾‚³‚¢Biݒ艿Ši‚ÍŠ®‘S‚É“Æ’f‚Æ•ÎŒ©‚Å‚·j
-@“¯—l‚̃Tƒ“ƒvƒ‹‚Æ‚µ‚Ä‚m‚o‚bÝ’uƒXƒNƒŠƒvƒg‚à“Y•t‚µ‚Ä‚¨‚«‚Ü‚·B
-Eitem_value_db.txt‚̃AƒCƒeƒ€‰¿ŠiÝ’è‚ÅA”„’l‚Æ”ƒ’l‚ÌÝ’è‚ð“Æ—§Biitem_db.txt‚Í]—ˆ‚Ç‚¨‚蔃’l‚Í”„’l‚Ì”¼Šz‚Æ‚µ‚ÄŽ©“®ˆ—j
-E‚m‚o‚bƒVƒ‡ƒbƒv‚É‚ÄA‚P‚m‚o‚b‚ňµ‚¦‚éƒAƒCƒeƒ€”‚ðÅ‘å64‚©‚çÅ‘å100‚É•ÏXBiƒNƒ‰Ž©‘Ì‚Í120‚®‚ç‚¢‚܂ʼn”\‚Å‚·‚ªj
- (/db)
- item_value_db.txt
- ƒJƒ‰ƒ€”‚ð®—‚µ‚½‚¾‚¯‚Å‚·B“à—e‚Í‚Ü‚Á‚½‚­•ÏX‚µ‚Ä‚¢‚Ü‚¹‚ñB
- (/map/)
- clif.c
- clif_buylist() clif_selllist() •ÏX
- itemdb.h
- item_data \‘¢‘Ì•ÏX
- itemdb_value_buy() itemdb_value_sell() itemdb_value_notdc() itemdb_value_notoc() ƒ}ƒNƒ’ljÁ
- itemdb.c
- itemdb_search() itemdb_readdb() itemdb_read_itemvaluedb() •ÏX
- itemdb_sellvalue() íœ
- npc.c
- npc_buylist() npc_selllist() npc_parse_shop() •ÏX
- (/sample/)
- ƒIƒ}ƒP‚Å‚·BŽŸ‰ñSnapShot‚É‚ÍŠÜ‚Ü‚È‚¢‚Å‹X‚µ‚¢‚Å‚·B
-
-ƒRƒƒ“ƒg
-Œ´Œ^‚ÍŽ„‚Ì—Flree_ron‚ªs‚¢AŽ„‚ªX‚Éׂ©‚¢ƒ~ƒX‚𒼂µ‚½‚¾‚¯‚Å‚·‚ªAƒeƒXƒg‚Í‚µ‚Ü‚µ‚½‚Ì‚Å‘åä•v‚Å‚µ‚傤B
-Œ³X‚±‚̈—‚𓱓ü‚·‚é——R‚Æ‚µ‚ÄA“Á’èƒAƒCƒeƒ€‚Ì”„’l‚ª1zŒÅ’è‚É‚Å‚«‚È‚¢‚à‚Ì‚©A‚Æ‚¢‚¤“_‚¾‚Á‚½‚©‚ç‚Å‚·B
-‚»‚µ‚Ä‚â‚Á‚Ä‚¢‚­‚¤‚¿‚ÉA‚m‚o‚bƒVƒ‡ƒbƒv‚ð—˜—p‚µ‚½ƒŒƒAƒAƒCƒeƒ€‚̔̔„‚Æ‚©‚Å–{ŽI˜I“X‚É‹ß‚¢‚±‚Æ‚ªo—ˆ‚é‚Ì‚Å‚Í‚È‚¢‚©A
-‚Æ‚¢‚¤‚±‚Æ‚ª”»‚Á‚Ä‚«‚½‚킯‚Å‚·B
-‚»‚ê‚ňꉞ‚̓f[ƒ^‚ð—pˆÓ‚µ‚Ü‚µ‚½‚ªA‚ ‚­‚Ü‚Å‚àƒTƒ“ƒvƒ‹‚Æ‚µ‚Ä—˜—p‚µ‚Ä‚­‚¾‚³‚¢B‚à‚µ‰Â”\‚È‚ç‚ÎA
-‚³‚ç‚ÉC³‚ð‰Á‚¦‚ăAƒeƒi“ÆŽ©‚Æ‚µ‚Ä–{Ì—p‚Æ‚µ‚½ƒf[ƒ^‚ðƒpƒbƒ`ƒAƒbƒv‚µ‚Ä‚­‚ê‚ê‚΂ƂàŽv‚¢‚Ü‚·‚ª‚—
-
-
---------------
-//0644 by nini
-
-EDB‚̊ԈႢA643‚ŒljÁ‚³‚ꂽƒXƒNƒŠƒvƒg’ljÁB
- (/db/)
- item_db.txt
- cast_db.txt
- ƒ`ƒƒ[ƒWƒAƒ[‚̃LƒƒƒXƒg’ljÁB
- exp_guild.txt
- 46-50‚Ü‚Å‚Ìexp”²‚¯‚ɒljÁB
- size_fix.txt
- ŠyŠíA•ÚAƒiƒbƒNƒ‹‚̃TƒCƒY•â³C³B
-
---------------
-//0643 by Ž€_
-
-EFX‚ÆC³B
-EbMVPaddAtkRateíœBbAddRace‚ň—‚·‚é‚悤‚É•ÏXB
-EbIgnoreDefEle‚ÆbIgnoreDefRace’ljÁB
-bonus bIgnoreDefEle,n; n‘®«‚Ì“G‚Ì–hŒä–³Ž‹
-bonus bIgnoreDefRace,n; nŽí‘°‚Ì“G‚Ì–hŒä–³Ž‹
-EbMatkRate’ljÁB–‚–@UŒ‚—Í‚ð+n%ã‚°‚Ü‚·B‚æ‚Á‚Äbattle.c‚ÅŒvŽZ‚µ‚Ä‚¢‚½ƒƒbƒh‚É‚æ‚é–‚–@UŒ‚—Í‘•‚ÌŒvŽZ‚Í‚È‚­‚µ‚Ü‚µ‚½BƒXƒe[ƒ^ƒX‰æ–Ê‚Éオ‚Á‚½”’l‚Í•\Ž¦‚³‚ê‚Ü‚¹‚ñBƒ_ƒ[ƒWŒvŽZ‚ÌŽž‚É“K—p‚µ‚Ä‚¢‚Ü‚·B
-EbCriticalDef‚É-‚ð“ü‚ê‚é‚ƃNƒŠƒeƒBƒJƒ‹‚ð‹ò‚炤Šm—¦‚ªã‚ª‚é‚悤‚É•ÏXB
-ENPC”Ô†111‚Í“§–¾NPC‚Å‚·‚ª—Ž‚Æ‚µŒŠ“™‚Ì‚±‚Æ‚ðl‚¦‚Ä•\Ž¦‚ðˆêØ‚¹‚¸‚É
-“à•”‚ň—‚¾‚¯‚·‚é‚悤‚É•ÏXB(flag‚ðŽg‚¤‚Ɖ½‚Æ‚©‚È‚è‚»‚¤‚Å‚·‚ª‚»‚Ì
-ˆ—‚ª‘S‘R‚í‚©‚ç‚È‚©‚Á‚½‚Ì‚Å“§–¾NPC‚ɃNƒŠƒbƒN‚â–¼‘O‚Ì•\Ž¦‚à‚Å‚«‚È‚¢‚悤‚É•ÏX‚µ‚Ü‚µ‚½B)
-EƒVƒ‡ƒbƒv‚Ì’l’i‚É-‚ð“ü‚ê‚é‚Æitem_db.txt‚à‚µ‚­‚Íitem_value_db.txt‚Ì•¨‚ðŽg‚¤‚悤‚É•ÏXB
-EƒXƒLƒ‹ƒ‹ƒAƒt‚̃GƒtƒFƒNƒg‚ªƒTƒCƒg‚Æ“¯‚¶‚¾‚Á‚½‚Ì‚ÅC³B‚‚¢‚łɃ‹ƒAƒt‚Ì
-ƒ_ƒ[ƒW‚àC³B
-E‚Ý‚·‚Ƃꑃ‚É‚æ‚é‚ƃ‚ƒ“ƒXƒ^[î•ñ‚Å•\Ž¦‚³‚ê‚é–hŒä‚Æ–‚–@–hŒä‚ÍæŽZ‚Å‚Í‚È‚­Œ¸ŽZ‚Ý‚½‚¢‚È‚Ì‚ÅC³B
-E‘¼—Í–{Šè‚Å‚·‚ªitem_db.txt‚ÌC³‚ð‚¨Šè‚¢‚µ‚Ü‚·B(‘S‚Ẵƒbƒh‚Ébonus bMatkRate,15; ‚ð“ü‚ê‚é•K—v‚ª‚ ‚è‚Ü‚·B‚»‚Ì‘¼‚ÌC³‚à•K—v‚Å‚·B)
-EƒeƒXƒg‚µ‚Ä‚¢‚È‚¢•¨‚à‚©‚È‚è‚ ‚è‚Ü‚·‚Ì‚Å–â‘肪‚ ‚Á‚½‚ç•ñ‚µ‚Ä‚­‚¾‚³‚¢B
- (map/)
- map.h C³B
- map.c
- map_quit() C³B
- pc.h C³B
- pc.c
- pc_walk()Apc_stop_walking()Apc_setpos()Apc_authok() C³B
- pc_calcstatus()Apc_bonus()Apc_natural_heal_sub() C³B
- npc.h C³B
- npc.c
- npc_touch_areanpc()Anpc_parse_shop() C³B
- clif.c
- clif_quitsave()Aclif_getareachar_npc()Aclif_spawnnpc() C³B
- clif_skill_estimation() C³B
- battle.c
- battle_calc_magic_attack()Abattle_calc_pc_weapon_attack() C³B
- battle_calc_mob_weapon_attack() C³B
- mob.c
- mobskill_use() C³B
- skill.c
- skill_status_change_end()Askill_status_change_timer() C³B
- skill_status_change_start() C³B
- (db/)
- const.txt C³B
- (doc/)
- item_bonus.txt C³B
-
---------------
-//0642 by Ž€_
-
-E‘•”õƒoƒOC³B(‚»‚ꂾ‚¯)
- (map/)
- pc.c
- pc_authok()Apc_checkitem() C³B
-
---------------
-//0641 by Ž€_
-
-EbAspdRate‚ÆbSpeedRate‚̃oƒOC³B(‚»‚ꂾ‚¯)0640‚ÅŒvŽZ‚ð‚¿‚å‚Á‚Æ•Ï‚¦‚ÄŒ©‚Ü‚µ‚½‚ª‚»‚ꂪ‚Ü‚¸‚©‚Á‚½‚Ý‚½‚¢‚Å‚·B¡“x‚àŒvŽZŽ®‚ð•Ï‚¦‚Ü‚µ‚½‚ª‚à‚¤‘åä•v‚¾‚ÆŽv‚¢‚Ü‚·B(‘½•ª)
- (map/)
- pc.c
- pc_calcstatus()Apc_bonus()Apc_delitem()
-
---------------
-//0640 by Ž€_
-
-EƒoƒOC³‚Æ­‚µC³B
-E‚Ý‚·‚Ƃꑃ‚ðŽQl‚µ‚ă_ƒ[ƒWŒvŽZ‚ð­‚µC³B
-Ebattle_athena.conf‚É€–ڒljÁB(Ú‚µ‚¢‚±‚Æ‚Íconf_ref.txt‚Å)
-EƒLƒƒƒ‰‚ÌHP‚ÆSP‚ð2byte‚©‚ç4byte‚É•ÏXB(ƒeƒXƒg‚Í‚µ‚Ä‚¢‚Ü‚·‚ªƒoƒO‚ªo‚é
-‰Â”\«‚à‚©‚È‚è‚ ‚è‚Ü‚·B‚½‚¾ƒLƒƒƒ‰ƒZƒŒƒNƒg‰æ–Ê‚ÅHP‚âSP‚ª32768‚ð‰z‚¦‚鎞
-•\Ž¦‚Í32768‚ɂȂ邯‚Ç“à•”‚̈—‚ͳí‚É“®‚«‚Ü‚·‚Ì‚Å‚»‚ê‚̓oƒO‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
-ƒpƒPƒbƒg‚Ì’·‚³‚Ì‚¹‚¢‚Å‚»‚êˆÈŠOŽè’i‚ª‚È‚©‚Á‚½‚Ì‚Å...)
-EbCriticalDef(ƒNƒŠƒeƒBƒJƒ‹‚ð‹ò‚ç‚í‚È‚¢Šm—¦+n%)‚̈—•ÏXB100‚É‚·‚ê‚Î
-ƒNƒŠƒeƒBƒJƒ‹‚ð‹ò‚ç‚í‚È‚¢‚悤‚É‚È‚è‚Ü‚·B)
-EbInnerAtk‚ðbBaseAtk‚É•ÏXB‚Ý‚·‚Ƃꑃ‚ŃJ[ƒh‚ÌUŒ‚‚ÍŠî–{UŒ‚—Í‚Ì•û‚É‘«‚³‚ê‚é‚Æ‚ ‚è‚Ü‚µ‚½‚Ì‚Å•ÏX‚µ‚Ü‚µ‚½B¡“x‚Íオ‚Á‚½UŒ‚—Í‚ª•\Ž¦‚³‚ê‚Ü‚·B
-EbDoubleRate‚̈—•ÏXBŠm—¦‚ð‘«‚³‚¸‚Ɉê”Ô‚‚¢•¨‚¾‚¯“K—p‚µ‚Ü‚·B‚»‚ê‚ƶŽè
-‘•”õ‚Ìꇖ³Ž‹‚·‚é‚悤‚É•ÏX‚µ‚Ü‚½B(¶Žè‚̓_ƒuƒ‹‚ª“K—p‚³‚ê‚Ü‚¹‚ñ‚Ì‚Å)
-EbDoubleAddRate’ljÁB‹@”\‚̓_ƒuƒ‹ƒAƒ^ƒbƒNŠm—¦+n%(•Ší–³Ž‹)‚Å‚·B
-¶Žè‘•”õ‚Í–³Ž‹‚³‚ê‚Ü‚·B
-E0635‚ÅUŒ‚—Í•\Ž¦‚ð–{ŽI‚É‚ ‚킹‚Ü‚µ‚½B‚»‚µ‚Ä¡“x‚Í‹|‚¾‚¯‚Å‚Í‚È‚­
-ŠyŠí‚ƃ€ƒ`‚àdex‚É‚æ‚Á‚ÄUŒ‚—Í‚ªã‚ª‚é‚悤‚É•ÏX‚µ‚Ü‚µ‚½B
-E‘•”õ‚µ‚½•Ší‚ªÁ‚¦‚éƒoƒOC³‚ׂ̈ɭ‚µC³‚Í‚µ‚Ü‚µ‚½‚ª–{“–‚É
-‘åä•v‚È‚Ì‚©‚Í•s–¾‚Å‚·B•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
- (conf/)
- battle_athena.conf C³B
- (db/)
- const.txt C³B
- item_db.txt C³B
- (doc/)
- item_bonus.txt C³B
- conf_ref.txt C³B
- (map/)
- map.h C³B
- pc.c
- pc_calcstatus()Apc_bonus()Apc_equipitem() C³B
- battle.h C³B
- battle.c
- battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
- battle_config_read() C³B
- clif.c
- clif_updatestatus()Aclif_parse_LoadEndAck()Aclif_party_hp() C³B
- (common/)
- mmo.h C³B
- (char/)
- char.c
- mmo_char_send006b()Aparse_char() C³B
-
---------------
-//0639 by ŒÓ’±—–
-
-Eladmin‚ÌC³‚È‚Ç
- Eƒvƒƒ“ƒvƒg‚Ì“ü—Í‚ÉTerm::ReadLine‚ðŽg‚¤‚悤‚É‚µ‚½
- @i“ü—Í—š—ð‚âƒRƒ}ƒ“ƒhƒ‰ƒCƒ“‚Ì•ÒW‚ª‰Â”\‚Éj
- EPOSIXŠÖŒW‚̈—‚Ì—áŠOƒGƒ‰[‚ðƒgƒ‰ƒbƒv‚·‚é‚悤‚É‚µ‚Ü‚µ‚½
- @iPOSIX‚ª‘S‚­Žg‚¦‚È‚¢ŠÂ‹«‚Å‚àÅ’áŒÀA“®‚­‚悤‚É‚È‚Á‚½‚©‚à‚µ‚ê‚È‚¢j
- Eו”C³
-
- (tool/)
- ladmin
- Ver.1.04‚ÉB
-
-EMODƒo[ƒWƒ‡ƒ“‚ª‚¨‚©‚µ‚¢–â‘è‚ðC³
- (common/)
- version.h
- ATHENA_MOD_VERSION‚ª‚Wi”‚Å‹Lq‚³‚ê‚Ä‚¢‚é–â‘è‚ðC³
- ”Žš‚Ì“ª‚É0‚ð‚‚¯‚é‚Æ‚Wi”‚É‚È‚é‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢
-
---------------
-//0638 by ”g˜Q
-
-E0635E0637‚ÅV‚µ‚­ƒAƒCƒeƒ€Œø‰Ê‚ªŽÀ‘•‚³‚ꂽ‚Ì‚ÅA‚»‚ê‚É”º‚Á‚Äitem_db.txt‚ðC³
-Eitem_bonus.txt‚ðC³
- (db/)
- item_db.txt C³
- (doc/)
- item_bonus.txt C³
-
---------------
-//0637 by Ž€_
-
-E0635‚̃oƒOC³B
-Ebattle_athena.conf‚É€–ڒljÁB(Ú‚µ‚¢‚±‚Æ‚Íconf_ref.txt‚ðŒ©‚Ä‚­‚¾‚³‚¢B)
-EŽžŠÔ‚ª’x‚·‚¬‚Ä0635‚Åà–¾‚µ‚Ä‚È‚©‚Á‚½‚Å‚·B(Q•s‘«‚¾‚Á‚½‚Ì‚Å...)
-‚Ü‚¸Žd—l‚ª•Ï‚í‚Á‚½‚Ì‚Í“ñ“—¬‚̃_ƒ[ƒW‚ð•Ší•Ê‚ÉŠ®‘S‚É•ª‚¯‚Äs‚¤‚悤‚É
-•ÏX‚ƃAƒTƒVƒ“‚¶‚á‚È‚­‚ĂඎèC—û‚ðŠo‚¦‚Ä‚¢‚ê‚Γñ“—¬‚ðŽg‚¦‚é‚悤‚É
-•ÏX‚µ‚Ü‚µ‚½B‚»‚ê‚ƃ_ƒ[ƒW‚ÌŒvŽZ‚ð‚¿‚å‚Á‚ÆC³B
-‚»‚µ‚Äbonus‚ɒljÁ‚³‚ꂽ‚Ì‚Í
-bonus bInnerAtk,n; “à•”UŒ‚—Í+n
-ƒJ[ƒh‚̈ø‚«ã‚°ƒ_ƒ[ƒW—p‚Å‚·B•\Ž¦‚Í‚³‚ê‚È‚¢‚¯‚ǃ_ƒ[ƒW‚ÉŒvŽZ‚³‚ê‚Ü‚·B
-bonus bSpeed,n; ˆÚ“®‘¬“x+n
-ˆÚ“®‘¬“x‚ðnã‚°‚Ü‚·B
-bonus bAspd,n; UŒ‚‘¬“x+n
-UŒ‚‘¬“x‚ðnã‚°‚Ü‚·B
-bonus bSpeedRate,n; ˆÚ“®‘¬“x+n%
-ˆÚ“®‘¬“x‚ðn%ã‚°‚Ü‚·B
-bonus bAspdRate,n; UŒ‚‘¬“x+n%
-UŒ‚‘¬“x‚ðn%ã‚°‚Ü‚·B
-bonus bHPrecovRate,n; HPŽ©“®‰ñ•œ—¦+n%
-Ž©“®‰ñ•œ‚·‚éHP‚Ì—Ê‚ðn%ã‚°‚Ü‚·BƒXƒLƒ‹‚É‚æ‚é‰ñ•œ‚ɂ͉e‹¿‚ª‚ ‚è‚Ü‚¹‚ñB–{ŽI‚ÌŽd—l‚Æ‚ ‚Á‚Ä‚¢‚é‚©‚Í•s–¾‚Å‚·B
-bonus bSPrecovRate,n; SPŽ©“®‰ñ•œ—¦+n%
-Ž©“®‰ñ•œ‚·‚éSP‚Ì—Ê‚ðn%ã‚°‚Ü‚·BƒXƒLƒ‹‚É‚æ‚é‰ñ•œ‚ɂ͉e‹¿‚ª‚ ‚è‚Ü‚¹‚ñB–{ŽI‚ÌŽd—l‚Æ‚ ‚Á‚Ä‚¢‚é‚©‚Í•s–¾‚Å‚·B
-bonus bCriticalDef,n; ƒNƒŠƒeƒBƒJƒ‹‚ð‹ò‚ç‚í‚È‚¢Šm—¦+n%
-ƒNƒŠƒeƒBƒJƒ‹‚Ì‘Ï«‚ðnã‚°‚Ü‚·B10000ˆÈã‚É‚·‚é‚ƃNƒŠƒeƒBƒJƒ‹‚ð‹ò‚ç‚¢‚Ü‚¹‚ñB
-bonus bMVPaddAtkRate,n; MVPƒ‚ƒ“ƒXƒ^[‚Én%‚̒ljÁƒ_ƒ[ƒW
-ƒ{ƒXƒ‚ƒ“ƒXƒ^[‚Én%‚̒ljÁƒ_ƒ[ƒW‚ð—^‚¦‚Ü‚·B[•£‚Ì‹RŽmƒJ[ƒh—pB
-bonus bNearAtkDef,n; ‹ß‹——£UŒ‚‚̃_ƒ[ƒW‚ðn%‚ÌŒ¸‚ç‚·
-‘S‚Ä‹ß‹——£UŒ‚‚̃_ƒ[ƒW‚ðn%‚ÌŒ¸‚炵‚Ü‚·B(–‚–@‚ƃgƒ‰ƒbƒvA‘é‚𜂭)
-bonus bLongAtkDef,n; ‰“‹——£UŒ‚‚̃_ƒ[ƒW‚ðn%‚ÌŒ¸‚ç‚·
-‘S‚ĉ“‹——£UŒ‚‚̃_ƒ[ƒW‚ðn%‚ÌŒ¸‚炵‚Ü‚·B(–‚–@‚ƃgƒ‰ƒbƒvA‘é‚𜂭)
-bonus bDoubleRate,n; ƒ_ƒuƒ‹ƒAƒ^ƒbƒNŠm—¦+n%(•Ší–³Ž‹)
-•Ší‚ÉŠÖŒW‚È‚­”­“®‚·‚éƒ_ƒuƒ‹ƒAƒ^ƒbƒNŠm—¦‚ðn%ã‚°‚Ü‚·B
-ƒ_ƒuƒ‹ƒAƒ^ƒbƒNƒXƒLƒ‹‚Æ•Ê‚Ì”»’è‚ðs‚¤ˆ×ƒ_ƒuƒ‹ƒAƒ^ƒbƒNƒXƒLƒ‹‚ª
-‚ ‚Á‚Ä‚àƒXƒLƒ‹‚É‚æ‚éƒ_ƒuƒ‹ƒAƒ^ƒbƒNŠm—¦‚ªã‚ª‚é‚킯‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
-ƒTƒCƒhƒƒCƒ“ƒ_[ƒJ[ƒh—pB
- (map/)
- pc.c
- pc_bonus()Apc_calcstatus() C³B
- pc_natural_heal_sub() C³B
- battle.h
- struct Battle_Config {} C³B
- battle.c
- battle_calc_pc_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
- battle_config_read() C³B
- (db/)
- skill_db.txt
- ƒXƒeƒB[ƒ‹‚ÌSP‚ð10‚ÉC³B
- (conf/)
- battle_athena.conf C³B
- (doc/)
- conf_ref.txt C³B
-
---------------
-//0636 by Sin
-
-EƒfƒoƒbƒO—pƒ|ƒ^Žq‚³‚ñƒXƒNƒŠƒvƒg(npc_pota.txt)‚̃Aƒ}ƒcEƒRƒ“ƒƒ“‚ւ̑ΉžB
-@‚·‚Å‚ÉŽ©—ÍŽÀ‘•‚³‚ê‚Ä‚¢‚ç‚Á‚µ‚á‚é•ûX‚à‘½‚¢‚©‚ÆŽv‚¢‚Ü‚·‚ªcB
-@ƒRƒ“ƒƒ“ƒ_ƒ“ƒWƒ‡ƒ“‚Ì–¼‘O‚ª‚í‚©‚ç‚È‚¢‚½‚ßu›À›ÄD1v‚È‚Ç‚Æ‚³‚¹‚Ä‚¢‚½‚¾‚¢‚Ä‚¢‚Ü‚·B
- (conf/) npc_pota.txt
-
---------------
-//0635 by Ž€_
-
-Ebattle_athena.conf‚É€–ڒljÁB(Ú‚µ‚¢‚±‚Æ‚Íconf_ref.txt‚ðŒ©‚Ä‚­‚¾‚³‚¢B)
-Ebonus‚ÉbInnerAtk(ƒJ[ƒh“™‚Å•\Ž¦‚Í‚³‚ê‚È‚¢‚¯‚ÇŽÀÛ‚É‚ÍUŒ‚—Í‚É”½‰f‚³‚ê‚镨—p‚Å‚·B)“™‚ð’ljÁB‘¼‚Ì‚Íitem_bonus.txt‚ðŒ©‚Ä‚­‚¾‚³‚¢B(’ljÁ‚Í‚µ‚½‚¯‚Çitem_db.txt‚Í–w‚ñ‚ÇC³‚µ‚Ä‚Ü‚¹‚ñB)
-E‚»‚Ì‘¼ƒoƒOC³‚âŽd—l•ÏX‚à‚â‚è‚Ü‚µ‚½‚ªˆêX‘‚­ŽžŠÔ‚ª‚È‚¢‚Ì‚Å...
- (map/)
- makeile C³B
- pc.c C³B
- map.h C³B
- clif.c C³B
- battle.h C³B
- battle.c C³B
- itemdb.c C³B
- (conf/)
- battle_athena.conf C³B
- (doc/)
- conf_ref.txt C³B
- item_bonus.txt C³B
- (db/)
- const.txt C³B
- item_db.txt C³B
-
---------------
-//0634 by Ž€_
-
-EweddingƒNƒ‰ƒX‚É‚Í“]E‚Å‚«‚È‚¢‚悤‚ÉC³B
-EƒX[ƒp[ƒm[ƒrƒX‚ׂ̈Éexpƒe[ƒuƒ‹‚ðbase 4‚Âjob 4‚‚Ɋg’£B
-exp.txt‚ª•Ï‚í‚èƒX[ƒp[ƒm[ƒrƒX‚¾‚¯‚ÌŒoŒ±’l‚ðÝ’è‚Å‚«‚Ü‚·B(exp.txt‚Ì
-4‚–ڂªƒX[ƒp[ƒm[ƒrƒX‚Ìbase exp‚Å8‚–ڂªjob exp‚Å‚·B¡‚Í2ŽŸE‹Æ‚Ì•¨‚ð
-ƒRƒs[‚µ‚½•¨‚ɉ߂¬‚Ü‚¹‚ñ‚ªB) exp.txt‚ÌÝ’è•û–@‚à’m‚ç‚È‚¢•û‚Í‚¢‚È‚¢‚Æ
-Žv‚¢‚Ü‚·‚Ì‚Åà–¾‚ÍÈ—ª‚µ‚Ü‚·B
-EƒX[ƒp[ƒm[ƒrƒX‚Í“]¶‚̃eƒXƒg‚ׂ̈ɊؑƒTƒNƒ‰ƒC‚¾‚¯ŽÀ‘•‚µ‚Ä‚¢‚镨‚Æ
-Žv‚í‚ê‚Ü‚·‚ª(“]¶‚ªŽÀ‘•‚³‚ê‚ê‚΂Ȃ­‚È‚é‚Æ—\‘ª‚µ‚Ä‚¢‚Ü‚·B)‚»‚ê‚ð
-ŽÀ‘•‚µ‚Ä‚¢‚¢‚Ì‚©‚ÆŽv‚Á‚½‚è‚à‚µ‚Ü‚·‚ª...
-EŒ‹¥ˆßÖ‚ÍŠù‚É0629‚ÅŽÀ‘•‚µ‚Ä‚¢‚é‚Ì‚É‚Ü‚½ƒpƒbƒ`‚Æ‚µ‚Ä
-ƒAƒbƒv‚³‚ê‚é‚Ì‚à‚¿‚å‚Á‚Æ•Ï(H)‚Å‚·‚ËB‚»‚¤‚¢‚¦‚Îà–¾‚µ‚Ä‚È‚©‚Á‚½‚ñ‚Å‚·‚ËB
-E‘•”õê—pƒXƒNƒŠƒvƒg‚Å‚ ‚échangebase‚̒ljÁ‚É‚æ‚Á‚ă^ƒLƒV[ƒh‚Æ
-ƒEƒFƒfƒBƒ“ƒOƒhƒŒƒX‚ªŽÀ‘•‚µ‚Ä‚¢‚Ü‚·B‚±‚ê‚ÍE‹Æ‚ð•ÏX‚¹‚¸‚ÉŒ©‚½–Ú‚¾‚¯
-•Ï‚¦‚镨‚Å‚·BweddingƒNƒ‰ƒXˆÈŠO‚Ì“K—p‚à‰Â”\‚Å•Ï‘•ƒZƒbƒg‚Æ‚©‚àì‚ê‚é
-‚킯‚Å‚·‚ª“à•”ˆ—‚Í•ÏX‚¹‚¸‚ÉŒ©‚½–Ú‚¾‚¯•Ï‚¦‚Ä‚¢‚é‚Ì‚Å0631‚Åà–¾‚µ‚½‚悤‚É
-‘•”õ‚Å‚«‚È‚¢•¨‚ð‘•”õ‚µ‚Ä‚¢‚éꇈƗŽ‚¿‚ª‹N‚±‚é‰Â”\«‚ª‚ ‚è‚Ü‚·‚Ì‚Å
-‘¼‚ÌE‹Æ‚ÅŽg‚¤‚Ì‚Í‚¨Š©‚ß‚µ‚Ü‚¹‚ñB‰¼ŽÀ‘•‚È‚Ì‚Í¡‚ÌŽd—l‚̓^ƒLƒV[ƒh‚Æ
-ƒEƒFƒfƒBƒ“ƒOƒhƒŒƒX‚ð‘•”õ‚·‚邾‚¯‚ÅŒ©‚½–Ú‚ª•Ï‚í‚é‚©‚ç‚Å‚·BŠØ‘ƒTƒNƒ‰ƒC‚Ì
-•û‚ł͉½‚©‚ÌðŒ‚ª•K—v‚¾‚ÆŽv‚Á‚Ä‚¢‚é‚Ì‚Å‚»‚ÌðŒ‚ª‚Ü‚¾ŽÀ‘•‚³‚ê‚¢‚È‚¢‚©‚ç
-‰¼ŽÀ‘•‚Å‚·B‚»‚ê‚ÉweddingƒNƒ‰ƒX‚ðE‹Æ‚É‚µ‚Ä‚µ‚Ü‚¤‚ÆŒ‹¥‚·‚é‚ƃXƒLƒ‹“™‚ª
-ƒŠƒZƒbƒg‚³‚ê‚é‚©•Ï‚É‚È‚é‚©‚Ì‚Ç‚¿‚ç‚È‚Ì‚Å•Ï‚¾‚ÆŽv‚Á‚Ä‚È‚©‚Á‚½‚Ì‚Å‚µ‚傤‚©H
- help.txt C³B
- (db/)
- job_db1.txt C³B
- exp.txt C³B
- (map/)
- pc.c
- pc_jobchange()Apc_readdb() C³B
- pc_nextbaseexp()Apc_nextjobexp() C³B
-
---------------
-//0633 by ”g˜Q
-
-E‘•”õ‚ÌÝ’èC³BŒ‹¥ˆßÖ‚ÌE‚ÍAŽÀÛ‚É“]E‚·‚é‚Ì‚Å‚Í‚È‚­ƒyƒRƒiƒCƒg(13)AƒyƒRƒNƒ‹ƒZ(21)‚̂悤‚ɉ摜‚ðŽg‚¤‚¾‚¯‚¾‚ÆŽv‚¤‚Ì‚Å
-@‰½‚à‘•”õ‚Å‚«‚È‚¢Ý’è‚É‚µ‚Ü‚µ‚½BƒXƒpƒmƒr‚̓mƒr‚ª‘•”õ‚Å‚«‚é‚à‚Ì‚¾‚¯Ý’肵‚Ü‚µ‚½B
-EŒÃ–Ø‚ÌŽ}‚ÌoŒ»ƒ‚ƒ“ƒXƒ^[‚ð’ljÁ
-EƒAƒ}ƒc‚̃‚ƒ“ƒX‚Ì•¦‚«‹ï‡‚ð–{ŽI‚É‹ß‚­‚È‚é‚悤‚ÉC³(‚Ü‚¾‚Ü‚¾ˆá‚¢‚Ü‚·‚ªEEE)
- (conf/)
- npc_monster.txt ƒ‚ƒ“ƒX–¼C³
- npc_monster_amatsu.txt C³
- (db/)
- item_avail.txt ˆÆ—Ž‚¿ƒAƒCƒeƒ€’ljÁ
- item_db.txt ‘•”õÝ’è‚ðC³A‘¼‘½”
- mob_branch.txt C³
- mob_db.txt ƒ‚ƒ“ƒX–¼C³
- skill_tree.txt C³
-
---------------
-//0632 by nini
-
-E@jobchange‚ÅŒ‹¥ˆßւƃX[ƒp[ƒm[ƒrƒX‚É‚È‚ê‚é‚悤‚ÉB(’ˆÓFŠØ‘÷ˆäƒNƒ‰ƒCƒAƒ“ƒg‚Ì‚Ý)
-ESƒmƒr‚̃XƒeAƒXƒLƒ‹‚È‚Ç‚àŽb’è’ljÁB(ƒm[ƒrƒX‚̃Rƒs[‚Å‚·‚ª)
-@‚Æ‚è‚ ‚¦‚¸Œ©‚½–Ú‚¾‚¯‚Æ‚¢‚¤‚±‚Æ‚ÅAŒ‹¥ˆßÖ‚Å‚àUŒ‚‚Å‚«‚Ü‚·‚ª(‚½‚¾‚µƒm[ƒ‚[ƒVƒ‡ƒ“)A–{—ˆ‚Í‚Å‚«‚Ü‚¹‚ñB
-Eã‚É‚ ‚킹‚Äitem_db•ÒWB
-@Œ‹¥ˆßÖ‚Å•Ší‚à‚‚ÆactAsprƒGƒ‰[o‚·‚Ì‚ÅAŒ‹¥ˆßÖ‚Å‚Í•Ší‚ðŽ‚Ä‚È‚¢‚悤‚É‚µ‚½(‚Í‚¸)B
- (db/)
- job_db1.txt
- job_db2.txt
- item_db.txt
- Œ‹¥ˆßÖASƒmƒr‚̃f[ƒ^
- skill_tree.txt
- Sƒmƒr‚̃XƒLƒ‹
- (map/)
- map.h
- MAX_PC_CLASS‚ɒljÁ
-
---------------
-//0631 by Ž€_
-
-Eׂ©‚¢C³B
-Eƒ^ƒLƒV[ƒh‚ƃEƒFƒfƒBƒ“ƒOƒhƒŒƒX‚Ì•\Ž¦‚ðbattle_athena.conf‚ÅÝ’è‚Å‚«‚é
-‚悤‚É•ÏXB
-E•ŠíƒOƒ‰ƒpƒbƒ`‚ɂ‚¢‚Ä‚Å‚·‚ªƒpƒbƒ`‘O‚ÍŽg‚¦‚È‚¢E‹Æ‚ª‘•”õ‚ð‚µ‚Ä‚à•\Ž¦‚Í
-‚³‚ê‚È‚¢‚¾‚¯‚ňƗŽ‚¿‚Ü‚Å‚Í‹N‚±‚ç‚È‚©‚Á‚½‚¯‚Ç•ŠíƒOƒ‰ƒpƒbƒ`‚ÌŒã‚Í‚»‚Ì•Ší‚ð
-‘•”õ‚·‚邱‚Æ‚ª‚Å‚«‚È‚¢E‹Æ(–{ŽI‚Å)‚ª‘•”õ‚µ‚Ä‚µ‚Ü‚Á‚½ê‡ˆÆ—Ž‚¿‚ª‹N‚±‚é
-‚±‚Æ‚ª‚ ‚è‚Ü‚·‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
- (db/)
- item_db.txt
- 1161A2338A7170 C³B
- (conf/)
- battle_athena.conf C³B
- (doc/)
- conf_ref.txt C³B
- (map/)
- battle.h
- struct Battle_Config‚Éwedding_modifydisplay ’ljÁB
- battle.c
- battle_config_read() C³B
- pc.h
- pc_cart_delitem() C³B
- pc.c
- pc_jobchange()Apc_additem()Apc_delitem()Apc_cart_delitem() C³B
- pc_checkitem()Apc_getitemfromcart() C³B
- clif.c
- clif_changelook()Aclif_send()Aclif_parse_GlobalMessage() C³B
- script.c
- buildin_changebase() C³B
- storage.c
- storage_storageaddfromcart() C³B
- vending.c
- vending_purchasereq() C³B
-
---------------
-//0630 by ˆø‘Þl
-
-EƒMƒ‹ƒh’E‘ÞŽž‚ÉcharƒT[ƒo‚ª—Ž‚¿‚邱‚Æ‚ª‚ ‚é‚Ì‚ðC³
-Ewater_height.txt‚ðXV
-E0627‚ÉŠÖ˜A‚µ‚ÄmodifydisplayŠÖ˜A‚ðíœ
- (char/)
- int_guild.c
- mapif_guild_leaved()‚̃oƒbƒtƒ@—e—Ê‚ª‘«‚è‚È‚©‚Á‚½‚Ì‚ÅA
- unsigned char buf[64]; -> unsigned char buf[128];
- ‚ÆC³B
- (conf/)
- battle_athena.conf
- equip_modifydisplay‚ðíœ
- water_height.txt
- prt_fild04.gat‚Æmoc_fild01.gat‚Ì•ª‚ð’ljÁ
- (doc/)
- conf_ref.txt
- equip_modifydisplay‚Ìà–¾‚ðíœ
- (map/)
- battle.h
- struct Battle_Config ‚©‚çequip_modifydisplay‚ðíœ
-
---------------
-//0629 by Ž€_
-
-E0627‚̃oƒOˆê•”C³‚ÆV‚µ‚¢ˆÚ“®ƒpƒPƒbƒg‚ɑΉžB(Ž©•ª‚̊ԈႢ‚Å‚µ‚½B
-ƒ‚ƒ“ƒXƒ^[‚âNPC‚àV‚µ‚¢ˆÚ“®ƒpƒPƒbƒg‚ðŽg‚¤‚ÆŽv‚Á‚Ä‚¢‚½‚Ì‚Å‚·‚ª
-V‚µ‚¢ˆÚ“®ƒpƒPƒbƒg‚̓vƒŒƒCƒ„[‚݂̂̂悤‚Å‚·B)
-Eƒ^ƒLƒV[ƒh‚ƃEƒFƒfƒBƒ“ƒOƒhƒŒƒX‰¼ŽÀ‘•B(ŠØ‘‚̃TƒNƒ‰ƒCˆÆ‚¶‚á‚È‚¢‚Æ
-ˆÆ—Ž‚¿‚³‚ê‚Ü‚·BŽg—p‚·‚鎞‚Íitem_db.txt‚̃Rƒ}ƒ“ƒgƒAƒEƒg‚³‚ê‚Ä‚¢‚é
-2338‚Æ7170‚ð‰ðœ‚µ‚ÄŽg‚Á‚Ä‚­‚¾‚³‚¢B)
-ESP‰ñ•œƒAƒCƒeƒ€‚àint‚É‚æ‚Á‚ÄŒø‰Ê‚ª‘‚¦‚é‚悤‚É•ÏXB
-E0627‚Å‘‚«–Y‚ê‚Å‚·‚ªƒJ[ƒg‚̃AƒCƒeƒ€ŒvŽZ‚Æitemdb_‚ðŒÄ‚Ô‚Ì‚ðŬ‰»‚·‚é
-ˆ—‚ð“ü‚Á‚Ă邹‚¢‚Åpc_additem()Apc_delitem()Apc_cart_additem()Apc_cart_delitem()ˆÈŠO‚Ì•û–@‚ŃJ[ƒgƒAƒCƒeƒ€‚âƒAƒCƒeƒ€‚É•Ï“®‚ª‚ ‚éê‡
-³í‚É“®ì‚·‚é•ÛØ‚ª‚È‚¢‚Ì‚ÅC³‚Ì‚³‚¢‚É‚Í’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
- readme0754‚ðreadme0574‚ÉC³B
- makefile C³B
- (map/)
- map.h C³B
- clif.c C³B
- pc.c C³B
- battle.c C³B
- mob.c C³B
- script.c C³B
- (db/)
- item_db.txt C³B
- class_equip_db.txt C³B
- skill_db.txt C³B(ŒëŽš‚ðŽ¡‚µ‚½‚¾‚¯‚Å‚·B)
- (conf/)
- npc_event_doll.txt C³B(—¬˜Ql‚³‚ñ‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B)
-
---------------
-//0628 by NOCTURNE
-
-Esnapshot
-Esnapshot‚©‚çsnapshot‚Ü‚Å‚ÌReadme•ªŠ„
-E—v–]‚ª‘½‚©‚Á‚½‚Ì‚Åsnapì¬iƒvƒƒOƒ‰ƒ€“I‚È•ÏX“_‚Í–³‚µ
-
---------------
-//0627 by Ž€_
-
-EƒR[ƒh‚ÌÅ“K‰»‚Æ­‚µC³B(­‚µ‚ÍŒy‚­‚È‚é‚ÆŽv‚¢‚Ü‚·B)
-E @modifydisplayƒRƒ}ƒ“ƒhíœB
-EV‚µ‚¢ˆÚ“®ƒpƒPƒbƒg‚ɑΉž‚¾‚ÆŽv‚Á‚½‚ç0x1d8A0x1d9A0x1daƒpƒPƒbƒg‚̈ꕔ‚ª
-0x78A0x79A0x7b‚Æ•Ï‚í‚Á‚Ä‚é‚Ý‚½‚¢‚Å‚·B‚‚܂衂̂܂܂ł͑Ήž‚Å‚«‚Ü‚¹‚ñB
-X,Y‚ÌÀ•W‚Ì•”•ª‚Ì‘Ž®‚ª•Ï‚í‚Á‚½‚Ì‚©‚Æ—\‘ª‚Í‚µ‚Ä‚¢‚Ü‚·‚ª...
-î•ñ‚ð‹‚Ý‚Ü‚·B(makefile‚ÌDPACKETVER‚ð4‚É‚·‚ê‚Î0x1d8A0x1d9A0x1da‚ð
-Žg‚¢‚Ü‚·‚ªÀ•W‚ª‚¸‚ꂽ‚炵‚­‰½‚à•WŽ¦‚³‚ê‚Ü‚¹‚ñB)
-E100000‚©‚炾‚Á‚½char_id‚ð150000‚©‚ç‚É•ÏXB(ƒyƒbƒg‚Ì—‘‚Ì–â‘è‚Å•Ší‚Ì–¼‘O‚ª‚¿‚å‚Á‚Æ•Ï‚É‚È‚Á‚½‚Ì‚ÅC³‚µ‚Ü‚µ‚½B)
-Eƒyƒbƒg‚̃R[ƒh­‚µC³B(pet_id‚ðcard[2]‚Æcard[3]‚©‚çcard[1]‚Æcard[2]‚É•ÏX‚µ‚Ü‚µ‚½B‚æ‚Á‚Ä‘O‚Éì‚Á‚½—‘‚ÍŽg‚¦‚Ü‚¹‚ñBˆÆ‚Åcard[3]‚Ì‹@”\‚ª•Ï‚í‚Á‚½‚Ì‚Å
-Žd•û‚È‚­C³‚µ‚Ü‚µ‚½B¡“x‚Íconvertƒc[ƒ‹‚ª‚ ‚è‚Ü‚¹‚ñBì‚鎞ŠÔ‚ª‚È‚©‚Á‚½‚Ì‚Å...)
-EÅ“K‰»‚ׂ̈ÉC³‚µ‚½Š‚ª‘½‚¢‚Å‚·‚ª‘S‚ij퓮삷‚é•ÛØ‚Í‚ ‚è‚Ü‚¹‚ñB
-ŽI—Ž‚¿ƒoƒO‚ª”­¶‚µ‚½‚ç•ñ‚¨Šè‚¢‚µ‚Ü‚·B(batte.c‚Í‚Ü‚¾Å“K‰»‚µ‚Ä‚Ü‚¹‚ñB)
-ƒJ[ƒg‚̃AƒCƒeƒ€ŒvŽZ‚âƒAƒCƒeƒ€‚Ìd—Ê‚ÌŒvŽZ‚ðʼn‚É‚¾‚¯‚·‚é‚悤‚É‚µ‚Ä‚¢‚é‚Ì‚Å•\Ž¦‚É­‚µ–â‘肪‚ ‚é‚©‚à...
-EC³‚µ‚½ƒtƒ@ƒCƒ‹‚¾‚¯‘‚¢‚Ä‚¨‚«‚Ü‚·B
- makefile
- help.txt
- (common/)
- mmo.h
- (map/)
- map.h
- atcommnad.h
- atcommnad.c
- pc.h
- pc.c
- clif.c
- script.c
- trade.c
- itemdb.h
- itemdb.c
- battle.h
- battle.c
- pet.c
- map.c
- mob.c
- (char/)
- char.c
- (conf/)
- battle_athena-conf
- atcommand_athena.conf
-
---------------
-//0626 by ˆø‘Þl
-
-EƒpƒPƒbƒg’·ƒe[ƒuƒ‹iVˆÚ“®ƒpƒPƒbƒg‚È‚ÇjC³
- (doc/)
- client_packet.txt ƒpƒPƒbƒg‰ð̓XƒŒ M‚³‚ñ‚Ìî•ñ‚𔽉f
- conf_ref.txt 0624‚ɇ‚킹‚ÄC³
- (map/)
- clif.c
- packet_len_table[] client_packet.txt‚ɇ‚킹‚ÄC³
-
---------------
-//0625 by ˆø‘Þl
-
-E@hide“§–¾‰»‚ðBOSS‚È‚Ç‚ÉŒ©”j‚ç‚ê‚È‚¢‚悤‚ÉC³
- (map/)
- pc.h
- #define pc_iscarton(sd) C³
- #define pc_isinvisible(sd) ’ljÁ
- mob.c
- mob_attack()
- mob_target()
- mob_ai_sub_hard_activesearch()
- mob_ai_sub_hard_mastersearch()
- mob_ai_sub_hard()
- “§–¾ipc_isinvisible(sd)!=0j‚ÅŽ€l‚Æ“¯—l‚É”»’肳‚ê‚é‚悤‚ÉC³
- (conf/)
- npc_cTower.txt C³ithx to holyzard‚³‚ñj
-
---------------
-//0624 by ‚é‚é‚é
-
-E•Ší‰æ‘œ•\Ž¦ˆ—‚̈êViVˆÚ“®ƒpƒPƒbƒgŽg—pj
-Eã‚ÆŠÖ˜A‚µ‚ÄA@modifydisplayƒRƒ}ƒ“ƒh‚ðÝ‚¯‚½
-@@@@‹@”\‚Æ‚µ‚Ä‚ÍAŒ»Ý‚̃AƒTƒVƒ“•Ší‚È‚Ç‚Ì‚ª‚¨‚©‚µ‚¢ê‡‚ÉA‚Ü‚½‚Í‹C‚É“ü‚ç‚È‚¢‚Æ‚©‚ÅA
-@@@@ƒLƒƒƒ‰–ˆ‚É‹ŒƒpƒP‚ðŽg—p‚·‚é‚悤‚É‚µ‚Ä‚¢‚éB
-
- (map/)
- atcommand.c
- atcommand() @modifydisplayƒRƒ}ƒ“ƒh‚ð’ljÁ
- atcommand.h
- struct Atcommand_Config {
-'7d •ÏX
- clif.c
- clif_set0078_and01d8() , clif_set007b_and01da() ŠÖ”–¼•ˆ—‚Ì•ÏX
- clif_spawnpc() , clif_movechar() , clif_changelook() , clif_getareachar_pc() ,
- clif_fixpcpos() , clif_parse_LoadEndAck() •ÏX
- map.h
- struct map_session_data Eb} •ÏX
- pc.c
- pc_setnewpc() , pc_calcstatus() , pc_equiplookall() , pc_changelook() •ÏX
-
- (conf/)
- atcommand_athena.conf
- equip_modifydisplay ’ljÁ
-
- •ÏX‰ÓŠ‚Í‘S‚ăL[ƒ[ƒhumodifydisplayv‚ŃT[ƒ`‚·‚ê‚΂قڂ킩‚é‚©‚ÆB
-
-ƒRƒƒ“ƒgF‚à‚¤‚±‚ê‚Å–â‘è‚Í–³‚¢‚Í‚¸BŽÀ‚Í‘å‚¢‚Ȃ銨ˆá‚¢‚ð‚µ‚Ä‚½ŒÂŠ‚ª‚ ‚Á‚½‚Ì‚Í“àiƒ}ƒew
-
---------------
-//0623 by ˆø‘Þl
-
-E@hide‚Å“§–¾‰»iŒ©‚ç‚ê‚È‚¢•MOB‚Ƀ^ƒQ‚ç‚ê‚È‚¢j‚·‚é‚悤‚ÉC³‚È‚Ç
- (map/)
- atcommand.c
- @hide‚ÌoptionÝ’è‚ð0x04‚©‚ç0x40‚É•ÏX
- mob.c
- mob_attack()
- mob_target()
- mob_ai_sub_hard_activesearch()
- mob_ai_sub_hard_mastersearch()
- mob_ai_sub_hard()
- option”»’è‚ð0x06‚©‚ç0x46‚ÉC³
- (conf/)
- npc_event_potion.txt MORISON_MEATC³ithx to holyzard‚³‚ñj
-
---------------
-//0622 by ˆø‘Þl
-
-Emob‚ªƒXƒLƒ‹Žg—p‚ÉŽ¸”s‚µ‚½ê‡A’ÊíUŒ‚‚·‚é‚悤‚É
- (map/)
- mob.c
- mobskill_use_id() ƒXƒLƒ‹Žg—pŽ¸”s‚Å0A¬Œ÷‚Å1‚ð•Ô‚·‚悤‚ÉC³
- mobskill_use_pos() ƒXƒLƒ‹Žg—pŽ¸”s‚Å0A¬Œ÷‚Å1‚ð•Ô‚·‚悤‚ÉC³
- mobskill_use() ã‹L‚𔽉f‚µ‚ÄŽ¸”sŽž‚É‚Í0‚ð•Ô‚·‚悤‚ÉC³
-
---------------
-//0621 by ŒÓ’±—–
-
-EƒAƒCƒeƒ€ƒ`ƒFƒbƒN‚ðs‚¤‚©‚Ç‚¤‚©conf/battle_athena.cnf‚É‘‚¯‚é‚悤‚É
-EƒAƒCƒeƒ€ƒ`ƒFƒbƒN‚Å•s³‚Æ”»’f‚·‚é‚©‚Ç‚¤‚©‚ðdb/item_avail.txt‚É‘‚¯‚é‚悤‚É
-E@itemcheck‚Å–¾Ž¦“I‚ɃAƒCƒeƒ€ƒ`ƒFƒbƒN‚Å‚«‚é‚悤‚É
-
- ƒfƒoƒO‚âƒeƒXƒg‚È‚Ç‚ÅFX‚ȃAƒCƒeƒ€ID‚ðŽg—p‚µ‚½‚¢ê‡‚Í
- ƒAƒCƒeƒ€ƒ`ƒFƒbƒN‚𖳌ø‚É‚µ‚ĉº‚³‚¢B(item_check: off)
- –³Œø‚É‚µ‚½ê‡‚Å‚à@itemcheckƒRƒ}ƒ“ƒh‚Ń`ƒFƒbƒN‚·‚邱‚Æ‚ªo—ˆ‚Ü‚·B
- cnfƒtƒ@ƒCƒ‹‚Í—pˆÓ‚µ‚Ä‚È‚¢‚Ì‚Å•K—v‚È‚çŠeŽ©“K“–‚É‘‚«Š·‚¦‚Ä‚­‚¾‚³‚¢B
-
- (db/)
- item_avail.txt
- V‹K’ljÁB•s³ƒAƒCƒeƒ€‚Ì—ñ‹“‚ÉŽg—pB–¢Š®¬B‘¼—Í–{ŠèB
- item_db.txt‚É’è‹`‚³‚ê‚Ă邪ŽÀÛ‚É‚ÍŽg—p‚Å‚«‚È‚¢ƒAƒCƒeƒ€‚ð‘‚­B
- (doc/)
- conf_ref.txt
- battle_athena.cnf‚Æatcommand_athena.cnf‚Ìà–¾C³
- (map/)
- itemdb.c/itemdb.h
- itemdb_availableƒ}ƒNƒ’ljÁ
- itemdb_read_itemavail()’ljÁ
- itemdb_readdb()‚Åavailable=1‚É‚·‚é‚悤‚É
- itemdb_search()‚Å‘¶Ý‚µ‚È‚¢ID‚Íavailable=0‚Ńf[ƒ^‚ðì‚é‚悤‚É
- do_init_itemdb()‚Åitemdb_read_itemavail()‚ðŒÄ‚Ԃ悤‚É
- pc.c/pc.h
- pc_checkitem()‚ðƒGƒNƒXƒ|[ƒg
- pc_checkitem()‚Åavailable‚Æbattleconfig‚ðƒ`ƒFƒbƒN‚·‚é‚悤‚É
- atcommand.c/atcommand.h
- @item‚Åbattleconfig‚ðƒ`ƒFƒbƒN‚·‚é‚悤‚É
- @itemcheckƒRƒ}ƒ“ƒh’ljÁ
- atcommandconfig‚Éitemcheckƒƒ“ƒo’ljÁ
- battle.c/battle.h
- battle_config‚Éitem_checkƒƒ“ƒo’ljÁ
-
-Eladmin‚ÌC³‚È‚Ç
- ƒAƒJƒEƒ“ƒg’ljÁAƒpƒXƒ[ƒh•ÏX‚ÌۂɃpƒXƒ[ƒh‚ðÈ—ª‚·‚é‚ÆA
- ƒpƒXƒ[ƒh—p‚̃GƒR[‚µ‚È‚¢ê—pƒvƒƒ“ƒvƒg‚Å“ü—Í‚Å‚«‚Ü‚·i•“ü—ÍŠm”FjB
- ’ljÁ‚ÌۂɃpƒXƒ[ƒh‚ª•\Ž¦‚³‚ꂽ‚碂éꇂȂǂÉB
- ƒpƒXƒ[ƒh“ü—Í’†‚ÍCtrl+C‚ªŒø‚©‚È‚¢‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
-
- ƒpƒXƒ[ƒh‚Ì•s³•¶Žš‚Ì•\Ž¦‚ªA‰½•¶Žš–Ú‚©‚Å•\Ž¦‚·‚é‚悤‚É‚È‚è‚Ü‚µ‚½B
- ‚»‚Ì‘¼”÷–­‚Ƀ`ƒFƒbƒN’ljÁ‚È‚ÇB
-
- Cygwin‚Å‚µ‚©“®ìŠm”F‚µ‚Ä‚¢‚Ü‚¹‚ñBPOSIXƒ‚ƒWƒ…[ƒ‹‚ðŽg‚Á‚Ä‚¢‚é‚Ì‚ÅA
- POSIX‚Å‚È‚¢(•ƒGƒ~ƒ…ƒŒ[ƒVƒ‡ƒ“‚à‚Å‚«‚È‚¢)ƒvƒ‰ƒbƒgƒtƒH[ƒ€‚¾‚Æ
- “®‚©‚È‚¢‚©‚à‚µ‚ê‚Ü‚¹‚ñB
- UNIXŒn‚Å‚Ínkf‚ȂǂʼnüsƒR[ƒh‚ð•ÏŠ·‚µ‚È‚¢‚Æ‚¾‚ß‚©‚àH
-
- (tool/)
- ladmin
- Ver.1.03‚ÉB
-
--------------
-//0620 by ŒŽ‰r‚Ý
-
-Eƒz[ƒŠ[ƒNƒƒXŽÀ‘•
-
- (db)
- skill_db.txt C³
- (map)
- skill.c
- skill_additional_effect()C³(ƒRƒƒ“ƒg‚Ì‚Ý)
- battle.c
- Damage battle_calc_weapon_attack()C³
-
--------------
-//0619 by ‚é‚é‚é
-
-Eƒpƒbƒ`0617‚Ì‚Å‚â‚è–Y‚ê‚Æ”÷–­‚ÈC³
-
- clif.c
- clif_movechar(),clif_parse_LoadEndAck() C³
-
---------------
-//0618 by nini
-
-EƒŠƒUƒŒƒNƒVƒ‡ƒ“‚̉r¥AƒfƒBƒŒƒC’ljÁB‰ñ•œ—ÊC³B
-EÁ”ïSPC³
-EƒAƒ[ƒVƒƒƒ[‚͈̔͂ð5*5‚É‚µ‚Ä2ƒZƒ‹‚«”ò‚΂µB
-Eƒ`ƒƒ[ƒWƒAƒ[‚ÌŽg—p•ŠíðŒ–³‚µB
-EƒXƒsƒAƒXƒ^ƒu‚Ì”ò‹——£‚ð6ƒZƒ‹‚ÉB
- (/db)
- cast_db.txt C³
- skill_db.txt C³
- (/map)
- battle.c
- battle_calc_weapon_attack() C³
- skill.c
- skill_castend_damage_id() C³
- skill_check_condition() C³
- skill_castend_nodamage_id() C³
-
---------------
-//0617 by ‚é‚é‚é
-
-E•Ší‰æ‘œ•\Ž¦‚Å‘¼ƒLƒƒƒ‰‚ª•\Ž¦‚³‚ê‚È‚¢‚Ì‚ðu‚Æ‚è‚ ‚¦‚¸vC³
-EŒC•\Ž¦‚̃pƒPƒbƒg‚ð‘—M’âŽ~iŒ»Žž“_‚ł̓€ƒ_BƒRƒƒ“ƒg‚µ‚½‚¾‚¯‚Å‚·‚ªj
- clif.c
- clif_spawnpc(),clif_getareachar_pc(),clif_fixpcpos(),clif_changelook()C³
- pc.c
- clif_changelook()‚ª‚ ‚é•”•ª‚ðC³i•Ší[„‚‚Ƈ‚É‚È‚é‚悤‚Ɉ—‚Ì“ü‚ê‘Ö‚¦j
-
-ƒRƒƒ“ƒgB
-Vƒ}ƒbƒvˆÚ“®ƒpƒP(0x1d8`0x1daj‚ðFX‚Æ‚â‚Á‚½‚ªA‚»‚̃pƒP‚P‚‚ŕŠí•\Ž¦‚ªVŽ®‚̂ɑΉž‚µ‚Ä‚é
-‚Æ‚¢‚¤‚킯‚Å‚Í‚È‚¢‚Á‚Û‚¢B‹ŒˆÚ“®ƒpƒP‚¾‚ÆŽ©•ªˆÈŠO‚̃Lƒƒƒ‰‚ªˆÚ“®‚·‚é‚Æ‹ŒŽ®•\Ž¦‚É‚È‚Á‚Ä‚µ‚È‚¤B
-X‚ÉAV•Ší•\Ž¦ƒpƒP‚Í•Ší‚Æ‚‚Ì“¯Žžˆ—‚ªo—ˆ‚Ä‚È‚¢B‚¨‚»‚ç‚­ƒNƒ‰ƒCƒAƒ“ƒg‚Ì–â‘肾‚ÆŽv‚¤B
-‚Æ‚è‚ ‚¦‚¸AƒLƒƒƒ‰‚ª“®‚­‚½‚Ñ‚ÉV•ŠíƒpƒP„‹Œ‚ƒpƒP‚Ì‚Q‚‚̑•”õƒpƒP‚𑗂邱‚Æ‚Å‰ðŒˆ‚³‚¹‚Ä‚¢‚éB
-–{ŽI‚Å‚Í‚Ç‚¤‚È‚Ì‚©‚ÌŽÀÛ‚Ì‚Æ‚±‚ë‚̃f[ƒ^‚ª–³‚¢‚½‚ßA‚±‚êˆÈã‚Ì‚±‚Ƃ̓€ƒŠB
-
---------------
-//0616 by ŒÓ’±—–
-
-Ewater_height.txt‚ð“Ç‚ñ‚Å‚¢‚È‚¢‚ƃT[ƒo[‚ª—Ž‚¿‚éƒoƒOC³
- map.c
- map_waterheight()C³
-
-EPC‚̃}ƒbƒvˆÚ“®Žž‚̃AƒCƒeƒ€ƒ`ƒFƒbƒN‚ŃAƒCƒeƒ€ID‚Ì‘¶Ý‚ðƒ`ƒFƒbƒN‚·‚é‚悤‚ÉC³
-Eˆê•”‚Ì—ƒRƒ}ƒ“ƒh‚ŃAƒCƒeƒ€ID‚Ì‘¶Ý‚ðƒ`ƒFƒbƒN‚·‚é‚悤‚ÉC³
- pc.c
- pc_checkitem()C³
- pc_authok()C³ pc_checkitem()’ljÁ
- clif.c
- clif_parse_LoadEndAck()C³
- itemdb.c
- itemdb_exists()’ljÁiitemdb_search‚Æ“¯‚¶‚¾‚ªAdb‚É‘¶Ý‚µ‚È‚¢
- ꇂÍV‚µ‚¢ƒf[ƒ^‚ðì‚炸‚ÉNULL‚ð•Ô‚·j
- itemdb_read_classequipdb()C³ itemdb_search=>itemdb_exists
- itemdb_read_itemnametable()C³ itemdb_search=>itemdb_exists
- itemdb_read_itemvaluedb()C³ itemdb_search=>itemdb_exists
- atcommand.c
- @itemC³ itemdb_search=>itemdb_exists
- @produceC³ itemdb_exists‚Ń`ƒFƒbƒN‚·‚é‚悤‚É
-
---------------
-//0615 by ”g˜Q
-
-EƒAƒCƒeƒ€DATA‘å•C³
-@Žå‚ÈC³‰ÓŠ‚ÍA‰ñ•œƒAƒCƒeƒ€‚̉ñ•œ—Ê‚ÌC³AÁ”ïƒAƒCƒeƒ€‚ðclass_equip_db.txt–³‚µ‚Å‚àŽg—p‚Å‚«‚é—l‚ÉC³A
-@‘•”õ•i‚Ì‘•”õ‰Â”\E‚ð‘S‚ÄC³AƒJ[ƒhŒø‰Ê‚ðC³AetcEEE‚Å‚·B
-
---------------
-//0614 by Nikita
-
-EƒAƒCƒeƒ€DATA‚ÌC³iŽå‚ɉñ•œ—Êj
-EƒXƒLƒ‹‰ð“Å‚ÌŽË’öC³
-E0612‚Ìׂ©‚¢C³
- (conf/)
- npc_town_prontera.txt C³
- (db/)
- item_db.txt C³
- skill_db.txt C³
-
---------------
-//0613 by ˆø‘Þl
-EcheckweightC³
- (conf/)
- npc_event_making.txt checkweight•”•ª‚ðC³
- npc_event_potion.txt ƒ|[ƒVƒ‡ƒ“AƒWƒ…[ƒXNPC‚ÌcheckweightC³
-
---------------
-//0612 by nini
-
-EƒAƒCƒeƒ€DATAC³
- (db/)
- item_db.txt C³
- (conf/)
- npc_town_***.txt C³
- R.O.M776‚³‚ñ‚ðŽQÆ‚µ‚Ü‚µ‚½B
-
---------------
-//0611 by Ž€_
-
-EƒAƒCƒeƒ€Žg—pðŒ‚ª‚ ‚í‚È‚¢Žž0xa8ƒpƒPƒbƒg‚ð‘—‚é‚悤‚É•ÏXB(ƒoƒO•ñƒXƒŒƒbƒh 243‚Ìno name‚³‚ñî•ñ’ñ‹Ÿ‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B)
-EQM‚ÅW’†—ÍŒüã‚Æ‘¬“xã¸AƒAƒhƒŒƒiƒŠƒ“ƒ‰ƒbƒVƒ…Aƒ‰ƒEƒhƒ{ƒCƒXAƒXƒsƒAƒNƒCƒbƒPƒ“Aƒc[ƒnƒ“ƒhƒNƒCƒbƒPƒ“‚ð‰ðœ‚·‚é‚悤‚ÉC³B
-E‘¬“x㸂Ƒ¬“xŒ¸­‚Å‹t‚̃XƒLƒ‹‚ª‰ðœ‚³‚ê‚é‚悤‚ÉC³B
-E0609‚Å‘‚«–Y‚êBƒ‚ƒ“ƒXƒ^[‚ªQM‚͈̔͂©‚甲‚¯‚Ä‚àŒø‰Ê‚ªˆÛŽ‚·‚é‚悤‚É
-•ÏX‚ƃuƒŒƒbƒVƒ“ƒO‚ÅŽô‚¢‚ÆΉ»‚ª‰ðœ‚³‚ê‚é‚悤‚ÉC³B
- clif.c
- clif_useitemack() C³B
- skill.c
- skill_status_change_start() C³B
- pc.c
- pc_insert_card() C³B(‚±‚ê‚̓J[ƒhƒoƒO‚Æ‚ÍŠÖŒW‚È‚¢C³‚Å‚·B‚»‚̃oƒO‚ÌC³‚ÍŽ©•ª‚ª05xx“–‚½‚è‚ÅC³‚µ‚Ü‚µ‚½‚Ì‚ÅB)
-
---------------
-//0610 by ”g˜Q
-
-EƒAƒCƒeƒ€DATAC³
- (db/)
- item_db.txt C³
-
---------------
-//0609 by Ž€_
-
-EFX‚ÆC³B
-Eƒ‚ƒ“ƒXƒ^[‚ªŽ~‚Ü‚é‚悤‚É“®‚­–â‘èC³B
-EŽw’e‚̃fƒBƒŒƒCC³B
-E–î쬂̃R[ƒh•Ð•t‚¯B
-E“G‚ªƒXƒLƒ‹”͈͂©‚瓦‚°‚½ê‡ƒXƒLƒ‹‚ªŽ¸”s‚·‚é‚悤‚É•ÏXB
-Eclass_equip_db.txt‚ÌŽd—l•ÏXB
- «•Ê‚Æ‘•”õƒŒƒxƒ‹‚àÝ’è‰Â”\‚É•ÏX‚ÆŽg—pƒAƒCƒeƒ€‚ÌŽg—pE‹ÆA«•Ê‚ÆŽg—p
- ƒŒƒxƒ‹‚Ìݒ肪‚Å‚«‚é‚悤‚É•ÏXB(‚½‚¾ƒf[ƒ^‚ª‘½‚¢‚¹‚¢‚ÅC³‚µ‚½
- class_equip_db.txt‚̓Tƒ“ƒvƒ‹’ö“x‚Ì•¨‚Å‚·B–„‚ß‚Ä‚­‚¾‚³‚¢B‘¼—Í–{Šè‚Å‚·‚ª...)
- ‚»‚ê‚ƃAƒCƒeƒ€Žg—pðŒ‚ª‚ ‚í‚È‚¢‚ƃAƒCƒeƒ€‚ªŽg‚í‚È‚¢‚悤‚É‚µ‚Ä‚Í
- ‚¢‚Ü‚·‚ª01c8ƒpƒPƒbƒg‚Ì<type>‚ð0‚É‚µ‚Ä‚àƒAƒCƒeƒ€‚ðŽg—p‚µ‚½Žž‚Æ“¯‚¶
- ƒGƒtƒFƒNƒg‚ªo‚Ü‚·B–{ŽI‚̃AƒCƒeƒ€Žg—pƒpƒPƒbƒg‚ª•ª‚©‚ç‚È‚¢‚Ü‚Ü‚¶‚á
- ‚±‚¤‚·‚邵‚©‚È‚©‚Á‚½‚Ì‚Å‚·‚ª...
-Ebattle_athena.conf‚É€–ڒljÁB
-E‚»‚Ì‘¼ƒXƒLƒ‹­‚µC³‚Æׂ©‚¢C³B
-EC³‚µ‚½Š‚ð‘S‚ÄŠo‚¦‚Ä‚Ü‚¹‚ñ‚̂Ńtƒ@ƒCƒ‹‚¾‚¯B
- (map/)
- clif.c C³B
- mob.c C³B
- mob.h C³B
- pc.c C³B
- map.h C³B
- skill.c C³B
- skill.h C³B
- itemdb.c C³B
- battle.c C³B
- battle.h C³B
- (conf/)
- battle_athena.conf C³B
- (db/)
- cast_db.txt C³B
- skill_db.txt C³B
- create_arrow_db.txt C³B
- class_equip_db.txt C³B
- item_db.txt C³B
- (doc/)
- client_packet.txt C³B
- conf_ref.txt C³B
-
---------------
-//0608 by sk
-EƒAƒ}ƒcNPC’ljÁ
- (conf/)
- npc_town_amatsu.txt é“àNPC’ljÁ
- npc_warp_amatsu.txt é“àƒ[ƒvƒ|ƒCƒ“ƒg’ljÁ
-
---------------
-//0607 by J
-EƒAƒTƒ‹ƒgƒ^[ƒgƒ‹‚̎艺¢Š«‚̃oƒOC³(•ñ‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚· ‚é‚é‚邳‚ñ)
- (db/)
- mob_skill_db.txt ƒAƒTƒ‹ƒg‚ÌC³‚‚¢‚łɃeƒŒƒ|‚ðŽg‚¤MOB‚̃XƒLƒ‹ƒfƒBƒŒƒC‚àC³
-
---------------
-//0606 by ˆø‘Þl
-EƒXƒLƒ‹ƒŒƒxƒ‹Å‘å’lˆÈã‚ɃNƒŠƒbƒN‚µ‚½Žž“_‚Å‘¼ƒXƒLƒ‹‚ªã‚°‚ç‚ê‚È‚­‚È‚éƒoƒO‚ðC³iThanx to 227‚³‚ñj
- (map/)
- clif.c
- clif_skillup()
- ƒXƒLƒ‹ƒŒƒxƒ‹‚ªÅ‘å’l‚Ì‚Æ‚«AƒpƒPƒbƒg––”ö‚ð0‚É‚·‚é‚悤‚ÉC³
-
---------------
-//0605 by ‚é‚é‚é
-
-E•Ší‘®«•t—^ƒXƒLƒ‹‚Ì•s“s‡C³
- •Ší‚ðŽ‚¿‘Ö‚¦‚½‚èŠO‚µ‚½‚肵‚½ê‡‚àA‘®«•t—^‚ð‰ðœ‚·‚é‚悤‚É‚µ‚Ü‚µ‚½B
- ’A‚µA‘fŽè„•Ší‘•”õ‚Ì‚Ýó‘ÔˆÛŽ‚µ‚Ü‚·B
-EƒXƒsƒAƒNƒCƒbƒPƒ“‚̃Xƒe[ƒ^ƒXƒAƒCƒRƒ“‚𳂵‚­•\Ž¦
-E‚Q‚g‚pAƒXƒsƒAƒNƒCƒbƒPƒ“AƒAƒhƒŒƒiƒŠƒ“ƒ‰ƒbƒVƒ…‚ÅŠY“–ˆÈŠO‚Ì•ŠíŽ‚¿‘Ö‚¦‚Åó‘ÔÁ–Å
- ƒXƒsƒAƒNƒCƒbƒPƒ“‚Í–¢Šm”F‚Å‚·‚ªA‚Q‚g‚p‚ÍŠmŽÀ‚È‚Ì‚Å‚Q‚g‚p‚Æ•sŒö•½‚ÈŽd—l‚Æ‚Í
- l‚¦‚É‚­‚¢‚Ì‚Å“¯—l‚ȃpƒ^[ƒ“‚Æ‚µ‚Ü‚µ‚½B–{ŽI‚Æ‘Šˆá‚ª‚ ‚éꇂ͕ñŠè‚¢‚Ü‚·B
-E“G‚Ì‚p‚l‚ÅW’†—ÍŒüã‚Æ‘¬“x㸂ð‰ðœ
- ‚p‚l‚ʼne‹¿‚·‚éƒXƒLƒ‹‚Í‚±‚ê‚Q‚‚¾‚¯‚©‚ÈH@Ž„‚Ì‹L‰¯‚ÆŒfŽ¦”‚ł̕ñ‚Æ‚Å
- ”»’f‚µ‚½‚Ì‚Å‚·‚ªA‚à‚µ‘Šˆá‚ª‚ ‚è‚Ü‚µ‚½‚ç•ñŠè‚¢‚Ü‚·B
-
- (map/)
- clif.c
- clif_parse_UnequipItem() C³
- pc.c
- pc_checkallowskill() pc_equipitem() C³
- skill.h
- skill_encchant_eremental_end() ’ljÁ
- skill.c
- skill_status_change_start() skill_status_change_end()
- skill_status_change_clear() skill_encchant_eremental_end() C³
- ‚»‚Ì‘¼×‚©‚¢‚Æ‚±‚ë­X
-
---------------
-//0604 by J
-EMOBƒXƒLƒ‹ÄC³
-EMOBDBC³
- (db/)
- mob_skill_db.txt
- ƒA[ƒNƒGƒ“ƒWƒFƒŠƒ“ƒO‚ƃ^[ƒgƒ‹ƒWƒFƒlƒ‰ƒ‹‚ª1‰ñ‚É2Ží—Þ‚Ü‚Å‚µ‚©
- MOB‚ðo‚³‚È‚©‚Á‚½‚Ì‚ðC³
- mob_db.txt
- ƒ[ƒhƒIƒuƒfƒX‚̃hƒƒbƒv‚ŃGƒ‰[‚ªo‚é‚Ì‚ðC³(–¢Šm”F)
- ‰…—ì•Žm‚̃hƒƒbƒv‚ÆMVP‚ð’ljÁ(–¢Šm”F)
---------------
-//0603 by ˆø‘Þl
-EV‹KƒAƒCƒeƒ€Žž‚É‚àŠŽ‰Â”\ŒÂ”ƒ`ƒFƒbƒN‚ð‚·‚é‚悤‚ÉC³
- (map/)
- pc.c
- pc_checkadditem()
- V‹KƒAƒCƒeƒ€Žž‚ÉMAX_AMOUNT‚ð’´‚¦‚Ä‚¢‚½‚ç
- ADDITEM_OVERAMOUNT‚ð•Ô‚·‚悤‚ÉC³
-
---------------
-//0602 by ˆø‘Þl
-EGeffen’b–艮‚Å—Ž‚¿‚é–â‘è‚ðC³
- (conf/)
- npc_town_geffen.txt if (!checkweight(,)) ‚©‚ç if (!(checkweight(,))) ‚ÉC³
-
---------------
-//0601 by J
-EMOBƒXƒLƒ‹‚ÌŠë‚È‚¢Š‚ð‚¢‚­‚ç‚©C³
-EŠoÁ‚Æ‹¶‹C‚ÌŽg‚¦‚éE‚ðC³
-EƒQƒtƒFƒjƒAƒ_ƒ“ƒWƒ‡ƒ“‚Ì”z’u‚ðƒJƒ{ƒ`ƒƒƒCƒxƒ“ƒg‚Å“ü‚ꂽ‚Æ‚«‚Ì”z’u‚ÉC³
- ‚½‚¾‚µƒ{ƒX‚ªDOP2‘Ì‚Å‚Í‚È‚­ƒhƒ‰ƒLƒ…ƒ‰‚É‚µ‚Ä‚¢‚Ü‚·B
- (conf/)
- npc_monster.txt ƒ‚ƒ“ƒXƒ^[”z’u”÷•ÏX
- (db/)
- mob_skill_db.txt ‰ö‚µ‚¢Ý’è‚È‚Ç‚ÌC³
- item_db.txt ‘‘¬POT‚ÌC³
-
---------------
-//0600 by ˆø‘Þl
-Eƒvƒƒ“ƒeƒ‰¸˜BŠ‚̉¡‚̃tƒ@ƒ“‚ɘb‚µŠ|‚¯‚é‚ƌł܂é–â‘è‚ðC³
-EMOBƒXƒLƒ‹Žæ‚èž‚ÝiThanx to J‚³‚ñj
- (conf/)
- npc_event_skillget.txt ƒtƒ@ƒ“‚ÌLabel‚ðC³
- npc_town_prontera.txt ƒtƒ@ƒ“‚ªd•¡‚µ‚Ä‚¢‚½‚Ì‚Åíœ
- (db/)
- mob_skill_db.txt ƒWƒ…ƒm[ˆÈ~‚ÌMOBƒXƒLƒ‹’ljÁ
-
---------------
-//0599 by ‚é‚é‚é
-
-EƒZ[ƒW‚Ì•Ší‘®«•t—^ƒXƒLƒ‹‚Ì•s“s‡C³‚ƃXƒe[ƒ^ƒXƒAƒCƒRƒ“•\Ž¦
- ƒAƒXƒyƒ‹ƒVƒI‚ƃGƒ“ƒ`ƒƒƒ“ƒgƒ|ƒCƒYƒ“‚Æ‚Å‘½d‚É‚©‚©‚Á‚Ä‚µ‚Ü‚Á‚Ä‚½‚Ì‚ÅA
- ÅŒã‚É•t—^‚µ‚½‚à‚Ì‚P‚‚ɂȂé‚悤‚É‚µ‚Ü‚µ‚½B
- ‚»‚̂‚¢‚łɃXƒe[ƒ^ƒXƒAƒCƒRƒ“‚à•\Ž¦‚·‚é‚悤‚É‚à‚µ‚Ü‚µ‚½B
- i–¢ƒeƒXƒg‚Å‚·‚ªAƒAƒCƒRƒ“o‚È‚©‚Á‚½ƒXƒsƒAƒNƒCƒbƒPƒ“‚à‚Å‚é‚Í‚¸‚Å‚·Bj
-EƒAƒCƒeƒ€DB‚É‚ÄA‘‘¬ƒ|[ƒVƒ‡ƒ“‚ÌŽg—p§ŒÀ‚ð’ljÁ
- Jazz‚³‚ñ’ñ‹Ÿ‚Å‚·B
- ‚»‚ê‚ÆŽ„‚ÌŽï–¡‚щƒOƒiƒƒNTƒVƒƒƒc‚ðƒAƒŒƒiƒj‚µ‚Ü‚µ‚½‚ª‚—@‹C‚É“ü‚ç‚È‚¯‚ê‚Î
- Á‚·‚Ȃ茳’Ê‚è‚ÉC³‚·‚é‚Ȃ肵‚Ä‚µ‚¿‚á‚Á‚Ä‚­‚¾‚³‚¢‚Ü‚¹`B
-
- (conf/)
- battle_athena.conf 598‚Å‚Ì“ü‚ê–Y‚ê
- (map/)
- skill_encchant_eremental_end() ’ljÁ
- skill_status_change_end() skill_status_change_start() skill_status_change_clear() C³
- (db/)
- iten_db.txt C³
-
---------------
-//0598 by ‚é‚é‚é
-
-E‘•”õ•Ší‚̉摜•ÏX‚ɑΉž
- ˆê‰ž‚È‚ª‚çƒNƒ‹ƒZƒCƒ_[‚Ì—¼Žè‘„‚Æ‚©ƒvƒŠ[ƒXƒg‚Ì“ÝŠí‚Æ‚©‚̓eƒXƒg‚µ‚Ü‚µ‚½‚ªA
- ‘S‚Ä‚ÌE‚ðƒ`ƒFƒbƒN‚Í‚¢‚Ü‚¹‚ñB‚Ü‚½‚±‚ÌŽž“_‚ł̓Nƒ‰ƒCƒAƒ“ƒgŽ©‘Ì‚Ì•\Ž¦ƒf[ƒ^‚É
- –â‘è‚Ì—L‚é‚Ì‚ª‘½‚¢‚Ì‚à•t‚¯‰Á‚¦‚Ä‚¨‚«‚Ü‚·B
- ‚ ‚ÆAŒC‚àˆê‰ž‚͑Ήž‚µ‚Ü‚µ‚½B’A‚µ‚±‚ê‚ÍŒ»Žž“_‚Å‚Í–{ŽI‚·‚ç‚à–¢‘Ήž‚È‚Ì‚Å‚·‚ªB
- •\Ž¦‚ª‰»‚¯‚ÄŒ™‚¾‚Æ‚¢‚¤ê‡‚Í]—ˆ‚Ì‚â‚è•û‚ào—ˆ‚Ü‚·B
-
- (conf/)
- battle_athena.conf
- ƒIƒvƒVƒ‡ƒ“ equip_modifydisplay ‚ð’ljÁ
- (map/)
- battle.h
- Battle_Config C³
- battle.c
- battle_config_read() C³
- clif.c
- packet_len_table[] clif_changelook() C³
- map.h
- enum {} C³
- pc.c
- pc_calcstatus() pc_equiplookall() pc_changelook() C³
- (common/)
- mmo.h
- mmo_charstatus {} C³
-
---------------
-//0597 by ”g˜Q
-
-EƒAƒ}ƒc‚ÉŠÖ‚·‚éC³•”÷C³
- (conf/)
- npc_mob_job.txt
- npc_monster.txt
- npc_monster30.txt
- ƒ‚ƒ“ƒX–¼C³
- npc_monster_amatsu.txt
- ’ljÁiƒ‚ƒ“ƒX”‚ª‚©‚È‚èŽè”²‚«‚Å‚·EEE
- npc_town_amatsu.txt
- ƒVƒ‡ƒbƒvNPC‚ð“‡inpc_shop3.txt‚ðÁ‚µ‚Ä‚àOK‚Å‚·
- (db/)
- mob_db.txt
- ƒAƒ}ƒc‚̃‚ƒ“ƒXƒf[ƒ^‚ðŒ»Ý•ª‚©‚é”͈͂ÅC³•‘‚Æ‚«‚Ì‚±‚Ìdef,mdef‚ðC³
-
---------------
-//0596 by Ž€_
-
-E0595‚ÌC³‚Æׂ©‚¢C³B
-EƒtƒŠ[ƒLƒƒƒXƒg‚ŃLƒƒƒXƒg‚µ‚Ä‚¢‚éŠÔ‚ÍUŒ‚‰Â”\‚Å‚·‚ªƒLƒƒƒXƒg‚µ‚½Œã‚Ì
-ƒfƒBƒŒƒCƒ^ƒCƒ€‚Å‚ÍUŒ‚‚Å‚«‚È‚¢‚悤‚É‚È‚Á‚Ä‚¢‚Ü‚·B–{ŽI‚ÌŽd—l‚ª‚Ç‚¤‚È‚Ì‚©‚Í
-‚í‚©‚è‚Ü‚¹‚ñB
-E“®‚¢‚Ä‚¢‚éPC‚Ƀ‚ƒ“ƒXƒ^[‚ªUŒ‚‚Å‚«‚È‚¢–â‘èC³B(ƒeƒXƒg‚µ‚Ä‚Ü‚¹‚ñ‚ª
-‘½•ª‚±‚ê‚Å‘åä•v‚©‚ÆB)
- (map/)
- skill.h
- SC_FREECAST íœB
- skill.c
- skill_use_id()Askill_use_pos() C³B
- skill_castend_id()Askill_castend_pos() C³B
- ‚»‚Ì‘¼­‚µC³B
- pc.c
- calc_next_walk_step()Apc_attack_timer()Apc_calcstatus() C³B
- clif.c
- clif_parse_ActionRequest()Aclif_parse() C³B
- map.h
- struct map_session_data‚Éprev_speed’ljÁB
- mob.c
- mob_ai_sub_hard()Amob_changestate()Amob_attack() C³B
-
---------------
-//0595 by PRevEv
-EƒtƒŠ[ƒLƒƒƒXƒgC³AŽÀ‘•(ƒLƒƒƒXƒeƒBƒ“ƒO’†UŒ‚‚à‚Å‚«‚Ü‚·B)
- (/map)
- pc.c
- pc_calcstatus() C³B
- calc_next_walk_step() C³B
- pc_attack_timer() C³B
- skill.c
- skill_castend_id()Askill_castend_pos()Askill_use_id()Askill_use_pos() C³B
-
---------------
-//0594 by Ž€_
-
-EŠØ‘ˆÆ‚̃p[ƒeƒB–â‘èC³‚Æׂ©‚¢C³B
-E@partyƒRƒ}ƒ“ƒhC³‚Æ@guildƒRƒ}ƒ“ƒh’ljÁB
-Ebattle_athena.conf‚Éguild_emperium_check’ljÁB
-EƒXƒLƒ‹Žg—p‚ªŽ¸”s‚µ‚Ä‚àƒfƒBƒŒƒC‚ª‚©‚©‚é–â‘èC³B
- help.txt C³B
- (map/)
- clif.c
- clif_parse_CreateParty2() ’ljÁB
- clif_parse_ItemIdentify() C³B
- ‚»‚Ì‘¼­‚µC³B
- atcommand.hAatcommand.c C³B
- battle.h
- struct Battle_Config‚Éguild_emperium_check’ljÁB
- battle.c
- battle_config_read() C³B
- guild.c
- guild_create()Aguild_created() C³B
- skill.c
- skill_castend_id()Askill_castend_pos() C³B
- Makefile C³B
- (doc/)
- client_packet.txt
- ƒpƒPƒbƒg0x01e8 ’ljÁB
- conf_ref.txt C³B
- (conf/)
- atcommand_athena.conf C³B
- battle_athena.conf C³B
-
---------------
-//0593 by Ž€_
-
-EƒƒeƒI‚ƃoƒ~ƒŠƒIƒ“‚̃_ƒ[ƒWC³‚Æׂ©‚¢C³B
-EƒƒeƒI‚Ìè¦Î‚ª—Ž‚¿‚Ä‚­‚é”͈͂ð7*7‚©‚ç5*5‚É•ÏXB(‚±‚ê‚Å’†‰›‚Í‘S‚Ä‚Ìè¦Î‚Ì
-ƒ_ƒ[ƒW‚ðŽó‚¯‚邱‚Æ‚É‚È‚è‚Ü‚·B)
-EŽ©“®‰ñ•œŒvŽZŽ®•ÏXB
- ƒXƒLƒ‹ƒŒƒxƒ‹*5 + (max_hp/50)‚©‚ç
- ƒXƒLƒ‹ƒŒƒxƒ‹*5 + (max_hp*ƒXƒLƒ‹ƒŒƒxƒ‹/500)‚É•ÏXB(SP‚Æ‘§‚à“¯‚¶‚悤‚É•ÏXB)
-EGM‰EƒNƒŠƒbƒN–½—ßuŽg—pŽÒ‹­§I—¹v‚Åatcommand_athena.conf‚Ìkick‚Ì
-ƒŒƒxƒ‹‚ðƒ`ƒFƒbƒN‚·‚é‚悤‚É•ÏXB
- (db/)
- skill_db.txt
- ƒXƒLƒ‹‹CŒ÷‚Ìsp‚ð10‚©‚ç8‚ÉC³B
- (map/)
- map.c
- NO_WATER‚ð100‚©‚ç1000000‚É•ÏXB
- battle.c
- battle_calc_magic_attack() C³B
- skill.c
- skill_castend_pos2() C³B
- pc.c
- pc_natural_heal_hp()Apc_natural_heal_sp()Apc_spirit_heal() C³B
- clif.c
- clif_parse_GMKick() C³B
- (doc/)
- conf_ref.txt C³B
-
---------------
-//0592 by ˆø‘Þl
-
-E…ê‚Ì—L‚è–³‚µ‚ðwater_height.txt‚¾‚¯‚ÅŒˆ‚ß‚é‚悤‚É•ÏXBnpc_water.txt‚Í•s—v‚ÉB
-EƒJ[ƒhƒXƒLƒ‹‚ł̓Œƒxƒ‹ã‚°‚Å‚«‚È‚¢‚悤‚É‚È‚Á‚½‚½‚ß•s—v‚É‚È‚Á‚½ˆ—‚ðíœB
- (conf/)
- map_athena.conf
- npc: conf/npc_water.txt Á‹Ž
- water_height.txt
- ƒfƒtƒHƒ‹ƒg‚‚³3‚̃}ƒbƒv•ª‚ð’ljÁ•all_water‚ð‚‚³-100‚Æ‚µ‚ăRƒƒ“ƒg‚ŒljÁ
- (map/)
- map.c
- waterlist‚Ímap_readwater()“à‚Ńƒ‚ƒŠŠm•Û
- gatÝ’èŒã‚Í•s—v‚È‚Ì‚Åmap_readallmap()‚Ńƒ‚ƒŠŠJ•ú‚µ‚Ä‚¢‚Ü‚·
- map.h
- struct map_data‚Ìflag‚©‚çwater_flag‚ðÁ‹Ž
- npc.c
- npc_parse_mapflag()
- ƒ}ƒbƒvƒtƒ‰ƒOwater‚Æall_water‚ðÁ‹Ž
- pc.c
- pc_skillup()
- — ‚ŃXƒLƒ‹LvUP‚Å‚«‚È‚­‚È‚Á‚½‚Ì‚Åskill[id].flag‚Ì•ª‚ÍÁ‹Ž
- skill.c
- skill_check_condition()
- map_getcell‚Å…ê”»’è‚·‚é‚悤‚ÉC³
-
---------------
-//0591 by CHRIS
-
-Eƒ‚ƒ“ƒN‚ªŸ†’e‚ð‚à‚Á‚Ä‚¢‚é‚Æ‚«AŸ†’e*3‚Ì•K’†ƒ_ƒ[ƒW‚ª“ü‚é—l‚É‚È‚è‚Ü‚µ‚½B„Ÿ@battle.cC³
-Eƒ‚ƒ“ƒNƒXƒLƒ‹uŽw’ev‚Æu”­™¤v‚Æu‹CEv‚̉r¥ŽžŠÔ‚ª³‚µ‚­C³‚³‚ê‚Ü‚µ‚½B„Ÿ@cast_db.txtC³
-
---------------
-//0590 by Ž€_
-
-Egrf-files.txt‚âconfƒtƒ@ƒCƒ‹Aaccount.txtƒtƒ@ƒCƒ‹‚Ì–¼‘O‚ƈʒu‚ð•Ï‚¦‚é‚悤‚É•ÏXB
-Eƒ}ƒbƒvˆÚ“®‚É‚æ‚éŽI—Ž‚¿‚ð–h‚®ˆ×‚ÉC³B(ƒ}ƒbƒv‚ª“ñ“xƒ[ƒh‚³‚ê‚ÄŽI—Ž‚¿‚ª
-‹N‚±‚Á‚½‚Æ‚Ì•ñ‚ðŽó‚¯‚½‚Ì‚ÅB)
-E0586‚ð‚¿‚å‚Á‚ÆC³B‘•”õ‚É‚æ‚éƒXƒLƒ‹‚ÌꇃŒƒxƒ‹ã‚°‚ª‚Å‚«‚È‚¢‚悤‚ÉC³B
-‚½‚¾‘•”õ‚É‚æ‚éƒXƒLƒ‹‚ðƒXƒLƒ‹ƒ|ƒCƒ“ƒg‚ðŽg‚Á‚Äã‚°‚鎞‚Í‘•”õ‚ðŠO‚·•K—v‚ª
-‚ ‚è‚Ü‚·B
-E@party‚¿‚å‚Á‚ÆC³B(–¼‘O‚É‹ó”’‚ª‚ ‚Á‚Ä‚à‘åä•v‚Ȃ悤‚ÉB)
-E…ê‚Ì‚‚³‚ðwater_height.txt‚Å“Ç‚Ýž‚ނ悤‚É•ÏXB
-Econfƒtƒ@ƒCƒ‹‚ÅÝ’è‚·‚镨‚ðƒtƒ@ƒCƒ‹‚̃pƒX‚É‹ó”’‚ª‚ ‚Á‚Ä‚à‘åä•v‚È
-‚悤‚É•ÏXB
-EGM‰EƒNƒŠƒbƒN–½—ßuŽg—pŽÒ‹­§I—¹v‚Ń‚ƒ“ƒXƒ^[‚ð“|‚¹‚é‚悤‚É•ÏXB
-(Œ´ˆö‚Í•s–¾‚Å‚·‚ª‚±‚ê‚Ń‚ƒ“ƒXƒ^[‚ðŽE‚·‚ÆŽI‚ª‚ß‚¿‚á‚­‚¿‚á‚É’x‚­‚Ȃ邱‚Æ‚ª
-‚ ‚è‚Ü‚·B)
-E‚»‚Ì‘¼­‚µC³B
-EƒeƒXƒg‚Í–w‚ñ‚Ç‚µ‚Ä‚Ü‚¹‚ñ‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
- athena-start C³B
- (map/)
- pc.c
- pc_skill()Apc_resetskill()Apc_setpos()Apc_read_gm_account() C³B
- pc_set_gm_account_fname() ’ljÁB
- pc.h
- pc_set_gm_account_fname() ’ljÁB
- clif.c
- clif_skillinfoblock()Aclif_parse_LoadEndAck()Aclif_parse_GMKick() C³B
- clif_changemap() C³B
- atcommand.c
- @partty C³B
- skill.c
- skill_castend_nodamage_id() C³B
- map.c
- map_config_read()Amap_readwater() C³B
- script.c
- script_config_read()Ado_init_script() C³B
- script.h
- script_config_read() ’ljÁB
- (common/)
- version.h C³B
- grfio.h
- grfio.c
- grfio_init() C³B
- mmo.h
- GRF_PATH_FILENAME ’ljÁB
- (conf/)
- map_athena.conf C³B
- npc_water.txt C³B
- water_height.txt ’ljÁB
- login_athena.conf C³B
- (login/)
- login.c
- login_config_read()Aread_gm_account() C³B
- (char/)
- char.c
- do_init() C³B
- char_config_read() ’ljÁB
- inter.c
- inter_config_read() C³B
- (doc/)
- conf_ref.txt C³B
-
---------------
-//0589 by ŒÓ’±—–
-
-EGM‚̉EƒNƒŠƒbƒN‚ÅØ’f‚³‚ê‚é–â‘è‚ðC³
- ‚Æ‚è‚ ‚¦‚¸01dfƒpƒPƒbƒg‚𖳎‹‚·‚é‚悤‚É‚µ‚Ü‚µ‚½B
- ‚È‚ñ‚Æ‚È‚­‚±‚̃pƒPƒbƒg‚̓`ƒƒƒbƒg‹ÖŽ~‰ñ”‚Æ‚ÍŠÖŒW–³‚¢‚悤‚È‹C‚àcc
-
- clif.c
- clif_parse_GMReqNoChatCount()’ljÁ
-
-Estart‚ðathena.sh‚Å‚È‚­athena-start‚ðŽg‚¤‚悤‚É•ÏX
- start
- athena.sh => athena-start start‚É’u‚«Š·‚¦‚µ‚½‚¾‚¯
-
---------------
-//0588 by Kalen
-
-EAmatsuNPC’ljÁ
-
---------------
-//0587 by ŒÓ’±—–
-
-EloginƒT[ƒo[‚ÌŠÇ—ƒpƒPƒbƒg‚ÌŽd—l‚ð•ÏXi0579‚̃ƒOƒCƒ“‹‘”Ûî•ñ‚ɑΉžj
- (login/)
- login.c
- ƒAƒJƒEƒ“ƒgƒoƒ“ó‘Ô•ÏXƒpƒPƒbƒg’ljÁ(7936,7937)
- ƒAƒJƒEƒ“ƒgƒŠƒXƒgŠ“¾ƒpƒPƒbƒgC³(7921)
- (doc/)
- admin_packet.txt
-
-Eladmin‚Ì‹@”\’ljÁ
- Eƒoƒ“ó‘Ô‚ð•ÏX‚·‚éƒRƒ}ƒ“ƒh’ljÁ
- EƒŠƒXƒg•\Ž¦‚ÆŒŸõ‚Ńoƒ“ó‘Ô‚à•\Ž¦‚³‚ê‚é‚悤‚É‚È‚Á‚½
- E"?"‚Å‚àƒwƒ‹ƒv‚ªo‚é‚悤‚ÉC³
- EƒVƒ“ƒ{ƒŠƒbƒNƒŠƒ“ƒN‚Éstateaccount‚ª’ljÁ‚³‚ê‚Ü‚µ‚½B
- Žg‚¤l‚Íladmin‚Ì--makesymlink‚ð‚à‚¤ˆê“xŽÀs‚µ‚Ä‚­‚¾‚³‚¢
-
- (tool/)
- ladmin
- ‹@”\’ljÁ
-
---------------
-//0586 by ˆø‘Þl
-EƒJ[ƒhƒXƒLƒ‹‚ðC³
- (/map)
- pc.c
- pc_calc_skilltree()
- pc_skill()
- Šo‚¦‚ç‚ê‚È‚¢ƒXƒLƒ‹‚È‚çskill[id].flag=1‚Æ‚·‚é
- ‚Ü‚½‚Ískill[id].flag‚É–{—ˆ‚Ìlv‚ð+2‚µ‚Ä‹L‰¯
- pc_skillup()
- skill[id].flag‚à‘‚â‚·
- clif.c
- clif_skillinfoblock()
- skill[id].flag==1‚È‚çŠo‚¦‚ç‚ê‚È‚¢ƒXƒLƒ‹
- (/char)
- char.c
- mmo_char_tostr()
- skill[id].flag‚©‚ç–{—ˆ‚Ìlv’l‚ð•Û‘¶‚·‚é
-
---------------
-//0585 by kalen
-EscriptC³
- npc_town_guid.txt ŠOŒ©•ÏX
-
---------------
-//0584 by ˆø‘Þl
-EƒJ[ƒhƒXƒLƒ‹‚ðC³
- (/map)
- pc.c
- pc_calc_skilltree() cardƒXƒLƒ‹‚ð–Y‚ꂳ‚¹‚鈗‚ð’ljÁ
- pc_skill() ®—
-
---------------
-//0583 by kalen
-EscriptC³
- npc_event_doll.txt ”²‚¯‚Ä‚¢‚½•”•ª‚̉ï˜b’ljÁ
- npc_town_guid.txt ’¬‚̈ēà—vˆõ‚̉摜‚ð•\Ž¦‚Å‚«‚é‚悤‚ÉC³
- Šî–{“I‚ÉÅVjRO‚Å–â‘è‚È‚µ‚Å‚·B
-
---------------
-//0582 by PRevEv
-E580‚̃oƒOC³B
- (/map)
- skill.c
- skill_use_pos() C³B
---------------
-//0581 by ˆø‘Þl
-E…ê‚‚³Ý’èŠÖ˜A‚ð­‚µC³
- (/map)
- map.c
- map_waterheight()
- map_readwater()
- map_readmap()
- waterlist[512] -> *waterlist‚É‚µ‚ÄAmalloc‚Ńƒ‚ƒŠŠm•Û‚·‚é‚悤‚ÉC³B
- map_readallmap()
- free(waterlist);’ljÁ
-
-EƒoƒO•ñƒXƒŒƒbƒh‚ÌC³ƒpƒbƒ`‚ðŽæ‚èž‚Ý
- (conf/)
- npc_town_refine.txt ƒZƒ~ƒRƒƒ“”²‚¯C³
- (db/)
- item_db.txt 1161,ƒoƒ‹ƒ€ƒ“C³
-
---------------
-//0580 by PRevEv
-EƒtƒŠ[ƒLƒƒƒXƒg‰¼ŽÀ‘•(ƒLƒƒƒXƒeƒBƒ“ƒO’†UŒ‚‚Í•s‰Â”\)
- (/map)
- clif.c
- clif_parse_WalkToXY() C³B
- pc.c
- pc_calcstatus() C³B
- skill.c
- skill_castend_id()Askill_castend_pos()Askill_use_id()Askill_use_pos() C³B
---------------
-//0579 by A‚Ìl
-EƒƒOƒCƒ“‚ð’e‚­ˆ—‚ð‰¼ŽÀ‘•
- conf/login.c
- auth_dat\‘¢‘Ì‚Éstate‚ð’ljÁ
- mmo_authŠÖ”C³
- mmo_auth_newŠÖ”C³
- mmo_auth_syncŠÖ”C³
- mmo_auth_initŠÖ”C³
-
- ‚±‚Ì’l‚ð•ÏX‚·‚éƒc[ƒ‹A‰ü‘PôB‘¼—Í–{Šè‚Å‚·i„ƒG
---------------
-//0578 by ˆø‘Þl
-EƒoƒO•ñƒXƒŒƒbƒh‚ÌC³ƒpƒbƒ`‚ðŽæ‚èž‚Ý‚È‚Çithanx to ‚é‚é‚邳‚ñ,Athefans‚³‚ñ,sage‚³‚ñ,zupport‚³‚ñj
- help.txt @go‚Ìà–¾‚¿‚å‚Á‚ÆC³
- (conf/)
- npc_mob_job.txt ‘æ4—ñ–Ú‚ðTab‹æØ‚è‚ÉC³
- npc_water.txt …ê‚‚³C³
- (db/)
- item_db.txt 640,...,{ pet 1155; },{},,‚ÉC³
- mob_db.txt 1162,RAFFLESIA,ƒ‰ƒtƒŒƒVƒA...C³
-
---------------
-//0577 by ‚é‚é‚é
-E@ƒRƒ}ƒ“ƒh‚ð’ljÁ•C³
- atcommand.c
- atcommand() @itemresetƒRƒ}ƒ“ƒh’ljÁ @goƒRƒ}ƒ“ƒhC³iƒAƒ}ƒcEƒRƒ“ƒƒ“‚ð’ljÁj
- atcommand_config_read() ã‚ɇ‚킹‚ÄitemresetŽg—pƒŒƒxƒ‹Žw’è‚ð’ljÁ
-
- doc/conf_ref.txt
- conf/atcommand_athena.conf itemresetŽg—pƒŒƒxƒ‹Žw’è‚ð’ljÁ
- help.txt @itemreset‚Ìà–¾’ljÁ‚Æ@go‚Ìà–¾C³
-
--------------
-//0576 by V&S
-EƒS[ƒXƒgƒŠƒ“ƒOƒJ[ƒh‚ƃo[ƒXƒŠ[ƒJ[ƒh‚ÌŒø‰Ê‚ª‹t‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ðC³
- { bonus bDefEle,7; }¨ƒS[ƒXƒgƒŠƒ“ƒOƒJ[ƒh(”O)
- { bonus bDefEle,8; }¨ƒo[ƒXƒŠ[ƒJ[ƒh(ˆÅ)
- ª‚¾‚Á‚½‚Ì‚ð«‚ÉC³
- { bonus bDefEle,7; }¨ƒo[ƒXƒŠ[ƒJ[ƒh(ˆÅ)
- { bonus bDefEle,8; }¨ƒS[ƒXƒgƒŠƒ“ƒOƒJ[ƒh(”O)
-
- |“S‚Ìd—Ê‚ðC³
-
---------------
-//0575 by ˆø‘Þl
-E…êƒtƒ@ƒCƒ‹‚ª"conf/npc_water.txt"ŒÅ’肾‚Á‚½‚Ì‚ðC³
-iconf/map_athena.conf‚Ìnpc:‚É‘‚©‚ê‚Ä‚¢‚éƒtƒ@ƒCƒ‹‚ð‚Ý‚Ä…ê‚‚³Ý’è‚·‚é‚悤‚Éj
- map.c
- struct waterlist[512]; V‹K’ljÁBƒ}ƒbƒvƒtƒ@ƒCƒ‹–¼‚Æ…ê‚‚³‚ð‹L‰¯B
- map_waterheight() V‹K’ljÁB…ê‚Ì‚‚³‚ð•Ô‚·B
- map_readwater() …êƒtƒ@ƒCƒ‹‚ð‚Ý‚Äwaterlist‚ðÝ’è‚·‚é‚悤‚ÉC³B
- map_readmap() map_waterheight()‚ðŒÄ‚Ԃ悤‚ÉC³B
- map_config_read() "npc"‚Åmap_readwater(w2);’ljÁB
-
---------------
-//0574 by ‚¢‚Ç
-
-EƒT[ƒo[Snapshot
-Econf/shop_*.txt‚Ì“à—e‚ðconf/npc_town_*.txt‚É“‡
-
---------------
-//0573 by Jazz
-
-Emap‚Ì penalty, nomemo, noteleport, nobranch‚Ì option‚ðÝ’èB
-Emap ƒT[ƒo[‚ª cpu‚𖳌Àè—L‚·‚邱‚Æ‚ðŒŸ¸‚·‚邽‚ß‚Ì script “Y•t. cygwinŠÂ‹«‚Å쬂ƎÀŒ±‚ð‚µ‚Ü‚µ‚½.
- (/conf)
- mapflag.txt ’ljÁB
- (/tool)
- mapcheck.sh ’ljÁB
-
---------------
-//0572 by ˆø‘Þl
-E"conf/npc_water.txt"‚Ì‘æ4—ñ‚Å…ê‚‚³Ý’è
-@i‚¿‚á‚ñ‚Æ‚µ‚½…ê”»’肪ŽÀ‘•‚³‚ê‚é‚܂ł̂‚Ȃ¬‚Æ‚µ‚ÄEEEj
- (/conf)
- npc_water.txt ƒTƒ“ƒvƒ‹C³B
- E‘æ4—ñ‚Å…ê‚Ì‚‚³‚ðݒ肵‚Ü‚·B
- E‚‚³‚ð‘‚©‚È‚©‚Á‚½ê‡‚̃fƒtƒHƒ‹ƒg’l‚Í3‚É‚È‚è‚Ü‚·B
- (/map)
- map.c
- E…ê‚‚³Ý’èŠÖ” map_readwater() ’ljÁB
-
---------------
-//0571 by code
-“V’ÃtƒB[ƒ‹ƒh‚ÌMOB‚Ì”z’u‚ƃ[ƒvƒ|ƒCƒ“ƒg‚ÌÝ’è‚ÌC³
-“V’Ãpƒbƒ`‚É›À›Ä‚ªŠÜ‚Ü‚ê‚Ä‚¢‚é‚Ì‚ðŠm”F‚µ‚½‚Ì‚Å›À›Ä‚̃[ƒv‚Æmob‚ð”z’u
-
-conf/npc_monster35.txt
- mob‚Ì”z’u
-
-conf/npc_warp_amatsu.txt
-@@ “V’Ãwarp point‚ÌÝ’u
-
-conf/npc_warp_gonryun.txt
- ›À›Äwarp point‚ÌÝ’u
-
-conf/npc_town_amatsu.txt
-@@ Žb’è“I‚Ƀvƒƒ“ƒeƒ‰•¬…‘O©¨“V’Ã`^ƒvƒƒ“ƒeƒ‰•¬…‘O©¨›À›Ä‚ÌÚ‘±NPC
-
---------------
-//0570 by code
-“V’ÃtƒB[ƒ‹ƒh‚ÌMOB‚Ì”z’u‚ƃ[ƒvƒ|ƒCƒ“ƒg‚ÌÝ’è‚Å‚·B
-conf/npc_monster35.txt
- mob‚Ì”z’u
-
-conf/npc_warp_amatsu.txt
-@@ warp point‚ÌÝ’u
-
-conf/npc_town_amatsu.txt
-@@ Žb’è“I‚Ƀvƒƒ“ƒeƒ‰•¬…‘O©¨“V’Ã`‚ÌÚ‘±NPC
-
---------------
-//0569 by Ž€_
-
-E0561‚Ì@jobcange ‚Å‚ÌŠƒo[ƒh•‰ƒ_ƒ“ƒT[‚É‚æ‚éˆÆ—Ž‚¿–hŽ~‚ðpc_jobchange()‚Å‚·‚é‚悤‚É•ÏXB
-E@ƒRƒ}ƒ“ƒh@party’ljÁBƒp[ƒeƒB‚ðì‚é–½—ß‚Å‚·BŠØ‘ˆÆ‚ðŽg‚¤‚ƃp[ƒeƒB‚ðì‚鎞Ž~‚Ü‚é‚Ì‚Å—ÕŽž“I‚É‚±‚ê‚ðŽg‚Á‚ăp[ƒeƒB‚ðì‚Á‚Ä‚­‚¾‚³‚¢B
-E…‚Ì”»’fˆ—C³B
-Eƒ}ƒbƒvƒtƒ‰ƒO‚Éwater‚Æall_water’ljÁBÚ‚µ‚­‚Ínpc_water.txt‚ðŽQl‚µ‚Ä‚­‚¾‚³‚¢B
-iz_dun0x‚¾‚¯“ü—Í‚µ‚Ä‚¢‚Ü‚·‚Ì‚Å‘¼‚Ì‚Í–„‚ß‚Ä‚­‚¾‚³‚¢Bƒ}ƒbƒvƒtƒ‰ƒOwater‚©all_water‚ª“ü‚Á‚Ä‚È‚¢‚ƃZƒ‹‚Ìtype‚ª3‚Å‚à…‚Æ‚µ‚Ä”FŽ¯‚µ‚Ü‚¹‚ñB‚»‚µ‚Ä…‚¾‚炯‚Ìiz_dun02‚©‚ç04‚Ü‚Å‚Í‘S‚Ä…‚Æ‚µ‚Ä”FŽ¯‚·‚é‚悤‚Éall_water‚ð“ü‚ê‚Ä‚¢‚Ü‚·B(‚±‚êˆÈŠO‚Í•û–@‚ª‚È‚©‚Á‚½‚Ì‚Å...)
-Ebattle_athena.conf‚É€–ڒljÁBˆê•”‚ÍWeiss‚ðŽQl‚µ‚Äì‚Á‚½•¨‚Å‚·B
-EƒeƒXƒg‚µ‚Ä‚È‚¢•¨‚à­‚µ‚ ‚è‚Ü‚·B
- (/conf)
- atcommand_athena.conf C³B
- battle_athena.conf C³B
- map_athena.conf C³B
- npc_water.txt ’ljÁB
- (/doc)
- conf_ref.txt C³B
- (/map)
- atcommand.hAatcommand.c C³B
- battle.h C³B
- battle.c
- battle_config_read() C³B
- pc.c
- pc_jobchange()Apc_stop_walking() C³B
- npc.c
- npc_parse_warp()Ado_init_npc()Anpc_parse_mapflag() C³B
- mob.c
- mob_ai_sub_hard() C³B
- pet.c
- pet_food() C³B
- skill.c
- skill_check_condition() C³B
- map.h
- struct map_data C³B
-
---------------
-//0568 by ˆø‘Þl
-
-EƒAƒNƒAƒxƒlƒfƒBƒNƒ^…ê”»’è‚È‚Ç
-EƒEƒH[ƒ^[ƒ{[ƒ‹…ê”»’èiread_gat(m,x,y)==3‚Å…ê‚Æ”»’èj
- skill.c
- skill_castend_nodamage_id()
- case AL_HOLYWATER: ƒAƒNƒAƒxƒlƒfƒBƒNƒ^i¹…Žæ“¾j
- skill_check_condition()
- case AL_HOLYWATER: ƒAƒNƒAƒxƒlƒfƒBƒNƒ^i…ê”»’èj
- case WZ_WATERBALL: ƒEƒH[ƒ^[ƒ{[ƒ‹i…ê”»’èj
-
---------------
-//0567 by ‚é‚é‚é
-
-EƒAƒRƒ‰ƒCƒg‚̃AƒNƒAƒxƒlƒfƒBƒNƒ^‚ð‰¼ŽÀ‘•i…êŒÀ’èŽg—p‚Ì‚Ý–¢ŽÀ‘•j
-EƒvƒŠ[ƒXƒg‚̃AƒXƒyƒ‹ƒVƒIAƒZ[ƒW‚̃tƒŒƒCƒ€ƒ‰ƒ“ƒ`ƒƒ[‚ŃXƒLƒ‹Žg—pŽž‚ɃAƒCƒeƒ€Á”ï
-Eƒ~ƒXƒgƒŒƒXƒJ[ƒh‘•”õŽž‚ɃZ[ƒW‚Ì‘®«Œ´Î•ƒnƒ“ƒ^[‚Ìã©‚ªÁ”‚ê‚È‚¢ƒoƒO‚ðC³
-
- (/map)
- skill.c
- skill_check_condition() C³
-
---------------
-//0566 by ƒpƒCƒ“
-
-E0563‚̃XƒLƒ‹‰ðœðŒ‚ªŠÔˆá‚Á‚Ä‚¢‚½‚Ì‚ÅC³B•Ší‚ð‚Í‚¸‚·&•Ší‚ð•Ï‚¦‚½ê‡‚Í
-@–³ðŒ‚ʼn𜂷‚é‚悤‚É‚µ‚½B
-
-# pc_checkallowskill ‚ɂ‚¢‚Ä(‘O‰ñà–¾‘‚­‚Ì‚ð–Y‚ê‚Ä‚¢‚½‚Ì‚Åc)
-@ˆê‰ž¡Œã‚ÌŠÜ‚Ý‚Æ‚µ‚Äreturn‚ð•Ô‚·‚悤‚É‚µ‚Ä‚¢‚Ü‚·‚ªAŒ»Ý‚Í(–ß‚èæ‚Å‚Í)Žg‚Á‚Ä‚¢‚Ü‚¹‚ñB
-@¡Œ»Ý‚Í‹RŽmEƒNƒ‹ƒZƒCƒ_[‚­‚ç‚¢‚µ‚©ƒXƒLƒ‹Žg—pŽž‚Ì•Ší§ŒÀ‚ª‚ ‚è‚Ü‚¹‚ñ‚ªA¡Œão‚Ä‚±‚È‚¢
-@‚Æ‚àŒÀ‚ç‚È‚¢‚Ì‚ÅA‚à‚µ(2ŽŸãˆÊ‚©3ŽŸH)o‚Ä‚«‚½‚炱‚±‚Ń`ƒFƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B
-
- (/map)
- pc.c
- pc_checkallowskill() C³
-
---------------
-//0565 by ˆø‘Þl
-
-Eƒ}ƒbƒvˆÚ“®Žž‚É–î‘•”õ‚ªŠO‚ê‚È‚¢‚悤‚ÉC³
-EƒƒOƒCƒ“Žž‚É–î‘•”õ‚ª•\Ž¦‚³‚ê‚é‚悤‚ÉC³
- (/common)
- mmo.h
- i–î‘•”õ‚Í0x8000‚È‚Ì‚Åjshort‚¾‚Æint‚ւ̃LƒƒƒXƒgŽž‚È‚Ç‚É
- •‰’l‚Æ‚È‚Á‚Ä‚µ‚Ü‚¤‚½‚ßunsigned short‚ÉC³
- struct item
- short equip; -> unsigned short equip;
- (/map)
- clif.c
- clif_itemlist() ƒAƒCƒeƒ€ƒŠƒXƒg‚Ì–î‚̂‚¢‚Å‚É–î‘•”õ‚àƒ`ƒFƒbƒN
- clif_arrowequip() ƒVƒ“ƒvƒ‹‰»
- pc.c
- pc_equipitem() C³
-
---------------
-//0564 by g—t
-
-E@model‚Ì•žõ‚ß•s‰Â”\”»’èC³B
-E@model‚ÅA‘I‚ׂéƒnƒY‚Ì”¯Œ`‚É•ÏXo—ˆ‚È‚©‚Á‚½•”•ª‚ðC³B
-@ã‹L•ÏX“_‚ɇ‚킹‚Ähelp.txt‚ÌC³B
-
---------------
-//0563 by ƒpƒCƒ“
-
-EMOB‚̈ÈŃXƒLƒ‹‚ðH‚ç‚Á‚½Œã‚ɉñ•œ‚µ‚È‚¢‚Ì‚ðC³Bc‚È‚ñ‚¾‚¯‚ÇA“K³‚È’l‚ª•ª‚©‚ç‚È‚¢‚Ì‚Å
-@“Å‚â’¾–Ù‚Æ“¯‚¶ŽžŠÔ‚É‚µ‚Ä‚ ‚è‚Ü‚·
-@¡ŒãA‚Ü‚½Žè‚ð‰Á‚¦‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB
-E2HQ‚ƃXƒsƒAƒNƒCƒbƒPƒ“‚ðŽg—p’†‚É•Ší‚ð•Ï‚¦‚½ê‡‚͉𜂷‚é‚悤‚É•ÏXB
-
- (/map)
- skill.c
- skill_castend_damage_id() C³B
- skill_status_change_timer() C³B
- pc.c
- pc_checkallowskill() VÝB
- pc_equipitem() C³B
- pc.h
- pc_checkallowskill() VÝB
-
---------------
-//0562 by huge
-
-E–î‚ð‹|‘•”õŽžˆÈŠO‚Å‚à‘•”õ‚Å‚«‚é‚悤‚É–ß‚µ‚Ü‚µ‚½B
-E–î‚Ì‘®«‚ð“K—p‚·‚é‚Ì‚ð‹|‘•”õŽž‚Ì‚Ý‚ÉC³B
-
- pc.c
- pc_equipitem() C³B
- pc_calcstatus() C³B
-
---------------
-//0561 by ˆø‘Þl
-
-ELinux‚Å‚àƒRƒ“ƒpƒCƒ‹‚Å‚«‚é‚悤‚É
- (/map)
- skill.c
- skill_castend_damage_id() •Ï”dx,dy‚Ì錾ˆÊ’u•ÏX
- Makefile
- LIBS ‚É -lm ’ljÁ
-
-E@jobcange ‚Å‚ÌŠƒo[ƒh•‰ƒ_ƒ“ƒT[‚É‚æ‚éˆÆ—Ž‚¿–hŽ~B by (no name)‚³‚ñ
- atcommand.c
- @jobchange,@charjob‚É«•Êƒ`ƒFƒbƒN’ljÁ
-
-// ƒiƒiƒX‚³‚ñC³
-Eclif.c“à‚Åatcommand.h‚ð‚Q“xinclude‚µ‚Ä‚¢‚½‚̂ňê‚ÂíœB
-Eƒp[ƒeƒB[‰ï˜bAƒMƒ‹ƒh‰ï˜b‚Å‚à@ƒRƒ}ƒ“ƒh‚ðƒ`ƒFƒbƒN‚·‚é‚悤‚ÉC³B
- (/map)
- clif.c
- clif_parse_PartyMessage()Aclif_parse_GuildMessage C³B
-
---------------
-//0560 by ƒpƒCƒ“
-
-E0559 ‚Ì athena-start ‚ð Unix Like OS ‚Å‚à“®‚­‚悤‚ɃŠƒtƒ@ƒCƒ“B
-
---------------
-//0559 by rowla
-
-Eathena.sh‚ð‘S–Ê“I‚É‘‚«’¼‚µAathena-start‚ÉBathena-start start‚ÅŠJŽnAathena-start stop‚ŃT[ƒo[’âŽ~Bcygwin‚ŃeƒXƒgA*BSD|Linux‚Å‚Í–¢ƒeƒXƒg(ŠÂ‹«‚ª‚È‚¢‚½‚ß)B
-
---------------
-//0558 by Ž€_
-
-EƒuƒŠƒbƒcƒr[ƒg‚ðŽ©“®‚¾‚¯‹|‚ð‘•”õ‚µ‚Ä‚¢‚È‚¢‚Æ”­“®‚Å‚«‚È‚¢‚悤‚É•ÏXB(Žè“®‚Í•Ší‚ÉŠÖŒW‚È‚­Žg‚¦‚Ü‚·B) –¢ƒeƒXƒgB
-Eƒgƒ‰ƒbƒv‚Ìd‚³C³B(‰½ŒÌ‚©‚Í’m‚ç‚È‚¢‚¯‚Ç100‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ð10‚ÉC³Bˆö‚Ý‚É‘q‚Ì•\Ž¦‚Í100‚ª10‚Å10‚ª1‚Å‚·B)
-E‹|‚ÅŽg‚¤ƒXƒLƒ‹‚ÌꇖŒ¸‚ç‚È‚¢‚Ì‚ªŽd—l‚¾‚Á‚½‚ÆŠo‚¦‚Ä‚¢‚é‚Ì‚Å–î‚ðƒ`ƒFƒbƒN‚µ‚È‚¢‚悤‚ÉC³B
-Eƒ‚ƒ“ƒNƒXƒLƒ‹ŽO’i¶‚Ì•\Ž¦‚ðƒpƒbƒVƒu‚É•ÏXB
-Eƒ}ƒbƒvƒtƒ‰ƒO‚ðƒZƒbƒg‚·‚鎞dummy‚ª‚È‚­‚Ä‚àƒZƒbƒg‚Å‚«‚é‚悤‚ÉC³B
-(mapflag nomomo dummy‚©‚çmapflag nomemo‚Å‚à‘åä•v‚Ȃ悤‚É•ÏXB)
-–¢ƒeƒXƒgB
- (/db)
- item_db.txt C³B
- skill_db.txt C³B
- (/map)
- skill.c
- skill_check_condition()Askill_additional_effect() C³B
- skill_status_change_start() C³B
- npc.c
- do_init_npc() C³B
-
---------------
-//0557 by huge
-
-E–î‚ðA‹|‘•”õŽž‚Ì‚Ý‘•”õ‚Å‚«‚é‚悤‚ÉC³B
-E‹|‚ð‘•”õ‚©‚çŠO‚µ‚½‚çA–î‚àŠO‚ê‚é‚悤‚ÉC³B
-E–î‚ðÁ”ï‚·‚éƒXƒLƒ‹‚ð‚¢‚­‚‚©C³B
-E‘é‚ðA‹|‚ð‘•”õ‚µ‚Ä‚¢‚é‚Æ‚«‚Ì‚Ý”­“®‚·‚é‚悤‚ÉC³B(–¢ƒeƒXƒg)
-
- pc.c
- pc_equipitem() C³B
- pc_unequipitem() C³B
- skill.c
- skill_additional_effect() C³B
- skill_check_condition() C³B
-
---------------
-//0555 by Ž€_
-
-Eׂ©‚¢C³‚ƃvƒŒƒ[ƒ“ƒgƒ{ƒbƒNƒXAŒÃ‚¢Šª•¨‚̃oƒOC³B
-E@ƒRƒ}ƒ“ƒh@refineA@produce­‚µC³B
-EƒT[ƒo[‚ÌIP‚ÉDNS–¼‚ðŽg‚¦‚é‚悤‚É•ÏXB(¡‚³‚ç‚Å‚·‚ªYare‚©‚ç
-Ž‚Á‚Ä‚«‚½•¨‚Å‚·B)
-EƒXƒeƒB[ƒ‹ŒvŽZŽ®•ÏX‚ÆMVPƒAƒCƒeƒ€ˆ—•ÏXB
-E“XNPC‚ð—˜—p‚É‚æ‚éƒWƒ‡ƒuŒoŒ±’lŠl“¾ŒvŽZŽ®•ÏXB
- Šl“¾ƒWƒ‡ƒuŒoŒ±’l = ln(‹à*ƒXƒLƒ‹ƒŒƒxƒ‹) * shop_exp / 100
-E‚Ù‚Æ‚ñ‚ǃeƒXƒg‚µ‚Ä‚È‚¢‚̂ŃoƒO‚̉”\«‚ª‚ ‚è‚Ü‚·B
- help.txt C³B
- (/conf)
- atcommand_athena.conf C³B
- battle_athena.conf C³B
- (/db)
- item_db.txt C³B
- (/doc)
- conf_ref.txt C³B
- (/char)
- char.c
- do_init()Acheck_connect_login_server() C³‚Æ­‚µC³B
- (/map)
- mob.c
- mob_damage() C³B
- pc.c
- pc_getitemfromcart()Apc_steal_item() C³B
- pet.c
- pet_return_egg()Apet_get_egg()Apet_unequipitem() C³B
- script.c
- buildin_getitem() C³B
- skill.c
- skill_produce_mix() C³B
- storage.c
- storage_storageget() C³B
- atcommand.c C³B
- map.c
- map_config_read() C³‚Æ­‚µC³B
- chrif.c
- check_connect_char_server()Ado_init_chrif()Achrif_setip() C³‚Æ­‚µC³B
- npc.c
- npc_buylist()Anpc_selllist() C³B
-
---------------
-//0554 by NOCTURNE
-EƒT[ƒo[SnapShot
-Etoo/addaccount‚Ìíœ
-Ehelp.txt‚ÌXV
-
---------------
-//0553 by ŒÓ’±—–
-
-Eladmin‚̃oƒOC³‚Æ‹@”\’ljÁ
- EƒL[ƒ[ƒh‚É‚æ‚éƒAƒJƒEƒ“ƒgŒŸõ‹@”\’ljÁ
- EƒVƒFƒ‹ƒRƒ}ƒ“ƒh‚Æ‚µ‚ÄŽg—p‚Å‚«‚é‚悤‚Ƀvƒƒ“ƒvƒg‚ðŽg‚í‚È‚¢ƒ‚[ƒh’ljÁ
- E’ljÁ‹@”\‚ɂ‚¢‚Ä‚Íladmin‚ðŒ©‚Ä‚­‚¾‚³‚¢
- E ladmin‚Ì--makesymlink‚É‚æ‚èAƒVƒ“ƒ{ƒŠƒbƒNƒŠƒ“ƒN‚Æ‚µ‚Äaddaccount‚ð
- 쬂·‚邽‚ßAˆÈ‘O‚Ìaddaccount‚Í휂·‚é•K—v‚ª‚ ‚è‚Ü‚·B
- ‚±‚ê‚ç‚̃Vƒ“ƒ{ƒŠƒbƒNƒŠƒ“ƒN(Cygwin‚ł̓Vƒ‡[ƒgƒJƒbƒg)‚ÆA
- ŒÃ‚¢addaccount‚ÍŽIsnapshot‚É‚ÍŠÜ‚Ü‚È‚¢‚ʼnº‚³‚¢B
-
- (tool/)
- ladmin
- ‹@”\’ljÁ‚ÆC³
-
-E—«ƒAƒJƒEƒ“ƒg‚µ‚©ì¬‚Å‚«‚È‚¢ƒoƒOC³
-EladminAcheckversionŽg—pŽžloginƒT[ƒo[‚ª–\‘–‚·‚éƒoƒOC³
-EGMƒAƒJƒEƒ“ƒgŽü•Ó‚ÌID‚ð”ð‚¯‚é‚½‚ß‚ÉSTART_ACCOUNT_NUM‚ð•ÏX
- (Šù‚ÉGMƒAƒJƒEƒ“ƒg‚Í”ð‚¯‚éŽd—l‚É‚È‚Á‚Ä‚¢‚Ü‚·‚ªA¬—–hŽ~‚Ì‚½‚ß)
-
- (login/)
- login.h
- START_ACCOUNT_NUM‚ð500000‚©‚ç2000000‚É•ÏX
- login.c
- 7532(Ø’f)ƒpƒPƒbƒg‚̈—C³
- mmo_auth_new()C³
-
-Ebackup‚ªƒoƒbƒNƒAƒbƒv‚·‚éƒtƒ@ƒCƒ‹‚Épet.txt‚ð’ljÁ
- (tool/)
- backup
- ƒtƒ@ƒCƒ‹’ljÁC³
-
---------------
-//0552 by Ž€_
-
-EˆÀ’è«‚ðã‚°‚éˆ×‚ÌC³‚Å‚·‚ª–{“–‚ɈÀ’è«ã‚ª‚Á‚½‚©
-‚Ç‚¤‚©‚Í•s–¾‚Å‚·B
-EPVP‚É‚æ‚èƒNƒ‰ƒCƒAƒ“ƒg‚ª—Ž‚¿‚é–â‘èC³B
- atcommand.c
- @pvpoffA@pvponA@gvgonA@gvgoff C³B
- script.c
- buildin_pvpon()Abuildin_pvpoff()Abuildin_gvgon()Abuildin_gvgoff() C³B
- clif.c
- clif_pvpset() C³B
- skill.c
- skill_attack()Askill_unit_onplace()Askill_unit_onout() C³B
- skill_unit_ondelete() C³B
-
---------------
-//0551 by Kalen
-EDBC³
- db/create_arrow_db.txt Š®¬
- SourceID‡‚Ƀ\[ƒg‚µ‚Ü‚µ‚½B
-
---------------
-//0550 by huge
-
-E–î쬃XƒLƒ‹ŽÀ‘•
-
- clif.c
- clif.h
- clif_arrow_create_list() ’ljÁ
- clif_arrow_created() ’ljÁ
- clif_parse() C³
-
- pc.c
- pc_search_inventory() C³
-
- skill.c
- skill.h
- skill_arrow_db() ’ljÁ
- skill_readdb() C³
- skill_castend_damage_id() C³
-
- db/create_arrow_db.txt ’ljÁ
- db/skill_db.txt C³
-
- ‚Ü‚¾db‚Í–¢Š®¬‚Å‚·B
-
---------------
-//0549 by Kalen
-
-Emap_athena.conf
- ƒIƒŠƒWƒiƒ‹ƒXƒNƒŠƒvƒgA‹GߌÀ’èƒXƒNƒŠƒvƒg‚ð®“Ú
- shop3.txt’ljÁ
-
-EŠeŽíNPC’ljÁ•C³
- npc_event_yuno.txt [’ljÁ]ƒWƒ…ƒm[ƒCƒxƒ“ƒg(ÂÎ5ŒÂGET)
- npc_cTower.txt [’ljÁ]’nã’n‰º‚ÌŒ®NPC
- npc_town_yuno.txt [C³]‘䎌C³
-
- npc_event_carnival.txt [’ljÁ]‹ŒŽIƒJ[ƒjƒoƒ‹ƒCƒxƒ“ƒgŽž‚ÌNPC
-
---------------
-//0548 by huge
-
-E–î‚ð‘•”õ‚µ‚½Žž‚Ì•\Ž¦ƒoƒO–â‘è‚ðC³B
- clif.c
- clif_arrowequip() C³B
- pc.c
- pc_equipitem() C³B
-
-‚ ‚Æ‚ÍAƒ}ƒbƒv‚ðˆÚ“®‚·‚邽‚Ñ‚É‘•”õ‚ªŠO‚ê‚¿‚Ⴄ“_‚Å‚·‚ËEEEB
-
---------------
-//0547 by Ž€_
-
-EˆÀ’è«‚ðã‚°‚éˆ×‚ÌC³‚Æׂ©‚¢C³B
-EƒXƒLƒ‹ƒ†ƒjƒbƒg‚Ì”»’è‚ð‚µ‚Ä‚¢‚éŠÔƒƒ‚ƒŠ[‚ð‰ðœ‚Å‚«‚È‚¢‚悤‚É•ÏXB
- map.c
- map_foreachinarea()Amap_foreachinmovearea() C³B
- map_foreachobject() C³B
- block_free_max‚ð32000‚©‚ç50000‚É•ÏXB
- pc.c
- pc_calcstatus() C³B
- skill.c
- do_init_skill()Askill_unit_timer()Askill_status_change_clear() C³B
- skill.cAbattle.cAbattle.h
- struct battle_config‚Ìsanctury_type‚ðsanctuary_type‚É•ÏXB
- (‰pŒêƒXƒyƒ‹ŠÔˆá‚¢‚ÅC³B)
- battle_athena.conf
- sanctury_type‚ðsanctuary_type‚É•ÏXB
- conf_ref.txt
- sanctury_type‚ðsanctuary_type‚É•ÏXB
-
---------------
-//0546 by Ž‚Žqo^.^o
-
-conf/npc_shop2.txt
-DƒoˆêƒhAƒ_ƒ“ƒTˆê—p‚Ì•ŠíBƒRƒ‚ƒh‚Ì•Ší‰®‚Ŕ̔„‚µ‚Ä‚¢‚éB
-Dƒ‚ƒ“ƒN—p‚Ì•ŠíBƒJƒsƒgˆêƒŠƒiC“¹‰@‚Ŕ̔„‚µ‚Ä‚¢‚éB
-
---------------
-//0545 by Ž€_
-
-EƒuƒŠƒbƒc‚̃_ƒ[ƒW‚ðŽ©“®‚Å•ªŽUAŽè“®‚Å•’Ê‚É‚È‚é‚悤‚É•ÏXB
-EƒI[ƒgƒuƒŠƒbƒcƒoƒOC³B(‚±‚ê‚Å‘åä•v‚¾‚Æ‚¢‚¢‚¯‚Ç...)
- map.c
- block_free_max‚ð16000‚©‚ç32000‚ÉC³B
- block_list_max‚ð4096‚©‚ç5120‚ÉC³B
- battle.c
- battle_weapon_attack() C³B
- skill.c
- skill_attack()Askill_castend_damage_id() C³B
-
---------------
-//0544 by Diex
-E–Ò—´Œ‚©‚爢C—…”e™€Œ‚ւ̃Rƒ“ƒ{ŽÀ‘•B
-Eˆ¢C—…”e™€Œ”­“®ŒãA“G‚Ì”wŒã‚Ɉړ®‚·‚é‚悤AC³B
-EŽO’i¶‚̃_ƒ[ƒWC³B
- (/map)
- skill.c
- skill_castend_damage_id() C³B
- skill_check_condition() C³B
- skill_use_id() C³B
- pc.c
- pc_attack_timer() C³B
- pc_authok() C³B
- battle.c
- battle_calc_weapon_attack() C³B
- battle.h
- struct Battle_Config C³B
- map.h
- struct map_session_data C³B
- (/conf)
- battle_athena.conf C³B
-
-‚Í‚Á‚«‚è‚¢‚Á‚ăRƒ“ƒ{Œq‚°‚Â炢‚Å‚·B‚»‚Ì‚½‚߈¢C—…‚ւ̃Rƒ“ƒ{‚Í‚©‚È‚èŠÃ‚¢”»’è‚É
-‚µ‚Ä‚Ü‚·iˆêŽž“I‚É‚Å‚·‚ªjBŒq‚°‚Â炯‚ê‚Îbattle_athena.conf‚Ì‚Ù‚¤‚Ńfƒ…ƒŒƒCŽž
-ŠÔ‚ð‘å‚«‚­‚µ‚Ä‚Ý‚Ä‚­‚¾‚³‚¢B
- “®‰æŒ©‚Ä‚Ä‹C‚¢‚½‚Ì‚Å‚·‚ªAˆ¢C—…”e™€Œ‚Í–Ò—´Œ‚ª”­“®‚µ‚½ŒãA‘¦Žž”­“®‚̃XƒL
-ƒ‹‚É•Ï‚í‚Á‚Ä‚é‚悤‚È‚Ì‚Å‚·B‘¼—Í–{Šè‚Å‚·‚ªAˆ¢C—…‚܂ł̃Rƒ“ƒ{‚̃pƒP‚ð‹L˜^‚µ‚½
-•¨‚ð‚Ç‚È‚½‚©ƒAƒbƒv‚µ‚Ä‚à‚炦‚È‚¢‚Å‚µ‚傤‚©HÚׂª‚í‚©‚莟‘æAC³‚µ‚Ü‚·B
-
---------------
-//0543 by Ž€_
-
-EƒuƒŠƒbƒc‚̃_ƒ[ƒW‚𕪎U‚³‚ê‚é‚悤‚É•ÏXB
-E•’ʂ̃AƒJƒEƒ“ƒgì‚è‚Å‚ÍGMƒAƒJƒEƒ“ƒg‚ðì‚ê‚È‚¢‚悤‚É•ÏXB
-(‘O‚ÉŽ©•ª‚ª“ü‚ꂽ•¨‚ª‚È‚­‚È‚Á‚½‚Ì‚Å–ß‚µ‚½‚¾‚¯‚Å‚·‚ª...)
-EŽæ‚芪‚«‚ªŽå‚ƈê‚ÉŽ€‚ʂ悤‚É•ÏXB(‚½‚¾‚¿‚å‚Á‚Æd‚­‚È‚é
-‰Â”\«‚ª‚ ‚è‚Ü‚·B) –¢ƒeƒXƒgB
-EMVPŒoŒ±’l‚ª•\Ž¦‚¾‚¯‚³‚ê‚ÄŽÀÛ‚É‚Í“ü‚Á‚Ä‚È‚¢–â‘èC³B
- (/login)
- login.c
- mmo_auth_new() C³B
- (/map)
- skill.c
- skill_castend_damage_id() C³B
- battle.c
- battle_calc_misc_attack() C³B
- mob.c
- mob_damage() C³B
- mob_deleteslave()Amob_deleteslave_sub() ’ljÁB
-
---------------
-//0542 by Ž€_
-
-EƒI[ƒgƒuƒŠƒbƒcƒoƒOC³B(¡“x‚±‚»‘åä•v‚Ì‚Í‚¸...)
-EŽ©•ª‚ÉŽg‚Á‚½ƒq[ƒ‹‚Å‚ÍŒoŒ±‚ª“ü‚ç‚È‚¢‚悤‚É•ÏXB
-E“XNPC‚ð—˜—p‚É‚æ‚éƒWƒ‡ƒuŒoŒ±’lŠl“¾ŒvŽZŽ®•ÏXB
- Šl“¾ƒWƒ‡ƒuŒoŒ±’l = ln(‹à) * shop_exp / 100
-‚É‚È‚è‚Ü‚·B
-log‚ðŽg‚¤‚±‚Æ‚Å‹à‚ª‘½‚­‚Ä‚à“ü‚éŒoŒ±’l‚ª‘½‚­“ü‚ç‚È‚¢‚悤‚É•ÏX‚µ‚Ü‚µ‚½B
- (/map)
- battle.c
- battle_damage() C³B
- skill.c
- skill_attack()Askill_castend_damage_id() C³B
- skill_castend_nodamage_id C³B
- npc.c
- npc_buylist()Anpc_selllist() C³B
- map.c
- map_foreachinarea()Amap_foreachinmovearea()Amap_foreachobject()
- C³B(‘債‚½C³‚Å‚Í‚È‚¢‚Å‚·B)
- (/conf)
- battle_athena.conf C³B
- (/doc)
- conf_ref.txt C³B
-
---------------
-//0541 by huge
-
-E–î‚ð‚Ü‚Æ‚ß‚ÄŽ‚Ä‚é‚悤‚ÉC³B
-E‹|‚ÅUŒ‚‚µ‚½‚Æ‚«‚ÉA‘•”õ‚µ‚Ä‚¢‚é–î‚ðÁ”ï‚·‚é‚悤‚ÉC³B
-
- itemdb.c
- itemdb_search() C³
- itemdb_isequip() C³
-
- battle.c
- battle_weapon_attack() C³
- battle_calc_weapon_attack() C³
-
- clif.c
- clif.h
- clif_arrow_fail() ’ljÁ
- clif_parse_EquipItem() C³
-
---------------
-//0540 by Ž€_
-
-EƒoƒOC³‚Æ–â‘è‚ ‚è‚»‚¤‚ÈŠC³B(‚±‚ê‚ÅWZ_FIREPILLAR‚ƃuƒŠƒbƒc‚É
-‚æ‚éŽIƒ_ƒEƒ“‚Í‚È‚­‚È‚é‚Í‚¸...)
- map.c
- map_foreachinarea()Amap_foreachinmovearea() C³B
- skill.c
- skill_unitsetting()Askill_delunitgroup() C³B
- pc.c
- pc_damage() C³B
- battle.c
- battle_damage() C³B
- npc.c
- npc_parse_mob() C³B
- mob.c
- mob_spawn_dataset() C³B
-
---------------
-//0539 by Ž€_
-
-Eclif_pvpset()‚ðƒ}ƒbƒv‚©‚çAREA‚©ƒ}ƒbƒv‚©‚ðÝ’è‚Å‚«‚é‚悤‚É•ÏXB(pvp‚ÌŽž‚̈—‚Í0535ˆÈ‘O‚Ì•¨‚É–ß‚»‚Ü‚µ‚½BŽ©•ª‚¾‚¯‚É“]‘—‚µ‚Ä‚à‚¢‚¢‚悤‚È‹C‚à‚µ‚Ü‚·‚ª...)
- clif.hAclif.c
- clif_pvpset() C³B
- clif_parse_LoadEndAck() C³B
- script.c
- buildin_pvpoff() C³B
- buildin_pvpon() C³B
- atcommand.c C³B
-EUŒ‚“r’†‚ŃAƒCƒeƒ€‚ðE‚¤‚ÆUŒ‚‚ªŽ~‚Ü‚é‚悤‚ÉC³B
- pc.c
- pc_takeitem() C³B
-E0535à–¾‚ª”š—ô”g“®‚É‚È‚Á‚Ä‚¢‚邪‚»‚ê‚Í‹à„‚ÉŠÔˆá‚¢‚Å‚·B
-E0537‚Åà–¾‚ð–Y‚ê‚Ü‚µ‚½‚ªƒ‚ƒ“ƒXƒ^[‚Ìdef‚Æmdef‚ð10000ˆÈã‚ÉÝ’è‚·‚ê‚ΑS‚Ä‚ÌUŒ‚‚É1ƒ_ƒ[ƒW‚ɂȂ郂ƒ“ƒXƒ^[‚É‚È‚è‚Ü‚·B‚»‚µ‚ă‚ƒ“ƒXƒ^[î•ñ‚Ådef‚Æ
-mdef‚ª10000ˆÈã‚Ìê‡def 100Amdef 99‚É•\Ž¦‚·‚é‚悤‚É•ÏXB–{ŽIŽd—l‚É
-‚·‚é‚É‚Ímob_db.txt‚ðC³‚µ‚Ä‚­‚¾‚³‚¢B
-
---------------
-//0538 by huge
-
-EƒOƒŠƒ€ƒgƒD[ƒX‚ð”͈ÍUŒ‚‚ÉC³
-EƒTƒvƒ‰ƒCƒYƒAƒ^ƒbƒNŽÀ‘• (—LŒø”͈͂Á‚ÄA‚±‚ê‚Å‚ ‚Á‚Ä‚é‚Ì‚©‚ÈH)
-EƒoƒbƒNƒXƒ^ƒu‚̉¼ŽÀ‘•
- –{ŽI‚Å‚â‚Á‚Ä‚él‚©‚ç˜b‚ð•·‚¢‚ÄAꊎw’肶‚á‚È‚­‚Ä
- ƒ^ƒQŽæ‚Á‚Ä‚à—Ç‚³‚»‚¤‚¾‚Á‚½‚Ì‚Å•ÏX‚µ‚Ü‚µ‚½Bi‚â‚è‚â‚·‚©‚Á‚½‚Ì‚Å (^^;
- ‚Ü‚¾Amob‚ÌŒã‚ë‚É‹‚é‚©‚Ç‚¤‚©‚Ì”»’è‚Í“ü‚Á‚Ä‚Ü‚¹‚ñB
-
-Ebattle.c
- battle_calc_weapon_attack() C³
-
-Eskill.c
- skill_additional_effect() C³
- skill_castend_damage_id() C³
- skill_check_condition() C³
- skill_use_id() C³
- skill_castend_nodamage_id() C³
-
-Eskilldb.txt
- ƒoƒbƒNƒXƒ^ƒu‚ÌŽí—Þ‚ð[êŠ]‚©‚ç[“G]‚Ö•ÏX
-
---------------
-//0537 by Ž€_
-
-EƒXƒeƒB[ƒ‹ƒoƒOC³‚Æbattle_athena.conf‚Ì€–ڒljÁAŽd—l•ÏX‚Æׂ©‚¢C³‚Å‚·B
-(ƒXƒeƒB[ƒ‹‚ÍŒvŽZŽ®‚É–â‘肪‚ ‚Á‚½‚Ì‚ÅC³‚µ‚ÄŠm—¦‚ðX‚É—Ž‚Æ‚µ‚Ü‚µ‚½B)
- battle.h
- finger_offencive_type‚ðfinger_offensive_type‚ÉC³B(‰pŒêƒXƒyƒ‹ŠÔˆá‚¢‚ÅC³‚µ‚Ü‚µ‚½B)
- struct battle_config‚Érestart_hp_rateArestart_sp_rate ’ljÁB
- battle.c
- battle_calc_weapon_attack()Abattle_calc_magic_attack() C³B
- skill.c
- skill_attack() C³B
- clif_skill_nodamage()‚ɃXƒLƒ‹ƒŒƒxƒ‹‚ð‘—‚é‚悤‚É•ÏXB(M‚³‚ñ‚ÌŽw“E‚É‚æ‚èC³B)
- clif.c
- clif_skill_estimation() C³B
- conf_ref.txt
- finger_offencive_type‚ðfinger_offensive_type‚ÉC³‚Æ­‚µ’ljÁB
- mob.c
- mob_ai_sub_hard()Amob_target()Amob_damage() C³B
- pc.c
- pc_steal_item() C³B
- atcommnad.cAatcommnd.h
- @ƒRƒ}ƒ“ƒh@gvgon , @gvgoff ’ljÁB
- battle_athena.conf
- finger_offencive_type‚ðfinger_offensive_type‚ÉC³‚Æ­‚µ’ljÁB
-
---------------
-//0536 by hogefuga3 (Athena staff)
-
-EVGRFƒtƒ@ƒCƒ‹ƒtƒH[ƒ}ƒbƒg‘Ήž
-@- Athena staff —l‚Ì쬂³‚ꂽƒpƒbƒ`‚ð“K—p‚µ‚Ü‚µ‚½B
- XV—š—ð‚Ì•”•ª‚̓pƒbƒ`ƒ~ƒX‚É‚È‚Á‚½‚Ì‚ÅŽè“®‚Å‘g‚Ýž‚ÝB
-
-i•ÏXj
- common/
- grfio.c
-
---------------
-//0535 by Ž€_
-
-E0533‚Ì–â‘肪‚ ‚è‚»‚¤‚È•”•ª‘S‚ÄC³BC³‚µ‚½Š‚ð‘S•”ƒ`ƒFƒbƒN‚µ‚Ä‚È‚©‚Á‚½‚Ì‚ÅC³‚µ‚½ƒtƒ@ƒCƒ‹‚¾‚¯...
-EƒXƒNƒŠƒvƒgsetmapflagnosave ’ljÁB
- setmapflagnosave ƒ}ƒbƒv–¼AƒZ[ƒu‚·‚éƒ}ƒbƒv–¼AÀ•W(XAY)
- nosaveƒtƒ‰ƒO‚ðon‚É‚µ‚Ü‚·B
-Ebattle_athena.conf‚ɒljÁ‚ƈꕔŽd—l•ÏXB(Ú‚µ‚­‚Íconf_ref.txt‚ðŽQl‚µ‚Ä‚­‚¾‚³‚¢B)
-Eƒ‚ƒ“ƒXƒ^[‚Ìdef‚Æmdef‚ª10000ˆÈã‚ÌꇑS‚Ä‚ÌUŒ‚(ƒNƒŠƒeƒBƒJƒ‹ŠÜ‚ß‚Ä)‚ª1ƒ_ƒ[ƒW‚É‚È‚é‚悤‚É•ÏXB(ƒgƒ‰ƒbƒv‚âƒuƒŠƒbƒc‚Ìꇗ¼•û‚ª10000ˆÈã‚Ìꇂ̂Ý1‚É‚È‚è‚Ü‚·B) ‘‚ƃLƒmƒR‚É‚Pƒ_ƒ[ƒWŒÅ’è‚Í휂µ‚Ü‚µ‚½B(Œ³X–{ŽI‚Å‚à1ŒÅ’è‚Å‚Í‚È‚¢‚Å‚·B¸—û“™‚É‚æ‚éˆø‚«ã‚°ƒ_ƒ[ƒW‚Í‚»‚Ì‚Ü‚Üo‚Ü‚·‚Ì‚Å... ŒÅ’肵‚½‚¢‚Ì‚È‚çdef‚Æmdef‚ð10000‚É‚µ‚Ä‚­‚¾‚³‚¢BŽÀ‚Í‚±‚ê‚̓NƒŠƒXƒ^ƒ‹‚ɈׂÉì‚낤‚Æ‚µ‚½•¨‚Å‚·‚ª...)
-E”š—ô”g“®‚ÌŽžƒAƒCƒeƒ€‚É‚æ‚éƒXƒLƒ‹‚ÍŽg—p‚Å‚«‚é‚悤‚ÉC³B
-E‚»‚Ì‘¼­‚µC³B(C³‚Ì•¨‚Ì’†‚ɃeƒXƒg‚µ‚Ä‚È‚¢•¨‚à‚ ‚è‚Ü‚·B)
- (/doc)
- conf_ref.txt C³B
- (/conf)
- battle_athena.conf C³B
- (/map)
- battle.h C³B
- battle.c C³B
- mob.h C³B
- mob.c C³B
- skill.c C³B
- npc.c C³B
- pc.c C³B
- script.c C³B
- clif.c C³B
- chrif.c C³B
-
---------------
-//0534 by Diex
-
-EƒRƒ“ƒ{ƒVƒXƒeƒ€‰¼ŽÀ‘•
- map/
- battle.c
- battle_weapon_attack() C³B
- clif.c
- clif.h
- clif_combo_delay()@ŠÖ”’ljÁB
- map.h
- map_session_data@•Ï”’ljÁB
- pc.c
- pc_authok()@•Ï”’ljÁB
- pc_attack_timer()@C³B
- skill.c
- skill_castend_damage_id()@C³B
- skill_check_condition@C³B
- skill_use_id@C³B
- db/
- skill_db.txt@C³B
-
-’j–Ò—´Œ‚©‚爢C—…”e–PŒ‚É‚Í‚Ü‚¾‚‚Ȃ°‚Ü‚¹‚ñB
- ˆ¢C—…”e–PŒ‚ð•ú‚Á‚½ŒãAPC‚ÍMOB‚Ì”wŒã(?)‚Ɉړ®‚µ‚Ä‚é‚Á‚Û‚¢‚Ì‚Å‚·‚ªA
-@@‚»‚±‚ç‚Ö‚ñ‚Ìî•ñ‚ª‘«‚è‚Ü‚¹‚ñBî•ñ’ñ‹Ÿ‚¨Šè‚¢‚µ‚Ü‚·B
-
---------------
-//0533 by ‚é‚é‚é
-
-E‘‚ƃLƒmƒR‚É‚Pƒ_ƒ[ƒWŒÅ’è
-battle.c ‚Ì battle_weapon_attack() ‚Æ battle_calc_attack() ‚ðC³
-battle.c ‚Ì battle_get_mobid() ‚ð’ljÁ
-mob.c ‚Ì mob_makedummymobdb() ‚Æ mob_readdb() ‚ðC³
-
-EƒXƒLƒ‹ƒƒO‚Ƀ‚ƒu‚̌ŗL”Ô†•‚o‚b‚Ì‚h‚c”Ô†‚ð•\Ž¦
-ibattle.c ‚Ì battle_get_mobid() ‚ð’ljÁ‚µ‚½‚Ì‚Å‚»‚̂‚¢‚Å‚Éj
-mob.c skill.c ‚Ì•ÏX‰ÓŠ‘½”iŠ¾
-i"MOB %d" ‚à‚µ‚­‚Í "PC %d" ‚ÅŒŸõ‚·‚ê‚ΕÏX‰ÓŠ‚ª‚í‚©‚é‚©‚Æj
-
-Eƒnƒ“ƒ^[‚Ìã©‚ðŽg‚Á‚½ƒXƒLƒ‹‚Åã©‚ðÁ”ï‚·‚é‚悤‚É‚µ‚½
-batttle.c ‚Ì skill_check_condition() ‚ðC³
-iƒWƒFƒ€Á”‚Ì—¬—p‚Á‚Û‚¢‚±‚Æ‚ð‚â‚Á‚Ä‚é‚ñ‚¾‚¯‚Lj—’†g‚Í—‰ð‚µ‚Ä‚È‚¢‚—j
-
-EƒTƒ“ƒNƒ`ƒ…ƒAƒŠ•ƒ}ƒOƒkƒX‚̃_ƒ[ƒW”»’è‚ð•sŽ€‘®«•ˆ«–‚Ží‘°‚ÉÄ“xC³
-0532‚ÅÄ‚ÑŒ³‚É–ß‚Á‚Ä‚µ‚Ü‚Á‚½‚Ì‚ð‚È‚¨‚µ‚Ü‚µ‚½B
-‚½‚¾‚µA‰ñ”•l””»’è‚É‚ÍŽè‚ð‰Á‚¦‚Ä‚¢‚Ü‚¹‚ñi‚Á‚Ä‚©Ž©•ª‚É‚Í‚Ü‚¾ƒ€ƒŠj
-
-ˆÈãB
-Ø‚Á‚½“\‚Á‚½‚ÌŒ©—lŒ©^Ž—‚Å‚â‚Á‚½‚Ì‚ÅŒ¾Œê“I‚ɉʂ½‚µ‚Ä‚±‚ê‚Å‚æ‚¢‚Ì‚©BBB
-‚à‚µˆ—•û–@‚É–â‘è—L‚肾‚Á‚½‚çC³‚È‚è‚ð‚µ‚Ä‚¢‚½‚¾‚¯‚é‚ÆŠð‚µ‚¢‚Å‚·B
-
---------------
-//0532 by Ž€_
-
-EC³‚µ‚½Š‚ð‘S‘Rƒ`ƒFƒbƒN‚µ‚Ä‚È‚©‚Á‚½‚Ì‚ÅC³‚µ‚½ƒtƒ@ƒCƒ‹‚¾‚¯...Š¾
-Emapflag‚Énopenalty’ljÁBŽg—p•û–@‚Í
- mapflag nopenalty dummy
-‚Å‚·B‹@”\‚Í‚»‚̃}ƒbƒv‚ÅŽ€‚ñ‚¾ŽžŒoŒ±‚ªŒ¸‚ç‚È‚¢‚悤‚É‚µ‚Ü‚·B
-Emapflag‚Épvp_nopartyApvp_noguildAgvgAgvg_noparty’ljÁB
-pvp_noparty‚ÍPVPƒ‚[ƒh‚Å“¯‚¶ƒp[ƒeƒB‚ÉUŒ‚‚ª“–‚½‚ç‚È‚¢Apvp_noguild‚ÍPVPƒ‚[ƒh‚Å“¯‚¶ƒMƒ‹ƒh‚ÉUŒ‚‚ª“–‚½‚ç‚È‚¢Agvg‚̓V[ƒYƒ‚[ƒh‚ÉAgvg_noparty‚̓V[ƒYƒ‚[ƒh‚Å“¯‚¶ƒp[ƒeƒB‚ÉUŒ‚‚ª“–‚½‚ç‚È‚¢•¨‚Å‚·B
-E‰Â“®‚µ‚Ä‚È‚¢ƒ^ƒCƒ}[‚Í‘S‚Ä-1‚É‚È‚é‚悤‚É•ÏXB
-E‚«”ò‚΂µˆ—C³B
-Eƒ}ƒbƒvƒ[ƒh’¼Œã‹CŒ÷‚ªŒ©‚¦‚È‚¢–â‘èC³B
-EŽc‰e‚̈—C³B
-Eƒ}ƒbƒv‚ðƒ[ƒh‚·‚é‚ÆŽ€‚ñ‚¾‚ӂ肪‰ðœ‚³‚ê‚é‚悤‚É•ÏXB
-EPVP‚ð­‚µ•ÏXB
-EŒÃ–Ø‚ÌŽ}‚Åo‚郂ƒ“ƒXƒ^[‚ðŽ©•ª‚̃Œƒxƒ‹‚æ‚è‚‚¢•¨‚Ío‚È‚¢‚悤‚É•ÏXB
-E‰Á‘¬ƒ|[ƒVƒ‡ƒ“‚Ìsc_start SC_SpeedPot0,1,0;‚ðsc_start SC_SpeedPot0,1800,0;‚̂悤‚É•ÏXBSC_SpeedPotH‚ÌŒã‚Ì”’l‚ÍŽ‘±ŽžŠÔ‚Å‚·B(’PˆÊ‚Í•b)
-E@ƒRƒ}ƒ“ƒh@pvp‚ð@pvpon‚É•ÏX‚Æ@pvpon‚Æ@pvpoffA@gat‚Ì‹@”\•ÏXB
-Ebattle_athena.conf‚ÌpvpíœB
-Ebattle_athena.conf‚Édeath_penalty_type’ljÁB
-Eƒyƒiƒ‹ƒeƒB‚Ì“K—p‚ðŽ€‚ñ‚¾Žž‚©‚玀‚ñ‚¾ŒãƒŠƒXƒ^[ƒg‚µ‚½Žž‚É•ÏXB(ƒŠƒU‚Å•œŠˆ‚·‚é‚ÆŒoŒ±‚ªŒ¸‚è‚Ü‚¹‚ñB–{ŽI‚ÌŽd—l‚ª‚©‚È‚è‹C‚É‚¢‚ç‚È‚©‚Á‚½‚Ì‚Å•ÏX‚µ‚Ü‚µ‚½B)
-EƒXƒNƒŠƒvƒgsetmapflagAremovemapflagApvponApvpoffAgvgonAgvgoff’ljÁB
- setmapflag ƒ}ƒbƒv–¼Aƒ}ƒbƒvƒtƒ‰ƒOƒ^ƒCƒv
- Žw’肵‚½ƒ}ƒbƒvƒtƒ‰ƒO‚ðon‚µ‚Ü‚·B(‚½‚¾pvpAgvg‚ÍpvponAgvgon‚Å‚Å‚«‚é‚Ì‚ÅŽw’肵‚Ä‚à“®ì‚µ‚Ü‚¹‚ñB‚ ‚Ænosave‚Ìꇈ—‚ª‚¿‚å‚Á‚Æ•¡ŽG‚É‚È‚é‚̂őΉž‚µ‚Ä‚Ü‚¹‚ñB)
- removemapflag ƒ}ƒbƒv–¼Aƒ}ƒbƒvƒtƒ‰ƒOƒ^ƒCƒv
- Žw’肵‚½ƒ}ƒbƒvƒtƒ‰ƒO‚ðoff‚µ‚Ü‚·B(‚½‚¾pvpAgvg‚ÍpvpoffAgvgoff‚Å‚Å‚«‚é‚Ì‚ÅŽw’肵‚Ä‚à“®ì‚µ‚Ü‚¹‚ñB‚±‚¿‚ç‚Ínosave‚à‰Â”\‚Å‚·B)
- pvpon ƒ}ƒbƒv–¼
- Žw’肵‚½ƒ}ƒbƒv‚ðPVPƒ‚[ƒh‚É‚µ‚Ü‚·B
- pvpoff ƒ}ƒbƒv–¼
- Žw’肵‚½ƒ}ƒbƒv‚ÌPVPƒ‚[ƒh‚ð‰ðœ‚µ‚Ü‚·B
- gvgon ƒ}ƒbƒv–¼
- Žw’肵‚½ƒ}ƒbƒv‚ðƒV[ƒYƒ‚[ƒh‚É‚µ‚Ü‚·B
- gvgoff ƒ}ƒbƒv–¼
- Žw’肵‚½ƒ}ƒbƒv‚̃V[ƒYƒ‚[ƒh‚ð‰ðœ‚µ‚Ü‚·B
-‚½‚¾‘S‚ẴXƒNƒŠƒvƒg‚Ì“®ì‚ÍŠm”F‚µ‚Ä‚Ü‚¹‚ñ‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
-EƒTƒ“ƒNƒ`ƒ…ƒAƒŠAƒ}ƒOƒkƒXƒGƒNƒ\ƒVƒYƒ€‚̈—‚ð0529‚É–ß‚µ‚Ü‚µ‚½B
-Ž©•ª‚Ì’²¸‚ł̓Tƒ“ƒNƒ`ƒ…ƒAƒŠ‚Íl”‚̧ŒÀ‚ª‚ ‚è‚Ü‚·B(ƒŒƒxƒ‹1‚Å4–¼‚Å
-1ƒŒƒxƒ‹‚Ɉêl‚¸‚‘‚¦‚Ü‚·B)
-E‚»‚̌㭂µC³B(‚µ‚½‚Í‚¸...)
- (db/)
- const.txt C³B
- item_db.txt C³B
- (conf/)
- battle_athena.conf C³B
- (doc/)
- conf_ref.txt C³B
- (map/)
- clif.hAclif.c C³B
- mob.c C³B
- pc.hApc.c C³B
- skill.c C³B
- pet.c C³B
- npc.c C³B
- map.hAmap.c C³B
- battle.hAbattle.c C³B
- atcommand.hAatcommand.c C³B
- script.c C³B
- makefile C³B
-
---------------
-//0531 by Ž‚Žqo^.^o
-
-conf/npc_turtle.txt
-Dƒ^[ƒgƒ‹ƒAƒCƒ‰ƒ“ƒh‚És‚­ŽžAƒTˆêƒoˆê‚ð—Ž‚Á‚Ä–â‘èC³
-Dnpc_turtle.txt‚Ì508s–Ú
-set Zeny - 10000,0; --> set Zeny,Zeny-10000; C³
-
---------------
-//0530 by RR
-EƒXƒLƒ‹uƒTƒ“ƒNƒ`ƒ…ƒAƒŠv‚ÅUŒ‚‘ÎÛ‚ðƒAƒ“ƒfƒbƒg/ˆ«–‚Ží‘°‚©‚ç•sŽ€‘®«/ˆ«–‚Ží‘°‚É•ÏX
-EƒXƒLƒ‹uƒ}ƒOƒkƒXƒGƒNƒ\ƒVƒYƒ€v‚ÅUŒ‚‘ÎÛ‚ðƒAƒ“ƒfƒbƒg/ˆ«–‚Ží‘°‚©‚ç•sŽ€‘®«/ˆ«–‚Ží‘°‚É•ÏX
-EƒXƒLƒ‹uƒTƒ“ƒNƒ`ƒ…ƒAƒŠv‚̉ñ•œ‰ñ”‚ðl”‚©‚çƒJƒEƒ“ƒg‚É•ÏX
- skill.c
- skill_unit_onplace()C³
- skill_unit_onout()C³
-
-‘½•ª‚±‚ÌŽd—l‚Ň‚Á‚Ä‚é‚Í‚¸‚Å‚·cB
-
---------------
-//0529 by ŒÓ’±—–
-
-EMOB‚ªƒXƒLƒ‹uƒq[ƒ‹v‚ðŽg—p‚·‚é‚ƃT[ƒo[‚ª—Ž‚¿‚éꇂª‚ ‚Á‚½–â‘è‚ðC³
-EƒXƒLƒ‹uƒTƒ“ƒNƒ`ƒ…ƒAƒŠv‚ÅUŒ‚‘ÎÛ‚ð•sŽ€‘®«‚©‚çƒAƒ“ƒfƒbƒg/ˆ«–‚Ží‘°‚É•ÏX
-
- skill.c
- skill_unit_onplace()C³
- skill_castend_nodamage_id()C³
-
-EƒƒOƒCƒ“ƒT[ƒo[‚̃AƒJƒEƒ“ƒgƒf[ƒ^ƒx[ƒX•ÛŽçƒc[ƒ‹‚ð“Y•t
- Perl»‚È‚Ì‚ÅŽÀs‚É‚ÍPerl‚ª•K—v‚Å‚·B
- Žg—p•û–@‚Ȃǂ̓GƒfƒBƒ^‚ÅŠJ‚¢‚ÄŒ©‚Ä‚­‚¾‚³‚¢B
- Žg‚¢•û‚ª—Ç‚­‚í‚©‚ç‚È‚¢l‚ÍŽè‚ðo‚³‚È‚¢‚Ù‚¤‚ª‚¢‚¢‚Å‚·B
-
- “Á‚É——R‚ª–³‚¢ŒÀ‚èƒAƒJƒEƒ“ƒgì¬‚à‚±‚¿‚ç‚̃c[ƒ‹‚ðŽg‚Á‚Ä‚­‚¾‚³‚¢B
- addaccount‚̓pƒPƒbƒg‚Ì“s‡ãƒpƒXƒ[ƒh•¶Žš”‚̧ŒÀ‚ª‚«‚‚¢‚Ì‚ÅB
-
- ƒAƒJƒEƒ“ƒg‚ð휂µ‚Ä‚àƒLƒƒƒ‰ƒNƒ^[ƒf[ƒ^A‘qŒÉƒf[ƒ^A
- ‚»‚Ì‘¼‚̃AƒJƒEƒ“ƒgˆÈŠO‚̃f[ƒ^‚ÍÁ‚¦‚Ü‚¹‚ñB‘ŠŽè‚ªƒƒOƒCƒ“’†‚¾‚Á‚½ê‡
- ‹­§Ø’f‚Í‚³‚ê‚Ü‚¹‚ñ‚ªAŽŸ‰ñ‚©‚ç‚̓ƒOƒCƒ“‚Å‚«‚È‚¢‚Í‚¸‚Å‚·B
- i‚‚܂è‚ÍA’P‚Élogin-serverã‚̃AƒJƒEƒ“ƒg‚ðÁ‚µ‚Ä‚¢‚邾‚¯‚Å‚·j
-
- (login/)
- login.c
- parse_admin()’ljÁAparse_login()C³
- (doc/)
- admin_packet.txt
- V‹K’ljÁBŠÇ—ƒpƒPƒbƒgî•ñ
- (tool/)
- ladmin
- login-server administration tool‚ÌPerlƒXƒNƒŠƒvƒg
-
-
---------------
-//0528 by RR
-EƒXƒLƒ‹uƒq[ƒ‹v‚ðŽg—p‚µ‚½Û‚ɉñ•œ—Ê‚É”ä—Ⴕ‚½•ª‚¾‚¯ƒWƒ‡ƒuŒoŒ±’l‚ªŠl“¾‚Å‚«‚é‚悤‚É•ÏX
-E¤lŒnE‹Æ‚ª“XNPC‚ð—˜—p‚µ‚½Û‚ɃWƒ‡ƒuŒoŒ±’l‚ªŠl“¾‚Å‚«‚é‚悤‚É•ÏX
-E—¼•û‚Æ‚àbattle_athena.conf‚Å’²®‰Â”\‚É‚µ‚Ü‚µ‚½B‰ŠúÝ’è‚Í0”{i”ñ“K—pj
-Emap_athena.conf‚É‚Ä‚©‚Ú‚¿‚áƒNƒGƒXƒg‚Ì‚à‚Ì‚ª“ü‚Á‚Ä‚È‚©‚Á‚½‚̂ŃRƒƒ“ƒgƒAƒEƒg‚µ‚È‚ª‚ç’ljÁB
-
- map_athena.conf
-
- battle.c battle_config_read()
- battle.h Battle_Config
- battle_athena.conf
- ˆÈãAbattle_athena.conf—˜—p‚½‚ß‚É•ÏX
-
- pc.c pc_heal()
- –ß‚è’l‚ðhp+sp‚ÉB–ß‚è’l‚ð—˜—p‚µ‚Ä‚é•”•ª‚ª‚È‚³‚»‚¤‚¾‚Á‚½‚Ì‚ÅŽg‚킹‚Ä–á‚¢‚Ü‚µ‚½BƒoƒO‚ª‹N‚«‚½‚ç‚·‚Ý‚Ü‚¹‚ñB
-
- skill.c skill_casted_nodamage_id()‚̃q[ƒ‹•”‚ɂăWƒ‡ƒuŒoŒ±’lŠl“¾‚·‚é‚悤•ÏX
-
- npc.c npc_buylist()
- npc_selllist() •ÏX
- ‚±‚ê‚ç‚Æ‚ÌŒ“‚ˇ‚¢‚Åskill.h‚ðincludeB
-
-
-¤l‚Ì“X—˜—pƒWƒ‡ƒuŒoŒ±’lŠl“¾‚Å‚·‚ªAŒvŽZŽ®‚Í‚Ü‚¾l‚¦’†‚Ȃ̂ʼn¼‚ÅB
-ŒvŽZŽ®‚̓AƒCƒeƒ€w“ü‚ª@‘ã‹à * ƒXƒLƒ‹ƒŒƒxƒ‹iƒfƒBƒXƒJƒEƒ“ƒgj/ ((1{300/ƒAƒCƒeƒ€ŒÂ”) * 4000)
-ƒAƒCƒeƒ€”„‹p‚ª@‘ã‹à * ƒXƒLƒ‹ƒŒƒxƒ‹iƒI[ƒo[ƒ`ƒƒ[ƒWj / ((1{500/ƒAƒCƒeƒ€ŒÂ”) * 4000)‚Å‚·B
-í‚É–î‚ð‚½‚­‚³‚ñˆê‚Éw“ü‚·‚邱‚Æ‚ÅŒoŒ±’l‚𑽗ʂɉ҂®‚±‚Æ‚ª‰Â”\‚Å‚·‚ËcB
-‚Ç‚È‚½‚©‚¢‚¢Ž®‚ðŽv‚¢‚‚¢‚½‚ç•ÏX‚¨Šè‚¢‚µ‚Ü‚·B
-
-‚Æ‚±‚ë‚Å“]ENPC‚ªˆê•”‚©‚Ô‚Á‚Ä‚é‚ñ‚Å‚·‚ªC³‚µ‚È‚¢‚Å‚¢‚¢‚ñ‚Å‚µ‚傤‚©H
-
---------------
-//0527 by Ž€_
-
-E0526‚̃oƒOC³B(ƒeƒXƒg‚ׂ̈ɕς¦‚Ä‚¢‚½•¨‚ð“ü‚ꂽ‚܂܃Aƒbƒv‚µ‚Ä‚µ‚Ü‚Á‚½‚Ì‚ªŒ´ˆö‚Å‚µ‚½B)
- skill.c C³B
- pc.c C³B
- mob.c C³B
- clif.c C³B
-
---------------
-//0526 by Ž€_
-
-E0525‚̃ŠƒUƒŒƒNƒVƒ‡ƒ“‚ðŽ€‚ñ‚¾ƒLƒƒƒ‰‚ÉŽg‚¦‚È‚¢ƒoƒOC³B(ƒeƒXƒg‚Í‚µ‚Ä‚Ü‚¹‚ñ‚ªŽ¡‚Á‚½‚Í‚¸‚Å‚·B‘½•ª...)
- skill.c C³B
- clif.c C³B
-
---------------
-//0525 by Ž€_
-
-Edmotion‚̊Ԃ̓Lƒƒƒ‰‚ª“®‚©‚È‚¢‚悤‚É•ÏXB(ƒeƒXƒg‚µ‚Ä‚Ü‚¹‚ñB)
-EƒƒeƒI‚̃_ƒ[ƒW•\Ž¦ƒ^ƒCƒ~ƒ“ƒOC³B(­‚µ’x‚¢‹C‚à‚µ‚Ü‚·‚ª...)
-EƒoƒbƒNƒXƒ‰ƒCƒfƒBƒ“ƒO‚ÌŽž‚Ƀ‚[ƒVƒ‡ƒ“‚ªo‚é‚悤‚É•ÏXB(ƒXƒLƒ‹Žg—pŒã
-0.2•bŒã‚ɃXƒLƒ‹Žg—pƒpƒPƒbƒg‚ð‘—‚é‚悤‚É•ÏX‚µ‚Ü‚µ‚½Bƒ‰ƒO“™‚É‚æ‚Á‚Ä•Ï‚È“®ì‚ð‚·‚é‰Â”\«‚à‚ ‚è‚Ü‚·B)
-E0524‚ÌC³B
-EƒnƒCƒfƒBƒ“ƒO‚µ‚Ä‚¢‚鎞Ž©‘R‰ñ•œ‚µ‚È‚¢‚悤‚É•ÏXB
-E0519‚ÅŠÔˆá‚Á‚½conf‚ÌC³‚Æׂ©‚¢ŠC³B
- map.h
- struct map_session_data‚Ìcanmove_tick‚ðcanact_tick‚É•ÏXB
- skillcanmove_tick‚ðcanmove_tick‚É•ÏXB
- skill.c C³B
- pc.c C³B
- pc.h C³B
- clif.c C³B
- battle.c C³B
- battle.h C³B
- mob.c C³B
- mob.h C³B
- char_athena.conf C³B
- map_athena.conf C³B
-
---------------
-//0524 by huge
-
-Eƒ[ƒO ƒgƒ“ƒlƒ‹ƒhƒ‰ƒCƒuŽÀ‘•
- clif.c
- clif_parse_WalkToXY()
- pc.c
- pc_calcstatus()
-
- ‚Ç‚Ì‚­‚ç‚¢‘¬“xŒ¸­‚·‚é‚Ì‚©•ª‚©‚ç‚È‚©‚Á‚½‚Ì‚ÅAŽb’è“I‚É
- speed += speed * (20-ƒXƒLƒ‹ƒŒƒxƒ‹)/40
- ‚ÆA‚µ‚Ü‚µ‚½B–{ŽIŽd—l‚ª•ª‚©‚é•û‹‚Ü‚µ‚½‚çC³‚¨Šè‚¢‚µ‚Ü‚·B
-
---------------
-//0523 by NOCTURNE
-
-Enpc_event_rental.txt‚ɃNƒ‹ƒZƒCƒ_[—p‚̃yƒRƒyƒRŠÇ—•º‚ð’ljÁ
---------------
-//0522 by ”g˜Q
-
-Emob_db.txt‚ðƒWƒ…ƒm[Œã‚̃f[ƒ^‚ÉC³
-
---------------
-//0521 by ŒÓ’±—–
-
-EmapƒT[ƒo[‚ÉŒq‚ª‚ç‚È‚¢–â‘è‚ðC³
- clif.c
- clif_parse()‚ÌC³
-
---------------
-//0520 by ŒÓ’±—–
-
-EcharƒT[ƒo[ƒƒO‚Ìuset map X.Y HOGE.gatv‚ª•\Ž¦‚³‚ê‚È‚­‚È‚è‚Ü‚µ‚½
- •Ï‚í‚è‚ÉAuset map M from XX.YY.ZZ.WW:PP (CC maps)v
- ‚Æ‚¢‚¤‚Ó‚¤‚ɉ½ŒÂ‚̃}ƒbƒv‚ðƒZƒbƒg‚µ‚½‚©‚¾‚¯‚ð•\Ž¦‚·‚é‚悤‚É‚È‚è‚Ü‚·B
-
- char/char.c
- parse_frommapC³
-
-E•¡”mapƒT[ƒo[‚ɉ¼‘Ήž
- ENPC‚̃}ƒbƒvƒT[ƒo[•Ï”‚ÍŽIŠÔ‚Å‚Í‹¤—L‚³‚ê‚Ü‚¹‚ñB‹¤—L‚·‚ׂ«•Ï”‚ð
- Ž‚ÂNPC‚ª‚¢‚éƒ}ƒbƒv“¯Žm‚Í“¯‚¶mapƒT[ƒo[‚Å“®‚©‚·‚ׂ«‚Å‚·B
- ‚¨‚»‚ç‚­PC‚̃Oƒ[ƒoƒ‹•Ï”‚Í‹¤—L‚Å‚«‚é‚ÆŽv‚¢‚Ü‚·(–¢ƒeƒXƒg)
- EŽb’è“I‚É“®‚­‚悤‚É‚µ‚½‚¾‚¯‚È‚Ì‚ÅA•s“s‡‚ª‚ ‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB
- “Á‚ÉAƒp[ƒeƒB/ƒMƒ‹ƒh/‘qŒÉ/ƒyƒbƒg/Wis‚È‚Ç‚ÌinterƒT[ƒo[‚ðŽg‚¤‹@”\‚ª
- ³‚µ‚­ì“®‚·‚é‚©‘S‚­ƒ`ƒFƒbƒN‚µ‚Ä‚¢‚Ü‚¹‚ñB
- Eurecv map on XX.YY.ZZ.WW:PP (CC maps)v‚Æ‚¢‚¤ƒƒO‚ª•\Ž¦‚³‚ê‚Ü‚·B
- ‚±‚ê‚Í‘¼‚ÌmapƒT[ƒo[‚ª’S“–‚·‚éƒ}ƒbƒv‚̃ŠƒXƒg‚ªA‚±‚ÌmapƒT[ƒo[‚É
- ³í‚ÉŽóM‚³‚ꂽ‚Æ‚¢‚¤ˆÓ–¡‚Å‚·B
-
- (char/)
- char.c/char.h
- parse_frommap()C³
- mapif_sendallwos()’ljÁ
- (map/)
- map.c/map.h
- map_setipport()‚ðC³
- struct map_session_data‚Ìstateƒƒ“ƒo‚Éwaitingdisconnect’ljÁ
- chrif.c/chrif.h
- FX’ljÁ
- clif.c
- waitingdisconnect‚ª‚P‚È‚çƒpƒPƒbƒg‚𖳎‹‚·‚é‚悤‚É‚µ‚½
- pc.c
- pc_setpos()C³iƒ}ƒbƒvƒT[ƒo[•ÏXˆ—‚È‚Çj
- pc_setnewpc()C³
-
---------------
-//0519 by Ž€_
-
-EƒT[ƒo[snapshot‚ÆFXC³B
-EŽ€‚ñ‚¾ƒLƒƒƒ‰‚ÉUŒ‚‚ª“–‚½‚éƒoƒOC³B(ƒeƒXƒg‚µ‚Ä‚Ü‚¹‚ñB–{“–‚ÉŽ¡‚Á‚½‚©‚Ç‚¤‚©•ñ‚¨Šè‚¢‚µ‚Ü‚·B)
-E0517‚̃AƒCƒXƒEƒH[ƒ‹‚̈—‚ð­‚µ•ÏXB
-EƒƒeƒI‚ðƒ‚ƒ“ƒXƒ^[‚àŽg‚¦‚é‚悤‚É•ÏXB(ƒeƒXƒg‚µ‚Ä‚Ü‚¹‚ñB•ñ‚¨Šè‚¢‚µ‚Ü‚·B) ‚Å‚à‚¿‚å‚Á‚ƃƒ‚ƒŠ[‚ÌŽg—p—Ê‚ª‘‚¦‚Ü‚µ‚½B(–ñ10M’öオ‚é‚悤‚Å‚·B)
-Eƒ{ƒX‚ÌŽæ‚芪‚«‚ªƒ{ƒX‚ƈê‚És“®‚·‚é‚悤‚É•ÏXB(ƒeƒXƒg‚µ‚Ä‚Ü‚¹‚ñ‚Ì‚Å‚Ç‚ñ‚È“®‚«‚ð‚·‚é‚©‚ÍŠm”F‚µ‚Ä‚Ü‚¹‚ñBUŒ‚‚àŽó‚¯‚Ä‚È‚¢‚̂Ƀ{ƒX‚ׂ̗©‚矎è‚É—£‚ê‚é‚©‚Ç‚¤‚©‚ÌŠm”F‚ð‚¨Šè‚¢‚µ‚Ü‚·B)
-E‚»‚Ì‘¼×‚©‚¢•¨C³B
- client-packet.txt C³B
- map.h
- AREA_SIZE‚ð15‚©‚ç20‚É•ÏXB
- struct map_session_dataAstruct mob_dataAstruct skill_timerskill C³B
- map.c
- map_quit() C³B
- clif.h
- clif_changemapcell() C³B
- clif.c
- clif_getareachar_skillunit()Aclif_clearchar_skillunit()Aclif_changemapcell() C³B
- skill.c
- skill_unitsetting()Askill_unit_onlimit()Askill_castend_pos2() C³B
- skill_castend_nodamage_id()Askill_check_condition()Askill_attack() C³B
- skill_timerskill()Askill_addtimerskill()Askill_cleartimerskill() C³B
- ‚»‚Ì‘¼­‚µC³B
- skill.h
- skill_addtimerskill()Askill_cleartimerskill() C³B
- pc.c
- pc_movepos()Apc_walk()Apc_authok() C³B
- mob.c
- mob_spawn_dataset()Amob_spawn() C³B
- mob_changestate()Amob_damage() C³B
- mob_ai_sub_hard_mastersearch()Amob_ai_sub_hard() C³B
- ‚»‚Ì‘¼­‚µC³B
- battle.c
- battle_calc_weapon_attack()Abattle_weapon_attack() C³B
- ‚»‚Ì‘¼­‚µC³B
-
---------------
-//0518 by Kalen
-EEvent_pumpkinŠÖ˜A‚̃tƒ‰ƒO•s‹ï‡C³
-
---------------
-//0517 by Ž€_
-
-EƒAƒCƒXƒEƒH[ƒ‹‚Å ‚蔲‚é–â‘èC³‚Æ­‚µC³B(M‚³‚ñƒpƒPƒbƒg‚Ì’ñ‹Ÿ‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B)
- clif.h
- clif_changemapcell() ’ljÁB
- clif.c
- clif_changemapcell() ’ljÁB
- skill.h
- SC_STEELBODY‚ð84‚©‚ç87‚É•ÏXB
- skill.c
- skill_unitsetting()Askill_unit_onlimit() C³B
- skill_status_change_end()Askill_status_change_start() C³B
- client_packet.txt C³B
-
---------------
-//0516 by Ž€_
-
-Eƒ‚ƒ“ƒXƒ^[‚̃ƒeƒI‚É‚æ‚éŽIƒ_ƒEƒ“‚ð—ÕŽž‚É–h‚¢‚Å’u‚«‚Ü‚µ‚½B(ƒeƒXƒg‚Í‚µ‚Ä‚Ü‚¹‚ñB) ƒ‚ƒ“ƒXƒ^[‚̃XƒLƒ‹‚ɂ‚¢‚Ä‚¿‚å‚Á‚Æ•ªÍ•s‘«‚Å‚·‚Ì‚Å•ªÍ‚µ‚½Œã‚ÉC³‚µ‚Ä’u‚«‚Ü‚·B
-EƒXƒLƒ‹Žw’e‚ÌŽd—l‚ðbattle_athena.conf‚ÅŒˆ‚ß‚é‚悤‚É•ÏXB(0515‚Ì•¨‚ª‚¿‚å‚Á‚Æ‚à‚Á‚½‚¢‚È‚©‚Á‚½‚Ì‚Å...)
- skill.c
- skill_castend_pos2() C³B
- battlc.hAbattle.c
- battle_config‚Éfinger_offencive_type ’ljÁB
- battle_calc_weapon_attack() C³B
- battle_athena.conf C³B
- conf_ref.txt C³B
-
---------------
-//0515 by Ž€_
-
-EƒXƒLƒ‹ƒƒeƒI‚ÆŽw’eC³‚ƃpƒPƒbƒgC³A0512‚Ì—Ž‚Æ‚µ•¨C³‚Æ­‚µ‚¾‚¯‚ÌŽd—l•ÏX‚Å‚·B
-EŽw’e‚Ìê‡à–¾‚ðŒ©‚Ä‚±‚ñ‚ÈŠ´‚¶‚©‚È‚ÆŽv‚Á‚Äì‚Á‚½•¨‚Å‚·BˆÈ‘O‚Ì•¨‚ª–{ŽI‚É‚ ‚Á‚Ä‚¢‚é‚Ȃ猳‚É–ß‚µ‚Ü‚·B
-EƒƒeƒI‚Ì1”­‚͈̔͂Í5*5ƒZƒ‹(range = 2)‚Å‚·B
-EƒAƒCƒeƒ€Žg—pƒpƒPƒbƒg‚ðV‚µ‚¢•¨‚É•ÏX‚µ‚½‚ªƒGƒtƒFƒNƒg‚ªo‚È‚¢•¨‚Ío‚È‚¢‚悤‚Å‚·B(FXƒGƒtƒFƒNƒg‚ª“ü‚Á‚Ä‚¢‚é‚Ý‚½‚¢‚¾‚©‚çŒã‚ÍŽg‚Á‚ÄŠm”F‚Å‚·‚¯‚Ç‚ËB)
-E0512‚Åhitrate‚ª10000ˆÈã‚Å•K’†‚Å‚Í‚È‚­100000ˆÈã‚Å•K’†‚Å‚·‚̂ŃR[ƒh‚ÌC³‚Ì‚³‚¢‚É‚Í‹C‚ð‚Á‚‚¯‚Ä‚­‚¾‚³‚¢B
-Ebattle_athena‚Éݒ肳‚ê‚Ä‚¢‚é•Ší‚Ì»‘¢—¦‚ƃyƒbƒg‚̕ߊlŠm—¦‚ÌŒvŽZ•û–@‚ð­‚µ•Ï‚¦‚Ü‚µ‚½B(‹C‚É‚·‚é•K—v‚à‚È‚¢•¨‚Å‚·‚¯‚Ç‚ËB)
- skill.h
- skill_addtimerskill()Askill_cleartimerskill ’ljÁB
- skill.c
- skill_attack() fixAskill_use_id()Askill_use_pos() C³B
- skill_castend_damage_id()Askill_castend_nodamage_id() C³B
- skill_timerskill()Askill_addtimerskill()Askill_cleartimerskill ’ljÁB
- skill_castcancel()Askill_castend_pos2()Askill_unitsetting() C³B
- skill_produce_mix()Ado_init_skill() C³B
- mob.c
- mob_damage() C³B
- battle.c
- battle_calc_weapon_attack() C³B
- map.h
- struct skill_timerskill ’ljÁB
- struct map_session_data C³B
- map.c
- map_quit() C³B
- pc.c
- pc_authok() C³B
- pc_damage() C³B
- clif.c
- clif_parse_WalkToXY() C³B
- clif_useitemack() C³B(Ž‘—¿’ñ‹Ÿ: Kalen‚³‚ñ)
- pet.c
- pet_catch_process2() C³B
- skill_db.txt
- ‹CŒ÷‚ÌSP‚ð10‚É•ÏXB(ƒlƒbƒg‚ÌŒŸõ‚Å‚Í10‚¾‚Á‚½‚Ì‚Å•ÏX‚µ‚Ü‚µ‚½BŠØ‘‘ ‚Å‚Í15‚Æ•\Ž¦‚³‚ê‚Ü‚·‚ª...)
- client_packet.txt
- 01c8‚Ì•ÏX‚Å‚·BKalen‚³‚ñî•ñ’ñ‹Ÿ‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
-
---------------
-//0514 by Kalen
-
-EscriptC³+’ljÁ
-
- conf/npc_event_pumpkin.txt (V‹K)ƒJƒ{ƒ`ƒƒƒCƒxƒ“ƒg
- conf/npc_town_guide.txt (C³)Juno‚Ìu+vƒAƒCƒRƒ“ƒJƒ‰[C³
- conf/npc_town_lutie.txt (ˆê•”’ljÁ)ƒJƒ{ƒ`ƒƒƒCƒxƒ“ƒg‚ɉe‹¿‚·‚éNPC‚̉ï˜b’ljÁ
-
---------------
-//0513 by RR
-
-E“]EŽž‚É‘•”õ‚ª‘S‚ÄŠO‚ê‚é‚悤‚É‚µ‚Ü‚µ‚½BŠÖ”ˆÊ’u‚Ì•ÏX‚µ‚Ä‚È‚¢‚Ì‚ÅA‚Ђå‚Á‚Æ‚µ‚½‚炨‚©‚µ‚­‚È‚Á‚Ä‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB‚¤‚¿‚̊‹«(win2k cygwin)‚Å‚Í•½‹C‚Å‚µ‚½‚Ì‚Å‚»‚Ì‚Ü‚Ü‚É‚µ‚Ä‚ ‚è‚Ü‚·BB
-Eƒm[ƒrƒXŽž‚ÌŽ€–S‚Å‚ÍAÅ‘åHP‚Ì‚Q•ª‚Ì‚P‚Å•œŠˆ‚Å‚«‚é‚悤C³B(ƒXƒLƒ‹‚É‚æ‚é•œŠˆ‚Í–¢Šm”F)
-EƒfƒXƒyƒiƒ‹ƒeƒB‚É‚æ‚éŒoŒ±’lŒ¸­‚ð’ljÁBbattle_athena.conf‚É‚ÄAŒ¸­—¦‚ð•ÏX‚Å‚«‚é‚悤‚ÉÝ’èBŒ¸‚éŒoŒ±’l‚ͬ”“_ˆÈ‰ºØ‚èŽÌ‚Ä‚È‚Ì‚ÅA•K—vŒoŒ±’l‚ª’á‚¢‚¤‚¿‚É‚Í‚¿‚傤‚Ç‚»‚Ì“•ªˆø‚©‚ê‚é‚Æ‚¢‚¤•—‚É‚Í‚È‚è‚Ü‚¹‚ñB
- battle.h
- Battle_Config‚Édeath_penalty_base‚Ædeath_penalty_job‚ð’ljÁB
- battle.c
- battle_config_read‚Ådeath_penalty_base‚Ædeath_penalty_job‚ð“ǂނ悤‚ÉC³B
- pc.c
- pc_makesavestatus() C³B
- pc_damege() C³B
- pc_jobchange() C³B
- battle_athena.conf
- death_penalty_base,death_penalty_job’ljÁB
-
---------------
-//0512 by Ž€_
-
-E–â‘è‚É‚È‚è‚»‚¤‚È•”•ª‚ÌC³‚ÆV‚µ‚¢ƒpƒPƒbƒg‚̑Ήž‚ªƒƒCƒ“‚Å‚·BŒãƒoƒO‚à­‚µŽ¡‚µ‚Ü‚µ‚½B(“®‚¯‚È‚¢ó‘ÔˆÙí‚É‚È‚Á‚Ä‚à“®‚­–â‘è‚ÌC³“™‚Å‚·B)
- athena.sh C³B(‚¢‚‚àŽI‚ðŒÂ•Ê‚ÉŽÀs‚µ‚Ä‚¢‚½‚Ì‚Å‹C‚ª‚‚«‚Ü‚¹‚ñ‚Å‚µ‚½B)
- makefile
- DPACKETVER‚ð2‚©‚ç3 ‚ÉC³BƒWƒ…[ƒmˆÈŒã‚Ì‘ ‚ðŽg‚¤‚Ì‚È‚ç3‚É‚µ‚ÄŽg‚Á‚Ä‚­‚¾‚³‚¢B(‚»‚̈ȑO‚È‚ç2‚©1)
- clif.c
- DPACKETVER=3‚ɑΉž(¡‚ÌŠ0x114‚ð0x1de‚É•ÏŠ·‚Æ0x11f‚ð01c9‚É•ÏŠ·‚·‚é‚̂ݑΉž)
- clif_skill_damage3() íœB
- clif_skillcastcancel() ’ljÁB
- clif_skill_damage()Aclif_getareachar_skillunit()Aclif_skill_setunit() C³B
- clif_fixmobpos()Aclif_fixpetpos()Aclif_fixpcpos() C³B
- ‘¼‚É­‚µC³B
- clif.h
- clif_skill_damage3() íœB
- clif_skillcastcancel() ’ljÁB
- battle.c
- battle_calc_weapon_attack() C³B
- hitrate‚ð10000ˆÈã‚É‚·‚ê‚ΕK’†‚É‚È‚é‚悤‚É•ÏXB(¡‚ÌŽd—l‚ł̓‚ƒ“ƒXƒ^[‚Ì•K’†UŒ‚ˆÈŠO‚Í•K’†‚É‚È‚è‚Ü‚¹‚ñB)
- ‘¼‚É­‚µC³B
- client_packet.txt
- V‚µ‚¢ƒpƒPƒbƒgî•ñ’ljÁB
- pc.c
- pc_spiritball_timer()Apc_delspiritball() C³B
- pc_damage()Apc_skill() C³B
- skill.h
- SC_EXPLOSIONSPIRITS‚ð89‚©‚ç86‚É•ÏXB(86 = 0x56)
- SC_DELUGE‚ð86‚©‚ç89‚É•ÏXB
- skill.c
- skill_castcancel()Askill_use_id()Askill_use_pos() C³B
- skill_check_condition() C³B
- skill_castend_damage_id()Askill_castend_nodamage_id C³B
- skill_status_change_end()Askill_status_change_start() C³B
- skill_db.txt
- ‹CŒ÷‚ÌÁ”ïSP‚ðC³B(‘O‚Ì15‚ª–{ŽI‚É‚ ‚Á‚Ä‚¢‚é‚Ý‚½‚¢‚Å‚·‚Ì‚Å...)
- mob.c
- mobskill_use_id()Amobskill_use_pos() C³B
- map.c
- map_quit() C³B
- atcommand.h
- atcommand.c
- @ƒRƒ}ƒ“ƒh@spiritball’ljÁB(‹@”\‚ÍŽg‚¦‚΂킩‚è‚Ü‚·B‚½‚¾1000ˆÈã‚Í“ü‚ê‚È‚¢•û‚ª‚¢‚¢‚Å‚·B‘ ‚ªƒpƒ“ƒN‚µ‚Ü‚·‚Ì‚Å...)
- atcommand_athena.conf
- C³B
- conf_ref.txt
- C³B
-E0x196ƒpƒPƒbƒg‚ÉV‚µ‚¢•¨‚ª’ljÁ‚³‚ê‚Ä‚¢‚é‚Ì‚Åó‘ԕω»‚É’¼Ú‚ÉŠÖŒW‚È‚¢SC_xxxx‚̔Ԇ‚ð’²®‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B(¡‚ÍSC_EXPLOSIONSPIRITS‚É‚¾‚¯‘Ήž‚µ‚Ü‚µ‚½B) ‚»‚ê‚Æskill_status_change_end()Askill_status_change_start()‚Åclif_status_change()‚ðŒÄ‚Ôtype‚͈̔͂ª64(0x40)–¢–ž‚É‚È‚Á‚Ä‚¢‚邪‚»‚ê‚à’ljÁ‚³‚ê‚Ä‚¢‚镨‚ɇ‚킹‚ÄC³‚·‚é•K—v‚ª‚ ‚è‚Ü‚·‚ª’ljÁ‚³‚ê‚Ä‚¢‚镨‚ª‘S‚Ä‚í‚©‚Á‚½‚킯‚Å‚à‚È‚¢‚Ì‚ÅSC_EXPLOSIONSPIRITS‚É‚¾‚¯‘Ήž‚µ‚Ü‚µ‚½B¡“x‚©‚ç‚Í”š—ô”g“®‚̉𜂪³Šm‚ÉŒ©‚¦‚Ü‚·B‹à„‚̓f[ƒ^‚ðŒ©‚Â‚¯‚ç‚ê‚Ü‚¹‚ñ‚Å‚µ‚½B
-¦V‚µ‚¢ƒpƒPƒbƒg‚ɑΉž‚·‚éì‹Æ‚ð‚µ‚Ä‚¢‚Ü‚·‚ªî•ñ‚ª•s‘«‚Å‚·B
-ƒCƒOƒhƒ‰ƒVƒ‹‚ÌŽÀ‚âƒCƒOƒhƒ‰ƒVƒ‹‚ÌŽí‚̃GƒtƒFƒNƒg‚ªo‚é‚悤‚É‚·‚éˆ×‚É01c8‚ðŽg‚Á‚Ä‚Ý‚Ü‚µ‚½‚ª‘Ê–Ú‚Å‚µ‚½Bclient_packet.txt‚̃f[ƒ^‚ł͉½‚à‹N‚±‚ç‚È‚¢‚̂ʼn½•û‚ª–{ŽI‚ŃCƒOƒhƒ‰ƒVƒ‹‚ÌŽÀ‚âƒCƒOƒhƒ‰ƒVƒ‹‚ÌŽí‚ðŽg‚Á‚½Žž‚̃pƒPƒbƒg‚ð’ñ‹Ÿ‚µ‚Ä‚­‚ê‚Ü‚¹‚ñ‚©HS 00a7‚ÌŒã00a8‚ª—ˆ‚é‚Ì‚©‚»‚ê‚Æ‚à01c8‚ª—ˆ‚é‚Ì‚©‚ÌŠm”F‚Æ00a8‚ÌŒã‚É01c8‚ª—ˆ‚é‚Ì‚©‚ÌŠm”F‚ª‚Å‚«‚ê‚Ή½‚Æ‚©‚È‚é‚ÆŽv‚¢‚Ü‚·‚ª...
-‚»‚ê‚Æ01c9‚ÌŒã‚É—ˆ‚é?.81b‚ª‚í‚©‚ê‚΃AƒCƒXƒEƒH[ƒ‹‚ð ‚蔲‚é–â‘è‚à‰ðŒˆ‚Å‚«‚é‚ÆŽv‚¢‚Ü‚·‚ª...
-î•ñ’ñ‹Ÿ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
-
---------------
-//0511 by Diex
-
-EŽw’e‚ÌUŒ‚‰ñ”C³B
-Eˆ¢C—…”e–PŒA”­™¤‚ªC—û‚𖳎‹‚µA–³‘®«‚É‚È‚é‚悤‚ÉC³B
-E‹à„Žg—pŽžAMDEF‚ª³‚µ‚­•\Ž¦‚³‚ê‚Ä‚È‚©‚Á‚½ƒoƒO‚ðC³B
-E‹CŒ÷‚ÌÁ”ïSP‚ðC³B
- pc.c
- pc_calcstatus() C³B
- battle.c
- battle_calc_weapon_attack() C³B
- skill.c
- skill_check_condition() C³B
-
- skill_db.txt C³B
-
---------------
-//0510 by Diex
-
-EŽO’i¶‚Ì•\Ž¦ƒoƒOC³
-EŽw’e‚ª‹C’e‚ª–³‚­‚Ä‚àŒ‚‚Ä‚éƒoƒO‚ðC³
- map.h
- struct map_session_data‚Éspiritball_old•Ï”’ljÁB
- skill.c
- skill_check_condition() C³B
- clif.c
- clif_skill_damage3() C³B
- battle.c
- battle_weapon_attack()Abattle_calc_weapon_attack C³B
-
---------------
-//0509 by
-
-Enpc_warp.txt
- ƒvƒé¨ƒvƒƒtƒB[ƒ‹ƒh‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ðA
- ƒvƒé¨ƒ”ƒ@ƒ‹ƒLƒŠ[ƒŒƒ‹ƒ€‚ÉC³B
- ƒvƒƒtƒB[ƒ‹ƒh¨ƒvƒé‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ðƒvƒƒtƒB[ƒ‹ƒh¨ƒ”ƒ@ƒ‹ƒLƒŠ[ƒŒƒ‹ƒ€‚ÉC³
-
---------------
-//0508 by Ž€_
-
-EƒoƒOC³‚Æ‘§A‹CŒ÷A‹C’D‚ÌC³‚ªƒƒCƒ“‚Å‚·B(¡“x‚©‚ç‚Í‘¼‚Ìl‚É‚à‹C‚ª‚¿‚á‚ñ‚ÆŒ©‚¦‚Ü‚·B)
-EŽ€‚ñ‚¾ƒLƒƒƒ‰‚ÉŒoŒ±’l‚ª“ü‚é–â‘èC³B(ƒeƒXƒg‚Í‚µ‚Ä‚Ü‚¹‚ñB‚Ç‚¤‚È‚Ì‚©•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·B)
- pc.h
- pc_addspiritball()Apc_delspiritball() ’ljÁB
- pc_is50overweight() C³B
- pc.c
- pc_gainexp() C³B
- pc_insert_card()Apc_item_identify() C³B(‘債‚½C³‚¶‚á‚ ‚è‚Ü‚¹‚ñ‚ª...)
- pc_authok() C³B
- pc_addspiritball()Apc_delspiritball() ’ljÁB
- pc_spiritball_timer() ’ljÁB
- do_init_pc()Apc_calcstatus()C³B
- pc_spirit_heal() ’ljÁB
- pc_natural_heal()‚ÉŠÖ‚í‚镨‚ÌC³B
- map.h
- struct map_session_data C³B
- map.c
- map_quit() C³B
- map_addflooritem() C³B
- clif.h
- clif_spiritball_int()‚ðclif_spiritball()‚É•ÏXB
- clif_spiritball_ext() íœB
- clif.c
- clif_spiritball_int() ‚ðclif_spiritball()‚É•Ï‚¦‚ÄC³B
- clif_spiritball_ext() íœB
- clif_set01e1() ’ljÁB
- clif_getareachar_pc() C³B
- skill.h
- SC_CALLSPIRITS íœB
- skill.c
- SC_CALLSPIRITS íœB
- skill_castend_nodamage_id()Askill_check_condition() C³B
- skill_status_change_start() C³B
-E°‚É—Ž‚¿‚½ƒAƒCƒeƒ€‚ªÁ‚¦‚é‚Ü‚Å‚ÌŽžŠÔ‚ðÝ’è‚Å‚«‚é‚悤‚É•ÏXB
- battle.hAbattle.c
- battle_config_read() C³B
- conf_ref.txt C³B
- battle_athena.conf C³B
-
---------------
-//0507 by Diex
-0505‚ÌC³
-EŽO’i¶‚̃GƒtƒFƒNƒgŽÀ‘•
-
---------------
-//0506 by hoenny
-‘S‘Ì“I‚É­‚µŽ®C³
-ƒZƒCƒW‚̃XƒLƒ‹‚ªƒAƒCƒeƒ€‚ðÁ–Õ‚·‚é‚悤‚ÉC³
-(ƒXƒLƒ‹‚ÌDB‚É zeny, spiritball, item, equip‚ð“ü‚ꂽ‚¢‚ªŽžŠÔ‚ª‚È‚­‚Ä—ÕŽž“I‚É ...)
-
---------------
-//0505 by Diex
-
-Eˆ¢C—…”e–PŒ‚̃_ƒ[ƒWC³
-E–Ò—´Œ‚̃_ƒ[ƒWC³
-EŽw’eŽÀ‘•
-E”­™¤ŽÀ‘•
-E‹à„‚ªŒ¸ŽZDEF‚ÆŒ¸ŽZMDEF‚ª90‚ɌŒ肳‚ê‚Ä‚¢‚½‚Ì‚ðæŽZDEF‚ÆæŽZMDEF‚ª90‚É‚È‚é‚悤‚ÉC³
-EŽO’i¶ŽÀ‘•i‚½‚¾‚µƒRƒ“ƒ{‚Í–¢ŽÀ‘•j
- map/clif.c
- map/clif.h
- clif_skill_damage3()’ljÁ
- map/pc.c
- map/skill.c
- map/battle.c
- C³E‹y‚ђljÁ
-iŒvŽZŽ®‚Í+ Acolyte Maniax +‚ðŽQl‚É‚µ‚Ü‚µ‚½Bj
-
---------------
-//0504 by Ž€_
-
-Eatcommand.c C³B(‚½‚Á‚½2•¶Žš‚ð’ljÁ‚µ‚½‚¾‚¯‚Å‚·B)
-atcommnad_gm_only‚ªno‚¶‚á‚È‚­‚Ä‚àŽg—pƒŒƒxƒ‹Ý’è‚ð0‚É‚µ‚½ƒRƒ}ƒ“ƒh‚ÍGM‚¶‚á‚È‚¢ƒLƒƒƒ‰‚Å‚àŽg‚¦‚Ü‚·BƒeƒXƒg‚Í‚µ‚Ä‚Ü‚¹‚ñB
-
---------------
-//0503 by nabe
-
-E¸˜BC³‚ÆLinux—p‚É‚¿‚å‚Á‚Æ•ÏX‚È‚Ç
- conf/map_athena.conf
- npc_event_doll.txt,
- npc_turtle.txt,
- //npc_pota.txt€–ڒljÁ
- conf/npc_pota.txt’ljÁisocie‚³‚ñì‚̃_ƒ“ƒWƒ‡ƒ“ƒ|ƒ^Žq‚³‚ñj
- conf/npc_shop.txt
- ƒCƒYƒ‹[ƒh•Ší¤l‚̉¿ŠiC³
- conf/script_athena.conf
- 0499‚Å‚Ì•¶Žš‰»‚¯HC³
- login/login.c
- #include <time.h>’ljÁ
- map/script.c
- buildin_getequipname()
- ¸˜Bƒƒjƒ…[‚Ìmalloc‚ðC³
- buildin_getequipisenableref()
- ¸˜B‰Â”\ðŒC³iAthefans‚³‚ñ‚ÌðŒ•¶‚É‚µ‚Ä‚Ý‚Ü‚µ‚½j
- map/skill.c
- skill_check_condition()•Ï”錾ˆÊ’u‚Ì•ÏX‚Ì‚Ý
-
---------------
-//0502 by Ž€_
-
-EƒJƒvƒ‰‚Ì‘qŒÉ‚àbattle_athena.conf‚Ìbasic_skill_check‚É‚æ‚Á‚ÄŠî–{ƒXƒLƒ‹‚ª‘«‚è‚È‚­‚Ä‚àŽg—p‚·‚邱‚Æ‚ª‚Å‚«‚é‚悤‚ÉC³‚µ‚Ü‚µ‚½B(ƒvƒƒ“ƒeƒ‰’†‰›‚̃Jƒvƒ‰‚Ì‚ÝŠm”FB)
-EƒNƒFƒXƒgƒXƒLƒ‹‚̎擾‚Í0492‚Ì‚¹‚¢‚Å‚·B0481‚Éskill‚ÌŌオ,2‚¶‚á‚È‚­,0‚¾‚Æ‘‚¢‚½‚Ì‚Å‚·‚ª‰½ŒÌ‚©0492‚Å,2‚É‚È‚Á‚Ä‚¢‚½‚Ì‚Å,0‚ÉC³‚µ‚Ü‚µ‚½B
-EƒXƒNƒŠƒvƒggetbaseskillcheck‚ðbaseskillcheck‚É•ÏX‚ÆŽ©•ª‚ÅC³‚µ‚Ü‚µ‚½‚ª–½—ß‚ÌŒã‚É‚È‚ñ‚Ì”’l‚à“ü‚ç‚È‚¢ê‡‚̓XƒNƒŠƒvƒg‚ª³‚µ‚­ì“®‚µ‚È‚©‚Á‚½‚Ì‚ÅŽg—p‚·‚éꇂÍbaseskillcheck(0)‚É‚µ‚ÄŽg‚í‚È‚¢‚Ƴ‚µ‚¢Œ‹‰Ê‚𓾂邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñB
-(Ú‚µ‚­‚Ínpc_town_kafra.txtŽQÆB)
- npc_event_skillget.txt C³B
- npc_town_kafra.txt C³B
- script.c C³B
-EGM_account.txt‚ÉŽ©•ª‚ªƒeƒXƒg‚ׂ̈Ɏg‚Á‚Ä‚¢‚½500000‚ª“ü‚Á‚Ä‚¢‚½‚Ì‚Å휂µ‚Ü‚µ‚½B(GM_account.txtì‚Á‚½——R‚ÍŽ©•ªŸŽè‚ɃAƒJƒEƒ“ƒg‚ðGM‚É‚·‚邱‚Æ‚ª‚Å‚«‚é‚悤‚É‚·‚éˆ×‚Å‚·B‚‚܂èGM‚Æ‚µ‚Ä•\Ž¦‚³‚ê‚È‚­‚Ä‚àGM‚Æ‚µ‚ÄF‚ñ‚ÈŒ ŒÀ‚ðŽg‚¤‚±‚Æ‚ª‚Å‚«‚Ü‚·B‚³‚·‚ª‚ÉGMê—p‚̉EƒNƒŠƒbƒNƒRƒ}ƒ“ƒh‚ÍŽg‚¦‚Ü‚¹‚ñ‚ª... ‚Å‚à‚±‚ê‚ðŠˆ—p‚µ‚Ä‚¢‚é•û‚Í‚¢‚È‚¢‚Ý‚½‚¢‚È‚ñ‚Å‚·‚Ë...)
-
---------------
-//0501 by hoenny
-
-E500‚Ì–â‘è“_C³
--HP‰ñ•œ—ÍŒüã,SP‰ñ•œ—ÍŒüã
- map/pc.c
- pc_natural_heal_hp()C³
- pc_natural_heal_sp()C³
-
-500SP‰ñ•œ—ÍŒüã
---------------
-//0500 by hoenny
-
-EC“¹‘m‚Ì‘§ŽÀ‘•
--Šî–{“I‚ÉÀ‚Á‚½Žž 10•b‚²‚Ƃɉñ•œ‚µ‚Ü‚·.
--ŠŽ—Ê‚ª 50%‚ðƒI[ƒo[‚µ‚½ê‡ 20•b‚²‚Ƃɉñ•œ‚µ‚Ü‚·.
-EC“¹‘m‚Ì‹C’DŽÀ‘•
--‘¼‚ÌC“¹‘m‚ÌŸ†‹…‚à‹zŽû‚ª‰Â”\‚Å‚·.
-EC“¹‘m‚Ì‹à„ŽÀ‘•
--‹à„ó‘Ô‚Å‚Í‚·‚ׂẴAƒNƒeƒBƒuƒXƒLƒ‹‚ðŽg‚¤‚±‚Æ‚ª‚Å‚«‚È‚¢‚Å‚·.
- db/skill_db.txt
- ‹C’DC³
- ‹à„C³
- map/pc.h
- pc_is50overweight()’ljÁ
- pc_is90overweight()’ljÁ
- map/pc.c
- pc_calcstatus()C³
- pc_spheal()C³
- pc_hpheal()C³
- pc_natural_heal_hp()C³
- pc_natural_heal_sp()C³
- pc_natural_heal_sub()C³
- map/skill.c
- skill_check_condition()C³
- skill_castend_nodamage_id()C³
- skill_status_change_start()C³
-
---------------
-//0499 by Ž€_
-
-EƒT[ƒo[snapshot‚ƃoƒOC³B
-EƒXƒeƒB[ƒ‹ƒRƒCƒ“‚̃[ƒj—Ê‚ðƒ‚ƒ“ƒXƒ^[ƒŒƒxƒ‹*10 + rand(100)‚É•ÏXB
-EƒLƒƒƒXƒeƒBƒ“ƒOƒ^ƒCƒ€‚ª‚È‚¢ƒXƒLƒ‹‚̓^ƒCƒ}[‚ðŽg‚í‚È‚¢‚悤‚É•ÏXB
-EƒJ[ƒh‚ÌŽg—p‚É‚æ‚éƒ}ƒbƒvŽIƒ_ƒEƒ“‚ð–h‚®ˆ×‚ÉC³B(¡“x‚±‚»Ž¡‚Á‚½‚Í‚¸...) ‚»‚µ‚ÄŠg‘勾‚à“¯‚¶‚悤‚È‚±‚Æ‚ª‚Å‚«‚é‚Ì‚ÅC³B(‚±‚ê‚ÍŽIƒ_ƒEƒ“‚Ü‚Å‚Í‹N‚±‚³‚È‚¢‚悤‚Å‚·‚ª...)
-EƒLƒƒƒ‰‚Ƀ}ƒbƒv‚̃[ƒh‚ªI‚í‚é‚܂Ńyƒbƒg‚̃f[ƒ^‚ª—ˆ‚È‚¢‚ƃ}ƒbƒvŽI‚ª—Ž‚¿‚é–â‘èC³B(–Å‘½‚È‚±‚Æ‚ª‚È‚¢ŒÀ‚è‹N‚±‚ç‚È‚¢‚Å‚·‚¯‚Ç‚ËB)
-EƒI[ƒgƒo[ƒT[ƒNAd‚³‚̃AƒCƒRƒ“‚ƃ`ƒFƒbƒN‚ª³‚µ‚­“K—p‚³‚ê‚é‚悤‚ÉC³B
-E‘‘¬ƒ|[ƒVƒ‡ƒ“‚Ì“K—p‡”Ô•ÏXB¡‚܂ł̓Xƒs[ƒhƒAƒbƒvƒ|[ƒVƒ‡ƒ“‚ªÅ—Dæ‚ÅŽŸ‚ªƒnƒCƒXƒs[ƒhƒ|[ƒVƒ‡ƒ“AŌオƒo[ƒT[ƒNƒ|[ƒVƒ‡ƒ“‚¾‚Á‚½‚Ì‚Å‚·‚ª‡”Ô‚ð‹t‚É•ÏX‚µ‚Ü‚µ‚½B
-EƒAƒCƒeƒ€‚ÅŽg‚¤ƒXƒLƒ‹‚̓LƒƒƒXƒeƒBƒ“ƒOƒ^ƒCƒ€‚ƃfƒBƒŒƒC‚ª0‚É‚È‚é‚悤‚É•ÏXB
-EƒAƒCƒeƒ€‚ÅŽg‚¤ƒXƒLƒ‹‚̃Œƒxƒ‹‚ªitem_db‚Éݒ肵‚Ä‚¢‚郌ƒxƒ‹‚æ‚è‚‚­‚È‚éƒoƒOC³B
- pc.h
- pc_move()‚ðpc_movepos()‚É•ÏXB
- pc.c
- pc_steal_coin()Apc_insert_card()Apc_item_identify()Apc_authok()A
- pc_calcstatus()Apc_checkweighticon()Apc_damage() C³B
- skill.c
- skill_castend_pos2()Askill_check_condition()Askill_use_id()A
- skill_use_pos() C³B
- pet.c
- pet_recv_petdata()Apet_change_name() C³B
- map.h
- struct map_session_data‚Éskillitemlv ’ljÁB
- script.c
- buildin_itemskill() C³B
- clif.c
- clif_parse_UseSkillToId()Aclif_parse_UseSkillToPos()A
- clif_parse_LoadEndAck() C³B
- mob.c
- mobskill_use_id()Amobskill_use_pos() C³B
-
---------------
-//0498 by hoenny
-
-DŸ†‹…‚ª‚·‚Á‚©‚茩‚¦‚é‚悤‚ÉC³(Á–ÕƒXƒLƒ‹Žg—p‚ÌŽžÁ–Õ‚·‚é‚悤‚ÉC³)
-DƒXƒLƒ‹Žc‰e‚ðŽg—p‚ÌŽžŸ†‹…‚ðÁ–Õ‚·‚é‚悤‚ÉC³
- doc/client_packet.txt
- 0x1d0’ljÁ
- map/map.h
- sd‚Ìstructure‚É spiritball’ljÁ
- map/clif.h
- clif_spiritball_del() -> clif_spiritball_int()C³
- clif_spiritball_cre() -> clif_spiritball_ext()C³
- map/clif.c
- packet_len_table[]C³
- clif_spiritball_del() -> clif_spiritball_int()C³
- clif_spiritball_cre() -> clif_spiritball_ext()C³
- map/pc.h
- pc_item_steal() -> pc_steal_item()C³
- pc_coin_steal() -> pc_steal_coin()C³
- map/pc.c
- pc_item_steal() -> pc_steal_item()C³
- pc_coin_steal() -> pc_steal_coin()C³
- pc_calcstatus()C³
- map/skill.c
- skill_check_conditon()C³
-
---------------
-//0497 by Ž€_
-
-E0491‚̃XƒLƒ‹Žc‰e‚̃oƒOC³‚ƃXƒeƒB[ƒ‹‚ƃXƒeƒB[ƒ‹ƒRƒCƒ“AƒXƒiƒbƒ`ƒƒ[‚ÌC³Amob_target‚̃oƒOC³B
-EŒðŠ·AÀ‚èAƒp[ƒeƒBŒ‹¬“™‚ÌŽž‚ÉŠî–{ƒXƒLƒ‹‚ðƒ`ƒFƒbƒN‚·‚é‚悤‚ÉC³B(battle_athena.conf‚Ń`ƒFƒbƒN‚·‚é‚©‚Ç‚¤‚©‚ðŒˆ‚ß‚é‚±‚Æ‚ª‚Å‚«‚Ü‚·B)
-‚½‚¾ƒJƒvƒ‰‚Ì‘qŒÉ‚̓XƒNƒŠƒvƒg‚ŧŒÀ‚ð‚©‚¯‚邵‚©‚ ‚è‚Ü‚¹‚ñB
-EƒXƒNƒŠƒvƒggetbasicskillcheck’ljÁB
- Žg—p•û–@„ getbasicskillcheck
- –ß‚è’l‚Íbattle_athena.conf‚Ìbasic_skill_check‚Å‚·B0‚Ìꇂ͊î–{ƒXƒLƒ‹‚̃`ƒFƒbƒN‚È‚µ‚Å1‚Ìꇂ͊î–{ƒXƒLƒ‹‚ðƒ`ƒFƒbƒN‚·‚é‚Ì‚ðˆÓ–¡‚µ‚Ü‚·B
- skill.c
- skill_castend_pos2() C³B
- skill_additional_effect() C³B
- pc.c
- pc_move() ’ljÁB
- pc_item_steal()Apc_coin_steal() C³B
- pc.h
- pc_move() ’ljÁB
- map.h
- struct mob_data C³B
- mob.c
- mob_spawn() C³B
- mob_target() C³B
- clif.c
- clif_pcinsight()Aclif_pcoutsight() C³B
- clif_parse_ActionRequest()Aclif_parse_Emotion()A
- clif_parse_TradeRequest()Aclif_parse_CreateParty()A
- clif_parse_ReplyPartyInvite() C³B
- battle_athena.conf C³B
- conf_ref.txt C³B
- skill_db.txt
- ƒXƒeƒB[ƒ‹‚ÌŽË’ö‚ð3‚©‚ç1‚ÉC³B
- battle.hAbattle.c
- battle_config‚Ébasic_skill_check ’ljÁB
- battle_config_read() C³B
- trade.c
- trade_traderequest() C³B
- script.c
- buildin_getbasicskillcheck() ’ljÁB
- map/makefile C³B
-¦ƒXƒeƒB[ƒ‹‚ƃXƒeƒB[ƒ‹ƒRƒCƒ“‚ÌŒvŽZŽ®‚Í“K“–‚Éì‚Á‚½•¨‚Å‚·B–{ŽI‚Ì•û‚ª‚Ç‚¤‚È‚Ì‚©‘S‘R‚í‚©‚ç‚È‚¢‚Ì‚Å...
-
- ƒXƒeƒB[ƒ‹—¦ = (ƒ‚ƒ“ƒXƒ^[‚̃AƒCƒeƒ€drop—¦ * (ƒLƒƒƒ‰ƒŒƒxƒ‹*0.5 + dex*0.4 +ƒXƒLƒ‹ƒŒƒxƒ‹*5))%
- ƒXƒeƒB[ƒ‹ƒRƒCƒ“—¦ = (ƒXƒLƒ‹ƒŒƒxƒ‹ + (ƒLƒƒƒ‰ƒŒƒxƒ‹ - ƒ‚ƒ“ƒXƒ^[‚̃Œƒxƒ‹)*0.3 + dex*0.2 + luk*0.2)%
- ƒXƒiƒbƒ`ƒƒ[”­“®—¦ = (5.5 + ƒXƒLƒ‹ƒŒƒxƒ‹*1.5 +ƒXƒeƒB[ƒ‹‚̃XƒLƒ‹ƒŒƒxƒ‹)%
-
-–{ŽI‚ÌŒvŽZŽ®‚ª‚í‚©‚é•û‚Íî•ñ’ñ‹Ÿ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
-ƒXƒeƒB[ƒ‹ƒRƒCƒ“‚̃[ƒj‚̗ʂ̓‚ƒ“ƒXƒ^[‚̃Œƒxƒ‹*100‚É‚È‚Á‚Ä‚¢‚Ü‚·B‚±‚ê‚ɂ‚¢‚Ä‚àî•ñ’ñ‹Ÿ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
-¦Žc‰e‚Ìꇎg‚Á‚½Œã•’Ê‚É•à‚­‘O‚ɂ̓yƒbƒg‚Ì‘•”õ‚ªŒ©‚¦‚È‚¢ƒoƒO‚ª‚ ‚è‚Ü‚·‚ªŒ´ˆö‚ª‚í‚©‚ç‚È‚¢‚Ì‚Å•ú’u‚·‚邱‚Æ‚É‚µ‚Ü‚µ‚½B
-¦Šî–{ƒXƒLƒ‹‚ª‘«‚è‚È‚¢Žžo‚郃bƒZ[ƒW‚Í–w‚LJ‚킹‚Ä‚¢‚Ü‚·‚ªƒp[ƒeƒB‚É“ü‚鎞‚ÉŠî–{ƒŒƒxƒ‹‚ª‘«‚è‚È‚¢Žž‚ɇ‚¤•¨‚ª‚È‚©‚Á‚½‚̂Ńp[ƒeƒB‚ðì‚ê‚È‚¢(Šî–{ƒXƒLƒ‹ƒŒƒxƒ‹7‚Ì•¨)‚Æ•\Ž¦‚µ‚ÄŠ©—U‚µ‚½•û‚É‚Í‹‘₳‚ꂽ‚Æ•\Ž¦‚³‚ê‚Ü‚·B
-
---------------
-//0496 by hoenny
-
-DWZ‚̃ƒeƒIƒXƒg[ƒ€ŽÀ‘•
-DƒXƒeƒB[ƒ‹ƒRƒCƒ“C³
- db/skill_db.txt
- ƒƒeƒIƒXƒg[ƒ€C³
- map/pc.c
- pc_coin_steal()C³
- map/skill.c
- skill_castend_pos2()C³
-
---------------
-//495 by nini
-
-EAR‚ª•ÐŽè•€A—¼Žè•€‚Å‚µ‚©”­“®‚µ‚È‚©‚Á‚½‚Æ‚±‚ëC³¨•ÐŽè•€A—¼Žè•€A“ÝŠí
- map/skill.c
- skill_check_condition()@C³
-
-‘O‰ñC³‚Ì‚Æ‚«“ÝŠí“ü‚ê–Y‚ê‚Ä‚½‚悤‚Å‚·B
-
---------------
-//0494 by Ž‚Žqo^.^o
-
-conf/mpc_warp.txt
-Dƒnƒ“ƒ^ˆê“]E’no‚Ä‚¢‚È‚¢C³
-
---------------
-//0493 by ”g˜Q
-
-EscriptC³
- npc_town_comodo.txt ƒRƒ‚ƒhˆÄ“à—vˆõ•”•ª‚ðíœ(npc_town_guide.txt‚Æd•¡‚µ‚Ä‚¢‚½‚Ì‚Å)
- npc_town_guide.txt ƒWƒ…ƒm[ˆÄ“à—vˆõ‚ð’ljÁ(viewpoint‚ÌF‚ªc)
- npc_town_kafra.txt ƒWƒ…ƒm[ƒJƒvƒ‰•”•ª‚ðnpc_town_yuno.txt‚©‚çˆÚ“®
- npc_town_refine.txt ƒWƒ…ƒm[¸˜BŠ•”•ª‚ðnpc_town_yuno.txt‚©‚çˆÚ“®
- npc_town_yuno.txt ˆÄ“à—vˆõ‚ƃJƒvƒ‰‚Ƹ˜BŠ•”•ª‚ðíœ
- npc_turtle.txt ‰ï˜b‚ð”÷C³
-
---------------
-//0492 by Kalen
-
-EscriptC³+’ljÁ
-
- conf/npc_event_doll.txt (V‹K)
- conf/npc_turtle.txt (V‹K)‹T“‡ŠÖ˜ANPC+‹T“‡ƒNƒGƒXƒg(qŠC“úŽ)’ljÁ
-
- conf/npc_event_skillget.txt (C³)‰ž‹}ˆ’u‚Ì•s‹ï‡+‚Ö‚ñ‚Ètabíœetc..
- conf/npc_town_alberta.txt (C³)Turtle•ª—£A‚¿‚Ñ‚ÁŽqíœ(Event_doll‚ÖˆÚ“®)
- conf/npc_town_guide.txt (C³)‘䎌‚ª‚©‚È‚è•ÏX‚³‚ê‚Ä‚¢‚½‚Ì‚ÅAC³
-
-
---------------
-//0491 by Ž€_
-
-EƒXƒLƒ‹Žc‰e(ŠØ‘ƒNƒ‰ƒCƒAƒ“ƒg‚Å‚Í‹|gœ[‰e)ŽÀ‘•B(‚½‚¾‹C’e‚̃`ƒFƒbƒN‚Í‚µ‚Ä‚Ü‚¹‚ñB)
- pc.h
- pc.c
- pc_can_reach() ’ljÁB
- skill.c
- skill_check_condition()Askill_castend_pos2() C³B
- skill_db.txt
- Žc‰eC³B
-Escript.c
- set_posword() C³B
-¦ˆêl‚ŃeƒXƒg‚ÍÏ‚ñ‚Å‚¢‚Ü‚·‚ª‘¼‚Ìl‚ɳ‚µ‚­Œ©‚¦‚é‚©‚Ç‚¤‚©‚Í–¢Šm”F‚Å‚·B
-•Ï‚È‚Ì‚©‚Ç‚¤‚©•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
-
---------------
-//0490 by nabe
-
-EꊃXƒLƒ‹ƒGƒtƒFƒNƒg‚Ń}ƒbƒvŽI‚ª—Ž‚¿‚邱‚Æ‚ª‚ ‚Á‚½‚Ì‚ðC³B
- clif.c
- clif_skill_poseffect()‚Ì
- unsigned char buf[16];‚ðAunsigned char buf[32];‚ÉC³B
-
---------------
-//0489 by Ž€_
-
-E0483‚̃oƒOC³Bbattle_athena.conf‚Ìquest_skill_learn‚ª³‚µ‚­“K—p‚³‚ê‚é‚悤‚É•ÏX‚Æ–â‘肪‚ ‚Á‚½•”•ª‚ÌC³B(ƒeƒXƒgÏ‚Ý)
- pc.c
- pc_calc_skilltree()Apc_skill() C³B
- atcommand.c
- @lostskill ­‚µC³B
-EƒJ[ƒh‚ÌŽg—p‚É‚æ‚éƒ}ƒbƒvŽIƒ_ƒEƒ“‚ð–h‚®‚½‚ß‚É­‚µC³B(‚½‚¾ƒJ[ƒh‚ÌŽg—p‚É‚æ‚éƒ}ƒbƒvŽIƒ_ƒEƒ“‚ðÄŒ»‚Å‚«‚È‚©‚Á‚½‚Ì‚Å–{“–‚ÉŽ¡‚Á‚½‚©‚Ç‚¤‚©‚Í•s–¾...Š¾)
- pc.c
- pc_insert_card() C³B
-Epc.h
- pc_ishiding() C³B
-
---------------
-//0488 by hoenny
-
-ERG‚̃XƒeƒB[ƒ‹ƒRƒCƒ“ŽÀ‘•
-EƒXƒeƒB[ƒ‹C³
-(“ñƒXƒLƒ‹ŠFˆê“xƒXƒ`[ƒ‹‚µ‚½ê‡‚Ü‚½ƒXƒ`[ƒ‹‚·‚邱‚Æ‚ª‚Å‚«‚È‚¢.‚»‚µ‚ăXƒLƒ‹¬Œ÷‚ÌŽžƒ‚ƒ“ƒXƒ^[‚ÍUŒ‚‚·‚é‚悤‚ÉC³‚µ‚½.ƒGƒtƒFƒNƒg‚ͬŒ÷‚ÌŽž‚¾‚¯o‚é‚悤‚ÉC³‚µ‚½.)
- db/skill_db.txt
- ƒXƒeƒB[ƒ‹ƒRƒCƒ“C³
- map/pc.h
- pc_coin_steal()’ljÁ
- map/pc.c
- pc_coin_steal()’ljÁ
- pc_item_steal()C³
- map/skill.c
- skill_castend_nodamage_id()C³
-
---------------
-//0487 by hoenny
-
-E485‚Ì–â‘è“_‚¿‚å‚Á‚ÆC³
- map/pc.c
- pc_item_steal()C³
- map/skill.c
- skill_castend_nodamage_id()C³
-
---------------
-//0486 by Ž‚Žqo^.^o
-
-db/class_equip_db.txtC³
-—ô‚¯‚½‘å’n‚Ì‘A”R‚¦‚鑾—z‚Ì‘AŠ£‚¢‚Ä‚é•—‚Ì‘AàÒŽ¦˜^AƒvƒŠ[ƒXƒg‚Í‘•”õ‚·‚邱‚Æ‚ª‚Å‚«‚È‚¢–â‘èC³
-
---------------
-//0485 by hoenny
-
-E RG‚̃Xƒiƒbƒ`ƒƒ[ŽÀ‘•
-E ƒXƒeƒB[ƒ‹C³
-E ˜I“XŠJÝ‚ÌŽž skill_check_condition‚Åó‘Ô‚ðƒ`ƒFƒN‚·‚é‚悤‚ÉC³
- map/pc.h
- pc_ishiding()’ljÁ
- pc_item_steal()’ljÁ
- map/pc.c
- pc_item_steal()’ljÁ
- map/skill.c
- skill_castend_nodamage_id()C³
- skill_additional_effect()C³
- skill_check_condition()C³
-
---------------
-//0484 by ŒÓ’±—–
-
-EŠo‚¦‚Ä‚È‚¢ƒNƒGƒXƒgƒXƒLƒ‹‚ɃXƒLƒ‹ƒ|ƒCƒ“ƒg‚ðU‚ê‚é–â‘èC³
- pc.c
- pc_calc_skilltree()‚ŃNƒGƒXƒgƒXƒLƒ‹‚̃`ƒFƒbƒN’ljÁ
- skill.c
- skill_readdb()‚Åinf2‚ð“ǂނ悤‚ÉC³
-
-EƒyƒRƒyƒR‹RæAƒtƒ@ƒ‹ƒRƒ“‚̃AƒCƒRƒ“‚ªƒƒOƒCƒ“’¼Œã‚É‚Í•\Ž¦‚³‚ê‚È‚¢–â‘èC³
- clif.c
- clif_parse_LoadEndAck()C³
-
---------------
-//0483 by Ž€_
-
-E0482‚Ì“K—pB
- npc_event_skillget.txt C³B
- script.c C³B
- skill.c C³B
- pc.c C³B
-
---------------
-//0482 by ŒÓ’±—–
-
-EƒNƒGƒXƒgƒXƒLƒ‹‚̃XƒNƒŠƒvƒg­‚µC³
-EƒXƒNƒŠƒvƒggetskilllv‚ðŒÄ‚Ԃƃ}ƒbƒvƒT[ƒo[‚ª—Ž‚¿‚éƒoƒOC³
- (conf/)
- npc_event_skillget.txt
- o—ˆ‚邾‚¯•Ï”‚ðŽg‚í‚È‚¢‚悤‚ÉC³i–¢ƒeƒXƒgj
- (map/)
- script.c
- buildin_getskilllv()C³
-
-EƒXƒeƒB[ƒ‹‚ÅŽ¸”sŽž‚̃GƒtƒFƒNƒg•ÏX
-E“¯‚¶MOB‚É‚Í‚P‰ñ‚µ‚©ƒXƒeƒB[ƒ‹‚Å‚«‚È‚¢‚悤‚ÉC³
- (map/)
- skill.c
- skill_castend_nodamage_id()C³
- map.h
- struct mob_data‚Ésteal_countƒƒ“ƒo’ljÁ
- mob.c
- mob_spawn()C³Asteal_count‚ð0‚ɉŠú‰»‚·‚é‚悤‚É
-
-EƒCƒhƒDƒ“‚Ì—ÑŒç‚ÅHP‚ª32767‚ð’´‚¦‚é‚ƃT[ƒo[‚ª—Ž‚¿‚éƒoƒOC³i–¢ƒeƒXƒgj
- (map/)
- pc.c
- pc_calcstatus()C³
-
---------------
-//0481 by Ž€_
-
-E‚±‚ê‚Ì“K—p‚É‚Í‹C‚ð‚‚¯‚Ä‚­‚¾‚³‚¢B0478‚̌Ӓ±—–‚³‚ñ‚Ì•¨‚ð Athena.txt‚̃f[ƒ^Œ`Ž®•ÏX‚¹‚¸‚ɃNƒFƒXƒgƒXƒLƒ‹‚ðŠo‚¦‚é‚悤‚Éì‚Á‚½•¨‚Å‚·BŽ©•ª‚ªì‚Á‚Ä‚éÅ’†‚ɌӒ±—–‚³‚ñ‚ª“¯‚¶•¨‚ðƒAƒbƒv‚µ‚Ä‚­‚ꂽ‚Ì‚Å‚·‚ªƒf[ƒ^‚Í•Ï‚¦‚È‚¢•û‚ª‚¢‚¢‚ÆŽv‚Á‚ÄŽ©•ª‚Ì•¨‚àƒAƒbƒv‚µ‚Ü‚µ‚½B’ˆÓ‚·‚邱‚Æ‚Í0478‚Ìathena.txt‚ÍŽg‚¦‚È‚¢‚ÆŒ¾‚¤‚±‚Æ‚Å‚·B0478‘O‚Ì•¨‚ðŽg‚Á‚Ä‚­‚¾‚³‚¢B
-Eskill_db.txt‚Éinf2‚ð’ljÁ‚µ‚Ä‚±‚ê‚ðŽg‚Á‚ăNƒFƒXƒgƒXƒLƒ‹‚©‚Ç‚¤‚©‚ð”»’f‚·‚éŽd‘g‚Ý‚Å‚·B
- skill.h C³B
- skill.c
- skill_readdb()C³‚Æ­‚µC³B
- skill_get_inf2() ’ljÁB
- skill_db.txt C³B
- skill_tree.txt C³B(0478‘O‚Ì•¨)
- clif.c
- clif_skillinfoblock() C³B
- char.c C³B(0478‘O‚Ì•¨)
-Ebattle_athena.conf‚Équest_skill_learn’ljÁB
- battle.h C³B
- battle.c
- battle_config_read() C³B
- battle_athena.conf C³B
-E/resetskill‚ðbattle_athena.conf‚Équest_skill_learn‚ÌÝ’è‚ɇ‚킹‚Äquest_skill_learn‚ªyes‚Ìꇂ̓XƒLƒ‹ƒ|ƒCƒ“ƒg‚ɉÁŽZ‚µ‚Äquest_skill_learn‚ªno‚Ȃ烊ƒZƒbƒg‚Í‚³‚ê‚邪ƒXƒLƒ‹ƒ|ƒCƒ“ƒg‚ɉÁŽZ‚³‚ê‚Ü‚¹‚ñB
- pc.c
- pc_skill()Apc_resetskill() C³‚Æ­‚µC³B
- pc.h C³B
- atcommand.c C³B
- atcommnad_athena.conf C³B
-EƒXƒNƒŠƒvƒg‚ÌskillƒRƒ}ƒ“ƒh‚ŃNƒGƒXƒgƒXƒLƒ‹‚ðŠo‚¦‚ç‚ê‚é‚Ì‚Í“¯‚¶‚Å‚·‚ªÅŒã‚̃tƒ‰ƒO‚ª2‚©‚ç0‚É•Ï‚í‚Á‚Ä‚Ü‚·‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
- npc_test_skill.txt C³B
- npc_event_skillget.txt C³B
- conf_ref.txt C³B
- client_packet.txt C³B
-
---------------
-//0480 by Kalen
-
-EEventskill’ljÁ
- conf/npc_event_skillget.txt
-
-Emap_athena.conf•ÏX
- warp.txt‚Ì“Ç‚Ýž‚Ý—Dæ“x‚ð•ÏX
- prt_castle“™A‹ŒEP‚̃[ƒv‚ƈقȂéꊂɕÏX‚³‚ꂽê‡
- æ‚É“Ç‚Ýž‚ñ‚¾•û‚ª—D悳‚ê‚é‚Ì‚ÅAEP‚Ì‚‚¢‡‚Ì‚ª‚æ‚낵‚¢‚©‚Æ
- conf/map_athena.conf
-
---------------
-//0478 by ŒÓ’±—–
-
-***
- Athena.txt‚̃f[ƒ^Œ`Ž®•ÏX!! (Ž©“®“I‚É•ÏŠ·‚³‚ê‚Ü‚·)
- ƒoƒbƒNƒAƒbƒv‚ð–Y‚ꂸ‚É!
- Data format of athena.txt is changed!! (convert automatically)
- DONT FORGET BACKUP!!
-***
-
-EƒNƒGƒXƒgƒXƒLƒ‹ŽÀ‘•
-EƒXƒNƒŠƒvƒg‚ŃXƒLƒ‹ƒŒƒxƒ‹‚ðƒ`ƒFƒbƒN‚Å‚«‚é‚悤‚É
- EƒXƒNƒŠƒvƒg‚ÌskillƒRƒ}ƒ“ƒh‚ŃNƒGƒXƒgƒXƒLƒ‹‚ðŠo‚¦‚ç‚ê‚Ü‚·B
- Žg—p•û–@„ skill ƒXƒLƒ‹ID,ƒXƒLƒ‹LV[,ƒtƒ‰ƒO]
- ƒtƒ‰ƒO‚ÍÈ—ª‰Â”\‚ÅAÈ—ª‚·‚é‚Æ‚P‚ðŽw’肵‚½‚±‚Æ‚É‚È‚è‚Ü‚·B
- ‚P‚Å‘•”õ•i‚É‚æ‚éˆêŽž“I‚ÈK“¾A‚Q‚ŃNƒGƒXƒg‚É‚æ‚éP‹v“I‚ÈK“¾‚Å‚·B
- P‹v“I‚ÈK“¾‚Ìê‡Askill_tree.txt‚Ɉˑ¶‚µ‚Ü‚·
- EgetskilllvƒRƒ}ƒ“ƒh’ljÁ
- Žg—p•û–@„ getskilllv(ƒXƒLƒ‹ID) –ß‚è’l‚̓Œƒxƒ‹‚Å‚·B0‚Å–¢K“¾B
-
- (conf/)
- npc_test_skill.txt
- ƒTƒ“ƒvƒ‹
- (db/)
- skill_tree.txt
- ƒNƒGƒXƒgƒXƒLƒ‹‚Æ‚µ‚Ä•K—vƒXƒLƒ‹ID‚É-1‚ðÝ’èB
- (char/)
- char.c
- ƒtƒ‰ƒO‚àathena.txt‚É•Û‘¶‚·‚é‚悤‚ÉB
- ˆÈ‘O‚ÌŒ`Ž®‚̃f[ƒ^‚à“Ç‚Ýž‚ß‚Ü‚·B
- (map/)
- pc.c/pc.h
- pc_skill(),pc_calc_skilltree()‚È‚ÇC³
- script.c
- buildin_skill(),buildin_getskillid()‚È‚ÇC³
-
-E@questskill,@lostskill’ljÁ
- E@questskill ƒXƒLƒ‹ID ‚ŃNƒGƒXƒgƒXƒLƒ‹‚ðŠo‚¦‚Ü‚·B(ƒNƒGƒXƒgƒXƒLƒ‹‚Ì‚Ý)
- E@lostskill ƒXƒLƒ‹ID ‚ŃXƒLƒ‹‚ð–Y‚ê‚Ü‚·B(ƒNƒGƒXƒgƒXƒLƒ‹ˆÈŠO‚àOK)
-
- atcommand.c/atcommand.h
- struct Atcommand_Config‚Élostskill,questskillƒƒ“ƒo’ljÁ
- @questskill,@lostskillˆ—’ljÁ
-
---------------
-//0477 by nabe
-
-Eˆê•”•Ï”‚Ì錾ˆÊ’u‚Ì•ÏX‚Ì‚ÝiLinux“™‚ŃRƒ“ƒpƒCƒ‹‚µ‚â‚·‚¢‚悤‚ÉjB
- atcommand.c,battle.c,clif.c,mob.c,npc.c,skill.c
-
---------------
-//0476 by nabe
-
-Econf/ ‚¿‚å‚Á‚Æ®—
- conf/map_athena.confC³B
- tortoise.txt‚ðnpc_town_alberta.txt’†‚Ɉړ®B
- npc_script2.txt‚̃Rƒ‚ƒhƒKƒCƒh‚ðnpc_town_comodo.txt’†‚Ɉړ®B
-
-Enpc‚ªƒLƒƒƒ‰–¼‚ð’‚é‚Æ‚«‚̃oƒOC³
- map/script.c
- buildin_strcharinfo()‚ŃLƒƒƒ‰–¼—p‚̃ƒ‚ƒŠ‚ð
- static‚ÉŠm•Û‚µ‚Ä‚µ‚Ü‚Á‚Ä‚¢‚½‚Ì‚ðAmalloc‚ÉC³B
-
---------------
-//0475 by hoenny
-
-“D–_‚̃XƒeƒB[ƒ‹ŽÀ‘•B
-ƒMƒ‹ƒh¶¬‚ÌŽžƒGƒ“ƒyƒŠƒEƒ€Á–Õ‚·‚é‚悤‚ÉC³B
- map/guild.c
- guild_create()C³B
- guild_created()C³B
- map/skill.c
- skill_castend_nodamage_id()C³B
-
---------------
-//0474 by Ž€_
-
-E0471‚̸—û‚ÌŽž•\Ž¦‚³‚ê‚镶Žš‚ÌÝ’è‚ðmap_athena.conf‚©‚çscript_athena.conf‚É•ÏXB
- script.c
- do_init_script() C³‚Æ­‚µC³B
- script.h C³B
- script_athena.conf ’ljÁB
- map_athena.conf C³B
- map.c
- map_config_read() C³B
-EŒÃ‚¢Šª•¨AƒvƒŒƒ[ƒ“ƒgƒ{ƒbƒNƒXŽÀ‘•‚Æ­‚µŽd—l•ÏXB
-ƒ‰ƒ“ƒ_ƒ€‚ŃAƒCƒeƒ€‚𓾂镨‚ɃfƒtƒHƒ‹ƒg‚Åo‚éƒAƒCƒeƒ€‚ðÝ’è‚Å‚«‚é‚悤‚É•ÏXB¡‚ÌŽd—l‚Å‚Í1000‰ñ‚܂ŃAƒCƒeƒ€‚ª‘I‘ð‚³‚ê‚È‚©‚Á‚½‚çƒfƒtƒHƒ‹ƒgƒAƒCƒeƒ€‚ªo‚é‚悤‚É‚È‚Á‚Ä‚¢‚Ü‚·BƒfƒtƒHƒ‹ƒgƒAƒCƒeƒ€‚ª0‚Ìꇂ̓AƒCƒeƒ€‚𓾂ç‚ê‚Ü‚¹‚ñB
-Ý’è‚·‚éŠm—¦‚ð*1000‚©‚ç*10000‚É•ÏXB‚½‚¾item_~.txt‚ÌC³‚Í‚â‚Á‚Ä‚¢‚Ü‚¹‚ñB’N‚©‚â‚Á‚Ä‚­‚¾‚³‚¢B(‘¼—Í–{Šè)
- itemdb.c
- temdb_read_randomitem() C³B
- itemdb_searchrandomid() C³B
- item_purplebox.txt ‚©‚ç item_violetbox.txt ‚ÉC³B
- item_giftbox.txtAitem_scroll.txt ’ljÁB(move‚³‚ñ‚ ‚肪‚Æ‚¤B)
- item_db.txt
- ŒÃ‚¢Šª•¨AƒvƒŒƒ[ƒ“ƒgƒ{ƒbƒNƒX C³B
-Etrade.c
- trade_tradecommit() C³Bpc_delitem()‚ðŽg‚¤‚悤‚É•ÏXB
-¦ƒeƒXƒg‚Í‚â‚Á‚Ä‚¢‚Ü‚¹‚ñ‚Ì‚Å–â‘肪‚ ‚Á‚½‚ç•ñ‚µ‚Ä‚­‚¾‚³‚¢B
-
---------------
-//0473 by Kuro
-
-Eclass_equip_db‚ðˆê•”C³
- db/class_equip_db.txt
-
---------------
-//0471 by hoenny
-
-»˜B‚ÌŽžo‚镶‚ð•Ï‚¦‚邱‚Æ‚ª‚Å‚«‚é‚悤‚É‚µ‚Ü‚µ‚½.(map_athena.conf‚Å’²ß‰Â”\)
-‹CŒ÷‚Ì”Žš‚ªŽsœD‚ÌŽžŽÀÛ…˜H•\Ž¦}—ÎC³
- conf/map_athena.conf
- refine_posword:’ljÁB
- map/map.c
- map_config_read()C³B
- map/script.h
- do_set_posword()’ljÁB
- map/script.c
- do_set_posword()’ljÁB
- buildin_getequipname()C³B
- map/skill.c
- skill_status_change_start()C³B
-
---------------
-//0470 by Ž€_
-
-E»‘¢‚ÌŽž‘®«Î‚ª“ñ“xŒ¸‚é–â‘èC³B(ŽÀ‚Í“ñ“xŒ¸‚é‚悤‚ÉŒ©‚¦‚邾‚¯‚Ń}ƒbƒv‚ðˆÚ“®‚·‚é‚Ƴ‚µ‚­•\Ž¦‚³‚ê‚Ü‚·‚ª...)
- pc.hApc.c
- pc_delitem() C³B
- npc.cAscript.cAstorage.cApet.c
- pc_delitem()‚ð‘S‚ÄC³B
- skill.c
- skill_produce_mix() C³B
-
---------------
-//469 by ”g˜Q
-
-Enpc_mob_job.txtAnpc_monster.txtAnpc_monster30.txtAmob_db.txt‚̃‚ƒ“ƒX–¼‚ðC³
-Eitem_db.txt‚̉ñ•œƒAƒCƒeƒ€‚̉ñ•œ—Ê‚ðƒWƒ…ƒm[Œã‚Ì‚à‚Ì‚ÉC³
-
---------------
-//468 by Kuro
-
-E–‚Œ•»ìƒNƒGƒXƒg’ljÁ
- conf/npc_event_ma_sword.txt
-
---------------
-//467 by nini
-
-EBB‚ª—¼ŽèŒ•‚Å‚µ‚©”­“®‚µ‚È‚©‚Á‚½‚Æ‚±‚ëC³¨‚·‚ׂĂ̕Ší‚Å
-EAR‚ª—¼Žè•€‚Å‚µ‚©”­“®‚µ‚È‚©‚Á‚½‚Æ‚±‚ëC³¨•ÐŽè•€A—¼Žè•€A“ÝŠí
-EƒXƒsƒAƒNƒCƒbƒPƒ“”­“®‚ð‘„‚¾‚¯‚É
-EƒLƒƒƒXƒgƒLƒƒƒ“ƒZƒ‹‚³‚ê‚È‚¢‚à‚̂ɃOƒ‰ƒ“ƒhƒNƒƒXAƒ[ƒO‚̃XƒgƒŠƒbƒvƒVƒŠ[ƒY’ljÁ
-EƒuƒŠƒbƒcƒr[ƒg‚ªƒLƒƒƒXƒgƒLƒƒƒ“ƒZƒ‹‚³‚ê‚È‚­‚È‚Á‚Ä‚½“_C³
- map/skill.c
- skill_use_id()@C³
- skill_check_condition()@C³
-E2-2EƒXƒLƒ‹‚̃LƒƒƒXƒgEƒfƒBƒŒƒC’ljÁ
- db/cast_db.txt
-
-
---------------
-//466 by hoenny
-
-Eˆ¢C—…”e–PŒC³(ŒöŽ®C³‹y‚Ñ spÁ–Õ‚ª‚·‚®Œ©‚¦‚é‚悤‚É)
-E’~‹C‚ÌŽž‹C’e‚ªŒ©‚¦‚é‚悤‚ÉC³(Mr.NO NAME—l‚̃pƒPî•ñ‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·.‹C’e‚ªÁ‚¦‚éƒpƒPî•ñ‚ª•s‘«‚Å‚·.)
-EƒpƒŠ‚̉H‚âƒeƒŒƒ|[ƒg1‚ð˜A‘±Žg—p‚ÌŽž,ŽIƒI[ƒo[‚ª”­¶‚µ‚È‚¢‚悤‚ɉ¼‰‚ß‚ÅC³
- doc/client_packet.txt
- 0x1e1ƒpƒPî•ñ’ljÁ
- map/battle.c
- battle_calc_weapon_attack()C³
- map/clif.h
- clif_spiritball_cre()’ljÁ
- clif_spiritball_del()’ljÁ
- map/clif.c
- packet_len_table[]C³
- clif_spiritball_cre()’ljÁ
- clif_spiritball_del()’ljÁ
- clif_changemap()C³
- map/skill.c
- skill_castend_nodamage_id()C³
- skill_check_condition()C³
-
---------------
-//0465 by Ž€_
-
-EƒŠƒUƒŒƒNƒVƒ‡ƒ“‚ƃnƒCƒfƒBƒ“ƒOAƒuƒŠƒbƒcƒr[ƒg‚̃oƒOC³B(ƒuƒŠƒbƒcƒr[ƒg‚Í•ñ‚Í‚È‚©‚Á‚½‚Ì‚Å‚·‚ª•ªÍ‚µ‚½‚ç–â‘肪‚ ‚Á‚½‚Ì‚ÅC³B)
- skill.c
- skill_use_id() C³B
- skill_castend_nodamage_id() C³B
-E0455‚ÌNPC‚ðŒ³‚É–ß‚µ‚Ü‚µ‚½B
- npc_event_ice.txt C³B
- npc_event_potion.txt C³B
- npc_town_geffen.txt C³Bi454‚Ì•¨‚É–ß‚µ‚Ü‚µ‚½Bj
-E0451‚̃¿ƒ}ƒbƒv‚ðƒRƒ}ƒ“ƒgƒAƒEƒg‚µ‚Ü‚µ‚½B•K—v‚È•û‚̓Rƒ}ƒ“ƒgƒAƒEƒg‚ð‚È‚­‚µ‚ÄŽg‚Á‚Ä‚­‚¾‚³‚¢B
- map_athena.conf C³B
-EƒŠƒUƒŒƒNƒVƒ‡ƒ“‚Í0442‚Ì–â‘è‚ŃnƒCƒfƒBƒ“ƒOAƒuƒŠƒbƒcƒr[ƒg‚Í0445‚Ì–â‘è‚Å‚µ‚½B‚»‚ê‚Æ0445‚ÌC³‚ŃXƒLƒ‹”Ô†‚ðenum‚Å錾‚µ‚½•¶Žš‚É•Ï‚¦‚Ä‚¢‚Ü‚·‚ª‚»‚ê‚É—Ž‚Æ‚µ‚ª‚ ‚é‚悤‚Å‚·B(ƒnƒCƒfƒBƒ“ƒOAƒuƒŠƒbƒcƒr[ƒg‚Í‚»‚Ì‚¹‚¢‚Å‚µ‚½B)‘O‚̔Ԇƒ\[ƒX‚Æ”ä‚ׂĖâ‘肪‚ ‚é•”•ª‚ÍC³‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B‚¿‚å‚Á‚Æ–Ê“|‚Å‚·‚ª...
-
---------------
-//464 by ”g˜Q
-
-Eƒ‚ƒ“ƒNƒXƒLƒ‹‚Ì•”•ª‚ɂ‚¢‚ÄC³(–¢ŽÀ‘•ƒXƒŒ‚É‘‚©‚ê‚Ä‚¢‚½‚à‚Ì‚ð’ljÁ‚µ‚½‚¾‚¯‚Å‚·B
- skill.c
- skill_use_id()C³
- cast_db.txt
- ƒ‚ƒ“ƒNƒXƒLƒ‹’ljÁ
-
---------------
-//463 by ŒÓ’±—–
-
-E462‚̃oƒOC³
- ENPC‚ÌSHOP‚Ì•s“s‡C³
- EREADME‚̊ԈႢC³iwarpwaitingpc‚ªwarpwaitingroom‚É‚È‚Á‚Ä‚¢‚½j
-
- map.h
- struct npc_data‚Ìchat_id‚̈ʒu‚ðC³
-
---------------
-//462 by ŒÓ’±—–
-
-ENPCƒ`ƒƒƒbƒgì¬
- Ewaitingroom–½—ß‚ÅNPCƒ`ƒƒƒbƒg‚ð쬂µ‚Ü‚·B
- ˆø”‚Í waitingroom "ƒ`ƒƒƒbƒg–¼",§ŒÀl”,ƒCƒxƒ“ƒg–¼ ‚Å‚·B
- ƒCƒxƒ“ƒg–¼‚Íl”‚ªÅ‘å‚É‚È‚Á‚½‚Æ‚«‚É‹N‚±‚·ƒCƒxƒ“ƒg–¼‚ÅAÈ—ª‰Â”\B
- Ewarpwaitingpc–½—ß‚ÅAƒ`ƒƒƒbƒg“à‚É‚¢‚éPC‘Sˆõ‚ðƒ[ƒv‚Å‚«‚Ü‚·B
- ˆø”‚Íwarp‚Æ“¯‚¶‚ÅAwarpwaitingpc "ƒ}ƒbƒv–¼",x,y ‚Å‚·B
-
- map.h
- struct npc_data‚Æchat_data‚ðC³
- script.c
- buildin_waitingroom(),buildin_warpwaitingpc()’ljÁ
- chat.c/chat.h
- FXC³
- clif.c
- clif_getareachar_npc()Aclif_joinchatok()‚È‚ÇC³
-
-ENPC‚ÌOnInitƒCƒxƒ“ƒg‚ðƒT[ƒo[‹N“®Žž‚ɌĂԂ悤‚ÉB
-EƒGƒNƒXƒ|[ƒg‚·‚é‚Æ‚«‚ÌNPC–¼‚Æ•\Ž¦ã‚ÌNPC–¼‚ð•ÊX‚ÉÝ’è‰Â”\‚ÉB
- E“¯‚¶NPC–¼‚̃Cƒxƒ“ƒg‚Íd•¡‚Å‚«‚È‚¢‚½‚ßAƒGƒNƒXƒ|[ƒg—pNPC–¼‚ðŽg‚¢A
- “¯‚¶NPC–¼‚Å‚à•Ê‚ÌNPC‚Æ‚µ‚ÄŽ¯•Ê‚Å‚«‚é‚悤‚É‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
- (‚à‚¿‚ë‚ñAƒCƒxƒ“ƒgˆ—‚ðs‚í‚È‚¢ê‡‚Í‚»‚Ì•K—v‚Í‚ ‚è‚Ü‚¹‚ñB)
- Enpc_*.txt‚Ìscript–½—ß‚ÅNPC‚Ì–¼‘O‚ðÝ’è‚·‚é‚Æ‚«A
- u•\Ž¦–¼::ƒGƒNƒXƒ|[ƒg–¼v‚Æ‚·‚é‚ÆA•\Ž¦‚·‚é–¼‘O‚ÆAƒCƒxƒ“ƒg—p‚É
- ƒGƒNƒXƒ|[ƒg‚·‚é–¼‘O‚ð•ÊX‚ÉŽw’è‚Å‚«‚Ü‚·B
- •\Ž¦–¼‚ª‘S‚­“¯‚¶•ÊX‚ÌNPC‚ŃCƒxƒ“ƒg‚ð“®ì‚³‚¹‚é‚Æ‚«‚ÉŽg—p‚µ‚Ü‚·B
- E‚â‚₱‚µ‚¢‚Ì‚ÅPVP‚ÌnpcƒXƒNƒŠƒvƒg‚ðŒ©‚ÄƒCƒ[ƒW‚ð’Í‚ñ‚Å‚­‚¾‚³‚¢B
-
- npc.c/npc.h
- npc_parse_*()‚ÌC³
- npc_event_do_oninit(),npc_event_do_oninit_sub()‚ȂǒljÁ
- map.c/map.h
- do_init()‚Ånpc_event_do_oninit()‚ðŒÄ‚Ԃ悤‚É
- struct npc_dataC³
-
-EƒXƒNƒŠƒvƒggetmapusersAgetareausers‚Ì’v–½“I‚ȃoƒOC³
- EŠY“–ƒ}ƒbƒv‚ª‘¶Ý‚µ‚È‚¢ê‡Aƒ}ƒbƒvƒT[ƒo[‚ª—Ž‚¿‚é‚Ì‚ðC³B
- Eƒ}ƒbƒv‚ª‘¶Ý‚µ‚È‚¢‚ÆA-1‚ð•Ô‚·‚悤‚É‚µ‚½B
-
- script.c
- buildin_getmapusers(),buildin_getareausers()C³
-
-Epvp‚̃XƒNƒŠƒvƒgC³
- Eƒ`ƒƒƒbƒgƒ‹[ƒ€‚ðì‚é‚悤‚É‚µ‚½
-
- (conf/)
- npc_pvproom.txt
- ‘S‚Ä‚ÌNPC‚̃GƒNƒXƒ|[ƒg–¼(pvp??r)Ý’è
- OnInit:‚Åwaitingroom‚ðŽÀs‚·‚é‚悤‚É
-
---------------
-//461 by Kuro
-EƒAƒRƒ‰ƒCƒg“]EƒNƒGƒXƒgˆê•”C³
- conf/npc_job_aco.txt
-
---------------
-//460 by sagitarius
-Eitem_db‚̊ԈႢC³
- 4032,Ambernite_Card,ƒAƒ“ƒo[ƒiƒCƒgƒJ[ƒh,6,20,,10,,2,,,,,32,,,,{},{},,C³
-
---------------
-//459 by hoenny
-EƒAƒhƒŒƒiƒŠƒ“ƒ‰ƒbƒVƒ…Žg—p‚ÌŽž•€ƒ`ƒFƒbƒN(Ž©•ª‚¾‚¯)
-EOld_Blue_Box‚ÌŠm—¦‚ª‚‚¢‚Æ‚¢‚¤•ñ‚É‚æ‚Á‚ÄC³
-EScript.c‚Í0455ˆÈ‘O‚±‚ƂňøŠ·(NPC‚ð‚±‚±‚ɇ‚킹‚ÄC³‚µ‚Ä‚­‚¾‚³‚¢)
-Eˆ¢C—…”e–PŒC³(ŒöŽ®‚ðC³‚µ‚½‚ñ‚Å‚·‚ª, ³Šm‚©‚Í‚æ‚­•ª‚©‚ç‚È‚¢‚Å‚·‚Ë.)
-EC“¹‘m‚Ì’~‹C,”šŠú‚̉¼ŽÀ‘•.(ˆ¢C—…”e–PŒŽg—p‚ÌŽž’~‹C,”šŠúó‘Ô‚ðƒ`ƒFƒbƒN‚µ‚Ü‚·. )
-EƒyƒRƒyƒR‚Éæ‚Á‚½Œã‚ÉAADPD‚ªŠÔˆá‚Á‚½‚±‚ÆC³(ƒoƒO‚𒼂µ‚Ä‚ ‚°‚½‚ª, ’¼‚·‘O‚±‚Æ‚É•Ï‚í‚邹‚¢‚Å‚Ü‚½C³)
-‚»‚ÌŠO‚É‚àC³‚ð‚µ‚½‚悤‚È‚Ì‚ÉŠo‚¦‚È‚¢‚Å‚·‚Ë.‚»‚µ‚ÄŒë‚Á‚½•”•ª‚ª‚ ‚ê‚ÎŽw“E‚µ‚Ä‚­‚¾‚³‚¢.
- conf/npc_event_ice.txt
- checkweightC³
- conf/npc_town_geffen.txt
- checkweightC³
- db/item_purplebox.txt
- Old_Blue_BoxC³
- map/battle.c
- battle_calc_weapon_attack()C³
- map/pc.c
- pc_spheal()C³
- pc_calcstatus()C³
- map/script.c
- buildin_checkweight()C³
- map/skill.h
- SC_ EXPLOSIONSPIRITS’ljÁ
- map/skill.c
- SkillStatusChangeTable[]C³
- skill_castend_nodamage_id()C³
- skill_check_condition()C³
-
---------------
-//458 by Kuro
-EƒAƒRƒ‰ƒCƒg“]EƒNƒGƒXƒg’ljÁ
- conf/npc_job_aco.txt
- ‰ï˜b•¶‚ª•ª‚©‚ç‚È‚©‚Á‚½‚Ì‚Å“K“–‚É‚µ‚Ä‚ ‚è‚Ü‚·B‚Ü‚½ANPC‚ÌŠOŒ©‚Ì•Ï‚¦•û‚ª•ª‚©‚ç‚È‚©‚Á‚½‚Ì‚Å“K“–‚É‚µ‚Ä‚ ‚è‚Ü‚·B
- •ª‚©‚é•û‚ÍC³‚µ‚Ä‚¨‚¢‚ĉº‚³‚¢B
-
---------------
-//0457 by Kalen
-
-EPVPŠÖ˜A‚ÌNPC’ljÁ
- conf/npc_pvp.txt
- conf/npc_pvproom.txt
-
---------------
-//0456 by Ž€_
-
-Eƒ‚ƒ“ƒXƒ^[‚ÌʼnUŒ‚ŽžŠÔ‚ª’·‚·‚¬‚é–â‘èC³B
-ƒ‚ƒ“ƒXƒ^[‚ÌʼnUŒ‚ŽžŠÔ‚ð¡‚Ü‚Å‚Ímob_db‚ÌaDelay‚ðŽg‚Á‚Ä‚¢‚Ü‚µ‚½‚ª‚±‚ê‚ðaMotion‚É•ÏX‚µ‚Ü‚µ‚½B¡‚Ü‚Å‚Ímob_db‚ÌaMotion‚̓Sƒ~‚Å‚µ‚½‚ª¡“x‚©‚ç‚̓Sƒ~‚Å‚Í‚ ‚è‚Ü‚¹‚ñBaMotion‚³‚¦³‚µ‚¯‚ê‚΃‚ƒ“ƒXƒ^[‚ÌUŒ‚‚̃‚[ƒVƒ‡ƒ“‚Ì‘O‚Ƀ_ƒ[ƒW‚ªo‚Ä‚­‚é–â‘è‚à‚È‚­‚È‚é‚Í‚¸‚Å‚·B
- mob.c
- mob_changestate() C³B
-EƒAƒCƒeƒ€‚ð“üŽè‚Å‚«‚È‚¢Žž‚»‚Ì——R‚É“–‚½‚郃bƒZ[ƒW‚ªo‚é‚悤‚É•ÏXB
- pc.c
- pc_additem() C³B
-Ejob_db1.txt‚Ì‚Å–â‘è‚É‚È‚Á‚½.‚ð,‚ÉC³B
-
---------------
-//455 by Mr.NO NAME
-ENPC‚Ƃ̃AƒCƒeƒ€ŒðŠ·‚┃‚¢•¨ŠÖŒW‚ÌScript‚ªo—ˆã‚ª‚Á‚½“–‰‚Ì
-@NPCƒf[ƒ^(npc_event_making.txtAnpc_town_geffen.txt“™)‚Éæ‚ÁŽæ‚èAˆÈ‰º‚ðC³B
- conf/npc_event_ice.txt
- npc_event_potion.txt
- npc_town_geffen.txti454ˆÈ‘O‚Ì•¨‚É–ß‚µ‚Ü‚µ‚½Bj
- map/script.c
- buildin_checkweight()‚ðC³B
-
---------------
-//454 by Kuro
-EƒQƒbƒtƒFƒ“’b–艮‚Å”ƒ‚¢•¨‚ªo—ˆ‚é‚悤‚ÉC³
- conf/npc_town_geffen.txt
-
---------------
-//0451 by code
-E ¡X‚Å‚·‚ªƒ¿ƒNƒ‰ƒCƒAƒ“ƒg‚ɑΉž(ƒ¿ƒNƒ‰ƒCƒAƒ“ƒg‚Ìdata.grf‚ðadata.grf‚Æ‚µ‚Ägrf-files.txt‚Ìadata‚Ì‚Æ‚±‚ë‚É‘‚¢‚Ä‚­‚¾‚³‚¢)
- common/grfio.c
- grfio_setadatafile()’ljÁ
- /grfio.h
- grfio_setadatafile()’ljÁ
- conf/map_athena.conf
- ƒ¿ƒNƒ‰ƒCƒAƒ“ƒg‚̃}ƒbƒv‚ð“Ç‚Ýž‚ނ悤‚É•ÏX
- /npc_warp_a.txt
- ƒ¿ƒ}ƒbƒv‚̃[ƒvƒ|ƒCƒ“ƒg‚ÌÝ’è(‚¿‚å‚Á‚Æ‚¸‚ê‚Ä‚é‚©‚à)
- /grf-files.txt
- ƒ¿ƒNƒ‰ƒCƒAƒ“ƒg‚Ìdata.grf‚ðadata.grf‚Æ‚µ‚Ä“Ç‚Ýž‚ނ悤‚ÉÝ’è
- adata: ‚É‹Lq
-¦ƒ¿ƒNƒ‰ƒCƒAƒ“ƒg‚Í
-@ttp://www.castledragmire.com/ragnarok/
-@‚ ‚½‚è‚©‚ç“üŽè‚µ‚Ä‚­‚¾‚³‚¢B
-
---------------
-//0450 by hoenny
-E ‹R•ºC—ûŽÀ‘•
-E ƒRƒ€ƒpƒ‹ƒVƒ‡ƒ“ƒfƒBƒXƒJƒEƒ“ƒgŽÀ‘•
-E ƒfƒBƒXƒJƒEƒ“ƒgEƒI[ƒo[ƒ`ƒƒ[ƒWC³(”‚ª‚‚¢ê‡ŒvŽZ–@‚ªŠÔˆá‚Á‚½‚±‚Ƃ𒼂µ‚Ü‚µ‚½.)
-E “SŒC³(‘fŽè‚ÈŽž‚à“K—p‚³‚ê‚é‚悤‚É)
-E •€C—ûC³(•ÐŽè•€‚ÈŽž‚à“K—p‚³‚ê‚é‚悤‚É)
-E ƒ{ƒ“ƒSƒ“‚ªUŒ‚‚·‚é‚悤‚ÉC³
- map/pc.c
- pc_calcstatus()C³
- pc_modifybuyvalue()C³
- pc_modifysellvalue()C³
- map/battle.c
- battle_addmastery()C³
- db/mob_db.txt
- ƒ{ƒ“ƒSƒ“C³
-
---------------
-//0449 by Ž€_
-
-E•Ï‚É‚È‚Á‚½ŠC³B
- const.txt
- bAtk‚ÆbDef ’ljÁB
- battle.c
- battle_calc_weapon_attack()‚ðŒ³‚É–ß‚µ‚Ü‚µ‚½B(0445‚Ì•¨)
- map.h
- map_session_data‚ðŒ³‚É–ß‚µ‚Ü‚µ‚½B(0445‚Ì•¨)
- pc.c
- pc_calcstatus() C³B
- pc_bonus() C³B
- item_db.txt‚ðŒ³‚É–ß‚µ‚Ü‚µ‚½B(0446‚Ì•¨)
-
---------------
-//0448 by hoenny
-E‘‘¬C³(pc_walk()‚©‚ç pc_calcstatus()‚Ɉړ®)
-Eő劎—ÊC³
- map/pc.c
- pc_calcstatus()C³B
-
---------------
-//0447 by ‚䂤
-E“ñ“—¬E–î‚Ì‘®«‚𳂵‚­“K‰ž
-EATK‚Ìオ‚éƒJ[ƒh‚ÌŒø‰Ê‚ð•ŠíƒTƒCƒYC³‚È‚µ‚Ì’êã‚°‚É•ÏX
-EATKEDEF‚Ìオ‚éƒJ[ƒh‚ÌŒø‰Ê‚Ì“K‰ž‚ÌŽd•û‚ð•ÏX
-
-map.h
- map_session_data‚Écatk(ƒJ[ƒhATK)‚ð’ljÁ
-
-pc.c
- pc_calcstatus()
- ƒAƒTƒVƒ“‚Ì“ñ“—¬‚ÌUŒ‚‘¬“x‚ðC³‚µ‚½
- ƒXƒNƒŠƒvƒg‚É‚æ‚é‘®«‚ð¶‰E³‚µ‚­“K‰ž‚·‚é‚悤‚É‚µ‚½
- –î‚Ì‘®«‚𳂵‚­“K‰ž‚·‚é‚悤‚É‚µ‚½i‹|‚Ì‘®«—Dæj
- ‚½‚¾‚µA–‚·‚ׂĂÌUŒ‚‚É“K‰ž‚³‚ê‚Ü‚·
- ƒJ[ƒhATK‚̈—‚ð’ljÁ‚µ‚½
-
-battle.c
- battle_calc_weapon_attack()
- ƒJ[ƒgATK‚ð’êã‚°ƒ_ƒ[ƒW‚Æ‚µ‚ÄŒvŽZ‚·‚é‚悤‚É‚µ‚½
-
-item_db.txt
- ƒJ[ƒh‚Ì bonus bAtkAbDef ‚ðíœ
- ‚©‚í‚è‚ÉA‘•”õ‚Æ“¯—l‚ÉATK‚ÆDEF‚ðÝ’è
- i•ÏX‘O‚ðitem_db2.txt‚Æ‚µ‚Ä‚¢‚é‚Ì‚ÅA•s‹ï‡‚ª‚ ‚ê‚Ζ߂µ‚Ä‚­‚¾‚³‚¢j
-
-
---------------
-//0446 by hoenny
-Eƒ~ƒXƒgƒŒƒXƒJ[ƒhŽÀ‘•B
-EƒXƒLƒ‹Žg—p‚ÌŽžƒWƒFƒ€ƒXƒg[ƒ“Á”ïB
-EƒXƒLƒ‹Žg—p‚ÌŽž‘•”õƒ`ƒFƒbƒNB(ƒnƒ“ƒ}[ƒtƒH[ƒ‹‚¾‚¯C³‚µ‚悤‚Æ‚µ‚½‚ª...)
-Eƒnƒ“ƒ}[ƒtƒH[ƒ‹‚͈̔͂𠔼Œa5ƒZƒ‹(‘S25ƒZƒ‹)ƒC³
- map/skill.c
- skill_check_condition()C³B
- skill_castend_pos2()C³B
-
-Eƒ~ƒXƒgƒŒƒXƒJ[ƒhC³B
- db/item_db.txt
-
---------------
-//0445 by Aya
-
-EŠî–{ASPD‚ÆŒvŽZˆ—‚ðC³B
- db/job_db1.txt
- map/pc.c
-ESPŒW”‚ÆŒvŽZˆ—‚ðC³B
- db/job_db1.txt
- map/pc.c
-EƒXƒLƒ‹–¼‚ðenum‚Å錾‚µA‚»‚ê‚ðŽg‚¤‚悤‚É•ÏXB
- map/skill.h
- map/battle.c
- map/pc.c
- map/skill.c
-EƒŠƒJƒoƒŠ[‚̃XƒLƒ‹ID‚ªƒXƒ[ƒ|ƒCƒYƒ“‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ðC³B
- map/skill.c
-EW’†—ÍŒüã‚ɃJ[ƒhŒø‰Ê‚ª“K—p‚³‚ê‚Ä‚¢‚½–â‘è‚ÌC³B
- map/pc.c
-EƒŠƒ€[ƒuƒgƒ‰ƒbƒvAƒXƒvƒŠƒ“ƒOƒgƒ‰ƒbƒvAƒ|ƒCƒYƒ“ƒŠƒAƒNƒg‚̃^[ƒQƒbƒg‚ðC³B
- db/skill_db.txt
-EGMƒAƒJƒEƒ“ƒg‚ðjRO‚Ìclientinfo.xml‚©‚ç’ljÁB
- conf/GM_account.txt
-EwarningC³B
- map/party.c
-EƒLƒƒƒ‰ƒZƒŒ”FØŽž‚Élogin_id2‚̓`ƒFƒbƒN‚µ‚È‚¢‚悤‚É•ÏXB
- login/login.c
-Eobject_def.batˆÈŠO‘Sƒtƒ@ƒCƒ‹‚̉üsƒR[ƒh‚ðLF‚É•ÏXB
-E*.cnfƒtƒ@ƒCƒ‹‚ð*.confƒtƒ@ƒCƒ‹‚É–¼‘O•ÏXB
-
---------------
-//0444 by Ž€_
-
-EGMƒRƒ}ƒ“ƒh‚â@ƒRƒ}ƒ“ƒh‚ɃRƒ}ƒ“ƒh•Ê‚ÉŽg—pƒŒƒxƒ‹‚ðÝ’è‚Å‚«‚é‚悤‚É•ÏX‚Æ@ƒRƒ}ƒ“ƒh­‚µC³B(@where‚Æ@dayA@night‚ÌC³‚Æ‘¼‚̃Lƒƒƒ‰‚ÉŽg‚¤ƒRƒ}ƒ“ƒh‚Ìê‡GMƒŒƒxƒ‹‚ªŽ©•ªˆÈã‚Ìꇎg‚¦‚È‚¢‚悤‚ÉC³B)
- atcommand.h C³B
- atcommand.c C³B
- clif.c C³B
- map/makefile C³B
- map.c
- do_init() C³B
- conf/atcommand_athena.cnf ’ljÁB
-Eׂ©‚¢C³B
- pc.c
- pc_setghosttimer()Apc_skill() C³B
- script.c
- buildin_skill() C³B
-Econf_ref.txt C³B
-Eitem_db.txt
- ”Þ—‚Ì‘z‚¢C³B
-
---------------
-//0442 by ŒÓ’±—–
-
-E‘‘¬ƒ|[ƒVƒ‡ƒ“ŽÀ‘•
- ELv‚âE‹Æ”»’è‚Ís‚¢‚Ü‚¹‚ñ
-
- (db/)
- const.txt
- SC_SpeedPot0,SC_SpeedPot1,SC_SpeedPot2’ljÁ
- item_db.txt
- ‘‘¬ƒ|[ƒVƒ‡ƒ“‚̃XƒNƒŠƒvƒg’ljÁ
- (map/)
- skill.c
- skill_status_change_start()C³
- pc.c
- pc_calcstatus()C³
-
-EPvPƒVƒXƒeƒ€‚̉¼ŽÀ‘•
- Epvpƒ}ƒbƒv‚Å‚ÍŽ©“®“I‚ÉAPC‚Ìpvpƒtƒ‰ƒOonA‡ˆÊ’Ê’m‚È‚Ç‚ðs‚¢‚Ü‚·B
- Eƒ}ƒbƒv‚Épvpƒtƒ‰ƒO‚ð‚‚¯‚éƒTƒ“ƒvƒ‹‚ðnpc_pvp.txt‚Æ‚µ‚Ä“Y•t‚µ‚Ä‚¢‚Ü‚·B
- Epvp‚ÌÚ‚µ‚¢ƒ‹[ƒ‹‚ª‚æ‚­‚í‚©‚ç‚È‚©‚Á‚½‚Ì‚ÅAŽŸ‚̂悤‚É‚µ‚Ä‚¢‚Ü‚·B
- Eʼn‚ÌŽ‚¿“_‚Í5“_A“|‚·‚Æ1“_A“|‚³‚ê‚é‚Æ-5“_B
- E0“_ˆÈ‰º‚ÌPC‚̓ŠƒUƒŒƒNƒVƒ‡ƒ“‚ªŠ|‚©‚ç‚È‚¢
- EGM‚Ípvpƒ}ƒbƒv‚É‚¢‚Ä‚à‘«Œ³‚ɃT[ƒNƒ‹‚ªoŒ»‚µ‚È‚¢‚悤‚Å‚·B
- iƒNƒ‰ƒCƒAƒ“ƒg‚ÌŽd—lHj
- Epvpƒ}ƒbƒv‚Å@pvpoff/@pvp‚·‚é‚Æ‹xŒe‚µ‚½‚èA‹xŒe‚ð‚â‚ß‚½‚è‚Å‚«‚Ü‚·‚ªA
- Žg—p‚·‚é‚ׂ«‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
-
- (conf/)
- npc_pvp.txt
- pvpƒtƒ‰ƒO‚ð“ü‚ê‚éƒTƒ“ƒvƒ‹B
- nosaveƒtƒ‰ƒO‚âŽó‚¯•t‚¯npc‚È‚Ç‚ð’ljÁ‚·‚é‚Æ‚æ‚¢‚ÆŽv‚í‚ê‚éB
- (map/)
- clif.c
- clif_parse_LoadEndAck()C³
- npc.c
- npc_parse_mapflag()C³
- skill.c
- skill_castend_nodamage_id()C³
- pc.c
- pc_damage()ˆø”C³
- atcommand.c
- pc_damage()ˆø”C³‚É”º‚¤C³
- battle.c
-
-E‚»‚Ì‘¼C³
- E@pvpoff/@pvp‚ŇˆÊ‚âƒT[ƒNƒ‹‚Ì•\Ž¦‚ð‚â‚ß‚½
- E@jumpto‚ŃXƒy[ƒX‚Ì“ü‚Á‚½ƒLƒƒƒ‰ƒNƒ^[‚àŽw’è‚Å‚«‚é‚悤‚É
- E@kamibƒRƒ}ƒ“ƒh•œŠˆi•¶Žš“V‚̺j
- E”ñPVP‚Ì‚Æ‚«‚ÉA‘ÎÛ‚ª“G‚̃XƒLƒ‹Žg—pŽžA“G–¡•û”»’è‚ðs‚¤‚悤‚É
-
- skill.c
- skill_castend_id()‚Å“G–¡•û”»’è
- atcommand.c
- ŠeƒRƒ}ƒ“ƒhC³
-
---------------
-//0440 by ’†‚Ìl
-
-E–{‰Æ‚ðÄŒ»‚·‚é•ûŒü‚È‚çˆÓ–¡‚Í‚È‚¢‚©‚à‚µ‚ê‚Ü‚¹‚ñ‚ª
-@pc.cuƒXƒNƒŠƒvƒg‚É‚æ‚éƒXƒLƒ‹Š“¾v‚ðŽáŠ±•ÏX‚µ‚Ä
- ƒJ[ƒh‚É‚æ‚éƒXƒLƒ‹ˆêŽžK“¾‚ÌÛ‚Å‚à1ƒŒƒxƒ‹ˆÈã‚ðÝ’è‚Å‚«‚é‚悤‚É’v‚µ‚Ü‚µ‚½B
-
-@’Pƒ‚É•„†‚ð•Ï‚¦‚Ä‚²‚Ü‚©‚µ‚½‚¾‚¯‚Å‚·‚Ì‚Å
-@•K—v‚É‚ ‚킹‚ÄC³‚ð‚µ‚Ä‰º‚³‚¢B
-
---------------
-//0439 by hoenny
-Eˆ¢C—…”e–PŒ‚ÌC³B
- db/skill_db.txt
-Eƒ‚ƒ“ƒXƒ^[î•ñ‚ÌC³B
- map/clif.c
-EŒ©Ø‚è‚ÌŽÀ‘•B
- map/pc.c
-
---------------
-//0438 by ‚`‚Ìl
-EŒÃ–Ø‚ÌŽ}‚ªŽg‚¦‚éꊂð‚m‚o‚bƒXƒNƒŠƒvƒg‚©‚秌ä‰Â”\
-@mapflag‚Énobranch‚Æ‚·‚ê‚΂»‚̃}ƒbƒv‚͌Ö؂̎}Žg—p•s‰Â‚É‚È‚è‚Ü‚·B
- map.h
- enum‚ÉMF_NOBRANCH ’ljÁB
- npc.c
- npc_parse_mapflag() C³B
- pc.c
- pc_useitem() C³B
-ƒ\[ƒX‰˜‚­‚µ‚Ä‚µ‚Ü‚Á‚½‚©‚àEEE.
-•×‹­•s‘«‚Å‚·
-
---------------
-//0437 by ”g˜Q
-Eitem_db.txt‚̉p–¼‚ð‘å•C³B(s•t‚«‚Æ‚»‚¤‚Å‚È‚¢•Ší‚̉p–¼‚ª‚¢‚‚̊Ԃɂâ‚ç
-@“¯‚¶‚É‚È‚Á‚Ä‚¢‚½‚Ì‚Å‚»‚ê‚𒼂·‚‚¢‚Å‚É‘¼‚Ì•”•ª‚àC³‚µ‚Ü‚µ‚½B
- ‚Ü‚Á‚½‚­ˆá‚¤–¼‘O‚É‚È‚Á‚Ä‚é‚à‚Ì‚à‚ ‚è‚Ü‚·‚ªA‚±‚Á‚¿‚Ì•û‚ª³‚µ‚¢‚ÆŽv‚¢‚Ü‚·B
-Eitem_purplebox.txt‚ð–{‰ÆŽd—l‚Á‚Û‚­ì¬(‘å‘Ì‚±‚ñ‚ÈŠ´‚¶‚©‚Æ
-EƒAƒ‹ƒxƒ‹ƒ^‚ƃCƒYƒ‹[ƒhNPC‚ðC³
-
---------------
-//0436 by hoenny
-Emorocc •óΤl‚ÌC³
- conf/npc_shop.txt
-Eƒnƒ“ƒ}[ƒtƒH[ƒ‹‚ÌŽÀ‘•(AlchemistŽƒ\[ƒX‚ðŽQÆ‚ ‚肪‚Æ‚¤I)
- map/skill.c
-ˆÈ‘O‚É•¶Žš‰»‚¯‚Í’á‚Ì‚¹‚¢!
-ŽŸ‚©‚ç‹C‚ð•t‚¯‚Ü‚·.
-
---------------
-//0434 by Avethes
-
-Eƒ^[ƒgƒ‹ƒAƒCƒ‰ƒ“ƒh‚Ös‚­NPCC³
-Eƒ†ƒm[NPCC³
-i‘O‰ñ‚̃oƒO‚Í‚·‚Ý‚Ü‚¹‚ñ‚Å‚µ‚½j
-
---------------
-//0433 by Ž€_
-
-E»‘¢ƒoƒOC³B
- ‰½ŒÌ‚©‚Í‚í‚©‚ç‚È‚¢‚ªskill.c‚Ìskill_readdb()‚ª•Ï‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ÅC³B(Ž©•ª‚ª‚â‚Á‚½C³‚Å‚Í‚ ‚è‚Ü‚¹‚ñ‚ª...)
- skill.c
- skill_readdb() C³B
-
---------------
-//0432 by Ž€_
-
-E0429‚ňꕔ‚̃AƒCƒeƒ€‚̃XƒLƒ‹‚ªo‚È‚¢–â‘èC³B
- clif.c
- clif_parse_UseSkillToId()Aclif_parse_UseSkillToPos() C³B
-Eskill.c
- skill_use_id() C³B(‘債‚½C³‚Å‚Í‚È‚¢‚Å‚·B)
-Eitem_db.txt‚Ì•¶Žš‰»‚¯C³BŒ¾Œêݒ肪“ú–{Œê‚Å‚Í‚È‚¢ê‡•Û‘¶‚·‚鎞‚É‚Í‹C‚ð‚‚¯‚Ü‚µ‚傤B
-EUŒ‚‚³‚ꂽƒ‚ƒ“ƒXƒ^[‚Ì”½Œ‚‚ª‘‚·‚¬‚é–â‘èC³BŽn‚ß‚Ä‚ÌUŒ‚‚ªƒ‚ƒ“ƒXƒ^[‚ÌUŒ‚ƒfƒBƒŒƒC‚ÉŠÖŒW‚È‚­100msŒã‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ÅUŒ‚ƒfƒBƒŒƒC‚ɇ‚킹‚é‚悤‚É•ÏXB(‚½‚¾­‚µ”½Œ‚‚ª’x‚¢‚ÆŽv‚í‚ꂽ‚è‚à‚µ‚Ü‚·‚ª...)
- mob.c
- mob_changestate() C³B
-EŽI‚ÉÚ‘±‚·‚éÅ‘ål”‚ðŒˆ‚ß‚é‚悤‚É•ÏXB
- char.c C³B
- conf_ref.txt C³B
- char_athena.cnf C³B
-
---------------
-//0430 by Avethes
-
-E‚m‚o‚bŠÖŒWB‚Ù‚Æ‚ñ‚ǃeƒXƒgB
-–{‰Æ‰ï˜bî•ñ‚ª‘µ‚¦‚ÎC³B
-
---------------
-//0429 by Ž€_
-
-EƒMƒ‹ƒh‚̃Œƒxƒ‹ƒAƒbƒv‚ðƒLƒƒƒ‰‚̃Œƒxƒ‹ƒAƒbƒv‚̂悤‚É•ÏXB
- int_guild.c
- guild_calcinfo() C³B
- guild_next_exp() ’ljÁB
- exp_guild.txt C³B(ƒŒƒxƒ‹‚ªã‚ª‚ç‚È‚¢‚悤‚É‚µ‚½‚¢ƒŒƒxƒ‹‚Ìexp‚É0‚ð“ü‚ê‚ê‚΂»‚êˆÈã‚ɃŒƒxƒ‹‚ªã‚ª‚ç‚È‚­‚È‚è‚Ü‚·B)
-EƒXƒNƒŠƒvƒgresetstatusAresetskill ’ljÁB
- pc.c
- pc_resetskill() C³B
- script.c
- buildin_resetstatus()Abuildin_resetskill() ’ljÁB
-E0425‚Ì‘±‚«‚Å­‚µC³B
- clif.c
- clif_parse_ ‚ð­‚µC³B
-EƒVƒ‡[ƒgƒJƒbƒg‚ÉŠo‚¦‚Ä‚¢‚éƒXƒLƒ‹ƒŒƒxƒ‹ˆÈã‚̃XƒLƒ‹‚ª“o˜^‚³‚ê‚Ä‚¢‚Ä‚àŠo‚¦‚Ä‚¢‚éƒXƒLƒ‹ƒŒƒxƒ‹‚܂ł̃XƒLƒ‹‚ðŽg‚¤‚悤‚É•ÏXB
- clif.c
- clif_parse_UseSkillToId()Aclif_parse_UseSkillToPos() C³B
-Eƒƒ‚‚Ìő唂ð10ŒÂ‚É•ÏXB(‚ ‚­‚Ü‚Å‚àŠg’£‚ׂ̈̕¨‚Å‚·B‚Ü‚¾‹@”\‚Í‚µ‚Ü‚¹‚ñB)
- mmo.h
- struct mmo_charstatus‚Ìmemo_point‚ð3‚©‚ç10‚É•ÏXB
- char.c
- mmo_char_tostr() C³B
-Emob,c
- mob_once_spawn()Amob_summonslave() C³B(•Ê‚ɈӖ¡‚ª‚ ‚éC³‚¶‚á‚ ‚è‚Ü‚¹‚ñ‚ª...)
-E@monster ƒRƒ}ƒ“ƒh‚ÅÀ•W‚ðŽw’肵‚È‚¢Žžƒ‚ƒ“ƒXƒ^[‚ªˆê‚©Š‚ÉW’†‚µ‚Äo‚é‚Ì‚ðƒLƒƒƒ‰‚Ì10*10ƒ}ƒXˆÈ“à‚Ƀ‰ƒ“ƒ_ƒ€‚ÅŒ»‚ê‚é‚悤‚É•ÏXB
- atcomand.c C³B
-
---------------
-//0428 by Avethes
-
-Econf/npc_smilegirl.txt
- ƒXƒ}ƒCƒ‹ƒ}ƒXƒNƒK[ƒ‹ƒXƒNƒŠƒvƒgB
- 0427‚Ì‚¨‚©‚µ‚¢•”•ª‚Æ‚©C³B
- ’ñ‹Ÿ‚³‚ꂽŠe“sŽs‚ÌÀ•W‚É”z’uBiNONAME‚³‚ñ’ñ‹Ÿ‚ ‚肪‚Æ‚¤Ij
-
---------------
-//0426 by ŒÓ’±—–
-
-EƒAƒCƒeƒ€‚Ì–¼‘O‚ðdata.grf‚©‚ç“Ç‚Ýž‚ނ悤‚É‚µ‚½
- itemdb.c‚ÌITEMDB_OVERRIDE_NAME‚ð’è‹`‚µ‚È‚¯‚ê‚Γǂݞ‚Ý‚Ü‚¹‚ñB
- ITEMDB_OVERRIDE_NAME_VERBOSE‚Íitemdb.txt‚̃fƒoƒO—p‚É‚Ç‚¤‚¼B
- •’Ê‚Í•Ï‚¦‚é•K—v‚Í‚È‚¢‚ÆŽv‚¤‚Ì‚Åbattle_config‚É‚Í“ü‚ê‚Ä‚¢‚Ü‚¹‚ñB
-
- itemdb.c
- itemdb_read_itemnametable()’ljÁ
- do_init_itemdb()C³
-
-Eƒf[ƒ^ƒx[ƒX“Ç‚Ýž‚Ý•”‚Ì•sˆÀ’è«‚ÌC³(Œ‹\’v–½“I‚¾‚Á‚½‚Ý‚½‚¢‚Å‚·)
- ‚È‚­‚Ä‚à–â‘è‚È‚¢DBiitem_value_db.txt‚È‚Çj‚̃tƒ@ƒCƒ‹‚ª‚È‚¢ê‡‚É
- ŽI‚ª—Ž‚¿‚½‚è‚·‚錻ۂª”­¶‚µ‚Ä‚¢‚½ê‡‚Í‚±‚ê‚Å’¼‚Á‚Ä‚¢‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñ.
-
- skill.c
- skill_readdb()‚ÅNULLƒ|ƒCƒ“ƒ^ƒ`ƒFƒbƒN‚ð’ljÁ
- itemdb.c
- item_readdb()‚ð•¡”‚É•ª‚¯‚½B
- ƒ‰ƒ“ƒ_ƒ€ƒAƒCƒeƒ€ƒf[ƒ^ƒx[ƒX‚Ì“Ç‚Ýž‚Ý•”‚ð‚P‚‚ɓZ‚ß‚½B
- do_init_itemdb()C³
-
-Eׂ©‚¢ƒoƒOC³
- Eƒ[ƒvƒ|[ƒ^ƒ‹‚ÌŠJ‚­‚Ü‚Å‚Ì•b”’²®
-
- skill.c
- skill_unitsetting()C³
-
-E‚»‚Ì‘¼C³iby –^MŽj
- db/job_db1.txt
- ‚¿‚傱‚Á‚ÆC³
- db/job_db2.txt
- 2-2ŽŸE‚Ì‘«‚è‚È‚¢Jobƒ{[ƒiƒX‚ð’ljÁ(ŽQl:R.O.M 776)
- conf/npc_town_kafra.txt
- ƒI[ƒND‘O‚Æ’Yz‘O‚ɃJƒvƒ‰”z’u(“®ì–¢Šm”F)
- conf/npc_shop3.txt
- ƒWƒ…[ƒm”Ì”„NPC(E‚¢•¨)
- conf/npc_town_yuno.txt
- ƒWƒ…[ƒmNPC(E‚¢•¨‚ð‰ü—ÇB“®ì–¢Šm”F)
-
---------------
-//0425 by Ž€_
-
-E0419‚Å‘‚«–Y‚ꂽ•¨‚Å‚·‚ªƒXƒLƒ‹ƒ‰[ƒjƒ“ƒOƒ|[ƒVƒ‡ƒ“‚ªSP‰ñ•œƒAƒCƒeƒ€‚É‚àŒø‰Ê‚ª‚ ‚é‚悤‚É•ÏXB
-E¡“x‚̓oƒOC³‚ªƒƒCƒ“‚Å‚·BŽI—Ž‚¿‚ª‚È‚è‚»‚¤‚ÈŠ‚ÌC³‚ƃeƒŒƒ|[ƒg‚ÌŽžŽ€‚ñ‚¾‚܂܈ړ®‚Å‚«‚é–â‘è‚Æ0419‚ŃAƒNƒeƒBƒuƒ‚ƒ“ƒXƒ^[‚ÌæU–â‘èC³AŽ€‚ñ‚Å‚¢‚é‚Ì‚É‘¼‚Ìl‚É‚ÍŽ€‚ñ‚¾‚悤‚ÉŒ©‚¦‚È‚¢–â‘è‚ÌC³‚Å‚·B­‚µƒeƒXƒg‚Í‚µ‚Ü‚µ‚½‚ª–{“–‚ÉŽ¡‚Á‚½‚©‚Ç‚¤‚©‚Í•s–¾‚Å‚·B•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
- pc.c
- pc_attack_timer()Apc_damage()Apc_walk() C³B
- map.c
- map_quit() C³B
- mob_db.txt
- ƒrƒbƒOƒtƒbƒg‚Ìmode‚ðC³(ƒAƒNƒeƒBƒu‚É‚È‚Á‚Ä‚¢‚½ˆ×)
- clif.c
- clif_parse_WalkToXY()Aclif_pcoutsight()Aclif_pcinsight()A
- clif_getareachar_pc()Aclif_getareachar_mob()Aclif_getareachar_pet() C³B
- mob.c
- mob_ai_sub_hard_activesearch()Amob_ai_sub_hard_mastersearch()A
- mob_walk() C³B
- pet.c
- pet_walk() C³B
-
---------------
-//0424 by hoenny
-
-EƒNƒŠƒbƒvƒ{[ƒiƒX SP 10’ljÁ
- db/item_db.txt
-Ewarp_test_yuno.txt‚ð npc_warp30.txt‚ÉŠÜ‚ñ‚Å, ‚¿‚å‚Á‚ÆC³
- conf/npc_warp30.txt
-E‘¼‚̃T[ƒo[‚ª—Ž‚¿‚Ä‚à•œ‹Œ‚³‚ê‚é‚悤‚ÉC³
- /startƒNƒŠƒbƒv
-
---------------
-//0420 by g—t
-
-EEP 3.0‚ł̃J[ƒhŒø‰Ê•ÏX‚ɉð‚é”͈͂őΉžB
-@‚Ù‚Ú‘S‚Ä‚Ì•ÏX“_‚ɂ‚¢‚ÄAo—ˆ‚éŒÀ‚èC³‚µ‚Ä‚ ‚è‚Ü‚·B
-@ATKC³‚ª³‚µ‚­“K—p‚³‚ê‚Ä‚¢‚é‚悤‚Ȃ̂ŒljÁ‚µ‚Ä‚ ‚è‚Ü‚·B(ƒAƒ“ƒhƒŒC‚È‚Ç)
-
---------------
-//0419 by Ž€_
-
-E0414‚Å‘‚«–Y‚ꂽ•¨‚Å‚·‚ª MOB‚Ìmode‚Å0x20(32)‚𕜊ˆ‚³‚¹‚Ü‚µ‚½Bƒ{ƒX‚¶‚á‚È‚­‚Ä‚àmode‚É0x20‚ª“ü‚Á‚Ä‚¢‚éꇕ’Ê‚ÌMOB‚Å‚àŽ€‚ñ‚¾‚Ó‚è‚ð”j‚ê‚Ü‚·B
-(¡‚ÌŠ‹@”\‚Í‚»‚ꂾ‚¯‚Å‚·B–{ŽI‚ÍAI‹­‰»‚Ý‚½‚¢‚Å‚·‚ª...) ‚½‚¾ƒS[ƒXƒg‚̓{ƒX‚Å‚à”j‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñB
-‚»‚ê‚ÆŽæ‚芪‚«‚ÌAI‚ÅŽæ‚芪‚«‚ªƒ^[ƒQƒbƒg‚µ‚½ŽžŽå‚ªƒ^[ƒQƒbƒg‚µ‚Ä‚È‚¢‚Ǝ傪Žæ‚芪‚«‚̃^[ƒQƒbƒg‚ðƒ^[ƒQƒbƒg‚·‚é•”•ª‚ðƒRƒ}ƒ“ƒgƒAƒEƒg‚µ‚Ü‚µ‚½B(‚±‚ꂪ–{ŽI‚É‚ ‚Á‚Ä‚¢‚é‚ÆŽv‚¢‚Ü‚µ‚½‚Ì‚Å...)
-EŒÃ‚¢Â‚¢” AŒÃ‚¢Ž‡F‚Ì” AŒÃ‚¢ƒJ[ƒh’Ÿ‚Åo‚éƒAƒCƒeƒ€‚ðƒtƒ@ƒCƒ‹‚ÅÝ’è‚Å‚«‚é‚悤‚É•ÏXB
- script.c
- buildin_getitem() C³B
- item_db.txt
- ŒÃ‚¢Â‚¢” AŒÃ‚¢Ž‡F‚Ì” AŒÃ‚¢ƒJ[ƒh’ŸC³B
- item_bluebox.txtAitem_purplebox.txtAitem_cardalbum.txt ’ljÁB(Žg—p—á’ö“x‚Ì•¨‚Å‚·B‚ǂ̃AƒCƒeƒ€‚ªo‚é‚悤‚É‚·‚é‚©‚ÍŽ©•ª‚Åݒ肵‚ÄŽg‚Á‚Ä‚­‚¾‚³‚¢B‚½‚¾ƒNƒ‰ƒCƒAƒ“ƒg‚ð—Ž‚Æ‚·ƒAƒCƒeƒ€‚Ío‚È‚¢‚悤‚Éݒ肵‚Ä‚­‚¾‚³‚¢B)
- itemdb.h
- struct random_item_data ’ljÁB
- itemdb.c
- itemdb_searchrandomid()Aitemdb_readdb() C³B
-Emob.c
- mob_target()Amob_ai_sub_hard() C³B(–â‘肪‚ ‚è‚»‚¤‚È•”•ª‚¾‚¯C³B)
-Epc.c
- pc_itemheal()Apc_walktoxy_sub() C³B
-Eƒyƒbƒg‚ÌoŒ»‚ðMOB‚Æ“¯‚¶‚悤‚É•ÏXB
- clif.c
- clif_spawnpet() C³B
- pet.c
- pet_change_name() C³B
-E0418‚ð­‚µC³B(if•¶‚ÌðŒ‚ð­‚µC³‚µ‚½‚¾‚¯‚Å‚·B)
-
---------------
-
-//0418 by hoenny
-E /mm(/mapmove) /nb /b /bb /resetskill /resetstate GM –½—ߌêŽg—p‚̧ŒÀ
-clif_parse_MapMove ,clif_parse_ResetChar ,clif_parse_GMmessage C³
- map/clif.c
-
---------------
-//0417 by ‚ê‚ 
-
-E0412‚Åitem_db.txt‚ª‚¨‚©‚µ‚­‚È‚Á‚Ä‚¢‚½‚Ì‚ðC³
-
---------------
-//0416 by g—t
-
-EƒWƒ…ƒm[Žü•Ó‚̃[ƒv’è‹`‚Æ“G‚Ì”z’uB
-@ƒ[ƒv’è‹`‚Ínpc_warp30.txt‚Æ‚µA’ljÁ‚·‚éŒ`‚É‚µ‚Ä‚ ‚è‚Ü‚·B
-@“G‚Ì”z’u‚ɂ‚¢‚Ä‚ànpc_monster.txt‚Æ‚Í“‡‚¹‚¸Anpc_monster30.txt‚Æ‚µ‚Ä‚ ‚è‚Ü‚·B
-@–â‘肪–³‚¢‚悤‚Å‚ ‚ê‚Γ‡‚µ‚ĉº‚³‚¢B
-Eã‹L’è‹`ƒtƒ@ƒCƒ‹’ljÁ‚É]‚¢map_athena.cnf‚ð•ÏXB
-E@goƒRƒ}ƒ“ƒh‚ÖƒWƒ…ƒm[’ljÁB
-@—v–]‚ª‚ ‚Á‚½‚悤‚Ȃ̂ŒljÁ‚µ‚Ü‚µ‚½B
-
---------------
-//0415 by ’†‚Ìl
-
-E¡‚Í–S‚«‹ŒROƒGƒ~ƒ…ŽIŠJ”­ƒXƒŒƒbƒh Lv02‚Å‚ÌŽ€_Ž‚Ìà–¾‚É]‚Á‚Ä
-@ƒ‚ƒ“ƒXƒ^[’è‹`ƒf[ƒ^‚ðŽáŠ±•ÏX‚³‚¹‚Ä’¸‚«‚Ü‚µ‚½B
- E‰ß‹Ž‚Ìnpc_monster.txt‚©‚ç’Êíƒ}ƒbƒvãiƒ‹ƒeƒBƒG“™œ‚­j‚É‚¢‚éƒTƒ“ƒ^ƒ|ƒŠƒ“AƒAƒ“ƒ\ƒj‚ð’Šo‚µ
- @V‚½‚Éì‚Á‚½unpc_x-masmonster.txtv‚Ɉړ]
- Eã‹L‚ÌC³‚É‚ ‚킹‚Ämap_athena.cnf‚ðC³B
- @map_athena‚ɃRƒƒ“ƒgƒAƒEƒgó‘Ô‚Åunpc: conf/npc_x-masmonster.txtv‚ð’ljÁ‚µ‚Ü‚µ‚½B
- @•K—v‚É‚ ‚킹‚ăRƒƒ“ƒgƒAƒEƒg‚ð‚µ‚Ä‰º‚³‚¢B
-
---------------
-//0414 by Ž€_
-
-Estrcasecmp‚ðstrcmpi‚É•ÏXB
-Edb‚âÝ’èƒtƒ@ƒCƒ‹‚ð“Ç‚ÞŽž// ‚ðƒRƒ}ƒ“ƒgƒAƒEƒg‚Æ‚µ‚Ä”FŽ¯‚·‚é‚悤‚ÉC³B
-Eƒyƒbƒg‚Æ—£‚ê‚·‚¬‚é‚ƃyƒbƒg‚ª‘‚­“®‚­‚悤‚É•ÏXB(ƒLƒƒƒ‰‚Ì2”{‚Ì‘¬“x‚Å“®‚«‚Ü‚·B)
-Eƒ‹[ƒgƒ‚ƒ“ƒXƒ^[‚ªƒAƒCƒeƒ€‚ðƒ^[ƒQƒbƒg‚µ‚½ŽžUŒ‚‚ðŽó‚¯‚Ä‚àUŒ‚‚µ‚Ä‚±‚È‚¢–â‘èC³B
-E“¯‘°ƒ‚ƒ“ƒXƒ^[‚ÌAI‚ð•ÏXB¡‚Ü‚Å‚Ítraget_id‚ðŽg‚¤‚¹‚¢‚Ń‚ƒ“ƒXƒ^[‚ªUŒ‚‚µ‚½‘ŠŽè‚ðUŒ‚‚·‚éŽd‘g‚Ý‚¾‚Á‚½‚ª¡“x‚Íattacked_id‚ðŽg‚¤ˆ×UŒ‚‚µ‚Ä‚«‚½‘ŠŽè‚ðUŒ‚‚·‚é‚悤‚É•ÏXB
-‚½‚¾¡‚ÌŽd—l‚¾‚Æ“¯‘°ƒ‚ƒ“ƒXƒ^[‚ðUŒ‚‚µ‚Ä“¦‚°‚éê‡UŒ‚‚ðŽó‚¯‚½Žž‚»‚Ìê‚É‚È‚©‚Á‚½ƒ‚ƒ“ƒXƒ^[‚͂‚¢‚Ä—ˆ‚È‚­‚È‚Á‚Ä‚¢‚Ü‚·B–{ŽI‚ÌŽd—l‚É‚ ‚Á‚Ä‚é‚©‚Ç‚¤‚©‚Í•s–¾‚Å‚·‚Ì‚Åî•ñ’ñ‹Ÿ‚ð‚¨Šè‚¢‚µ‚Ü‚·B(attacked_id‚Í‚¢‚Â‚àƒŠƒZƒbƒg‚³‚ê‚éˆ×‚Å‚·B‘Îô‚ª‚¢‚È‚¢‚킯‚Å‚à‚È‚¢‚Å‚·‚ª–{ŽI‚ÌŽd—l‚ð’m‚ç‚È‚¢‚Ì‚Å...)
-Eƒƒ‚ƒŠ[‚ÌŽg—p—Ê‚ðŒ¸‚ç‚·ˆ×struct mob_data‚Æstruct npc_data‚ð•ÏXB(0412‚Å
-map-server‚̃ƒ‚ƒŠ[‚ÌŽg—p—Ê‚ª164???KBytes‚¾‚Á‚½‚ª0414‚Å‚Í152???KBytes‚É‚È‚è‚Ü‚µ‚½B‚Ù‚ñ‚Ì­‚µŒ¸‚Á‚½‚¾‚¯‚Å‚·‚ª‘‚¦‚é‚æ‚è‚Í‚Ü‚µ‚¾‚ÆŽv‚¢‚Ü‚·‚Ì‚Å...)
-EƒS[ƒXƒgƒ^ƒCƒ€ŽÀ‘•B
- ƒ}ƒbƒvˆÚ“®‚âƒeƒŒƒ|[ƒgA•œŠˆ‚µ‚½Žž‚É“G‚É‘_‚í‚ê‚È‚¢ŽžŠÔ‚ðd—͂ł̓S[ƒXƒgƒ^ƒCƒ€ŒÄ‚ñ‚Å‚¢‚Ü‚·B‚»‚̃S[ƒXƒgƒ^ƒCƒ€‚ÌŽÀ‘•‚Å‚·B
-battle_athena.cnf‚ÅŽžŠÔ‚ðÝ’è‚Å‚«‚Ü‚·BŽžŠÔ‚ð0‚É‚·‚é‚ƃS[ƒXƒgƒ^ƒCƒ€‚Íì“®‚µ‚Ü‚¹‚ñB‚½‚¾‚±‚̃S[ƒXƒgƒ^ƒCƒ€‚ÍUŒ‚s“®AƒXƒLƒ‹Žg—pAƒAƒCƒeƒ€Žg—p‚ð‚·‚é‚Æ‚È‚­‚È‚è‚Ü‚·B
- char/int_guild.c
- char/int_party.c
- conf/battle_athena.cnf
- db/mob_db.txt
- doc/conf_ref.txt
- login/login.c
- map/atcommand.c
- map/battle.c
- map/battle.h
- map/clif.c
- map/itemdb.c
- map/map.c
- map/map.h
- map/mob.c
- map/npc.c
- map/pc.c
- map/pc.h
- map/pet.c
- map/skill.c ‚ðC³B(db/mob_db.txt‚Í//‚ð“ü‚ꂽ‚¾‚¯‚Å‚·‚ª...)
- C³‚µ‚½Š‚ð‘S‚ÄŠo‚¦‚Ä‚Ü‚¹‚ñ‚̂Ńtƒ@ƒCƒ‹‚¾‚¯’m‚点‚Ü‚·B
-
---------------
-//0412 by ‚¢‚Ç
-
-Eƒ‚ƒ“ƒXƒ^[’è‹`ƒf[ƒ^(“ú–{Œê)‚ÌÄ®—
-@ ‹ŒŒfŽ¦”‚Ŏw“E‚Ì‚ ‚Á‚½Ž–€‚ɂ‚¢‚Ä‘å‘͈̂̔͂ÅC³
- snapshot387‚̃o[ƒWƒ‡ƒ“‚ðƒx[ƒX‚ÉC³‚µ‚Ü‚µ‚½B
- conf/npc_monster.txt
-
-EƒAƒCƒeƒ€–¼‚Ì’è‹`‚ð‘å•C³
- (root)
- item.list
- (db/)
- item_db.txt
- item_value_db.txt
-
-Eƒ}ƒbƒvƒf[ƒ^‚Ì’è‹`‚ŃRƒƒ“ƒgƒAƒEƒg‚µ‚Ä‚¢‚½ƒWƒ…ƒm[ŠÖ˜Aƒ}ƒbƒv‚̃Rƒƒ“ƒgƒAƒEƒg‚ð‰ðœ
- conf/map_athena.cnf
-
---------------
-//0411 by Ž€_
-
-EŽIsnapshot‚Å‚·B‚»‚ê‚Ælogin_portAchar_portAmap_port‚Ìݒ肪‚È‚­‚Ä‚à
-ƒfƒtƒHƒ‹ƒg‚Å6900A6121A5121‚ðŽg‚¤‚悤‚É•ÏXB
-Elogin.cAchar.cAchrif.cAclif.c ­‚µC³B
-Econf_ref.txt C³B
-Elogin_port‚ð6900‚©‚瑼‚Ì•¨‚É•Ï‚¦‚½ê‡‚Íclientinfo.xml‚ð•Ï‚¦‚é•K—v‚ª‚ ‚è‚Ü‚·B
-
---------------
-//0410 by Ž€_
-
-GM—p‰EƒNƒŠƒbƒNƒƒjƒ…[uinamejŽg—pŽÒ‹­§I—¹vŽÀ‘•B(ƒeƒXƒg‚Í‚µ‚Ä‚Ü‚¹‚ñB@ƒRƒ}ƒ“ƒh‚̓eƒXƒgÏ‚Ý‚Å‚·‚ª...)
-0407‚ÌEXP‚ÉŠÖ‚·‚éC³‚É–â‘肪‚ ‚é‚炵‚¢‚Ì‚ÅC³‚µ‚Ü‚µ‚½B¡“x‚̓eƒXƒgÏ‚Ý‚Å‚·B
-GM‚̃AƒJƒEƒ“ƒgID‚ðÝ’è‚Å‚«‚é‚悤‚É•ÏX‚ÆGM‚ðƒŒƒxƒ‹•Ê‚É•ª‚¯‚é‚悤‚É•ÏXB
-(GM‚̃Œƒxƒ‹‚É‚æ‚é@ƒRƒ}ƒ“ƒh“™‚ɧŒÀ‚ð‚©‚¯‚é‚‚à‚è‚Å‚·‚ª¡§ŒÀ‚ª‚©‚¯‚Ä‚¢‚镨‚Í@kickA@kickall‚Ì‚Ý‚É‚È‚Á‚Ä‚¢‚Ü‚·B)
-Epc.c
- pc_readdb()Apc_gainexp()Apc_nextbaseexp()Apc_nextjobexp()A
- pc_checkbaselevelup()Apc_checkjoblevelup() C³B
- pc_isGM()Apc_read_gm_account() ’ljÁB
-Epc.h
- pc_isGM() C³B
- pc_read_gm_account() ’ljÁB
-Eexp.txt
- ƒŒƒxƒ‹‚ªã‚ª‚ç‚È‚¢”’l‚ð999999999‚©‚ç0ˆÈ‰º‚É•ÏXB
- ƒŒƒxƒ‹‚ðã‚°‚éˆ×‚É•K—v‚ÈEXP‚ð999999999ˆÈã‚É‚·‚邱‚Æ‚à‰Â”\B
-Eclif.c
- clif_GM_kickack()Aclif_GM_kick()Aclif_parse_GMKick() ’ljÁB
-Eclif.h
- clif_GM_kickack()Aclif_GM_kick() ’ljÁB
-Eatcomand.c
- strncmpi‚ðstrcmpi‚É•ÏXB
- @kickA@kickall ƒRƒ}ƒ“ƒh’ljÁB
- @kick <ƒLƒƒƒ‰–¼>
- Ž©•ªˆÈŠO‚̃Lƒƒƒ‰‚ÌÚ‘±‚ð‹­§I—¹‚³‚¹‚éB(Ž©•ª‚æ‚èGMƒŒƒxƒ‹‚ª
- ’á‚¢ƒLƒƒƒ‰‚É‚µ‚©Žg‚¦‚È‚¢BGM‚Å‚Í‚È‚¢ƒLƒƒƒ‰‚ÌGMƒŒƒxƒ‹‚Í0)
- @kickall
- ŽI‚ÉÚ‘±‚µ‚Ä‚¢‚é‘S‚ẴLƒƒƒ‰‚ÌÚ‘±‚ð‹­§I—¹‚³‚¹‚éB(Ž©•ª‚Æ
- GM‚ðŠÜ‚ß‚Ä) ŽIƒ_ƒEƒ“—p‚̃Rƒ}ƒ“ƒh‚Å‚·BGMƒŒƒxƒ‹‚ª99‚¶‚á‚È‚¢‚Æ
- Žg‚¦‚È‚¢B
-Econf/GM_account.txt ’ljÁB
- GM‚Æ‚µ‚Ä”FŽ¯‚·‚éƒAƒJƒEƒ“ƒgID‚ðÝ’è‚·‚éƒtƒ@ƒCƒ‹‚Å‚·B
-Emmo.h
- DEFAULT_WALK_SPEED‚ð140‚©‚ç150‚É•ÏXB(‚±‚ꂪ–{ŽI‚É‚ ‚Á‚Ä‚é”’l
- ‚Ý‚½‚¢‚Å‚·‚Ì‚Å...)
- struct gm_account ’ljÁB
-Eclient_packet.txt
- ƒpƒPƒbƒg0x00cd ’ljÁB
-Elogin_port‚ðcnf‚œǂނ悤‚É•ÏXB(‚½‚¾6900‚©‚çƒ|[ƒg‚ð•Ï‚¦‚é‚ƃNƒ‰ƒCƒAƒ“ƒg‚ª”FŽ¯‚Å‚«‚È‚¢–Í—l‚È‚Ì‚Å–³‘Ê‚È‚±‚Æ‚¾‚Á‚½‚è‚à‚µ‚Ü‚·‚ª...)
- char.cAlogin.cAchar_athena.cnfAlogin_athena.cnf C³B
-E•’ʂ̃AƒJƒEƒ“ƒg쬂łÍGM‚É‚È‚ê‚È‚¢‚悤‚Élogin.c‚ð•ÏXB
-Elogin/makefileAmap/makefile C³B
-
---------------
-//0408 by ŒÓ’±—–
-
-E405‚ÌV‚µ‚¢—ƒRƒ}ƒ“ƒh‚ðˆÈ‘O‚Ìatcommand.c‚ÉŽæ‚èž‚Ý‚Ü‚µ‚½B
- E@kami‚ðC³
- E@kill,@recall,@charjob,@revive,@charstats,@charoption,@charsave,
- @night,@day,@doom,@doommap,@raise,@raisemap,@charbaselvl,@charjlvl
- ‚ð’ljÁ•ƒƒbƒZ[ƒW‚ð“ú–{Œê‚É•ÏX•­‚µC³
-
- atcommand.c
- ’ljÁ‚ÆC³
-
-Eˆê•”‚̃XƒLƒ‹‚ÌŒø‰ÊŽÀ‘•
- E•sŽ€g‚̃W[ƒNƒtƒŠ[ƒhAƒCƒhƒDƒ“‚Ì—ÑŒçAK‰^‚̃LƒXA
- ƒtƒŒƒCƒ€ƒ‰ƒ“ƒ`ƒƒ[AƒtƒƒXƒgƒEƒFƒ|ƒ“Aƒ‰ƒCƒgƒjƒ“ƒOƒ[ƒ_[A
- ƒTƒCƒYƒ~ƒbƒNƒEƒFƒ|ƒ“
-
- map.h
- struct skill_unit‚Érange‚ð’ljÁB
- skill.c
- FXC³
- skill.h
- enum‚ÌC³‚È‚Ç
---------------
-//0407 by Ž€_
-
-Eƒyƒbƒg‚̃oƒOC³B(‚½‚¾Ž©•ª‚ÅÄŒ»‚Å‚«‚È‚©‚Á‚½‚Ì‚Å–â‘è‚É‚È‚è‚»‚¤‚ÈŠ‚¾‚¯C³‚µ‚Ü‚µ‚½B)
-Eƒyƒbƒg‚̈ړ®‘¬“x‚ðpet_db‚ɒljÁB
- pet.h
- struct pet_db‚Éspeed’ljÁB
- pet.c
- pet_catch_process2()Aread_petdb() C³B
- pet_db.txt
- ˆÚ“®‘¬“x’ljÁB
- (ƒRƒ}ƒ“ƒgƒAƒEƒg‚µ‚Ä‚¢‚é‚̂̓Wƒ‹ƒ^ƒX‚ƃAƒŠƒX‚Å‚·B•ßŠl—p‚Ì
- ƒAƒCƒeƒ€‚ª‘¶Ý‚·‚邱‚ƂƃpƒtƒH[ƒ}ƒ“ƒX‚ð‚·‚é‚±‚Æ‚©‚çl‚¦‚Ä
- ’ljÁ‚³‚ê‚é—\’è‚Ì•¨‚Æl‚¦‚ç‚ê‚Ü‚·B‚½‚¾‚»‚̕ߊl—p‚̃AƒCƒeƒ€‚ª
- ‚ ‚é‚ƃNƒ‰ƒCƒAƒ“ƒg‚ð—Ž‚¿‚Ü‚·‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B’ljÁ‚µ‚Ä‚à
- ‘䎌‚̓|ƒŠƒ“‚Ì•¨‚Å‚·‚Ì‚Å... •ßŠl—p‚̃AƒCƒeƒ€ˆÈŠO‚Í“K“–‚É“ü‚ꂽ
- •¨‚Å‚·B)
-Epc.cAclif.c
- pc_equipitem() C³B
- clif_parse_EquipItem() C³B
- pc_equipitem()‚Ì–¢ŠÓ’èƒAƒCƒeƒ€‚̃`ƒFƒbƒN‚ðclif_parse_EquipItem()‚É
- ˆÚ“®‚µ‚Ü‚µ‚½B(ƒyƒbƒg‚Ì‘•”õ‚à‚ ‚è‚Ü‚·‚Ì‚Å...)
-EƒŒƒxƒ‹‚ð99ˆÈã‚É‚ ‚°‚é‚悤‚É•ÏX‚ÆE‹Æ•Ê‚Ƀx[ƒXƒŒƒxƒ‹‚ÌŒÀŠEƒŒƒxƒ‹‚ðÝ’è‚Å‚«‚é‚悤‚ÉC³B
- map.h
- MAX_LEVEL’ljÁB
- pc.c
- pc_nextbaseexp(), pc_nextjobexp() C³B
- pc_readdb() C³B
-Eexp.txt C³BE‹ÆƒŒƒxƒ‹‚Æ“¯‚¶‚悤‚Ƀx[ƒXƒŒƒxƒ‹‚àEXPƒe[ƒuƒ‹‚ð3‚Âì‚è‚Ü‚µ‚½BƒŒƒxƒ‹ƒAƒbƒv‚ðŽ~‚ß‚½‚¢ƒŒƒxƒ‹‚Ìexp‚ð999999999‚É‚·‚ê‚΂»‚êˆÈヌƒxƒ‹‚ªã‚ª‚è‚Ü‚¹‚ñB‚‚܂ènoviceA1ŽŸE‹Æ‚Æ2ŽŸE‹Æ‚̃x[ƒXƒŒƒxƒ‹‚ÌŒÀŠE‚ðˆá‚¤‚悤‚ÉÝ’è‚Å‚«‚Ü‚·B‚»‚µ‚ăx[ƒXƒŒƒxƒ‹99ˆÈã‚Éオ‚é‚悤‚É‚·‚邱‚Æ‚à‚Å‚«‚Ü‚·B(exp.txt‚ÌC³‚ª•K—v‚Å‚·‚ª–{ŽI‚ƈႤ‚悤‚Éݒ肵‚½‚¢ê‡‚ÉC³‚µ‚ÄŽg‚Á‚Ä‚­‚¾‚³‚¢B)
-E‘®«‚É‚æ‚é‰ñ•œ‚ðbattle_athena.cnf‚ÅÝ’è‚Å‚«‚é‚悤‚É•ÏXB
- attr_fix.txt C³B
- battle.h
- struct Battle_Config‚Éattr_recover ’ljÁB
- battle.c
- battle_config_read() C³B
- battle_athena.cnf C³B
-Econf_ref.txt C³B
-Eclient_packet.txt C³BƒyƒbƒgƒpƒPƒbƒg’ljÁ‚Æ­‚µC³B
-
---------------
-//0402 by ŒÓ’±—–
-
-E400‚̃oƒO‚ðˆê•”C³
- EŠ|‚©‚Á‚Ä‚È‚¢ƒXƒLƒ‹Œø‰Ê‚É‚æ‚éƒXƒe[ƒ^ƒXŒvŽZ‚ªs‚í‚ê‚Ä‚µ‚Ü‚¤ƒoƒOC³
- EŒø‰ÊC³F‚ ‚­‚Ü‚ÅŒø‰Ê‚ÌŒvŽZ‚ÌC³‚ÅAŽg‚¦‚È‚¢ƒXƒLƒ‹‚ÍŽg‚¦‚Ü‚¹‚ñB
- ƒXƒsƒAƒNƒBƒbƒPƒ“Aƒvƒƒ”ƒBƒfƒ“ƒXA푾ŒÛ‚Ì‹¿‚«A
- —[—z‚̃AƒTƒVƒ“ƒNƒƒXAŒû“JA•sŽ€g‚̃W[ƒNƒtƒŠ[ƒhA
- ƒCƒhƒDƒ“‚Ì—ÑŒçAƒT[ƒrƒXƒtƒH[ƒ†[AK‰^‚̃LƒX
- EŒø‰Ê’ljÁF‚ ‚­‚Ü‚ÅŒø‰Ê‚ÌŒvŽZ‚̒ljÁ‚ÅAŽg‚¦‚È‚¢ƒXƒLƒ‹‚ÍŽg‚¦‚Ü‚¹‚ñB
- ƒnƒ~ƒ“ƒOAŽ„‚ð–Y‚ê‚È‚¢‚ÅcAƒj[ƒxƒ‹ƒ“ƒO‚ÌŽw—Ö(•ŠíƒŒƒxƒ‹–³Ž‹)A
- ƒGƒ^[ƒiƒ‹ƒJƒIƒXAƒhƒ‰ƒSƒmƒƒW[
- EŒø‰Ê•t‰ÁŒn‚Í‚¿‚å‚Á‚Æ‚Å‚à‰ö‚µ‚¢ƒXƒLƒ‹‚Í‘S‚ÄŽg—p‚Å‚«‚È‚¢‚悤‚ÉC³
- EUŒ‚ŒnƒXƒLƒ‹‚Í‚Ù‚Æ‚ñ‚ÇŒ©‚Ä‚È‚¢‚Ì‚Å‚½‚Ô‚ñƒoƒO‘½‚¢‚Å‚·B
- E‘S‚Ä–¢ƒeƒXƒg‚Å‚·B‰ö‚µ‚·‚¬‚é•”•ª‚ðC³‚µ‚½‚¾‚¯‚Å‚·B
-
- map.h
- MAX_STATUSCHANGE‚ð128‚ÉC³
- pc.c
- pc_calcstatus()C³
- skill.c/skill.h
- enum‚ðC³
- skill_status_change_start()C³
- battle.c
- battle_calc_weapon_attack()‚È‚ÇC³
-
---------------
-//0400 by AppleGirl
-
-Can Someone Help Me.
-2-2 Skills added.
-All The Mastery Skills.
-SpearQuicken,Providence
-New Bard Skill Assassin Cross Of Sunset
-Providence
-Frost Joke
-Apple of Idun
-Service For You
-Meteor Strike (Different Style)
-Assassin Cross Of Sunset (not tested)
-All Masteries Done
-Providence
-Musical Strike
-Throw Arrow
-Frost Weapon << (Problems with elements)?
-Flame Launcher << (Problems with elements)?
-Seismic Weapon << (Problems with elements)?
-Lightning Loader << (Problems with elements)?
-Spirit Recovery
-Potion Pitcher (Tato)
-Axe Mastery (Tato)
-Spear Quicken
-Not Totally Working:
-Combo Finish
-Quadruple strike
-Triple Attack
-(skills in skill.c) (need to be finished.)
-CP_ARMOR
-CP_HELM
-CP_SHIELD
-CP_WEAPON
-STRIP_HELM
-STRIP_WEAPON
-STRIP_SHIELD
-STRIP_ARMOR
-
-* “K“–‚Șa–ó *
-2-2ŽŸEƒXƒLƒ‹‚ð’ljÁ‚µ‚Ü‚µ‚½
-‘S‚Ä‚ÌC—ûƒXƒLƒ‹AƒXƒsƒAƒNƒCƒbƒPƒ“Aƒvƒƒ”ƒBƒfƒ“ƒXA
-—[—z‚̃AƒTƒVƒ“ƒNƒƒXi–¢ƒeƒXƒgjAŠ¦‚¢ƒWƒ‡[ƒNAƒCƒhƒDƒ“‚Ì—ÑŒçA
-ƒT[ƒrƒXƒtƒH[ƒ†[AƒƒeƒIƒXƒgƒ‰ƒCƒNi­‚µˆá‚¤jA
-ƒ~ƒ…[ƒWƒJƒ‹ƒXƒgƒ‰ƒCƒNA–‚¿AƒtƒƒXƒgƒEƒFƒ|ƒ“(‘®«‚ª–â‘è‚ ‚èH)
-ƒtƒŒ[ƒ€ƒ‰ƒ“ƒ`ƒƒ[(V)AƒTƒCƒYƒ~ƒbƒNƒEƒFƒ|ƒ“(V)Aƒ‰ƒCƒgƒjƒ“ƒOƒ[ƒ_[(V)
-‘§Aƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[
-Š®‘S‚É‚Í“­‚©‚È‚¢ƒXƒLƒ‹F
-–Ò—´ŒA—øŠÂ‘Sg¶AŽO’i¶
-(skills in skill.c) (Š®—¹‚³‚ê‚é•K—v‚ª‚ ‚é)
-ƒPƒ~ƒJƒ‹ƒA[ƒ}[ƒ`ƒƒ[ƒWAƒPƒ~ƒJƒ‹ƒwƒ‹ƒ€ƒ`ƒƒ[ƒWA
-ƒPƒ~ƒJƒ‹ƒV[ƒ‹ƒhƒ`ƒƒ[ƒWAƒPƒ~ƒJƒ‹ƒEƒFƒ|ƒ“ƒ`ƒƒ[ƒWA
-ƒXƒgƒŠƒbƒvƒwƒ‹ƒ€AƒXƒgƒŠƒbƒvƒEƒFƒ|ƒ“
-ƒXƒgƒŠƒbƒvƒV[ƒ‹ƒhAƒXƒgƒŠƒbƒvƒA[ƒ}[
-
-*’ˆÓ !! CAUTION !! by ŒÓ’±—–*
-‚±‚Ì400‚ɂ̓oƒO‚ª‘å—Ê‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
-there are many many BUGS in this update(400) !! Be careful !!
-
---------------
-//0399 by ŒÓ’±—–
-
-EMOBƒXƒLƒ‹Žg—pðŒ‚âs“®‚ðC³
- E–³s“®MOB‚ª‘Ò‹@Žž‚̃XƒLƒ‹‚ðŽg—p‚Å‚«‚È‚¢–â‘è‚ðC³
- EðŒƒXƒLƒ‹”½‰ž(skillused)‚ª‚ǂ̃XƒLƒ‹‚É‚à”½‰ž‚µ‚Ä‚¢‚½ƒoƒOC³
- E”ñˆÚ“®MOB‚ª’ÇŒ‚‚µ‚Ä‚­‚é–â‘è‚ðC³
-
- mob.c
- mob_ai_sub_hard()C³
- mobskill_event()C³
- mobskill_use()C³
- skill.c
- skill_attack()C³
-
-EMOBƒXƒLƒ‹ˆê•”ŽÀ‘•
- EŽ©Œˆ(ƒGƒtƒFƒNƒg–³‚µ?)AŽ©”šAƒ^ƒoƒR‚ð‹z‚¤A”͈ÍUŒ‚
- HP‹zŽû‚Q‚Â(’Êí/–‚–@ji‰ñ•œƒGƒtƒFƒNƒg–³‚µ?jŽÀ‘•
-
- (db)
- skill_db.txt
- ƒXƒ‚[ƒLƒ“ƒO‚È‚Ç‚ðC³
- (map/)
- skill.c
- skill_castend_damage_id(),skill_castend_nodamage_id()C³
- battle.c
- battle_calc_misc_damage()C³
-
-E–¢ŠÓ’èƒAƒCƒeƒ€‚ª‘•”õ‚Å‚«‚È‚­‚È‚è‚Ü‚µ‚½
-E–¢ŠÓ’èƒAƒCƒeƒ€‚ɃJ[ƒh‚ª‚³‚¹‚È‚­‚È‚è‚Ü‚µ‚½
-
- pc.c
- pc_equipitem(),pc_insert_card()C³
- clif.c
- clif_use_card()C³
-
-Ebattle_athena.cnf‚ÉMOB‚Ì”z’uŠ„‡‚ð’è‹`‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½
- E”z’u”‚ª‚P‚ÌMOB‚ɂ‚¢‚Ä‚Í“K—p‚³‚ê‚Ü‚¹‚ñ
- EŒvŽZŒã‚Ì”z’u”‚ª‚P–¢–ž‚ÌꇂP‚ÉC³‚³‚ê‚Ü‚·B
-
- (conf/)
- battle_athena.cnf
- mob_count_rate’ljÁ
- (doc/)
- conf_ref.txt
- C³
- (map/)
- battle.c/battle.h
- struct BattleConfig ‚É mob_count_rate ƒƒ“ƒo’ljÁ
- npc.c
- npc_parse_mob()‚ÌC³
-
-Eƒ{[ƒŠƒ“ƒOƒoƒbƒVƒ…‚ª‘ŠŽè‚ª‚P•C‚Å‚à‚Æ‚è‚ ‚¦‚¸“–‚½‚é‚悤‚É‚È‚Á‚½B
-
- skill.c
- skill_castend_damage_id()C³
-
-EŠw¶–X쬃Cƒxƒ“ƒg‚ÌC³
-
- (conf/)
- npc_event_making.txt
- ƒAƒƒGƒxƒ‰(606)‚ðƒAƒƒG(704)‚ÉB
-
-EƒpƒPƒbƒgî•ñC³
-
- (doc/)
- client_packet.txt
- 0199ƒpƒPƒbƒgC³
-
---------------
-//0397 by ‚¢‚Ç
-
-Eƒ‚ƒ“ƒXƒ^[’è‹`ƒf[ƒ^(“ú–{Œê)‚Ì®—
- Enpc_monster25.txt‚ðnpc_monster.txt‚ɃŠƒl[ƒ€‚µA“à—e‚ð®—(Œ»Ýmob”:13450)
- E‚»‚ÌŒy—ʔłƂµ‚Änpc_monster_lite.txt‚ðì¬(Œ»Ýmob”:11959)
- Eã‹L‚ÌC³‚É‚ ‚킹‚Ämap_athena.cnf‚ðC³
-
---------------
-//0395 by ŒÓ’±—–
-
-EŽæ‚芪‚«MOB‚Ìs“®C³
- EƒAƒ“ƒNƒ‹‚Ȃǂňړ®‚Å‚«‚È‚¢ê‡Žå‚ɋ߂©‚È‚¢‚悤‚ÉC³
- EƒƒbƒN‚µ‚Ä‚¢‚é‚ÆŽå‚ɋߊñ‚鈗‚ð‚µ‚È‚¢‚悤‚ÉC³
- EŽå‚ªƒeƒŒƒ|[ƒg‚·‚é‚Æ’Ç‚¢‚©‚¯‚é‚悤‚ÉC³(•t‹ß10x10ƒ}ƒX’ö“x)
- EŽå‚Ì‚»‚΂ɂ¢‚é‚Æ‚«‚̓‰ƒ“ƒ_ƒ€•às‚ð‚µ‚È‚¢‚悤‚ÉC³
-
- mob.c
- mob_ai_sub_hard_mastersearch()C³
- mob_can_move()’ljÁ
- mob_ai_sub_hard()C³
-
-EMOB‚Ìs“®C³
- EƒXƒLƒ‹Žg—pƒfƒBƒŒƒCˆ—‚ª‚¨‚©‚µ‚©‚Á‚½‚Ì‚ðC³
- E‰r¥‚Ì‚È‚¢ƒXƒLƒ‹‚Ítimer‚ðŽg‚í‚È‚¢‚悤‚ÉC³(Ž€–SŽžˆ—‘Îô)
-
- mob.c
- mobskill_use(),mobskill_use_id()C³
-
-EMOBƒGƒ‚[ƒVƒ‡ƒ“‚ÌŽÀ‘•
- EƒGƒ‚[ƒVƒ‡ƒ“‚ÌŽí—Þ‚ª‚í‚©‚ç‚È‚¢‚à‚Ì‚Í‘S‚Äu!v‚É‚È‚è‚Ü‚·B
- ”²‚¯‚Ä‚¢‚éƒf[ƒ^‚ð–„‚ß‚Ä‚­‚ê‚é‚Æ‚¤‚ꂵ‚¢‚Å‚·B
-
- (db/)
- mob_skill_db.txt
- ‚¢‚­‚‚©‚ÌMOB‚̃Gƒ‚[ƒVƒ‡ƒ“‚Ì€–Ú‚Ì’l1‚ÉŽí—Þ‚ð“ü‚ꂽB
-
- (map/)
- skill.c
- skill_castend_nodamage_id()C³
- clif.c/clif.h
- clif_emotion()’ljÁ
-
-EƒpƒPƒbƒg‰ðÍ.txt‚ðclient_packet.txt‚ɉü–¼•C³
-
- (doc/)
- client_packet.txt
- ƒGƒ‚[ƒVƒ‡ƒ“‚Ìà–¾’ljÁ
-
-E‚Ç‚¤‚â‚çŽæ‚芪‚«MOB‚ÌŽí—ނ͌¢ƒf[ƒ^‚¾‚Á‚½‚Á‚Û‚¢‚Å‚·B
- ‚µ‚©‚àMOB¢Š«‚ł͎艺¢Š«‚ƈႤMOB‚𢊫‚·‚é‚Ý‚½‚¢‚Å‚·‚ËB
- Ú‚µ‚¢l‚Ímob_skill_db.txt‚𒼂µ‚Ä‚­‚ê‚é‚ÆB
-
---------------
-//0393 by ‚¢‚Ç
-
-EcharŽI‚Å‚ÌloginŽI‚̃|[ƒgÝ’è‚ð6900‚ɌŒ肵A•ÏX‚Å‚«‚È‚¢‚悤‚É‚µ‚½
-@(login‘¤‚Ń|[ƒg6900ŒÅ’è‚É‚È‚Á‚Ä‚¢‚½‚Ì‚Åchar‘¤‚à‚»‚ê‚ɇ‚킹‚Ü‚µ‚½B)
- char/char.c
- conf/char_athena.cnf
- doc/conf_ref.txt
-
---------------
-//0392 by ŒÓ’±—–
-
-EMOB‚Ìs“®C³
- E‰½ŒÌ‚©last_thinktick‚ª‰Šú‰»‚³‚ê‚Ä‚¢‚È‚¢–â‘èC³
- Eã‚ÉŠÖ˜A‚µ‚ÄPC‚ª‹ß‚­‚É‚¢‚Ä‚àŽè”²‚«ˆ—‚ªs‚í‚ê‚é–â‘èC³
- i‚Ç‚¤‚â‚牊ú‚©‚ç‚̃oƒO‚¾‚Á‚½–Í—lH ‚±‚̃oƒO‚ÆA
- V‚µ‚¢Žè”²‚«ˆ—‚ÌŽd—l‚ªƒ^ƒbƒO‚ð‘g‚ñ‚ÅŽc‘œ‚ðì‚Á‚Ä‚¢‚½–Í—lj
- EŽæ‚芪‚«MOB—p‚ÌAIˆ—’ljÁi‚Ü‚¾‰ö‚µ‚¢‚Å‚·j
- EMOB‚̃XƒLƒ‹ƒfƒBƒŒƒC‚ðƒXƒLƒ‹€–Ú‚²‚Æ‚ÉŽ‚‚悤‚É•ÏX
- EƒXƒLƒ‹ƒfƒBƒŒƒC‚ª‘å‚«‚È€–ڂł̓I[ƒo[ƒtƒ[‚µ‚Ä‚¢‚½–â‘è‚ðC³
-
- map.h
- struct mob_data‚Ì skilldelay‚ð”z—ñ‚É‚µ‚Äunsigned int‚É•ÏX
- mob.h
- struct mob_skill‚Ìcasttime,delay‚ðint‚É•ÏX
- mob.c
- mob_ai_sub_hard_mastersearch()’ljÁ
- mob_changestate(),mob_delete(),mob_catch_delete(),mob_damage(),
- mobskill_use(),mobskill_use_id(),mobskill_use_pos(),
- mobskill_castend_id(),mobskill_castend_pos(),
- mob_ai_sub_hard(),mob_ai_sub_lazy()‚È‚ÇC³
-
-EMOBƒXƒLƒ‹‚̎艺¢Š«‚ƃ‚ƒ“ƒXƒ^[¢Š«ŽÀ‘•
- Emob_skill_db.txt‚Ì‘Ž®•ÏXiÅŒã‚É’l‚ð‚P‚’ljÁAŽæ‚芪‚«MOB‚ÌIDj
- EŽæ‚芪‚«MOB‚ª‚í‚©‚ç‚È‚©‚Á‚½‚à‚̂̓Rƒƒ“ƒg‰»‚µ‚Ä‚¢‚Ü‚·
- ‚í‚©‚él‚Í“ü—Í‚æ‚낵‚­‚¨Šè‚¢‚µ‚Ü‚·B
- EŒ»Ý‚ÍŽæ‚芪‚«‚͈ê“x“|‚µ‚½‚畦‚«‚È‚¨‚µ‚Ü‚¹‚ñB
- Eƒ{ƒX‚ªƒeƒŒƒ|[ƒg‚µ‚Ä‚àŽæ‚芪‚«‚Í’Ç‚¢‚©‚¯‚Ü‚¹‚ñB
- E–{ŽI‚Å‚Ç‚¤‚È‚Á‚Ä‚é‚Ì‚©’m‚ç‚È‚¢‚Ì‚ÅAŠÔˆá‚Á‚Ä‚éꇂ͋³‚¦‚Ä‚­‚¾‚³‚¢B
-
- (db/)
- mob_skill_db.txt
- Žè‰º¢Š«‚Ȃǂ̃f[ƒ^C³
-
- (map/)
- skill.c
- skill_castend_nodamage_id()C³
-
---------------
-//0391 by Ž€_
-
-Eƒyƒbƒg‚̈ړ®’†‚ɃpƒtƒH[ƒ}ƒ“ƒX‚ð‚·‚é‚ƃyƒbƒg‚ª’âŽ~‚·‚é‚悤‚É•ÏXB
- (ƒyƒbƒg‚̈ʒu‚ª‚¸‚ê‚邽‚ßC³‚µ‚Ü‚µ‚½B)
- pet.c
- pet_performance() C³B
-EŽ€‚ñ‚¾ƒ‚ƒ“ƒXƒ^[‚Í‚Ç‚ñ‚Ès“®‚à‚Æ‚ê‚È‚¢‚悤‚É•ÏXB(‚±‚ê‚Å–³“G
- ƒ‚ƒ“ƒXƒ^[‚ª‚¢‚È‚­‚È‚é‚Æ‚¢‚¢‚Å‚·‚ª...)
- mob.c
- mob_changestate(),mob_delete(),mob_catch_delete(),mob_damage(),
- mob_ai_sub_hard(),mob_ai_sub_lazy() C³B
-EPCANPCA°ƒAƒCƒeƒ€‚ªŽg‚¤ID‚͈̔͂𒲮B
- °ƒAƒCƒeƒ€‚Í0‚©‚ç500000‚Ü‚Å‚ÅPC‚Í500000‚©‚ç100000000ANPC
- (ƒ‚ƒ“ƒXƒ^[‚ðŠÜ‚ß‚Ä)‚Í110000000‚©‚ç–ñ21‰­‚Ü‚Å‚É‚È‚è‚Ü‚·B
- (-‚ðŠÜ‚ß‚é‚Æ‚à‚Á‚Ɣ͈͂ªL‚­‚È‚è‚Ü‚·‚ª‚³‚·‚ª‚É‚»‚±‚Ü‚Å‚Í•K—v‚È‚¢‚Æ
- Žv‚¢‚Ü‚·‚Ì‚Å...)
- map.h
- MAX_FLOORITEM ’ljÁ(‚±‚ê‚ð•Ï‚¦‚é‚Æ°ƒAƒCƒeƒ€‚Ìő唂ð•Ï‚¦‚é
- ‚±‚Æ‚ª‚Å‚«‚Ü‚·B¡‚Í100000‚É‚È‚Á‚Ä‚¢‚Ü‚·B‚½‚¾‚±‚ê‚Í•K‚¸
- 500000ˆÈ‰º‚É‚µ‚Ä‚­‚¾‚³‚¢B‚»‚¤‚µ‚È‚¢‚Ƴ‚µ‚­“®‚­‚©‚Ç‚¤‚©
- •ÛØ‚Å‚«‚Ü‚¹‚ñB)
- map.c
- map.h‚ɇ‚킹‚Ä­‚µC³B
- npc.h
- START_NPC_NUM ’ljÁB
- npc.c
- npc.h‚ɇ‚킹‚Ä­‚µC³B
- login.h
- START_ACCOUNT_NUM‚ÆEND_ACCOUNT_NUM ’ljÁB
- login.c
- login.h‚ɇ‚킹‚ÄC³BEND_ACCOUNT_NUMˆÈã‚Éaccount‚ð
- ì‚ê‚È‚¢‚悤‚É•ÏXB
-EƒJ[ƒgƒŒƒ{ƒŠƒ…[ƒVƒ‡ƒ“‚É•ŠíŒ¤‹†‚ð‚Q‰ñ“K—p‚·‚é‚悤‚É•ÏXB
- (Œ‹‹Ç‚ÍŒ³‚É–ß‚·‚±‚Æ‚É‚È‚è‚Ü‚µ‚½...^^;)
- battle.c
- Damage battle_calc_weapon_attack() C³B
-Emob‚̃XƒLƒ‹Žg—p‚ðbattle_athena.cnf‚ÅŒˆ‚ß‚é‚悤‚É•ÏXB
- mob.c
- mobskill_use() C³B
- battle.h
- battle.c
- struct Battle_Config‚Émob_skill_use’ljÁB
- battle_athena.cnf
- mob_skill_use’ljÁB(ݒ肵‚È‚¢‚Æno‚Å‚·B)
-Ebattle_athena.cnf
- mob‚ð“ñd‚Å“Ç‚ß‚È‚¢‚悤‚Énpc: conf/npc_monster.txt‚ðíœB
- (ÅV‚Ínpc_monster25.txt‚È‚Ì‚Å...)
-
---------------
-//390 by ŒÓ’±—–
-
-Eƒo[ƒWƒ‡ƒ“î•ñŠ“¾•”•ª‚ð­‚µ•ÏX
- EMODƒo[ƒWƒ‡ƒ“‚ð’è‹`‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½BÚׂÍversion.h‚ðB
- ‹C‚ªŒü‚¢‚½‚Æ‚«‚©A‘å‚«‚ÈXV‚ª‚ ‚é‚Æ‚«‚È‚Ç‚É•ÏX‚µ‚Ä‚­‚¾‚³‚¢B
- Eƒo[ƒWƒ‡ƒ“checkŽž‚Ìset eofƒƒO‚ªo‚È‚¢‚悤‚ɃpƒPƒbƒg7532’ljÁB
-
- (common/)
- version.h
- MODƒo[ƒWƒ‡ƒ“‚ð’è‹`‚Å‚«‚é‚悤‚ÉB
- (tool/)
- checkversion
- MODƒo[ƒWƒ‡ƒ“‚ð•\Ž¦‚·‚é‚悤‚ÉB
- (login/char/map)
- login.c/char.c/clif.c
- MODƒo[ƒWƒ‡ƒ“‚̈—’ljÁA
- ƒpƒPƒbƒg7532iØ’fjˆ—’ljÁB
-
-E‚»‚Ì‘¼FXC³
- E‚±‚Ü‚²‚Ü‚µ‚½C³‚΂©‚è‚Å‚·‚ªA‚ ‚Ü‚èŠo‚¦‚Ä‚¢‚Ü‚¹‚ñB
- EMOBƒXƒLƒ‹ðŒ‚Åslavelt,attackpcgtˆ—ŽÀ‘•i–¢ƒeƒXƒgjB
- EMOB‚̎艺¢Š«‚Ì‚½‚ß‚Ì‹@\’ljÁi‚Ü‚¾¢Š«‚Å‚«‚Ü‚¹‚ñjB
- E”͈̓XƒLƒ‹Œø‰Ê”͈͂Ɏ€–SPC‚ª‚¢‚é‚ÆŽI‚ª—Ž‚¿‚éƒoƒOC³B
- EMOBŽc‘œ‚ªo‚È‚­c‚È‚Á‚Ä‚½‚ç‚¢‚¢‚ÈB
-
- (map/)
- mob.c/mob.h/map.h/battle.c
- FX’ljÁ
-
- (db/)
- mob_skill_db.txt
- ƒ‹[ƒgŽžˆ—‚ÆA‘®«•ÏXƒXƒLƒ‹‚̃Rƒƒ“ƒg‚ðŠO‚µ‚½B
- i‘®«•ÏX‚Í–{ŽI‚Å“®‚¢‚Ä‚È‚¢‚炵‚¢‚à‚Ì‚àƒRƒƒ“ƒg‚ðŠO‚µ‚Ä‚Ü‚·B
- –â‘肪‚ ‚éꇂÍĂуRƒƒ“ƒg‰»‚µ‚Ä‚­‚¾‚³‚¢j
-
---------------
-//389 by ‚¢‚Ç
-
-E388‚Ì•ÏX
- ƒo[ƒWƒ‡ƒ“î•ñ‚ðcommon/version.h“à‚̒蔂ðŽg—p‚·‚é‚悤‚É•ÏX
-
---------------
-//388 by ŒÓ’±—–
-
-Eƒo[ƒWƒ‡ƒ“î•ñŠ“¾ƒc[ƒ‹“Y•t
- Perl»‚È‚Ì‚ÅŽÀs‚É‚ÍPerl‚ª•K—v‚Å‚·B
- Žg—p•û–@‚Ȃǂ̓GƒfƒBƒ^‚ÅŠJ‚¢‚ÄŒ©‚Ä‚­‚¾‚³‚¢B
- Žg‚¢•û‚ª—Ç‚­‚í‚©‚ç‚È‚¢l‚ÍŽè‚ðo‚³‚È‚¢‚Ù‚¤‚ª‚¢‚¢‚Å‚·B
-
- ƒo[ƒWƒ‡ƒ“‚ðŠm”F‚·‚é—p“r‚æ‚è‚ÍAƒT[ƒo[‚̶‘¶Šm”F—p‚Æ‚¢‚Á‚½‚©‚ñ‚¶‚Å‚·
- ƒpƒPƒbƒg7530/7531‚ÌÚׂ̓\[ƒX‚ðŒ©‚Ä‚­‚¾‚³‚¢B
-
- (tool/)
- checkversion
- ƒo[ƒWƒ‡ƒ“Šm”Fƒc[ƒ‹PerlƒXƒNƒŠƒvƒg
-
- (login/)
- login.c
- ƒpƒPƒbƒg7530/7531‚̈—’ljÁ
- (char/)
- char.c
- ƒpƒPƒbƒg7530/7531‚̈—’ljÁ
- (map/)
- clif.c
- ƒpƒPƒbƒg7530/7531‚̈—’ljÁ
-
-E384ˆÈ‘O‚Ìathena.txt‚à“Ç‚Ýž‚ß‚é‚悤‚É‚µ‚Ü‚µ‚½
- Econvert‚ª–Ê“|‚ÈlŒü‚¯B
- E³‚µ‚­“Ç‚Ýž‚ß‚é•ÛØ–³‚µBƒoƒbƒNƒAƒbƒv‚ð–Y‚ꂸ‚ÉB
-
- (char/)
- char.c
- 384‚Ì•ûŽ®‚Å“Ç‚Ýž‚ß‚È‚¢ƒf[ƒ^‚Í384ˆÈ‘O‚Ì•ûŽ®‚àŽŽ‚·‚悤‚ÉB
-
-Econf_ref.txt/help.txt/getaccountC³
- help.txt
- petƒRƒ}ƒ“ƒh‚Ìà–¾’ljÁ
- (doc/)
- conf_ref.txt
- petŠÖ˜A‚ÌÝ’è‚Ìà–¾’ljÁ
- (tool/)
- getlogincount
- •\Ž¦‚ÌC³
-
---------------
-//387 by ‚¢‚Ç
-EconfƒtƒHƒ‹ƒ_“à‚ÌNPC’è‹`ƒf[ƒ^‚Ì®—
- ˆÈ‰º‚̃tƒ@ƒCƒ‹‚ð휂µ‚Ü‚µ‚½
- npc_kafraJ.txt
- npc_mind_prtmons.txt
- npc_script2J.txt(npc_event_mobtim.txt‚É“¯‚¶‚à‚Ì‚ª‚ ‚Á‚½‚½‚ß)
- npc_testJ.txt(‚Ù‚Ú“¯‚¶‚±‚Æ‚ª@ƒRƒ}ƒ“ƒh‚Åo—ˆ‚邽‚ß)
- npc_warp25.txt(npc_warp.txt‚É“‡)
-
- ˆÈ‰º‚̃tƒ@ƒCƒ‹‚Ì–¼‘O‚ð•ÏX‚µ‚Ü‚µ‚½
- npc_monster3.txt -> nop_monster2E.txt
- npc_monster3J.txt -> npc_monster25.txt
- npc_monster.txt -> npc_monsterE.txt
- npc_monsterJ.txt -> npc_monster.txt
- npc_sampleJ.txt -> npc_sample.txt
- npc_script3j.txt -> npc_script2.txt
- npc_script25J.txt -> npc_town_lutie.txt
- npc_shop1J.txt -> npc_shop_test.txt
- npc_shop2J.txt -> npc_shop_mobtim.txt
- npc_shop3J.txt -> npc_shop2.txt
- npc_shop.txt -> npc_shopE.txt
- npc_shopJ.txt -> npc_shop.txt
- npc_testJ.txt -> npc_test.txt
- npc_warp3.txt -> npc_warp2.txt
- npc_warp4.txt -> npc_warp25.txt
-
-Eƒ}ƒbƒv’è‹`‚̒ljÁ
- ƒWƒ…ƒm[ƒAƒbƒvƒf[ƒg‚ŒljÁ‚³‚ê‚éƒ}ƒbƒv‚ÆAŠØŽI“ÆŽ©(?)‚̃NƒCƒYƒ][ƒ“
- (ƒRƒ‚ƒhƒAƒbƒvƒf[ƒg)‚Æ“V’ÃAƒbƒvƒf[ƒg‚̃}ƒbƒv’è‹`‚ð’ljÁ
- Œ»ÝA“úˆÆ‚É–³‚¢‚à‚Ì‚ÉŠÖ‚µ‚Ă̓Rƒƒ“ƒgƒAƒEƒg‚µ‚Ä‚¢‚ÜB
- conf/map_athena.cnf
-
---------------
-//385 by ŒÓ’±—–
-
-EMOB‚Ìs“®C³
- EŽè”²‚«ˆ—‚ňړ®‚µ‚È‚¢ƒ‚[ƒh‚ÌMOB‚à•à‚­–â‘èC³
- EMOB‚ð“|‚µ‚½‚Æ‚«AÄspawnŽž‚ª‚¨‚©‚µ‚È’l‚É‚È‚éꇂª‚ ‚é–â‘èC³
- iMOB‚ª•¦‚©‚È‚­‚È‚é–â‘肪C³‚³‚ꂽ‚Í‚¸j
- EMOB‚̃[ƒv‚ÅꊌŸõ‚É1000‰ñŽ¸”s‚µ‚½‚猳‚ÌꊂÉo‚é‚悤‚ÉC³
- EMOB‚ð‰r¥’†‚É“|‚·‚ÆAƒ^ƒCƒ}[‚ð휂·‚é‚悤‚ÉC³
-
- mob.c
- mob_delete(),mob_catch(),mob_damage(),
- mob_ai_sub_lazy(),mob_ai_sub_hard()‚È‚ÇC³
- mobskill_deltimer()’ljÁ
-
---------------
-//0384 by Ž€_
-
-EƒyƒbƒgŽÀ‘•B
-Žv‚Á‚½‚æ‚è’·‚­‚©‚©‚è‚Ü‚µ‚½BˆêŽü‚à‚©‚©‚Á‚½‚¹‚¢‚ʼn½ˆ‚ðC³‚µ‚½‚©
-Šo‚¦‚Ä‚È‚¢–â‘肪‚ ‚è‚Ü‚·‚ª... ‚»‚ê‚Å”O‚ׂ̈Émap‚Æchar‚̃tƒ@ƒCƒ‹‚Í‘S‚Ä
-ŠÜ‚߂ăAƒbƒv‚µ‚Ü‚·B
-‚»‚ê‚Æmakefile‚Æathena.sh‚ÍŽ©•ª‚ªŽg‚Ä‚¢‚镨‚Å‚·B
-Yare-launcher‚ÍŽg‚Ä‚Ü‚¹‚ñ‚ª‚¢‚‚àŽI‚ÌŽÀsƒtƒ@ƒCƒ‹‚ÅŽÀs‚µ‚Ä‚¢‚Ü‚·‚Ì‚Å...
- char/char.cAchar/char.hAchar/inter.cAchar/makefile C³B
- char/int_pet.cAchar/int_pet.h ’ljÁB
- map/makefile C³B
- map/intif.cAmap/intif.hAmap/map.cAmap/map.hAmap/mob.cAmap/mob.hA
- map/npc.cAmap/npc.hAmap/battle.cAmap/battle.hAatcomand.cAmap/pc.cA
- map/clif.cAmap/clif.hAmap/script.c FXC³B
- map/pet.cAmap/pet.h ‚Í–w‚Ç‚ðŽ©•ª‚Ì•¨‚É‘‚«Š·‚¦‚Ü‚µ‚½B
- common/mmo.h C³B
- db/pet_db.txt C³B
- db/item_db.txt C³B(Œg‘Ñ—‘›z‰»‹@‚Ìbpet ƒXƒNƒŠƒvƒg‚ª”²‚¯‚Ä‚¢‚½‚Ì‚Å
- “ü‚ꂽ‚¾‚¯‚Å‚·‚ª...)
- doc/INTERŽIƒpƒPƒbƒg.txt‚Ì–¼‘O‚ðinter_server_packet.txt‚É•ÏX‚ƃyƒbƒg‚Ì
- •Û‘¶“™‚ÉŽg‚¤ƒpƒPƒbƒg‚ð’ljÁB
-* ¡“x‚̃yƒbƒgŽÀ‘•‚É‚æ‚èƒLƒƒƒ‰ƒtƒ@ƒCƒ‹‚Ì\‘¢‚ª•Ï‚í‚èˆÈ‘O‚Ì•¨‚ƌ݊·‚Å‚«‚È‚¢
- ‚Ì‚Å tool/convert.c ‚ð’ljÁ‚µ‚Ü‚µ‚½B
- ’P“ƂŃRƒ“ƒpƒCƒ‹‚Å‚«‚Ü‚·‚̂ŃRƒ“ƒpƒCƒ‹‚µ‚½‚ ‚ÆŽÀs‚µ‚ăLƒƒƒ‰
- ƒtƒ@ƒCƒ‹‚ð•ÏŠ·‚µ‚Ä‚­‚¾‚³‚¢B‚»‚¤‚µ‚È‚¢‚ƃLƒƒƒ‰‚ª‘S•””ò‚Ñ‚Ü‚·‚Ì‚Å...
-* ƒyƒbƒg‚Ìe–§“x‚ª0‚É‚È‚é‚ƃyƒbƒg‚Í‚»‚Ìê‚Å“®‚¯‚È‚­‚È‚è‚»‚Ìó‘Ô‚Å‘¼‚Ì
- ƒ}ƒbƒv‚Ɉړ®‚·‚é‚©I—¹‚·‚é‚ƃyƒbƒg‚ÍÁ–Å‚µ‚Ü‚·Bˆê‰žƒyƒbƒg‚Ì“¦‘–‚ð
- ŽÀ‘•‚·‚é‚‚à‚è‚Åì‚Á‚½‚Ì‚Å‚·‚ª–{ŽI‚É‚ ‚Á‚Ä‚é‚©‚Ç‚¤‚©‚Í‚í‚©‚è‚Ü‚¹‚ñB
-* ˆÚ“®‘¬“x‚ª’x‚¢ƒyƒbƒg‚Ìꇗ£‚ê‰ß‚¬‚é‚Ƃ‚¢‚Ä—ˆ‚ê‚È‚­‚È‚è‚Ü‚·B‚Å‚à
- ‚±‚Ìꇃ}ƒbƒv‚ðˆÚ“®‚µ‚Ä‚à‚¿‚á‚ñ‚Ƃ‚¢‚Ä—ˆ‚Ü‚·B
- Á–Å‚µ‚½‚è‚Í‚µ‚Ü‚¹‚ñB
-* ˆÚ“®‘¬“x‚ª‘¬‚¢ƒyƒbƒg‚̓Lƒƒƒ‰‚æ‚èæ‚Ɉړ®‚µ‚Ü‚·B–{ŽI‚Ì•û‚ª‚Ç‚¤‚È‚Ì‚©
- ‚í‚©‚ç‚È‚¢‚̂Ńyƒbƒg‚̈ړ®‚̓‚ƒ“ƒXƒ^[‚̈ړ®‘¬“x‚ňړ®‚·‚é
- ‚悤‚É‚µ‚Ü‚µ‚½B
-Ebattle_athena.cnf
-pet_catch_rate ’ljÁB
- ƒyƒbƒg‚̕ߊl”{—¦‚ðݒ肵‚Ü‚·B(ݒ肵‚È‚¢‚Æ100)
- Šî–{“I‚Ƀyƒbƒg‚̕ߊl‚ÉŽg‚Á‚Ä‚éŒöŽ®‚Í
- (pet_db.txt‚̕ߊl—¦ + (ƒLƒƒƒ‰ƒŒƒxƒ‹ - ƒ‚ƒ“ƒXƒ^[ƒŒƒxƒ‹)*0.3 + luk *0.2)
- * (2 - ƒ‚ƒ“ƒXƒ^[‚ÌŒ»ÝHP/ƒ‚ƒ“ƒXƒ^[‚ÌÅ‘åHP)
- ‚É‚È‚è‚Ü‚·BŽ©•ª‚È‚è‚Éì‚Á‚½•¨‚Å‚·‚Ì‚Å–{ŽI‚Æ‚Í‚©‚È‚è‚Ì
- ˆá‚¢‚ª‚ ‚é‚©‚à’m‚ê‚Ü‚¹‚ñB(ƒ‚ƒ“ƒXƒ^[‚ÌHP‚ðŒ¸‚ç‚¹‚ÎŒ¸‚ç‚·’ö•ßŠl—¦‚ª
- オ‚éŽd‘g‚Ý‚Å‚·‚ª...)
-pet_rename ’ljÁB
- ƒyƒbƒg‚Ì–¼‘O‚ð•ÏX‚·‚é‚©‚Ç‚¤‚©‚ðŒˆ‚ß‚Ü‚·B(ݒ肵‚È‚¢‚Æno)
- yes‚͉½“x‚Å‚à–¼‘O‚Ì•ÏX‚ª‰Â”\B
- no‚͈ê“x•ÏX‚·‚é‚Æ‚à‚¤•ÏX•s‰Â”\‚É‚È‚é
-pet_hungry_delay_rate ’ljÁB
- ƒyƒbƒg‚Ì• ‚ªŒ¸‚鎞ŠÔ‚Ì”{—¦‚Å‚·B(ݒ肵‚È‚¢‚Æ100)
- ”{—¦‚ª‚‚¢‚Æ• ‚ªŒ¸‚è“ï‚­‚È‚è‚Ü‚·
-mvp_exp_rate •ÏXB
- ‚·‚Å‚Éstruct mob_db‚Ìmexpper‚̓Sƒ~‚É‚È‚Á‚Ä‚¢‚é‚Ì‚Å(MVP EXP‚Í
- MVPƒAƒCƒeƒ€‚ªŽæ‚ê‚È‚©‚Á‚½ê‡“ü‚é‚̂ňӖ¡‚ª‚ ‚è‚Ü‚¹‚ñB)
- MVP EXP‚Ì—Ê‚Ì”{—¦‚É‚È‚é‚悤‚É•ÏXB(mob.c‚ðC³)
-Echar_athena.cnf
-autosave_time ’ljÁB
- Ž©“®•Û‘¶‚·‚鎞ŠÔ‚ðŒˆ‚ß‚Ü‚·B(ݒ肵‚È‚¢‚Æ300)
- šdˆÊ‚Í•b‚Å‚·B(ƒtƒ@ƒCƒ‹‚É•Û‘¶‚·‚鎞ŠÔ‚ÌŠÔŠu‚Å‚·B)
-Emap_athena.cnf
-autosave_time ’ljÁB
- Ž©“®•Û‘¶‚·‚鎞ŠÔ‚ðŒˆ‚ß‚Ü‚·B(ݒ肵‚È‚¢‚Æ60)
- šdˆÊ‚Í•b‚Å‚·B(ƒLƒƒƒ‰ŽI‚Ƀf[ƒ^‚𑗂鎞ŠÔ‚ÌŠÔŠu‚Å‚·B‚±‚ê‚Í
- ƒtƒ@ƒCƒ‹‚É•Û‘¶‚·‚鎞ŠÔ‚ÌŠÔŠu‚¶‚á‚ ‚è‚Ü‚¹‚ñB)
-Einter_athena.cnf
-pet_txt ’ljÁB
- ƒyƒbƒg‚̃f[ƒ^‚ð•Û‘¶‚·‚éƒtƒ@ƒCƒ‹‚ðŒˆ‚ß‚Ü‚·B(ݒ肵‚È‚¢‚Æpet.txt)
-E@makepet ƒRƒ}ƒ“ƒh’ljÁB
- ƒyƒbƒg‚ÌŽÀ‘•‚É‚æ‚Á‚Ä@item‚Åì‚Á‚½—‘‚ÍŽg‚Á‚Ä‚à–³‘Ê‚É‚È‚è‚Ü‚·‚Ì‚Å
- ‚±‚ê‚ðŽg‚Á‚Ä—‘‚ðì‚Á‚Ä‚­‚¾‚³‚¢B
- @makepet <ƒ‚ƒ“ƒXƒ^[‚ÌID or —‘‚ÌID>
-E@petfriendly ƒRƒ}ƒ“ƒh’ljÁB
- @petfriendly <”Žš>
- ƒyƒbƒg‚ð˜A‚ê‚Ä‚¢‚鎞‚Ƀyƒbƒg‚Ìe–§“x‚ð•ÏXB(0~1000)
-E@pethungry ƒRƒ}ƒ“ƒh’ljÁB
- @pethungry <”Žš>
- ƒyƒbƒg‚ð˜A‚ê‚Ä‚¢‚鎞‚Ƀyƒbƒg‚Ì–ž• “x‚ð•ÏXB(0~100)
-E@petrename ƒRƒ}ƒ“ƒh’ljÁB
- @petrename
- ƒyƒbƒg‚ð˜A‚ê‚Ä‚¢‚鎞‚Ƀyƒbƒg‚Ì–¼‘O‚ð•ÏX‚Å‚«‚é‚悤‚É•ÏXB
-Eint_guild.cAint_party.c “Ç‚Ýž‚Þƒtƒ@ƒCƒ‹‚ɃGƒ‰[‚ª‚ ‚Á‚Ä‚àƒvƒƒOƒ‰ƒ€‚ð
- I—¹‚¹‚¸‚Éi‚ނ悤‚É•ÏXB
-Epc_walk 123 != 1234 “™‚̃Gƒ‰[‚ªo‚È‚¢‚悤‚É
- if((i=calc_next_walk_step(sd))>0) {
- sd->walktimer=add_timer(tick+i/2,pc_walk,id,sd->walkpath.path_pos);
- ‚ð
- if((i=calc_next_walk_step(sd))>0) {
- i = i/2;
- if(i <= 0)
- i = 1;
- sd->walktimer=add_timer(tick+i,pc_walk,id,sd->walkpath.path_pos);
- ‚̂悤‚É•ÏX‚µ‚Ü‚µ‚½B
- tick‚ª“¯‚¶”’l‚É‚È‚é‚Ì‚ð–h‚¢‚½‚Ì‚Å‚·‚ª‚±‚ê‚Å‚Ç‚ñ‚ȉe‹¿‚ªo‚é‚©‚Í
- ‚³‚Á‚Ï‚è‚í‚©‚è‚Ü‚¹‚ñB
- pc.cAmob.c‚ðC³B
- ‚Å‚à‚±‚ÌC³‚ð‚µ‚Ä‚à˜A‘±‚ŃNƒŠƒbƒN‚µ‚½‚è‚·‚é‚ƃLƒƒƒ‰‚ª‚µ‚΂炭
- Ž~‚Ü‚é‚悤‚Å‚·B(ƒyƒbƒg‚Ì‚¹‚¢‚ÆŽv‚¢‚Ü‚µ‚½‚ªƒyƒbƒg‚ª‚È‚­‚Ä‚à
- “¯‚¶‚¾‚Á‚½‚Ì‚Å‘¼‚ÌŒ´ˆö‚©‚Æ...)
-* doc/code_ref.txt‚Æhelp.txt‚Í–Ê“|‚­‚³‚¢‚Ì‚ÅC³‚µ‚Ä‚Ü‚¹‚ñB
-Egm_all_skill: yes‚Å2-2‚̃XƒLƒ‹‚à•\Ž¦‚³‚ê‚é‚悤‚É•ÏXB(ŽŽ‚¢‚¹‚Í‚¢‚Ü‚¹‚ñ‚ª...)
- pc.c
- pc_calc_skilltre() C³B
-EƒJ[ƒgƒŒƒ{ƒŠƒ…[ƒVƒ‡ƒ“‚̃_ƒ[ƒWŒvŽZ‚ðC³B
- •ŠíŒ¤‹†‚ð“ñdŒvŽZ‚µ‚Ä‚¢‚½‚Ì‚ÅC³B
- battle.c
- Damage battle_calc_weapon_attack() C³B
-
---------------
-//381 by ŒÓ’±—–
-
-EMOB‚Ìs“®C³
- EPC‚Ì‚¢‚È‚¢ƒ}ƒbƒv‚ÌMOB‚ÍŽžXƒ[ƒv‚·‚é‚悤‚É‚È‚è‚Ü‚µ‚½
- EPC‚Ì‚¢‚éƒ}ƒbƒv‚ÌMOB‚Í•à‚­ˆÈŠO‚ÉAŽžX•¦‚«’¼‚·‚悤‚É‚È‚è‚Ü‚µ‚½
- i‚±‚ê‚Ü‚½ƒpƒtƒH[ƒ}ƒ“ƒX‚ɉe‹¿‚ª‚ ‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñF­‚µd‚­‚È‚é‚©‚àj
- EŽè”²‚«ˆ—‚ŃuƒƒbƒN‚Ì—LŒø”»’è‚ðs‚¤‚悤‚É‚µ‚Ü‚µ‚½
- iHP–³ŒÀMOB–â‘èC³Hj
- Eƒ‹[ƒgŽžƒXƒLƒ‹Žg—p‹@\ŽÀ‘•
-
- mob.c/mob.h
- mob_ai_sub_lazy(),mob_ai_sub_hard()C³
- MSS_LOOT’ljÁ,mob_readskilldb()C³
-
-EMOBƒXƒLƒ‹‚Ì‘®«•ÏX‚ðŽÀ‘•‚µ‚Ü‚µ‚½B
-
- map.h
- struct mob_data‚É def_eleƒƒ“ƒo’ljÁ
- mob.c
- mob_spawn()‚Ådef_ele‚ðƒZƒbƒg‚·‚é‚悤‚É•ÏX
- battle.c
- battle_get_element()‚Ådef_ele‚ð“ǂނ悤‚É•ÏX
- skill.c
- skill_castend_nodamage_id()C³
-
-EƒNƒ@ƒOƒ}ƒCƒA‚ÌŒø‰Ê”͈͂©‚ço‚é‚ÆŒø‰Ê‚ªØ‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½
-
- skill.c
- ƒ†ƒjƒbƒgŒnˆ—C³
-
---------------
-//380 by ‚`‚Ìl
-
-EƒJ[ƒgƒŒƒ”ƒHƒŠƒ…[ƒVƒ‡ƒ“‚̃_ƒ[ƒWŒvŽZŽÀ‘•
- battle.c‚ð•ÏXB
-
-CHRIS‚³‚ñA‚ ‚肪‚Æ‚¤ŒäÀ‚¢‚Ü‚·B
-ƒmƒbƒNƒoƒbƒNŽÀ‘•‚Å‚«‚È‚­‚ÄA¢‚Á‚Ä‚Ü‚µ‚½i„ƒG
-
---------------
-//379 by CHRIS
-
-EƒJ[ƒgƒŒƒ”ƒHƒŠƒ…[ƒVƒ‡ƒ“‚ÌŽÀ‘•
- skill.c‚Æbattle.c‚ð•ÏXB
-
-Eƒ}ƒOƒiƒ€ƒuƒŒƒCƒN‚ɃmƒbƒNƒoƒbƒN‚ð’ljÁB
- battle.c‚ð•ÏXB
-
-iƒ\[ƒX‚ð˜M‚Á‚½‚͉̂‚ß‚Ä‚È‚Ì‚ÅA—L‚Á‚Ä‚é‚©‚Ç‚¤‚©•ª‚©‚è‚Ü‚¹‚ñ‚ªAŽ©•ª‚Å‚Ío—ˆ‚Ü‚µ‚½Bj
-iƒvƒƒOƒ‰ƒ€ŠÖŒW‚̑Ђ𔃂Á‚ĕ׋­‚µ‚ĉ‚߂ĘM‚Á‚½‚Ì‚Å‚·EEEBƒKƒ“ƒoƒŠƒ}ƒXIBj
-
---------------
-//377 by ŒÓ’±—–
-
-EMOB‚Ìs“®C³
- E‹ß‚­‚ÉPC‚Ì‚¢‚È‚¢MOB‚ªŽžXƒ[ƒv‚·‚éŽd—l‚ðŽ~‚ß‚Ü‚µ‚½B
- EPC‚Ì‚¢‚È‚¢ƒ}ƒbƒv‚ÌMOB‚Í‘S‚­“®‚©‚È‚­‚È‚è‚Ü‚µ‚½B
- EPC‚Ì‚¢‚éƒ}ƒbƒv‚ÅA‹ß‚­‚ÉPC‚Ì‚¢‚È‚¢MOB‚ÍŽžX•à‚­‚悤‚É‚È‚è‚Ü‚µ‚½B
- E‚»‚Ì‘¼×‚©‚¢‚Æ‚±‚ëC³
- iƒpƒtƒH[ƒ}ƒ“ƒX‚ɉe‹¿‚ª‚ ‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñF­‚µd‚­‚È‚é‚©‚àj
-
- mob.c
- mob_randomwalk()’ljÁ
- mob_ai_sub_lazy(),mob_ai_sub_hard()C³‚È‚Ç
-
-EƒXƒLƒ‹C³
- EMOB‚ªƒeƒŒƒ|[ƒg‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½
-
- mob.c
- mob_warp()’ljÁ
- skill.c
- skill_castend_nodamage_id()C³
-
-EƒXƒe[ƒ^ƒXˆÙí‚̈ꕔ‚ðŽÀ‘•/C³
- EPC/MOB‚Æ‚à‚É‘¬“xŒ¸­‚ÌŒø‰Ê‚ªŒ»‚ê‚é‚悤‚ÉiAGI‚Ì•\Ž¦‚Í•Ï‚í‚炸j
- EPC‚̃Gƒ“ƒWƒFƒ‰ƒXAƒCƒ“ƒ|ƒVƒeƒBƒIƒ}ƒkƒXA‘¬“x㸂̌ø‰Ê‚ðC³
- EMOB‚Ì2HQAƒAƒhƒŒƒiƒŠƒ“ƒ‰ƒbƒVƒ…AƒGƒ“ƒWƒFƒ‰ƒXAƒCƒ“ƒ|ƒVƒeƒBƒIƒ}ƒkƒXA
- ‘¬“xã¸/Œ¸­AƒOƒƒŠƒAAƒuƒŒƒbƒVƒ“ƒO‚È‚Ç‚ÌŒø‰ÊŽÀ‘•
- E‡–°A“€Œ‹AƒXƒ^ƒ“‚Ì•K’†Œø‰ÊŽÀ‘•
- E‡–°‚̃NƒŠƒeƒBƒJƒ‹”{Œø‰ÊŽÀ‘•
- EˆÃ•‚Ì–½’†—¦A‰ñ”𗦌¸­Œø‰ÊŽÀ‘•
- EŽô‚¢‚ÌATKŒ¸­Œø‰ÊALUKŒ¸­Œø‰ÊŽÀ‘•
-
- battle.c
- battle_get_*()C³
- battle_calc_weapon_damage()C³
- mob.c
- mob_get_speed(),mob_get_adelay()’ljÁ
- pc.c
- pc_calcstatus()C³
-
-Eitem_value_db.txt‚ŃAƒCƒeƒ€‚̉¿Ši‚ðÝ’è‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½
- E‰¿Šiƒf[ƒ^‚ðƒI[ƒo[ƒ‰ƒCƒh‚Å‚«‚é‚悤‚É‚µ‚Ü‚µ‚½B
- E‚±‚ê‚Åitem_db2.txt‚ð—pˆÓ‚·‚é•K—v‚ª‚ ‚è‚Ü‚¹‚ñB
-
- (db/)
- item_value_db2.txt
- item_db2.txt‚̉¿Šiƒf[ƒ^B
- item_value_db.txt‚ɃŠƒl[ƒ€‚·‚é‚Æ“Ç‚Ýž‚Ý‚Ü‚·B
- (map/)
- itemdb.c
- itemdb_readdb()C³
-
-EŒÃ–Ø‚ÌŽ}‚ðŽg‚¤‚ÆMOB‚Ì–¼‘O‚ª 0 ‚É‚È‚é–â‘è‚ÌC³
-
- (db/)
- item_db.txt
- ŒÃ–Ø‚ÌŽ}‚̃f[ƒ^C³
-
---------------
-//375 by ŒÓ’±—–
-
-EMOBê—pƒXƒLƒ‹‚ÌŒø‰Ê‚ð‚¢‚­‚‚©ŽÀ‘•
- ‘½’iUŒ‚A“łȂǂ̒ljÁŒø‰Ê•t—^UŒ‚A‘®«•t‚«UŒ‚A–‚–@‘ÅŒ‚UŒ‚
- •K’†UŒ‚A–hŒä–³Ž‹UŒ‚Aƒ‰ƒ“ƒ_ƒ€ATKUŒ‚‚È‚ÇB
- ‚½‚¾‚µA**‘S‚­ƒeƒXƒg‚µ‚Ä‚Ü‚¹‚ñ**B
-
- (db/)
- skill_db.txt
- MOB—pƒXƒLƒ‹‚̃f[ƒ^‚ðC³
- mob_skill_db.txt
- ­‚µ’ljÁ
- (map/)
- skill.c
- skill_castend_damage_id()C³
- skill_status_change_start()C³
- skill_additional_effect()C³
- battle.c
- battle_calc_weapon_attack()C³
-
-EƒXƒLƒ‹‚ð­‚µC³
- EƒEƒH[ƒ^[ƒ{[ƒ‹‚Å“G‚ªŽ€‚ñ‚Å‚¢‚Ä‚àŒ‚‚ƒ‚[ƒVƒ‡ƒ“‚ð‚·‚é–â‘èC³
-
- skill.c
- skill_status_change_timer()C³
-
-EMOBƒf[ƒ^‚ª•Ï‚È‚Ì‚Å–^‚v‚̃f[ƒ^ƒx[ƒX‚ð—¬—p‚µ‚Ä‚Ý‚é
- Eƒf[ƒ^‚Ì•À‚ч‚Æ‚©‘S‚­“¯‚¶‚È‚ñ‚Å‚·‚Ë
-
- (db/)
- mob_db.txt
- –^‚v‚Ìmob_db.txt
-
-EŠeŽíconf‚̃Šƒtƒ@ƒŒƒ“ƒX‚ð“Y•t
- ‚ ‚­‚܂ŃŠƒtƒ@ƒŒƒ“ƒX‚È‚Ì‚ÅAHowTo‚È‚ñ‚©‚Í‘‚¢‚Ä‚Ü‚¹‚ñB
-
- (doc/)
- conf_ref.txt
- conf‚̃Šƒtƒ@ƒŒƒ“ƒX{ƒ¿
-
-
---------------
-//373 by ŒÓ’±—–
-
-EMOBƒXƒLƒ‹Žg—p‹@\‰¼ŽÀ‘•
- EƒXƒLƒ‹Žg—pŽž‚̈—‚̓vƒŒƒCƒ„[‚Æ‹¤—p(skill.c)‚Å‚·B
- E•s“s‡‚ª‘½‚¢‚ÆŽv‚¤‚Ì‚Å•ñ‚¨Šè‚¢‚µ‚Ü‚·B
- Emob_skill_db.txt‚ð–„‚ß‚Ä‚­‚ê‚él‚à•åWB
- ‚±‚̃f[ƒ^‚Íuƒ‰ƒOƒiƒƒN‚Ì‚½‚Ü‚²v‚ðŽQl‚É‚µ‚Ä‚¢‚Ü‚·B
-
- (db/)
- mob_skill_db.txt
- MOBƒXƒLƒ‹ƒf[ƒ^ƒx[ƒX(–¢Š®¬)
- ƒeƒXƒg—p‚̃f[ƒ^‚µ‚©“ü‚Á‚Ä‚Ü‚¹‚ñB
- (map/)
- mob.c/mob.h
- mobskill_*’ljÁA‚»‚Ì‘¼‘½”C³
- map.h
- struct mob_data ‚É skill* ’ljÁ
- skill.c/skill.h
- skill_castcancel()‚âƒXƒLƒ‹ƒ†ƒjƒbƒgˆ—‚ðMOB‚ɑΉž‚³‚¹‚½
- battle.c
- battle_calc_damage()‚È‚ÇC³
-
-EƒMƒ‹ƒh‚̃XƒLƒ‹‚ªG‚ê‚È‚¢–â‘èC³
- E‚¢‚‚̂܂ɂ©pc_skillup‚ªŒÃ‚¢‚à‚Ì‚É•Ï‚í‚Á‚Ä‚¢‚½‚Ì‚ÅC³
-
- pc.c
- pc_skillup(),pc_checkskill()C³
-
---------------
-//368 by ŒÓ’±—–
-
-EMOBŒn‚ÌC³‚È‚Ç
- EMOB‚ªô“G”͈͓à‚ÌPC/ƒAƒCƒeƒ€‚𓙊m—¦‚ŃƒbƒN‚·‚é‚悤‚É‚È‚è‚Ü‚µ‚½
- iƒAƒNƒeƒBƒuAƒ‹[ƒgF‚¢‚Ü‚Ü‚Å‚ÍŠY“–ƒuƒƒbƒN‚̃Šƒ“ƒNƒŠƒXƒg‚̇‚È‚Ç‚É
- ˆË‘¶‚µ‚Ä‚¢‚½j
- EŽË’ö”ÍˆÍ“à‚©‚ÂA“ž’B•s‰Â”\’n‘Ñ‚ÌPC‚ðMOB‚ªƒƒbƒN‚·‚é‚ÆA
- MOB‚ª’âŽ~‚µ‚½‚èA‚»‚Ìê‚Å–\‚ꂾ‚µ‚½‚è‚·‚é–â‘è‚ÌC³
- EMOBƒƒbƒN’†‚ÉIW‚È‚Ç‚Å“ž’B•s‰Â”\‚É‚È‚Á‚½ê‡AƒƒbƒN‚ð‰ðœ‚·‚é‚悤‚ÉB
- EAEGIS•ûŽ®‚Å“G‚̈ړ®‚ðŒvŽZ‚µ‚Ĉړ®•s‰Â”\‚È‚çAAthenaŽ®‚ÅŒvŽZ‚·‚é‚悤‚É
- EƒƒbƒN‚ª‰ðœ‚³‚ê‚é‚Æ‚«‚É”•b‚»‚Ìê‚Å’âŽ~‚·‚é‚悤‚É‚µ‚½
- E•às‚ª’x‚¢MOB‚ª‚Æ‚Ü‚ç‚È‚¢/ŽŸ‚Ì•àsŠJŽn‚ª‘‚·‚¬‚é–â‘è‚ðC³‚µ‚Ü‚µ‚½
- Eƒ‹[ƒgŠÖ˜Aˆ—‚ð­‚µC³
-
- mob.c
- mob_ai_sub_hard*()C³
- mob_can_reach()’ljÁ
-
-EƒXƒLƒ‹Žg—pŽž‚Ƀ^[ƒQƒbƒgƒuƒƒbƒN‚Ì—LŒø«”»’è‚ðs‚¤‚悤‚ÉC³
-Eƒ‹ƒAƒt‚̃_ƒ[ƒW‚ª•ŠíŒvŽZ‚É‚È‚Á‚Ä‚¢‚é‚̃oƒO‚ð–‚–@ŒvŽZ‚ÉC³
-
- skill.c
- skill_castend_id()C³
- skill_status_change_timer_sub()C³
-
-
-----------
-//364 by ‚¢‚Ç
-EˆÈ‰º‚̃pƒPƒbƒg‚Ìà–¾‚ð•ÏX
- doc/ƒpƒPƒbƒg‰ðÍ.txt
- R 006a <error No>.B
- R 0081 <type>.B
-
-E363‚Ńrƒ‹ƒhŽž‚Éwarning‚ªo‚é•s‹ï‡‚ðC³
- map/guild.h
-
---------------
-//363 by ŒÓ’±—–
-
-EƒMƒ‹ƒh‚ÌC³
- EƒƒOƒCƒ“‚µ‚Ä‚¢‚È‚¢PC‚ð’Ç•ú‚·‚é‚ƃ}ƒbƒvŽI‚ª—Ž‚¿‚éƒoƒOC³
- Eƒƒ“ƒo[’ljÁ’¼Œã‚ɒljÁ‚³‚ꂽPC‚ªƒMƒ‹ƒh•\Ž¦‚ɒljÁ‚³‚ê‚È‚¢–â‘èC³
- E“¯‚¶ƒMƒ‹ƒh‚É“¯C•ÊƒLƒƒƒ‰‚ª—v‚éPC‚ª’E‘Þ‚·‚é/’Ç•ú‚³‚ê‚é‚ƕʃLƒƒƒ‰‚ª
- ’E‘Þ‚µ‚Ä‚µ‚Ü‚¤ê‡‚ª‚ ‚éƒoƒOC³
- Eƒƒ“ƒo[‚ª‚¢‚é‚̂ɉðŽU‚µ‚悤‚Æ‚·‚é‚ƃ}ƒbƒvŽI‚ª—Ž‚¿‚éƒoƒOC³
-
- (char/)
- int_guild.c
- guild_calcinfo(),mapif_parse_GuildAddMember()C³
- (map/)
- guild.c
- guild_member_leaved(),guild_member_added()
- guild_recv_info(),guild_break()C³
-
---------------
-//362 by ŒÓ’±—–
-
-EƒMƒ‹ƒh‰ðŽUŽÀ‘•
-
- (char/)
- int_guild.c
- ‰ðŽUˆ—‚ð’ljÁ
- (map/)
- guild.c/guild.h
- guild_break(),guild_broken(),guild_broken_sub()‚ȂǒljÁ
- clif.c/clif.h
- clif_guild_broken(),clif_parse_GuildBreak()’ljÁ
- intif.c/intif.h
- intif_parse_GuildBroken()’ljÁ
-
---------------
-//361 by ‚¢‚Ç
-
-E360‚Å‚Ì@heal‚Ì•ÏXŠÔˆá‚¢‚ð’ù³
- map/atcommand.c
-
---------------
-//360 by ‚¢‚Ç
-
-E353‚ÌC³‚ðíœ
-E@heal‚Å•ÏXŒã‚Ì’l‚ªƒ}ƒCƒiƒX‚É‚È‚ç‚È‚¢‚悤‚ÉC³
-
---------------
-//359 by ‚¢‚Ç
-
-Eclass_equip_db.txt‚Ì•¶Žš‰»‚¯C³
-
---------------
-//358 by ŒÓ’±—–
-
-EƒƒOƒCƒ“Žž‚Ìdelete_timer‚̃Gƒ‰[‚ðo‚È‚¢‚悤‚É‚µ‚½
- pc.c
- pc_authok()‚ÌC³
-
-EƒMƒ‹ƒhŠÖŒW‚ÌC³
- Eƒƒ“ƒoŠ©—UŽž‚ÉÅ‘ål”‚ÌŠm”F‚ðs‚¤‚悤‚É
- Eƒf[ƒ^’Ê’mˆ—‚ð‚¢‚­‚‚©C³
-
- (char/)
- int_guild.c
- FXC³
- (map/)
- clif.c/clif.h
- clif_guild_inviting_refused()‚ðclif_guild_inviteack()‚ɉü–¼
- guild.c/intif.c
- FXC³
-
-E@guildlvupƒRƒ}ƒ“ƒhì¬BƒMƒ‹ƒhƒŒƒxƒ‹‚ª’²®‚Å‚«‚Ü‚·B
-
- (char/)
- int_guild.c
- FXC³
- (map/)
- atcommand.c
- @guildlvupˆ—’ljÁ
-
-EMakefike‚Ìclean•”•ª‚ðC³
-
- (char/ map/ login/)
- Makefile
- E휂·‚éŽÀsƒtƒ@ƒCƒ‹‚̃pƒX‚ð ../athena/ ‚©‚ç ../ ‚ÉC³
-
---------------
-//357 by ŒÓ’±—–
-
-Epc.c‚Ì•¶Žš‰»‚¯C³
- •¶Žš‰»‚¯‚µ‚½ƒtƒ@ƒCƒ‹‚ðƒAƒbƒv‚·‚é‚Ì‚àA‚»‚ê‚ð‰ü‘¢‚·‚é‚Ì‚à‹ÖŽ~‚µ‚Ü‚¹‚ñ‚©H
- ’¼‚·‚Ì–Ê“|‚­‚³‚·‚¬‚Ü‚·B
-
- pc.c
- •¶Žš‰»‚¯‚ÌC³
-
-Eƒp[ƒeƒB‚âƒMƒ‹ƒh‚ÉŠ©—U‚³‚ꂽó‘ԂŃ}ƒbƒvˆÚ“®‚⃃OƒAƒEƒg‚·‚é‚ÆA
- Š©—U‚ð‹‘”Û‚·‚é‚悤‚ÉC³
-
- pc.c
- pc_setpos()C³
- map.c
- map_quit()C³
-
-EI-AthenaŽ©“®•œ‹ŒƒVƒXƒeƒ€(B-NSJŽì)‚ðAthena—p‚ɉü‘¢‚µ‚Ä“Y•t‚µ‚Ü‚µ‚½
- ƒvƒƒOƒ‰ƒ€‚Ì«Ž¿ã./toolƒtƒHƒ‹ƒ_‚Å‚Í‚È‚­./‚É‚ ‚è‚Ü‚·B
- athena.sh‚Ì•Ï‚í‚è‚Éstart‚Å‹N“®‚·‚é‚ÆmapŽI‚ª—Ž‚¿‚Ä‚à10•b’ö“x‚Å•œ‹Œ‚µ‚Ü‚·
- ƒvƒƒZƒX‚Íumapv‚Å’²‚ׂĂ܂·‚ª‘¼‚̃vƒƒZƒX‚É”½‰ž‚·‚é‚Æ‚«‚Í
- umap-serverv‚È‚Ç‚É•Ï‚¦‚Ä‚Ý‚Ä‚­‚¾‚³‚¢B
-
- start
- mapŽIŽ©“®•œ‹ŒƒVƒXƒeƒ€‚̃VƒFƒ‹ƒXƒNƒŠƒvƒg
-
-
---------------
-//0356 by Ž€_
-
-Eathena.sh‚ðŽg‚í‚È‚­‚Ä‚àYare-launcher‚ðŽg‚¦‚é‚悤‚É•ÏXB(Ž©•ªŽŽ‚µ‚Ä‚Ü‚µ‚½‚ª
-ˆê‰ž“®‚«‚Ü‚µ‚½B‚Å‚à‘‹‚Ìê‡login-server.exe‚ªlogin-server.ex‚É“o˜^‚³‚ê‚Ä‚µ‚Ü‚¢
-Yare-launcher‚ªlogin-server.exe‘±‚¯‚ÄŽÀs‚·‚é–â‘肪‚ ‚è‚Ü‚·B‚±‚ê‚Íathena‚Ì
-–â‘è‚Å‚Í‚ ‚è‚Ü‚¹‚ñ‚ª...)
- comm/makefileˆÈŠO‚Ìmakefile‘S‚Ä‚ðC³B
- athena.shC³B
- ŽÀsƒtƒ@ƒCƒ‹‚Í.,/athena ƒtƒHƒ‹ƒ_[‚¶‚á‚È‚­./ ƒtƒHƒ‹ƒ_[‚Éì‚ç‚ê‚Ü‚·B
-E V‹Kaccount‚Ì‹–—e‚·‚é‚©‚Ç‚¤‚©‚ðlogin_athena.cnf‚ÅŒˆ‚ß‚é‚悤‚É•ÏXB(‚±‚ê‚Í
- YareCVS‚ðŽQl‚µ‚½•¨‚Å‚·B)
- login.c
- int mmo_auth() C³B
- login_athena.cnf
- new_account ’ljÁB
-Echar.cAlogin.cAinter.cAmap.cAbattle.c‚ňꕔ‚Ìstrcmp‚ðstrcmpi‚É•ÏXB
-
---------------
-//355 by ‚䂤
-
-E¶Žè‘•”õ‚àl—¶‚µ‚½“ñ“—¬‚ÉC³
-@iƒ_ƒ[ƒWŒvŽZ‚Ì‚Ý‚ÅŒ©‚½–Ú“™‚Í•ÏX‚È‚µj
-
-map.h
- map_session_data‚ɶŽè—p‚Ì•Ï”‚ð’ljÁ
-
-battle.h
- battle_get_attack_element2()’ljÁ
-
-battle.c
- battle_get_attack_element2()’ljÁ
- battle_calc_weapon_attack()‚É
- @“ñ“—¬‚̈—‚ð’ljÁC³
- @ƒNƒŠƒeƒBƒJƒ‹‚æ‚èƒ_ƒuƒ‹ƒAƒ^ƒbƒN‚ðæ‚É”»’è‚·‚é‚悤‚ÉC³
- @‰ß踘B‚̒ljÁƒ_ƒ[ƒW‚ð¸˜Bƒ_ƒ[ƒW‚ÌŽŸ‚Ɉ—‚·‚é‚悤‚ÉC³
- @i‚±‚ê‚ç‚Í“ÆŽ©‚É’²‚ׂ½‚à‚Ì‚ÅŠÔˆá‚Á‚Ä‚¢‚é‰Â”\«‚ ‚èj
-
-pc.c
- pc_calcstatus()‚ɶŽè—p‚Ì•Ï”‚É’l‚ð“ü‚ê‚鈗‚ð’ljÁ
- pc_equipitem()‚Ì“ñ“—¬‘•”õ‚Ìꊂª‚¨‚©‚µ‚©‚Á‚½‚Ì‚ðC³
-
---------------
-//353 by ‚¢‚Ç
-
-EYare-launcher‚ðŽg‚¤‚±‚Æ‚ªo—ˆ‚é‚悤‚ÉMakefile‚Æathena.sh‚ð•ÏX
-
---------------
-//352 by ŒÓ’±—–
-
-E‰r¥’†‚ɃNƒ‰ƒCƒAƒ“ƒg‚ðI—¹‚·‚é‚ÆmapŽI‚ª—Ž‚¿‚é–â‘è‚ÌC³
- skill.c
- skill_castend_id(),skill_castend_pos(),skill_castend_map()C³
- map.c
- map_quit()C³
-
-
-Eƒf[ƒ^ƒoƒbƒNƒAƒbƒv—p‚̃c[ƒ‹“Y•t
- Perl»‚È‚Ì‚ÅŽÀs‚É‚ÍPerl‚ª•K—v‚Å‚·B
- Žg—p•û–@‚Ȃǂ̓GƒfƒBƒ^‚ÅŠJ‚¢‚ÄŒ©‚Ä‚­‚¾‚³‚¢B
- Žg‚¢•û‚ª—Ç‚­‚í‚©‚ç‚È‚¢l‚ÍŽè‚ðo‚³‚È‚¢‚Ù‚¤‚ª‚¢‚¢‚Å‚·B
- ƒf[ƒ^‚ªÁ‚¦‚Ä‚àÓ”C‚ÍŽ‚¿‚Ü‚¹‚ñ
-
- (tool/)
- backup
- ƒf[ƒ^ƒoƒbƒNƒAƒbƒv—pPerlƒXƒNƒŠƒvƒg
-
---------------
-//0351 by Ž€_
-skill.c
- skill_use_id()‚ɉr¥”½‰žƒ‚ƒ“ƒXƒ^[‚̈—‚ð•ÏXB(UŒ‚ó‘ԈȊO‚Ìê‡
- ‰r¥”½‰ž‚ðÅ—Dæ‚É‚µ‚Ü‚·B)
-mob.c
- mob_ai_sub_hard_castsearch() ‰r¥”½‰žƒ‚ƒ“ƒXƒ^[‚ð“ñdˆ—‚µ‚Ä
- ‚¢‚½‚Ì‚ÅíœB
- mob_ai_sub_hard() ‰r¥”½‰žƒ‚ƒ“ƒXƒ^[‚ð“ñdˆ—‚µ‚È‚¢‚悤‚É•ÏXB
-pet.c - 0344‚É–ß‚µ‚Ü‚µ‚½B(C³‚Í­‚µ•ªÍ‚ð‚µ‚Ä‚©‚ç‚É‚µ‚Ü‚·B)
-pet.h - 0344‚É–ß‚µ‚Ü‚µ‚½B
-char.h
- CHAR_CONF_NAME ’ljÁB
-char.c
- do_init() ŽÀs‚·‚鎞ƒtƒ@ƒCƒ‹–¼‚ª“ü—Í‚³‚ê‚Ä‚¢‚È‚¢‚ÆCHAR_CONF_NAME‚ð
- Žg‚¤‚悤‚É•ÏXB
-map.h
- MAP_CONF_NAME ’ljÁB
-map.c
- do_init() ŽÀs‚·‚鎞ƒtƒ@ƒCƒ‹–¼‚ª“ü—Í‚³‚ê‚Ä‚¢‚È‚¢‚ÆMAP_CONF_NAME‚ð
- Žg‚¤‚悤‚É•ÏXB
-‚±‚ê‚Ålogin.exeAchar.exeAmap.exe‚ðathenaƒtƒHƒ‹ƒ_[‚ɃRƒs[‚µ‚½Œã–¼‘O‚ð
-login-server.exeAchar-server.exeAmap-server.exe‚É•ÏX‚·‚é‚ÆYare-launcher‚ðŽg‚¤
-‚±‚Æ‚ª‚Å‚«‚Ü‚·B‚±‚ê‚ðŽg‚¤‚ÆŽI‚ª—Ž‚¿‚é“x‚ÉŽ©“®“I‚ÉÄŽÀs‚µ‚Ä‚­‚ê‚Ü‚·B
-
---------------
-//0345 by Ž€_
-EƒLƒƒƒXƒeƒBƒ“ƒO’T’mŽÀ‘•B
- mob.c
- mob_ai_sub_hard_lootsearch() C³B
- mob_ai_sub_hard() C³B
- mob_ai_sub_hard_castsearch() ’ljÁB
- mob_target(), mob_ai_sub_hard_activesearch() ƒ{ƒXƒ‚ƒ“ƒXƒ^[‚ð
- mvpŒoŒ±’l‚É‚æ‚Á‚Ä”FŽ¯‚·‚é‚悤‚É•ÏXB
- mob_ai_sub_hard_linksearch() C³B
- mob_attack() Ž€‚ñ‚¾‚Ó‚èAƒnƒCƒfƒBƒ“ƒO‚ðƒ`ƒFƒbƒN‚·‚é‚悤‚É•ÏXB
- mob_readdb() C³B
-Epet.h
- MAX_PET_DB‚ð100‚É•ÏXB
-Epet.c
- read_petdb() C³B
-
---------------
-//0344 by@‰ß‹Ž‚Ìli1
-E@ƒyƒbƒg• Œ¸‚èŽÀ‘•‚¨‚æ‚Ñ‚»‚Ì‚Ù‚©FXC³
-E@ƒyƒbƒg‰a‚â‚èŽÀ‘•
-
- pet.c
- pet_calcrate(struct map_session_data *sd);
- ƒyƒbƒg‚ÌŠl“¾Šm—¦ŒvŽZ
- pet_food(struct map_session_data *sd);
- ƒyƒbƒg‰a‚â‚èƒVƒXƒeƒ€
- pet_hungry_change( int tid, unsigned int tick, int id,int data );
- ƒyƒbƒg‚ª• ‚ðŒ¸‚éƒƒWƒbƒN
- pet_status_int(struct map_session_data *sd);
- e–§“xŒvŽZ
- pet_status_hungry(struct map_session_data *sd);
- –ž• “xŒvŽZ
- pet_status_1a3(struct map_session_data *sd);
- ƒpƒPƒbƒg1a3Ý’èŠÖ”
- pet_initstate(struct map_session_data *sd);
- ƒyƒbƒg‚ª‰‚߂Ķ‚܂ꂽ‚Æ‚«‚̉ŠúƒXƒe[ƒ^ƒXÝ’è
- pet.h
- int pet_calcrate(struct map_session_data *sd);
- int pet_food(struct map_session_data *sd);
- int pet_hungry_change( int tid, unsigned int tick, int id,int data );
- int pet_status_int(struct map_session_data *sd);
- int pet_status_hungry(struct map_session_data *sd);
- int pet_status_1a3(struct map_session_data *sd);
- int pet_initstate(struct map_session_data *sd);
- ‚ð’ljÁ
- clif.c
- clif_pet_emotion(int fd,struct map_session_data *sd)
- ‰a‚ð‚ ‚°‚½‚Æ‚«‚ɃGƒ‚[ƒVƒ‡ƒ“‚ðs‚¤
- clif.h
- clif_pet_emotion(int fd,struct map_session_data *sd);
-
---------------
-//0341 by Ž€_
-Eƒ‹[ƒgƒ‚ƒ“ƒXƒ^[ŽÀ‘•B
- map.h
- LOOTITEM_SIZE‚ð20‚ÉC³B
- struct mob_data‚Éint lootitem_count ’ljÁB
- mob.c
- mob_spawn() ­‚µC³B
- mob_ai_sub_hard_lootsearch() ’ljÁB
- mob_ai_sub_hard() C³B
- struct delay_item_drop2 ’ljÁB
- mob_delay_item_drop2() ’ljÁB
- mob_damage() C³B
- battle.h
- struct Battle_Config‚Éint monster_loot_type ’ljÁB
- battle.c
- battle_config_read() C³B
- battle_athena.cnf
- monster_loot_type: 0 ’ljÁB(Šî–{“I‚É0‚É‚È‚Á‚Ä‚¢‚Ü‚·B
- 0‚ÌꇂÍLOOTITEM_SIZE‚܂ŃAƒCƒeƒ€‚ðH‚ׂĂà
- ‚Ü‚½ƒAƒCƒeƒ€‚ðH‚ׂđO‚̃AƒCƒeƒ€‚ªÁ‚¦‚éŽd—l‚Å‚·B
- 1‚ÌꇂÍLOOTITEM_SIZE‚܂ŃAƒCƒeƒ€‚ðH‚ׂé‚Æ
- ‚à‚¤ƒAƒCƒeƒ€‚ðH‚ׂȂ­‚È‚è‚Ü‚·B
-
---------------
-//0340 by Ž€_
-EmvpƒoƒOC³B
- mob.c
- mob_damage()‚Åj‚É•Ï‚¦‚½‚Í‚¸‚Ì•¨‚ÉŒ©—Ž‚Æ‚µ‚ ‚è‚Ü‚µ‚½‚Ì‚Å
- C³‚µ‚Ü‚µ‚½B‚±‚ê‚ÅmvpƒAƒCƒeƒ€‚Å•Ï‚È•¨‚ªo‚È‚­‚È‚é‚Í‚¸‚Å‚·B
-Eclass_equip_db.txt
- EUC-JIS‚ðS-JIS‚É•ÏXB(ˆÓ–¡‚Í‚ ‚è‚Ü‚¹‚ñ‚ª‘¼‚̃tƒ@ƒCƒ‹‚Í
- ‘S•”S-JIS‚¾‚Á‚½‚Ì‚Å...’P‚È‚éƒ~ƒX‚Å‚·‚ª...)
-
-----------
-//339 by ‚¢‚Ç
-
-E338‚ð“K—p‚µ‚½ó‘ԂŃrƒ‹ƒhƒGƒ‰[‚ª”­¶‚·‚é•s‹ï‡‚ðC³
-
-----------
-//338 by ‰ß‹Ž‚Ìli1
-
-E@pet_db.txt‚ɑΉž‚µ‚Ü‚µ‚½B
-E@pet_db‚ð‚‚©‚Á‚½ƒvƒƒOƒ‰ƒ€‚Ì‘‚«•û‚ÉC³‚µ‚Ü‚µ‚½B
-E@ƒyƒbƒg‚Ì–¼‘O‚ð•ÏX‚·‚鎖‚ªo—ˆ‚Ü‚·
-E@ƒyƒbƒg‚ɃAƒNƒZƒTƒŠ[‚ð‚‚¯‚鎖‚ªo—ˆ‚Ü‚·B
-E@Œ»Ýƒyƒbƒg‰a‚â‚èis’†
-
- (map/)
- clif.c/clif.h
- E petŠÖ˜A‚ÌŠÖ”‚ð‚Ù‚ÚC³‹y‚ђljÁ‚¢‚½‚µ‚Ü‚µ‚½B
- E clif_parse_EquipItem()“à•”‚Ńyƒbƒg—p‘•”õ‚Å‚ ‚é‚©‚Ç‚¤‚©‚Ì”»’è‚ðs‚Á‚Ä‚Ü‚·
- E clif_parse()‚ðC³‚µ‚Ü‚µ‚½B
-
- battle.h/battle.c
- E@battle_config.pet_rate•Ï”‚ð‘‚₵‚Ü‚µ‚½Bmob‚ɑ΂·‚é—‘‚ÌŠl“¾—¦
- @@‚ðÝ’è‚·‚鎖‚ª‰Â”\‚Æ‚È‚è‚Ü‚·
-
- pet.c/pet.h
- E pet_initstate(struct map_session_data *sd);
- @‰Šú‚̃yƒbƒgƒXƒe[ƒ^ƒX‚ðÝ’è‚·‚éŠÖ”‚Å‚·
- E pet_npcid(struct map_session_data *sd,int egg_name_id);
- @ƒyƒbƒg‚ÉŠ„‚è“–‚Ä‚ç‚ꂽnpc_id‚ð•Ô‚µ‚Ü‚·
- E pet_itemid(struct map_session_data *sd,int mob_id);
- @ƒ‚ƒ“ƒXƒ^[ID‚©‚ç—‘‚ÌID‚ðŠ„‚èo‚µ‚Ü‚·
- E pet_equip(struct map_session_data *sd,int equip_id);
- @ƒyƒbƒg‚̃AƒNƒZƒTƒŠ[‘•”õ‚Å‚·
- E pet_unequip(struct map_session_data *sd);
- @ƒyƒbƒg‚̃AƒNƒZƒTƒŠ[‰ðœ‚Å‚·
- E pet_calcrate(struct map_session_data *sd);
- @—‘Šl“¾Šm—¦ŒvŽZ‚ðs‚¢1or0‚ð•Ô‚µ‚Ü‚·B
- E pet_food(struct map_session_data *sd);
- @ƒyƒbƒg‰a‚â‚èlˆÄ‚Å‚·B‚Ü‚¾³í‚É“®ì‚µ‚Ü‚¹‚ñB
- E read_petdb()
- @pet_db.txt‚ð“Ç‚Ýž‚Ýpet_db[]‚É’l‚ð“ü‚ê‚éŠÖ”‚Å‚·
-
- E do_init_pet()
- @mapŽI‰Šú‰»‚Å‚æ‚Ñ‚¾‚µpet_db[]‚ðŽg‚¦‚é‚悤‚É‚·‚éˆ×‚Ì
- ƒyƒbƒgî•ñ‰Šú‰»ŠÖ”‚Å‚·B
-
- map.c/map.h
- E@BL_PET•Ï”‚ð‰Á‚¦‚Ü‚µ‚½
- E@mapŽI‰Šú‰»‚ÌŽž‚Édo_init_pet()‚ðŒÄ‚Ño‚µ‚Ü‚·B
-
- mmo.h
- E@s_pet\‘¢‘Ì‚É•Ï”’ljÁBƒLƒƒƒ‰ƒNƒ^[‚ªƒyƒbƒg‚̃f[ƒ^‚ð•ÛŽ‚·‚éˆ×‚̃VƒXƒeƒ€
- @‚̈סŒã‚à•Ï”‚Í‚»‚̂‚Ǒ‰Á‚·‚é—\’è
-
- npc.c
- ‰ü‘P‚µ‚Ü‚µ‚½B
-
- (conf/)
- battle_athena.cnf‚É—‘‚ÌŠl“¾Šm—¦pet_rate‚ð‰Á‚¦‚Ü‚µ‚½B
-
-----------
-//337 by ŒÓ’±—–
-
-EƒMƒ‹ƒh‚̒ljÁ‚ÆC³
- EƒMƒ‹ƒh‚ÉŒoŒ±’l‚ðã”[‚·‚é‚ÆAã”[‚³‚ê‚éEXP‚ªˆÙí‚È’l‚É‚È‚éƒoƒOC³
- EƒMƒ‹ƒh‚Ì“G‘Ί֌W‚̒ljÁ
-
- guild.c/guild.h
- guild_payexp()‚ÌC³(ã”[EXPˆ—)
- guild_opposition()’ljÁ
- guild_allianceack(),guild_reqalliance(),
- guild_reply_reqalliance()‚ÌC³
- clif.c/clif.h
- clif_guild_oppositionack(),clif_parse_GuildOpposition’ljÁ
-
-EƒfƒBƒŒƒCŽžŠÔ‚ªdex‚̉e‹¿‚ðŽó‚¯‚é‚©‚Ç‚¤‚©‚ðbattle_athena.cnf‚É‘‚¯‚é‚悤‚É
-
- (conf/)
- battle_athena.conf
- delay_dependon_dex ‚ð’ljÁ
- (map/)
- skill.c
- skill_delay_fix()‚ÌC³
- battle.c/battle.h
- struct Battle_Config‚Édelay_dependon_dex’ljÁ
- battle_config_read()‚ÌC³(“Ç‚Ýž‚݈—‚à•Ï‚¦‚Ä‚Ü‚·)
-
---------------
-//0336 by Ž€_
-EƒXƒLƒ‹ƒCƒ“ƒfƒ…ƒA‚ð­‚µC³B
-Eclif.c
- clif_skill_damage()Aclif_skill_damage2() ƒCƒ“ƒfƒ…ƒA‡‚킹‚ÄC³B
- (‚½‚¾ƒXƒLƒ‹‚â–‚–@‚É‚È‚é‚ƃ‚[ƒVƒ‡ƒ“‚ªo‚È‚¢ƒpƒPƒbƒg‚ð
- Œ©‚‚¯‚È‚©‚Á‚½‚Ì‚ÅŠ®‘S‚¶‚á‚ ‚è‚Ü‚¹‚ñB)
- clif_parse_ActionRequest()Aclif_parse_UseSkillToId()Aclif_parse_UseSkillToPos()
- ƒXƒLƒ‹ƒfƒBƒŒƒC‚ÌŽž‚ɃƒbƒZ[ƒW‚ªo‚é‚悤‚ÉC³B
-EƒoƒbƒNƒXƒeƒbƒvŽÀ‘•AƒIƒŠƒfƒIƒRƒ“Œ¤‹†ŽÀ‘•B
-Eskill.c
- skill_castend_damage_id()‚É‚ ‚Á‚½ƒXƒLƒ‹ƒoƒbƒNƒXƒeƒbƒv‚̈—‚ð
- skill_castend_nodamage_id()‚Ɉړ®‚µ‚Ü‚µ‚½B
- ƒXƒLƒ‹ƒoƒbƒNƒXƒeƒbƒv‚̈—‚Åclif_skill_damage2()‚ðŒÄ‚Ô‚Ì‚ðclif_fixpos()‚ð
- ŒÄ‚Ԃ悤‚É•ÏXB(‚±‚ê‚Ń_ƒ[ƒW‚̃‚[ƒVƒ‡ƒ“‚ªo‚¸‚É
- ˆÚ“®‚Å‚«‚Ü‚·B)
- ƒoƒbƒNƒXƒeƒbƒv‚Æ‹©‚Ԃ悤‚É•ÏXB
- skill_produce_mix() ƒIƒŠƒfƒIƒRƒ“Œ¤‹†“K—pB•ŠíƒŒƒxƒ‹‚ª3ˆÈã‚ÌŽž‚É
- ƒXƒLƒ‹ƒŒƒxƒ‹*1%‚ªƒ{[ƒiƒX‚Æ‚µ‚Ä»‘¢Šm—¦‚É•t‚«‚Ü‚·B
- ƒGƒ‹ƒjƒEƒ€‚ÌŠm—¦”»’è’ljÁB
-Eskill_db.txt - ƒoƒbƒNƒXƒeƒbƒv‚Ìnk‚ð0‚©‚ç1‚É•ÏXB(ƒXƒLƒ‹”Ô†150‚Ì•¨‚Å‚·B)
-Eproduce_db.txt ƒIƒŠƒfƒIƒRƒ“,ƒGƒ‹ƒjƒEƒ€‚ð’ljÁB(‚±‚ê‚Í–{ŽI‚É‚Í‚È‚¢•¨‚Å‚·B
- ‚æ‚Á‚ăNƒ‰ƒCƒAƒ“ƒg‚É‚Í•K—v‚ȃAƒCƒeƒ€‚ª•\Ž¦‚³‚ê‚Ü‚¹‚ñB)
- ƒIƒŠƒfƒIƒRƒ“Œ¤‹†‚ð­‚µŽg‚¦‚镨‚É‚·‚邽‚߂ɒljÁ‚µ‚Ü‚µ‚½B
- ƒIƒŠƒfƒIƒRƒ“‚Ìꇂ̓IƒŠƒfƒIƒRƒ“Œ´Î3‚‚ÆÎ’Y1‚‚ª•K—v‚Å
- ƒGƒ‹ƒjƒEƒ€‚̓Gƒ‹ƒjƒEƒ€Œ´Î3‚‚ÆÎ’Y1‚‚ª•K—v‚Å‚·B
-Epc.c ­‚µC³B
- pc_heal()pc_percentheal() ­‚µ‚¾‚¯C³B
- pc_gainexp() ƒMƒ‹ƒh‚Éexp‚ðã”[‚·‚鎞‚Éexp‚ªƒ}ƒCƒiƒX‚É‚È‚ç‚È‚¢‚悤‚É
- C³B“¯Žž‚É2‚ˆÈã‚̃Œƒxƒ‹‚ªã‚ª‚é‚悤‚É•ÏXB
- ő僌ƒxƒ‹ˆÈã‚ɃŒƒxƒ‹‚ªã‚ª‚ç‚È‚¢‚悤‚ÉC³B
- pc_checkbaselevelup()Apc_checkjoblevelup() ’ljÁBƒŒƒxƒ‹ƒAƒbƒv‚ð
- ƒ`ƒFƒbƒN‚µ‚Ü‚·B
- pc_itemheal() ’ljÁBƒAƒCƒeƒ€‚ðŽg‚¤Žž‚ÉVIT‚ƃXƒLƒ‹‚É‚æ‚Á‚ă{[ƒiƒX‚ª
- •t‚­•¨‚Å‚·BƒXƒLƒ‹ƒ‰[ƒjƒ“ƒOƒ|[ƒVƒ‡ƒ“ŽÀ‘•B
-Epc.h
- pc_checkbaselevelup(),pc_checkjoblevelup() ’ljÁB
- pc_itemheal() ’ljÁB
-Escript.c - ƒXƒNƒŠƒvƒgfixheal‚𜋎Bitemheal‚ð’ljÁBheal‚ªfixheal‚Ì‹@”\‚ð‚·‚é
- ‚悤‚É•ÏXB
- buildin_fixheal() ‚ðÁ‚µbuildin_heal()‚ðŒ³‚Ì•¨‚É–ß‚µ‚Ü‚µ‚½B(‚‚܂è
- buildin_heal()‚ªbuildin_fixheal()‚É‚È‚è‚Ü‚µ‚½B)
- buildin_itemheal() ’ljÁBƒAƒCƒeƒ€‚É‚æ‚é‰ñ•œ‚Í‚±‚ê‚ðŒÄ‚Ԃ悤‚É‚µ‚Ä
- ‚­‚¾‚³‚¢B
- buildin_heal()‚©‚çƒ{[ƒiƒX‚ÌŒvŽZ‚𜋎B
-Eitem_db.txtA item_db2.txt - heal‚ðitemheal‚É•ÏXB
-Emob.c
- mob_damage() 0335‚Åmvp‚É­‚µŠÔˆá‚¢‚ª‚ ‚è‚Ü‚µ‚½‚Ì‚ÅC³‚µ‚Ü‚µ‚½B
-Eskill.h
- MAX_SKILL_PRODUCE_DB‚ð64‚©‚ç100‚É•ÏXB
-
-
-//0335 by Ž€_
-Echar/char2.c‚̈ꕔ‚ÉRETCODE‚ª“K—p‚³‚ê‚Ä‚È‚©‚Á‚½‚Ì‚Å‚»‚ê‚ðC³B
-Echar/char2.c‚Ìparse_char()‚ŃLƒƒƒ‰‚ðÁ‚·Žž‚É–â‘肪‚ ‚è‚»‚¤‚ÈŠ‚ðC³B
-Echar/cha2.c,login/ login2.c‚ðchar/cha.c, login/login.c‚É•ÏXB
-Echar/makefile,login/makefile‚ð•ÏXB
-Emakefile‚Æcommon/mmo.h‚ð•ÏX‚µ‚ÄOS‚ðŽ©“®”FŽ¯‚µ‚ÄRETCODE‚ðŽ©“®‚É
- “K—p‚·‚é‚悤‚É•ÏXB
-Ecommon/grfio.c‚Ìgrfio_init()‚ðC³B(ƒR[ƒh‚ð‚¿‚å‚Á‚Æ‚«‚ê‚¢(H)‚É
- ‚µ‚½‚¾‚¯‚Å‚·‚ª,,,)
-EƒCƒ“ƒfƒ…ƒAŽÀ‘•B‚æ‚Á‚ăAƒ“ƒeƒBƒyƒCƒ“ƒƒ“ƒg‚àŽÀ‘•B
-Emap/clif.c
- clif_parse_LoadEndAck() ŠØ‘ƒNƒ‰ƒCƒAƒ“ƒg‚̃pƒbƒ`‚ɇ‚킹‚Ä­‚µ•ÏXB
- (ƒ}ƒbƒv‚ª•Ï‚í‚é“x‚É•Ší‚ƃV[ƒ‹ƒh‚ªŒ©‚¦‚È‚­‚Ȃ邽‚ß‚Å‚·B‚Ü‚¾
- “ú–{ƒNƒ‰‚Æ‚ÍŠÖŒW‚ ‚è‚Ü‚¹‚ñ‚ª...)
- clif_skillinfoblock() up‚Í‚¢‚ç‚È‚¢‚ÆŽv‚¤‚Ì‚ÅÁ‚µ‚Ü‚µ‚½BƒXƒLƒ‹ƒ|ƒCƒ“ƒg‚ª
- 256A512“™‚ÌŽžƒXƒLƒ‹ƒcƒŠ[‚ª³‚µ‚­•\Ž¦‚³‚ê‚È‚¢‚±‚Æ‚Í
- ‚à‚¤‚ ‚è‚Ü‚¹‚ñB
- clif_guild_skillinfo() “¯‚¶‚悤‚Éup‚ðÁ‚µ‚Ü‚µ‚½B
- clif_birthpet() pc_delitem() ŒÄ‚Ԃ悤‚É•ÏXB
- clif_damage() ƒCƒ“ƒfƒ…ƒA‚ɑΉž‚·‚é‚悤‚É•ÏXB
-Emap/pc.c
- pc_percentheal() ƒ}ƒCƒiƒX‚ð“ü‚ê‚Ä‚à“®‚­‚悤‚É•ÏXB­‚µC³B
- pc_heal() ­‚µC³B
- natual_heal() ­‚µC³B
- do_init_pc() natual_heal‚ÌC³‚ɇ‚킹‚Ä•ÏXB
- pc_calcstatus() ‹|‚ð‘•”õ‚µ‚Ä‚È‚¢‚ƃƒV‚Ì–Ú‚ª“K—p‚³‚ê‚È‚¢‚悤‚É•ÏXB
- ƒgƒ‰ƒXƒgŽÀ‘•B
- pc_damage() ƒCƒ“ƒfƒ…ƒA‚ɑΉž‚·‚é‚悤‚É•ÏXB
-Emap/pc.h
- pc_checkoverhp(), pc_checkoversp()‚ð’ljÁB
-Emap/map.h
- MAX_PC_CLASS‚ð+1‚ÉB
-Emap/atcomand.c
- comand‚ðcommand‚É•ÏXB
- strncmp‚ðstrcmpi‚É•ÏXB‚æ‚Á‚ăRƒ}ƒ“ƒh‚ª‘啶ŽšA¬•¶Žš‚ð‹æ•Ê‚·‚é
- •K—v‚ª‚È‚­‚È‚è‚Ü‚µ‚½B
-Emap/npc.h
- npc_parse_mob()‚ð’ljÁB(ˆÓ–¡‚Í‚ ‚è‚Ü‚¹‚ñ‚ª...)
-Emap/temdb.c
- itemdb_readdb()‚Åclass_equip_db.txt‚ð“ǂނ悤‚É•ÏXB
-Edb/class_equip_db.txt ‚ð’ljÁB‚±‚±‚Å‘•”õ‚·‚éƒNƒ‰ƒX‚ðŽw’肵‚Ü‚·B‚È‚¢ê‡‚Í
- item_db.txt‚É‚ ‚éjob‚ðŽg‚¢‚Ü‚·BŠÜ‚Ü‚ê‚Ă镨‚ÍŠ®‘S‚È•¨‚Å‚Í‚È‚­
- Žg—p—á’ö‚Ì•¨‚Å‚·B
-Emap/skill.c - skill_status_change_start() ƒCƒ“ƒfƒ…ƒA‚ÌŽžŠÔ‚𳂵‚­•ÏXB
-Emap/battle.h
- battle_config‚Ìexp_rate‚ðbase_exp_rate‚É•ÏXB,job_exp_rate‚ð’ljÁB
- battle_get_mexp()‚ð’ljÁB
-Emap/battle.c
- battle_config‚Ìexp_rate‚ðbase_exp_rate‚É•ÏXB,job_exp_rate‚ð’ljÁB
- battle_get_mexp()‚ð’ljÁB
- battle_calc_magic_attack()‚ð•ÏXBƒ_[ƒ“ƒAƒ“ƒfƒbƒh‚Ń{ƒX‚Ì”FŽ¯‚ðmvp
- exp‚Å‚·‚é‚悤‚É•ÏXB
-Emap/mob.c
- mob_readdb() base_exp_rate,job_exp_rate‚ɑΉžB
- mob_readdb() ƒ{ƒX‚Ì”FŽ¯‚ðmvpŒoŒ±’l‚Å‚·‚é‚悤‚É•ÏXB
- mob_damage() mvp‚ðŽæ‚鎞‚̈—‚ð•ÏXBd‚³‚ª50%‚ð‰z‚¦‚é‚Æ°‚É
- —Ž‚¿‚é‚悤‚É•ÏX‚ÆFXB
-Econf/battle_athena.cnf
- base_exp_rateA,job_exp_rate‚ð’ljÁB
-E0308‚Å–Y‚ꂽ•¨
- ŒÃ‚­Â‚¢” AŒÃ‚¢ƒJ[ƒh’ŸAŒÃ‚¢Ž‡F‚Ì” ‚ÌŽg—p‚Å“¾‚ç‚ꂽƒAƒCƒeƒ€‚ð
- Ž‚Á‚Ä‚È‚­‚È‚Á‚½‚çƒAƒCƒeƒ€‚ð°‚É—Ž‚Æ‚·‚悤‚É•ÏXB
- »‘¢‚Í‚·‚Å‚É0302‚Å“K—pB
-
-----------
-//334 by C}{RIS
-
-E‚ ‚Ղ낾‚Ì332.txt‚ðpet_db.txt‚Æ‚µ‚Ä“¯«B
-
-EŠeŽíƒeƒLƒXƒgƒtƒ@ƒCƒ‹‚̃~ƒX‚ðC³
- Eattr_fix.txt@‘®«C³‚ªƒ}ƒCƒiƒX‚É“­‚¢‚Ä“G‚ª‰ñ•œ‚·‚é–â‘è‚ðC³B
- „Œ³‚̉ñ•œŽd—l‚É–ß‚µ‚½‚¢ê‡attr_fix.txt‚ðƒŠƒl[ƒ€‚µAattr_fix_old.txt‚ðattr_fix.txt‚ɃŠƒl[ƒ€‚µ‚ĉº‚³‚¢B
- Emob_db.txt@ƒ‚ƒ“ƒXƒ^[‚Ì“ú–{Œê–¼‚ð–{ŽI‚Æ“ˆêB
- Ecast_db.txt@‰r¥ŽžŠÔAƒfƒBƒŒƒC‚ð–{ŽI‚Æ“ˆêB
-
-----------
-//333 by ŒÓ’±—–
-
-EƒMƒ‹ƒh‹@”\’ljÁ
- EƒMƒ‹ƒh‚Ì“¯–¿‚Æ“¯–¿‰ðÁ
-
- (char/)
- inter.c/int_guild.c
- ƒpƒPƒbƒg’·/ƒMƒ‹ƒhˆ—’ljÁ
- (map/)
- clif.c/clif.h
- clif_guild_reqalliance,clif_guild_allianceack,
- clif_guild_delalliance,clif_parse_GuildRequestAlliance,
- lif_parse_GuildReplyAlliance,clif_parse_GuildDelAlliance’ljÁ
- iƒMƒ‹ƒh“¯–¿ŠÖŒW‚̃pƒPƒbƒgˆ—j
- intif.c/intif.h
- ƒMƒ‹ƒh“¯–¿ŠÖŒW‚̃pƒPƒbƒgˆ—’ljÁ
- guild.c/guild.h
- ƒMƒ‹ƒh“¯–¿ŠÖŒW‚̈—’ljÁ
- map.h
- struct map_session_data‚Éguild_alliance,guild_alliance_account’ljÁ
-
-EƒMƒ‹ƒhƒGƒ“ƒuƒŒƒ€‚Ì•ÏX‚ªƒ}ƒbƒvŽI‚ðÄ‹N“®‚µ‚È‚¢‚Æ—LŒø‚É‚È‚ç‚È‚¢ƒoƒOC³
-
- guild.c/guild.h
- guild_emblem_changed‚ÌC³
-
-----------
-//331 by ‰ß‹Ž‚Ìli1
-
-EƒyƒbƒgƒVƒXƒeƒ€C³(Š®¬“x25%)
-
- EŠeŽí•ßŠl—pƒAƒCƒeƒ€‚ð‚»‚ê‚¼‚ê‘Ήž‚·‚é“G‚ɑ΂µ‚ÄŽg—p‚·‚邱‚Æ‚Å
- @³‚µ‚­—‘‚ªŽè‚É“ü‚é‚悤‚É‚È‚è‚Ü‚µ‚½B
- EŠeŽí•ßŠl—pƒAƒCƒeƒ€‚ð‘Ήž‚µ‚È‚¢“G‚ÉŽg—p‚µ‚½ê‡‚̓‹[ƒŒƒbƒg‚ª•K‚¸Ž¸”s‚µ‚Ü‚·B
- Eƒyƒbƒg‚ªuŽž‚É•\Ž¦‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½B
- Eƒyƒbƒg‚ð‰EƒNƒŠƒbƒN‚·‚é‚ƃƒjƒ…[‚ªo‚é‚悤‚É‚È‚è‚Ü‚µ‚½
- E‘¼FXŠëŒ¯‚È—v‘f‚ðC³‚µ‚Ü‚µ‚½B(ƒAƒCƒeƒ€‚Ì”‚ÌŒ¸­“™‚̃oƒO‚𒼂µ‚Ü‚µ‚½)
-
- (db/)
- item_db.txt
- ŠeŽí•ßŠl—pƒAƒCƒeƒ€‚ɑΉž‚·‚é‚悤petƒRƒ}ƒ“ƒh‚𳂵‚­‘‚«‚Ü‚µ‚½B
-
- (common/)
- mmo.h
- s_pet ƒyƒbƒg\‘¢‘Ì‚Épet_item_id‚ð’ljÁ
-
- (map/)
- clif.c
- clif_birthpet()‚ðC³B³‚µ‚­—‘‚ªŒ¸‚éA³‚µ‚¢—‘‚ÌID‚ðŽæ“¾‚·‚é‚悤C³
- ‚±‚ê‚É‚æ‚Á‚ÄA³‚µ‚­npc_petŠÖ”‚ª“®‚«‚Ü‚·B
-
- clif_spawnnpc()‚ðC³iWBUFPOS(buf,36,nd->bl.x,nd->bl.y)‚ÆA”’l‚ð26‚©‚ç36‚Ö•ÏX‚µ‚Ü‚µ‚½)
- ‚±‚ê‚É‚æ‚Á‚ăyƒbƒg‚ªuŽž‚É•\Ž¦‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½B
-
- npc.c
- npc_pet()‚ðC³B
-
- pet.c/pet.h
- ƒyƒbƒgŠÖ˜A‚Ìׂ©‚ÈŠÖ”‚ð‚±‚¿‚ç‚É‚Ü‚Æ‚ß‚éˆ×A’ljÁ‚µ‚Ü‚µ‚½B
- Œ»Ý‚̓yƒbƒg‚Ì”»’èŠÖŒW‚ð‚Ü‚Æ‚ß‚Ä‚ ‚è‚Ü‚·B
-
- script.c
- “Á‚É‘å‚«‚ÈC³‚Í‚ ‚è‚Ü‚¹‚ñB
-----------
-//330 by ‰ß‹Ž‚Ìli1
-
-EƒyƒbƒgƒVƒXƒeƒ€“±“ü(Š®¬“x‚Q‚O“)
- E“G‚ɑ΂µ‚ĕߊl—pƒAƒCƒeƒ€‚ðŽg—p‚·‚鎖‚ª‰Â”\‚Æ‚È‚è‚Ü‚µ‚½B
- @(‚Ü‚¾n‚µ‚Ä‚¢‚È‚¢ƒŠƒ“ƒS‚Ì‚ÝŽg—p‰Â”\A“G‚ɂ‚©‚Á‚Ä‚àƒ|ƒŠƒ“‚Ì—‘‚ªŽè‚É“ü‚è‚Ü‚·B)
- EŠeŽí—‘‚ɑ΂µ‚ăyƒbƒg‚ð•\Ž¦‚·‚鎖‚ª‚Å‚«‚Ü‚·A‚½‚¾‚µ‚È‚º‚©ˆê“x‰æ–ÊŠO‚É
- @‚Å‚È‚¢‚ƃyƒbƒg‚ª•\Ž¦‚³‚ê‚Ü‚¹‚ñB
- @(‹°‚ç‚­ƒyƒbƒg•\Ž¦‚ÌÛ‚És‚Á‚Ä‚¢‚éNPCƒXƒe[ƒ^ƒX‚ª³‚µ‚­“ü‚Á‚Ä‚¢‚È‚¢)
- E•\Ž¦‚³‚ꂽƒyƒbƒg‚ªƒpƒtƒH[ƒ}ƒ“ƒX‚ðs‚¢‚Ü‚·B
-
- (db/)
- item_db.txt
- Œg‘Ñ—‘›z‰»‹@‚ðŽg—p‰Â”\‚É bpetƒRƒ}ƒ“ƒh(Œg‘Ñ—‘›z‰»‹@Žg—p)
- u‚Ü‚¾n‚µ‚Ä‚È‚¢ƒŠƒ“ƒSv‚ðŽg—p‰Â”\‚É petƒRƒ}ƒ“ƒh(‚ ‚émob‚ɑ΂µ‚ÄŽg—p‰Â”\‚É‚·‚é)
- (common/)
- mmo.h
- s_pet@ƒyƒbƒg\‘¢‘̒ljÁ
- mmo_charstatus@ƒyƒbƒg\‘¢‘Ì錾•Ï”’ljÁ(pet)
- (map/)
- clif.c/clif.h
-
- int clif_catchpet(struct map_session_data *sd,int pet_id);
- void clif_ruletpet(int fd,struct map_session_data *sd);
- int clif_judgepet(struct map_session_data *sd,int target_id);
- int clif_sendegg(struct map_session_data *sd);
- void clif_listpet(int fd,struct map_session_data *sd);
- int clif_birthpet(struct map_session_data *sd,int pet_id);
- void clif_menupet(int fd,struct map_session_data *sd);
-
- ˆÈã‚ÌŠÖ”‚ð’ljÁ‚µƒyƒbƒg‚ÉŠÖ‚·‚鈗‚ðs‚Á‚Ä‚¨‚è‚Ü‚·B
- (ƒ‹[ƒŒƒbƒgA—‘‘I‘ð‘‹AƒpƒtƒH[ƒ}ƒ“ƒXA‚»‚Ì‚Ù‚©FX)
-
- npc.c/npc.h
- int npc_pet(struct map_session_data *sd,int name_id);
- ƒyƒbƒg•\Ž¦‚ׂ̈̊֔‚ð’ljÁ
- (‚±‚ÌŠÖ”“à•”‚Ńyƒbƒg‚Ì•\Ž¦ˆ—‚ðs‚Á‚Ä‚¢‚Ü‚·B“KØ‚ÉC³‚µ‚Ä‚­‚¾‚³‚¢)
-
- script.c
- int buildin_catchpet(struct script_state *st);
- int buildin_birthpet(struct script_state *st);
- ‚ð’ljÁ‚µ‚Ü‚µ‚½BƒXƒNƒŠƒvƒg‚Épet,bpet‚ð’ljÁ‚µ‚Ü‚µ‚½B
-----------
-//329 by ŒÓ’±—–
-
-EƒMƒ‹ƒh‹@”\’ljÁ
- EƒMƒ‹ƒh‚Ö‚ÌEXP‚Ìã”[
- EƒMƒ‹ƒhƒŒƒxƒ‹ƒAƒbƒv
- EƒMƒ‹ƒhƒXƒLƒ‹‚ÌŠ„‚èU‚è
-
- (db/)
- exp_guild.txt
- ƒMƒ‹ƒhƒŒƒxƒ‹‚ÌŒoŒ±’lƒf[ƒ^ƒx[ƒX
- (common/)
- mmo.h
- GBI_*,GMI_*‚Ì’è‹`‚̒ljÁ‚È‚Ç
- (char/)
- int_guild.c
- EXP‚⃌ƒxƒ‹ƒAƒbƒvAƒXƒLƒ‹ƒAƒbƒvˆ—’ljÁ‚È‚Ç
- inter.c
- ƒpƒPƒbƒg’·’ljÁ
- (map/)
- guild.c/guild.h
- ƒMƒ‹ƒhˆ—’ljÁ
- intif.c/intif.h
- ƒMƒ‹ƒhƒpƒPƒbƒgˆ—’ljÁ
- clif.c
- clif_guild_skillinfo()C³
- clif_guild_skillup()’ljÁ
- pc.c
- pc_skillup()‚ŃMƒ‹ƒhƒXƒLƒ‹‚ÌꇂÍguild_skillup()‚ðŒÄ‚Ԃ悤‚É
- pc_gainexp()‚Åã”[EXP‚Ì‚½‚ß‚Éguild_payexp()‚ðŒÄ‚Ԃ悤‚É
-
-EƒMƒ‹ƒh‹@”\C³
- EƒMƒ‹ƒhƒƒ“ƒo[‚ªƒƒOƒCƒ“‚⃃OƒAƒEƒg‚·‚é‚ÆA
- ƒƒOƒCƒ“’†‚̃Mƒ‹ƒhƒƒ“ƒo[‚ɃMƒ‹ƒhŒnƒpƒPƒbƒg‚ª‘—‚ç‚ê‚È‚­‚È‚é–â‘èC³
-
- guild.c
- guild_recv_memberinfoshort()‚ÌC³
-
-----------
-//328 by ŒÓ’±—–
-
-EƒMƒ‹ƒh‹@”\‚̒ljÁ‚È‚Ç
- E’Ç•ú‹@”\‰¼ŽÀ‘•i’Ç•ú‚µ‚½ƒLƒƒƒ‰‚àĉÁ“ü‰Â”\•ˆê•”î•ñ‚ªƒ_ƒ~[j
- EƒXƒLƒ‹‚Ì•\Ž¦i•\Ž¦‚¾‚¯‚Å‚·Bã‚°‚½‚è‚Ío—ˆ‚Ü‚¹‚ñj
-
- (common/)
- mmo.h
- struct guild_explusion‚Ì•ÏX
- (char/)
- int_guild.c
- ’Ç•úˆ—’ljÁ
- ‹óƒMƒ‹ƒhƒ`ƒFƒbƒN‚ȂǒljÁ
- (map/)
- guild.c/guild.h
- ƒMƒ‹ƒhƒXƒLƒ‹ŠÖŒW‚̃AƒNƒZƒT‚ȂǒljÁ
- clif.c
- clif_guild_skillinfo()‚ÌC³
- clif_guild_explusionlist()’ljÁ
-
-Eƒ^[ƒ“ƒAƒ“ƒfƒbƒh‚ªƒ{ƒXŒnƒAƒ“ƒfƒbƒh‚ÅMISS‚É‚È‚éƒoƒOC³
- Eƒ^[ƒ“ƒAƒ“ƒfƒbƒhŽ¸”sŽž‚̃_ƒ[ƒW‚ªŽg‚í‚ê‚Ü‚·
-
- battle.c
- battle_calc_magic_damage()‚ÌC³
-
-----------
-//327 by ‚¢‚Ç
-EŒoŒ±’lƒe[ƒuƒ‹‚É‚P‰ÓŠŠÔˆá‚¢‚ª‚ ‚Á‚½‚Ì‚ÅC³
- db/exp.txt
-
-----------
-//326 by ‚¢‚Ç
-EcharŽI‚ÌVŽI,ƒƒ“ƒeƒiƒ“ƒX’†‚̃tƒ‰ƒOî•ñ‚ðÝ’è‚Å‚«‚é‚悤‚É‚µ‚½
-EcharŽI‚ÌŽI–¼‚Ì’·‚³‚ª16ƒoƒCƒg‚É‚È‚Á‚Ä‚¢‚½•”•ª‚ð20ƒoƒCƒg‚ÉC³
-
- (login/)
- login2.c
- parse_login()‚ÌC³
- login.h
- struct mmo_char_server‚ÌC³
- (char/)
- char2.c
- check_connect_login_server(),do_init()‚ÌC³
- (conf/)
- char_athena.cnf
-@ Echar_maintenance‚ð1‚É‚·‚é‚ƃƒOƒCƒ“l”‚ÌŒã‚ë‚É(“_ŒŸ’†)‚ª‚‚­
-@ Echar_new‚ð1‚É‚·‚é‚ÆŽI–¼‚Ì‘O‚É[V]‚ª‚‚­
- (doc/)
- ƒpƒPƒbƒg‰ðÍ.txt
- E¡‰ñ‚Ì•ÏX‚É”º‚¤ˆê•”C³
-
-----------
-//325 by Mind Twist(224&0293)
-E“G(NPC)ƒXƒLƒ‹‚̒ljÁiƒcƒŠ[‚ɒljÁ‚Ì‚Ýj
- db/skill_db.txt
- EƒMƒ‹ƒhƒXƒLƒ‹‘Š•Ï‚í‚炸•s–¾c‚±‚ÌŒ`Ž®‚¶‚á‚È‚¢‚Ì‚©‚ÈH
-
-----------
-//324 by non
-
-Emob‚̃^[ƒQƒbƒgŒãˆÚ“®‚ðC³
-Emob‚̈ړ®‘¬“x‚ðDB‚©‚甽‰f‚³‚¹‚é‚悤‚É
-
- (map/)
- mob.c
- mob_ai_sub_hard()‚ÌC³
-
-EŽÎ‚ß”»’è‚ðC³
- EFW“™‚ł̎΂ߔ͈͂ð–{ŽIŽd—l‚É
-
- (map/)
- map.c
- map_calc_dir()‚ÌC³
-
-----------
-//322 by ŒÓ’±—–
-
-EƒƒOƒCƒ“Žž‚É•K‚¸ƒp[ƒeƒB[‚©‚眖¼‚³‚ê‚éƒoƒOC³
- E0318‚Ìuƒp[ƒeƒB‚𜖼‚³‚ꂽ‚Ì‚É`v‚Å‚ÌC³ƒ~ƒX
-
- (char/)
- int_party.c
- ƒp[ƒeƒB[‹£‡Žž‚̃ƒbƒZ[ƒW‚ɉüs’ljÁ
- (map/)
- party.c
- party_check_member()‚ÌC³
-
-EƒMƒ‹ƒh‰ï˜bŽÀ‘••C³‚È‚Ç
- (char/)
- int_guild.c
- ƒMƒ‹ƒh‹£‡Žž‚̃ƒbƒZ[ƒW‚ɉüs’ljÁ
- (map/)
- guild.c/guild.c
- guild_send_message(),guild_recv_message()‚ȂǒljÁ
- intif.c/intif.h
- intif_parse_GuildMessage()‚ȂǒljÁ
- clif.c/clif.h
- clif_guild_message(),clif_parse_GuildMessage()‚ȂǒljÁ
- clif_guild_basicinfo()‚̃pƒPƒbƒg‚ð0150‚©‚ç01b6‚É•ÏX
-
-EƒoƒbƒNƒXƒeƒbƒv‚ª‚à‚Ì‚·‚²‚­‰ö‚µ‚¢‚¯‚lj¼ŽÀ‘•
- EŽg‚¤‚ƃ_ƒ[ƒW‚ð‚P‹ò‚ç‚Á‚½‚悤‚ÉŒ©‚¦‚Ü‚·B(ŽÀۂ̓_ƒ[ƒW‚O‚Å‚·)
-
- skill.c
- skill_castend_damage_id()C³
-
-------------------
-//321 by@‰ß‹Ž‚Ìli
-E‹|–î‘•”õŒø‰Ê‚Ì‚ÝŽÀ‘•(‘½X‚¨‚©‚µ‚¢“_‚Í‘¶Ý‚·‚邪‘•”õ‚ªo—ˆA–î‚ÌŒø‰Ê‚ªo‚é)
- map/clif.c map/clif.h
- clif_itemlist()’ljÁ
- Ž‚¿•¨‚Ì’†‚Å‹|–î‚ÉŠ„‚è“–‚Ä‚éƒpƒPƒbƒg”Ô†‚ð0x8000‚Æ‚·‚鈗’ljÁ
-
- clif_arrowequip(struct map_session_data *sd,int val); //self
- ‚ð’ljÁB‚±‚Ì’†‚Å‹|–î‘•”õƒpƒPƒbƒgˆ—‚ðs‚Á‚Ä‚Ü‚·
- map/pc.c
- pc_equipitem()@‹|–î‘•”õ’ljÁ
-
- Žc‚³‚ꂽ–â‘è“_F
- E@–Œ¸‚ç‚È‚¢
- E@ƒŠƒƒO‚·‚é‚Ɩ‚P‚É‚È‚é
- E@‘•”õ‚µ‚Ä‚¢‚é–•\Ž¦‚³‚ê‚È‚¢(©‘½•ª‘•”õpos‚ÌÝ’è‚ð‚µ‚Ä‚¢‚È‚¢ˆ×‚©‚Æ)
- E@–î‚ð‘•”õ‰ðœ‚Å‚«‚È‚¢(‘¼‚Ì–î‚ð‘•”õ‚µ‚È‚¨‚¹‚Α•”õ‚µ‚½–î‚ÌŒø‰Ê‚É‚È‚è‚Ü‚·
-
-----------
-//320 by ‚¢‚Ç
-EˆÈ‰º‚̃pƒPƒbƒg‚̃Gƒ‰[ƒR[ƒh‚Ìà–¾‚ð’ljÁ
- doc/ƒpƒPƒbƒg‰ðÍ.txt
- R 006a <error No>.B
- R 0070 <error No>.B
- R 0081 <type>.B
-
-----------
-//319 by mk
-ENPC‚Ƃ̉ï˜b’†‚É‘•”õ•ÏXAƒAƒCƒeƒ€AƒXƒLƒ‹‚ðŽg—p‚Å‚«‚È‚¢‚悤‚É‚µ‚Ü‚µ‚½
- map/clif.c
- ŠeŠ‚Åsd->npc_id‚ðƒ`ƒFƒbƒN‚µ‚Ä‚Ü‚·
-
-Eˆê•”‚Ì”í‚蕨‚łธBŒã‚É‘•”õ‰ÓŠ‚ª‚¨‚©‚µ‚­‚È‚éƒoƒO‚ðC³
- map/script.c
- buildin_successrefitem ‚̃R[ƒh‚ðC³
-
-EƒJ[ƒh‚É‚æ‚é’ljÁŒø‰Ê‚¨‚æ‚шÙí‘Ï«”­“®ˆ—‚ÌC³
- map/skill.c
- ƒCƒ“ƒfƒbƒNƒX‰Šú’l‚ªŠÔˆá‚Á‚Ä‚¢‚é‚ÆŽv‚í‚ê‚é‚Ì‚ÅC³iSC_POISON -> SC_STONEj
-
-Eƒ{ƒEƒŠƒ“ƒOƒoƒbƒVƒ…‚̉¼ŽÀ‘•AƒOƒŠƒ€ƒgƒD[ƒX‚ÌŽg—pðŒ’ljÁ
- Eƒ{ƒEƒŠƒ“ƒOƒoƒbƒVƒ…‚ð‰¼ŽÀ‘•B‚«”ò‚΂µˆ—‚â‚Á‚Ä‚é‚Ì‚Å
- @battle.c ‚Ìblewcount‚ðƒRƒƒ“ƒgƒAƒEƒg‚µ‚Ü‚µ‚½
- EƒOƒŠƒ€ƒgƒD[ƒX‚ÌŽg—pðŒiƒnƒCƒfƒBƒ“ƒO•ƒJƒ^[ƒ‹‘•”õjƒ`ƒFƒbƒN’ljÁ
- @‚±‚ñ‚ÈŠ´‚¶‚Å‘¼‚̃XƒLƒ‹Žg—pðŒ‚à’ljÁ‚µ‚Ä‚à‚æ‚¢‚Ì‚©‚ÈH
- Eskill_blown ‚Ì‚«”ò‚΂µ•ûŒü‚ðƒ^[ƒQƒbƒg‚Ƃ̈ʒu‚ªd‚È‚Á‚Ä‚¢‚é‚Æ‚«‚Í
- @ƒ‰ƒ“ƒ_ƒ€‚Å‚Í‚È‚­ƒLƒƒƒ‰ƒNƒ^[‚ðŒã‚ë‚Ö‚«”ò‚΂·‚悤‚É•ÏX‚µ‚Ü‚µ‚½
- map/skill.c
- skill_castend_damage_id()•ÏX
- skill_check_condition()•ÏX
- skill_blown()•ÏX
-
-EƒAƒTƒVƒ““ñ“—¬ˆ—‚ÉŠÖ‚·‚éC³?
- E‘•”õˆê——‚Ödrag&dropŽž‚É—¼Žè‚ªÔ‚­ƒ}[ƒLƒ“ƒO‚³‚ê‚é‚悤‚ÉC³
- @ƒAƒTƒVƒ“‚Å‚Í•Ší‘•”õ‰ÓŠ‚ª—¼Žè‚É‚È‚é‚悤item_equippoint‚ð•ÏX
- @‚»‚ê‚É”º‚¢pc.c‚Ìpc_equipitem‚ðC³
- E‹tŽèƒ_ƒ[ƒW‚ð•\Ž¦‚µ‚Ä‚Ý‚Ü‚µ‚½
- @‚Ü‚Æ‚à‚Ƀ_ƒ[ƒWŒvŽZ‚â‚Á‚Ä‚È‚¢‚Ì‚ÅUŒ‚‰ñ”‚ÌŠm”F‚¾‚¯‚Å‚·
- EƒJƒ^[ƒ‹’ÇŒ‚‚ƶŽèUŒ‚‚ÌMISS‚ð–³—‚â‚è•\Ž¦
- (map/)
- itemdb.c (itemdb.hAclif.cApc.c)
- itemdb_equippoint() ‚ð•ÏX i“ñ“—¬‚ðl—¶j
- ˆø”‚ð(int nameid) -> (struct map_session_data *sd,int nameid)‚É
- ˆø”•ÏX‚É”º‚¢éŒ¾(itemdb.h)‚ƌĂÑo‚µ‘¤(clif.c ,pc.c)‚à•ÏX
- pc.c
- pc_equipitem(), pc_checkitem()‘•”õƒ`ƒFƒbƒN‚ðC³
- battle.c
- battle_calc_weapon_attack(),battle_weapon_attack()
- ã‚É‚à‘‚«‚Ü‚µ‚½‚ª¶Žè‚̃_ƒ[ƒWŒvŽZ‚Ís‚Á‚Ä‚Ü‚¹‚ñ
- (ƒJ[ƒhA‘®«“™‚à–¢“K—p)‰EŽè‚Æ“¯‚¶ƒ_ƒ[ƒW“ü‚ê‚Ķ‰EC—û“K—p‚µ‚Ä‚Ü‚·
- ƒJƒ^[ƒ‹’ÇŒ‚‚ƶŽèƒ_ƒ[ƒW‚ðƒ~ƒX‚³‚¹‚é•û–@(ƒpƒPƒbƒg?)‚ª‚í‚©‚ç‚È‚¢‚Ì‚Å
- ŒvŽZŒã‚̃_ƒ[ƒW‚ª-1‚Ìê‡Adamage=0‚ð‘—‚é‚悤‚É‚µ‚Ä‚¢‚Ü‚·
- ‚à‚Á‚Æ‚æ‚¢•û–@‚ª‚ ‚é‚Ì‚Å‚µ‚½‚çC³‚¨Šè‚¢‚µ‚Ü‚·
-
-EŠ®‘S‰ñ”ð‚ÌŒvŽZ‚ðLuk‚Å‚Í‚È‚­Flee2‚Å”»’f‚·‚é‚悤‚ÉC³
- map/battle.c
- battle_calc_weapon_attack()
-
- (db)
- item_db.txtAitem_db2.txt
- ‘•”õ•i‚̈ꕔƒ{[ƒiƒXŒø‰Ê‚ð’ljÁ
- mob_db.txt
- –^Š‚Å‚¤‚‚³‚ê‚Ä‚¢‚½‚à‚Ì‚ð­‚µC³
- ‚Ü‚¾Mode‚âDrop‚É–â‘è“_‚ª‚ ‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñ
-
-----------
-//0318 by ŒÓ’±—–
-
-E‚ ‚éŒö•½•ª”zPT‚Æ‚»‚ÌPT‚É‘®‚³‚È‚¢PC‚ª‹¤“¬‚·‚é‚ÆŽI‚ª–\‘–‚·‚éƒoƒOC³
-
- mob.c
- mob_damage()‚ÌEXP•ª”zˆ—C³
-
-Eƒp[ƒeƒB‚𜖼‚³‚ꂽ‚Ì‚ÉŠ‘®‚µ‚Ä‚¢‚é‚悤‚ÉŒ©‚¦‚éƒoƒOC³
- EŠY“–ƒLƒƒƒ‰‚ªƒƒOƒAƒEƒgó‘Ô‚ÌŽž‚Éœ–¼‚³‚êA‚»‚ÌŒãA“¯C•ÊƒLƒƒƒ‰‚ª
- “¯ƒp[ƒeƒB‚ÉŠ‘®‚µ‚È‚¨‚µA‚³‚ç‚ÉŒ³‚̃Lƒƒƒ‰‚ŃƒOƒCƒ“‚·‚é‚ÆA
- œ–¼”»’è‚ÉŽ¸”s‚µ‚ăp[ƒeƒB‚ÉŠ‘®‚µ‚½‚Ü‚Ü‚Å‚ ‚é‚Æ‚³‚ê‚Ä‚µ‚Ü‚¤–â‘èC³
-
- party.c
- party_check_member()‚ÌC³
-
-
-----------
-//0317 by nabe
-
-Eu`‚³‚ñ‚©‚çŽæˆø‚ð—v¿‚³‚ê‚Ü‚µ‚½Bv‚ªŽ©•ª‚Ì–¼‘O‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ðC³
- trade.c/clif.c/clif.h
- clif_traderequest()‚ÅŽæˆø‘ŠŽè‚̃Lƒƒƒ‰–¼‚ð“n‚·‚悤‚É•ÏX
-
-----------
-//0316 by nabe
-
-E—¼Žè•Ší‚ð¸˜B‚·‚é‚Æ•ÐŽè‘•”õ‚É‚È‚éƒoƒO‚ðC³
- script.c
- buildin_successrefitem()‚ÅA—¼Žè•Ší‚Ìꇓ™‚É‘•”õ‰ÓŠƒ`ƒFƒbƒN
-
-----------
-//0315 by ŒÓ’±—–
-
-EPC‚ÌSPAWNƒ^ƒCƒ~ƒ“ƒO‚ð•ÏX
- Eƒ}ƒbƒvˆÚ“®(ƒƒOƒCƒ“)ŽžAƒ[ƒfƒBƒ“ƒOI—¹Œã‚ÉSPAWN‚·‚é‚悤‚ÉB
- Eƒ[ƒh’†‚ÉUŒ‚‚³‚ꂽ‚肵‚È‚­‚È‚è‚Ü‚·B
- EƒMƒ‹ƒh/ƒp[ƒeƒBî•ñ“Ç‚Ýž‚Ý‘O‚É–¼‘O‰ðŒˆƒpƒPƒbƒg‚ª—ˆ‚é–â‘è‚à
- C³‚³‚ê‚é‚Í‚¸‚Å‚·B
-
- pc.c
- pc_setpos()‚Åmap_addblock,clif_spawnpc‚̌ĂÑo‚µ‚ðŽ~‚ß‚½B
- clif.c
- clif_parse_LoadEndAck‚Åmap_addblock,clif_spawnpc‚ðŒÄ‚Ԃ悤‚ÉB
-
-EinterŽIƒpƒPƒbƒgˆ—‚Ìd‘å‚È–â‘è‚ðC³
- Eˆê“x‚ɃpƒPƒbƒg‚ð‘—M‚Å‚«‚È‚©‚Á‚½ê‡A–³ŒÀƒ‹[ƒv‚Ɋׂé–â‘èC³
-
- (char/)
- char2.c
- parse_frommap()C³
- inter.c
- inter_parse_frommap()C³
- (map/)
- chrif.c
- chrif_parse()C³
- intif.c
- intif_parse()C³
-
-EƒMƒ‹ƒh‚Ì‹@”\’ljÁ
- E‘¼l‚̃Gƒ“ƒuƒŒƒ€‚ªŒ©‚¦‚é‚悤‚ÉB
- EƒƒOƒCƒ“’¼Œã‚ÌŽ©•ª‚̃Gƒ“ƒuƒŒƒ€‚ªŒ©‚¦‚é‚悤‚ÉB
- E’E‘Þ‚Å‚«‚é‚悤‚ÉBi’Ç•ú‚Í‚Ü‚¾‚Å‚·j
-
- <ƒpƒPƒbƒgî•ñˆø‚«‘±‚«–ÍW>
- E016c,016d,0163,015c‚È‚Ç‚ÌÚׂÈî•ñ
- EƒMƒ‹ƒhƒXƒLƒ‹‚ÌID‚ª‚í‚©‚élA‹³‚¦‚Ä‚Ù‚µ‚¢‚Å‚·B
- 158,205,331‚ ‚½‚è’²‚ׂ܂µ‚½‚ªƒ_ƒ‚È–Í—lB
-
- (common/)
- mmo.h
- MAX_GUILD‚ð36‚ÉB
- (char/)
- int_guild.c
- ’E‘ނ̃pƒPƒbƒg•ÏX
- inter.c
- ƒpƒPƒbƒg’·C³
- (map/)
- clif.c/clif.h
- clif_set0078,clif_set007b‚ÌC³
- clif_guild_belonginfo‚ÌC³
- clif_guild_skillinfo’ljÁ
- guild.c/guild.h
- ’E‘ނȂǂ̈—’ljÁ
- intif.c/intif.h
- ’E‘ނȂǂ̈—’ljÁ‚È‚Ç
-
-
-----------
-//0314 by ‚¢‚Ç
-
-EcharŽI‚ÆmapŽI‚ÌŽI”ãŒÀ‚ð30‚Ɉø‚«ã‚°
- login/login.h
- char/char.h
-
-Emap_athena1.cnf‚ðmap_athena.cnf‚ɃŠƒl[ƒ€
-@‚»‚ê‚É”º‚¢Aathena.sh‚ð•ÏX
-
-EƒpƒPƒbƒg‰ðÍŽ‘—¿‚ðdoc/‚Ɉړ®
-
-
-----------
-//0313 by ŒÓ’±—–
-
-EƒMƒ‹ƒh‚Ì‹@”\’ljÁ
- EƒMƒ‹ƒhŠ©—U/–ðE“à—e•ÏX/ƒƒ“ƒo[‚Ì–ðE•ÏX‚È‚Ç
- Eguild.txt‚Ì‘Ž®‚ª‚Ü‚½•Ï‚í‚è‚Ü‚µ‚½‚ªA‘O‚̃f[ƒ^‚à“Ç‚Ýž‚ß‚é‚Í‚¸‚Å‚·B
-
- <ƒpƒPƒbƒgî•ñˆø‚«‘±‚«–ÍW>
- E016c,016d,0163,015c‚È‚Ç‚ÌÚׂÈî•ñ
- EŽ©•ªˆÈŠO‚ÌPC‚ÌŠ‘®ƒMƒ‹ƒhID‚ð’Ê’m‚·‚éƒpƒPƒbƒg
-
- (common/)
- mmo.h
- struct guild ‚ð•ÏX
- (char/)
- int_guild.c/inter.c
- ˆ—’ljÁ/ƒpƒPƒbƒg’·’ljÁ
- (map/)
- guild.c/guild.h/intif.c/intif.h
- ˆ—’ljÁ
- clif.c/clif.h
- ƒMƒ‹ƒhŠÖŒW‚̃pƒPƒbƒgˆ—’ljÁ
-
-Ehelp.txt‚ðC³
- help.txt
-
-E0311‚É‚æ‚镶Žš‰»‚¯‚ðC³
- README
- map/pc.c
-
-----------
-//0312 by ‚¢‚Ç
-
-E@hƒRƒ}ƒ“ƒh‚ð@help‚É•ÏX
-E“Ç‚Ýž‚Þƒ}ƒbƒvƒf[ƒ^‚Ì’è‹`•”•ª‚ð•ÏX
-
-----------
-//0311 by tk44
-EAssassin “ñ“—¬‘•”õAASPD–â‘èC³
- - map\pc.c
- pc_equipitem(), pc_calcstatus(), pc_checkitem()
-
-E“ñ“—¬ŠQŒvŽZC³‚Ü‚¾ˆ—’†
-
-----------
-//0310 by ŒÓ’±—–
-
-EƒƒO‚âƒf[ƒ^‚ÉŽg‚¤‰üsƒR[ƒh‚ðmmo.h‚ÅÝ’è‰Â”\‚É
- (common/)
- mmo.h
- RETCODE‚ʼnüsƒR[ƒh‚𕶎š—ñ‚Å’è‹`‚µ‚Ü‚·B
- WindowsŒn‚¾‚ÆCR/LF‚È‚Ì‚Å"\r\n",UNIXŒn‚¾‚Æ"\n"‚Å‚·B
- •Ê‚ɳ‚µ‚­Žw’肵‚È‚­‚Ä‚àAthenaŽ©‘Ì‚Í–â‘è‚È‚­“®ì‚·‚é‚Í‚¸‚Å‚·B
- (login/)
- login2.c
- (char/)
- char2.c/int_storage.c/int_party.c/int_guild.c
- •Û‘¶‚·‚é‰üsƒR[ƒh‚ðRETCODEˆË‘¶‚É•ÏXB
- ‰üsƒR[ƒh‚Ɉˑ¶‚¹‚¸‚É“Ç‚ß‚é‚悤‚ÉC³B
-
-EƒNƒ‰ƒCƒAƒ“ƒg‚©‚ç•s–¾‚ȃpƒPƒbƒg‚ª—ˆ‚½‚çƒ_ƒ“ƒv‚·‚é‚悤‚É
- E#define DUMP_UNKNOWN_PACKET 1 ‚ðƒRƒƒ“ƒg‰»‚·‚ê‚΃_ƒ“ƒv‚µ‚Ü‚¹‚ñB
-
- clif.c
- •s–¾ƒpƒPƒbƒg‚̈—‚Ń_ƒ“ƒvˆ—‚ð’ljÁB
-
-EƒMƒ‹ƒh‹@”\‚̒ljÁ
- EƒGƒ“ƒuƒŒƒ€•ÏX/’m•ÏXŽÀ‘•
- Eguild.txt‚Ì‘Ž®‚ª•Ï‚í‚è‚Ü‚µ‚½‚ªA‘O‚̃f[ƒ^‚à“Ç‚Ýž‚ß‚é‚Í‚¸‚Å‚·
-
- (char/)
- int_guild.c/inter.c
- ƒMƒ‹ƒhƒpƒPƒbƒgˆ—AƒpƒPƒbƒg’·
- (map/)
- guild.c/guild.h
- ‹@”\’ljÁ
- intif.c/intif.h
- ƒMƒ‹ƒhŠÖŒWƒpƒPƒbƒg’ljÁ
- clif.c/clif.h
- ƒMƒ‹ƒhŠÖŒWƒpƒPƒbƒg’ljÁ
-
-----------
-//0309 by C}{RIS
-
-Eƒ{ƒEƒŠƒ“ƒOƒoƒbƒVƒ…‚ð”͈ÍUŒ‚‰»‚µ‚Ü‚µ‚½B
-Eƒvƒƒ“ƒeƒ‰‚É‘•”õ•i”Ì”„NPC‚ð’ljÁ‚µ‚Ü‚µ‚½B
- map_athena1.cnf‚Ì
- npc_shop1J.txt‚ðƒRƒƒ“ƒgƒAƒEƒg‚·‚ê‚Ζ³Œø‚Éo—ˆ‚Ü‚·B
-EƒAƒCƒeƒ€‚Ì–¼‘O‚ÆID‚ð‘‚¢‚½ƒeƒLƒXƒgƒtƒ@ƒCƒ‹‚ð“Y•tBiitem.listj
-
-----------
-//0308 by Ž€_
-EŽ©‘R‰ñ•œ‚̃vƒƒOƒ‰ƒ€‚ðC³‚µ‚Ü‚µ‚½B
- ‚±‚ê‚Å‘åä•v‚¾‚Æ‚¢‚¢‚Å‚·‚ª...
- pc.c
- pc_natural_heal()“™‚ðC³B
- pc_percentheal()‚ð­‚µC³B
- pc_checkskill()‚ð­‚µC³BƒXƒLƒ‹‚ª‚È‚¢ê‡0‚ð•Ô‚·‚悤‚É
- •ÏX‚µ‚Ü‚µ‚½B‘¼‚Ì.cƒtƒ@ƒCƒ‹‚àC³‚·‚é•K—v‚ª‚ ‚è‚Ü‚µ‚½‚Ì‚Å
- C³‚µ‚Ü‚µ‚½B
-E4l–Ú‚Æ5l–ڂ̃Lƒƒƒ‰‚ðÁ‚¹‚È‚¢–â‘è‚ðC³B
-EŽn‚ß‚©‚çƒiƒCƒt‚ƃRƒbƒgƒ“ƒVƒƒƒc‚ðŽ‚‚悤‚É•ÏXB
-ELOOK_SHEILD‚ðLOOK_SHIELD‚ÉC³B
-Emmo_charstatus‚Ìsheild‚ðshield‚ÉC³B
-E.logƒtƒ@ƒCƒ‹‚âaccount.txtƒtƒ@ƒCƒ‹‚ðnotepad‚ÅŠJ‚­‚Æ—ñ‚ª‘S•”Œq‚¢‚Å‚¢‚é
- –â‘è‚ðC³B
-E—”‚ðŽžŠÔ‚É‚æ‚Á‚ĉŠú‰»‚·‚é‚悤‚É•ÏXB
- map.c
- do_init()‚ð­‚µC³B
-
-‘¼‚É•ÏX‚µ‚½ƒtƒ@ƒCƒ‹‚à‚ ‚è‚Ü‚·‚ª‘S•”Šo‚¦‚Ä‚Ü‚¹‚ñ‚Ì‚Å...
-
-----------
-//0307 by ŒÓ’±—–
-
-EV‹KPC‚̉ŠúˆÊ’u‚ðchar_athena.cnf‚É‘‚¯‚é‚悤‚É‚µ‚½
- start_point: ƒ}ƒbƒv–¼,x,y ‚̂悤‚ÉŽw’肵‚Ü‚·B
- <—á> start_point: new_1-1.gat,53,111
-
- (char/)
- char2.c
-
-EƒMƒ‹ƒh‚̈ꕔ‹@”\
- EƒMƒ‹ƒh쬂­‚ç‚¢‚µ‚©“®‚«‚Ü‚¹‚ñ
- EŠ©—U/’E‘Þ/‰ðŽU/î•ñ‚Ì•ÏX/ƒGƒ“ƒuƒŒƒ€/’m‚È‚Ç‚Í‚·‚ׂĖ¢ŽÀ‘•‚Å‚·
-
- <ØŽÀ‚È—v–]>
- ƒMƒ‹ƒhŠÖŒW‚̃pƒPƒbƒgî•ñ‚ª‘S‘R‘«‚è‚Ü‚¹‚ñB‚í‚©‚él‚Í‹³‚¦‚Ä‚­‚¾‚³‚¢B
- Œ»Ý‚̂܂܂ł̓Gƒ“ƒuƒŒƒ€‚Æ’m‚­‚ç‚¢‚µ‚©ŽÀ‘•‚Å‚«‚È‚¢‰Â”\«‚ªcB
-
- (common/)
- mmo.h
- ƒMƒ‹ƒhŠÖŒW‚Ì\‘¢‘̂ƒ蔒ljÁ
- (char/)
- inter.c
- ƒpƒPƒbƒg’·î•ñ’ljÁ
- int_guild.c/int_guild.h
- ŽÀۂ̈—’ljÁ
- (map/)
- map.h
- struct map_session_data‚ɃMƒ‹ƒhŠÖŒW‚̃ƒ“ƒo’ljÁ
- guild.c/guild.h
- V‹K’ljÁBƒMƒ‹ƒh‹@”\—p
- pc.c
- pc_authok()‚ŃMƒ‹ƒhŠ‘®ŽžAguild_request_info()‚ðŒÄ‚Ԃ悤‚ÉB
- clif.c/clif.h
- ƒMƒ‹ƒhƒpƒPƒbƒg’ljÁ
- intif.c/intif.h
- ƒMƒ‹ƒhƒpƒPƒbƒg’ljÁ
-
-E0303‚Å‚ÌC³uMAXHP‚È‚Ç‚ªƒT[ƒo[‚ƃNƒ‰ƒCƒAƒ“ƒg‚Å`v‚ðŒ³‚É–ß‚µ‚½
- EVPC‚ðì‚é‚Æ‚«‚ɳ‚µ‚­HP‚È‚Ç‚ðŒvŽZ‚µ‚Ä‚­‚ê‚é‚悤‚É‚È‚Á‚½‚Ì‚Å
- –ß‚µ‚Ä‚à•½‹C‚¾‚낤‚Æ—\‘ªB
- EƒƒOƒCƒ“’¼Œã‚Éd—ÊŒx‚ªo‚Ä‚µ‚Ü‚¤‚½‚ßB
-
- pc.c
- pc_authok()‚ÌC³
-
-E”͈͎w’蕦‚«‚̈—C³
- E‚Å‚«‚邾‚¯Žw’肵‚½”‚Æ“¯‚¶‚¾‚¯•¦‚­‚悤‚É
- (áŠQ•¨‚È‚Ç‚É‚æ‚镦‚«–WŠQ‚̉ñ”ðŽ¸”sŽžA‘O‚̉ñ”ðŒ‹‰Ê‚ðŽg‚¤)
-
- mob.c
- mob_once_spawn_area()‚ÌC³
-
-----------
-//0305 by ‚¢‚Ç
-EV‹KPC‚̈ʒu‚ð‰SŽÒC—ûê‚É•ÏXB
-EmapŽI‚ªcharŽI‚ÉÚ‘±‚Å‚«‚È‚¢•s‹ï‡‚ÌC³B
-
-----------
-//0304 by Ž€_
-EŽ©‘R‰ñ•œ‚Ì—Ê‚ÆŽžŠÔ‚ð•ÏXBŠØ‘ŽI‚É“K—p‚³‚ê‚Ă镨‚Å‚·‚ª“ú–{‚É‚à
- “K—p‚³‚ê‚Ä‚é‚Í‚¸‚Å‚·B(‘½•ª... ‚â‚Á‚Ä‚Ü‚¹‚ñ‚Ì‚Å‚í‚©‚è‚Ü‚¹‚ñBŠ¾)
- HP‚Í–ˆ4•b‚É 1 + vit/6 + max_hp/200 ‚ð‰ñ•œA
- SP‚Í–ˆ8•b‚É 1 + int/6 + max_sp/100 ‚ð‰ñ•œ‚µ‚Ü‚·B
-EƒXƒLƒ‹HP‰ñ•œ—ÍŒüã‚É‚æ‚é‰ñ•œ‚ð
- ƒXƒLƒ‹ƒŒƒxƒ‹*5 + max_hp/50‚É•ÏXB
-EƒXƒLƒ‹SP‰ñ•œ—ÍŒüã‚É‚æ‚é‰ñ•œ‚ð
- ƒXƒLƒ‹ƒŒƒxƒ‹*3 + max_sp/50‚É•ÏXB
-EƒXƒLƒ‹ˆÚ“®ŽžHP‰ñ•œŽÀ‘•B
- ¡‚ÌŠŽ~‚Ü‚Á‚Ä‚é‚Ì‚Æ”ä‚ׂÄ1/4‚Ì—Ê‚ð‰ñ•œ‚µ‚Ü‚·B(ŽžŠÔ‚Í“¯‚¶‚Å‚·B)
-Evit‚Æint‚É‚æ‚Á‚ĉñ•œŽžŠÔ‚ª’Z‚­‚È‚é‚Ì‚Å‚Í‚È‚­‰ñ•œ—Ê‚ª‘‚¦‚Ü‚·B
-EÅ‘åHP‚ÆÅ‘åSP‚ÌŒvŽZŒöŽ®‚ð•ÏXB
- map.h
- int inchealtick‚Ì•Ï‚í‚è‚Éint inchealhptick;‚Æ int inchealsptick;‚ð’ljÁB
- int parame[6] ‚ð’ljÁBÅ‘åSP‚ÌŒvŽZ‚ׂ̈̕¨‚Å‘•”õ‚É‚æ‚Á‚Äオ‚Á‚½
- ƒpƒ‰ƒ[ƒ^‚ðŽ‚Á‚ÂB
- pc.c
- pc_hpheal(),pc_spheal(),pc_natural_heal_sub(),pc_natural_heal()‚ð
- Ž©•ª‚̃R[ƒh‚É‘‚«Š·‚¦‚Ü‚µ‚½‚ªˆê‰ž³í‚É“®‚«‚Ü‚·‚ª
- ‘¼‚̃R[ƒh‚ɉe‹¿‚ª‚È‚¢‚©‚Ç‚¤‚©‚Í‚í‚©‚è‚Ü‚¹‚ñB
- pc_additem()‚ð­‚µ‚¾‚¯C³B
- hp_coefficient‚ðint‚©‚çdouble‚É•ÏXB
- pc_calcstatus()‚Æpc_readdb()‚ðC³B
- job_db1.txt
- E‹Æ‚ÌŒv”‚ð•ÏX‚µ‚Ü‚µ‚½B(ƒNƒ‹ƒZƒCƒ_[“™‚̃f[ƒ^‚Í
- Š®‘S‚È•¨‚¶‚á‚ ‚è‚Ü‚¹‚ñB)
-
-Echar2.c‚ð­‚µ‚¾‚¯•ÏXB
- char2.c
- make_new_char()‚ð­‚µ‚¾‚¯•ÏXB(ì‚Á‚½’¼Œã‚ÉHP‚ÆSP‚ªŠ®‘S‚É
- ‰ñ•œ‚µ‚Ä‚é‚悤‚É•Ï‚¦‚Ü‚µ‚½B)
- parse_char()‚ð­‚µ‚¾‚¯C³BŠØ‘‚̃Nƒ‰ƒCƒAƒ“ƒg‚ÅŒq‚¢‚Ä‚à
- ˆÙ킪‚È‚¢‚悤‚É‚µ‚Ü‚µ‚½B(0x187ƒpƒPƒbƒg‚̈—‚ð“ü‚ꂽ‚¾‚¯
- ‚Å‚·‚ª... ‚±‚ê‚ÍYare‚©‚玂Á‚Ä‚«‚½•¨‚Å‚·B)
-Estrcmpi“™‚Ìdefine‚ðatcomand.h‚©‚çmmo.h‚Ɉړ®‚µ‚Ü‚µ‚½B
- atcomand.h, mmo.h C³B
-E‰ñ•œƒAƒCƒeƒ€‚ðŽg—p‚·‚鎞vit‚ƃXƒLƒ‹HP‰ñ•œ—ÍŒüã‚É‚æ‚éƒ{[ƒiƒX‚ª•t‚­
- ‚悤‚É•ÏXBƒ{[ƒiƒX‚Í
- ‰ñ•œ—Ê *(1 + HP‰ñ•œ—ÍŒüãƒXƒLƒ‹ƒŒƒxƒ‹*0.1 + vit/100)
- ‚É‚È‚è‚Ü‚·B
-EƒCƒOƒhƒ‰ƒVƒ‹‚ÌŽÀ‚ƃCƒOƒhƒ‰ƒVƒ‹‚ÌŽí‚ð‰¼ŽÀ‘•B(‰ñ•œ‚Í‚µ‚Ü‚·‚ªƒGƒtƒFƒNƒg‚ª
- o‚Ü‚¹‚ñBitem_db‚Ń^ƒCƒv‚ð•Ï‚¦‚Ä‚à‘Ê–Ú‚Å‚µ‚½B)
- script.c
- buildin_fixheal()‚Æbuildin_percentheal()‚ð’ljÁB
- buildin_fixheal()‚Íbuildin_heal()‚ªƒXƒLƒ‹‚Ævit‚É‚æ‚Á‚ĉñ•œ—Ê‚ª•Ï‚í‚é
- Žd—l‚É‚È‚Á‚½‚Ì‚ÅŒ³‚Ìbuildin_heal()‚Ì–¼‘O‚¾‚¯‚ð•Ï‚¦‚½•¨‚Å‚·B
- buildin_percentheal()‚Í“ü—Í‚³‚ꂽ”Žš‚ð%‚Æ‚µ‚ÄHP‚ÆSP‚ðÅ‘åHP‚Æ
- Å‘åSP‚ð %”ä—¦‚ɉñ•œ‚µ‚Ü‚·B
- ƒXƒNƒŠƒvƒgfixheal A percentheal ’ljÁBŽg—p•û–@‚Íheal‚Æ“¯‚¶‚Å‚·B
- fixheal‚Ívit‚ƃXƒLƒ‹HP‰ñ•œ—ÍŒüã‚É‚æ‚éƒ{[ƒiƒX‚ª‚È‚¢•¨‚Å
- percentheal ‚ÍŒã‚Ì”Žš‚ð %‚É”FŽ¯‚µ‚Ü‚·B
- pc.h
- pc.c
- pc_percentheal()‚ð’ljÁB
- item_db.txtAitem_db2.txt
- ƒCƒOƒhƒ‰ƒVƒ‹‚ÌŽÀ‚ƃCƒOƒhƒ‰ƒVƒ‹‚ÌŽí‚ð•ÏXB
-
-----------
-//0303 by ŒÓ’±—–
-
-E*.grf‚̃pƒX‚ðmap_athena.cnf‚É‚à‘‚¯‚é‚悤‚É‚µ‚½B
- Emap_athena.cnf‚Éudata_grf: ../data/data.grfv‚â
- usdata_grf: ../sakurai/sdata.grfv‚̂悤‚ɃpƒXŽw’è‚Å‚«‚Ü‚·B
- Egrf-files.txt‚ª‚ ‚éꇂ»‚¿‚ç‚Ìݒ肪—D悳‚ê‚Ü‚·
-
- (common/)
- grfio.c/grfio.h
- grfio_setdatafile(),grfio_setsdatafile()’ljÁB
- data_file,sdata_file‚ðƒtƒ@ƒCƒ‹ƒ[ƒJƒ‹‚ȃOƒ[ƒoƒ‹•Ï”‚É•ÏXB
-
-E@stpoint,@skpoint‚É•‰’lŽw’è‚͈̔̓`ƒFƒbƒN‚ð’ljÁ
-E@zenyƒRƒ}ƒ“ƒh’ljÁiƒ[ƒj[‚Ì’²®j
-E@str,@agi,@vit,@int,@dex,@lukƒRƒ}ƒ“ƒh’ljÁiŠî–{ƒpƒ‰ƒ[ƒ^’²®j
-
- atcommand.c
- @stpoint,@skpointC³
- @zeny,@str,@agi,@vit,@int,@dex,@luk’ljÁ
-
-Eƒƒ}[ƒiƒCƒg‚ðŽg‚¤‚Æ‚Ú‚Á‚½‚­‚ç‚ê‚Ä‚¢‚½–â‘è‚ðC³
-E•Ší»‘¢•”•ª‚̃R[ƒh‚𑽭•ÏX
- EÞ—¿Á”‚ðƒAƒCƒeƒ€‚ª•¡”ƒCƒ“ƒfƒbƒNƒX‚É•ª‚©‚ê‚Ä‚¢‚éꇂɑΉž‚³‚¹‚½
- i‚R–œŒÂŒÀŠE‚ð’´‚¦‚é‚ƕʃCƒ“ƒfƒbƒNƒX‚ðŽg‚¤Žd—l‚¾‚Á‚½‹C‚ª‚·‚é‚Ì‚Åj
- EŽ¸”sŽž‚É‚àŽü‚è‚É’Ê’m‚·‚é‚悤‚É‚µ‚½
-
- skill.c
- skill_check_condition()‚ÌC³
- skill_produce_mix()‚ÌC³
-
-E•Ší»‘¢Šm—¦‚ðconfƒtƒ@ƒCƒ‹‚Å”{—¦Žw’è‚Å‚«‚é‚悤‚ÉC³
-
- (conf/)
- battle_athena.cnf
- weapon_produce_rate’ljÁ
- (map/)
- skill.c
- skill_produce_mix()‚ÌC³
-
-E•ŠíATKƒTƒCƒY•â³ƒe[ƒuƒ‹‚ðŠO•”‚©‚ç“Ç‚Ýž‚ނ悤‚É‚µ‚½
-E¸˜B¬Œ÷Šm—¦/¸˜Bƒ{[ƒiƒX‚È‚Ç‚ðŠO•”‚©‚ç“Ç‚Ýž‚ނ悤‚É‚µ‚½
-E‰ß踘Bƒ{[ƒiƒX‚É‚æ‚é’ljÁƒ_ƒ[ƒWŽÀ‘•
-
- (db/)
- size_fix.txt
- ƒTƒCƒY•â³ƒe[ƒuƒ‹
- refine_db.txt
- ¸˜BŠÖŒWƒf[ƒ^
- (map/)
- pc.c
- pc_readdb()‚Å“Ç‚Ýž‚Ý
- battle.c
- battle_calc_weapon_attack()‚ɉß踘Bƒ{[ƒiƒXˆ—’ljÁ
-
-EMAXHP‚È‚Ç‚ªƒT[ƒo[‚ƃNƒ‰ƒCƒAƒ“ƒg‚ňႤ’l‚ÉŒ©‚¦‚éƒoƒOC³
- ƒƒOƒCƒ“’¼Œã‚̃Xƒe[ƒ^ƒXŒvŽZ‚ÌŒ‹‰Ê‚𒼂¿‚É‘—M‚·‚é‚悤‚É‚µ‚½
-
- (map/)
- pc.c
- pc_authok()‚Å‚Ìpc_calcstatus()‚̃tƒ‰ƒO‚ð0‚É‚µ‚½
- ‚±‚ê‚Åpc_calcstatus()‚̃tƒ‰ƒOƒpƒ‰ƒ[ƒ^‚Í–¢Žg—pH
-
-Eitem_db‚Ìu”EŽÒƒX|ƒcv‚ðu”EŽÒƒX[ƒcv‚ÉC³
- (db/)
- item_db.txt/item_db2.txt
- ”EŽÒƒX[ƒc‚Ì–¼Ì•ÏX
-
-EƒƒOƒCƒ“l”‚𒲂ׂéƒc[ƒ‹‚ð“Y•t
- Perl»‚È‚Ì‚ÅŽÀs‚É‚ÍPerl‚ª•K—v‚Å‚·B
- Žg—p•û–@‚Ȃǂ̓GƒfƒBƒ^‚ÅŠJ‚¢‚ÄŒ©‚Ä‚­‚¾‚³‚¢B
- Žg‚¢•û‚ª—Ç‚­‚í‚©‚ç‚È‚¢l‚ÍŽè‚ðo‚³‚È‚¢‚Ù‚¤‚ª‚¢‚¢‚Å‚·B
-
- (tool/)
- getlogincount
- ƒƒOƒCƒ“l”Š“¾PerlƒXƒNƒŠƒvƒg
-
-----------
-//0302 by Ž€_
-EƒAƒCƒeƒ€»‘¢ Šm—¦”»’èŽÀ‘•B
- “S‚ÌꇬŒ÷—¦‚Í
- (20 + base_level*0.3 + DEX*0.2 + LUK*0.1 + —v‹ƒXƒLƒ‹ƒŒƒxƒ‹*6)%
- |“S‚Æ‘®«ÎA¯‚Ì‚©‚¯‚ç‚Ìê‡
- (10 + base_level*0.3 + DEX*0.2 + LUK*0.1 + —v‹ƒXƒLƒ‹ƒŒƒxƒ‹*5)%
- •Ší‚Í
- ((2.5 + base_level*0.15 + DEX*0.1 + LUK*0.05 + —v‹ƒXƒLƒ‹ƒŒƒxƒ‹*5 +
- ‹à•~ - ‘®«Î‚Ư‚Ì‚©‚¯‚ç) * (1 - (•ŠíƒŒƒxƒ‹ - 1)*0.2) +
- ƒXƒLƒ‹•ŠíŒ¤‹†ƒŒƒxƒ‹*1)%
- ‹à•~: ‚È‚¢ê‡ -5%‚Å‹à•~‚Í 0%AƒIƒŠƒfƒIƒRƒ“‚Ì‹à•~‚Í
- 2.5%A‰©‹à‚Ì‹à•~‚Í 5%AƒGƒ“ƒyƒŠƒEƒ€‚Ì‹à•~‚Í 7.5%
- ‘®«Î‚Ư‚Ì‚©‚¯‚ç: ‘®«Î‚ª‚ ‚éê‡ 5%‚ÅX‚É
- ¯‚Ì‚©‚¯‚ç‚Ì” * 5%‚ð‘«‚µ‚Ü‚·B
- ‚É‚È‚è‚Ü‚·‚ª‚¿‚å‚Á‚ÆŠm—¦‚ª’á‚·‚¬‚é‹C‚à‚µ‚Ü‚·‚Ì‚Å
- base_level*0.3 + DEX*0.2 + LUK*0.1‚ðbase_level*0.5 + DEX*0.4 + LUK*0.3‚É
- base_level*0.15 + DEX*0.1 + LUK*0.05‚ðbase_level*0.4 + DEX*0.3 + LUK*0.2
- ’ö“x‚É•Ï‚¦‚½•û‚ª‚¢‚¢‚©‚à’m‚è‚Ü‚¹‚ñB
- skill.c
- skill_can_produce_mix() ‚Æ skill_produce_mix() ‚ðC³B
- produce_db.txt
- ¯‚Ì‚©‚¯‚ç‚ðƒXƒLƒ‹‘®«Î»‘¢‚ª•K—v‚É•ÏXB
-E*.grf“™‚ðÝ’u‚¹‚¸ƒfƒBƒŒƒNƒgƒŠ‚©‚ç‚Ì“Ç‚Ýž‚ނ悤‚ÉC³B(‚±‚ê‚ÍYare‚©‚ç
- Ž‚¿ž‚ñ‚¾•¨‚Å‚·‚ª...)
- grfio.c
- grfio_init()‚ðC³B
- grf-file.txt
- V‹K’ljÁBgrfƒtƒ@ƒCƒ‹‚ª‚ ‚éƒfƒBƒŒƒNƒgƒŠÝ’è—pB
-E“Ç‚Ýž‚Þƒ}ƒbƒv‚Ìő唂ð512‚ÉC³B
- mmo.h
- MAX_MAP_PER_SERVER‚ð384‚©‚ç512‚ÉC³B
-Epc.c‚Épc_search_inventory()‚ð’ljÁB
- ‹@”\‚Íitem_id‚̃AƒCƒeƒ€‚ðŽ‚Á‚Ä‚é‚©‚Ç‚¤‚©‚ðŠm”F‚µ‚Ä
- Ž‚Á‚Ä‚éꇂ»‚Ìindex‚ð•Ô‚·B
- item_id‚ª0‚Ìꇂ͋󂯂Ă銂Ìindex‚ð•Ô‚·B
- pc_additem()‚Æpc_takeitem()‚¾‚¯‚ð­‚µC³B
-EGMƒRƒ}ƒ“ƒh‚É@stpoint‚Æ@skpoint‚ð’ljÁB
- @stpoint ”Žš - ƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒg‚ðã‚°‚éB
- @skpoint ”Žš - ƒXƒLƒ‹ƒ|ƒCƒ“ƒg‚ðã‚°‚éB
- atcomand.c
- C³B
- atcomand.h
- strcmpi“™‚ðLinux‚Å‚àŽg‚¦‚é‚悤‚ÉC³B
-
-----------
-//0301 by ŒÓ’±—–
-
-EÅ‘åHP‚ª32767‚ð’´‚¦‚é‚ƈÙí‚È’l‚É‚È‚é–â‘è‚ÌC³
-ELv‚ª99‚ð’´‚¦‚é‚Æ‚«‚àƒGƒtƒFƒNƒg‚ðo‚·‚悤‚É‚µ‚½(Ž©•ª‚É‚ÍŒ©‚¦‚È‚¢–Í—l)
-E”z’uMOB‚É‚æ‚éƒCƒxƒ“ƒg‚ŃCƒxƒ“ƒg–¼‚ª‚SƒoƒCƒgˆÈã‚Æ‚¢‚¤§ŒÀ‚ð‚‚¯‚½
-EteleportŽž‚ÉŽæˆø’†’fAƒ`ƒƒƒbƒg‘ÞŽºA‘qŒÉ•Û‘¶ˆ—‚ð‚·‚é‚悤‚É‚µ‚½
-
- pc.c
- pc_calcstatus()‚ÌC³(HPŒvŽZ)
- pc_setpos()‚ÌC³(Žæˆø’†’f‚È‚Ç)
- clif.c
- clif_set0078(),clif_set007b(),clif_spawnpc()‚ÌC³(Lv99ƒGƒtƒFƒNƒg)
- npc.c
- npc_parse_mob()‚ÌC³
-
-E@h‚Åhelp.txt‚ª“Ç‚ß‚È‚¢‚Æ‚«‚É—Ž‚¿‚éƒoƒOC³
-E@lvup/@joblvup‚Å•‰’l‚ð“ü‚ê‚é‚ÆLvƒ_ƒEƒ“‚ª‰Â”\‚É‚È‚Á‚½
-
- atcommand.c
- @h,@lvup,@joblvupˆ—‚ÌC³
-
-EƒeƒŒƒ|[ƒg‚È‚Ç‚ÌÁ–ŃGƒtƒFƒNƒg‚ÌC³
-
- skill.c
- ƒeƒŒƒ|‚ÌÁ–ŃGƒtƒFƒNƒg‚ð•ÏX
-
-Eó‘ÔˆÙí‚ÉŠÖ‚·‚éƒXƒNƒŠƒvƒgŽÀ‘• [sc_start]‚Æ[sc_end]B
-E—ÎPOTA—΃n[ƒu‚È‚ÇŽÀ‘•
-E‘•”õƒ{[ƒiƒXƒf[ƒ^’ljÁ
-
- (db/)
- item_db.txt/item_db2.txt
- ‘•”õƒ{[ƒiƒXƒf[ƒ^‚ð’ljÁ
- —ÎPOTA—΃n[ƒu‚Ȃǂ̃XƒNƒŠƒvƒg’ljÁ
- (map/)
- script.c
- buildin_warp()‚ÅÁ–ŃGƒtƒFƒNƒg‚ð•ÏX
- buildin_sc_start(),buildin_sc_end()’ljÁ
-
-----------
-//0299 by ŒÓ’±—–
-
-ENPCƒCƒxƒ“ƒg‚ŃGƒNƒXƒ|[ƒg‚³‚ꂽƒ‰ƒxƒ‹‚ðŽw’è‚Å‚«‚é‚悤‚É‚µ‚½
- NPCƒXƒNƒŠƒvƒg‚ÅOn`‚ÅŽn‚܂郉ƒxƒ‹‚ð’è‹`‚·‚é‚ÆAƒGƒNƒXƒ|[ƒg‚µ‚Ü‚·B
- NPCƒCƒxƒ“ƒg‚Å"NPC–¼(orƒCƒxƒ“ƒg–¼)::ƒ‰ƒxƒ‹–¼"‚Æ‚·‚é‚ÆA
- Žw’肵‚½ƒ‰ƒxƒ‹‚©‚çŽÀs‚Å‚«‚Ü‚·B
- ƒ‰ƒxƒ‹–¼‚Í24ƒoƒCƒgˆÈ“à‚É‚µ‚ĉº‚³‚¢B
- ‚ ‚ƃvƒƒOƒ‰ƒ€“I‚Ƀƒ‚ƒŠŒø—¦ˆ«‚¢‚Å‚·BŒã“úC³—\’è
- <—á>
- NPCutestv‚̃XƒNƒŠƒvƒg“à‚Å OnEvent: ‚ƃ‰ƒxƒ‹’è‹`‚µ‚½ê‡A
- NPCƒCƒxƒ“ƒgutest::OnEventv‚ÅŽw’èˆÊ’u‚©‚çŽÀs‚Å‚«‚Ü‚·B
-
- (conf/)
- npc_test_ev.txt
- ƒ‰ƒxƒ‹Žw’è‚̃Tƒ“ƒvƒ‹‚à‚¿‚傱‚Á‚ƒljÁ
- (map/)
- script.c/script.h
- script_get_label_db()‚Ȃǂ̒ljÁB
- parse_script‚Åscriptlabel_db‚Ƀ‰ƒxƒ‹ƒf[ƒ^‚ð’ljÁ‚·‚é
- npc.c/npc.h
- npc_event_export()‚ȂǒljÁ
- npc_parse_script‚щƒxƒ‹ƒf[ƒ^‚ðƒGƒNƒXƒ|[ƒg‚·‚é
- map.h
- struct map_session_data ‚Ìeventqueue‚̃Cƒxƒ“ƒg–¼‚̃TƒCƒY‚ð
- 50ƒoƒCƒg‚É‚µ‚½B
-
-EAGI‚ÆDEX‚É‚æ‚éASPDŒvŽZ‚ÌÅ‘å’l‚ð180‚©‚ç190‚É•ÏX
- pc.c
- pc_calcstatus()‚ÌASPDŒvŽZC³
-
-Eskill_db.txt/cast_db.txt‚Ì“Ç‚Ýž‚Ý‚ðskill.c‚É•ÏX
-
- pc.c
- pc_readdb()‚ÌC³
- skill.c
- skill_readdb()‚̒ljÁ
-
-EƒAƒCƒeƒ€»‘¢‰¼ŽÀ‘•
- Šm—¦”»’肪–¢ŽÀ‘•‚Å‚·B•K‚¸¬Œ÷‚µ‚Ü‚·B
-
- (db/)
- item_db.txt/item_db2.txt
- ƒAƒCƒeƒ€»‘¢‚ɑΉžiŒg‘Ñ—p—nz˜FA‹à’Æ‚È‚Çj
- produce_db.txt
- V‹K’ljÁB»‘¢ƒŠƒXƒgB
- (map/)
- skill.c/skill.h
- struct skill_produce_db’ljÁ
- skill_readdb()‚Åproduce_db.txt‚ð“ǂނ悤‚É
- clif.c/clif.h
- clif_skill_produce_mix_list(),clif_parse_ProduceMix()’ljÁ
- script.c/script.h
- »‘¢—pƒRƒ}ƒ“ƒh[produce]ì¬B
- ˆø”‚Í»‘¢—p”’l‚ÅA1-4‚ª•Ší»‘¢(Lv)A16‚ªzÎ
-
-
-----------
-//0298 by ŒÓ’±—–
-
-ELoginŽI‚̃pƒXƒ[ƒhˆÃ†‰»ƒ^ƒCƒv‚ðŽ©“®”FŽ¯‚Å‚«‚é‚悤‚É•ÏX
- login.h‚ÌPASSWORDENC‚ð3‚É‚·‚é‚ÆŽ©“®”FŽ¯‚µ‚Ü‚·B
- ʼn‚Épasswordencrypt‚Ń`ƒFƒbƒN‚µAŽ¸”s‚·‚ê‚Î
- passwordencrypt2‚Ń`ƒFƒbƒN‚µ‚Ü‚·B
-
- (login/)
- login2.c/login.h
- ˆÃ†‰»ƒpƒXƒ[ƒh‚ÌƇ•”•ª‚ðC³
-
-EƒAƒJƒEƒ“ƒg쬃c[ƒ‹‚ð“Y•t
- Perl»‚È‚Ì‚ÅŽÀs‚É‚ÍPerl‚ª•K—v‚Å‚·B
- Žg—p•û–@‚Ȃǂ̓GƒfƒBƒ^‚ÅŠJ‚¢‚ÄŒ©‚Ä‚­‚¾‚³‚¢B
- Žg‚¢•û‚ª—Ç‚­‚í‚©‚ç‚È‚¢l‚ÍŽè‚ðo‚³‚È‚¢‚Ù‚¤‚ª‚¢‚¢‚Å‚·B
-
- (tool/)
- addaccount
- ƒAƒJƒEƒ“ƒg쬃c[ƒ‹PerlƒXƒNƒŠƒvƒg
-
-EƒXƒLƒ‹‚̒ljÁC³
- Eƒtƒ@ƒCƒ„[ƒEƒH[ƒ‹‚̉ñ”§ŒÀ‚ðƒOƒ‹[ƒv–ˆ‚©‚烆ƒjƒbƒg–ˆ‚ÉC³
- EƒNƒ@ƒOƒ}ƒCƒA‰¼ŽÀ‘• i“G‚̈ړ®‘¬“xAƒLƒƒƒ‰‚Ì•\Ž¦”’l‚͕ω»‚¹‚¸j
- EƒEƒH[ƒ^[ƒ{[ƒ‹‰¼ŽÀ‘•i“®ì‚ª³‚µ‚¢‚Ì‚©•s–¾j
- EƒtƒƒXƒgƒmƒ”ƒ@‰¼ŽÀ‘•iƒGƒtƒFƒNƒg‚ª—Ç‚­‚í‚©‚ç‚È‚¢‚Ì‚Å“K“–j
- Eƒxƒmƒ€ƒ_ƒXƒg‰¼ŽÀ‘•i”͈͂Ƃ©‚ª³‚µ‚¢‚©‚Ç‚¤‚©•sˆÀj
- Eƒvƒƒ{ƒbƒNAƒI[ƒgƒo[ƒT[ƒNA¹‘Ì~•ŸA»‚Ü‚«AΓŠ‚°‚ÌŽÀ‘•
- EƒGƒ“ƒ`ƒƒƒ“ƒgƒ|ƒCƒYƒ“‚Ì“Å•t—^ŽÀ‘•
-
- *’ˆÓ* “Åó‘Ô‚ÍŒ©‚½–Ú‚¾‚¯‚ÅŒø‰Ê‚Í–¢ŽÀ‘•
-
- (db/)
- skill_db.txt
- »‚Ü‚«/ΓŠ‚°/ƒEƒH[ƒ^[ƒ{[ƒ‹‚È‚ÇC³
- (map/)
- skill.c/skill.h
- FXC³
- mob.c/mob.h
- mob_target()’ljÁBMOB‚̃^ƒQ—p
- battle.c
- battle_get_*()ŒnC³‚È‚Ç
- pc.c
- pc_calcstatus()C³
-
-----------
-//0297 by ŒÓ’±—–
-
-ELoginŽI‚ªƒpƒXƒ[ƒhˆÃ†‰»‚ɑΉž
- ˆÃ†‰»key‚ÍŽI‹N“®Žž‚Ɉê“x‚¾‚¯ì¬‚µ‚Ü‚·B
-
- **’ˆÓ**
- ˆÃ†‰»ƒpƒXƒ[ƒh‚ðŽg‚Á‚Ä‚¢‚éꇂÍAƒAƒJƒEƒ“ƒg‚ð쬂ł«‚Ü‚¹‚ñB
- ƒAƒJƒEƒ“ƒg‚ðì‚éꇂÍclientinfo.xml‚ð•ÒW‚·‚é‚È‚Ç‚µ‚ÄA
- ƒpƒXƒ[ƒh‚ðˆÃ†‰»‚µ‚È‚¢ƒNƒ‰ƒCƒAƒ“ƒg‚ðŽg‚¤•K—v‚ª‚ ‚è‚Ü‚·B
-
- (login/)
- login2.c/login.h
- ˆÃ†‰»ƒpƒXƒ[ƒh‚̃pƒPƒbƒgˆ—’ljÁ
- ˆÃ†‰»key‚̶¬ˆ—’ljÁ
- md5calc.c/md5calc.h
- V‹K’ljÁBmd5ŒvŽZ—p
-
-
-EƒXƒLƒ‹Žg—pƒfƒBƒŒƒC‚ÉDEX‚ª”½‰f‚³‚ê‚È‚¢‚悤‚ÉC³
- skill.c
- skill_delay_fix()‚ÌC³
-
-EŽ€–SŒã‚àˆê•”‚Ìó‘ÔˆÙí‚ÌŒø‰Ê‚ªŽ‘±‚·‚é–â‘è‚ðC³
- pc.c
- pc_damage()‚ÅŽ€–SŽž‚Épc_calcstatus()‚ðŒÄ‚Ԃ悤‚ÉC³
- atcommand.c
- Ž€–SŽžˆ—‚ðˆê–{‰»‚·‚邽‚ß@die‚Å‚Ípc_damage‚ðŒÄ‚Ԃ悤‚ÉC³
-
-
-----------
-//0295 by ŒÓ’±—–
-
-EƒNƒŒƒCƒ‚ƒA[ƒgƒ‰ƒbƒv‚ȂǂɃXƒLƒ‹‚ðŽg‚¤‚ƃ}ƒbƒvŽI‚ª—Ž‚¿‚é–â‘è‚ÌC³
-
- battle.c
- battle_get_*()‚È‚Ç‚ÅBL_PC,BL_MOB‚¶‚á‚È‚¢‚Æ‚«‚̈—‚ð’ljÁ
- skill.c/skill.h
- skill_unit_ondamage()’ljÁ
-
-E–ñ21Mz‚ð’´‚¦‚éƒAƒCƒeƒ€‚ðNPC‚ňµ‚¤‚Æ‚«OC,DCŒvŽZ‚Å’l’i‚ª‚¨‚©‚µ‚­‚È‚éƒoƒOC³
- DC‚Å‚Í20MzAOC‚Å‚Í70Mz‚ð’´‚¦‚éƒAƒCƒeƒ€‚ÍdoubleŒ^‚É‚µ‚ÄŒvŽZ‚µ‚Ü‚·
-
- pc.c
- pc_modifysellvalue(),pc_modifysellvalue()‚ÌC³
-
-----------
-//0294 by ŒÓ’±—–
-
-EƒXƒNƒŠƒvƒgƒRƒ}ƒ“ƒh‚ŃGƒŠƒAŽw’è‚ÌMOB•¦‚«–½—ß‚ðì¬
- areamonster "ƒ}ƒbƒv–¼",x0,y0,x1,y1,"MOB•\Ž¦–¼",MOB‚Ìclass,”,"ƒCƒxƒ“ƒg–¼"
- À•WŽw’肪(x0,y0)-(x1,y1)‚Ì”CˆÓƒ|ƒCƒ“ƒg‚ɂȂ邾‚¯‚Å‘¼‚Ímonster–½—ß‚Æ“¯‚¶‚Å‚·
-
- script.c
- buildin_areamonster()’ljÁ
- mob.c/mob.h
- mob_once_spawn_area()’ljÁ
-
-EƒAƒCƒXƒEƒH[ƒ‹‚ÌŽI‘¤ˆ—‰¼ŽÀ‘•
- UŒ‚‚Å‚«‚È‚¢‚È‚Ç‚Ì–â‘è‚Í‚ ‚é‚à‚Ì‚ÌAŽI‘¤‚Å‚Í‚Æ‚è‚ ‚¦‚¸“®‚«‚Ü‚·B
- ‚½‚¾AƒNƒ‰ƒCƒAƒ“ƒg‚Éi“ü•s‰Â”\ƒGƒŠƒA‚ð‹³‚¦‚éƒpƒPƒbƒg‚ª‚í‚©‚ç‚È‚¢‚Ì‚ÅA
- ŽI‘¤‚Å‚ÍIW‚̉ñ‚èž‚Ý‚ðs‚¤ê‡‚Å‚àAƒNƒ‰ƒCƒAƒ“ƒg‘¤‚Å‚Í‚·‚蔲‚¯‚Ä‚¢‚é
- ‚悤‚ÉŒ©‚¦‚Ü‚·B
-
- skill.c
- ŠY“–ˆ—’ljÁ‚È‚Ç
-
-----------
-//0293
-E2-2ŽŸE‚̃XƒLƒ‹ƒRƒƒ“ƒg‚ÌC³iˆê•”’ljÁj
- (db/)
- skill_db.txt
- skill_tree.txt
-
-
-----------
-//0292 by ŒÓ’±—–
-
-ESHOP NPC‚ɘb‚µŠ|‚¯‚é‚ÆNPC‚ª”½‰ž‚µ‚È‚­‚È‚é–â‘è‚Ì‚Ü‚Æ‚à‚ÈHC³Part2
- E”„”ƒ‚Å‚«‚È‚©‚Á‚½–â‘èC³
-
- map.h
- struct map_session_data ‚Énpc_shopidƒƒ“ƒo’ljÁ
- npc.c
- npc_click()‚È‚ÇC³
-
-EƒXƒNƒŠƒvƒg–½—ߒljÁ
- EŽw’èƒGƒŠƒA‚̃†[ƒU[”‚ÌŠ“¾
- getareausers("ƒ}ƒbƒv–¼",x0,y0,x1,y1)
- Žw’èƒ}ƒbƒv‚Ì(x0,y0)-(x1,y1)‚É‚¢‚éPC‚Ì”‚ðŒvŽZ
- EŽw’èƒGƒŠƒA‚̃†[ƒU[‚̃[ƒv
- areawarp "“]‘—Œ³ƒ}ƒbƒv–¼",x0,y0,x1,y1,"“]‘—æƒ}ƒbƒv–¼",x,y;
- Žw’èƒ}ƒbƒv‚Ì(x0,y0)-(x1,y1)‚É‚¢‚é‘SPC‚ðŽw’èƒ}ƒbƒv‚Ì(x,y)‚É“]‘—B
-
- script.c
- buildin_areawarp(),buildin_getareausers()’ljÁ
-
-EƒXƒLƒ‹C³
- EƒeƒŒƒ|[ƒgŽg—pŽž‚ÉuƒeƒŒƒ|[ƒg!!v‚Æ‹©‚Ԃ悤‚ÉB
- EƒXƒg[ƒ“ƒJ[ƒX‚̬Œ÷—¦‚ª’á‚¢‚Ì‚ðC³
-
- skill.c
- skill_castend_nodamage_id()C³
-
-----------
-//0291 by ŒÓ’±—–
-
-EƒXƒNƒŠƒvƒg–½—ߒljÁ
- ENPC‚Ì—LŒø–³Œø‚ªØ‚è‘Ö‚¦‚ç‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½
- disablenpc "NPC–¼"‚Å–³Œø‰»Aenablenpc "NPC–¼"‚Å—LŒø‰»B
- NPC–¼‚ªd•¡‚µ‚Ä‚¢‚é‚Æ‚«‚Ì“®ì‚Í•s’è‚Å‚·B
- Žå‚Ƀ[ƒvƒ|ƒCƒ“ƒg‚𖳌ø‰»‚·‚é‚Æ‚«‚ÉŽg‚¢‚Ü‚·B
-
- Eƒ^ƒCƒ}[‚̃JƒEƒ“ƒg‚ð•ÏX‚·‚éƒXƒNƒŠƒvƒg–½—ߒljÁ
- addtimercount "ƒCƒxƒ“ƒg–¼",ƒ~ƒŠ•b
- ‚ÅAƒ^ƒCƒ}‚ÌŠúŒÀ‚ð‰„‚Î‚¹‚Ü‚·i•‰’l‚ðŽw’肵‚ÄŒ¸‚ç‚·‚±‚Æ‚ào—ˆ‚Ü‚·j
-
- EƒAƒiƒEƒ“ƒX‚ÌŠg’£
- mapannounce "ƒ}ƒbƒv–¼","ƒAƒiƒEƒ“ƒX•¶Žš—ñ",ƒtƒ‰ƒO
- ‚ÅŽw’èƒ}ƒbƒv‚ɃAƒiƒEƒ“ƒX‚𗬂µ‚Ü‚·Bƒtƒ‰ƒO‚Í0‚ʼn©FA16‚Å‚ł·B
- areaannounce "ƒ}ƒbƒv",x0,y0,x1,y1,"•¶Žš—ñ",ƒtƒ‰ƒO
- ‚ÅŽw’èƒ}ƒbƒv‚Ì(x0,y0)-(x1,y1)‚̃GƒŠƒA‚ɃAƒiƒEƒ“ƒX‚𗬂µ‚Ü‚·B
- ƒtƒ‰ƒO‚Ímapannounce‚Æ“¯‚¶‚ÅA0‚ʼn©FA0x10‚Å‚ł·B
-
- (conf/)
- npc_test_arena.txt
- ƒTƒ“ƒvƒ‹‚ÌC³
- (map/)
- script.c
- buildin_disablenpc(),buildin_enablenpc(),
- buildin_mapannounce(),buildin_areaannounce(),
- buildin_addtimercount()‚̒ljÁ
- npc.c/npc.h
- NPC‚Ì—LŒø–³Œøˆ—’ljÁ
- map.h
- struct npc_data‚Éflagƒƒ“ƒo’ljÁ(1ƒrƒbƒg–Ú‚ª–³Œøƒtƒ‰ƒO)
- clif.c
- clif_getareachar_npc()‚ÌC³
- pc.c/pc.h
- pc_addeventtimercount()’ljÁ
-
-ESHOP NPC‚ɘb‚µŠ|‚¯‚é‚ÆNPC‚ª”½‰ž‚µ‚È‚­‚È‚é–â‘è‚Ì‚Ü‚Æ‚à‚ÈHC³
- SHOP NPC‚ÆŽæˆø’†‚Å‚àƒCƒxƒ“ƒg‚ª‹N‚±‚é‚悤‚É‚È‚è‚Ü‚·B
- ‚±‚ê‚ÍRO‚ÌŽd—lã”ð‚¯‚é‚Ì‚ª“‚¢‚½‚ß‚±‚̂悤‚ÈŒ‹‰Ê‚Å—Ž‚¿’…‚«‚Ü‚µ‚½B
-
- npc.c
- npc_click()“™‚ÌC³
-
-EƒXƒLƒbƒhƒgƒ‰ƒbƒv‚ÅŽc‘œ‚ªŽc‚é–â‘èC³
- skill.c
- skill_blown()‚Åclif_walkok()‚È‚Ç‚ðŒÄ‚Ԃ悤‚ÉB
- skill_unit_onplace()‚Ìclif_fix*pos()‚ðíœB
-
-----------
-//0290 by ŒÓ’±—–
-
-EƒXƒNƒŠƒvƒg‚ÅMAPŽI“à‹¤—L•Ï”‚ªŽg‚¦‚é‚悤‚É‚È‚è‚Ü‚µ‚½B
- •Ï”–¼‚ð$‚ÅŠJŽn‚·‚é‚ÆAMAPŽI“à‚Ì‘Sˆõ‚Å‹¤—L‚·‚é•Ï”‚É‚È‚è‚Ü‚·B
-
- Œ¾—t‚Ì–â‘è‚Å‚·‚ªAPC‚Ìglobalreg‚Íu‘åˆæ“Iv‚Æ‚¢‚¤‚æ‚èu‰i‘±«‚Ì‚ ‚év
- •Ï”‚Å‚ ‚Á‚ÄAMAPŽI“à‹¤—L•Ï”‚Ì‚Ù‚¤‚ª‘åˆæ“I‚Á‚ăCƒ[ƒW‚ª‹­‚¢‚ñ‚Å‚·‚ªc
-
- script.c
- mapval_db’è‹`
- buildin_set(),buildin_input()‚ÌC³
- do_init_script()’ljÁ
- map.c
- do_init()‚Ådo_init_script()‚ðŒÄ‚Ԃ悤‚ÉB
-
-EƒCƒxƒ“ƒgƒLƒ…[‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½
- EƒLƒ…[ƒTƒCƒY‚Í‚Q‚Å‚·B•K—v‚Ȃ瑂₵‚Ü‚·‚ªB
-
- ƒTƒ“ƒvƒ‹‚Ì[ev_doƒeƒXƒg]‚ª‚¿‚á‚ñ‚Æ“®‚­‚悤‚É‚È‚Á‚½‚ÆŽv‚¢‚Ü‚·B
-
- map.h
- struct map_session_data‚Éeventqueueƒƒ“ƒo’ljÁ
- npc.c
- npc_event_timer()’ljÁ
- script.c
- run_script()‚ÅENDˆ—‚ŃLƒ…[‚̈—’ljÁ
-
-EƒXƒNƒŠƒvƒg‚Ń^ƒCƒ}[‚ªŽg—p‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½
- Žg—p•û–@‚ÍAaddtimer ƒ~ƒŠ•b,"ƒCƒxƒ“ƒg–¼" ‚Ń^ƒCƒ}[’ljÁA
- deltimer "ƒCƒxƒ“ƒg–¼" ‚Ń^ƒCƒ}[íœB
-
- (common/)
- timer.c/timer.h
- get_timer(),addtick_timer()’ljÁ
- (map/)
- map.c/map.h
- struct map_session_data‚Éeventtimerƒƒ“ƒo’ljÁ
- map_quit()‚Åpc_cleareventtimer()‚ðŒÄ‚Ԃ悤‚ÉB
- pc.c
- pc_addeventtimer(),pc_deleventtimer(),pc_eventtimer(),
- pc_cleaereventtimer()’ljÁ
- pc_authok()‚Åeventimer‚̉Šú‰»
- script.c
- buildin_addtimer(),buildin_deltimer()’ljÁ
-
-EƒXƒNƒŠƒvƒg‚̒ljÁ
- Egetusers,getmapusers,killmonster‚̒ljÁ
- getusers(x)‚̓†[ƒU[”Š“¾Ax=0‚ÅPC‚ÌMAP,1=‘SMAP,8=NPC‚ÌMAPB
- getmapusers("ƒ}ƒbƒv–¼")‚ÍŽw’èƒ}ƒbƒv‚̃†[ƒU[”‚ðŠ“¾‚·‚éB
- killmonster "ƒ}ƒbƒv–¼","ƒCƒxƒ“ƒg–¼"‚ÅŠY“–‚̃}ƒbƒv‚É‚¢‚éA
- ŠY“–‚̃Cƒxƒ“ƒg‹ì“®Žw’胂ƒ“ƒXƒ^[‚ð‘S‚ÄíœB
- EannounceƒRƒ}ƒ“ƒhŠg’£
- ƒtƒ‰ƒO‚Ì0x08ƒrƒbƒg‚ª1‚È‚çƒ}ƒbƒv‚âƒGƒŠƒAŒvŽZ‚ÉPC‚Å‚È‚­NPC‚ðŽg‚¤
-
- mob.c/mob.h
- mob_delete()’ljÁ
- script.c
- buildin_getusers(),buildin_getmapusers(),
- buildin_killmonster()’ljÁ
- clif.c/clif.h
- clif_GMmessage()‚̈ø”•ÏX
-
-EƒCƒxƒ“ƒgƒTƒ“ƒvƒ‹’ljÁ
- ŠÈ’P‚ȃAƒŠ[ƒi‚̃Tƒ“ƒvƒ‹‚ð’ljÁB
-
- (conf/)
- npc_test_ev.txt
- ]—ˆ‚̃Tƒ“ƒvƒ‹‚ÌC³
- npc_test_arena.txt
- ŠÈ’P‚ȃAƒŠ[ƒi‚̃Tƒ“ƒvƒ‹
- ƒ[ƒvƒ|ƒCƒ“ƒg‚Ì–³Œø‰»ƒRƒ}ƒ“ƒh‚È‚Ç‚ª•K—v‚ÆŽv‚í‚ê‚éB
-
-ESHOP NPC‚ɘb‚µŠ|‚¯‚é‚ÆNPC‚ª”½‰ž‚µ‚È‚­‚È‚é–â‘èC³
-
- npc.c
- npc_buylist(),npc_selllist()C³
-
-----------
-//0289 by ŒÓ’±—–
-
-EƒCƒxƒ“ƒg‹ì“®Œ^ƒXƒNƒŠƒvƒg‚ÌC³‚È‚Ç
- E‘¼‚ÌNPC‚ɘb‚µŠ|‚¯‚Ä‚¢‚é‚Æ‚«‚̓Cƒxƒ“ƒg‚ª–³Ž‹‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½
- =>ƒLƒ…[‚É“ü‚ê‚é‚Ȃǂ̈—‚ª‚¢‚é‚ÆŽv‚í‚ê‚éB
-
- ‚±‚ÌŠÖŒW‚ÅAƒTƒ“ƒvƒ‹‚Ì[ev_doƒeƒXƒg]NPC‚ðƒNƒŠƒbƒN‚µ‚Ä‚à
- IDƒGƒ‰[‚ªo‚ĉ½‚à‹N‚«‚Ü‚¹‚ñBƒCƒxƒ“ƒgƒLƒ…[‚ðì‚ê‚Î’¼‚é‚Í‚¸B
-
- npc.c
- npc_event(),npc_click()‚Énpc_idƒ`ƒFƒbƒN‚ð’ljÁ
- script.c
- I—¹Žž‚Énpc_id‚ðƒNƒŠƒA‚·‚é‚悤‚É
-
-EƒXƒNƒŠƒvƒgƒRƒ}ƒ“ƒh[announce]‚̒ljÁ
- EGMƒƒbƒZ[ƒW‚É‚æ‚éannounceB
- ‘æ1ˆø”‚Í•¶Žš—ñA‘æ2ˆø”‚̓tƒ‰ƒO‚ÅA
- ƒtƒ‰ƒO‚̉ºˆÊ‚Sƒrƒbƒg‚ª0=‘S‚ÄA1=“¯‚¶ƒ}ƒbƒvA
- 2=‰æ–Ê“àA3=Ž©•ª‚Ì‚ÝA4=“¯‚¶ƒ}ƒbƒvŽI‚É‘—MB
- ƒtƒ‰ƒO‚Ì‚Sƒrƒbƒg–Ú‚ÍFƒtƒ‰ƒO‚ÅA0x10=ÂA0x00=‰©F
-
- script.c
- buildin_announce()‚̒ljÁ
- clif.c
- clif_send()‚ÅSELF‚̈—’ljÁ
- clif_GMmessage()‚̈ø”•ÏX
- intif.c
- intif_GMmessage()‚̈ø”•ÏX
-
-Eƒƒ‚‹ÖŽ~AƒeƒŒƒ|‹ÖŽ~AƒZ[ƒu‹ÖŽ~ƒ}ƒbƒv‚ªŽw’è‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½B
- ENPC‚ÅAmapflag‚Æ‚¢‚¤ƒ^ƒCƒv‚ÅA–¼‘O‚ð nomemo A noteleport‚Å
- ƒƒ‚‚ƃeƒŒƒ|‹ÖŽ~Bnosave ‚ÅAˆø”‚ɃZ[ƒu‚·‚éƒ}ƒbƒv–¼‚ÆÀ•W‚ðŽw’èB
-
- Ú‚µ‚­‚Í“¯«‚Ìconf/npc_test_ev.txt‚ðŽQÆB
-
- (conf/)
- npc_test_ev.txt
- C³
- (map/)
- map.h
- struct map_data ‚Éflag,savemap,savex,saveyƒƒ“ƒo’ljÁ
- npc.c
- npc_parse_mapflag()’ljÁ
- do_init_npc()‚ÌC³
- pc.c
- pc_memo()‚Ńƒ‚‹ÖŽ~‚©‚Ç‚¤‚©‚ðŠm”F
- pc_makesavestatus()‚ŃZ[ƒu‹ÖŽ~‚È‚çƒ}ƒbƒv‚ð•ÏX
- pc_randomwarp()‚ŃeƒŒƒ|‹ÖŽ~‚©‚Ç‚¤‚©Šm”F
- skill.c
- ƒeƒŒƒ|‚ƃ|ƒ^‚ŃeƒŒƒ|‹ÖŽ~‚©Šm”F
-
-
-Eƒtƒ@ƒCƒ„[ƒEƒH[ƒ‹‚Å—Ž‚¿‚é–â‘èC³c‚¾‚Æ‚¢‚¢‚È
-
- skill.c
- ‚³‚ç‚Ƀ`ƒFƒbƒN‚ð’ljÁ
- skill_blown()‚É—Ž‚¿‚錴ˆö‚Á‚Û‚¢‚à‚Ì”­Œ©‚µ‚½‚Ì‚ÅC³
-
-----------
-//0288 by ŒÓ’±—–
-
-EŽ©“®‘é”­“®Žž‚ÉuƒuƒŠƒbƒcƒr[ƒg!!v‚Æ‹©‚΂Ȃ­‚È‚è‚Ü‚µ‚½
- skill.c
- skill_attack(),skill_additional_effect(),
- skill_castend_damage_id()‚ÌC³
-
-EƒCƒxƒ“ƒg‹ì“®Œ^ƒXƒNƒŠƒvƒg‚ª‹Lq‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½
-Eƒ‚ƒ“ƒXƒ^[‚ð“|‚µ‚½‚Æ‚«‚ɃCƒxƒ“ƒgƒXƒNƒŠƒvƒg‚ð“®‚©‚¹‚é‚悤‚É‚È‚è‚Ü‚µ‚½
-
- NPC’è‹`‚Ìscript‚Å•\Ž¦ƒNƒ‰ƒX‚ð-1‚É‚·‚é‚ƃCƒxƒ“ƒgˆµ‚¢‚É‚È‚è‚Ü‚·B
- NPC’è‹`‚Ìmonster‚ɃCƒxƒ“ƒg–¼‚ðÝ’è‚Å‚«‚Ü‚·B
- ƒXƒNƒŠƒvƒg‚ÌmonsterƒRƒ}ƒ“ƒh‚ɃCƒxƒ“ƒg‚ð‹N‚±‚·ˆø”’ljÁB
- Ú‚µ‚­‚̓Tƒ“ƒvƒ‹‚ðŒ©‚Ä‚­‚¾‚³‚¢B
- ¡Œãƒ^ƒCƒ}[‚ŃCƒxƒ“ƒg‚ð‹N‚±‚¹‚é‚悤‚É‚µ‚悤‚ÆŽv‚Á‚Ä‚¢‚Ü‚·B
-
- Œ»ó‚Å‚ÍANPCƒEƒBƒ“ƒhƒE‘€ì’†‚ɃCƒxƒ“ƒg‚ª‚¨‚«‚ÄA
- ‚»‚̃Cƒxƒ“ƒg‚̃XƒNƒŠƒvƒg‚ÅNPCƒEƒBƒ“ƒhƒE‚ðo‚·‚Æ–â‘肪‹N‚«‚Ü‚·B
- ‚±‚Ì•Ó‚Í¡Œã‚̉ۑè‚Æ‚¢‚¤‚±‚Æ‚ÅB
-
- (db/)
- item_db.txt/item_db2.txt
- monsterƒRƒ}ƒ“ƒh‚Ì•ÏX‚É‚æ‚éC³iŒÃ–Ø‚ÌŽ}jB
- (conf/)
- npc_test_ev.txt
- ƒTƒ“ƒvƒ‹
- (map/)
- npc.c
- npc_event()’ljÁ
- npc_parse_script()C³
- npc_checknear()C³
- clif.c
- clif_getareachar_npc()C³
- map.h
- struct mob_data‚Énpc_eventƒƒ“ƒo’ljÁ
- mob.c/mob.h
- mob_once_spawn()‚̈ø”•ÏX
- mob_damage()‚ÅŽ€–SŽž‚ɃCƒxƒ“ƒg‚ð‹N‚±‚·‚悤‚É
- atcommand.h
- mob_once_spawn()‚̈ø”•ÏX
- script.c
- buildin_monster()‚ÌC³
-
-----------
-//0287 by ŒÓ’±—–
-
-Eƒ‚ƒ“ƒXƒ^[î•ñƒXƒLƒ‹‚Å‚g‚o‚ª65535‚ð‰z‚¦‚Ä‚¢‚é‚Ƴí‚È’l‚ªŒ©‚ê‚È‚¢ƒoƒOC³
-
- clif.c
- clif_skill_estimation()‚ÌC³
-
-EŒÃ–Ø‚ÌŽ}ƒAƒCƒeƒ€‚ŃNƒ‰ƒCƒAƒ“ƒg‚ªƒŠƒ\[ƒXƒGƒ‰[‚ðo‚·–â‘肪C³‚³‚ê‚Ü‚µ‚½
-EŒÃ–Ø‚ÌŽ}ƒAƒCƒeƒ€‚Å¢Š«‚Å‚«‚é“G‚ªŽw’è‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½
-
- (db/)
- mob_branch.txt
- ¢Š«‰Â”\‚È“G‚̃ŠƒXƒg
- (map/)
- mob.c/mob.h
- struct mob_data‚Ésummonflagƒƒ“ƒo’ljÁB¢Š«‰Â”\«B
- mob_once_spawn()‚ÌC³
- mob_readbranch()‚̒ljÁ
- do_init_mob()‚Åmob_readbranch()‚ðŒÄ‚Ԃ悤‚ÉB
-
-EŒÃ‚­Â‚¢” AŒÃ‚¢Ž‡F‚Ì” ‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½B
- ˆê•”‚Ì–¢ŽÀ‘•ƒAƒCƒeƒ€‚ào‚Ü‚·Bitem_db.txt‚É‚ ‚éƒf[ƒ^‚ðŒŸõ‚µ‚Ä‚¢‚Ü‚·B
- ƒXƒNƒŠƒvƒggetitem‚Å•‰‚Ì’l‚ðŽw’è‚·‚é‚ÆA‚»‚Ìâ‘Î’l‚ðƒtƒ‰ƒO‚Æ‚µ‚Ä
- ƒ‰ƒ“ƒ_ƒ€‚ɃAƒCƒeƒ€‚ð‘I‘ð‚µ‚Ü‚·B
-
- (db/)
- item_db.txt/item_db2.txt
- ŠY“–•”•ª‚̃XƒNƒŠƒvƒgC³
- (map/)
- script.c
- buildin_getitem()‚ÌC³
- itemdb.c/itemdb.h
- itemdb_searchrandomid(),itemdb_searchrandomid_sub()’ljÁ
-
-E‰r¥ƒf[ƒ^‚̈ꕔC³
- (db/)
- cast_db.txt
- ‘¬“x㸂ȂǂÌC³
-
-ENPC‚ÌŒü‚«C³‚È‚Ç
- (conf/)
- npc_*.txt
-
-----------
-//0286 by ŒÓ’±—–
-
-Eƒ‚ƒ“ƒXƒ^[î•ñƒXƒLƒ‹‚ŃNƒ‰ƒCƒAƒ“ƒg‚ª—Ž‚¿‚éƒoƒOC³
- clif.c
- clif_skill_estimation()‚ÌC³
-
-E‰r¥”½‰žƒ‚ƒ“ƒXƒ^[‚ª”½‰ž‚µ‚È‚¢‚±‚Æ‚ª‚ ‚é–â‘è‚ðC³
- skill.c
- skill_use_id(),‰r¥”½‰žŽžAÅ’á’ÇÕ‹——£‚ð13‚ÉÝ’è‚·‚é‚悤‚ÉB
-
-EƒXƒNƒŠƒvƒgƒRƒ}ƒ“ƒh[warp]‚ŃZ[ƒuƒ|ƒCƒ“ƒgˆÚ“®‚⃉ƒ“ƒ_ƒ€ˆÚ“®‚ª‰Â”\‚É‚È‚è‚Ü‚µ‚½
-EƒnƒG‚̉HA’±‚̉HƒAƒCƒeƒ€‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½
- ƒXƒNƒŠƒvƒgwarp‚Ń}ƒbƒv–¼‚É"SavePoint"‚â"Random"‚ªŽw’è‚Å‚«‚Ü‚·B
-
- (db/)
- item_db.txt/item_db2.txt
- ƒnƒG‚̉HA’±‚̉H‚̃XƒNƒŠƒvƒgC³
- script.c
- buildin_warp()‚ÌC³
-
-E@monsterƒRƒ}ƒ“ƒh‚É‚æ‚éMOB‚ª•œŠˆ‚µ‚È‚¢‚悤‚É‚È‚è‚Ü‚µ‚½
-EƒXƒNƒŠƒvƒgƒRƒ}ƒ“ƒh[monster]‚ÅMOB‚ð”­¶‚³‚¹‚邱‚Æ‚ª‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½
-EŒÃ–Ø‚ÌŽ}ƒAƒCƒeƒ€‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½
-
- ƒXƒNƒŠƒvƒgˆø”‚Í monster ƒ}ƒbƒv–¼,x,y,MOB–¼,MOB‚ÌID,” ‚Å‚·B
- ƒ}ƒbƒv–¼‚ª"this"‚Ìê‡AƒXƒNƒŠƒvƒg‚ðŽÀs‚µ‚½ƒvƒŒƒCƒ„[‚Ì‚¢‚éƒ}ƒbƒvA
- x,y‚ª-1‚È‚çƒvƒŒƒCƒ„[‚ÌÀ•Wi‚Ç‚¿‚ç‚©ˆê•û‚Ì‚Ý‚»‚낦‚邱‚Æ‚à‰Â”\jA
- MOB–¼‚ª"--en--"‚Ìê‡A–{—ˆ‚̉pŒê–¼‚É‚È‚èA"--ja--"‚Ìê‡A
- –{—ˆ‚Ì“ú–{Œê–¼‚É‚È‚è‚Ü‚·BMOB‚ÌID‚ª-1‚Ìê‡A“K“–‚ÈID‚É‚È‚è‚Ü‚·B
-
- (db/)
- item_db.txt/item_db2.txt
- ŒÃ–Ø‚ÌŽ}‚̃XƒNƒŠƒvƒgC³
- (map/)
- mob.c/mob.h
- mob_once_spawn()’ljÁ
- mob_setdelayspwan()‚Å•œŠˆ‹ÖŽ~ˆ—’ljÁB
- npc.c/npc.h
- npc_get_new_npc_id()’ljÁ
- script.c
- buildin_monster()’ljÁ
- atcommand.c
- @monster‚ÌC³
-
-E@itemƒRƒ}ƒ“ƒh‚ÌC³i‘•”õ•i‚È‚Ç‚Ì–â‘èj
-
- atcommand.c
- @item‚ÌC³
-
-----------
-//0284 by ŒÓ’±—–
-
-EáŠQ•¨‚ª‚ ‚é‚Ɖ“‹——£UŒ‚‚ª‚Å‚«‚È‚­‚È‚è‚Ü‚µ‚½
-E‘Î’nƒXƒLƒ‹‚ªáŠQ•¨ã‚ÉŽg—p‚Å‚«‚È‚­‚È‚è‚Ü‚µ‚½
-
- path.c
- path_search(),can_move()‚ÌC³Acan_place()‚̒ljÁ
- battle.c/battle.h
- battle_check_range()’ljÁAŽË’ö‚ÆáŠQ•¨”»’èB
- battle_weapon_attack()‚Åbattle_check_range()‚ðŒÄ‚ÔB
- skill.c
- skill_use_id()Askill_use_pos()‚Åbattle_check_range()‚ðŒÄ‚ÔB
- mob.c
- mob_ai_sub_hard()‚̈—‚ðC³
-
-E‰r¥”½‰ž/ƒŠƒ“ƒNƒ‚ƒ“ƒXƒ^[‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½
- skill.c
- skill_use_id()‚ɉr¥”½‰žƒ‚ƒ“ƒX‚̈—’ljÁ
- mob.c
- mob_ai_sub_hard_linksearch()‚̒ljÁ
- mob_ai_sub_hard()‚ɃŠƒ“ƒNˆ—‚ðC³
-
-----------
-//0283 by ‚ê‚ 
-EƒŠƒUƒŒƒNƒVƒ‡ƒ“‚ÌC³
- 0282‚Ŷ‚«‚Ä‚é‚o‚b‚ɃŠƒU‚ª‚©‚¯‚ê‚é‚Ì‚ÉA
- Ž€‚ñ‚Å‚é‚o‚b‚ɂ̓ŠƒU‚ª‚©‚©‚ç‚È‚­‚È‚Á‚Ä
- ‚¢‚½‚Ì‚ðC³‚µ‚Ü‚µ‚½B
-
-----------
-//0282 by ŒÓ’±—–
-
-EƒXƒLƒ‹‚ÌC³‚ƒljÁŽÀ‘•
- EƒLƒŠƒGƒGƒŒƒCƒ\ƒ“‚̃GƒtƒFƒNƒg‚Ì–â‘èC³B
- EƒŠƒUƒŒƒNƒVƒ‡ƒ“‚ª¶‚«‚Ä‚¢‚éPC‚É‚ÍŠ|‚¯‚ç‚ê‚È‚¢‚悤‚É‚È‚è‚Ü‚µ‚½
- Eƒ^[ƒ“ƒAƒ“ƒfƒbƒh/UŒ‚ƒŠƒUƒŒƒNƒVƒ‡ƒ“‚ªBOSS‚É‚ÍŒø‚©‚È‚¢‚悤‚É‚È‚è‚Ü‚µ‚½
- Eƒtƒ@ƒCƒ„[ƒEƒH[ƒ‹‚̃qƒbƒg”§ŒÀ‚ðŽÀ‘•
- EƒXƒg[ƒ€ƒKƒXƒg‚ÌŽÀ‘•
- ‚½‚¾‚µA–{ŽI‚ƈႢ“€Œ‹‚ÍŠm—¦‚Ì‚Ý‚ÅAÅ‘åƒqƒbƒg”‚È‚Ç‚ª•Ï‚Å‚·B
-
- skill.c
- skill_castend_nodamage_id()‚ÌC³
- ƒXƒg[ƒ€ƒKƒXƒg‚̈—’ljÁ
-
-EƒXƒLƒ‹ƒ†ƒjƒbƒgˆ—‚ɈӒn‚É‚È‚Á‚ĈÀ‘S«ƒ`ƒFƒbƒN‚ð’ljÁB
- i—Ž‚¿‚È‚­‚È‚é“ú‚͉“‚¢HHj
-
- map.h
- MAX_SKILLUNITGROUP‚ð32‚É‘‚₵‚½
- skill.c
- skill_status_change_*()‚ÉNULLƒ`ƒFƒbƒN’ljÁ
- battle.c
- battle_calc_damage()‚ɶ‘¶ƒ`ƒFƒbƒN’ljÁ
- map.c
- map_freeblock_unlock()‚ɃƒbƒN”ƒ`ƒFƒbƒN‚ð’ljÁ
-
-E‚»‚Ì‘¼C³
- EPC‚ÌÅ‘åHP‚ª30000‚ɧŒÀ‚³‚ê‚Ü‚µ‚½B
- EPC‚̉ñ•œˆ—‚ªC³‚³‚ê‚Ü‚µ‚½
- E‚«”ò‚΂µˆ—‚ÌC³
- E0281‚Ìitem_db.txt‚Ì•ÏX‚ðitem_db2.txt‚É‚à“K—p
-
- (map/)
- pc.c
- pc_heal(),pc_calcstatus()‚ÌC³
- path.c
- path_blownpos()‚ÌC³
- (db/)
- item_db2.txt
- 0281‚Ì–¼‘OC³‚È‚Ç‚ð“K—p
-
-----------
-//0280 by ŒÓ’±—–
-
-EŠÇ—ŽÒ‚̃VƒXƒeƒ€‚ðì¬
- "conf/login_athena.cnf"‚Ìì¬AŠÇ—ŽÒƒpƒXAGMƒpƒX‚ÌÝ’èB
- ƒAƒJƒEƒ“ƒg‚ðì‚é‚Æ‚«A
- ƒ—á„ ID: hoge_M Pass: foobar@admin
- ‚̂悤‚ÉAƒpƒXƒ[ƒh‚ÌŒã‚ë‚Éu@ŠÇ—ŽÒƒpƒXv‚ª•K—v‚ÉB
- login_athena.cnf‚Ìadmin_pass‚Ì—“‚ðÁ‚¹‚ÎA¡‚܂ł̂悤‚É‚à‚‚©‚¦‚Ü‚·B
- i‚»‚Ìê‡Aadmin_pass‚ÌŒã‚낾‚¯‚Å‚È‚­As‚²‚ÆÁ‚µ‚Ä‚­‚¾‚³‚¢j
-
- (login/)
- login.h
- Ý’èƒtƒ@ƒCƒ‹‚̃fƒtƒHƒ‹ƒg–¼’ljÁ
- login2.c
- ƒAƒJƒEƒ“ƒg쬂̂Ƃ±‚ë‚ðC³
- Ý’èƒtƒ@ƒCƒ‹‚Ì“Ç‚Ýž‚ݒljÁ
-
-E@GMƒRƒ}ƒ“ƒh•œŠˆ
- ‚½‚¾‚µAu@gm GMƒpƒXv‚Æ‚µ‚ÄŽg‚¢‚Ü‚·B
- GMƒpƒX‚Ílogin_athena.cnf‚Ì‚à‚Ì‚Å‚·B
- ŽI‚ÌÄ‹N“®‚Ì•K—v‚Í‚ ‚è‚Ü‚¹‚ñ‚ªA
- ƒNƒ‰ƒCƒAƒ“ƒg‚̓ŠƒƒO‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B
-
- ƒ’ˆÓ„
- “¯‚¶ƒAƒJƒEƒ“ƒg‚Ì‘S‚ẴLƒƒƒ‰‚ÍPT‚©‚甲‚¯‚Ä’u‚¢‚Ä‚­‚¾‚³‚¢B
- ‚Ü‚½A‘qŒÉ‚̃AƒCƒeƒ€‚Í‘S•”ˆø‚«o‚µ‚Ä’u‚¢‚Ä‚­‚¾‚³‚¢B
- ‚»‚¤‚µ‚È‚¢‚ƃSƒ~ƒf[ƒ^‚ªŽc‚è‚Ü‚·B
-
- (login/)
- login2.c
- ƒAƒJƒEƒ“ƒgID•ÏXˆ—’ljÁ
- (char/)
- char2.c
- ƒAƒJƒEƒ“ƒgID•ÏXˆ—’ljÁ
- (map/)
- chrif.c/chrif.h
- chrif_changegm(),chrif_changedgm()’ljÁ
-
-E@pvpoffƒRƒ}ƒ“ƒh•œŠˆ
- clif.c/clif.h
- clif_pvpoff()’ljÁ
- atcommand.c
- @pvpoff‚̈—’ljÁ
-
-E‹ó‚Ì‘qŒÉƒf[ƒ^‚Í•Û‘¶‚³‚ê‚È‚¢‚悤‚É•ÏX
- (char/)
- int_storage.c
- inter_storage_save()Astorage_tostr()‚ðC³
-
-E@memoƒRƒ}ƒ“ƒh’ljÁB
- ”CˆÓ‚Ì‹L‰¯ˆæ‚Ƀƒ‚‚ðŽæ‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½B
-
- atcommand.c
- @memo‚̈—’ljÁ
-
-
-----------
-//0279 by ŒÓ’±—–
-
-EƒXƒLƒ‹ƒ†ƒjƒbƒgˆ—‚Ì–â‘è‘Îô
- ‚Æ‚è‚ ‚¦‚¸‚Ђ½‚·‚çƒ`ƒFƒbƒN‚ð“ü‚ê‚Ü‚µ‚½B
-
- skill.c
- skill_unit_timer_sub(),skill_unit_move_sub(),
- skill_delunit()‚Ƀ†ƒjƒbƒg‚̶‘¶”»’è‚ð’ljÁB
- skill_unitgrouptickset_search(),skill_unitgrouptickset_delete()
- skill_delunitgroup()‚ÉNULLƒ|ƒCƒ“ƒ^ƒ`ƒFƒbƒN‚ð’ljÁB
-
-EƒXƒLƒ‹‚̒ljÁŽÀ‘•‚ÆC³
- ƒeƒŒƒ|[ƒgAƒ[ƒvƒ|[ƒ^ƒ‹‚ÌŽÀ‘•
- ƒLƒŠƒGƒGƒŒƒCƒ\ƒ“‚ðMOB‚ÉŠ|‚¯‚é‚Æ—Ž‚¿‚éƒoƒOC³
-
- (db/)
- cast_db.txt
- ƒ[ƒvƒ|[ƒ^ƒ‹‚̉r¥ŽžŠÔÝ’è
- (map/)
- map.h
- struct skill_unit_group‚Ìvalstr‚ðƒ|ƒCƒ“ƒ^‚É•ÏX
- clif.c/clif.h
- clif_parse_UseSkillMap(),clif_skill_warppoint()A
- clif_parse_Memo(),clif_skill_memo()’ljÁ
- skill.c/skill.h
- skill_castend_map(),skill_unit_onlimit()‚̒ljÁ
- skill_unit_*Œn‚̈—‚¢‚ë‚¢‚ë’ljÁB
- skill_status_change_start()‚̃LƒŠƒG‚̈—C³
- pc.c/pc.h
- pc_randomwarp(),pc_memo()’ljÁ
-
-----------
-//0278 by nabe
-
-EƒXƒLƒ‹ƒ|ƒCƒ“ƒg‚ðU‚Á‚½‚Æ‚«‚ɃXƒe[ƒ^ƒX‚ðXV
- pc.c
- pc_skillup()‚Åpc_calc_skilltree()‚Ì‘ã‚í‚è‚Épc_calcstatus()
-EŠŽ—Ê‘‰Á‚ðC³
- pc.c
- pc_calcstatus()‚ÌŠŽ—Ê‘‰Á‚É‚æ‚émax_weight‘•ª‚ðskill*1000‚É
-
-----------
-//0277 by nabe
-
-E•t‘®•iiƒJ[ƒgA‘éAƒyƒRj‚Ì•t‚¯ŠO‚µ‚ð‰ü—Ç
- (conf/)
- npc_event_rental.txt
- ‘éAƒyƒR‚ð•t‚¯‚éƒXƒNƒŠƒvƒgƒRƒ}ƒ“ƒh‚ð•ÏX
- (map/)
- battle.c
- battle_addmastery(),battle_calc_weapon_attack()‚Å
- ƒyƒRƒyƒR‹R掞‚Ì‘„UŒ‚—͕ⳂðŽÀ‘•
- clif.c
- clif_parse_CartOff‚ðclif_parse_RemoveOption‚É•ÏX
- pc.c/pc.h
- pc_calcstatus()‚ŃJ[ƒgAƒyƒRƒyƒRæ‚è‚É‚æ‚鑬“x•Ï‰»‚ðŒvŽZ
- pc_setoption(),pc_setcart()‰ü—Ç
- pc_setfalcon(),pc_setriding()’ljÁ
- pc.h‚Épc_isfalcon(),pc_isriding()ƒ}ƒNƒ’ljÁ
- script.c
- buildin_setfalcon() ‘é•t‰Á
- buildin_setriding() ƒyƒRƒyƒRæ‚è
-
-----------
-//0276 by nabe
-
-E¸˜BNPCŽÀ‘•
- (conf/)
- npc_town_refine.txt
- ¸˜BNPCƒXƒNƒŠƒvƒgƒtƒ@ƒCƒ‹V‹K’ljÁ
- (map/)
- pc.c/pc.h
- ¸˜B¬Œ÷—¦‚Ì•\percentrefinery[5][10]‚ð’ljÁ
- script.c‚©‚çŒÄ‚΂ê‚éŠÖ”
- pc_percentrefinery() ¸˜B¬Œ÷—¦
- pc_equipitemindex() ‘•”õ•iƒCƒ“ƒfƒbƒNƒX
- ‚ð’ljÁ
- script.c
- buildin_getequipname() ‘•”õ–¼•¶Žš—ñi¸˜Bƒƒjƒ…[—pj
- buildin_getequipisequiped() ‘•”õƒ`ƒFƒbƒN
- buildin_getequipisenableref() ‘•”õ•i¸˜B‰Â”\ƒ`ƒFƒbƒN
- buildin_getequipisidentify() ‘•”õ•iŠÓ’èƒ`ƒFƒbƒN
- buildin_getequiprefinerycnt() ‘•”õ•i¸˜B“x
- buildin_getequipweaponlv() ‘•”õ•i•ŠíLV
- buildin_getequippercentrefinery() ‘•”õ•i¸˜B¬Œ÷—¦
- buildin_successrefitem() ¸˜B¬Œ÷
- buildin_failedrefitem() ¸˜BŽ¸”s
- ‚ð’ljÁ
-
-EƒXƒNƒŠƒvƒg‚ÉWeight,MaxWeightƒpƒ‰ƒ[ƒ^‚ð’ljÁ
- const.txt
- Weight,MaxWeight‚ð’ljÁ
-
-EƒXƒNƒŠƒvƒg‚ł̃Lƒƒƒ‰–¼•\Ž¦•ûŽ®‚ð•ÏX
- (conf/)
- npc_job_merchant.txt/npc_job_thief.txt/npc_town_kafra.txt
- mes "$charaname"; ‚ð mes strcharinfo(0); ‚É•ÏX
- (map/)
- script.c
- buildin_strcharinfo()‚ð’ljÁ
-
-----------
-//0275 by ŒÓ’±—–
-
-EMVP‚ÌŽÀ‘•
- MVP‚Ì”»’è‚É‚Ídmglog‚ðŽg‚Á‚Ä‚Ü‚·B‚·‚È‚í‚¿—^ƒ_ƒ‚¾‚¯‚ªŒvŽZ‘ÎÛ‚Å‚·B
- ”íƒ_ƒ‚Íl—¶‚³‚ê‚Ä‚Ü‚¹‚ñB
- ŒoŒ±’l‚Í–³ðŒ‚Å“ü‚èAŠm—¦‚Å‚³‚ç‚ɃAƒCƒeƒ€‚ª“ü‚è‚Ü‚·B
- ƒAƒCƒeƒ€‚Í•¡”Žè‚É“ü‚邱‚Æ‚à‚ ‚è‚Ü‚·B
-
- clif.c/clif.h
- clif_mvp_effect(),clif_mvp_item(),clif_mvp_exp()’ljÁ
- mob.c
- mob_damage()‚ÉMVPˆ—’ljÁ
-
-EƒXƒLƒ‹‚̒ljÁŽÀ‘•‚ÆC³
- Eƒ}ƒOƒiƒ€ƒuƒŒƒCƒNAƒAƒ[ƒVƒƒƒ[ŽÀ‘•
- E‚«”ò‚΂µŒnƒXƒLƒ‹‚ªˆê•”Žg—p‚³‚ê‚È‚¢ƒoƒOC³
- Eƒ_ƒuƒ‹ƒXƒgƒŒƒCƒtƒBƒ“ƒO‚̃_ƒ[ƒWŒvŽZŽ®C³
- E•ŠíUŒ‚Œn‘®«•t‚«ƒXƒLƒ‹‚Å‘®«‚ª”½‰f‚³‚ê‚È‚¢–â‘èC³
- Eꊎw’èƒXƒLƒ‹‚ªUŒ‚‚µ‚È‚ª‚ç‰r¥‚Å‚«‚½–â‘è‚ðC³
-
- battle.c
- battle_calc_weapon_attack()‚ÌŠY“–ŒÂŠC³•’ljÁ
- skill.c
- skill_castend_damage_id()‚Ɉ—’ljÁ
- skill_use_pos()‚ÉUŒ‚’âŽ~ˆ—’ljÁ
-
-EƒJ[ƒhƒXƒLƒ‹‚ªƒJ[ƒh‚ðŠO‚µ‚Ä‚àŽg—p‰Â”\‚È–â‘è‚ðC³
- pc.c
- pc_calc_skilltree()‚ðC³
-
-EƒAƒCƒeƒ€ƒhƒƒbƒv—¦AexpŠ“¾”{—¦‚È‚Ç‚Ì’²®‹@”\’ljÁ
- battle_athena.cnf‚Å’²®‚Å‚«‚逖ڂª‘‚¦‚Ü‚µ‚½B
- Ú‚µ‚­‚Í‚»‚¿‚ç‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
-
- (conf/)
- battle_athena.cnf
- mvp_hp_rate,item_rate,exp_rate,mvp_item_rate,mvp_exp_rate’ljÁ
- (map/)
- battle.c/battle.h
- ‘‚¦‚½€–Ú‚ð“Ç‚Ýž‚ނ悤‚Ɉ—’ljÁ
- mob.c
- mob_db.txt“Ç‚Ýž‚ÝŽžAƒf[ƒ^‚ð’²®‚·‚鈗’ljÁ
-
-----------
-//0274 by ŒÓ’±—–
-
-EƒXƒLƒ‹‚̒ljÁŽÀ‘•
- ƒXƒLƒbƒhƒgƒ‰ƒbƒvAƒ‰ƒ“ƒhƒ}ƒCƒ“Aƒuƒ‰ƒXƒgƒ}ƒCƒ“AƒNƒŒƒCƒ‚ƒA[ƒgƒ‰ƒbƒvA
- ƒtƒŠ[ƒWƒ“ƒOƒgƒ‰ƒbƒvAƒTƒ“ƒhƒ}ƒ“AƒAƒ“ƒNƒ‹ƒXƒlƒA
-
- ‡–°‚â“€Œ‹‚È‚Ç‚ÌŠm—¦‚Í“K“–‚Å‚·B
- ã©”­“®Žž‚̃GƒtƒFƒNƒg‚ªo‚Ü‚¹‚ñB‚Ä‚¢‚¤‚©o‚µ•û‚ª‚í‚©‚è‚Ü‚¹‚ñB
- ‚í‚©‚él‚Í‹³‚¦‚Ä‚­‚¾‚³‚¢B‚à‚µ‚­‚Í–{ŽI‚Åã©”­“®Žž‚Ì•¡‡‰»Ï‚Ý‚Ì
- ¶ƒpƒPƒbƒgƒf[ƒ^‚Å‚à‚¢‚¢‚Ì‚Å‹³‚¦‚Ä‚­‚¾‚³‚¢B
-
- (db/)
- skill_db.txt
- ‘®«‚ÌC³
- (map/)
- skill.c
- ŠY“–ŒÂŠ
- battle.c/battle.h
- battle_calc_misc_damage()‚ÌŠY“–ŒÂŠ
- battle_stopwalking()’ljÁ
- clif.c/clif.h
- clif_fixpcpos()’ljÁ
- clif_parse_WalkToXY()‚ɃAƒ“ƒNƒ‹‚Å“®‚¯‚È‚­‚·‚鈗’ljÁ
- mob.c
- mob_ai_sub_hard()‚ɃAƒ“ƒNƒ‹‚Å“®‚¯‚È‚­‚·‚鈗’ljÁ
-
-E‘•”õ‚Ȃǂ̃NƒŠƒeƒBƒJƒ‹ƒ{[ƒiƒX‚ª1/10‚É‚È‚Á‚Ä‚¢‚éƒoƒO‚ªC³‚³‚ê‚Ü‚µ‚½
- battle.c
- battle_calc_weapon_attack()‚ɒljÁ•ª‚ðŒvŽZ‚·‚鈗C³
-
-EƒuƒŠƒbƒcƒr[ƒg‚ÌŒvŽZŽ®‚ª‘S‘Rˆá‚¤ƒoƒO‚ªC³‚³‚ê‚Ü‚µ‚½
- battle.c
- battle_calc_attack()‚ÌBF_MISC‚̈’u‚ªŠÔˆá‚Á‚Ä‚¢‚½‚Ì‚ðC³
-
-ESW‚ƃjƒ…[ƒ}‚ª•ŠíUŒ‚‚È‚ç‚Ç‚ñ‚ȃŒƒ“ƒW‚ÌUŒ‚‚Å‚à–h‚¢‚Å‚¢‚½–â‘è‚ðC³
- battle.c
- battle_calc_damage()‚̃Œƒ“ƒW”»’è‚ðC³
-
-EƒI[ƒo[ƒgƒ‰ƒXƒg‚ƃEƒFƒ|ƒ“ƒp[ƒtƒFƒNƒVƒ‡ƒ“‚ªPTƒƒ“ƒo‚É‚à‚©‚©‚é‚悤‚ÉC³B
- Œø‰Ê‚ÍŽg—pŽÒ‚ÆPTƒƒ“ƒo‚ňႢ‚Í‚ ‚è‚Ü‚¹‚ñB
-
- skill.c
- skill_castend_nodamage_id()‚ÌC³B
-
-----------
-//0273 by ŒÓ’±—–
-
-EƒLƒƒƒ‰ƒNƒ^[‚ªÁŽ¸‚µ‚½‚茶‰e‚ªo‚é–â‘肪C³‚³‚ê‚Ü‚µ‚½
- E‚«”ò‚΂µƒXƒLƒ‹‚ðŽó‚¯‚é‚Æ”­¶‚µ‚Ä‚¢‚½
- EŽÎ‚߈ȊO‚Ì•às‚Å”­¶‚µ‚Ä‚¢‚½
-
- map.c
- map_foreachinmovearea()‚ÌC³B
- skill.c
- skill_blown()‚É•\Ž¦”͈ÍXVˆ—‚ð’ljÁB
- mob.c
- mob_walk()‚Å•à‚«I‚í‚Á‚½‚Æ‚«‚Ɉʒu‚ðÄ‘—M‚·‚é‚悤‚ÉC³
- pc.c
- pc_walk()‚Å•à‚«I‚í‚Á‚½‚Æ‚«‚Ɉʒu‚ðÄ‘—M‚·‚é‚悤‚ÉC³
-
-EƒXƒLƒ‹‚̒ljÁŽÀ‘•‚ÆC³
- ƒtƒ@ƒCƒ„[ƒEƒH[ƒ‹Aƒtƒ@ƒCƒ„[ƒsƒ‰[‚ÌŽÀ‘•
- ƒTƒ“ƒNƒ`ƒ…ƒAƒŠ‚ł̃mƒbƒNƒoƒbƒN•ûŒü‚ðC³
-
- (db/)
- skill_db.txt
- ƒtƒ@ƒCƒ„[ƒsƒ‰[AƒuƒŠƒbƒcƒr[ƒg‚̃qƒbƒg”C³
- (map/)
- skill.c
- skill_blown()‚É‘ÎÛ‚ÌŒü‚«‚É‚æ‚éƒmƒbƒNƒoƒbƒNˆ—’ljÁ
- ‚»‚Ì‘¼•K—v‚ÈêŠC³
- mob.c
- mob_walk(),mob_attack()‚ÅŒü‚«‚ð•Û‘¶
- pc.c
- pc_walk(),pc_attck()‚ÅŒü‚«‚ð•Û‘¶
- map.c
- map_calc_dir()’ljÁB‘Š‘ΓI‚È•ûŒü‚ð‹‚ß‚é
-
-
-EƒNƒŠƒeƒBƒJƒ‹‘‰Á‘•”õ‚ªí“¬Žž‚ÉŒvŽZ‚³‚ê‚Ä‚È‚¢ƒoƒO‚ªC³‚³‚ê‚Ü‚µ‚½
- battle.c
- battle_calc_weapon_attack()‚ɒljÁ•ª‚ðŒvŽZ‚·‚鈗’ljÁ
-
-
-E–hŒäƒ†ƒjƒbƒgiSW/ƒjƒ…[ƒ}j‚ª“G‚ɉe‹¿‚ð‹y‚Ú‚·‚©‚Ç‚¤‚©‚ð
- battle_athena.cnf‚ŧŒä‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½
- ƒfƒtƒHƒ‹ƒg‚Íu‹y‚Ú‚³‚È‚¢v‚Å‚·B
-
- (conf/)
- battle_athena.cnf
- €–Údefunit_not_enemy‚ð’ljÁ
- (map/)
- battle.c/battle.h
- struct Battle_Config ‚É defnotenemyƒƒ“ƒo’ljÁB
- battle_read_config()‚̈—‚ðC³B
- skill.c
- skill_unitsetting()‚ÅSW/ƒjƒ…[ƒ}‚̈—‚ðC³
-
-EƒtƒFƒ“ƒJ[ƒh‘•”õŽžAŽ€‚ñ‚Å‚à‰r¥‚ª‘±‚­ƒoƒO‚ðC³
- i‰r¥I—¹‘O‚É•œŠˆ‚·‚ê‚Ζ‚–@‚ª”­“®‚·‚é–â‘è‚àC³‚É‚È‚è‚Ü‚·j
-
- pc.c
- pc_damage()‚ÅŽ€–SŽžskill_castcancel()‚ðŒÄ‚Ԃ悤‚ÉC³
-
-E“G–¡•û”»’舗‚ɃoƒO‚ª‚ ‚Á‚½‚Ì‚ðC³
- battle.c
- battle_check_target()‚ÌC³
-
-----------
-//0272 by ŒÓ’±—–
-
-EƒXƒLƒ‹‚̒ljÁŽÀ‘•‚ÆC³
- EƒZƒCƒtƒeƒBƒEƒH[ƒ‹Aƒjƒ…[ƒ}‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½B
- Eƒ[ƒhƒIƒuƒo[ƒ~ƒŠƒIƒ“”­“®’†‚ÉŒø‰Ê”͈͊O‚©‚ç”͈͓à‚É“ü‚Á‚Ä‚«‚½‚Æ‚«A
- “G–¡•û‚Ì‹æ•Ê–³‚­UŒ‚‚ª“–‚½‚é–â‘肪C³‚³‚ê‚Ü‚µ‚½B
- EƒTƒ“ƒNƒ`ƒ…ƒAƒŠ‚ÌŽË’ö‚ªC³‚³‚ê‚Ü‚µ‚½B
- E”͈͖‚–@‚Å“|‚µ‚½“G‚ªHP0‚ÅŽc‚éꇂª‚ ‚é–â‘肪C³‚³‚ê‚Ü‚µ‚½B
-
- (db/)
- skill_db.txt
- ƒZƒCƒtƒeƒBƒEƒH[ƒ‹‚ƃTƒ“ƒNƒ`ƒ…ƒAƒŠ‚ÌŽË’ö‚ð8‚É•ÏX
- (map/)
- skill.c
- skill_unit_onplace(),~ondelete(),~onout()‚È‚Ç‚ÉA
- ƒZƒCƒtƒeƒBƒEƒH[ƒ‹‚ƃjƒ…[ƒ}‚̈—’ljÁB
- skill_unit_move()‚Ƀ^[ƒQƒbƒg‚Ì“G–¡•û”»’è‚ð’ljÁB
- skill_unit_timer_onplace(),~ondelete()‚Ƀ†ƒjƒbƒg¶‘¶”»’è‚ð’ljÁ.
- skill_clear_unitgroup()’ljÁBƒ†ƒjƒbƒgƒOƒ‹[ƒv‚Ì‘Síœ‚ð‚·‚éB
- battle.c
- battle_calc_damage()‚ɃZƒCƒtƒeƒBƒEƒH[ƒ‹‚ƃjƒ…[ƒ}‚̈—’ljÁB
- map_foreachinarea()‚È‚ÇC³
- map.c
- map_quit()‚Åskill_clear_unitgroup()‚ðŒÄ‚Ԃ悤‚ÉB
-
-EƒXƒLƒ‹‚Ì‚«”ò‚΂µˆ—‚ðŽÀ‘•
- ƒ†ƒsƒeƒ‹ƒTƒ“ƒ_[AƒTƒ“ƒNƒ`ƒ…ƒAƒŠAƒXƒsƒAƒXƒ^ƒuA
- ƒ{[ƒŠƒ“ƒOƒoƒbƒVƒ…Aƒ`ƒƒ[ƒWƒAƒ[‚Ì‚«”ò‚΂µˆ—ŽÀ‘•
-
- path.c/map.h
- path_blownpos()’ljÁ
- battle.c/battle.h
- struct Damage‚Éblewcountƒƒ“ƒo’ljÁ
- battle_calc_*_damage()‚Åblewcount‚ðƒZƒbƒg‚·‚é‚悤‚ÉB
- skill.c/skill.h
- skill_blown()’ljÁB‚«”ò‚΂µˆ—B
- skill_attack()‚Åskill_blown()‚ðŒÄ‚Ԃ悤‚ÉB
- skill_attack()‚Ìflag‚Ì‚«”ò‚΂µƒrƒbƒg‚Í–¢Žg—p‚ÉB
-
-E•às’†‚̃‚ƒ“ƒXƒ^[‚ÉUŒ‚‚µ‚½‚Æ‚«Aƒ‚ƒ“ƒXƒ^[‚ɃfƒBƒŒƒC‚ª“ü‚é‚悤‚É‚È‚è‚Ü‚µ‚½
- iUŒ‚‚̃‚[ƒVƒ‡ƒ“‚Ì’x‰„‚ðl‚¦‚Ä‚È‚¢‚Ì‚Å‚ ‚ñ‚Ü‚èˆÓ–¡‚ª‚È‚¢‚©‚àHj
-
- (map/)
- mob.c/mob.h
- state‚ÉMS_DELAY‚ð’ljÁB
- mob_damage(),mob_timer()‚È‚Ç‚ÌC³
-
-E•às’†‚̃‚ƒ“ƒXƒ^[‚ÉUŒ‚‚µ‚½‚Æ‚«AˆÊ’u‚ª‚¸‚ê‚é–â‘è‚̉ž‹}ˆ’u
- i‚Ü‚¾ˆÊ’u‚Í‚¸‚ê‚é‚悤‚Å‚·j
-
- clif.c/clif.h
- clif_fixmobpos()‚ð’ljÁ
- mob.c
- mob_attack()‚Åclif_fixmobpos()‚ðŒÄ‚Ԃ悤‚ÉB
-
-E‚»‚Ì‘¼C³
- pc.c
- pc_stop_walking()‚Åpath_len‚ð‰Šú‰»‚·‚é‚悤‚ÉB
-
-----------
-//0271 by ‚ê‚ 
-
-EPT‚ÉŠÖ‚µ‚Ä­‚µ‚¾‚¯C³
- Œö•½‚É‚µ‚Ä‚©‚çƒLƒƒƒ‰‚ð‰Á“ü‚³‚¹‚é‚ÆŒö•½‚ª‰ðœ‚³‚ê‚È‚¢ƒoƒO‚ðC³
-
-----------
-//0270 by ŒÓ’±—–
-
-EƒXƒLƒ‹‚̒ljÁŽÀ‘•‚ÆC³
- ƒ[ƒhƒIƒuƒo[ƒ~ƒŠƒIƒ“AƒTƒ“ƒNƒ`ƒ…ƒAƒŠAƒ}ƒOƒkƒXƒGƒNƒ\ƒVƒYƒ€
-
- (db/)
- skill_db.txt
- ƒ}ƒOƒkƒX‚̃qƒbƒg”A‘®«’²®
- ƒTƒ“ƒNƒ`ƒ…ƒAƒŠ‚Ì‘®«’²®
- (map/)
- map.h
- struct map_session_data‚ÌC³
- clif.c/clif.h
- clif_skill_setunit(),clif_skill_delunit()A
- clif_getareachar_skillunit(),clif_clearchar_skillunit()’ljÁ
- clif_pcoutsight(),clif_pcinsight(),clif_getareachar()C³
- skill.c/skill.h
- –Y‚ê‚é‚Ù‚Ç‘½”•ÏXBŽå‚ɃXƒLƒ‹ƒ†ƒjƒbƒgŠÖ˜A•”•ªB
- pc.c
- pc_authok()‚Åskillunit,skillunittick‚ð‰Šú‰»‚·‚é‚悤‚ÉB
- pc_walk()‚Åskill_unit_move()‚ðŒÄ‚Ԃ悤‚ÉB
- mob.c
- mob_spwan()‚Åskillunittick‚ð‰Šú‰»‚·‚é‚悤‚ÉB
- mob_walk()‚Åskill_unit_move()‚ðŒÄ‚Ԃ悤‚ÉB
- battle.c/battle.h
- battle_calc_magic_attack()C³
- battle_check_target()C³
- map.c
- map_foreachobject()‚È‚ÇC³
-
-E‚±‚Ü‚©‚¢ƒoƒOC³‚È‚Ç
- Emob‚ª‰ñ•œ‚µ‚È‚¢–â‘èC³
-
- battle.c
- battle_damage()C³
-
-----------
-//0266 by ŒÓ’±—–
-
-E–‚–@ŒvŽZŽ®‚ÌC³
- –‚–@”{—¦‚ðƒ_ƒ[ƒW‚ÉŠ|‚¯‚Ä‚¢‚½‚Ì‚ðMATK‚É‚©‚¯‚é‚悤‚É‚µ‚Ü‚µ‚½B
- c‚±‚Á‚¿‚ª³‚µ‚¢‚Æ‚µ‚Ä‚¢‚¢‚Ì‚©‚ÈHˆá‚¤‚Ȃ狳‚¦‚Ä‚­‚¾‚³‚¢B
-
- battle.c
- battle_calc_magic_attack()‚ÌC³
-
-EƒXƒLƒ‹‚̒ljÁŽÀ‘•
- ƒTƒCƒgAƒ‹ƒAƒtAƒ[ƒhƒIƒuƒ”ƒ@[ƒ~ƒŠƒIƒ“
-
- ƒ[ƒhƒIƒuƒo[ƒ~ƒŠƒIƒ“‚Í‚R‰ñ‚Ì”»’莞‚ɉr¥‰¹‚ª–‚è‚Ü‚·cB
- clif_skill_damage()‚Ìtype‚ðFX•Ï‚¦‚Ä‚Ý‚Ü‚µ‚½‚ª‚Ç‚¤‚à‚¤‚Ü‚­‚¢‚«‚Ü‚¹‚ñB
- ’¼‚¹‚él‚Í’¼‚µ‚Ä‚­‚ê‚é‚Æ‚¤‚ꂵ‚¢‚Å‚·B
- i‚¤[‚ñA‚Ђå‚Á‚Æ‚µ‚½‚ç–{—ˆ‚̓Oƒ‰ƒtƒBƒbƒN‚Ì‚È‚¢ƒXƒLƒ‹ƒ†ƒjƒbƒg‚ð
- Ý’u‚µ‚ÄA‚»‚̃†ƒjƒbƒg‚ÌID‚Ń_ƒ[ƒW‚ð—^‚¦‚é‚Ì‚©‚àHHj
-
- (db/)
- skill_db.txt
- ƒ[ƒhƒIƒuƒo[ƒ~ƒŠƒIƒ“‚̃qƒbƒg”‚ð‚R‚©‚ç10‚É•ÏXB
- (map/)
- skill.c
- skill_status_change_timer_sub()’ljÁB
- skill_status_change_*()‚Ɉ—’ljÁB
-
-Eblock‚̃ƒ‚ƒŠ‰ð•ú‚̈À‘S«‚ÌŒüã
- map_foreachinarea,party_foreachsamemap‚ʼnñ‚Á‚Ä‚¢‚é‚Æ‚«‚É
- block‚ðƒ`ƒFƒCƒ“‚©‚ç휂·‚é‚ÆA‚¤‚Ü‚­‰ñ‚ç‚È‚¢‰Â”\«‚ª‚ ‚é–â‘èC³B
- ‚³‚ç‚ÉAblock‚ðƒƒ‚ƒŠ‚©‚ç‰ð•ú‚·‚é‚Ɗ댯‚È–â‘è‚àC³B
-
- Eforeach“à‚ÅŠÖ”‚ðŒÄ‚Ô‘O‚Éblock‚ªƒ`ƒFƒCƒ“‚©‚çŠO‚ê‚Ä‚È‚¢‚©ƒ`ƒFƒbƒNB
- Eforeach‚É“ü‚Á‚½‚Æ‚«‚ɃƒbƒN‚µ‚ăƒ‚ƒŠ‚©‚ç‰ð•ú‚³‚ê‚È‚¢‚悤‚É‚·‚éB
- ‚±‚ê‚̓†[ƒU[‚ªfree‚¶‚á‚È‚­map_freeblock‚É‚æ‚Á‚ĉð•ú‚·‚é‚悤‚É
- ƒvƒƒOƒ‰ƒ€‚·‚é•K—v‚ª‚ ‚éBiƒ‹[ƒv‚©‚çŒÄ‚΂ê‚é‰Â”\«‚Ì‚ ‚éŠÖ”‚ðì‚é
- ꇂ̂±‚Æ‚ÅA•’Ê‚Ífree‚Å‚à‚¢‚¿‚¨‚¤“®‚­Bj
- Emap_foreachinmovearea‚ɂ‚¢‚Ă͉ü—Ç‚µ‚Ä‚¢‚È‚¢‚ªA
- ‚±‚̃‹[ƒv‚Åblock‚ð휂·‚邱‚Æ‚Í‚ ‚肦‚È‚¢‹C‚ª‚·‚é‚Ì‚Å‚¢‚¢‚Æ‚·‚éB
-
- ‚±‚ê‚Í¡Œã‚ðŒ©‰z‚µ‚½‰ü—Ç‚Å‚ ‚Á‚ÄAŒ»Ý‚Ì•sˆÀ’肳‚𒼂·‚à‚Ì‚Å‚Í‚È‚¢B
- iŒ»Ý‚Íforeach“à‚Ńƒ‚ƒŠ‚ð‰ð•ú‚µ‚Ä‚¢‚È‚¢c‚Í‚¸‚È‚Ì‚ÅB
- ‚½‚¾AƒXƒLƒ‹ƒ†ƒjƒbƒg‚ȂLjꎞƒIƒuƒWƒFƒNƒg‚𑽗p‚µŽn‚ß‚é‚ÆŒø‰Ê‚ª‚ ‚éj
-
- map.c
- map_freeblock(),map_freeblock_lock(),~_unlock()’ljÁB
- map_delobject()‚Ìfree()‚ðmap_freeblock()‚É’uŠ·B
- map_foreachinarea‚ŃƒbƒN‚ƈÀ‘S«ƒ`ƒFƒbƒNB
- party.c
- party_foreachsamemap()‚ŃƒbƒN‚ƈÀ‘S«ƒ`ƒFƒbƒN
-
-
-EƒXƒLƒ‹ƒ†ƒjƒbƒg‹@\ŽÀ‘•
- Ý’uŒn‚̃XƒLƒ‹‚Ì‚½‚ß‚Ì‹@\ŽÀ‘•BŽÀۂ̃XƒLƒ‹‚ÌŽÀ‘•‚Í‚Ü‚¾‚Å‚·B
-
- skill.c
- ‚È‚ñ‚©‚à‚¤FX’ljÁ‚µ‚Ü‚µ‚½B
- map.c
- do_init()‚Ådo_skill_init()‚ðŒÄ‚Ԃ悤‚ÉB
- map.h
- struct skill_unit,skill_unit_group‚ȂǒljÁB
- map_session_data‚Ì‘‚«Š·‚¦‚È‚ÇB
-
-E‚»‚Ì‘¼×‚©‚¢‚Æ‚±‚ë‚ðC³‚µ‚½‚ÆŽv‚¤‚¯‚Ç–Y‚ê‚Ü‚µ‚½B
-
-----------
-//0264 by nabe
-
-E$charaname‚ð’‚éNPC‚Ƙb‚µ‚½ŽžAmapŽI‚ª—Ž‚¿‚邱‚Æ‚ª‚ ‚éƒoƒO‚ðC³‚µ‚Ü‚µ‚½B
- script.c
- replacestr()‚ª‚¨‚©‚µ‚©‚Á‚½‚Ì‚ðŽè’¼‚µ‚µ‚Ü‚µ‚½B
-
-----------
-//0263 by nabe
-
-E˜I“XŠJÝ’†‚ɃJ[ƒgƒAƒCƒeƒ€‚ðo‚µ“ü‚ê‚Å‚«‚È‚¢‚悤C³
- pc.c
- pc_putitemtocart(),pc_getitemfromcart()‚ÉA˜I“X”»’è‚ð’ljÁ
-
-E˜I“XƒAƒCƒeƒ€w“ü‚̃`ƒFƒbƒN‚ð’ljÁ
- vending.c
- vending_purchasereq()‚Å”X‚ÌðŒ”»’è‚ð’ljÁ
-
-----------
-//0261 by ŒÓ’±—–
-
-EŠg‘勾AƒCƒOƒhƒ‰ƒVƒ‹‚Ì—t‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½
- ƒXƒNƒŠƒvƒg‚ÉitemskillƒRƒ}ƒ“ƒhì¬BˆêŽž“I‚ɃXƒLƒ‹‚ªŽg—p‚Å‚«‚Ü‚·B
-
- (map/)
- script.c
- buildin_itemskill()‚̒ljÁ‚È‚ÇB
- skill.c
- ƒAƒCƒeƒ€ƒXƒLƒ‹‚È‚çSP‚È‚Ç‚ðŒŸ¸•Á”‚È‚¢‚悤‚ÉC³
- clif.c/clif.h
- clif_item_skill()‚̒ljÁB
- (db/)
- item_db.txt/item_db2.txt
- ƒXƒLƒ‹Žg—pƒAƒCƒeƒ€‚̃XƒNƒŠƒvƒgC³
-
-Eƒp[ƒeƒBƒXƒLƒ‹‚ÌŽÀ‘•
- ƒAƒ“ƒ[ƒ‹ƒXAƒ}ƒOƒjƒtƒBƒJ[ƒgAƒOƒƒŠƒAAƒAƒhƒŒƒiƒŠƒ“ƒ‰ƒbƒVƒ…‚ª
- ‰æ–Ê“à‚̃p[ƒeƒB‘Sˆõ‚ÉŒø‰Ê‚ð‹y‚Ú‚·‚悤‚É‚È‚è‚Ü‚µ‚½B
-
- skill.c
- skill_castend_nodamage_id()‚ÌŠY“–ŒÂŠ‚ÌC³
- party.c
- party_foreachsamemap()‚ÌC³
-
-EƒXƒLƒ‹ŠÖŒW‚ÌC³
- ƒLƒŠƒGƒGƒŒƒCƒ\ƒ“‚ª‘¦Žž”­“®‚É‚È‚Á‚Ä‚¢‚é‚Ì‚ðC³B
- ƒXƒg[ƒ“ƒJ[ƒX‚ŃGƒtƒFƒNƒg‚ª‘¶Ý‚µ‚È‚¢ƒoƒOC³B
-
- (db/)
- skill_db.txt
- ƒLƒŠƒGƒGƒŒƒCƒ\ƒCƒ“C³
- (map/)
- skill.c/skill.h
- skill_check_condition()’ljÁBƒXƒLƒ‹Žg—pðŒŒŸ¸‚̈ê–{‰»B
- skill_castend_nodamage_id()‚ŃXƒg[ƒ“ƒJ[ƒXC³
-
-EƒXƒNƒŠƒvƒg‚̃R[ƒh‚ð®—
- get_val()‚Åconst.txt‚Ì’è”‚ðŠ“¾‚Å‚«‚é‚悤‚ÉC³B
-
- (map/)
- script.c
- get_val()‚ÌC³iconst.txt‚Ìtype==0‚Ì’l‚ªŠ“¾‰Â”\‚Éj
- bonus(),bonus2()‚È‚Ç‚ÌC³B
- (db/)
- const.txt
- type=1‚Å‚ ‚é•K—v‚ª–³‚¢‚à‚Ì‚ð0‚ÉB
- item_db.txt/item_db.txt
- const.txt‚Ì•ÏX‚É”º‚¤C³B
-
-----------
-//0260 by ŒÓ’±—–
-
-E퓬ŠÖŒW‚Ìݒ肪ƒtƒ@ƒCƒ‹‚É‘‚¯‚é‚É‚È‚è‚Ü‚µ‚½
- mapŽI‚Ì‘æ2ˆø”‚Ƀtƒ@ƒCƒ‹–¼‚ªÝ’肳‚ê‚Ä‚¢‚é‚ÆA‚»‚ê‚ðŽg‚¢A
- ݒ肳‚ê‚Ä‚È‚¢ê‡‚Í "conf/battle_athena.cnf"‚ðŽg‚¢‚Ü‚·B
-
- ‚ ‚ÆAˆê‰ž”͈ÍUŒ‚ƒXƒLƒ‹‚ɂ‚¢‚Äà–¾B
- ŽI‚ªí‚ÉPVP‚Éݒ肳‚ê‚Ä‚¢‚éê‡Aƒp[ƒeƒBƒƒ“ƒo‚¶‚á‚È‚¢PC‚É‚à”͈ÍUŒ‚‚ª
- ‚ ‚½‚è‚Ü‚·BŒ™‚Èꇂ̓p[ƒeƒB‚ð‘g‚Þ‚©Aí‚ÉPVP‚ðoff‚É‚µ‚ĉº‚³‚¢B
- í‚ÉPVP‚ªoff‚Å‚àA@pvp‚Åpvpƒtƒ‰ƒO‚ð“ü‚ꂽl‚ÌŠÔ‚Å‚ÍUŒ‚‚ª“–‚½‚è‚Ü‚·B
- ‚½‚¾‚µAˆê“xpvp‚ðon‚É‚·‚é‚ÆAƒŠƒƒO‚·‚é‚Ü‚Åon‚Ì‚Ü‚Ü‚È‚Ì‚Å’ˆÓB
-
- (conf/)
- battle_athena.cnf
- ’†‚Éà–¾‘‚¢‚Ä‚é‚Ì‚ÅŠeŽ©D‚«‚Ȃ悤‚É‘‚«Š·‚¦‚Ä‚­‚¾‚³‚¢B
-
- (map/)
- battle.c/battle.h
- struct Battle_Config‚Ì’è‹`B
- battle_config_read()‚ȂǒljÁB
- skill.c
- CASTFIX,DELAYFIX‚Ì”pŽ~‚ÆBattle_Config‚É‚æ‚éC³‚̒ljÁB
- atcommand.c
- @pvpƒRƒ}ƒ“ƒh‚Åpvpƒtƒ‰ƒO‚ðƒZƒbƒg‚·‚é‚悤‚ÉB
- iŽIÝ’è‚Ìí‚ÉPVP‚ªoff‚ÌŽžA—¼l‚ªpvp‚ðon‚É‚µ‚Ä‚½‚ç퓬‰Â”\j
- map.c/map.h
- struct map_session_data‚Épvp_flag‚ð’ljÁ
- do_init()‚Åbattle_config_read()‚ð“ǂނ悤‚ÉB
-
-E퓬ŠÖŒW‚̃R[ƒh‚ª­‚µ®—‚³‚ê‚Ü‚µ‚½
- battle.c/battle.h
- battle_weapon_attack()’ljÁB
- battle_calc_weapon_attack()‚̈ø”•ÏX
- battle_calc_attack()‚ð’ljÁ‚µ‚Äbattle_calc_*_attack()‚ðˆê–{‰»B
- skill.c/skill.h
- skill_weapon_attack(),~_magic_~(),~_misc_~()‚Ì”pŽ~A
- skill_attack()‚Ɉê–{‰»B
- pc.c/mob.c
- UŒ‚ˆ—‚ðbattle_weapon_attack()‚Ɉê–{‰»B
-
-EƒAƒCƒeƒ€ŠÓ’èƒXƒLƒ‹‚ðŽÀ‘•
- ¤l‚̃XƒLƒ‹‚Ì•û‚Å‚·B’ŽŠá‹¾‚Í‚Ü‚¾‚Å‚·B
-
- skill.c
- ƒXƒLƒ‹ˆ—’ljÁ
- pc.c/pc.h
- pc_item_identify()’ljÁ
- clif.c/clif.h
- clif_item_identify_list(),clif_item_identified()’ljÁ
- clif_parse_ItemIdentify()’ljÁ
-
-EƒXƒLƒ‹ƒf[ƒ^ƒx[ƒX‚̃Rƒƒ“ƒgC³
- (db/)
- skill_db.txt
- ¤l‚̃XƒLƒ‹‚̃Rƒƒ“ƒg‚ª‚¸‚ê‚Ä‚¢‚½‚Ì‚ðC³
-
-----------
-//0259 by ‚ê‚ 
-Emob_db.txt‚ÌC³
- ‹T“‡ƒ‚ƒ“ƒXƒ^[‚âBOSS‚̃Xƒe[ƒ^ƒX’²®
- ‹T“‡ƒ‚ƒ“ƒX‚É“K“–‚Ƀhƒƒbƒv‚ð•t‚¯‚Ü‚µ‚½B
- –{ŽI‚ƈقȂ镨‚ð—Ž‚Æ‚·ê‡‚à‚ ‚è‚Ü‚·B
-
-----------
-//0258 by ŒÓ’±—–
-
-Eƒp[ƒeƒB‚ňê“xŒö•½‚É‚µ‚½‚çŠeŽ©Š“¾‚É–ß‚¹‚È‚¢ƒoƒOC³
- (char/)
- int_party.c
- mapif_parse_PartyChangeOption()‚Ì”»’èC³
-
-EƒXƒLƒ‹‚̒ljÁŽÀ‘•iŽå‚ɔ͈ÍUŒ‚Œnj
- ƒiƒp[ƒ€ƒr[ƒgi•ªŽU‘ΉžjAƒtƒ@ƒCƒ„[ƒ{[ƒ‹A
- ƒTƒ“ƒ_[ƒXƒg[ƒ€Aƒwƒuƒ“ƒYƒhƒ‰ƒCƒuA
- ƒuƒŠƒbƒcƒr[ƒgiŽ©“®‘éž‚ÝjAƒXƒ`[ƒ‹ƒNƒƒE
- ƒXƒLƒ“ƒeƒ“ƒpƒŠƒ“ƒO
-
- (db/)
- skill_db.txt/skill_tree.txt
- ˆê•”C³
- (map/)
- battle.c/battle.h
- battle_check_target()‚ð’ljÁB‘ÎÛ‚É‚È‚é‚©‚ðŒŸ“¢‚·‚éB
- battle_calc_magic_damage()‚̈ø”•ÏXBƒ_ƒ[ƒW•ªŽUˆ—’ljÁB
- battle_calc_misc_damage()’ljÁB
- battle_calc_weapon_damage()C³B
- clif.c/clif.h
- clif_skill_damage(),clif_skill_damage2()‚̈ø”•ÏXB
- clif_skill_poseffect()’ljÁB
- skill.c/skill.h
- skill_weapon_attack(),skill_magic_attack()‚É”÷–­‚Ɉ—‚ð“Z‚ß‚½.
- skill_area_sub()’ljÁB”͈̓XƒLƒ‹—pB
- skill_area_sub_count()’ljÁBskill_area_sub()—pA“GƒJƒEƒ“ƒgB
- skill_castend_damage_id()C³Bˆø”‚ƈ—‚ð’ljÁB
- skill_castend_nodamage_id()C³Bˆø”‚ƈ—‚ð’ljÁB
- skill_misc_attack()’ljÁB
- skill_additional_effect()C³iŽ©“®‘éj
- skill_castend_pos()C³B
- skill_castend_pos2()’ljÁB
-
-E‹|‚ÅUŒ‚‚µ‚½‚Æ‚«ŒvŽZ‚ÉDEX‚Å‚È‚­STR‚ªŽg‚í‚ê‚é–â‘è‚ðC³B
- battle.c
- battle_calc_weapon_damage()C³B
-
-----------
-//0257 by ŒÓ’±—–
-
-Eitem_db.txt‚ÌE‹Æƒtƒ‰ƒO‚ÆAƒJ[ƒh‚Ì‘•”õŒÂŠƒtƒ‰ƒO‚ðC³
- ‘•”õ•i‚ÍI-Athena‚̃f[ƒ^‚ðŽQl‚É‚µ‚Ä‹@ŠB“I‚ɃRƒ“ƒo[ƒg‚³‚¹‚Ü‚µ‚½B
- I-Athena‘¤‚É‚È‚¢‘•”õ•i‚ÍA‚ ‚«‚ç‚©‚É•Ï‚È‚Ì‚ÍC³‚µ‚Ü‚µ‚½‚ªA
- ’m‚ç‚È‚¢‚à‚Ì‚ª‘½‚·‚¬‚ÄA‚Ù‚Æ‚ñ‚Ç•ú’u‚Å‚·B
- ƒJ[ƒh‚ÍA•Ší—pƒJ[ƒh‚Ì‘•”õŒÂŠ‚ª0‚É‚È‚Á‚Ä‚é‚Ì‚ð2(¶Žè)‚ÉC³B
- —¼Žè•Ší‚Ìꇂ͕ʂɔ»’肵‚Ä‚é‚Ì‚Å—¼Žè•Ší‚à–â‘è‚È‚¢‚Í‚¸B
-
- (db/)
- item_db.txt/item_db2.txt
- ŠY“–ŒÂŠC³
-
-EƒJ[ƒh’ljÁŽÀ‘•
- ƒXƒ^ƒ“‚Ȃǂ̒ljÁŒø‰ÊA‚»‚ê‚ç‚Ö‚Ì‘Ï«Œn“AƒI[ƒNƒq[ƒ[ƒJ[ƒhŽÀ‘•
-
- (db/)
- item_db.txt/item_db2.txt
- ƒXƒNƒŠƒvƒg‚ÌC³
- (map/)
- map.h
- struct map_session_data‚Éaddeff‚Ȃǂ̃ƒ“ƒo‚ð’ljÁ
- pc.c
- pc_calcstatus()Apc_bonus2()‚ÌC³
- pc_attack()‚Åskill_additional_effct()‚ðŒÄ‚Ԃ悤‚ÉB
- skill.c/skill.h
- skill_additional_effect()‚ŃJ[ƒh‚É‚æ‚é”»’è’ljÁ
- skill_status_change_start()‚Å‘Ï«‚ð•t‚¯‚½B
- battle.c
- battle_calc_weapon_attack()‚ŃI[ƒNƒq[ƒ[ƒJ[ƒh
- iƒNƒŠƒeƒBƒJƒ‹‘Ï«j‚̈—‚ð’ljÁ
-
-E‰ñ”ð”»’è‚ÌC³
- UŒ‚ŽÒ‚ªPC‚Ìê‡AÅ‘å–½’†—¦‚X‚T“§ŒÀ‚ð‚È‚µ‚É‚µ‚Ü‚µ‚½B
- battle.c
- battle_calc_weapon_attack()‚ðC³
-
-
-EŠ®‘S‰ñ”ð‚ðŽÀ‘•
- ‚Ö‚ñ‚Ä‚±‚Ȉ—‚µ‚Ä‚Ü‚·•ŒvŽZŽ®“K“–‚Å‚·B
-
- battle.c
- battle_calc_weapon_attack()‚Ɉ—’ljÁB
-
-E‘qŒÉ‚ðŠJ‚¢‚½‚܂܃ƒOƒAƒEƒg‚µ‚½‚Æ‚«mapŽI“à‚Å‚ÍŠJ‚«‚Á‚Ï‚È‚µ‚É‚È‚Á‚Ä‚é–â‘è‚ðC³
- storage.c
- storage_storage_quitsave()‚ðC³
-
-E@item,@monster,@produce‚Å–¼‘OŽw’è‚Å‚«‚é‚悤‚É•ÏX
- ‰pŒê–¼A“ú–{Œê–¼‚Ç‚¿‚ç‚Å‚àOKB‰pŒê‚Ìꇂ͑啶Žš¬•¶Žš‹æ•Ê‚µ‚Ü‚¹‚ñB
-
- atcommand.c
- ŠY“–ŒÂŠC³
- itemdb.c/itemdb.h
- itemdb_searchname(),itemdb_searchname_sub()’ljÁ
- mob.c/mob.h
- mobdb_searchname()’ljÁ
-
-E@refine‚Åã‚°‚é”’l‚ðŽw’è‚Å‚«‚é‚悤‚É•ÏX
- atcommand.c
- ŠY“–ŒÂŠC³
-
-E@produce‚É‚æ‚黑¢Žž‚̃GƒtƒFƒNƒg‚𳂵‚¢‚à‚Ì‚ÉC³
- clif.c/clif.h
- clif_produceeffect()’ljÁ
- atcommand.c
- ŠY“–ŒÂŠC³
-
-E˜I“XƒXƒLƒ‹Žg—pŽž‚̈—‚ð­‚µC³
- skill.c
- skill_castend_id()‚Å‚È‚­Askill_castend_nodamage_id()‚Å
- ˜I“XŠJÝ‚ðŒÄ‚Ԃ悤‚É‚µ‚½B
-
-Estricmp‚Ì•Ï‚í‚è‚Éstrcasecmp‚ðŽg‚¤‚悤‚É‚µ‚½
- i_WIN32‚©__EMX__‚ª’è‹`‚³‚ê‚Ä‚¢‚é‚Æstricmp‚ðŽg‚¢‚Ü‚·j
-
- (char/)
- int_party.c
- (map/)
- itemdb.c/mob.c
- ƒ}ƒNƒ’è‹`‚ÌC³‚È‚Ç
-
-EƒXƒLƒ‹‚ð­‚µC³
- ƒOƒŠƒ€ƒgƒD[ƒX‚ªƒnƒCƒfƒBƒ“ƒO‚ÅŽg‚¦‚È‚¢–â‘èC³
- •ŠíŒ¤‹†‚Ì–½’†C³‚ðŽÀ‘•
-
- skill.c
- skill_use_id()‚ÌC³
- pc.c
- pc_calcstatus()‚Å•ŠíŒ¤‹†‚É]‚Á‚Ä–½’†C³
-
-----------
-//0256 by nabe
-
-E˜I“XƒAƒCƒeƒ€w“ü‚̃oƒOC³
- clif.c
- clif_vendinglist()‚Å”„‚è؂ꂽƒAƒCƒeƒ€‚Í•\Ž¦‚µ‚È‚¢‚悤‚É
-
-----------
-//0255 by nabe
-
-E˜I“XƒAƒCƒeƒ€w“ü‚̃oƒOC³
- vending.c
- vending_purchasereq()‚Åzeny,weight•”•ªC³
-
-----------
-//0254 by nabe
-
-E˜I“X‚ðŽÀ‘•
- vending.c/vending.h
- V‹K’ljÁB˜I“XƒƒCƒ“ˆ—
- skill.c
- skill_castend_id()‚ɘI“XŠJ݃XƒLƒ‹ˆ—‚ð’ljÁ
- clif.h/clif.h
- ˜I“XŠÖ˜AƒpƒPƒbƒgˆ—‚ð’ljÁ
- map.h
- struct map_session_data‚ÉA
- int vender_id;
- int vend_num;
- char message[80];
- struct vending vending[12];
- ‚ð’ljÁ
-
-----------
-//0253 by ŒÓ’±—–
-
-Estricmp–¢’è‹`ƒGƒ‰[‚ª‚Å‚éŠÂ‹«—p‚ÌC³
- ƒGƒ‰[‚ªo‚½ê‡Aint_party.c‚Ìʼn‚̃}ƒNƒ’è‹`‚̃Rƒƒ“ƒg‰»‚Ì‚¤‚¿A
- ‚Ç‚¿‚ç‚©‚ðŠO‚µ‚Ä‚â‚è’¼‚µ‚Ä‚Ý‚é‚ÆA‚¤‚Ü‚­‚¢‚­‚©‚àB
- ň«A‰º‚ð—LŒø‚É‚µ‚½‚炤‚Ü‚­‚¢‚­‚Í‚¸Bi‘啶Žš¬•¶Žš‚ð‹æ•Ê‚·‚é‚悤‚É‚È‚è‚Ü‚·j
-
- (char/)
- int_party.c
- ƒRƒƒ“ƒg‰»Ï‚݂̃}ƒNƒ’è‹`’ljÁ
-
-----------
-//0252 by ŒÓ’±—–
-
-EƒJ[ƒh‚̈ꕔŽÀ‘•
- iƒXƒe[ƒ^ƒX•Ï‰»‘S”ÊA•Ší‘®«AƒXƒLƒ‹‚Í‚·‚Å‚ÉŽÀ‘•Ï‚Ýj
- –h‹ï‘®«A‰r¥ŽžŠÔ•Ï‰»A‘®«UŒ‚‘Ï«AŽí‘°‘Ï«AŽí‘°’ljÁƒ_ƒ[ƒWA
- ‘®«’ljÁƒ_ƒ[ƒWAƒTƒCƒY’ljÁƒ_ƒ[ƒWAMAXHPAMAXSP‘Œ¸AŽg—pSP•Ï‰»ŒnA
- ƒtƒFƒ“AƒhƒŒƒCƒNAƒzƒ‹ƒ“A[•£‚Ì‹RŽmA‰©‹àå³AƒIƒVƒŠƒXƒJ[ƒh‚ðŽÀ‘•
-
- (db/)
- const.txt
- bonus—p‚̒蔒ljÁAbonus2‚̒蔂à’ljÁ
- item_db.txt/item_db2.txt
- ƒJ[ƒh‚̃XƒNƒŠƒvƒg’ljÁ
- (map/)
- map.h
- struct map_session_data‚Éhprate‚È‚Ç‘½”ƒƒ“ƒo’ljÁ
- script.c
- bonus2ƒRƒ}ƒ“ƒh’ljÁ
- buildin_bonus2()’ljÁ
- pc.c/pc.h
- pc_bonus2()’ljÁ
- pc_bonus()‚̈—’ljÁ
- pc_calcstatus()‚ÅŠeŽí’ljÁƒƒ“ƒo‚̉Šú‰»‚ðs‚¤‚悤‚É‚µA
- hprate‚âsprate‚É]‚¢max_hp,max_sp‚Ì’²®‚à‚·‚é‚悤‚É•ÏXB
- pc_makesavestatus()‚ŃIƒVƒŠƒXƒJ[ƒhC³
- skill.c
- skill_castfix()‚Åcastrate‚É]‚¢A‰r¥ŽžŠÔ‚ð’²®B
- skill_castend_id()‚Ådsprate‚É]‚¢AŽg—pSP‚ð’²®B
- skill_castend_nodamage_id()‚ŃJ[ƒhC³‚ð’ljÁ
- battle.c
- battle_calc_weapon_attack()‚ŃJ[ƒhC³‚ð’ljÁ
- battle_calc_magic_attack()‚ŃJ[ƒhC³‚ð’ljÁ
- battle_damage()‚ŃtƒFƒ“ƒJ[ƒhC³‚ð’ljÁ
-
-EƒXƒe[ƒ^ƒXŠ„‚èU‚è‚Ì•\Ž¦ã‚Ì–â‘èC³
- STR‚ðã‚°‚Ä‚àATK‚ª•Ï‚í‚ç‚È‚¢–â‘èAINT‚ðã‚°‚Ä‚àMATK‚ª•Ï‚í‚ç‚È‚¢–â‘èC³
-
- map.h
- struct map_session_data‚Ématk1,matk2ƒƒ“ƒo’ljÁ
- pc.c
- pc_calcstatus()‚ÌC³
- clif.c
- clif_initialstatus()‚ÌC³
- battle.c
- battle_calc_magic_attack()‚ÌC³
-
-
-----------
-//0251 by nabe
-
-E0250‚̃oƒOC³‚È‚Ç
- ƒJ[ƒg‚ð•t‚¯‚¸‚ɃƒOƒCƒ“‚Ü‚½‚̓}ƒbƒvˆÚ“®‚µ‚½Œã‚ɃJ[ƒg‚ð•t‚¯‚é‚ÆA
- ƒJ[ƒg‚Ì’†g‚ª2”{‚Ì—Ê‚É•\Ž¦‚³‚ê‚Ä‚µ‚Ü‚Á‚Ä‚¢‚½‚Ì‚ðC³B
- ƒJ[ƒg‚̃AƒCƒeƒ€”‚ðXV‚·‚é‚悤‚ÉC³B
- pc.h/pc.c
- pc_iscarton()ƒ}ƒNƒ‚ð’ljÁ
- pc_cart_additem(),pc_cart_delitem()‚É‚»‚ꂼ‚ê
- sd->cart_num++;‚Æsd->cart_num--;ˆ—‚ð’ljÁ
- clif.c
- clif_parse_LoadEndAck()‚ÅA
- ƒJ[ƒg‚ð•t‚¯‚Ä‚¢‚é‚Æ‚«‚̂݃J[ƒgî•ñ‚ð‘—M‚·‚é‚悤‚É‚µ‚½
-
-----------
-//0250 by nabe
-
-EƒJ[ƒgOFFAƒ`ƒFƒ“ƒWƒJ[ƒgŽÀ‘•B
- (map/)
- pc.c/pc.h
- pc_setcart()‚ð’ljÁ
- script.c
- buildin_setcart()‚ð’ljÁ
- ƒXƒNƒŠƒvƒgƒRƒ}ƒ“ƒhusetcart;v‚ŃJ[ƒg‚ª‚‚­
- clif.c/clif.h
- clif_parse_CartOff()’ljÁBiƒJ[ƒg‚ð‚Í‚¸‚·j
- clif_parse_ChangeCart()’ljÁBiƒ`ƒFƒ“ƒWƒJ[ƒg‚̃J[ƒg‘I‘ðj
- (conf/)
- npc_town_kafra.txt
- ƒJ[ƒgƒT[ƒrƒX‚ðusetcart;v‚É’uŠ·
-
-
-----------
-//0249 by ŒÓ’±—–
-
-Eƒp[ƒeƒB‚̃f[ƒ^ƒx[ƒX‚Ì–µ‚‚ðo—ˆ‚邾‚¯—}‚¦‚é‚悤‚ÉB
- •¡”ƒp[ƒeƒB‚ÉŠ‘®‚µ‚Ä‚éƒf[ƒ^‚ÌŒŸ¸A’ljÁ‚ÉŽ¸”s‚µ‚½‚Æ‚«‚É’E‘Þ‚È‚ÇB
-
- (char/)
- int_party.c
- party_check_conflict(),party_check_conflict_sub(),
- mapif_parse_PartyCheck()’ljÁ
- inter.c
- ƒpƒPƒbƒg’·ƒŠƒXƒg‚É0x3028’ljÁ
- INTERŽIƒpƒPƒbƒg.txt
- ƒpƒPƒbƒg0x3028’ljÁ
- (map/)
- party.c/party.h
- party_check_conflict()’ljÁB
- party_invite()‚Å“¯ƒAƒJƒEƒ“ƒgŠ‘®ƒ`ƒFƒbƒN‚ðs‚¤‚悤‚ÉB
- party_member_added(),party_send_movemap()‚Å
- party_check_conflict()‚ðŒÄ‚Ԃ悤‚ÉB
- intif.c/intif.h
- intif_party_checkconflict()’ljÁ
-
-Eƒp[ƒeƒB‚ÌÀ•WA‚g‚o’Ê’m‚ðŽÀ‘•
- •Ï‰»‚ª‚ ‚ê‚΂P•b‚Ɉê‰ñ‘—MB
-
- map.h
- struct map_session_data‚Éparty_x,~_y,~_hp‚Ì‚Rƒƒ“ƒo’ljÁ
- party.c/party.h
- party_send_xyhp_timer_sub(),party_send_xyhp_timer(),
- party_send_xy_clear(),party_send_hp_check()’ljÁB
- party_recv_movemap()‚Åsd->party_*‚ð‰Šú‰»‚·‚é‚悤‚ÉB
- clif.c/clif.h
- clif_send‚ÌPARTY*ƒtƒ‰ƒO‚ð—LŒø‚ÉB
- iPARTY,PARTY_SAMEMAP,PARTY_AREA,PARTY*_WOS‚Ì‚UŽíj
- clif_party_xy(),clif_party_hp()’ljÁB
- pc.c/pc.h
- pc_authok()‚Åsd->party_*‚ð‰Šú‰»‚·‚é‚悤‚ÉB
- pc_walk()‚Ńp[ƒeƒBƒƒ“ƒo‚ªŽ‹ŠE“à‚É“ü‚Á‚Ä‚«‚½‚Æ‚«‚É
- party_hp‚ð‰Šú‰»‚·‚é‚悤‚ÉB
-
-Eƒp[ƒeƒB‚ÌexpŒö•½•ª”z‚ðŽÀ‘•
- party.c/party.h
- party_share_exp()’ljÁ
- mob.c/mob.h
- mob_damage()‚ÅŒö•½•ª”zˆ—’ljÁ
-
-EƒXƒLƒ‹‚ÌC³‚ƒljÁŽÀ‘•
- ƒoƒbƒVƒ…AƒsƒA[ƒX‚Ì–½’†—¦C³ŽÀ‘•
- ƒsƒA[ƒX‚̃TƒCƒY‚É‚æ‚é‰ñ”•Ï“®ŽÀ‘•iƒvƒŒƒCƒ„[‚Í’†Œ^‚Ɖ¼’èj
- ƒoƒbƒVƒ…Aƒ\ƒjƒbƒNƒuƒƒE‚̃Xƒ^ƒ“Œø‰ÊŽÀ‘•
- ƒXƒg[ƒ“ƒJ[ƒXAƒtƒƒXƒgƒ_ƒCƒoAƒCƒ“ƒxƒiƒ€A
- ƒAƒXƒyƒ‹ƒVƒIAƒGƒ“ƒ`ƒƒƒ“ƒgƒ|ƒCƒYƒ“AƒŒƒbƒNƒXƒfƒr[ƒiŽÀ‘•
-
- skill.c
- skill_additional_effect()’ljÁ
- skill_castend_damage_id()ŠY“–ŒÂŠC³
- skill_castend_nodamage_id()ŠY“–ŒÂŠC³
- skill_use_id(),skill_use_pos()‚ŃXƒLƒ‹‚ªŽg—p‚Å‚«‚È‚¢‚Æ‚«‚Í
- ‰½‚à‚µ‚È‚¢‚悤‚ÉC³B
- battle.c
- battle_calc_weapon_attack()‚ÌŠY“–ŒÂŠC³
- battle_get_dmotion(),battle_get_attack_element()C³
- clif.c
- clif_mob007b(),clif_mob0078‚Åoption‚È‚Ç‚ð‘—‚é‚悤‚ÉC³
- pc.c
- pc_attack(),pc_walktoxy()‚Ås“®•s‰Â”\‚È‚Æ‚«‚͉½‚à‚µ‚È‚¢‚悤‚ÉB
- mob.c
- mob_stopattack()C³
- mob_ai_sub_hard()‚Ås“®•s”\‚È‚Æ‚«‚͉½‚à‚µ‚È‚¢‚悤‚ÉB
-
-EUŒ‚ŽË’ö‚Ì”»’è’ljÁ
- ‘ŠŽè‚ªˆÚ“®‚µ‚Ä“Í‚©‚È‚¢‚Æ‚«‚ÍAˆÚ“®ƒpƒPƒbƒg‚ð‘—M
-
- clif.c/clif.h
- clif_movetoattack()’ljÁ
- pc.c
- pc_attack()‚ÅŽË’ö”»’èA“Í‚©‚È‚¢‚È‚çclif_movetoattack()‚ðŒÄ‚ÔB
-
-----------
-//0248 by nabe
-
-Eƒp[ƒeƒB쬎ž‚ÉŠù‚Ƀp[ƒeƒB‚ÉŠ‘®‚µ‚Ä‚¢‚½ê‡‚̈—‚ð’ljÁ
- party.c
- party_create()‚ÉAŠù‚Ƀp[ƒeƒB‚ÉŠ‘®‚µ‚Ä‚¢‚½ê‡
- clif_party_created(sd,2)‚ð’ljÁ
-
-EƒfƒBƒXƒJƒEƒ“ƒgAƒI[ƒo[ƒ`ƒƒ[ƒW‚ðŒvŽZ
- pc.c
- pc_modifybuyvalue()Apc_modifysellvalue()‚Å’l’i‚ðŒvŽZ
-
-
-----------
-//0247 by ŒÓ’±—–
-
-Eƒp[ƒeƒBŽÀ‘•
- Œö•½•ª”z‚Íݒ肵‚Ä‚àŽÀÛ‚É‚ÍŒö•½•ª”z‚³‚ê‚Ä‚È‚¢B
- ƒp[ƒeƒBƒXƒLƒ‹‚Í‚Ü‚¾Ž©•ª‚É‚µ‚©‚©‚©‚ç‚È‚¢
-
- (char/)
- int_party.c/int_party.h
- ‚Ü‚Æ‚à‚ÉŽÀ‘•
- inter.c
- ƒpƒPƒbƒg’·ƒŠƒXƒg’ljÁ
- INTERŽIƒpƒPƒbƒg.txt
- ƒp[ƒeƒB‚̃pƒPƒbƒg’ljÁ
- (map/)
- party.c/party.h
- V‹K’ljÁ
- map.c/map.h
- struct map_session_data‚Éparty_sendedƒƒ“ƒo’ljÁ
- do_init()‚Ådo_party_init()‚ðŒÄ‚Ô
- map_quit()‚Åparty_send_logout()‚ðŒÄ‚Ô
- intif.c/intif.h
- ƒp[ƒeƒBŠÖ˜A‚Ì•”•ª’ljÁ
- clif.c/clif.h
- ƒp[ƒeƒBŠÖ˜A‚Ì•”•ª’ljÁ
- clif_parse_LoadEndAck()‚Åparty_send_movemap()‚ðŒÄ‚Ño‚·
- pc.c
- pc_authok()‚Åparty_request_info()‚ðŒÄ‚Ԃ悤‚É‚µA
- party_sended‚ð‰Šú‰»‚·‚é‚悤‚ÉB
-
-E‰r¥–WŠQ‚³‚ꂽ‚Æ‚«‰æ–Êã‚ʼnr¥‚ð‚â‚ß‚é‚悤‚ÉC³
- (map/)
- skill.c
- skill_castcancel()‚ʼnr¥’†Ž~ƒpƒP(‡‚Á‚Ä‚é‚Ì‚©‚ÈH)‚ð‘—M
-
-E’´‰“‹——£UŒ‚‚¾‚Æ“G‚ª”½Œ‚‚µ‚Ä‚±‚È‚¢–â‘è‚ðC³
- (map/)
- map.h
- struct mob_data‚Émin_chaseƒƒ“ƒo’ljÁiÅ’á’ÇÕ‹——£j
- mob.c
- mob_attack()‚Åmin_chase‚ð13‚ɉŠú‰»‚·‚é
- mob_walk()‚Åmin_chase‚ª13‚æ‚è‘å‚«‚¢‚È‚ç­‚µ‚¸‚ˆø‚¢‚Ä‚¢‚­
- mob_ai_sub_hard()‚Åmin_chase‚É‚æ‚è’ÇÕ‚ð”»’fA
- UŒ‚‚ðŽó‚¯‚½Žž‚Émin_chase‚ð”މ䋗—£+13‚ÉÝ’è
-
-----------
-//0246 by ŒÓ’±—–
-
-EƒJ[ƒgŽÀ‘•
- map.h
- struct map_session_data‚Écart_weight‚È‚Ç‚S‚ƒƒ“ƒo’ljÁ
- pc.c/pc.h
- pc_cart_additem(),pc_cart_delitem(),
- pc_cart_putitemtocart(),pc_cart_getitemfromcart()’ljÁ
- pc_calcstatus()‚ŃJ[ƒgd—Ê‚âŒÂ”‚È‚Ç‚Ìî•ñ‚ðŒvŽZ
- clif.c/clif.h
- clif_cart_itemlist(),clif_cart_equiplist(),
- clif_cart_additem(),clif_cart_delitem(),
- clif_parse_PutItemToCart(),clif_parse_GetItemFromCart()’ljÁ
- clif_parse_LoadEndAck()‚ŃJ[ƒgî•ñA“à—e‘—M
- clif_updatestatus()‚ÅSP_CARTINFO‚ŃJ[ƒgî•ñ‚ð‘—‚ê‚é‚悤‚É
- clif_parse_MoveFromKafraToCart(),~ToKafraFromCart()’ljÁ
- storage.c/storage.h
- storage_additem(),storage_delitem()’ljÁ
- storage_storageadditemfromcart,~getitemtocart()’ljÁ
- storage_storageadd(),storage_storageget()‚ÅA
- storage_additem(),storage_delitem()‚ðŒÄ‚Ԃ悤‚É•ÏX
-
-EƒXƒLƒ‹‰r¥ƒfƒBƒŒƒC‚È‚ÇŽÀ‘•
- clif.c
- clif_parse_WalkToXY()‚Éskilltimer‚É‚æ‚éˆÚ“®‰Â”Û‚ð’ljÁ
- clif_parse_UseSkillToId(),clif_parse_UseSkillToPos()‚É
- canmove_tick‚É‚æ‚éUŒ‚‰Â”ےljÁ
- skill.c/skill.h
- skill_castcancel()‚ð’ljÁ
- skill_use_id(),skill_use_pos()‚ŃfƒBƒŒƒCŽžŠÔŒvŽZ‚¨‚æ‚ÑA
- canmove_tick‚ÌÝ’è
- battle.c
- battle_damage()‚Åskill_castcancel()‚̌ĂÑo‚µ’ljÁ
-
-E0245‚̃AƒCƒeƒ€ƒf[ƒ^ƒx[ƒXC³‚Ì’Ê퉿Ši”Å—pˆÓ
- (db/)
- item_db.txt
- item_db2.txt‚É‘O‚Ìitem_db.txt‚̉¿Šiî•ñ‚ðƒ}[ƒW‚µ‚½‚¾‚¯‚Å‚·B
-
-----------
-//0245 by ‚ê‚ 
- ‚Ü‚½—á‚É‚æ‚Á‚ÄA‘ŠêC³”Å‚Ì‚Ý‚Å‚·B
-Eitem_db2.txt‚ÌC³
- ‹T“‡V‘•”õ‚ÌŒø‰Ê‚ðŽÀ‘•‚µ‚Ü‚µ‚½B
- ƒEƒBƒU[ƒh‚ªñ‚ð‘•”õ‚Å‚«‚È‚¢‚Ì‚ðC³
- ƒEƒBƒU[ƒh‚ªƒ}ƒWƒVƒƒƒ“ƒnƒbƒgA‚Æ‚ñ‚ª‚è–X‚ð
- ‘•”õ‚Å‚«‚È‚¢‚Ì‚ðC³
-----------
-//0244 by ‚ê‚ 
-Emob_db.txt‚ÌC³
- ‹T“‡ƒ‚ƒ“ƒXƒ^[‚̃f[ƒ^‚ð‚¢‚ê‚Ü‚µ‚½B
- ‚½‚¾AŠÔˆá‚Á‚Ä‚é•”•ª‚ª‚©‚È‚è‚ ‚è‚Ü‚·B
- Speed,Delay‚Í“K“–‚Å‚·B
- ‚Ü‚½A‚í‚©‚ç‚È‚¢‚Ì‚ÍŠØ‘”ł̃f[ƒ^‚È‚Ì‚Å
- Mdef‚Æ‚©ˆÙí‚É‚‚¢‹C‚àB
-----------
-//0242 by ŒÓ’±—–
-
-EŽæˆøŠÖ˜A‚Ì•ÏX‚ÆC³
- Žæˆø‚ÉŽg‚¤•Ï”‚ðmmo_charstatus‚©‚çmap_session_data‚Ɉړ®‚µ‚Ü‚µ‚½
-
- (common/)
- mmo.h
- struct mmo_charstatus‚©‚çŽæˆøŠÖŒW‚̃ƒ“ƒoíœ
- (map/)
- map.h
- struct map_session_data‚ÉŽæˆøŠÖŒW‚̃ƒ“ƒo’ljÁ
- trade.c
- \‘¢‘Ì‚Ì•ÏX‚É‚ ‚킹‚ÄC³
- map.c
- map_quit()‚ÅŽæˆø’†‚È‚çƒLƒƒƒ“ƒZƒ‹‚·‚é‚悤‚É‚µ‚½
-
-EƒJ[ƒh‚Ì‘g‚݇‚킹ŽÀ‘•
- pc.c/pc.h
- pc_insert_card()‚ŃJ[ƒh‚ðŽÀÛ‚É‘}“ü‚·‚é
- clif.c/clif.h
- clif_parse_UseCard(),clif_parse_InsertCard()’ljÁ
- clif_use_card(),clif_insert_card()’ljÁ
-
-Eˆê•”‚̃J[ƒhŒø‰ÊŽÀ‘•
- ƒXƒLƒ‹K“¾ƒJ[ƒhAƒXƒe[ƒ^ƒXƒ{[ƒiƒXƒJ[ƒh‚È‚ÇB
-
- (map/)
- map.h
- struct map_session_data‚É‘•”õƒJ[ƒhŒŸõ—p‚Ì•Ï”’ljÁ
- pc.c/pc.h
- pc_calcstatus()‚ŃJ[ƒh‚̈—’ljÁ
- ‚ ‚éID‚̃J[ƒh‚ª‘•”õÏ‚Ý‚©ŒŸõ‚·‚邽‚ß‚ÌŠÖ”A
- pc_equip_card(),pc_equip_wcard(),pc_equip_dcard()‚ð—pˆÓ
-
-Ed—ʃI[ƒo[/‘é/‹RæƒAƒCƒRƒ“‚Ì•\Ž¦
- (map/)
- pc.c/pc.h
- pc_checkweighticon()’ljÁAd—ʂ̃AƒCƒRƒ“ˆ—
- clif.c
- clif_updatestatus()‚Åd—Ê‘—MŽž‚Épc_checkweighticon()‚ÌŽÀs
- clif_changeoption()‚Å‘é‚Æ‹Ræ‚̃AƒCƒRƒ“ˆ—
-
-E0241‚̃AƒCƒeƒ€ƒf[ƒ^ƒx[ƒXC³‚Ì’Ê퉿Ši”Å—pˆÓ
- (db/)
- item_db.txt
- item_db2.txt‚É‘O‚Ìitem_db.txt‚̉¿Šiî•ñ‚ðƒ}[ƒW‚µ‚½‚¾‚¯‚Å‚·B
-
-
-----------
-//0241 by ‚ê‚ 
-EƒAƒCƒeƒ€ƒf[ƒ^ƒx[ƒX‚ÌC³
- V“ª‘•”õ‚̃Oƒ‰ƒtƒBƒbƒN‚ªˆÙ‚È‚é‚Ì‚ðC³
- ‘•”õ‚ÌŒø‰Ê‚ÌŽÀ‘•
- ã’iE’†’i‚ªŠÔˆá‚Á‚Ä‚½‚Ì‚ð­‚µC³
- ‘¬•ñ”Å‚Á‚Ä‚±‚ƂŊԈႦ‘½‚¢‚©‚àB
- ƒeƒXƒg‚à‚ ‚܂肵‚Ä‚Ü‚¹‚ñB
- ‚ ‚ÆA‘Šê’²®”Å‚µ‚©—pˆÓ‚µ‚Ä‚Ü‚¹‚ñB
-
- item_db2.txt
- ‹T“‡‚É‚ ‚킹‚Ä’²®
-
-----------
-//0240 by nabe
-
-EŽæˆø‚ðŽÀ‘•‚µ‚Ü‚µ‚½B
- (common/)
- mmo.h
- struct mmo_charstatus ‚É
- int trade_partner;
- int deal_item_index[10];
- int deal_item_amount[10];
- int deal_zeny;
- short deal_locked;
- ‚ð’ljÁ
- (map/)
- clif.c,clif.h
- clif_traderequest() : 0xe5iŽæ‚èˆø‚«—v¿Žó‚¯j
- clif_tradestart() : 0xe7iŽæ‚èˆø‚«—v‹‰ž“šj
- clif_tradeadditem() : 0xe9i‘ŠŽè•û‚©‚ç‚̃AƒCƒeƒ€’ljÁj
- clif_tradeitemok() : 0xeaiƒAƒCƒeƒ€’ljÁ¬Œ÷j
- clif_tradedeal_lock() : 0xeciok‰Ÿ‚µj
- clif_tradecancelled() : 0xeeiŽæ‚èˆø‚«ƒLƒƒƒ“ƒZƒ‹j
- clif_tradecompleted() : 0xf0iŽæ‚èˆø‚«Š®—¹j
- ‚ð’ljÁB
- trade.c,trade.h
- trade_traderequest() : Žæˆø—v¿‚ð‘ŠŽè‚É‘—‚é
- trade_tradeack() : Žæˆø—v¿
- trade_tradeadditem() : ƒAƒCƒeƒ€’ljÁ
- trade_tradeok() : ƒAƒCƒeƒ€’ljÁŠ®—¹(ok‰Ÿ‚µ)
- trade_tradecancel() : ŽæˆøƒLƒƒƒ“ƒZƒ‹
- trade_tradecommit() : Žæˆø‹–‘ø(trade‰Ÿ‚µ)
- ‚ðŽÀ‘•B‚»‚ꂼ‚êclif.c::clif_parse_Trade*‚©‚çŒÄ‚΂ê‚éB
-
-
-----------
-//0238 by ‚ê‚ 
-
-E‘¬“x•ÏX‚ÉŠÖ‚µ‚Ä­‚µC³
- atcommand.c
- ‘¬“x•ÏX‚Ì•”•ª‚ð­‚µC³
- ‚±‚ê‚ňꉞ“®‚­‚Ý‚½‚¢H
- pc.c
- ‚‚¢‚Å‚É‚Å‚·‚ª
- ‘¬“x㸂ŕàs‘¬“x‚ªã‚ª‚é‚悤‚É‚µ‚½B
- ˆê‰ž“®‚­‚Ý‚½‚¢‚Å‚·‚ª“K“–‚È‚Ì‚Å
- ‚¨‚©‚µ‚È‚Æ‚±‚낪‚ ‚ê‚΂¨Šè‚¢‚µ‚Ü‚·B
-
-----------
-//0236 by nabe
-
-EƒXƒNƒŠƒvƒg‚Åmenu‚Å”ò‚ñ‚¾æ‚Å’¼‚®menu‚ð‘‚­‚ƌ듮삷‚éƒoƒO‚ðC³‚µ‚Ü‚µ‚½B
- script.c
- goto“®ì‚ÌŒã‚ÌRERUNLINE‚ɑΈ‚·‚邽‚ßA
- goto,menu‚Å”ò‚ñ‚¾Œã‚É‚ÍAst.state==GOTO‚Årerun_pos‚ðXVB
-
-
-----------
-//0233 by nabe
-
-EƒAƒCƒeƒ€‚ð‘•”õ‚·‚éÛ‚Ì‘•”õ”»’è‚ð’ljÁ‚µ‚Ü‚µ‚½B
- pc.c
- pc_equipitem()‚É‘•”õ”»’èi«•Ê”»’èA‘•”õLV”»’èAE‹Æ”»’èj’ljÁ
-
-Ed—Ê”»’èƒXƒNƒŠƒvƒgƒRƒ}ƒ“ƒh‚ð’ljÁ‚µ‚Ü‚µ‚½B
- if (checkweight(ƒAƒCƒeƒ€ID,ƒAƒCƒeƒ€”—Ê))
- ‚Å‚»‚̃AƒCƒeƒ€~”—Ê‚ðŽæ“¾‚Å‚«‚é‚©‚Ç‚¤‚©”»’è‚Å‚«‚Ü‚·B
- script.c
- buildin_checkweight()‚ð’ljÁ
-
-EƒXƒNƒŠƒvƒg‹l‚߇‚킹‚ðathena dev-2.1.1—p‚ɈÚA‚µ‚Ü‚µ‚½B
- map_athena1.cnf
- npc_event_*.txt ƒCƒxƒ“ƒgNPC
- npc_job_*.txt “]ENPC
- npc_mob_job.txt “]E—pƒ‚ƒ“ƒXƒ^[
- npc_town_*.txt ’¬NPC
-
-
-----------
-//0232 by ŒÓ’±—–
-
-E‘•”õƒ{[ƒiƒX‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½
- ƒ{[ƒiƒX‚ÉŽg‚¤ƒXƒNƒŠƒvƒg(bonus,skill)‚ðŽÀ‘•
- ƒXƒNƒŠƒvƒg‚ÍI-Athena‚̃f[ƒ^‚ðŽg‚Á‚ăRƒ“ƒo[ƒg‚µ‚Ü‚µ‚½B
- i‚Ü‚¾ƒJ[ƒh‚ɂ͑Ήž‚µ‚Ä‚¢‚Ü‚¹‚ñj
-
- (common/)
- mmo.h
- struct skill‚Éflagƒƒ“ƒo’ljÁiƒJ[ƒhƒXƒLƒ‹‚©‚Ç‚¤‚©j
- (map/)
- map.h
- struct map_session_data‚Éatk_ele‚Ȃǂ̃ƒ“ƒo’ljÁ
- enum‚ÅSP_ATKELEMENT‚ȂǒljÁ
- pc.c
- pc_bonus()‚ÌŽÀ‘•Apc_skill()’ljÁ
- script.c
- buildin_skill()‚̒ljÁ
- buildin_bonus()‚ÌC³(const.txt‚̒蔂ªŽg‚¦‚é‚悤‚É)
- clif.c
- clif_skillinfoblock()‚ÌC³(ƒJ[ƒhƒXƒLƒ‹‚Íã‚°‚ç‚ê‚È‚¢)
- (db/)
- const.txt
- bonus‚ÉŽg‚¤‚½‚߂̒蔒ljÁ
- item_db.txt
- •W€‚̃f[ƒ^‚É‘•”õƒXƒNƒŠƒvƒg‚ð’ljÁ‚µ‚½‚à‚Ì
- item_db2.txt
- 0213‚Å‘Šê’²®‚³‚ꂽƒf[ƒ^‚É‘•”õƒXƒNƒŠƒvƒg‚ð’ljÁ‚µ‚½‚à‚Ì
-
-E‰r¥ŠÖŒW‚̃oƒO‚ªC³‚³‚ê‚Ü‚µ‚½
- (map/)
- skill.c
- skill_use_id(),skill_use_pos()‚ðC³
- (db/)
- cast_db.txt
- ­‚µ’ljÁiƒuƒŠƒbƒcƒr[ƒg‚È‚Çj
-
-EUŒ‚‘®«‚ª“K—p‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½
-E¯‚Ì‚©‚¯‚ç‚ÌC³‚ª“K—p‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½
- map.h
- struct map_session_data‚Éstarƒƒ“ƒo’ljÁ
- pc.c
- pc_calcstatus()‚Å‘®«‰Šú‰»
- battle.c
- battle_get_element(),battle_get_attack_element()C³
- battle_calc_weapon_damage()‚ÌŠY“–ŒÂŠC³
-
-Eñ‘•”õŽž‚ÉMATK+15%‚ª“K—p‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½
- battle.c
- battle_calc_magic_damage()‚ÌŠY“–ŒÂŠC³
-
-E»‘¢•Ší‚̃Lƒƒƒ‰ƒNƒ^[–¼‚ª³‚µ‚­•\Ž¦‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½
-
- Œ´—‚Æ‚µ‚Ä‚ÍAmapŽI“à‚̃Lƒƒƒ‰ƒNƒ^–¼ƒf[ƒ^ƒx[ƒX‚ðŒŸõ‚µ‚ÄA
- ‘¶Ý‚·‚ê‚Α¦•ÔMA‘¶Ý‚µ‚È‚¯‚ê‚ÎcharŽI‚É‰ðŒˆ—v‹‚ðo‚·B
- ‚±‚Ì‚Æ‚«A–¼‘O‚ð—v‹‚µ‚Ä‚«‚½ƒNƒ‰ƒCƒAƒ“ƒg‚ÌID‚ðƒf[ƒ^ƒx[ƒX‚É“o˜^‚·‚éB
- charŽI‚©‚ç–¼‘Oƒf[ƒ^‚ª‚­‚é‚ÆA‘Ήž‚·‚éƒf[ƒ^ƒx[ƒX‚É–¼‘O‚ðƒZƒbƒg‚µA
- —v‹‚µ‚Ä‚«‚½ƒNƒ‰ƒCƒAƒ“ƒg‚É–¼‘O‚ð•ÔM‚·‚éB
- –¢‰ðŒˆ‚Ì“¯‚¶ƒLƒƒƒ‰ID‰ðŒˆ‚ð•¡”‚̃Nƒ‰ƒCƒAƒ“ƒg‚ª—v‹‚µ‚Ä‚«‚½ê‡A
- ÅŒã‚É—v‹‚µ‚Ä‚«‚½ƒNƒ‰ƒCƒAƒ“ƒg‚É‚µ‚©•ÔM‚µ‚È‚¢‚ªA
- •ÔM‚³‚ê‚È‚©‚Á‚½ƒNƒ‰ƒCƒAƒ“ƒg‚Í”•bŒã‚ÉÄ‚Ñ‰ðŒˆ—v‹‚ð‘—‚Á‚Ä‚­‚é
- i‚»‚µ‚Ä‚»‚Ì‚Æ‚«‚ÍmapŽI‚©‚瑦•ÔM‚³‚ê‚éj‚Ì‚Å‘å‚«‚È–â‘è‚Í‚È‚¢B
-
- ƒpƒPƒbƒg0x2b08,0x2b09‚ÅmapŽI‚ÆcharŽI‚ª’ÊM‚µ‚Ä‚Ü‚·B
-
- (char/)
- char.h
- UNKNOWN_CHAR_NAME’è‹`iƒLƒƒƒ‰ƒf[ƒ^‚ª–³‚¢‚Æ‚«‚É•Ô‚³‚ê‚é–¼‘Oj
- char2.c
- parse_frommap()‚ɃpƒPƒbƒg0x2b08‚̈—‚ð’ljÁ
-
- (map/)
- chrif.c/chif.h
- chrif_searchcharid()’ljÁ
- chrif_parse()‚Å0x2b09‚̈—’ljÁ
- map.c
- ƒf[ƒ^ƒx[ƒX charid_db 錾
- struct charid2nick錾Bnick‚Í–¼‘OA
- req_id‚Í0‚Å–¼‘O‰ðŒˆÏ‚ÝA0ˆÈŠO‚Å–¢‰ðŒˆ‚Å‰ðŒˆ‘Ò‚¿‚̃uƒƒbƒNID
- map_addchariddb()’ljÁBƒf[ƒ^ƒx[ƒX‚Ö–¼‘O“o˜^A—v‹‚É•ÔMB
- map_reqchariddb()’ljÁB—v‹‚ª‚ ‚Á‚½‚±‚Æ‚ðƒf[ƒ^ƒx[ƒX‚֒ljÁB
- map_charid2nick()‚Ńf[ƒ^ƒx[ƒX‚ÌŒŸõ
- do_init()‚Å charid_db ‚̉Šú‰»‚ð’ljÁ
- clif.c/clif.h
- clif_parse_SolveCharName(),clif_solved_charname()’ljÁ
-
-
-----------
-//0231 by nabe
-
-EƒXƒNƒŠƒvƒg‚Å mes "$charaname"; “™‚Æ‘‚­‚ƃLƒƒƒ‰‚Ì–¼‘O‚ð‚µ‚á‚ׂé‹@”\‚ð’ljÁB
- script.c
- buildin_mes()“à‚Å
- mes“à•”‚Ì$charaname‚ðƒLƒƒƒ‰‚Ì–¼‘O‚É’uŠ·‚·‚鈗‚ð’ljÁB
- ”“¯—l‚É‚µ‚Ä•Ï”‚Ì’l‚È‚Ç‚ðmes“à•”‚Å•\Ž¦‚·‚é‚悤‚É‚·‚邱‚Æ‚à
- ”‚Å‚«‚Ü‚·‚ªA‚±‚ê‚ɂ‚¢‚Ä‚Í–¢ŽÀ‘•‚Å‚·EEEB
- ”‚Æ‚è‚ ‚¦‚¸
- ” mes Global_Val;
- ”‚̂悤‚É’¼Ú‘‚­‚±‚ƂőΈ‚µ‚Ä‚­‚¾‚³‚¢B
-
-E“G‚ÉUŒ‚‚³‚ꂽ‚Æ‚«‚ÉmapŽI‚ª—Ž‚¿‚邱‚Æ‚ª‚ ‚é‚Ì‚ðC³B
- battle.c
- battle_calc_weapon_attack()‚Ì
- ƒfƒBƒoƒCƒ“ƒvƒƒeƒNƒVƒ‡ƒ“‚̃XƒLƒ‹ƒ`ƒFƒbƒN•”•ªA
- pc_checkskill(sd,22)‚ðA
- pc_checkskill(tsd,22)‚ÉB
-
-----------
-//0230 by nabe
-
-E‰ñ”𗦑‰ÁƒXƒLƒ‹‚ðƒXƒe[ƒ^ƒX‚É”½‰fB
- pc.c
- 0228‚Å‚Ìpc_calcstatus()‚̉ñ”𗦑‰Á•ª‚ðŒ³‚É–ß‚µflee‚ð‘‰ÁB
- battle.c
- battle_calc_weapon_attack()‚ÌhitrateŒvŽZ‚ʼnñ”𗦕ÛØ‚ðŒvŽZB
-EƒOƒ[ƒoƒ‹•Ï”‚ðŽÀ‘•B
-@ '@'‚à‚µ‚­‚Í'l'‚ÅŽn‚Ü‚ç‚È‚¢•Ï”–¼‚ÍA‘S‚ăOƒ[ƒoƒ‹•Ï”‚Æ‚Ý‚È‚³‚ê‚Ü‚·B
- mmo.h
- struct mmo_charstatus ‚É
- int global_reg_num;
- struct global_reg global_reg[GLOBAL_REG_NUM];
- ‚ð’ljÁB
- pc.c
- pc_readglobalreg(),pc_setglobalreg()‚ð’ljÁB
- script.c
- get_val(),buildin_input(),buildin_set()‚É
- ƒOƒ[ƒoƒ‹•Ï”‚Ì‚½‚߂̈—‚ð’ljÁB
- char2.c
- mmo_char_tostr(),mmo_char_fromstr()‚É
- ƒOƒ[ƒoƒ‹•Ï”‚Ì‚½‚߂̈—‚ð’ljÁB
-
-----------
-//0229 by ŒÓ’±—–
-
-Eˆê•”ƒXƒLƒ‹‚ÌŽÀ‘•/C³
- ƒfƒBƒoƒCƒ“ƒvƒƒeƒNƒVƒ‡ƒ“Aƒf[ƒ‚ƒ“ƒxƒCƒ“Aƒr[ƒXƒgƒxƒCƒ“ŽÀ‘•
- ƒGƒiƒW[ƒR[ƒgC³i–‚–@‚É‚æ‚éUŒ‚‚ɂ̓XƒLƒ‹‚ª“­‚©‚È‚¢‚悤‚ÉC³j
- •ŠíUŒ‚ŒnƒXƒLƒ‹C³iƒGƒtƒFƒNƒg‚ð’ÊíUŒ‚‚©‚çƒXƒLƒ‹‚É•ÏXj
-
- battle.c
- battle_addmastery()‚ŃxƒCƒ“Œn’ljÁ
- battle_calc_damage()‚ŃGƒiƒW[ƒR[ƒgC³
- skill.c
- skill_castend_damage_id()‚Ì•ŠíUŒ‚ŒnƒXƒLƒ‹‚Ì•”•ª‚ðC³
-
-E“GUŒ‚ŒvŽZ‚ðPC‚Ì‚à‚̂ƈê–{‰»
- ‚±‚ê‚ÅPCvsPCAPCvsMOBAMOBvsPCAMOBvsMOB(!?)‚ð‚P‚‚̊֔‚ÅŒvŽZ‚Å‚«‚Ü‚·
-
- battle.c/battle.h
- battle_calc_weapon_attack()‚ðC³
- battle_calc_weapon_attack_pc(),~mob()‚ðíœ
- mob.c
- mob_attack()‚ÅŒvŽZ‚Ébattle_calc_weapon_attack()‚ðŽg‚¤‚悤‚ÉC³
-
-E‰r¥ŽžŠÔƒf[ƒ^‚ª‚È‚¢ê‡‚̃fƒtƒHƒ‹ƒg‚̉r¥ŽžŠÔ‚ð‚O‚É•ÏX
- ¡‚Ü‚Å‚Í‚P•b‚É‚µ‚Ä‚Ü‚µ‚½‚ªAƒoƒbƒVƒ…‚Æ‚©‚ª‚¨‚©‚µ‚­‚È‚é‚Ì‚ÅB
- iƒoƒbƒVƒ…‚Æ‚©‚̃f[ƒ^‚ð—pˆÓ‚·‚ê‚΂±‚¤‚µ‚È‚­‚Ä‚à’¼‚é‚ñ‚Å‚·‚ªj
-
- pc.c
- pc_readdb()‚Å1000ms‚ðƒZƒbƒg‚·‚é‚Ì‚ðŽ~‚ß‚½
-
-E‰“‹——£UŒ‚‚µ‚Ä‚±‚È‚¢ƒoƒOA‚»‚Ì‘¼‚ðC³
- mob.c
- mob_attack()‚ÌŽË’ö‚ðC³‚µ–Y‚ê‚Ä‚¢‚½
- mob_ai_sub_hard()‚ÅŽË’ö‹——£ŠO‚ÌŽžA–³ˆÚ“®‚Ì“G‚Í
- ƒ^[ƒQƒbƒg‚ðŠO‚·‚悤‚É‚µ‚½
-
-
-----------
-//0228 by nabe
-
-Eƒ_ƒuƒ‹ƒAƒ^ƒbƒN‚ÌSkillID‚ðC³B
- battle.c
- battle_calc_weapon_attack_pc()‚Å
- pc_checkskill(sd,49) -> pc_checkskill(sd,48)‚ÉB
-E‰ñ”𗦌üã‚ð—z‚É•\‚³‚È‚¢
- pc.c
- pc_calcstatus()‚Å‚Ìflee‚̉ñ”𗦌ü㕪‚ð휂µA
- mob.c
- mob_attack()‚ÌhitrateŒvŽZ‚ʼnñ”𗦌üã‚ðŒvŽZB
-E“å³A“峎“A“å³—Y‚ð³í‰»B
- npc_monster3J.txt
- mob_db.txt‚ɇ‚킹‚ÄA‚½‚Ô‚ñ³‚µ‚¢‚ÆŽv‚í‚ê‚éID‚ÉC³B
- “å³ 1006 -> 1051
- “峎“ 1017 -> 1053
- “å³—Y 1021 -> 1054
-EƒfƒoƒbƒOƒƒbƒZ[ƒW‚ÌÁ‚µ–Y‚êiHj‚ðíœB
- pc.c
- printf("pc.c 63 clif_clearchar_area\n");‚ðƒRƒƒ“ƒgƒAƒEƒg
-
-----------
-//0227 by ŒÓ’±—–
-
-Eˆê•”‚̃XƒLƒ‹Œø‰Ê‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½
- HP‰ñ•œŒüãASP‰ñ•œŒüãAƒ}ƒOƒjƒtƒBƒJ[ƒgA
- ƒnƒCƒfƒBƒ“ƒOAƒNƒ[ƒLƒ“ƒOAŽ€‚ñ‚¾‚Ó‚èA‰ž‹}Žè“–
-
- map.h
- struct map_session_data ‚É inchealtick ƒƒ“ƒo’ljÁ
- pc.c
- pc_spheal()‚Ń}ƒOƒjƒtƒBƒJ[ƒgˆ—’ljÁ
- pc_natual_heal_sub()‚ʼnñ•œŒüãƒXƒLƒ‹ˆ—’ljÁ
- pc_authok()‚Åinchealtick‚ð‰Šú‰»‚·‚é‚悤‚É•ÏX
- pc_walk()‚Åincheaktick‚ðÄÝ’è‚·‚é‚悤‚É•ÏX
- pc_walk()‚ŃNƒ[ƒLƒ“ƒO‚ÌI—¹ðŒ‚𒲸‚·‚é‚悤‚É•ÏX
- pc_walktoxy()‚Åó‘Ô‚É‚æ‚Á‚Ĉړ®•s‰Â”\‚É‚µ‚½
- skill.c/skill.h
- skill_status_change_start(),~timer(),~end()‚Ɉ—’ljÁ
- skill_check_cloaking()’ljÁAƒNƒ[ƒLƒ“ƒO‚ÌI—¹ðŒ‚ðŒŸ¸
- battle.c/battle.h
- battle_stopattack()’ljÁ
- battle_calc_weapon_attack()‚ÅUŒ‚‚ðŽ~‚߂鈗’ljÁ
- mob.c
- mob_ai_sub_hard()‚ÅUŒ‚‚ðŽ~‚߂鈗’ljÁ
-
-E’ÊíUŒ‚ˆ—A‘ÎMOBA‘ÎPC‚ð‹¤—p‚ÉB
- pc.c
- pc_attack_mob(),pc_attack_pc()íœ
- pc_attack()‚ÉUŒ‚ˆ—’ljÁ
-
-Eƒ‚ƒ“ƒXƒ^[‚Ìs“®‚̈ꕔŽÀ‘•
- ƒAƒNƒeƒBƒ”A–³”½‰žAˆÚ“®‚µ‚È‚¢A‰“‹——£UŒ‚ˆê•”
-
- mob.c
- mob_ai_sub_hard()‚És“®’ljÁ
- mob_ai_sub_hard_activesearch()’ljÁA‹ß‚­‚ÌPC‚Ö‚Ìô“G
-
-EƒI[ƒo[ƒgƒ‰ƒXƒg‚Ì‘‰Á”{—¦‚ª100”{‚É‚È‚Á‚Ä‚¢‚éƒoƒO‚ªC³‚³‚ê‚Ü‚µ‚½
- battle.c
- battle_calc_weapon_attack()‚ÅAŠY“–ŒÂŠ‚ðC³
-
-
-----------
-//0226 by ŒÓ’±—–
-
-‚â‚Á‚Ï‚èƒeƒXƒg‚Í‚ ‚ñ‚܂肵‚Ä‚¢‚Ü‚¹‚ñ
-
-Eˆê•”‚̃XƒLƒ‹Œø‰Ê‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½
- ‘¬“x‘‰ÁAƒGƒ“ƒWƒFƒ‰ƒXAƒLƒ…ƒA[
- ƒCƒ“ƒ|ƒVƒeƒBƒIƒ}ƒkƒXAƒTƒtƒ‰ƒMƒEƒ€AƒŠƒJƒoƒŠ[AƒOƒƒŠƒA
- ‚Ó‚­‚낤‚Ì–ÚAƒƒV‚Ì–ÚAW’†—ÍŒüãA‰ñ”𗦌üãA‰ð“Å
- ŠŽ—Ê‘‰ÁAƒ‰ƒEƒhƒ{ƒCƒXAƒAƒhƒŒƒiƒŠƒ“ƒ‰ƒbƒVƒ…AƒI[ƒo[ƒgƒ‰ƒXƒg
- ƒEƒFƒ|ƒ“ƒp[ƒtƒFƒNƒVƒ‡ƒ“Aƒ}ƒLƒVƒ}ƒCƒYƒpƒ[A‚Q‚g‚p
-
- (map/)
- map.h
- struct map_session_data‚Éwatk2,def2‚ȂǒljÁ
- pc.c
- pc_calcstatus()‚ɃXƒLƒ‹C³’ljÁ
- atk2‚È‚Ç‚à‘—M‚·‚é‚悤‚É•ÏX
- battle.c/battle.h
- battle_get_def2()‚È‚Ç‘½”’ljÁ
- battle_calc_weapon_damage()‚Å“GŒ¸ŽZ–hŒä‚ÌŠ“¾‚ð
- battle_get_def2()‚É•ÏX
- battle_calc_magic_damage()‚Å“GŒ¸ŽZ–‚–@–hŒä‚ÌŠ“¾‚ð
- battle_get_mdef2()‚É•ÏX
- battle_calc_weapon_damage()‚ŃXƒLƒ‹C³‚ð’ljÁ
- skill.c/skill.h
- skill_use_nodamage_id()‚ÌŠY“–ŒÂŠ’ljÁ
- skill_status_change_start()‚ÌŠY“–ŒÂŠ’ljÁ
- clif.c
- clif_updatestatus()‚Ìatk2‚Ȃǂ̈—’ljÁ
- clif_initialstatus()‚Åatk2‚Ȃǂ̈µ‚¢•ÏXAaspd‚È‚Ç‘—M’ljÁ
-
-E¸˜Bƒ_ƒ[ƒWC³/¸˜B–hŒäC³‚ª“K—p‚³‚ê‚Ü‚µ‚½
- (map/)
- pc.c
- pc_calcstatus()‚Åwatk2‚Ædef‚̒ljÁŒvŽZ’ljÁ
- battle.c
- battle_calc_weapon_damage()‚Åwatk2‚ðƒ_ƒ[ƒW‚ɒljÁ
-
-EinterŽI‚̃pƒPƒbƒg‰ðÍ•”‚Ì’v–½“I‚È–â‘肪C³‚³‚ê‚Ü‚µ‚½
- TCP/IPƒvƒƒOƒ‰ƒ€‚Å‚â‚Á‚Ä‚Í‚¢‚¯‚È‚¢‚±‚Æ‚ð‚»‚Ì‚Ü‚Ü‚â‚Á‚Ä‚Ü‚µ‚½(Š¾
- interŽI‚̃pƒPƒbƒg’·ƒf[ƒ^‚ðinter.c‚ÉŽ‚‚悤‚ÉC³‚³‚ê‚Ü‚µ‚½B
-
- (char/)
- inter.c/inter.h
- ƒpƒPƒbƒg’·ƒf[ƒ^ inter_*_packet_length[] ‚ð’ljÁ
- ƒpƒPƒbƒg’·ƒ`ƒFƒbƒN inter_check_length() ‚ð’ljÁ
- mapif_parse_*()‚ÅRFIFOSKIP‚ð‚È‚µ‚É•ÏX
- int_storage.c/int_storage.h
- mapif_parse_*()‚ÅRFIFOSKIP‚ð‚È‚µ‚É•ÏX
- int_party.c/int_guild.c
- Žd—l•ÏX‚ɑΉž‚³‚¹‚½•ÏX
- INTERŽIƒpƒPƒbƒg.txt
- ƒpƒPƒbƒg’·ƒŠƒXƒg’ljÁ
-
-E‚¿‚å‚Á‚Æ‚µ‚½C³
- (char/)
- inter.h
- inter_cfgName‚ð"conf/inter_athena.cnf"‚ÉC³
- char2.c
- char.exe‘æ‚Qˆø”È—ªŽžAinter_cfgName‚ðŽg‚¤‚悤‚ÉC³
- (db/)
- cast_db.txt
- ƒz[ƒŠ[ƒ‰ƒCƒg‚̉r¥ŽžŠÔ’ljÁiƒfƒBƒŒƒC‚Í“K“–j
- Ú‚µ‚¢l’ljÁ‹‚Þ
-
-----------
-//0225 by ŒÓ’±—–
-
-‚È‚ñ‚©‚©‚È‚è˜M‚è‚Ü‚µ‚½‚ª‘Š•Ï‚í‚炸ƒeƒXƒg‚Í‚ ‚ñ‚܂肵‚Ä‚Ü‚¹‚ñB
-
-EƒXƒLƒ‹Žg—pŽž‚Ì•Ï”‚ð•ÏX
- ‚æ‚­Œ©‚½‚çʼn‚©‚ç—pˆÓ‚³‚ê‚Ä‚Ü‚µ‚½‚ËB
-
- map.h
- struct map_session_data‚Ìcast_*‚ðíœ
- skill.c
- cast_*‚Ì•Ï”‚ðskill*‚É•ÏXB
-
-EƒXƒe[ƒ^ƒXˆÙíƒXƒLƒ‹‚̈—‚ð’ljÁiŒø‰Ê‚Í–¢ŽÀ‘•j
- Œ©‚©‚¯ãAƒXƒe[ƒ^ƒXˆÙí‚ÉŠ|‚©‚Á‚½‚è‚Æ‚©‚¾‚¯B
- Œø‰Ê‚Í‚Ü‚¾‚È‚µB
-
- skill.c/skill.h
- skill_status_change_start(),~end(),~timer(),~clear()’ljÁB
- ‚»‚ꂼ‚êƒXƒe[ƒ^ƒXˆÙí‚ÌŠJŽnAI—¹Aƒ^ƒCƒ}ˆ—A‘SÁ‹ŽB
- map.c/map.h
- map_quit()‚Åskill_status_change_clear()‚ðŒÄ‚Ԃ悤‚É‚µ‚½B
- struct map_session_data‚Ésc_data,sc_count’ljÁB
- struct mob_data‚Ésc_data,sc_count,option,opt1,opt2’ljÁB
- pc.c
- pc_authok()‚Åsc_data,sc_count‚ð‰Šú‰»‚·‚é‚悤‚É‚µ‚½B
- pc_setoption‚Åclif_changeoption()‚̈ø”•ÏXB
- pc_damage()‚ÅŽ€–SŽž‚Éskill_status_change_clear()‚ðŒÄ‚Ԃ悤‚ÉB
- mob.c
- mob_spawn()‚Åsc_data,sc_count‚ð‰Šú‰»‚·‚é‚悤‚É‚µ‚½B
- mob_attack()‚Åbattle_calc_damage()‚ðŒÄ‚Ԃ悤‚É‚µ‚½B
- mob_damage()‚ÅŽ€–SŽž‚Éskill_status_change_clear()‚ðŒÄ‚Ԃ悤‚ÉB
- battle.c/battle.h
- battle_get_*()‚½‚­‚³‚ñ’ljÁB
- battle_calc_damage()’ljÁBÅI“I‚ȃ_ƒ[ƒWŒvŽZ—pB
- battle_calc_magic_attack(),battle_calc_weapon_attack()‚Å
- battle_calc_damage()‚ðŒÄ‚Ԃ悤‚É‚µ‚½B
- clif.h/clif.c
- clif_status_change()’ljÁBƒXƒe[ƒ^ƒXˆÙíƒAƒCƒRƒ“•\Ž¦—pB
- clif_changeoption()‚̈ø”•ÏXB
- atcommand.c
- clif_changeoption()‚ðŒÄ‚ñ‚Å‚¢‚é‚Qƒ–Š‚ňø”•ÏXB
- @die‚Åskill_status_change_clear()‚ðŒÄ‚Ԃ悤‚ÉB
-
-Eƒ}ƒOƒkƒXƒGƒNƒ\ƒVƒYƒ€‚ÌK“¾ðŒ‚ªŠÔˆá‚Á‚Ä‚¢‚é‚Ì‚ðC³B
- db/skill_tree.txt
- ŠY“–ŒÂŠC³BiƒŒƒbƒNƒXƒG[ƒeƒ‹ƒi‚Ì•K—vLv‚ð‚P‚Éj
-
-EƒAƒNƒeƒBƒu‚È“G‚ÍUŒ‚‚·‚é‚Æ‚«ŽžXƒ^[ƒQƒbƒg‚ª•Ï‚í‚é‚悤‚É‚È‚è‚Ü‚µ‚½
- mob.c
- mob_ai_sub_hard()‚ÌUŒ‚‚³‚ꂽ‚©Šm”F‚·‚é•”•ª‚É
- ƒAƒNƒeƒBƒu‚È‚ç25%‚ÌŠm—¦‚Ń^[ƒQƒbƒg‚ª•Ï‚í‚é‚悤‚É•ÏXB
-
-Eˆê•”‚̃XƒLƒ‹Œø‰Ê‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½
- ƒLƒŠƒGƒGƒŒƒCƒ\ƒ“AƒGƒiƒW[ƒR[ƒgAƒŒƒbƒNƒXƒG[ƒeƒ‹ƒiA
- ƒz[ƒŠ[ƒ‰ƒCƒgAƒŠƒUƒŒƒNƒVƒ‡ƒ“Aƒ^[ƒ“ƒAƒ“ƒfƒbƒhAƒ‚ƒ“ƒXƒ^[î•ñ
-
- skill.c/skill.h
- skill_castend_nodamage_id()‚ɃXƒLƒ‹‚̈—‚ð’ljÁB
- skill_castend_*_id()‚̈ø”‚ð•ÏX
- battle.c
- battle_calc_damage()‚ɃXƒLƒ‹‚̈—‚ð’ljÁB
- battle_damage(),battle_heal()‚̈ø”•ÏX
- battle_calc_weapon_damage(),battle_calc_magic_damage()ˆø”•ÏX
- clif.c/clif.h
- clif_skill_estimation()’ljÁBƒ‚ƒ“ƒXƒ^[î•ñ‘—M—p
- pc.c
- battle_calc_weapon_damage()ŒÄ‚Ño‚µ‚̈ø”•ÏX
-
-Estorage.txt‚ª–³‚¢ê‡interŽI‚ª‹­§I—¹‚·‚éŽd—l‚ð•ÏX‚µ‚Ü‚µ‚½
- (char/)
- int_storage.c
- inter_storage_init()‚Ńtƒ@ƒCƒ‹‚ª“Ç‚ß‚È‚¢‚Æexit‚µ‚Ä‚½‚Ì‚ðC³
-
-
-----------
-//0224
-E2-2ŽŸE‚̃XƒLƒ‹‚ðƒcƒŠ[‚ɒljÁ‚µ‚Ü‚µ‚½iŽÀ‘•‚Í‚Ü‚¾‚Å‚·j
- (db/)
- skill_db.txt
- skill_tree.txt
-
-
-----------
-//0223 by ŒÓ’±—–
-EƒJƒvƒ‰‘qŒÉ‚ðinterŽI‚ɑΉž‚³‚¹‚Ü‚µ‚½
- ‚¢‚Ü‚Ü‚Å‚Ìstorage.txt‚Í‚»‚Ì‚Ü‚ÜŽg‚¦‚Ü‚·B
- interŽI—p‚ÌÝ’èƒtƒ@ƒCƒ‹‚Æ‚µ‚Äconf/inter_athena.cnf‚ðŽg‚¢‚Ü‚·B
- iÝ’èƒtƒ@ƒCƒ‹‚Íchar.exe‚Ì‘æ‚Qˆø”‚Å‘¼‚̃tƒ@ƒCƒ‹‚ðŽw’è‚Å‚«‚Ü‚·j
-
- ƒJƒvƒ‰‘qŒÉ‚ÌinterŽIŽÀ‘•‚ÌŠT—v
-
- interŽI‚Ístorage.txt‚Ì‘Sƒf[ƒ^‚ðŽ‚ÂBmapŽI‚̓AƒJƒEƒ“ƒg‚ª—v‹‚·‚é‚Ü‚Å
- ‚»‚̃AƒJƒEƒ“ƒg‚Ì‘qŒÉƒf[ƒ^‚ðŽ‚½‚È‚¢BƒNƒ‰ƒCƒAƒ“ƒg‚©‚ç‘qŒÉ‚ðŠJ‚­—v‹‚ª
- ‚ ‚Á‚½‚Æ‚«AmapŽI‚͑Ήž‚·‚éƒAƒJƒEƒ“ƒg‚Ì‘qŒÉƒf[ƒ^‚ðinterŽI‚É—v‹‚·‚éB
- interŽI‚©‚çƒf[ƒ^‚ª“Í‚­‚ƃNƒ‰ƒCƒAƒ“ƒg‚É‘qŒÉƒf[ƒ^‚ð‘—‚éB
- ‘qŒÉ‚Ìo‚µ“ü‚ê‚̓Nƒ‰ƒCƒAƒ“ƒg‚ÆmapŽIŠÔ‚Ì’ÊM‚¾‚¯‚Ås‚í‚ê‚éB
- ƒNƒ‰ƒCƒAƒ“ƒg‚ª‘qŒÉ‚ð•Â‚¶‚é‚©I—¹‚·‚é‚ÆAmapŽI‚ÍŠY“–ƒAƒJƒEƒ“ƒg‚Ì
- ‘qŒÉƒf[ƒ^‚ðinterŽI‚É‘—‚éB‚±‚Ì‚Æ‚«interŽI‚̉ž“š‚ð‘Ò‚½‚¸‚ɃNƒ‰ƒCƒAƒ“ƒg‚É
- ‘qŒÉƒNƒ[ƒY‚ð‘—‚éBinterŽI‚Í‘qŒÉƒf[ƒ^‚ðŽó‚¯Žæ‚é‚ÆA
- ‘Sˆõ•ª‚̃f[ƒ^‚ðƒtƒ@ƒCƒ‹‚É•Û‘¶‚µ‚ÄAmapŽI‚ɬŒ÷ƒXƒe[ƒ^ƒX‚ð•Ô‚·B
- mapŽI‚ͬŒ÷ƒXƒe[ƒ^ƒX‚𖳎‹‚·‚éB(ƒfƒoƒbƒO—p‚ɉæ–Ê‚Éo—Í‚·‚邾‚¯)
- interŽII—¹Žž‚É‚à‘qŒÉƒf[ƒ^‚ðƒtƒ@ƒCƒ‹‚É•Û‘¶‚·‚éB
-
- mapŽI‚Åaccount2storage‚ÅV‚µ‚¢‘qŒÉƒf[ƒ^‚ðì‚é‚Æ‚«A
- ‚·‚łɕ‚¶‚ç‚ê‚Ä‚¢‚é‘qŒÉƒf[ƒ^‚̃ƒ‚ƒŠ‚ðŽg‚¢‚܂킵‚½‚Ù‚¤‚ªƒƒ‚ƒŠ‚ª
- ß–ñ‚Å‚«‚é‚©‚àHi‚±‚ê‚ÍŽÀ‘•‚µ‚Ä‚¢‚Ü‚¹‚ñj
-
- (common/)
- mmo.h
- struct storage ‚ð map/storage.h ‚©‚çˆÚ“®B
- interŽI‚ÆmapŽI—¼•û‚ÅŽg—p‚·‚邽‚ßB
- (char/)
- char2.c
- do_final()‚ðì¬AI—¹Žž‚Émmo_char_sync()ˆÈŠO‚Éinter_save()‚ð
- ŒÄ‚Ԃ悤‚É‚µ‚½i‚±‚ê‚Åinter_*_save()‚Í‘S•”ŒÄ‚΂ê‚Ü‚·j
- inter_init()‚ðchar.exe‚Ì‘æ‚Qˆø”‚à‚µ‚­‚Í"conf/inter.cnf"‚Å
- ŒÄ‚Ԃ悤‚É‚µ‚½iathena.sh‚ÉinterŽIƒRƒ“ƒtƒBƒOƒtƒ@ƒCƒ‹‚ðŽw’è‚Å‚«‚Ü‚·j
- inter.c/inter.h
- inter_storage_init(),inter_storage_save(),
- inter_storage_parse_frommap()‚ðŒÄ‚Ԃ悤‚ÉB
- inter_init()‚ɃRƒ“ƒtƒBƒOƒtƒ@ƒCƒ‹–¼‚̈ø”‚ð•t‚¯‚½B
- inter_config_read()’ljÁAƒRƒ“ƒtƒBƒOƒtƒ@ƒCƒ‹‚©‚ç
- ‘qŒÉ‚ƃp[ƒeƒB[AƒMƒ‹ƒh‚̃tƒ@ƒCƒ‹–¼‚ð“Ç‚Ýž‚Ý‚Ü‚·B
- int_storage.c/int_storage.h
- V‹K’ljÁB‘qŒÉ•”•ª‚ÌinterŽI‹@”\B
- int_party.h/int_party.c/int_guild.h/int_guild.c/
- ƒtƒ@ƒCƒ‹–¼•Ï”‚Ì錾’ljÁ
- INTERŽIƒpƒPƒbƒg.txt
- ‘qŒÉƒpƒPƒbƒg‚̉ðà’ljÁ
-
- (map/)
- storage.h/storage.c
- storage_fromstr(),storage_tostr()‚ðchar/int_storage.c‚Ɉړ®B
- “¯‚¶‚­do_init,do_final‚ł̃tƒ@ƒCƒ‹ˆ—‚àˆÚ“®B
- do_final()‚͈—‚È‚µAdo_init()‚Í•Ï”‰Šú‰»‚Ì‚Ý‚É•ÏXB
- storage_storageopen()‚Å‚Í’P‚Éintif_request_storage()‚ðŒÄ‚Ô‚¾‚¯‚ÉB
- storage_storageclose()‚Éintif_send_storage()‚ð’ljÁ
- storage_storage_quitsave()’ljÁBƒNƒ‰ƒCƒAƒ“ƒgI—¹Žž‚É
- ƒJƒvƒ‰‘qŒÉ‚ªŠJ‚¢‚Ä‚¢‚ê‚Îintif_send_storage()‚ðŒÄ‚ÔŠÖ”B
- intif.h/intif.c
- intif_parse_LoadStorage(),intif_parse_SaveStorage(),
- intif_send_storage(),intif_request_storage()’ljÁ
- map.c
- map_quit()‚Åstorage_storage_quitsave()‚ðŒÄ‚Ԃ悤‚ÉB
-
- (conf/)
- inter_athena.cnf
- V‹K’ljÁBinterŽI—p‚̃Rƒ“ƒtƒBƒOƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹
-
-
-----------
-//0221 by ŒÓ’±—–
-
-EƒXƒLƒ‹ƒ^[ƒQƒbƒg‚ÌID‚ª³‚µ‚­Š“¾‚Å‚«‚È‚¢–â‘èC³
- clif.c
- clif_parse_UseSkillToId()‚ÅID‚ðWORD‚Æ‚µ‚Ĉµ‚Á‚Ä‚½‚Ì‚ðLONG‚ÉC³
-
-EƒXƒLƒ‹‰r¥ŽžŠÔ‚Æ‘®«•\A‚¨‚æ‚Ñ–‚–@ŒnƒXƒLƒ‹‚Ì‘®«C³ŽÀ‘•
- ‘®«ƒ_ƒ[ƒWC³‚Í battle_attr_fix() ‚ÅŒvŽZ‚µ‚Ü‚·B
- atk_elem‚Í‘®«‚»‚Ì‚Ü‚ÜAdef_elem‚Íi‘®«lv*20{‘®«j‚Å‚·B
- ‰r¥ŽžŠÔ‚Ískill.c‚ÌCASTFIX‚Ì’l‚ð•Ï‚¦‚邱‚Æ‚Å”{—¦‚ð’²®‚Å‚«‚Ü‚·
-
- pc.c
- pc_readdb()‚Åcast_db.txt‚Æattr_fix.txt‚Ì“Ç‚Ýž‚ݒljÁ
- skill.c/skill.h
- struct skill_db ‚Écast,delay’ljÁA‚»‚ê‚ç‚̃AƒNƒZƒT‚à’ljÁ
- ƒXƒLƒ‹‰r¥ŽžŠÔ‚ð skill_get_cast() ‚ÅŠ“¾‚·‚é‚悤‚É‚µ‚½
- battle.c/battle.h
- attr_fix_table’è‹`
- battle_attr_fix()’ljÁA‘®«C³‚ðŒvŽZ‚·‚é
- ‘®«ŒnƒAƒNƒZƒT(battle_get_element()‚È‚Ç)‚ð’ljÁ
- battle_calc_magic_damage()‚É‘®«C³‚ð’ljÁ
- cast_db.txt
- V‹K’ljÁB‰r¥ŽžŠÔ‚ƃfƒBƒŒƒC‚̃f[ƒ^ƒx[ƒX
- ‘S‘R‘«‚è‚È‚¢‚Ì‚ÅA’N‚©’ljÁŠó–]B
- attr_fix.txt
- V‹K’ljÁB‘®«C³ƒe[ƒuƒ‹
-
-Eƒq[ƒ‹‚ÌŽÀ‘•
- clif.c/clif.h
- clif_skill_nodamage()’ljÁAŽx‰‡Œn‚â‰ñ•œ‚̃GƒtƒFƒNƒg
- skill.c/skill.h
- skill_castend_damage_id()Askill_castend_nodamage_id()’ljÁA
- UŒ‚Œn‚ÆŽx‰‡/‰ñ•œŒn‚ÅŠÖ”‚𕪂¯‚½
- ƒq[ƒ‹ŒvŽZƒ}ƒNƒ skill_calc_heal() ’ljÁ
- battle.c
- battle_calc_magic_damage()‚Ńq[ƒ‹‚̃_ƒ[ƒWŒvŽZ’ljÁ
-
-
-----------
-//0220 by ‚ê‚ 
-
-0216‚ÌC³
-HIT‚ÌŒvŽZ‚ª‚¨‚©‚µ‚©‚Á‚½‚Ì‚ÅC³‚µ‚Ä‚Ý‚Ü‚µ‚½B
-ŠÔˆá‚Á‚Ä‚½‚炲‚ß‚ñ‚È‚³‚¢B
-
-Ebattle.c
- 256s–Ú‚Ì
- hitrate=battle_get_hit(&sd->bl) - battle_get_flee(&sd->bl) + 80;
- ‚ª‚½‚Ô‚ñAŽ©•ª‚Ì‚g‚h‚s‚ÆŽ©•ª‚Ì‚e‚k‚d‚d‚ÅŒvŽZ‚µ‚Ä‚é‹C‚ª‚·‚é‚Ì‚Å
- hitrate=battle_get_hit(&sd->bl) - battle_get_flee(target) + 80;
- ‚ÉC³‚µ‚Ü‚µ‚½B
-
-
-----------
-//0218 by ŒÓ’±—–
-
-ŽÀÛ‚É•ªŽU‚³‚¹‚ăeƒXƒg‚µ‚Ä‚¢‚È‚©‚Á‚½‚èB
-
-EmapŽI•ªŽUˆ——p‚ÉinterŽI‹@”\‚ð‚‚¯‚Ä‚Ý‚éi¡Œã‚Ì‚½‚ß‚ÌŠg’£j
- charŽI‚ÉinterŽI‚ðŠñ¶‚³‚¹‚Ü‚µ‚½B•¡”‚ÌmapŽIŠÔ‚Ì’ÊM‚É—˜—p‚µ‚Ü‚·B
- mapŽI‚𕪎U‚µ‚Ĉ—‚Å‚«‚é‚悤‚É‚·‚邽‚ß‚Ì‹@”\‚Å‚·B
- ¡Œãparty‚âguildŽÀ‘•Žž‚É‚«‚Á‚Æ–ð‚É‚½‚Á‚Ä‚­‚ê‚é‚©‚ÆB
-
- ‘qŒÉ‚ÌŽÀ‘•‚àinterŽI‚Ɉړ®‚·‚ׂ«‚©‚à‚µ‚ê‚Ü‚¹‚ñB
- ‚ǂ̃Lƒƒƒ‰ƒNƒ^[‚ª‚Ç‚ÌmapŽI‚É‚¢‚é‚©ŒŸõ‚·‚é‹@”\‚à‚¢‚é‚©‚àB
-
- Žg‚¤ƒpƒPƒbƒg‚ÌID‚͈ȉº‚̂悤‚É‚È‚è‚Ü‚·
- mapŽI=>interŽI‚̓pƒPƒbƒg0x3000`
- interŽI=>mapŽI‚̓pƒPƒbƒg0x3800`
- ƒpƒPƒbƒg‚ðì‚Á‚½ê‡‚ÍAINTERŽIƒpƒPƒbƒg.txt‚É‘‚¢‚Ä‚­‚¾‚³‚¢
-
- ‚±‚Ì‹@”\‚É‚æ‚郃Šƒbƒg
- mapŽI•ªŽU‚É‚à‘Ήž‚Å‚«‚é
- ‚±‚Ì‹@”\‚É‚æ‚éƒfƒƒŠƒbƒg
- interŽIŒo—R‚Ì‘S‚Ä‚Ì–½—ß‚Ì“®ì‘¬“x‚ª—Ž‚¿‚é
- iˆê‰ñinterŽI‚Ü‚Å“n‚·‚½‚ßj
- ŽI‚ƃNƒ‰ƒCƒAƒ“ƒg‚𓯂¶PC‚ÅŽg‚Á‚Ä‚¢‚é‚Ƃ‚炢‚©‚à
-
- (char/)
- char2.c/char.h
- mapif_sendall()’ljÁi‘SMAPŽI‚ɃpƒPƒbƒg‚ð‘—‚éj
- mapif_send()’ljÁi“Á’èMAPŽI‚É‘—‚éF¶‘¶”»’è•t‚«j
- parse_frommap()‚Åinter_parse_frommap()‚ðŒÄ‚Ԃ悤‚É‚µ‚½
- (interŽI‚ÌmapŽI‰ðÍ•”‚ðcharŽI‚ÉŠñ¶‚³‚¹‚½‚±‚Æ‚É‚È‚é)
- inter.h/inter.c
- V‹K’ljÁBinterŽI‚Ì’†ŠjB
- inter_parse_frommap‚ÅMAPŽI‚©‚ç‚̃pƒPƒbƒg‚ð‰ðÍ‚µ‚Ü‚·B
- int_party.h/int_party.c/int_guild.h/int_guild.c
- V‹K’ljÁB¡Œã‚Ì‚½‚ß‚Ì—\–ñBƒp[ƒeƒB‚âƒMƒ‹ƒh‹@”\—p
- init‚Ńf[ƒ^‚ð“Ç‚ñ‚ÅAsave‚Å•Û‘¶‚·‚ׂ«H
- save‚Í‚Ü‚¾ŒÄ‚΂ê‚È‚¢Bparse‚ŃpƒPƒbƒg‰ðÍB
- common/mmo.h‚ ‚½‚è‚Ńp[ƒeƒB[‚âƒMƒ‹ƒh‚Ì\‘¢‘Ì‚ð
- ’è‹`‚·‚é•K—v‚ª‚ ‚é‚ÆŽv‚í‚ê‚éB
- INTERŽIƒpƒPƒbƒg.txt
- ƒpƒPƒbƒg‚̃ŠƒXƒg
-
- (map/)
- intif.h/intif.c
- interŽI‚Æ’ÊM‚·‚é•”•ªB
- inter_parse()‚ÅinterŽI‚©‚ç‚̃pƒPƒbƒg‚ð‰ðÍ‚µ‚Ü‚·B
- interŽI‚Öƒf[ƒ^‚ð‘—‚é‚Æ‚«‚Íinter_fd‚ðŽg‚¢‚Ü‚·B
- chrif.h/chrif.c
- chrif_parse()‚Åinter_parse()‚ðŒÄ‚Ԃ悤‚É‚µ‚½
- iintif.c‚ÌinterŽI‰ðÍ•”‚ðcharŽI‰ðÍ•”‚ÉŠñ¶‚³‚¹‚½‚±‚Æ‚É‚È‚é)
-
-E@kamiƒRƒ}ƒ“ƒh‚ðinterŽIŒo—R‚É•ÏX
- Œ´—‚Æ‚µ‚Ä‚ÍŽŸ‚̂悤‚ÈŠ´‚¶‚Å‚·
- ƒNƒ‰ƒCƒAƒ“ƒg„mapŽI„interŽI„‘SmapŽI„‘SƒNƒ‰ƒCƒAƒ“ƒg
-
- (char/)
- inter.c
- mapif_GMmessage()’ljÁ
- (map/)
- intif.h/intif.c
- intif_GMmessage()’ljÁ
- intif_parse‚ÅGMƒƒbƒZ[ƒW‚̈—‚ð’ljÁ
- clif.c/clif.h
- clif_GMmessage()‚̈ø”‚ð•ÏX
- atcommand.c
- @kami•”•ª‚Åintif_GMmessage()‚ðŒÄ‚Ԃ悤‚É‚µ‚½
-
-EWis‚ðinterŽIŒo—R‚É•ÏX
- Œ´—‚Æ‚µ‚Ä‚ÍŽŸ‚̂悤‚ÈŠ´‚¶‚Å‚·
-
- ‘—‚èŽåƒNƒ‰ƒCƒAƒ“ƒg„‘—‚èŽåmapŽI„interŽI„‘Sƒ}ƒbƒvŽI„(•ªŠòA)
- [•ªŠòA]
- 1.‘ŠŽè‚Ìl‚¢‚émapŽI„‘ŠŽè‚̃Nƒ‰ƒCƒAƒ“ƒg
- @@@@V@@ @„interŽI„‘—‚èŽåmapŽI„‘—‚èŽåƒNƒ‰ƒCƒAƒ“ƒg
- 2.‘ŠŽè‚Ì‚¢‚È‚¢mapŽI„interŽIi•ªŠòBj
- [•ªŠòB]
- 1.‘SmapŽI‚ª‰ž“š‚µ‚½interŽI „‘—‚èŽåmapŽI„‘—‚èŽåƒNƒ‰ƒCƒAƒ“ƒg
- 2.(‘S•”‚͉ž“š‚µ‚Ä‚È‚¢‚Æ‚«‚ÍA‘SmapŽI‚̉ž“š‚ð‘Ò‚Â)
-
- ‚à‚Ì‚·‚²‚¢•¡ŽG‚É‚È‚Á‚Ä‚Ü‚·‚ËB
-
- (char/)
- inter.c
- struct WisList ’è‹`iWisƒf[ƒ^‚̃Šƒ“ƒNƒŠƒXƒgj
- add_wislist(),del_wislist(),search_wislist(),
- check_ttl_wislist()’ljÁ,ƒŠƒ“ƒNƒŠƒXƒg‚ðˆµ‚¤ŠÖ”ŒQ
- mapif_wis_message(),mapif_wis_end()’ljÁ
- (map/)
- intif.h/intif.c
- intif_wis_message(),intif_wis_end()’ljÁ
- intif_parse_WisMessage()’ljÁ,intif_parse()‚©‚çŒÄ‚΂ê‚é‚悤‚É
- clif.c/clif.h
- clif_wis_message(),clif_wis_end()’ljÁ
- clif_parse_Wis()‚ð•ÏX,intif_wis_message()‚ðŒÄ‚Ԃ悤‚É‚µ‚½
-
-EƒXƒLƒ‹Žg—pŽž‚̃qƒbƒg”/Á”ïSPŠ“¾‚̃oƒOC³
- skill.c
- skill_get_sp(),skill_get_num()‚ÅŽQÆ‚·‚é”z—ñƒCƒ“ƒfƒbƒNƒX‚ðlv-1‚É‚µ‚½
-
-
-----------
-//0216 by ŒÓ’±—–
-
-‚¢‚‚à‚Ç‚¨‚èƒeƒXƒg‚Ù‚Æ‚ñ‚Ç‚µ‚Ä‚È‚¢‚Ì‚ÅAƒoƒO‘å—Ê‚©‚àB
-
-E0213‚ÌC³H‚Ì‚æ‚­‚í‚©‚ç‚È‚¢‚Æ‚±‚ëC³
- itemdb.c
- ƒRƒ“ƒpƒCƒ‹‚ª’Ê‚ç‚È‚¢‚Ì‚Åitemdb_equipoint‚̈ø”ƒŠƒXƒg•ÏX
-
-EAthena dev 2.1.1‚Ì“K—p
- dev-2.1.1‚Å“K—p‚³‚ꂽC³‚ð“K—p‚µ‚Ü‚µ‚½
-
- timer.c
- 2.1.1‚Ì‚à‚Ì‚Æ·‚µ‘Ö‚¦
- script.c
- C_NE: ‚ÌC³‚Ì“K—p
- README
- ÅŒã‚Ì•¶Í‚ð2.1.1‚Ì‚à‚Ì‚É·‚µ‘Ö‚¦
-
-EƒXƒLƒ‹ƒf[ƒ^ƒx[ƒX‚ÌC³
- ˆê•”‚ÌÁ”ïSP‚âƒqƒbƒg”‚È‚Ç‚ðC³B
-
- skill_db.txt
- ŠY“–ŒÂŠ‚ÌC³
-
-EƒXƒLƒ‹UŒ‚‚ÌŽÀ‘••ÏX•’ljÁŽÀ‘•
- ƒoƒbƒVƒ…Aƒƒ}[ƒiƒCƒgAƒ_ƒuƒ‹ƒXƒgƒŒƒCƒtƒBƒ“ƒOAƒsƒA[ƒX
- ƒXƒsƒAƒu[ƒƒ‰ƒ“AƒXƒsƒAƒXƒ^ƒuAƒ{[ƒŠƒ“ƒOƒoƒbƒVƒ…
- ƒ\ƒjƒbƒNƒuƒ[AƒOƒŠƒ€ƒgƒD[ƒX ‚È‚Ç‚ÌŽÀ‘••ÏX
-
- ƒiƒp[ƒ€ƒr[ƒgAƒ\ƒEƒ‹ƒXƒgƒ‰ƒCƒNA
- ƒtƒ@ƒCƒ„[ƒ{ƒ‹ƒgAƒR[ƒ‹ƒhƒ{ƒ‹ƒgAƒ‰ƒCƒgƒjƒ“ƒOƒ{ƒ‹ƒgAƒA[ƒXƒXƒpƒCƒNA
- ƒ†ƒsƒeƒ‹ƒTƒ“ƒ_[ ‚È‚Ç‚ð’ljÁŽÀ‘•
- i‘S‚ÄA”͈ÍUŒ‚‚âƒXƒe[ƒ^ƒXˆÙí‚È‚Ç‚Í–¢ŽÀ‘•j
-
- pc.c/pc.h
- 0213‚Ì•ÏX‚ð‚È‚©‚Á‚½‚±‚Æ‚É‚µ‚½
- pc_attack_mob()‚ÌC³AŒvŽZ‚Íbattle_calc_weapon_attack()‚É”C‚¹A
- ‚»‚ÌŒvŽZŒ‹‰Ê‚ð“K—p‚·‚邾‚¯‚É•ÏX
- clif.c/clif.h
- clif_skill_fail(),clif_skill_damage(),clif_skill_damage2()’ljÁ
- ‚»‚ꂼ‚êŽg—pŽ¸”sAŽg—pƒGƒtƒFƒNƒgA‚«”ò‚΂µ•t‚«Žg—pƒGƒtƒFƒNƒg
- skill.c/skill.h
- 0213‚Ì•ÏX‚ð‚È‚©‚Á‚½‚±‚Æ‚É‚µ‚½iƒ_ƒ[ƒW”{—¦ŒvŽZ‚ª‚¨‚©‚µ‚¢j
- skill_castend_id()‚ÉSP/ZenyŠm”F‚ÆÁ”ï•”•ª‚ð’ljÁA
- Ží—ޕʂɈ—‚ð’ljÁB
- battle.c/battle.h
- V‹K’ljÁ
- •ŠíUŒ‚ŒvŽZ—p‚Ébattle_calc_weapon_attack(),
- –‚–@UŒ‚ŒvŽZ—p‚Ébattle_calc_magic_attack()‚ð—pˆÓ
- i‘o•û‚Æ‚àAMOB‚ÆPC—¼•ûŒvŽZ‰Â”\‚È‚Í‚¸j
- ƒtƒ@ƒCƒ‹‘‚₵‚·‚¬‚Æ‚¢‚¤ˆÓŒ©‚àc(Š¾)
-
-
-----------
-//0214 by ‚ê‚ 
-Eƒ_ƒuƒ‹ƒAƒ^ƒbƒN‚ª‚¨‚©‚µ‚©‚Á‚½‚Æ‚±‚ë‚ðC³B
-EƒXƒLƒ‹‚̈ꕔŽÀ‘•
- ƒoƒbƒVƒ…Eƒƒ}[ƒiƒCƒgEƒ_ƒuƒ‹ƒXƒgƒŒƒCƒtƒBƒ“ƒOEƒsƒA[ƒX
- ƒXƒsƒAƒu[ƒƒ‰ƒ“EƒXƒsƒAƒXƒ^ƒuEƒ{[ƒŠƒ“ƒOƒoƒbƒVƒ…
- ƒ\ƒjƒbƒNƒuƒ[EƒOƒŠƒ€ƒgƒD[ƒX‚È‚Ç‚Å‚·B
-
- “K“–‚È‚Ì‚Å‚Ç‚±‚©A•s‹ï‡‚ª‚ ‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB
- ‚ ‚ÆAƒeƒXƒg‚à‚ ‚܂肵‚Ä‚Ü‚¹‚ñ‚Ì‚Å‚¨‚©‚µ‚¢‚Æ‚±‚낪‚ ‚Á‚½‚çC³‚ð‚¨Šè‚¢‚µ‚Ü‚·B
- ‘¼‚É‚à–â‘肪‚ ‚Á‚½‚çŽè’¼‚µ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
- •ÏX“à—e‚͈ȉº‚Ì’Ê‚è‚Å‚·B
-
- clif.c,clif.h
- clif_skill_damage()‚ð’ljÁ‚µ‚Ü‚µ‚½B
-
- pc.c,pc.h
- pc_attack_mob()‚̈ø”‚ðˆê‚’ljÁB
- ƒ_ƒuƒ‹ƒAƒ^ƒbƒN‚ª‚¨‚©‚µ‚©‚Á‚½‚̂ųí‚É“®ì‚·‚é‚悤‚ÉC³B
-
- skill.c
- ˆê•”ƒXƒLƒ‹‚ÌŽÀ‘•‚ð‚µ‚Ä‚Ý‚Ü‚µ‚½B
-
-
-----------
-//0213 by ‚ê‚ 
-E0208‚Ì—ƒRƒ}ƒ“ƒh‚Å­‚µC³
- atcommand.c
- @item‚Ō”Žw’肪–³‚¢ê‡A“üŽèŒÂ”‚ð‚PŒÂ‚É‚·‚é‚悤‚É‚µ‚½B
- @item‚ÅID‚ÌŽw’肪–³‚¢ê‡AƒAƒCƒeƒ€‚ð“üŽè‚µ‚Ä‚½‚±‚Æ‚É‚È‚Á‚Ä
- ‚¢‚½‚Ì‚ðC³
- itemdb.c
- item_db.txt‚ÅSell‚Ì€–Ú‚ð“X”„‚è‚Ì’l’i‚Æ‚µ‚Ä‚Ý‚½B
- item_db2.txt
- ŽŽ‚µ‚ɃJ[ƒh‚⃌ƒAƒAƒCƒeƒ€‚Ì“X”„‚艿Ši‚ð’l’i‚ð–{ŽI‚Ì‘Šê‚É‚µ
- ‚Ä‚Ý‚½‚à‚ÌBŽg—p‚·‚éꇂÍitem_db.txt‚Æ·‚µ‘Ö‚¦‚Ä‚­‚¾‚³‚¢B
-
-
-----------
-//0208 by nabe
-
-E—ƒRƒ}ƒ“ƒhŽÀ‘•B
- atcommand.h,atcommand.c
- ‚Ù‚ÚI-Athena‚Ì—ƒRƒ}ƒ“ƒh‘Š“–‚Å‚·‚ªA@GM‚ÆPVP‚Í–¢ŽÀ‘•‚Å‚·B
- help.txt‚à“¯«‚µ‚Ä‚¢‚Ü‚·B
- GMiƒAƒJƒEƒ“ƒgID704554`704583jê—p‚É‚·‚é‚É‚ÍA
- atcommand.c‚ÌŠY“–•”•ª‚̃Rƒƒ“ƒgƒAƒEƒg‚ð‰ðœ‚µ‚ĉº‚³‚¢B
- clif.h,clif.c
- clif_displaymessage()
- clif_GMmessage()
- clif_heal()
- clif_resurrection()
- clif_pvpon()
- clif_pvpset()
- clif_refine()
- ‚ð’ljÁ‚µ‚Ü‚µ‚½B
- clif_parse_GlobalMessage()“à‚Åatcommand()‚ðŒÄ‚ñ‚Å‚¢‚Ü‚·B
-
-E‚¿‚å‚Á‚Æ‚¾‚¯C³B
- script.c
- {buildin_openstorage,"openstorage","s"},
- ‚©‚ç
- {buildin_openstorage,"openstorage",""},
- ‚ÉC³‚µ‚Ü‚µ‚½B
-
-
-----------
-//0206 by ŒÓ’±—–
-EƒXƒLƒ‹ƒcƒŠ[/ƒXƒLƒ‹Žg—p‹@\‚ÌŽÀ‘•
- mmo.h
- MAX_SKILL‚ð‘‚₵‚½
- char2.c
- mmo_char_fromstr()
- mmo_charstatus‚Ìskill‚̃Cƒ“ƒfƒbƒNƒX‚ɃXƒLƒ‹”Ô†‚ðŽg‚¤‚悤‚É‚µ‚½
- =>ƒXƒLƒ‹‚ÌŒŸõ‚‘¬‰»‚Ì‚½‚ßi‚©‚í‚è‚Ƀƒ‚ƒŠŽg—p—Ê‚ª‘‚¦‚éj
- pc.h/pc.c
- pc_skillup(),pc_calc_skilltree()’ljÁ
- pc_checkskill()•ÏXiƒCƒ“ƒfƒbƒNƒX‚ðƒXƒLƒ‹”Ô†‚Éj
- pc_readdb()‚Åskill_db.txt‚à“ǂނ悤‚É‚µ‚½
- pc_authok()‚Åcast_timer‚ð‰Šú‰»‚·‚é‚悤‚É‚µ‚½
- pc_calcstatus()‚Åpc_calc_skilltree()‚Æclif_skillinfoblock()‚ð
- ŒÄ‚Ԃ悤‚É‚µ‚½
- clif.c/clif.h
- clif_skillinfoblock(),clif_skillcasting(),
- clif_skillup()‚ð’ljÁ
- clif_parse_SkillUp(),clif_parse_UseSkillToId(),
- clif_parse_UseSkillToPos()‚ðŽÀ‘•
- skill.h/skill.c
- ƒtƒ@ƒCƒ‹’ljÁ(map/)
- map.h
- struct map_session_data‚Écast_*‚ð’ljÁ
- skill_db.txt
- ƒtƒ@ƒCƒ‹’ljÁ(db/)
- (I-Athena0200‚Ìskill_info2.txt‚ðƒRƒ“ƒo[ƒg‚µ‚½‚à‚Ì)
- (ƒXƒLƒ‹Žg—p•”•ªŠJ”­ŽÒŒü‚¯î•ñ)
- ƒXƒLƒ‹‚ÌŒø‰Ê‚ðŽÀ‘•‚·‚éꊂÍskill.c‚Ì
- skill_castend_id(),skill_castend_pos()‚Å‚·B
- ƒ^[ƒQƒbƒg‚âŽg—pƒXƒLƒ‹‚Í sd->cast_* ‚©‚瓾‚Ü‚·
- ƒXƒLƒ‹ƒf[ƒ^ƒx[ƒX‚Ö‚Í skill_get_* ‚ŃAƒNƒZƒX‚µ‚Ä‚­‚¾‚³‚¢
- ¡ŒãAƒLƒƒƒXƒeƒBƒ“ƒOƒ^ƒCƒ€‚àƒf[ƒ^ƒx[ƒX‚É“ü‚ê‚é—\’è
-
-----------
-//0205 by nabe
-
-Estorage.c‚̃oƒOƒtƒBƒNƒXB
-E‘qŒÉƒf[ƒ^‚ðAƒ}ƒbƒvŽI‹N“®Žž‚É“Ç‚ÝAƒ}ƒbƒvŽII—¹Žž‚É‘‚­‚悤‚É•ÏXB
- storage.h,storage.c
- storage_init()‚ðdo_init_storage()‚ɉü–¼B
- storage_save()‚ðdo_final_storage()‚ɉü–¼B
- fclose‚ð–Y‚ê‚Ä‚¢‚½‚Ì‚ð’ljÁB
- map.c
- #include "storage.h"‚ð’ljÁB
- do_final()‚Édo_final_storage()‚ð’ljÁB
- do_init()‚Édo_init_storage()‚ð’ljÁB
-
-----------
-
-//0203(unofficial) by ‚È‚Ý
-
-item_db.txt‚Ì‘‚«Š·‚¦‚Ì‚Ý‚Å‚·B
-
-EƒAƒCƒeƒ€‚̉ñ•œ—Ê‚ð’ljÁ/•ÏX
- Ôƒ|[ƒVƒ‡ƒ“@@@@@@@@@HP 30- 44
- gƒ|[ƒVƒ‡ƒ“@@@@@@@@@HP 70- 89
- ‰©F‚¢ƒ|[ƒVƒ‡ƒ“@@@@@@@HP 175-234
- ”’‚¢ƒ|[ƒVƒ‡ƒ“@@@@@@@@HP 350-429
- ‚¢ƒ|[ƒVƒ‡ƒ“@@@@@@@@SP 40- 99
- Ô‚¢ƒn[ƒu@@@@@@@@@@HP 12- 19
- ‰©F‚¢ƒn[ƒu@@@@@@@@@HP 21- 29
- ”’‚¢ƒn[ƒu@@@@@@@@@@HP 80-111
- ‚¢ƒn[ƒu@@@@@@@@@@SP 15- 44
- ƒŠƒ“ƒS@@@@@@@@@@@@HP 12- 15
- ƒoƒiƒi@@@@@@@@@@@@HP 11- 16
- ƒuƒhƒE@@@@@@@@@@@@SP 10- 24
- ‚¢‚à@@@@@@@@@@@@@HP 11- 15
- ‚É‚­@@@@@@@@@@@@@HP 70- 99
- ƒnƒ`‚Ì–¨@@@@@@@@@@@HP 72- 97 / SP 20- 59
- ƒ~ƒ‹ƒN@@@@@@@@@@@@HP 25- 34
- ƒLƒƒƒ“ƒfƒB@@@@@@@@@@HP 31- 74
- ƒXƒeƒBƒbƒNƒLƒƒƒ“ƒfƒB@@@@@HP 46-109
- ƒŠƒ“ƒSƒWƒ…[ƒX@@@@@@¦@HP 28- 32
- ƒoƒiƒiƒWƒ…[ƒX@@@@@@@@HP 27- 33
- ƒuƒhƒEƒWƒ…[ƒX@@@@@@@@SP 15- 39
- ƒjƒ“ƒWƒ“ƒWƒ…[ƒX@@@@@¦@HP 29- 32
- ƒJƒ{ƒ`ƒƒ@@@@@@@@@@@HP 14
- ƒyƒbƒgƒt[ƒh@@@@@@@@@HP 53- 83
- ‚æ‚­Ä‚¢‚½ƒNƒbƒL[@@@@@@HP 80-177
- ‚ЂƂ­‚¿ƒP[ƒL[@@@@@@@HP 251-359
- ‚ЂȂ ‚ç‚ê@@@@@@@@@@HP 175-234
- •H–Ý@@@@@@@@@@@@@HP 350-429
- ƒŒƒbƒhƒXƒŠƒ€ƒ|[ƒVƒ‡ƒ“@@¦@HP 30- 44
- ƒCƒGƒƒXƒŠƒ€ƒ|[ƒVƒ‡ƒ“@@¦@HP 175-234
- ƒzƒƒCƒgƒXƒŠƒ€ƒ|[ƒVƒ‡ƒ“@¦@HP 350-429
-@Œ»Ý‚ÌAthena‚Å‚ÍVIT‚âƒXƒLƒ‹‚É‚æ‚éƒ{[ƒiƒX‚͉Á–¡‚³‚ê‚Ü‚¹‚ñB
-@i“K—p‚·‚éꇂÍscript.c“à‚Ìbuildin_healŠÖ”‚ ‚½‚è‚É‚ÉŽè‚ð‰Á‚¦‚é•K—v‚ ‚èj
-@‚È‚¨A¦•t‚̃AƒCƒeƒ€‚̃f[ƒ^‚Í“K“–‚Å‚·B
-EŒÃ‚¢ƒJ[ƒh’Ÿ‚ðŽÀ‘•(UseScript)
-E‚»‚Ì‘¼C³
-@@‚ЂȂ ‚ç‚ê@@@@@@@@@@d—Ê‚È‚µ¨d—Ê0.1‚ÉC³
-@@•H–Ý@@@@@@@@@@@@@d—Ê‚È‚µ¨d—Ê0.1‚ÉC³
-@@ƒoƒ‹ƒ€ƒ“@@@@@@@@@@@d—Ê0.1S4•ÐŽèŒ•¨d—Ê100S0—¼ŽèŒ•‚ÉC³
-@‚È‚¨ASell‚Ì€–Ú‚Í‚ ‚邾‚¯–³‘Ê‚Á‚Û‚¢‚Ì‚Å‘S•”Á‚µ‚Ü‚µ‚½B
-
-----------
-
-//0202 by nabe
-
-EƒJƒvƒ‰‘qŒÉ‚Ìu“¯ˆêƒAƒJƒEƒ“ƒg‚È‚Ì‚É‹¤—L‚Å‚«‚È‚¢ƒoƒOv‚ð‰ü—Ç‚µ‚Ü‚µ‚½B
- ŠeƒLƒƒƒ‰‚É‘qŒÉƒf[ƒ^‚ðŽ‚½‚¹‚é‚Ì‚Í–³‘Ê‚ª‘½‚¢‹C‚ª‚·‚é‚Ì‚ÅA
- ƒAƒJƒEƒ“ƒgID‚ÅŠÇ—‚·‚é‚悤‚ÉŽd—l‚ð•ÏX‚µ‚Ü‚µ‚½B
- ‚‚¢‚Å‚ÉA‘qŒÉƒf[ƒ^‚Í‘S‚Ästorage.c‚Å‚Ü‚©‚È‚¢A
- charŽI‚ÍŠÖ—^‚µ‚È‚¢‚悤‚É‚µ‚Ü‚µ‚½B
- ‚±‚ê‚É”º‚¢Achar_athena.cnf,mmo.h,char2.c‚ÍŒ³‚É–ß‚µ‚Ü‚µ‚½B
- ‚Ü‚½A‘qŒÉƒtƒ@ƒCƒ‹–¼‚Ígstorage.txth‚ɌŒ肵‚Ä‚¢‚Ü‚·B
-
- ‰ü•ÏA’ljÁ‚µ‚½‚Ì‚ÍŽŸ‚̃tƒ@ƒCƒ‹‚Å‚·B
- map/storage.h,
- map/storage.c,
- map/clif.h,//ˆø”•ÏX‚¾‚¯
- map/clif.c,//ˆø”•ÏX‚¾‚¯
- conf/char_athena.cnf,//Œ³‚É–ß‚µ‚½‚¾‚¯
- common/mmo.h,//Œ³‚É–ß‚µ‚½‚¾‚¯
- char/char2.c,//Œ³‚É–ß‚µ‚½‚¾‚¯
- map/itemdb.h,//itemdb_equippoint()ˆø”錾•ÏX‚¾‚¯
- map/itemdb.c,//itemdb_equippoint()ˆø”錾•ÏX‚¾‚¯
- map/pc.c,//itemdb_equippoint()ˆø”錾•ÏX‚¾‚¯
-
-----------
-
-//0201 by nabe
-
-EƒJƒvƒ‰‘qŒÉ‚ðŽÀ‘•‚µ‚Ü‚µ‚½B
-
- ƒXƒNƒŠƒvƒg‚©‚çŒÄ‚Ño‚·‚É‚ÍAƒXƒNƒŠƒvƒg“à‚Å
- openstorage;
- ‚Æ‚µ‚Ä‚­‚¾‚³‚¢B
- ƒTƒ“ƒvƒ‹‚Æ‚µ‚Änpc_kafraJ.txt‚ð•t‚¯‚Ä‚ ‚è‚Ü‚·B
- •¹‚¹‚Änpc_script3J.txt‚ÌŠY“–•”•ª‚à‰ü•Ï‚µ‚Ü‚µ‚½B
-
- char_athena.cnf‚Ì
- stor_txt:
- ‚Å‘qŒÉƒtƒ@ƒCƒ‹–¼‚ðŽw’肵‚Ä‚¢‚Ü‚·B
-
- ‰ü•ÏA’ljÁ‚µ‚½‚Ì‚ÍŽŸ‚̃tƒ@ƒCƒ‹‚Å‚·B
- map/Makefile,
- map/storage.c,
- map/storage.h,
- map/clif.c,
- map/clif.h,
- map/script.c,
- char/char2.c,
- common/mmo,h
- Ú‚µ‚­‚ÍAã‹Lƒtƒ@ƒCƒ‹‚̃Rƒƒ“ƒg‚È‚Ç‚ðŽQl‚É‚µ‚Ä‚­‚¾‚³‚¢B
-
-EƒJƒvƒ‰‘qŒÉŽÀ‘•‚É”º‚¢Amap_athena1.cnf‚ð­‚µ‘‚«Š·‚¦‚Ü‚µ‚½B
-
-E‘S‚ẴRƒƒ“ƒg•¶‚ðEUC‚©‚çSJIS‚É•ÏŠ·‚µ‚Ü‚µ‚½B
-
-----------
-
- Athena Dev. v2.1.1 Released: Middle July, 2003
- (c) 2003 Athena Project.
- http://project-yare.de/
-
-1. Athena(ƒAƒeƒi)‚ɂ‚¢‚Ä
-2. ‚±‚̃ŠƒŠ[ƒX‚ɂ‚¢‚Ä
-3. •K—v‚È•¨
-4. Žg‚¢•û
-5. Œ»Ý‚ÌŽd—l
-6. jŽ«
-7. –ÆÓŽ–€
-8. •åW
-9. English
-
-
-1. ƒAƒeƒi‚ɂ‚¢‚Ä
- ƒAƒeƒi‚Æ‚Í2003”N1ŒŽ”¼‚΂ɂł½0052.lzh‚ðƒx[ƒX‚Æ‚µ‚Äì‚ç‚ê‚Ä‚¢‚éƒGƒ~ƒ…ƒŒ[ƒ^‚̈ê‚‚ł·B
- Šî–{“I‚ȃ‰ƒCƒZƒ“ƒX‚̓IƒŠƒWƒiƒ‹‚ªGPL‚̉º‚É”z•z‚³‚ê‚Ä‚¢‚éˆ×A
- ‚±‚ê‚É]‚¢GPL‚̉º”z•z‚ð‹–‰Â‚µ‚Ü‚·B
- /*
- ‰ü—ǔłð”z•z‚·‚éꇂ͕K‚¸‚±‚ÌREADME‚ð‘‚«Š·‚¦‚Ä‚­‚¾‚³‚¢B
- ‰½ˆ‚ð‰ü—Ç‚µ‚½‚Ì‚©•ñ(athena@project-yare.de‚Ü‚Å)‚µ‚ĖႦ‚é‚Æ•‚©‚è‚Ü‚·B
- ƒoƒCƒiƒŠ‚Ì‚Ý‚Ì”z•z‚ÍGPLˆá”½‚Å‚·‚Ì‚Å"•K‚¸"ƒ\[ƒX‚à“Y•t‚µ‚Ä‚­‚¾‚³‚¢B
- */
- “®ì‚ÌŠm”F‚͈ȉº‚Ì’Ê‚è‚Ì‚Ýs‚Á‚Ä‚¢‚Ü‚·B
- // ‚½‚¾‚µŠ®àø‚É“®‚­Ž–‚ð•ÛØ‚·‚é‚à‚Ì‚Å‚ ‚è‚Ü‚¹‚ñ
- ‘ÎÛCPU: Intel PentiumŒn // PentiumIIˆÈã‚ÅŠm”F.
- FreeBSD 4.8R, 4.6.2R
- Linux RedHat 7.3
- cygwin + gcc 3.2 20020927 (prerelease)
- ŠJ”­Œ³URL: http://project-yare.de/
-
-
-2. ‚±‚̃ŠƒŠ[ƒX‚ɂ‚¢‚Ä
- ¡‰ñ‚̃ŠƒŠ[ƒX‚Í‘O‰ñ(V2.1)“¯—lŠJ”­”ł̃ŠƒŠ[ƒX‚Ì‚Ý‚Å‚·B
- 2.1‚É”ä‚׉º‹L‚Ì“_‚ªC³‚³‚ê‚Ä‚¢‚Ü‚·B
- map‚̃fƒtƒHƒ‹ƒgݒ肪ŠØ‘data.grf‚̂ݳí‚É“®ì‚·‚é‚悤‚É‚È‚Á‚Ä‚¢‚½“_
- common/timer.c‚âmap/script.c‚ÌŠô‚‚©‚̃oƒO
-
- v‘¬‚ÉUpdate‚ð‹­‚­„§‚·‚é‚à‚Ì‚Å‚Í‚ ‚è‚Ü‚¹‚ñ‚ªŠeŽ©‚Ì”»’f‚Ås‚Á‚ĉº‚³‚¢B
-
-
-3. •K—v‚È•¨
- data.grf //sdata.grf‚Í•K—v‚ɉž‚¶‚Ä
- account.txt //‘¶Ý‚µ‚È‚¢ê‡athena.sh‚ªŽ©“®¶¬‚µ‚Ü‚·
- conf/*.cnf //Map—p‚ÆChar—p‚Ì“ñŽí—Þ‚ ‚è‚Ü‚·
- conf/npc*.txt //npcÝ’è—pƒtƒ@ƒCƒ‹‚Å‚·B•¡”‚̃tƒ@ƒCƒ‹‚É•ª‚¯‚邱‚Æ‚ª‰Â”\‚Å‚·B
- db/*.txt //ƒAƒCƒeƒ€Ajobî•ñ‚È‚Ç
-
-
-4. Žg‚¢•û
- > tar xvfz athena-d?.?.tar.gz
- > cd athena-d?.?.tar.gz
- > make
- > vi conf/char_athena.cnf //IP(127.0.0.1)‚Ì•”•ª‚ðŠÂ‹«‚ɇ‚킹‚Ä•ÏX‚µ‚Ä‚­‚¾‚³‚¢
- > vi conf/map_athena.cnf //“¯ãA‚Ü‚½mapÝ’è‚È‚Ç‚ÍA‚±‚̃tƒ@ƒCƒ‹‚Ås‚¢‚Ü‚·B
- > ./athena.sh
- ã‹L‚ðs‚¦‚Î"‚½‚Ô‚ñ"‹N“®‚µ‚Ü‚·B
-
- •â‘«:
- conf/npc_sampleJ.txt‚ɂ̓XƒNƒŠƒvƒg‚Ì‘‚«•û‚ɂ‚¢‚ÄFX‚Èà–¾‚ª‹LÚ‚³‚ê‚Ä‚¢‚Ü‚·B
- ‚à‚µA“ÆŽ©‚ÌMapÝ’è‚ðs‚Á‚Ä‚Ý‚½‚¢l‚âAƒXƒNƒŠƒvƒg‚ð˜M‚肽‚¢•û‚ÍŽQl‚É‚µ‚Ä‚­‚¾‚³‚¢B
- ‚½‚¾‚µAŠJ”­’†‚Ì‚½‚߃XƒNƒŠƒvƒg‚ÌŽd—l‚ª•ÏX‚³‚ê‚é‰Â”\«‚ª‚‚¢‚Å‚·B
- command.txt‚É‚ÍŽÀ‘•Ï‚Ý‚Ì“ÁŽêƒRƒ}ƒ“ƒh‚ɂ‚¢‚Ä‚Ìà–¾‚ð‹LÚ‚µ‚Ä‚¢‚Ü‚·B
-
-
-5. Œ»Ý‚ÌŽd—l
- –{ŽI‚Æ”ä‚ׂè‚©‚µ‚¢(—Ⴆ‚΃vƒo‚ª•à‚­Aƒ|ƒŠƒ“‚ªƒAƒCƒeƒ€‚ðE‚í‚È‚¢‚È‚Ç)“_‚ÍA
- ‘S‚ÄŒ»ÝŠJ”­’†‚Ɉö‚é‚à‚Ì‚Å‚·B
- Œ»ó‚Æ‚µ‚ăLƒƒƒ‰ƒNƒ^Œn‹y‚у‚ƒ“ƒXƒ^[Œn‚̃oƒO•ñ‚Í–³Ž‹‚³‚ê‚é‰Â”\«‚ª‚‚¢‚Å‚·B
-
- ƒoƒO•ñ‚ɂ‚¢‚Ä•K‚¸”­¶ðŒ‚ð‚¨‘‚«‰º‚³‚¢B
- ‰º‚É‚ ‚é•ñ—pƒeƒ“ƒvƒŒ[ƒg‚ðŽg‚Á‚Ä•ñ‚µ‚Ä’¸‚­‚Æ•‚©‚è‚Ü‚·B
- •ñæ‚̓Gƒ~ƒ…”‚̊J”­ƒXƒŒ‚É‚Å‚àB
- ---- Athena v 2.0 (stable or develop) ----
- ygcc verzgcc -v‚ðŽÀsŽž‚É•\Ž¦‚³‚ê‚é“à—e
- y“®ìƒVƒXƒeƒ€zFreeBSD, Linux(ƒfƒBƒXƒgƒŠƒrƒ…[ƒWƒ‡ƒ“‚à), cygwin‚È‚Ç
- y”­¶“à—ezmap‚ª—Ž‚¿‚Ä‚µ‚Ü‚Á‚½Žž‚Ì•\Ž¦‚³‚ê‚Ä‚¢‚½ƒfƒoƒbƒOî•ñ‚È‚Ç‹ï‘Ì“I‚É‘‚¢‚Ä‚­‚¾‚³‚¢B
- y‘€ì“à—ez‹ï‘Ì“I‚É‚Ç‚ñ‚È‘€ì‚ðs‚Á‚½‚©‚ð‘‚¢‚Ä‚­‚¾‚³‚¢B
- ------------------ END -------------------
- —‘z‚̓eƒ“ƒvƒŒ‚ɉÁ‚¦‚Ämap.core‚È‚Çcoreƒtƒ@ƒCƒ‹‚ðUploader‚ɃAƒbƒv‚µ‚Ä’¸‚­‚±‚Æ‚Å‚·‚ª
- –â‘è‚ÌMap‚¾‚¯‚Ìó‘Ô‚É‚µcore‚Ì“f‚­—e—Ê‚É’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
- /*
- Šm”F‚µ‚½ŒÀ‚è‚Å‚Í324ŒÂ‚Ù‚Çmapƒf[ƒ^‚ð“Ç‚Ýž‚Ü‚¹‚é‚ÆA
- 40MB‹ß‚¢coreƒtƒ@ƒCƒ‹‚ð“f‚«o‚µ‚Ü‚· @FreeBSD
- cygwin‚ÌꇂÍstackdump‚Æ‚¢‚¤ƒtƒ@ƒCƒ‹‚É‚È‚é‚»‚¤‚Å‚·B
- ‚µ‚©‚µAcoreƒtƒ@ƒCƒ‹‚È‚Ç‚ðgzipˆ³k‚È‚Ç‚·‚ê‚Α啂ɬ‚³‚­‚È‚è‚Ü‚·B
- ‘å–}30MB‚Ìcoreƒtƒ@ƒCƒ‹‚ª2.9MB‚Ù‚Ç‚É‚È‚é‚悤‚Å‚·B
- ‚Å‚·‚Ì‚ÅA‚à‚µƒAƒbƒvƒ[ƒh‚·‚éꇂÍgzipˆ³k‚È‚ÇŠeŽ©s‚Á‚Ä‚­‚¾‚³‚¢B
- */
-
- ¡‰ñ‚̃ŠƒŠ[ƒX‚¾‚¯‚Å‚È‚­HISTORY‚ð쬂·‚é‚Æ‘å—Ê‚É‹Lq‚ª•K—v‚Ȉ×È—ª‚µ‚Ä‚¢‚Ü‚·B
- // ‘½‚¢“ú‚¾‚Æ–{“–‚ÉŒ‹\‚ ‚è‚Ü‚·‚Ì‚ÅddB
-
-
-6. jŽ«
- ¡‰ñ‚±‚ÌAthenaŠJ”­”Å‚ðo‚·‚É“–‚½‚Á‚ÄŠ´ŽÓ‚µ‚½‚¢•ûX(‡”Ô•s“¯)
- LemmingŽ (Project YARE)
- 0052Ž (Uploader)
- 35Ž (ƒGƒ~ƒ…ŠJ”­ƒXƒŒ)
- Johan LindhŽ(Author of memwatch)
- YARE forum‚ÌNPCî•ñ‚ð쬂µ‚½•ûX
- weissŒ¤‹†‰ïBBS‚Ì—lX‚Èî•ñƒtƒ@ƒCƒ‹‚ð쬂µ‚½•ûX
- ÅŒã‚ÉA.coreƒtƒ@ƒCƒ‹’B
-
-
-7. –ÆÓŽ–€
- Athena Project‚͈êØAthena‚Ì“®ì‚ÉŠÖ‚·‚é•ÛØ“™‚Ís‚¢‚Ü‚¹‚ñB
- ‚‚܂èAAthena‚Í–³•ÛØ‚Å‚·B
- athena@project-yare.de‚É“®ìE‘€ì“™‚ÉŠÖ‚·‚鎿–â‚È‚Ç‚ð‘—‚ç‚ê‚Ä‚àˆêØ‚¨“š‚¦‚Å‚«‚Ü‚¹‚ñB
- –”Athena‚ð—p‚¢‚½‚±‚Æ‚É‚æ‚趂¶‚½”íŠQE–â‘è“™‚ÌÓ”C‚͈êØAthena Project‚Í•‰‚¢‚Ü‚¹‚ñB
-
-
-8. •åW
- athena‚ÌŠJ”­‚ÉŽQ‰Á‚µ‚½‚¢//‹»–¡‚ª‚ ‚é‚Æ‚¢‚¤•û‚²˜A—‰º‚³‚¢B
- ‰äX‚Í‹M•û‚ÌŽQ‰Á‚ð‚¨‘Ò‚¿‚µ‚Ä‚¢‚Ü‚·B
- // ÅV”Å‚ª—~‚µ‚¢‚¾‚¯‚ʼn½‚狦—Í‚µ‚Ä’¸‚¯‚È‚¢‚Æ‚¢‚¤•û‚Í‚¨’f‚è‚Å‚·;-)
- [•åW—v€: ƒvƒƒOƒ‰ƒ}(2-3l)]
- ”N—î: •s–â
- «•Ê: •s–â
- Œ¾Œê: “ú–{Œê‚ª—‰ð‰Â”\
- “à—e: CŒ¾Œê‚à‚µ‚­‚ÍC++‚É‚æ‚éŠJ”­B(“Á‚Ƀlƒbƒgƒ[ƒN‚âDB‚ÌŒoŒ±‚ª—L‚é•û‘å•åW!)
- [•åW—v€: –|–ó(?l)]
- ”N—î: •s–â
- «•Ê: •s–â
- Œ¾Œê: “ú–{ŒêA‰pŒê‚ª—‰ð‰Â”\
- “à—e: •§—–¼ŒêA“ƈíŒêA¼”ljåŒêAˆÉ‘¾—˜ˆŸŒêA‘×(ƒ^ƒC)ŒêA’©‘NŒêA’†‘Œê‚Ö•¶Œ£AƒTƒCƒg‚È‚Ç‚Ì–|–ó
- ˜A—æ: athena@project-yare.de ŽG–±’S“–‚Ü‚ÅB
-
-
-9. English
- This release is just fixed some bugs in timer.c, script.c and map_athena1.conf.
-
-
-(c) 2003 Athena Project.
+--------------------
+//1162 by pizza
+EƒXƒpƒCƒ‰ƒ‹ƒsƒA[ƒXEƒ\ƒEƒ‹ƒuƒŒ[ƒJ[E”­™¤Eƒtƒ@ƒ‹ƒRƒ“ƒAƒTƒ‹ƒg‚ɂ‚¢‚Ä–{ŽI€‹’‚ÉC³
+
+ (db)
+ skill_db.txt
+ ƒXƒpƒCƒ‰ƒ‹ƒsƒA[ƒXEƒ\ƒEƒ‹ƒuƒŒ[ƒJ[‚ÌŽË’ö
+ ƒ\ƒEƒ‹ƒuƒŒ[ƒJ[‚ª‰r¥–WŠQ‰Â
+ skill_cast_db.txt
+ ƒ\ƒEƒ‹ƒuƒŒ[ƒJ[‚̉r¥ŽžŠÔ
+
+ (src/map)
+ battle.c
+ ”­™¤Eƒtƒ@ƒ‹ƒRƒ“ƒAƒTƒ‹ƒg‚ÌŒvŽZŽ®
+ ƒXƒpƒCƒ‰ƒ‹ƒsƒA[ƒX‚ªƒjƒ…ƒ}‚Å–³Œø‰»
+
+--------------------
+//1161 by Nameless
+
+EƒoƒCƒIƒvƒ‰ƒ“ƒg‚É‚æ‚颊Òmob‚ÌID‚ƃXƒLƒ‹‚ð–{ŽI€‹’‚ÉC³
+@¦ŒÄ‚Ño‚¹‚锂ɂ‚¢‚Ä‚Í‚Ü‚¾–¢ŽÀ‘•c
+
+ (db)
+ mob_avail.txt
+ ƒNƒ‰ƒCƒAƒ“ƒg‚É‚æ‚Á‚Ä”­¶‚·‚é‰Â”\«‚Ì‚ ‚éƒOƒ‰–â‘è‚Ì
+ Žb’è‘Ήž
+ mob_db.txt
+ ƒoƒCƒIƒvƒ‰ƒ“ƒg—pmob‚̃Xƒe‚ðˆê•”C³
+ mob_skill_db.txt
+ ƒoƒCƒIƒvƒ‰ƒ“ƒg—pmob‚ɃXƒLƒ‹‚ðC³
+
+ (src/map)
+ skill.c - case AM_CANNIBALIZE: C³
+
+--------------------
+//1160 by Nameless
+
+E1158‚Ìfix
+@ƒtƒFƒAƒŠ[ƒt‚Ì”ñˆÚ“®‰»‚ƌĂÑo‚³‚ꂽMOB‚ÌHP‚ð‰º•ûC³
+
+ (src/map)
+ skill.c - case AM_CANNIBALIZE: C³
+
+--------------------
+//1158 by ‚à‚Á‚³‚è
+EmobŒã‘ÞŽÀ‘• @Ž©•ª‚ªŒü‚¢‚Ä‚é•û‚Æ‚Í‹t‚Éskilllv‚Ì•ª‚®‚ç‚¢“®‚«‚Ü‚·
+ —£‚ê‚·‚¬‚éŒÄ‚Ñ–ß‚³‚ê‚È‚¢‚Ì‚ÅŽæ‚芪‚«ŒÄ‚Ñ–ß‚µ‚ðC³
+ IW‚̎΂߈ʒu‚ª‚¨‚©‚µ‚©‚Á‚½‚Ì‚ðC³iƒoƒO•ñƒXƒŒƒbƒh part8 >>110)
+
+ (src/map)
+ skill.c ŒÄ‚Ñ–ß‚µC³AŒã‘ޒljÁAIWC³
+ skill.h
+ mob.c
+ map.h
+ (db)
+ skill_db.txt
+--------------------
+//1158 by Nameless
+
+EƒAƒ‹ƒPƒ~‚̃oƒCƒIƒvƒ‰ƒ“ƒg‚ðC³
+@ŠeLV‚É‚ ‚킹‚ÄAƒ}ƒ“ƒhƒ‰ƒSƒ‰Aƒqƒhƒ‰Aƒtƒ[ƒ‰AƒtƒFƒAƒŠ[ƒtAƒWƒIƒOƒ‰ƒtƒ@[
+@‚ðŒÄ‚Ño‚·‚悤‚É‚µ‚½
+
+ (src/map)
+ skill.c - case AM_CANNIBALIZE: C³
+
+--------------------
+//1157 by eigen
+
+Eƒo[ƒhƒ_ƒ“ƒT[ƒXƒLƒ‹‚ÌŽg—p‚ÅMAPŽI‚ª—Ž‚¿‚é•s‹ï‡‚ðC³
+
+ (src/map)
+ skill.c - skill_unit_onout() C³
+
+--------------------
+//1156 by eigen
+
+E¹‘Ì~•ŸŽg—pŽžAƒ‚ƒ“ƒN‚ªl”ƒJƒEƒ“ƒg‚³‚ê‚Ä‚¢‚È‚©‚Á‚½•s‹ï‡‚ðC³
+ithanks to –{ŽI‘ŠˆáƒXƒŒpart3 >>121Žj
+Eƒo[ƒhƒ_ƒ“ƒT[ƒXƒLƒ‹‚ÌŒø‰Ê‚ªØ‚ê‚È‚©‚Á‚½•s‹ï‡‚ðC³
+
+ (src/map)
+ skill.c - skill_unit_onout(), skill_check_condition_char_sub() C³
+
+--------------------
+//1155 by latte
+EƒfƒBƒ{[ƒVƒ‡ƒ“‚ɉr¥ŽžŠÔ•t—^
+EƒTƒNƒŠƒtƒ@ƒCƒXF”{—¦C³‚ƃ{ƒX‚É—LŒø‚ÉB
+EƒOƒ‰ƒ“ƒhƒNƒƒX‚̃GƒtƒFƒNƒg‚ÌC³
+
+ (db)
+ skill_cast_db.txt
+ skill_db.txt
+ (src/map)
+ battle.c
+
+--------------------
+//1154 by eigen
+
+Eƒo[ƒhƒ_ƒ“ƒT[ƒXƒLƒ‹Žg—p‚ÅMAPŽI‚ª—Ž‚¿‚é–â‘è‚ðC³
+EƒSƒXƒyƒ‹‚ÌŽÀ‘•
+Eƒ}ƒOƒiƒ€ƒuƒŒƒCƒN‚ÌŽd—l‚ð–{ŽI‚ɇ‚킹‚Ä•ÏX(‰Î‘®«’ljÁƒ_ƒ[ƒW‚Í–¢ŽÀ‘•‚Å‚·)
+
+ (db)
+ skill_cast_db.txt - ƒSƒXƒyƒ‹, ƒ}ƒOƒiƒ€ƒuƒŒƒCƒN‚ÉŠÖ‚·‚éC³
+ skill_require_db.txt - ƒ}ƒOƒiƒ€ƒuƒŒƒCƒN‚ÉŠÖ‚·‚éC³
+ skill_unit_db.txt - ƒSƒXƒyƒ‹‚ÉŠÖ‚·‚éC³
+ (src/map)
+ battle.c - battle_calc_pet_weapon_attack(), battle_calc_mob_weapon_attack(),
+ battle_calc_pc_weapon_attack(), battle_calc_magic_attack() C³
+ clif.c - clif_parse_UseSkillToId(), clif_parse_UseSkillToId(),
+ clif_parse_WalkToXY(), clif_parse_ActionRequest(),
+ clif_parse_UseSkillToId(), clif_parse_UseSkillMap() C³
+ map.h - MAX_STATUSCHANGE‚Ì‘‰Á
+ pc.c - pc_natural_heal_sub() C³
+ skill.h - ƒ}ƒOƒiƒ€ƒuƒŒƒCƒN, ƒSƒXƒyƒ‹‚ÉŠÖ‚·‚éó‘ÔˆÙíƒe[ƒuƒ‹’ljÁ
+ skill.c - skill_castend_damage_id(), skill_castend_nodamage_id(),
+ skill_unit_onout(), skill_unit_onplace_timer(),
+ skill_init_unit_layout() C³
+ status.c - status_change_start(), status_change_end() C³
+
+--------------------
+//1153 by ‚Û‚¦
+
+Eƒq[ƒ‹AƒTƒ“ƒN‚ÌC³
+@(ƒCƒrƒ‹ƒhƒ‹ƒCƒhC‘•”õ’†‚ÉPv,GvˆÈŠO‚¾‚ƃ_ƒ[ƒW‚ªo‚È‚¢‚悤‚ÉC³)
+@(ŠY“–PC‚Ƀq[ƒ‹‚ðŽg—p‚µ‚½ê‡SP‚¾‚¯Á”ï)
+E•ú’u‚³‚ê‚Ä‚éversion.h‚ÌXV
+ (src/map)
+ skill.c - skill_castend_id(),skill_unit_onplace_timer() C³
+ (src/common)
+ version.h - mod version 1153
+--------------------
+//1152 by p
+
+EzΔ­Œ©C³
+ (db)
+ item_db.txt - ŒÃ‚¢Šª•¨‚Ì getitem ”Ô†‚ð–ß‚µ
+ (src/map)
+ itemdb.c - zΔ­Œ©Žž¶¬ˆ—‚Ì•ÏX
+ mob.c - zΔ­Œ©ˆ—‚Ì•ÏX
+--------------------
+//1151 by p
+
+Eƒuƒ‰ƒbƒNƒXƒ~ƒXƒXƒLƒ‹zΔ­Œ©‚ÌŽÀ‘•(‰¼)
+ (conf)
+ battle_athena.conf - zΔ­Œ©—¦‚ÌŽw’è
+ (db)
+ item_findingore.txt - z΃hƒƒbƒv—¦‚ÌŽw’è
+ item_db.txt - ŒÃ‚¢Šª•¨‚Ì getitem ”Ô†•ÏX
+ (src/map)
+ itemdb.c - db/item_findingore.txt ‚Ì“Ç‚Ýž‚Ý‚Æ”­Œ©Žž¶¬
+ battle.h - Ý’è•ÛŽ—p‚Ì€–ڒljÁ
+ battle.c - Ý’è“Ç‚Ýž‚݈—’ljÁ
+ mob.c - zΔ­Œ©ˆ—’ljÁ
+
+--------------------
+//1150 by Theia
+
+Eƒxƒmƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚ðjROŽd—l‚É•ÏX
+@(Š®‘S‚Å‚Í‚È‚¢‚̂ŕ⊮Šó–])
+EƒVƒƒ[ƒvƒVƒ…[ƒeƒBƒ“ƒO‚ÌŒvŽZŽ®‚ð•ÏX
+@(¡‚Ü‚Å‚ÌŒvŽZŽ®‚¾‚Æ•K’†‚µ‚Ä‚¢‚½)
+ (db)
+ skill_cast.txt
+ skill_require_db.txt
+ (src/map)
+ skill.c - ƒxƒmƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚Ì”­“®ðŒ‚ð•ÏX
+ battle.c - ƒxƒmƒ€ƒXƒvƒ‰ƒbƒVƒƒ[,ƒVƒƒ[ƒvƒVƒ…[ƒeƒBƒ“ƒO‚Ì”{—¦‚ð•ÏX
+
+--------------------
+//1149 by eigen
+
+Eˆê•”‚̃_ƒ“ƒT[ƒo[ƒhƒXƒLƒ‹‚̉‰‘tƒXƒLƒ‹ã‚©‚ço‚é‚ÆMAPŽI‚ª—Ž‚¿‚é•s‹ï‡‚ðC³
+
+ (src/map)
+ skill.c - skill_unit_onout() C³
+
+--------------------
+//1148 by eigen
+
+EƒXƒgƒŠƒbƒvƒXƒLƒ‹‚ª‰r¥’†’f‚³‚ê‚È‚¢‚悤•ÏX
+EƒXƒgƒŠƒbƒvƒXƒLƒ‹¬Œ÷—¦‚̃XƒLƒ‹ƒŒƒxƒ‹”äd‚ð5‚É•ÏX
+EƒoƒbƒNƒXƒ^ƒu‚ÌŽË’ö‚ð•Ší‚ÉŠÖŒW‚È‚­1‚É•ÏX
+EƒoƒbƒNƒXƒ^ƒuŽg—pŽžA‹|‚ð‘•”õ‚µ‚Ä‚¢‚é‚È‚çƒ_ƒ[ƒW”¼Œ¸‚É•ÏX
+EƒAƒVƒbƒhƒeƒ‰[‚ƃfƒ‚ƒ“ƒXƒgƒŒ[ƒVƒ‡ƒ“‚ª‰r¥’†’f‚³‚ê‚é‚悤•ÏX
+EƒAƒVƒbƒhƒeƒ‰[Žg—pŒãA‘ŠŽè‚ÌŠZ‚ð”j‰ó‚·‚邱‚ƂɬŒ÷‚µ‚½ê‡ƒVƒ‡ƒbƒNƒGƒ‚‚ðo‚·‚悤•ÏX
+Eƒƒ‹ƒgƒ_ƒEƒ“‚Å”j‰ó‚Å‚«‚é‰ÓŠ‚ð•Ší‚ÆŠZ‚Ì‚Ý‚É•ÏX
+Eƒ_ƒ“ƒT[ƒo[ƒh‚̉‰‘tƒXƒLƒ‹”͈͊O‚Éo‚Ä‚àŒø‰Ê‚ª20•bŽ‘±‚·‚é‚悤•ÏX
+i‚½‚¾‚µŽ„‚ð–Y‚ê‚È‚¢‚łƇ‘tƒXƒLƒ‹‚Íœ‚­j
+E‘qŒÉ‚ÌÅ‘åŽû—e—Ê‚ð300‚É•ÏX
+iˆÈãthanks to –{ŽI‘ŠˆáƒXƒŒPart3 >>115Žj
+Eƒƒ‹ƒgƒ_ƒEƒ“ŠZ”j‰óŠm—¦‚ð0.7`7%‚É•ÏX
+
+ (db)
+ skill_db.txt - cast_cancelArange‚ÌC³
+ skill_unit_db.txt - (1148-fix‚ÌŽæ‚èž‚Ý)
+ (src/common)
+ mmo.h - MAX_STORAGE‚ð300‚É
+ (src/map)
+ battle.c - battle_calc_pc_weapon_attack() C³
+ skill.c - skill_additional_effect(), skill_castend_nodamage_id(),
+ skill_castend_damage_id(), skill_unit_onout() C³
+
+--------------------
+//1147 by eigen
+
+EƒCƒ“ƒfƒ…ƒAŽg—pŒãA10•bŒo‚½‚È‚¢‚ÆÄŽg—p‚Å‚«‚È‚¢‚悤•ÏX
+EƒV[ƒYƒ‚[ƒh‚ł̓Cƒ“ƒfƒ…ƒA‚ðŽg—p‚·‚é‚ÆMDEF‚ªã‚ª‚邾‚¯‚É•ÏX
+EŽc‰eŽg—pŒãA2•bŒo‚½‚È‚¢‚ƈ¢C—…‚ðŽg—p‚Å‚«‚È‚¢‚悤•ÏX
+
+ (src/map)
+ map.h - #define MAX_SKILL_ID, unsigned int skillstatictimer[MAX_SKILL_ID] ’ljÁ
+ clif.c - clif_parse_UseSkillToId(), clif_damage() C³
+ skill.c - skill_castend_nodamage_id(), skill_castend_pos2(), skill_use_id() C³
+ pc.c - pc_setnewpc(), pc_authok() C³
+ status.c - status_get_dmotion() C³
+ battle.c - battle_calc_damage() C³
+
+--------------------
+//1146 by eigen
+
+EƒCƒ“ƒfƒ…ƒAŽg—pŽžLv‚ɉž‚¶‚ÄMDEF‚ªã‚ª‚é‚悤‚É•ÏX
+EƒCƒ“ƒfƒ…ƒAŽg—p’†7‰ñƒ_ƒ[ƒW‚ðŽó‚¯‚é‚Ɖ𜂷‚é‚悤•ÏX
+EΓŠ‚°‚̌Œèƒ_ƒ[ƒW‚ð50‚É•ÏX
+
+ (src/map)
+ battle.c - battle_calc_damage(), battle_calc_misc_attack() C³
+ status.c - status_calc_pc(), status_change_start(), status_change_end() C³
+
+--------------------
+//1145 by End_of_exam
+
+Estart ‚̃`ƒFƒbƒNŠÔŠu‚ª’Z‚·‚¬‚½‚Ì‚ðC³(start)
+Eskill_unit_effect() ‚©‚ç–³ŒÀƒ‹[ƒv‚É“Ë“ü‚µ‚ÄAƒXƒ^ƒbƒNƒI[ƒo[ƒtƒ[‚Å—Ž‚¿‚é
+@‰Â”\«‚ª‚ ‚éƒoƒO‚ðC³(skill.c)
+Eƒyƒbƒg‚Ì“Ç‚Ýž‚Ý‚ÉŽ¸”s‚µ‚½Žž‚É—Ž‚¿‚éƒoƒO‚ðC³(pet.c)
+E‚QdƒƒOƒCƒ“‚ÌØ’fˆ—‚ªˆá‚Á‚Ä‚¢‚½ƒoƒO‚ðC³(map.c)
+
+E1142‚̃}ƒOƒkƒXƒGƒNƒ\ƒVƒYƒ€‚ÌC³‚ðŒ³‚É–ß‚·(skill.c)
+EƒƒfƒBƒ^ƒeƒBƒI‚ÌSP‰ñ•œ—ÊC³‚ÌŽæ‚èž‚Ý(skill.c thanks to ‚È‚È‚µ‚³‚ñ)
+
+ (/)
+ start - ƒ`ƒFƒbƒNŠÔŠu‚ðC³
+
+ (src/map)
+ map.c - map_quit() C³
+ pet.c - pet_recv_petdata() C³
+ skill.c - skill_unit_onplace_timer() , skill_unit_effect() C³
+ status.c - status_calc_pc() C³
+
+--------------------
+//1144 by ¹
+
+EVC‚ŃRƒ“ƒpƒCƒ‹‚µ‚½‚Æ‚«Œx‚ªo‚é‚Ì‚ðC³B
+EŠÈˆÕƒAƒCƒeƒ€Eƒ‚ƒ“ƒXƒ^[¢ŠÒƒRƒ}ƒ“ƒh@im‚ð’ljÁB
+E@im’ljÁ‚É”º‚¢AEGIS‚ÅŽg‚í‚ê‚Ä‚¢‚é/item,/monster‚ðŽÀ‘•B
+@(AEGIS‚ÌŽd—l‚É‘¥‚è‘•”õ‚Í1ŒÂ’PˆÊE–¢ŠÓ’è‚Å
+@‚Ù‚©‚̃AƒCƒeƒ€‚Í30ŒÂ’PˆÊEŠÓ’èÏ‚Ý‚Åo‚Ü‚·B)
+E@monster‚ð¢ŠÒ•C”“ü—Í‚È‚µ‚Å¢ŠÒ‚Å‚«‚é‚悤‚É‚µ‚½B
+EƒRƒ}ƒ“ƒh“ü—Í‚ÌÛ‚Æ‚ ‚éðŒ‚ð–ž‚½‚·‚Æ
+@ƒoƒbƒtƒ@ƒI[ƒo[ƒtƒ[‚ª”­¶‚·‚éƒoƒO‚ðC³B
+ (src/map)
+ atcommand.h C³B
+ atcommand.c
+ atcommand_monster() C³B
+ atcommand_itemmonster() ’ljÁB
+ clif.c
+ clif_parse_GMkillall() C³B
+ clif_parse_GMsummon() C³B
+ clif_parse_GMitemmonster() ’ljÁB
+ status.c
+ status_change_start() C³B
+ (db)
+ packet_db.txt C³B
+ (conf)
+ msg_athena.conf C³B
+ atcommand_athena.conf C³B
+
+--------------------
+//1143 by End_of_exam
+
+Emap_quit(), pc_setpos() ‚ðFX®—(map.c pc.c)
+Eƒ‚ƒ“ƒXƒ^[‚ªƒoƒVƒŠƒJ‚ðŽg‚¤‚Æ—Ž‚¿‚éƒoƒO‚ðC³(skill.c)
+Eƒ{ƒXƒ‚ƒ“ƒXƒ^[‚ɃƒL‚Ì‹©‚Ñ‚ªŒø‚¢‚Ä‚¢‚½‚Ì‚ðC³(mob.c)
+Eƒ_ƒ“ƒX“r’†‚ɃT[ƒo[“à‚̕ʂ̃}ƒbƒv‚Ɉړ®‚µ‚½ê‡AƒXƒLƒ‹ƒ†ƒjƒbƒg‚ªÁ‚¦‚È‚¢
+@i“]‘—‘O‚̃}ƒbƒv‚ÉŽc‚Á‚Ä‚¢‚éjƒoƒO‚ðC³B(pc.c)
+E1134‚ŃT[ƒo[ŠÔ‚̃[ƒvƒ|[ƒ^ƒ‹‚ðŽg‚Á‚½Žž‚ÉAƒXƒLƒ‹Žg—pŽÒ‚ªæ‚Á‚½‚çƒT[ƒo[‚ª
+@—Ž‚¿‚éƒoƒO‚ðC³(skill.c)
+E1134‚ŃnƒG‚̉H‚ðŽg‚Á‚ăT[ƒo[ŠÔ‚ðˆÚ“®‚µ‚½ê‡AƒAƒCƒeƒ€‚ªŒ¸‚ç‚È‚¢ƒoƒO‚ðC³(pc.c)
+
+ (src/map)
+ map.c - map_quit() C³
+ mob.c - mobskill_castend_id() , mobskill_castend_pos(),
+ mobskill_use_id(), mobskill_use_pos() C³
+ pc.c - pc_useitem(), pc_setpos() C³Apc_remove_map() ’ljÁ
+ pc.h - pc_remove_map() ’ljÁ
+ skill.c - skill_castend_nodamege_id(), skill_unit_onplace() C³
+
+--------------------
+//1142 by ‚Âñ
+Eƒ}ƒOƒkƒXƒGƒNƒ\ƒVƒYƒ€‚ÅŽí‘°‚ɃAƒ“ƒfƒbƒg‚ðŽ‚ƒ‚ƒ“ƒXƒ^[‚É“–‚½‚ç‚È‚©‚Á‚½‚Ì‚ðC³
+ (src/map)
+ skill.c - && race!=1‚ð’ljÁ
+
+--------------------
+//1141.1 by BDPQ‹â [ 2005/02/21 ]
+E1141‚Ì“Y•t–Y‚ê‚̒ljÁ‚Å‚·B\‚µ–ó‚ ‚è‚Ü‚¹‚ñ‚Å‚µ‚½B
+EGMƒRƒ}ƒ“ƒh‚ðs‚Á‚½Žž‚̃ƒbƒZ[ƒW‚ð’ljÁ‚µ‚Ü‚µ‚½B
+
+ (conf)
+ msg_athena.conf - 113`117 ’ljÁ (@reload` ‚ðs‚Á‚½Žž‚̃ƒbƒZ[ƒW‚ð’ljÁ)
+
+--------------------
+//1141 by BDPQ‹â [ 2005/02/20 ]
+EGMƒRƒ}ƒ“ƒh‚ð’ljÁ
+ @reloadatcommand - atcommand_athena.conf ‚ðÄ“Çž‚·‚é
+ @reloadbattleconf - battle_athena.conf ‚ðÄ“Çž‚·‚é
+ @reloadgmaccount - gm_account_filename (ƒfƒtƒHƒ‹ƒg GM_account.txt ) ‚ðÄ“Çž‚·‚é
+ @reloadstatusdb - job_db1.txt / job_db2.txt / job_db2-2.txt / refine_db.txt / size_fix.txt ‚ðÄ“Çž‚·‚é
+ @reloadpcdb - exp.txt / skill_tree.txt / attr_fix.txt ‚ðÄ“Çž‚·‚é
+EGMƒRƒ}ƒ“ƒhu@reloadmobdbv‚Ńyƒbƒg‚̃f[ƒ^ƒx[ƒX‚àÄ“Çž‚·‚é‚悤‚É•ÏX
+ * @reload` ‚ɂ̓Nƒ‰ƒCƒAƒ“ƒg‚̃ŠƒƒO‚ª•K—v‚Èꇂà—L‚è‚Ü‚·B
+EGMƒRƒ}ƒ“ƒhu@who+v‚ŃŒƒxƒ‹‚à•\Ž¦‚·‚é‚悤‚É•ÏX
+Eƒq[ƒ‹‚ð‰½ƒŒƒxƒ‹ˆÈã‚Å9999ŒÅ’è‚É‚·‚é‚©‚̃IƒvƒVƒ‡ƒ“(heal_counterstop)’ljÁ
+
+ (conf)
+ atcommand_athena.conf - reloadatcommand reloadbattleconf reloadgmaccount reloadstatusdb reloadpcdb ’ljÁ (ƒfƒtƒHƒ‹ƒg99)
+ battle_athena.conf - heal_counterstop ’ljÁ (ƒfƒtƒHƒ‹ƒg11)
+ help.txt - reloadatcommand reloadbattleconf reloadgmaccount reloadstatusdb reloadpcdb who+ ‚Ìà–¾‚ð’ljÁ
+
+ (doc)
+ conf_ref.txt - 5. conf/battle_athena.conf •ÒW (heal_counterstop ‚Ìà–¾‚ƃTƒ“ƒvƒ‹‚ð’ljÁ)
+ - 6. atcommand_athena.conf •ÒW (à–¾‚ƃTƒ“ƒvƒ‹‚ÉÄ“ÇžŠÖ˜A‚ð’ljÁ)
+
+ (src/map)
+ atcommand.c - AtCommandInfo atcommand_info •ÒW (\‘¢‘Ì’è‹`)
+ - atcommand_whop() •ÒW (ƒvƒŒƒCƒ„[‚̃Œƒxƒ‹‚à•\Ž¦‚·‚é‚悤•ÏX)
+ - atcommand_reloadatcommand() ’ljÁ (atcommand_athena.conf Ä“Çž)
+ - atcommand_reloadbattleconf() ’ljÁ (battle_athena.conf Ä“Çž)
+ - atcommand_reloadgmaccount() ’ljÁ (gm_account_filename Ä“Çž)
+ - atcommand_reloadstatusdb() ’ljÁ (ƒXƒe[ƒ^ƒXŠÖ˜ADB Ä“Çž)
+ - atcommand_reloadpcdb() ’ljÁ (ƒvƒŒƒCƒ„[ŠÖ˜ADB Ä“Çž)
+ - atcommand_reloadmobdb() •ÒW (ƒyƒbƒg‚̃f[ƒ^ƒx[ƒX‚à“Çž‚ނ悤•ÏX)
+ atcommand.h - AtCommandType •ÒW (\‘¢‘Ì’è‹`)
+
+ battle.c - battle_config_read() •ÒW (heal_counterstop ‚̒ljÁ)
+ battle.h - Battle_Config •ÒW (heal_counterstop ‚̒ljÁ)
+
+ skill.c - skill_castend_nodamage_id() •ÒW (9999ƒq[ƒ‹•”‚ð battle_athena.conf ‚ðŽQÆ‚·‚é‚悤•ÏX)
+
+ pet.h - int read_petdb(); ’ljÁ (ƒyƒbƒgŠÖ˜ADB Ä“Çž—p)
+
+ pc.h - int pc_readdb(void); ’ljÁ (ƒvƒŒƒCƒ„[ŠÖ˜ADB Ä“Çž—p)
+
+ status.h - int status_readdb(void); ’ljÁ (ƒXƒe[ƒ^ƒXŠÖ˜ADB Ä“Çž—p)
+
+--------------------
+//1140 by eigen
+Eˆê•”‚̊‹«‚Åathena-start‚Æstart‚ª³í‚É“®ì‚µ‚Ä‚¢‚È‚©‚Á‚½ƒoƒO‚ðC³
+
+ athena-start - ‰üsƒR[ƒh‚ð0A‚É“ˆê
+ start - ‰üsƒR[ƒh‚ð0A‚É“ˆê
+
+--------------------
+//1139 by ‚à‚Á‚³‚è
+ENPCŽæ‚芪‚«ŒÄ‚Ñ–ß‚µƒXƒLƒ‹ŽÀ‘•
+EƒRƒƒ“ƒg‚³‚ê‚Ä‚é9999ƒq[ƒ‹(skilllv>10‚ÌŽž)AL”͈̓ƒeƒI(skilllv>10‚ÌŽž)AL”͈̓nƒ“ƒ}[ƒtƒH[ƒ‹(skilllv>5‚ÌŽž)‚̃Rƒƒ“ƒgŽæ‚èŠO‚µB
+EL”͈Ílov‚Ì•t‚¯‰Á‚¦(skilllv>10‚ÌŽž)
+—á
+1312,Žæ‚芪‚«ŒÄ‚Ñ–ß‚µ—ƒ^[ƒgƒ‹ƒWƒFƒlƒ‰ƒ‹,attack,354,1,3000,0,0,no,self,always,0,,,,,,10
+1063,9999ƒq[ƒ‹—ƒ‹ƒiƒeƒBƒbƒN,idle,28,11,10,2000,60000,yes,self,always,0,,,,,,@
+
+ (src/map)
+ skill.c npc_recallƒXƒLƒ‹’ljÁ,ã‹L‚̃Rƒƒ“ƒgŽæ‚èŠO‚µ
+ skill.h NPC_RECALL = 354‚ð’ljÁ
+ mob.c ƒXƒLƒ‹’ljÁ‚Ì‚½‚ß‚ÉuŽæ‚芪‚«ƒ‚ƒ“ƒXƒ^[‚̈—v•”•ª‚É•t‚¯‰Á‚¦
+ mob.h int mob_countslave(struct mob_data *md);‚ð’ljÁ
+ map.h struct mob_data‚Érecall_flag‚Ærecallmob_countƒƒ“ƒo[’ljÁ
+ (db)
+ skill_db.txt ƒXƒLƒ‹’ljÁ
+
+--------------------
+//1138 by End_of_exam
+
+E1132‚Ìsocket.c‚É•´‚êž‚ñ‚Å‚¢‚½‚©‚È‚è[‚ȃoƒOi‘—Mƒf[ƒ^‚ªƒ‰ƒ“ƒ_ƒ€‚É
+@‘‚«Š·‚í‚é‰Â”\«‚ª‚ ‚éƒoƒOj‚ðC³(socket.c)
+E1134‚Å‘g‚Ýž‚ñ‚¾ƒAƒCƒeƒ€dupe‘Îô‚ª•sŠ®‘S‚¾‚Á‚½‚Ì‚ðC³(pc.c party.c guild.c)
+
+ (src/common/)
+ socket.c - send_from_fifo() C³
+
+ (src/map)
+ pc.c - pc_setpos() C³
+ party.c - FXC³
+ guild.c - FXC³
+
+--------------------
+//1137 by ‚¢‚Ç
+
+EƒT[ƒo[ƒXƒiƒbƒvƒVƒ‡ƒbƒg
+
+--------------------
+//1136 by by eigen
+
+E1135‚ÅÁ‚¦‚Ä‚¢‚½battle_athena.conf‚Ì€–ڂƃfƒtƒHƒ‹ƒg’l‚𕜊ˆ
+Econf_ref.txt‚Énext_exp_limit‚Ìà–¾‚ð’ljÁ
+
+ (conf)
+ battle_athena.conf - Á‚¦‚½€–ڂƃfƒtƒHƒ‹ƒg’l‚𕜊ˆ
+ (doc)
+ conf_ref.txt - next_exp_limit‚Ìà–¾‚ð’ljÁ
+
+--------------------
+//1135 by by Toshi^2
+Eƒpƒbƒ`1125‚ÅC³‚³‚ꂽAŒoŒ±’l‚ÌãŒÀÝ’è‚ð]—ˆ•ûŽ®‚̧ŒÀ–³‚µ‚à‘I‚ׂé‚悤‚É•ÏX
+
+ (db)
+ battle_athena.conf - next_exp_limit‚ð’ljÁB
+ (src/map)
+ battle.c - battle_config_read() C³
+ battle.h - struct Battle_Config{}‚É int next_exp_limit; ‚ð’ljÁB
+ pc.c - pc_gainexp() C³
+
+--------------------
+//1134 by End_of_exam
+
+E1132‚Å#undef close‚ð–Y‚ê‚Ä‚¢‚½ƒoƒO‚ðC³(socket.c)
+E1133‚̃AƒCƒeƒ€dupe‘Îô‚ª•sŠ®‘S‚¾‚Á‚½‚Ì‚ðC³(map.c)
+Eathena-start stop , kill ‚̇”Ô‚ðmap -> char -> login ‚É•ÏX
+@@@@(athena-start thanks to eigen‚³‚ñ)
+
+ (/)
+ athena-start - athena-start stop , kill ‚̇”ÔC³
+
+ (src/common)
+ socket.c - #undef close ’ljÁ
+
+ (src/map)
+ map.c - map_quit() C³
+
+--------------------
+//1133 by End_of_exam
+
+Emapflag nosave ‚ªŽw’肳‚ꂽƒ}ƒbƒv‚ÅŽ€‚ñ‚ŃŠƒXƒ^[ƒg‚·‚鎞‚ÉAƒZ[ƒuƒ|ƒCƒ“ƒg‚ª
+@•Êƒ}ƒbƒvƒT[ƒo[‚É‚ ‚é‚ÆA(nul,0,0)‚É”ò‚΂³‚ê‚Ä‚¢‚½ƒoƒO‚ðC³(pc.c)
+Eƒ}ƒbƒvƒT[ƒo[‚𕪔z‚µ‚Ä‚¢‚鎞‚ÉA×H‚ð‚µ‚½“ÁŽê‚ȃc[ƒ‹‚ðŽg‚¤‚±‚Æ‚É‚æ‚Á‚ÄA
+@ƒAƒCƒeƒ€‚ªdupe‚Å‚«‚½ƒoƒO‚ðC³B(pc.c)
+Ebuildin_menu, buildin_select() ‚ªƒoƒbƒtƒ@ƒI[ƒo[ƒtƒ[‚ð‹N‚±‚µ‚Ä‚¢‚½
+@ƒoƒO‚ðC³(script.c)
+
+ (src/map)
+ pc.c - pc_makesavestatus(), pc_setpos(), pc_autosave_sub() C³
+ script.c - buildin_menu(), buildin_select() C³
+
+--------------------
+//1132 by End_of_exam
+E@users ƒRƒ}ƒ“ƒh(ƒT[ƒo[“à‚Ìl”ƒ}ƒbƒv‚ð•\Ž¦)‚ð’ljÁ(atcommand.c / h)
+Eguild_check_alliance() ‚ðŒÄ‚Ño‚·‚Æ‚«‚̃`ƒFƒbƒN‚ð’ljÁ(mob.c battle.c)
+Eƒ}ƒbƒvƒT[ƒo[•ª”zŽž‚ɃMƒ‹ƒh‚̃ƒ“ƒo[‚ª”²‚¯‚½ŽžA‚»‚̃Mƒ‹ƒhƒƒ“ƒo[‚ª
+@ˆêl‚àƒƒOƒCƒ“‚µ‚Ä‚¢‚È‚¢ƒ}ƒbƒvƒT[ƒo[‚ª—Ž‚¿‚Ä‚¢‚½‚Ì‚ðC³(guild.c)
+E1130‚ÅŒ©Ø‚è‚̉ñ”ð—¦ã¸‚ªÁ‚¦‚Ä‚¢‚½‚Ì‚ð–ß‚·(status.c)
+Epid ‘Ήž”Å‚Ìstart, athena-start ‚ð“‡(start , athena_start)
+E“c‘ã–C‘ÎôAShinomori‚³‚ñ‚Ì do_sendrecv() ‚‘¬‰»‚ð‘g‚Ýž‚Þ
+@(socket.c socket.conf Makefile)
+Esocket ‚Ì‚‘¬‰»
+@@1. FIFOFLUSH ‚ªŽÀs‚³‚ê‚é•p“x‚ð‰º‚°‚é(socket.c char.c)
+@@2. •s³‚Èfd‚ð0 ‚É•ÏX(socket.c socket.h chrif.c char.c)
+
+ (/)
+ start - pid ƒtƒ@ƒCƒ‹‚ɑΉž‚·‚é‚悤‚ÉC³
+ sthena-start - pid ƒtƒ@ƒCƒ‹‚ɑΉž‚·‚é‚悤‚ÉC³
+ Makefile - "-D_XOPEN_SOURCE -D_BSD_SOURCE" ’ljÁ
+
+ (conf/)
+ help.txt - @users ’ljÁA@mes ‚ÌC³
+ socket.conf - ƒAƒNƒZƒX§ŒÀ‚ÌÝ’èƒtƒ@ƒCƒ‹
+
+ (src/common/)
+ socket.c - ƒAƒNƒZƒX§ŒÀ‚̒ljÁAFX‚‘¬‰»
+ socket.h - FIFO–½—ß‚Ì‚‘¬‰»
+
+ (src/char/)
+ char.c - parse_tologin(), parse_char() XV
+
+ (src/map/)
+ atcommand.c - @users ’ljÁ
+ atcommand.h - @users ’ljÁ
+ battle.c - battle_calc_damage() C³
+ chrif.c - •s³‚Èfd‚ð0 ‚É•ÏX‚µ‚½‚Ì‚É”º‚¤C³
+ guild.c - guild_member_leaved() C³
+ mob.c - mob_gvmobcheck() C³
+ status.c - status_calc_pc() C³
+
+--------------------
+//1131 by eigen
+EƒMƒ‹ƒhŠg’£‚Ìl”‘•ª‚ð+2/Lv‚©‚ç+4/Lv‚É•ÏX
+EƒƒeƒIƒXƒg[ƒ€‚ɃXƒ^ƒ“‚ª‚©‚©‚é‚悤C³
+Eƒ[ƒhƒIƒuƒ”ƒ@[ƒ~ƒŠƒIƒ“‚ɈÈłª‚©‚©‚é‚悤C³
+Eƒqƒ‹ƒgƒoƒCƒ“ƒfƒBƒ“ƒO‚ðŽæ‚Á‚Ä‚¢‚ê‚ÎSTR+1 ATK+4‚ª•t‚­‚悤•ÏX
+Eƒqƒ‹ƒgƒoƒCƒ“ƒfƒBƒ“ƒO‚ðŽæ‚Á‚Ä‚¢‚ê‚ÎAREOTEWP‚ª‚ÌŒø‰ÊŽžŠÔ‚ª10%’·‚­‚È‚é‚悤•ÏX
+EAREOT‚̃p[ƒeƒB[ƒƒ“ƒo[Œø‰ÊŽžŠÔŒ¸­‚ð“P”p
+EƒtƒƒXƒgƒ_ƒCƒo[‚Å“€Œ‹‚·‚éÛA“€Œ‹ŽžŠÔ‚ªMDEF‚ɉe‹¿‚³‚ê‚é‚悤•ÏX
+Eskill_db.txtAskill_require_db.txtAskill_cast_db.txt‚ðOWN‚âŠeEWiki‚È‚Ç‚ðŽQl‚ÉC³
+
+ (src/map)
+ skill.c
+ status.c
+ (db)
+ skill_db.txt
+ skill_cast_db.txt
+ skill_require_db.txt
+
+--------------------
+//1130 by eigen
+EŠŽŒÀŠE—Ê‘‰Á‚Ì+100/Lv‚ð+200/Lv‚ÉC³
+EƒV[ƒt‚ÌãˆÊE‚ɉ—‚¢‚ĉñ”𗦑‰Á‚ÌFlee㸗¦+3/Lv‚ð+4/Lv‚ÉC³
+EƒAƒTƒVƒ“Œn‚ª‰ñ”𗦑‰Á‚ðŽæ“¾‚µ‚Ä‚¢‚éê‡AˆÚ“®‘¬“x‚ª+0.5%/Lv‚É‚È‚é‚悤C³
+EƒvƒŒƒbƒVƒƒ[‚ÌSPUŒ‚‚ðŽÀ‘•
+EƒvƒŠƒU[ƒuAƒtƒ‹ƒXƒgƒŠƒbƒvA•Ší¸˜BAƒXƒŠƒ€ƒsƒbƒ`ƒƒ[Aƒtƒ‹ƒPƒ~ƒJƒ‹ƒ`ƒƒ[ƒW
+‚ðdb‚ɒljÁ
+
+ (src/map)
+ skill.c - skill_additional_effect() C³
+ status.c - status_calc_pc() C³
+ (db)
+ skill_db.txt
+ skill_cast_db.txt
+ skill_require_db.txt
+ skill_tree.txt
+
+--------------------
+//1129 by En_of_exam
+
+ENPC ƒCƒxƒ“ƒg‚ªd•¡‚µ‚½ê‡‚̃ƒ‚ƒŠ‰ð•úŽè‡‚ªˆá‚Á‚Ä‚¢‚½ƒoƒO‚ðC³
+@@(npc.c thanks to TOSHI^2‚³‚ñ)
+
+ (src/map)
+ npc.c - npc_parse_script() C³
+
+--------------------
+//1128 by ”Y‚ß‚él
+EƒAƒCƒeƒ€‚ðÁ”‚¸‚ÉŽg—p‚·‚é‚©‚̃IƒvƒVƒ‡ƒ“’ljÁ
+EƒJ[ƒhA‘•”õ•iAƒGƒ‹EƒIƒŠ‚̃hƒƒbƒv—¦‚ð•Ê‚ÉÝ’èo—ˆ‚é‚悤‚ɃIƒvƒVƒ‡ƒ“’ljÁ
+Ebattle_athena.conf‚̉ŠúÝ’è‚Å–îE¹…“™‚ð쬎ž‚É–¼‘O‚ð•t‚¯‚È‚¢‚悤‚É•ÏX
+@i–{ŽI‚Å‚Í‚Ü‚¾—ˆ‚Ä‚È‚¢‚ÆŽv‚Á‚½‚̂ʼnŠúÝ’è‚ð•Ï‚¦‚Ü‚µ‚½j
+ (src/map)
+ battle.c
+ mob.c
+ pc.c
+ battle.h
+ (conf)
+ battle_athena.conf
+
+--------------------
+//1127 by End_of_exam
+
+Egetarraysize() ‚ª³‚µ‚¢’l‚ð•Ô‚³‚È‚¢ƒoƒO‚ðC³(script.c)
+@‚±‚̃oƒO‚̉e‹¿‚ÅAdeletearray() –½—ß‚Ì“®ì‚ª³í‚È‚à‚̂ƈقȂÁ‚Ä‚¢‚Ü‚µ‚½B
+
+Ebuildin_deletearray() ‚ÌÅ“K‰»(script.c)
+EƒVƒOƒiƒ‹ˆ—’†‚ÉÄ“xƒVƒOƒiƒ‹‚ªŒÄ‚΂ê‚é‰Â”\«‚ɑΈ‚·‚é(core.c)
+EˆÏ‘õ”Ì”„‚ð’ljÁ‚µ‚Ä‚Ý‚é(npc_test_seller.txt)
+
+ (src/map)
+ script.c - getarraysize() , buildin_deletearray() C³
+
+ (src/common)
+ core.c - sig_proc() C³
+
+ (script/sample)
+ npc_test_seller.txt - ˆÏ‘õ”Ì”„NPC
+
+--------------------
+//1126 by eigen
+Eƒƒ‚ƒ‰ƒCƒY‚ÌŒø‰Ê‰ñ”‚Ɖr¥’Zk”ä—¦‚ð‚»‚ê‚¼‚ê5‰ñA1/2‚ÉC³
+
+ (src/map)
+ skill.c - 1/3‚É‚È‚Á‚Ä‚¢‚é‚Ì‚ð1/2‚ÉC³
+ status.c - 3‰ñ‚É‚È‚Á‚Ä‚¢‚é‚Ì‚ð5‰ñ‚ÉC³
+
+--------------------
+//1125 by lizorett
+Eƒuƒ‰ƒ“ƒfƒBƒbƒVƒ…ƒXƒsƒA‚̃mƒbƒNƒoƒbƒN‚ð3ƒZƒ‹‚É‚µAƒ~ƒXŽž‚ɂ̓mƒbƒNƒoƒbƒN‚µ‚È‚¢
+‚悤•ÏX
+EƒXƒsƒAƒXƒ^ƒu‚ð‘ÎÛ‚©‚玩•ª‚ÉŒü‚©‚Á‚Ä4ƒ}ƒX‚͈̔ÍUŒ‚‚É•ÏX(–{ŽIŽd—l)
+E‘é/“ŠÎ‚ðƒjƒ…ƒ}‚Å–h‚°‚é‚悤•ÏX
+Eƒ{ƒEƒŠƒ“ƒOƒoƒbƒVƒ…‚ª‘ÎۂɃ~ƒX‚µ‚½ê‡‚ɂ̓mƒbƒNƒoƒbƒN‚µ‚È‚¢‚悤•ÏX
+Eƒ\ƒEƒ‹ƒuƒŒƒCƒJ[‚̃_ƒ[ƒWŒvŽZAƒjƒ…ƒ}‚Ń~ƒX‚É‚È‚é‚悤•ÏX
+EŠl“¾ŒoŒ±’l‚ÌãŒÀ(Œ»ƒŒƒxƒ‹‚Ì•K—vŒoŒ±’l-1)‚ðÝ’è
+EƒoƒWƒŠƒJ“WŠJŽž‚É“WŠJŽÒ‚̓mƒbƒNƒoƒbƒN‚µ‚È‚¢‚悤•ÏX
+EƒƒeƒIƒAƒTƒ‹ƒg‚𑦎ž”­“®AŽg—pŽÒ’†SA‰r¥500msŒÅ’èAƒGƒtƒFƒNƒg—L‚É•ÏX
+EƒXƒgƒŠƒbƒvƒEƒFƒ|ƒ“Žž‚Ìmob‚ÌUŒ‚—͒ቺ‚ð10%‚É•ÏX
+EŠ|‚¯‚ç‚ê‚Ä‚¢‚é‚à‚Ì‚æ‚è’჌ƒxƒ‹‚̃uƒŒƒX‚É‚æ‚èŽô‚¢/Ή»‚ª‰ðœ‚Å‚«‚é‚悤•ÏX
+Eƒ\ƒEƒ‹ƒo[ƒ“/ƒ}ƒCƒ“ƒhƒuƒŒ[ƒJ[/ƒ\ƒEƒ‹ƒ`ƒFƒ“ƒWŽÀ‘•
+EƒVƒƒ[ƒvƒVƒ…[ƒeƒBƒ“ƒO‚ðŽËü‚É‚¢‚é“G‚É‚àƒ_ƒ[ƒW‚ð—^‚¦‚é‚悤•ÏXAƒNƒŠƒeƒBƒJƒ‹
+Šm—¦+20%‚Å–hŒä–³Ž‹ƒ_ƒ[ƒW‚É•ÏX
+E“ŠÎ‚ȂLjꕔ‚̃XƒLƒ‹‚ª‘‚È‚Ç‚É1ƒ_ƒ[ƒW‚É‚È‚ç‚È‚¢–â‘è‚ðC³
+
+ (db)
+ skill_db.txt- BDS/ƒƒeƒIƒAƒTƒ‹ƒg•ÏXAƒXƒLƒ‹’ljÁ
+ skill_cast_db.txt
+ - ƒXƒLƒ‹’ljÁ
+ skill_require_db.txt
+ - ƒXƒLƒ‹’ljÁ
+ (src/map)
+ battle.c - ƒ\ƒEƒ‹ƒuƒŒƒCƒJ[‚̃_ƒ[ƒWŒvŽZ‚ð•ÏX
+ - ƒVƒƒ[ƒvƒVƒ…[ƒeƒBƒ“ƒO‚̃NƒŠƒeƒBƒJƒ‹Šm—¦C³
+ - ‘é/“ŠÎ‚ðƒjƒ…ƒ}‚Å–h‚°‚é‚悤•ÏX
+ skill.h - SC_MINDBREAKER’ljÁ
+ skill.c - BDS/BB‚̃mƒbƒNƒoƒbƒN‚ðC³
+ - ƒXƒsƒAƒXƒ^ƒu‚ð”͈ÍUŒ‚‚É•ÏX
+ - ƒƒeƒIƒAƒTƒ‹ƒgC³
+ - ƒ\ƒEƒ‹ƒo[ƒ“/ƒ}ƒCƒ“ƒhƒuƒŒ[ƒJ[/ƒ\ƒEƒ‹ƒ`ƒFƒ“ƒWŽÀ‘•
+ path.c - ƒVƒƒ[ƒvƒVƒ…[ƒeƒBƒ“ƒO‚ÌŽËüŒvŽZ‚ð’ljÁ
+ pc.c - Šl“¾ŒoŒ±’l‚ÌãŒÀ(‘O‚̃Œƒxƒ‹‚ÌŒoŒ±’l-1)‚ðÝ’è
+ status.c - ƒ}ƒCƒ“ƒhƒuƒŒ[ƒJ[‚Ìmatkã¸/mdefŒ¸­‚ÌŽÀ‘•
+ map.h - ƒVƒƒ[ƒvƒVƒ…[ƒeƒBƒ“ƒO‚ÌŽËüŒvŽZ—p\‘¢‘Ì‚ð’ljÁ
+
+--------------------
+//1124 by ‚à‚Á‚³‚è
+“G‚ªŽg‚¤”š—ô”g“®ŽÀ‘•
+Œø‰Ê
+atk1,atk2 1000*skilllv‰ÁŽZ
+hit 20*skilllv‰ÁŽZ
+
+ (src/map)
+ skill.c
+ skill.h NPC_EXPLOSIONSPIRITSŠÖŒW‚ð’ljÁ
+ status.c@@@@
+ (db)
+ skill_db.txt
+ skill_cast_db.txt
+
+
+
+--------------------
+//1123 by Nameless
+EAthenaƒT[ƒrƒX‰»ƒLƒbƒg‚ð’ljÁ‚µ‚Ü‚µ‚½B(NT/2000/XP/2003/LH)
+@Ú‚µ‚¢•û–@‚Ídoc“à‚Ìinstasv.txt‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢
+
+ (bin/tool)
+ instasv.bat - ƒT[ƒrƒX“o˜^—pƒoƒbƒ`
+ delasv.bat - ƒT[ƒrƒX–•Á—pƒoƒbƒ`
+ (doc/)
+ instasv.txt - à–¾‘(ƒeƒLƒXƒg”Å)
+
+--------------------
+//1122 by End_of_exam
+
+E1120‚Ìstrdb ‚̃L[‚ð•Û‘¶‚µ–Y‚ê‚Ä‚¢‚½ƒoƒOC³idb.cj
+E”O‚Ì‚½‚ß1121A1120‚Ìreadme ‚ðƒ}[ƒW‚µ‚ÄA—¼•û‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚½ƒtƒ@ƒCƒ‹‚ð“Y•t‚·‚é
+
+ (src/char)
+ char.c - 1121‚Ì‚à‚Ì‚ð“Y•t
+
+ (src/common)
+ mmo.h - 1121‚Ì‚à‚Ì‚ð“Y•t
+ db.h - 1120‚Ì‚à‚Ì‚ð“Y•t
+ db.c - strdb ‚̃L[‚ð•Û‘¶‚·‚é‚悤‚É‚·‚é
+
+ (src/map)
+ battle.c - 1121‚Ì‚à‚Ì‚ð“Y•t
+ guild.c - 1121‚Ì‚à‚Ì‚ð“Y•t
+ guild.h - 1121‚Ì‚à‚Ì‚ð“Y•t
+ mob.c - 1121‚Ì‚à‚Ì‚ð“Y•t
+ skill.c - 1121‚Ì‚à‚Ì‚ð“Y•t
+ skill.h - 1121‚Ì‚à‚Ì‚ð“Y•t
+
+--------------------
+//1121 by _
+
+Eƒ[ƒhƒiƒCƒg/ƒpƒ‰ƒfƒBƒ“‚̃ƒOƒCƒ“Žž‚̃Gƒ‰[‘Îô
+EGv‚Å‚Ì“¯–¿‚̈µ‚¢‚ðC³
+@ƒGƒ“ƒyƒŠƒEƒ€UŒ‚•s‰ÂAƒK[ƒfƒBƒAƒ“‚©‚çUŒ‚‚³‚ê‚È‚¢‚悤‚ÉC³
+EV’ljÁƒXƒLƒ‹—p‚̒蔒ljÁC³
+
+ (src/char)
+ char.c
+ C³ mmo_char_send006b()
+ (src/common)
+ mmo.h
+ C³ MAX_SKILL=500
+ ’ljÁ VƒMƒ‹ƒhƒXƒLƒ‹(ƒRƒƒ“ƒgƒAƒEƒg‚µ‚Ä‚Ü‚·)
+ (src/map)
+ battle.c
+ C³ battle_calc_damage()
+ guild.c
+ guild.h
+ ’ljÁ guild_check_alliance()
+ mob.c
+ C³ mob_gvmobcheck()
+ skill.c
+ C³ SkillStatusChangeTable[] (420-490)
+ skill.h
+ C³ MAX_SKILL_DB=500
+ ’ljÁ 475ˆÈ~‚ÌVƒXƒLƒ‹ID
+
+--------------------
+//1120 by End_of_exam
+
+Edb_foreach()‚̌ĂÑo‚µæ‚Ådb_erase()‚ªŒÄ‚Ño‚³‚ê‚Ä‚¢‚邳‚ê‚Ä‚¢‚éê‡A
+@•¡”‰ñ“¯‚¶ƒL[‚ÅŠÖ”‚ðŒÄ‚Ño‚·‰Â”\«‚ª‚ ‚éƒoƒO‚ðC³(db.h db.c)
+
+@cygwinã‚Å‚Qdfree‚ð‚µ‚½ê‡AƒvƒƒOƒ‰ƒ€‚ª–\‘–‚·‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B
+@charŽI‚Æ‚ÌÚ‘±‚ªØ‚ꂽmap ŽI‚ª–\‘–‚·‚éƒoƒO‚ÍA‚±‚ê‚É‹Nˆö‚µ‚Ä‚¢‚Ü‚·B
+
+ (src/common)
+ db.c - db_erase‚ðˆêŽž“I‚ɃƒbƒN‚·‚é‹@”\’ljÁ
+ db.h - db_erase‚ðˆêŽž“I‚ɃƒbƒN‚·‚é‹@”\’ljÁ
+
+--------------------
+//1119 by ICO
+
+ENPCƒXƒLƒ‹(ƒuƒŒƒCƒNƒEƒFƒ|ƒ“AƒuƒŒƒCƒNƒA[ƒ}[AƒuƒŒƒCƒNƒwƒ‹ƒ€AƒuƒŒƒCƒNƒV[ƒ‹ƒh)‚ÌŽÀ‘•
+Ebattle_athena.conf‚Émonster_damage_delay‚ð’ljÁB
+@no‚ðŽw’è‚·‚é‚ÆFW“™‚̃mƒbƒNƒoƒbƒNƒXƒLƒ‹‚Ì‹““®‚ª‘½­–{ŽI‚ɋ߂­‚©‚àcH
+
+ (db)
+ skill_db.txt
+ skill_cast_db.txt
+ (conf/)
+ battle_athena.conf
+ monster_damage_delay ’ljÁ
+ (map/)
+ battle.c
+ battle.h
+ mob.c
+ monster_damage_delayŠÖ˜A‚ð’ljÁ
+ skill.c
+ skill.h
+ skill_additional_effect,skill_castend_damage_id C³
+
+--------------------
+//1118 by BDPQ‹â [ 2005/02/10 ]
+¡ƒf[ƒ^ƒx[ƒX‚ª•ÏX‚³‚ê‚Ä‚¢‚Ü‚·B“±“üŽž‚ɂ͌䒈ӂ­‚¾‚³‚¢¡
+EƒXƒLƒ‹‚̌Œè‰r¥ŽžŠÔ‚ð skill_cast_db.txt ‚Ɉړ®B
+ ‰r¥ŽžŠÔ‚ÌŒvŽZ‚ÍA (’Êí‰r¥ + ŒÅ’è‰r¥)*ƒƒ‚ƒ‰ƒCƒY•â³ ‚Æ‚È‚è‚Ü‚·B
+ skill_cast_db‚Ì‘Ž®‚Í
+ [ID],[cast_list(’Êí‰r¥)],[fixed_cast_list(ŒÅ’è‰r¥)],[delay_list(ƒfƒBƒŒƒC)],[upkeep_time(ˆÛŽŽžŠÔ)],[upkeep_time2(ˆÛŽŽžŠÔ2)] ‚Å‚·B
+EƒAƒuƒ‰ƒJƒ^ƒuƒ‰‚ðƒfƒBƒŒƒC‚ÉASPD‚É‚æ‚éƒfƒBƒŒƒC‚ð•t‰Á‚µ‚È‚¢‚悤C³(‘¦”­“®ƒXƒLƒ‹—p)
+EV2ŽŸE‚Ìskill_cast_db‚ÉŠÖ‚·‚逖ڂÌC³
+
+ (src/map)
+ skill.c - skill_use_id() C³ (‰r¥ŽžŠÔŒvŽZ•” E ƒƒ‚ƒ‰ƒCƒY/–‚–@—Í‘• ŒÅ’è‰r¥ŽžŠÔ•”íœ)
+ (ƒAƒuƒ‰ƒJƒ^ƒuƒ‰‚ÌC³)
+ skill_use_pos() C³ (‰r¥ŽžŠÔŒvŽZ•”)
+ skill_readdb() C³ (cast_db “Çž•”)
+ skill.h - skill_db C³ (fixedcast‚̒ljÁ)
+ skill_get_fixedcast() ’ljÁ (db‚©‚çŒÅ’è‰r¥ŽžŠÔ‚̎擾)
+
+ (db)
+ skill_cast_db.txt- fixed_cast_list ’ljÁ (ŒÅ’è‰r¥ŽžŠÔ)
+ –‚–@—Í‘•-700Aƒƒ‚ƒ‰ƒCƒY-5000‚ÉÝ’è
+
+ 361(ƒAƒXƒ€ƒvƒeƒBƒI) C³ ( R.O.M 776‚ðŽQl‚ɉr¥/ƒfƒBƒŒƒC‚ðC³ )
+ 365(ƒ}ƒWƒbƒNƒNƒ‰ƒbƒVƒƒ[)C³ ( R.O.M 776‚ðŽQl‚ɉr¥/ƒfƒBƒŒƒC‚ð’ljÁ )
+ 373(ƒ‰ƒCƒt’u‚«Š·‚¦) C³ ( R.O.M 776‚ðŽQl‚ɃfƒBƒŒƒC‚ðC³ )
+ 375(ƒ\ƒEƒ‹ƒo[ƒ“) ’ljÁ ( R.O.M 776‚ðŽQl‚ɃfƒBƒŒƒC‚ð’ljÁ ) ( ƒXƒLƒ‹Œø‰Ê‚ÍŽÀ‘•‚µ‚Ä‚¢‚Ü‚¹‚ñ )
+ 381(ƒtƒ@ƒ‹ƒRƒ“ƒAƒTƒ‹ƒg) C³ ( R.O.M 776‚ðŽQl‚ɃfƒBƒŒƒC‚ðC³ )
+ 383(ƒEƒBƒ“ƒhƒEƒH[ƒN) C³ ( R.O.M 776‚ðŽQl‚ɉr¥/ƒfƒBƒŒƒC/Œø‰ÊŽžŠÔ‚ðC³ )
+ 384(ƒƒ‹ƒgƒ_ƒEƒ“) C³ ( R.O.M 776‚ðŽQl‚ɉr¥/ƒfƒBƒŒƒC‚ðC³ )
+ 387(ƒJ[ƒgƒu[ƒXƒg) C³ ( R.O.M 776‚ðŽQl‚ÉŒø‰ÊŽžŠÔ‚ðC³ )
+ 398(ƒwƒbƒhƒNƒ‰ƒbƒVƒ…) C³ ( R.O.M 776‚ðŽQl‚ɃfƒBƒŒƒCŽ‘±ŽžŠÔ‚ðC³ )
+ 406(ƒƒeƒIƒAƒTƒ‹ƒg) C³ ( R.O.M 776‚ðŽQl‚ɉr¥/ƒfƒBƒŒƒC‚ð’ljÁ )
+
+ (doc)
+ db_ref.txt - 1. db/skill_cast_db.txt C³ (fixed_cast_list‚Ì€–Ú‚ð’ljÁ)
+
+--------------------
+//1117 by End_of_exam
+
+Eƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚ð“Åó‘Ô‚Ì“G‚ÉŽg—p‚µ‚½‚ªAŽ¸”s‚µ‚½Žži“Gƒ‚ƒ“ƒXƒ^[‚Ì
+@HP‚ª2/3 ˆÈゾ‚Á‚½Žžj‚É[‚ȃƒ‚ƒŠƒŠ[ƒN‚ª‹N‚«‚Ä‚¢‚½ƒoƒO‚ðC³(skill.c)
+E‚ ‚È‚½‚Ɉ§‚¢‚½‚¢‚ªŽ¸”s‚µ‚½Žž‚É[‚ȃƒ‚ƒŠƒŠ[ƒN‚ª‹N‚«‚Ä‚¢‚½ƒoƒO‚ðC³(skill.c)
+
+@ã‚Q‚‚ÍA‹¤‚Émap_freeblock_unlock() ‚ª”²‚¯‚Ä‚¢‚éˆ×‚É”­¶‚µ‚Ä‚¢‚Ü‚µ‚½B
+@ƒhƒƒbƒvƒAƒCƒeƒ€AƒXƒLƒ‹ƒ†ƒjƒbƒgAŽæ‚芪‚«‚È‚Ç‚ÅŠm•Û‚³‚ꂽƒƒ‚ƒŠ‚ªA
+@ˆÈ~‘S‚­ŠJ•ú‚³‚ê‚È‚­‚È‚é‚Æ‚¢‚¤‚©‚È‚è[‚ȃƒ‚ƒŠƒŠ[ƒN‚̃oƒO‚Å‚·B
+@map_freeblock_lock() ‚ðŒÄ‚Ôƒ‹[ƒ`ƒ“‚ðC³‚·‚éê‡Aƒ‹[ƒ`ƒ“‚𔲂¯‚é‚Æ‚«‚ÉA
+@map_freeblock_unlock() ‚ªŒÄ‚΂ê‚é‚悤‚É‹C‚ð•t‚¯‚Ä‚­‚¾‚³‚¢(return ‚É’ˆÓ!)B
+
+Emap_freeblock_unlock() ‚ð–Y‚ê‚Ä‚à—Ç‚¢‚悤‚ÉA’èŠú“I‚Éblock_free_lock‚ð
+@ƒNƒŠƒA‚·‚é‚悤‚ÉC³(map.c)
+EDebianD‚« ‚³‚ñ‚ÌMPVƒ‚ƒ“ƒXƒ^[‚ÌHPŒvŽZ‚ªƒI[ƒo[ƒtƒ[‚·‚éƒoƒOC³‚ÌŽæ‚èž‚Ý(status.c)
+
+ (src/map)
+ skill.c - skill_castend_nodamage_id() C³
+ map.c - map_freeblock_timer() ’ljÁA do_init() C³
+ status.c - status_get_max_hp() C³
+
+--------------------
+//1116 by End_of_exam
+
+Ecopyarray ‚Å“¯‚¶”z—ñ‚ðŽw’肵‚½ŽžAƒRƒs[æ‚Ì—v‘f”Ô†‚ªƒRƒs[Œ³‚Ì—v‘f”Ô†‚æ‚è
+@‘å‚«‚¢Žž‚Ì“®ì‚ª•s’è‚É‚È‚Á‚Ä‚¢‚½ƒoƒO‚ðC³(script.c npc_test_array.txt)
+EŠÖ”錾‚¹‚¸‚ÉŠÖ”’è‹`‚µ‚½ƒ†[ƒU[’è‹`ŠÖ”‚ðŒÄ‚Ño‚»‚¤‚Æ‚·‚é‚ÆAƒGƒ‰[‚ªo‚é
+@ƒoƒO‚ðC³(script.c)
+EƒXƒNƒŠƒvƒg‚̃I[ƒo[ƒtƒ[”»’èŠî€‚ðŠÉ˜a‚³‚¹‚é(script.c)
+EƒMƒ‹ƒh‚Ì’m‚É\n‚ªŽg‚¦‚éƒoƒO‚ðC³(int_guild.c)
+EƒCƒxƒ“ƒgdb‚̃ƒ‚ƒŠƒŠ[ƒNC³‚ª•sŠ®‘S‚¾‚Á‚½‚Ì‚ðC³(npc.c)
+Edb_foreach‚̃`ƒFƒbƒN•û–@‚ð•ÏX(db.c)
+E‹N“®Žž‚É*.pid (ƒvƒƒZƒXID‚̃tƒ@ƒCƒ‹)‚ð쬂·‚é‚悤‚É‚·‚é(core.c)
+EŒoŒ±’lŠ“¾‚ª‘S‘Ì”­Œ¾‚É‚È‚Á‚Ä‚¢‚éƒoƒO‚ðC³(clif.c)
+E‹©‚Ô‚ð‘S‘Ì”­Œ¾‚É•ÏX(clif.c)
+Etester‚³‚ñ쬂ÌVC++ Toolkit2003 —p‚̃oƒbƒ`ƒtƒ@ƒCƒ‹‚𓯔º(vc07_make.bat)
+
+ (/)
+ vc07_make.bat - tester‚³‚ñ쬂̃oƒbƒ`ƒtƒ@ƒCƒ‹‚𓯔º
+
+ (src/common)
+ db.c - db_foreach() C³
+ core.c - main() C³ , pid_create() , pid_delete() ’ljÁ
+
+ (src/char)
+ int_guild.c - mapif_parse_GuildPosition() C³
+
+ (src/map)
+ clif.c - clif_disp_onlyself() , clif_onlymessage() C³
+ npc.c - npc_parse_script() C³
+ script.c - buildin_copyarray() , parse_syntax() C³
+
+ (script/sample)
+ npc_test_array.txt - ƒ`ƒFƒbƒN€–ڂ̒ljÁ
+
+--------------------
+//1115 by ‚¢‚Ç
+
+EƒT[ƒo[ƒXƒiƒbƒvƒVƒ‡ƒbƒg
+
+--------------------
+//1114-fix1 by ‹HŽ}
+
+Ezlib‚ðmap-server“à•”‚ÉŽæ‚èž‚ß‚éƒIƒvƒVƒ‡ƒ“‚ð’ljÁ
+Emake‚ªMinGW+Msys‚ųí‚É’Ê‚é‚悤C³
+Ewin32_start.bat‚Ƀ`ƒFƒbƒN’ljÁ
+
+ (src/common/zlib)
+ trees.h - anybody's guessã‚Ìzlib_1_2_1_staticlib‚æ‚èŽæ‚èž‚Ý
+ inffixed.h - “¯ã
+ inffast.h - “¯ã
+ crc32.h - “¯ã
+ compress.c - “¯ã
+ deflate.h - “¯ã
+ inftrees.h - “¯ã
+ zutil.c - “¯ã
+ crc32.c - “¯ã
+ inflate.h - “¯ã
+ inffast.c - “¯ã
+ trees.c - “¯ã
+ inflate.c - “¯ã
+ zconf.h - “¯ã
+ deflate.c - “¯ã
+ inftrees.c - “¯ã
+ zutil.h - “¯ã
+ zlib.h - “¯ã
+ adler32.c - “¯ã
+ Makefile - LOCALZLIB‚ªŽw’肳‚ê‚Ä‚¢‚鎞‚̂݃Rƒ“ƒpƒCƒ‹‚µ‚Ü‚·B
+
+ (src/map/)
+ Makefile - MinGW‚Ìê‡Aˆø”-wsock32‚ð’ljÁ‚µ‚Ü‚·B
+ - LOCALZLIB‚ªŽw’肳‚ê‚Ä‚¢‚éꇃŠƒ“ƒN‚µ‚Ü‚·B
+ - LOCALZLIB‚ª–³‚¢ê‡‚¾‚¯zlib.a‚ðƒŠƒ“ƒN‚µ‚Ü‚·B
+ (src/char/)
+ Makefile - MinGW‚Ìê‡Aˆø”-wsock32‚ð’ljÁ‚µ‚Ü‚·B
+ (src/login/)
+ Makefile - MinGW‚Ìê‡Aˆø”-wsock32‚ð’ljÁ‚µ‚Ü‚·B
+ (src/common/grfio.c) - Zlib‚ð“à•ï‚µ‚½Û‚É_WIN32‚Æ‹£‡‚µ‚È‚¢‚悤•ÏX
+ - zlib_win32.h zconf_win32.h‚ð”pŽ~
+
+ (./)
+ Makefile - #Link Zlib(NOTrecommended)Azlib‚ð“à•ï‚µ‚Ü‚·B
+ win32_start.bat - athena-start‚Ì”¼ƒNƒ[ƒ“‰»B‰Šú‹N“®‚Å‚±‚¯‚È‚­‚È‚é‚Í‚¸‚Å‚·B
+
+--------------------
+//1113 by End_of_exam
+
+Elinux ŠÂ‹«‚Å‘å—Ê‚Ìwarning ‚ªo‚Ä‚¢‚½‚Ì‚ðC³(malloc.h)
+Emap_quit() ‚Åcharid_db ‚̃f[ƒ^‚ð휂µ‚È‚¢‚悤‚É•ÏX(map.c thanks to lemit‚³‚ñ)
+Epc_eventtimer(), npc_event_timer() ‚Ìfree()‚ÅŒx‚ªo‚Ä‚¢‚½‚Ì‚ðC³(pc.c npc.c)
+Emap_eraseipport() ‚ªƒƒ‚ƒŠƒŠ[ƒN‚µ‚Ä‚¢‚½ƒoƒO‚ðC³(map.c)
+Eaddtimer –½—ß‚ÉŽw’è‚·‚éƒCƒxƒ“ƒg–¼‚ª‚Q‚R•¶Žš‚ɧŒÀ‚³‚ê‚Ä‚¢‚½‚̂𖳧ŒÀ‚É‚·‚é(pc.c)
+Epc_cleareventtimer() , pc_deleventtimer() ‚ªƒƒ‚ƒŠƒŠ[ƒN‚µ‚Ä‚¢‚½ƒoƒO‚ðC³
+@(pc.c thanks to Shinomori‚³‚ñ)
+
+ (src/common/)
+ malloc.h - "#undef strdup" ‚ð’ljÁ
+
+ (src/map/)
+ npc.c - npc_event_timer() C³
+ pc.c - pc_eventtimer() , pc_addeventtimer() , pc_cleareventtimer(),
+ pc_deleventtimer() C³
+ map.c - map_quit() , map_eraseipport() C³
+
+--------------------
+//1112 by lizorett
+EPC‚ªƒ}ƒbƒvˆÚ“®’†‚ÉA‚»‚ÌPC‚ªÝ’u‚µ‚½ƒXƒLƒ‹ƒ†ƒjƒbƒg‚Ìskill_unit_onout‚ªŒÄ‚΂ê
+‚È‚¢–â‘è(map-sever‚ª—Ž‚¿‚é‰Â”\«‚ ‚è)‚ðC³
+EƒoƒWƒŠƒJ‚ðŽd—l‚É•¹‚¹‚ÄC³
+E³íI—¹Žž‚Échar-server‚ªƒRƒAƒ_ƒ“ƒv‚·‚é–â‘è‚ðC³
+Emob‚ªƒEƒH[ƒ^ƒ{[ƒ‹Žg—pŽž‚̃qƒbƒg”‚ðC³(skill_db.txt‚ÉŽw’肵‚½”ƒqƒbƒg)
+EƒR[ƒeƒBƒ“ƒO‚³‚ê‚Ä‚¢‚éꇂɂ̓XƒgƒŠƒbƒv‚Å‚«‚È‚¢‚悤•ÏX
+E‘®«ê‚ðŽg—p‚µ‚½ÛA‘O‚Éo‚µ‚Ä‚¢‚½‘®«ê‚ªÁ‚¦‚È‚¢‚±‚Æ‚ª‚ ‚é–â‘è‚ðC³
+
+ (db)
+ skill_db.txt
+ - mob‚̃EƒH[ƒ^ƒ{[ƒ‹‚̃JƒEƒ“ƒg”‚ðDB‚É‚¢‚ꂽ
+ skill_unit_db.txt
+ - ƒoƒWƒŠƒJ‚ðC³
+ (char)
+ char.c - do_final()‚Ìchar_dat‚̃ƒ‚ƒŠŠJ•úˆÊ’u‚ð•ÏX
+ (map)
+ clif.c - ƒoƒWƒŠƒJŽž‚ÉUŒ‚‚È‚Ç‚ª‚Å‚«‚È‚¢‚悤•ÏX
+ map.c - ƒoƒWƒŠƒJˆÊ’u‚ðƒZƒ‹‚̃tƒ‰ƒO‚É“ü‚ê‚é‚悤•ÏX
+ map.h - ƒoƒWƒŠƒJ—p‚̃Zƒ‹ƒtƒ‰ƒO’ljÁ
+ mob.c - ƒoƒWƒŠƒJ‚Éi“ü‚Å‚«‚È‚¢‚悤‚É•ÏX
+ pc.c - ˆÚ“®Žž(”ˆ‚È‚Ç)‚ɃoƒWƒŠƒJ‚ðÁ‚·‚悤C³
+ skill.c - ƒoƒWƒŠƒJC³
+ - ƒEƒH[ƒ^ƒ{[ƒ‹C³
+ - skill_unit_onout‚̌ĂÑo‚µ‚ðC³
+ - ƒR[ƒeƒBƒ“ƒO‚³‚ê‚Ä‚¢‚é‰ÓŠ‚̓XƒgƒŠƒbƒv•s‰Â‚É•ÏX
+
+--------------------
+//1111 by Toshi^2
+EpcŒnmob‚É“]¶•—{Žq‚ðŽw’è‚Å‚«‚é‚悤‚É•ÏXB
+@db/mob_avail.txt‚Éà–¾•¶‚ð’ljÁ‚µ‚½‚Ì‚ÅA‚»‚ê‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
+
+ (db)
+ mob_avail.txt - ˆø”‚Ìà–¾‚ð’ljÁB
+ (src/map)
+ clif.c - clif_mob0078() clif_mob007b() clif_pet0078() clif_pet007b() C³
+ mob.c - mob_readdb_mobavail() C³
+ mob.h - \‘¢‘Ìmob_db‚Éushort transv‚ð’ljÁAmob_avail‚Ìtransƒtƒ‰ƒO‚ðŠi”[B
+
+--------------------
+//1110 by lizorett
+Eƒ†ƒjƒbƒgŒnƒXƒLƒ‹(ƒjƒ…ƒ}Aƒ_ƒ“ƒX“™)‚Åmap_server.exe‚ª—Ž‚¿‚é–â‘è‚ðC³
+ (ƒgƒŒ[ƒX‚Å‚Ískill_unit_onplace/skill_unit_onout‚Å—Ž‚¿‚é)
+EƒTƒ“ƒNƒ`ƒ…ƒAƒŠ‚Ìl”ƒJƒEƒ“ƒg•û–@‚ð•ÏX(–{ŽIŽd—l)
+Eƒ}ƒOƒkƒX‚͈̔͂ðL‚°AŽg—p‚µ‚½ƒ†ƒjƒbƒg‚ªíœ‚³‚ê‚é‚悤‚É‚·‚é(–{ŽIŽd—l)
+Eƒfƒ{[ƒVƒ‡ƒ“‚Ì‹——£‚ª’Z‚­‚È‚é–â‘è‚ðC³(ƒoƒO•ñƒXƒŒƒbƒh part8 >>15)
+Eƒfƒ{[ƒVƒ‡ƒ“‚Ånullpo‚ªo‚é–â‘è‚ðC³
+Emob‚̃Cƒ“ƒeƒBƒ~ƒfƒCƒg‚ª¬Œ÷‚·‚é‚Æmap-server‚ª—Ž‚¿‚é–â‘è‚ðC³(ƒoƒO•ñƒXƒŒƒb
+ƒh part8 >>42)
+EƒEƒH[ƒ^[ƒ{[ƒ‹‚ÌŽd—l‚ð–{ŽI‚ɋ߂¯‚é(…ꂪ­‚È‚¢ê‡‚É‚Íhit”‚ªŒ¸‚éA
+ƒfƒŠƒ…[ƒWã‚ÅŽÀs‚·‚é‚ƃ†ƒjƒbƒg‚ªŒ‡‚¯‚é)
+Eƒtƒ@[ƒ}ƒV[‚Ì»‘¢¬Œ÷Šm—¦‚̃R[ƒh‚ð•ÏX
+
+ (db)
+ skill_unit_db.txt
+ - ƒ†ƒjƒbƒgID/”z’u‚È‚Ç‚ðdb‰»‚µ‚Ä‚¢‚Ü‚·
+ (src/map)
+ map.h - skill_unit_group‚̃ƒ“ƒo•ÏX
+ mob.c - ˆÚ“®Žž‚ɃXƒLƒ‹ƒ†ƒjƒbƒg”»’f(skill_unit_out_all/skill_unit_move)
+ ‚ð’ljÁ
+ - ‘«Œ³’u‚«/d•¡’u‚«”»’f‚ð•ÏX
+ pc.c - ˆÚ“®Žž‚ɃXƒLƒ‹ƒ†ƒjƒbƒg”»’f(“¯ã)‚ð’ljÁ
+ - –³“GŽžŠÔ‚ªI‚í‚éۂɃXƒLƒ‹ƒ†ƒjƒbƒg”»’f(“¯ã)‚ð’ljÁ
+ skill.h - skill_db‚ÌŽQÆŠÖ”‚ðdefine‚É•ÏX
+ - ƒXƒLƒ‹”z’u‚ð“ü‚ê‚éskill_unit_layout\‘¢‘Ì‚ð’è‹`
+ - SC_WATERBALLíœ
+ skill.c - unit_id‚ðdb‰»(skill_unit_db.txt)
+ - ƒXƒLƒ‹ƒ†ƒjƒbƒg‚̃ŒƒCƒAƒEƒg‚ð‹N“®Žž‚É’è‹`
+ - ˆÚ“®Žž‚ɃXƒLƒ‹ƒ†ƒjƒbƒg”»’f(“¯ã)‚ð’ljÁ
+ - ‘«Œ³’u‚«/d•¡’u‚«”»’f‚ð•ÏX
+ - ƒXƒLƒ‹ƒ†ƒjƒbƒg‚̈ړ®ˆ—‚ð•ÏX
+ - ƒfƒ{[ƒVƒ‡ƒ“‚ÌC³
+ - mob‚̃Cƒ“ƒeƒBƒ~ƒfƒCƒg‚Å—Ž‚¿‚é–â‘è‚ðC³
+ - ƒEƒH[ƒ^ƒ{[ƒ‹‚ÌŽd—l•ÏX
+ status.c- SC_WATERBALL‚̈—‚ðíœ
+
+--------------------
+//1109 by End_of_exam
+
+1108‚Ɉø‚«‘±‚«ƒƒ‚ƒŠƒŠ[ƒN‚̃oƒOC³‚Å‚·B‚Q‚‹¤‚É[‚ȃoƒO‚È‚Ì‚ÅA
+ÅV”Å‚ÉXV‚µ‚È‚¢•û‚Å‚àC³‚·‚邱‚Æ‚ð‚¨‚·‚·‚ß‚µ‚Ü‚·B
+
+Eƒyƒbƒg‚ª°‚ɃAƒCƒeƒ€‚ð—Ž‚Æ‚·ŽžAƒyƒbƒg‚ð—‘‚É–ß‚·Žž‚Ƀƒ‚ƒŠƒŠ[ƒN‚ª”­¶
+@‚µ‚Ä‚¢‚½ƒoƒO‚ðC³B(pet.c)
+
+EƒLƒƒƒ‰ƒNƒ^[ˆË‘¶ˆêŽž•Ï”‚Ì—˜—p‚µ‚½ƒLƒƒƒ‰‚ªƒƒOƒAƒEƒg‚·‚é‚ƃƒ‚ƒŠƒŠ[ƒN‚ª
+@”­¶‚µ‚Ä‚¢‚½ƒoƒO‚ðC³(map.c)
+
+ (src/map)
+ map.c - map_quit() C³
+ pet.c - pet_remove_map(), pet_return_egg() pet_lootitem_drop() C³
+
+--------------------
+//1108 by End_of_exam
+
+EˆÈ‘Oì‚Á‚½ƒƒ‚ƒŠƒ}ƒl[ƒWƒƒ[‚ð“‡B(malloc.c core.c)
+@—LŒø‚É‚·‚é‚É‚ÍAmalloc.c“à•”‚̃Rƒƒ“ƒg‚ðŠO‚·•K—v‚ª‚ ‚è‚Ü‚·BŠJ”­‚É‹¦—Í‚µ‚Ä
+@’¸‚¯‚é•û‚ÍAƒƒ‚ƒŠƒ}ƒl[ƒWƒƒ‚ð—LŒø‚É‚µ‚ÄAƒ`ƒFƒbƒNŒ‹‰Ê(map-server.log‚È‚Ç)‚ð
+@ƒAƒbƒvƒ[ƒh‚µ‚Ä‚­‚ê‚é‚Æ•‚©‚è‚Ü‚·B
+
+@@1. guild.c ‚ªƒRƒ“ƒpƒCƒ‹ƒGƒ‰[‚É‚È‚Á‚½‚Ì‚ÅC³(guild.c)
+@@2. pet.c ‚ªƒƒ‚ƒŠ‰ð•ú‚µ–Y‚ê‚Ä‚¢‚½‚Ì‚ÅAdo_final_pet() ‚ð’ljÁ(pet.c)
+@@3. do_final_socket ‚ð’ljÁ‚µ‚ÄAI—¹Žž‚É‘S‚Ä‚ÌÚ‘±‚ðØ’f‚·‚é(socket.c)
+@@4. deplicate ‚ÌŒ³ƒXƒNƒŠƒvƒg‚ªI—¹Žž‚Éfree‚³‚ê‚È‚¢ƒoƒO‚ðC³(npc.c)
+@@5. do_final_script ‚ÅŠJ•ú‚³‚ê‚È‚¢ƒƒ‚ƒŠ‚ª‚ ‚éƒoƒO‚ðC³(script.c)
+@@6. do_init_*** ‚̌Ă΂ê‚釔Ԃª‚¨‚©‚µ‚©‚Á‚½‚Ì‚ðC³(map.c)
+@@7. ƒCƒxƒ“ƒg–¼‚ªd•¡‚µ‚½‚Æ‚«‚ɃƒbƒZ[ƒW‚ðo‚·‚悤‚É•ÏX(npc.c)
+@@8. map_quit() “à•”‚Åcharid_db ‚ðfree‚µ–Y‚ê‚Ä‚¢‚éƒoƒO‚ðC³(map.c)
+
+@“Á‚É8.‚ÍÅd—v‚ÅAƒLƒƒƒ‰‚ªƒƒOƒAƒEƒg‚·‚é“x‚Ƀƒ‚ƒŠƒŠ[ƒN‚ª”­¶‚·‚é‚Æ‚¢‚¤A
+@ň«‚ÈŒ‹‰Ê‚É‚È‚Á‚Ä‚¢‚Ü‚µ‚½B‹C‚É‚È‚é•û‚ÍC³‚µ‚Ä‚¨‚«‚Ü‚µ‚傤B
+
+Edelete_session ‚ÅNULLƒ`ƒFƒbƒN‚ð‘Ó‚Á‚Ä‚¢‚½ƒoƒO‚ðC³(socket.c)
+Echrif_disconnect_sub ‚Ådelete_session ‚ðŒÄ‚Ԃ悤‚É•ÏX(chrif.c)
+Eƒ}ƒ‹ƒ`ƒ‰ƒCƒ“ƒRƒƒ“ƒgi/* ` */j‚̉ðÍ‚ð–Y‚ê‚Ä‚¢‚½ƒoƒO‚ðC³(npc.c)
+E‹âs‚È‚Ç‚ÌNPC ‚ÅZeny‚ªMAX_ZENY‚É‚È‚ç‚È‚¢ƒoƒO‚ðC³(pc.c)
+E1107‚Ì»‘¢Šm—¦‚ªˆê•”Á‚³‚ê‚Ä‚¢‚½‚Ì‚ðC³(skill.c thanks to lizorett‚³‚ñ)
+EƒZ[ƒW“]EŽŽŒ±‚̃Cƒxƒ“ƒg‚ªÕ“Ë‚ð‹N‚±‚µ‚Ä‚¢‚½‚Ì‚ðC³(npc.c)
+@@npc_parse_script : dup event jobsage_2nd::OnTimer150000
+@@npc_parse_script : dup event jobsage_2nd::OnTimer30000
+@@npc_parse_script : dup event jobsage_success::OnTimer7000
+@@npc_parse_script : dup event jobsage_success::OnTimer3000
+
+ (src/common)
+ core.c - do_init_memmgr() ’ljÁ
+ malloc.c - ƒƒ‚ƒŠƒ}ƒl[ƒWƒƒ‚̒ljÁ
+ malloc.h - ƒƒ‚ƒŠƒ}ƒl[ƒWƒƒ‚̒ljÁ
+ socket.c - delete_session‚̃oƒOAdo_final_socket‚̒ljÁ
+
+ (src/map)
+ chrif.c - chrif_disconnect_sub() ‚ðC³
+ guild.c - guild_recv_info(), guild_castledataloadack() C³
+ map.c - map_quit() ‚̃ƒ‚ƒŠƒŠ[ƒNAdo_final,do_init C³
+ npc.c - npc_parse_script_line() , npc_parse_script() ‘¼C³
+ pc.c - pc_setparam() C³
+ pet.c - do_final_pet() ’ljÁ
+ pet.h - do_final_pet() ’ljÁ
+ script.c - do_init_script(), do_final_script() C³
+ skill.c - skill_produce_mix() C³
+
+--------------------
+//1107 by code
+E@npctalk, @pettalkƒRƒ}ƒ“ƒh’ljÁ
+Eƒ_ƒ[ƒW‚Ì’x‰„‚ðŽÀ‘•
+E@mes‚ð‘S‘Ì”­Œ¾‚ÉC³
+Eƒtƒ@[ƒ}ƒV[‚Ì»‘¢¬Œ÷Šm—¦C³
+E@storage‚Å‘qŒÉ‚ª“ñd‚ÅŠJ‚­‚±‚Æ‚ª‚È‚¢‚悤C³
+Escript‚É globalmes, getmapmobs ŠÖ”‚ð’ljÁ
+
+ (/src/map)
+ atcommand.c
+ atcommand.h
+ battle.c
+ clif.c
+ clif.h
+ npc.c
+ npc.h
+ script.c
+ skill.c
+ storage.c
+
+--------------------
+//1106 by sylpheed
+
+Eitem_rate_details:1‚ª“®‚©‚È‚©‚Á‚½‚Ì‚ðC³
+
+ (src/map/)
+ mob.c
+
+--------------------
+//1105 by End_of_exam
+
+E1101‚̃}ƒbƒv‚ÌÄ•ª”z‚ªãŽè‚­‚¢‚©‚È‚¢ƒoƒO‚ðC³(char.c thanks to Mystle‚³‚ñ)
+
+ (src/char/)
+ char.c - parse_frommap() C³
+
+--------------------
+//1104 by nameless
+EBCC32‚̃Rƒ“ƒpƒCƒ‹ƒIƒvƒVƒ‡ƒ“‚È‚Ç‚ÌÅ“K‰»
+EBCC32/VC++‚ÅÅ“K‚ÈÅ“K‰»ƒIƒvƒVƒ‡ƒ“‚ðŒ©‚Â‚¯‚邽‚߂̃xƒ“ƒ`
+Ebcc32_clean.bat‚Æbcc32_make.bat‚ð“‡AƒNƒŠ[ƒ“ƒrƒ‹ƒh‚ÌŽ¸”s‚ð‚µ‚È‚¢‚悤‚ÉB
+
+¦P4‚¾‚©‚ç‚Æ‚©Opteron‚¾‚©‚ç“Á’èƒIƒvƒVƒ‡ƒ“‚Å‘‚¢‚Æ‚¢‚¤‚±‚Æ‚Å‚Í‚È‚¢‚悤‚Å‚·B
+¦P4‚Å‚àƒƒbƒg‚É‚æ‚Á‚Ä‚Í-5‚ªÅ“K‚¾‚Á‚½‚è-3 -O2‚ªÅ“K‚¾‚Á‚½‚è‚·‚é‚à‚Ì‚ª‚ ‚é‚悤‚Å‚·
+¦Žv‚¢ž‚݂ŃIƒvƒVƒ‡ƒ“‚ð‚‚¯‚È‚¢‚悤‚É‚·‚邽‚ß‚Éì‚è‚Ü‚µ‚½B
+¦­‚µ‚Å‚àƒŒƒXƒ|ƒ“ƒX‚ðã‚°‚ĉ^—p‚µ‚½‚¢‚Æ‚¢‚¤l‚ÍŠˆ—p‚µ‚Ä‚­‚¾‚³‚¢B
+
+ (/)
+ bcc32_make.bat
+
+ Å“K‰»ƒIƒvƒVƒ‡ƒ“‚̒ljÁ‚ÆŒxƒƒbƒZ[ƒW‚Å[‚Å‚Í‚È‚¢‚à‚Ì‚ð
+ Š®‘S‚É•\Ž¦‚µ‚È‚¢‚悤‚ÉÝ’èAbcc32_clean.bat‚ðmake‚É“‡‚µ‚½
+ ‚Ì‚ÅŠmŽÀ‚ɃNƒŠ[ƒ“ƒrƒ‹ƒh‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+
+ bench.bat
+ bench.c
+
+ Å“K‚ȃRƒ“ƒpƒCƒ‹ƒIƒvƒVƒ‡ƒ“‚ðŒ©‚Â‚¯‚邽‚߂̃xƒ“ƒ`‚Å‚·B
+ bench.bat‚ŃRƒ“ƒpƒCƒ‹•ŽÀs‚ªs‚í‚ê‚Ü‚·B
+ Œ‹‰Ê‚Íbench.txt‚ÉŠi”[‚³‚ê‚Ü‚·‚Ì‚Å”’l‚̈ê”Ô¬‚³‚¢‚à‚Ì‚ð‘I‚ñ
+ ‚Åbcc32_make.bat‚Ì23s–ڂɒljÁEC³‚µ‚Ä‚ ‚°‚Ä‚­‚¾‚³‚¢B
+ ¦‰Šúó‘Ô‚Å‚Íbcc32—p‚É‚È‚Á‚Ä‚¢‚Ü‚·‚Ì‚Å
+--------------------
+//1103 by End_of_exam
+
+Echar_athena.conf ‚Ìdefault_map_type‚ª0 ‚É‚È‚Á‚Ä‚¢‚鎞‚ÉAPVPƒKƒCƒh‚Å
+@ƒZ[ƒu‚µ‚½ŒãAPVPƒGƒŠƒA“à‚ŃƒOƒAƒEƒg‚µ‚½ƒLƒƒƒ‰‚ªƒƒOƒCƒ“‚Å‚«‚È‚­‚È‚é
+@ƒoƒO‚ðC³B(npc_etc_pvp.txt) ‘½‚­‚Ì•ûX‚©‚ç‚Ìî•ñ’ñ‹ŸŠ´ŽÓ‚µ‚Ü‚·B
+@inpc_etc_pvp.txt “à•”‚Ì ".gat" ‚Ì•t‚¯–Y‚ê‚ÆA‚±‚̃~ƒX‚ɑΉž‚µ‚Ä‚¢‚È‚¢
+@@pc.c ‚̃oƒO‚Å‚·B‚±‚̃pƒbƒ`‚ð“–‚Ä‚È‚¢‚Å‚±‚̃oƒO‚ðC³‚µ‚½‚¢ê‡A
+@@“Y•t‚µ‚½C³ƒtƒ@ƒCƒ‹‚ðŽQl‚É‚µ‚È‚ª‚çAnpc_etc_pvp.txt‚É".gat"‚ð
+@@•t‰Á‚µ‚Ä‚­‚¾‚³‚¢Bj
+
+Edo_final“à•”‚Å•s³‚Ȉ—‚ðs‚¤ê‡‚ª‚ ‚é‚Ì‚ðC³(map.c thanks to lizorett‚³‚ñ)
+Eƒ}ƒbƒvƒLƒƒƒbƒVƒ…‚Ì“Ç‚Ýž‚Ý‚ÉŽ¸”s‚µ‚½‚Æ‚«‚Ƀƒ‚ƒŠƒŠ[ƒN‚µ‚Ä‚¢‚½ƒoƒO‚ðC³(map.c)
+
+ (src/map)
+ pc.c - pc_setsavepoint() C³
+ map.c - do_final(), map_cache_read() C³
+
+ (src/char)
+ char.c - search_mapserver() , parse_char() C³
+
+ (script/npc/etc)
+ npc_etc_pvp.txt - ".gat" ‚ð•t‰Á‚·‚é
+
+--------------------
+//1102 by l’Œ‚³‚ñA
+EƒoƒO•ñƒXƒŒ >>35-37‚É‚ ‚Á‚½C³”Å
+@Ú‚µ‚¢‚±‚Ƃ̓XƒŒ‚ðŒ©‚Ä‚­‚¾‚³‚¢
+ (src/map)
+ pc.c
+
+--------------------
+//1101 by End_of_exam
+
+EsocketŠÖ˜A‚ÌC³(socket.c socket.h)
+
+@1. FIFOŠÖ˜A‚ðfd ‚ª•s³(fd<=0)‚ÌŽž‚É‚à³í‚É“®ì‚·‚é‚悤‚É•ÏX
+@2. socket.h ‚Ì“à•”‚ðFX‚Æ®—
+@3. make_connection() ‚ªÚ‘±‚ÉŽ¸”s‚µ‚½Žž‚ɃGƒ‰[‚ð•Ô‚³‚È‚¢ƒoƒO‚ðC³
+@@@‚»‚Ì•ÏX‚ɇ‚킹‚ÄAchrif.c check_connect_char_server() , char.c
+@@@check_connect_login_server() ‚ðC³B‚±‚ê‚ŃT[ƒo[ƒ]ƒ“ƒr‰»‚̃oƒO‚Í
+@@@‰ðŒˆ‚µ‚½‚ÆŽv‚¢‚Ü‚·‚ªAÄ”­‚µ‚½‚ç•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
+
+Echar - map ŠÔ‚̃RƒlƒNƒVƒ‡ƒ“‚ðŒ©’¼‚µ(char.c chrif.c map.c map.h)
+
+@1. char - map ŠÔ‚̃RƒlƒNƒVƒ‡ƒ“‚ªØ‚ꂽ‚çAmap ŽI‚ÉÚ‘±‚µ‚Ä‚¢‚éƒLƒƒƒ‰‚ð
+@@‘S‚ÄØ’f‚·‚é‚悤‚É‚·‚éB‚±‚ê‚ÍA“¯Šú‚ðŽæ‚é‚Ì‚ª“‚¢‚Ì‚ÆAcharŽI‚Æ‚Ì
+@@’ÊM‚ª•K—v‚Ȉ—iƒp[ƒeƒBAƒMƒ‹ƒhAƒyƒbƒg‘¼j‚ª‚Å‚«‚È‚­‚Ȃ邽‚ß‚Å‚·B
+@2. •¡”‚Ìmap ŽI‚Å“¯‚¶ƒ}ƒbƒv‚ð’S“–‚·‚邱‚Æ‚ª‚ ‚éƒoƒO‚ðC³
+@3. map ŽI‚ÌŠ„‚è“–‚Ä•û–@‚ÌŒ©’¼‚µ
+@@•¡”‚Ìmap ŽI‚Å“¯‚¶ƒ}ƒbƒv‚ð“Ç‚Ýž‚ß‚ÎA‚Ç‚ê‚©‚P‚‚ª—Ž‚¿‚Ä‚¢‚鎞‚Å‚àA
+@@³í‚Èmap ŽI‚ɃƒOƒCƒ“‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½B—Ⴆ‚ÎA“¯‚¶ƒ}ƒbƒv‚ð
+@@mapŽIA‚ÆB‚É“Ç‚Ýž‚Ü‚¹‚Ä‚¨‚¯‚ÎAA‚ª—Ž‚¿‚Ä‚¢‚鎞‚É‚ÍB‚ÉAB‚ª—Ž‚¿‚Ä‚¢‚é
+@@Žž‚É‚ÍA‚É“]‘—‚³‚ê‚Ü‚·B‚½‚¾‚µA—D懈ʂ̎w’è‚Í‚Ü‚¾o—ˆ‚Ä‚È‚¢‚Ì‚ÅA
+@@‚P‚‚Ìmap ŽI‚Él”‚ªW’†‚µ‚·‚¬‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B
+
+ (src/map)
+ chrif.c - map ŽI‚ÌŠ„‚è“–‚Ä•û–@‚ÌŒ©’¼‚µ
+ map.c - map ŽI‚ÌŠ„‚è“–‚Ä•û–@‚ÌŒ©’¼‚µ
+ map.h - map ŽI‚ÌŠ„‚è“–‚Ä•û–@‚ÌŒ©’¼‚µ
+
+ (src/char)
+ char.c - map ŽI‚ÌŠ„‚è“–‚Ä•û–@‚ÌŒ©’¼‚µ
+
+ (src/common)
+ socket.c - FXC³iã‹LŽQÆj
+ socket.h - FXC³iã‹LŽQÆj
+
+--------------------
+//1100 by nyankochan
+E1098‚ÌC³
+ (src/map)
+ pc.c
+
+--------------------
+//1099 by End_of_exam
+
+Emapflag nosave ‚ª•s³‚ÈŽž‚É‹N“®‚ð’†’f‚³‚¹‚é‚悤‚É‚·‚é(npc.c)
+Epc_autosave ‚ªŒÄ‚΂ê‚é‰ñ”‚ªˆÙí‚É‚‚­‚È‚éƒoƒO‚ðC³(pc.c)
+
+pc_autosave() ‚Ì“à•”‚ªA
+
+> interval = autosave_interval/(clif_countusers()+1);
+> if(interval <= 0)
+> interval = 1;
+
+‚Æ‚¢‚¤•—‚É‚È‚Á‚Ä‚¢‚é‚Ì‚ÅA‚Pƒ}ƒbƒvƒT[ƒo[‚É200l‚̃Lƒƒƒ‰‚ªÚ‘±‚µ‚Ä‚é‚ÆA
+autosave_interval(def:15 * 1000) / 200 = 0.075 •b‚²‚Æ‚ÉŠÖ”‚ªŒÄ‚΂ê‚Ü‚·B
+‚³‚·‚ª‚É‚±‚Ìó‘Ô‚¾‚ÆcharŽI‚ªŒµ‚µ‚­‚È‚é‚Ì‚ÅAŠÖ”‚ðŒÄ‚Ño‚·Å¬ŠÔŠu‚ð
+0.2 •b‚É•ÏX‚µ‚Ü‚µ‚½B
+
+ (src/map)
+ pc.c - pc_autosave ‚ªŒÄ‚΂ê‚é‰ñ”‚ªˆÙí‚É‚‚­‚È‚éƒoƒO‚ðC³
+ npc.c - mapflag nosave ‚ª•s³‚ÈŽž‚É‹N“®‚ð’†’f‚³‚¹‚é
+
+--------------------
+//1098 by nyankochan
+E“üŽè‘•”õ•i‚̌”1ŒÅ’è
+ (src/map)
+ pc.c
+
+--------------------
+//1097 by End_of_exam
+
+Žå‚ɃoƒOC³‚Å‚·BƒoƒO•ñ‚µ‚Ä‚­‚ꂽŠF—l‚ÉŠ´ŽÓAŠ´ŽÓB
+
+EZeny‘B‘Îô(pc.c trade.c script.c)
+ 1. ŒðŠ·Apc_setparam ‚ÅMAX_ZENY ‚ð’´‚¦‚éꇂª‚ ‚éƒoƒO‚ðC³
+ 2. ƒXƒNƒŠƒvƒg‚ɃI[ƒo[ƒtƒ[‘Îô‚ð’ljÁ
+
+EƒƒOƒCƒ“¬Œ÷ŽžEƒAƒJƒEƒ“ƒg•Ï”XVŽž‚É–³ðŒ‚Émmo_auth_sync ‚ð
+@ŒÄ‚ñ‚Å‚¢‚½‚Ì‚ðƒ^ƒCƒ}[‚ðŽg—p‚µ‚½’èŠúXV‚É•ÏX(login.c login_athena.conf)
+
+EdbŠÖŒW‚ɃoƒO‚ªö‚ñ‚Å‚¢‚é–Í—l‚È‚Ì‚ÅAƒ`ƒFƒbƒN‹@\‚ð’ljÁ‚·‚é(db.c db.h)
+@ˆê•”ƒAƒJƒEƒ“ƒg‚̂݃ƒOƒCƒ“•s‰ÂA‘qŒÉƒƒXƒgA@who‚Å•\Ž¦‚³‚ê‚éƒLƒƒƒ‰‚ª
+@ˆê•”Á‚¦‚é‚Ȃǂ̃oƒO‚ÌŒ´ˆö‚ªdbŠÖ˜A‚É‚ ‚é–Í—l‚Å‚·B
+@udb_foreach : data lost %d of %d item(s)v‚Æ‚¢‚¤ƒƒbƒZ[ƒW‚ª•\Ž¦
+@‚³‚ꂽꇂ̓oƒO‚ª‚ ‚éidb‚É“ü‚Á‚Ä‚¢‚é‚Í‚¸‚̃f[ƒ^‚ªÁ‚¦‚½j‚Ì‚ÅA
+@•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
+
+E‚ ‚é•û–@‚Å’Êí‚æ‚è‹­‚¢ƒLƒƒƒ‰‚ªì‚ê‚Ä‚µ‚Ü‚¤ƒoƒO‚ÌC³(char.c)
+EƒMƒ‹ƒh‚Ì–ðE–¼‚É•s³‚È•¶Žš‚ªŽg‚¦‚éƒoƒO‚ðC³(int_guild.c)
+EƒXƒNƒŠƒvƒg“à‚Å‚O‚Å‚ÌœŽZŽž‚ª‹N‚±‚Á‚½Žž‚ÉINT_MAX‚ð•Ô‚·‚悤‚É‚·‚é(script.c)
+
+ (conf/)
+ login_athena.conf - autosave_time ‚̒ljÁ
+
+ (src/common)
+ db.h - ƒ`ƒFƒbƒN‹@\‚̒ljÁ
+ db.c - ƒ`ƒFƒbƒN‹@\‚̒ljÁ
+
+ (src/login)
+ login.c - mmo_auth_sync ‚Ƀ^ƒCƒ}[‚ð“K—p
+
+ (src/char)
+ char.c - ’Êí‚æ‚è‹­‚¢ƒLƒƒƒ‰‚ªì‚ê‚Ä‚µ‚Ü‚¤ƒoƒO‚ÌC³
+ int_guild.c - ƒMƒ‹ƒh‚Ì–ðE–¼‚É•s³‚È•¶Žš‚ªŽg‚¦‚éƒoƒO‚ðC³
+
+ (src/map)
+ trade.c - MAX_ZENY ‚ð’´‚¦‚éꇂª‚ ‚éƒoƒO‚ðC³
+ pc.c - MAX_ZENY ‚ð’´‚¦‚éꇂª‚ ‚éƒoƒO‚ðC³
+ script.c - ƒI[ƒo[ƒtƒ[‘ÎôA‚O‚Å‚ÌœŽZŽž‚̈—‚ð’ljÁ
+
+--------------------
+//1096 by lizorett
+E•Ç‰z‚µ‚ɃXƒLƒ‹‚ªŒ‚‚Ä‚Ä‚µ‚Ü‚¤ƒoƒO‚ðC³(ƒoƒO•ñƒXƒŒƒbƒh part8 >>28)
+
+ (src/map)
+ path.c - •Ç‰z‚µ‚ɃXƒLƒ‹‚ªŒ‚‚Ä‚Ä‚µ‚Ü‚¤ƒoƒO‚ðC³
+
+--------------------
+//1095 by lizorett
+EƒXƒNƒŠƒvƒg‚̃GƒXƒP[ƒv”»’f‚ð•ÏX
+EƒXƒLƒ‹ƒ†ƒjƒbƒgƒOƒ‹[ƒv‚Ìgroup_id‚͈̔͂ð•ÏX
+Eskill_unitsetting()‚Å‘S‚ẴXƒLƒ‹‚Åskill_get_time()‚ðŽg—p‚·‚é‚悤•ÏX
+EƒTƒCƒgƒ‰ƒbƒVƒƒ[‚ðƒ†ƒjƒbƒgƒXƒLƒ‹‚©‚ç”͈ÍUŒ‚–‚–@‚É•ÏX(–{ŽIŽd—l)
+
+ (src/map)
+ skill.c - skill_unitgrouptickset_* ‚Å skill_id/group_id‚ªd‚È‚ç‚È‚¢‚悤
+ ‚Égroup_id‚͈̔͂ð§ŒÀ
+ - SkillStatusChangeTable‚ÉSC_SAFETYWALL,SC_PNEUMA’ljÁ
+ - skill_unitsetting()‚Å‘S‚ẴXƒLƒ‹‚Åskill_get_time()‚ðŽg—p‚·‚é
+ ‚悤•ÏX
+ - ƒTƒCƒgƒ‰ƒbƒVƒƒ[‚ð”͈ÍUŒ‚–‚–@‚É•ÏX
+ npc.c - ƒGƒXƒP[ƒv”»’f‚ðparse_simpleexpr()‚Æ“¯—l‚É‚µA‘SŠp”»’f‚ðíœ
+ (db)
+ skill_cast_db.txt
+ - TS/MS/LoV/FN/SG/HD/GX‚Éupkeep_time‚ðÝ’è
+
+--------------------
+//1094 by End_of_exam
+
+EƒTƒuƒ‹[ƒ`ƒ“ŒÄ‚Ño‚µ\•¶‚̒ljÁ(script.c npc.c npc_convertlabel_db())
+E‹tƒAƒZƒ“ƒuƒ‹ˆ—‚̒ljÁ(script.c , DEBUG_DISASM ‚ð—LŒø‚É‚µ‚Ä‚­‚¾‚³‚¢B)
+Eswitch ‚̈ꎞ•Ï”Á‹ŽˆÊ’u‚ð•ÏX(script.c)
+ERERUNLINE‚ÌÕ“®‚ª‰ö‚µ‚©‚Á‚½‚Ì‚ÅC³(script.c / h , map.h)
+Eƒ\[ƒX‚ð“Ç‚Ý‚â‚·‚­‚·‚邽‚ß‚Ébuildin_*‚ðƒtƒ@ƒCƒ‹ÅŒã‚Ɉړ®(script.c)
+EV‚µ‚­‰Á‚í‚Á‚½\•¶‚̃Tƒ“ƒvƒ‹‚Æ‚µ‚ÄuƒnƒmƒC‚Ì“ƒv‚ð’ljÁ(npc_test_hanoi.txt)
+Ebuildin_getitemname C³(script.c , Ž¿–âƒXƒŒƒbƒh Part14 >>129-130)
+
+Ebcc ‚ŃRƒ“ƒpƒCƒ‹‚µ‚½Žž‚É—Ž‚¿‚éƒoƒO‚ðC³(map.c map_id2bl “à•”)
+EWindows‚ŃRƒ“ƒpƒCƒ‹‚µ‚½Žž‚ÉAgettick()‚̃LƒƒƒbƒVƒ…‚ª–³Œø‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ð
+@C³(timer.c , thanks to Shinomori)
+
+ (src/common)
+ timer.c gettick() ‚̃oƒOC³
+
+ (src/map)
+ script.c FX•ÏXiã‹LŽQÆj
+ script.h struct script_state C³
+ npc.c npc_convertlabel_db() ‚Å—Ž‚¿‚é‚Ì‚ðC³
+ map.c map_id2bl() ‚ðC³(—Ž‚¿‚é‚Ì‚Íbcc ‚¾‚¯H)
+ map.h map_session_data C³
+
+ (doc/)
+ script_ref.txt function \•¶‚̒ljÁ
+
+ (script/sample/)
+ npc_test_hanoi.txt ƒnƒmƒC‚Ì“ƒ
+
+--------------------
+//1093 by ‚¢‚Ç
+
+EƒT[ƒo[ƒXƒiƒbƒvƒVƒ‡ƒbƒg
+
+--------------------
+//1092 by lizorett
+E‰“‹——£UŒ‚‚̃pƒXŒŸõƒAƒ‹ƒSƒŠƒYƒ€‚ð–{ŽI‚Æ“¯‚¶‚É‚È‚é‚悤•ÏX
+EƒXƒg[ƒ€ƒKƒXƒgAƒ[ƒhƒIƒuƒ”ƒ@[ƒ~ƒŠƒIƒ“‚ðd‚Ë‚½ê‡A•Ð•û‚©‚炾‚¯ƒ_ƒ[ƒW‚ð
+Žó‚¯‚é‚悤C³(Žd—l‚ª•s–¾‚È‚Ì‚Åæ‚ÉŒ©‚‚¯‚½ƒ†ƒjƒbƒg‚©‚çUŒ‚‚·‚é‚悤‚É‚µ‚Ä‚¢‚Ü‚·)
+EƒAƒCƒeƒ€‚ªˆê‚‚µ‚©‚È‚¢ê‡AƒAƒCƒeƒ€‚ðŽg—p‚µ‚Ä‚àƒGƒtƒFƒNƒg‚ª•\Ž¦‚³‚ê‚È‚¢–â‘è
+‚ðC³
+EƒZ[ƒtƒeƒB[ƒEƒH[ƒ‹Žg—pŽž‚ɃAƒhƒŒƒX•s³‚Æ‚È‚éꇂª‚ ‚é–â‘è‚ðC³
+Emap_getcell/map_setcell‚ÌŽd—l•ÏX
+E1085‚̃rƒbƒgƒ}ƒbƒv‘Ήž‚Ì­Õ‚ÌÁ‹Ž
+E1088‚̃AƒCƒXƒEƒH[ƒ‹‚Ì•ÏX‚ðŠª‚«–ß‚µ(–{ŽI‚ɇ‚킹‚é)
+E‘SŠp”»’f(npc.c)‚ðC³(For English User Forum >>54)
+
+ (’ˆÓ) map_athena.conf‚̃}ƒbƒvƒLƒƒƒbƒVƒ…Žw’è‚ðs‚¤ƒpƒ‰ƒ[ƒ^–¼‚ð•ÏX‚µ‚Ä‚¢‚Ü‚·
+
+ (conf)
+ map_athena.conf - read_map_from_bitmap‚ðread_map_from_cache ‚É•ÏX
+ - map_bitmap_path‚ðmap_cache_file‚É•ÏX
+ (src/map)
+ map.h - ƒZƒ‹ƒ^ƒCƒv–¼Ì•ÏX(CELL_CHKHIGH,CELL_CHKTYPE)A
+ íœ(CELL_SET*)
+ - skill_unit_group_ticksetƒƒ“ƒo–¼•ÏX(group_id -> id)
+ - ƒrƒbƒgƒ}ƒbƒvŠÖ˜A‚Ì‹Lq‚Ì­Õ‚ðíœ
+ map.c - map_getcell() ƒZƒ‹ƒ^ƒCƒv–¼Ì•ÏX‚Ǝ኱‚̃R[ƒh•ÏX
+ - map_setcell()‚ð1084ˆÈ‘O‚ÌŽd—l‚É–ß‚µACELL_SETNPC‚Ì
+ ƒtƒ‰ƒO‚ð’ljÁ
+ - map_cacheŠÖ˜A‚Ìׂ©‚ÈC³
+ npc.c - ‘SŠp”»’f(is_zenkaku)‚ð³Šm‚És‚¤‚悤•ÏX
+ - map_getcell()‚̃Zƒ‹ƒ^ƒCƒv–¼Ì•ÏX‚É’Ç]
+ pc.c - ƒAƒCƒeƒ€‚ªˆê‚‚µ‚©‚È‚¢ê‡AŽg—pŽž‚̃GƒtƒFƒNƒg‚ª•\Ž¦
+ ‚³‚ê‚È‚¢–â‘è‚ðC³
+ - map_getcell()‚̃Zƒ‹ƒ^ƒCƒv–¼Ì•ÏX‚É’Ç]
+ skill.c - ƒXƒg[ƒ€ƒKƒXƒgAƒ[ƒhƒIƒuƒ”ƒ@[ƒ~ƒŠƒIƒ“‚ðd‚Ë‚½ê‡
+ •Ð•û‚©‚炾‚¯ƒ_ƒ[ƒW‚ðŽó‚¯‚é‚悤C³
+ - ƒZ[ƒtƒeƒB[ƒEƒH[ƒ‹Žg—pŽž‚ɃAƒhƒŒƒX•s³‚Æ‚È‚éꇂª
+ ‚ ‚é–â‘è‚ðC³
+ - map_getcell()‚̃Zƒ‹ƒ^ƒCƒv–¼Ì•ÏX‚É’Ç]
+ skill.h - ŠÖ”’è‹`•ÏX
+ path.c - ‰“‹——£UŒ‚‚̃pƒXŒŸõˆ—‚ð’ljÁ(path_search_long)
+ - map_getcell()‚̃Zƒ‹ƒ^ƒCƒv–¼Ì•ÏX‚É’Ç]
+ battle.c - ‰“‹——£UŒ‚‚̃pƒXŒŸõ‚ðŽg—p‚·‚é‚悤•ÏX
+
+--------------------
+//1091 by End_of_exam
+
+––@’ˆÓ@––
+
+@¡‰ñ‚̃pƒbƒ`‚͉ü‘¢“à—e‚ª•¡ŽG‚È‚Ì‚ÅA“±“ü‚ÍTd‚És‚Á‚Ä‚­‚¾‚³‚¢B
+@status.c / h ‚Ö‚Ì•ª—£‚ÍAŠÖ”–¼‚Ì’u‚«Š·‚¦‚¾‚¯‚É—¯‚ß‚½‚‚à‚è‚Å‚·‚ªA
+@Žv‚í‚ʃoƒO‚ªö‚ñ‚Å‚¢‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B
+
+EƒXƒpƒQƒeƒB‘Îô‚̈êŠÂ‚Æ‚µ‚ÄAƒXƒe[ƒ^ƒXŒvŽZAó‘ÔˆÙí‚ÉŠÖ‚í‚é•”•ª‚ð
+@status.c / h ‚Æ‚µ‚Ä•ª—£Bbattle.c ‚©‚ç39KB’ö , skill.c ‚©‚ç41KB’ö ,
+@pc.c ‚©‚ç38KB’öˆÚ“®‚Å‚«‚Ü‚µ‚½B­X‹­ˆø‚Å‚·‚ªAƒXƒLƒ‹Žg—p‚âUŒ‚‚È‚Ç‚Ì
+@ˆ—‚Ì—¬‚ê‚ð‚‚©‚Ý‚â‚·‚­‚·‚邽‚ß‚É‚ÍAbattle.c / skill.c ‚Ì’†g‚ð
+@Œ¸‚ç‚·•K—v‚ª‚ ‚é‚Æl‚¦‚½‚½‚ß‚Å‚·B
+
+ battle_get_* => status_get_*
+ skill_status_change_* => status_change_*
+ pc_calcstatus => status_calc_pc
+ pc_calc_sigma => status_calc_sigma
+ pc_getrefinebonus => status_getrefinebonus
+ pc_percentrefinery => status_percentrefinery
+
+Ebattle.c , script.c ‚ÌŠª‚«–ß‚è‚ð–ß‚·
+Enpc.c ‚̉ö‚µ‚¢•ÏX‚ð–ß‚µA‚«‚¿‚ñ‚ÆNUL ‚ð•t‚¯‰Á‚¦‚é‚悤‚É‚·‚é
+Escript.c ‚̃~ƒX‚𒼂·ijump_non_zero => jump_zero@ˆÓ–¡‚ª‹t‚É‚È‚Á‚Ä‚Ü‚µ‚½cj
+Eskill.c ‚Ì•ŠíC— ‚̃Rƒƒ“ƒgƒ~ƒX‚ðC³
+EWIN32‚ŃRƒ“ƒpƒCƒ‹‚µ‚½ŽžAÅ‘åÚ‘±l”‚ª60l’ö‚ɧŒÀ‚³‚ê‚Ä‚¢‚½ƒoƒO‚ðC³
+
+ (/)
+ athena.dsw , athena.dsp , bcc32_make.bat , src/login/login.dsp
+ src/char/char.dsp , src/map/map.dsp
+ ƒRƒ“ƒpƒCƒ‹ðŒ‚Ì•ÏX
+
+ (src/map/)
+ ã‚Ì•ª—£‚ɇ‚킹‚ăRƒ“ƒpƒCƒ‹ƒGƒ‰[‚Ìo‚È‚¢‚悤‚ÉC³
+
+--------------------
+//1090 by Sapientia
+Eƒ`ƒƒƒbƒg‚Ì•Ö—˜‚³‚Ì‚½‚ß‚É‹©‚ԒljÁ (ƒMƒ‹ƒhƒ`ƒƒƒbƒg‚Ƌ敪‚·‚邽‚߂ɃEƒFƒ`ƒMƒV‚Ì‘O‚É [‹©‚Ô‚±‚Æ]‚ª•t‚«)
+Eatcomand_athena.conf ‚Å onlymes ‚ð 0‚Åݒ肵‚ÄŠFŽg‚¤‚悤‚ÉŠˆ«‰»
+ ƒIƒŠƒWƒiƒ‹‚Ȃ̂ŃfƒtƒHƒ‹ƒg‚Å GM‚¾‚¯Žg‚¤‚±‚Æ‚ª‚Å‚«‚é‚悤‚Éݒ肵‚Ü‚µ‚½.
+E@mes [Œ¾‚¤‚±‚Æ] ‚ÅŽg—p
+
+ (src/map)
+ atcommand.c atcommand_charkami ’ljÁ
+ atcommand.h
+ clif.c clif_onlymessage ’ljÁ
+ clif.h
+ (src/conf)
+ atcommand_athena.conf onlymes ’ljÁ
+ help.txt @mes à–¾’ljÁ
+
+
+--------------------
+//1089 by ¹
+EVC.NET2003‚ŃRƒ“ƒpƒCƒ‹‚·‚é‚Æ‘å—Ê‚ÉŒx‚ªo‚é‚Ì‚ðC³
+E‚»‚Ì‘¼ƒoƒbƒtƒ@ƒI[ƒo[ƒtƒ[“™‚Ìׂ©‚¢ƒoƒOC³
+
+ (src/char)
+ int_guild.c Œx‰ÓŠ‚ðC³
+
+ (src/map)
+ atcommand.c, battle.c, clif.c, itemdb.c, pc.c, pc.h, script.c, skill.c
+ Œx‰ÓŠ‚ðC³
+ npc.c Œx‰ÓŠ‚ƃoƒbƒtƒ@ƒI[ƒo[ƒtƒ[C³
+
+--------------------
+//1088 by Sapientia
+EƒEƒBƒUƒhƒXƒLƒ‹ Icewall ‚±‚̃Lƒƒƒ‰ƒNƒ^[‚⃂ƒ“ƒXƒ^[‘«‚à‚Æ‚ÉÝ’u‚³‚ê‚邱‚Æ‚ð–hŽ~
+Eƒ[ƒhƒiƒCƒgƒXƒLƒ‹ Berserk Žg—p‚ÌŽž HP‚ª 1/3‚É‚È‚ê‚Ήñ•œ‚·‚éƒoƒOC³
+
+ (src/map)
+ pc.c Berserk C³
+ skill.c Icewall C³
+
+--------------------
+//1087 by End_of_exam
+
+Eƒ}ƒbƒvƒLƒƒƒbƒVƒ…‚Ɉ³k‹@”\‚ð’ljÁ(1MB’ö‚Ék‚Ü‚é‚悤‚Å‚·)
+Enpc.c ‚ÌŠª‚«–ß‚è‚ðC³(Ž¿–âƒXƒŒƒbƒh Part14 , 111)
+Emap_athena.conf ‚̃Rƒƒ“ƒgƒAƒEƒg‚ðC³(AthenaŽG’kƒXƒŒƒbƒhPart7 , 146)
+EWindows —p‚Ì‹N“®ƒXƒNƒŠƒvƒg‚ð’ljÁ‚µ‚Ä‚Ý‚é(eAthena ‚Ì‚ðŒ³‚É‰ü‘¢j
+
+ (/)
+ win32_start.bat Windows —p‚Ì‹N“®ƒtƒ@ƒCƒ‹
+
+ (src/map)
+ map.c ˆ³k‹@”\‚̒ljÁ
+ npc.c Šª‚«–ß‚è‚ðC³
+
+ (src/common)
+ grfio.c decode_zip , encode_zip ‚̃GƒNƒXƒ|[ƒg
+ grfio.h decode_zip , encode_zip ‚̃GƒNƒXƒ|[ƒg
+
+ (conf/)
+ map_athena.conf C³
+
+--------------------
+//1086 by End_of_exam
+
+Žå‚É1085‚̃oƒOC³‚¾‚Á‚½‚è‚à‚µ‚Ü‚·B
+u‚Ä‚ß[A‚P‚©‚ç‘‚«’¼‚µ‚₪‚Á‚Äv‚Æ‚¢‚¤“Ë‚Áž‚Ý‚¾‚¯‚ÍŠ¨•Ù‚µ‚Ä‚­‚¾‚³‚¢‚Ü‚¹B
+
+Eƒf[ƒ^\‘¢‚Ì‘å•ÏX(map.c)
+ ƒ}ƒbƒv‚ð휕’ljÁ‚µ‚Ăೂµ‚­“®‚­‚悤‚É•ÏX
+ ƒ}ƒbƒvƒLƒƒƒbƒVƒ…쬒†‚É‹­§I—¹‚·‚é‚ÆÄ‹N“®Žž‚É•sˆÀ’è‚É‚È‚éƒoƒO‚ðC³
+ ˆ³kƒtƒ‰ƒO‚̒ljÁiŽù—v‚ ‚é‚Ì‚©•s–¾Bcompress‚ð^‚É‚·‚é‚ÆAŒ»Ý‚̃\[ƒX‚Å
+ “Ç‚ß‚È‚­‚È‚è‚Ü‚·Bj
+
+E‚È‚ñ‚©Õ“®‚ª‚ ‚₵‚·‚¬‚é‚Ì‚ÅAƒrƒbƒgƒ}ƒbƒvˆ—‚ð“P”p‚·‚é(map.c map.h)
+ npc_touch_areanpc : some bug@‚ª‚½‚­‚³‚ño‚Ä‚­‚é -> Œ´ˆö•s–¾H
+ ‹°‚ç‚­’Ês‰Â”\”»’肪³‚µ‚­Ý’肳‚ê‚Ä‚¢‚È‚¢‚Á‚Û‚¢‚ñ‚Å‚·‚ª“ä‚Å‚·B
+ ”read_map_from_bitmap ‚ÌÝ’è‚ðÈ‚­‚ƃƒOƒCƒ“Žž‚É—Ž‚¿‚éƒoƒO‚ðC³
+
+EƒLƒƒƒbƒVƒ…“à‚É‘S‚Ẵ}ƒbƒv‚ª‚ ‚ê‚ÎAgrf –³‚µ‚Å‚à“®ì‚·‚é‚悤‚É•ÏXB(grfio.c map.c)
+
+ (src/map)
+ map.c ƒoƒOC³‘¼
+ map.h ƒoƒOC³‘¼
+
+ (src/common)
+ grfio.c ƒtƒ@ƒCƒ‹‚ªŒ©‚‚©‚ç‚È‚¢Žž‚Éexit ‚ðŒÄ‚΂Ȃ¢‚悤‚ÉC³
+
+--------------------
+//1085 by zalem
+Eƒ}ƒbƒvƒf[ƒ^‚Ì“Ç‚Ýž‚݂̓rƒbƒgƒ}ƒbƒvƒtƒ@ƒCƒ‹‚©‚çs‚È‚¦‚é‚悤‚È‹@”\’ljÁ
+
+ grfƒtƒ@ƒCƒ‹‚©‚çˆê“xƒrƒbƒgƒ}ƒbƒvƒtƒ@ƒCƒ‹‚ð쬂µ‚ĈȌã‚Í‚»‚Ì
+ 쬂³‚ꂽƒrƒbƒgƒ}ƒbƒvƒtƒH[ƒ}ƒbƒg‚̃tƒ@ƒCƒ‹‚©‚çƒ}ƒbƒvî•ñ‚ð“Ç‚Ýž‚Þ
+ ‚Æ‚¢‚¤•û–@‚ð̂邱‚Æ‚É‚æ‚Á‚ÄAmap-server‚ª—§‚¿ã‚ª‚鎞ƒ}ƒbƒvî•ñ‚ð“Ç‚ÝŽæ‚é
+ ‚Ì‚ÉŠ|‚©‚鎞ŠÔ‚ª‚Ù‚Æ‚ñ‚Ç‚È‚­‚È‚éA‚Ü‚½1int‚É32ŒÂ‚̃Zƒ‹î•ñ‚ªŠi”[‚Å‚«‚é‚Ì
+ ‚ÅAmapî•ñ‚ÉŠÖ‚·‚郃‚ƒŠŽg—p—Ê‚à‚RŠ„‚è‹ß‚­‚Ü‚ÅŒ¸‚é‚Ì‚Å(‚»‚Ì‚©‚í‚è‚É
+ ‚ ‚é’ö“xCPU‚Ì•‰’S‚ª‘å‚«‚­‚È‚é)A’ljÁ‚µ‚Ä‚Ý‚½B
+ conf/map_athena.conf‚Ìread_map_from_bitmapƒIƒvƒVƒ‡ƒ“‚Å—˜—p‚·‚é
+ ‚©‚Ç‚¤‚©‚ðŽw’è‚Å‚«A‚»‚̉º‚É‚ ‚émap_bitmap_path‚Ńtƒ@ƒCƒ‹–¼‚ð•ÏX‚·‚é
+ (ƒfƒtƒHƒ‹ƒg‚Ådb/map.info)
+ ‚Ü‚¾ƒeƒXƒg’iŠK‚È‚Ì‚ÅA“±“ü‚Í‚²Td‚É(ˆê‰žLinux‚ÅA‚¢‚ë‚¢‚ë‚Æ
+ ƒeƒXƒg‚µ‚Ä‚Ý‚½‚ª...)
+
+Emap_getcell()‚É4”Ô–Úˆø”‚̒ljÁ‚Æmap_setcell()‚Ì4”Ô–Úˆø”‚Ì•ÏX
+
+ ŠÖ”‚Ì—˜—pˆÓ}‚ª‚í‚©‚è‚â‚·‚¢‚悤‚ÉA‚»‚µ‚Ä‚±‚ê‚©‚ç‚Ì•ÏX‚ð—eˆÕ‚É‚·‚é
+ ‚½‚ß‚ÉAmap_getcell()‚Æmap_setcell()‚Ì‚»‚ꂼ‚ê4”Ԗڂ̈ø”‚ð’ljÁA•ÏX‚µ‚Ä‚Ý‚½A
+ map_getcell()‚Ì4”Ԗڂ̈ø”‚Ímap.h‚Å’è‹`‚³‚ê‚Ä‚éCELL_CHK—ñ‹“Œ^Amap_setcell()
+ ‚Ì4”Ԗڂ̈ø”‚Ímap.h‚Å’è‹`‚³‚ê‚Ä‚éCELL_SET—ñ‹“Œ^‚ð‚Æ‚é‚悤‚É•ÏX.‚Ü‚½Aã‚Ì
+ Feature‚ɑΉž‚·‚邽‚ßAmap_getcell()‚ðƒ|ƒCƒ“ƒ^‚É•ÏX‚µ‚½B
+
+ Žå‚È•ÏX“_F
+
+ src/map/map.h read_gat(),read_gatp()ƒ}ƒNƒ‚Ì•ÏX
+ —ñ‹“Œ^ CELL_CHK,CELL_SET‚ð’ljÁ,map_getcell(),map_setcel()—p
+ map_data\‘¢‘̂Ƀƒ“ƒo[int* gat_fileused[MAX_CELL_TYPE+2]’ljÁ
+ src/map/map.c map_getcell()‚ðŠÖ”Œ^ƒ|ƒCƒ“ƒ^‚É•ÏX,map_getcellp()‚ðread_gatp()
+ ‚Ì‚½‚߂ɒljÁ,ŽÀۂɉº‚ÌŽl‚‚̊֔‚Ì‚Ç‚Á‚¿‚ÉŽw‚·‚©‚Ímap_read_flag‚É‚æ‚é
+ map_getcell_gat(),map_getcell_bitmap() ’ljÁ
+ map_getcellp_gat(),map_getcellp_bitmap() ’ljÁ
+ map_setcell() •ÏX
+ map_createbitmap() ’ljÁ
+ map_readmapfromfile() ’ljÁ
+ map_readallmap() •ÏX
+ map_config_read() •ÏX
+ do_final() •ÏX
+ ˆÈ‰º‚Ì*.cƒtƒ@ƒCƒ‹“à‚Ìmap_getcell(),map_setcell(),read_gat(),read_gatp()‚ðŒÄo‚µ‚½•”•ª‚ð‚·‚×‚Ä•ÏX
+ src/map/atcommand.c
+ src/map/mob.c
+ src/map/npc.c
+ src/map/path.c
+ src/map/pc.c
+ src/map/pet.c
+ src/map/skill.c
+
+ conf/map_athena.conf read_map_from_bitmap,map_bitmap_path ’ljÁ
+
+--------------------
+//1084 by lizorett
+EŒoŒ±’lŠl“¾‚̃oƒOC³(ƒoƒO•ñƒXƒŒƒbƒh part7 >>134)
+ (src/map)
+ mob.c ŒoŒ±’lŒvŽZC³
+
+--------------------
+//1083 by End_of_exam special thanks to lizorett‚³‚ñ
+Eƒ\ƒPƒbƒg‚̃fƒXƒgƒ‰ƒNƒ^ˆ—‚̒ljÁ
+ (common/socket.c common/socket.h login/login.c char/char.c map/clif.c map/chrif.c)
+ ƒ\ƒPƒbƒg‚ð•Â‚¶‚鎞‚̈—‚Ì—¬‚ꂪ•ÏX‚É‚È‚è‚Ü‚·B¡‚܂Ń\ƒPƒbƒg‚ð•Â‚¶‚éꇂÍA
+ ‚Ü‚¸session[fd]->eof ‚ð^‚É‚µ‚½ŒãAƒp[ƒYƒ‹[ƒ`ƒ““à‚Ō㈗iƒƒ‚ƒŠ‰ð•ú‚È‚Çj
+ ‚µ‚Ä‚¢‚Ü‚µ‚½B‚Å‚·‚ªAclose(fd); ‚ª‚Qd‚ÉŽÀs‚³‚ê‚ăT[ƒo[‚ª—Ž‚¿‚é‚È‚Ç‚Ì
+ ƒoƒO‚ª”­¶‚µ‚Ä‚¢‚½‚èAˆ—‚Ì—¬‚ꂪ‚‚©‚Ý‚É‚­‚¢‚Æ‚¢‚Á‚½——R‚©‚çAsocket.c “à•”‚Å
+ ‘S‚Ĉ—‚·‚é‚悤‚É•ÏX‚µ‚Ü‚µ‚½Bƒ\ƒPƒbƒg‚ð•Â‚¶‚鎞‚ÌŽå‚È—¬‚ê‚ÍŽŸ‚Ì’Ê‚è‚Å‚·B
+
+ 1. ƒ\[ƒX“à‚©‚çsession[fd]->eof = 1; ‚ð‚·‚é
+ 2. socket.c “à‚©‚çsession[fd]->destruct() ‚ªŒÄ‚΂ê‚é
+ 3. ƒƒ‚ƒŠ‚̉ð•ú•Œãˆ—(socket.c delete_session“à•”)
+
+ close(fd) ‚ÍAsession[fd]->eof = 1; ‚É’u‚«Š·‚¦‚Ü‚µ‚½(#define)B
+ ‚Ü‚½Adelete_session() ‚𖾎¦“I‚ɌĂԕK—v‚Í‚ ‚è‚Ü‚¹‚ñB
+
+Eƒ}ƒbƒvŽI•ª”zŽž‚̃AƒCƒeƒ€dupe–â‘èC³(map/map.c map/pc.c map/chrif.c)
+ ƒ\ƒPƒbƒgØ’fŽž‚É‘qŒÉƒf[ƒ^‚̃LƒƒƒbƒVƒ…‚ðÁ‚·‚悤‚É•ÏX
+ ‚QdƒƒOƒCƒ“Žž‚Ƀ}ƒbƒvƒT[ƒo[‚ªˆá‚Á‚½ê‡‚É‚àØ’f‚Å‚«‚é‚悤‚ÉC³
+
+EŒÃ‚¢ƒo[ƒWƒ‡ƒ“‚ŃƒOƒCƒ“‚µ‚½Žž‚ÉmapŽI‚ª—Ž‚¿‚éƒoƒO‚ðC³(map/clif.c)
+ clif_parse() “à•”
+
+ if(packet_db[cmd].len==0) {
+ -> if(cmd<MAX_PACKET_DB && packet_db[cmd].len==0) {
+
+Egcc ‚ŃRƒ“ƒpƒCƒ‹‚µ‚½Žž‚Étimer.c ‚Åwarning ‚ªo‚½‚Ì‚ðC³(common/timer.c)
+ timer.c:116: warning: `check_timer_heap' defined but not used
+
+ (src/common/)
+ socket.c ƒ\ƒPƒbƒg‚̃fƒXƒgƒ‰ƒNƒ^ˆ—‚ð’ljÁ
+ socket.h ƒ\ƒPƒbƒg‚̃fƒXƒgƒ‰ƒNƒ^ˆ—‚ð’ljÁ
+ timer.c warning C³
+
+ (src/map/)
+ clif.c ƒ\ƒPƒbƒg‚̃fƒXƒgƒ‰ƒNƒ^ˆ—‚ð’ljÁ
+ chrif.c ƒ\ƒPƒbƒg‚̃fƒXƒgƒ‰ƒNƒ^ˆ—‚ð’ljÁ
+ map.c ƒ}ƒbƒvŽI•ª”zŽž‚̃AƒCƒeƒ€dupe–â‘èC³
+ pc.c ƒ}ƒbƒvŽI•ª”zŽž‚̃AƒCƒeƒ€dupe–â‘èC³
+
+ (src/char/)
+ char.c ƒ\ƒPƒbƒg‚̃fƒXƒgƒ‰ƒNƒ^ˆ—‚ð’ljÁ
+
+ (src/login/)
+ login.c ƒ\ƒPƒbƒg‚̃fƒXƒgƒ‰ƒNƒ^ˆ—‚ð’ljÁ
+
+--------------------
+//1082 by lizorett (2004/12/18) special thanks to –¼–³‚µ—l@‚‡—‚‚…
+E”’nŽæ‚è‚ðƒ{ƒX‚É–³Œø‚É•ÏX
+E1079‚Ì•ÏX•”•ª‚ÉNULLƒ`ƒFƒbƒN‚ð’ljÁ
+EƒJ[ƒh‚ÌŒø‰Ê‚ªæ‚ç‚È‚¢ƒXƒLƒ‹‚ɃGƒ“ƒ`ƒƒƒ“ƒgƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“Œø‰Ê‚ªæ‚ç‚È‚¢‚æ
+ ‚¤‚É•ÏX
+EƒGƒ“ƒ`ƒƒƒ“ƒgƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“‚ÌŒø‰Ê‚ɶŽè‚ªÚ‚ç‚È‚¢‚悤‚É•ÏX
+EƒTƒNƒŠƒtƒ@ƒCƒX‚ðŽÀ‘•
+EƒXƒg[ƒ€ƒKƒXƒg‚̃mƒbƒNƒoƒbƒN‚ªƒXƒLƒ‹Žw’èˆÊ’u‚ð’†S‚Æ‚·‚é‚悤•ÏX
+EƒXƒLƒ‹‚ÌŽË’ö‹——£‚©‚ç1ƒZƒ‹—£‚ꂽꊂðŽw’肵‚ăXƒLƒ‹‚ðŽg‚¤‚Ɖ½‚à‹N‚±‚ç‚È‚¢–â‘è
+ ‚ðC³
+EŒoŒ±’l‚Ì”z•ª‚ðC³(ƒ_ƒ[ƒW‚ð—^‚¦‚½l‚ª‚¢‚È‚¢ê‡‚âA“Ń_ƒ[ƒW‚ª‚ ‚éꇂɌo
+ Œ±’l‚ª­‚È‚­‚È‚Á‚Ä‚¢‚½)
+E‘•”õ‚µ‚Ä‚¢‚È‚¢‰ÓŠ‚ւ̃XƒgƒŠƒbƒvƒXƒLƒ‹‚ªŽ¸”s‚·‚é‚悤•ÏX
+Eƒpƒbƒ`ƒAƒbƒvƒXƒŒƒbƒh Part 6H‚Ì>>116,>>125,>>126 ‚̃tƒ@ƒCƒ‹‚ð”O‚Ì‚½‚߃}[ƒW
+
+ (db/)
+ skill_db.txt, skill_cast_db.txt, skill_require_db.txt
+ - ƒTƒNƒŠƒtƒ@ƒCƒX‚Ì‹Lq‚ðC³/’ljÁ
+ (src/map/)
+ battle.c - ƒGƒ“ƒ`ƒƒƒ“ƒgƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“‚Ì•ÏX
+ - ƒTƒNƒŠƒtƒ@ƒCƒX‚ÌŽÀ‘•
+ - ƒXƒg[ƒ€ƒKƒXƒg‚̃mƒbƒNƒoƒbƒN•ûŒü‚ð•ÏX
+ - ”’nŽæ‚è‚ðƒ{ƒX‚É–³Œø‚É•ÏX
+ skill.h - SC_SACRIFICE‚ð’ljÁ
+ skill.c - ƒTƒNƒŠƒtƒ@ƒCƒX‚ÌŽÀ‘•
+ - skill_castend_damage_id()‚ÌMG_FROSTDIVER/MG_STONECURSE‚É
+ NULLƒ`ƒFƒbƒN‚ð’ljÁ
+ mob.c - ŒoŒ±’l‚Ì”z•ª‚ðC³
+ script.c - ŒÂ•Ê‚Éo‚³‚ê‚Ä‚¢‚½ƒtƒ@ƒCƒ‹‚ðƒ}[ƒW(>>125)
+ npc.c - ŒÂ•Ê‚Éo‚³‚ê‚Ä‚¢‚½ƒtƒ@ƒCƒ‹‚ðƒ}[ƒW(>>126)
+ (src/common)
+ core.c - ŒÂ•Ê‚Éo‚³‚ê‚Ä‚¢‚½ƒtƒ@ƒCƒ‹‚ðƒ}[ƒW(>>116)
+
+--------------------
+//1081 by End_of_exam
+Euƒ‹[ƒv\•¶‚Ì•û‚àŽÀ‘•‚µ‚Ä‚­‚¾‚³‚¢v‚Æ‚¢‚¤—v–]‚ð–á‚Á‚½‚Ì‚ÅA
+@for , while , do - while \•¶‚𓱓üBŒÂl“I‚É—]‚èŽù—v‚Í–³‚¢‚ÆŽv‚¤‚Ì‚Å‚·‚ªcB
+
+Eelse‚ªŠ®‘S‚ɉðÍ‚Å‚«‚Ä‚È‚©‚Á‚½ƒoƒO‚ðC³B
+Eswitch ‚Ìbreak; ‚ªêŠ‚É‚æ‚Á‚Ă̓Rƒ“ƒpƒCƒ‹ƒGƒ‰[‚É‚È‚éƒoƒO‚ðC³B
+
+ (src/map/)
+ script.c : \•¶‚ðŠg’£BFX®—B
+
+ (doc/)
+ script_ref.txt : ã‚ÌC³‚ɇ‚킹‚Ä•ÏXB
+
+--------------------
+//1080 by End_of_exam
+
+EƒXƒNƒŠƒvƒg‚ð if - else if - else \•¶ , switch \•¶‚ɑΉž‚³‚¹‚Ü‚µ‚½B
+@‘½dƒlƒXƒg‚ª‰Â”\‚Å‚·‚Ì‚ÅA¡‚Ü‚Å‚æ‚茩‚â‚·‚¢ƒXƒNƒŠƒvƒg‚ª‘‚¯‚é‚ÆŽv‚¢‚Ü‚·B
+@if(aa) { aaa(); } else if(bb) { cc; if(dd) { ee() } else { ff(); } }
+@‚»‚ê‚É”º‚¢A__ ‚©‚çŽn‚Ü‚é•Ï”‚⃉ƒxƒ‹‚ð—p‚¢‚é‚ÆA•s“s‡‚ª¶‚¶‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B
+
+EƒXƒNƒŠƒvƒg‚ÉV‚µ‚¢ŠÖ”(selectŠÖ”Emenu–½—ß‚ÌŠÖ””Å)‚ð’ljÁ‚µ‚Ü‚µ‚½B
+
+ (src/map/)
+ script.c : \•¶‚ðŠg’£
+ npc.c : npc_perse_script ‚ÌC³( { , } ‚̃lƒXƒg‚ɑΉž )
+
+ (script/)
+ npc/town/npc_town_alberta.txt : ˆêƒJŠ goto ‚ª”²‚¯‚Ä‚½‚Ì‚ÅC³
+ sample/npc_debug_pota.txt : switch , select ‚ðŽg‚Á‚Ä‘‚«’¼‚µ
+ (ƒfƒoƒbƒO‚ÉŽg‚킹‚Ä–á‚¢‚Ü‚µ‚½)
+
+ (doc/)
+ script_ref.txt : ã‚ÌC³‚ɇ‚킹‚Ä•ÏX
+--------------------
+//1079 by Yuuki
+EΉ»’†‚ɃXƒg[ƒ“ƒJ[ƒX‚ðŽg‚¤‚ÆΉ»‰ðœ
+EFD‚ŃXƒLƒ‹’ljÁŒø‰Ê‚ðŽg‚¤‚Æ•X‰»’†ƒ_ƒ[ƒW”»’è‚Åæ‚ÉŠ„‚ê‚Ä‚à‚¤ˆê“x•X‰»”»’肪‚­‚é‚̂ŃXƒLƒ‹’ljÁŒø‰Ê‚‚©‚킸
+EBB‚Ň–°Î‰»•X‰»‚ªŠ„‚ê‚È‚¢ƒoƒO‚ÌC³(“ÆŽ©‚̃_ƒ[ƒW”»’èŽg‚Á‚Ä‚½‚Ì‚ÅÁ‚µ‚ij‹K‚̃_ƒ[ƒW”»’è‚É–ß‚µ‚½)
+EƒfƒBƒŒƒC0‚̃XƒLƒ‹‚Éadelay/2’ljÁ(GŽI‚ÅTSŽg‚Á‚ÄŒŸØ‚µ‚½Œ‹‰ÊÅ‚à‚±‚ꂪ‹ß‚©‚Á‚½’ÊíUŒ‚‚æ‚è‚Í‚â‚©‚Á‚½‚Ì‚Å)
+
+ (src/map)
+ skill.c
+
+--------------------
+//1078 by End_of_exam
+
+EVisual C++ 6.0 / bcc32 ‚ŃRƒ“ƒpƒCƒ‹o—ˆ‚é‚悤‚ÉC³(•Ê“rzlib.dll ‚ª•K—v)
+E1074‚ÍŒ‡”Ô‚É‚µ‚Ü‚·BFX‚Æ‚²–À˜f‚ð‚©‚¯‚½Ž–‚ð‚¨˜l‚Ñ‚µ‚Ü‚·B
+
+––@’ˆÓ@––
+ ¡‰ñ‚̃o[ƒWƒ‡ƒ“‚ÌŠ®‘S‚È“®ìŠm”F‚Í‚µ‚Ä‚¢‚Ü‚¹‚ñil’Œ”ňµ‚¢‚É‚µ‚Ä‚­‚¾‚³‚¢jB
+ –{Ši“I‚ȉ^—p‚É“¥‚ÝØ‚é‘O‚É‚ÍA•K‚¸“®ìŠm”F‚ð‚·‚é‚悤‚É‚µ‚Ä‚­‚¾‚³‚¢B
+ ꇂɂæ‚Á‚Ä‚ÍAƒRƒ“ƒpƒCƒ‹o—ˆ‚È‚¢A•s³‚È“®ì‚É‚È‚éc“™X‚Ì–â‘肪‹N‚±‚é‚©‚à
+ ‚µ‚ê‚Ü‚¹‚ñ‚ªA‚»‚Ì‚Æ‚«‚ÍA‘›‚ª‚¸AQ‚Ä‚¸‚ÉAƒl\‚Ì~—Õ‚ð‘҂‚悤‚¨Šè‚¢‚µ‚Ü‚·B
+
+–– ‚¨Šè‚¢ ––
+ ‚±‚̃pƒbƒ`‚ðŠ®‘S”Å‚É‚µ‚Ä‚­‚ê‚é•ûAŽg—pŠ´ƒŒƒ|[ƒg‚ð“Še‚µ‚Ä‚­‚ê‚é•û‚ð•åW‚µ‚Ü‚·B
+ ƒpƒbƒ`‚ðŒöŠJ‚·‚é‚‚¢‚Å‚ÉA‘å—Ê‚Ìwarning ‚ðC³‚µ‚Ä‚­‚ꂽ‚çŠð‚µ‚¢‚È`A‚ÆŽv‚Á‚Ä‚Ý‚½‚èB
+
+ (/)
+ bcc32_make.bat , bcc32_clean.bat
+ bcc32 ‚ŃRƒ“ƒpƒCƒ‹ / ƒNƒŠ[ƒ“@‚ðŠÈ’P‚É‚·‚邽‚߂̃oƒbƒ`ƒtƒ@ƒCƒ‹B
+
+ athena.dsp , athena.dsw , src/login/login.dsp , src/char/char.dsp ,
+ src/map/map.dsp
+ Visual C++ —p‚̃vƒƒWƒFƒNƒgƒtƒ@ƒCƒ‹ & ƒ[ƒNƒXƒy[ƒX
+
+ (src/)
+ ƒRƒ“ƒpƒCƒ‹o—ˆ‚é‚悤‚ÉFXC³B
+
+ (src/common/timer.c)
+ “ÆŽ©‚̎蔲‚«ƒAƒ‹ƒSƒŠƒYƒ€i‚Q•ªƒ\[ƒgj‚ðÌ—p‚µ‚½ƒo[ƒWƒ‡ƒ“B
+
+--------------------
+//1077 by sylpheed
+EƒT[ƒo[ƒXƒiƒbƒvƒVƒ‡ƒbƒg
+E‰º‹L“ñ‚‚ðŽæ‚èž‚Ý
+Ž¿–âƒXƒŒƒbƒh Part14-41 Plala‚³‚ñ
+ƒoƒO•ñƒXƒŒƒbƒh part7-68 ...‚³‚ñ
+
+1074‚ÍŽæ‚èž‚ñ‚Å‚¢‚Ü‚¹‚ñB
+
+--------------------
+//1076 by mare
+EŠØ‘Œö’m‚Ì’Ê‚èƒAƒŠƒX‚ƃWƒ‹ƒ^ƒX‚̃GƒT‚Ì•ÏXB
+EGM‚̃Aƒuƒ‰ƒJƒ^ƒuƒ‰ê—pƒXƒLƒ‹‚̃tƒ‰ƒO‚ªÁ‚¦‚Ä‚½‚Ì‚Å•œŠˆB
+Eƒuƒ‰ƒbƒNƒXƒ~ƒXƒMƒ‹ƒhˆõ‚ɃvƒŠ[ƒXƒg‚Ìꇂ̃ZƒŠƒt‚ð’ljÁB
+EƒNƒ‰ƒXƒ`ƒFƒ“ƒW‚Å‘S‚Ä‚ÌŽw’èIDƒ{ƒX‚ªo‚é‚悤‚Éi‚È‚Á‚Ä‚é‚Æ‚¢‚¢‚È‚Ÿj
+ (db)
+ pet_db.txt
+ (conf)
+ battle_athena.conf
+ (script/npc/job)
+ npc_job_10blacksmith.txt
+ (src/map)
+ mob.c
+--------------------
+//1075 by kag
+E‹|Žè—p‚ÌŽwŠÑ‚ÌŒø‰ÊŽÀ‘•‚Ì•zÎ
+EŒø‰Ê‚ª‚Í‚Á‚«‚è‚Æ‚µ‚È‚¢‚Ì‚Åitem_db‚ÌC³‚Í‚¢‚ê‚Ä‚¢‚Ü‚¹‚ñB
+E1075”Ô‚Å‚¢‚¢‚Ì‚©‚È‚Ÿ‚ÆŽv‚Á‚½‚èB
+
+ (db)
+ const.txt
+ bWeponAtk=1073‚ÆbWeponAtkRate=1074‚ð’ljÁ
+
+ (src/map)
+ battle.c
+ int battle_get_baseatk()C³
+ static struct Damage battle_calc_pc_weapon_attack()C³
+ map.h
+ int weapon_atk[16],weapon_atk_rate[16];
+ SP_WEPON_ATK,SP_WEPON_ATK_RATE, // 1073-1074‚ð’ljÁ
+ pc.c
+ memset(sd->weapon_atk,0,sizeof(sd->weapon_atk));
+ memset(sd->weapon_atk_rate,0,sizeof(sd->weapon_atk_rate));‚ð’ljÁ
+
+ pc_bonus2() C³
+ (doc)
+ item_bonus.txt
+ bWeponAtk,bWeponAtkRate,bHPDrainValue,bSPDrainValue@’ljÁB
+
+--------------------
+//1073 by LP@@
+EƒAƒRƒXƒLƒ‹‚̈ꕔ‹y‚уTƒCƒgƒXƒLƒ‹‚ÌC³(“ú–{‚É‚Í¡ŒŽ––‚É—ˆ‚锤H@2004/12/06)
+‘¬“xŒ¸­‚͈ړ®‘¬“xŒ¸­—Ê‚ªAƒVƒOƒiƒ€ƒNƒ‹ƒVƒX‚ͬŒ÷—¦ADEFŒ¸­—Ê‚Ì‘‰Á—Ê‚ª
+‚Í‚Á‚«‚肵‚È‚©‚Á‚½‚̂ŘM‚Á‚Ä‚¢‚Ü‚¹‚ñB
+ (src/map)
+ battle.c
+ ƒf[ƒ‚ƒ“ƒxƒCƒ“AƒfƒBƒoƒCƒ“ƒvƒƒeƒNƒVƒ‡ƒ“ŒvŽZŽ®‚ðC³B
+ skill.c
+ ƒ‹ƒAƒtAƒTƒCƒg‚Ì—LŒø”͈͂ðC³i—¼•û10x10¨ƒ‹ƒAƒt5x5,ƒTƒCƒg7x7jB
+
+ (db)
+ skill_cast.db
+ ƒAƒNƒAƒxƒlƒfƒBƒNƒ^‚̉r¥‹y‚уfƒBƒŒƒC‚ðC³B
+
+//1072 by kag
+E“]¶ƒXƒLƒ‹‚ð’†S‚ÉC³
+ (src/map)
+ battle.c
+ –‚–@—Í‘•‚ðƒXƒLƒ‹ƒŒƒxƒ‹*5%‚ÉC³B
+ –‚¿‚É–î‚ÌATK‚ªæ‚ç‚È‚­‚È‚é‚悤‚ÉC³B
+ ƒI[ƒ‰ƒuƒŒ[ƒh‚̒ljÁƒ_ƒ[ƒW‚ð100‚ÉC³B
+ ƒo[ƒT[ƒN‚Ì—^ƒ_ƒ‚ð‚Q”{‚É‚È‚é‚悤‚ÉC³B
+ ƒwƒbƒhƒNƒ‰ƒbƒVƒ…‚ÌŒvŽZŽ®‚ðC³B
+ ƒXƒpƒCƒ‰ƒ‹ƒsƒA[ƒX‚ÌŒvŽZŽ®‚¾‚¯C³B
+ ƒvƒŒƒbƒVƒƒ[‚ÌŒvŽZŽ®‚ðC³B
+ ˜A’Œ•öŒ‚‚ÌŒvŽZŽ®‚ðC³B
+ ƒ\[ƒhƒŠƒWƒFƒNƒg‚Ì”½ŽË—¦‚ðƒXƒLƒ‹ƒŒƒxƒ‹*15%‚ÉC³B
+ ƒAƒ[ƒoƒ‹ƒJƒ“‚ÌŒvŽZŽ®‚ðC³B–î‚Ì‘®«‚ªæ‚é‚悤‚ÉC³B
+ ƒtƒ@ƒ‹ƒRƒ“ƒAƒTƒ‹ƒg‚ÌŒvŽZŽ®‚ðC³BŠæ‹­ƒtƒ‰ƒO‚Å‚Pƒ_ƒ‚É‚È‚é‚悤‚ÉC³B
+ ƒuƒŠƒbƒcƒr[ƒg‚ðŠæ‹­ƒtƒ‰ƒO‚Å‚Pƒ_ƒ‚É‚È‚é‚悤‚ÉC³B
+ ƒfƒ‚ƒ“ƒXƒgƒŒ[ƒVƒ‡ƒ“‚ð•K’†AƒJ[ƒh‚ðæ‚ç‚È‚¢‚悤‚ÉC³B
+ ƒAƒVƒbƒhƒeƒ‰[‚ð–hŒä–³Ž‹A•K’†A–³‘®«AƒJ[ƒh‚ðæ‚ç‚È‚¢‚悤‚ÉC³B
+ skill.c
+ –‚–@—Í‘•‚É0.7•b‚̌Œè‰r¥’ljÁB
+ LP@@ ‚³‚ñ‚̃AƒXƒ€ƒLƒŠƒGd•¡•s‰Â‚ð’ljÁB
+
+ (db)
+ skill_db.txt
+ ‹¶‹CE‚ð‰r¥–WŠQ‚Å‚«‚é‚悤‚ÉC³B
+ skill_cast_db.txt
+ ƒvƒŒƒbƒVƒƒ[‚̉r¥AƒfƒBƒŒƒC‚ð’ljÁB
+ –ÒŒÕd”hŽR‚̃fƒBƒŒƒC‚ð’ljÁB
+ ƒ‰ƒCƒt’u‚«Š·‚¦‚̃fƒBƒŒƒC‚ð’ljÁB
+ ƒtƒ@ƒ‹ƒRƒ“ƒAƒTƒ‹ƒg‚̉r¥AƒfƒBƒŒƒC‚ð’ljÁB
+ ƒEƒCƒ“ƒhƒEƒH[ƒN‚̃fƒBƒŒƒCAŽ‘±ŽžŠÔ‚ð•ÏXB
+ ƒAƒ[ƒoƒ‹ƒJƒ“‚̉r¥AƒfƒBƒŒƒC‚ð’ljÁB
+ ƒNƒŠƒGƒCƒgƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“‚̃fƒBƒŒƒC‚ð’ljÁB
+ skill_require_db.txt
+ ƒI[ƒ‰ƒuƒŒ[ƒh‚ÌÁ”ïSP‚ðC³B
+ ƒRƒ“ƒZƒ“ƒgƒŒ[ƒVƒ‡ƒ“‚ÌÁ”ïSP‚ðC³B
+ –‚–@—Í‘•‚ÌÁ”ïSP‚ðC³B
+ ƒiƒp[ƒ€ƒoƒ‹ƒJƒ“‚ÌÁ”ïSP‚ðC³B
+ ƒvƒŒƒbƒVƒƒ[‚ÌÁ”ïSP‚ðC³B
+ ƒTƒNƒŠƒtƒ@ƒCƒX‚ÌÁ”ïSP‚ðC³B
+ –ÒŒÕd”hŽR‚ÌÁ”ïSP‚ðC³B
+ ƒŠƒWƒFƒNƒgƒ\[ƒh‚ÌÁ”ïSP‚ðC³B
+
+//1071 by ICO
+Enpc_job_09wizard.txt,npc_job_16sage.txt‚ðC³
+EŽæ‚芪‚«‚ª¢Š«ŒnƒXƒLƒ‹‚ðŽg—p‚·‚éÛ‚Ì‹““®‚ðC³
+
+ (src/map)
+ mob.c
+ Žæ‚芪‚«‚Ì¢Š«ŒnƒXƒLƒ‹‚ð‹K§‚·‚éƒ^ƒCƒ~ƒ“ƒO‚ð•ÏX
+ skill.c
+ ¢Š«ŒnƒXƒLƒ‹‚Ì”­“®ðŒ‚ðC³
+
+//1070 by sylpheed
+Eƒhƒƒbƒv—¦‚̃Œ[ƒg‚²‚Æ‚Ì’²®‚ð’ljÁ
+ ƒhƒƒbƒvÝ’è1`9 10`99 100`999 1000`10000‚Ō•ʂɔ{—¦‚ÆÅ’á/Å‚’l‚Ìݒ肪‰Â”\‚Å‚·
+E@weather 0 ‚ª“®‚©‚È‚¢‚Ì‚ðC³
+E“]¶“ñŽŸE‚ÌHP/SP25“㸎À‘•
+ƒhƒƒbƒv”{—¦‚ÍeAthena‚̃AƒCƒeƒ€Ží—Þ–ˆ‚ÌÝ’è‚ðˆÚA‚µ‚Ä‚à—Ç‚©‚Á‚½‚Ì‚Å‚·‚ª
+Ží—Þ–ˆ‚¾‚ƃŒ[ƒg‚ÌŠJ‚«‚ª‘å‚«‚¢ê‡‚ª‚ ‚èA‚ ‚Ü‚èˆÓ–¡‚ª‚È‚¢‚½‚ß
+‚±‚̂悤‚ÈŒ`‚ŃŒ[ƒgÚ×Ý’è‚ð’ljÁ‚µ‚Ä‚Ý‚Ü‚µ‚½B
+mob_db‚ð˜M‚é‚æ‚èŠy‚Ƀhƒƒbƒv—¦‚Ì•ÏX‚ª‚Å‚«‚é‚ÆŽv‚¢‚Ü‚·B
+
+weather 0‚ª“®‚©‚È‚¢‚Ì‚Í——R‚ª—Ç‚­‚í‚©‚ç‚È‚©‚Á‚½‚Ì‚Å
+“®‚­‚悤‚ÉC³‚·‚é‚‚¢‚Å‚ÉA‰Jƒtƒ‰ƒOÁ‹ŽŽž‚É
+“ø‚ªo‚é‚悤‚ɒljÁ‚µ‚Ä‚Ý‚Ü‚µ‚½B
+
+“]¶‚ÌHP/SP‚ÉŠÖ‚µ‚Ä‚ÍA“]¶‚µ‚Ä‚¢‚Ä‚à“ñŽŸE‚É‚È‚Á‚Ä‚È‚¢ê‡
+‘‰Á‚Í‚µ‚È‚¢‚悤‚È‚Ì‚ÅA‚»‚̂悤‚ÉŽÀ‘•‚µ‚Ä‚Ý‚Ü‚µ‚½B
+wedding_modifydisplay: yes ‚ÌŽž‚ɃhƒŒƒX/ƒ^ƒLƒV[ƒh‚ð‘•”õ‰ðœ‚·‚é‚Æ
+‘‰Á•ª‚ªÁ‚¦‚Ä‚µ‚Ü‚¢‚Ü‚·¥¥¥
+‚í‚©‚é•û‚¢‚½‚çC³‚¨Šè‚¢‚µ‚Ü‚·orz
+
+ (src/map)
+ atcommand.c
+ @weatherŠÖ˜A‚ÌC³(case 0‚ðŽÀs‚·‚é‚悤‚ÉC³)
+ ‰Jƒtƒ‰ƒO‚ðÁ‚µ‚½ê‡“ø‚ªo‚é‚悤‚É‚µ‚Ä‚Ý‚Ü‚µ‚½(JP‘ ‚ÅŽg‚¦‚é‚©•s–¾)
+ (ƒ}ƒbƒvˆÚ“®‚µ‚È‚¢‚Æ“VŒó‚ªÁ‚¦‚È‚¢‚Ì‚Íragexe‚ÌŽd—l‚©‚ÈH)
+ battle.c
+ battle.h
+ mob.c
+ item_rate_detailsŠÖ˜A‚ð’ljÁ
+ pc.c
+ “]¶“ñŽŸEŽž‚ÌHP/SPÅ‘å’l25%‘‰Á‚ð’ljÁ
+ “]¶‚µ‚Ä‚¢‚Ä‚à“ñŽŸE‚Å‚È‚¢ê‡‚ÍHP/SP‘‰Á‚Í–³‚µ‚̂悤‚Å‚·
+ (conf)
+ help.txt C³
+ msg_athena.conf 112’ljÁ
+
+ (doc)
+ conf_ref.txt C³
+ help.txt C³
+
+//1069 by lizorett (2004/11/26) special thanks to –¼–³‚µ—l@‚‡—‚‚…
+Eƒƒ‹ƒgƒ_ƒEƒ“‚ÌŽÀ‘•
+E–‚–@—Í‘•‚ª‰r¥‚Ì‚ ‚é–‚–@‚Å—LŒø‚É‚È‚ç‚È‚©‚Á‚½–â‘è‚ðC³
+Emap-server‚ªƒ_ƒEƒ“‚·‚é–â‘è‚ÌC³(Ž¿–âƒXƒŒƒbƒh Part13 >>55)
+Emap-server‚É•s³ID‚ŃƒOƒCƒ“‚·‚é‚Æchar-server‚ªƒ_ƒEƒ“‚·‚é–â‘è‚ÌC³
+EƒTƒtƒ‰ƒMƒEƒ€‚ª–³‰r¥ƒXƒLƒ‹‚ÅŽæ‚èÁ‚³‚ê‚È‚¢–â‘è‚ðC³
+Ed•¡‚µ‚Ä–Ò“Åó‘Ô‚Æ‚È‚ç‚È‚¢‚悤C³
+Eƒ}ƒOƒiƒ€ƒuƒŒƒCƒN‚̃_ƒ[ƒW‚ðC³
+Eƒo[ƒTƒN’†‚ÉHP/SP‹zŽûA“łȂǂ̃_ƒ[ƒW‚ðŽó‚¯‚é‚悤C³
+EŒŽŒõŒ•‚ÌSP‹zŽû—Ê‚ª‘‰Á‚µ‚Ä‚¢‚­–â‘è‚ðC³(Žb’è)
+E@help‚ɃL[ƒ[ƒhŒŸõ‹@”\‚ð’ljÁ
+
+ (src/map)
+ battle.c - ƒ}ƒWƒbƒNƒpƒ[‚É‚æ‚éMATK‘‰Á‚ÌŽÀ‘•
+ - •ŠíŠZ”j‰ó‚ðpc_break_equip()‚É‘‚«Š·‚¦
+ - HP/SP‹zŽû‚ðC³
+ map.h - ‘•”õ”j‰ó‚Ì’è‹`‚ð’ljÁ
+ pc.c - pc_break_armor()/pc_break_weapon()‚ðAV‹K‚Ì‘•”õ”j‰ó‚Ì
+ ŠÖ”pc_break_equip()‚É“‡
+ - –‚–@—Í‘•‚̃R[ƒh‚ðíœ(battle.c‚Ås‚¤)
+ - HP/SP‹zŽûŠÖŒW‚Ì•Ï”‚̉Šú‰»‚ð’ljÁ
+ pc.h - ŠÖ”’è‹`‚ðC³
+ skill.c - ƒƒ‹ƒgƒ_ƒEƒ“‚É‚æ‚é‘•”õ”j‰ó‚ðŽÀ‘•
+ - –‚–@—Í‘•‚ÉŠÖ‚·‚éC³
+ - d•¡‚µ‚Ä–Ò“Åó‘Ô‚Æ‚È‚ç‚È‚¢‚悤C³
+ clif.c - map-server‚ªƒ_ƒEƒ“‚·‚é–â‘è‚ÌC³
+ atcommand.c - @help‚ɃL[ƒ[ƒhŒŸõ‚ð’ljÁ("@help jobchange"‚È‚Ç)
+ (src/char)
+ char.c - char-server‚ªƒ_ƒEƒ“‚·‚é–â‘è‚ÌC³
+ (db)
+ const.txt - bUnbreakableHelm, bUnbreakableShield’ljÁ
+ skill_cast_db.txt
+ - ƒƒ‹ƒgƒ_ƒEƒ“‚Ìó‘ÔˆÙ펞ŠÔ‚ðÝ’è
+
+//1068 by huge
+Eatcommand‚ð‚¢‚­‚‚©’ljÁ‚ÆAeAthena‚©‚ç‚¢‚­‚‚©ˆÚAB(help.txtŽQÆ)
+E”ñGMƒLƒƒƒ‰‚ª@‚ÅŽn‚Ü‚é”­Œ¾‚ð‚µ‚½ŽžA‚»‚Ì‚Ü‚Ü•\Ž¦‚·‚é‚悤‚É‚µ‚½B(GMƒŒƒxƒ‹0‚̃Rƒ}ƒ“ƒh‚ÍŽÀs)
+E“V‹CƒRƒ}ƒ“ƒh‚ɇ‚킹‚ÄAmapflagÝ’è‚Å‚«‚é‚悤‚ÉB
+Escript‚ð‚¢‚­‚‚©’ljÁ‚ÆAeAthena‚©‚çˆê‚ˆÚAB
+E‰ŠúHP”{—¦‚ÆSP”{—¦‚ðbattle_athena‚ÅÝ’è‚Å‚«‚é‚悤‚É‚µ‚½B
+E‘SƒLƒƒƒ‰‚ªAGM‚ɂ͈ʒuEHP‚ð’Ê’m‚³‚¹‚é‚悤battle_athena‚ÅÝ’è‚Å‚«‚é‚悤‚É‚µ‚½B
+EƒhƒNƒƒhƒƒbƒv‚ɂ‚¢‚ÄAbattle_athena‚ÅÝ’è‚Å‚«‚é‚悤‚É‚µ‚½B
+EGM‚̃AƒCƒeƒ€ƒhƒƒbƒv‚âŒðŠ·‚ɂ‚¢‚ÄGMƒŒƒxƒ‹‚ð§ŒÀ‚Å‚«‚é‚悤‚É‚µ‚½B
+EƒfƒBƒeƒNƒeƒBƒ“ƒOƒXƒLƒ‹C³B
+¦ƒfƒtƒHƒ‹ƒg‚Ì“ú–{ƒNƒ‰ƒCƒAƒ“ƒg‚¾‚ÆA‰J‚Å—Ž‚¿‚Ü‚·B
+
+ (conf/)
+ atcommand_athena.conf C³
+ battle_athena.conf C³
+ help.txt C³
+ msg_athena.conf C³
+
+ (doc/)
+ help.txt C³
+ script_ref.txt C³
+ conf_ref.txt C³
+
+ (src/map/)
+ atcommand.c
+ atcommnad.h
+ guild.h party.h‚ð“Ç‚Þ—l‚ÉC³
+ is_atcommand() C³
+ atcommand() C³
+ ¦ˆÚAEV‹KƒRƒ}ƒ“ƒh‚ɂ‚¢‚Ä‚Í help.txt ‚ðŠm”F‚µ‚ĉº‚³‚¢B
+ battle.c
+ battle.h
+ hp_rate,sp_rate,hp_meter,bone_drop ’ljÁ
+ clif.c
+ clif.h
+ clif_spawnpc() C³
+ clif_hpmeter() ’ljÁ
+ guild.c
+ guild.h
+ guild_searchname() ’ljÁ
+ guild_searchname_sub() ’ljÁ
+ map.h
+ “VŒó‚ÉŠÖ‚·‚éflag’ljÁ
+ npc.c
+ npc_parse_mapflag() C³
+ party.c
+ party.h
+ party_searchname() ’ljÁ
+ party_searchname_sub() ’ljÁ
+ pc.c
+ pc.h
+ pc_calcstatus() C³
+ pc_damage() C³
+ pc_walk() C³
+ pc_can_drop() ’ljÁ
+ script.c
+ gmcommand ˆÚA’ljÁ
+ dispbottom ’ljÁ
+ getusersname ’ljÁ
+ recovery ’ljÁ
+ petinfo ’ljÁ
+ checkequipedcard ’ljÁ
+ getexp íœ(set‚ðŽg‚¤‚悤‚É‚µ‚ĉº‚³‚¢)
+ skill.c
+ skill.h
+ skill_castend_pos2() C³
+
+ {AthenaŽG’kƒXƒŒƒbƒhPart7 >>54 ‚à‚Á‚³‚肳‚ñ‚Ì•ª
+ ‹Lq˜R‚ꂪ‚ ‚Á‚½‚ç‚·‚¢‚Ü‚¹‚ñB
+--------------------
+//1067 by kai
+EƒƒfƒBƒeƒCƒeƒBƒI‚É‚æ‚éƒq[ƒ‹‰ñ•œ—Ê‘‰Á‚ÌŒø‰Ê‚ðC³
+EƒAƒhƒoƒ“ƒXƒhƒJƒ^[ƒ‹Œ¤‹†‚ÌC³
+EPvPŽž‚É‚¨‚¯‚éƒAƒXƒ€ƒvƒeƒBƒI‚ÌŒø‰Ê‚ðC³
+
+ (src/map)
+ skill.c
+ 2120s@heal += heal*(skill*2)/100; //ƒƒfƒBƒeƒCƒeƒBƒI‚ÌC³
+
+ battle.c
+ 1723s@damage += dmg*(10+(skill * 2))/100; //ƒAƒhƒoƒ“ƒXƒhƒJƒ^[ƒ‹Œ¤‹†‚ÌC³
+
+ 2598`2599A3580`3582s@ƒAƒXƒ€ƒvƒeƒBƒI‚ÌC³
+ if(map[target->m].flag.pvp)‚Æ‚µƒ_ƒ[ƒWŒvŽZ‚ð2/3‚ÉC³
+
+--------------------
+//1066 by lizorett (2004/11/17) special thanks to –¼–³‚µ—l@‚‡—‚‚…
+EƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“쬎À‘•
+EƒGƒ“ƒ`ƒƒƒ“ƒgƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“ŽÀ‘•
+Eƒ\ƒEƒ‹ƒuƒŒƒCƒJ[ŽÀ‘•
+Ebattle_weapon_attack‚Å–¢‰Šú‰»‚Ì’l‚ª–ß‚³‚ê‚éƒoƒOC³
+E‘¼Žg—pSP‚Ì•ÏX“™‚Ìׂ©‚¢C³
+
+ (db)
+ const.txt - –Ò“Å(SC_DPoison)‚ð’ljÁ
+ item_db.txt - —΃n[ƒu,—΃|[ƒVƒ‡ƒ“,–œ”\–ò‚É–Ò“Å‚ðŽ¡‚·Œø‰Ê‚ð’ljÁ
+ produce_db.txt - ƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“‚ÌÞ—¿‚Ì’è‹`‚ð’ljÁ
+ skill_cast_db.txtƒGƒ“ƒ`ƒƒƒ“ƒgƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“Aƒ\ƒEƒ‹ƒuƒŒƒCƒJ[
+ ‚Ì’è‹`‚ðC³/’ljÁ
+ skill_db.txt - ƒ\ƒEƒ‹ƒuƒŒƒCƒJ[/ƒGƒ“ƒ`ƒƒƒ“ƒgƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“/
+ ƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“쬂̒è‹`‚ðC³
+ - ƒiƒp[ƒ€ƒoƒ‹ƒJƒ“‚̃qƒbƒg”C³
+ skill_require_db.txt
+ - ƒGƒ“ƒ`ƒƒƒ“ƒgƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“‚ª“Å–ò‚Ì•r‚ðŽg—p‚·‚é
+ ‚悤‚ÉC³
+ - ƒ\ƒEƒ‹ƒuƒŒ[ƒJ[/ƒƒeƒIƒAƒTƒ‹ƒg‚ÌŽg—pSP‚ðC³
+ (src/map)
+ battle.h - battle_config.cdp_rate‚ð’ljÁ
+ battle.c - ƒ\ƒEƒ‹ƒuƒŒ[ƒJ[ŽÀ‘•
+ - ƒƒeƒIƒAƒTƒ‹ƒg‚ɃJ[ƒhŒø‰Ê‚ª‚©‚©‚ç‚È‚¢‚悤•ÏX
+ - 4213s‚ÌðŒ‚Å–¢‰Šú‰»‚Ì’l‚ª–ß‚³‚ê‚éƒoƒOC³
+ - battle_config.cdp_rate‚ð’ljÁ
+ skill.h - ƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“쬂ÌÞ—¿‚ª7‚‚Ȃ̂ÅAƒe[ƒuƒ‹
+ ‚ð’ljÁBÞ—¿‚Ìő唂ðdefine‚Å•ÏX‚Å‚«‚é‚悤C³
+ - SC_DPOISON(182)/SC_EDP(183)‚ð’ljÁ
+ skill.c - –Ò“ÅŒø‰Ê‚ð’ljÁ
+ - ƒfƒbƒhƒŠ[ƒ|ƒCƒYƒ“쬂ðŽÀ‘•
+--------------------
+//1065 by End_of_exam
+
+EƒT[ƒo[ƒ]ƒ“ƒr‰»‚ÉŽb’è‘Έ
+Ecalc_index(path.c)‚Ì•s“s‡‚ðC³
+
+ (common/)
+ timer.c
+ TIMER_MIN_INTERVEL(ƒ^ƒCƒ}[‚ÌŬƒCƒ“ƒ^[ƒoƒ‹j‚ð’ljÁ‚µ‚Ü‚µ‚½B
+ ‚»‚ê‚É”º‚¢Ado_timer() ‚Ì–ß‚è’l‚ÌÅ’á‚ð 10ms ‚©‚ç 50ms ‚É•ÏX‚µ‚Ü‚µ‚½B
+
+ select‚ª10msˆÈ“à‚ÉI‚í‚ç‚È‚¢ŠÂ‹«‚¾‚ÆAƒ‚ƒ“ƒXƒ^[‚ð‘å—Ê¢ŠÒ‚µ‚½Žž‚È‚Ç‚ÉA
+ ƒNƒ‰ƒCƒAƒ“ƒg‚©‚ç‚̃pƒPƒbƒg‚É”½‰ž‚µ‚È‚­‚È‚é–Í—l‚Å‚·B
+ ƒ[ƒJƒ‹ƒeƒXƒgiƒ‚ƒ“ƒXƒ^[‘å—Ê¢ŠÒj‚ð‚µ‚Ä‚Ý‚½‚Æ‚±‚ëA25ms‚É•ÏX‚µ‚½Žž“_‚Å
+ ‰ü‘P‚µ‚Ü‚µ‚½‚ªAŠÂ‹«‚É‚æ‚Á‚Ä‚Í50ms‚Å‚à•s\•ª‚©‚à‚µ‚ê‚Ü‚¹‚ñB
+ ‚»‚ÌꇂÍATIMER_MIN_INTERVEL‚ð‘‚₵‚Ä—lŽq‚ðŒ©‚Ä‚­‚¾‚³‚¢B
+
+ “¯—l‚ÌŒ»Û‚Æ‚µ‚ÄA‘½”‚̃Nƒ‰ƒCƒAƒ“ƒg‚ªÚ‘±‚·‚é‚ƃT[ƒo[‚ª”½‰ž‚µ‚È‚­‚È‚é
+ ‚Æ‚¢‚¤‚Ì‚ª‚ ‚è‚Ü‚·‚ªA‚±‚̃pƒbƒ`‚É‚æ‚Á‚Ä‚ ‚é’ö“x‰ü‘P‚³‚ê‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB
+
+ (map/)
+ map.h : MAX_WALKPATH
+ path.c “à‚Ì calc_index‚ª•s“s‡‚ð‹N‚±‚·(48*48-1 = 1000 1111 1111(b)) ‚½‚ßA
+ MAX_WALKPATH‚ð 48 ‚©‚ç 32 ‚É•ÏX‚µ‚Ü‚µ‚½B(32*32-1 = 0011 1111 1111(b))
+
+ #define calc_index(x,y) (((x)+(y)*MAX_WALKPATH) & (MAX_WALKPATH*MAX_WALKPATH-1))
+--------------------
+//1064 by nameless
+EGCC 3.3.0/3.3.1‚ª“à•ï‚·‚é0/0=•Ï”Å‘å’l‚Ì–â‘è‘Îô(int:65535/long:4294967294)
+E–‚–@–hŒäE–hŒäE‘®«–hŒä‚ª³‚µ‚­“K—p‚³‚ê‚È‚¢–â‘è‚ðC³
+Eƒiƒp[ƒ€ƒoƒ‹ƒJƒ“‚ð’P‘Ì–‚–@‚̃R[ƒh‚ÉC³‚µAŽô‚¢Œø‰Ê‚ðŽÀ‘•
+
+ (src/map)
+ skill.c
+ 442`448s •s“™†[<]‚ð[>]‚ÉC³
+ 512`519s •s“™†[>]‚ð[<]‚ÉC³
+ 529`538s ƒRƒ“ƒpƒCƒ‰ƒoƒO‚Ì’ù³•û–@‚Æ—á/*`*/‚Ì•”•ª‚ð
+ gcc‚̃o[ƒWƒ‡ƒ“‚ɇ‚킹‚Ķ‚©‚µ‚½‚èŽE‚µ‚½‚è
+ ‚µ‚Ä‚­‚¾‚³‚¢B3.3.2‚©‚ç‚Í’¼‚Á‚Ä‚¢‚é‚悤‚Å‚·
+ 1857s ƒiƒp[ƒ€ƒoƒ‹ƒJƒ“‚ð’ljÁ
+ 660`664s ƒiƒp[ƒ€ƒoƒ‹ƒJƒ“‚ÌŽô‚¢Œø‰Ê‚ð’ljÁ
+ (src/char)
+ char.c
+ C³‚µ‚«‚ê‚Ä‚¢‚È‚©‚Á‚½•”•ª‚ðC³‚µ‚Ü‚µ‚½B
+
+--------------------
+//1063 by ŽµŽ
+EŒŽŒõŒ•‚ÌŒø‰ÊŽÀ‘•
+E¶ŽèƒJ[ƒh‚É‚æ‚éA•ŠíUŒ‚Žž‚ÌHP/SP‹zŽûŒø‰Ê‚ª‰EŽè‚ɉe‹¿‚·‚é—l‚ÉC³(–{ŽIŽd—l)
+ (left_cardfix_to_right‚ªyes‚ÌŽž‚Ì‚ÝBno‚¾‚Æ]—ˆ’Ê‚è)
+
+ (db)
+ const.txt
+ bHPDrainValue=1071‚ÆbSPDrainValue=1072‚ð’ljÁ
+ item_db.txt
+ ŒŽŒõŒ•‚ÌEquipScript‚Ébonus2 bSPDrainValue,100,3‚ð’ljÁ
+
+ (src/map)
+ battle.c
+ battle_weapon_attack() C³
+ map.h
+ short hp_drain_value,sp_drain_value,hp_drain_value_,sp_drain_value_;‚ð’ljÁ
+ SP_HP_DRAIN_VALUE,SP_SP_DRAIN_VALUE, // 1071-1072‚ð’ljÁ
+ pc.c
+ pc_bonus2() C³
+
+--------------------
+//1062 by nameless
+EƒpƒPƒbƒg‘—ŽóM‚ł̌둗MC³
+EƒoƒO•ñƒXƒŒƒbƒh part7 ‚©‚ç‚ÌŽæ‚èž‚ÝEC³ >> 56,57,58
+Efix1059‚ÌŽæ‚èž‚Ý
+EƒnƒCƒEƒBƒY‚̃lƒCƒp[ƒ€ƒoƒ‹ƒJƒ“‚ÌŽÀ‘•(eAŽæ‚èž‚Ý)
+ECPUÅ“K‰»ƒR[ƒh‚ÌC³(athlonŒn)E’ljÁ(Œºl” /Linux Zaurus)
+
+ (/)
+ Makefile
+ athlonŒnÅ“K‰»‚ÌC³
+ Œºl” (Kuro-Box 200MHz”Å[PPC 603x])
+ Œºl” (Kuro-Box 266MHz”Å[PPC 604x])
+ Linux Zaurus (SL-C7xx)
+ ‚ÌÅ“K‰»ƒR[ƒh‚ð‹Lq
+
+ (db)
+ skill_cast_db.txt
+ 400,500,1200:1600:2000:2400:2500,0,0 //HW_NAPALMVULCAN#ƒiƒp[ƒ€ƒoƒ‹ƒJƒ“#
+ (src/map)
+ clif.c
+ clif_parse() C³
+ (src/char)
+ char.c
+ 1367s cmd = RFIFOW(fd,0);’ljÁ
+ (src/map)
+ skill.c
+ switch(skillid)‚Écase HW_NAPALMVULCAN:ˆÈ‰º20s‚قǒljÁ
+--------------------
+//1061 by lizorett (2004/11/9)
+E•s³‚ȃMƒ‹ƒhƒXƒLƒ‹ƒpƒPƒbƒg‚ðŽó‚¯‚½ê‡‚Émap/charƒT[ƒo‚ª—Ž‚¿‚錻ۂðC³
+E•s³‚ȃpƒPƒbƒg‚ðŽó‚¯‚½ê‡‚ÉcharƒT[ƒo‚ª—Ž‚¿‚錻ۂðC³
+EŒ‹¥‚µ‚½ƒLƒƒƒ‰‚ð휂·‚é‚ÆcharƒT[ƒo‚ª—Ž‚¿‚錻ۂðC³
+E” ‚ðˆê‚‚¾‚¯Ž‚Á‚½ó‘Ô‚Å” ‚©‚ç” ‚ª‚Å‚é‚ÆA” ‚ªÁ‚¦‚邽‚悤‚ÉŒ©‚¦‚é
+ (ƒŠƒƒO‚·‚é‚ÆŒ©‚¦‚é)–â‘è‚ðC³
+EƒXƒiƒbƒ`ƒƒ[‚̃XƒLƒ‹Ž¸”s‚ð•\Ž¦‚µ‚È‚¢‚悤‚É‚Å‚«‚éÝ’è‚ð’ljÁ
+Eƒfƒ{[ƒVƒ‡ƒ“‚̃Œƒxƒ‹§ŒÀ(10ƒŒƒxƒ‹·)‚ð•ÏX‚Å‚«‚éÝ’è‚ð’ljÁ
+
+ (src/common)
+ mmo.h
+ ƒMƒ‹ƒhƒXƒLƒ‹‚Ìenum‚ð’ljÁ(src/map/skill.h‚©‚çˆÚ“®)
+ (src/map)
+ skill.h
+ ƒMƒ‹ƒhƒXƒLƒ‹‚Ìenum‚ðíœ(src/common/mmo.h‚Ɉړ®)
+ guild.c
+ guild_checkskill ƒXƒLƒ‹‚͈̔̓`ƒFƒbƒN‚ð’ljÁ
+ guild_skillup ƒXƒLƒ‹‚͈̔̓`ƒFƒbƒN‚ð’ljÁ
+ skill.c
+ skill_additional_effect display_snatcher_skill_fail‚̈—‚ð’ljÁ
+ skill_castend_nodamage_id devotion_level_difference‚̈—‚ð’ljÁ
+ battle.c
+ display_snatcher_skill_fail,devotion_level_difference‚̉Šú‰»‚ð’ljÁ
+ (src/char)
+ int_guild.c
+ guild_checkskill ƒXƒLƒ‹‚͈̔̓`ƒFƒbƒN‚ð’ljÁ
+ mapif_parse_GuildSkillUp ƒXƒLƒ‹‚͈̔̓`ƒFƒbƒN‚ð’ljÁ
+ char.c
+ parse_char •s³‚ȃpƒPƒbƒg‚ðŽó‚¯‚½ê‡‚ɂ̓_ƒ“ƒv‚·‚é‚悤C³
+ char_divorce i<MAX_INVENTORY‚ðj<MAX_INVENTORY‚É•ÏX
+ (conf)
+ battle_athena.conf
+ display_snatcher_skill_fail,devotion_level_difference‚ð’ljÁ
+--------------------
+//1060 by mosya
+Eƒ‚ƒ“ƒXƒ^[‚ªƒXƒLƒ‹‰r¥’†‚ÉÀ•WƒYƒŒ‚ð‹N‚±‚·–â‘è‚ðC³
+EMOB‚ÌAI•ÏXB‘O‰q‚ªƒ^ƒQ‚ðŽæ‚Á‚Ä‚¢‚é‚Ì‚ÉAŒã‰q‚ÉUŒ‚‚ð‚µ‚É‚ä‚­‚Ì‚ðC³
+ (src/map)
+ mob.c
+ mob_ai_sub_hard() •ÏX
+ mobskill_castend_id() •ÏX
+ mobskill_castend_pos() •ÏX
+ mobskill_use_id() •ÏX
+ mobskill_use_pos() •ÏX
+--------------------
+//1059 by SPDFMember
+EeAthena‚ðŽQl‚ɃŠƒ[ƒhDBŒn“‚ð’ljÁ‚µ‚Ü‚µ‚½B
+ (conf/)
+ atcommand_athena.conf
+ reloaditemdb
+ reloadmobdb
+ reloadskilldb‚ð’ljÁ
+ help.txt
+ reloaditemdb
+ reloadmobdb
+ reloadskilldb‚Ìà–¾‚ð’ljÁ
+ msg_athena.conf
+ 89
+ 90
+ 91‚ð’ljÁ
+ (src/map)
+ atcommand.c
+ reloaditemdb
+ reloadmobdb
+ reloadskilldb‚ð’ljÁB
+ atcommand.h
+ AtCommand_ReloadItemDB,
+ AtCommand_ReloadMobDB,
+ AtCommand_ReloadSkillDB,‚ð’ljÁ
+ itemdb.c
+ static int itemdb_readdb(void);’ljÁ
+ itemdb.h
+ void itemdb_reload(void);’ljÁ
+ mob.c
+ void mob_reload(void)’ljÁ
+ mob.h
+ void mob_reload(void);’ljÁ
+ skill.c
+ void skill_reload(void)’ljÁ
+ skill.h
+ void skill_reload(void);’ljÁ
+--------------------
+//1058 by lizorett
+EƒMƒ‹ƒh‘qŒÉƒAƒCƒeƒ€‚ªMAX_STORAGEŒÂˆÈã‚ ‚é‚ÆŽæ‚èo‚¹‚È‚¢‚à‚Ì‚ª‚ ‚é–â‘è‚ðC³
+ (src/map)
+ clif.c
+ clif_parse_DropItem item_index/item_amount‚͈̔̓`ƒFƒbƒN‚ðíœ
+ (pc_dropitem ‚Ń`ƒFƒbƒN‚·‚é)
+ clif_parse_MoveToKafra item_amount‚̃`ƒFƒbƒN‚ðíœ
+ (storage_*storageadd‚Ń`ƒFƒbƒN‚³‚ê‚Ä‚¢‚é)
+ clif_parse_MoveFromKafra item_index/item_amount‚̃`ƒFƒbƒN‚ðíœ
+ (storage_*storageget‚Ń`ƒFƒbƒN‚³‚ê‚Ä‚¢‚é)
+ pc.c
+ pc_dropitem n/amount‚͈̔̓`ƒFƒbƒN‚ð’ljÁ
+--------------------
+//1057 by BDPQ‹â
+EƒEƒH[ƒ^[ƒ{[ƒ‹‚̃_ƒ[ƒW‚ð–{ŽI’m’l¨ŽÀ‘ª’l‚ÉC³B
+ [ MATK+SkillLv*30 ¨ MATK*(1+SkillLv*0.3) ]
+
+ (src/map)
+ battle.c
+ battle_calc_magic_attack •ÏX [ 3848s–Ú‚ ‚½‚è ]
+
+--------------------
+//1056 by robert
+‡”Ô‚ðŒŸ¸‚·‚é‚Ì‚Í•s–@‚©‚Ç‚¤‚©
+ (src/map)
+ clif.c
+ clif_parse_DropItem
+ clif_parse_MoveToKafra
+ clif_parse_MoveFromKafra
+--------------------
+//1055 by Nameless
+EŠeŽíCPU‚ɑ΂·‚éƒR[ƒhÅ“K‰»ƒIƒvƒVƒ‡ƒ“‚ðÝ’è(‘S27Ží) ¦GCC 3.3.1 €‹’
+EPentium 3‚̃IƒvƒVƒ‡ƒ“‚ªSSE2‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ð’ù³
+E‹HŽ}‚³‚ñArobert‚³‚ñ‚ÌPacketî•ñ‚ÌŽæ‚èž‚Ý(‚¨“ñl‚ÉŠ´ŽÓ)
+
+ (/)
+ makefile
+ i486/586/p54c/mmx/P3/P4/Cele
+ k6/k6-2/k6-3/athlonŒn
+ Via C3(Eden)
+ PowerPC/G4Œn
+
+ (src/map/)
+ clif.c
+ clif_parse_MoveToKafra{}
+ ƒR[ƒhŽæ‚èž‚Ý
+
+--------------------
+//1054 by Nameless
+ECygwin‚ŃRƒ“ƒpƒCƒ‹‚µ‚½athena‚ªÚ‘±53`58l•t‹ß‚ÅÚ‘±•s”\‚É‚È‚éƒoƒO‚ð‰ðÁ
+
+ (src/common/)
+ socket.h
+ #ifdef CYGWIN
+ #undef FD_SETSIZE
+ #define FD_SETSIZE 4096
+ #endif
+ ˆÈã‚Ìs‚ðíœ
+ (/)
+ makefile
+ OS_TYPE = -DCYGWIN
+ «
+ OS_TYPE = -DCYGWIN -DFD_SETSIZE=4096
+ ‚ÉC³
+
+ #optimize for Athlon-4(mobile Athlon)
+ #CFLAGS += -march=athlon -mcpu=athlon-4 -mfpmath=sse
+
+ #optimize for Athlon-mp
+ #CFLAGS += -march=athlon -mcpu=athlon-mp -mfpmath=sse
+
+ #optimize for Athlon-xp
+ #CFLAGS += -march=athlon -mcpu=athlon-xp -mfpmath=sse
+
+ #optimize for pentium3
+ #CFLAGS += -march=i686 -mcpu=pentium3 -mfpmath=sse -mmmx -msse2
+
+ ŠeŽíCPU‚ÌÅ“K‰»‚ð’ljÁgcc3.1ˆÈã‚ðŽg‚Á‚Ä‚¢‚éꇂÍ#‚ðŠO‚µ
+ ‚ÄÅ“K‰»‚ðs‚¤‚±‚Æ‚ª‚Å‚«‚é‚ÆŽv‚¢‚Ü‚·B
+
+ ¦makefile‚ŃZƒbƒg‚µ‚Ä‚¨‚©‚È‚¢‚ÆAƒRƒ“ƒpƒCƒ‹‚ÌۂɈꕔ
+ FD_SETSIZE‚ª¬‚³‚­‚È‚Á‚Ä‚µ‚Ü‚¤ƒoƒO(?)‚ª‚ ‚é‚炵‚­AÚ‘±l”‚ª
+ 60lŽã‚ÅÚ‘±•s”\‚ª”­¶‚µ‚Ä‚µ‚Ü‚¢‚Ü‚·B
+
+--------------------
+//1053 by TEILU
+EƒpƒPƒbƒgƒp[ƒT[‚ðƒ^ƒCƒ}[ŒÄo‚µ‚É•ÏX‚Å‚«‚éÝ’è‚̒ljÁ
+E¸˜B‚̉”۔»’è‚Å‚c‚a‚ɂǂ̂悤‚ÈÝ’è‚ð“ü‚ê‚Ä‚àƒAƒNƒZƒTƒŠ‚Í
+ ¸˜B‚Å‚«‚È‚©‚Á‚½•s‹ï‡‚ðC³
+
+ (conf/)
+ map_athena.conf
+ packet_parse_time: 0 ’ljÁ
+ (src/common/)
+ core.c
+ packet_parse_time ’ljÁ
+ main() •ÏX
+ socket.c
+ parsepacket_timer() ’ljÁ
+ socket.h
+ parsepacket_timer() ’ljÁ
+ (src/map/)
+ map.c
+ packet_parse_time ’ljÁ
+ map_config_read() •ÏX
+ script.c
+ buildin_getequipisenableref() •ÏX
+
+--------------------
+//1052 by
+‹êŠ‚‚«‚ÅŒŸõƒRƒ}ƒ“ƒh’ljÁB
+ GMƒRƒ}ƒ“ƒh’ljÁ
+ @who+ ‹êŠ‚‚«ŒŸõ
+
+ (conf/)
+ atcommand_athena.conf
+ who+: 1 ’ljÁ
+ (/src/common/)
+ version.h
+ Ver 1051->1052 •ÏX
+ (/src/map)
+ atcommand.c
+ ATCOMMAND_FUNC(whop); ’ljÁ
+ { AtCommand_WhoP,"@who+",0, atcommand_whop }, ’ljÁ
+ atcommand.h
+ AtCommand_WhoP, ’ljÁ
+--------------------
+//1051 by Plala
+EƒyƒRƒyƒR‹R掞MAX Weight‚ð‘‚₹‚é‚悤‚É‚µ‚Ü‚µ‚½B
+battle_athena.conf‚ÅÝ’è‰Â”\‚Å‚·B
+
+ (conf/)
+ battle_athena.conf
+ riding_weight ’ljÁ
+ (map/)
+ battle.c
+ battle_config.riding_weight ’ljÁ
+ battle.h
+ int riding_weight; ’ljÁ
+ clif.c
+ clif_parse_RemoveOption •ÏX
+ pc.c
+ int pc_calcstatus •ÏX
+ 1415‚Ésd->max_weight +=battle_config.riding_weight; ‚ð’ljÁ
+ (common/)
+ version.h
+ Ver 1050->1051 •ÏX
+--------------------
+//1050 by code
+EŠeŽí“VŒó‘€ìƒRƒ}ƒ“ƒh‚ÌŒ©’¼‚µ
+¦‚¢‚¿‚¢‚¿@misceffect‚ŌĂÑo‚³‚¸‚ÉŠÈ’P‚É“VŒó‘€ì‚ðs‚¦‚é‚悤‚É
+¦ƒNƒ‰ƒCƒAƒ“ƒgˆË‘¶‚Í—Ž‚¿—t‚Å‚Í‚È‚­‰J‚Å‚µ‚½AŠÔˆá‚¢‚Ü‚µ‚½(^-^;
+
+ (src/common/)
+ version.h
+ Ver 1049->1050 •ÏX
+ (/src/map)
+ atcommand.c
+ AtCommand_Rain{} •ÏX
+ AtCommand_Snow{} •ÏX
+ AtCommand_Cherry{} •ÏX
+ AtCommand_Fog{} •ÏX
+ AtCommand_Maple{} •ÏX
+
+--------------------
+//1049 by code
+E–¶A—Ž—t‚Ì2‚‚̓VŒó‘€ìƒRƒ}ƒ“ƒh‚ð’ljÁ‚µ‚Ü‚µ‚½B
+¦—Ž‚¿—t‚ÉŠÖ‚µ‚Ă̓Nƒ‰ƒCƒAƒ“ƒgˆË‘¶‚È‚Ì‚ÅjRO‚¾‚Æ—Ž‚¿‚é‚©‚àc
+
+ GMƒRƒ}ƒ“ƒh’ljÁ
+ @fog –¶
+ @maple —Ž—t
+
+ (conf/)
+ atcommand_athena.conf
+ fog: 1 ’ljÁ
+ maple: 1 ’ljÁ
+
+ msg_athena.conf
+ 87: –¶‚ª—§‚¿ž‚ß‚Ü‚µ‚½B ’ljÁ
+ 88: —Ž‚¿—t‚ª~‚Á‚Ä‚«‚Ü‚µ‚½B ’ljÁ
+ (/src/common/)
+ version.h
+ Ver 1048->1049 •ÏX
+ (/src/map)
+ atcommand.c
+ ATCOMMAND_FUNC(fog); ’ljÁ
+ ATCOMMAND_FUNC(maple); ’ljÁ
+ { AtCommand_fog,"@fog",0, atcommand_fog }, ’ljÁ
+ { AtCommand_maple,"@maple",0, atcommand_maple }, ’ljÁ
+
+ atcommand.h
+ AtCommand_Fog, ’ljÁ
+ AtCommand_Maple, ’ljÁ
+
+--------------------
+//1048 by code
+E‰JAáAƒTƒNƒ‰á‚Ì3‚‚̓VŒó‘€ìƒRƒ}ƒ“ƒh‚ð’ljÁ‚µ‚Ü‚µ‚½B
+¦Õ“®“I‚ɒljÁ‚µ‚Ä‚µ‚Ü‚Á‚½‚̂ŃoƒO‚ª‚ ‚é‚©‚à’m‚ê‚Ü‚¹‚ñ(Š¾
+
+ GMƒRƒ}ƒ“ƒh’ljÁ
+ @rain ‰J
+ @snow á
+ @cherry ƒTƒNƒ‰á
+
+ (conf/)
+ atcommand_athena.conf
+ rain: 1 ’ljÁ
+ snow: 1 ’ljÁ
+ cherry: 1 ’ljÁ
+
+ msg_athena.conf
+ 84: ‰J‚ª~‚èo‚µ‚Ü‚µ‚½B ’ljÁ
+ 85: Ⴊ~‚èo‚µ‚Ü‚µ‚½B ’ljÁ
+ 86: ƒTƒNƒ‰á‚ð~‚点‚Ü‚·B ’ljÁ
+ (/src/common/)
+ version.h
+ Ver 1047->1048 •ÏX
+ (/src/map)
+ atcommand.c
+ ATCOMMAND_FUNC(rain); ’ljÁ
+ ATCOMMAND_FUNC(snow); ’ljÁ
+ ATCOMMAND_FUNC(cherry); ’ljÁ
+ { AtCommand_rain,"@rain",0, atcommand_rain }, ’ljÁ
+ { AtCommand_snow,"@snow",0, atcommand_snow }, ’ljÁ
+ { AtCommand_cherry,"@cherry",0, atcommand_cherry }, ’ljÁ
+
+ atcommand.h
+ AtCommand_Rain, ’ljÁ
+ AtCommand_Snow, ’ljÁ
+ AtCommand_Cherry, ’ljÁ
+
+--------------------
+//1047 by SVN
+E»‘¢ƒAƒCƒeƒ€‚Ì»ìŽÒ‚Ì–¼‘O‚ðˆø‚­map©¨char‚̃pƒPƒbƒg‚ªŠÔˆá‚Á‚Ä‚¢‚½‚Ì‚ðC³
+E“ñdƒƒOƒCƒ“‚ð‚µ‚½Žž‚Échar-server‚ª—Ž‚¿‚é‰Â”\«‚ª‚ ‚Á‚½‚Ì‚ðC³
+EƒK[ƒfƒBƒAƒ“‚ðGvŽžŠÔŠO‚ɉ£‚ꂽAIDŽw’è‚̃XƒLƒ‹‚ª“–‚½‚Á‚½Askill_unit‚ȃXƒLƒ‹UŒ‚‚ª“–‚½‚Á‚½‚Ì‚ðC³
+EƒOƒ‰ƒtƒBƒeƒB‚ÌRange‚ð‚Æ‚è‚ ‚¦‚¸3‚É‚µ‚Ä‚Ý‚½
+ (db/)
+ skill_db.txt
+ (char/)
+ char.c
+ parse_frommap()
+ (map/)
+ clif.c
+ clif_parse_ActionRequest() •ÏX
+ clif_parse_UseSkillToId() •ÏX
+ mob.c
+ mob_gvmobcheck() ’ljÁ
+ mob.h
+ mob_gvmobcheck() ’è‹`’ljÁ
+ skill.c
+ skill_attack() •ÏX
+
+--------------------
+//1046 by SVN
+¦db/packet_db.txt‚Í2004-09-06aSakexe—p‚È‚Ì‚ÅAjROƒNƒ‰ƒCƒAƒ“ƒg‚ÅŽg—p‚·‚éÛ‚Íu//jRO‚Í‚±‚±‚Ü‚ÅvˆÈ‰º‚ðƒRƒƒ“ƒgƒAƒEƒg‚·‚邩휂µ‚Ä‚­‚¾‚³‚¢
+
+E•ÏX“_‚ª‘½‚¢‚Ì‚ÅÚׂ̓tƒ@ƒCƒ‹AŠÖ”‚²‚Æ‚É‹Lq‚µ‚Ä‚¢‚Ü‚·
+E1045‚É‚»‚Ì‚Ü‚Üã‘‚«‚µ‚Ä‚à“®ì‚µ‚Ü‚·‚ªAŽg‚í‚ê‚È‚¢ƒtƒ@ƒCƒ‹‚ª‚¢‚­‚‚©Žc‚è‚Ü‚·
+Escript/ˆÈ‰º‚Í–¼‘O‚ª•ÏX‚³‚ê‚Ä‚¢‚éƒtƒ@ƒCƒ‹‚ª‘å—Ê‚É‚ ‚é‚Ì‚Åscript/‚Ì•ÏX“_‚ðŽQl‚É‚µ‚Ä‚­‚¾‚³‚¢
+EƒXƒNƒŠƒvƒg—p‚ÌŠÖ”‚â–½—ß‚ª‘‚¦‚½‚èŽd—l‚ª•ÏX‚³‚ê‚Ä‚¢‚é‚à‚Ì‚ª‚ ‚è‚Ü‚·
+ Šî–{“I‚ɂ͌݊·«‚ª‚ ‚é‚Í‚¸‚Å‚·‚ªAgetgdskilllv()‚¾‚¯‚Í‘æ“ñˆø”‚𔎚‚Å‚Í‚È‚­ƒXƒLƒ‹–¼(GD_APPROVAL‚È‚Ç)‚É’u‚«Š·‚¦‚é•K—v‚ª‚ ‚è‚Ü‚·
+ getgdskilllv()‚ªŽg‚í‚ê‚Ä‚¢‚é/script/npc/gvg_big5/*.* ‚Í’†‘Œê‚Å•K—v‚È‚¢‚Ì‚Å휂µ‚Ä‚­‚¾‚³‚¢
+ ’ljÁ‚â•ÏX‚ÉŠÖ‚µ‚Ä‚ÍŠT‚Ëscript_ref.txt‚É”½‰f‚µ‚Ä‚ ‚è‚Ü‚·‚ªAÚׂÍscript.c‚Ì•ÏX“_‚ð“Ç‚ñ‚Å‚­‚¾‚³‚¢
+E’ljÁ‚³‚ꂽ@ƒRƒ}ƒ“ƒh‚ɂ‚¢‚Ä‚Í@help‚Æatcommand.c‚Ì•ÏX“_‚ð“Ç‚ñ‚Å‚­‚¾‚³‚¢
+E’ljÁ‚³‚ꂽݒè‚Íconf_ref.txt‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢
+E‹Lq˜R‚ê‚Ì•ÏX“_‚à‚ ‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñ
+
+’ljÁ‚µ‚½ƒtƒ@ƒCƒ‹‚ÍuAv
+•ÏX‚µ‚½ƒtƒ@ƒCƒ‹‚ÍuCv
+휂µ‚½ƒtƒ@ƒCƒ‹‚ÍuDv
+ˆÚ“®‚µ‚½ƒtƒ@ƒCƒ‹‚ÍuMv
+ /
+ C athena-start
+ ./conf/import ˆÈ‰º‚ð‹N“®Žž‚ÉŽ©“®ì¬‚·‚é‚悤‚É•ÏX
+ seqƒRƒ}ƒ“ƒh‚ðŽg‚í‚È‚¢‚悤‚É‚µ‚ÄFreeBSD‚Å‚à“®ì‚·‚é‚悤‚É•ÏX
+ start
+ ‚·‚Å‚ÉAthena‚ª‹N“®‚µ‚Ä‚¢‚鎞‚͉½‚à‚µ‚È‚¢‚悤‚É•ÏX
+ exec‚Å ./ ‚ªƒ_ƒu‚Á‚Ä‚¢‚½‚Ì‚Åíœ
+ stop
+ FreeBSD‚Å‚àƒVƒFƒ‹‚É–ß‚é‚悤‚É•ÏX
+ kill
+ “¯ã
+ C Makefile
+ PACKETDEF ‚É PACKETVER=6 ‚ð’ljÁ
+ FreeBSD‚𔻒肵‚Ä make ‚Æ gmake ‚ðØ‚è‘Ö‚¦‚é‚悤‚É•ÏX
+ CFLAGS ‚ð•ª‰ð‚µ‚Ä˜M‚è‚â‚·‚¢‚悤‚É•ÏX
+ C start
+ 1s–ڂ̃VƒFƒ‹Žw’肪³‚µ‚­‚È‚©‚Á‚½‚Ì‚ð•ÏX
+ ‚·‚Å‚ÉAthena‚ª‹N“®‚µ‚Ä‚¢‚鎞‚͉½‚à‚µ‚È‚¢‚悤‚É•ÏX
+ ‹N“®Šm”F‚ÌðŒŽ®‚ð athena-start ‚Æ“¯‚¶•¨‚É•ÏX
+ bin/tool/
+ ƒVƒFƒ‹ƒXƒNƒŠƒvƒg‚̉üsƒR[ƒh‚ð CRLF ‚©‚ç LF ‚Ì‚Ý‚É•ÏX
+ C getlogincount
+ ƒƒOƒCƒ“ƒo[ƒWƒ‡ƒ“‚ð $loginversion ‚Æ‚µ‚Ä•ÏX‚Å‚«‚é‚悤‚É•ÏX
+ C ladmin
+ ƒAƒJƒEƒ“ƒg–¼‚Éu-v‚ðŽg‚¦‚é‚悤‚É•ÏX
+
+ conf/
+ D import/
+ ”z•z•¨‚©‚çíœ(athena-start start ‚ÅŽ©“®ì¬‚³‚ê‚é)
+ C atcommand_athena.conf
+ shuffle maintenance misceffect ’ljÁ
+ C char_athena.conf
+ default_map_type default_map_name ’ljÁ
+ C help.txt
+ à–¾’ljÁ
+ C login_athena.conf
+ login_version login_type ’ljÁ
+ C map_athena.conf
+ npc map FX•ÏX
+ C mapflag.txt
+ ÅV”Å‚ÉXV
+ C msg_athena.conf
+ 81ˆÈ~’ljÁ
+ C water_height.txt
+ ÅV”Å‚ÉXV
+ db/
+ C castle_db.txt
+ ƒMƒ‹ƒh‰ð‘ÌŽž‚É”­¶‚·‚é OnGuildBreak ƒCƒxƒ“ƒg‚Ì‚½‚ß‚É <Event_Name> ’ljÁ
+ C const.txt
+ GvG‚ÌŠJŽnŽžŠÔ“™‚ðÝ’è‚Å‚«‚é‚悤‚ɒljÁ
+ ƒ}ƒbƒvƒtƒ‰ƒO mf_notrade mf_noskill ’ljÁ
+ ƒpƒ‰ƒ[ƒ^ PartnerId Cart ’ljÁ
+ ƒ{[ƒiƒX bBreakWeaponRate bBreakArmorRate bAddStealRate bUnbreakableWeapon bUnbreakableArmor ’ljÁ
+ ƒXƒe[ƒ^ƒX•Ï‰» SC_WEDDING ’ljÁ
+ ƒXƒNƒŠƒvƒg–½—ß getgdskilllv —p‚É GD_APPROVAL ‚ȂǒljÁ
+ C exp.txt
+ “]¶“ñŽŸE‚ªBaseLv12‚É‚È‚é‚Æ‚«‚É•K—v‚ÈŒoŒ±’l‚ð41¨481‚ÉC³
+ C item_db.txt
+ C mob_db.txt
+ C mob_skill_db.txt
+ C skill_cast_db.txt
+ C skill_db.txt
+ C skill_require_db.txt
+ C skill_tree.txt
+ ÅV”Å‚ÉXV
+ A packet_db.txt
+ ƒpƒPƒbƒg’è‹`ƒtƒ@ƒCƒ‹’ljÁ
+ doc/
+ C client_packet.txt
+ V‚µ‚­”»–¾‚µ‚½ƒpƒPƒbƒg‚ð‚¢‚­‚‚©’ljÁ
+ C conf_ref.txt
+ V‚µ‚­’ljÁ‚µ‚½Ý’è‚Ìà–¾‚ð’ljÁ
+ C db_ref.txt
+ skill_cast_db.txt ‚Ì list_hp_rate list_sp_rate ‚Å•‰”‚ðŽw’肵‚½Žž‚Ì‹““®‚ð’ljÁ
+ C help.txt
+ conf/help.txt “¯—l‚É•ÏX
+ C inter_server_packet.txt
+ V‹K‚ŒljÁ‚µ‚½ƒpƒPƒbƒg‚ð’ljÁ‚ÆŽÀ‘Ô‚Æ‚ ‚Á‚Ä‚¢‚È‚©‚Á‚½•”•ª‚ðC³
+ C item.txt
+ ÅV”Å‚ÉXV
+ C item_bonus.txt
+ V‹K‚ŒljÁ‚³‚ꂽƒ{[ƒiƒX‚ð’ljÁ
+ C script_ref.txt
+ V‹K–½—߂̒ljÁ‚ÆŠù‘¶–½—ß‚Ì•ÏX‚È‚Ç
+ C serverlink_packet.txt
+ V‹K‚ŒljÁ‚µ‚½ƒpƒPƒbƒg‚ð’ljÁ‚ÆŠù‘¶‚Å‘‚©‚ê‚Ä‚¢‚È‚©‚Á‚½ƒpƒPƒbƒg‚̒ljÁ
+ script/
+ mob/
+ C npc_monster.txt
+ ÅV”Å‚ÉXV
+ ƒjƒuƒ‹ƒwƒCƒ€‚ÌMob‚Ínpc_parse_mob()‚Ì•ÏXƒTƒ“ƒvƒ‹‚É‚È‚Á‚Ä‚Ü‚·
+ npc/
+ ‚Ù‚Ú‚·‚ׂĂÌNPC‚ðnpc_function.txt‚ðŽg‚Á‚½ƒ†[ƒU[’è‹`ŠÖ”‚Æ•¡»‚È‚Ç‚Å‘‚«Š·‚¦
+ ˆÚ“®‚µ‚½ƒtƒ@ƒCƒ‹‚ÉŠÖ‚µ‚Ă͈ړ®Œã‚̃tƒ@ƒCƒ‹‚ªŠÜ‚Ü‚ê‚Ä‚¢‚é‚̂ňړ®‘O‚̃tƒ@ƒCƒ‹‚Ì‚Ý휂µ‚Ä‚­‚¾‚³‚¢
+ —á) etc/npc_etc_cTower.txt ‚ÍŠÜ‚Ü‚ê‚Ä‚¢‚é‚Ì‚Å npc_cTower.txt ‚ðíœ
+ M npc_cTower.txt
+ ¨etc/npc_etc_cTower.txt
+ A npc_function.txt
+ M npc_pota.txt
+ ¨../sample/npc_debug_pota.txt
+ M npc_pvp.txt
+ M npc_pvproom.txt
+ 2ƒtƒ@ƒCƒ‹‡‘Ì
+ ¨etc/npc_etc_pvp.txt
+ M npc_resetJ.txt
+ ¨../sample/npc_debug_reset.txt
+ A etc/
+ A npc_etc_gefenia.txt
+ C gvg/
+ ‚·‚ׂÄev_agit_common.txt‚ðŽg‚Á‚½ƒ†[ƒU[’è‹`ŠÖ”‚Å‘‚«Š·‚¦
+ ‚·‚ׂÄ휂µ‚Ä‚©‚炱‚̃pƒbƒ`‚ð“–‚Ä‚Ä‚­‚¾‚³‚¢
+ ƒMƒ‹ƒh‰ðŽUŽž‚ÉÔ‚ð•úŠü‚·‚邽‚ß‚Éev_agit_Ô.txt‚ÉOnGuildBreakƒCƒxƒ“ƒg‚ð’ljÁ
+ D test/
+ A ev_agit_common.txt
+ D ev_agit_event.txt
+ D TEST_prtg_cas01_AbraiJ.txt
+ D TEST_prtg_cas01_mob.txt
+ D gvg_big5/
+ C job/
+ “]EƒXƒNƒŠƒvƒg‚Ì–¼‘O‚ðnpc_job_[JOB”Ô†][ƒWƒ‡ƒu–¼].txt‚É•ÏX
+ ‚·‚ׂÄ휂µ‚Ä‚©‚炱‚̃pƒbƒ`‚ð“–‚Ä‚Ä‚­‚¾‚³‚¢
+ C quest/
+ M npc_event_arrow.txt
+ ¨../../sample/npc_debug_arrow.txt
+ A npc_event_hat2.txt
+ ƒjƒuƒ‹“¯ŽžŽÀ‘•‚ÌV“ª‘•”õƒXƒNƒŠƒvƒg‚ð’ljÁ
+ src/
+ calloc() realloc() ‚ð‹É—ÍŠeŒ^‚ɃLƒƒƒXƒg‚·‚é‚悤‚É•ÏX
+ calloc() Œã‚É memset() ‚Å \0 ‚ð–„‚ß‚Ä‚¢‚½‚Ì‚ðíœ
+ calloc() ‚È‚Ì‚É(ƒTƒCƒY*ŒÂ”,1)‚ÅŽw’肵‚Ä‚¢‚½‚Ì‚ð(ŒÂ”,ƒTƒCƒY)‚É•ÏX
+ ƒƒ‚ƒŠŠm•Û‚ðƒGƒ‰[ˆ—‚ð‚Ü‚Æ‚ß‚½ŠÖ”‚É‘‚«Š·‚¦
+ malloc() ¨ aMalloc()
+ calloc() ¨ aCalloc()
+ realloc() ¨ aRealloc()
+ strcpy() ‚ð strncpy() ‚É‹É—Í•ÏX
+
+ char/
+ C char.c
+ ƒXƒy[ƒX‚ŃCƒ“ƒfƒ“ƒg‚³‚ê‚Ä‚¢‚½‚Æ‚±‚ë‚ðƒ^ƒu‚Å“ˆê
+ A isGM()
+ A read_gm_account()
+ GMƒAƒJƒEƒ“ƒg‚ª•K—v‚É‚È‚Á‚½‚̂ŒljÁ
+ C mmo_char_tostr()
+ C mmo_char_fromstr()
+ nullpoƒ`ƒFƒbƒN’ljÁ
+ C count_users()
+ •K—v‚È‚¢{}‚ðíœ
+ C char_delete()
+ nullƒ`ƒFƒbƒN’ljÁ
+ 휃ƒbƒZ[ƒW‚ðƒRƒ“ƒ\[ƒ‹‚É•\Ž¦‚·‚é‚悤‚É‚µ‚½
+ 휎ž‚ÉÚ‘±‚µ‚Ä‚¢‚éƒLƒƒƒ‰‚ðØ’f‚·‚é‚悤map-server‚É’Ê’m(0x2b19ƒpƒPƒbƒg)‚·‚é‚悤‚É‚µ‚½
+ C parse_tologin()
+ C 0x2713
+ char-serverƒƒ“ƒeƒiƒ“ƒXݒ莞‚ÍGMˆÈŠO“ü‚ê‚È‚¢‚悤‚É‚µ‚½
+ Ú‘±”§ŒÀ‚ÅÅ‘å’l‚Å‚àGM‚ÍÚ‘±‚Å‚«‚é‚悤‚É‚µ‚½
+ C 0x272a
+ 0x2730‚ð0x272a‚É•ÏX‚µ‚ĔԆ‚ð‹l‚ß‚½
+ ƒAƒJƒEƒ“ƒg휂µ‚½Žž‚ɃLƒƒƒ‰‚ªˆê•”Á‚³‚ê‚È‚¢–â‘è‚ðC³
+ A 0x272c
+ ŽóMŽž‚Élogin-server‚É’Ê’m(0x2b15ƒpƒPƒbƒg)‚µ‚ăƒ“ƒeƒiƒ“ƒXó‘Ô‚É‚È‚é‚悤‚É‚µ‚½
+ A char_erasemap()
+ map-serverØ’fŽž‚É‘¼map-server‚Ƀ}ƒbƒv‚Ì휂ð’Ê’m(0x2b16ƒpƒPƒbƒg)‚·‚é‚悤‚É‚µ‚½
+ ‚±‚ê‚É‚æ‚葼map-serverŠÇŠ‚̃}ƒbƒv‚Ɉړ®‚µ‚悤‚Æ‚µ‚ÄA‚»‚Ìmap-server‚ªØ’f‚³‚ê‚Ä‚¢‚½‚çA
+ pc_setpos()‚Å‘¶Ý‚µ‚È‚¢ƒ}ƒbƒv‚Æ‚¢‚¤‚±‚Ƃňړ®‚µ‚悤‚Æ‚µ‚È‚­‚È‚é‚Ì‚ÅA
+ ƒNƒ‰ƒCƒAƒ“ƒg‚ªu‰i‰“‚É‚¨‘Ò‚¿‚­‚¾‚³‚¢ó‘Ôv‚É‚È‚ç‚È‚¢‚悤‚É‚È‚è‚Ü‚·
+ C parse_frommap()
+ map-serverØ’fŽž‚Échar_erasemap()‚ðŽÀs‚·‚é‚悤‚É‚µ‚½
+ map-serverØ’fŽž‚ÉŠÇŠ‚̃}ƒbƒv‚ɃLƒƒƒ‰‚ªŽc‚Á‚Ä‚¢‚½‚çØ’f‚ð‘¼map-server‚É’Ê’m(0x2b17ƒpƒPƒbƒg)‚·‚é‚悤‚É‚µ‚½
+ C 0x2afc
+ ”FØŽ¸”sŽž‚É char_dat[].mapip/mapport ‚ð 0 ‚É‚·‚é‚悤‚É‚µ‚½
+ ”FجŒ÷Žž‚É char_dat[].mapip/mapport ‚ðmap-server‚ÌIPƒAƒhƒŒƒX‚ƃ|[ƒg‚É‚·‚é‚悤‚É‚µ‚½
+ ”FجŒ÷Žž‚É‘¼map-server‚ɃLƒƒƒ‰‚ªƒƒOƒCƒ“‚µ‚½‚±‚Æ‚ð’Ê’m(0x2b09ƒpƒPƒbƒg)‚·‚é‚悤‚É‚µ‚½
+ C 0x2b02
+ C 0x2b05
+ ƒRƒ“ƒ\[ƒ‹‚Ö‚Ìo—͂ɃpƒPƒbƒg”Ô†‚ð‹Lq‚·‚é‚悤‚É‚µ‚½
+ C 0x2b08
+ ƒpƒPƒbƒgŽd—l‚ð•ÏX‚µ‚Ä account_id mapip mapport ‚à’Ê’m‚·‚é‚悤‚É•ÏX
+ map-server‚ÉÚ‘±‚µ‚Ä‚¢‚È‚¢Žž‚Í‚·‚×‚Ä 0 ‚ª“ü‚è‚Ü‚·
+ A 0x2b13
+ map-server‹N“®“r’†‚ȂǂŃLƒƒƒ‰‚ªƒƒOƒCƒ“‚Å‚«‚È‚¢‚悤‚É‚·‚é server[].active ƒtƒ‰ƒO‚ð‘€ì‚·‚é
+ active = 0 ‚ŃLƒƒƒ‰‚̓ƒOƒCƒ“‚Å‚«‚¸‚ÉØ’f‚³‚ê‚é
+ map-server‚ª‹N“®‚ðŠ®—¹‚µ‚½‚Æ‚«‚É active = 1 ‚É‚·‚éƒpƒPƒbƒg‚ª‘—‚ç‚ê‚Ä‚­‚é
+ A 0x2b14
+ char-server‚ðƒƒ“ƒeƒiƒ“ƒXó‘Ô‚É‚·‚é char_maintenance ƒtƒ‰ƒO‚ð‘€ì‚·‚é
+ login-server‚É‚à’Ê’m(0x272bƒpƒPƒbƒg)‚µ‚ă[ƒ‹ƒh‘I‘ð‰æ–ʂŃƒ“ƒeƒiƒ“ƒX•\Ž¦‚ð‚·‚é
+ ƒƒ“ƒeƒiƒ“ƒXó‘Ô‚Å‚ÍGMˆÈŠO‚̃†[ƒU[‚̓ƒOƒCƒ“‚Å‚«‚Ü‚¹‚ñ
+ A 0x2b18
+ ƒLƒƒƒ‰ƒNƒ^[‚ÌØ’f‚ð‘¼map-server‚É’Ê’m(0x2b17ƒpƒPƒbƒg)‚·‚é‚悤‚É‚µ‚½
+ C search_mapserver()
+ ˆø”‚É struct mmo_charstatus *cd ‚ð’ljÁ
+ cd‚ª“n‚³‚ꂽ•’T‚µ‚Ä‚¢‚éƒ}ƒbƒv‚ªÚ‘±‚µ‚Ä‚¢‚émap-server‚É–³‚©‚Á‚½‚Æ‚«‚ÉAʼn‚ÉŒ©‚‚¯‚½map-server‚Ìʼn‚ÉŒ©‚‚¯‚½ƒ}ƒbƒv‚ÉÚ‘±‚·‚é‚悤‚É‚µ‚½
+ ‚±‚ê‚Í char_athena.conf default_map_type: 2 ‚ÌŽž‚Ì‹““®‚Å‚·
+ C parse_char()
+ C 0x65
+ ƒƒ“ƒeƒiƒ“ƒXó‘Ô‚ÌŽž‚ÉGMˆÈŠO‚ðØ’f‚·‚é‚悤‚É‚µ‚½
+ Å‘åÚ‘±”‚ªÝ’肳‚ê‚Ä‚¢‚ÄÅ‘åÚ‘±”‚Ì‚Æ‚«‚àGM‚ÍÚ‘±‚Å‚«‚é‚悤‚É‚µ‚½
+ C 0x66
+ char-server‚ÉÚ‘±‚µ‚Ä‚¢‚émap-server‚Élast_point‚ªŒ©‚‚¯‚ç‚ê‚È‚©‚Á‚½‚Æ‚«‚ÉA
+ default_map_type&1 ‚ÌŽž‚Í default_map_name ‚ÉÚ‘±‚·‚é
+ default_map_type&2 ‚ÌŽž‚Í Å‰‚ÉŒ©‚‚¯‚½map-server‚Ìʼn‚ÉŒ©‚‚¯‚½ƒ}ƒbƒv‚ÉÚ‘±‚·‚é
+ ‚»‚ê‚Å‚àŒ©‚‚©‚ç‚È‚¢Žž‚ÍØ’f‚·‚é‚悤‚É‚µ‚½
+ ƒRƒ“ƒ\[ƒ‹‚Ö‚Ìo—͂ɃpƒPƒbƒg”Ô†‚ð‹Lq‚·‚é‚悤‚É‚µ‚½
+ C 0x2af8
+ ‘¼ƒ}ƒbƒv‚ÉÚ‘±‚µ‚Ä‚¢‚éƒLƒƒƒ‰î•ñ‚ð’Ê’m(0x2b09ƒpƒPƒbƒg)‚·‚é‚悤‚É‚µ‚½
+ C 0x187
+ S 0187ƒpƒPƒbƒg‚ð•ÔM‚·‚é‚悤‚É‚µ‚½
+ C check_connect_login_server()
+ char_port‚ðWFIFOL‚Å‘—‚Á‚Ä‚¢‚½‚Ì‚ðWFIFOW‚ÉC³
+ 80‚Æ82‚ÌŠÔ‚ª‹ó‚¢‚Ä‚¢‚½‚Ì‚ð‹l‚߂ăpƒPƒbƒg’·‚ð86¨84‚É•ÏX
+ C char_config_read()
+ default_map_type default_map_name ‚ð“Ç‚Ýž‚ނ悤‚É‚µ‚½
+ A gm_account_db_final()
+ Šm•Û‚µ‚½ gm_account_db ‚̃ƒ‚ƒŠ‚ðI—¹Žž‚ÉŠJ•ú‚·‚é‚悤‚É‚µ‚½
+ C do_final()
+ inter.c ‚È‚Ç‘¼ƒtƒ@ƒCƒ‹‚ÌI—¹ˆ—(do_final_*)‚ð’ljÁ‚µ‚½
+ exit_dbn() ‚Ådb—p‚̃ƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
+ Ú‘±‚³‚ê‚Ä‚¢‚émap-server‚̃ZƒbƒVƒ‡ƒ“‚ð휂·‚é‚悤‚É‚µ‚½
+ do_final_timer()‚Åtimer‚ðI—¹‚³‚¹‚é‚悤‚É‚µ‚½
+ C do_init()
+ server[].active = 0 ‚ʼnŠú‰»
+ read_gm_account() ‚ÅGMƒAƒJƒEƒ“ƒgƒtƒ@ƒCƒ‹‚ð“Ç‚Ýž‚ނ悤‚É‚µ‚½
+ C char.h
+ mmo_map_server ‚É active ƒtƒ‰ƒO‚ð’ljÁ‚µ‚½
+ C int_guild.c
+ C mapif_parse_GuildSkillUp()
+ ƒMƒ‹ƒhƒ|ƒCƒ“ƒg‚ðÁ”‚È‚¢‚ŃMƒ‹ƒhƒXƒLƒ‹‚ðã‚°‚邽‚ß‚É int flag ‚ð’ljÁ
+ C inter_guild_parse_frommap()
+ 0x303C
+ ƒpƒPƒbƒg’è‹`‚ð•ÏX‚µ‚Äflag‚ð’ljÁ‚µ‚½
+ A guild_db_final()
+ A castle_db_final()
+ A do_final_int_guild()
+ I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
+ C int_guild.h
+ A do_final_int_guild()
+ ’è‹`‚ð’ljÁ
+ C int_party.c
+ A party_db_final()
+ A do_final_int_party()
+ I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
+ C int_party.h
+ A do_final_int_party()
+ ’è‹`‚ð’ljÁ
+ C int_pet.c
+ A pet_db_final()
+ A do_final_int_pet()
+ I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
+ C int_pet.h
+ A do_final_int_pet()
+ ’è‹`‚ð’ljÁ
+ C int_storage.c
+ A storage_db_final()
+ A guild_storage_db_final()
+ A do_final_int_storage()
+ I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
+ C int_storage.h
+ A do_final_int_storage()
+ ’è‹`‚ð’ljÁ
+ C inter.c
+ ƒpƒPƒbƒg’·’è‹`‚ð•ÏX
+ A mapif_parse_CharPosReq()
+ 0x3090ƒpƒPƒbƒg‚ւ̑Ήž
+ ƒLƒƒƒ‰‚̈ʒu—v‹‚ðmap-server‚É’Ê’m(0x3890ƒpƒPƒbƒg)‚·‚é
+ A mapif_parse_CharPos()
+ 0x3091ƒpƒPƒbƒg‚ւ̑Ήž
+ ƒLƒƒƒ‰‚̈ʒu—v‹‚ð‚µ‚½ƒLƒƒƒ‰‚Ɉʒuî•ñ‚ð’Ê’m(0x3891ƒpƒPƒbƒg)‚·‚é
+ A mapif_parse_CharMoveReq()
+ 0x3092ƒpƒPƒbƒg‚ւ̑Ήž
+ —v‹‚µ‚½ƒLƒƒƒ‰‚Ü‚Å‘Îۂ̃Lƒƒƒ‰‚ð”ò‚΂·—v‹‚ð’Ê’m(0x3892ƒpƒPƒbƒg)‚ð‚·‚é
+ A mapif_parse_DisplayMessage()
+ 0x3093ƒpƒPƒbƒg‚ւ̑Ήž
+ ƒLƒƒƒ‰‚ɃƒbƒZ[ƒW‚ð‘—M(0x3893ƒpƒPƒbƒg)‚·‚é
+ C inter_parse_frommap()
+ Še’ljÁƒpƒPƒbƒg‚ւ̑Ήž‚ð’ljÁ‚µ‚½
+ A wis_db_final()
+ A accreg_db_final()
+ A do_final_inter()
+ I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
+ C inter.h
+ A do_final_inter()
+ ’è‹`‚ð’ljÁ
+ C Makefile
+ A nullpo.o nullpo.h ‚ð’ljÁ
+ A malloc.o malloc.h ‚ð’ljÁ
+ common/
+ C db.c
+ A exit_dbn()
+ I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚邽‚߂ɒljÁ
+ C db.h
+ A exit_dbn()
+ ’è‹`’ljÁ
+ A malloc.h
+ A malloc.c
+ ƒƒ‚ƒŠŠm•ÛŠÖ”‚Ì‚Ü‚Æ‚ß
+ C mmo.h
+ C mmp_charstatus
+ mapip mapport ’ljÁ
+ C guild_castle
+ castle_event ’ljÁ
+ C Makefile
+ A malloc.o malloc.h malloc.c ‚ð’ljÁ
+ C nullpo.h
+ ŒÃ‚¢gcc‚ŃRƒ“ƒpƒCƒ‹‚Å‚«‚é‚悤‚É\‚ðíœ
+ C socket.c
+ C recv_to_fifo()
+ ”Ä—p«‚ð‚‚߂邽‚ß‚É read() ‚ð recv() ‚É•ÏX
+ C send_from_fifo()
+ ”Ä—p«‚ð‚‚߂邽‚ß‚É write() ‚ð send() ‚É•ÏX
+ C timer.c
+ A do_final_timer()
+ I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
+ C timer.h
+ A do_final_timer()
+ ’è‹`’ljÁ
+ login/
+ C login.c
+ A login_version login_type
+ clientinfo.xml‚ÅŽw’è‚·‚é login_version login_type ‚ŃƒOƒCƒ“‚ð‹K§‚·‚é‚Æ‚«‚ÉŽg‚¢‚Ü‚·
+ C parse_fromchar()
+ A 0x272b
+ server[].maintenance ƒtƒ‰ƒO‚ð•ÏX‚·‚é
+ •ÏX‚µ‚½“à—e‚ðchar-server‚É•ÔM(0x272cƒpƒPƒbƒg)‚·‚é
+ C parse_admin()
+ C 0x7932
+ 0x2730¨0x272a ‚É•ÏX
+ C parse_login()
+ C 0x64 0x01dd
+ login_version login_type ‚ð”»’è‚·‚é‚悤‚É‚µ‚½
+ C 0x2710
+ ƒpƒPƒbƒg’·‚Ì’è‹`‚ª³‚µ‚­‚È‚©‚Á‚½‚Ì‚ðC³‚µ‚½
+ char.c check_connect_login_server ‚Ì•ÏX‚𔽉f
+ C login_config_read()
+ login_version login_type‚Ì“Ç‚Ýž‚Ý‚ð’ljÁ
+ A gm_account_db_final()
+ C do_final()
+ I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É•ÏX
+ C Makefile
+ A malloc.o malloc.h ‚ð’ljÁ
+ map/
+ C atcommand.c
+ ƒRƒ“ƒpƒCƒ‹ƒIƒvƒVƒ‡ƒ“‚Åmemwatch‚ð“Ç‚Ýž‚ß‚é‚悤‚É‚µ‚½
+ C atcommand_where()
+ ‘¼map-server‚É‚¢‚éƒLƒƒƒ‰‚̋ꊂà•\Ž¦‚Å‚«‚é‚悤‚É‚µ‚½
+ C atcommand_jumpto()
+ ‘¼map-server‚É‚¢‚éƒLƒƒƒ‰‚É‚à”ò‚ׂé‚悤‚É‚µ‚½
+ C atcommand_who()
+ ƒ[ƒ‹ƒh“à‚Ì‚·‚ׂĂɂ¢‚éƒLƒƒƒ‰‚ð•\Ž¦‚·‚é‚悤‚É‚µ‚½
+ C atcommand_go()
+ ƒjƒuƒ‹ƒwƒ‹ƒ€‚̈ړ®ƒ|ƒCƒ“ƒg‚ð•ÏX
+ C atcommand_recall()
+ ‘¼map-server‚É‚¢‚éƒLƒƒƒ‰‚àŒÄ‚Ño‚¹‚é‚悤‚É‚µ‚½
+ A atshuffle_sub()
+ A atcommand_shuffle()
+ PC‚ÆMOB‚̃Vƒƒƒbƒtƒ‹‚ðs‚¤ @shuffle ‚ð’ljÁ
+ A atcommand_maintenance()
+ char-server‚ðƒƒ“ƒeƒiƒ“ƒXó‘Ô‚É‚·‚é @maintenance ‚ð’ljÁ
+ A atcommand_misceffect()
+ ŽÀs‚µ‚½ƒLƒƒƒ‰‚©‚ç0x1f3ƒpƒPƒbƒg‚ð”­M‚µ‚ăGƒtƒFƒNƒg‚ð•\Ž¦‚·‚é @misceffect ‚ð’ljÁ
+ A atcommand_summon()
+ ƒR[ƒ‹ƒzƒ€ƒ“ƒNƒ‹ƒX‚Æ‹©‚ñ‚ÅŽw’肵‚½Mob‚𢊫‚·‚é @summon ‚ð’ljÁ
+ ¢Š«‚³‚ꂽMob‚Í‘¼‚ÌMob(Pv“™‚Å‚Í“G‘ÎPCŠÜ‚Þ)‚ðUŒ‚‚µ‚Ü‚·
+ ¢Š«‚³‚ꂽMob‚ÉUŒ‚‚³‚ꂽMob‚Í¢Š«Žå‚ðUŒ‚‚µ‚Ü‚·(ƒoƒCƒIƒvƒ‰ƒ“ƒg‚̃tƒ[ƒ‰‚Æ“¯‚¶‹““®)
+ ¢Š«‚³‚ꂽMob‚Í1•ªŒã‚ÉÁ–Å‚µ‚Ü‚·
+ ƒlƒ^‚Ȃ̂ʼnB‚µƒRƒ}ƒ“ƒh‚Æ‚µ‚Ähelp.txt‚É‚Í‹Lq‚µ‚Ä‚Ü‚¹‚ñ
+ C atcommand.h
+ ’ljÁ‚µ‚½@ƒRƒ}ƒ“ƒh‚ð AtCommandType ‚ɒljÁ
+ C msg_table[] ‚ðŠO‚©‚çŽg‚¦‚é‚悤‚É‚·‚邽‚ß‚Éextern‚µ‚½
+ C battle.c
+ ƒRƒ“ƒpƒCƒ‹ƒIƒvƒVƒ‡ƒ“‚Åmemwatch‚ð“Ç‚Ýž‚ß‚é‚悤‚É‚µ‚½
+ A battle_config.castle_defense_rate
+ –{ŽI‚Å–hŒä’l‚ª‚ǂ̂悤‚ɉe‹¿‚·‚é‚©‹ï‘Ì“I‚É‚Í•ª‚©‚ç‚È‚©‚Á‚½‚Ì‚ÅAÔ‚Ì–hŒä’l‚𔽉f‚³‚¹‚é—¦‚ðÝ’è‚Å‚«‚é‚悤‚É‚µ‚½
+ C battle_get_opt1()
+ C battle_get_opt2()
+ C battle_get_option()
+ NPC‚̃IƒvƒVƒ‡ƒ“‚à•Ô‚·‚悤‚É‚µ‚½
+ A battle_get_opt3()
+ opt3‚ð•Ô‚·‚悤‚ɒljÁ
+ C battle_calc_damage()
+ Ô“à‚ÌMob‚ւ̃_ƒ[ƒW‚Í–hŒä’l‚ÅŒ¸ŽZ(ƒ_ƒ[ƒW*(–hŒä’l/100)*(castle_defense_rate/100))‚³‚ê‚é‚悤‚É‚µ‚½
+ ƒK[ƒfƒBƒAƒ“‚ɂ̓XƒLƒ‹‚ªŒø‚­‚悤‚É‚µ‚½
+ C battle_calc_pet_weapon_attack()
+ C battle_calc_mob_weapon_attack()
+ C battle_calc_pc_weapon_attack()
+ ƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚̃_ƒ[ƒWŒvŽZ‚ð‚·‚é‚悤‚É‚µ‚½
+ C battle_weapon_attack()
+ •ŠíUŒ‚‚É‚æ‚鑦Ž€‚ÌŽd—l‚ð•ÏX
+ •ŠíAŠZ”j‰ó‚ÌŠm—¦ŒvŽZ‚ð‚·‚é‚悤‚É•ÏX
+ ƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚ª‰ðœ‚³‚ê‚é‚悤‚É•ÏX
+ C battle_check_target()
+ src ‚¶‚á‚È‚­‚Ä ss ‚©‚çparty_id guild_id‚ðŽæ“¾‚·‚é‚悤‚ÉC³
+ target=BCT_NOENEMY ‚ȃXƒLƒ‹ Œû“JAƒnƒ~ƒ“ƒO‚È‚Ç‚ªPvPAGvG‚ÌŽž‚É‚à‘¼PC‚ɉe‹¿‚·‚é‚悤‚É‚µ‚½
+ Mob‚ªspecial_ai‚È‚çMob‚ð“G‚Æ‚Ý‚È‚·‚悤‚É‚µ‚½
+ C battle_config_read()
+ castle_defense_rate ‚ð“Ç‚Ýž‚ނ悤‚É‚µ‚½
+ C battle.h
+ A battle_get_opt3()
+ ’è‹`’ljÁ
+ C Battle_Config
+ castle_defense_rate ’ljÁ
+ C chat.c
+ C chat_createnpcchat()
+ ˆø”‚É int pub ‚ð’ljÁ
+ pub=3 ‚ł̓`ƒƒƒbƒg‚̊Ŕ‚É(0/20)‚̂悤‚È•\Ž¦‚ª‚³‚ê‚È‚­‚È‚è‚Ü‚·
+ A do_final_chat()
+ ‰½‚à‚µ‚Ä‚È‚¢‚¯‚Ç‚Æ‚è‚ ‚¦‚¸’ljÁ
+ C chat.h
+ C chat_createnpcchat()
+ ’è‹`‚ð•ÏX
+ A do_final_chat()
+ ’è‹`‚ð’ljÁ
+ C chrif.c
+ ƒpƒPƒbƒg’·ƒe[ƒuƒ‹‚ðŠg’£
+ C chrif_connect()
+ C chrif_changemapserver()
+ WFIFOL‚Ń|[ƒg‚ð‘—‚Á‚Ä‚¢‚½‚Ì‚ðWFIFOW‚ÉC³
+ A chrif_recverasemap()
+ ‘¼map-server‚ªØ’f‚³‚ꂽ‚±‚Æ‚ªchar-server‚æ‚è’Ê’m‚³‚ꂽŽž‚ÉA‚»‚Ìmap-server‚ªŠÇ—‚µ‚Ä‚¢‚½ƒ}ƒbƒv‚Ìî•ñ‚ð휂·‚é‚悤‚É‚µ‚½
+ A chrif_mapactive()
+ map-server‹N“®€”õ’†‚É0AŠ®—¹Žž‚É1‚ðchar-server‚É’Ê’m(0x2b13)‚µ‚Ä‹N“®“r’†‚Ƀ†[ƒU[‚ªƒƒOƒCƒ“‚Å‚«‚È‚¢‚悤‚É‚µ‚½
+ A chrif_maintenance()
+ char-server‚ðƒƒ“ƒeƒiƒ“ƒXó‘Ô‚É‚µ‚½‚è‰ðœ‚µ‚½‚è‚ð’Ê’m(0x2b14)‚·‚é
+ A chrif_maintenanceack()
+ char-server‚ðƒƒ“ƒeƒiƒ“ƒXó‘Ô‚É‚µ‚½Žž‚̉ž“š
+ ƒƒ“ƒeƒiƒ“ƒXó‘Ô‚É‚µ‚½Ž|‚ðƒ}ƒbƒv“à‚É’Ê’m‚·‚é
+ A chrif_chardisconnect()
+ char-server‚ɃLƒƒƒ‰‚ªØ’f‚³‚ꂽ‚±‚Æ‚ð’Ê’m(0x2b18)‚·‚é
+ A chrif_parse_chardisconnectreq()
+ char-server‚©‚ç‚̃Lƒƒƒ‰Ø’f—v‹‚ðŽó‚¯‚ÄA‘ÎÛƒLƒƒƒ‰‚ª‚¢‚éꇂɂÍØ’f‚·‚é
+ C chrif_parse()
+ C 0x2b09
+ map_addchariddb() ‚̈ø”‘‰Á‚ɑΉž
+ A 0x2b15
+ A 0x2b16
+ A 0x2b17
+ A 0x2b19
+ ŠeV‹KƒpƒPƒbƒg‚ɑΉž
+ C check_connect_char_server()
+ Ú‘±Žžchar-server‚Émap-server‚Ì€”õ‚ªo—ˆ‚½‚±‚Æ‚ð’Ê’m‚·‚é‚悤‚É‚µ‚½
+ A do_final_chrif()
+ I—¹Žž‚Échar-server‚Æ‚ÌÚ‘±‚ð휂·‚é‚悤‚É‚µ‚½
+ C chrif.h
+ A chrif_mapactive()
+ A chrif_maintenance()
+ A chrif_chardisconnect()
+ A do_final_chrif()
+ ’è‹`‚ð’ljÁ
+ C clif.c
+ ‚·‚ׂẴpƒPƒbƒg’è‹`‚ð packet_db ‚©‚ç“Ç‚Ýž‚ނ悤‚É•ÏX
+ packet_db.txt‚ð•ÏX‚·‚邱‚Æ‚ÅA“xX•ÏX‚³‚ê‚éŠØ‘ƒNƒ‰ƒCƒAƒ“ƒg‚̃pƒPƒbƒg’è‹`‚ɑΉž‚µ‚â‚·‚­‚È‚è‚Ü‚·
+ packet_len_table[] ‚Í packet_db[].len ‚É’u‚«Š·‚í‚è‚Ü‚µ‚½
+ <time.h> ‚ðinclude
+ clif_parse_*‚ð擪‚Å錾‚·‚é‚悤‚É‚µ‚½
+ clif_parse_*“à‚ÌRFIFOŒn‚ÅŽg‚í‚ê‚Ä‚¢‚é‘æ2ˆø”‚Í packet_db[cmd].pos[] ‚Å•\‹L‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+ ƒpƒPƒbƒg”Ô†‚ÌÅ‘å’l‚ð MAX_PACKET_DB ‚Å’è‹`‚·‚é‚悤‚É‚µ‚½
+ C clif_set0078()
+ C clif_set007b()
+ ƒpƒPƒbƒg‚Ì“à—e‚ª–{ŽI‚ƈá‚Á‚Ä‚¢‚½‚Ì‚Åguild_emblem_id,manner,opt3‚𳂵‚­‘—‚é‚悤‚É•ÏX
+ C clif_class_change()
+ MobˆÈŠO‚ÌNPC‚Å‚àŽg‚¦‚é‚悤‚É‚µ‚½
+ C clif_mob0078()
+ C clif_mob007b()
+ ƒK[ƒfƒBƒAƒ“‚ɃMƒ‹ƒhƒGƒ“ƒuƒŒƒ€‚ð•\Ž¦‚·‚é‚悤‚É•ÏX
+ C clif_npc0078()
+ ƒ[ƒvƒ|[ƒ^ƒ‹‚ðƒMƒ‹ƒhƒtƒ‰ƒbƒO‚É‚·‚éƒIƒvƒVƒ‡ƒ“‚ð—LŒø‚É‚µ‚½Žž‚Émap-server‚ª—Ž‚¿‚é–â‘è‚ðC³
+ C clif_spawnnpc()
+ NPC‚ª–³Œø‚Å‚àHideó‘Ô‚ÌŽž‚̓pƒPƒbƒg‚ð‘—‚é‚悤‚É•ÏX
+ C clif_quitsave()
+ ƒLƒƒƒ‰I—¹Žž‚Échar-server‚ÉØ’f‚ð’Ê’m‚·‚é‚悤‚É‚µ‚½
+ C clif_scriptmenu()
+ C clif_dispchat()
+ C clif_changechatstatus()
+ len‚É1ƒoƒCƒg’ljÁ
+ C clif_updatestatus()
+ ƒ}ƒi[ƒ|ƒCƒ“ƒg‚ð‘—M‚·‚é‚悤‚É‚µ‚½
+ A clif_changestatus()
+ ŽüˆÍ‚ÉÔƒGƒ‚ó‘Ô‚Å‚ ‚邱‚Æ‚ð‘—M
+ A clif_misceffect2()
+ ƒGƒtƒFƒNƒg‚ð”­¶‚³‚¹‚éƒpƒPƒbƒg‚ð‘—M
+ @misceffect, misceffect–½—ß‚ÅŽg—p
+ C clif_changeoption()
+ ó‘ÔˆÙ펞ˆÈŠO‚Íó‘ÔˆÙíƒAƒCƒRƒ“•\Ž¦ƒpƒPƒbƒg‚ð‘—‚ç‚È‚¢‚悤‚É‚µ‚½
+ PC‚ÌŽž‚Í clif_changelook() ‚ð‘—M‚·‚é‚悤‚É‚µ‚½(Œ‹¥ˆßÖ•\Ž¦—pH)
+ C clif_traderequest()
+ ŽæˆøƒpƒPƒbƒg‚Ì 0xe5 ¨ 0x1f4 ‚ɉ¼‘Ήž(–{ŽI‚Å‚ÌŽZoŽ®‚Í•s–¾‚È‚Ì‚Å‚Æ‚è‚ ‚¦‚¸ char_id ‚ð‘—M)
+ C clif_tradestart()
+ ŽæˆøƒpƒPƒbƒg‚Ì 0xe7 ¨ 0x1f5 ‚ɉ¼‘Ήž(–{ŽI‚Å‚ÌŽZoŽ®‚Í•s–¾‚È‚Ì‚Å‚Æ‚è‚ ‚¦‚¸ char_id ‚ð‘—M)
+ C clif_getareachar_pc()
+ ƒ}ƒi[ƒ|ƒCƒ“ƒg‚ª•‰”‚ÌŽž‚É‚ÍÔƒGƒ‚•\Ž¦ƒpƒPƒbƒg‚ð‘—M‚·‚é‚悤‚É‚µ‚½
+ C clif_getareachar_npc()
+ NPC‚ÌHideó‘ԂɑΉž
+ C clif_getareachar_skillunit()
+ C clif_skill_nodamage()
+ Ž©”š‚ÌŽž‚Íheal‚𕉔‚É‚Å‚«‚é‚悤‚É‚µ‚½
+ C clif_skill_setunit()
+ ƒOƒ‰ƒtƒBƒeƒB‚ɑΉž
+ A clif_item_repair_list()
+ •ŠíC—ƒXƒLƒ‹‚ɑΉž‚µ‚悤‚Æ‚µ‚½‚¯‚ǃpƒPƒbƒg‚ª•ª‚©‚ç‚È‚¢‚Ì‚Å“ÚÁ’†
+ C clif_produceeffect()
+ map_addchariddb() ‚̈ø”‘‰Á‚ɑΉž
+ C clif_guild_skillinfo()
+ –¢ŽÀ‘•ƒMƒ‹ƒhƒXƒLƒ‹ ƒJƒŠƒXƒ}‚ð•\Ž¦‚µ‚È‚¢‚悤‚É‚µ‚½
+ C clif_callpartner()
+ ‚ ‚È‚½‚Ɉ§‚¢‚½‚¢ Žg—pŽž‚É‘ŠŽè‚Ì–¼‘O‚ð‹©‚Ô‚æ‚¤‚É‚µ‚½
+ C clif_sitting()
+ ˆø” fd ‚Í•s—v‚È‚Ì‚Åíœ
+ C clif_GM_kick()
+ ƒtƒ‰ƒO‚ð0‚É‚·‚é‚悤‚É‚µ‚½
+ A clif_wisexin()
+ Wis‹‘”Û‹–‰Â‚̉ž“š‚ð‘—M
+ A clif_wisall()
+ Wis‘S‹‘”Û‹–‰Â‚̉ž“š‚ð‘—M
+ A clif_soundeffect()
+ SE‚ð–‚炷ƒpƒPƒbƒg‚ð‘—M
+ soundeffect–½—ß‚ÅŽg—p
+ C clif_parse_LoadEndAck()
+ Œ‹¥Œã‚̃EƒFƒfƒBƒ“ƒOƒhƒŒƒX‚âƒ^ƒLƒV[ƒh‚Ìó‘Ô‚ðƒƒOƒAƒEƒg‚µ‚Ä‚à1ŽžŠÔ‚ÍŒp‘±‚³‚ê‚é‚悤‚É‚µ‚½
+ ÔƒGƒ‚ó‘Ԃ̓ƒOƒAƒEƒg‚µ‚Ä‚àƒƒOƒCƒ“‚µ‚½Žž‚©‚ç‚Ü‚½Œp‘±‚·‚é‚悤‚É‚µ‚½
+ C clif_parse_QuitGame()
+ C clif_parse_Restart()
+ I—¹‚Å‚«‚È‚¢ðŒ‚ð pc_isquitable() ‚É‚Ü‚Æ‚ß‚½
+ C clif_parse_GlobalMessage()
+ C clif_parse_Wis()
+ C clif_parse_PartyMessage()
+ C clif_parse_GuildMessage()
+ ÔƒGƒ‚ó‘Ô‚Å‚Í”­Œ¾‚Å‚«‚È‚¢‚悤‚É‚µ‚½
+ C clif_parse_ActionRequest()
+ ƒMƒ‹ƒh–¢‰Á“ü‚È‚Ç‚Ìꇂ̓K[ƒfƒBƒAƒ“‚âƒGƒ“ƒyƒŠƒEƒ€‚ð‰£‚ê‚È‚¢‚悤‚É‚µ‚½
+ clif_sitting()‚̈ø”•ÏX‚ɑΉž
+ C clif_parse_UseItem()
+ ÔƒGƒ‚ó‘Ԃł̓AƒCƒeƒ€‚ðŽg‚¦‚È‚¢‚悤‚É‚µ‚½
+ C clif_parse_EquipItem()
+ ƒAƒCƒeƒ€‚ª”j‰ó‚³‚ê‚Ä‚¢‚鎞‚Í‘•”õ‚Å‚«‚È‚¢‚悤‚É‚µ‚½
+ C clif_parse_TradeRequest()
+ C clif_parse_TradeAck()
+ notradeƒ}ƒbƒv‚Å‚ÍŽæˆø—v¿‚ð‘—‚ê‚È‚¢‚悤‚É‚µ‚½
+ C clif_parse_UseSkillToId()
+ C clif_parse_UseSkillToPos()
+ C clif_parse_UseSkillMap()
+ noskillƒ}ƒbƒv‚ł̓XƒLƒ‹‚ðŽg—p‚Å‚«‚È‚¢‚悤‚É‚µ‚½
+ ƒ`ƒƒƒbƒg’†‚̓XƒLƒ‹‚ðŽg—p‚Å‚«‚È‚¢‚悤‚É‚µ‚½
+ ÔƒGƒ‚’†‚̓XƒLƒ‹‚ðŽg—p‚Å‚«‚È‚¢‚悤‚É‚µ‚½
+ ƒEƒFƒfƒBƒ“ƒOó‘Ԃł̓XƒLƒ‹‚ðŽg—p‚Å‚«‚È‚¢‚悤‚É‚µ‚½
+ C clif_parse_MoveToKafra()
+ itemdb_isdropable()==0 ‚Í‘qŒÉ‚É“ü‚ê‚ç‚ê‚È‚¢‚悤‚É‚µ‚½
+ C clif_parse_GMReqNoChat()
+ GM‰EƒNƒŠƒbƒN‚ÅÔƒGƒ‚‚ð•t—^E‰ðœ‚Å‚«‚é‚悤‚É‚µ‚½
+ C clif_parse_GMReqNoChatCount()
+ –{ŽI‚Å‚Ì•Ô“šƒpƒPƒbƒg‚ª‚æ‚­•ª‚©‚ç‚È‚¢‚̂ʼn¼‘Ήž
+ –{“–‚̓AƒJƒEƒ“ƒg–¼‚ª•Ô‚é‚Ì‚©‚ÈH
+ C clif_parse_sn_explosionspirits()
+ ƒNƒ‰ƒCƒAƒ“ƒg‚©‚çƒpƒPƒbƒg‚ª—ˆ‚½Žž‚ɃRƒ“ƒ\[ƒ‹‚ɃƒO‚ð•\Ž¦‚·‚é‚悤‚É‚µ‚½
+ BaseLv99ˆÈã‚ÌŽž‚É0‚ÅœŽZ‚·‚é‰Â”\«‚ª‚ ‚é‚Ì‚ð‰ñ”ð
+ A pstrcmp()
+ clif_parse_wisexin()‚Ìqsort()‚ÅŽg—p
+ A clif_parse_wisexin()
+ Wis‹‘”Û‹–‰Â‚ɑΉž
+ A clif_parse_wisexlist()
+ Wis‹‘”ÛƒŠƒXƒg•\Ž¦‚ɑΉž
+ A clif_parse_wisall()
+ Wis‘S‹‘”Û‹–‰Â‚ɑΉž
+ A clif_parse_GMkillall()
+ GMƒRƒ}ƒ“ƒh/killall(=@kickall)‚ɑΉž
+ A clif_parse_GMsummon()
+ GMƒRƒ}ƒ“ƒh/summon(=@recall)‚ɑΉž
+ A clif_parse_GMshift()
+ GMƒRƒ}ƒ“ƒh/shift(=@jumpto)‚ɑΉž
+ A clif_parse_debug()
+ packet_db.txt‚̃fƒoƒO—p‚ɒljÁ
+ ƒpƒPƒbƒg“à—e‚ðƒ_ƒ“ƒv‚µ‚Ü‚·
+ C clif_parse()
+ clif_parse_func_table ‚ðíœ(packet_db[cmd].func‚É“ü‚é‚悤‚É‚È‚è‚Ü‚µ‚½)
+ A packetdb_readdb()
+ packet_db.txt‚ð“Ç‚Ýž‚Ý‚Ü‚·
+ ƒtƒH[ƒ}ƒbƒg‚Í ƒpƒPƒbƒg”Ô†,ƒpƒPƒbƒg’·[,ƒRƒ}ƒ“ƒh,ƒRƒ}ƒ“ƒhˆø”‚̈ʒu(:‹æØ‚è‚Å•¡”Žw’è)]
+ ƒRƒ}ƒ“ƒhˆø”‚̈ʒu‚ÍŠeƒRƒ}ƒ“ƒh‚ɑΉž‚·‚éŠÖ”“à‚Åݒ肳‚ê‚Ä‚¢‚é‚Ì‚Åclif.c‚ð“Ç‚Ü‚È‚¢‚Æ•ª‚©‚ç‚È‚¢“ï‰ð‚ȃtƒH[ƒ}ƒbƒg‚Å‚·
+ •ÏX‚³‚ꂽƒpƒPƒbƒg‚Ípacket_db.txt‚Ì––”ö‚ɒljÁ‚µ‚Ü‚·
+ ŒÃ‚¢ƒNƒ‰ƒCƒAƒ“ƒg‚ð—˜—p‚·‚éꇂɂ͕s—v‚È’è‹`‚ð––”ö‚©‚ç휂·‚ê‚΂悢‚悤‚É‚µ‚Ü‚·
+ A do_final_clif()
+ I—¹Žž‚ɃZƒbƒVƒ‡ƒ“‚ð휂·‚é‚悤‚É‚µ‚½
+ C do_init_clif()
+ packet_db‚ð“Ç‚Ýž‚ނ悤‚É‚µ‚½
+ I—¹Žž‚ɃZƒbƒVƒ‡ƒ“‚ð휂ł«‚é‚悤‚É make_listen_port() ‚Ì–ß‚è’l‚ð map_fd ‚É“ü‚ê‚é‚悤‚É‚µ‚½
+ C clif.h
+ A MAX_PACKET_DB
+ A struct packet_db
+ A clif_changestatus()
+ A clif_misceffect2()
+ A clif_callpartner()
+ A clif_sitting()
+ A clif_soundeffect()
+ A clif_item_repair_list()
+ A do_final_clif()
+ ’è‹`‚ð’ljÁ
+ C clif_class_change
+ clif_mob_class_change() ‚©‚ç•ÏX
+ C guild.c
+ C guild_read_castledb()
+ castle_event ‚ð“Ç‚Ýž‚ނ悤‚É‚µ‚½
+ C guild_skillup()
+ ˆø”‚ð•ÏX
+ flag=1 ‚ŃMƒ‹ƒhƒ|ƒCƒ“ƒg‚ðŽg—p‚µ‚È‚¢‚悤‚É‚µ‚½
+ C guild_broken()
+ ƒMƒ‹ƒh‰ðŽUŽž‚ÉŠ—LÔ‚ð”jŠü‚·‚邽‚ß‚Ì OnGuildBreak ƒCƒxƒ“ƒg‚ð’ljÁ
+ A guild_db_final()
+ A castle_db_final()
+ A guild_expcache_db_final()
+ A guild_infoevent_db_final()
+ A do_final_guild()
+ I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
+ C guild.h
+ C guild_skillup()
+ ’è‹`‚ð•ÏX
+ A do_final_guild()
+ ’è‹`‚ð’ljÁ
+ C intif.c
+ atcommand.h ‚ðinclude
+ packet_len_table[] Šg’£
+ C intif_guild_skillup()
+ ˆø” flag ’ljÁ
+ A intif_charposreq()
+ ƒLƒƒƒ‰‚Ìꊗv‹ƒpƒPƒbƒg‚ð‘—M
+ flag=1 @jumpto
+ flag=0 @where
+ A intif_jumpto()
+ ‘¼map-server‚̃Lƒƒƒ‰‚É @jumpto o—ˆ‚é‚悤‚É‚µ‚½
+ A intif_where()
+ ‘¼map-server‚̃Lƒƒƒ‰‚É @where o—ˆ‚é‚悤‚É‚µ‚½
+ A intif_charmovereq()
+ ƒLƒƒƒ‰‚ðŒÄ‚ÑŠñ‚¹‚é
+ flag=1 @recall
+ flag=0 ‚ ‚È‚½‚Ɉ§‚¢‚½‚¢
+ A intif_displaymessage()
+ ‘¼map-server‚̃Lƒƒƒ‰‚ɃƒbƒZ[ƒW‚ð‘—‚ê‚é‚悤‚É‚µ‚½
+ (Wis‚Å‚Í‚È‚­‚Ä‘—‚è‚Á‚Ï‚È‚µB@recall ¬Œ÷Žž—p)
+ C intif_parse_WisMessage()
+ Wis‹‘”Û‚Ì”»’è‚ð‚·‚é‚悤‚É‚µ‚½
+ A intif_parse_CharPosReq()
+ ƒLƒƒƒ‰‚̋ꊂðInter‚Ö•Ô“š
+ A intif_parse_CharPos()
+ ƒLƒƒƒ‰‚̋ꊂªInter‚©‚ç‘—‚ç‚ê‚Ä‚«‚½‚Ì‚Å
+ flag=1 ƒLƒƒƒ‰‚Ìꊂֈړ®(@jumpto)
+ flag=0 ƒLƒƒƒ‰‚Ìꊂð•\Ž¦(@where)
+ A intif_parse_CharMoveReq()
+ ƒLƒƒƒ‰‚ª‚¢‚½‚çŽw’èˆÊ’u‚Ɉړ®‚³‚¹‚é
+ flag=1 @recall ‚È‚Ì‚ÅGMƒŒƒxƒ‹‚ð”äŠrAƒƒbƒZ[ƒW‚ð•\Ž¦
+ A intif_parse_DisplayMessage()
+ Žw’èƒLƒƒƒ‰‚ɃƒbƒZ[ƒW‚ð‘—M
+ C intif_parse()
+ VƒpƒPƒbƒg‚ð’ljÁ
+ C intif.h
+ C intif_guild_skillup()
+ ’è‹`•ÏX
+ A intif_jumpto()
+ A intif_where()
+ A intif_charmovereq()
+ A intif_displaymessage()
+ ’è‹`‚̒ljÁ
+ C itemdb.c
+ A itemdb_isdropable()
+ ƒAƒCƒeƒ€‚ªŽÌ‚Ä‚ç‚ê‚é‚©‚Ç‚¤‚©‚Ì”»’è‚ð‚·‚é
+ A itemdb_read_cardillustnametable()
+ grfƒtƒ@ƒCƒ‹‚©‚ç num2cardillustnametable.txt ‚ð“Ç‚Ýž‚Þ
+ cutincard–½—ß‚ÅŽg—p
+ C do_init_itemdb()
+ itemdb_read_cardillustnametable() ‚ð’ljÁ
+ C itemdb.h
+ C struct item_data
+ char cardillustname[64] ’ljÁ
+ A itemdb_isdropable()
+ ’è‹`‚̒ljÁ
+ C Makefile
+ A malloc.o malloc.h ‚ð’ljÁ
+ C map.c
+ C struct charid2nick
+ @who‚Å‘¼map-server‚̃Lƒƒƒ‰‚à•\Ž¦‚Å‚«‚é‚悤‚É account_id ip port ‚ð’ljÁ
+ C map_freeblock()
+ C map_freeblock_unlock()
+ “ñdfree()‘Îô‚ÅNULL‚ð‘ã“ü‚·‚é‚悤‚É‚µ‚½
+ C map_delblock()
+ Œ©‚â‚·‚¢‚悤‚ÉŒJ‚è•Ô‚µŽg—p‚³‚ê‚é•Ï”‚ð‚Ü‚Æ‚ß‚½
+ C map_addchariddb()
+ charid2nick ‚ÌŠg’£‚É‚ ‚킹‚Ĉø”‚ð‘‚₵‚½
+ A map_delchariddb()
+ charid_db ‚©‚çƒLƒƒƒ‰‚ðíœ(ŽÀÛ‚É‚Íip port‚ð0‚É)‚·‚é
+ C map_quit()
+ Œ‹¥ó‘Ô’†‚̓ƒOƒAƒEƒg‚µ‚Ä‚à1ŽžŠÔ‚Íó‘Ô‚ª‘±‚­‚悤‚ÉPCƒOƒ[ƒoƒ‹•Ï” PC_WEDDING_TIME ‚ÉŠJŽnŽžŠÔ‚ð‹L˜^‚·‚é‚悤‚É‚µ‚½
+ C map_id2bl()
+ Œ©‚â‚·‚¢‚悤‚É‘‚«Š·‚¦
+ A map_eraseipport()
+ ‘¼map-serverŠÇ—‚̃}ƒbƒv‚ð map_db ‚©‚ç휂·‚é
+ A map_who_sub()
+ A map_who()
+ ‘¼map-server‚É‚¢‚éƒLƒƒƒ‰‚à @who ‚Å•\Ž¦‚³‚ê‚é‚悤‚É‚µ‚½
+ •\Ž¦ãƒLƒƒƒ‰‚ªŽc‚邱‚Æ‚ª‚ ‚é‚Ì‚Í’²¸’†
+ A id_db_final()
+ A map_db_final()
+ A nick_db_final()
+ A charid_db_final()
+ C do_final()
+ I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É•ÏX
+ C map.h
+ A MAX_WIS_REFUSAL
+ Wis‹‘”ÛƒŠƒXƒg‚Ì•Û‘¶Å‘å’l
+ C struct map_session_data
+ C special_state
+ A unbreakable_weapon
+ •Ší‚ªâ‘΂ɉó‚ê‚È‚¢
+ A unbreakable_armor
+ ŠZ‚ªâ‘΂ɉó‚ê‚È‚¢
+ A opt3
+ ‰æ–ÊŠO‚©‚ç“ü‚Á‚Ä‚«‚½ƒLƒƒƒ‰‚Ìó‘Ô
+ A areanpc_id
+ OnTouchƒCƒxƒ“ƒg‚ðŽÀs‚µ‚½NPC‚ÌID
+ A wis_refusal[][]
+ Wis‹‘”ÛƒŠƒXƒg
+ A wis_all
+ Wis‘S‹‘”Ûƒtƒ‰ƒO
+ A break_weapon_rate
+ •Ší”j‰ó—¦
+ A break_armor_rate
+ ŠZ”j‰ó—¦
+ A add_steal_rate
+ ’ljÁƒXƒeƒB[ƒ‹—¦
+ C struct npc_data
+ A opt1,opt2,opt3,option
+ PC‚Æ“¯‚¶
+ C u.scr
+ A src_id
+ I—¹Žž‚̃ƒ‚ƒŠŠJ•ú—p
+ C struct mob_data
+ A opt3
+ PC‚Æ“¯‚¶
+ A guild_id
+ ƒK[ƒfƒBƒAƒ“‚È‚Ç‚ÅŽg—p
+ D exclusion_*
+ ŠÖ˜AŠÖ”‚ðÁ‚µ‚½‚Ì‚Å휂µ‚½
+ C struct map_data
+ C flag
+ A notrade
+ Žæˆø‹ÖŽ~ƒ}ƒbƒvƒtƒ‰ƒO
+ A noskill
+ ƒXƒLƒ‹Žg—p‹ÖŽ~ƒ}ƒbƒvƒtƒ‰ƒO
+ ’蔂̒ljÁ
+ SP_PARTNER SP_CART
+ SP_BREAK_WEAPON_RATE SP_BREAK_ARMOR_RATE SP_ADD_STEAL_RATE
+ SP_UNBREAKABLE_WEAPON SP_UNBREAKABLE_ARMOR
+ D talkie_mes[]
+ ’è‹`íœ
+ C map_addchariddb()
+ ’è‹`•ÏX
+ A map_delchariddb()
+ A map_eraseipport()
+ A map_who()
+ ’è‹`’ljÁ
+ C mob.c
+ D mob_exclusion_add()
+ D mob_exclusion_check()
+ ˆÓ–¡‚ª‚ ‚éŽg—p‚ð‚³‚ê‚Ä‚¢‚È‚¢‚Ì‚Æbattle_check_target()‚Å‘ã—p‚Å‚«‚é‚Ì‚Å휂µ‚½
+ C mob_stop_walking()
+ type&4‚Å–Ú“I‚Ìꊂ܂ŋ——£‚ª‚ ‚ê‚Î1•ài‚ñ‚ÅŽ~‚Ü‚é‚悤‚É‚µ‚½
+ C mob_attack()
+ Mob‚ªMob‚ðUŒ‚‚Å‚«‚é‚悤‚É‚µ‚½
+ C mob_target()
+ C mob_ai_sub_hard_slavemob()
+ mob_exclusion_check()‚ðíœ
+ C mob_ai_sub_hard_activesearch()
+ C mob_ai_sub_hard()
+ special_mob_ai‚ÈꇂÍMob‚àõ“G‚·‚é‚悤‚É‚µ‚½
+ ƒ‹[ƒgƒ‚ƒ“ƒXƒ^[‚ª–Ú•W‚̃AƒCƒeƒ€‚ðŒ©Ž¸‚Á‚½Žž‚Í–Ú“I‚ÌêŠ‚Ü‚Å•à‚©‚È‚¢‚悤‚É‚µ‚½
+ C mob_damage()
+ ƒXƒtƒBƒAƒ}ƒCƒ“‚ª‰£‚ç‚ꂽŽž‚ÉŽ©”š‚µ‚È‚©‚Á‚½‚Ì‚ðC³‚µ‚½
+ ƒXƒtƒBƒAƒ}ƒCƒ“‚ª‰£‚ç‚ê‚ÄŽ©”š‚·‚鎞‚Ɉړ®‚·‚é‚悤‚É‚µ‚½
+ src‚ªMob‚ÌŽž‚Ísrc‚̃^[ƒQƒbƒg‚ðŠO‚·‚悤‚É‚µ‚½
+ C mob_skillid2skillidx()
+ ƒCƒ“ƒfƒbƒNƒX‚ª0‚©‚çŽn‚Ü‚é‚̂ɃGƒ‰[‚à0‚ð•Ô‚·‚µ‚Ä‚¢‚½‚Ì‚ðC³‚µ‚½
+ ƒXƒtƒBƒAƒ}ƒCƒ“‚ª‰£‚ç‚ê‚Ä‚àŽ©”š‚µ‚È‚¢Œ´ˆö‚Í‚±‚ê
+ C mobskill_use()
+ Ž©”šó‘Ԃł̓XƒLƒ‹‚ðŽg—p‚Å‚«‚È‚¢‚悤‚É‚µ‚½
+ C mob_spawn()
+ ƒK[ƒfƒBƒAƒ“‚ƃGƒ“ƒyƒŠƒEƒ€‚ªÔ‚Å”­¶‚µ‚½ê‡‚Í guild_id ‚ðÝ’è
+ opt3 ‚ð 0 ‚ʼnŠú‰»
+ C mob_can_reach()
+ GvGˆÈŠO‚ł̓K[ƒfƒBƒAƒ“‚͉½‚à‚µ‚È‚¢‚悤‚É‚µ‚½
+ C mob_catch_delete()
+ Mob‚ªÁ‚¦‚é‚Æ‚«‚̃GƒtƒFƒNƒg‚ð type ‚ÅŽw’è‚Å‚«‚é‚悤‚É‚µ‚½
+ C mob_timer_delete()
+ ƒXƒtƒBƒAƒ}ƒCƒ“‚ƃoƒCƒIƒvƒ‰ƒ“ƒg‚ªÁ‚¦‚é‚Æ‚«‚̓eƒŒƒ|ƒGƒtƒFƒNƒg‚ÅÁ‚¦‚é‚悤‚É‚µ‚½
+ C mob_deleteslave_sub()
+ nullƒ`ƒFƒbƒN‘O‚É‘ã“ü‚µ‚Ä‚¢‚é•”•ª‚ðC³
+ C mob_class_change()
+ clif_class_change() ‚Ì•ÏX‚ɑΉž
+ C mob.h
+ C mob_catch_delete()
+ ’è‹`•ÏX
+ D mob_exclusion_add()
+ D mob_exclusion_check()
+ ’è‹`íœ
+ C npc.c
+ C struct npc_src_list
+ A prev
+ I—¹Žž‚̃ƒ‚ƒŠŠJ•ú—p‚ɒljÁ
+ C npc_checknear()
+ ƒCƒxƒ“ƒgPC‚ÌꇂÉí‚ÉOK‚ð•Ô‚µ‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ðC³
+ A npc_enable_sub()
+ npc_enable() ‚©‚çŒÄ‚΂ê‚ÄŽüˆÍ‚ÌPC‚ÉOnTouchƒCƒxƒ“ƒg‚ðŽÀs‚·‚é
+ C npc_enable()
+ flag ‚É‚æ‚é‹““®‚ð’ljÁ
+ flag=2 NPC‚ÌHideó‘Ô‚ð‰ðœ‚·‚é
+ flag=4 NPC‚ðHideó‘Ô‚É‚·‚é
+ Hide‚µ‚Ä‚¢‚éNPC‚Í–³Œø‚É‚È‚è‚Ü‚·
+ —LŒø‚É‚µ‚½Žž‚É npc_enable_sub() ‚ðŒÄ‚Ԃ悤‚É‚µ‚½
+ C npc_event()
+ ƒGƒ‰[Žž‚Í1‚ð•Ô‚·‚悤‚É•ÏX
+ OnTouchƒCƒxƒ“ƒg‚©‚çŒÄ‚΂ꂽ‚Æ‚«‚̓Cƒxƒ“ƒg‚ªŒ©‚‚©‚ç‚È‚¢ƒGƒ‰[‚ð•Ô‚³‚È‚¢‚悤‚É‚µ‚½
+ C npc_touch_areanpc()
+ PC‚ªƒGƒŠƒA“à‚ð’Ê‚Á‚½Žž‚ɉ½“x‚àŽÀs‚³‚ê‚é‚Ì‚ðC³
+ NPC‚ÉOnTouchƒCƒxƒ“ƒg‚ª‚ ‚Á‚½ê‡‚É‚ÍŽÀs‚·‚é‚悤‚É‚µ‚½
+ ŒÝŠ·«‚ð•Û‚‚½‚ß‚ÉOnTouchƒCƒxƒ“ƒg‚ª–³‚¢ê‡‚Í¡‚Ü‚Å‚Æ“¯‚¶‚悤‚É“®‚«‚Ü‚·
+ C npc_parse_warp()
+ option,opt1,opt2,opt3 ‚ð 0 ‚ʼnŠú‰»
+ C npc_parse_warp()
+ C npc_parse_shop()
+ ID‚ðnpc_get_new_npc_id()‚Ŏ擾‚·‚é‚悤‚É‚µ‚½
+ option,opt1,opt2,opt3 ‚ð 0 ‚ʼnŠú‰»
+ C npc_convertlabel_db()
+ ƒƒ‚ƒŠŠm•ÛŒã‚Énull‚©‚Ç‚¤‚©Šm”F‚µ‚Ä‚¢‚È‚¢‚Ì‚ðC³
+ C npc_parse_script()
+ bad duplicate name!ƒGƒ‰[•\Ž¦‚ª‰üs‚³‚ê‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ðC³
+ I—¹Žžƒƒ‚ƒŠŠJ•ú—p‚Éduplicate‚Å src_id ‚ð‘}“ü
+ ID‚ðnpc_get_new_npc_id()‚Ŏ擾‚·‚é‚悤‚É‚µ‚½
+ option,opt1,opt2,opt3 ‚ð 0 ‚ʼnŠú‰»
+ C npc_parse_mob()
+ memwatch‘Îô‚Ńƒ‚ƒŠ‚ðˆêŠ‡Šm•Û‚µ‚È‚¢‚悤‚É‚µ‚½
+ ƒ‚ƒ“ƒXƒ^[–¼‚É --ja-- --en-- ‚ðŽw’è‚·‚é‚Æmob_db‚Ì–¼‘O‚ðŽg‚¤‚悤‚É‚µ‚½
+ ID‚ðnpc_get_new_npc_id()‚Ŏ擾‚·‚é‚悤‚É‚µ‚½
+ C npc_parse_mapflag()
+ notrade noskill ‚ð“Ç‚Ýž‚ނ悤‚É‚µ‚½
+ A ev_db_final()
+ A npcname_db_final()
+ A do_final_npc()
+ I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
+ C do_init_npc()
+ ƒƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
+ C npc.h
+ A do_final_npc()
+ ’è‹`‚̒ljÁ
+ C party.c
+ A party_db_final()
+ A do_final_party()
+ I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
+ C party.h
+ A do_final_party()
+ ’è‹`‚̒ljÁ
+ C pc.c
+ A pc_numisGM()
+ account_id‚ÅGM‚©‚Ç‚¤‚©”»’f‚·‚é
+ A pc_isquitable()
+ PC‚ªI—¹‚Å‚«‚éó‘Ô‚É‚ ‚é‚©‚Ç‚¤‚©”»’f‚·‚é
+ 1‚ð•Ô‚·‚Æ‚«‚ÍI—¹‚Å‚«‚È‚¢
+ C pc_counttargeted_sub()
+ Mobó‘Ô‚É‚æ‚Á‚Ä’l‚𳂵‚­•Ô‚³‚È‚¢‚悤‚È‹C‚ª‚·‚é‚Ì‚ÅðŒ‚ð‰¼•ÏX
+ C pc_makesavestatus()
+ ƒ}ƒi[ƒ|ƒCƒ“ƒg‚ª³”‚Ìê‡‚Í 0 ‚É‚·‚é
+ C pc_authok()
+ wis_all ‚ð 0 ‚ʼnŠú‰»
+ map_addchariddb() ‚Ì•ÏX‚ɑΉž‚Æí‚ÉŽÀs‚·‚é‚悤‚É‚µ‚½
+ C pc_calcstatus()
+ break_weapon_rate break_armor_rate add_steal_rate ‚ð 0 ‚ʼnŠú‰»
+ Œ‹¥ó‘Ô‚Å‚Í•à‚­‘¬“x‚ª”¼•ª‚É‚È‚é‚悤‚É‚µ‚½
+ C pc_bonus()
+ SP_UNBREAKABLE_WEAPON SP_UNBREAKABLE_ARMOR SP_BREAK_WEAPON_RATE SP_BREAK_ARMOR_RATE SP_ADD_STEAL_RATE
+ ˆ—‚ð’ljÁ
+ C pc_dropitem()
+ ƒAƒCƒeƒ€‚ðŽÌ‚Ä‚ç‚ê‚é‚©‚Ç‚¤‚©”»’è‚·‚é‚悤‚É‚µ‚½
+ C pc_putitemtocart()
+ ƒAƒCƒeƒ€‚ðƒJ[ƒg‚Ɉړ®‚Å‚«‚é‚©”»’è‚·‚é‚悤‚É‚µ‚½
+ C pc_steal_item()
+ ƒXƒeƒB[ƒ‹—¦‚É add_steal_rate ‚ð‰ÁŽZ‚·‚é‚悤‚É‚µ‚½
+ C pc_walk()
+ C pc_movepos()
+ ”͈ÍNPC‚ª‚¢‚È‚¢‚Æ‚«‚É‚Í areanpc_id=0 ‚É‚µ‚½
+ C pc_checkbaselevelup()
+ ƒXƒpƒmƒr‚ªƒŒƒxƒ‹ƒAƒbƒv‚µ‚½Žž‚É‚©‚©‚éƒXƒLƒ‹‚̃Œƒxƒ‹‚ð–{ŽI‚É‚ ‚킹‚½
+ C pc_skillup()
+ guild_skillup() ‚Ì•ÏX‚ɑΉž
+ C pc_damage()
+ ƒXƒpƒmƒr‚ªExp99%‚ÅHP‚ª0‚É‚È‚é‚ÆHP‚ª‰ñ•œ‚µ‚Ä‹à„ó‘Ô‚É‚È‚é‚悤‚É‚µ‚½
+ C pc_readparam()
+ nullƒ`ƒFƒbƒN‘O‚Ésd‚ðŽg‚Á‚Ä‚¢‚½‚Ì‚ðC³
+ A SP_PARTNER
+ Œ‹¥‘ŠŽè‚Ìchar_id
+ A SP_CART
+ ƒJ[ƒg‚ðˆø‚¢‚Ä‚¢‚éꇂÍ0ˆÈオ•Ô‚é
+ C pc_jobchange()
+ ƒ}ƒi[ƒ|ƒCƒ“ƒg‚ª•‰”‚ÌꇂÍÔƒGƒ‚•\Ž¦‚·‚é‚悤‚É‚µ‚½
+ A pc_break_weapon()
+ •Ší”j‰ó‚ð‚·‚é
+ A pc_break_armor()
+ ŠZ”j‰ó‚ð‚·‚é
+ C pc_natural_heal_sp()
+ ƒXƒpƒmƒr‚Í”š—ôó‘Ô‚Å‚àSP‚ªŽ©‘R‰ñ•œ‚·‚é‚悤‚É‚µ‚½
+ A gm_account_db_final()
+ A do_final_pc()
+ I—¹Žž‚Ƀƒ‚ƒŠŠJ•ú‚·‚é‚悤‚É‚µ‚½
+ C pc.h
+ A pc_numisGM()
+ A pc_isquitable()
+ A pc_break_weapon()
+ A pc_break_armor()
+ A do_final_pc()
+ ’è‹`’ljÁ
+ C pet.c
+ C pet_data_init()
+ C pet_lootitem_drop()
+ ƒƒ‚ƒŠŠm•Û‚Å‚«‚½‚©‚Ç‚¤‚©Šm”F‚µ‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ÅC³
+ C pet_catch_process2()
+ mob_catch_delete() ‚Ì•ÏX‚ɑΉž
+ C script.c
+ ’ljÁ‚µ‚½ŠÖ”‚̃vƒƒgƒ^ƒCƒv‚ð擪‚ɒljÁ
+ buildin_func[]‚ɒljÁ‚µ‚½–½—ß‚âŠÖ”‚ð’ljÁ
+ ‰‰ŽZŽq‚É C_R_SHIFT C_L_SHIFT ‚ð’ljÁ
+ C parse_subexpr()
+ ‰‰ŽZŽq >> << ’ljÁ
+ C get_val()
+ PCŽå‘Ì‚Ì•Ï”‚ÅPC‚ªƒAƒ^ƒbƒ`‚³‚ê‚Ä‚¢‚È‚©‚Á‚½‚çƒGƒ‰[‚ðo‚·‚悤‚É‚µ‚½
+ PCŽå‘Ì‚Ì•Ï”‚Åsd=NULL‚¾‚Á‚½ê‡‚É‚Ípc_read*‚Ŏ擾‚És‚©‚È‚¢‚悤‚É‚µ‚½
+ A buildin_close2()
+ ƒXƒNƒŠƒvƒg‚ð’†’f‚µ‚ÄCloseƒ{ƒ^ƒ“‚ð•\Ž¦‚µ‚Ü‚·
+ C buildin_areawarp_sub()
+ Random‚¾‚¯‚Å‚È‚­SavePoint‚É‚à”ò‚΂¹‚é‚悤‚É‚µ‚½
+ A buildin_cutincard()
+ ƒJ[ƒh‚̃AƒCƒeƒ€ID‚ðŽw’è‚·‚邱‚ƂŃJ[ƒh‰æ‘œ‚ð•\Ž¦‚µ‚Ü‚·
+ C buildin_getitem()
+ ˆø”‚ð•ÏX‚µ‚ĊӒ肵‚½ó‘Ô‚Å“n‚·‚©‚Ç‚¤‚©‚ðŽw’è‚Å‚«‚é‚悤‚É‚µ‚½
+ account_id‚ðŽw’è‚·‚邱‚Æ‚ÅA‚»‚ÌPC‚ɃAƒCƒeƒ€‚ð“n‚¹‚é‚悤‚É‚µ‚½(Œ‹¥—pŠg’£)
+ C buildin_getitem2()
+ account_id‚ðŽw’è‚·‚邱‚Æ‚ÅA‚»‚ÌPC‚ɃAƒCƒeƒ€‚ð“n‚¹‚é‚悤‚É‚µ‚½(Œ‹¥—pŠg’£)
+ C buildin_readparam()
+ ƒLƒƒƒ‰–¼‚ðŽw’è‚·‚邱‚Æ‚ÅA‚»‚ÌPC‚̃pƒ‰ƒ[ƒ^‚ð“Ç‚ÝŽæ‚ê‚é‚悤‚É‚µ‚½
+ C buildin_getcharid()
+ ƒLƒƒƒ‰–¼‚ðŽw’è‚·‚邱‚Æ‚ÅA‚»‚ÌPC‚ÌŠÖŒWID‚ðŽæ“¾‚Å‚«‚é‚悤‚É‚µ‚½
+ A buildin_getpartymember()
+ Žw’èID‚̃p[ƒeƒBl”‚̎擾‚ƃp[ƒeƒB[ƒƒ“ƒo[‚ÌID‚ð”z—ñ‚Ŏ擾‚Å‚«‚Ü‚·
+ A buildin_guildskill()
+ ƒMƒ‹ƒhƒXƒLƒ‹‚ðŠo‚¦‚邱‚Æ‚ª‚Å‚«‚Ü‚·
+ C buildin_getgdskilllv()
+ ƒMƒ‹ƒhƒXƒLƒ‹ID‚ðGD_APPROVAL‚̂悤‚ȃXƒLƒ‹–¼‚ÅŽw’è‚·‚é‚悤‚É‚µ‚½
+ A buildin_hideoffnpc()
+ Hideó‘Ô‚ÌNPC‚ð•\Ž¦‚·‚é
+ A buildin_hideonnpc()
+ NPC‚ðHideó‘Ô‚É‚·‚é
+ C buildin_sc_start()
+ IDŽw’肵‚½ƒLƒƒƒ‰‚ðó‘ÔˆÙí‚É‚Å‚«‚é‚悤‚É‚µ‚½
+ A buildin_sc_start2()
+ Šm—¦Žw’è‚ŃLƒƒƒ‰‚ðó‘ÔˆÙí‚É‚Å‚«‚Ü‚·(ƒAƒCƒXA‚¨‚à‚¿“™‚ÅŽg—p)
+ A buildin_getscrate()
+ ó‘ÔˆÙí‘Ï«‚ðŒvŽZ‚µ‚½Šm—¦‚ð•Ô‚·
+ C buildin_changebase()
+ ID‚ÅŽw’肵‚½ƒLƒƒƒ‰‚ÌŒ©‚½–Ú‚ð•ÏX‚·‚邱‚Æ‚ª‚Å‚«‚é‚悤‚É‚µ‚½
+ C buildin_waitingroom()
+ limit=0‚ÌŽž‚Í(1/10)‚ð•\Ž¦‚µ‚È‚¢‚悤‚É‚µ‚½
+ C buildin_setmapflag()
+ MF_NOTRADE MF_NOSKILL ‚ð’ljÁ
+ C buildin_flagemblem()
+ NPC‚ª“Á’è‚Å‚«‚È‚©‚Á‚½‚Æ‚«‚Émap-server‚ª—Ž‚¿‚é–â‘è‚ðC³
+ A buildin_getinventorylist()
+ ”z—ñ‚ÅŠŽ•i‚ð•Ô‚µ‚Ü‚·
+ A buildin_getskilllist()
+ ”z—ñ‚ÅŠ—LƒXƒLƒ‹‚ð•Ô‚µ‚Ü‚·
+ A buildin_clearitem()
+ ŠŽƒAƒCƒeƒ€‚ð휂µ‚Ü‚·
+ A buildin_getrepairableitemcount()
+ ‰ó‚ê‚Ä‚¢‚éƒAƒCƒeƒ€‚𔂦‚Ü‚·
+ A buildin_repairitem()
+ ‰ó‚ê‚Ä‚¢‚éƒAƒCƒeƒ€‚ð‚·‚×‚ÄC—‚µ‚Ü‚·
+ A buildin_classchange()
+ NPC‚ðƒNƒ‰ƒXƒ`ƒFƒ“ƒW‚µ‚Ü‚·
+ A buildin_misceffect()
+ ƒGƒtƒFƒNƒg‚ð•\Ž¦‚µ‚Ü‚·
+ A buildin_soundeffect()
+ Žw’肵‚½SE‚ð–‚炵‚Ü‚·
+ C op_2num()
+ C run_script_main()
+ ƒVƒtƒg‰‰ŽZŽq‚ð’ljÁ
+ A mapreg_db_final()
+ A mapregstr_db_final()
+ A scriptlabel_db_final()
+ A userfunc_db_final()
+ C do_final_script()
+ I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
+ C skill.c
+ <timer.h> intif.h ‚ðinclude
+ ƒRƒƒ“ƒg‚̃XƒLƒ‹–¼‚ðjROŽd—l‚É‘‚«Š·‚¦
+ C SkillStatusChangeTable[]
+ ƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[ ƒOƒ‰ƒtƒBƒeƒB Ž©”š Ž©”š2 ‚ð’ljÁ
+ C skill_additional_effect()
+ ƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[’ljÁ
+ ƒAƒ“ƒNƒ‹ƒXƒlƒA‚ðíœ
+ C skill_attack()
+ ƒ`ƒƒƒbƒg’†‚ɃXƒLƒ‹‚ª‰e‹¿‚µ‚È‚¢‚悤‚É‚µ‚½(ƒ`ƒƒƒbƒgƒLƒƒƒ“ƒZƒ‹)
+ ƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚ÍSkillLv=-1‚Åclif_skill_damage()‚·‚é‚悤‚É‚µ‚½
+ Ž©”š‚̓_ƒ[ƒW•\Ž¦‚µ‚È‚¢‚悤‚É‚µ‚½
+ C skill_castend_damage_id()
+ ƒAƒVƒbƒhƒeƒ‰[‚Å•Ší”j‰ó‚ð‚·‚é‚悤‚É‚µ‚½
+ ƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚ª3*3‚͈̔ÍUŒ‚‚ð‚·‚é‚悤‚É‚µ‚½
+ Ž©”š‚̈—‚ð•ÏX‚µ‚½
+ C skill_castend_nodamage_id()
+ sd‚Ædstsd‚ÅPC‚©‚Ç‚¤‚©‚ð”»’è‚·‚é‚悤‚É‚µ‚½
+ ƒXƒpƒmƒr‚̉łªƒq[ƒ‹‚ðŽg‚¤‚Ɖñ•œ—Ê‚ª2”{‚É‚È‚é‚悤‚É‚µ‚½
+ clif_sitting()‚Ì•ÏX‚ɑΉž
+ •ŠíC—‚̓pƒPƒbƒg‚ª•ª‚©‚ç‚È‚¢‚̂ŃRƒƒ“ƒgƒAƒEƒg
+ ƒXƒgƒŠƒbƒv`AƒPƒ~ƒJƒ‹`‚ðƒXƒLƒ‹ƒ†ƒjƒbƒg‚ÉŽg—p‚µ‚½ê‡Amap-server‚ª—Ž‚¿‚é–â‘è‚ðC³
+ ŒN‚¾‚¯‚ÍŒì‚é‚æA‚ ‚È‚½‚ׂ̈ɋ]µ‚É‚È‚è‚Ü‚·‚ÌŒvŽZ‚ðMAX_HP‚Ü‚½‚ÍMAX_SP‚©‚ç‚·‚é‚悤‚É‚µ‚½
+ ‚ ‚È‚½‚Ɉ§‚¢‚½‚¢ ‚ð‘ŠŽè‚Ì–¼‘O‚ð‹©‚ÔA•¡”Ý’u‚Å‚«‚È‚¢“™A–{ŽI•—‚É‚µ‚½
+ ƒAƒ“ƒNƒ‹ƒXƒlƒA‚ÅPC‚ªˆø‚Á‚©‚©‚Á‚Ä‚¢‚鎞‚ɃŠƒ€[ƒuƒgƒ‰ƒbƒv‚µ‚Ä‚àPC‚ª“®‚¯‚é‚悤‚É‚È‚ç‚È‚©‚Á‚½‚Ì‚ðC³
+ ƒAƒ“ƒR[ƒ‹‚ð‹©‚Ô‚æ‚¤‚É‚µ‚½
+ ƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚ðŽÀ‘•‚µ‚½
+ Ž©”š‚ÅŽ©”šó‘Ô‚ðŠJŽn‚·‚é‚悤‚É‚µ‚½
+ C skill_castend_pos2()
+ ƒoƒCƒIƒvƒ‰ƒ“ƒgAƒXƒtƒBƒAƒ}ƒCƒ“
+ ƒpƒPƒbƒg‡”Ô‚ð•ÏX
+ Žw’肵‚½êŠ‚ÉÝ’u‚·‚é‚悤‚É‚µ‚½
+ Œø‰ÊŽžŠÔ‚ðskill_cast_db.txt‚ÅŽw’è‚·‚é‚悤‚É‚µ‚½
+ mob_exclusion_add()‚ðíœ
+ ƒOƒ‰ƒtƒBƒeƒB‚ðŽÀ‘•A1ŒÂ‚µ‚©’u‚¯‚Ü‚¹‚ñ
+ C skill_castend_map()
+ ƒ[ƒvƒ|[ƒ^ƒ‹‚ÍŽÀÛ‚ÌÝ’uŽž‚Ƀuƒ‹[ƒWƒFƒ€ƒXƒg[ƒ“‚ðÁ”ï‚·‚é‚悤‚É‚µ‚½
+ C skill_unitsetting()
+ ƒOƒ‰ƒtƒBƒeƒB‚̃XƒLƒ‹ƒ†ƒjƒbƒg‚ð1ŒÂ‚ÉC³
+ ƒg[ƒL[ƒ{ƒbƒNƒXAƒOƒ‰ƒtƒBƒeƒB‚Ì•¶Žš—ñ‚Í sd->message ‚ÉŠi”[‚·‚é‚悤‚É‚µ‚½
+ C skill_unit_onplace()
+ ƒ`ƒƒƒbƒgŽž‚̓XƒLƒ‹ƒ†ƒjƒbƒg‚ª“®ì‚µ‚È‚¢‚悤‚É‚µ‚½(ƒ`ƒƒƒbƒgƒLƒƒƒ“ƒZƒ‹)
+ ƒAƒ“ƒNƒ‹ƒXƒlƒA‚É‚©‚©‚鈗‚ðskill_additional_effect()‚©‚çˆÚ“®
+ ƒ[ƒvƒ|[ƒ^ƒ‹‚ÉpŽÒ‚ªæ‚Á‚½‚çÁ‚¦‚é‚悤‚É‚µ‚½
+ ƒfƒ‚ƒ“ƒXƒgƒŒ[ƒVƒ‡ƒ“‚É‚æ‚é•Ší”j‰ó‚ð‚·‚é‚悤‚É‚µ‚½
+ ƒAƒ“ƒNƒ‹ƒXƒlƒAAƒXƒpƒCƒ_[ƒEƒFƒbƒu‚Ńƒ‚ƒŠƒAƒNƒZƒXˆá”½‚ª‹N‚«‚é‰Â”\«‚ª‚ ‚Á‚½‚Ì‚ðC³
+ C skill_unit_onout()
+ ƒAƒ“ƒNƒ‹ƒXƒlƒA‚Åu}v‚ª‘«‚è‚È‚©‚Á‚½‚½‚ß‚É‹ß‚­‚ð’Ê‚è‚©‚©‚Á‚½‚¾‚¯‚Å1•bŒãã©‚É–ß‚Á‚Ä‚µ‚Ü‚Á‚½‚Ì‚ðC³
+ C skill_unit_onlimit()
+ ƒ[ƒvƒ|[ƒ^ƒ‹”­“®‘O‚̈—‚ðíœ
+ ‚ ‚È‚½‚Ɉ§‚¢‚½‚¢‚ð‘¼map-server‚É‚¢‚Ä‚àŒÄ‚ׂé‚悤‚É‚µ‚½
+ A skill_check_condition_mob_master_sub()
+ ƒ}ƒbƒv“à‚Å“¯‚¶PC‚©‚ço‚½ƒoƒCƒIƒvƒ‰ƒ“ƒg‚âƒXƒtƒBƒAƒ}ƒCƒ“‚Ì”‚𔂦‚é
+ C skill_check_condition()
+ hp_rate‚Æsp_rate‚É•‰”‚ðŽw’è‚·‚é‚ÆÁ”ïŒvŽZ‚ðMax’l‚©‚ç‚·‚é‚悤‚É‚µ‚½
+ ‚ ‚È‚½‚Ɉ§‚¢‚½‚¢‚ðŒ‹¥‚µ‚Ä‚¢‚È‚¢ó‘Ô‚ÅŽg‚Á‚½‚çŽg—pŽ¸”s‚ð•\Ž¦‚·‚é‚悤‚É‚µ‚½
+ ƒoƒCƒIƒvƒ‰ƒ“ƒg‚ƃXƒtƒBƒAƒ}ƒCƒ“‚ÌÝ’u”‚ðskill_cast_db.txt‚ÅÝ’è‚Å‚«‚é‚悤‚É‚µ‚½
+ ƒtƒ@ƒCƒA[ƒEƒH[ƒ‹‚Ì”§ŒÀ‚ð skill_use_pos() ‚©‚çˆÚ“®
+ C skill_use_id()
+ ƒoƒWƒŠƒJ‚ðGvG‚Å‚ÍŽg—p‚Å‚«‚È‚¢‚悤‚É‚µ‚½
+ ƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚Í‘ÎÛ‚ª“Åó‘Ô‚Å‚È‚¯‚ê‚ÎŽg—pŽ¸”s
+ C skill_use_pos()
+ ƒtƒ@ƒCƒA[ƒEƒH[ƒ‹‚Ì”§ŒÀ‚ð skill_check_condition() ‚Ɉړ®
+ C skill_status_change_end()
+ opt3‚̈—‚ð’ljÁ
+ Œ‹¥ó‘Ô‚ÌI—¹‚ð’ljÁ
+ ƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚ð’ljÁ
+ Ž©”š‚ð’ljÁ
+ C skill_status_change_timer()
+ Œ‹¥ó‘Ô‚ÆÔƒGƒ‚ó‘Ԃ̃^ƒCƒ}[ÄÝ’è‚ð’ljÁ
+ Ž©”šó‘Ô‚Å‚Í1•b‚²‚Æ‚É‘¬“x‚ª•Ï‰»‚·‚é‚悤‚É‚µ‚½
+ C skill_status_change_start()
+ opt3‚̈—‚ð’ljÁ
+ ƒOƒ‰ƒtƒBƒeƒB‚͒ljÁ‚Å’u‚¢‚½‚ç‘O‚Ì‚ÍÁ‚¦‚é‚悤‚É‚µ‚½
+ Œ‹¥ó‘Ô‚ÆÔƒGƒ‚ó‘Ô‚ð’ljÁ
+ ƒOƒ‰ƒtƒBƒeƒB‚Íó‘ÔˆÙíŠJŽnŽž‚ɃXƒLƒ‹ƒ†ƒjƒbƒg‚ðÝ’u‚·‚é‚悤‚É‚µ‚½
+ ƒxƒiƒ€ƒXƒvƒ‰ƒbƒVƒƒ[‚Í“Á‚ɉ½‚à’ljÁ‚Í‚È‚µ
+ Ž©”š‚͉r¥ƒpƒPƒbƒg‚ð‚±‚±‚Å‘—‚é‚悤‚É‚µ‚½
+ C skill_status_change_clear()
+ opt3‚̈—‚ð’ljÁ
+ C skill_unit_timer_sub()
+ ƒ[ƒvƒ|[ƒ^ƒ‹”­“®‘O‚ªŽžŠÔØ‚ê‚É‚È‚é‚Æ‚«‚ÉŒ©‚½–Ú‚ð•ÏX‚µ‚Ä–{ŽI‚̂悤‚ÉŒø‰Ê‰¹‚ªo‚é‚悤‚É‚µ‚½
+ ƒuƒ‰ƒXƒgƒ}ƒCƒ“ˆÈŠO‚Ìã©‚ÍŽžŠÔØ‚ê‚Åã©‚É–ß‚é‚悤‚É‚µ‚½
+ C skill.h
+ ó‘ÔˆÙí‚ɃXƒLƒ‹–¼‚ð‚¢‚­‚‚©‚‚¯‚½‚èAV‹K‚Ìó‘ÔˆÙí‚ð‘‚₵‚½
+ C storage.c
+ A storage_db_final()
+ A guild_storage_db_final()
+ C do_final_storage()
+ I—¹Žž‚Ƀƒ‚ƒŠ‚ðŠJ•ú‚·‚é‚悤‚É‚µ‚½
+ C trade.c
+ C trade_tradeadditem()
+ C trade_tradecommit()
+ itemdb_isdropable()‚ÅŒðŠ·‚Å‚«‚È‚¢ƒAƒCƒeƒ€‚ð”»’è‚·‚é‚悤‚É‚µ‚½
+ C vending.c
+ vending_purchasereq()
+ ‹àŠzŒvŽZ‚ðdouble‚Å‚·‚é‚悤‚É‚µ‚Äint‚ÅŒ…‚ ‚ӂꂵ‚È‚¢‚悤‚É‚µ‚½
+
+--------------------
+//1045 by TEILU
+
+EƒXƒeƒB[ƒ‹AƒXƒeƒB[ƒ‹ƒRƒCƒ“AƒXƒiƒbƒ`ƒƒ[‚ÌŽ¸”sƒƒbƒZ[ƒW‚ª
+ ƒŒƒxƒ‹‚ª‚P`‚X‚ÌŽž‚É•Ï‚¾‚Á‚½‚Ì‚ÅC³B
+ (map/)
+ skill.c
+
+E¸˜B‚̉”ۂðî•ñƒTƒCƒg‚ðŒ³‚É‚c‚a‚ÉÝ’èBi“ª‘•”õ‚Írusi‚³‚ñ쬕ª‚ðŽg—pj
+ (db/)
+ item_db.txt
+
+Eƒtƒ@ƒCƒA[ƒEƒH[ƒ‹‚ª§ŒÀ”‚ð’´‚¦‚½‚Æ‚«‚ɃXƒLƒ‹Žg—pŽ¸”s‚ª
+ o‚éƒ^ƒCƒ~ƒ“ƒO‚ð•ÏXB
+ (map/)
+ skill.c
+
+EƒAƒuƒ‰ƒJƒ^ƒuƒ‰ê—pƒXƒLƒ‹‚ðgm_all_skillݒ莞‚É•\Ž¦‚Å‚«‚é‚悤‚É•ÏXB
+ battle_athena.conf‚Ìgm_all_skill_add_abra‚Éyes‚ðÝ’è‚·‚ê‚Î
+ ƒXƒLƒ‹ƒŠƒXƒg‚É•\Ž¦‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚·B
+ (conf/)
+ battle_athena.conf
+ (db/)
+ skill_require_db.txt
+ (map/)
+ battle.c
+ battle.h
+ pc.c
+
+--------------------
+//1044 by TEILU
+
+E1042‚Å@itemidentify‚ÌŒ ŒÀ‚ÌÝ’è‚ð–Y‚ê‚Ä‚¢‚½‚̂ŒljÁB
+ (conf/)
+ atcommand_athena.conf
+
+EƒXƒeƒB[ƒ‹AƒXƒeƒB[ƒ‹ƒRƒCƒ“AƒXƒiƒbƒ`ƒƒ[‚ÌŽ¸”sŽž‚É
+ Ž¸”sƒƒbƒZ[ƒW‚ð•\Ž¦‚·‚é‚悤‚É•ÏXB
+ (map/)
+ skill.c
+
+EƒAƒCƒeƒ€‚c‚a‚ɸ˜B‰Â”Ûƒtƒ‰ƒO‚̃Jƒ‰ƒ€‚ð’ljÁ
+ ¸˜B‚̉”ۂð‚c‚a‚ðŽQÆ‚·‚é‚悤‚ÉC³
+ ¦‚Æ‚è‚ ‚¦‚¸’†’iA‰º’iA’†‰º’i‚Ì“ª‘•”õ‚ƃAƒNƒZƒTƒŠˆÈŠO‚Ì
+ ‘•”õ•i‚Í‚·‚ׂĸ˜B‰Â‚ÌÝ’è‚Å‚c‚a‚ðì‚è‚Ü‚µ‚½B
+ ‚c‚a‚ÍC³‚ª•K—v‚É‚È‚è‚Ü‚·B
+ (db/)
+ item_db.txt
+ (map/)
+ itemdb.c
+ itemdb.h
+ script.c
+
+--------------------
+//1043 by dusk
+EdocƒtƒHƒ‹ƒ_EconfƒtƒHƒ‹ƒ_“à‚Ìhelp.txt‚É1042(TEILU‚³‚ñ)‚Ìà–¾’ljÁ
+ @itemidentify‚Ìà–¾‚Í‚V‚Qs–Ú‚Ì@itemreset‚̉º‚ÉB
+
+EValkyrie Realms 5 (‰Eã)‚ÌŠø‚ÌC³
+ Valkyrie Realms 5 (‰Eã)‚ÌŠø‚ðŒ©‚é‚Æ–¢Žæ“¾ó‘ÔƒRƒƒ“ƒg‚΂Á‚©‚èo‚Ä‚¢‚½‚Ì‚ð
+ ‚¿‚á‚ñ‚ÆŠm”F‚Å‚«‚é‚悤‚ÉB
+ ¦ Valkyrie Realms‚ÌŠeÔ‚É–ß‚éŠø‚Ƃ͈Ⴂ‚Ü‚·B
+ prtg_cas05.txt“à‚̃Mƒ‹ƒhƒ_ƒ“ƒWƒ‡ƒ“‚É“ü‚郌ƒo[ˆÈŠO‚Ì
+ getcastledata "prtg_cas05.gat",1,@GIDp5;‚ð
+ set @GIDp5,getcastledata("prtg_cas05.gat",1);‚ÉC³B
+
+--------------------
+//1042 by TEILU
+
+E@healƒRƒ}ƒ“ƒh‚ɉ½‚à“n‚³‚È‚¢‚ÆŠ®‘S‰ñ•œ‚·‚é‚悤‚É•ÏXB
+ (map/)
+ atcommand.c
+
+E@itemitemidentifyƒRƒ}ƒ“ƒh‚̒ljÁ
+ –¢ŠÓ’è‚ÌŠŽƒAƒCƒeƒ€‚ð‘S‚ĊӒ肵‚Ü‚·B
+ (conf/)
+ msg_athena.conf
+ (map/)
+ atcommand.c
+ atcommand.h
+
+--------------------
+//1041 by mare
+ FIX NPC Script Command - buildin_getgdskilllv()
+ Add NPC Sctipt Command - buildin_agitcheck()
+ (script/npc/job/)
+ npc_job_wizard.txt
+ ƒ‰ƒEƒŒƒ‹‚³‚ñ‚̑䎌Aƒmƒr‚ƃvƒŠ‚Ìꇂ̕ª’ljÁ
+-------------------
+//1040 by ŒÓ’±—–
+
+EƒT[ƒo[ŠÔÚ‘±‚̃pƒPƒbƒg•\’ljÁ
+ (doc/)
+ serverlink_packet.txt
+ inter<->map ˆÈŠO‚̃T[ƒo[ŠÔÚ‘±‚̃pƒPƒbƒg•\
+
+EŽd—lƒXƒŒ‚Ì Login_ID2 ŠÖŒW‚Å‚²‚ɂ傲‚É‚å
+EƒT[ƒo[ŠÔÚ‘±‚̃pƒPƒbƒgˆê•”•ÏX
+ (login/)
+ login.c
+ auth_fifo ‚É ip ƒƒ“ƒo’ljÁ
+ ƒpƒPƒbƒg•ÏX‚É”º‚¤•ÏX‘¼
+ (char/)
+ char.c
+ auth_fifo ‚É login_id2, ip ƒƒ“ƒo’ljÁ
+ ƒpƒPƒbƒg•ÏX‚É”º‚¤•ÏX‘¼
+ (map/)
+ chrif.c
+ chrif_authok()’ljÁ
+ ƒpƒPƒbƒg•ÏX‚É”º‚¤•ÏX‘¼
+
+EŽ©“®Ä‹N“®ƒXƒNƒŠƒvƒg start ‚ɃRƒƒ“ƒg‚ÅŠÈ’P‚Èà–¾’ljÁ
+ start
+ ƒRƒƒ“ƒg’ljÁ
+
+--------------------
+//1039 by Ni+S
+ EƒMƒ‹ƒhŠÖŒW‚̃XƒNƒŠƒvƒg
+ Š—LŽÒ‚Ì‹‚È‚¢ƒAƒWƒg‚©‚çAƒMƒ‹ƒh‚ÉŠ‘®‚µ‚Ä‚È‚¢ƒLƒƒƒ‰‚È‚ç
+ ƒMƒ‹ƒhƒ_ƒ“ƒWƒ‡ƒ“‚É“ü‚ê‚Ä‚µ‚Ü‚¤‚Æ‚¢‚¤•s‹ï‡‚ª‚ ‚è‚Ü‚µ‚½
+
+ ‚±‚ê‚ÍAŠ—LŽÒ‚Ì‹‚È‚¢ƒAƒWƒg‚Ì’l‚ª0‚Å‚ ‚èA
+ getcharid(2)‚ŃMƒ‹ƒhID‚ð•Ô‚·‚Ì‚Å‚·‚ªA
+ ƒMƒ‹ƒh‚ÉŠ‘®‚µ‚Ä‚¢‚È‚¢ƒLƒƒƒ‰‚Ígetcharid(2)‚Å0‚ð•Ô‚·ˆ×A
+ ’l‚ªˆê’v‚µ‚Ä‚µ‚Ü‚¢‹N‚±‚Á‚Ä‚¢‚½Œ»Û‚Å‚µ‚½
+ –¢Š‘®ƒLƒƒƒ‰‚ª“ü‚ê‚È‚¢‚悤‚ÉC³‚µ‚Ü‚µ‚½
+
+ Eƒtƒ@[ƒ}ƒV[/ƒ|[ƒVƒ‡ƒ“ì¬DB
+ ƒŒƒbƒhƒXƒŠƒ€ƒ|[ƒVƒ‡ƒ“
+ ƒCƒGƒ[ƒXƒŠƒ€ƒ|[ƒVƒ‡ƒ“
+ ƒzƒƒCƒgƒXƒŠƒ€ƒ|[ƒVƒ‡ƒ“
+ ‚ÌÞ—¿‚ðA‹ó‚̃|[ƒVƒ‡ƒ“•r‚©‚玎Œ±ŠÇ‚ÉC³
+
+--------------------
+//1038 by Plala
+E“]ENPCŠÖ˜A‚Ìd‘å‚ȃoƒOC³
+ (script/npc/job)
+ npc_job_aco.txt C³
+ npc_job_merchant.txt C³
+ npc_job_thief.txt C³
+
+ Eã‹LNPC‚Å“r’†‚܂ŃNƒGƒXƒg‚ði‚ß‚Ä‘¼‚ÌE‚É“]E‚·‚é‚ÆA
+ Ä‚Ñ“]E‰Â”\‚¾‚Á‚½“_‚ðC³‚µ‚Ü‚µ‚½
+
+
+--------------------
+//1037 by ŒÓ’±—–
+
+** FOR ENGLISH DEVELOPERS **
+DO NOT UPLOAD IF YOU DON'T USE JAPANESE ENCODE (SHIFT-JIS) !
+WHY WE(JAPANESE) REPAIR ERROR CHARACTER AFTER EVERY YOUR UPLOADING ?
+BREAKING IS EASY, REPAIRING IS VERY DIFFICULT !
+
+** ‰pŒêŒ—‚ÌŠJ”­ŽÒ‚Ì•û‚Ö(“ú–{Œê–ó) **
+“ú–{ŒêƒGƒ“ƒR[ƒh(ƒVƒtƒgJIS)‚ðŽg‚¤‹C‚ª–³‚¢‚È‚çƒAƒbƒvƒ[ƒh‚µ‚È‚¢‚Ä‚­‚¾‚³‚¢I
+‚È‚º‰äXi“ú–{lj‚ª‚ ‚È‚½•û‚̃Aƒbƒvƒ[ƒh‚Ì‚½‚Ñ‚É•¶Žš‰»‚¯‚𒼂³‚È‚¯‚ê‚΂Ȃç‚È‚¢‚ñ‚Å‚·‚©H
+‰ó‚·‚Ì‚ÍŠÈ’P‚Å‚·‚ªA’¼‚·‚Ì‚Í‚Æ‚Ä‚à“‚¢‚ñ‚Å‚·I
+
+E•¶Žš‰»‚¯‚𪫂ÅC³
+ (map/)
+ script.c
+
+Eladmin‚ªPOSIX•K{‚ÉBDigest::MD5‚ª–³‚­‚Ä‚àŽÀs‚Å‚«‚é‚悤‚ÉC³
+Eserverstatus.cgi‚ÅANet::Ping‚ª–³‚­‚Ä‚àŽÀs‚Å‚«‚é‚悤‚ÉC³
+ (bin/tool/)
+ ladmin
+ (bin/tool/cgi/)
+ serverstatus.cgi
+
+Escript_ref‚Å”²‚¯‚Ä‚é‚à‚Ì‚Å‚í‚©‚é‚à‚Ì‚ðC³
+ ‰½ŒÌ‚©script_ref‚©‚甲‚¯‚Ä‚é‚à‚Ì(getarg‚È‚Ç)‚̈ꕔ‚ðĂђljÁ
+ ** ƒAƒbƒvƒ[ƒh‚·‚é‚Æ‚«‚ÍÅVƒpƒbƒ`‚©‚ç‚Ì·•ª‚ðƒAƒbƒvƒ[ƒh‚µ‚Ü‚µ‚傤 **
+ (doc/)
+ script_ref.txt
+
+Eaccount_making.txtC³
+ ladminƒXƒNƒŠƒvƒg‚̃pƒX
+ (doc/)
+ accoun_tmaking.txt
+
+--------------------
+//1036 by Michael
+E’ljÁ Script Command:
+ getequipid(EquipPos); EquipPos: 1-10
+ gettimetick(Type); Type: 0 SystemTick, 1 TimeSecondTick(0-86399)
+ gettime(Type); Type: 1 Sec, 2 Min, 3 Hour, 4 Weekday, 5, Monthday, 6 Month, 7 Year
+ gettimestr("TimeFMT", Len); TimeFMT: Time format strinf / Len: String Length
+
+ (map/)
+ script.c
+ buildin_getequipid(); ’ljÁ
+ buildin_gettimetick(); ’ljÁ
+ buildin_gettime(); ’ljÁ
+ buildin_gettimestr(); ’ljÁ
+
+--------------------
+//1035 by Michael
+E’ljÁ GVG Script NPC edit from Aegis NPC(Chinese-big5 version), Please someone translate to Japanese.
+EC³ NPC Script Command - buildin_getgdskilllv()
+ getgdskilllv(Guild_ID, Skill_ID);
+
+ (map/)
+ script.c
+ buildin_getgdskilllv() C³
+
+--------------------
+//1034 by (Pepermint)
+ FIX NPC Script Command - buildin_getgdskilllv()
+ Add NPC Sctipt Command - buildin_agitcheck()
+ (map/)
+ script.c
+ buildin_getgdskilllv() C³
+ buildin_agitcheck() ’ljÁ
+
+--------------------
+//1033 by Michael
+E’ljÁ NPC Script Command - buildin_getgdskilllv()
+ getgdskilllv(Guild_ID, Skill_ID);
+ skill_id = 1:GD_APPROVAL,2:GD_KAFRACONTACT,3:GD_GUARDIANRESEARCH,4:GD_CHARISMA,5:GD_EXTENSION
+
+ (map/)
+ script.c
+ buildin_getgdskilllv() ’ljÁ
+
+--------------------
+//1032 by (“Ê)
+E1031‚ʼn½ŒÌ‚©íœ‚³‚ê‚Ä‚¢‚½buildin_getitemname()‚𕜊ˆ
+EƒoƒOƒXƒŒ‚È‚Ç‚Éo‚½C³‚𔽉f
+E‚»‚Ì‘¼×‚©‚¢C³
+
+ (map/)
+ clif.c
+ clif_disp_onlyself() NULLƒ`ƒFƒbƒN’ljÁ
+ map.c
+ map_nick2sd() nick‚ªNULL‚¾‚Æ‚·‚®NULL‚ð•Ô‚·‚悤‚É•ÏX
+ mob.c
+ mob_setdelayspawn() NULLƒ`ƒFƒbƒN•ÏX
+ mob_delete() C³
+ npc.c
+ npc_parse_warp() C³
+ script.c
+ buildin_getitemname() •œŠˆ
+
+--------------------
+//1031 by huge
+ENPC‚Ìscript‚ÉAmakepet‚ð’ljÁB
+ makepet —‘ID; ‚ÅAƒyƒbƒg‚ð쬂µ‚Ü‚·B
+ENPC‚Ìscript‚ÉAgetexp‚ð’ljÁB
+ getexp Base,Job; ‚ÅA‚»‚ꂼ‚ê‚ÌŒoŒ±’l‚ð‘‚₵‚Ü‚·B
+Eƒyƒbƒg‚Ì—‘‚ðNPC‚Ìdelitem‚ÅÁ‚µ‚½‚èshop‚Å”„‚Á‚½ŽžAƒyƒbƒgƒZ[ƒuƒf[ƒ^‚©‚ç휂·‚é‚悤C³B
+EƒfƒBƒ{[ƒVƒ‡ƒ“¬Œ÷ðŒC³B(–¢Šm”F)
+EŒoŒ±’l•\Ž¦‚ð‰Â”\‚É‚µ‚Ä‚Ý‚Ü‚µ‚½Bconf‚É‚Äݒ肵‚Ä‚­‚¾‚³‚¢B
+
+ (conf/)
+ battle_athena.conf C³
+ (doc/)
+ conf_ref.txt C³
+ script_ref.txt C³
+ (map/)
+ battle.c
+ battle.h
+ disp_experience ’ljÁ
+ clif.c
+ clif.h
+ clif_disp_onlyself() ’ljÁ
+ pc.c
+ pc_gainexp() C³
+ script.c
+ buildin_delitem() C³
+ buildin_makepet() ’ljÁ
+ buildin_getexp() ’ljÁ
+ npc.c
+ #include C³
+ npc_selllist() C³
+ skill.c
+ skill_castend_nodamage_id() C³
+
+
+--------------------
+//1030 by (“Ê)
+Emap_athena.conf‚ÉV¥“‡ƒUƒƒC‚ðƒRƒƒ“ƒgƒAƒEƒg‚µ‚ĒljÁ
+EƒNƒ[ƒ“ƒXƒLƒ‹‚ÅŠo‚¦‚½ƒXƒLƒ‹‚ðŽ©“®ƒZ[ƒu‚²‚Æ‚É–Y‚ê‚Ä‚¢‚½‚Ì‚Å‚Æ‚è‚ ‚¦‚¸ƒƒOƒIƒtŽž‚É‚Ì‚Ý–Y‚ê‚é‚悤‚É•ÏX‚µ‚½‚‚à‚è
+Emobskill_castend_pos‚Ì–³ŠQnullpoƒ`ƒFƒbƒN‚ð•ÏX
+EEmotion‚Ìݒ肪‚È‚¢Mob‚ªƒXƒLƒ‹‚ðŽg—p‚·‚é‚Æ‚«‚É/!‚ðo‚µ‚Ä‚¢‚½‚Ì‚ðC³
+EƒoƒOƒXƒŒ‚É“Š‚°‚½trade.c‚ð“Y•tB‚Æ‚è‚ ‚¦‚¸‘ŠŽè‚ªŠŽ‚Å‚«‚éŽí—Þ‚ÌŒÀŠE‚ð’´‚¦‚½ê‡‚Í“n‚³‚¸‚ÉŒ³‚É–ß‚·‚悤‚É•ÏX
+
+ (conf/)
+ map_athena.conf ƒUƒƒC’ljÁ
+ (doc/)
+ client_packet.txt ƒpƒPƒbƒg’·‚ÌXV
+ (map/)
+ map.c
+ map_quit() I—¹Žž‚ɃNƒ[ƒ“ƒXƒLƒ‹‚ÅŠo‚¦‚½ƒXƒLƒ‹‚ð–Y‚ê‚é‚悤‚É•ÏX
+ mob.c
+ mobskill_castend_pos() nullpoƒ`ƒFƒbƒN•ÏX
+ mob_readskilldb() C³
+ pc.c
+ pc_makesavestatus() ƒNƒ[ƒ“ƒXƒLƒ‹‚ð–Y‚ê‚é‚Ì‚ðmap_quit‚É”C‚¹‚½
+ trade.c
+ trade_tradecommit() ŠŽ‚Å‚«‚éŽí—ÞˆÈã‚ðŽæˆø‚µ‚½ê‡‚ɃAƒCƒeƒ€‚ªÁ‚¦‚È‚¢‚悤‚É
+
+--------------------
+//1029 by (“Ê)
+E20040619RagexeHC_jp.rgz‚Ì0x204‚Æ0x20bƒpƒPƒbƒg‚ɑΉž
+Echar‚Ælogin‚à’m‚ç‚È‚¢ƒpƒPƒbƒg‚ª—ˆ‚½‚çƒpƒPƒbƒgƒ_ƒ“ƒv‚ðo—Í‚·‚é‚悤‚Éclif.c‚©‚çƒRƒsƒy
+
+ (doc/)
+ client_packet.txt VƒpƒPƒbƒg’ljÁ
+ (char/)
+ char.c
+ parse_char() 0x20b‘Ήž
+ (login/)
+ login.c
+ parse_login() 0x204‘Ήž
+
+--------------------
+//1028 by (“Ê)
+EƒEƒ“ƒoƒ‰ˆÈ~AMob‚ªƒXƒLƒ‹‚ðŽg—p‚·‚é‚Æ‚«‚ɃGƒ‚[ƒVƒ‡ƒ“‚ðo‚·‚悤‚É‚È‚Á‚½‚Ì‚ÅAmob_skill_db‚ðŠg’£
+ ƒTƒ“ƒvƒ‹‚ŃI[ƒNƒEƒH[ƒŠƒA[‚ª‹i‰Œ‚·‚é‚Æu/cv‚ðo‚·‚̂ƃI[ƒNƒŒƒfƒB‚ª‘¬“x‚ðŽg‚¤‚Æu/‚¿‚ãv‚ðo‚µ‚Ü‚·
+EƒAƒCƒeƒ€682,683‚ðŽg—p‚·‚é‚Æ30•bŠÔATK‚âMATK‚ª‘‚¦‚é‚炵‚¢‚Ì‚Å‚»‚ê‚Á‚Û‚­
+Ejob_db2.txt‚É“ä‚Ìs‚ª2s‚ ‚Á‚½‚Ì‚ðíœ
+E”͈͖‚–@‚ȂǂŃXƒLƒ‹ƒ†ƒjƒbƒg‘ŠŽè‚ɃXƒe[ƒ^ƒX•ÏX‚ð‚©‚¯‚悤‚Æ‚µ‚½ê‡‚Énullpo‚ªo‚½‚Ì‚ðC³
+
+ (db/)
+ const.txt SC_INCATK SC_INCMATK’ljÁ
+ item_db.txt ª‚ð682,683‚ɒljÁ
+ job_db2.txt “ä‚Ì2s‚ðíœ
+ mob_skill_db.txt Emotion’ljÁ
+ (map/)
+ mob.c
+ mobskill_use() ƒXƒLƒ‹Žg—pŽž‚ɃGƒ‚[ƒVƒ‡ƒ“‚ðo‚·‚悤‚É•ÏX
+ mob_readskilldb() Emotion‚ð“Ç‚Ýž‚ނ悤‚É•ÏX
+ mob.h •ÏX
+ pc.c
+ pc_calcstatus() •ÏX
+ skill.c
+
+ skill_status_change_end() •ÏX
+ skill_status_change_start() •ÏX‚ÆNULLƒ`ƒFƒbƒNC³
+ skill.h •ÏX
+
+--------------------
+//1027 by Ni+S
+EgetitemnameŠÖ”’ljÁ
+EƒXƒNƒŠƒvƒg‚ÉgetitemnameŠÖ”‚ð’ljÁ
+Eitemid‚æ‚èAjname‚𕶎š—ñ‚Å•Ô‚µ‚Ü‚·
+EÚ‚µ‚­‚Íscript_ref.txt‚ÅB
+
+ script.c
+ getitemname()’ljÁ
+
+--------------------
+//1026 by (“Ê)
+E1023‚Å“ü‚ê‚Ä‚È‚©‚Á‚½clif.h‚𓯫
+EƒoƒCƒIƒvƒ‰ƒ“ƒg‚ƃXƒtƒBƒA[ƒ}ƒCƒ“‚Åo‚µ‚½mob‚ð“|‚·‚Æmob_timer_delete()‚Ånullpo‚ªo‚é–â‘è‚ð‰ðŒˆ‚µ‚½‚‚à‚è
+EƒoƒO•ñƒXƒŒƒbƒh part6 >>63 Dest‚³‚ñ‚Ìscript.cC³‚ðŽæ‚èž‚Ý
+
+ (map/)
+ clif.h •ÏX
+ map.h •ÏX
+ mob.c
+ mob_changestate() •ÏX
+ skill.c
+ skill_castend_pos2() •ÏX
+ mob_spawn() •ÏX
+ do_init_mob() add_timer_func_list‚Émob_timer_delete‚ª–³‚©‚Á‚½‚̂ŒljÁ‚µ‚Ä‚Ý‚½
+ script.c
+ script_load_mapreg() •ÏX
+
+------------------------
+//1025 by Sel
+Eƒ[ƒhƒiƒCƒg‚̃Wƒ‡ƒu•â³‚ªŠÔˆá‚Á‚Ä‚¢‚½‚Ì‚ðC³
+EƒI[ƒ‰ƒuƒŒ[ƒhŒø‰ÊŽžŠÔ‚ðC³
+EƒI[ƒ‰ƒuƒŒ[ƒh•Ší§ŒÀ‚ð‘fŽèˆÈŠO‘S‚Ä‚ÉC³
+EƒRƒ“ƒZƒ“ƒgƒŒ[ƒVƒ‡ƒ“•Ší§ŒÀ‚𗼎葄‚Ì‚Ý‚©‚ç•ÐŽè‘„+—¼Žè‘„‚ÖC³
+EƒgƒDƒ‹[ƒTƒCƒgŒø‰ÊŽžŠÔ‚ðC³
+
+ (db/)
+ job_db2-2.txt •ÏX
+ skill_cast_db.txt •ÏX
+ skill_require_db.txt •ÏX
+--------------------
+//1024 by mare
+Eƒtƒ@[ƒ}ƒV[Þ—¿‚Ì•ÏXA»‘¢‰Â”\–ò•i‚̒ljÁ
+ 6/8“ú–{ŽI‚É‚«‚½‚à‚Ì‚Æ“¯‚¶‚É‚µ‚Ü‚µ‚½
+
+ (db/)
+ produce_db.txt •ÏX
+
+--------------------
+//1023 by (“Ê)
+E1022‚ŃGƒ“ƒoƒO‚µ‚½npc_parse_script()‚ð–ß‚µ
+EƒXƒpƒCƒ‰ƒ‹ƒsƒA[ƒX‚Ìd—ʒljÁƒ_ƒ[ƒWŒvŽZŽ®‚ð‚¿‚å‚Á‚Æ•ÏX
+E–‚–@—Í‘•‚ÌŒvŽZŽ®‚ð‚¿‚å‚Á‚Æ•ÏX
+Eƒeƒ“ƒVƒ‡ƒ“ƒŠƒ‰ƒbƒNƒX‚ªÀ‚Á‚ÄŽg‚¤‚Ì‚Å‚Í‚È‚­Žg‚¤‚ÆÀ‚é‚Æ‚¢‚¤î•ñ‚ðŒ©‚©‚¯‚½‚Ì‚Å•ÏX
+Eª‚É”º‚¢skill_require‚ÌsittingðŒ”pŽ~
+Eƒo[ƒT[ƒN‚ðGvG‚ÅŽg—p‚Å‚«‚È‚¢‚悤‚É•ÏX
+
+ (db/)
+ skill_cast_db.txt •ÏX
+ skill_require_db.txt •ÏX
+ (doc/)
+ db_ref.txt C³
+ (map/)
+ battle.c
+ battle_calc_pc_weapon_attack() •ÏX
+ clif.c
+ clif_sitting() ’ljÁ
+ clif_parse_ActionRequest() •ÏX
+ npc.c
+ npc_parse_script() C³
+ pc.h •ÏX
+ pc.c
+ pc_calcstatus() •ÏX
+ pc_natural_heal_hp() •ÏX
+ pc_setstand() ’ljÁ
+ skill.c
+ skill_castend_nodamage_id() ƒeƒ“ƒVƒ‡ƒ“ƒŠƒ‰ƒbƒNƒX‚ðŽg‚¤‚ÆÀ‚é‚悤‚É
+ skill_check_condition() ST_SITTING”pŽ~
+ skill_use_id() ƒo[ƒT[ƒN‚ðGvG‚ÅŽg—p‚Å‚«‚È‚¢‚悤‚É
+ skill_status_change_timer() ƒeƒ“ƒVƒ‡ƒ“ƒŠƒ‰ƒbƒNƒX‚Í10•b‚²‚Æ‚ÉSP‚ð12Á”ï
+ skill_status_change_start() ƒeƒ“ƒVƒ‡ƒ“ƒŠƒ‰ƒbƒNƒX•ÏX
+ skill_readdb() sitting”pŽ~
+ skill.h •ÏX
+
+--------------------
+//1022 by (“Ê)
+ENULLƒ`ƒFƒbƒN•ÏX
+Elogin,char,mapI—¹Žž‚ÉŠJ•ú‚³‚ê‚Ä‚¢‚È‚©‚Á‚½ƒƒ‚ƒŠ‚ð”÷–­‚ÉŠJ•ú‚·‚é“w—Í‚ð‚µ‚Ä‚Ý‚½
+EƒXƒpƒmƒr”š—ô”g“®ŽÀ‘•AƒNƒŠƒeƒBƒJƒ‹+50
+EƒXƒpƒmƒrƒ{[ƒiƒX‚ð•ÏXAʼn‚©‚çˆê“x‚àŽ€‚ñ‚Å‚È‚¢JobLv70‚ÉAll+15ABaseLv99‚ÉMHP+2000
+
+ (doc/)
+ client_packet.txt S 01ed’ljÁ
+ (char/)
+ do_final() •ÏX
+ do_init() •ÏX
+ (login/)
+ do_final() ’ljÁ
+ do_init() •ÏX
+ (map/)
+ atcommand.c Dest‚³‚ñ‚Ì•ÏX‚ðŽæ‚èž‚Ý
+ battle.c “¯ã
+ chat.c NULLƒ`ƒFƒbƒN•ÏX
+ chrif.c NULLƒ`ƒFƒbƒN•ÏX
+ clif.c NULLƒ`ƒFƒbƒN•ÏX
+ clif_parse() •ÏX
+ clif_parse_sn_explosionspirits() ’ljÁ
+ clif_parse_sn_doridori() –¼‘O•ÏX
+ guild.c NULLƒ`ƒFƒbƒN•ÏX
+ intif.c NULLƒ`ƒFƒbƒN•ÏX
+ itemdb.c NULLƒ`ƒFƒbƒN•ÏX
+ map.c NULLƒ`ƒFƒbƒN•ÏX
+ do_final() •ÏX
+ mob.c NULLƒ`ƒFƒbƒN•ÏX
+ npc.c NULLƒ`ƒFƒbƒN•ÏX
+ npc_parse_script() bufŠJ•ú–Y‚êH‚ðŠJ•ú
+ party.c NULLƒ`ƒFƒbƒN•ÏX
+ path.c NULLƒ`ƒFƒbƒN•ÏX
+ pc.c NULLƒ`ƒFƒbƒN•ÏX
+ pc_calcstatus() ƒXƒpƒmƒr•ÏX
+ pet.c NULLƒ`ƒFƒbƒN•ÏX
+ storage.c NULLƒ`ƒFƒbƒN•ÏX
+ trade.c NULLƒ`ƒFƒbƒN•ÏX
+ vending.c NULLƒ`ƒFƒbƒN•ÏX
+
+--------------------
+//1021 by Kalen
+Eƒvƒƒ“ƒeƒ‰Š¥¥•iNPC‚ɂă^ƒLƒV[ƒh”Ì”„
+EUmbala‚̃[ƒvŒ©’¼‚µ
+ D2F‚̃[ƒv‚ð–{ŽIŽg—p‚É•ÏXBd•¡ƒ|ƒCƒ“ƒgC³
+EUmbalaNPCC³
+ ƒ‰ƒxƒ‹‚ðŽg—p‚µ‚È‚­‚¢‚¢êŠ‚Í‹É—Ííœ(-)
+ ƒZ[ƒuƒ|ƒCƒ“ƒgC³
+ ƒoƒ“ƒW[ƒWƒƒƒ“ƒv‘ä’ljÁ
+ Š[œ–å’ljÁ
+ •ª‰ðA‡¬ˆ—’ljÁ
+ ƒJƒvƒ‰AˆÄ“à—vˆõ‚ð‚ ‚é‚ׂ«êŠ‚ÖˆÚ“®B
+ ¦ˆê•”Emo‚ɂ‚¢‚ÄAŠà•ðŽ©g‚ª‹t‚ÉŽæ‚èˆá‚¦‚Ä‚¢‚é‚Ý‚½‚¢‚È‚Ì‚Å“ÆŽ©‚Å•Ï‚¦‚Ü‚µ‚½B
+ Œ©‚Ä‚à‚炦‚Εª‚©‚è‚Ü‚·‚ª18‚Æ28‚ð‹t‚É‚·‚é‚ÆNPC‚̉ï˜b“à—e‚ɇ‚¤Emo‚ªo‚½‚Ì‚Å
+ ƒNƒGƒXƒgƒtƒ‰ƒO‚ÌðŒ’ljÁ
+ @‚±‚ê‚É‚æ‚è‚·‚Å‚ÉI‚¦‚Ä‚¢‚éꇂłà“r’†‚É‚È‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B
+EƒXƒpƒmƒr“]ENPC’ljÁ
+ “Ê‚³‚ñ‚̃ƒO‚ðŠî‚É쬂µ‚Ü‚µ‚½B
+EƒAƒ‹ƒPƒ~ƒXƒgƒMƒ‹ƒh‚̃mƒr‚Ìꇂ̑ΉžC³(“Ê‚³‚ñ‚©‚ç‚̃ƒO‚æ‚è)
+EŒ‹¥NPC’ljÁ
+ ‚½‚¾‚µA‚Ü‚¾ƒeƒXƒg’iŠK‚Å‚·B–â‘è“_‚ª‚ ‚邽‚ߌ‹¥•s‰Â”\‚Å‚·B
+ (/script)
+ (/warp)
+ npc_warp_umbala.txt
+ (/npc)
+ (/town)
+ npc_town_umbala.txt
+ npc_town_kafra.txt
+ npc_town_guide.txt
+ npc_town_prontera.txt
+ (/quest)
+ npc_event_marriage.txt(VEƒeƒXƒg)
+ (/job)
+ npc_job_alchemist.txt
+ npc_job_supernovice.txt(V)
+
+--------------------
+//1020 by (“Ê)
+Enullpo‚Ì•ÏX‚ɑΉž‚µ‚Ämap_athena.conf‚ÌÝ’è휕skill.c‘‚«Š·‚¦
+EÀ‚Á‚Ä‚¢‚é‚ÆHPR‚ÆSPR‚ª’Êí‚Ì”¼•ª‚Å”­“®‚µ‚½‚Ì‚ðC³
+EƒXƒpƒmƒr‚ªˆê’èðŒ(ƒNƒ‰ƒCƒAƒ“ƒgˆË‘¶)‚Å/doridori‚·‚é‚ÆSPR‰ñ•œ—Ê‚ª”{‚É‚È‚é‚悤‚É•ÏX
+EŒ‹¥Ž®—p‚̃GƒtƒFƒNƒg‚ðƒXƒNƒŠƒvƒg‚©‚çwedding–½—ß‚Å”­¶‚³‚¹‚邱‚Æ‚ªo—ˆ‚é‚悤‚µ‚½
+E‡‘t‚ðŠJŽn‚µ‚½PC‚͇‘t’†‚ÉI—¹‚Å‚«‚È‚¢‚悤‚É‚µ‚½‚‚à‚è(–¢Šm”F)
+
+ (conf/)
+ map_athena.conf nullpo_checkíœ
+ (doc/)
+ client_packet.txt XV
+ conf_ref.txt nullpo_checkíœ
+ (map/)
+ map.c
+ map_config_read() nullpo_checkíœ
+ map.h “¯ã
+ skill.c NULLƒ`ƒFƒbƒNÄ“x‘“ü‚ê‘Ö‚¦
+ clif.c
+ clif_wedding_effect() ’ljÁ
+ clif_parse_QuitGame() ‡‘tŠJŽnŽÒ‚͇‘t’†‚ÉI—¹‚Å‚«‚È‚¢‚悤‚É•ÏX
+ clif_parse_doridori() ’ljÁ
+ clif_parse() doridori’ljÁ
+ clif.h •ÏX
+ pc.c
+ pc_authok() doridori‰Šú‰»’ljÁ
+ pc_natural_heal_hp() À‚Á‚Ä‚¢‚é‚Æ‚«‚ÌHPRŽžŠÔC³
+ pc_natural_heal_sp() À‚Á‚Ä‚¢‚é‚Æ‚«‚ÌHPRŽžŠÔC³Adoridori’ljÁ
+ script.c
+ buildin_wedding_effect() ’ljÁ
+
+
+--------------------
+//1019 by Dest
+Enullpoƒ‚ƒWƒ…[ƒ‹‚ɃR[ƒfƒBƒ“ƒOƒ~ƒX”­Œ©/C³
+E“¯Avoid‚ÈŠÖ”‚©‚çŒÄ‚΂ꂽŽž‚Ìnullpo_retv_f()‚ð’ljÁ
+E“¯AðŒƒRƒ“ƒpƒCƒ‹‚ɑΉž
+
+ (common/)
+ nullpo.c
+ nullpo_info_core() ƒR[ƒfƒBƒ“ƒOƒ~ƒXC³
+ nullpo.h
+ NULLPO_CHECKƒtƒ‰ƒO‚É‚æ‚éðŒƒRƒ“ƒpƒCƒ‹’ljÁ
+ nullpo_retv_f() ’ljÁ
+
+--------------------
+//1018 by chloe
+EƒEƒ“ƒoƒ‰ƒ‚ƒ“ƒXƒ^[‚ð’ljÁ
+
+ (script/mob/)
+ npc_monster.txt •ÏX
+ ŠeƒEƒ“ƒoƒ‰ƒ}ƒbƒv‚ÉMob”z’u
+ (db/)
+ mob_db.txt •ÏX
+ 1495,STONE_SHOOTER,ƒtƒŒƒCƒ€ƒVƒ…[ƒ^[ C³
+ 1511,AMON_RA,ƒAƒ‚ƒ“ƒ‰[ C³
+
+--------------------
+//1017 by (“Ê)
+EƒoƒO•ñƒXƒŒƒbƒh part6 >>46 Dest‚³‚ñ‚Ìnullpoƒ‚ƒWƒ…[ƒ‹‚ð’ljÁ•void‚ÈŠÖ”‚©‚çŒÄ‚΂ꂽŽž‚Ìnullpo_retv()‚ð’ljÁ(‚Æ‚è‚ ‚¦‚¸skill.c‚ÌNULLƒ`ƒFƒbƒN‚¾‚¯“ü‚ê‘Ö‚¦)
+E“¯>>39 Sel‚³‚ñ‚©‚ç•ñ‚ª‚ ‚Á‚½ƒRƒ“ƒZƒ“ƒgƒŒ[ƒVƒ‡ƒ“‚ðC³
+EŽd—l‚ɂ‚¢‚ÄŒê‚臂¤ƒXƒŒƒbƒh >>33 Kalen‚³‚ñ‚Ìî•ñ‚ðclient_packet.txt‚É”½‰f
+E–{ŽI‘ŠˆáƒXƒŒƒbƒh part3 >>24 M —zqcM6jBw‚³‚ñ‚Ìî•ñ‚ðª
+E“¯>>30 ‚Í‚¿‚³‚ñ‚ÌC³‚𔽉f
+
+ (conf/)
+ map_athena.conf nullpo_check’ljÁ
+ (db/)
+ item_db.txt Œ‹¥Žw—Ö‚ð•Ší-ƒAƒNƒZƒTƒŠ‚É•ÏX•ÅV”Å
+ (doc/)
+ client_packet.txt XV
+ conf_ref.txt nullpo_check’ljÁ
+ (common/)
+ Makefile •ÏX
+ nullpo.c ’ljÁ
+ nullpo.h ’ljÁ
+ (map/)
+ Makefile •ÏX
+ map.c
+ map_config_read() nullpo_check’ljÁ
+ map.h “¯ã
+ skill.c NULLƒ`ƒFƒbƒN‘“ü‚ê‘Ö‚¦
+ skill_status_change_start() ƒRƒ“ƒZƒ“ƒgƒŒ[ƒVƒ‡ƒ“C³
+ skill_castend_nodamage_id() ƒeƒŒƒ|[ƒgC³
+ clif.c
+ clif_skill_setunit() ƒRƒƒ“ƒgC³
+ pc.c
+ pc_calcstatus() ƒRƒ“ƒZƒ“ƒgƒŒ[ƒVƒ‡ƒ“C³
+
+--------------------
+//1016 by ‚ÈB
+EAthenaŽG’kƒXƒŒƒbƒhPart4 42 ‚©‚éŽì‚̃Eƒ“ƒoƒ‰NPC‚ð’ljÁ
+
+ (script/npc/town/)
+ npc_town_umbala.txt’ljÁ
+ ƒCƒxƒ“ƒgƒfƒoƒbƒO—l(230`256s–Ú)‚̓Rƒƒ“ƒgƒAƒEƒg
+ (conf/)
+ map_athena.conf town ‚É npc: script/npc/town/npc_town_umbala.txt ’ljÁ
+
+--------------------
+//1015 by (“Ê)
+EƒŠƒ€[ƒuƒgƒ‰ƒbƒv‚ð–{ŽIŽd—l‚ÆAthenaŽd—l‚Å‘I‚ׂé‚悤‚É‚µ‚½
+EƒXƒpƒmƒr‚ÉAll+10‚·‚éðŒ‚ª—Ç‚­•ª‚©‚ç‚È‚©‚Á‚½‚¯‚Çʼn‚©‚ç+10‚¶‚á‚È‚¢‚Ì‚ÍŠm‚©‚È‚Ì‚Å‚Æ‚è‚ ‚¦‚¸Base99‚ňê“x‚àŽ€‚ñ‚Å‚È‚¯‚ê‚΂Ƃ¢‚¤ðŒ‚É•ÏX
+Eƒ_ƒ“ƒX’†‚É‚«”ò‚΂³‚ê‚Ä‚àƒGƒtƒFƒNƒg‚͈ړ®‚µ‚È‚¢‚»‚¤‚È‚Ì‚Å•ÏX
+E@go 13”÷’²®
+
+
+ (conf/)
+ battle_athena.conf skill_removetrap_type’ljÁ
+ (doc/)
+ client_packet.txt –{ŽI‘ŠˆáƒXƒŒƒbƒh part3 23 M —zqcM6jBw‚³‚ñ‚Ìî•ñ‚ð’ljÁ
+ conf_ref.txt skill_removetrap_type’ljÁ
+ (map/)
+ atcommand.c
+ atcommand_go() ƒEƒ“ƒoƒ‰‚ÌoŒ»ˆÊ’u”÷’²®
+ battle.c
+ battle_config_read() skill_removetrap_type’ljÁ
+ battle.h “¯ã
+ pc.c
+ pc_calcstatus() ƒXƒpƒmƒrAll+10ðŒ•ÏX
+ skill.c
+ skill_blown() ƒ_ƒ“ƒX’†‚Ì‚«”ò‚΂µ‚ðŒ³‚É–ß‚µ‚½
+ skill_castend_nodamage_id() ƒŠƒ€[ƒuƒgƒ‰ƒbƒvŽd—l•ÏX
+
+ --------------------
+//1014 by (Pepermint)
+I fixed again the problem if you put minus sign(-) in front of digits,
+the error comes up when you puchase a item.
+When you put a minus sign(-), the error sign will be changed shrotage of
+amount as original server dose.
+
+I tested with it in ver. 1013, it was working
+
+--------------------
+//1013 by (“Ê)
+EƒT[ƒo[ƒXƒiƒbƒvƒVƒ‡ƒbƒg
+
+--------------------
+//1012 by (“Ê)
+Ehelp.txt‚É‚ ‚é@go‚Ìà–¾‚©‚ç13‚Æ14‚ðíœ
+@‹@”\‚ÍÁ‚¦‚Ä‚È‚¢‚Ì‚ÅŽg‚¦‚邱‚Æ‚ÍŽg‚¦‚Ü‚·‚ªAhelp‚ÉÚ‚¹‚é‚Ì‚ÍjRO‚É—ˆ‚Ä‚©‚ç‚Æ‚¢‚¤‚±‚Æ‚Å
+Ecast_db.txt‚ðskill_cast_db.txt‚ɉü–¼
+E‚‚¢‚Å‚Émake clean‚ÅGNUmakefile‚àÁ‚µ‚Ă݂邱‚Æ‚É‚·‚é
+Eu-0‚³‚ñ‚ÌŒŸØ‚Ȃǂ𑇂µ‚ă_ƒ“ƒXƒ†ƒjƒbƒgŠÖ˜A‚ð•ÏX
+@‰‰‘tEƒ_ƒ“ƒX’†‚̃nƒG‚̓†ƒjƒbƒg•t‚«‚Å”ò‚Ô‚»‚¤‚Å‚·
+@‰‰‘tEƒ_ƒ“ƒX’†‚Ƀ[ƒvƒ|ƒCƒ“ƒg‚Éæ‚Á‚½‚çó‘Ô‚ª‰ðœ‚³‚ê‚é‚悤‚Å‚·
+@‡‘t’†‚ɕЕû‚ªƒnƒG”ò‚Ñ‚µ‚½‚çƒGƒtƒFƒNƒg‚ÍŒ³‚ÌꊂɎc‚èA”ò‚ñ‚¾æ‚ł͇‘tó‘Ô‚ªŒp‘±‚µ‚Ä“®‚¯‚È‚¢•ŽžŠÔ‚²‚Æ‚ÉSPÁ”ï‚·‚é‚悤‚Å‚·
+EPC_DIE_COUNTER‚ªƒXƒNƒŠƒvƒg‚©‚ç•ÏX‚³‚ꂽŽž‚É‚·‚®‚É”½‰f‚³‚ê‚é‚悤‚É•ÏX
+
+ (conf/)
+ help.txt @goà–¾•ÏX
+ (db/)
+ skill_cast_db.txt ‰ü–¼
+ (map/)
+ pc.c
+ pc_setpos() ƒ_ƒ“ƒX’†’f‚̃^ƒCƒ~ƒ“ƒO•ÏX
+ pc_setglobalreg() PC_DIE_COUNTER“Á•Êˆ—’ljÁ
+ skill.c
+ skill_castend_id() NULLƒ`ƒFƒbƒN•ÏX
+ skill_stop_dancing() ƒ}ƒbƒvˆÚ“®‚È‚Ç‚Å‚Ì‹““®‚ð•ÏX
+ skill_readdb() skill_cast_db‚ɉü–¼
+ skill_blown() ”ò‚΂³‚ꂽ‚çƒ_ƒ“ƒXˆÚ“®
+ npc.c
+ npc_touch_areanpc() ƒ[ƒvƒ|ƒCƒ“ƒg‚Éæ‚Á‚½‚çƒ_ƒ“ƒX‰ðœ
+
+--------------------
+//1011 by ƒpƒCƒ“
+Eƒp[ƒeƒB—v¿‚âƒMƒ‹ƒh—v¿‚ðo‚µ‚Ä‚¢‚é‚Æ‚«‚É‘¼‚Ì—v¿‚ð‹‘”Û‚éˆ—‚ð’ljÁ
+@battle_athena.conf‚ÅØ‚è‘Ö‚¦‚ªo—ˆ‚é‚悤‚É‚È‚Á‚Ä‚¢‚Ü‚·B
+Emake clean ‚ÅŽ–‚ª‘«‚è‚é‚Ì‚ÅAobjectdel.bat‚ðÁ‹Ž
+
+ (map)
+ clif.c
+ clif_party_invite()•ÏX(nullpo‚Ì•¶Œ¾ˆá‚Á‚Ä‚Ü‚µ‚½)
+ guild.c
+ guild_invite()•ÏX
+ party.c
+ party_invite()•ÏX
+ battle.c
+ battle_config_read()•ÏX
+ battle.h•ÏX
+ trade.c
+ trade_traderequest()•ÏX
+
+--------------------
+//1010 by (“Ê)
+Egcc 2.95‘Îô
+EƒXƒpƒmƒr‚Ì1“xŽ€‚Ê‚Ü‚ÅAll+10‚ðƒXƒNƒŠƒvƒg•Ï”‚ÅŽÀ‘•‚µ‚Ă݂鎎‚Ý
+ PC_DIE_COUNTER Ž€‚Ê‚Æ+1A“]E‚·‚é‚Æ0‚É‚È‚è‚Ü‚·
+ ª‚̓Lƒƒƒ‰ƒNƒ^‰i‘±‚ȃXƒNƒŠƒvƒg•Ï”‚È‚Ì‚ÅNPC‚ÅŽQÆ•ÄÝ’è‚Æ‚©”äŠr“IŠy‚©‚à
+
+ (map/)
+ chrif.c
+ chrif_divorce() gcc2.95‘Îô
+ skill.c
+ skill_attack() gcc2.95‘Îô
+ skill_unit_move_unit_group() gcc2.95‘Îô
+ map.h map_session_data‚Édie_counter‚ð’ljÁ
+ npc.c
+ npc_click() nullpoƒƒbƒZ[ƒW‚ðC³
+ pc.c
+ pc_setrestartvalue() nullpoƒƒbƒZ[ƒW‚ðC³
+ pc_authok() die_counter‰Šú‰»‚̒ljÁ
+ pc_calcstatus() die_counter=0‚̃Xƒpƒmƒr‚ÍAll+10
+ pc_damage() PC_DIE_COUNTERÝ’è
+ pc_jobchange() PC_DIE_COUNTERÝ’è
+ pc_readparam() gcc2.95‘Îô
+ pc_divorce() gcc2.95‘Îô
+ pc_get_partner() gcc2.95‘Îô
+
+--------------------
+//1009 by ‚Ò‚´‚Ü‚ñ
+Eƒ_ƒ“ƒXˆÚ“®Œy—ʉ»ŽÀ‘•
+@battle_athena.conf‚ÅØ‚è‘Ö‚¦‰Â”\‚Å‚·BÚ‚µ‚­‚Íconf_ref‚ð
+@ƒIƒŠƒWƒiƒ‹ƒAƒbƒvƒf[ƒg‚̈×AƒfƒtƒHƒ‹ƒg‚Å‚Íoff‚É‚µ‚Ä‚¢‚Ü‚·
+@‚Ü‚½A‚±‚ÌŒy—ʉ»ƒ‚[ƒh‚͉ñü•‰‰×‚ð‘å•‚É팸‚Å‚«‚é(‚‚à‚è)‚Å‚·‚ªA
+@‚»‚Ì•ªƒT[ƒo[‘¤‚̈—‚ªd‚½‚­‚È‚è‚Ü‚·(‚Æ‚¢‚Á‚Ä‚à‚ ‚é’ö“x‚ÌCPU‚ª‚ ‚ê‚ΑS‘R–â‘è‚É‚È‚ç‚È‚¢’ö“x‚Ì•‰‰×‚Å‚·‚ª)
+EŒ‹¥ƒVƒXƒeƒ€^Œ‹¥ƒXƒLƒ‹ŽÀ‘•
+@Œ‹¥Žw—Ö‚Ì“Á•Êˆµ‚¢‚ª–¢ŽÀ‘•‚Å‚·(—Ž‚Æ‚¹‚½‚èŽæˆø‚Éo‚¹‚½‚肵‚Ü‚·)
+@—£¥‚Ì‚Ý–¢ƒeƒXƒg‚Å‚·B
+EŒ‹¥—pƒXƒNƒŠƒvƒg(marriageAdivorce)’ljÁB
+@Emarriage <partner_name>
+@@<partner_name>: Œ‹¥‘ŠŽè‚Ì–¼‘O
+@@–ß‚è’l: ¬Œ÷:1@Ž¸”s:0
+@@Œ‹¥ˆ—‚ðs‚¢‚Ü‚·B‘Îۂ͘b‚µŠ|‚¯‚½ƒvƒŒƒCƒ„[‚Æ<partner_name>‚̃Lƒƒƒ‰ƒNƒ^[‚ÅA‚Ç‚¿‚ç‚©‚ªŠù¥‚Ìꇂ͎¸”s‚µ‚Ü‚·B
+@@1‰ñ‚ÌmarriageƒXƒNƒŠƒvƒg‚ÅV˜Y¨V•w‚ÆV•w¨V˜Y‚ÌŒ‹¥ˆ—‚𓯎ž‚És‚¢‚Ü‚·B
+@@‚Ü‚½A‚±‚̃XƒNƒŠƒvƒg‚ÅŒ‹¥Žw—Ö‚Í—^‚¦‚ç‚ê‚Ü‚¹‚ñB
+@Edevorce
+@@ˆø”–³‚µ
+@@–ß‚è’l: ¬Œ÷:1@Ž¸”s:0
+@@—£¥ˆ—‚ðs‚¢‚Ü‚·B‘Îۂ͘b‚µŠ|‚¯‚½ƒvƒŒƒCƒ„[‚ÅA–¢¥‚Ìꇂ͎¸”s‚µ‚Ü‚·B
+@@marriageƒXƒNƒŠƒvƒg‚Æ“¯—l‚Ɍ݂¢‚Ì—£¥ˆ—‚𓯎ž‚És‚¢‚Ü‚·B
+@@‚Ü‚½A‚±‚̃XƒNƒŠƒvƒg‚ª¬Œ÷‚·‚é‚ÆŽ©“®“I‚É‘ÎÛƒLƒƒƒ‰ƒNƒ^[‚ÌŒ‹¥Žw—Ö‚Í”’D‚³‚ê‚Ü‚·B
+
+@‚Ç‚¿‚ç‚̃XƒNƒŠƒvƒg‚̈—‚àA2l‹¤ƒƒOƒCƒ“‚µ‚Ä‚¢‚È‚¢‚ƬŒ÷‚µ‚Ü‚¹‚ñB
+
+ (map/)
+ pc.c
+ pc_ismarried()Apc_marriage()Apc_divorce()Apc_authok()•ÏX
+ pc_get_partner() ’ljÁ
+ map.c
+ map_quit() •ÏX
+ skill.c
+ skill_use_id()Askill_castend_nodamage_id() •ÏX
+ skill_unitsetting()Askill_unit_onlimit() •ÏX
+ script.c
+ buildin_marriage()Abuildin_devorce() ’ljÁ
+ pc.h •ÏX
+ battle.h •ÏX
+
+--------------------
+//1008 by ‚Ò‚´‚Ü‚ñ
+EGMƒZƒbƒVƒ‡ƒ“‰B‚µŽÀ‘•(–¢ƒeƒXƒg)
+@GMƒAƒJƒEƒ“ƒg‚̃Lƒƒƒ‰ƒNƒ^[‚ð@who“™‚Å•\Ž¦‚·‚é‚©‚Ç‚¤‚©Ý’è‚Å‚«‚Ü‚·B
+@Ú‚µ‚­‚Íconf_ref.txt‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
+EŒ‹¥ƒVƒXƒeƒ€‰¼ŽÀ‘•
+@char-mapŠÔ’ÊM‚Ì‚ÝŽÀ‘•‚Å‚·B‚Ü‚¾Œ‹¥‚·‚邱‚Æ‚Ío—ˆ‚Ü‚¹‚ñB
+@®A‚±‚̃pƒbƒ`‚©‚çathena.txt‚̃o[ƒWƒ‡ƒ“‚ª•Ï‚í‚è‚Ü‚·B
+@ƒf[ƒ^‚̌݊·«‚Í•Û‚Á‚½‚‚à‚è‚Å‚·‚ªA”O‚̈׃oƒbƒNƒAƒbƒv‚ðŽæ‚Á‚Ä‚¨‚­Ž–‚ð‹­‚­„§‚µ‚Ü‚·B
+
+ (map/)
+ clif.c
+ clif_countusers() •ÏX
+ battle.c
+ battle_config_read() •ÏX
+ atcommand.c
+ atcommand_who() •ÏX
+ pc.c
+ pc_ismarried()Apc_marriage()Apc_divorce() ’ljÁ
+ chrif.c
+ chrif_divorce() ’ljÁ
+ chrif_parse() •ÏX
+ (char/)
+ char.c
+ char_divorce() ’ljÁ
+ char_delete()Ammo_char_fromstr()Ammo_char_tostr() •ÏX
+
+--------------------
+//1007 by (“Ê)
+ENULLƒ`ƒFƒbƒN‚ÌŒ©’¼‚µ
+
+ (map/)
+ clif.c
+ clif_send() •ÏX
+ skill.c
+ skill_delunit() •ÏX
+
+--------------------
+//1006 by (ruhu)
+¥@go‚É—Œ—z‚ƃjƒtƒ‹ƒwƒCƒ€’ljÁ
+
+ (conf/)
+ help.txt ƒjƒtƒ‹ƒwƒCƒ€A—Œ—z’ljÁ
+ (map/)
+ atcommand.c
+ atcommand go() ƒjƒtƒ‹ƒwƒCƒ€A—Œ—z’ljÁ
+--------------------
+//1005 by (“Ê)
+ENULLƒ`ƒFƒbƒN‚ÌŒ©’¼‚µ‚ƒljÁA‘å—Ê‚É•ÏX‚µ‚½‚Ì‚Å–â‘肪o‚é‰Â”\«‚ª‘å‚Å‚·
+EƒEƒ“ƒoƒ‰•ªŠ„ƒpƒbƒ`‚ª”z•z‚³‚ꂽ‚Ì‚Å@go 12‚ɃEƒ“ƒoƒ‰‚ð’ljÁ
+Eƒ[ƒhƒiƒCƒg ƒo[ƒT[ƒN‚ð‚¿‚å‚Á‚Æ‚»‚ê‚Á‚Û‚­(ASPD‘‰Á‚È‚Ç‚Í–¢ŽÀ‘•)
+EƒNƒ‰ƒEƒ“¥ƒWƒvƒV[ ŒŽ–¾‚è‚Ìò‚É—Ž‚¿‚é‰Ô‚Ñ‚ç‚ÌŽg—pðŒ‚ð‡‘t‚Æ“¯‚¶‚É•ÏX(Œø‰Ê“™‚Í–¢ŽÀ‘•)
+EƒuƒŒƒbƒVƒ“ƒO‚ª–{ŽI‚ł̓Xƒe[ƒ^ƒXƒAƒbƒv¨ƒGƒtƒFƒNƒg‚¾‚Á‚½‚Ì‚Å‚»‚̂悤‚É•ÏX
+E–{ŽI‘ŠˆáƒXƒŒƒbƒh part2 >>145 zzz‚³‚ñ‚Ì•ñ‚𔽉f
+E“¯ƒXƒŒ >>143 plala‚³‚ñ‚Ì•ñ‚𔽉f
+
+ (db/)
+ skill_require_db.txt •ÏX
+ (conf/)
+ help.txt ƒEƒ“ƒoƒ‰’ljÁ
+ map_athena.conf ƒEƒ“ƒoƒ‰ŠÖ˜A‚̃Rƒƒ“ƒgƒAƒEƒg‚ð‰ðœ
+ (map/)
+ atcommand.c NULLƒ`ƒFƒbƒN‹­‰»
+ atcommand() @mapmove‚È‚Ç‚Å—Ž‚¿‚é–â‘è‚ðC³
+ atcommand_go() ƒEƒ“ƒoƒ‰’ljÁ
+ battle.c NULLƒ`ƒFƒbƒN‹­‰»
+ battle_calc_mob_weapon_attack() ƒo[ƒT[ƒNŽžƒ_ƒ[ƒW150%
+ battle_calc_pc_weapon_attack() ƒo[ƒT[ƒNŽžƒ_ƒ[ƒW150%
+ chat.c NULLƒ`ƒFƒbƒN‹­‰»
+ chrif.c NULLƒ`ƒFƒbƒN‹­‰»
+ clif.c NULLƒ`ƒFƒbƒN‹­‰»
+ clif_parse_ActionRequest() ƒ_ƒ“ƒXŽž‚̈—‚ðŽáŠ±•ÏX
+ clif_parse_GlobalMessage() ƒo[ƒT[ƒNŽž‚͉ï˜b‚ªo—ˆ‚È‚¢‚悤‚É•ÏX
+ clif_parse_Wis() ƒo[ƒT[ƒNŽž‚͉ï˜b‚ªo—ˆ‚È‚¢‚悤‚É•ÏX
+ clif_parse_PartyMessage() “¯ã
+ clif_parse_GuildMessage() “¯ã
+ clif_parse_TakeItem() ƒo[ƒT[ƒNŽž‚̓AƒCƒeƒ€‚ðŽæ‚ê‚È‚¢‚悤‚É•ÏX
+ clif_parse_DropItem() ƒo[ƒT[ƒNŽž‚̓AƒCƒeƒ€‚ð—Ž‚Æ‚¹‚È‚¢‚悤‚É•ÏX
+ clif_parse_UseItem() ƒo[ƒT[ƒNŽž‚̓AƒCƒeƒ€‚ðŽg‚¦‚È‚¢‚悤‚É•ÏX
+ clif_parse_EquipItem() ƒo[ƒT[ƒNŽž‚Í‘•”õ‚Å‚«‚È‚¢‚悤‚É•ÏX
+ clif_parse_UnequipItem() ƒo[ƒT[ƒNŽž‚Í‘•”õ‰ðœ‚Å‚«‚È‚¢‚悤‚É•ÏX
+ clif_parse_UseSkillToId() ƒo[ƒT[ƒNŽž‚̓XƒLƒ‹Žg—p‚ª‚Å‚«‚È‚¢‚悤‚É•ÏX
+ clif_parse_UseSkillToPos() “¯ã
+ clif_parse_UseSkillMap() “¯ã
+ guild.c NULLƒ`ƒFƒbƒN‹­‰»
+ intif.c NULLƒ`ƒFƒbƒN‹­‰»
+ itemdb.c NULLƒ`ƒFƒbƒN‹­‰»
+ map.c NULLƒ`ƒFƒbƒN‹­‰»
+ map_quit() ƒo[ƒT[ƒNŽž‚ɃƒOƒAƒEƒg‚·‚é‚ÆHP 100/SP 0‚É‚È‚é‚悤‚É•ÏX
+ mob.c
+ mob_attack() clif_fixmobpos()‚ð‘—M‚µ‚È‚¢‚悤‚É•ÏX
+ mob_timer() NULLƒ`ƒFƒbƒNðŒ‚ð•ÏX
+ mobskill_castend_id() “¯ãAƒo[ƒT[ƒNŽžƒXƒLƒ‹‚ðŽg‚¦‚È‚¢‚悤‚É•ÏX
+ mobskill_castend_pos() ƒo[ƒT[ƒNŽžƒXƒLƒ‹‚ðŽg‚¦‚È‚¢‚悤‚É•ÏX
+ mobskill_use_id() “¯ã
+ mobskill_use_pos() “¯ã
+ npc.c NULLƒ`ƒFƒbƒN‹­‰»
+ party.c NULLƒ`ƒFƒbƒN‹­‰»
+ path.c NULLƒ`ƒFƒbƒN‹­‰»
+ pc.c NULLƒ`ƒFƒbƒN‹­‰»
+ pc_calcstatus() ƒo[ƒT[ƒNŽž‚Í‘¬“xUP•MHP3”{AƒƒfƒBƒeƒCƒeƒBƒI‚ÌSP‰ñ•œ‘‰Á‚ðSPR‚Å‚Í‚È‚­’Êí‰ñ•œ‚É‚©‚©‚é‚悤‚É‚µ‚½
+ pc_heal() ƒo[ƒT[ƒNŽž‚͉ñ•œ‚µ‚È‚¢
+ pc_jobchange() “]E’¼Œã1•à“®‚©‚È‚¢‚Æ•ž‚ÌF‚ª”½‰f‚³‚ê‚È‚©‚Á‚½‚Ì‚ðC³
+ pc_natural_heal_sub() ƒo[ƒT[ƒN’†‚ÍSP‚ªŽ©‘R‰ñ•œ‚µ‚È‚¢‚悤‚É•ÏX(HP‚Í—Ç‚­•ª‚©‚ç‚È‚©‚Á‚½‚̂ʼnñ•œ‚·‚é‚悤‚É‚µ‚Ä‚ ‚é)
+ pet.c NULLƒ`ƒFƒbƒN‹­‰»
+ skill.c
+ skill_castend_nodamage_id() ƒuƒŒƒbƒVƒ“ƒO“™‚̃pƒPƒbƒg‡‚ð•ÏXAƒXƒg[ƒ“ƒJ[ƒX‚ð•sŽ€‚É‚Í–³Œø‚É‚µ‚½
+ skill_castend_map() ‚µ‚‚±‚¢‚­‚ç‚¢‚Ƀo[ƒT[ƒNŽž‚ɃXƒLƒ‹‚ðŽg‚¦‚È‚¢‚悤‚É•ÏX
+ skill_check_condition() “¯ã
+ skill_use_pos() “¯ã
+ skill_use_id() “¯ã•ŒŽ–¾‚è‚Ìò‚É—Ž‚¿‚é‰Ô‚Ñ‚ç’ljÁ
+ skill_status_change_end() ƒo[ƒT[ƒNŽž‚É‚ÍIAƒAƒCƒRƒ“‚ðÁ‹Ž‚·‚é‚悤‚É•ÏX
+ skill_status_change_timer() NULLƒ`ƒFƒbƒNðŒ‚ð•ÏXAŒŽ–¾‚è‚Ìò‚É—Ž‚¿‚é‰Ô‚т玞SPÁ”ïAƒo[ƒT[ƒNŽžHP100ˆÈã‚È‚ç10•b‚ ‚½‚è1%Œ¸‚ç‚·‚悤‚É•ÏX
+ skill_status_change_start() ƒo[ƒT[ƒNŽž‚É‚ÍIAƒAƒCƒRƒ“‚ð•\Ž¦‚·‚é‚悤‚É•ÏX
+ skill_delunit() NULLƒ`ƒFƒbƒNðŒ‚ð•ÏX
+ skill_check_condition_char_sub() ŒŽ–¾‚è‚Ìò‚É—Ž‚¿‚é‰Ô‚Ñ‚ç’ljÁ
+ skill_check_condition_use_sub() “¯ã
+ skill_is_danceskill() “¯ã
+ skill_initunitgroup() “¯ã
+ trade.c NULLƒ`ƒFƒbƒN‹­‰»
+ vending.c NULLƒ`ƒFƒbƒN‹­‰»
+
+--------------------
+//1004 by (“Ê)
+ENULLƒ`ƒFƒbƒN‚ŃGƒ“ƒoƒO‚µ‚Ä‚¢‚½‚Æ‚±‚ë‚ð‚¢‚­‚‚©C³‚Æ‘¼‚ÌNULLƒ`ƒFƒbƒN‹­‰»
+Eskill.c‚Å‚ànullpo‚ð•\Ž¦‚·‚é‚悤‚É•ÏX
+
+ (map/)
+ battle.c
+ battle_damage() NULLƒ`ƒFƒbƒN‹­‰»
+ battle_heal() “¯ã
+ clif.c
+ clif_damage() “¯ã
+ map.c
+ map_addflooritem() NULLƒ`ƒFƒbƒN‹­‰»
+ mob.c
+ mob_once_spawn() —]Œv‚ÈNULLƒ`ƒFƒbƒN‚ðíœ
+ mob_once_spawn_area() “¯ã
+ mob_damage() “¯ã
+ mob_counttargeted() “¯ã
+ mobskill_castend_id() “¯ã
+ mob_summonslave() ƒƒbƒZ[ƒWŠÔˆá‚¢‚ðC³
+ pc.c
+ pc_damage() NULLƒ`ƒFƒbƒN‹­‰»
+ skill.c ‚Ù‚Ú‘S•” NULLŠÖ˜AC³
+
+--------------------
+//1003 by (“Ê)
+EjROƒNƒ‰ƒCƒAƒ“ƒg‚Å/accountŽg—pŽž‚ÉŒq‚ª‚ç‚È‚¢Œ´ˆö‚Ì0x200ƒpƒPƒbƒg–â‘è‚ðC³
+E0x1c9ƒpƒPƒbƒg‚ÌŒŠ–„‚ß‚ðˆø‚«‘±‚«Œp‘±’†
+Eˆêl‚Ź‘̂⇑t‚ðŽg—p‚Å‚«‚éÝ’è(player_skill_partner_check)‚ð’ljÁ
+ ˆêl‚Ň‘t‚ðŽÀs‚µ‚½ê‡‚É‚Í’Êí‚̃_ƒ“ƒX‚Æ‹““®‚ª“¯‚¶‚É‚È‚è‚Ü‚·
+Eƒvƒƒ{ƒbƒN‚Í•sŽ€‚ɑ΂µ‚Ä”­“®‚µ‚È‚¢‚悤‚É•ÏX
+EFW‚Ì‚«”ò‚΂µ”»’è‚ð•ÏX
+EƒfƒŠƒ…[ƒW‚É…ê”»’è‚ð’ljÁA¹…‚ðì‚ê‚é‚Ì‚ðŠm”F
+EƒnƒCƒfƒBƒ“ƒO‚Ì—LŒøŽžŠÔ‚ª³‚µ‚­‹@”\‚·‚é‚悤‚ÉC³
+EƒAƒXƒyƒ‹ƒVƒI‚ð•sŽ€‚ÉŽg—p‚µ‚½ê‡A¹‘®«‚Ì40ƒ_ƒ[ƒW‚ð—^‚¦‚é‚悤‚É•ÏX
+EƒAƒXƒyƒ‹ƒVƒI‚ð•sŽ€ˆÈŠO‚ÌMOB‚ÉŽg—p‚µ‚Ä‚àŒø‰Ê‚ª–³‚¢‚悤‚É•ÏX
+E‡‘tAƒ_ƒ“ƒXA‰‰‘t’†‚ÌŒo‰ßŽžŠÔ‚É‚æ‚éSPÁ”ï‚ðŽÀ‘•
+E•ñ‚Ì‚ ‚Á‚½ƒK[ƒfƒBƒAƒ“‚ªƒMƒ‹ƒh–¢‰Á“üPC‚ðƒ^[ƒQƒbƒg‚µ‚½‚çmap‚ª—Ž‚¿‚é–â‘è‚ÌC³(ƒK[ƒfƒBƒAƒ“ŽÀ‘•“–Žž‚©‚炸‚Á‚Æ—Ž‚¿‚Ä‚½H)
+Emob.cAstorage.c‚Ìnullƒ`ƒFƒbƒN‚ð‹­‰»
+ ƒGƒ‰[‚Å—Ž‚¿‚é‚ׂ«‚Æ‚±‚ë‚ð–³—‚â‚è’Ê툗‚É–ß‚µ‚Ä‚¢‚é‚Ì‚Å‘¼‚Å–â‘肪‚Å‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñ
+ ‚»‚Ìê‡AƒRƒ“ƒ\[ƒ‹‚ÉuŠÖ”–¼ nullpov‚Æ•\Ž¦‚³‚ê‚é‚Ì‚Å•\Ž¦‚³‚ꂽꇂ͕ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·
+ ‚à‚µ‚©‚µ‚½‚ç³í‚Ȉ—‚Å‚à•\Ž¦‚³‚ê‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñ‚ªA‚»‚ÌÛ‚à•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·
+ –{—ˆƒGƒ‰[AŽÀ‚ͳíA‚Ç‚¿‚ç‚É‚µ‚Ä‚à‚±‚ꂪ•\Ž¦‚³‚ê‚é‚̂̓oƒO‚Å‚·
+
+ (conf/)
+ battle_athena.conf player_skill_partner_check’ljÁ
+ (db/)
+ skill_db.txt ƒAƒXƒyƒ‹ƒVƒI‚Ì‘®«‚ð¹‚É•ÏX
+ (doc/)
+ conf_ref.txt player_skill_partner_checkà–¾’ljÁ
+ (login/)
+ login.c
+ parse_login() 0x200ƒpƒPƒbƒg‘Ήž
+ (map/)
+ mob.c NULLƒ`ƒFƒbƒN‚Å‚Ù‚Ú‘S•”
+ storage.c NULLƒ`ƒFƒbƒN‚Å‚Ù‚Ú‘S•”
+ battle.h •ÏX
+ battle.c
+ battle_calc_magic_attack() ƒAƒXƒyƒ‹ƒVƒI‚ð’ljÁAFW‚ð•ÏX
+ battle_config_read() Ý’è’ljÁ
+ clif.c
+ clif_getareachar_skillunit() ’²¸Œ‹‰Ê‚Ì”½‰f
+ clif_skill_setunit() “¯ã
+ [1001‚Æ1002‚ÌŠÔ‚Ì•ÏX“_]
+ skill.c NULLƒ`ƒFƒbƒN‚ð‘òŽR
+ skill_castend_damage_id() ƒAƒXƒyƒ‹ƒVƒI’ljÁ
+ skill_castend_nodamage_id() ƒAƒXƒyƒ‹ƒVƒIAƒvƒƒ{ƒbƒNˆ—•ÏX
+ skill_castend_id() ƒAƒXƒyƒ‹ƒVƒIˆ—•ÏX
+ skill_check_condition_char_sub() player_skill_partner_check‚ɑΉž
+ skill_check_condition_use_sub() “¯ã
+ skill_use_id() “¯ã
+ skill_check_condition() “¯ã•ƒfƒŠƒ…[ƒW‘Ήž
+ skill_status_change_timer() ƒnƒCƒfƒBƒ“ƒOC³Aƒ_ƒ“ƒX‰‰‘t‡‘t’†‚ÌSPÁ”ïŽÀ‘•
+ skill_initunitgroup() ƒ_ƒ“ƒXSPÁ”ï—p•ÏX
+ skill_status_change_start() “¯ã•ƒvƒƒ{ƒbƒN‚ðƒ{ƒX‚ÉŒø‚©‚È‚¢‚悤‚É(‚Å‚àbattle.c‚ÅŽ~‚ß‚Ä‚é‚©‚ç’Ê킱‚±‚Ü‚Å—ˆ‚È‚¢)
+
+--------------------
+//1002 by ‚Ò‚´‚Ü‚ñ
+Eƒ|[ƒ^ƒ‹ƒoƒOC³
+EƒXƒLƒ‹ŠÖŒW‚ÌNullƒ`ƒFƒbƒN‹­‰»(by(“Ê))
+ (map/)
+ skill.c
+ skill_castend_map() C³
+
+--------------------
+//1001 by (“Ê)
+E0x1c9‚Å‚¢‚­‚‚©ƒpƒPƒbƒg‚ðŒ©”ä‚ׂĕω»‚Ì‚È‚¢‚Æ‚±‚ë‚ðŒÅ’è’l‚Å–„‚ßž‚Ý(¡Œãî•ñ‚ªW‚Ü‚é‚Æ•Ï‚í‚é‰Â”\«‘å)
+Eƒ_ƒ“ƒX’†‚ÍSP‚¾‚¯‰ñ•œ‚µ‚È‚¢‚悤‚É•ÏX
+E¹‘Ì‚Å‘Š•û‚ÌSP‚ª10ˆÈ‰º‚¾‚ÆŽg—pŽ¸”s‚É‚µ‚ÄŽg—p‚µ‚½‚çSP‚ð10Œ¸‚炵‚Ä‚Ý‚é(–¢Šm”F)
+E‡‘t‚̃XƒLƒ‹Žg—pƒpƒPƒbƒg‚ðŽáŠ±•ÏX
+
+ (map/)
+ clif.c
+ clif_getareachar_skillunit() 0x1c9‚ÌŒŠ–„‚ߊJŽn
+ clif_skill_setunit() 0x1c9‚ÌŒŠ–„‚ߊJŽn
+ pc.c
+ pc_natural_heal_sub() ƒ_ƒ“ƒX’†‚ÍSP‚̂݉ñ•œ‚µ‚È‚¢‚悤‚É•ÏX
+ skill.c
+ skill_check_condition() •ÏX
+ skill_check_condition_char_sub() ¹‘Ì‚Í‘Š•û‚ÌSPƒ`ƒFƒbƒN‚·‚é‚悤‚É•ÏX
+ skill_check_condition_use_sub() ¹‘Ì‚Í‘Š•û‚ÌSP‚ðŒ¸‚ç‚·‚悤‚É•ÏX
+
+--------------------
+//1000 by ‚Ò‚´‚Ü‚ñ
+E0999‚Ì•ÏXŽæ‚è–ß‚µ
+Eƒgƒ‰ƒbƒv‚ÌŠª‚«ž‚ÝŽÀ‘•
+EƒCƒhƒDƒ“‚Ì—ÑŒç‚ÅNPC‚܂ʼnñ•œ‚µ‚½(‚悤‚ÉŒ©‚¦‚é)–â‘èC³(–¢ƒeƒXƒg)
+Eƒfƒ‚ƒ“ƒXƒgƒŒ[ƒVƒ‡ƒ“‚̃GƒtƒFƒNƒg•ÏX(‚±‚¿‚ç‚É–¾‹L)
+ (map/)
+ skill.c
+ skill_count_target() ’ljÁ
+ skill_unit_onplace()Askill_trap_splash() •ÏX
+--------------------
+//0999 by eAthena Dev Team (Yor's Fixes)
+(login/)
+ added email for accounts
+(char/)
+ added email for character deletion
+--------------------
+//0998 by (“Ê)
+Ebattle.c‚ňø”‚Ì‘¶Ý‚ðŠm”F‚¹‚¸‚É’l‚ðŒ©‚És‚Á‚Ä‚éŠÖ”‚ð‚¢‚­‚‚©C³
+Eƒ_ƒ“ƒX’†‚ÍÀ‚ê‚È‚¢‚悤‚É‚µ‚½(–{ŽI‘ŠˆáƒXƒŒƒbƒh part2 >>114 DoT‚³‚ñ)
+Eƒ_ƒ“ƒX’†‚ÍHPASP‚ª‰ñ•œ‚µ‚È‚¢‚悤‚É•ÏX(“¯ã)
+Eƒ_ƒ“ƒX’†‚Í’ÊíUŒ‚‚Å‚«‚È‚¢‚悤‚É‚µ‚½(–{ŽI‘ŠˆáƒXƒŒƒbƒh part2 >>116 EEE‚³‚ñ)
+E‡‘t’†•Ð•û‚ª—Ž‚¿‚½ê‡AŽc‚Á‚½‚Ù‚¤‚ʼn‰‘t‚ðŒp‘±‚·‚é‚悤‚É‚µ‚½(“¯ã)
+E‡‘t’†‚̓AƒhƒŠƒuˆÈŠO‚Å‚«‚È‚¢‚悤‚É•ÏX(“¯ã)
+E‡‘t”­“®ðŒ‚Ƀ_ƒ“ƒX’†‚¶‚á‚È‚¢•À‚Á‚Ä‚¢‚È‚¢‚ð’ljÁ(–{ŽI‘ŠˆáƒXƒŒƒbƒh part2 >>118 ‚ë‚낳‚ñ)
+Eˆ¢C—…Žg—pŒã‚ÉHP‚à‰ñ•œ‚µ‚È‚©‚Á‚½‚Ì‚ðC³
+
+ (map/)
+ battle.c
+ battle_counttargeted() C³
+ battle_getŒn ‚½‚Ô‚ñ‘S•”C³
+ clif.c
+ clif_parse_WalkToXY() ‡‘t‚Ì”»’f•û–@‚Ì•ÏX
+ clif_parse_ActionRequest() ƒ_ƒ“ƒX’†‚͉£‚ç‚È‚¢À‚ç‚È‚¢‚悤‚É•ÏX
+ map.c
+ map_quit() ƒ_ƒ“ƒX’†’f’ljÁ
+ mob.c
+ mob_damage() skill_stop_dancing‚̈ø”‘‰Á‚É‚æ‚é•ÏX
+ pc.c
+ pc_setpos() “¯ã
+ pc_damage() “¯ã
+ pc_equipitem() “¯ã
+ pc_natural_heal_sub() ƒ_ƒ“ƒX’†‚ÍŽ©‘R‰ñ•œ‚µ‚È‚¢‚悤‚É•ˆ¢C—…Žž‚ÍSP‚̂݉ñ•œ‚µ‚È‚¢‚悤‚É
+ skill.c
+ skill_castend_nodamage_id() skill_stop_dancing‚̈ø”‘‰Á‚É‚æ‚é•ÏX
+ skill_status_change_start() “¯ã
+ skill_check_condition_char_sub() ‘ŠŽè‚ªƒ_ƒ“ƒX’†‚âÀ‚Á‚Ä‚¢‚Ä‚à‡‘t‚Å‚«‚È‚¢‚悤‚É•ÏX
+ skill_check_condition_use_sub() “¯ã
+ skill_use_id() ‡‘t‚Ì”»’f•û–@‚Ì•ÏX•‡‘t’†‚̓AƒhƒŠƒuˆÈŠO‹ÖŽ~‚É
+ skill_status_change_end() ‡‘t‚̃_ƒ“ƒXó‘Ô‰ðœ‚Í‘ŠŽè‚Ìval4‚ð0‚É‚·‚é‚悤‚É‚µ‚½
+ skill_is_danceskill() –ß‚è’l•ÏX
+ skill_stop_dancing() ˆø”‘‰ÁA‡‘t‚ŕЕû‚¾‚¯—Ž‚¿‚½‚Æ‚«‚̈—’ljÁ
+ skill_delunitgroup() ‡‘tŽž‚̃Xƒe[ƒ^ƒX•ÏXˆ—‚ðª‚Ɉڂµ‚½
+ skill_clear_unitgroup() Ž©•ª‚Ìbl->id‚ƃ†ƒjƒbƒgƒOƒ‹[ƒv‚Ìgroup->src_id‚ªˆá‚¤‚Æ‚«‚Í휂µ‚È‚¢‚悤‚É•ÏX
+ skill.h •ÏX
+
+--------------------
+//0997 by (“Ê)
+E“ñl‚Ň‘tAŽOl‚Ź‘Ì‚ðŽÀ‘•
+ ‡‘t ƒo[ƒhEƒ_ƒ“ƒT[‚ª—×Ú‚µ‚½ƒZƒ‹‚É‚¢‚Ä“¯‚¶ƒXƒLƒ‹‚ðŽ‚Á‚Ä‚¢‚鎞‚É”­“®
+ ƒXƒLƒ‹ƒŒƒxƒ‹‚Í—¼ŽÒ‚̃XƒLƒ‹ƒŒƒxƒ‹‚Ì’†ŠÔ
+ –{ŽIŽd—l‚ª•ª‚©‚ç‚È‚¢‚¯‚ǎ΂ߗ×Ú‚àOK
+ ¹‘Ì Žg—pŽÒ‚ÌXŽ²‚Å-1‚Æ+1‚ÌꊂɈêl‚¸‚ƒAƒRƒ‰ƒCƒg‚©ƒvƒŠ[ƒXƒg‚ª‚¢‚鎞‚É”­“®‚·‚é‚ÆŽv‚¤(–¢ƒeƒXƒg)
+ Žg—pŽÒ › ƒAƒRƒvƒŠ œ
+ OK œ›œ
+
+ NG œ
+ ›œ
+Eƒg[ƒL[ƒ{ƒbƒNƒX‚ðŽg‚Á‚ÄÝ’uŽž‚ÉÀ‚Á‚Ä‚¢‚½Žž‚̓XƒLƒ‹Žg—pŽ¸”s‚É‚µ‚Ä‚Ý‚½
+
+ (db/)
+ item_db.txt ‘º³‚ÌŽô‚¢—¦‚ð5%‚É(by e2‚³‚ñ)
+ (map/)
+ skill.c
+ skill_check_condition_char_sub() ’ljÁ
+ skill_check_condition_use_sub() ’ljÁ
+ skill_check_condition() •ÏX
+ skill_use_id() •ÏX
+ skill_initunitgroup() •ÏX
+ skill_delunitgroup() •ÏX
+ clif.c
+ clif_parse_UseSkillToPos() •ÏX
+
+--------------------
+//0996 by (“Ê)
+EƒAƒhƒŠƒu‚Ì5•b§ŒÀ‚ðcast_db.txt‚Ìupkeep_time2‚ŧŒä‚Å‚«‚é‚悤‚É•ÏX
+E‘º³‚ÅŽ©•ª‚ðŽô‚킹‚邽‚ß‚Ébonus2 bAddEff2‚ð’ljÁ
+EŽô‚í‚ê‚Ä‚¢‚ÄI—¹‚Å‚«‚È‚¢Žž‚É‚àu¡‚ÍI—¹‚Å‚«‚Ü‚¹‚ñv‚ª•\Ž¦‚³‚ê‚é‚悤‚É‚µ‚½
+Eƒ_ƒ“ƒXƒGƒtƒFƒNƒg“™ˆÚ“®Žž‚ÉŒø‰Ê‚Ì“K—p”»’f‚ªˆÚ“®‘O‚És‚í‚ê‚Ä‚¢‚½‚Ì‚ðˆÚ“®Œã‚É•ÏX•Žg‚í‚È‚­‚Ä‚¢‚¢•Ï”‚ð”pŽ~
+
+ (db/)
+ cast_db.txt
+ const.txt
+ item_db.txt
+ (doc/)
+ item_bonus.txt
+ (src/)
+ clif.c
+ clif_parse_QuitGame() •ÏX
+ map.h addeff2,arrow_addeff2 ’ljÁ
+ pc.c
+ pc_calcstatus() •ÏX
+ pc_bonus2() •ÏX
+ skill.c
+ skill_additional_effect() •ÏX
+ skill_check_condition() •ÏX
+ skill_unit_move_unit_group() •ÏX
+
+--------------------
+//0995 by (“Ê)
+Ebattle.pet_lootitem‚̃fƒtƒHƒ‹ƒg‚ªyes‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ðC³
+Ebattle.pet_lootitem‚Ì“K—p‚ðforeach‘O‚Å‚â‚é‚悤‚ÉC³
+Eƒyƒbƒg‚̉Šú‰»‚Åpd->lootitem‚ª‚ ‚鎞‚µ‚©‰Šú‰»‚³‚ê‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ðC³
+E—̈悪ˆÚ“®‚µ‚Ä‘ÎÛ‚ª—̈悩‚甲‚¯‚Ä‚àŒø‰Ê‚ª‰ðœ‚³‚ê‚È‚¢–â‘è‚ðC³
+EƒAƒhƒŠƒu‚̓_ƒ“ƒX”­“®‚©‚ç5•bˆÈãŒo‚½‚È‚¢‚ÆŽg—p‚Å‚«‚È‚¢‚悤‚É‚µ‚½
+
+ (map/)
+ pet.c
+ pet_data_init() C³
+ pet_ai_sub_hard() C³
+ pet_ai_sub_hard_lootsearch() C³
+ skill.c
+ skill_blown() •ÏX
+ skill_unit_onlimit() ƒGƒ‰[ƒƒbƒZ[ƒWC³
+ skill_check_condition() •ÏX
+ skill_initunitgroup() sd_data[SC_DANCING].val3‚Égettick()
+ skill_unit_move_unit_group_sub() ’ljÁ
+ skill_unit_move_unit_group() •ÏX
+ skill.h skill_unit_move_unit_group() ˆø”•ÏX
+ battle.c
+ battle_config_read() pet_lootitem=0‚ÉC³
+ pc.c
+ pc_walk() •ÏX
+
+--------------------
+//0994 by huge
+Ebattle.pet_lootitem‚ª“K‰ž‚³‚ê‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ðC³B
+Eƒyƒbƒg‚ɃpƒtƒH[ƒ}ƒ“ƒX‚ð‚³‚¹‚½ŒãA10•bŠÔ‚­‚ç‚¢‚ÍE‚킹‚È‚¢‚悤‚ÉB
+
+ (map/)
+ map.h pet_data‚Élootitem_timer’ljÁB
+ pet.c
+ pet_ai_sub_hard_lootsearch() C³B
+ pet_lootitem_drop() C³B
+
+--------------------
+//0993 by (“Ê)
+Eˆêl‚Ň‘t‚¾‚¯‚LJ‘tƒXƒLƒ‹’†‚Í“®‚¯‚È‚¢‚悤‚É
+EƒAƒ“ƒR[ƒ‹ŽÀ‘•B’¼‘O‚ÉŽg‚Á‚½ƒ_ƒ“ƒXƒXƒLƒ‹‚𔼕ª‚ÌSP‚ÅŽg‚¦‚Ü‚·
+Eƒ_ƒ“ƒX’†‚Ɉړ®‚·‚é‚ƃGƒtƒFƒNƒg‚àˆÚ“®‚·‚é‚悤‚É‚µ‚½
+E–¢ŽÀ‘•‚̃XƒLƒ‹‚ªŽg‚í‚ê‚é‚ÆUnknown skill‚Æ•\Ž¦‚³‚ê‚邱‚Æ‚ª‚ ‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñ
+ESage‚̃LƒƒƒXƒgƒLƒƒƒ“ƒZƒ‹‚ÅŽÀ‚Í‘O‚̃XƒLƒ‹‚ðŠo‚¦‚Ä‚¢‚È‚©‚Á‚½–â‘è‚ÌC³
+
+ (map/)
+ clif.c
+ clif_parse_WalkToXY() •ÏX
+ map.h ƒAƒ“ƒR[ƒ‹—p•Ï”‚̒ljÁ
+ pc.c
+ pc_walk()
+ skill.c
+ skill_blown
+ skill_castend_nodamage_id
+ skill_unitsetting() •ÏX
+ skill_unit_onplace() ã©‚Å“¯‚¶ˆ—‚ð‚µ‚Ä‚¢‚écase‚ð‚Ü‚Æ‚ß‚½
+ skill_unit_onout() Žg‚í‚ê‚Ä‚È‚¢unit2‚ðíœ
+ skill_check_condition() •ÏX
+ skill_use_id
+ skill_initunitgroup() Žg‚Á‚½ƒ_ƒ“ƒXƒXƒLƒ‹‚ð•Ï”‚É“ü‚ê‚é‚悤‚É‚µ‚½
+ skill_unit_move_unit_group() ’ljÁ
+ skill.h •ÏX
+
+--------------------
+//0992 by nokia
+
+map_quit‚ðC³‚µ‚ăƒ‚ƒŠ‚ðŽß•ú‚·‚鎞‰½“x‚à‚ðŽß•ú‚·‚邽‚߃ƒ‚ƒŠ‚̊ԈႢ‚ª‹N‚±‚é–â‘è‚𵂭
+
+ (map/)
+ map.c
+ map_quit()
+
+--------------------
+//0991 by (“Ê)
+Eƒg[ƒL[ƒ{ƒbƒNƒX‚ðŽ©•ª‚ª“¥‚ñ‚Å‚à”­“®‚µ‚È‚¢–{ŽIŽd—l‚É•ÏX
+EƒXƒLƒ‹‰r¥’†‚ƃfƒBƒŒƒC’†‚̓Nƒ‰ƒCƒAƒ“ƒg‚ðI—¹‚Å‚«‚È‚¢‚悤‚É‚µ‚½‚¯‚ÇA“G‚ÉUŒ‚‚³‚ê‚Ä‚¢‚é‚Æ‚«‚ÍI—¹‚Å‚«‚Ü‚·(‚²‚ß‚ñ‚È‚³‚¢‚ÁII)
+
+ (map/)
+ clif.c
+ clif_parse_QuitGame() •ÏX
+ skill.c
+ skill_unitsetting() •ÏX
+
+--------------------
+//0990 by ‚Ò‚´‚Ü‚ñ
+Eˆê•”‚̃gƒ‰ƒbƒv‚ð”͈ÍUŒ‚‚É•ÏXiŠª‚«ž‚Ý‚Í–¢ŽÀ‘•jB
+Emapflag‚Épvp_nocalcrank‚Æpvp_nightmaredrop’ljÁB
+ E<gatname><tab>mapflag<tab>pvp_nocalcrank<tab>dummy
+ @PvP‚É‚æ‚郉ƒ“ƒLƒ“ƒOŒvŽZ‚ð‚µ‚È‚¢‚悤‚É‚µ‚Ü‚·B
+ E<gatname><tab>mapflag<tab>pvp_nightmaredrop<tab><item>,<type>,<per>
+ @PvP‚É‚ÄŽ€–S‚µ‚½ê‡A<per>‚ÌŠm—¦‚ŃAƒCƒeƒ€‚ðƒhƒƒbƒv‚µ‚Ü‚·B
+ @<item>: ƒhƒƒbƒv‚·‚éƒAƒCƒeƒ€ID‚ðŽw’肵‚Ü‚·Brandom‚Æ‹Lq‚·‚é‚ÆŠŽ•i‚©‚烉ƒ“ƒ_ƒ€‚Ƀhƒƒbƒv‚µ‚Ü‚·B
+ @<type>: ƒhƒƒbƒv‚·‚éƒAƒCƒeƒ€‚̃^ƒCƒv‚ðŽw’肵‚Ü‚·Binventory:ŠŽ•i equip:‘•”õ•i all:‘S•”
+ @<per>: ƒhƒƒbƒv‚·‚éŠm—¦‚Å‚·B–œ•ª—¦‚ÅŽw’肵‚Ü‚·B
+ (map/)
+ skill.c
+ skill_unit_onplace() •ÏX
+ skill_trap_splash() ’ljÁ
+ pc.c
+ pc_damage() •ÏX
+ npc.c
+ npc_parse_mapflag() •ÏX
+ map.h
+ map_data‚Ƀƒ“ƒo’ljÁ
+ (conf/)
+ mapflag.txt
+ ƒiƒCƒgƒƒAƒ‚[ƒh‚ɃhƒƒbƒvÝ’è’ljÁ
+
+--------------------
+//0989 by (“Ê)
+EƒXƒvƒŠƒ“ƒOƒgƒ‰ƒbƒv‚ð–^Š‚ÅŒ©‚½SS‚ðŒ³‚ÉŽÀ‘•‚µ‚Ä‚Ý‚½Bˆá‚Á‚½‚ç‘ŠˆáƒXƒŒ‚Ö
+EƒfƒBƒeƒNƒeƒBƒ“ƒO‚ð–^Š‚ÅŒ©‚½‰ðà•¶‚ðŒ³‚ÉŽÀ‘•‚µ‚Ä‚Ý‚½Bˆá‚Á‚½‚ç‘ŠˆáƒXƒŒ‚Ö
+EƒLƒƒƒXƒgƒLƒƒƒ“ƒZƒ‹Žž‚Ìdelete_timerƒGƒ‰[‚ɒljÁ‚ŃXƒLƒ‹ID‚ð•\Ž¦‚·‚é‚悤‚É‚µ‚½B‚ ‚킹‚Ä•ñ‚·‚é‚ƃGƒ‰[‚ÌŒ´ˆö‚ª•ª‚©‚é‚©‚à
+
+ (map/)
+ skill.c
+ skill_castend_nodamage_id() •ÏX
+ skill_castend_pos2() •ÏX
+ skill_castcancel() •ÏX
+
+--------------------
+//0988 by (“Ê)
+Eƒg[ƒL[ƒ{ƒbƒNƒX‚Íí‚É‘«Œ³‚É’u‚¯‚é‚悤‚É•ÏX‚ÆKalen‚³‚ñ‚É–á‚Á‚½î•ñ“™‚ðŒ³‚ÉƒpƒPƒbƒg‚ð–{ŽI‚É‚ ‚킹‚Ä‚Ý‚½
+EƒVƒ‡ƒbƒNƒEƒF[ƒuƒgƒ‰ƒbƒv‚ÉŒø‰Ê‚ð’ljÁ‚µ‚½‚‚à‚è(–¢Šm”F)
+Eƒuƒ‰ƒXƒgƒ}ƒCƒ“‚ƃNƒŒƒCƒ‚ƒAƒgƒ‰ƒbƒv‚ð‰£‚é‚Æ‚«”ò‚Ԃ悤‚É‚µ‚½
+EƒŠƒ€[ƒuƒgƒ‰ƒbƒv‚Åã©(skill_require_db‚ÅŽw’肵‚½ƒAƒCƒeƒ€)‚ð‰ñŽû‚Å‚«‚é‚悤‚É‚µ‚½
+Eª‚ÌŽÀ‘•‚É‚æ‚èã©‚ÌŽžŠÔØ‚ê‚Åã©‚ªo‚éƒIƒŠƒWƒiƒ‹Žd—l‚̓Rƒƒ“ƒgƒAƒEƒg
+Eƒuƒ‰ƒXƒgƒ}ƒCƒ“‚ÌŒø‰ÊŽžŠÔ‚ª’·‚¢‚Ì‚ðC³
+
+ (db/)
+ cast_db.txt
+ (map/)
+ battle.c
+ battle_check_target() •ÏX
+ mob.c
+ mobskill_castend_pos() •ÏX
+ skill.c
+ skill_additional_effect() •ÏX
+ skill_blown() •ÏX
+ skill_castend_nodamage_id() •ÏX
+ skill_castend_pos2() •ÏX
+ skill_unitsetting() •ÏX
+ skill_unit_onplace() •ÏX
+ skill_unit_ondamaged() •ÏX
+ skill_castend_pos() •ÏX
+ skill_unit_timer_sub() •ÏX
+
+--------------------
+//0987 by ŒÓ’±—–
+
+Eƒ†[ƒU[’è‹`ŠÖ”/ƒTƒuƒ‹[ƒeƒBƒ“‚Ɉø”‚ðŽw’è‰Â”\‚É
+ Ú‚µ‚­‚Í script_ref.txt ‚ðŽQÆ
+
+ (map/)
+ scirpt.c
+ buildin_getarg()’ljÁ
+ buildin_callsub(),buildin_callfunc(),run_func()C³
+ (doc/)
+ script_ref.txt
+ ˆø”‚ɂ‚¢‚Ä‚Ìà–¾’ljÁ
+
+Egetguildname,getpartyname,getcastlename,strcharinfoC³
+ C_STR‚Œ蔕¶Žš—ñ(C_CONSTSTR)‚ð•Ô‚µ‚Ä‚¢‚½–â‘èC³
+ strcharinfo‚ŃMƒ‹ƒh–¼‚È‚Ç‚ðŠ“¾‚·‚éÛA–¢Š‘®‚¾‚Á‚½‚Æ‚«‚Ì–â‘è
+
+ (map/)
+ script.c
+ buildin_getguildname(),buildin_getpartyname()
+ buildin_getcastlename(),buildin_strcharinfo()
+
+--------------------
+//0986 by (“Ê)
+Eclient_packet‚Ì‹Lq‚©‚ç„Ž@‚µ‚ăg[ƒL[ƒ{ƒbƒNƒX‚ðŽÀ‘•‚µ‚Ä‚Ý‚½‚‚à‚è
+
+ (db/)
+ skill_db.txt
+ (map/)
+ clif.c
+ clif_talkiebox() ’ljÁ
+ clif_parse_UseSkillToPos() •ÏX
+ clif_parse() •ÏX
+ clif.h •ÏX
+ map.h •ÏX
+ skill.c
+ skill_castend_pos2() •ÏX
+ skill_unitsetting() •ÏX
+ skill_unit_onplace() •ÏX
+
+--------------------
+//0985 by (“Ê)
+EƒT[ƒo[snapshot
+E/script/extension‚ÉŒê‚è•”‚ð’ljÁ‚µ‚½‚è
+E0984‚ÅAthenaŽG’kƒXƒŒƒbƒh part3>>92 Michael‚³‚ñ‚ÌC³‚ðŽæ‚èž‚ñ‚Å‚½
+EƒoƒO•ñƒXƒŒƒbƒh part5 >>45‚É“]Ú‚³‚ê‚Ä‚½ ‚ ‚â‚Ë‚³‚ñ‚ÌC³‚ðŽæ‚èž‚Ý
+EƒoƒO•ñƒXƒŒƒbƒh part5 >>54 rari‚³‚ñ‚Ì‚½‚Ê‚«–XC³‚ðŽæ‚èž‚Ý
+
+ (script/extension/)
+ npc_event_kataribe6.txt ’ljÁ
+ npc_event_kataribe7.txt ’ljÁ
+ (script/npc/)
+ quest/npc_event_hat.txt C³
+ job/npc_job_magician.txt C³
+
+--------------------
+//0984 by (“Ê)
+EƒZ[ƒW‚̃tƒŠ[ƒLƒƒƒXƒg‚Æ‚¢‚¤ƒXƒLƒ‹‚Ì‘¶Ý‚ð’m‚ç‚È‚©‚Á‚½‚Ì‚Å0983‚Ì•ÏX‚ðˆê•”–ß‚µ
+EƒAƒCƒeƒ€XV‚µ‚½‚¯‚Ç‚‚ê”L‚ƃCƒ“ƒfƒBƒAƒ“ƒoƒ“ƒ_ƒi‚ª‘•”õ‚Å‚«‚È‚¢H
+Eƒ}ƒbƒvƒtƒ‰ƒO‚ƃ‚ƒ“ƒXƒ^[”z’u‚ðÅV”Å‚É
+
+ (db/)
+ item_db.txt
+ (conf/)
+ mapflag.txt
+ (script/mob/)
+ npc_monster.txt
+ (map/)
+ clif.c
+ clif_parse_WalkToXY() C³
+
+--------------------
+//0983 by (“Ê)
+E’·‚¢‰r¥’†‚É•à‚«‚Ü‚í‚ꂽ‹C‚ª‚·‚é‚Ì‚ÅC³
+Eƒyƒbƒgƒ‹[ƒŒƒbƒg‰ñ“]’†‚É‘ÎÛ‚ª’@‚«ŽE‚³‚ꂽ‚çmap-server‚ª¢‚é‚Ì‚ðC³
+EƒvƒƒtƒFƒbƒT[ ƒ‰ƒCƒt’u‚«Š·‚¦‚̎蔲‚«ˆ—‚ð‚¿‚å‚Á‚ƃ}ƒV‚É‚µ‚½
+
+ (map/)
+ clif.c
+ clif_parse_WalkToXY() C³
+ pet.c
+ pet_catch_process2() C³
+ skill.c
+ skill_castend_nodamage_id() C³
+
+--------------------
+//0982 by (“Ê)
+E“]¶ƒXƒLƒ‹‚Ì`
+ ƒXƒg[ƒJ[ ƒŠƒWƒFƒNƒgƒ\[ƒh ‘ŠŽè‚ªPC‚Ìꇂ͌•‚¶‚á‚È‚¯‚ê‚Î’µ‚Ë•Ô‚³‚È‚¢—\’è
+ ƒvƒƒtƒFƒbƒT[ ƒƒ‚ƒ‰ƒCƒY 12•b‚̌ŒèƒLƒƒƒXƒgƒ^ƒCƒ€A‚»‚ÌŒãƒXƒLƒ‹Žg—p‚̃LƒƒƒXƒgƒ^ƒCƒ€‚ª3‰ñ‚¾‚¯1/3‚É‚È‚é
+ ƒvƒƒtƒFƒbƒT[ ƒ‰ƒCƒt’u‚«Š·‚¦ HP‚ð10%Œ¸‚炵‚ÄSP‚ð‘‚â‚·BŒ¸‚Á‚½HP‚̃GƒtƒFƒNƒg‚Í–³‚µ‚É‚µ‚Ä‚Ý‚½
+EŒ©Ø‚è‚Ɖñ”𗦑‰Á‚ÌFlee㸂ªƒXƒe[ƒ^ƒX•Ï‰»Žž‚É‚µ‚©”½‰f‚³‚ê‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ðC³
+E0981‚ÅŽ©•ªˆÈŠO‚Í•à‚¢‚½‚ç•ž‚ÌF‚ª–ß‚Á‚Ä‚µ‚Ü‚¤‚Ì‚ð‚È‚ñ‚Æ‚©‚µ‚½‚‚à‚è
+
+ (db/)
+ skill_require_db.txt
+ (map/)
+ battle.c
+ battle_calc_damage() C³
+ clif.c
+ clif_movechar() C³
+ clif_getareachar_pc() C³
+ pc.c
+ pc_calcstatus() C³
+ skill.c
+ SkillStatusChangeTable •ÏX
+ skill_castend_nodamage_id() •ÏX
+ skill_use_id() •ÏX
+ skill_use_pos() •ÏX
+ skill_status_change_timer() •ÏX
+ skill_status_change_start() •ÏX
+ skill.h •ÏX
+
+--------------------
+//0981 by (“Ê)
+E“]¶ƒXƒLƒ‹‚Ì`
+ ƒXƒg[ƒJ[ ƒŠƒWƒFƒNƒgƒ\[ƒh ˆê’èŠm—¦‚Ń_ƒ[ƒW‚𔼕ª‚É‚µ‚ÄŒ¸‚炵‚½•ª‚ð‘ŠŽè‚É’µ‚Ë•Ô‚·‚悤‚É‚µ‚½c‚ªA’µ‚Ë•Ô‚µ‚½ƒ_ƒ[ƒW‚̃GƒtƒFƒNƒgo‚Ü‚¹‚ñ
+E•ž‚ÌF‚ð•ÏX••Û‘¶‚µ‚Ä‚¢‚éꇂɃŠƒƒO‚·‚é‚ÆŒ³‚ÌF‚É–ß‚Á‚Ä‚é‚悤‚ÉŒ©‚¦‚é–â‘è‚ÌC³
+
+ (db/)
+ skill_db.txt
+ (map/)
+ clif.c
+ clif_parse_LoadEndAck() C³
+ battle.c
+ battle_calc_damage() C³
+ skill.c
+ skill_status_change_timer() C³
+ skill_status_change_start() C³
+
+--------------------
+//0980 by (“Ê)
+E—á‚É‚æ‚Á‚Ä“]¶ƒXƒLƒ‹‚ƃ‚ƒ“ƒNŠÖ˜A
+ ƒXƒiƒCƒp[ ƒVƒƒ[ƒvƒVƒ…[ƒeƒBƒ“ƒO ƒNƒŠƒeƒBƒJƒ‹—¦’²®H
+ ƒnƒCƒEƒBƒU[ƒh ƒ\ƒEƒ‹ƒhƒŒƒCƒ“ MSP‘—Ê‚ÆMob‚ð“|‚µ‚½‚Æ‚«‚ÉSP(mobLv*(65+15*SkillLv)/100)‰ñ•œB‚Å‚à–{“–‚͔͈ÍUŒ‚‚Ìꇂ͉ñ•œ‚µ‚È‚¢‚炵‚¢H
+ ƒnƒCƒEƒBƒU[ƒh –‚–@—Í‘• Žg‚Á‚½‚çMATK‚ªSkillLv%‘—ÊBŽŸ‚̃XƒLƒ‹Žg—pŽž‚ÉŒ³‚É–ß‚é
+ ƒ‚ƒ“ƒN ‹C’D ‚¿‚å‚Á‚ÆæŽæ‚肵‚Ä20%‚ÌŠm—¦‚Å“G‚ÌLv*2‚ÌSP‚ð‹zŽûB¬Œ÷‚µ‚½‚Æ‚«‚̓^[ƒQƒbƒg‚ðŽæ“¾‚·‚é‚悤‚É‚µ‚Ä‚Ý‚½
+EƒAƒCƒeƒ€–¼‚ðjROƒEƒ“ƒoƒ‰‚É€‹’‚³‚¹‚Ä‚Ý‚½‚‚à‚è
+
+ (db/)
+ cast_db.txt
+ item_db.txt
+ (map/)
+ battle.c
+ battle_calc_pc_weapon_attack() •ÏX
+ mob.c
+ mob_damage() •ÏX
+ pc.c
+ pc_calcstatus() •ÏX
+ skill.c
+ skill_castend_nodamage_id() •ÏX
+ skill_use_id() •ÏX
+ skill_use_pos() •ÏX
+ skill_status_change_end() •ÏX
+ skill_status_change_timer() •ÏX
+ skill_status_change_start() •ÏX
+
+--------------------
+//0979 by (“Ê)
+E“]¶ƒXƒLƒ‹‚ð‚¿‚å‚Á‚Æ’²®
+ ƒnƒCƒEƒBƒU[ƒh ƒ}ƒWƒbƒNƒNƒ‰ƒbƒVƒƒ[ •ŠíUŒ‚‚ÅBaseATKŒvŽZ‚ðMATK2‚Å‚µ‚Ä‚Ý‚é
+E‘§‚ð–{ŽIŽd—l•—‚ÉHP‚ÆSP‚̉ñ•œƒ^ƒCƒ}[‚𕪂¯‚ÄÀ‚Á‚Ä‚¢‚È‚­‚Ä‚à“®‚©‚È‚¯‚ê‚΃^ƒCƒ}[‚ªi‚ނ悤‚É‚µ‚½
+Eˆ¢C—…Žg—pŒã‚ÉHP‚ÆSP‚ª5•ªŠÔŽ©‘R‰ñ•œ‚µ‚È‚¢–{ŽIŽg—p•—‚É‚µ‚½(csat_db.txt‚Ìupkeep_time2‚Å’²®‰Â”\)
+EŒÃ‚¢gcc‚Åskill_unit_timer_sub_onplace()‚ ‚½‚è‚ŃRƒ“ƒpƒCƒ‹ƒGƒ‰[‚É‚È‚Á‚½‚Ì‚ðC³
+
+ (db/)
+ cast_db.txt
+ (map/)
+ battle.c
+ battle_calc_pet_weapon_attack() •ÏX
+ battle_calc_mob_weapon_attack() •ÏX
+ battle_calc_pc_weapon_attack() •ÏX
+ map.h
+ pc.c
+ pc_authok() •ÏX
+ pc_walk() •ÏX
+ pc_spirit_heal() íœ
+ pc_spirit_heal_hp() ’ljÁ
+ pc_spirit_heal_sp() ’ljÁ
+ pc_natural_heal_sub() •ÏX
+ skill.c
+ skill_additional_effect() •ÏX
+ skill_castend_damage_id() •ÏX
+ skill_status_change_start() •ÏX
+ skill_unit_timer_sub_onplace() C³
+
+--------------------
+//0978 by (“Ê)
+E“]¶ƒXƒLƒ‹‚ðC³‚µ‚½‚èFX
+ ƒXƒiƒCƒp[ ƒtƒ@ƒ‹ƒRƒ“ƒAƒTƒ‹ƒg ‚Æ‚è‚ ‚¦‚¸”ò‚Ô‚¾‚¯‚¾‚ÆŽv‚Á‚Ä‚­‚¾‚³‚¢
+ ƒXƒiƒCƒp[ ƒVƒƒ[ƒvƒVƒ…[ƒeƒBƒ“ƒO ƒ_ƒ[ƒW‘‰Á‚¾‚¯‚Ç1‘Ì‚¾‚¯
+ ƒNƒ‰ƒEƒ“EƒWƒvƒV[ ƒAƒ[ƒoƒ‹ƒJƒ“ ƒ_ƒ[ƒW‘‰Á‚Æ9‰ñUŒ‚
+ ƒnƒCƒEƒBƒU[ƒh ƒ}ƒWƒbƒNƒNƒ‰ƒbƒVƒƒ[ ƒGƒtƒFƒNƒg‚¾‚¯
+
+EƒAƒCƒeƒ€ŒðŠ·‚Åd—Ê‚ÌŒvŽZ‚ªˆá‚Á‚Ä‚¢‚½‚Ì‚ðC³
+ (doc/)
+ client_packet.txt ƒpƒPƒbƒg’·ƒe[ƒuƒ‹XV
+ (map/)
+ battle.c
+ battle_calc_misc_attack() •ÏX
+ battle_calc_pet_weapon_attack() •ÏX
+ battle_calc_mob_weapon_attack() •ÏX
+ battle_calc_pc_weapon_attack() •ÏX
+ clif.c ƒpƒPƒbƒg’·‚Ì’è‹`‚ðXV
+ skill.c
+ skill_castend_damage_id() •ÏX
+ trade.c
+ trade_tradeadditem() C³
+
+--------------------
+//0977 by (“Ê)
+E“]¶ƒXƒLƒ‹‚ðC³‚µ‚½‚èFX
+ ƒAƒTƒVƒ“ƒNƒƒX ƒƒeƒIƒAƒTƒ‹ƒg ƒGƒtƒFƒNƒg‚ªˆá‚¤H
+ ƒ[ƒhƒiƒCƒg ƒvƒŒƒbƒVƒƒ[ •K’†ƒ_ƒ[ƒW‚É‚µ‚Ä‚Ý‚½
+ ƒ[ƒhƒiƒCƒg ƒI[ƒ‰ƒuƒŒ[ƒh‚Ì•K’†damage2‚ª‘¼‚Å‚à“K—p‚³‚ê‚Ä‚¢‚½‚Ì‚ðC³
+ ƒ[ƒhƒiƒCƒg ƒSƒXƒyƒ‹ ƒGƒtƒFƒNƒgoŒ»ˆÊ’u‚Ì’²®
+ ƒnƒCƒvƒŠ[ƒXƒg ƒAƒVƒƒƒ“ƒvƒeƒBƒI Œø‰ÊŽÀ‘•
+ ƒnƒCƒvƒŠ[ƒXƒg ƒƒfƒBƒeƒCƒeƒBƒI Œø‰ÊŽÀ‘•
+ ƒnƒCƒvƒŠ[ƒXƒg ƒoƒWƒŠƒJ SG‚Ý‚½‚¢‚ÉMob‚ªN“ü‚µ‚悤‚Æ‚·‚é‚Æ‚«”ò‚΂³‚ê‚é‚悤‚É‚µ‚½
+ ƒzƒƒCƒgƒXƒ~ƒX ƒJ[ƒgƒu[ƒXƒg Œø‰ÊŽÀ‘•
+ ƒzƒƒCƒgƒXƒ~ƒX ƒƒ‹ƒgƒ_ƒEƒ“ ƒGƒtƒFƒNƒg‚Æó‘ÔˆÙ펞ŠÔ‚¾‚¯(ŽÀÛ‚Ìó‘ԕω»‚Í–³‚µ)
+ ƒzƒƒCƒgƒXƒ~ƒX ƒNƒŠƒGƒCƒgƒRƒCƒ“ –¼‘O“ü‚è‚Ì‹à‰Ý‚Æ‚©ì‚ê‚邾‚¯
+ ƒXƒg[ƒJ[ ƒŠƒWƒFƒNƒgƒ\[ƒh ƒGƒtƒFƒNƒg‚Æó‘ÔˆÙ펞ŠÔ‚¾‚¯(ŽÀÛ‚Ìó‘ԕω»‚Í–³‚µ)
+ ƒNƒ‰ƒEƒ“EƒWƒvƒV[ ƒ}ƒŠƒIƒlƒbƒgƒRƒ“ƒgƒ[ƒ‹ ƒGƒtƒFƒNƒg‚Æó‘ÔˆÙ펞ŠÔ‚¾‚¯(ŽÀÛ‚Ìó‘ԕω»‚Í–³‚µ)
+ ƒvƒƒtƒFƒbƒT[ ƒtƒHƒOƒEƒH[ƒ‹ ƒGƒtƒFƒNƒg‚Æ—LŒøŽžŠÔ‚¾‚¯
+ ƒXƒiƒCƒp[ ƒEƒCƒ“ƒhƒEƒH[ƒN ‘¬“x㸂ÆQMAŽ„‚ð–Y‚ê‚È‚¢‚Å‚ª‚©‚©‚é‚Ɖ𜂳‚ê‚é‚悤‚É‚µ‚½
+ ƒXƒiƒCƒp[ ƒgƒDƒ‹[ƒTƒCƒg QMAŽ„‚ð–Y‚ê‚È‚¢‚łʼn𜂳‚ê‚é‚悤‚É‚µ‚Ä‚Ý‚½
+EƒgƒDƒ‹[ƒTƒCƒg‚Ì’Ô‚èŠÔˆá‚¢‚ðC³
+Estorage.c‚ŃRƒ“ƒpƒCƒ‹Œx‚ªo‚È‚¢‚悤‚É‚µ‚½‚‚à‚è
+
+ (db/)
+ cast_db.txt
+ skill_db.txt
+ skill_require_db.txt
+ produce_db.txt
+ (map/)
+ battle.c
+ battle_get_str() C³
+ battle_get_agi() C³
+ battle_get_vit() C³
+ battle_get_int() C³
+ battle_get_dex() C³
+ battle_get_luk() C³
+ battle_get_flee() C³
+ battle_get_hit() C³
+ battle_get_critical() C³
+ battle_get_baseatk() C³
+ battle_get_atk() C³
+ battle_get_atk2() C³
+ battle_get_def() C³
+ battle_get_def2() C³
+ battle_get_speed() C³
+ battle_calc_damage() C³
+ battle_calc_pet_weapon_attack() •ÏX
+ battle_calc_mob_weapon_attack() •ÏX
+ battle_calc_pc_weapon_attack() •ÏX
+ pc.c
+ pc_calcstatus() C³
+ skill.c
+ skill_get_unit_id() C³
+ skill_additional_effect() C³
+ skill_castend_nodamage_id() C³
+ skill_castend_pos2() C³
+ skill_unit_group() C³
+ skill_unit_onplace() C³
+ skill_unit_onout() C³
+ skill_castend_pos() C³
+ skill_check_condition() C³
+ skill_status_change_end() C³
+ skill_status_change_start() C³
+ skill_can_produce_mix() C³
+ skill_produce_mix() C³
+ skill.h C³
+ storage.c
+ storage_comp_item() C³
+ storage.h C³
+
+--------------------
+//0976 by (“Ê)
+E“]¶ƒXƒLƒ‹‚ðC³‚µ‚½‚èFX
+E€”õ‚¾‚¯‚µ‚ÄŽÀ‘•‚Å‚«‚Ä‚È‚¢ƒXƒLƒ‹‚à‚ ‚è‚Ü‚·
+ ƒ[ƒhƒiƒCƒg ƒI[ƒ‰ƒuƒŒ[ƒh ‘½•ª‚±‚ñ‚ÈŠ´‚¶H
+ ƒ[ƒhƒiƒCƒg ƒpƒŠƒCƒ“ƒO ’µ‚Ë•Ô‚·‚¯‚ÇUŒ‚‚ð1‰ñŽ~‚ß‚é‚Ì‚Í–¢ŽÀ‘•
+ ƒ[ƒhƒiƒCƒg ƒRƒ“ƒZƒ“ƒgƒŒ[ƒVƒ‡ƒ“ ƒCƒ“ƒfƒ…ƒA`‚Í—Ç‚­•ª‚©‚ç‚È‚¢‚Ì‚Å•ú’u
+ ƒ[ƒhƒiƒCƒg ƒXƒpƒCƒ‰ƒ‹ƒsƒA[ƒX ’Êíƒ_ƒ[ƒW‘‰Á‚Æd—ʃ_ƒ[ƒW‘‰Á‚ƈꉞ5‰ñUŒ‚(‚È‚ñ‚©ˆá‚¤‹C‚ª‚·‚é)
+ ƒ[ƒhƒiƒCƒg ƒwƒbƒhƒNƒ‰ƒbƒVƒ… ƒ_ƒ[ƒW‘‰Á‚ƃXƒe[ƒ^ƒX•ÏXH
+ ƒ[ƒhƒiƒCƒg ƒWƒ‡ƒCƒ“ƒgƒr[ƒg ƒ_ƒ[ƒW‘‰Á‚ƃXƒe[ƒ^ƒX•ÏXH
+ ƒAƒTƒVƒ“ƒNƒƒX ƒAƒhƒoƒ“ƒXƒhƒJƒ^[ƒ‹Œ¤‹† ‚½‚Ô‚ñ‚±‚ñ‚ÈŠ´‚¶H
+ ƒXƒiƒCƒp[ ƒgƒDƒ‹[ƒTƒCƒg ‚½‚Ô‚ñ‚±‚ñ‚ÈŠ´‚¶H
+ ƒXƒiƒCƒp[ ƒEƒBƒ“ƒhƒEƒH[ƒN ‚½‚Ô‚ñ‚±‚ñ‚ÈŠ´‚¶H‚Å‚à‘¬“x㸂Ƃ©‚Æ‹£‡‚µ‚½Žž‚̈—‚Í–¢ŽÀ‘•
+ ƒXƒpƒCƒ_[ƒEƒFƒbƒu ‚Æ‚è‚ ‚¦‚¸ƒAƒ“ƒNƒ‹ƒXƒlƒA‚Æ“¯‚¶‚悤‚ÈŠ´‚¶•‰ñ”𗦔¼Œ¸
+ ƒ`ƒƒƒ“ƒsƒIƒ“ ‹¶‹CŒ÷ “K“–‚É‘‚₵‚Ä‚¢‚½‚Ì‚ð‚¿‚á‚ñ‚Æ‘‚â‚·‚悤‚É‚µ‚½
+EoŒŒó‘Ô‚ÆœÜó‘Ô‚ÌŽæ‚舵‚¢‚ª‚æ‚­‚í‚©‚è‚Ü‚¹‚ñ‚ÁII
+
+ (db/)
+ cast_db.txt
+ skill_db.txt
+ skill_require_db.txt
+ (doc/)
+ db_ref.txt
+ (map/)
+ battle.c
+ battle_get_str() C³
+ battle_get_agi() C³
+ battle_get_vit() C³
+ battle_get_int() C³
+ battle_get_dex() C³
+ battle_get_luk() C³
+ battle_get_flee() C³
+ battle_get_hit() C³
+ battle_get_critical() C³
+ battle_get_baseatk() C³
+ battle_get_atk() C³
+ battle_get_atk2() C³
+ battle_get_def() C³
+ battle_get_def2() C³
+ battle_get_speed() C³
+ battle_calc_damage() C³
+ clif.c
+ clif_parse_WalkToXY() C³
+ mob.c
+ mob_can_move() C³
+ mobskill_castend_pos() C³
+ pc.c
+ pc_calcstatus() C³
+ pc_checkallowskill() C³
+ skill.c
+ skill_get_unit_id() C³
+ skill_additional_effect() C³
+ skill_castend_nodamage_id() C³
+ skill_castend_pos2() C³
+ skill_unit_group() C³
+ skill_unit_onplace() C³
+ skill_unit_onout() C³
+ skill_castend_pos() C³
+ skill_check_condition() C³
+ skill_status_change_end() C³
+ skill_status_change_start() C³
+ skill_readdb() C³
+ skill.h C³
+--------------------
+//0975 by Sin
+E0973‚ÅŽÀ‘•‚³‚ꂽƒXƒNƒŠƒvƒg‚É‚æ‚éBaseLv, JobLv‚Ì•ÏXŽž‚ÉA
+@ƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒg‚âƒXƒLƒ‹ƒ|ƒCƒ“ƒg‚ðŽæ“¾‚Å‚«‚é‚悤‚ÉC³B
+@¦Ž¿–âƒXƒŒpart5 >>115 ”Y‚ß‚él ‚³‚ñ‚Ìpc.c‚ðŽQl‚É‚³‚¹‚Ä’¸‚«‚Ü‚µ‚½B‘½ŽÓB
+
+ (map/)
+ pc.c
+ pc_setparam()
+ case SP_BASELEVEL: C³
+ case SP_JOBLEVEL: C³
+--------------------
+//0974 by latte
+EƒOƒ‰ƒ“ƒhƒNƒƒX‚ð–{ŽI‚ÉŠî‚«C³
+ ƒAƒ“ƒfƒbƒhˆ«–‚‹­§ˆÃˆÅ•t—^
+ ”½“®ƒ_ƒ[ƒW”¼Œ¸Aƒ‚[ƒVƒ‡ƒ“‚È‚µ
+ MOB(PC)‚ªd‚È‚Á‚½‚Æ‚«‚ÌHIT”
+ %UPŒn•ŠíƒJ[ƒhŒø‰Ê‚È‚µ
+ ‘®«‘Š«“ñdŒvŽZ
+ MOBƒ_ƒ[ƒW•\Ž¦”’
+
+ Œã”¼4€–Ú‚ÍÝ’è‰Â
+
+E퓬Šî–{ŒvŽZ‚ð–{ŽI‚ÉŠî‚«”÷C³iDEXƒTƒCƒY•â³A‹|Å’áƒ_ƒAPCƒTƒCƒY•â³j
+
+EŠ®‘S‰ñ”ð
+ ƒXƒ^ƒ““™‚ÅŠ®‘S‰ñ”ð‚ª”­¶‚µ‚È‚©‚Á‚½‚Ì‚ðC³
+ AGIVITƒyƒiƒ‹ƒeƒB‚ªŠ®‘S‰ñ”ð‚Ì“G‚àƒJƒEƒ“ƒg‚µ‚ÄŒvŽZ‚³‚ê‚Ä‚¢‚½‚Ì‚ðC³@Ý’è‰Â
+ ƒI[ƒgƒJƒEƒ“ƒ^[‚Í–¢C³
+
+E‘qŒÉ‚ð•Â‚¶‚é‚Æ‚«AƒAƒCƒeƒ€ID‚Ń\[ƒg‚·‚é‚悤‚É‚µ‚½
+
+Ekalen‚³‚ñ‚̃vƒ‚PŽ·Ž–NPCƒXƒNƒŠƒvƒg‚ð‰ü‘¢‚µ‚Ä
+ ¤‹Æ–h‰q’lA“ŠŽ‘‹àŠzA•ó” ‚Ì”‚ð–{ŽI‚É€‹’(¤‹Æ’l‚Í1~100)
+ ‘SÔ‚ÉÝ’u
+
+ (/script/npc)
+ aldeg_cas01.txt ... prtg_cas05.txt C³
+ (/script/npc/gvg)
+ aldeg_cas01.txt ... prtg_cas05.txt ’ljÁ
+ tbox.txt ’ljÁ
+
+ (/conf)
+ battle_athena.conf
+ 6€–ڒljÁ
+
+ (/map)
+ mob.c/mob.h
+ mob_attack() C³
+ mob_counttargeted_sub(),mob_counttargeted() C³
+ mobskill_use() C³iª‚̈ø”‚¾‚¯j
+ pc.c/pc.h
+ pc_counttargeted_sub(),pc_counttargeted() C³
+ pc_attack_timer() C³
+ pet.c
+ pet_attack() C³
+
+ map.h
+ pc_data, mob_data, map_data •Ï”‚P‚’ljÁ
+ enum1‚’ljÁ
+ map.c/map.h
+ map_count_oncell() ’ljÁ skill.c‚Å‚æ‚©‚Á‚½‚©‚àEEE
+
+ skill.c
+ GXŠÖ˜AC³(skill_additional_effect(), skill_attack(), skill_castend_damage_id(), skill_unit_onplace())
+
+ battle.c C³
+ battle.h C³
+
+ storage.c/storage.h
+ storage_comp_item() ’ljÁ
+ sortage_sortitem(), sortage_gsortitem() ’ljÁ
+ storage_storageclose(), storage_guild_storageclose() C³
+--------------------
+//0973 by Ž‚Žqo^.^o
+EƒXƒNƒŠƒvƒg‚ÌBASELEVEL,JOBLEVEL–½—ߒljÁ
+ —á: set BASELEVEL,1;
+ —á: set JOBLEVEL,1;
+ (map/)
+ pc.c
+ pc_setparam()
+ case SP_BASELEVEL: €–ڒljÁ
+ case SP_JOBLEVEL: €–ڒljÁ
+
+--------------------
+//0972 by (“Ê)
+E“]¶ƒXƒLƒ‹‚ðƒGƒtƒFƒNƒg‚¾‚¯‚¢‚­‚‚©’ljÁ‚µ‚½‚è
+Eó‘ԕω»‚Í‚»‚Ì‚¤‚¿’N‚©‚ª
+ ƒGƒtƒFƒNƒg(ƒXƒe[ƒ^ƒX•Ï‰»ƒAƒCƒRƒ“ŠÜ‚Þ)‚Ì‚Ý
+ SC_AURABLADE: /* ƒI[ƒ‰ƒuƒŒ[ƒh */
+ SC_PARRYING: /* ƒpƒŠƒCƒ“ƒO */
+ SC_CONCENTRATION: /* ƒRƒ“ƒZƒ“ƒgƒŒ[ƒVƒ‡ƒ“ */
+ SC_TENSIONRELAX: /* ƒeƒ“ƒVƒ‡ƒ“ƒŠƒ‰ƒbƒNƒX */
+ SC_BERSERK: /* ƒo[ƒT[ƒN */
+ SC_ASSUMPTIO: /* */
+ SC_TURESIGHT: /* ƒgƒDƒ‹[ƒTƒCƒg */
+ SC_CARTBOOST: /* ƒJ[ƒgƒu[ƒXƒg */
+ SC_WINDWALK: /* ƒEƒCƒ“ƒhƒEƒH[ƒN */
+
+ (db/)
+ cast_db.txt
+ (map/)
+ skill.h
+ skill.c
+ SkillStatusChangeTable[] €–ڒljÁ
+ skill_castend_nodamage_id() €–ڒljÁ
+ skill_status_change_end() €–ڒljÁ
+ skill_status_change_start() €–ڒljÁ
+
+--------------------
+//0971 by (“Ê)
+Eatcommand.h‚ÉŽc‚Á‚Ä‚¢‚½jobchange2‚Æ‚©‚ÌŽcŠ[‚ðíœ
+E“]¶ƒXƒLƒ‹‚ðƒGƒtƒFƒNƒg‚¾‚¯‚¢‚­‚‚©’ljÁ‚µ‚½‚èƒ`ƒƒƒ“ƒsƒIƒ“‚Í‚»‚ê‚È‚è‚ɒljÁ‚µ‚½‚è
+ ƒGƒtƒFƒNƒg‚Ì‚Ý
+ ƒnƒCƒvƒŠ[ƒXƒg ƒoƒWƒŠƒJ(HP_BASILICA)
+ ƒzƒƒCƒgƒXƒ~ƒX ƒJ[ƒgƒu[ƒXƒg(WS_CARTBOOST)
+ ƒXƒiƒCƒp[ ƒgƒDƒ‹[ƒTƒCƒg(SN_SIGHT)
+ ƒWƒvƒV[ ŒŽ–¾‚è‚Ìò‚É—Ž‚¿‚é‰Ô‚Ñ‚ç(CG_MOONLIT)
+ ƒpƒ‰ƒfƒBƒ“ ƒSƒXƒyƒ‹(PA_GOSPEL)
+ ’ljÁƒ_ƒ[ƒW“™‚È‚µ
+ ƒ[ƒhƒiƒCƒg ƒwƒbƒhƒNƒ‰ƒbƒVƒ…(LK_HEADCRUSH)
+ ƒ[ƒhƒiƒCƒg ƒWƒ‡ƒCƒ“ƒgƒr[ƒg(LK_JOINTBEAT)
+ ƒ[ƒhƒiƒCƒg ƒXƒpƒCƒ‰ƒ‹ƒsƒA[ƒX(LK_SPIRALPIERCE)
+ ƒpƒ‰ƒfƒBƒ“ ƒvƒŒƒbƒVƒƒ[(PA_PRESSURE)
+ ƒpƒ‰ƒfƒBƒ“ ƒTƒNƒŠƒtƒ@ƒCƒX(PA_SACRIFICE)
+ ‚»‚ê‚È‚è(ƒRƒ“ƒ{‚ÍŒq‚ª‚è‚Ü‚·‚ªƒfƒBƒŒƒC‚Í“K“–Aƒ_ƒ[ƒW’ljÁ‚Í‚ ‚邯‚Ç‚»‚êˆÈŠO‚̒ljÁŒø‰Ê‚Í–³‚µ)
+ ƒ`ƒƒƒ“ƒsƒIƒ“ –ÒŒÕd”hŽR(CH_PALMSTRIKE)
+ ƒ`ƒƒƒ“ƒsƒIƒ“ •šŒÕŒ(CH_TIGERFIST)
+ ƒ`ƒƒƒ“ƒsƒIƒ“ ˜A’Œ•öŒ‚(CH_CHAINCRUSH)
+ ƒ`ƒƒƒ“ƒsƒIƒ“ ‹¶‹CŒ÷(CH_SOULCOLLECT)
+
+ (db/)
+ cast_db.txt
+ skill_db.txt
+ skill_require_db.txt
+ (map/)
+ atcommand.h ƒSƒ~íœ
+ battle.c
+ battle_calc_pet_weapon_attack() •ÏX
+ battle_calc_mob_weapon_attack() •ÏX
+ battle_calc_pc_weapon_attack() •ÏX
+ clif.c
+ clif_parse_UseSkillToId() •ÏX
+ skill.c
+ skill_get_unit_id() €–ڒljÁ
+ skill_attack() ƒ`ƒƒƒ“ƒsƒIƒ“ƒRƒ“ƒ{ˆ—’ljÁ
+ skill_castend_damage_id() •ÏX
+ skill_castend_nodamage_id() •ÏX
+ skill_castend_id() •ÏX
+ skill_unitsetting() •ÏX
+ skill_check_condition() •ÏX
+ skill_use_id() •ÏX
+
+--------------------
+//0970 by (“Ê)
+EƒhƒŒƒCƒN‚̃EƒH[ƒ^[ƒ{[ƒ‹‚ªˆÙí‚É’É‚¢(121”­H‚炤)‚Ì‚ÅLv5ˆÈã‚ÌꇂÍ25”­‚ɧŒÀ
+EƒVƒOƒiƒ€ƒNƒ‹ƒVƒX‚ÌŒvŽZŽ®‚ð14+SkillLv‚©‚ç10+SkillLv*2•ÏX
+Eƒ\[ƒX‚Ì‹C‚ªŒü‚¢‚½‚Æ‚±‚ë‚É—Ž‘‚«
+EDBŠÖŒW‚ð‚Ü‚Æ‚ß‚Ä“¯«
+
+ (map/)
+ battle.c ƒRƒƒ“ƒgQY(BB)¶·¶·
+ skill.c skill_status_change_start()
+ (db/)
+ cast_db.txt
+ item_db.txt
+ mob_skill_db.txt
+ skill_db.txt
+ skill_require_db.txt
+ skill_tree.txt
+
+--------------------
+//0969 by ‚Ò‚´‚Ü‚ñ
+
+E”’nŽæ‚èó‘ԂŕЕû‚ªŽ€–S‚µ‚½ê‡A•Ð•û‚Ì”’nŽæ‚肪‰ðœ‚³‚ê‚È‚¢–â‘èC³
+Ebattle_athena.conf‚É€–ڒljÁ
+@ƒyƒbƒgEƒvƒŒƒCƒ„[Eƒ‚ƒ“ƒXƒ^[‚Ì–³‘®«’ÊíUŒ‚‚ð‘®«–³‚µ‚É‚·‚é‚©”Û‚©‚ðÝ’è‚Å‚«‚Ü‚·
+@Ú‚µ‚­‚Íconf_ref‚ðB
+E—ƒRƒ}ƒ“ƒh@idsearchŽÀ‘•
+@ƒ[ƒh‚µ‚½item_db‚©‚猟õŒê‹å‚Ƀ}ƒbƒ`‚·‚éƒAƒCƒeƒ€‚ÆID‚ð—…—ñ‚·‚éƒRƒ}ƒ“ƒh‚Å‚·
+@—Ⴆ‚Îu@idsearch ƒŒƒCv‚Æ“ü—Í‚µ‚½ê‡AƒuƒŒƒCƒh‚⃌ƒCƒhƒŠƒbƒNƒJ[ƒh“™‚ªˆø‚Á‚©‚©‚è‚Ü‚·
+EƒAƒVƒbƒhƒeƒ‰[‚ƃfƒ‚ƒ“ƒXƒgƒŒ[ƒVƒ‡ƒ“ŽÀ‘•
+@‘•”õ”j‰ó‚Í–¢ŽÀ‘•‚Å‚·
+EƒCƒhƒDƒ“‚Ì—ÑŒç‚̉ñ•œŽd—l‚ðŠÛ‚²‚Æ•ÏXB
+ (map/)
+ battle.c
+ battle.h
+ ‘®«•â³‚ÌC³‚âƒAƒVƒbƒhƒeƒ‰[Eƒfƒ‚ƒ“ƒXƒgƒŒ[ƒVƒ‡ƒ“‚̃_ƒ[ƒWŽZoŽ®’ljÁ“™B
+ battle_config‚É€–ڒljÁ
+ skill.c
+ skill_idun_heal()’ljÁBforeachinarea‚ň—‚·‚é‚悤‚É•ÏX
+ ƒAƒVƒbƒhƒeƒ‰[‚ƃfƒ‚ƒ“ƒXƒgƒŒ[ƒVƒ‡ƒ“‚̈—’ljÁB
+ atcommand.c
+ atcommand.h
+ @idsearch’ljÁB
+
+--------------------
+//0968 by ŒÓ’±—–
+
+EƒLƒƒƒ‰ƒNƒ^[ID‚ªŽg‚¢‚܂킳‚ê‚È‚¢‚悤‚ÉC³
+EƒLƒƒƒ‰ƒNƒ^[휎žAƒp[ƒeƒB[AƒMƒ‹ƒh‚ð’E‘Þ‚·‚é‚悤‚ÉC³
+EƒAƒJƒEƒ“ƒg휎žAƒLƒƒƒ‰ƒNƒ^[‚Æ‘qŒÉ‚ð휂·‚é‚悤‚ÉC³
+E‘qŒÉ/ƒMƒ‹ƒh‘qŒÉ휎žA‘qŒÉ“à‚̃yƒbƒg‚ð휂·‚é‚悤‚ÉC³
+ E’ˆÓFƒƒOƒCƒ“‚µ‚Ä‚¢‚éƒAƒJƒEƒ“ƒg‚ð휂µ‚½ê‡‚Ì“®ì‚Í•s–¾
+
+ (char/)
+ char.c
+ ƒpƒPƒbƒg2730‚̈—Achar_delete()’ljÁA휈—C³‚È‚Ç
+ int_storage.c/int_party.c/int_guild.c/int_party.h/int_guild.h
+ inter_party_leave(),inter_guild_leave()’ljÁA
+ inter_storage_delete(),inter_guild_storage_delete()C³‚È‚Ç
+ (login/)
+ login.c
+ parse_admin()‚ðƒAƒJƒEƒ“ƒg휎ž‚ɃpƒPƒbƒg2730‚ð‘—‚é‚悤‚ÉC³
+
+Eathena-start stop ‚Å’âŽ~‚³‚¹‚½ê‡Aƒf[ƒ^‚ª•Û‘¶‚³‚ê‚È‚¢–â‘è‚ðC³
+ kill‚Å‘—‚éƒVƒOƒiƒ‹‚ðSIGKILL‚©‚çSIGTERM‚É•ÏXB
+ ‚Ç‚¤‚µ‚Ä‚àSIGKILL‚𑗂肽‚¢ê‡‚Í athena-start kill ‚ðŽg‚Á‚Ä‚­‚¾‚³‚¢B
+
+ athena-start
+ stopC³Akill’ljÁ
+
+--------------------
+//0967 by Asong
+Eƒ‚ƒ“ƒXƒ^[‚ÌŽc‰e‚ðŽÀ‘•B
+@’Ê탂ƒ“ƒXƒ^[‚̓XƒLƒ‹‚É‚æ‚éƒtƒBƒ‹ƒ^[‚ª‚©‚©‚ç‚È‚¢‚Ì‚ÅŽc‘œ‚ªo‚Ü‚¹‚ñB
+@‚o‚bŒ^ƒ‚ƒ“ƒXƒ^[‚É‚ÍŽc‘œ‚ªo‚Ü‚·B
+Eƒ‚ƒ“ƒXƒ^[ƒXƒLƒ‹Žg—p‘ÎÛ‚ð’ljÁB
+@around5`around8‚̓^[ƒQƒbƒg‚ÌŽü•ÓƒZƒ‹‚ð‘ÎÛ‚É‚µ‚Ü‚·B
+@
+@ (map)
+@ mob.c
+@ mobskill_use() C³
+@ mob_readskill() C³
+@ mob.h C³
+@ skill.c
+@ skill_castend_pos2() C³
+
+--------------------
+//0966 by (“Ê)
+EƒT[ƒo[snapshot
+EƒfƒBƒŒƒNƒgƒŠ\‘¢‚ð•ÏX(common,login,char,map‚Í/srcˆÈ‰º‚Ɉړ])
+@‚»‚ê‚É”º‚¤Makefile“™‚̃pƒX‘‚«Š·‚¦
+Enpc_turtle.txt‚ðnpc_town_alberta.txt‚É“‡
+Eƒ‚ƒ“ƒN‚̃Rƒ“ƒ{‚ÉŠÖ‚·‚éƒfƒBƒŒƒC‚ð•ÏX
+Ebattle_config.enemy_critical‚̃fƒtƒHƒ‹ƒg‚ðno‚É•ÏX
+E“]¶E“™‚𖳌ø‚É‚·‚éenable_upper_class‚̒ljÁ
+E@joblvup,@charjlvl‚ÅJobƒŒƒxƒ‹‚ªÅ‚‚Ì‚Æ‚«‚É•‰”‚ðŽw’肵‚Ä‚àƒŒƒxƒ‹‚ð‰º‚°‚ç‚ê‚È‚©‚Á‚½–â‘è‚ðC³
+
+ (conf)
+ battle_athena.conf C³
+ (doc)
+ conf_ref.txt C³
+ (map)
+ atcommand.c
+ atcommand_joblevelup() C³
+ atcommand_character_joblevel() C³
+ battle.c
+ battle_calc_attack() C³
+ battle_config_read() C³
+ battle.h C³
+ pc.c
+ pc_calc_skilltree() C³
+ pc_calc_base_job() C³
+ pc_jobchange() C³
+ pc_readdb() C³
+ skill.c
+ skill_attack() C³
+--------------------
+//0965 by ‚Ò‚´‚Ü‚ñ
+E@mapexitŽÀsŽž‘SƒZƒbƒVƒ‡ƒ“‚ðkick‚·‚é‚悤‚É•ÏXB
+E”’nŽæ‚莞‚ɕЕû‚ª“|‚ê‚Ä‚àA‚à‚¤•Ð•û‚Ì”’n‚ª‰ðœ‚³‚ê‚È‚¢–â‘èC³B(–¢ƒeƒXƒg)
+EƒXƒeƒB[ƒ‹î•ñŒöŠJ‹@”\ŽÀ‘•B(–¢ƒeƒXƒg)
+@ƒXƒeƒB[ƒ‹‚ɬŒ÷‚·‚é‚ÆA‰½‚ðƒXƒeƒB[ƒ‹‚µ‚½‚Ì‚©
+@‰æ–Ê“à‚ÌPTƒƒ“ƒo[‘Sˆõ‚É’m‚点‚é‹@”\‚Å‚·B
+@battle_athena.conf‚Ìshow_steal_in_same_party‚ÅÝ’è‚Å‚«‚Ü‚·B
+@ƒIƒŠƒWƒiƒ‹ƒAƒbƒvƒf[ƒg‚̈×AƒfƒtƒHƒ‹ƒg‚Íno‚É‚µ‚Ä‚¢‚Ü‚·B
+EƒCƒhƒDƒ“‚Ì—ÑŒç‚̉ñ•œŒø‰ÊŽÀ‘•B
+
+ (conf/)
+ battle_athena.conf‚É€–ڒljÁB
+ (map/)
+ atcommand.c
+ atcommand_mapexit() C³B
+ pc.c
+ pc_steal_item() C³B
+ pc_show_steal() ’ljÁB
+ skill.c
+ skill_unitsetting()Askill_unit_onplace() C³B
+ battle.c
+ battle_config_read() C³B
+ battle.h C³B
+ (doc/)
+ conf_ref.txt ”²‚¯‚Ä‚½‚Ì‚ðFX’ljÁB
+
+--------------------
+//0964 by (“Ê)
+
+E‚±‚Ì‘O’ljÁ‚µ‚½skill_tree2.txt‚ð”pŽ~‚µ‚½‚Ì‚Å휂µ‚Ä‚­‚¾‚³‚¢
+Eskill_tree.txt‚̃tƒH[ƒ}ƒbƒg‚ð•ÏX•Kalen‚³‚ñ‚È‚Ç‚Ìî•ñ‚ðŒ³‚É“]¶ƒcƒŠ[‚ÌŒ©’¼‚µ
+E‚»‚ê‚É‚Æ‚à‚È‚Á‚Äpc.c‚̃tƒ@ƒCƒ‹“Ç‚Ýo‚µ•”•ª‚È‚Ç‚ð•ÏX
+EAthenaŽG’kƒXƒŒƒbƒh part3 >>14 miya‚³‚ñ‚ÌŽw“E‚ª‚ ‚é‚Ü‚Å‚·‚Á‚©‚è–Y‚ê‚Ä‚¢‚½atcommand_athena.conf‚ÌC³‚𓯫
+
+ (conf/)
+ atcommand_athena.conf C³
+ (db/)
+ skill_tree.txt C³
+ skill_tree2.txt ”pŽ~
+ (map/)
+ map.h PC_CLASS_BASE“™’ljÁ
+ pc.c
+ pc_calc_skilltree() C³
+ pc_allskillup() C³
+ pc_readdb() C³
+
+--------------------
+//0963 by (“Ê)
+
+E@jobchange2, @jobchange3”pŽ~ @jobchange‚Ɉø”’ljÁ @helpŽQÆ
+ —á: @jobchange2 10 ¨ @jobchange 10 1
+E“¯—l‚É@charjob2, @charjob3”pŽ~ @charjob‚Ɉø”’ljÁ @helpŽQÆ
+ —á: @charjob2 10 ‚Ù‚°‚Ù‚° ¨ @charjob 10 1 ‚Ù‚°‚Ù‚°
+E“¯—l‚ɃXƒNƒŠƒvƒg‚Ìjobchange2, jobchange3–½—ß”pŽ~ jobchange‚Ɉø”’ljÁ script_ref.txtŽQÆ
+ —á: jobchange2 10; ¨ jobchange 10,1;
+Eª‚Ç‚ê‚à’ljÁ‚³‚ꂽˆø”‚ÍÈ—ª‰Â”\‚Å‚·B‚È‚Ì‚ÅA“]¶ƒm[ƒrƒX‚ÍŒ»ó‚̃XƒNƒŠƒvƒg‚Å“]¶ˆêŽŸE‚É“]E‚Å‚«‚Ü‚·B
+ —á: Novice High ¨ @jobchange 10 ¨ Whitesmith
+ Novice ¨ @jobchange 10 ¨ Blacksmith
+EƒXƒNƒŠƒvƒg‚©‚ç“]¶‚µ‚Ä‚¢‚é‚©”»’è‚·‚邽‚ß‚ÉUpper‚ð’ljÁ‚µ‚Ü‚µ‚½BUpper 0=’Êí, 1=“]¶, 2=—{Žq
+ Upper=0‚ÌŽž‚ÉBaseLevel=99‚È‚ç“]¶‚³‚¹‚é`‚Æ‚©‚»‚¤‚¢‚¤ƒXƒNƒŠƒvƒg’N‚©‘‚¢‚Ä‚­‚¾‚³‚¢
+ ‚»‚ÌŽž‚ÉŒ³‚ÌE‹Æ‚Í‹L‰¯‚µ‚Ä‚¢‚È‚¢‚̂ʼni‘±•Ï”‚Æ‚©‚ÅŠo‚¦‚³‚¹‚Ä”»’肳‚¹‚È‚¢‚Æ“]¶Œã‰½‚É‚Å‚à“]E‚Å‚«‚¿‚ႤH
+EƒoƒCƒIƒvƒ‰ƒ“ƒg‚ƃXƒtƒBƒAƒ}ƒCƒ“‚ŌĂÑo‚³‚ê‚éMob‚Ì–¼‘O‚ð--ja--‚É‚µ‚Ämob_db.txt‚©‚ç“ǂނ悤‚É‚µ‚½
+
+ (conf/)
+ help.txt C³
+ (db/)
+ const.txt
+ (doc/)
+ help.txt C³
+ script_ref.txt C³
+ (map/)
+ atcommand.c
+ atcommand_jobchange() C³
+ atcommand_jobchange2() íœ
+ atcommand_jobchange3() íœ
+ atcommand_character_job() C³
+ atcommand_character_job2() íœ
+ atcommand_character_job3() íœ
+ map.h C³
+ pc.c
+ pc_readparam() C³
+ pc_jobchange() C³
+ pc.h C³
+ script.c
+ buildin_jobchange() C³
+ buildin_jobchange2() íœ
+ buildin_jobchange3() íœ
+ skill.c
+ skill_castend_pos2() C³
+
+--------------------
+//0962 by (“Ê)
+
+EE‹Æ‚Í0`23‚ň—‚µ‚½‚¢‚Ì‚Å“]¶E—p‚̃XƒLƒ‹ƒcƒŠ[’ljÁAeAthena‚ðŽQl‚ÉŠg’£
+ ‚Á‚Ä‚¢‚¤‚©ŠØ‘–{ƒT[ƒo‚Å‚ÌŽÀ‘•‚ÌŽ‘—¿‚ªŒ©“–‚½‚ç‚È‚¢‚Ì‚Å“K“–
+Esakexe.exe‚ð‰ðÍ‚µ‚Äskill_db.txt•ÏXA‚±‚ê‚àeAthena‚ðŽQl‚ÉŠg’£
+ ‚ǂꂪ–{ƒT[ƒo‚ÅŽÀ‘•‚³‚ê‚Ä‚¢‚éƒXƒLƒ‹‚©•ª‚©‚è‚Ü‚¹‚ñ‚ÁII
+¦ƒXƒLƒ‹ƒcƒŠ[‚ª•\Ž¦‚³‚ꂽ‚©‚ç‚Æ‚¢‚Á‚ÄŽg‚¦‚é‚킯‚¶‚á‚ ‚è‚Ü‚¹‚ñ‚ÁII
+
+ (common/)
+ mmo.h ’è”C³
+ (db/)
+ skill_db.txt •ÏX
+ skill_require_db.txt •ÏX
+ skill_tree2.txt ’ljÁ
+ (map/)
+ skill.h ’è”C³
+ pc.c
+ pc_calcstatus() C³
+ pc_allskillup() C³
+ pc_calc_skilltree() C³
+ pc_readdb() C³
+
+--------------------
+//0961 by ŒÓ’±—–
+
+EƒXƒNƒŠƒvƒg‚ɃTƒuƒ‹[ƒ`ƒ“/ƒ†[ƒU[’è‹`ŠÖ”‹@”\’ljÁ
+ Ú‚µ‚­‚̓Tƒ“ƒvƒ‹‚Æscript_ref.txt‚ð“Ç‚ñ‚Å‚­‚¾‚³‚¢B
+ ’n–¡‚É‘å‰ü‘¢‚È‚Ì‚ÅAƒXƒNƒŠƒvƒgŠÖŒW‚ŃoƒO‚ª‚ ‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB
+
+ (map/)
+ map.h/map.c
+ struct map_session_data ‚ɃXƒNƒŠƒvƒgî•ñ‘Þ”ð—p‚̃ƒ“ƒo’ljÁ
+ map_quit()C³
+ script.h/script.c
+ FXC³(run_script(),run_func()‚ªŽå)
+ npc.c
+ npc_parse_function()’ljÁ‘¼
+ (conf/sample)
+ npc_test_func.txt
+ ƒ†[ƒU[’è‹`ŠÖ”/ƒTƒuƒ‹[ƒeƒBƒ“‚̃eƒXƒgƒXƒNƒŠƒvƒg
+ (doc/)
+ script_ref.txt
+ ƒTƒuƒ‹[ƒeƒBƒ“‚È‚Ç‚Ìà–¾’ljÁ
+
+--------------------
+//0960 by (“Ê)
+E–{ŽI‘ŠˆáƒXƒŒƒbƒh part2 >>62 KK‚³‚ñ‚̃Aƒ“ƒNƒ‹ƒXƒlƒAC³‚𓯫
+EƒoƒO•ñƒXƒŒƒbƒh part5 >>14-16 rb‚³‚ñ‚̃oƒOC³‚𓯫
+EFor English User Forum >>15 Mugendai‚³‚ñ‚ÌŽw“E‚Å0x1d7‚ðŽg‚¤‚Ì‚ÍVal>255‚ÉC³(0xc3‚ÌVal‚Í1ƒoƒCƒg‚¾‚©‚ç0x1d7‚ðŽg‚¤‚Ì‚©‚Æ”[“¾)
+Epc_calc_base_job()‚ð•ÏX‚µ‚ÄŒ³job‚¾‚¯‚Å‚È‚­ƒmƒr‚©ˆêŽŸE‚©“ñŽŸE(type)A’Êí‚©“]¶‚©—{Žq(upper)‚ð•Ô‚·‚悤‚É‚µ‚½
+
+ (map/)
+ atcommand.c
+ atcommand_joblevelup() C³
+ atcommand_character_joblevel() C³
+ clif.c
+ clif_changelook() C³
+ pc.h C³
+ pc.c
+ pc_setrestartvalue() C³
+ pc_equippoint() C³
+ pc_isequip() C³
+ pc_calc_skilltree() C³
+ pc_calcstatus() C³
+ pc_isUseitem() C³
+ pc_calc_base_job() C³
+ pc_allskillup() C³
+ pc_damage() C³
+ pc_jobchange() C³
+ pc_equipitem() C³
+ script.c
+ buildin_changesex() C³
+ skill.c
+ skill_castend_nodamage_id() C³
+ skill_unit_onplace() C³
+
+--------------------
+//0959 by (“Ê)
+Ehelp.txt‚ªdoc‚¶‚á‚È‚­‚Äconf‚Ì‚ª“Ç‚Ýo‚³‚ê‚Ä‚½Q|P|›
+Egamejoke‚ðŽQl‚É“]¶“ñŽŸE‚̃Xƒe[ƒ^ƒX‰Ád’l‚ðjob_db2-2.txt‚É‹Lq
+EƒXƒNƒŠƒvƒg‚Éjobchange2‚Æjobchange3‚ð’ljÁ‚»‚ꂼ‚ê“]¶E‚Æ—{ŽqE‚Ö“]E‚³‚¹‚é–½—ß‚Å‚·
+
+ (conf/)
+ help.txt C³
+ (db/)
+ job_db2.txt C³
+ job_db2-2.txt ’ljÁ
+ (doc/)
+ help.txt C³
+ script_ref.txt C³
+ (map/)
+ pc.c
+ pc_calcstatus() C³
+ pc_readdb() C³
+ script.c
+ buildin_jobchange() C³
+ buildin_jobchange2() ’ljÁ
+ buildin_jobchange3() ’ljÁ
+
+--------------------
+//0958 by (“Ê)
+E“]¶E•û–Ê‚ÌŽÀ‘•‚ðFX
+Ed—ʧŒÀ‚Í—Ç‚­•ª‚©‚ç‚È‚¢‚Ì‚ÅŒ³‚ÌE‹Æ‚Ì’l‚ð‚»‚Ì‚Ü‚ÜŽg‚Á‚Ä‚¢‚Ü‚·(ƒ‚ƒ“ƒNƒ`ƒƒƒ“ƒsƒIƒ““™)
+E‘•”õ•i‚à“¯ãAHP‚âSP‚̃e[ƒuƒ‹‚à“¯ã‚È‚Ì‚ÅA“]¶‚µ‚Ä‚àHP‚È‚Ç‚ª‘‚¦‚È‚¢ƒKƒbƒJƒŠŽd—l‚Å‚·
+
+ (map/)
+ atcommand.c
+ atcommand_joblevelup() C³
+ atcommand_character_joblevel() C³
+ pc.c
+ pc_setrestartvalue() C³
+ pc_equippoint() C³
+ pc_isequip() C³
+ pc_calcstatus() C³
+ pc_isUseitem() C³
+ pc_calc_base_job() ’ljÁ
+ pc_damage() C³
+ pc_jobchange() C³
+ pc_equipitem() C³
+ pc.h C³
+ script.c
+ buildin_changesex() C³
+ skill.c
+ skill_castend_nodamage_id() C³
+
+--------------------
+//0957 by (“Ê)
+E@charjob2‚Æ@charjob3‚ð’ljÁAŠÖŒW‚Æ‚µ‚Ä‚Í@charjobÌ@jobchangeA@charjob2Ì@jobchange2A(ry
+E@mapexit‚ð’ljÁAmap-server‚ð—Ž‚Æ‚·ƒRƒ}ƒ“ƒh‚Å‚·atcommand_athena.conf‚Å‚Í99Ý’è‚É‚³‚ê‚Ä‚Ü‚·‚Ì‚ÅŽg—p‚É‚Í\•ª’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
+
+ (map/)
+ atcommand.c
+ atcommand_character_job2() ’ljÁ
+ atcommand_character_job3() ’ljÁ
+ atcommand.h C³
+ (conf/)
+ atcommand_athena.conf C³
+ (doc/)
+ help.txt C³
+
+--------------------
+//0956 by (“Ê)
+E“]¶E‰¼ŽÀ‘•(@jobchange2)AŒ©‚½–Ú‚ÆŒoŒ±’lƒe[ƒuƒ‹‚¾‚¯‚Å‚·
+E—{ŽqE‰¼ŽÀ‘•(@jobchange3)AŒ©‚½–Ú‚¾‚¯‚Å‚·Œ»ó‚Å‚ÍŒoŒ±’l‚Í“]¶“ñŽŸE‚Æ“¯‚¶‚Æ‚¢‚¤ƒ}ƒ]Žd—l
+¦ã‹L2“_‚Í“]¶E‚ªŽÀ‘•‚³‚ê‚Ä‚¢‚éƒNƒ‰ƒCƒAƒ“ƒg‚Å‚È‚¯‚ê‚ÎŽÀs‚·‚é‚ƃGƒ‰[—Ž‚¿‚·‚é‚Ì‚Å’ˆÓII
+@‚»‚̌㒼ڃZ[ƒuƒf[ƒ^‚ð˜M‚ç‚È‚¢‚ƃLƒƒƒ‰ƒZƒŒ‚É‚às‚¯‚È‚­‚È‚è‚Ü‚·II
+EAthenaŽG’kƒXƒŒƒbƒh part2 >>149 ‹HŽ}‚³‚ñ‚Ì•ñ‚ðŒ³‚ÉƒK[ƒfƒBƒAƒ“‚ðC³
+EԈȊO‚ŃK[ƒfƒBƒAƒ“‚Æ‚©ƒGƒ“ƒyƒŠƒEƒ€‚ð‰£‚é‚Æmap-server‚ª—Ž‚¿‚Ä‚¢‚½‚Ì‚àC³(–¢Šm”F)
+EƒXƒpƒmƒr‚ÌJobƒe[ƒuƒ‹‚ÍFor English User Forum >>13 kingbo‚³‚ñ‚̃f[ƒ^‚ðŒ³‚ÉC³
+E“]¶E‚ÌŒoŒ±’lƒe[ƒuƒ‹‚ÍOWN‚ðŽQÆ‚µ‚ÄBase99‚ÌŒoŒ±’l‚Í•s–¾‚¾‚Á‚½‚Ì‚Å“K“–‚ÉÝ’è
+
+ (map/)
+ atcommand.c
+ atcommand_jobchange() C³
+ atcommand_jobchange2() ’ljÁ
+ atcommand_jobchange3() ’ljÁ
+ atcommand.h C³
+ clif.c
+ clif_changelook() C³
+ pc.c
+ pc_nextbaseexp() C³
+ pc_nextjobexp() C³
+ pc_jobchange() C³
+ pc_readdb() C³
+ battle.c
+ battle_calc_damage() C³
+ mob_can_reach() C³
+
+--------------------
+//0955 by huge
+Eƒyƒbƒg‚̃‹[ƒg‹@”\B
+ EŽd—l‚Ímob‚̃‹[ƒg‚É‹ß‚¢Š´‚¶‚Å‚·‚ªAŽË’ö‚ð’Z‚­‚µ‚Ä‚Ü‚·B
+ EE‚Á‚½ƒAƒCƒeƒ€‚ÍAƒpƒtƒH[ƒ}ƒ“ƒX‚ð‚·‚é‚Æ°‚É—Ž‚Æ‚µ‚Ü‚·B
+ E—‘‚É–ß‚µ‚½‚èAƒƒOƒIƒt‚µ‚½‚Æ‚«‚ÍPC‚̎茳‚É“ü‚é‚悤‚É‚µ‚Ü‚µ‚½B(d—Ê’´‰ß‚̓hƒƒbƒv)
+ EE‚¦‚éŒÂ”‚̓‹[ƒgmob“¯—l‚Ì10ŒÂ‚Å‚·‚ªA11ŒÂ–Ú‚ÍE‚¢‚És‚«‚Ü‚¹‚ñB
+ Eƒ‹[ƒgŒ ‚Ì–â‘è‚©‚çAƒAƒCƒeƒ€‚Éfirst_id‚ª“ü‚Á‚Ä‚¢‚ÄA‚»‚ꂪŽ”‚¢ŽåˆÈŠO‚¾‚Á‚½‚çA‰½•bŒo‚Æ‚¤‚ÆE‚¢‚Ü‚¹‚ñB(–¢Šm”F)
+ E‚»‚ê‚ÆA‰×•¨Ž‚¿‚É‚³‚ê‚é‚Ɖˆ£‘z‚È‚Ì‚ÅAd—ʧŒÀ‚à‚‚¯‚Ü‚µ‚½B‚±‚ê‚Íconf‚ÅÝ’è‰Â”\‚Å‚·B
+Eatcommand‚ÅA@where‚ª‚¤‚Ü‚­“­‚¢‚Ä‚È‚©‚Á‚½‚Ì‚ÅC³(‚Ü‚½ƒEƒ`‚¾‚¯‚©‚È‚Ÿ¥¥¥j
+E@memo‚Åmemo‚·‚鎞‚ÍAmapflag‚𖳎‹‚·‚é‚悤‚ÉB
+EƒXƒtƒBƒAƒ}ƒCƒ“‚Ì–¼‘O‚¾‚¯C³B
+
+ (conf/)
+ battle_athena.conf
+ pet_lootitem,pet_weight ’ljÁ
+ (doc/)
+ conf_ref.txt C³
+ (map/)
+ atcommand.c
+ atcommand_memo() C³
+ atcommand_where() C³
+ battle.c
+ battle_config_read() C³
+ battle.h C³
+ map.c
+ map_quit() C³
+ map.h
+ pet_data{} C³
+ pc.c
+ pc_memo() C³
+ pet.c
+ pet_performance() C³
+ pet_return_egg() C³
+ pet_data_init() C³
+ pet_ai_sub_hard() C³
+ pet_lootitem_drop() ’ljÁ
+ pet_delay_item_drop2() ’ljÁ
+ pet_ai_sub_hard_lootsearch() ’ljÁ
+ pet.h C³
+ skill.c
+ skill_castend_pos2() C³
+
+--------------------
+//0954 by (“Ê)
+Eobject_del.bat‚ÅŠeserver.exe‚à휂·‚é‚悤‚É‚µ‚½
+EFor English User Forum >>11 kingbo‚³‚ñ‚ÌC³‚ðŽæ‚èž‚Ý
+EƒoƒO•ñƒXƒŒƒbƒh part5 >>10 Sin‚³‚ñ‚ÌC³‚ðŽæ‚èž‚Ý
+E‚‚¢‚Å‚ÉŒ©‚©‚¯‚½atcommand_character_joblevel‚Ì•s‹ï‡‚ðC³
+E@ƒRƒ}ƒ“ƒh‚ŃWƒ‡ƒuƒŒƒxƒ‹‚ðã‚°‚é‚Æ‚«‚ɃXƒpƒmƒr‚ÍJob70‚܂őΉž(–¢Šm”F)
+
+ (/)
+ object_del.bat C³
+ (map/)
+ atcommand.c
+ atcommand_joblevelup() C³
+ atcommand_character_joblevel() C³
+ atcommand_character_baselevel() C³
+
+ code by kingbo 2004/4/29 PM 06:15
+ base on 0953
+ now i sure it works well
+ (map/)
+ mob.c
+ mob_can_reach() fix
+
+--------------------
+//0953 by (“Ê)
+Emob_skill_db.txt‚ÌðŒ’l‚É0ˆÈŠO“ü‚Á‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ð’ù³
+Egcc 2.95‚ŃRƒ“ƒpƒCƒ‹‚Å‚«‚é‚悤‚É’ù³(by ƒoƒOƒXƒŒpart5 >>2 ˆ©‚³‚ñ)
+Eª‚âLinux‚È‚Ç‚ðl—¶‚µ‚Ästart‚âMakefile‚Ȃǂ̉üs‚ðLF‚É•ÏX
+E0952‚Åo‚½ƒRƒ“ƒpƒCƒ‹Œx‚ðo‚È‚¢‚悤‚ÉC³
+E0952‚ÅXV‚³‚ê‚È‚©‚Á‚½conf_ref.txt‚ðC³
+
+ (/)
+ start ‰üsƒR[ƒh•ÏX
+ athena-start ‰üsƒR[ƒh•ÏX
+ (db/)
+ mob_skill_db.txt C³
+ (doc/)
+ conf_ref.txt C³
+ (login/)
+ Makefile ‰üsƒR[ƒh•ÏX
+ (map/)
+ Makefile ‰üsƒR[ƒh•ÏX
+ atcommand.c
+ atcommand() 錾ˆÊ’uC³
+ atcommand_where() 錾ˆÊ’uC³
+ battle.c
+ battle_calc_pet_weapon_attack() C³
+ battle_calc_mob_weapon_attack() C³
+ battle_calc_pc_weapon_attack() C³
+ battle_calc_magic_attack() C³
+ clif.c
+ clif_skill_fail() 錾ˆÊ’uC³
+ guild.c
+ guild_gvg_eliminate_timer() 錾ˆÊ’uC³
+ mob.c
+ mob_damage() 錾ˆÊ’uC³
+ script.c
+ buildin_deletearray() 錾ˆÊ’uC³
+ buildin_getequipcardcnt() 錾ˆÊ’uC³
+ buildin_successremovecards() 錾ˆÊ’uC³
+
+--------------------
+//0952 by CG
+Econf‚ÅDEF‚ÆMDEF‚ÌŒvŽZ•û–@‚ð‘I‘ð‚Å‚«‚é‚悤‚ÉB
+
+ (conf/)
+ battle_athena.conf •ÏX
+ (map/)
+ battle.c
+ battle_calc_pet_weapon_attack() C³
+ battle_calc_mob_weapon_attack() C³
+ battle_calc_pc_weapon_attack() C³
+ battle_calc_magic_attack() C³
+ battle.h C³
+
+--------------------
+//0951 by (“Ê)
+EƒT[ƒo[snapshot
+EƒoƒO•ñƒXƒŒƒbƒh part4 >>95 KAJIKEN‚³‚ñ‚ÌC³‚𓯫
+E“¯ >>138 ƒoƒO‚©‚ÈH‚³‚ñ‚ÌC³‚𓯫
+EAthenaŽG’kƒXƒŒƒbƒh part2 >>112 –¼–³‚µ‚³‚ñ‚ÌPVPƒiƒCƒgƒƒAƒ‚[ƒh‚̃Aƒ“ƒ_[ƒNƒƒXƒ}ƒbƒvƒ[ƒvƒ|ƒCƒ“ƒg‚𓯫
+E“¯ >>96 ‹HŽ}‚³‚ñ‚Ìnpc_gldcheck.txt‚𓯫
+EƒXƒiƒbƒvƒVƒ‡ƒbƒg‚Ésave/‚ð“ü‚ê‚é‚Ì‚ð‚â‚ß‚Ü‚µ‚½B–³‚¢ê‡‚Íathena-start‚ªì‚Á‚Ä‚­‚ê‚Ü‚·
+Eathena-start‚Ålog/‚ª–³‚¢ê‡‚Éì‚é‚悤‚É•ÏX
+E‚»‚Ì‘¼H
+
+ (/)
+ athena-start •ÏX
+ (db/)
+ mob_db.txt •ÏX
+ (conf/)
+ map_athena.conf •ÏX
+ (conf/extension/)
+ npc_gldcheck.txt ’ljÁ
+ (conf/npc/)
+ npc_event_ice.txt •ÏX
+ npc_job_alchemist.txt •ÏX
+ npc_event_valentine.txt •ÏX
+ npc_town_geffen.txt •ÏX
+ npc_event_whiteday.txt •ÏX
+ npc_event_potion.txt •ÏX
+ npc_town_comodo.txt •ÏX
+ (conf/warp/)
+ npc_warp_pvp.txt ’ljÁ
+
+--------------------
+//0950 by (“Ê)
+Emob_db‚ÌModeƒtƒ‰ƒO‚Ɉȉº‚Ì•¨‚ð’ljÁ
+ 0x40(64) ƒ_ƒ[ƒW‚ð1‚ɌŒè(‘‚âƒNƒŠƒXƒ^ƒ‹‚È‚Ç)
+ 0x80(128) UŒ‚‚ðŽó‚¯‚½‚Æ‚«‚É”½Œ‚‚ð‚·‚é
+Eã‹L‚Ì•ÏX‚Ì‚½‚ßmob_db.txt‚Ù‚Ú‘S•”•ÏXAmob_db2.txt‚ðì‚Á‚Ä‚¢‚él‚Í
+ ‘‚È‚Ç1ƒ_ƒŒÅ’è‚É‚ÍMode‚É64‚ð‘«‚³‚È‚¢‚Æ•’ʂɃ_ƒ[ƒW
+ ‚»‚Ì‘¼Mob‚ÍMode‚É128‚ð‘«‚³‚È‚¢‚Æ”½Œ‚‚µ‚Ä‚±‚È‚­‚È‚é‚Ì‚Å’ˆÓ
+
+ (db/)
+ mob_db.txt C³
+ (map/)
+ battle.c
+ battle_calc_pet_weapon_attack()
+ battle_calc_mob_weapon_attack()
+ battle_calc_pc_weapon_attack()
+ battle_calc_magic_attack()
+ mob.c
+ mob_once_spawn()
+ mob_attack()
+ mob_target()
+ mob_ai_sub_hard()
+
+--------------------
+//0949 by ‚Ò‚´‚Ü‚ñ
+
+EƒXƒe[ƒ^ƒXˆÙí‘Ï«‘S–ÊC³B
+@‘Ï«ŽZoŽ®‘S–ÊC³B
+@ƒXƒe[ƒ^ƒXˆÙí‘Ï«100%‚̃Lƒƒƒ‰ƒNƒ^[‚É‚Íó‘ÔˆÙí‚ðs‚í‚È‚¢‚悤‚ÉC³B
+EƒfƒBƒXƒyƒ‹‚ÌŽd—l•ÏXB
+@‰ðœ‚µ‚½‚çƒVƒXƒeƒ€ã–â‘è‚Ì‚ ‚éƒXƒe[ƒ^ƒX•Ï‰»ˆÈŠO•Ð‚Á’[‚©‚ç‰ðœ‚·‚é‚悤‚ÉC³B
+EƒtƒƒXƒgƒ_ƒCƒo[‚ÌŽd—l•ÏXB
+@“€Œ‹—¦C³(ƒ}ƒWƒXƒŒƒeƒ“ƒvƒŒ€‹’)B
+EƒŠƒJƒoƒŠ[‚ÌŽd—l•ÏXB
+@ƒmƒ“ƒAƒNƒeƒBƒuƒ‚ƒ“ƒXƒ^[‚ÉŽg—p‚·‚é‚ƃ^[ƒQƒbƒg‚ªƒŠƒZƒbƒg‚³‚ê‚é‚悤‚ÉC³B
+EƒNƒ@ƒOƒ}ƒCƒA‚ÌŽd—l‚ªƒAƒŒ‚¾‚Á‚½‚Ì‚ÅC³B
+@‰‰‘t‚â‘®«ê‚Æ“¯—l‚Érange‚ň—‚·‚é‚悤‚ÉC³B
+@DEX/AGI”¼Œ¸‚̉e‹¿‚ª‰r¥ˆÈŠO‚É‚à‹y‚Ô—l‚ÉC³B
+EƒXƒLƒ‹ƒ^[ƒQƒbƒg’†‚ÉŽ€‚ñ‚¾U‚è‚ðŽg—p‚µ‚Ä‚àƒXƒLƒ‹‚ª‰ñ”ð‚Å‚«‚È‚¢–â‘èC³B
+E”’nŽæ‚肪“®ì‚µ‚È‚¢–â‘èC³(cast_db‚ª”²‚¯‚Ä‚Ü‚µ‚½)B
+ (map/)
+ pc.c
+ pc_calcstatus()C³
+ skill.c
+ skill_additional_effect()Askill_attack() C³
+ skill_status_change_start()Askill_unitsetting() C³
+ (db/)
+ cast_db.txt C³B
+
+--------------------
+//0948 by ŒÓ’±—–
+
+Ewarpwaitingpc‚ª³‚µ‚­PC‚ð“]‘—‚Å‚«‚È‚¢–â‘è‚ðC³
+EƒXƒNƒŠƒvƒg‚Ì“Ç‚Ýž‚ÝŽž‚ɃGƒ‰[‚Ü‚½‚ÍŒx‚ªo‚éê‡AŒx‰¹‚ð–‚炷‚悤‚ÉB
+ i—¬‚ꂽƒƒO‚ðŒ©‚È‚¢l‘Îô‚Å‚·j
+
+ (map/)
+ script.c
+ buildin_warpwaitingpc()C³
+ disp_error_message()C³
+
+Eatcommand.cC³
+ Eatcommand_athena.conf‚Ìmapmove‚ð“ǂނ悤‚É
+ E@str‚È‚Ç‚ÌÈ—ªŽž‚Ì•K{ƒŒƒxƒ‹‚ð0‚ÉB
+ E@param‚ÍŽg‚í‚È‚¢‚̂ŃRƒƒ“ƒg‰»
+
+ (map/)
+ atcommand.c
+ ŠY“–ŒÂŠC³
+
+Emob‚ªÅ‘å15•b‚قLjړ®‚µ‚È‚¢ê‡‚ª‚ ‚é–â‘èC³
+ EŽè”²‚«‚Å‚È‚¢mobˆ—‚ÅAˆÚ“®‚µ‚È‚¢ŽžŠÔ‚ª7•bˆÈ㑱‚©‚È‚¢‚悤‚ÉC³
+
+ (map/)
+ mob.c
+ mob_ai_sub_hard()C³
+
+E‰õ‘¬‘Dˆõ‚̈ɓ¤`s‚«‚Ì”»•ÊŽ®C³ (by ID:F8nKKuY)
+ (conf/npc/)
+ npc_town_comodo.txt
+
+--------------------
+//0947 by (“Ê)
+EŽæ‚芪‚«‚ÍŽæ‚芪‚«‚𢊫‚µ‚È‚¢‚悤‚ÉC³
+E˜I“V‚̔̔„‰¿Ši‚ÌãŒÀ‚ðbattle_athena.conf‚ÅÝ’è‚Å‚«‚é‚悤‚ÉC³
+
+ (conf/)
+ battle_athena.conf
+ vending_max_value’ljÁ
+ (doc/)
+ conf_ref.txt C³
+ (map/)
+ skill.c
+ skill_castend_nodamage_id() C³
+ battle.c
+ battle_config_read() C³
+ battle.h C³B
+ vending.c
+ vending_openvending() C³B
+
+--------------------
+//0946 by Kalen
+Eƒvƒ–kWarpŒ©’¼‚µ
+ŽQlF–{ŽI(1F,2F)‚ç‚®‚Ȃ̉½‚©(3F)
+ (conf/warp/)
+ npc_warp.txt
+
+EŒê‚è•”‚Ì2T3T’ljÁ(‚Ç‚¤‚¹Œ©‚È‚¢‚ÆŽv‚¢‚Ü‚·‚ªc)
+ (conf/npc/)
+ npc_event_kataribe.txt
+
+--------------------
+//0945 by ŒÓ’±—–
+
+ENPCƒ^ƒCƒ}[ƒ‰ƒxƒ‹ƒf[ƒ^‚ª³‚µ‚­ƒCƒ“ƒ|[ƒg‚³‚ê‚È‚¢–â‘è‚ðC³
+ENPCƒ^ƒCƒ}[‰Šú’l‚âƒ^ƒCƒ}[ID‚ª³‚µ‚­‰Šú‰»‚³‚ê‚È‚¢–â‘è‚ðC³
+ENPC‚Ìduplicate‚ðs‚¤‚ƃAƒNƒZƒXˆá”½‚ª‹N‚±‚éꇂª‚ ‚é–â‘è‚ðC³
+
+ (map/)
+ npc.c
+ npc_parse_scriptC³
+
+Eƒpƒbƒ`ƒAƒbƒvƒXƒŒ‚S‚Ì87‚Ìpc.c‚Ƃ肱‚Ý
+ (map/)
+ pc.c
+ ƒJ[ƒhd—ʧŒÀ‚ðŒ³‚É–ß‚µ‚½‚à‚Ì
+
+--------------------
+//0944 by huge
+EƒMƒ‹ƒh‚Ìã”[ŒoŒ±’l‚ÌãŒÀ‚ðAconf‚ŧŒÀ‚Å‚«‚é‚悤‚ÉB
+E˜I“X‚̔̔„‰¿Ši‚ð10M‚܂łɧŒÀB
+EƒJ[ƒg‚Ìd—ʧŒÀ‚ªˆêŒ…‰º‚ª‚Á‚Ä‚½‚ñ‚Å‚·‚ªAƒEƒ`‚¾‚¯‚Å‚·‚©HC³‚µ‚Ä‚Ý‚Ü‚µ‚½‚ªB
+
+ (conf/)
+ battle_athena.conf
+ guild_exp_limit’ljÁ
+ (doc/)
+ conf_ref.txt C³
+ (map/)
+ atcommand.c
+ ‘h¶Žž‚ÌSP‰ñ•œ‚ÅAׂ©‚¢C³B
+ battle.c
+ battle_config_read() C³
+ battle.h C³B
+ guild.c
+ guild_change_position() C³B
+ pc.c
+ pc_calcstatus() C³B
+ vending.c
+ vending_openvending() C³B
+
+--------------------
+//0943 by (“Ê)
+Ebattle_athena.conf‚Ådead_branch_active‚ðyes‚É‚·‚é‚ƌÖ؂̎}‚Å¢Š«‚³‚ê‚郂ƒ“ƒXƒ^[‚ªƒAƒNƒeƒBƒu‚É‚È‚é‚悤‚É•ÏX
+E”÷–­‚É•ÏX‚µ‚½client_packet.txt‚𓯫
+
+ (conf/)
+ battle_athena.conf
+ dead_branch_active’ljÁ
+ (doc/)
+ client_packet.txt C³
+ conf_ref.txt C³
+ (map/)
+ battle.c
+ battle_config_read() C³
+ battle.h C³
+ map.h C³
+ mob.c
+ mob_once_spawn() C³
+ mob_attack() C³
+ mob_target() C³
+ mob_ai_sub_hard_lootsearch() C³
+ mob_ai_sub_hard() C³
+
+E‰pŒêƒXƒŒ‚Ìkingbo‚³‚ñ‚Ì•ÏX‚𓯫
+ code by kingbo 2004/4/16 PM 09:47
+
+ support guildcastle guardian
+ maybe still have problems..need to try
+ Good Luck Q^^Q
+ P.S: sorry my poor english ^^a
+
+ (map/)
+ mob.c
+ mob_can_reach() fix
+ battle.c
+ battle_calc_damage() fix
+
+ (conf/gvg/)
+ prtg_cas01_guardian.txt
+
+--------------------
+//0942 by ŒÓ’±—–
+
+EƒAƒNƒZƒXƒRƒ“ƒgƒ[ƒ‹‚Å•s³‚ȃƒ‚ƒŠ‚ɃAƒNƒZƒX‚·‚éꇂª‚ ‚éƒoƒO‚ðC³
+ (login/)
+ login.c
+ check_ipmask()C³
+
+EƒXƒNƒŠƒvƒgƒŠƒtƒ@ƒŒƒ“ƒX­‚µ’ljÁ‚ÆC³
+ (doc/)
+ script_ref.txt
+ C³
+
+--------------------
+//0941 by (“Ê)
+
+Ee2‚³‚ñ‚Ì•ñ‚ðŒ³‚É¢Š«‚³‚ꂽŽè‰º‚̃Xƒs[ƒh‚𢊫Žå‚Æ“¯‚¶‚É‚µ‚Ä‚Ý‚é
+
+ (map/)
+ battle.c
+ battle_get_speed() C³
+ mob.c
+ mob_spawn() C³
+ mob_summonslave() C³
+
+--------------------
+//0940 by End_of_exam
+
+Eƒq[ƒ‹‚âƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[‚ðŽg—p‚µ‚Ä‚à‰ñ•œ‚µ‚È‚¢ƒoƒO‚ðC³(0938`)B
+
+@Thanks for Pepermint, reporting the bug that using PotionPitcher with
+@BluePotion was no effective.
+@iƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[{‚o‚ÅŒø‰Ê‚ª‚È‚¢Ž–‚ð•ñ‚µ‚Ä‚­‚ꂽPepermintŽ‚ÉŠ´ŽÓj
+
+ (map/)
+ battle.c
+ battle_heal() C³
+
+--------------------
+//0939 by (“Ê)
+EcutinƒpƒPƒbƒg‚ð0x145(ƒtƒ@ƒCƒ‹–¼16•¶Žš)‚©‚ç0x1b3(64•¶Žš)‚É•ÏX
+E‚‚¢‚Å‚ÉŽG’kƒXƒŒ‚Éã‚°‚½athena-start‚𓯫
+
+ (/)
+ athena-start saveƒtƒ@ƒCƒ‹‚ª–³‚¢‚Æ‚«‚Éì‚é‚悤‚É
+ (map/)
+ clif.c
+ clif_cutin() –{ŽIƒpƒPƒbƒg€‹’‚É•ÏX
+ (doc/)
+ client_packet.txt C³
+
+--------------------
+//0938 by ‚Ò‚´‚Ü‚ñ
+
+Eƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[‚Ń|‚ð“Š‚°‚Ä‚àƒGƒtƒFƒNƒg‚¾‚¯‚¾‚Á‚½ƒoƒOC³B
+E˜I“XŠJÝ‚ª“Á’è‚̃AƒCƒeƒ€”z’u‚ÅŽ¸”s‚·‚éƒoƒOC³B
+EƒXƒNƒŠƒvƒgŠÖ”getareadropitemŽÀ‘•B
+@Žw’èƒGƒŠƒA“à‚̃hƒƒbƒvƒAƒCƒeƒ€‚ðƒJƒEƒ“ƒg‚·‚éŠÖ”‚Å‚·
+
+@‘Ž®Fgetareadropitem <mapname>,<x0>,<y0>,<x1>,<y1>,<item>;
+@@mapnameF‘ÎÛƒ}ƒbƒv–¼(—áFprontera.gat)
+@@x0‚Æx1F‘ÎÛXÀ•W”͈Í
+@@y0‚Æy1F‘ÎÛYÀ•W”͈Í
+@@itemFƒJƒEƒ“ƒg‚·‚é‘ÎÛƒAƒCƒeƒ€
+
+@–ß‚è’lFmapname“àÀ•W(x0,y0)-(x1,y1)‚͈͓̔à‚É—Ž‚¿‚Ä‚¢‚éitem‚Ì‘ŒÂ”
+@@@@@Žæ“¾Ž¸”sŽž‚É‚Í-1‚ð•Ô‚µ‚Ü‚·B
+@Eitem‚Ì’l‚ÍID‚Å‚àƒAƒCƒeƒ€–¼("Red_Jemstone"‚Æ‚©)‚Å‚à‚¢‚¢‚Å‚·B
+
+ (map/)
+ battle.c
+ battle_heal() C³B
+ vending.c
+ vending_openvending() C³B
+ script.c
+ ƒ[ƒJƒ‹ƒvƒƒgƒ^ƒCƒv錾C³B
+ struct buildin_func[] C³B
+ buildin_getareadropitem()Abuildin_getareadropitem_sub() ’ljÁB
+
+--------------------
+//0937 by netwarrior
+
+- Fix Japanese remarks problem in 0936
+- Fix minor problem in battle_heal()
+
+--------------------
+//0936 by Pepermint
+
+Retouch about problem of increase in quantity at the CART,
+when enter the an minus quantity in the CLIENT.
+
+Retouch about problem of not recovery,use POTIONPITCHER skill.
+
+ (map/)
+ battle.c
+ battle_heal()
+
+ vending.c
+ vending_purchasereq()
+
+--------------------
+//0935 by ŒÓ’±—–
+
+E“à—e‚Ì“¯‚¶ƒXƒNƒŠƒvƒgNPC‚ð‰½“x‚à‹Lq‚µ‚È‚­‚Ä‚àŒ¾‚¢‚悤‚ÉC³
+ ENPC’è‹`‚Ì"script"‚Æ‘‚­•”•ª‚ð"duplicate(NPC–¼)"‚Æ‚·‚é‚ÆA
+ ŠY“–‚ÌNPC‚ƃXƒNƒŠƒvƒg‚ð‹¤—L‚·‚é‚悤‚ÉBNPC–¼‚Í•\Ž¦–¼‚Å‚Í‚È‚­
+ ƒGƒNƒXƒ|[ƒg‚³‚ê‚é–¼‘O‚ðŽw’肵‚Ü‚·B
+ <—á>
+prontera.gat,165,195,1 duplicate(ƒJƒvƒ‰Eˆõ) ƒJƒvƒ‰Eˆõ2 112
+
+ E‹¤—LŒ³‚ÌNPC‚Í“¯‚¶ƒ}ƒbƒvƒT[ƒo[‚É‘¶Ý‚·‚é•K—v‚ª‚ ‚邽‚ßA
+ “¯‚¶ƒ}ƒbƒv‚Å‚È‚¢ê‡‚Íduplicate‚·‚ׂ«‚Å‚Í‚È‚¢B
+ ‚½‚¾‚µANPC‚̈ʒu‚ð"-"‚É‚·‚邱‚Æ‚ÅAƒ}ƒbƒvã‚É‚Í‘¶Ý‚µ‚È‚¢‚ªA
+ ƒ}ƒbƒvƒT[ƒo[“à‚É‚Í‘¶Ý‚·‚éNPC‚ð쬂ł«‚é‚Ì‚ÅA
+ ‚»‚ÌNPC‚ð‹¤—LŒ³‚É‚·‚é‚Ì‚Å‚ ‚ê‚΂ǂ̃}ƒbƒv‚Ö‚à‹¤—L‚Å‚«‚éB
+ <—á>
+
+- script ƒeƒXƒg::test1 112,{ // ‚±‚ÌNPCƒOƒ‰ƒtƒBƒbƒNID‚ÍŽg—p‚µ‚È‚¢
+// (—ª)
+}
+prontera.gat,165,195,1 duplicate(test1) ƒeƒXƒg2 112
+geffen.gat,99,99,1 duplicate(test1) ƒeƒXƒg3 112
+
+ Eã‚̃}ƒbƒv‚É‘¶Ý‚µ‚È‚¢NPC‚̓Cƒxƒ“ƒg‚É‚à‚·‚邱‚Æ‚ª‚Å‚«‚éB
+ i‚ǂ̃}ƒbƒvƒT[ƒo[‚©‚ç‚Å‚à•K‚¸ŒÄ‚Ño‚¹‚éƒCƒxƒ“ƒg‚É‚È‚éj
+
+ (map/)
+ map.h
+ struct npc_label_list’ljÁ,struct npc_dataC³
+ npc.c
+ npc_parse_script()C³
+ •s—v‚É‚È‚Á‚½ƒ‰ƒxƒ‹ƒf[ƒ^ƒx[ƒXŠÖ˜A‚ÌŠÖ”‚ðíœ
+
+--------------------
+//0934 by ‚Ò‚´‚Ü‚ñ
+
+EMOB‚Ìó‘ÔˆÙí‘Ï«‚ª‚₽‚ç‚‚©‚Á‚½‚Ì‚ðC³B
+E‘¬“xŒ¸­‚ÌŽd—l•ÏX(¬Œ÷—¦ŒvŽZŽ®•ÏXEŽ¸”sŽž‚ɂ̓GƒtƒFƒNƒg–³‚µ)B
+E‰½Žž‚ÌŠÔ‚É‚©ó‘ÔˆÙí‚ÌŒp‚¬‘«‚µ‹ÖŽ~‚ªƒRƒƒ“ƒgƒAƒEƒg‚³‚ê‚Ä‚¢‚½‚Ì‚Å–ß‚µB
+Eƒ|ƒCƒYƒ“ƒŠƒAƒNƒg‚̃AƒCƒRƒ“•\Ž¦‚ª–³‚­‚È‚Á‚Ä‚¢‚½‚Ì‚ÅC³(‚Å‚ào‚邾‚¯c)
+E”’nŽæ‚èŽÀ‘•B
+
+ (map/)
+ battle.c
+ battle_weapon_attack() C³B
+ clif.c
+ clif_parse_WalkToXY()Aclif_parse_ActionRequest() C³B
+ clif_parse_TakeItem()Aclif_parse_UseItem() C³B
+ clif_parse_DropItem()Aclif_parse_EquipItem() C³B
+ clif_parse_UnequipItem() C³B
+ mob.c
+ mob_can_move()Amob_attack()Amob_ai_sub_hard() C³B
+ mobskill_use_id()Amobskill_use_pos() C³B
+ mobskill_castend_id()Amobskill_castend_pos() C³B
+ pc.c
+ pc_attack_timer()Apc_setpos() C³B
+ skill.c
+ SkillStatusChangeTable[] C³B
+ skill_additional_effect()Askill_castend_damage_id() C³B
+ skill_castend_nodamage_id()Askill_check_condition() C³B
+ skill_status_change_start()Askill_status_change_end() C³B
+ skill_use_id() C³B
+ skill.h C³B
+ (db/)
+ cast_db.txt C³B
+
+--------------------
+//0933 by ŒÓ’±—–
+
+EƒEƒBƒU[ƒh“]EŠNPC‰¼ŽÀ‘•
+ Eeathena‚̃f[ƒ^‚Ì–|–óA‚¨‚æ‚Ñ–^Š‚Ì̂̃f[ƒ^‚ðŒ³‚Éì‚Á‚½‚Ì‚Å
+ ŠàŽI‚Æ‚Í”÷–­‚ɈقȂÁ‚Ä‚é‚ÆŽv‚¢‚Ü‚·B
+ uŒÃ‚¢Šª•¨v‚Æ‚©Žg‚¦‚Ü‚¹‚ñ‚µB
+ EŒ»s‚Ìjob_2nd.txt‚ƈê‚É“Ç‚Ýž‚Þ‚ÆANPC‚ªd‚È‚é‚Ì‚ÅA
+ job_2nd.txt‚ÌŠY“–ƒXƒNƒŠƒvƒg‚ðƒRƒƒ“ƒg‰»‚µ‚Ä‚­‚¾‚³‚¢B
+ ‚½‚¾‚µA‚»‚Ìꇂ̓Z[ƒW‚É“]E‚³‚¹‚Ä‚à‚炦‚È‚¢‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
+
+ (conf/npc/)
+ npc_job_wizard.txt
+ ’ljÁ
+ (conf/warp/)
+ npc_warp_job.txt
+ ƒEƒBƒU[ƒh“]EŠ‚̃[ƒv‚ðƒRƒƒ“ƒg‰»
+
+EƒoƒOC³
+ Egoto‚âmenu‚щƒxƒ‹‚ªŒ©‚‚©‚ç‚È‚¢‚Æ‚«ƒXƒNƒŠƒvƒg‚ÌŽÀs‚ð’†’f‚·‚é‚悤‚É.
+ E‚P‰ñ‚̃XƒNƒŠƒvƒg‚ÌŽÀs‚É‚¨‚¢‚ÄAŽÀs–½—ß”‚ª–ñ8000‚ð’´‚¦‚é‚©A
+ goto‚âmenu‚ÌŽÀs‰ñ”‚ª–ñ500‰ñ‚ð’´‚¦‚é‚ÆŽÀs‚ð’†’f‚·‚é‚悤‚ÉB
+ EŠÖ”/–½—ߎÀsŽž‚É‚àƒGƒ‰[ƒ`ƒFƒbƒN‚ð“ü‚ꂽ
+ EƒMƒ‹ƒh/ƒp[ƒeƒB/ƒyƒbƒg‚Ì–¼‘O‚É“ú–{Œê‚ªŽg‚¦‚È‚¢–â‘èC³
+
+
+ (char/)
+ int_guild.c/int_party.c
+ –¼‘O–â‘èC³
+ (map/)
+ pet.c
+ –¼‘O–â‘èC³
+ script.c
+ C³
+
+--------------------
+//0932 by End_of_exam
+
+E0930‚ŃMƒ‹ƒh‘qŒÉ‚Ì’†g‚ªÁ‚¦‚éƒoƒO‚ðC³B
+
+ (char/)
+ int_storage.c guild_storage_tostr() C³B
+
+--------------------
+//0931 by (“Ê)
+EƒT[ƒo[snapshot
+EAthenaDBŒv‰æ‚©‚çXV‚Ì‚ ‚Á‚½•¨‚𔽉f
+Eatcommand_athena.conf‚Éstr“™‚ð’ljÁ
+Eƒ[ƒvƒ|[ƒ^ƒ‹‚Ì–{ŽI‘Šˆá“_‚ðC³
+E–¶‚³‚ñ‚Ìaldeg_cas03`05‚𓯫
+Ep‚³‚ñ‚Ìnpc_event_kataribe.txt“¯«
+EKAJIKEN‚³‚ñ‚Ìnpc_warp_louyang.txt“¯«
+
+ (db/)
+ item_db.txt •ÏX
+ (conf/)
+ atcommand_athena.conf •ÏX
+ map_athena.conf •ÏX
+ (conf/gvg/)
+ aldeg_cas03.txt •ÏX
+ aldeg_cas04.txt •ÏX
+ aldeg_cas05.txt •ÏX
+ (conf/mob/)
+ npc_monster.txt •ÏX
+ (conf/npc/)
+ npc_event_kataribe.txt ’ljÁ
+ (conf/warp/)
+ npc_warp_louyang.txt ’ljÁ
+ (map/)
+ pc.c pc_memo() •ÏX
+
+--------------------
+//0930 by ŒÓ’±—–
+
+ Šù‘¶‚Ì char/ ‚É‚ ‚élock.c‚Ælock.h‚Í휂µ‚Ä‚­‚¾‚³‚¢B
+ ‚±‚ê‚ç‚Í common/ ‚Ɉړ®‚³‚ê‚Ü‚·B
+
+EƒXƒNƒŠƒvƒg’ljÁC³
+ Esetarrayi”z—ñ‚ÖƒŠƒXƒg‘ã“üj’ljÁ
+ Ecleararrayi”z—ñ‚ðŽw’è’l‚ŃNƒŠƒAj’ljÁ
+ Ecopyarrayi”z—ñ‚ðƒRƒs[j’ljÁ
+ Egetarraysizei”z—ñ‚Ì—LŒø‚È—v‘f”‚ð‹‚ß‚éj’ljÁ
+ Edeletearrayi”z—ñ‚Ì—v‘f‚ð휂µ‚Â߂éj’ljÁ
+ EwarpwaitingpcFl”‚âƒAƒJƒEƒ“ƒgID‚ðƒ}ƒbƒv•Ï”‚ɃZƒbƒg‚·‚é‚悤‚ÉC³
+
+ (map/)
+ script.c
+ FX
+ (doc/)
+ script_ref.txt
+ –½—ߒljÁ‚È‚Ç
+ (npc/sample/)
+ npc_test_array.txt
+ ”z—ñŒnƒeƒXƒg—pNPCƒXƒNƒŠƒvƒg
+
+EƒoƒOC³‚È‚Ç
+ EƒLƒƒƒ‰ƒNƒ^[–¼/ƒAƒJƒEƒ“ƒg–¼/ƒp[ƒeƒB–¼/ƒMƒ‹ƒh–¼/ƒyƒbƒg–¼‚É
+ ƒRƒ“ƒgƒ[ƒ‹ƒR[ƒh‚ðŽg‚¦‚È‚¢‚悤‚ÉC³B
+ Echar.c‚È‚Ç‚Ì•Û‘¶‚ÌŒø—¦‚ðX‚ɃAƒbƒvB
+ E‘qŒÉƒtƒ@ƒCƒ‹/ƒMƒ‹ƒh‘qŒÉƒtƒ@ƒCƒ‹‚É‹ós‚ªŽc‚ç‚È‚¢‚悤‚ÉC³
+ Elock.*‚ðcommon/‚Ɉړ®Aƒtƒ@ƒCƒ‹‚ª•Û‘¶‚Å‚«‚È‚­‚È‚éƒoƒOC³A
+ ƒAƒJƒEƒ“ƒg‚ƃ}ƒbƒv•Ï”‚Ì•Û‘¶‚É‚àlock_fopen‚ðŽg‚¤‚悤‚ÉB
+
+ (common/)
+ lock.c/lock.h
+ ƒtƒHƒ‹ƒ_ˆÚ“®Alock_fopenC³
+ (login/)
+ login.c
+ mmo_auth_new()C³
+ (char/)
+ char.c
+ mmo_char_tostr(),make_new_char()C³
+ int_storage.c
+ storage_tostr(),guild_storage_tostr(),
+ inter_storage_save_sub(),inter_guild_storage_save_sub()C³
+ int_party.c
+ int_guild.c
+ –¼‘O–â‘èC³
+ (map/)
+ pet.c
+ –¼‘O–â‘èC³
+
+--------------------
+//0929 by ‚Ò‚´‚Ü‚ñ
+
+Eƒ‰ƒ“ƒhƒvƒƒeƒNƒ^[Š®‘SŽÀ‘•B
+Eƒvƒƒ{ƒbƒN‚̃XƒLƒ‹Žd—l•ÏX(‰r¥–WŠQE“€Œ‹AΉ»A‡–°‰ðœ)B
+EƒŠƒJƒoƒŠ[‚̃XƒLƒ‹Žd—l•ÏX(ƒAƒ“ƒfƒbƒh‚ÉŽg—p‚·‚é‚ƈê’èŠm—¦‚ňÈŌø‰Ê)B
+Eó‘ÔˆÙí’†‚Å‚à‘•”õ‚ÌØ‚è‘Ö‚¦‚ªo—ˆ‚é‚悤‚É•ÏXB
+EƒAƒCƒeƒ€Ž©“®Žæ“¾’†‚É@killmonster‚ðŽg—p‚·‚é‚Æ—Ž‚¿‚éƒoƒOC³B
+EŒÓ’±—–‚³‚ñ‚ªã‚°‚Ä‚¢‚½npc.c‚𓯫‚µ‚Ü‚µ‚½B
+Eskill_db‚Å‹C‚É‚È‚Á‚Ä‚½‚Æ‚±‚ð‚¿‚å‚±‚Á‚ÆC³B
+
+ (map/)
+ clif.c
+ clif_parse_EquipItem() C³B
+ skill.c
+ skill_castend_nodamage_id() C³B
+ skill_unitsetting()Askill_unit_onplace() C³B
+ skill_landprotector() ’ljÁB
+ mob.c
+ mob_delay_item_drop()Amob_delay_item_drop2() C³B
+ npc.c C³
+
+ (db/)
+ skill_db.txt C³B
+
+--------------------
+//0928 by End_of_exam
+
+EƒLƒƒƒ‰‚â‘qŒÉ“àƒAƒCƒeƒ€‚ªÁ‚¦‚é–â‘è‚ÉŽb’è‘ΈiƒLƒƒƒ‰ŽI‚̉ü—ÇjB
+
+@1.ƒLƒƒƒ‰ƒf[ƒ^E‘qŒÉƒf[ƒ^‚̃f[ƒ^•ÏŠ·ˆ—‚ð‰ü—ÇB
+@@(char/char.c , char/int_storage.c)
+
+@2.ƒtƒ@ƒCƒ‹‘‚«o‚µ‚ªI‚í‚é‚Ü‚ÅA‹Œƒtƒ@ƒCƒ‹‚ðŽc‚·‚悤‚ÉC³B
+@ichar/lock.c, char/lock.h ‚̒ljÁBƒƒCƒNƒtƒ@ƒCƒ‹‚ÌC³B
+@@char/int_storage.c,int_guild.c,int_party.c,int_pet.c,char.c,inter.c
+@@“à‚É‚ ‚éAƒf[ƒ^‘‚«o‚µˆ—‚ð•ÏXBj
+
+--------------------
+//0927 by ‚Ò‚´‚Ü‚ñ
+
+E•ŠíUŒ‚ˆÈŠO‚ÉŽí‘°•â³‚ª“ü‚Á‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ðC³B
+E‰‰‘t’†‚ÉŠyŠíE•ÚˆÈŠO‚Ì•Ší‚ÉŽ‚¿•Ï‚¦‚é‚Ɖ‰‘t‚ªŽ~‚Ü‚é—l‚ÉC³B
+E‰‰‘t‚ÌŒø‰Ê‚ª‰‰‘tŽÒŽ©g‚É‚Í‚©‚©‚ç‚È‚¢‚悤‚ÉC³B
+EƒAƒCƒeƒ€Ž©“®Žæ“¾‹@”\ŽÀ‘•
+@“G‚ð“|‚µ‚½Žž‚ÉAƒAƒCƒeƒ€‚ªƒhƒƒbƒv‚³‚ê‚é‚Ì‚Å‚Í‚È‚­A‚»‚Ì“G‚Ɉê”Ô‘½‚­‚̃_ƒ[ƒW‚ð
+@—^‚¦‚½l(ƒ‹[ƒgŒ 1ˆÊ‚Ìl)‚ɃhƒƒbƒvƒAƒCƒeƒ€‚ªŽ©“®‚Å—^‚¦‚ç‚ê‚é‹@”\‚Å‚·B
+@battle_athena.conf‚Ìitem_auto_get‚ÅÝ’è‚Å‚«‚Ü‚·B
+@ƒIƒŠƒWƒiƒ‹ƒAƒbƒvƒf[ƒg‚̈×Abattle_athena.conf‚ł̃fƒtƒHƒ‹ƒg‚Å‚Íno‚É‚µ‚Ä‚¢‚Ü‚·B
+E‘®«ê(ƒfƒŠƒ…[ƒWEƒoƒCƒIƒŒƒ“ƒgƒQƒCƒ‹Eƒ{ƒ‹ƒP[ƒmEƒ‰ƒ“ƒhƒvƒƒeƒNƒ^[)‰¼ŽÀ‘•
+@ˆê•”‚Ì‹@”\‚ª–¢ŽÀ‘•‚Å‚·
+@@ƒfƒŠƒ…[ƒWF…ê‚ð—p‚¢‚½ƒEƒH[ƒ^[ƒ{[ƒ‹
+@@ƒoƒCƒIƒŒƒ“ƒgƒQƒCƒ‹Fƒtƒ@ƒCƒA[ƒEƒH[ƒ‹‚ÌŽ‘±ŽžŠÔ•â³
+@@ƒ{ƒ‹ƒP[ƒmFƒAƒCƒXƒEƒH[ƒ‹‹ÖŽ~
+@@ƒ‰ƒ“ƒhƒvƒƒeƒNƒ^[FƒIƒuƒWƒFƒNƒgÝ’uŒnƒXƒLƒ‹‹ÖŽ~(‚‚܂èo‚邾‚¯‚ÌLP‚Å‚·)
+
+ (map/)
+ battle.c
+ battle_calc_damage()Abattle_calc_magic_attack() C³B
+ battle_calc_misc_attack()Abattle_config_read() C³B
+ mob.c
+ mob_delay_item_drop()Amob_delay_item_drop2() C³B
+ pc.c
+ pc_calcstatus()Apc_equipitem() C³B
+ skill.c
+ ƒ[ƒJƒ‹ƒvƒƒgƒ^ƒCƒv錾C³B
+ SkillStatusChangeTable[] C³B
+ skill_castend_nodamage_id()Askill_castend_pos2() C³B
+ skill_unitsetting()Askill_unit_onplace() C³B
+ skill_unit_onout()Askill_unit_ondelete() C³B
+ skill_status_change_start()Askill_status_change_end() C³B
+ skill_clear_element_field() ’ljÁB
+ battle.h C³B
+ skill.h C³B
+ (conf/)
+ battle_athena.conf
+ item_auto_get€–Ú‚ð’ljÁB
+ (db/)
+ cast_db.txt C³B
+
+--------------------
+//0926 by ŒÓ’±—–
+
+EƒMƒ‹ƒhé‚̉Šú‰»•û–@•ÏX
+ E‘S‚ẴMƒ‹ƒhéi{è‹’ƒMƒ‹ƒhî•ñj‚ðŠ“¾‚µ‚½‚Æ‚«‚ÉOnAgitInit‚ª
+ ‚æ‚΂ê‚é‚悤‚ÉBGetCastleData‚âRequestGuildInfo‚Ì•K—v‚ª‚È‚­‚È‚è‚Ü‚·B
+ ]‚Á‚ÄAŒ»Ý‚ÌgvgƒXƒNƒŠƒvƒg‚ÌOnInterIfInit‚âOnRecvCastleXXX‚Í
+ •K—v‚È‚­‚È‚è‚Ü‚·Bi‚¨‚»‚ç‚­Œ»s‚̃XƒNƒŠƒvƒg‚à“®ì‚͉”\‚Å‚·j
+ ‰Šú‰»‚ª•K—v‚ÈNPC‚Í•Ï‚í‚è‚ÉOnAgitInit‚ðŽg‚Á‚Ä‚­‚¾‚³‚¢B
+ ‚È‚¨A•s—v‚É‚È‚Á‚½–½—ß‚È‚Ç‚ð휂·‚é—\’è‚Í‚ ‚è‚Ü‚¹‚ñB
+
+ (char/)
+ inter.c/inter.h/char.c/int_guild.c/int_guild.h
+ ƒ}ƒbƒvƒT[ƒo[Ú‘±Žž‚Ɉ—‚ðs‚¦‚é‚悤‚ÉC³
+ Ú‘±Žž‚ɃMƒ‹ƒhéƒf[ƒ^‚ð‘—M‚·‚é‚悤‚É
+ (map/)
+ intif.c/guild.c/guild.h
+ Ú‘±Žž‚̃Mƒ‹ƒhéƒf[ƒ^ˆêŠ‡ŽóMˆ—•ƒMƒ‹ƒhî•ñ—v‹A
+ OnAgitInit‚̌ĂÑo‚µ‚È‚Ç
+ chrif.c
+ ‹ŒOnAgitInit‚̌ĂÑo‚µíœ
+ (doc/)
+ inter_server_packet.txt
+ ƒMƒ‹ƒhéƒf[ƒ^ˆêŠ‡‘—MƒpƒPƒbƒg0x3842’ljÁ
+
+EƒXƒNƒŠƒvƒg‚ÉNPCŽå‘̃Cƒxƒ“ƒgŽÀs–½—ߒljÁ
+ Edonpcevent(NPCŽå‘̃Cƒxƒ“ƒgŽÀs)’ljÁ
+ ‚±‚¿‚ç‚Ídoevent‚ƈႢƒuƒ[ƒhƒLƒƒƒXƒg‰Â”\‚Å‚·BÚׂÍscript_refB
+ Eisloggedin‚̃Rƒ“ƒpƒCƒ‹Œx‚ª‚Å‚È‚¢‚悤‚ÉC³
+ (map/)
+ script.c
+ buildin_donpcevent()’ljÁ‚È‚Ç
+ (doc/)
+ script_ref.txt
+ doevent,donpcevent,OnAgitInit’ljÁ‚È‚Ç
+
+E‚»‚Ì‘¼C³
+ (map/)
+ clif.c
+ clif_parse_GMReqNoChat()’ljÁ
+
+
+--------------------
+//0925 by ŒÓ’±—–
+
+EƒXƒNƒŠƒvƒg‚̃oƒOC³
+ Emonster,areamonster‚Ì–â‘èC³
+ ‚±‚ê‚ç‚Íscript_rid2sd‚ðŽg—p‚µ‚È‚¢‚悤‚É‚µ‚Ü‚µ‚½B
+ sd‚ªNULL‚Ì‚Æ‚«AƒŒƒxƒ‹ƒ`ƒFƒbƒN‚ðs‚í‚È‚¢‚悤‚É‚µ‚Ü‚µ‚½B
+
+ (map/)
+ script.c/mob.c
+ buildin_monster(),buildin_areamonster(),mob_once_spawn()‘¼
+
+EƒXƒNƒŠƒvƒg‚Ì‹@”\’ljÁ
+ Edetachrid–½—ßiƒvƒŒƒCƒ„[‚̃fƒ^ƒbƒ`j’ljÁ
+ EisloggedinŠÖ”iƒvƒŒƒCƒ„[‚̃ƒOƒCƒ“ƒ`ƒFƒbƒNj’ljÁ
+ Egetitem,getitem2–½—ß,countitem,checkweightŠÖ”‚Å
+ nameid‚ɃAƒCƒeƒ€‚Ì–¼‘O‚ðŽw’è‰Â”\‚ÉB
+ (item_db‚ȂǂɈˑ¶‚·‚邽‚ßAŽg—p‚·‚ׂ«‚Å‚Í‚ ‚è‚Ü‚¹‚ñ‚ªAˆê‰ž)
+
+ (map/)
+ script.c
+ FX
+ (doc/)
+ script_ref.txt
+ •ÏX•”•ª‚ƃGƒ‰[à–¾C³
+
+Eathena-start‚Æstart‚ðC³
+ Eathena-start stop‚ŃvƒƒZƒX‚ªI—¹‚·‚é‚܂ő҂‚悤‚É
+ Estart‚ÅÄ‹N“®‚³‚¹‚é‚Æ‚«athena-start restart‚ðŒÄ‚Ԃ悤‚ÉB
+
+--------------------
+//0924 by (“Ê)
+
+EƒoƒO•ñƒXƒŒƒbƒh part4 >>66‚Ìnpc‚ðŽæ‚èž‚Ý
+E“¯ >>51‚Ìguild.c‚𔽉f
+E“¯ >>38‚Ìatcommand_athena.conf‚Ö‚Ì•ÏX‚ðŽæ‚èž‚Ý
+E‚È‚º‚©npcƒtƒHƒ‹ƒ_‚É‚ ‚Á‚Ämap_athena.conf‚È‚¢ƒtƒ@ƒCƒ‹‚ðˆê——‚ɒljÁB‚‚¢‚łɃMƒ‹ƒhƒtƒ‰ƒbƒO‚̃Rƒƒ“ƒgƒAƒEƒg‚ð‰ðœ
+Econf/npc/npc_job_1st.txt npc_script2.txt npc_shop3.txt‚̓XƒiƒbƒvƒVƒ‡ƒbƒg‚©‚ç휂µ‚Ä‚­‚¾‚³‚¢
+
+ (map/)
+ guild.c C³
+ (conf/)
+ map_athena.conf C³
+ atcommand_athena.conf C³
+ (conf/npc/)
+ npc_event_hat.txt C³
+ npc_event_oni.txt C³
+ npc_job_1st.txt íœ
+ npc_script2.txt íœ
+ npc_shop3.txt íœ
+
+--------------------
+//0923 by ŒÓ’±—–
+
+EƒXƒNƒŠƒvƒg‚̃oƒOC³
+Escript_rid2sd‚ªŽ¸”s‚µ‚Ä‚àƒT[ƒo[‚ðI—¹‚µ‚È‚¢‚悤‚É•ÏX
+ Emonster,areamonster‚È‚Ç‚ªŽÀs‚Å‚«‚È‚¢–â‘èC³
+
+ (map/)
+ script.c/mob.c
+ buildin_monster()‚È‚ÇC³
+
+ (doc/)
+ script_ref.txt
+ ƒ‰ƒxƒ‹‚ƃGƒ‰[‚Ìà–¾C³
+
+--------------------
+//0922 by ŒÓ’±—–
+
+EƒXƒNƒŠƒvƒgƒGƒ‰[‚Ìs”Ô†‚ª³‚µ‚­•\Ž¦‚³‚ê‚é‚悤‚É
+
+ (map/)
+ itemdb.c / npc.c
+ itemdb_readdb(),npc_parse_script()C³
+
+EƒLƒƒƒ‰ƒNƒ^[î•ñ‚ɃAƒNƒZƒX‚Å‚«‚È‚¢ó‘ԂŃAƒNƒZƒX‚·‚é‚ƃGƒ‰[‚ðo‚·‚悤‚ÉC³
+Egoto/menu‚щƒxƒ‹‚ªŽw’肳‚ê‚éꊂɃ‰ƒxƒ‹ˆÈŠO‚ªŽw’肳‚ê‚é‚ÆŒx‚ðo‚·‚悤‚É
+Escript_ref‚ɃGƒ‰[ƒƒbƒZ[ƒW‚Ìà–¾’ljÁ
+EƒCƒxƒ“ƒg‹N“®‚³‚ꂽƒXƒNƒŠƒvƒg‚ŃLƒƒƒ‰ƒNƒ^[‚ðŽg—p‚Å‚«‚é‚悤‚É‚·‚éŠÖ”’ljÁ
+ EattachridiŽw’肵‚½ID‚Ìî•ñ‚ðŽg—p‚Å‚«‚é‚悤‚É‚·‚éj’ljÁ
+ Egetcharidi3‚ŃAƒJƒEƒ“ƒgID‚ðŠ“¾‚Å‚«‚é‚悤‚ÉjC³
+ (map/)
+ script.c
+ script_rid2sd(),buildin_attachrid()’ljÁ
+ ‘½XC³B
+ (doc/)
+ script_ref.txt
+ ƒGƒ‰[ƒƒbƒZ[ƒW‚Ìà–¾’ljÁA•Ï”/ƒ‰ƒxƒ‹‚Ìà–¾C³
+ ‘¼C³
+
+--------------------
+//0921 by RR
+EƒXƒNƒŠƒvƒgƒoƒOC³(‚²–À˜f‚ð‚¨‚©‚¯‚µ‚Ü‚µ‚½)
+ (conf/npc/)
+ npc_event_tougijou.txt
+
+Esteal—¦C³(Ž©DEX - “GDEX + SLv*3 +10‚Ì•”•ª‚ňê“x”»’è‚ð‚µ‚Ä‚¢‚½‚Ì‚Å)
+E0918‚Å0914ˆÈ‘O‚ÉŠª‚«–ß‚Á‚Ä‚µ‚Ü‚Á‚Ä‚¢‚½•”•ª‚ðŒ³‚É–ß‚µ‚½
+ (map/)
+ pc.c
+ pc_steal_item() C³
+ itemdb.c
+ pet.c
+ skill.c C³
+
+--------------------
+//0920 by Ž‚Žqo^.^o
+E Steal—¦ = Drop—¦ * (Ž©DEX - “GDEX + SLv*3 +10) /100
+ (map/)
+ pc.c
+ int pc_steal_item()C³
+
+--------------------
+//0919 by RR
+Eatcommand‚Ìlvup‚ðŽg‚¤‚Ǝ擾ƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒg‚ª‚¨‚©‚µ‚¢–â‘è‚ÌC³
+EƒoƒOC³(ƒoƒO•ñƒXƒŒ‚ÅC³‚Ìo‚½‚à‚Ì‚ÌŽæ‚èž‚Ý@ŒÓ’±—–‚³‚ñAp‚³‚ñA‹¤‚É‚¨”æ‚ê—l‚Å‚·)
+ (map/)
+ atcommand.c
+ atcommand_baselevelup()C³
+ guild.c
+ guild_gvg_eliminate_timer()C³
+ pc.c
+ pc_setreg(),pc_setregstr()C³
+ (login/)
+ login.c
+ parse_login()C³
+--------------------
+//0918 by ¹
+Eitem_dbŽ©‘Ì‚ªƒI[ƒo[ƒ‰ƒCƒh‰Â”\‚É‚È‚Á‚½‚Ì‚ÅAclass_equip_db.txt‚Ì”pŽ~B
+Epet_db.txtAproduce_db.txt‚àƒI[ƒo[ƒ‰ƒCƒh‰Â”\‚ÉC³B
+ (map/)
+ itemdb.c
+ do_init_itemdb() C³B
+ pet.c
+ read_petdb() C³B
+ skill.c
+ skill_readdb() C³B
+
+--------------------
+//0917 by RR
+EƒXƒNƒŠƒvƒgC³
+ “‘¾˜YƒCƒxƒ“ƒg‚Æ“¬‹ZêƒCƒxƒ“ƒg‚ðNPCƒ^ƒCƒ}[‚É•ÏX
+ (conf/npc/)
+ npc_event_momotarou.txt
+ npc_event_tougijou.txt C³
+EƒXƒLƒ‹ƒcƒŠ[C³(ƒoƒO•ñƒXƒŒ25‚æ‚è)
+ (db/)
+ skill_db.txt C³
+
+--------------------
+//0916 by (“Ê)
+Enpc_monster‚Énpc_mob_job‚ð“‡Bnpc_mob_job.txt‚Í휂µ‚Ä‚©‚Ü‚¢‚Ü‚¹‚ñ
+
+ (conf/)
+ map_athena.conf npc_mob_job‚ðíœ
+ (conf/mob/)
+ npc_monster.txt XV
+
+--------------------
+//0915 by ŒÓ’±—–
+
+ENPCƒ^ƒCƒ}[ŠÖŒW‚Ì–½—ߒljÁ•C³‘¼
+ EdelwaitingroomiNPCƒ`ƒƒƒbƒgI—¹jˆø”‚ðŒ©‚Ä‚È‚©‚Á‚½‚Ì‚ÅC³
+ EinitnpctimeriNPCƒ^ƒCƒ}[‰Šú‰»j’ljÁ
+ EstopnpctimeriNPCƒ^ƒCƒ}[’âŽ~j’ljÁ
+ EstartnpctimeriNPCƒ^ƒCƒ}[ŠJŽnj’ljÁ
+ EgetnpctimeriNPCƒ^ƒCƒ}[î•ñŠ“¾j’ljÁ
+ EsetnpctimeriNPCƒ^ƒCƒ}[’lÝ’èj’ljÁ
+
+ Šù‘¶‚Ìaddtimer‚Ȃǂ̓vƒŒƒCƒ„[’PˆÊ‚Ì‚½‚ßANPC’PˆÊ‚̃^ƒCƒ}[‚ðì‚è‚Ü‚µ‚½B
+ ‚±‚¿‚ç‚ÍAaddtimer‚ȂǂƂ͈ႢAOnTimerXXX‚Æ‚¢‚¤•—‚Ƀ‰ƒxƒ‹‚ðŽw’肵‚Ü‚·B
+ Ú‚µ‚­‚̓Tƒ“ƒvƒ‹‚Æscrit_ref.txt‚ðŽQÆB
+
+ (map/)
+ map.h
+ struct npc_data C³Astruct npc_timerevent_list’ljÁ
+ npc.c / npc.h
+ npc_timerevent(),npc_timerevent_start(),npc_timerevent_stop(),
+ npc_gettimerevent_tick(),npc_settimerevent_tick()’ljÁ
+ npc_parse_script()C³
+ script.c
+ buildin_*npctimer()’ljÁ‚È‚Ç
+ (conf/sample/)
+ npc_test_npctimer.txt
+ NPCƒ^ƒCƒ}[Žg—pƒTƒ“ƒvƒ‹
+ (doc/)
+ script_ref.txt
+ NPCƒ^ƒCƒ}[ŠÖŒW‚Ì–½—ß/ŠÖ”’ljÁA’蔃‰ƒxƒ‹‚Ìà–¾C³
+
+ESage‚̃A[ƒXƒXƒpƒCƒN‚ÌŠ“¾ðŒC³
+ (db/)
+ skill_tree.txt
+ ƒA[ƒXƒXƒpƒCƒN‚ÌsiƒTƒCƒYƒ~ƒbƒNƒEƒFƒ|ƒ“‚ðLv1‚Éj
+
+--------------------
+//0914 by p
+E”͈̓XƒLƒ‹Žg—pŽž‚ɉð•úς݃ƒ‚ƒŠ‚ðŽQÆ‚µ‚Ä‚¢‚½–â‘è‚ɑΉž
+Eƒƒ‚ƒŠ‚ð‰Šú‰»‚¹‚¸‚ÉŽg—p‚µ‚Ä‚¢‚½—̈æ‚ðA‰Šú‰»‚µ‚Ä‚©‚çŽg—p‚·‚é‚悤‚É•ÏX
+ (common/)
+ db.c
+ grfio.c
+ socket.c
+ timer.c
+ (char/)
+ char.c
+ int_guild.c
+ int_party.c
+ int_pet.c
+ int_storage.c
+ inter.c
+ (login/)
+ login.c
+ (map/)
+ ‚Ù‚Æ‚ñ‚Ç.c
+
+--------------------
+//0913 by Kalen
+
+EGVGScript‚ÌC³
+@911‘Ήž
+@ƒtƒ‰ƒO‚©‚çƒAƒWƒg‚Ö–ß‚é‹@”\’ljÁ
+@–ß‚é‚Æ‚«‚É•·‚©‚ê‚é‚悤‚ÉC³(TESTscript)
+@Ԏ擾Žž::OnRecvCastleXXX‚ð”­“®‚·‚é‚悤‚ÉC³
+ (conf/gvg/)
+ ‚Ù‚Æ‚ñ‚Ç.txt
+
+--------------------
+//0912 by (“Ê)
+E‚±‚̃tƒ@ƒCƒ‹‚Ì•¶Žš‰»‚¯‚ÆTEST_prtg_cas01_AbraiJ‚Ì•¶Žš‰»‚¯‚ðC³
+EƒoƒO•ñƒXƒŒ‚Ì>>19-20‚ðŽæ‚èž‚Ý
+EÌ‚â‚Á‚¿‚Ü‚Á‚½battle_athena.conf‚̌뎚‚Ì’ù³
+
+ (common)
+ mmo.h
+ #define MAX_STAR 3‚ÉC³
+ (conf)
+ battle_athena.conf
+ (conf/gvg/)
+ TEST_prtg_cas01_AbraiJ.txt
+ (map)
+ atcommand.c
+ get_atcommandinfo_byname() C³
+
+
+--------------------
+//0911 by Michael_Huang
+
+ Mounting Emblem of the Flag-NPC.
+ (Added Script Command: FlagEmblem).
+
+(conf/gvg/)
+ TEST_prtg_cas01_AbraiJ.txt (FlagEmblem Test)
+
+ (map/)
+ map.h struct npc_data{}
+ clif.c clif_npc0078()
+ script.c buildin_flagemblem()
+
+--------------------
+//0910 by RR
+EƒXƒNƒŠƒvƒg‚̊ԈႢ‚ðC³
+(conf/gvg/)
+ ev_agit_payg.txt
+ ev_agit_gefg.txt
+
+E‚ЂÈÕ‚è‚Ɉê“x“ü‚Á‚½‚çƒ}ƒbƒv•Ï”‚ªŽc‚Á‚½‚Ü‚Ü‚É‚È‚é‚Ì‚ÅAƒ}ƒbƒv•Ï”‚ðŽg‚í‚È‚¢‚悤•ÏX
+(ˆêŽž“Iƒ}ƒbƒv•Ï”‚É‚·‚ê‚Ζâ‘è‚È‚¢‚Æ‚àŒ¾‚¦‚Ü‚·‚ªA
+town_guide‚Ætown_kafra‚ÉŽžŠúŒÀ’è‚Ì•¨‚ªí’“‚µ‚Ä‚µ‚Ü‚¤‚Ì‚ª‹C‚É‚È‚Á‚½‚Ì‚ÅA
+‚»‚ê‚ç‚ðevent_hinamatsuri‚ÖˆÚ“®‚µA•’i‚Ì‚ðdisable‚µ‚Ä‚¢‚Ü‚·)
+ (conf/npc/)
+ npc_event_hinamatsuri
+ npc_town_guide
+ npc_town_kafra
+
+EƒXƒLƒ‹ƒŠƒZƒbƒgŽž‚̃XƒLƒ‹Žæ“¾§ŒÀ”»’è‚ðƒXƒLƒ‹ƒ|ƒCƒ“ƒg48ˆÈãÁ”ï‚©‚çA
+ ƒXƒLƒ‹ƒ|ƒCƒ“ƒg58ˆÈãÁ”ï‚©Žc‚èƒXƒLƒ‹ƒ|ƒCƒ“ƒg‚ªJOBLEVEL‚æ‚謂³‚­‚È‚Á‚½‚Æ‚«‚É•ÏX
+E@modelŽž‚Ì•žFõF§ŒÀ‚ðŠÉ˜a(’jƒAƒTAƒ[ƒO‚Ì‚Ý‚Ö)
+ (map/)
+ pc.c pc_calc_skilltree()
+ atcommand.c atcommand_model()
+
+
+--------------------
+//0909 by ŒÓ’±—–
+
+ENPCƒ`ƒƒƒbƒgŠÖŒW‚Ì–½—ߒljÁ
+ EwaitingroomiNPCƒ`ƒƒƒbƒgì¬jC³iƒCƒxƒ“ƒg‚ð‹N‚±‚·l”‚ðŽw’è‰Â”\j
+ EdelwaitingroomiNPCƒ`ƒƒƒbƒgI—¹j’ljÁ
+ EenablewaitingroomeventiNPCƒ`ƒƒƒbƒgƒCƒxƒ“ƒg—LŒø‰»j’ljÁ
+ EdisablewaitingroomeventiNPCƒ`ƒƒƒbƒgƒCƒxƒ“ƒg–³Œø‰»j’ljÁ
+ EgetwaitingroomstateiNPCƒ`ƒƒƒbƒgó‘ÔŠ“¾j’ljÁ
+ EwarpwaitingpciNPCƒ`ƒƒƒbƒgƒƒ“ƒo[ƒ[ƒvjC³
+ Ú‚µ‚­‚Íscript_ref.txt‚ðŽQÆ
+
+ (map/)
+ script.c/npc.c/npc.h/chat.c/chat.h/clif.c
+ ‘½XC³
+ (doc/)
+ script_ref.txt
+ C³
+ (conf/sample/)
+ npc_test_chat.txt
+ ’ljÁ–½—߂̃eƒXƒgƒXƒNƒŠƒvƒg
+
+EƒXƒNƒŠƒvƒg‚̊ԈႢ‚ðC³
+ (conf/npc/)
+ npc_event_skillget.txt
+ npc_event_yuno.txt
+ npc_town_lutie.txt
+ npc_turtle.txt
+ “ä–½—ßadditem‚ðgetitem‚É’uŠ·
+ npc_town_guide.txt
+ “ä–½—ßscriptlabel‚ðƒRƒƒ“ƒg‰»
+ npc_event_momotaro.txt
+ npc_job_swordman.txt
+ npc_job_magician.txt
+ ';'•t‚¯–Y‚êC³
+ (conf/gvg/)
+ ev_agit_aldeg.txt
+ @GID4‚ð@GIDa4‚É’uŠ·
+ ev_agit_gefg.txt
+ ev_agit_payg.txt
+ Annouce‚ÉFŽw’è‚Æ';'‚Ì•t‚¯–Y‚ê‚ðK«
+
+
+EAthenaDBŒv‰æ‚̃f[ƒ^‚Ƃ肱‚ÝA‚»‚Ì‘¼C³
+ ˆÀ’肵‚Ä‚¢‚éƒf[ƒ^‚©‚Ç‚¤‚©‚í‚©‚è‚Ü‚¹‚ñ‚ªB
+
+ (db/)
+ item_db.txt/mob_db.txt/mob_skill_db.txt
+ AthenaDBŒv‰æ‚̃f[ƒ^‚Ƃ肱‚Ý
+ mob_skill_db.txt.orig
+ ˆÈ‘O‚̃f[ƒ^iƒRƒƒ“ƒg•”•ª‚È‚Ç‚ÌŽQl‚Éj
+ (conf/)
+ water_height.txt/mapflag.txt
+ AthenaDBŒv‰æ‚̃f[ƒ^‚Ƃ肱‚Ý
+ map_athena.conf
+ npc_monster3*.txt‚ðíœ
+ ’ljÁƒ}ƒbƒvƒf[ƒ^ (by ID:UVsq5AE)
+ (conf/mob/)
+ npc_monster.txt
+ AthenaDBŒv‰æ‚̃f[ƒ^‚Ƃ肱‚Ý
+
+--------------------
+//0908 by ŒÓ’±—–
+
+EƒXƒNƒŠƒvƒg‚̃Gƒ‰[ƒ`ƒFƒbƒNˆ—‚ð‘‚₵‚½
+ E•¶Žš—ñ‚Ì“r’†‚ʼnüs‚ª‚ ‚é‚ƃGƒ‰[‚ðo‚·‚悤‚ÉB
+ EŠÖ”ŒÄ‚Ño‚µ‰‰ŽZŽq'('‚Ì’¼‘O‚ÉŠÖ”–¼ˆÈŠO‚ª‚ ‚é‚ƃGƒ‰[‚ðo‚·‚悤‚ÉB
+ E–½—ß‚ª‚ ‚é‚ׂ«‚Æ‚±‚ë‚ÉŠÖ”–¼ˆÈŠO‚ª‚ ‚é‚ƃGƒ‰[‚ðo‚·‚悤‚ÉB
+ E–½—ß‚¨‚æ‚ÑŠÖ”‚̈ø”‹æØ‚è‚Ì','‚ðÈ—ª‚·‚é‚ÆŒx‚ðo‚·‚悤‚ÉB
+ E–½—ß‚¨‚æ‚ÑŠÖ”‚̈ø”‚Ì”‚ªˆÙ‚È‚é‚ÆŒx‚ðo‚·‚悤‚ÉB
+
+ (map/)
+ script.c
+ FXC³
+
+ENPCƒXƒNƒŠƒvƒgC³
+ (conf/npc/)
+ npc_town_guide.txt
+ ‚Ss–Ú‚Í‚¢‚ç‚È‚¢‚悤‚Ȃ̂ŃGƒ‰[‚ªo‚È‚¢‚悤‚ɃRƒƒ“ƒg‰»
+ npc_event_hat.txt
+ ƒRƒ‚ƒh‚̉¼–ÊEl‚ƃtƒFƒCƒˆƒ“‚Ì”N (by ID:dS8kRnc)
+ (conf/sample/)
+ npc_card_remover.txt
+ @menu‚ðŽg‚Á‚Ä’Z‚­‚µ‚½••¶Í­‚µC³
+
+E‚»‚Ì‘¼
+ (db/)
+ skill_tree.txt
+ Sage‰ž‹}Žè“–
+
+--------------------
+//0907 by p
+Eatcommand() ‚Ì”ì‘剻‚ª‚Ђǂ¢‚̂ŃŠƒtƒ@ƒNƒ^ƒŠƒ“ƒO
+ @ ƒRƒ}ƒ“ƒh‚ð’ljÁ‚·‚éꇂÍAatcommand.h “à‚Œ蔂ðAatcommand.c “à‚Å
+ ŠÖ”’è‹`ƒ}ƒNƒ‚ƃ}ƒbƒsƒ“ƒOƒe[ƒuƒ‹Aˆ——p‚ÌŠÖ”‚ð‹Lq‚µ‚Ä‚­‚¾‚³‚¢B
+Eglobal •Ï”‚Ì atcommand_config ‚ðÁ‹ŽB
+ @ ƒRƒ}ƒ“ƒh–ˆ‚̃Œƒxƒ‹‚Í get_atcommand_level() ‚Ŏ擾‚µ‚Ä‚­‚¾‚³‚¢B
+Eˆê•”‚̃Lƒƒƒ‰–¼‚ðŽæ‚é @ ƒRƒ}ƒ“ƒh‚ÅA”¼ŠpƒXƒy[ƒX‚ðŠÜ‚Þ–¼‘O‚̃Lƒƒƒ‰‚ð
+ ³í‚Ɉ—‚Å‚«‚Ä‚¢‚È‚©‚Á‚½–â‘è‚ðC³B
+ ‚±‚̉e‹¿‚É‚æ‚èA@rura+ ‚È‚ÇAƒLƒƒƒ‰–¼‚ªƒpƒ‰ƒ[ƒ^‚Ì“r’†‚É‚ ‚Á‚½‚à‚Ì‚Í
+ ‘S‚ÄÅŒã‚ɉñ‚³‚ê‚Ä‚¢‚Ü‚·B
+E@ ƒRƒ}ƒ“ƒh‚Ì•¶Žš—ñ‚ð³í‚Ɏ擾‚Å‚«‚È‚©‚Á‚½ê‡‚ÉAƒoƒbƒtƒ@‚Ì“à—e‚ð
+ ƒ`ƒFƒbƒN‚¹‚¸‚Ɉ—‚ðs‚¨‚¤‚Æ‚µ‚Ä‚¢‚½•”•ª‚ðC³‚µ‚Ü‚µ‚½B
+
+ (common/)
+ mmo.h
+ (map/)
+ atcommand.h
+ atcommand.c
+ clif.h
+ clif.c
+
+--------------------
+//0906 by Selena
+EŒÓ’±—–‚³‚ñ‚ÌC³‚É‚ ‚킹‚ÄAƒoƒ‹ƒLƒŠ[ƒŒƒ‹ƒ€‚PˆÈŠO‚̃XƒNƒŠƒvƒg‚ÌC³B
+E@ƒRƒ}ƒ“ƒh“ü—̓~ƒX‚ÌۂɃGƒ‰[ƒƒbƒZ[ƒW‚ð•\Ž¦B
+ (conf/gvg/)
+ ev_agit_aldeg.txt
+ ev_agit_gefg.txt
+ ev_agit_payg.txt
+ ev_agit_prtg.txt
+ aldeg_cas01`05.txt
+ gefg_cas01`05.txt
+ payg_cas01`05.txt
+ prtg_cas02`05.txt
+ (map/)
+ atcommand.c
+
+--------------------
+//0905 by ŠÇ—l
+
+EƒT[ƒo[snapshot
+E‘OƒXƒŒ‚̃tƒ@ƒCƒ‹Žæ‚è–Y‚ꂽl‚ª‚¢‚é‚©‚à‚µ‚ê‚È‚¢‚Ì‚Å
+
+--------------------
+//0904 by ŒÓ’±—–
+
+EƒXƒNƒŠƒvƒgˆ—C³
+ Echar/interƒT[ƒo[‚ÉÚ‘±‚µ‚½Žž‚ÉOnCharIfInit/OnInterIfInitƒCƒxƒ“ƒg‚ª
+ ŒÄ‚΂ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½B
+ OnAgitInit‚ÍOnInterIfInit‚É•ÏX‚·‚ׂ«‚Å‚·B
+ Egetcastledata–½—ß‚Å‘æ‚Qƒpƒ‰ƒ[ƒ^‚ª0‚Ì‚Æ‚«A‘æ‚Rƒpƒ‰ƒ[ƒ^‚É
+ ƒCƒxƒ“ƒg–¼‚ðÝ’è‚Å‚«‚Ü‚·B‚±‚̃Cƒxƒ“ƒg‚̓Mƒ‹ƒhé‚̃f[ƒ^‚ð
+ InterƒT[ƒo[‚©‚犓¾Š®—¹‚µ‚½‚Æ‚«‚ÉŽÀs‚³‚ê‚Ü‚·B
+ E‹N‚±‚·NPCƒCƒxƒ“ƒg–¼‚ð"::"‚ÅŽn‚ß‚é‚ÆA“¯–¼ƒ‰ƒxƒ‹‚ðŽ‚‘SNPC‚̃Cƒxƒ“ƒg
+ ‚ðŽÀs‚Å‚«‚Ü‚·B
+ ‚½‚Æ‚¦‚ÎAgetcastledata "prtg_cas01.gat",0,"::OnRecvCastleP01";
+ ‚Æ‚·‚é‚Æ‘S‚Ä‚ÌNPC‚Ì OnRecvCastleP01ƒ‰ƒxƒ‹‚ªŽÀs‚³‚ê‚Ü‚·B
+ Erequestguildinfo–½—ߒljÁB“Á’èƒMƒ‹ƒh‚Ìî•ñ‚ðInterƒT[ƒo[‚É
+ —v‹‚Å‚«‚Ü‚·B‘æ‚Pƒpƒ‰ƒ[ƒ^‚̓Mƒ‹ƒhIDA‘æ‚Qƒpƒ‰ƒ[ƒ^‚̓Cƒxƒ“ƒg–¼‚Å
+ ‚±‚̃Cƒxƒ“ƒg‚̓Mƒ‹ƒhî•ñ‚ðInterƒT[ƒo[‚©‚犓¾Š®—¹‚µ‚½‚Æ‚«‚É
+ ŽÀs‚³‚ê‚Ü‚·B
+
+ (map/)
+ guild.c/guild.h/npc.c/npc.h/script.c/intif.c/chrif.c
+ FXC³
+
+EƒMƒ‹ƒhéŠÖ˜ANPCC³
+ iƒoƒ‹ƒLƒŠ[ƒŒƒ‹ƒ€‚P‚Ì‚ÝC³B‘¼‚Ìé‚̃XƒNƒŠƒvƒg‚ÍŠeŽ©‚ŘM‚Á‚Ä‚­‚¾‚³‚¢B
+ ‚Æ‚¢‚¤‚©A‚Þ‚µ‚ë˜M‚Á‚½‚ç‚ ‚Á‚Õ‚µ‚Ü‚µ‚傤j
+ E‰Šú‰»ˆ—‚ðOnAgitInit‚Å‚È‚­OnInterIfInit‚É•ÏXB
+ Eéƒf[ƒ^Š“¾Š®—¹ˆ—‚Æ‚µ‚ÄOnRecvCastleP01‚ð’ljÁB
+ EŽIÄ‹N“®ŽžAƒMƒ‹ƒhê‘®ƒJƒvƒ‰‚ª³‚µ‚­•\Ž¦‚³‚ê‚é‚悤‚ÉB
+ EƒMƒ‹ƒhê‘®ƒJƒvƒ‰‚Ì–¼‘O‚ð"ƒJƒvƒ‰Eˆõ::kapra_prtg01"‚É•ÏXB
+ i"::"ˆÈ~‚̓GƒNƒXƒ|[ƒg‚³‚ê‚é–¼‘O‚ÅA"::"ˆÈ‘O‚ª•\Ž¦–¼j
+ "ƒJƒvƒ‰Eˆõ#prt"‚æ‚è–¼‘O‚ð’·‚­‚µ‚Ä‹£‡‚µ‚É‚­‚­‚·‚邽‚ß‚Å‚·B
+ ‚±‚ÌŠÖŒW‚ÅAdisablenpc‚Ȃǂ̃pƒ‰ƒ[ƒ^‚ð"kapra_prtg01"‚ÉC³B
+ (conf/gvg/)
+ prtg_cas01.txt
+ ƒMƒ‹ƒhê‘®ƒJƒvƒ‰C³
+ ev_agit_prtg.txt
+ ‰Šú‰»ˆ—C³iƒoƒ‹ƒLƒŠ[ƒŒƒ‹ƒ€‚P‚Ì‚Ýj
+ TEST_prtg_cas01_AbraiJ.txt
+ ƒMƒ‹ƒhê‘®ƒJƒvƒ‰ŒÙ—p/é”jŠüC³
+
+ENPC‚ÌC³
+ (conf/npc/)
+ npc_job_swordman.txt
+ npc_event_hat.txt
+ C³
+
+EƒAƒJƒEƒ“ƒg‚ð휂µ‚Ä‚àƒAƒJƒEƒ“ƒgID‚ðÄ—˜—p‚µ‚È‚¢‚悤‚ÉC³
+EƒMƒ‹ƒh/ƒp[ƒeƒB‚ɂ‚¢‚Ä‚àˆê‰ž“¯“™‚̈—’ljÁiƒRƒƒ“ƒg‰»‚³‚ê‚Ä‚¢‚Ü‚·B
+ ƒMƒ‹ƒh‚âƒp[ƒeƒB‚ÍID‚ðÄ—˜—p‚µ‚Ä‚à‚¨‚»‚ç‚­–â‘è‚È‚¢‚½‚ßj
+
+ (login/)
+ login.c
+ “Ç‚Ýž‚Ý/•Û‘¶ˆ—C³
+ (char/)
+ int_guild.c/int_party.c
+ “Ç‚Ýž‚Ý/•Û‘¶ˆ—C³
+
+--------------------
+//0903 by ŒÓ’±—–
+
+El14/l15‚¨‚æ‚уvƒŒƒtƒBƒbƒNƒXl‚ð"„§‚³‚ê‚È‚¢(deprecated)"‹@”\‚Æ‚µ‚Ü‚µ‚½B
+ E‚Ü‚¾Žg—p‚Å‚«‚Ü‚·‚ªA¡Œã‚Ì“®ì‚ª•ÛႳ‚ê‚È‚¢‚Ì‚ÅA‘¬‚â‚©‚É‘ã‘Ö‹@”\‚ð
+ Žg—p‚·‚é‚悤‚ɈÚs‚µ‚Ä‚­‚¾‚³‚¢B
+ EƒvƒŒƒtƒBƒbƒNƒX'l'‚Í‘ã‘Ö‹@”\‚̃vƒŒƒtƒBƒbƒNƒX'@'‚ðŽg—p‚µ‚Ä‚­‚¾‚³‚¢B
+ El15‚Í‘ã‘Ö‹@”\‚Ì@menu‚ðŽg—p‚µ‚Ä‚­‚¾‚³‚¢B
+ El14‚Í‘ã‘Ö‹@”\‚Í‚ ‚è‚Ü‚¹‚ñBinput–½—߂̈ø”‚ðÈ—ª‚µ‚È‚¢‚ʼnº‚³‚¢B
+ E‚±‚ê‚ç‚Ì„§‚³‚ê‚È‚¢‹@”\‚ðŽg—p‚·‚é‚ÆŒxƒƒbƒZ[ƒW‚ª‚Å‚Ü‚·B
+
+ (map/)
+ script.c
+ parse_simpleexpr()C³
+ (conf/warp/)
+ npc_warp.txt/npc_warp25.txt/npc_warp30.txt
+ •Ï”–¼l0‚ð@warp0‚ÉC³
+ (conf/npc/)
+ npc_event_hat.txt
+ •Ï”–¼l15‚ð@menu‚ÉC³
+ (doc/)
+ script_ref.txt
+ ”z—ñ•Ï”‚Ìà–¾’ljÁ
+ •Ï”‚̃vƒŒƒtƒBƒbƒNƒX'l'Ainput–½—ß‚Ìl14Amenu–½—ß‚Ìl15‚Ì
+ à–¾‚ðC³
+
+--------------------
+//0902 by ŒÓ’±—–
+
+EƒXƒNƒŠƒvƒg‚ª”z—ñ•Ï”‚ɑΉžB
+ Earray[number]‚̂悤‚ÉŽg‚¢‚Ü‚·B”’lŒ^A•¶Žš—ñŒ^—¼•ûŽg‚¦‚Ü‚·B
+ EŽg‚¦‚éƒvƒŒƒtƒBƒbƒNƒX‚Í @, $, $@ ‚Å‚·B
+ iˆêŽž“IƒLƒƒƒ‰ƒNƒ^[•Ï”AˆêŽž“I/‰i‘±“Iƒ}ƒbƒvƒT[ƒo[•Ï”j
+ Enumber==0‚Í”z—ñ‚¶‚á‚È‚¢•Ï”‚Æ’l‚ð‹¤—L‚µ‚Ü‚·B
+ i@hoge[0]‚Æ@hoge‚Í“¯‚¶•Ï”‚ð•\‚·j
+ E‚Ü‚¾‰¼ŽÀ‘•’iŠK‚Ȃ̂ŃoƒO•ñ‚æ‚낵‚­‚¨Šè‚¢‚µ‚Ü‚·B
+Eƒ}ƒbƒvƒT[ƒo[•Ï”‚Ì“Çž’†‚ÉCtrl+C‚ð‚·‚é‚ƃf[ƒ^”j‘¹‚̉”\«‚ª‚ ‚é–â‘è‚ðC³.
+Eƒ}ƒbƒvƒtƒ@ƒCƒ‹“Ç‚Ýž‚݉æ–Ê‚ª‚³‚Ñ‚µ‚¢‚Ì‚Å‚¹‚߂ătƒ@ƒCƒ‹–¼‚ð•\Ž¦‚·‚é‚悤‚ÉB
+
+ (conf/sample/)
+ npc_test_array.txt
+ ”z—ñ•Ï”ƒeƒXƒgƒXƒNƒŠƒvƒg
+ (map/)
+ script.c
+ buildin_set(),buildin_input(),get_val(),
+ parse_simpleexpr()C³
+ buildin_getelementofarray()’ljÁ
+ do_final_script()C³‚È‚Ç
+ map.c
+ map_readmap(),map_readallmap()C³
+
+--------------------
+//0901 by ‚Ò‚´‚Ü‚ñ
+
+E˜I“XƒoƒO‚ÌC³
+
+ (map/)
+ pc.c
+ pc_cartitem_amount() ’ljÁB
+ vending.c
+ vending_openvending() C³B
+ clif.c
+ clif_parse_NpcClicked() C³B
+ pc.h C³B
+
+--------------------
+//0900 by ‚Ò‚´‚Ü‚ñ
+
+EƒAƒuƒ‰ƒJƒ_ƒuƒ‰‚̃‰ƒ“ƒ_ƒ€ƒXƒLƒ‹”­“®—¦‚ðabra_db.txt‚ÅÝ’è‚Å‚«‚é‚悤‚ÉB
+EƒXƒtƒBƒA[ƒ}ƒCƒ“‚ƃoƒCƒIƒvƒ‰ƒ“ƒg‚Ì”÷C³B
+ENoreturnƒ}ƒbƒv‚Å’±‚ªÁ”‚¯‚³‚ê‚éƒoƒOC³B
+Eˆê•”‚̃Aƒuƒ‰ŒÅ—LƒXƒLƒ‹‚ª³‚µ‚­“®ì‚µ‚È‚©‚Á‚½ƒoƒOC³B
+ (map/)
+ mob.c
+ mob_damage()Amobskill_use() C³B
+ mob_skillid2skillidx() ’ljÁB
+ skill.c
+ skill_readdb()Askill_abra_dataset() C³B
+ skill_castend_nodamage_id()Askill_castend_pos2() C³B
+ script.c
+ buildin_warp() C³B
+
+ skill.h C³B
+ map.h C³B
+ (db/)
+ abra_db.txt ’ljÁB
+ skill_db.txt C³B
+
+--------------------
+//0899 by ŒÓ’±—–
+
+EŽæ‚芪‚«MOB‚̈—C³
+ EŽæ‚芪‚«¢Š«‚ŃRƒA‚ð“f‚­ƒoƒOC³
+ EŽå‚ª•Êƒ}ƒbƒv‚É”ò‚Ô‚ÆAƒeƒŒƒ|[ƒg‚Å’Ç‚¢‚©‚¯‚é‚悤‚ÉC³
+ EŽæ‚芪‚«ˆ—‚ð‚æ‚èŒy‚­•ÏX
+
+ (map/)
+ mob.c
+ mob_ai_sub_hard_mastersearch()‚ðmob_ai_sub_hard_slavemob()
+ ‚É–¼‘O‚ð•Ï‚¦‚Ĉ—C³B
+ mob_summonslave()C³
+
+--------------------
+//0898 by ŒÓ’±—–
+
+Eeathena‚©‚çCardRemoverNPC‚ÌŽæ‚èž‚Ý
+ NPCƒf[ƒ^‚à“ú–{Œê–󂵂Ă܂·‚ªA‚©‚È‚è“K“–‚Å‚·B
+
+ (map/)
+ script.c
+ buildin_getequipcardcnt(),buildin_successremovecards()
+ buildin_failedremovecards()’ljÁ
+ (conf/sample/)
+ npc_card_remover.txt
+ ƒJ[ƒhŽæ‚èŠO‚µNPC‚Ì“ú–{Œê–ó
+ ƒvƒƒ“ƒeƒ‰‚̸˜BŠ‚Ì’†‚̶‰º‚Ì•”‰®‚É‚¢‚Ü‚·
+
+Eƒ|[ƒ^ƒ‹‚ŕʃ}ƒbƒv‚É”ò‚΂µ‚½MOB‚ª‚»‚̃}ƒbƒv‚É•¦‚«’¼‚·ƒoƒOC³
+ (map/)
+ map.h
+ struct mob_data‚Émƒƒ“ƒo’ljÁ
+ mob.c
+ mob_spawn(),mob_once_spawn()C³
+ npc.c
+ npc_parse_mob()C³
+
+
+--------------------
+//0897 by ‚Ò‚´‚Ü‚ñ
+
+Eׂ©‚¢’²®
+EƒXƒgƒŠƒbƒvŒn‚ƃPƒ~ƒJƒ‹ƒvƒƒeƒNƒVƒ‡ƒ“ŒnƒXƒLƒ‹‚Ì‘SŽÀ‘•
+@–{ŽI‚Å‚Ìׂ©‚¢Žd—l‚ª•ª‚Á‚½‚Ì‚ÅŽÀ‘•‚µ‚Ü‚µ‚½B
+@Šm—¦‚ÍŽb’è‚Å‚·B
+
+ (map/)
+ pc.c
+ pc_isequip() C³
+ skill.c
+ skill_status_change_start()Askill_castend_nodamage_id() C³B
+ skill_abra_dataset() C³B
+ battle.c
+ battle_get_def()Abattle_get_atk2() C³B
+ battle_get_vit()Abattle_get_int() C³B
+ (db/)
+ const.txt C³B
+ skill_db.txt C³B
+ cast_db.txt C³B
+
+--------------------
+//0896 by ŒÓ’±—–
+
+E‰i‘±“Iƒ}ƒbƒv•Ï”‹@”\’ljÁ
+Eƒ}ƒbƒv•Ï”‚𕶎š—ñŒ^•Ï”‚Æ‚µ‚Ä‚àŽg—p‚Å‚«‚é‚悤‚É‚µ‚½
+ E¡‚܂ł̃vƒŒƒtƒBƒbƒNƒX $ ‚͉i‘±“I‚É‚È‚è‚Ü‚·B
+ ˆêŽž“Iƒ}ƒbƒv•Ï”‚ðŽg—p‚·‚éꇂ̓vƒŒƒtƒBƒbƒNƒX $@ ‚ðŽw’肵‚Ä‚­‚¾‚³‚¢.
+
+ E‰i‘±“I/ˆêŽž“I‚Æ‚à‚É•¶Žš—ñŒ^‚ɑΉž‚µ‚Ä‚¢‚Ü‚·B
+ •¶Žš—ñŒ^‚̃|ƒXƒgƒtƒBƒbƒNƒX‚Í$‚Å‚·B
+
+ <—á> $@hoge ”’lŒ^ˆêŽžƒ}ƒbƒv•Ï”A$hoge$ •¶Žš—ñŒ^‰i‘±ƒ}ƒbƒv•Ï”
+ E‰i‘±ƒ}ƒbƒv•Ï”‚̓fƒtƒHƒ‹ƒg‚Å‚Í save/mapreg.txt ‚É•Û‘¶‚³‚ê‚Ü‚·B
+ ‚±‚ê‚Ímap_athena.conf‚Ìmapreg_txt‚ÅÝ’è‚Å‚«‚Ü‚·B
+
+Estr_data‚ªÄŠ„‚è“–‚Ä‚³‚ê‚é‚ƃ}ƒbƒv•Ï”‚ª³í‚ÉŽg—p‚Å‚«‚È‚¢ƒoƒOC³
+ Estrdb‚©‚çnumdb‚É‚µ‚ÄA•Ï”–¼‚Ístr_buf‚É“ü‚ê‚é‚悤‚ÉB
+
+Emap_athena.conf‚Ìdelnpc,npc:clear‚ª³‚µ‚­“­‚©‚È‚¢ƒoƒOC³
+
+ (map/)
+ npc.c
+ npc_delsrcfile(),npc_clearsrcfile()C³
+ script.c / script.h
+ ƒ}ƒbƒv•Ï”Œn‚©‚È‚èC³
+ map.c
+ map_read_config()C³‚È‚Ç
+ (conf/)
+ map_athena.conf
+ mapreg_txt’ljÁ
+ (doc/)
+ conf_ref.txt
+ mapreg_txt,help_txt,motd_txt’ljÁ
+ script_ref.txt
+ •¶Žš—ñŒ^•Ï”‚Ìà–¾C³
+
+--------------------
+//0895 by Selena
+
+Emapflag‚Énozenypenalty‚ð’ljÁB
+@GVG‚âŠX’†‚̃eƒ‚È‚Ç‚ÅŽ€–S‚µ‚½Û‚ÉAZenyƒyƒiƒ‹ƒeƒB[”­¶‚ðŠO‚·—pB
+
+ (map/)
+ pc.c
+ pc_setrestartvalue() C³
+ script.c
+ buildin_setmapflag()Abuildin_removemapflag() C³
+ npc.c
+ npc_parse_mapflag() C³
+ map.h
+ map_data() C³
+ (db/)
+ const.txt C³B
+
+--------------------
+//0894 by ‚Ò‚´‚Ü‚ñ
+
+EƒR[ƒ}ˆÈŠO‚̃Aƒuƒ‰ƒJƒ_ƒuƒ‰ŒÅ—LƒXƒLƒ‹‘SŽÀ‘•B
+@ƒI[ƒgƒXƒyƒ‹‚ɂ̓Œƒxƒ‹ƒAƒbƒvˆÈŠO‘½•ª‘S•”悹‚ê‚Ü‚·B(ƒI[ƒgƒXƒyƒ‹ƒŒƒxƒ‹ƒAƒbƒv‚Í–¢ƒeƒXƒg)
+EƒAƒuƒ‰ƒJƒ_ƒuƒ‰‰¼ŽÀ‘•
+@”­“®ƒXƒLƒ‹‚ªƒŒƒxƒ‹ˆË‘¶‚¶‚á‚ ‚è‚Ü‚¹‚ñB
+@‘S‚Ä‚Ì”­“®—¦‚ª—˜_ã‹Ïˆê‚Å‚·B
+@ƒAƒCƒeƒ€ƒXƒLƒ‹‚ðŽg‚Á‚ÄŽÀ‘•‚µ‚Ä‚¢‚é‚̂ňꕔ‚ÌŽg—pðŒ‚𖳎‹‚µ‚Ü‚·iƒWƒFƒ€ã©‹C‹…“™j
+EƒAƒCƒeƒ€ƒXƒLƒ‹‚ªƒLƒƒƒXƒgEƒfƒBƒŒƒC–³‚µ‚¾‚Á‚½‚Ì‚ðC³B
+
+ (map/)
+ skill.c
+ skill_castend_nodamage_id()Askill_use_id()Askill_use_pos() C³B
+ skill_abra_dataset() ’ljÁB
+ (db/)
+ skill_db.txt C³B
+
+--------------------
+//0893 by ŒÓ’±—–
+
+E‘¼ƒ}ƒbƒv‚©‚çƒ|[ƒ^ƒ‹‚Ìã‚Ƀ[ƒv‚µ‚Ä‚«‚½PC‚ªƒ[ƒv‚µ‚È‚¢–â‘è‚ðC³
+Eƒ`ƒƒƒbƒg’†‚ÌPC‚ðƒ[ƒvƒ|[ƒ^ƒ‹‚Å”ò‚΂·‚©‚Ç‚¤‚©Ý’è‰Â”\‚É
+EMOB‚ðƒ[ƒvƒ|[ƒ^ƒ‹‚Å”ò‚΂·‚©‚Ç‚¤‚©Ý’è‰Â”\‚É
+ MOB‚̃[ƒvƒ|[ƒ^ƒ‹‚ð‹–‰Â‚·‚é‚ÆAƒeƒ‚ªŠÈ’P‚É‚Å‚«‚é‚Ì‚Å’ˆÓB
+
+EƒAƒJƒEƒ“ƒg•Ï”•ÏX‚Æ“¯Žž‚Ƀtƒ@ƒCƒ‹‚É‘‚«o‚·‚悤‚ÉC³
+Eƒ}ƒbƒvƒf[ƒ^‚̃[ƒh•”•ª‚̃ƒO•\Ž¦‚Í‚ ‚Ü‚èd—v‚¶‚á‚È‚¢‚ÆŽv‚¤‚Ì‚Å•ÏXB
+
+ (char/)
+ inter.c
+ mapif_parse_AccReg()‚Åinter_accreg_save()‚ðŒÄ‚Ԃ悤‚ÉC³
+ (map/)
+ mob.c/mob.h
+ mob_warp()‚̈ø”•ÏX‚ÆC³
+ battle.c/battle.h
+ mob_warp()ŒÄ‚Ño‚µ‚̈ø”C³
+ battle_configŠÖ˜A
+ map.c
+ map_readallmap(),map_readmap()C³
+ pc.c
+ pc_setpos()C³
+ skill.c
+ mob_warp()ŒÄ‚Ño‚µ‚̈ø”C³
+ skill_unit_onplace()C³
+ (conf/)
+ battle_athena.conf
+ chat_warpportal,mob_warpportal‚̒ljÁ
+ (doc/)
+ conf_ref.txt
+ chat_warpportal,mob_warpportal‚̒ljÁ
+
+--------------------
+//0892 by ŒÓ’±—–
+
+EŠeŽíconfƒtƒ@ƒCƒ‹‚ŕʃtƒ@ƒCƒ‹‚ðƒCƒ“ƒ|[ƒg‚Å‚«‚é‚悤‚É‚µ‚½
+ EŽ©•ª‚̃T[ƒo[—p‚ÌÝ’è‚ð•Êƒtƒ@ƒCƒ‹‚É‹Lq‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚·B
+ E‘S‚Äuimport: ƒtƒ@ƒCƒ‹–¼vŒ`Ž®‚Å‹Lq‚µ‚Ü‚·B
+ EŠeŽíconfƒtƒ@ƒCƒ‹ilogin,char,map,inter,atcommand,battlej‚ÌÅŒã‚É
+ conf/import/*_conf ‚ð“ǂނ悤‚ÉŽw’肵‚½‚Ì‚ÅA‚»‚±‚ÉŽ©•ª—p‚ÌÝ’è‚ð
+ ‘‚¢‚Ä‚¨‚¯‚ÎA•ÏX•”•ª‚̂݃I[ƒo[ƒ‰ƒCƒh‚µ‚Ü‚·B
+ msg,script‚Ìconf‚ɂ‚¢‚Ä‚ÍA‚±‚ÌŒÀ‚è‚Å‚Í‚ ‚è‚Ü‚¹‚ñ‚ªAimport–½—ß‚Ì
+ ˆ—‚͒ljÁ‚³‚ê‚Ä‚¢‚é‚Ì‚ÅAŽ©•ª‚Åimport–½—߂𑂯‚Γ®‚«‚Ü‚·B
+ EV‚µ‚¢ƒXƒiƒbƒvƒVƒ‡ƒbƒg‚ªo‚½ê‡‚È‚Ç‚ÉA‚±‚Ìconf/importƒtƒHƒ‹ƒ_‚ð
+ Ì‚ÌAthena‚©‚çƒRƒs[‚·‚邾‚¯‚ÅŽ©•ª—p‚ÌÝ’è‚ð“K—p‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚·.
+
+Emap_athena.conf‚Ìmap‚Ænpc‚ŒljÁ‚µ‚½ƒtƒ@ƒCƒ‹‚ð휂ł«‚é‚悤‚É‚µ‚½
+ Eã‚ÉŠÖ˜A‚·‚é•ÏX‚Å‚·B
+ Edelmap,delnpc–½—ß‚ðŽg—p‚·‚ê‚ÎAmap,npc–½—߂ŒljÁ‚µ‚½ƒtƒ@ƒCƒ‹‚ð
+ “Ç‚Ýž‚Ü‚È‚¢‚悤‚ÉŽw’è‚Å‚«‚Ü‚·B‚±‚±‚Ńtƒ@ƒCƒ‹–¼‚Å‚Í‚È‚­A
+ all ‚ÆŽw’è‚·‚é‚Æ‚»‚ê‚Ü‚Å‚ÉŽw’肳‚ꂽƒtƒ@ƒCƒ‹‚ð‘S‚Ä“Ç‚Ýž‚Ü‚È‚­‚µ‚Ü‚·.
+ Emap,npc–½—ß‚ÅAƒtƒ@ƒCƒ‹–¼‚Éclear‚ðŽw’è‚·‚é‚ÆA
+ delmap,delnpc‚Ìall‚Æ“¯“™‚Ì“®ì‚ð‚·‚é‚悤‚É‚È‚è‚Ü‚µ‚½B
+
+Elogin_athena.conf‚Ìallow‚Ædeny‚ðƒNƒŠƒA‚Å‚«‚é‚悤‚É‚“‚½
+ Eallow‚¨‚æ‚Ñdeny–½—ß‚Åclear‚ðŽw’è‚·‚é‚ƈȑO‚̃zƒXƒgî•ñ‚ð‘S휂µ‚Ü‚·.
+
+ (conf/)
+ ŠeŽíconfƒtƒ@ƒCƒ‹‚ÌÅŒã‚Éimport–½—ߒljÁ
+ (conf/import)
+ *.txt
+ ƒCƒ“ƒ|[ƒg‚³‚ê‚éƒtƒ@ƒCƒ‹B‚±‚ê‚ç‚ÉŽ©•ª—p‚ÌÝ’è‚ð‘‚­‚Æ‚æ‚¢B
+ (login/)
+ login.c
+ login_read_config()C³
+ (char/)
+ char.c/inter.c
+ char_read_config(),inter_read_config()C³
+ (map/)
+ map.c
+ map_read_config(),map_addmap()C³Amap_delmap()’ljÁ
+ npc.c
+ npc_addsrcfile()C³,npc_delsrcfile(),npc_clearsrcfile()’ljÁ
+ battle.c/atcommand.c/script.c
+ battle_read_config(),atcommand_read_config(),
+ msg_read_config(),script_read_config()C³
+ (doc/)
+ conf_ref.txt
+ C³
+
+--------------------
+//0891 by (“Ê)
+
+EuƒXƒLƒ‹Žg—p‚ÌŒã‚ÍA‚µ‚΂炭‚¨‘Ò‚¿‚­‚¾‚³‚¢v‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©Ý’è‚Å‚«‚é‚悤‚É‚µ‚½B
+ E–{ŽI‘ŠˆáƒXƒŒƒbƒh@‘´‚̇U>>5‚³‚ñ‚̃R[ƒh‚ðƒpƒNƒŠ‚Ü‚µ‚½B
+ (doc/)
+ conf_ref.txt C³B
+ (conf/)
+ battle_athena.conf C³B
+ (map/)
+ battle.h C³B
+ battle.c
+ battle_config_read() C³B
+ clif.c
+ clif_skill_fail() C³B
+
+--------------------
+//0890 by Ž€_
+
+EƒMƒ‹ƒh‘qŒÉ‚ðˆê“x‚Ɉêl‚¾‚¯‚ªŽg—p‚·‚é‚悤‚É•ÏXB(–¢ƒeƒXƒg)
+Ebattle_athena.conf‚©‚çplayer_undead_nofreeze íœB
+E@ƒRƒ}ƒ“ƒh@gstorage ’ljÁB
+EƒXƒNƒŠƒvƒgguildstorage‚ðguildopenstorage‚É•ÏXB
+E‚»‚Ì‘¼×‚©‚¢ƒoƒOC³B
+ (doc/)
+ conf_ref.txt C³B
+ script_ref.txt C³B
+ (conf/)
+ atcommand_athena.conf C³B
+ battle_athena.conf C³B
+ help.txt C³B
+ (conf/sample/)
+ gstorage_test.txt ’ljÁB
+ (char/)
+ makefile C³B
+ int_storage.h C³B
+ int_storage.c
+ inter_storage_delete()Ainter_guild_storage_delete() ’ljÁB
+ int_guild.c
+ guild_check_empty()Amapif_parse_BreakGuild() C³B
+ (map/)
+ makefile C³B
+ battle.h C³B
+ battle.c
+ battle_config_read() C³B
+ guild.c
+ guild_broken() C³B
+ storage.h C³B
+ storage.c
+ storage_guild_storageopen() C³B
+ storage_delete()Aguild_storage_delete() ’ljÁB
+ script.c
+ buildin_guildstorage() ‚ð buildin_guildopenstorage()‚É•ÏXB
+ intif.c
+ intif_parse_LoadGuildStorage() C³B
+ mob.c
+ mob_summonslave()Amob_damage()Amob_delete() C³B
+ mob_catch_delete()Amob_readdb() C³B
+ skill.c
+ skill_castend_nodamage_id()Askill_status_change_start() C³B
+ clif.c
+ clif_parse_ActionRequest() C³B
+ atcommand.h C³B
+ atcommand.c
+ atcommand() C³B
+
+--------------------
+//0889 by ŒÓ’±—–
+
+E•¶Žš—ñŒ^ˆêŽž“IƒLƒƒƒ‰ƒNƒ^[•Ï”‹@”\’ljÁB
+ EƒvƒŒƒtƒBƒbƒNƒX@,ƒ|ƒXƒgƒtƒBƒbƒNƒX$‚ðŽg—p‚µ‚Ü‚·Bi@hoge$‚È‚Çj
+ Einput‚Å•¶Žš—ñ•Ï”‚ðŽw’è‚·‚é‚Æ•¶Žš—ñ“ü—Í‚É‚È‚è‚Ü‚·B
+ EŠÖŒW‰‰ŽZŽqi”äŠr‰‰ŽZŽqj‚Å•¶Žš—ñ‚Ç‚¤‚µ‚ðŽw’è‚·‚é‚Æ•¶Žš—ñ‚Ì”äŠr‚ª
+ ‚Å‚«‚Ü‚·B”’l‚Æ•¶Žš—ñ‚𬂺‚Ä”äŠr‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñB
+ E‚Æ‚è‚ ‚¦‚¸ƒTƒ“ƒvƒ‹•t‚¯‚Ä‚Ü‚·B
+
+ (map/)
+ map.h
+ struct map_session_data‚Énpc_str,regstr,regstr_numƒƒ“ƒo’ljÁ
+ script.c
+ buildin_set(),get_val(),buildin_input(),op_2num()‚È‚ÇC³
+ op_2str(),op_2()’ljÁ
+ clif.c / clif.h
+ 01d5ƒpƒPƒbƒg’·C³
+ clif_parse_NpcStringInput(),clif_scriptinputstr()’ljÁ
+ pc.c / pc.h
+ pc_readregstr(),pc_setregstr()’ljÁ
+ (doc/)
+ script_ref.txt
+ ‰‰ŽZŽq‚Ìà–¾’ljÁA•Ï”‚Ìà–¾C³Ainput,menuC³
+ (conf/sample/)
+ npc_test_str.txt
+ •¶Žš—ñ•Ï”‚ðŽg—p‚µ‚½ƒXƒNƒŠƒvƒg‚Ì—áB
+ •¶Žš—ñ‚Ì‘ã“üAŒ‹‡A”äŠrA“ü—͂Ȃǂ̃eƒXƒg‚ðs‚¤‚à‚ÌB
+
+--------------------
+//0888 by Ž€_
+
+EÝŒv‚©‚çŠÔˆá‚Á‚Ä‚¢‚½ƒMƒ‹ƒh‘qŒÉC³B(‚½‚¾•¡”l‚ÌŽg—p‚É‚æ‚éƒoƒO‚ª‚ ‚é‰Â”\«‚Í‚Ü‚¾‚ ‚è‚Ü‚·B)
+Eׂ©‚¢ƒoƒOC³B
+ (doc/)
+ inter_server_packet.txt C³B
+ conf_ref.txt C³B
+ (conf/)
+ inter_athena.conf C³B
+ help.txt C³B
+ (common/)
+ mmo.h C³B
+ (char/)
+ makefile C³B
+ int_storage.h C³B
+ int_storage.c
+ account2storage()Ainter_storage_init()Astorage_fromstr() C³B
+ inter_storage_save()Amapif_load_storage() C³B
+ mapif_parse_SaveStorage() C³B
+ guild_storage_fromstr()Aguild_storage_tostr() ’ljÁB
+ inter_storage_save_sub()Ainter_guild_storage_save_sub() ’ljÁB
+ inter_guild_storage_save()Amapif_parse_LoadGuildStorage() ’ljÁB
+ mapif_parse_SaveGuildStorage()Amapif_load_guild_storage() ’ljÁB
+ mapif_save_guild_storage_ack()Aguild2storage() ’ljÁB
+ int_party.c
+ inter_party_init() C³B
+ int_guild.h C³B
+ int_guild.c
+ inter_guild_init() C³B
+ inter_guild_search() ’ljÁB
+ int_pet.c
+ inter_pet_init() C³B
+ inter.c
+ inter_init()Ainter_save()Ainter_config_read() C³B
+ (map/)
+ makefile C³B
+ map.h C³B
+ map.c
+ map_quit()Ado_init() C³B
+ pc.c
+ pc_setpos() C³B
+ storage.h C³B
+ storage.c
+ do_init_storage()Ado_final_storage()Aaccount2storage() C³B
+ storage_storageopen()Astorage_storageadd()Astorage_storageget() C³B
+ storage_storageaddfromcart()Astorage_storagegettocart() C³B
+ storage_storageclose()Astorage_storage_quit() C³B
+ storage_storage_save() C³B
+ guild2storage()Astorage_guild_storageopen() ’ljÁB
+ guild_storage_additem() Aguild_storage_delitem() ’ljÁB
+ storage_guild_storageadd()Astorage_guild_storageget() ’ljÁB
+ storage_guild_storageaddfromcart()Astorage_guild_storagegettocart() ’ljÁB
+ storage_guild_storageclose()Astorage_guild_storage_quit() ’ljÁB
+ intif.h C³B
+ intif.c
+ intif_send_storage()Aintif_parse_LoadStorage()Aintif_parse() C³B
+ intif_request_guild_storage()Aintif_send_guild_storage() ’ljÁB
+ intif_parse_SaveGuildStorage()Aintif_parse_LoadGuildStorage() ’ljÁB
+ clif.h C³B
+ clif.c
+ clif_additem()Aclif_parse_MoveToKafra() C³B
+ clif_parse_MoveFromKafra()Aclif_parse_MoveToKafraFromCart() C³B
+ clif_parse_MoveFromKafraToCart()Aclif_parse_CloseKafra() C³B
+ clif_parse_LoadEndAck() C³B
+ clif_guildstorageitemlist()Aclif_guildstorageequiplist() ’ljÁB
+ clif_updateguildstorageamount()Aclif_guildstorageitemadded() ’ljÁB
+ guild.c
+ guild_broken() C³B
+ script.c
+ buildin_openstorage()Abuildin_guildstorage() C³B
+ skill.c
+ skill_castend_nodamage_id() C³B
+ mob.c
+ mob_summonslave()Amob_damage() C³B
+ atcommand.c
+ atkillmonster_sub()Aatcommand() C³B
+
+--------------------
+//0887 by Ž‚Žqo^.^o
+
+E(db/)
+ skill_tree.txt C³
+
+--------------------
+//0886 by ‚Ò‚´‚Ü‚ñ
+
+EƒT[ƒo[snapshot
+Eƒtƒ@ƒCƒ‹’²®
+
+--------------------
+//0885 by huge
+
+EƒMƒ‹ƒh‹¤—L‘qŒÉ‚ÌŽÀ‘•Bguildstorage‚ÅŠJ‚¯‚Ü‚·B
+ Ž©•ª‚ÌŽI‚ÅŽÀŒ±‚Í‚µ‚Ä‚Ý‚Ü‚µ‚½‚ªA‰ß‘a’n‚È‚Ì‚Å‘½l”ƒMƒ‹ƒh‚É‚È‚é‚Æ‚Ç‚¤“®‚­‚©•ª‚©‚è‚Ü‚¹‚ñB
+ (”O‚Ì‚½‚߃oƒbƒNƒAƒbƒv‚Í•K‚¸Žæ‚Á‚Ä‚¨‚¢‚ĉº‚³‚¢)
+Eareawarp‚ÅA‘ÎÛƒ}ƒbƒv–¼‚ð"Random"‚É‚·‚é‚ÆA“¯ƒ}ƒbƒv“à‚щƒ“ƒ_ƒ€‚É”ò‚Ԃ悤‚ÉC³B
+EGMƒRƒ}ƒ“ƒh‚Ŷ‚«•Ô‚µ‚½‚Æ‚«‚ÉSP‚à‘S‰ñ•œ‚·‚é‚悤‚ÉC³B
+EƒfƒBƒ{[ƒVƒ‡ƒ“‚ÌðŒ‚ð‚¿‚å‚Á‚ÆC³B
+
+ (char/)
+ int_storage.c
+ mapif_load_storage() C³B
+ mapif_parse_SaveStorage() C³B
+ inter.c
+ inter_send_packet_length[] C³B
+ inter_recv_packet_length[] C³B
+ (map/)
+ atcommand.c
+ @alive,@raise,@raisemap C³B
+ intif.c
+ packet_len_table[] C³B
+ intif_request_storage() C³B
+ intif_send_storage() C³B
+ intif_parse_LoadStorage() C³B
+
+ map.h
+ map_session_data state‚Éstorage_flag ’ljÁB
+ script.c
+ buildin_areawarp_sub() C³B
+ buildin_openstorage() C³B
+ buildin_guildstorage() ’ljÁB
+ skill.c
+ skill_castend_nodamage_id() C³B
+ storage.c
+ account2storage() C³B
+ storage_storageopen() C³B
+ storage_storage_save() C³B
+
+--------------------
+//0884 by Ž€_
+
+Eׂ©‚¢ƒoƒOC³B
+Ebattle_athena.conf‚Épet_strAzeny_penaltyAresurrection_exp ’ljÁB
+E0878‚Ì‹âsŠÖŒW‚̃R[ƒh‚Í‚à‚¤‚¢‚ç‚È‚¢‚Ì‚Å‘S‚ÄíœB
+Ezeny_penalty‚ðݒ肵‚ÄŽg‚¤ê‡‚ÍŽè”—¿‚Í‚È‚­‚µ‚½•û‚ª‚¢‚¢‚©‚àB
+Eƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[‚Åpercentheal‚É‚àPP‚ÆLP‚É‚æ‚é‰ñ•œƒ{[ƒiƒX‚ª•t‚­‚悤‚É•ÏXB(‚½‚¾vit‚âintAHPRAMPR‚É‚æ‚é‰ñ•œƒ{[ƒiƒX‚ª•t‚«‚Ü‚¹‚ñB)
+E‚Ù‚Æ‚ñ‚Ç–¢ƒeƒXƒgB
+ (common/)
+ mmo.h C³B
+ (conf/)
+ battle_athena.conf C³B
+ (doc/)
+ conf_ref.txt C³B
+ (map/)
+ map.c
+ do_init()Ado_final() C³B
+ script.c
+ buildin_openbank() íœB
+ buildin_failedrefitem() C³B
+ storage.h C³B
+ storage.c
+ do_init_bank()Ado_final_bank()Aaccount2bank() íœB
+ storage_bank()Astorage_readbank() íœB
+ skill.c
+ skill_castend_nodamage_id()Askill_attack() C³B
+ battle.h C³B
+ battle.c
+ battle_calc_pet_weapon_attack()Abattle_config_read() C³B
+ pc.c
+ pc_setrestartvalue() C³B
+ clif.c
+ clif_skill_nodamage()Aclif_refine() C³B
+ itemdb.c
+ itemdb_isequip3() C³B
+ atcommand.c
+ atcommand() C³B
+
+--------------------
+//0883 by Kalen
+
+EWarpFXC³
+ EƒAƒTƒVƒ“ƒMƒ‹ƒhŽü‚èC³(̂̂܂܂̃Šƒ“ƒN‚¾‚Á‚½‚Ì‚ÅŒ»Ý‚Ìó‘Ô‚ÉC³B)
+ EYuno‚ÌWarp‘S–ÊŒ©’¼‚µ(YumilLoopC³ASageCastleRandomWarp’ljÁA—ˆã‚³‚ñ‚̉ƒljÁ)
+ Eƒ‚ƒ“ƒNƒMƒ‹ƒhŽü‚è’ljÁ
+ENPCFXC³
+ E–XŽqì¬NPC‚ð•Êƒtƒ@ƒCƒ‹‚ÖBˆê•”’ljÁ(ep2.5’ljÁ•ª)
+ @ŽQlData(R.O.M776): ttp://green.sakura.ne.jp/~youc/ro/data/itemmaking.html#04
+ EƒAƒTƒVƒ“ƒMƒ‹ƒhC³
+ E“ñŽŸE“]EŠÖŒWNPCˆê•”’ljÁ(‚±‚ê‚ŃRƒ‚ƒh¬Œ€ê‚Ös‚¯‚Ü‚·)
+ Eƒ}ƒXƒ^[ƒAƒ‹ƒPƒ~ƒXƒg‚̑䎌C³
+ EƒAƒ‹ƒfƒoƒ‰ƒ“‚̈ēà—vˆõ‚ðˆÚ“®&‘䎌C³&ƒCƒ[ƒW’ljÁ
+ EBBS‚É‚ ‚ª‚Á‚Ä‚¢‚½ƒRƒ‚ƒhƒXƒNƒŠƒvƒg’ljÁ(event_hat“™‚Ö•ªŽU)
+ EƒRƒ“ƒƒ“ƒNƒGƒXƒgŠÖŒWNPCˆê•”’ljÁ(—ˆã[yuno]Aƒlƒ‹[prontera])
+ (conf/warp/)
+ npc_warp.txt
+ npc_warp30.txt
+ npc_warp_job.txt
+ (conf/npc/)
+ npc_event_hat.txt(V‹K)
+ npc_job_2nd.txt
+ npc_job_alchemist.txt
+ npc_town_aldebaran.txt
+ npc_town_comodo.txt
+ npc_town_gonryun.txt
+ npc_town_guide.txt
+ npc_town_yuno.txt
+ npc_town_lutie.txt
+
+--------------------
+//0882 by ŒÓ’±—–
+
+EƒXƒNƒŠƒvƒg‚É0881‘Š“–‚̃AƒJƒEƒ“ƒg‹¤—L•Ï”‹@”\‚̃vƒŒƒtƒBƒbƒNƒX•ÏX
+ E0881‚̃AƒJƒEƒ“ƒg•Ï”‚̓vƒŒƒtƒBƒbƒNƒX##‚É‚È‚è‚Ü‚µ‚½B
+ E0881‚̃AƒJƒEƒ“ƒg•Ï”‚Í‘Sƒ[ƒ‹ƒh‚Å‹¤—L‚³‚ê‚Ü‚·B
+ E•Ï”‚̌”‚Ímmo.h‚ÌACCOUNT_REG2_NUM‚Å’è‹`‚³‚ê‚Ä‚¢‚Ü‚·(16)B
+Eƒ[ƒ‹ƒh“à‚̃AƒJƒEƒ“ƒg‹¤—L•Ï”‹@”\’ljÁ
+ E•Ï”–¼‚̃vƒŒƒtƒBƒbƒNƒX‚Í#‚Å‚·B
+ E•Ï”‚̌”‚Ímmo.h‚ÌACCOUNT_REG_NUM‚Å’è‹`‚³‚ê‚Ä‚¢‚Ü‚·(16)B
+ E0881‚Ì‹âsƒXƒNƒŠƒvƒg‚Í‚±‚¿‚ç‚ðŽg—p‚·‚é‚悤‚É‚È‚è‚Ü‚·B
+ ‚æ‚Á‚ĈȑO‚̃f[ƒ^‚ª‚‚©‚¦‚È‚¢‚Ì‚Å‚ ‚ç‚©‚¶‚߈ø‚«o‚µ‚Ä‚¨‚¢‚Ä‚­‚¾‚³‚¢.
+ E•Ï”ƒf[ƒ^‚Í save/accreg.txt ‚É•Û‘¶‚³‚ê‚Ü‚·B
+ ‚±‚̃tƒ@ƒCƒ‹–¼‚Í inter_athena.conf ‚Å•ÏX‰Â”\‚Å‚·Bconf_ref.txtŽQÆB
+
+ (common/)
+ mmo.h
+ ACCOUNT_REG_NUM‚ð16‚ÉAACCOUNT_REG_NUM2’ljÁ
+ struct mmo_charstatus‚Éaccount_reg2_num,account_reg2ƒƒ“ƒo’ljÁ
+ (login/)
+ login.c
+ account_reg‚ð‘S‚Äaccount_reg2‚É’u‚«Š·‚¦
+ (char/)
+ char.c
+ account_reg‚ð‘S‚Äaccount_reg2‚É’u‚«Š·‚¦
+ inter.c
+ ƒ[ƒ‹ƒh“àƒAƒJƒEƒ“ƒg•Ï”‹@”\’ljÁB
+ inter_accreg*()’ljÁAaccreg_db’ljÁ‚È‚ÇB
+ (map/)
+ chrif.c/chrif.h
+ account_reg‚ð‘S‚Äaccount_reg2‚É’u‚«Š·‚¦
+ 0881‚ł̃oƒO‚ðC³
+ intif.c/intif.h
+ ƒ[ƒ‹ƒh“àƒAƒJƒEƒ“ƒg•Ï”‹@”\’ljÁB
+ pc.c/pc.h
+ pc_*accountreg()=>pc_*accountreg2()‚ÉB
+ pc_setaccountreg(),pc_readaccountreg()’ljÁB
+ script.c
+ buildin_set(),buildin_get_val(),buildin_input()C³
+ (doc/)
+ inter_server_packet.txt
+ ƒ[ƒ‹ƒh“àƒAƒJƒEƒ“ƒg•Ï”ŠÖŒW
+ conf_ref.txt
+ accreg_txt’ljÁ
+
+--------------------
+//0881 by ŒÓ’±—–
+
+EƒXƒNƒŠƒvƒg‚ɃAƒJƒEƒ“ƒg‹¤—L•Ï”‹@”\’ljÁ
+ E•Ï”–¼‚ɃvƒŒƒtƒBƒbƒNƒX#‚ð•t‚¯‚邱‚ƂŃAƒJƒEƒ“ƒg‹¤—L•Ï”‚É‚È‚è‚Ü‚·B
+ EƒAƒJƒEƒ“ƒg•Ï”‚Í•ÏX‚µ‚½Žž“_‚Å‘SƒT[ƒo[‚Ƀ|ƒXƒg‚³‚ê‚é‚Ì‚Å
+ •p”É‚É‘‚«Š·‚¦‚é‚ƃT[ƒo[ŠÔ’ÊM‚ª”ì‘剻‚µ‚Ü‚·B
+ EƒAƒJƒEƒ“ƒg•Ï”‚Í•ÏX‚µ‚½Žž“_i‚»‚µ‚Ä‚»‚ꂪloginŽI‚É“Í‚¢‚½Žž“_j‚Å
+ account.txt‚É‘‚«o‚³‚ê‚Ü‚·B
+ EƒOƒ[ƒoƒ‹•Ï”i‰i‘±•Ï”j‚̌”‚ð96‚ÉŒ¸‚炵AŒ¸‚Á‚½32ŒÂ•ª‚ð
+ ƒAƒJƒEƒ“ƒg•Ï”‚É‚µ‚Ä‚¢‚Ü‚·‚ªAmmo_charstatus‚̃TƒCƒY‚ª
+ 16000byte‚ð’´‚¦‚È‚¢ŒÀ‚è‘‚â‚·‚±‚Æ‚ª‚Å‚«‚Ü‚·Bƒ0879‚Ì•ÏX‚ðŽQÆ
+ •Ï”‚̌”‚Ímmo.h‚ÌACCOUNT_REG_NUM‚Å’è‹`‚³‚ê‚Ä‚¢‚Ü‚·B
+ E0878‚Ì‹âs‚ðƒAƒJƒEƒ“ƒg•Ï”‚ðŽg—p‚·‚é‚悤‚ÉC³
+ bank.txt‚̃f[ƒ^‚ªŽg‚¦‚È‚­‚È‚é‚Ì‚Å‚ ‚ç‚©‚¶‚߈ø‚«o‚µ‚Ä‚¨‚¢‚ĉº‚³‚¢B
+
+ (common/)
+ mmo.h
+ GLOBAL_REG_NUM‚ð96‚ÉAACCOUNT_REG_NUM‚ð’ljÁ
+ struct mmo_charstatus‚Éaccount_reg_num,account_regƒƒ“ƒo’ljÁ
+ (login/)
+ login.c
+ ƒpƒPƒbƒg2728ˆ—’ljÁ
+ (char/)
+ char.c
+ ƒpƒPƒbƒg2729,2b10ˆ—’ljÁ
+ (map/)
+ chrif.c
+ chrif_saveaccountreg(),chrif_accountreg()
+ (ƒpƒPƒbƒg2b10,2b11ˆ—)’ljÁB
+ pc.c/pc.h
+ pc_readaccountreg(),pc_setaccountreg()’ljÁ
+ script.c
+ buildin_set(),buildin_get_val(),buildin_input()C³
+ (conf/sample/)
+ bank_test.txt
+ ƒAƒJƒEƒ“ƒg•Ï”Žg—p”Å‚Ì‹âsƒXƒNƒŠƒvƒg
+
+--------------------
+//0880 by Ž€_
+
+Eƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[‚𳂵‚­ŽÀ‘•‚Æ‚¿‚å‚Á‚Æ‹@”\Šg’£B
+Eƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[‚ŃŒƒxƒ‹•Ê‚ÉŽg‚¦‚éƒAƒCƒeƒ€‚ðskill_require_db.txt‚ÉÝ’è‚Å‚«‚é‚悤‚É‚µ‚Ü‚µ‚½B‚½‚¾ƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[‚ÅŽg‚¦‚éƒAƒCƒeƒ€‚ÍitemhealApercenthealAsc_startAsc_endˆÈŠO‚Ì•¨‚ª“ü‚Á‚Ä‚¢‚é‚Ƴ‚µ‚­“®ì‚µ‚Ü‚¹‚ñB
+ƒŒƒxƒ‹5‚Ü‚Å‚Í–{ŽI‚ɇ‚킹‚Ä‚¢‚Ü‚·‚ªÅ‘僌ƒxƒ‹‚ð10‚Ü‚ÅŠg’£‚·‚é‚ƃŒƒxƒ‹6 - ƒ}ƒXƒeƒ‰‚ÌŽÀA7 - ƒ[ƒ„ƒ‹ƒ[ƒŠ[A8 - ƒCƒOƒhƒ‰ƒVƒ‹‚ÌŽíA9 - ƒCƒOƒhƒ‰ƒVƒ‹‚ÌŽÀA10 - ƒo[ƒT[ƒNƒ|[ƒVƒ‡ƒ“‚Éݒ肵‚Ä‚¢‚Ü‚·Bskill_db.txt‚ðC³‚·‚ê‚΂±‚ꂪ—LŒø‚É‚È‚è‚Ü‚·B(‚Ç‚±‚ðC³‚·‚é‚©‚à‚í‚©‚ç‚È‚¢l‚Í’ú‚߂邱‚Æ‚Å‚·B) ƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[‚É‚æ‚éƒAƒCƒeƒ€Žg—p‚ÍŽg—pðŒ‚𖳎‹‚µ‚Ü‚·B­‚µ‚̓Aƒ‹ƒPƒ~ƒXƒg‚ÉŠó–]‚ª‚Å‚«‚½‚©‚à...(‘½•ª–³—...)
+Ebattle_athane.conf‚Éproduce_item_name_inputAproduce_potion_name_inputAmaking_arrow_name_inputAholywater_name_input ’ljÁB
+Eƒp[ƒeƒBˆõ‚É‚¾‚¯Žg‚¤ƒXƒLƒ‹‚ƃMƒ‹ƒhˆõ‚É‚¾‚¯Žg‚¤ƒXƒLƒ‹‚ðÝ’è‚Å‚«‚é‚悤‚ÉC³B
+E‚»‚Ì‘¼×‚©‚¢C³B
+ (conf/)
+ battle_athane.conf C³B
+ (doc/)
+ conf_ref.txt C³B
+ db_ref.txt C³B
+ (db/)
+ skill_db.txt C³B
+ skill_require_db.txt C³B
+ (map/)
+ map.h C³B
+ skill.h C³B
+ skill.c
+ skill_status_change_timer()Askill_attack()Askill_use_id() C³B
+ skill_castend_nodamage_id()Askill_castend_damage_id() C³B
+ skill_castend_id()Askill_castend_pos()Askill_produce_mix() C³B
+ skill_arrow_create()Askill_check_condition() C³B
+ skill_status_change_clear()Askill_readdb() C³B
+ mob.c
+ mobskill_use_id()Amob_changestate() C³B
+ pc.c
+ pc_itemheal()Apc_percentheal()Apc_calcstatus() C³B
+ battle.h C³B
+ battle.c
+ battle_delay_damage()Abattle_damage()Abattle_heal() C³B
+ battle_get_adelay()Abattle_get_amotion() C³B
+ battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
+ battle_weapon_attack()Abattle_config_read() C³B
+ clif.c
+ clif_skill_fail() C³B
+ script.c
+ buildin_sc_start()Abuildin_sc_end() C³B
+ makefile C³B
+
+--------------------
+//0879 by ŒÓ’±—–
+
+E‘—MFIFO‚̃oƒbƒtƒ@ƒI[ƒo[ƒtƒ[‚ÌÆŽã«‚ÌC³
+ E2048ƒoƒCƒgˆÈã‚̃pƒPƒbƒg‚ð‘—‚é‚Æ‚«AFIFO‚ª–ž”t‚É‹ß‚¯‚ê‚Î
+ ƒoƒbƒtƒ@ƒI[ƒo[ƒtƒ[‚É‚æ‚é•s³ƒAƒNƒZƒX‚ª‹N‚±‚Á‚Ä‚¢‚½–â‘èC³B
+ EFIFO‚ª–ž”t‚É‹ß‚¢‚Æ‚«WFIFOSET‚³‚ꂽƒpƒPƒbƒg‚ªŽÌ‚Ä‚ç‚ê‚Ä‚¢‚½–â‘èC³B
+ EFIFO‚ªƒI[ƒo[ƒtƒ[‚·‚éê‡AŽ©“®“I‚ÉFIFO‚ðŠg’£‚·‚é‚悤‚É‚µ‚½B
+ i‚½‚¾‚µAˆê“x‚ÉWFIFOSET‚·‚éƒpƒPƒbƒg‚ª16384ƒoƒCƒgˆÈ‰º‚Ɖ¼’肵‚Ä‚¢‚éj
+ Eusocket: ? wdata expanded to ???? bytesv‚ÍFIFO‚ªŠg’£‚³‚ꂽ‚Æ‚«‚É
+ ‚ł郃O‚¾‚ªAƒGƒ‰[‚Å‚Í‚È‚­AƒpƒPƒbƒg‚ͳ‚µ‚­‘—M‚³‚ê‚éB
+ Eusocket: ? wdata lost !!v‚̓pƒPƒbƒg‚ª‘rŽ¸‚µ‚½‚±‚Æ‚ð•\‚·ƒƒO‚ÅA
+ ƒGƒ‰[‚Å‚ ‚邪64KB‚ð’´‚¦‚é’´‹‘å‚ȃpƒPƒbƒg‚ðWFIFOSET‚µ‚È‚¢‚Æo‚È‚¢B
+ E16384ƒoƒCƒg‚ð’´‚¦‚éƒpƒPƒbƒg‚ðWFIFOSET‚·‚é‚ƃGƒ‰[ƒƒbƒZ[ƒW‚È‚µ‚ÉA
+ •s³ƒAƒNƒZƒX‚ª‹N‚±‚é‰Â”\«‚ª‚ ‚é‚Ì‚ÅA’´‚¦‚È‚¢‚悤‚É‚·‚邱‚ÆB
+
+ (common/)
+ socket.c /socket.h
+ WFIFOSET()‚ðƒ}ƒNƒ‚©‚çŠÖ”‚É•ÏX
+ realloc_fifo()’ljÁ
+
+EƒT[ƒo[ŠÔ’ÊMFIFO‚̃oƒbƒtƒ@ƒTƒCƒY‚ð‘å‚«‚­‚µ‚½
+ E‘å—ʂ̃f[ƒ^‚ª’ÊM‚³‚ꂽ‚Æ‚«‚Ƀf[ƒ^ˆ—’x‰„‚ª‹N‚«‚É‚­‚­‚·‚邽‚ßB
+ Eƒƒ‚ƒŠŽg—p—Ê‚ª‘‚¦‚½B(‚¬‚肬‚è‚Ìl‚Í65536‚ÉÝ’è‚·‚é‚ÆŒ³’Ê‚è‚É‚È‚é)
+ EƒT[ƒo[ŠÔ’ÊM‚ÌFIFOƒTƒCƒY‚Í mmo.h ‚Å’è‹`‚³‚ê‚Ä‚¢‚éB
+ •ÏX‚·‚éꇂÍ64KB(65536)ˆÈã‚Ì’l‚É‚·‚邱‚ÆB
+ ‘å‚«‚­‚·‚é‚Æ‹‘åƒf[ƒ^ŽóMŽž‚Ì’x‰„‚ªŒ¸‚邪ƒƒ‚ƒŠ‚𑽂­Žg‚¤B
+ E@kickallŽž‚ȂǂɃf[ƒ^‘—M‚ªŒƒ‚µ‚­‚È‚é‚Ì‚Å•ÏX‚µ‚½‚ªA
+ “¯ŽžƒƒOƒCƒ“l”‚ª­‚È‚¢‚Æ‘‚₵‚Ä‚àˆÓ–¡‚Í–³‚¢B
+
+ (common/)
+ mmo.h
+ FIFOSIZE_SERVERLINKƒ}ƒNƒ’ljÁB
+ (login/)
+ login.c
+ 2710ƒpƒPƒbƒg‚Årealloc_fifo()‚ðŒÄ‚Ԃ悤‚É
+ (char/)
+ char.c
+ 2af8ƒpƒPƒbƒg‚Årealloc_fifo()‚ðŒÄ‚Ԃ悤‚É
+ check_connect_login_server()‚Årealloc_fifo()‚ðŒÄ‚Ԃ悤‚É
+ (map/)
+ chrif.c
+ check_connect_char_server()‚Årealloc_fifo()‚ðŒÄ‚Ԃ悤‚É
+
+--------------------
+//0878 by huge
+
+EƒJƒvƒ‰‹âsƒT[ƒrƒXB
+ Ž©•ª‚ÌŽI‚ÅŽÀ‘•‚µ‚Ä‚½‚ñ‚Å‚·‚ªAˆÓŠO‚ÆDŠ´G‚¾‚Á‚½‚Ì‚Åo‚µ‚Ä‚Ý‚Ü‚·B
+ NPCscript‚ÅAopenbank(0);‚Å—a‹àŠz‚ð•Ô‚µ‚ÄA’†‚É”Žš‚ð“ü‚ê‚é‚Æo‚µ“ü‚ꂵ‚Ü‚·B
+ Ú‚µ‚­‚̓Tƒ“ƒvƒ‹‚𓯕•‚µ‚½‚Ì‚ÅA‚»‚ê‚ðŽQÆB
+
+ (common/)
+ mmo.h
+ struct bank ’ljÁB
+ (map/)
+ map.c
+ do_final(),do_init() C³B
+ script.c
+ buildin_openbank() ’ljÁB
+ storage.c
+ storage.h
+ ƒOƒ[ƒoƒ‹•Ï”’ljÁB
+ do_init_bank(),do_final_bank(),account2bank() ’ljÁB
+ storage_bank(),storage_readbank() ’ljÁB
+
+--------------------
+//0877 by ŒÓ’±—–
+
+EloginŽI‚̃AƒNƒZƒXƒRƒ“ƒgƒ[ƒ‹‚ªƒlƒbƒgƒ}ƒXƒN•\‹L‚ɑΉž
+ 192.168.0.0/24 ‚â 192.168.0.0/255.255.0.0 ‚Æ‚¢‚Á‚½•\‹L‚ɑΉžB
+Ebattle_athena.conf‚ÉGM‚ª–³ðŒ‚Å‘•”õ•i‚ð‘•”õ‚Å‚«‚é•
+ –³ðŒ‚ŃXƒLƒ‹‚ðŽg—p‚Å‚«‚éÝ’è’ljÁ
+ ‚±‚ê‚ç‚̓fƒoƒO—p‚È‚Ì‚Å“®ì‚É•s“s‡‚ª‚ ‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB
+
+ (login/)
+ login.c
+ check_ip()C³,check_ipmask()’ljÁ
+ (map/)
+ battle.c/battle.h
+ battle_config‚Égm_allequip,gm_skilluncond’ljÁ
+ battle_config_read()C³X
+ skill.c
+ skill_check_conditio()C³
+ pc.c
+ pc_isequp()C³
+ (doc/)
+ conf_ref.txt
+ allow•ÏXAgm_all_equipmentAgm_skill_unconditional’ljÁ
+
+--------------------
+//0876 by Ž€_
+
+Eׂ©‚¢ƒoƒOC³B
+E@ƒRƒ}ƒ“ƒh‚ɃeƒXƒg‚ׂ̈ɓü‚ê‚Ä‚¢‚½•¨‚ª“ü‚Á‚Ä‚¢‚½‚Ì‚ÅC³B
+Eƒnƒ“ƒ}[ƒtƒH[ƒ‹‚ÌŽË’ö‚ð5‚©‚ç4‚ÉC³(–{ŽIŽË’ö‚Í•s–¾)‚ƃŠƒUƒŒƒNƒVƒ‡ƒ“‚ª–³‘®«‚¾‚Á‚½‚̂𹑮«‚ÉC³B
+ (db/)
+ skill_db.txt C³B
+ (map/)
+ mob.c
+ mob_catch_delete()Amob_stop_walking() C³B
+ storage.c
+ storage_additem() C³B
+ pc.c
+ pc_damage()Apc_stop_walking() C³B
+ clif.c
+ clif_parse_UseSkillToId()Aclif_parse_UseSkillToPos() C³B
+ battle.c
+ battle_calc_magic_attack() C³B
+ skill.c
+ skill_check_condition() C³B
+ atcommand.c C³B
+
+--------------------
+//0875 by ŒÓ’±—–
+
+Eparty_share_level‚ðinter_athena.conf‚Ɉڂµ‚½
+ (ƒp[ƒeƒBŠÖ˜A‚̈—‚ÌŠÇŠ‚ªinterŽI‚Ì‚½‚ß)
+Einter_athena.conf‚Éinter_log_file€–ڒljÁ
+EƒMƒ‹ƒhì¬/‰ðŽU/éè—Ì/é”jŠü‚ªƒƒO‚ÉŽc‚é‚悤‚É
+EƒMƒ‹ƒh‰ðŽUŽž‚Ƀƒ‚ƒŠƒŠ[ƒN‚µ‚Ä‚¢‚½–â‘è‚ðC³
+ (char/)
+ char.c/char.h
+ party_share_levelŠÖ˜A
+ (inter/)
+ inter.c/inter.h
+ party_share_level / inter_log_file ŠÖ˜A
+ ƒƒOo—Í—p‚Éinter_log()’ljÁ
+ int_guild.c
+ ì¬/‰ðŽU/éè—Ì/é”jŠü‚ðƒƒO‚Éo—Í
+ ƒƒ‚ƒŠƒŠ[ƒNC³
+ (doc/)
+ conf_ref.txt
+ C³
+
+EƒT[ƒo[ó‘ÔŠm”F—pCGIƒXƒNƒŠƒvƒg“Y•t‚È‚Ç
+ EŽ©ŒÈÓ”C•Úׂȉðà–³‚µAŽ¿–₳‚ê‚Ä‚àƒXƒ‹[‚·‚é‰Â”\«—L‚è
+ EƒGƒfƒBƒ^‚ÅŠJ‚¢‚½‚ç­‚µà–¾—L‚è
+ ECGIÝ’u‚ÌŠî–{‚³‚¦‚í‚©‚ê‚Ζâ‘è‚È‚¢‚Í‚¸
+
+ (tool/cgi/)
+ serverstatus.cgi
+ ƒT[ƒo[ó‘ÔŠm”F—pCGIƒXƒNƒŠƒvƒg
+ addaccount.cgi
+ à–¾C³
+
+--------------------
+//0874 by Kalen
+EWhiteDayƒCƒxƒ“ƒg’ljÁ
+ conf/npc/npc_event_whiteday.txt(V‹K)
+ ‚½‚¾A‚¨‰ÙŽq”„‚Á‚Ă邾‚¯‚Ý‚½‚¢cGM‚ª‚È‚É‚â‚é‚Ì‚©‚Í’m‚è‚Ü‚¹‚ñ‚ªB
+ sakRO‚Ì‚Ù‚¤‚ł̓zƒƒCƒgƒ`ƒ‡ƒR‚炵‚«‚à‚Ì‚ª’ljÁ‚³‚ꂽ‚Ì‚É
+ jRO‚ŒljÁ‚³‚ꂽ‚Ì‚Í—’d“P‹Žƒpƒbƒ`‚Ì‚Ý(*L„t`;)c
+
+EAlchemistƒMƒ‹ƒh‚Å“û”«A»‘¢‘‚ð•Ï‚¦‚é‚悤‚É
+ conf/npc/npc_job_alchemist.txt(V‹K)
+ “]EƒNƒGƒXƒg‚ª•ª‚©‚ç‚È‚©‚Á‚½‚̂ʼn·‚ß‚Ä‚¢‚Ü‚µ‚½‚ª
+ ”ƒ‚¦‚È‚¢‚Æ•s•Ö‚Æ•·‚¢‚½‚Ì‚ÅA’ljÁ
+
+EõFNPCŽÀ‘•
+ conf/npc/npc_event_dye.txt(XV)
+ ”¯Œ^•ÏX‚ªsakRO‚É—ˆ‚½‚炵‚¢‚Ì‚Å
+ ‚È‚ñ‚Æ‚È[‚­XV
+
+--------------------
+//0873 by Ž€_
+
+E@ƒRƒ}ƒ“ƒhitem2‚Ækillmonster ’ljÁB
+EƒXƒNƒŠƒvƒggetitem2‚Ækillmonsterall ’ljÁB
+E–î쬂Åì‚ç‚ꂽ–î‚໑¢ŽÒ‚Ì–¼‘O‚ª•t‚­‚悤‚ÉC³B
+Ebattle_athena.conf‚Émonster_class_change_full_recover’ljÁB
+E‘•”õƒXƒNƒŠƒvƒg‚ÉbWeaponComaEle‚ÆbWeaponComaRace ’ljÁB
+E­‚µŠÔˆá‚¢‚ª‚ ‚Á‚½ƒ_ƒ[ƒWŒvŽZŽ®C³B
+EbInfiniteEndure‚̈—‚ðƒCƒ“ƒfƒ…ƒA•\Ž¦‚È‚µ‚Å“à•”ˆ—‚·‚é‚悤‚É•ÏXB
+EƒI[ƒgƒXƒyƒ‹‚Åcastend_nodamage_id()‚ðŒÄ‚ÔƒXƒLƒ‹‚àŽg—p‚Å‚«‚é‚悤‚ÉC³B
+E‚»‚Ì‘¼×‚©‚¢C³‚ƃoƒOC³B
+E‚Ù‚Æ‚ñ‚Ç–¢ƒeƒXƒg‚Ȃ̂ŃoƒO‚ª‚ ‚Á‚½‚ç•ñ‚¨Šè‚¢‚µ‚Ü‚·B
+ (conf/)
+ help.txt C³B
+ atcommand_athena.conf C³B
+ battle_athena.conf C³B
+ char_athena.conf C³B
+ (db/)
+ const.txt C³B
+ item_db.txt C³B
+ (doc/)
+ item_bonus.txt C³B
+ script_ref.txt C³B
+ conf_ref.txt C³B
+ (map/)
+ map.h C³B
+ map.c
+ map_quit() C³B
+ skill.h C³B
+ skill.c
+ skill_castend_nodamage_id()Askill_status_change_clear() C³B
+ skill_castend_id()Askill_castend_pos()Askill_arrow_create() C³B
+ skill_status_change_timer() C³B
+ pc.c
+ pc_calcstatus()Apc_bonus2()Apc_equipitem() C³B
+ pc_unequipitem()Apc_damage() C³B
+ battle.h C³B
+ battle.c
+ battle_get_dmotion()Abattle_weapon_attack() C³B
+ battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
+ battle_calc_magic_attack()Abattle_config_read() C³B
+ clif.c
+ clif_parse_LoadEndAck()Aclif_damage()Aclif_skill_damage() C³B
+ clif_skill_damage2() C³B
+ itemdb.h C³B
+ itemdb.c
+ itemdb_isequip3() ’ljÁB
+ mob.h C³B
+ mob.c
+ mob_delay_item_drop()Amob_damage()Amob_changestate() C³B
+ mob_class_change()Amob_delete()Amob_catch_delete() C³B
+ script.c
+ buildin_getitem() C³B
+ buildin_killmonsterall_sub()Abuildin_killmonsterall() ’ljÁB
+ atcommand.h C³B
+ atcommand.c
+ atcommand() C³B
+ atkillmonster_sub() ’ljÁB
+
+--------------------
+//0872 by ElFinLazz
+
+EƒXƒLƒ‹ƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[C³
+EƒXƒLƒ‹ƒMƒ€ƒ\ƒoƒ“ƒOƒhƒ“ƒ{ƒ‹ƒIƒbƒl‹ïŒ»
+EƒXƒLƒ‹ƒAƒuƒ‰ƒJƒ_ƒu‚È‚ç‹`ƒR[ƒ}‹ïŒ»
+EƒR[ƒ}‚Ì•ŠíƒIƒvƒVƒ‡ƒ“’ljÁ(Ží‘°, 番—¦)
+EƒIƒvƒVƒ‡ƒ“à–¾’ljÁ
+ (db/)
+ const.txt C³.
+ (doc/)
+ item_bonus.txt C³.
+ (map/)
+ map.h C³.
+ skill.c
+ skill_castend_nodamage_id(), skill_unit_group(), skill_status_change_start() C³.
+ pc.c
+ pc_calcstatus(), pc_bonus2(), pc_gainexp() C³.
+ battle.c
+ battle_weapon_attack() C³.
+
+--------------------
+//0871 by Ž€_
+
+E0869‚̃oƒOC³B
+Echar_athena.conf‚Ælogin_athena.conf‚É€–ڒljÁB(ƒLƒƒƒ‰ŽI‚ƃƒOƒCƒ“ŽI‚̃ƒOƒtƒ@ƒCƒ‹‚ð•Ï‚¦‚邱‚Æ‚ª‚Å‚«‚é‚悤‚É‚µ‚Ü‚µ‚½BƒfƒtƒHƒ‹ƒg‚Ålog/ƒtƒHƒ‹ƒ_[‚É“ü‚é‚Ì‚ÅlogƒtƒHƒ‹ƒ_[‚ðì‚é•K—v‚ª‚ ‚è‚Ü‚·B)
+EƒGƒiƒW[ƒR[ƒg‚̈—‚ð­‚µC³Bƒ‚ƒ“ƒXƒ^[‚ªŽg‚Á‚½ê‡‚̓XƒLƒ‹ƒŒƒxƒ‹*6%‚Ì•¨—ƒ_ƒ[ƒW‚ðŒ¸‚ç‚·‚悤‚É•ÏXB
+E•ŠíˆÈŠO‚Ì•¨‚ł໑¢ŽÒ‚Ì–¼‘O‚ð•\Ž¦‚·‚é‚悤‚É•ÏXB(–{ŽI‚ł̓vƒŒƒ[ƒ“ƒgƒ{ƒbƒNƒX‚ÆŽèì‚èƒ`ƒ‡ƒRƒŒƒbƒgˆÈŠO‚Í•\Ž¦‚³‚ê‚Ü‚¹‚ñ‚ªƒpƒPƒbƒg‚Í‚ ‚邱‚Æ‚¾‚µ“ü‚ê‚Ä‚Ý‚Ü‚µ‚½B)
+E‚»‚Ì‘¼ƒXƒLƒ‹ŠÖŒW‚Ìׂ©‚¢C³B
+E@ƒRƒ}ƒ“ƒhˆê‚‚ƃXƒNƒŠƒvƒgˆê‚‚ð’ljÁ‚µ‚Ü‚µ‚½‚ªà–¾‚ÍŒã‚̃pƒbƒ`‚Å‘‚«‚Ü‚·B
+ (conf/)
+ char_athena.conf C³B
+ login_athena.conf C³B
+ (doc/)
+ conf_ref.txt C³B
+ (login/)
+ login.c
+ parse_login()Alogin_config_read()Alogin_log() C³B
+ (char/)
+ char.h C³B
+ char.c
+ char_config_read()Amake_new_char()Aparse_char() C³B
+ int_party.c C³B
+ int_storage.c C³B
+ int_guild.c C³B
+ int_pet.c C³B
+ (map/)
+ map.h C³B
+ skill.c
+ skill_status_change_start()Askill_additional_effect() C³B
+ skill_castend_nodamage_id()Askill_check_condition() C³B
+ skill_status_change_clear()Askill_produce_mix() C³B
+ skill_status_change_timer() C³B
+ pc.c
+ pc_calcstatus()Apc_insert_card()Apc_additem()Apc_cart_additem() C³B
+ storage.c
+ storage_additem() C³B
+ battle.c
+ battle_get_adelay()Abattle_get_amotion()Abattle_calc_damage() C³B
+ clif.c
+ clif_additem()Aclif_equiplist()Aclif_storageequiplist() C³B
+ clif_tradeadditem()Aclif_storageitemadded()Aclif_use_card() C³B
+ clif_cart_additem()Aclif_cart_equiplist()Aclif_vendinglist() C³B
+ clif_openvending()Aclif_arrow_create_list() C³B
+ clif_skill_produce_mix_list()Aclif_parse_SelectArrow() C³B
+ clif_parse_ProduceMix() C³B
+ script.c
+ buildin_produce() C³B
+ buildin_getitem2() ’ljÁB
+ atcommand.c
+ atcommand() C³B
+
+--------------------
+//0870 by shuto
+
+Emapflag‚ÌUéíMAP‚Énomemo’ljÁ
+EƒMƒ‹ƒh•ó” ‚ÅA•ó” oŒ»‚Æ“¯Žž‚ÉMAPŽI‚ª—Ž‚¿‚é–â‘èC³(by ‚Ò‚´‚Ü‚ñ)
+
+--------------------
+//0869 by Ž€_
+
+Ebattle_athena.conf‚Éplayer_land_skill_limitAmonster_land_skill_limitAparty_skill_penaly ’ljÁB
+Echar_athena.conf‚Éparty_share_level ’ljÁB
+E‚»‚Ì‘¼×‚©‚¢C³B
+ (conf/)
+ char_athena.conf C³B
+ battle_athena.conf C³B
+ (doc/)
+ conf_ref.txt C³B
+ (char/)
+ char.h C³B
+ char.c
+ char_config_read() C³B
+ int_party.c
+ party_check_exp_share() C³B
+ (map/)
+ map.h C³B
+ skill.c
+ skill_attack()Askill_castend_damage_id() C³B
+ skill_castend_nodamage_id()Askill_status_change_start() C³B
+ skill_castend_pos() C³B
+ pc.c
+ pc_calcstatus() C³B
+ mob.c
+ mobskill_castend_pos() C³B
+ battle.h
+ battle.c
+ battle_get_adelay()Abattle_get_amotion()Abattle_calc_damage() C³B
+ battle_config_read() C³B
+ pet.c
+ pet_data_init() C³B
+
+--------------------
+//0868 by Ž€_
+
+Eƒ}ƒWƒbƒNƒƒbƒhŽÀ‘•‚ƃXƒyƒ‹ƒuƒŒƒCƒJ[C³B
+Eƒ}ƒWƒbƒNƒƒbƒh‚Ìꇖ{ŽI‚ÅŽg‚Á‚Ä‚à‚È‚ñ‚Ì•\Ž¦‚à‚È‚­”­“®‚Ì‘O‚É‚ÍŽg‚Á‚½‚©‚Ç‚¤‚©‚ÌŠm”F‚ª‚Å‚«‚È‚¢‚̂ŃXƒLƒ‹‰r¥ƒpƒPƒbƒg(0x13e)‚ð—˜—p‚µ‚ÄŽg—p‚·‚鎞ƒXƒLƒ‹–¼‚ªo‚é‚悤‚É‚µ‚Ä‚¢‚Ü‚·B(–{ŽI‚ƈႤ‚¼‚Æ‚©‚Å•¶‹å‚ª‚±‚È‚¢‚悤‚É)
+EƒXƒyƒ‹ƒuƒŒƒCƒJ[‰r¥ƒLƒƒƒ“ƒZƒ‹‚ÉŠÖŒW‚È‚­skill_db.txt‚Éݒ肳‚ê‚Ä‚éskill_type‚ªmagic‚̃XƒLƒ‹‚Ì‚Ý”j‚邱‚Æ‚ª‚Å‚«‚Ü‚·B(ƒ‰ƒOƒiƒQ[ƒg‚Ìà–¾‚ð“K—p)
+Eskill_db.txt‚Ì‘Ž®‚ª•Ï‚í‚Á‚½‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢BƒmƒbƒNƒoƒbƒN‹——£‚ÌÝ’è‚à‚Å‚«‚Ü‚·‚ª”O‚ׂ̈ɂ¢‚Á‚Ä‚¨‚«‚Ü‚·‚ªAŽI‚ł̃eƒXƒg‚ÅFW‚̃mƒbƒNƒoƒbƒN‹——£‚Í2‚ŃTƒ“ƒN‚à2‚Å‚ ‚邱‚Æ‚ðŠm”F‚µ‚Ä‚¢‚Ü‚·BŠØ‘‚Ì2003”N11ŒŽ19“úƒpƒbƒ`‘O‚ÌŽI‚Å‚Í‚ ‚è‚Ü‚·‚ª2-2‚Í“K—p‚³‚ê‚Ä‚¢‚銂Ȃ̂Ŗ{ŽI‚̈Ⴂ‚Í‚È‚¢‚ÆŽv‚¢‚Ü‚·B
+E‚»‚Ì‘¼ƒXƒLƒ‹ŠÖŒW‚Ìׂ©‚¢C³B
+E0867‚Å‘‚«–Y‚êBƒ‚ƒ“ƒXƒ^[‚̃q[ƒ‹‚ŃAƒ“ƒfƒbƒhƒ‚ƒ“ƒXƒ^[‚ªUŒ‚‚³‚ê‚ÄŽ©–Å‚·‚é‚̂Ńq[ƒ‹‚⃊ƒU‚Ìê‡mob_skill_db.txt‚Ìval1(’l1)‚É1‚ð“ü‚ê‚é‚ƃAƒ“ƒfƒbƒhƒ‚ƒ“ƒXƒ^[‚àUŒ‚‚ðŽó‚¯‚¸‰ñ•œ‚·‚é‚悤‚É‚È‚è‚Ü‚·B–{ŽI‚ł̓‚ƒ“ƒXƒ^[‚̃q[ƒ‹‚̓Aƒ“ƒfƒbƒh‚ÉŠÖŒW‚È‚­‰ñ•œ‚·‚é‚悤‚Å‚·B‚½‚¾ŒÂl“I‚ɂ̓]ƒ“ƒr‚ªƒq[ƒ‹‚µ‚ÄŽ©–Å‚·‚é•û‚ª³‚µ‚¢‚ÆŽv‚¤‚Ì‚Åmob_skill_db.txt‚ÅÝ’è‚Å‚«‚é‚悤‚É‚µ‚Ä‚¨‚è‚Ü‚·B
+ (doc/)
+ db_ref.txt C³B
+ (db/)
+ cast_db.txt C³B
+ skill_db.txt C³B
+ (map/)
+ skill.h C³B
+ skill.c
+ skill_status_change_start()Askill_status_change_end() C³B
+ skill_castend_damage_id()Askill_castend_nodamage_id() C³B
+ skill_attack()Askill_status_change_timer()Askill_castcancel() C³B
+ skill_unit_onplace()Askill_use_id()Askill_castend_id() C³B
+ skill_readdb() C³B
+ skill_get_blewcount() ’ljÁB
+ mob.c
+ mobskill_use_id()Amob_spawn()Amob_attack() C³B
+ battle.c
+ battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
+ battle_calc_pc_weapon_attack()Abattle_calc_magic_attack() C³B
+ battle_calc_misc_attack()Abattle_weapon_attack() C³B
+ clif.c
+ clif_damage() C³B
+ pet.c
+ pet_attack() C³B
+ pc.c
+ pc_attack_timer()Apc_authok() C³B
+ pc_spirit_heal()Apc_natural_heal_sub() C³B
+
+--------------------
+//0867 by Ž€_
+
+EƒXƒLƒ‹ŠÖŒW‚Ìׂ©‚¢C³B
+Ebattle_athena.conf‚Éplayer_undead_nofreeze’ljÁB
+EV‚µ‚¢ƒAƒCƒeƒ€ƒpƒPƒbƒg‚ɑΉžB(PACKETVER‚ð5ˆÈã‚É‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B)
+Emob_avail.txt‚ŃvƒŒƒCƒ„[‚ÌŽp‚ðŽw’肵‚½ŽžƒyƒRƒyƒR‚â‘é‚ð•t‚¯‚邱‚Æ‚ª‚Å‚«‚é‚悤‚É•ÏXB“ª‰º’iŽŸ‚ɃIƒvƒVƒ‡ƒ“‚ðÝ’è‚Å‚«‚Ü‚·B(‚½‚¾ƒnƒCƒfƒBƒ“ƒO‚ƃNƒ[ƒLƒ“ƒO‚ÍŽw’è‚Å‚«‚È‚¢‚悤‚É‚È‚Á‚Ä‚¢‚Ü‚·B)
+ makefile C³B
+ (conf/)
+ battle_athena.conf C³B
+ (doc/)
+ conf_ref.txt C³B
+ client_packet.txt C³B
+ (map/)
+ battle.h C³B
+ battle.c
+ battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
+ battle_calc_pc_weapon_attack()Abattle_config_read() C³B
+ clif.c
+ clif_mob_class_change()Aclif_spawnmob()Aclif_spawnpet() C³B
+ clif_damage()Aclif_skill_damage()Aclif_skill_damage2() C³B
+ clif_itemlist()Aclif_cart_itemlist()Aclif_storageitemlist() C³B
+ clif_mob0078()Aclif_mob007b()Aclif_pet0078()Aclif_pet007b() C³B
+ pc.c
+ pc_attack_timer() C³B
+ skill.c
+ skill_castend_nodamage_id()Askill_additional_effect() C³B
+ skill_status_change_start() C³B
+ mob.h C³B
+ mob.c
+ mobskill_castend_id()Amob_getfriendstatus_sub() C³B
+ mob_readdb_mobavail() C³B
+
+--------------------
+//0866 by ‚Ò‚´‚Ü‚ñ
+
+EMOTD‚̃ƒbƒZ[ƒW‚ð‘S‚Ä•ÒW‚Å‚«‚é‚悤‚É•ÏXB
+EƒNƒ[ƒ“ƒXƒLƒ‹ŽÀ‘•B
+@ƒhƒ‹•ž‚̃q[ƒ‹ƒAƒ^ƒbƒN‚É‚æ‚éƒq[ƒ‹K“¾‚Í–¢ƒeƒXƒg‚Å‚·B
+EƒMƒ‹ƒh•ó” ‰¼ŽÀ‘•B
+@ƒ”ƒ@ƒ‹ƒLƒŠ[‚P‚Ì‚Ý‚Å‚·B
+@¤‹Æ“ŠŽ‘‚É‚æ‚é•ó” ŒÂ”‚ÌŽZoŽ®‚Í“K“–‚Å‚·(‰ŠúŒÂ”4ŒÂ‚Æ‚µ‚©’m‚ç‚È‚¢‚Ì‚Å)B
+@OnclockƒCƒxƒ“ƒg‚Å“®ì‚³‚¹‚Ä‚¢‚Ü‚·B”CˆÓ‚ÌŽž‚É•ÏX‚µ‚Ä‚­‚¾‚³‚¢B
+EAthenaDBŒv‰æ‚Ìmob_db.txt‚Æmapflag.txt‚ð“ü‚ê‚Ä‚¨‚«‚Ü‚µ‚½B
+
+ (map/)
+ pc.c
+ pc_makesavestatus()Apc_calc_skilltree() C³B
+ pc_allskillup()Apc_calc_skillpoint() C³B
+ pc_resetskill()Apc_authok() C³B
+ skill.c
+ skill_attack() C³B
+ map.h C³B
+ (conf/)
+ gvg/TEST_prtg_cas01_AbraiJ.txt C³B
+ motd.txt C³B
+ mapflag.txt C³B
+ (db/)
+ mob_db.txt C³B
+
+--------------------
+//0865 by ‚Ò‚´‚Ü‚ñ
+
+EŽ©•ª‚ªè—Ì‚µ‚Ä‚¢‚éƒAƒWƒg‚̃Gƒ“ƒyƒŠƒEƒ€‚ðUŒ‚‚Å‚«‚½ƒoƒOC³B
+EƒAƒuƒ‰ƒC‚ªè—̃Mƒ‹ƒhƒƒ“ƒo[‘Sˆõ‚ðƒ}ƒXƒ^[‚Æ‚Ý‚È‚µ‚Ä‚¢‚½ƒoƒOC³B
+@‚±‚ÌC³‚É”º‚Á‚ăXƒNƒŠƒvƒgƒŠƒtƒ@ƒŒƒ“ƒX‚ɉü•Ï‚ª‚ ‚è‚Ü‚·B
+ Egetcharid(0)‚ÅAŽ©•ª‚ÌcharID‚ð•Ô‚·‚悤‚ÉB
+ Egetguildmasterid(<n>)’ljÁB
+ @<n>=ƒMƒ‹ƒhID
+ @ŠY“–ƒMƒ‹ƒh‚̃}ƒXƒ^[‚ÌcharID‚ð•Ô‚µ‚Ü‚·B
+
+ (map/)
+ guild.c
+ guild_mapname2gc() ’ljÁB
+ battle.c
+ battle_calc_damage() C³B
+ script.c
+ buildin_getcharid() C³B
+ buildin_getguildmasterid() ’ljÁB
+ ƒ[ƒJƒ‹ƒvƒƒgƒ^ƒCƒv錾‚̈ꕔ‚ðC³A’ljÁB
+ guild.h C³B
+
+--------------------
+//0864 by ŒÓ’±—–
+
+EinterŽI‚Ìwis‚̈—•ÏX
+ EŽ©‘OƒŠƒ“ƒNƒŠƒXƒg‚©‚çdb.h‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚éƒf[ƒ^ƒx[ƒX‚ðŽg—p‚·‚é‚悤‚É
+ EWIS‚ÌID‚ð16ƒrƒbƒg‚©‚ç32ƒrƒbƒg‚É‘‚₵‚½iƒpƒPƒbƒg‚àC³j
+ EƒƒbƒZ[ƒW‚̃TƒCƒYƒ`ƒFƒbƒN‚ð“ü‚ꂽ
+ EƒpƒPƒbƒgƒXƒLƒbƒv‚ª“ñ‰ñs‚í‚ê‚é‰Â”\«‚ª‚ ‚éƒoƒOC³
+
+ (char/)
+ inter.c
+ wisŠÖŒW‘å••ÏX
+ (map/)
+ intif.c
+ wisŠÖŒW‚ÌC³BŽå‚ɃpƒPƒbƒgˆ—B
+ (doc/)
+ inter_server_packet.txt
+ ƒpƒPƒbƒg3002,3801‚ð•ÏX
+
+--------------------
+//0863 by Ž€_
+
+Eׂ©‚¢C³B
+Ebattle_athena.conf‚Éplayer_attack_direction_change’ljÁB
+Emob_skill_db.txt‚ðC³‚·‚鎞’§”­‚ÌC³‚ðŠÔˆá‚Á‚ÄC³B
+Eƒ‚ƒ“ƒXƒ^[‚̃XƒLƒ‹Ž©”š–â‘èC³B(–¢ƒeƒXƒg)
+ (conf/)
+ battle_athena.conf C³B
+ (doc/)
+ conf_ref.txt C³B
+ (db/)
+ mob_skill_db.txt C³B
+ (map/)
+ mob.c
+ mobskill_use_id()Amobskill_use()Amobskill_castend_id() C³B
+ pc.c
+ pc_skill()Apc_attack_timer() C³B
+ skill.c
+ skill_castend_damage_id() C³B
+ battle.h C³B
+ battle.c
+ battle_weapon_attack()Abattle_config_read() C³B
+
+--------------------
+//0862 by ŒÓ’±—–
+
+EmobƒXƒLƒ‹Žg—pðŒ’ljÁ
+ Efriendhpltmaxrate : –¡•û‚ÌHP‚ªŽw’è“–¢–ž‚Ì‚Æ‚«(ƒeƒXƒgÏ‚Ý)
+ Efriendstatuson : –¡•û‚ªŽw’肵‚½ƒXƒe[ƒ^ƒXˆÙí‚É‚È‚Á‚Ä‚¢‚é‚Æ‚«
+ Efriendstatusoff : –¡•û‚ªŽw’肵‚½ƒXƒe[ƒ^ƒXˆÙí‚É‚È‚Á‚Ä‚¢‚È‚¢‚Æ‚«
+ Emystatuson : Ž©•ª‚ªŽw’肵‚½ƒXƒe[ƒ^ƒXˆÙí‚É‚È‚Á‚Ä‚¢‚é‚Æ‚«
+ Emystatusoff : Ž©•ª‚ªŽw’肵‚½ƒXƒe[ƒ^ƒXˆÙí‚É‚È‚Á‚Ä‚¢‚È‚¢‚Æ‚«
+ ƒXƒe[ƒ^ƒXŒn‚Í–¢ƒeƒXƒg‚Å‚·Bmob_skill_db.txt‚ÉŽw’è•û–@‚ð‘‚¢‚Ä‚¢‚Ü‚·B
+ ‚½‚Æ‚¦‚ÎŽ©•ª‚ª“Å‚©‚Ç‚¤‚©‚Í mystatus,poison ‚ÅA
+ ƒnƒCƒfƒBƒ“ƒO’†‚©‚Ç‚¤‚©‚Í mystatuson,hiding ‚ÅŽw’肵‚Ü‚·B
+EmobƒXƒLƒ‹Žg—pƒ^[ƒQƒbƒg’ljÁ
+ Efriend : –¡•û
+ Earound : Ž©•ª‚ÌŽüˆÍiŒ»Ý‚ÌŽd—l‚Å‚ÍŽüˆÍ81ƒ}ƒXj‚Ì‚Ç‚ê‚©
+ Earound1`around4 : Ž©•ª‚ÌŽüˆÍ‚X,25,49,81ƒ}ƒX‚Ì‚Ç‚ê‚©(”͈͂𖾎¦)
+ friend‚ÍðŒ‚ªfriendŒn(friendhpltmaxrate‚È‚Ç)‚Ì‚Æ‚«‚ÉŽg—p‰Â”\B
+ aroundŒn‚Íꊎw’èƒXƒLƒ‹‚ÅŽg—p‰Â”\B
+
+ (map/)
+ mob.c / mob.h
+ mob_getfriend*()’ljÁAmobskill_use()C³‚È‚Ç
+ (db/)
+ mob_skill_db.txt
+ ʼn‚Ìà–¾‚Ì‚ÝC³Bƒf[ƒ^‚ÍC³‚µ‚Ä‚¢‚Ü‚¹‚ñB
+
+--------------------
+//0861 by ‚¢‚Ç
+
+EƒT[ƒo[snapshot
+
+--------------------
+//0860 by J
+
+EŽ€_‚³‚ñ‚̎艺¢Š«‚ÌC³‚ɇ‚킹‚ÄMOBƒXƒLƒ‹DB‚ðC³
+(/conf)
+ mob_skill_db.txt C³B
+
+--------------------
+//0859 by Ž‚Žqo^.^o
+Alchemist warp C³(AegisŽQl)
+(/conf)
+ (/warp)
+ npc_warp_job.txt C³
+
+--------------------
+//0858 by Ž€_
+
+Eׂ©‚¢C³B
+EMAX_MOBSKILL‚ð24‚©‚ç32‚É•ÏXB(‚½‚¾­‚µ‚Å‚·‚ª‚Ü‚½ƒƒ‚ƒŠ[Žg—p—Ê‚ª‘‚¦‚Ü‚·B)
+Eƒvƒƒ{ƒP[ƒVƒ‡ƒ“‚ÅŽæ‚és“®‚ðmob_skill_db.txt‚Ìval1(’l1)‚ÅÝ’è‚Å‚«‚é‚悤‚ÉC³B
+EŽè‰º¢Š«‚Å•¡”‚ÌŽí—Þ‚ðÝ’èoØ‚é‚悤‚ÉC³B(Å‘å5‚‚܂Å)
+Eƒƒ^ƒ‚ƒ‹ƒtƒH[ƒVƒX‚ƃgƒ‰ƒ“ƒXƒtƒH[ƒ[ƒVƒ‡ƒ“‚à•¡”‚ÌŽí—Þ‚ðÝ’è‚Å‚«‚é‚悤‚ÉC³B
+ (db/)
+ skill_db.txt C³B
+ mob_skill_db.txt C³B
+ (map/)
+ skill.c
+ skill_castend_damage_id()Askill_castend_nodamage_id() C³B
+ map.h C³B
+ mob.h C³B
+ mob.c
+ mob_readskilldb()Amob_summonslave()Amob_class_change() C³B
+
+--------------------
+//0857 by J
+
+EOWN Ragnarok‚É‚Ì‚Á‚Ä‚¢‚½î•ñ‚ðŒ³‚ÉMOBƒXƒLƒ‹‚ðC³B
+Echase(“ËŒ‚)‚ªŽÀ‘•‚³‚ê‚Ä‚¢‚é‚Æ‚Ì‚±‚Æ‚È‚Ì‚Å“ËŒ‚(?)‚ðchase‚É‚©‚¦‚Ä
+ƒRƒƒ“ƒgƒAƒEƒg‚ð‚Í‚¸‚µ‚Ü‚µ‚½B
+EŽ€_‚³‚ñ‚ªŽÀ‘•‚µ‚½MOBƒXƒLƒ‹‚ðŽg—p‚·‚郂ƒ“ƒXƒ^[‚ðŽëêî•ñ‚ÉÚ‚Á‚Ä‚éî•ñ‚ðŒ³‚ÉŽÀ‘•B
+ (/conf)
+ mob_skill_db.txt
+
+--------------------
+//0856 by Ž€_
+
+EƒoƒOC³‚Æׂ©‚¢C³B
+Ebattle_athena.conf‚Émonster_attack_direction_change’ljÁB
+Ebattle_athena.conf‚Ìbasic_skill_check‚ƃJƒvƒ‰‚Ì‘qŒÉ—˜—p‚ð‡‚킹‚Ä‚¢‚Ü‚µ‚½‚ª‚¢‚‚̂܂ɂ©‚È‚­‚È‚Á‚½‚Ì‚ÅŽæ‚è–ß‚µB(basic_skill_check‚ªno‚È‚çŠî–{‹@”\ƒXƒLƒ‹ƒŒƒxƒ‹‚ÉŠÖŒW‚È‚­‘qŒÉ‚ðŽg‚¦‚Ü‚·B)
+EƒsƒA[ƒVƒ“ƒOƒAƒ^ƒbƒN‚ÌŽË’ö‚ð3ƒZƒ‹‚É•ÏX‚µ‚Ä‹ßÚUŒ‚‚Æ‚µ‚Ä”FŽ¯‚·‚é‚悤‚ÉC³B
+EAŽI‚ł̃eƒXƒg‚ŃAƒ“ƒfƒbƒh‚Ì”FŽ¯‚ð‘®«‚É‚æ‚Á‚Ä‚·‚邱‚Æ‚ª‚í‚©‚Á‚½‚Ì‚Åundead_detect_type‚̃fƒtƒHƒ‹ƒg‚ð0‚É•ÏXB
+Eƒƒ^ƒ‚ƒ‹ƒtƒH[ƒVƒX‚âƒgƒ‰ƒ“ƒXƒtƒH[ƒ[ƒVƒ‡ƒ“‚ÅŒ©‚½–Ú‚ªƒvƒŒƒCƒ„[‚È‚ç0x1b0ƒpƒPƒbƒg‚ð‘—‚ç‚È‚¢‚悤‚É•ÏXB
+Eƒjƒ…[ƒ}ƒoƒO‚ÍC³‚µ‚Ä‚Ý‚Ü‚µ‚½‚ªƒXƒLƒ‹ƒ†ƒjƒbƒg‚ÌŽžŠÔ‚É‚æ‚éì“®Žd—l‚Í‚Ü‚¾•ªÍ‚ªŠ®‘S‚¶‚á‚È‚¢‚Ì‚Å‘¼‚Ì•s‹ï‡‚ªo‚Ä‚­‚é‚©‚à...
+ (conf/)
+ battle_athena.conf C³B
+ mapflag.txt C³B(•’ʂ̃_ƒ“ƒWƒ‡ƒ“‚ªƒV[ƒYƒ‚[ƒh‚Å‚ ‚é‚Í‚¸‚ª‚È‚¢‚Ì‚Å)
+ (conf/npc/)
+ npc_town_kafra.txt C³B
+ (db/)
+ skill_db.txt C³B
+ (doc/)
+ conf_ref.txt C³B
+ script_ref.txt C³B
+ (map/)
+ pc.c
+ pc_modifybuyvalue()Apc_modifysellvalue() C³B
+ battle.h
+ battle.c
+ battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
+ battle_calc_pc_weapon_attack()Abattle_weapon_attack() C³B
+ battle_config_read() C³B
+ skill.c
+ skill_unitsetting()Askill_castend_damage_id() C³B
+ skill_castend_nodamage_id() C³B
+ mob.c
+ mob_attack() C³B
+ pet.c
+ pet_attack() C³B
+ clif.c
+ mob_class_change() C³B
+
+--------------------
+//0855 by asong
+
+Eƒƒ^ƒ‚ƒ‹ƒtƒH[ƒVƒX‚Å‚o‚b‚Æ‚µ‚Ä•\Ž¦‚·‚é‚l‚n‚a‚ðŽw’肵‚½ê‡‘q—Ž‚¿‚·‚éƒoƒO‚ðuŽb’èvC³B
+E0x1b0ƒpƒP‚Å‚Í–³‚­0x7b‚ðŽg‚¤‚±‚Ƃʼn½‚Æ‚©‚µ‚Ä‚¢‚Ü‚·B
+EŽg‚¢•ª‚¯‚ð‚µ‚½‚¢‚Æ‚±‚ë‚Å‚·‚ª“–•û‚b‚Ì’mŽ¯‚ª–³‚­ðŒ•ªŠò‚ªãŽè‚­‚¢‚«‚Ü‚¹‚ñ‚Å‚µ‚½B
+E‚à‚µ‚©‚µ‚½‚çƒvƒp‚Ì›z‰»i‰H‰»Hj‚ª‚¨‚©‚µ‚­‚È‚Á‚Ä‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB
+ (/map)
+ clif.c
+ mob_class_change() C³B
+
+--------------------
+//0854 by Kalen
+
+E•s‘«‚µ‚Ä‚¢‚½ˆêŽŸE“]EƒNƒGƒXƒg’ljÁ‹y‚ÑA‚»‚ê‚É”º‚¤WarpAMobC³)
+ (/conf)
+ (/npc)
+ npc_job_archer.txt
+ npc_job_swordman.txt
+ npc_job_thief.txt(‘䎌C³A“_”ˆ—•ÏX)
+ npc_job_magician.txt
+ (/warp)
+ npc_warp25.txt(ˆê•”ˆÚ“®)
+ npc_warp.txt(ˆê•”ˆÚ“®)
+ npc_warp_job.txt(VÝ)
+ (/mob)
+ npc_mob_job.txt
+E—Õ‚èQuest’ljÁ‹y‚ÑA‚»‚ê‚É”º‚¤NPCC³BƒAƒ}ƒcs‚«‘D‚Å—¿‹à‚ðŽæ‚ç‚È‚©‚Á‚½–â‘èC³
+ (/conf)
+ npc_event_hinamatsuri.txt
+ npc_town_amatsu.txt
+ npc_town_guide.txt
+ npc_town_kafra.txt
+ —Õ‚è‚ð—LŒø‚É‚·‚é‚ƃAƒ}ƒcƒJƒvƒ‰‚ðW‚ÉA
+ ƒAƒ‹ƒxƒ‹ƒ^“ìƒJƒvƒ‰‚ð휂ɂ·‚é‚悤‚É‚µ‚Ä‚¢‚Ü‚·B
+
+--------------------
+//0853 by Ž€_
+
+EƒoƒOC³‚ÆNPCƒXƒLƒ‹ŠÖŒW‚ÌC³B
+Eƒ_[ƒNƒuƒŒƒX‚ðMISCUŒ‚‚É•ÏXB(‚½‚¾–½’†”»’è—L‚è)
+EƒNƒŠƒeƒBƒJƒ‹ƒXƒ‰ƒbƒVƒ…AƒRƒ“ƒ{ƒAƒ^ƒbƒNAƒKƒCƒfƒbƒhƒAƒ^ƒbƒNAƒXƒvƒ‰ƒbƒVƒ…ƒAƒ^ƒbƒNAƒuƒ‰ƒCƒ“ƒhƒAƒ^ƒbƒNAƒJ[ƒXƒAƒ^ƒbƒNAƒyƒgƒŠƒtƒ@ƒCƒAƒ^ƒbƒNAƒ|ƒCƒYƒ“ƒAƒ^ƒbƒNAƒTƒCƒŒƒ“ƒXƒAƒ^ƒbƒNAƒXƒŠ[ƒvƒAƒ^ƒbƒNAƒXƒ^ƒ“ƒAƒ^ƒbƒNAƒ‰ƒ“ƒ_ƒ€ƒAƒ^ƒbƒNAƒ_[ƒNƒlƒXƒAƒ^ƒbƒNAƒtƒ@ƒCƒAƒAƒ^ƒbƒNAƒOƒ‰ƒEƒ“ƒhƒAƒ^ƒbƒNAƒz[ƒŠ[ƒAƒ^ƒbƒNAƒ|ƒCƒYƒ“ƒAƒ^ƒbƒNAƒeƒŒƒLƒlƒXƒAƒ^ƒbƒNAƒEƒH[ƒ^[ƒAƒ^ƒbƒNAƒEƒBƒ“ƒhƒAƒ^ƒbƒNAƒ}ƒWƒJƒ‹ƒAƒ^ƒbƒNAƒuƒ‰ƒbƒhƒhƒŒƒCƒ“Aƒƒ“ƒ^ƒ‹ƒuƒŒƒCƒJ[‚̓‚ƒ“ƒXƒ^[‚Ì•ŠíŽË’ö‚É•ÏXB‚»‚µ‚Ä‚±‚ê‚ç‚̃XƒLƒ‹‚ðƒ‚ƒ“ƒXƒ^[‚ÌUŒ‚ŽË’ö‚É‚æ‚Á‚ĉ“‹——£UŒ‚‚Æ‹ß‹——£UŒ‚‚É‚È‚é‚悤‚É•ÏXB
+EƒsƒA[ƒVƒ“ƒOƒAƒ^ƒbƒN‚Í•ŠíŽË’ö+2‚É•ÏXB
+EƒGƒiƒW[ƒhƒŒƒCƒ“Aƒnƒ‹ƒVƒl[ƒVƒ‡ƒ“‚Í–‚–@ŽË’ö‚É•ÏXB
+Eƒ_[ƒNƒuƒŒƒbƒVƒ“ƒO‚ÌŽË’ö‚ð4‚É•ÏX‚Æ‚©‚©‚éŠm—¦‚ð50+ƒXƒLƒ‹ƒŒƒxƒ‹*5%‚É•ÏXB(ˆê‰ž‚±‚ê‚à–‚–@‚È‚Ì‚Å­‚µŽË’ö‚ðL‚­‚µ‚Ü‚µ‚½BŠî–{–‚–@ŽË’ö‚Å‚ ‚é8‚É•Ï‚¦‚é‚ׂ«‚È‚Ì‚©‚Ç‚¤‚©‚Í”÷–­...)
+EƒKƒCƒfƒbƒhƒAƒ^ƒbƒN‚̓ZƒCƒtƒeƒBƒEƒH[ƒ‹‚ƃjƒ…[ƒ}‚𖳌ø‚É‚·‚é•ñ‚ª‚ ‚è‚Ü‚µ‚½‚̂ŃZƒCƒtƒeƒBƒEƒH[ƒ‹‚ƃjƒ…[ƒ}‚ªŒø‚©‚È‚¢‚悤‚ÉC³B
+EƒfƒBƒtƒFƒ“ƒ_[‚̓GƒtƒFƒNƒg‚¾‚¯o‚é‚悤‚ÉC³B(ƒXƒLƒ‹‚ÌŽd—l“™‚ð‚í‚©‚é•û‚Íî•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·B)
+Eƒgƒ‰ƒ“ƒXƒtƒH[ƒ[ƒVƒ‡ƒ“ŽÀ‘•B(ƒƒ^ƒ‚[ƒtƒHƒVƒX‚Æ“¯‚¶•¨‚¾‚»‚¤‚Å‚·B‚½‚¾‚±‚ê‚Í‘S‘RŠÖŒW‚È‚¢•Ê‚̃‚ƒ“ƒXƒ^[‚ɂȂ镨‚炵‚¢‚Å‚·Bƒjƒtƒ‹ƒwƒCƒ€‚ÉŽg‚¤‚â‚‚ª‚¢‚é‚Ý‚½‚¢‚Å‚·B)
+EAthenaŽG’kƒXƒŒƒbƒh ‘´‚Ì“ó‚Ì80‚ðscript_ref.txt‚Æ‚µ‚ĒljÁ‚Æ‚¿‚å‚Á‚ÆC³B
+ (db/)
+ skill_db.txt C³B
+ (doc/)
+ script_ref.txt ’ljÁB
+ (map/)
+ battle.c
+ battle_calc_damage()Abattle_calc_pet_weapon_attack() C³B
+ battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
+ battle_calc_magic_attack()Abattle_calc_misc_attack() C³B
+ skill.c
+ castend_damage_id()Acastend_nodamage_id()Askill_use_pos() C³B
+ clif.c
+ clif_spawnnpc()Aclif_parse_Restart()Aclif_parse_QuitGame() C³B
+ mob.c
+ mobskill_castend_id()Amobskill_castend_pos() C³B
+ mobskill_use_id()Amobskill_use_pos() C³B
+
+--------------------
+//0852 by ‚Ò‚´‚Ü‚ñ
+
+E‹T“‡4FE‹aD2FEƒAƒ}ƒcD1F‚ðƒeƒŒƒ|•s‰ÂAƒV[ƒYƒ‚[ƒh‚É•ÏXB
+Enosave‚̈ø”‚ÉSavePoint‚ªŽw’è‚Å‚«‚Ä‚È‚©‚Á‚½‚̂ŒljÁB
+EPVP‚Ìmapflag‚ðmapflag.txt‚É“‡B
+ (map/)
+ npc.c
+ npc_parse_mapflag() C³B
+ (conf/)
+ mapflag.txt C³B
+ npc/npc_pvp.txt C³B
+
+--------------------
+//0851 by ŒÓ’±—–
+
+EƒƒOƒCƒ“Žž‚̈Ɖ»key‚ªí‚É“¯‚¶‚Æ‚¢‚¤‘å‚«‚È–â‘肪‚ ‚Á‚½‚Ì‚ÅC³
+EƒƒOƒCƒ“ŠÇ—ŽÒƒƒOƒCƒ“(ladmin‚ÅŽg—p)‚ŃpƒXƒ[ƒh‚̈Ɖ»‚ɑΉž
+ (login/)
+ login.c
+ login_session_dataì¬AˆÃ†‰»key‚ðƒNƒ‰ƒCƒAƒ“ƒg‚²‚Æ‚É쬂ȂÇ
+ (tool/)
+ ladmin
+ ver.1.05‚ÉBƒfƒtƒHƒ‹ƒg‚ŃpƒXƒ[ƒh‚ðˆÃ†‰»‚·‚é‚悤‚ÉB
+ ˆÃ†‰»‚Ì‚½‚ß‚ÉDigest::MD5ƒ‚ƒWƒ…[ƒ‹‚ðŽg—p‚µ‚Ü‚·B
+ Digest::MD5‚ª–³‚¢ê‡‚̓pƒXƒ[ƒh‚̈Ɖ»‚ðs‚¢‚Ü‚¹‚ñB
+ (doc/)
+ admin_packet.txt
+ ƒƒOƒCƒ“ƒT[ƒo[ŠÇ—ƒƒOƒCƒ“•”•ª•ÏX
+
+--------------------
+//0850 by Ž€_
+
+ENPCƒXƒLƒ‹ŽÀ‘•B(ƒnƒ‹ƒVƒl[ƒVƒ‡ƒ“AƒL[ƒsƒ“ƒOAƒŠƒbƒNAƒƒ“ƒ^ƒ‹ƒuƒŒƒCƒJ[Aƒvƒƒ{ƒP[ƒVƒ‡ƒ“AƒoƒŠƒ„[Aƒ_[ƒNƒuƒŒƒbƒVƒ“ƒOAƒ_[ƒNƒuƒŒƒX)
+EƒXƒLƒ‹Ž©”š‚̧ŒÀ‚Ímob_skill_db.txt‚Å‚â‚ê‚΂¢‚¢‚à‚Ì‚È‚Ì‚ÅŽæ‚è–ß‚µB
+Ebattle_athena.conf‚Épet_hungry_friendly_decrease’ljÁB
+Eƒyƒbƒg‚Ì• ‚ªŠ®‘S‚ÉŒ¸‚é‚ÆŽx‰‡UŒ‚‚𒆎~‚·‚é‚悤‚É•ÏXB
+E‘®«•ÏXƒXƒLƒ‹‚ªì“®‚µ‚È‚©‚Á‚½–â‘èC³B
+Eƒƒ“ƒ^ƒ‹ƒuƒŒƒCƒJ[‚Í10+ƒXƒLƒ‹ƒŒƒxƒ‹*5%‚ÌSP‚ðŒ¸‚ç‚·B(UŒ‚‚Í’Êí•ŠíƒXƒLƒ‹UŒ‚)
+EƒŠƒbƒN‚Í•K’†‚ÅSP-100AƒXƒ^ƒ“Šm—¦ƒXƒLƒ‹ƒŒƒxƒ‹*5%B(ƒ_ƒ[ƒW‚Í–³‚µAbNoWeaponDamage‚Å–³Œø)
+Eƒvƒƒ{ƒP[ƒVƒ‡ƒ“‚̓‚[ƒVƒ‡ƒ“‚ª€”õ‚³‚ê‚Ä‚È‚¢ƒ‚ƒ“ƒXƒ^[‚Í“ü‚ê‚Ä‚à‚È‚ñ‚ÌŒø‰Ê‚à‚È‚µB
+Eƒ_[ƒNƒuƒŒƒbƒVƒ“ƒO‚Í‚©‚©‚é‚ÆHP‚ª1‚É‚È‚éB‘Ï«‚Í–‚–@–hŒä‚Å“K—pB
+Eƒ_[ƒNƒuƒŒƒX‚Í500+(ƒXƒLƒ‹ƒŒƒxƒ‹-1)*1000+rand(0,1000)‚̃_ƒ[ƒWB‰ñ”ð‚Å‚«‚邪–hŒä–³Ž‹‚Å‹ß‹——£•¨—UŒ‚‚¾‚ªƒZƒCƒtƒeƒBƒEƒH[ƒ‹‚Í–³Ž‹‚µ‚Ĉő®«UŒ‚B(–{ŽI‚ÌŒvŽZŽ®‚É‚ ‚Á‚Ä‚¢‚é‰Â”\«‚Í‚È‚¢‚©‚àB‚½‚¾ƒ_ƒ[ƒW—Ê‚Æ–½’†•â³ˆÈŠO‚Í–{ŽI‡‚킹)
+ENPCƒXƒLƒ‹‚̈ێŽžŠÔ‚Í“K“x‚ÉÝ’èB
+Eƒ‚ƒ“ƒXƒ^[‚Ì‘®«UŒ‚‚ƃKƒCƒfƒbƒhƒAƒ^ƒbƒN‚ªƒZƒCƒtƒeƒBƒEƒH[ƒ‹‚𖳎‹‚·‚é‚Æ‚Ì•ñ‚ðŽó‚¯‚½‚Ì‚Å‚·‚ªC³‚·‚é‚©‚Ç‚¤‚©‚Í‚¿‚å‚Á‚Æ”÷–­B(ƒXƒvƒ‰ƒbƒVƒ…ƒAƒ^ƒbƒN‚àƒZƒCƒtƒeƒBƒEƒH[ƒ‹–³Ž‹‚©‚à)
+ (conf/)
+ battle_athena.conf C³B
+ (doc/)
+ conf_ref.txt C³B
+ (db/)
+ cast_db.txt C³B
+ skill_db.txt C³B
+ (map/)
+ mob.c
+ mob_damage() C³B
+ clif.h C³B
+ clif.c
+ clif_skill_estimation()Aclif_damage()Aclif_skill_damage() C³B
+ clif_skill_damage2()Aclif_pet_performance() C³B
+ pet.c
+ pet_performance()Apet_target_check()Apet_hungry() C³B
+ skill.h C³B
+ skill.c
+ skill_additional_effect()Askill_castend_damage_id() C³B
+ skill_castend_nodamage_id()Askill_status_change_start() C³B
+ battle.h C³B
+ battle.c
+ battle_get_def()Abattle_get_mdef()Abattle_calc_damage() C³B
+ battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
+ battle_calc_pc_weapon_attack()Abattle_config_read() C³B
+
+--------------------
+//0849 by lapis
+
+EŠX’†‚̃eƒXƒgƒMƒ‹ƒhƒtƒ‰ƒO‚Ì•\Ž¦‚ª‚¨‚©‚µ‚©‚Á‚½‚Ì‚ðC³B
+EƒMƒ‹ƒhƒƒ“ƒo[‚ÍŠø‚©‚çƒAƒWƒg‚É”ò‚ׂé‚悤‚ÉC³B
+ (conf/gvg)
+ TEST_prtg_cas01_AbraiJ.txt C³B
+
+--------------------
+//0848 by huge
+
+EƒXƒLƒ‹Ž©”š‚ðAHP‚ª‘S‰ñ•œ‚µ‚Ä‚¢‚鎞‚ÍŽg‚¦‚È‚¢‚悤C³B
+EƒXƒtƒBƒAƒ}ƒCƒ“EƒoƒCƒIƒvƒ‰ƒ“ƒgEEEƒ^[ƒQƒbƒg•ÏX‚Å‚«‚È‚¢...B
+Emob‚Ƀ^[ƒQƒbƒg–³Ž‹ID‚ðÝ’è‚Å‚«‚é‚悤‚É‚µ‚Ü‚µ‚½B(Gv—pmob‚ÉŽg‚¦‚éH)
+ (map/)
+ map.h C³B
+ mob_data‚É int exclusion_src,exclusion_party,exclusion_guild ’ljÁB
+ mob.h C³B
+ mob.c
+ mob_exclusion_add() ’ljÁB
+ mob_exclusion_check() ’ljÁB
+ mob_timer_delete() ’ljÁB
+ mob_attack() C³B
+ mob_target() C³B
+ mob_ai_sub_hard_activesearch() C³B
+ mob_ai_sub_hard_mastersearch() C³B
+ mob_ai_sub_hard() C³B
+ skill.c
+ skill_castend_damage_id() C³B
+ skill_castend_pos2() C³B
+
+--------------------
+//0847 by Ž€_
+
+E˜I“XƒoƒOC³B
+ (map/)
+ clif.c
+ clif_vendinglist()Aclif_openvending() C³B
+ vending.c
+ vending_openvending() C³B
+ skill.c
+ skill_castend_nodamage_id() C³B
+
+--------------------
+//0846 by Ž€_
+
+EƒoƒOC³‚Æׂ©‚¢C³B
+Ebattle_athena.conf‚Ìenemy_str‚ªƒyƒbƒg‚É‚à“K—p‚·‚é‚悤‚É•ÏXB
+EbHPDrainRate‚ÆbSPDrainRate‚Åx‚ªƒ}ƒCƒiƒX‚Å‚àì“®‚·‚é‚悤‚É•ÏXB
+EPC‚âNPC‚ÌŽp‚ð‚µ‚½ƒ‚ƒ“ƒXƒ^[‚àŽ€‚Ê‚Æ5•bŒãƒ}ƒbƒv‚©‚çÁ‚¦‚é‚悤‚É•ÏXB
+ (map/)
+ battle.c
+ battle_calc_pet_weapon_attack()Abattle_weapon_attack() C³B
+ skill.c
+ skill_attack()Askill_castend_damage_id() C³B
+ pc.c
+ pc_allskillup() C³B
+ clif.h C³B
+ clif.c
+ clif_openvending()Ado_init_clif() C³B
+ clif_clearchar_delay()Aclif_clearchar_delay_sub() ’ljÁB
+ mob.c
+ mob_damage() C³B
+
+--------------------
+//0845 by ‚Û‚Û‚Û
+
+Emob_avail.txt‚ÅPCƒOƒ‰ƒtƒBƒbƒN(0`23)‚ðŽw’肵‚½ƒyƒbƒg‚ªoŒ»‚µ‚½‚Æ‚«ƒNƒ‰ƒCƒAƒ“ƒgƒGƒ‰[‚ª‚Å‚é‚Ì‚ðŽb’èC³B
+Emob_avail.txt‚Ńyƒbƒg‚É‚àPCƒLƒƒƒ‰‚Ì«•ÊE”¯Œ^&FE•ŠíE‚E“ª‘•”õ‚ðŽw’è‚Å‚«‚é‚悤‚É‚µ‚Ü‚µ‚½B
+EMOB‚ÌATKŒvŽZ‚ÉSTR‚ð“K—p‚·‚é‚©‚Ç‚¤‚©Ý’è‰Â”\‚É‚µ‚½B
+ (map/)
+ clif.c
+ clif_pet0078()Aclif_pet007b()Aclif_spawnpet()C³B
+ battle.hC³B
+ battle.c
+ battle_config_read()Abattle_calc_mob_weapon_attack()C³B
+
+--------------------
+//0844 by ‚Û‚Û‚Û
+
+Emob_avail.txt‚ÅPCƒOƒ‰ƒtƒBƒbƒN(0`23)‚ðŽw’肵‚½MOB‚ªoŒ»‚µ‚½‚Æ‚«ƒNƒ‰ƒCƒAƒ“ƒgƒGƒ‰[‚ª‚Å‚é‚Ì‚ðŽb’èC³B
+Emob_avail.txt‚ÅPCƒLƒƒƒ‰‚Ì«•ÊE”¯Œ^&FE•ŠíE‚E“ª‘•”õ‚ðŽw’è‚Å‚«‚é‚悤‚É‚µ‚Ü‚µ‚½B
+@ƒOƒ‰ƒtƒBƒbƒN‚·‚è‘Ö‚¦æID‚ª0`23‚ÌŽž‚¾‚¯—LŒø‚ÅAŽw’è•û–@‚Í
+ MOB-ID,ƒOƒ‰ƒtƒBƒbƒN‚·‚è‘Ö‚¦æID,«•Ê(0=female,1=male),”¯Œ^,”¯F,•Ší,‚,ã’i“ª‘•”õ,’†’i“ª‘•”õ,‰º’i“ª‘•”õ
+@‚Æ‚È‚è‚Ü‚·B‘•”õ‚Íitem_db‚ÌView—“ŽQÆ‚Ì‚±‚ÆB
+ (map/)
+ clif.c
+ clif_mob_0078()Aclif_mob007b()Aclif_spawnmob()C³B
+ mob.hC³B
+ mob.c
+ mob_get_sex()Amob_get_hair()Amob_get_hair_color()Aob_get_weapon()A
+ mob_get_shield()Amob_get_head_top()Amob_get_head_mid()Amob_get_head_buttom()’ljÁB
+ mob_readdb()Amob_readdb_mobavail()C³B
+
+--------------------
+//0843 by Ž€_
+
+EƒŠƒtƒŒƒNƒgƒV[ƒ‹ƒhŽÀ‘•B
+EƒAƒCƒeƒ€ƒXƒNƒŠƒvƒg‚ÉbShortWeaponDamageReturn‚Æ
+bLongWeaponDamageReturn ’ljÁB
+E‚»‚Ì‘¼ƒXƒLƒ‹ŠÖŒW‚⑼‚ÌŠC³B
+ (db/)
+ item_db.txt C³B
+ skill_db.txt C³B
+ cast_db.txt C³B
+ const.txt C³B
+ (doc/)
+ item_bonus.txt C³B
+ (map/)
+ map.h C³B
+ battle.c
+ battle_get_def()Abattle_get_def2()Abattle_calc_pet_weapon_attack() C³B
+ battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
+ battle_weapon_attack()Abattle_calc_magic_attack() C³B
+ pc.c
+ pc_calcstatus()Apc_bonus()Apc_bonus2()Apc_equipitem() C³B
+ pc_unequipitem()Apc_checkallowskill() C³B
+ skill.c
+ skill_attack()Askill_unit_onplace()Askill_status_change_start() C³B
+ skill_status_change_end()Askill_status_change_timer() C³B
+ skill_castend_nodamage_id() C³B
+ clif.c
+ clif_additem()Aclif_equiplist()Aclif_storageequiplist() C³B
+ clif_tradeadditem()Aclif_storageitemadded()Aclif_cart_additem() C³B
+ clif_cart_equiplist()Aclif_vendinglist()Aclif_openvending() C³B
+ clif_damage()Aclif_skill_damage()Aclif_parse_LoadEndAck() C³B
+
+--------------------
+//0842 by Ž€_
+
+EƒXƒLƒ‹ŠÖŒW‚ÌC³‚Æׂ©‚¢C³B
+EaegisŽI‚ÅFX‚ÆŒŸØ‚µ‚½•¨‚ð“K—pB
+EƒƒeƒI‚͈̔͂ð7*7ALoV13*13ASG11*11AFN5*5‚ÉC³B
+EƒVƒOƒiƒ€ŽÀ‘•B(‚½‚¾PVP‚ŃvƒŒƒCƒ„[‚É‚©‚©‚é‚©‚Ç‚¤‚©‚ª‚í‚©‚ç‚È‚©‚Á‚½‚Ì‚Å
+‚©‚©‚é•ûŒü‚ÅŽÀ‘•B)‚±‚ê‚Å1ŽŸE‹Æ‚̃XƒLƒ‹‚̓NƒŠƒA‚©‚à...
+E‘•”õƒXƒNƒŠƒvƒg‚ÉbHPDrainRate‚ÆbSPDrainRate’ljÁB
+E‚»‚Ì‘¼×‚©‚¢C³­‚µB
+ (doc/)
+ item_bonus.txt C³B
+ (db/)
+ cast_db.txt C³B
+ item_db.txt C³B
+ const.txt C³B
+ (map/)
+ map.h C³B
+ skill.c
+ skill_castend_damage_id()Askill_castend_nodamage_id() C³B
+ skill_unitsetting()Askill_castend_pos2()Askill_castend_id() C³B
+ skill_status_change_start()Askill_status_change_timer() C³B
+ skill_status_change_end()Askill_unit_onplace() C³B
+ skill_frostjoke_scream()Askill_attack() C³B
+ skill_attack_area() ’ljÁB
+ battle.c
+ battle_calc_magic_attack()Abattle_get_element()Abattle_get_def() C³B
+ battle_get_def2()Abattle_get_mdef()Abattle_damage() C³B
+ battle_calc_damage()Abattle_calc_pet_weapon_attack() C³B
+ battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
+ battle_weapon_attack() C³B
+ mob.c
+ mobskill_castend_id() C³B
+ pc.c
+ pc_calcstatus()Apc_bonus2()Apc_attack_timer() C³B
+ clif.c
+ clif_spawnmob()Aclif_spawnpet()Aclif_spawnnpc() C³B
+ clif_parse_ActionRequest() C³B
+
+--------------------
+//0841 by Kalen
+
+E…—n‰t‚ªì‚ê‚È‚©‚Á‚½‚̂ŒljÁ
+ conf/npc/npc_job_magician.txt
+
+--------------------
+//0840 by Kalen
+
+E‹SƒCƒxƒ“ƒg’ljÁ
+ conf/npc/npc_event_oni.txt
+
+Emap_athena.confC³(ƒoƒŒƒ“ƒ^ƒCƒ“ƒRƒƒ“ƒgƒAƒEƒgB‹S’ljÁ)
+ conf/map_athena.conf
+
+--------------------
+//0839 by shuto
+
+EƒRƒ“ƒƒ“NPC’ljÁ(ƒJƒ“ ƒ\ƒ“ƒ\ƒ“‚ª”²‚¯‚Ä‚½)
+
+--------------------
+//0838 by Ž€_
+
+EƒXƒLƒ‹ƒTƒCƒgƒ‰ƒbƒVƒƒ[ŽÀ‘•B
+Eƒ‚ƒ“ƒXƒ^[‚̃Nƒ[ƒLƒ“ƒO‚ƃ}ƒLƒVƒ}ƒCƒYƒpƒ[‚ÍŽ‘±ŽžŠÔ‚ðƒŒƒxƒ‹*5•b‚É•ÏXB
+E‚»‚Ì‘¼×‚©‚¢ƒoƒOC³B
+ (db/)
+ skill_db.txt C³B
+ (map/)
+ skill.c
+ skill_castend_damage_id()Askill_castend_nodamage_id() C³B
+ skill_castend_pos2()Askill_unitsetting()Askill_get_unit_id() C³B
+ skill_status_change_start() C³B
+ battle.c
+ battle_calc_magic_attack() C³B
+
+--------------------
+//0837 by Ž€_
+
+EƒXƒLƒ‹ŠÖŒW‚Ìׂ©‚¢C³B
+EƒtƒƒXƒgƒmƒ”ƒ@‚ðƒ†ƒjƒbƒgÝ’uŽ®‚É•ÏXB
+Eƒ[ƒhƒIƒuƒ”ƒ@[ƒ~ƒŠƒIƒ“‚͈̔͂ð11*11‚ÉC³‚Æ40ƒqƒbƒg‚·‚é‚悤‚É•ÏXB(ƒ‰ƒOƒiƒQ[ƒg‚Ìî•ñB
+13*13à‚à‚ ‚è‚Ü‚·‚ª...)
+Eƒ†ƒsƒeƒ‹ƒTƒ“ƒ_[‚̃mƒbƒNƒoƒbƒN‚ð2~7‚É•ÏXB
+EƒXƒg[ƒ€ƒKƒXƒg‚ÌUŒ‚‰ñ”‚ðƒŒƒxƒ‹ˆË‘¶‚©‚ç10‰ñ‚ɌŒèB
+EƒTƒ“ƒNƒ`ƒ…ƒAƒŠ‚̃mƒbƒNƒoƒbƒN‚ð3‚©‚ç2‚É•ÏXB(aegisŽI‚ŃmƒbƒNƒoƒbƒN‚ª‚ ‚邱‚Æ‚ÍŠm”F‚µ‚Ü‚µ‚½‚ª‚Ç‚ê‚®‚ç‚¢‚È‚Ì‚©‚ª•s–¾‚¾‚Á‚½‚Ì‚Å­‚µŒ¸‚炵‚Ä‚Ý‚Ü‚µ‚½B)
+Eƒ‚ƒ“ƒXƒ^[‚̉r¥ŽžŠÔ‚ª‘‚­‚È‚Á‚Ä‚¢‚½–â‘èC³B(dex•â³‚ª“ü‚Á‚Ä‚µ‚Ü‚Á‚½‚¹‚¢‚Å‚·B)
+E‚»‚Ì‘¼ƒI[ƒgƒXƒyƒ‹“–‚½‚è‚Ìׂ©‚¢C³B
+ (db/)
+ skill_db.txt C³B
+ (map/)
+ skill.c
+ skill_castfix()Askill_delayfix()Askill_timerskill() C³B
+ skill_castend_pos2()Askill_unitsetting()Askill_castend_damage_id() C³B
+ skill_castend_nodamage_id()Askill_get_unit_id()Askill_attack() C³B
+ battle.c
+ battle_calc_magic_attack()Abattle_weapon_attack() C³B
+
+--------------------
+//0836 by Žß‘¸
+
+Eƒ‚ƒ“ƒXƒ^[‚ÌŽæ‚芪‚«¢ŠÒ‚ÌŠÔŠu‚𒆃{ƒXˆÈŠOŠ®‘SC³B
+ (db/)
+ mob_skill_db.txt C³B
+
+--------------------
+//0835 by (“Ê)
+
+E”’nŽæ‚è‚Ń|[ƒY‚ð‚Æ‚é‚悤‚É‚µ‚½B
+(ƒ|[ƒY‚¾‚¯‚È‚Ì‚ÅAŽÀÛ‚ÉUŒ‚‚ðŽó‚¯Ž~‚ß‚½‚è‚Í‚Å‚«‚Ü‚¹‚ñ)
+clif_bladestop()‚ðŒÄ‚Ô‚±‚Æ‚Å”’nŽæ‚èó‘Ô‚ÌONAOFF‚̃pƒPƒbƒg‚ª‘—‚ê‚Ü‚·B
+
+ (map/)
+ clif.h C³B
+ clif,c
+ clif_bladestop() ’ljÁ
+ skill.c
+ skill_castend_nodamage_id() C³B
+
+--------------------
+//0834 by Žß‘¸
+
+Eƒ‚ƒ“ƒXƒ^[Žæ‚芪‚«¢ŠÒ‚ÌŠÔŠu‚ª’Z‚·‚¬‚é‚Æ‚ÌŽ–‚ʼnž‹}ˆ’uB(¡‰ñ‚͉©‹à峂̂Ý)
+ (db/)
+ mob_skill_db.txt C³B
+
+--------------------
+//0833 by (“Ê)
+
+Ememo‹ÖŽ~’nˆæ‚Å/memoŽž‚ÌC³B
+E‚‚¢‚Å‚Éitem_db‚ðXVB
+
+ (doc/)
+ client_packet.txt
+ R 0189 XVB
+ (db/)
+ item_db.txt ÅV”Å‚ÖXVB
+ (map/)
+ pc.c
+ pc_memo() C³B
+
+--------------------
+//0832 by Ž€_
+
+EƒR[ƒhÅ“K‰»‚Æׂ©‚¢C³B
+EƒI[ƒgƒXƒyƒ‹‚ð’n–Ê–‚–@‚ɑΉžB
+EƒTƒ“ƒ_[ƒXƒg[ƒ€‚ƃwƒ”ƒ“ƒYƒhƒ‰ƒCƒu‚ðƒ†ƒjƒbƒgÝ’uŽ®‚É•ÏXB
+EƒfƒBƒtƒFƒ“ƒ_[‚ÌUŒ‚‘¬“x’ቺ‚ð–{ŽI‚É‚ ‚킹B
+E‚»‚Ì‘¼×‚©‚¢C³B
+ (doc/)
+ item_bonus.txt C³B
+ (db/)
+ skill_require_db.txt C³B
+ cast_db.txt C³B
+ (map/)
+ map.h C³B
+ path.c
+ calc_index()Apath_search() C³B
+ skill.c
+ skill_unitsetting()Askill_castend_pos2()Askill_get_unit_id() C³B
+ skill_status_change_timer_sub()Askill_castend_nodamage_id() C³B
+ skill_additional_effect()Askill_frostjoke_scream() C³B
+ pc.c
+ pc_calcstatus()Apc_skill()Apc_allskillup() C³B
+ battle.c
+ battle_get_speed()Abattle_get_adelay()Abattle_get_amotion() C³B
+ battle_weapon_attack() C³B
+
+--------------------
+//0831 by Ž€_
+
+E­‚µC³B
+EƒI[ƒgƒXƒyƒ‹C³B‘•”õ‚É‚æ‚镨‚ƃXƒLƒ‹‚É‚æ‚镨‚ð•ÊX‚É“K—pA”­“®Šm—¦C³B
+E‘•”õ‚É‚æ‚éƒI[ƒgƒXƒyƒ‹‚ÍŽw’肵‚½ƒŒƒxƒ‹‚æ‚è2‚‰º‚Ü‚Å”»’è‚ð‚µ‚Ü‚·B‚‚܂背ƒxƒ‹5‚ðÝ’è‚·‚é‚ƃŒƒxƒ‹3‚©‚ç5‚Ü‚Å”­“®‚µ‚Ü‚·B
+Ebattle_athana.conf‚Ìplayer_cloak_check_wallAmonster_cloak_check_wall‚ðplayer_cloak_check_typeAmonster_cloak_check_type‚É•ÏXB
+EƒAƒCƒeƒ€ƒ‹[ƒgŒ ŒÀŽžŠÔ‚ð–{ŽI‚ɇ‚킹‚ÄC³B
+E‚»‚Ì‘¼ƒXƒLƒ‹ŠÖŒW‚Ìׂ©‚¢C³B
+ (doc/)
+ conf_ref.txt C³B
+ db_ref.txt C³B
+ item_bonus.txt C³B
+ (conf/)
+ battle_athana.conf C³B
+ (db/)
+ item_db.txt C³B
+ (map/)
+ map.h
+ map.c
+ block_free_maxABL_LIST_MAX C³B
+ skill.h C³B
+ skill.c
+ skill_additional_effect()Askill_attack()Askill_castend_damage_id() C³B
+ skill_castend_nodamage_id()Askill_unit_onplace() C³B
+ skill_status_change_end()Askill_status_change_start() C³B
+ skill_initunitgroup()Askill_unitsetting()Askill_castfix() C³B
+ skill_delayfix()Askill_autospell()Askill_use_id()Askill_use_pos() C³B
+ skill_check_cloaking()Askill_unit_timer_sub()Askill_check_condition() C³B
+ battle.h C³B
+ battle.c
+ battle_damage()Abattle_get_agi()Abattle_get_speed() C³B
+ battle_get_adelay()Abattle_get_amotion()Abattle_get_flee() C³B
+ battle_weapon_attack()Abattle_calc_magic_attack() C³B
+ battle_config_read() C³B
+ mob.c
+ mob_attack()Amob_damage()Amobskill_use_id() C³B
+ mobskill_use_pos()Amob_spawn()Amob_class_change() C³B
+ mob_can_move() C³B
+ pc.c
+ pc_attack_timer()Apc_checkweighticon()Apc_calcstatus() C³B
+ pc_damage()Apc_equipitem()Apc_unequipitem() C³B
+ pc_bonus2()Apc_bonus3()Apc_memo()Apc_authok() C³B
+ pc_isUseitem() C³B
+ clif.h C³B
+ clif.c
+ clif_changeoption()Aclif_parse_LoadEndAck()Aclif_autospell() C³B
+ clif_skill_memo() C³B
+ clif_skill_teleportmessage() ’ljÁB
+ script.c
+ buildin_sc_start() C³B
+ atcommnad.c
+ atcommand() C³B
+
+--------------------
+//0830 by huge
+
+EƒI[ƒgƒXƒyƒ‹‚ÅAŽ©•ª‚ÌK“¾‚µ‚Ă郌ƒxƒ‹‚æ‚è‚à‚‚¢ƒŒƒxƒ‹‚Å
+ –‚–@‚ª”­“®‚µ‚Ä‚¢‚½‚Å‚ ‚낤–â‘è‚ðC³B
+EƒI[ƒgƒXƒyƒ‹‚Å‚àA‚¿‚á‚ñ‚ÆSP‚ªŒ¸‚é‚悤‚ÉC³(‚Ç–Y‚ê)
+ (map/)
+ battle.c
+ battle_weapon_attack() C³B
+ skill.c
+ skill_autospell() C³B
+
+--------------------
+//0829 by Kalen
+
+Emob_dbC³
+ Ž©ŽI—p‚Ì‚ÆŠÔˆá‚Á‚ÄUP‚µ‚Ä‚µ‚Ü‚Á‚½‚悤‚Å‚·B
+ –{—ˆ‚Ì‚à‚Ì‚É’¼‚µ‚Ü‚µ‚½B
+
+--------------------
+//0828 by ¹
+
+EƒT[ƒo‚ÌSnapshot
+EMVPƒ{ƒXŒn‚©‚çƒoƒJƒ“ƒXƒ`ƒPƒbƒg‚ª‘å—Ê‚Éo‚Ä‚¢‚½–â‘è‚ðC³B
+ (common/)
+ version.h C³B
+ (db/)
+ mob_db.txt C³B
+
+--------------------
+//0827 by J
+
+EŒÅ’èMOB‚Ì‚Í‚¸‚̃ƒKƒŠƒX‚Æl–Ê“Ž÷‚ª•à‚¢‚Ä‚¢‚½‚Ì‚ðC³B
+E“¬‹Zê‚ÌMOB‚ɃXƒLƒ‹‚ðŽÀ‘•B
+EƒpƒTƒi‚ƃtƒ@ƒ‰ƒI‚ªƒXƒLƒ‹‚ªÝ’肳‚ê‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ðŽÀ‘•B
+ (db/)
+ mob_db.txt C³B
+ mob_skill_db.txt C³B
+
+--------------------
+//0826 by ‚Ò‚´‚Ü‚ñ
+
+Eˆê•”‚̉‰‘tƒXƒLƒ‹‚ðŽg‚¤‚ÆŽI‚ª—Ž‚¿‚éƒoƒOC³B
+EƒNƒ[ƒLƒ“ƒO’†‚ɃXƒLƒ‹‚ðŽg—p‚Å‚«A
+@Žg—p‚·‚é‚ƃNƒ[ƒLƒ“ƒO‚ª‰ðœ‚³‚ê‚é‚悤‚ÉC³B
+EKalen‚³‚ñ‚Ìmob_db.txt‚ð‚Ü‚Æ‚ß‚Ü‚µ‚½B
+ (map/)
+ skill.c
+ skill_unit_onplace()Askill_unit_onout() C³B
+ skill_status_change_start()Askill_status_change_timer() C³B
+ skill_use_id()Askill_use_pos() C³B
+ (db/)
+ mob_db.txt C³B
+
+--------------------
+//0825 by Ž€_
+
+Eׂ©‚¢C³B(ׂ©‚¢‚±‚Æ‚Ì‚í‚è‚É‚ÍC³‚µ‚½Š‚ª‘½‚¢‚¯‚Ç...)
+Eƒ[ƒvƒ|[ƒ^ƒ‹‚Ì’†‚ÉŽ~‚Ü‚Á‚½ŽžˆÈŠO‚̓[ƒv‚µ‚È‚¢‚悤‚ÉC³B
+Ebattle_athena.conf‚Éplayer_skill_nofootsetAmonster_skill_nofootset ’ljÁB
+ENPC‚ðƒNƒŠƒbƒN‚µ‚½Œã˜I“X‚ðƒNƒŠƒbƒN‚µ‚ĘI“X‚ð•Â‚¶‚é‚Æ“®‚¯‚È‚­‚È‚éƒoƒOC³B
+‚½‚¾˜I“X‚ð•Â‚¶‚鎞‰½‚̃pƒPƒbƒg‚à“]‘—‚µ‚Ä‚±‚È‚¢‚̂ŘI“X‚ðƒNƒŠƒbƒN‚·‚é‚ÆNPC‚̈—‚©‚甲‚¯‚é‚悤‚É‚µ‚Ü‚µ‚½B(–{ŽI‚Å‚ÍNPC‚̈—‚ª”²‚¯‚È‚¢‚炵‚¢‚Å‚·‚ª‚»‚êˆÈŠO•û–@‚ª‚È‚©‚Á‚½‚Ì‚Á‚ÅB)
+Ekillmonster‚ÌAll‚Å¢Š«‚³‚ꂽƒ‚ƒ“ƒXƒ^[‚¾‚¯Á‚·‚悤‚É•ÏXB
+Eƒ\[ƒXÅ“K‰»‚âƒXƒLƒ‹ŠÖŒW‚Ìׂ©‚¢C³‘½”B
+ (doc/)
+ conf_ref.txt C³B
+ db_ref.txt C³B
+ (conf/)
+ battle_athana.conf C³B
+ atcommnad_athena.conf C³B
+ (db/)
+ item_db.txt C³B
+ skill_db.txt C³B
+ (login/)
+ parse_fromchar() C³B
+ (map/)
+ map.h C³B
+ clif.c
+ clif_closevendingboard()Aclif_parse_VendingListReq() C³B
+ clif_mob0078()Aclif_mob007b()Aclif_pet0078()Aclif_pet007b() C³B
+ skill.h C³B
+ skill.c
+ skill_check_condition()Askill_castend_pos2() C³B
+ skill_castend_damage_id()Askill_castend_nodamage_id() C³B
+ skill_castend_id()Askill_status_change_start()Askill_castfix() C³B
+ skill_delayfix()Askill_check_unit_range_sub() C³B
+ skill_check_unit_range()Askill_castend_pos()Askill_stop_dancing() C³B
+ skill_unit_onplace()Askill_readdb()Askill_timerskill()Askill_blown() C³B
+ skill_check_unit_range2_sub()Askill_check_unit_range2() ’ljÁB
+ skill_get_maxcount() ’ljÁB
+ mob.c
+ mobskill_castend_id()Amobskill_castend_pos()Amob_deleteslave() C³B
+ mob_stop_walking()Amob_walk()Amob_damage() C³B
+ pc.c
+ pc_calcstatus()Apc_checkskill()Apc_stop_walking() C³B
+ pc_walk()Apc_damage() C³B
+ npc.c
+ npc_touch_areanpc() C³B
+ pet.c
+ pet_stop_walking() C³B
+ script.c
+ buildin_killmonster()Abuildin_killmonster_sub() C³B
+ battle.h
+ battle.c
+ battle_calc_magic_attack()Abattle_get_flee()Abattle_get_flee2() C³B
+ battle_get_adelay()Abattle_get_amotion()Abattle_get_max_hp() C³B
+ battle_get_hit()Abattle_get_critical()Abattle_get_atk2() C³B
+ battle_damage()Abattle_config_read() C³B
+ atcommand.h C³B
+ atcommand.c C³B
+
+--------------------
+//0824 by ‚Ò‚´‚Ü‚ñ
+
+EƒZƒCƒtƒeƒBƒEƒH[ƒ‹Eƒjƒ…[ƒ}‚Ì‘«Œ³’u‚«‚ª‚Å‚«‚È‚©‚Á‚½–â‘èC³B
+EƒGƒ“ƒyƒŠƒEƒ€‚Ƀq[ƒ‹“™‚ÌŽx‰‡ƒXƒLƒ‹‚ªŒø‚¢‚Ä‚¢‚½–â‘èC³B
+E“¬‹Zê‚Ń‚ƒ“ƒXƒ^[ƒŠƒZƒbƒg‚ª‚Å‚«‚È‚©‚Á‚½–â‘èC³B
+@killmonster‚Í"killmonster <mapname>,<eventname>"‚Æ‹Lq‚µ‚Ä
+@ŠY“–eventname‚ðŽ‚ƒ‚ƒ“ƒXƒ^[‚ð휂µ‚Ü‚·‚ª
+@eventname‚ÉAll‚Æ“ü‚ê‚é‚ÆŠY“–MAP‚Ì‘Sƒ‚ƒ“ƒXƒ^[‚ðÁ‹Ž‚·‚é‚悤‚É‚µ‚Ü‚µ‚½B
+
+ (map/)
+ skill.c
+ skill_check_unit_range_sub()Askill_castend_nodamage_id() C³B
+ script.c
+ buildin_killmonster()Abuildin_killmonster_sub() C³B
+ (conf/npc/)
+ npc_event_tougijou.txt C³B
+
+--------------------
+//0823 by Kalen
+
+E“¬‹Zêƒf[ƒ^‘µ‚Á‚½‚Ì‚ÅAŠ®¬
+ conf/npc/npc_event_tougijou.txt
+ ‚½‚¾‚µA‚±‚¿‚ç‚Ń`ƒFƒbƒN‚µ‚½‚Æ‚±‚ëkillmonster‚ª‚¤‚Ü‚­‚¢‚©‚¸A
+ Ž¸”sAŽžŠÔ؂ꂵ‚½ê‡ƒ‚ƒ“ƒXƒ^[ƒŠƒZƒbƒg‚ªo—ˆ‚Ü‚¹‚ñB
+ ƒCƒxƒ“ƒg‚ªÝ’肳‚ê‚Ä‚¢‚郂ƒ“ƒXƒ^[‚͈—‚Å‚«‚È‚¢‚Ì‚©‚ÆŽv‚¢‚Ü‚µ‚½‚ª
+ Agit‚Ì‚Ù‚¤‚̃Gƒ“ƒy‚ÌKillmonster‚Í‚¿‚á‚ñ‚Æ“®‚¢‚Ä‚Ü‚·‚µc
+ Œ´ˆö•ª‚©‚é•û‚¨Šè‚¢‚µ‚Ü‚·<(_ _)>
+
+Egon_test‚Ìmapflag’ljÁ
+ conf/mapflag.txt
+
+Emob_dbXV
+ 1419`1491‚ªŠù‘¶‚ÌMob‚Ì’è‹`‚΂©‚è‚Ȃ̂ŒljÁ‚µ‚Ü‚¹‚ñ‚Å‚µ‚½‚ªA
+ ’²‚ׂ½Š“¬‹Zê‚ÌMob‚̃f[ƒ^‚Å‚ ‚邱‚Æ‚ª•ª‚©‚è‚Ü‚µ‚½(Drop‚ð˜M‚Á‚½‚à‚Ì)
+ –{ŽI‚ł͈łè‚ñ‚²‚ª•ñ‚³‚ê‚Ä‚¢‚Ü‚·B‚ªA‚±‚¿‚ç‚ÍDrop‹ó”’‚ň—‚µ‚Ü‚µ‚½B
+ ƒNƒ‰ƒCƒAƒ“ƒgã‚Å‚Í“¯–¼‚Å‚µ‚½‚ªA‹æ•Ê‚Ì‚½‚ßÚ“ª‚ÉG_‚ð‚‚¯‚Ä‹æ•Ê‚µ‚Ä‚Ü‚·B
+ mob_skill_db‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚µ‚½«
+
+--------------------
+//0822 by ‚Ò‚´‚Ü‚ñ
+
+E‰‰‘tƒXƒLƒ‹‚ł̕Ⳃðƒ_ƒ“ƒT[‚É‚à“K—pB
+EƒTƒ“ƒNƒ`ƒ…ƒAƒŠƒoƒOC³B
+EKalen‚³‚ñ‚ÌMOBƒXƒLƒ‹ƒf[ƒ^ƒx[ƒX‚ð‚Ü‚Æ‚ß‚Æ‚«‚Ü‚µ‚½B
+
+ (map/)
+ skill.c
+ skill_status_change_start()Askill_unit_onplace() C³B
+ battle.c
+ battle_get_critical()Abattle_get_hit() C³B
+ pc.c
+ pc_calcstatus() C³B
+
+--------------------
+//0821 by huge
+
+EƒI[ƒgƒXƒyƒ‹‰¼ŽÀ‘•B
+Etimer‚Å”»’肵‚悤‚©‚Æ‚àŽv‚¢‚Ü‚µ‚½‚ªA‘•”õ‚Ì–³ŒÀƒI[ƒgƒXƒyƒ‹‚ׂ̈Ésc_[].val1‚ÅŒ©‚ă}ƒXB
+Ebonus2 bAutoSpell’ljÁBˆê‰ž‚Ç‚ñ‚ȃXƒLƒ‹‚Å‚àŽw’è‚Å‚«‚é‚悤‚É‚µ‚Ä‚Ü‚·‚ª(”Ô†‚Ískill_treeŽQÆ)
+ skill_castend_damage_id‚̃^ƒCƒvˆÈŠO‚̃XƒLƒ‹‚ðŽw’肵‚È‚¢‚Å‚­‚¾‚³‚¢B
+ ”­“®Šm—¦‚ÍALv1:50%ALv2:35%ALv3:15%A‚»‚êˆÈã‚Í 5%ŒÅ’è‚Å‚·B
+ ‚ ‚ÆAƒXƒLƒ‹ƒŒƒxƒ‹‚àŽw’è‚Å‚«‚Ü‚·‚ªAŒÀŠE‚ð’´‚¦‚½”Žš‚ð“ü‚ê‚é‚Æ’Ä‚¿‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB
+¡‘‚«•û—áFiƒtƒ@ƒCƒAƒ{ƒ‹ƒgLv3‚ÌŽžjbonus2 bAutoSpell 19,3;
+
+ (db/)
+ const.txt C³B
+ (map/)
+ battle.c
+ battle_weapon_attack() C³B
+ clif.h
+ clif.c
+ packet_len_table C³B
+ clif_autospell() ’ljÁB
+ clif_parse_AutoSpell() ’ljÁB
+ map.h C³B
+ pc.c
+ pc_bonus2() C³B
+ pc_equipitem() C³B
+ pc_unequipitem() C³B
+ skill.h
+ skill.c
+ skill_castend_nodamage_id() C³B
+ skill_autospell() ’ljÁB
+ skill_status_change_end() C³B
+ skill_status_change_start() C³B
+ status_change‚̔Ԇƒe[ƒuƒ‹C³B
+
+--------------------
+//0820 by ‚Ò‚´‚Ü‚ñ
+
+EƒAƒhƒŠƒu‚̃ƒbƒZ[ƒW‚ª“ü‚Á‚Ä‚È‚©‚Á‚½‚Ì‚ÅC³
+Eƒo[ƒh‚̉‰‘tƒXƒLƒ‹‚ÅŠyŠí‚Ì—ûK‚⎩ƒXƒe[ƒ^ƒX‚̕Ⳃª“ü‚Á‚Ä‚È‚©‚Á‚½‚Ì‚ðC³B
+@struct status_change‚Ìval‚ª3‚•K—v‚¾‚Á‚½‚Ì‚Å(val4‚Í—\–ñ‚³‚ê‚Ä‚½‚Á‚Û‚¢‚Ì‚Å)val5‚ð’ljÁ‚µ‚Ü‚µ‚½
+ (map/)
+ map.h C³B
+ skill.c
+ skill_status_change_start()Askill_castend_nodamage_id() C³B
+ skill_castfix()Askill_delayfix() C³B
+ battle.c
+ battle_get_flee()Abattle_get_max_hp() C³B
+ battle_get_adelay()Abattle_get_amotion() C³B
+ battle_calc_misc_attack() C³B
+ pc.c
+ pc_calcstatus() C³B
+
+--------------------
+//0819 by Kalen
+
+EƒRƒ“ƒƒ“(NPCAWarp)C³
+ conf/npc/npc_town_gonryun.txt(ˆÄ“àˆõ•â[)
+ conf/npc/npc_event_tougijou.txt
+ conf/warp/npc_warp_gonryun.txt(h2F‚ÆD2F‚È‚Ç)
+
+EMOBC³
+ conf/mob/npc_monster30.txt(ˆê”½–Ø–È•s‘«’ljÁ)
+ conf/mob/npc_monster35.txt(ƒRƒ“ƒƒ“Mob’ljÁ)
+
+EDBC³
+ db/mob_db.txt(ƒRƒ“ƒƒ“[‘S‚Ä]+ƒEƒ“ƒoƒ‰[’è‹`]’ljÁBAspeed“™“K“–‚Å‚·B‚Ü‚Ÿ–³‚¢‚æ‚è‚Ü‚µ‚Æ‚¢‚¤‚±‚Æ‚Å)
+ db/mob_skill_db.txt(î•ñ‚ðŒ³‚ÉƒRƒ“ƒƒ“‚ÌMob•ª’ljÁ)
+ db/item_db.txt(Athena DB Project 2/19 21:10DL•ª)
+
+--------------------
+//0818 by ‚ ‚ä‚Ý
+
+EƒeƒŒƒ|[ƒgƒXƒLƒ‹Lv1‚ÅA‘I‘ðƒEƒCƒ“ƒhƒE‚ªo‚Ä‚±‚È‚¢ƒoƒO‚ðC³B
+Ed—Ê‚ª90“ˆÈã‚ÌꇂłàAˆê•”‚̃XƒLƒ‹‚ªŽg—p‰Â”\‚¾‚Á‚½ƒoƒO‚ðC³B
+E@allskillƒRƒ}ƒ“ƒh‚ÌC³‚Æ‚©B
+
+ (conf/)
+ msg_athena.conf C³B
+ (map/)
+ atcommand.c
+ atcommand() C³B
+ pc.c
+ pc_allskillup() C³B
+ skill.c
+ skill_castend_nodamage_id() C³B
+ skill_check_condition() C³B
+
+--------------------
+//0817 by huge
+
+EƒfƒBƒ{[ƒVƒ‡ƒ“‚̈—C³
+ EŽ…‚Ìo‚µ•û‚̓pƒP‚ð–á‚Á‚½‚Ì‚Å‚Å‚«‚Ü‚µ‚½‚ªAƒAƒCƒRƒ“‚Ì•û‚Í‚Ü‚¾•ª‚©‚ç‚È‚¢‚Å‚·B
+ E‚ ‚ÆAŽ©•ª‚̊‹«‚Å2lˆÈã‚É“¯Žž‚ÉŠ|‚¯‚ê‚È‚©‚Á‚½‚Ì‚ÅA•¡”l‚É‚©‚¯‚½ê‡
+ ‘½•ª0‚Ì—…—ñ‚ÌŠ‚É2l–ÚA3l–ÚEEE‚ÌID‚ª“ü‚é‚ñ‚¶‚á‚È‚¢‚©‚È‚Ÿ‚Æ‚¢‚¤—\‘ª‚Å‚â‚Á‚Ä‚Ü‚·B
+EƒnƒCƒfƒBƒ“ƒO’†A‹y‚уNƒ[ƒLƒ“ƒO’†‚Ƀ_ƒ[ƒW‚ðŽó‚¯‚é‚Æ‰ð‚¯‚é‚悤C³B
+
+ (map/)
+ battle.c
+ battle_damage() C³B
+ clif.c
+ clif_devotion() C³B
+ pc.c
+ pc_walk() C³B
+ skill.c
+ skill.h
+ skill_castend_nodamage_id() C³B
+ skill_devotion() skill_devotion2() C³B
+ skill_devotion3()skill_devotion_end() C³B
+
+--------------------
+//0816 by ‚Ò‚´‚Ü‚ñ
+Eƒtƒ@ƒCƒA[ƒEƒH[ƒ‹3–‡§ŒÀŽÀ‘•B
+Ed‚Ë’u‚«‹ÖŽ~‚ðƒvƒŒƒCƒ„[Eƒ‚ƒ“ƒXƒ^[‚É‚à“K—p‚·‚é‚悤‚ÉC³B
+EŠ¦‚¢ƒWƒ‡[ƒNEƒXƒNƒŠ[ƒ€‚ÌPvPEGvG‚ÅAŒø‰Ê‚ªŽ©•ª‚É‚à‹y‚ÔƒoƒOC³B
+@‚‚¢‚Å‚ÉPTƒƒ“ƒo[‚É‚Í’áŠm—¦‚Å‚©‚©‚é‚Ì‚àŽÀ‘•B
+EŠ¦‚¢ƒWƒ‡[ƒNEƒXƒNƒŠ[ƒ€EƒXƒsƒAƒu[ƒƒ‰ƒ“‚̃fƒBƒŒƒCC³B
+@ƒ~ƒ…[ƒWƒJƒ‹ƒXƒgƒ‰ƒCƒNE–‚¿‚̉r¥ŽžŠÔC³B
+ (map/)
+ skill.c
+ skill_check_condition()Askill_check_unit_range_sub() C³B
+ skill_check_unit_range()Askill_delunitgroup() C³B
+ skill_castend_pos2()Askill_frostjoke_scream() C³B
+ map.h C³B
+ (db/)
+ cast_db.txt C³B
+
+--------------------
+//0815 by Ž€_
+
+E0814‚̃oƒOC³‚Æׂ©‚¢C³B
+Emapflag monster_noteleportAnoreturn’ljÁ‚Ænoteleport‚ÌŽd—l•ÏXB
+noteleport‚̓vƒŒƒCƒ„[‚̃nƒG‚ƃeƒŒƒ|[ƒgAƒ[ƒvƒXƒLƒ‹‚̧ŒÀ‚ð‚·‚é‚ª’±‚ͧŒÀ‚µ‚È‚¢‚悤‚É•ÏXAmonster_noteleport‚̓‚ƒ“ƒXƒ^[‚̃eƒŒƒ|[ƒg‚ð§ŒÀ‚·‚镨‚Ånoreturn‚Í’±‚ÌŽg—p‚ð§ŒÀ‚·‚镨‚Å‚·B‚½‚¾mapflag.txt‚ÍC³‚µ‚Ä‚¢‚Ü‚¹‚ñB(noreturn‚ðÝ’è‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B)
+Ebattle_athena.conf‚Ìplayer_auto_counter_type‚Æmonster_auto_counter_type‚ªà–¾’Ê‚è‚É‹@”\‚µ‚È‚©‚Á‚½–â‘èC³B
+Ebattle_athena.conf‚Éplayer_cloak_check_wall ‚Æmonster_cloak_check_wall ’ljÁB
+Eƒ{ƒXƒ‚ƒ“ƒXƒ^[‚Ì”FŽ¯‚ðMVPŒoŒ±‚Æmode‚Ì0x20‚Ås‚È‚Á‚Ä‚¢‚½•¨‚ðmode‚¾‚¯‚É‚·‚é‚悤‚É•ÏXB(–{ŽI‚̃Cƒxƒ“ƒgƒ‚ƒ“ƒXƒ^[‚ÅMVPŒoŒ±‚ð‚­‚ê‚邪ó‘ÔˆÙí‚ÉŠ|‚©‚é‚â‚‚ª‚ ‚Á‚½‚炵‚­C³BHP‚ª1‰­‚à‚ ‚Á‚Ä“Å‚¶‚á‚È‚¢‚Æ“|‚¹‚È‚©‚Á‚½‚炵‚¢‚Ì‚Å...) ‚‚܂èMVPŒoŒ±‚ª‚ ‚Á‚Ä‚àƒ{ƒXˆµ‚¢‚Å‚Í‚È‚¢ƒ‚ƒ“ƒXƒ^[‚ðì‚邱‚Æ‚à‰Â”\‚Å‚·B
+Eó‘ÔˆÙí‚ÉŠ|‚©‚Á‚½ó‘Ô‚ÅÚ‘±Ø’f‚ª‚Å‚«‚È‚¢‚悤‚ÉC³B(‚½‚¾ƒ^ƒCƒ}[ƒ`ƒFƒbƒN‚Å‚Í‚È‚­opt1‚Æopt2‚ðƒ`ƒFƒbƒN‚·‚邾‚¯‚È‚Ì‚ÅŒ©‚½–Ú‚ª•Ï‚í‚éó‘ÔˆÙ킾‚¯‚É“K—p‚³‚ê‚Ü‚·B)
+E¡‚³‚ç‚Å‚·‚ªÌ‚ÌyareCVS(2003”N9ŒŽƒo[ƒWƒ‡ƒ“)‚Å“K—p‚³‚ê‚Ä‚¢‚½ƒ‰ƒO‚ðŒ¸‚ç‚·ˆ×‚̈—‚ð“ü‚ê‚Ä‚Ý‚Ü‚µ‚½B‚Ç‚ñ‚ÈŒø‰Ê‚ª‚ ‚é‚©‚ÍŽ©•ª‚Å‚à‚í‚©‚è‚Ü‚¹‚ñB(‚½‚¾“ü‚ê‚Ä‚Ý‚½‚¾‚¯...)
+EƒV[ƒYƒ‚[ƒh‚ÆPVP‚Å‹ÖŽ~‘•”õ‚ªŠO‚³‚ê‚Ä‚àŒø‰Ê‚ªÁ‚¦‚È‚¢ƒoƒOC³B
+E‚»‚Ì‘¼×‚©‚¢C³B
+E–¢ƒeƒXƒg‚Ì•¨‚à‚©‚È‚è‚ ‚è‚Ü‚·B
+ (common/)
+ socket.c
+ connect_client()Amake_listen_port()Amake_connection() C³B
+ (conf/)
+ battle_athena.conf C³B
+ (doc/)
+ conf_ref.txt C³B
+ (map/)
+ battle.h C³B
+ battle.c
+ battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
+ battle_calc_magic_attack()Abattle_config_read() C³B
+ skill.c
+ skill_unit_onplace()Askill_status_change_timer() C³B
+ skill_castend_nodamage_id()Askill_use_id() C³B
+ skill_check_unit_range_sub()Askill_timerskill() C³B
+ skill_additional_effect()Askill_attack()Askill_status_change_start() C³B
+ skill_check_cloaking() C³B
+ clif.c
+ clif_item_identify_list()Aclif_parse_QuitGame()Aclif_GM_kick() C³B
+ pc.c
+ pc_attack_timer()Apc_isUseitem()Apc_checkitem C³B
+ mob.c
+ mob_warp()Amob_walk()Amob_attack()Amob_target() C³B
+ mob_ai_sub_hard_activesearch()Amob_ai_sub_hard_mastersearch() C³B
+ mob_ai_sub_lazy()Amob_damage() C³B
+ npc.c
+ npc_parse_mapflag() C³B
+ map.h C³B
+
+--------------------
+//0814 by Ž€_
+
+EƒoƒOC³‚Æׂ©‚¢C³B
+Ebattle_athena.conf‚Ìplayer_auto_counter_type‚Æmonster_auto_counter_type‚ÌŽd—l‚ð•ÏXB(–{ŽI‚ł̓XƒLƒ‹”½Œ‚‚Í‚Å‚«‚È‚¢‚Ý‚½‚¢‚È‚Ì‚ÅÝ’è‚Å‚«‚é‚悤‚É•ÏXB)
+E“Å‚ÆΉ»‚É‚æ‚éHPŒ¸­‚ð–{ŽI‚ɇ‚킹‚ÄC³‚ÆŠ®‘SΉ»‚Ì‘O‚Å‚Í“®‚¯‚é‚悤‚É•ÏXB(“Å‚Í1•b‚É3+Å‘åHP‚Ì1.5%(ƒ‚ƒ“ƒXƒ^[‚Í0.5%)AΉ»‚Í5•b‚É1%) –¢ƒeƒXƒg
+EMVPŒoŒ±’l‚Í–{ŽI‚Å‚¢‚‚à“ü‚é‚悤‚É‚È‚Á‚½‚Ì‚ÅC³B
+EƒXƒeƒB[ƒ‹‚ÌŠm—¦‚ð­‚µ‰º‚°B
+Eƒ‚ƒ“ƒXƒ^[‚̃nƒCƒfƒBƒ“ƒOAƒNƒ[ƒLƒ“ƒOAƒ}ƒLƒVƒ}ƒCƒYƒpƒ[‚ª‚·‚®‚ɉ𜂳‚ê‚é–â‘èC³B(ƒ‚ƒ“ƒXƒ^[‚É‚ÍSP‚ª‚È‚¢‚¹‚¢‚Å‚·BŽæ‚芸‚¦‚¸ƒNƒ[ƒLƒ“ƒO‚̓nƒCƒfƒBƒ“ƒO‚ÌŽžŠÔ‚ð“K—p‚µ‚ă}ƒLƒVƒ}ƒCƒYƒpƒ[‚̓EƒGƒ|ƒ“ƒp[ƒtƒFƒNƒVƒ‡ƒ“‚ÌŽžŠÔ‚ð“K—p‚µ‚Ü‚·B) –¢ƒeƒXƒg
+EƒTƒ“ƒNƒ`ƒ…ƒAƒŠ‚ðl”‚©‚ç‰ñ”‚É•ÏXB
+EPVP‚ÅŽ©•ª‚̃gƒ‰ƒbƒv‚ÉUŒ‚‘ÎÛ‚É‚È‚é‚悤‚É•ÏXB
+Evitƒyƒiƒ‹ƒeƒB‚Ì“K—p‚ÅæŽZ–hŒä‚àŒ¸‚é‚悤‚É•ÏXB(–¢ƒeƒXƒg)
+E‚»‚Ì‘¼×‚©‚¢ƒoƒOC³B
+ (conf/)
+ battle_athena.conf
+ (doc/)
+ conf_ref.txt
+ (db/)
+ skill_db.txt
+ (map/)
+ map.h C³B
+ script.c
+ buildin_itemskill() C³B
+ mob.c
+ mob_can_move()Amob_ai_sub_hard()Amob_damage() C³B
+ skill.c
+ skill_unitsetting()Askill_unit_onplace()Askill_castend_nodamage_id() C³B
+ skill_attack()Askill_status_change_start() C³B
+ skill_status_change_timer()Askill_status_change_timer_sub() C³B
+ skill_addtimerskill()Askill_cleartimerskill() C³B
+ skill_check_unit_range_sub() C³B
+ battle.c
+ battle_calc_damage()Abattle_check_target() C³B
+ battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
+ battle_calc_pc_weapon_attack() C³B
+ pc.c
+ pc_steal_item() C³B
+ clif.c
+ clif_parse_WalkToXY()Aclif_closevendingboard() C³B
+
+--------------------
+//0813 by Kalen
+EƒRƒ“ƒƒ“NPC’ljÁ
+ conf/npc/npc_town_gonryun.txt(ƒNƒGƒXƒg‚Í•s–¾
+ conf/npc/npc_town_kafra.txt
+ conf/npc/npc_town_guide.txt
+ (conf/npc/npc_event_tougijou.txt)ƒf[ƒ^•s‘«
+
+E‘SGvGMAP‚ÌMobƒf[ƒ^’ljÁ
+ conf/mob/npc_monster_gvg.txt
+
+ETESTmob‚©‚çƒeƒXƒgƒMƒ‹ƒhƒtƒ‰ƒOˆÚ“®
+ conf/gvg/TEST_prtg_cas01_AbraiJ.txt
+
+--------------------
+//0812 by huge
+
+EƒfƒBƒ{[ƒVƒ‡ƒ“‚̉¼ŽÀ‘•
+ EƒpƒPƒbƒg‚ª‘S‘R•ª‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½‚Ì‚ÅA
+ ‚¢Ž…‚ào‚È‚¢‚µAƒAƒCƒRƒ“‚·‚ç•\Ž¦‚Å‚«‚Ü‚¹‚ñB
+ Eƒ_ƒˆÚ“®‚¾‚¯‚ÅAƒmƒbƒNƒoƒbƒNEƒI[ƒgƒK[ƒh‚Í“K‰ž‚³‚ê‚Ü‚¹‚ñB
+
+ (map/)
+ clif.c
+ clif.h
+ clif_devotion() ’ljÁB
+ skill.c
+ skill_castend_nodamage_id() C³B
+ skill_devotion() skill_devotion2() ’ljÁB
+ skill_devotion3() skill_devotion_end() ’ljÁB
+ skill_status_change_end() C³B
+ skill_status_change_start() C³B
+ skill_brandishspear_first() C³B
+ skill_brandishspear_dir() C³B
+ pc.c
+ pc_authok() C³B
+ pc_walk() C³B
+ pc_damage() C³B
+ battle.c
+ battle_damage() C³B
+ map.h
+ map_session_data{}
+ struct square dev ’ljÁB
+ skill.h ‚Ìbrandish‚ðsquare‚ɉü–¼‚µA
+ (common/) mmo.h ‚Ɉړ®
+
+--------------------
+//0811 by ‚Ò‚´‚Ü‚ñ
+
+EUé’†‚Í’±‚ªŽg‚¦‚é‚悤‚ÉC³
+EŠ¦‚¢ƒWƒ‡[ƒNEƒXƒNƒŠ[ƒ€ŽÀ‘•(PTƒƒ“ƒo[‚É’áŠm—¦‚ʼn]X‚Í–¢ŽÀ‘•‚Å‚·)
+EGVGƒXƒNƒŠƒvƒg‚ðC³(ŽŽsöŒë‚µ‚·‚¬‚Ä‚Ç‚±‚ð‚Ç‚¤‚µ‚½‚©Šo‚¦‚Ä‚Ü‚¹‚ñc)
+@GVGƒXƒNƒŠƒvƒg‚ÉŠÖ‚µ‚Ä‚Å‚·‚ªAŠù’m‚̃oƒO‚ª‚ ‚è‚Ü‚·
+@‚»‚ê‚ÍAè—̃Mƒ‹ƒhƒ}ƒXƒ^[ˆÈŠO‚ÌPC‚ªAè—̃Mƒ‹ƒhƒ}ƒXƒ^[‚æ‚èæ‚ÉNPC‚ɘb‚µŠ|‚¯‚é‚Æ
+@ƒ}ƒbƒvƒT[ƒo‚ª—Ž‚¿‚é‚Æ‚¢‚¤‚à‚Ì‚Å‚·B
+@‚±‚ê‚ÍAgetguildmasterEgetguildname‚ðŽg—p‚µ‚Ä‚¢‚éƒXƒNƒŠƒvƒg‚·‚ׂĂɋN‚±‚蓾‚邱‚Æ‚Å‚ ‚è
+@æ‚Éè—̃Mƒ‹ƒhƒ}ƒXƒ^[ˆÈŠO‚Řb‚µŠ|‚¯‚é‚ÆAguild_search‚ª‰½ŒÌ‚©(ŠY“–ID‚̃Mƒ‹ƒh‚ª‚ ‚é‚É‚àŠÖ‚í‚炸)
+@NULL‚ð•Ô‚·Ž–‚É‹Nˆö‚µ‚Ü‚·B
+@³’¼ƒXƒNƒŠƒvƒgŠÖŒW‚Í‚æ‚­‚í‚©‚Á‚Ä‚¢‚È‚¢‚Ì‚ÅA‚±‚ê‚ÍŽ„‚Ì‹Zp‚Å‚ÍC³‚Ì‚µ‚悤‚ª‚ ‚è‚Ü‚¹‚ñB
+@Žb’è“I‚ȑΈ‚Æ‚µ‚ÄNULL‚ð•Ô‚µ‚ÄMAPŽI‚ª—Ž‚¿‚é‚­‚ç‚¢‚Ȃ當Žš—ñunullv‚ð•Ô‚·‚悤‚É‚µ‚Ü‚µ‚½B
+
+ (map/)
+ skill.c
+ skill_frostjoke_scream() ’ljÁB
+ skill_additional_effect()Askill_timerskill() C³B
+ skill_castend_nodamage_id() C³B
+ pc.c
+ pc_isUseitem() C³B
+ script.c
+ buildin_getpartyname()Abuildin_getguildname() C³B
+ buildin_getguildmaster() C³B
+ (db/)
+ cast_db.txt C³B
+ (conf/gvg/)
+ ev_*.txtˆÈŠO‚Ìtxt‘S‚Ä‚ðC³B
+
+--------------------
+//0810 by ¹
+
+EMVP‚̈—‚ð•ÏXB(Šm—¦‚Å10000‚ª‚ ‚Á‚Ä‚àA‘¼‚̃AƒCƒeƒ€‚ào‚é‚悤‚É‚µ‚Ü‚µ‚½)
+EMVP‚Å‘•”õ‚ð“üŽè‚µ‚½ê‡AŠÓ’èÏ‚Ý‚Å“üŽè‚µ‚Ä‚¢‚½–â‘è‚ðC³B
+EƒXƒLƒ‹‰r¥’†‚ɃCƒO—t‚âŠg‘勾‚ðŽg‚¤‚ƃvƒŒ[ƒ„[‚ÌŽg—p‰Â”\‚È
+@‘SƒXƒLƒ‹‚ÌLV‚ª1‚ɌŒ肳‚ê‚Ä‚µ‚Ü‚¤–â‘è‚ðC³B
+EƒI[ƒNƒA[ƒ`ƒƒ[“™Aƒ‚ƒ“ƒXƒ^[‚É‚æ‚é㩃XƒLƒ‹‚Ì—LŒøŠúŒÀ‚ªØ‚ꂽ‚Æ‚«‚ÉA
+@Ý’u—pƒgƒ‰ƒbƒv‚ªo‚é–â‘è‚ðC³B
+EƒƒOƒCƒ“ƒGƒ‰[(ƒpƒXƒ[ƒh“ü—̓~ƒX‚âBAN“™)‚̃Gƒ‰[ƒƒbƒZ[ƒW‚ª
+@³‚µ‚­ƒNƒ‰ƒCƒAƒ“ƒg‚É’Ê’m‚³‚ê‚È‚¢–â‘è‚ðC³B
+E‚»‚Ì‘¼×‚©‚ÈC³B
+ (common/)
+ version.h C³B
+ (login/)
+ login.c
+ parse_login() C³B
+ parse_fromchar() C³B
+ (char/)
+ int_guild.c
+ mapif_parse_GuildLeave() C³B
+ (map/)
+ itemdb.c
+ itemdb_read_itemnametable() C³B
+ atcommand.c
+ atcommand() C³B
+ skill.c
+ skill_unit_timer_sub() C³B
+ script.c
+ buildin_itemskill() C³B
+ mob.c
+ mob_damage() C³B
+
+--------------------
+//0809 by Kalen
+
+E“ŒŒÎéƒ[ƒvƒ|ƒCƒ“ƒgC³
+EƒAƒ}ƒcŽõŽi‰®C³
+EƒoƒOƒXƒŒ129‚Ì–â‘èC³H
+
+
+--------------------
+//0808 by ‚Ò‚´‚Ü‚ñ
+
+E‘•”õ§ŒÀ‚ªãŽè‚­“®ì‚µ‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ðC³B
+Eƒ‚ƒ“ƒnƒEƒMƒ‹ƒh‚ÍGvGŠJŽnŽž‚Éì‚ç‚ê‚é‚悤‚É•ÏXB
+EGvGŠJŽnŽž‚ÉŠY“–ƒ}ƒbƒv‚É‚¢‚é‘SPC(è—̃Mƒ‹ƒhˆõˆÈŠO)‚ðƒZ[ƒuƒ|ƒCƒ“ƒg‚É–ß‚·‚悤‚ÉC³B
+Eƒ‚ƒ“ƒnƒEƒMƒ‹ƒhƒAƒWƒg‚ŃGƒ“ƒy‚ð‰ó‚·‚ÆAƒ‚ƒ“ƒnƒE‚ªÁ‚¦‚é‚悤‚ÉC³B
+@‚±‚ÌC³‚É”º‚Á‚Ämaprespawnguildid‚̈ø”‚Ìflag‚ÌŽd—l‚ð•ÏX‚µ‚Ü‚µ‚½
+@flag‚̓rƒbƒgƒtƒ‰ƒO‚É‚È‚èA
+@@1ƒrƒbƒg–ÚFè—̃Mƒ‹ƒhˆõ‚ðƒZ[ƒuƒ|ƒCƒ“ƒg‚É–ß‚·‚©
+@@2ƒrƒbƒg–ÚFè—̃Mƒ‹ƒhˆõˆÈŠO‚ðƒZ[ƒuƒ|ƒCƒ“ƒg‚É–ß‚·‚©
+@@3ƒrƒbƒg–ÚFƒGƒ“ƒyEƒK[ƒfƒBƒAƒ“ˆÈŠO‚ÌMOB‚ðÁ‚·‚©
+@‚¢‚¸‚ê‚àA0=NOA1=YES‚É‚È‚è‚Ü‚·
+
+ (conf/gvg/)
+ ev_agit_aldeg.txt C³B
+ ev_agit_gefg.txt C³B
+ ev_agit_payg.txt C³B
+ ev_agit_prtg.txt C³B
+ TEST_prtg_cas01_AbraiJ.txt C³B
+ TEST_prtg_cas01_mob.txt C³B
+ (map/)
+ pc.c
+ pc_checkitem() C³B
+ script.c
+ buildin_maprespawnguildid_sub() C³B
+ buildin_maprespawnguildid() C³B
+
+--------------------
+//0807 by Ž€_
+
+E0805‚ÅFD_SETSIZE‚ðC³‚·‚銂ðŠÔˆá‚Á‚½‚Ì‚ÅC³‚µ‚Ü‚µ‚½B56–¼Ž~‚܂肪Ž¡‚é‚ÆŒ¾‚¤•ÛØ‚Í‚ ‚è‚Ü‚¹‚ñ‚ª...
+Eˆê“x‚É“]‘—‚·‚éƒpƒPƒbƒg‚Ì’·‚³‚ð32768bytes‚©‚ç65536bytes‚É•ÏXB
+ (common/)
+ mmo.h C³B
+ socket.h C³B
+ socket.c C³B
+
+--------------------
+//0806 by Kalen
+
+EagitƒtƒHƒ‹ƒ_¨gvgƒtƒHƒ‹ƒ_‚ÖˆÚs
+ ”ˆÓŒ©‚ ‚é‚ÆŽv‚¢‚Ü‚·‚ªAjRO‚Å‚ÍUéí‚ðgvg‚ƌĂԂ±‚Æ‚ªˆê”Ê“I‚È‚Ì‚Å‚±‚¿‚ç‚É“‡‚µ‚Ü‚·B
+ conf/gvg/
+ ###agitƒtƒHƒ‹ƒ_‚ð휂µ‚Ä‚­‚¾‚³‚¢###@(Please delete the "agit" folder.)
+ getmaster‘Ήž
+
+EƒAƒ}ƒc‚ÌŽõŽi‰®ƒoƒOC³‚Æ€–ڒljÁ(thx 114
+ conf/npc/npc_town_amatsu.txt
+
+Emap_flagÄC³
+ conf/map_flag.txt
+ [GVGMAP]Šm‚©‚Éí‚ɃV[ƒYƒ‚[ƒh‚È‚ç–â‘è‚È‚¢‚Å‚·‚ªA휂³‚ê‚Ü‚µ‚½‚Ì‚Å
+ í‚ɃV[ƒYƒ‚[ƒh‚Å‚Í‚ ‚è‚Ü‚¹‚ñB]‚Á‚ĉ𜎞(ŽžŠÔŠO)‚É‚ÍŽ}AƒeƒŒƒ|‚ªŽg‚¦‚Ü‚·
+ ŽžŠÔ‘O‚ÉŽ}ŽT‚«A‚Ü‚¾ŽÀ‘•‚µ‚Ä‚Ü‚¹‚ñ‚ª•ó” ’DŽæ‚à‰Â”\‚É‚È‚é‚Ì‚ÅŽ}AƒeƒŒƒ|‚Íí‚ÉŽg—p•s‰Â‚Å–â‘è‚È‚¢‚ÆŽv‚¢‚Ü‚·B
+
+Œã‘O‰ñ‘‚«–Y‚ê‚Ü‚µ‚½‚ªAmomotaroƒCƒxƒ“ƒg‚Å‚·‚ªA‚¿‚å‚Á‚Æ•sˆÀ’è‚ȉ”\«‚ª‚ ‚è‚Ü‚·B
+Œ´ˆö‚ª‚í‚©‚ç‚È‚¢‚Ì‚Å‚·‚ªAƒ‹[ƒv‚µ‚Ä‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñBˆê‰žƒRƒƒ“ƒgƒAƒEƒg‚µ‚Ä‚ ‚è‚Ü‚·
+
+--------------------
+//0805 by Ž€_
+
+E•¶Žš‰»‚¯C³B
+EƒV[ƒYƒ‚[ƒh‚ł̃eƒŒƒ|[ƒg‹ÖŽ~‚âŒÃ–Ø‚ÌŽ}Žg—p‹ÖŽ~‚̓\[ƒXƒŒƒxƒ‹‚Å
+ˆ—‚µ‚Ä‚¢‚é‚Ì‚Åmapflag.txt‚©‚çíœB(ˆö‚Ý‚Énopenalty‚àƒ\[ƒXƒŒƒxƒ‹‚Å
+ˆ—‚µ‚Ä‚¢‚Ü‚·B)
+Ebattle_athena.conf‚Ìagit_eliminate_time‚ðgvg_eliminate_time‚É•ÏXB
+E@ƒRƒ}ƒ“ƒh@GMíœB
+EFD_SETSIZE‚©cygwin‚Å64‚Éݒ肳‚ê‚Ä‚¢‚½‚Ì‚¹‚¢‚ÅÅ‘åÚ‘±l”‚ª56–¼‚ð
+‰z‚¦‚é‚ƃ}ƒbƒvŽI‚ª–³ŒÀƒ‹[ƒv‚·‚é–â‘èC³B(‚½‚¾ƒeƒXƒg‚ª‚Å‚«‚È‚©‚Á‚½•¨‚È‚Ì‚Å–{“–‚É‘åä•v‚É‚È‚Á‚½‚©‚Ç‚¤‚©‚Í•s–¾‚Å‚·B‚ ‚­‚Ü‚Å‚àŽ©•ª‚Ì—\‘ª‚É‚·‚¬‚È‚¢•¨‚Å‚·‚ª...)
+E•¶Žš‰»‚¯‚Ì‚¹‚¢‚Å‚Ç‚±‚ð‚Ç‚¤C³‚µ‚½‚©Šo‚¦‚Ä‚È‚¢‚Ì‚ÅC³‚µ‚½ƒtƒ@ƒCƒ‹‚¾‚¯B
+ (conf/)
+ atcommand_athena.conf
+ battle_athena.conf
+ mapflag.txt
+ (db/)
+ castle_db.txt
+ (doc/)
+ conf_ref.txt
+ (common/)
+ mmo.h
+ (login/)
+ login.c
+ (char/)
+ inter.c
+ int_guild.c
+ (map/)
+ atcommand.h
+ atcommand.c
+ battle.h
+ battle.c
+ chrif.c
+ guild.h
+ guild.c
+ intif.h
+ intif.c
+ map.h
+ map.c
+ mob.c
+ npc.c
+ npc.h
+ script.c
+ skill.c
+ pc.c
+ makefile
+
+--------------------
+//0804 by Žß‘¸
+
+EƒAƒ‹ƒxƒ‹ƒ^‚Ì‚Ê‚¢‚®‚é‚݃Cƒxƒ“ƒg‚Å‚¤‚³‚¬‚Ì‚Ê‚¢‚®‚é‚Ý‚ð‚ ‚°‚é‚ƃT[ƒo[‚ª—Ž‚¿‚éƒoƒOC³
+
+ (conf/npc/)
+ npc_event_doll.txt C³B
+
+--------------------
+//0803 by ‚Ò‚´‚Ü‚ñ
+
+ GvG‚ŃGƒ“ƒyƒŠƒEƒ€•ö‰óŽžgvg_eliminate_time‚Ì’l‚ÉŠÖ‚í‚炸‘¦À‚É‘Þ‹Ž‚³‚¹‚ç‚ê‚Ä‚¢‚½ƒoƒOC³
+ GvG‚̃ZƒŠƒt‚ðˆê•”C³
+ interŽI‚Åcastle.txt‚ª‚È‚¢‚Æ‹N‚±‚éFX‚ȃGƒ‰[‚ðC³
+ help.txt‚ðC³(@gvgstart¨@agitstart‰]X)
+
+ (conf/)
+ gvg/TEST_prtg_cas01_AbraiJ.txt C³B
+ agit/ev_agit_prtgJ.txt C³B
+ help.txt C³B
+ (map/)
+ int_guild.c
+ inter_guild_init() C³B
+
+--------------------
+//0802 by Michael_Huang
+
+ Added NPC Script - 'GetGuildMaster' Command.
+ (common/)
+ version.h
+ Mod_Version 0802
+ (map/)
+ script.c
+ buildin_getguildmaster_sub() buildin_getguildmaster()
+
+--------------------
+//0801 by Kalen
+EƒAƒ}ƒcC³
+@@ŽÀ‘•‘O‚̃f[ƒ^A”²‚¯‚Ä‚éƒf[ƒ^‚Ȃǂ𒲸‚µC³
+ conf/npc/npc_town_guide.txt
+ conf/npc/npc_town_amatsu.txt
+ conf/npc/npc_event_momotaro.txt
+ conf/npc/npc_event_alchemist.txt
+ conf/mob/npc_monster35.txt
+ conf/warp/npc_warp_amatsu.txt
+Emap_flagC³
+ [GVGMAP]Ž}AƒeƒŒƒ|‚Íí‚ÉŽg—p•s‰Â
+EGVGŠÖŒW
+ 0800‚̃Rƒ}ƒ“ƒh‚ɑΉž
+
+--------------------
+//0800 by Michael_Huang
+
+ Added Agit NPC Script & Command.
+ Fix FreeBSD GCC compatibility.
+ Attachment Agit Demo NPCs.
+
+ (char/)
+ int_guild.c
+ mapif_guild_castle_dataload() mapif_guild_castle_datasave()
+ int mapif_parse_GuildCastleDataLoad() int mapif_parse_GuildCastleDataSave()
+ inter_guild_parse_frommap() inter_guildcastle_tostr() inter_guildcastle_fromstr()
+ inter.c
+ inter_send_packet_length[] inter_recv_packet_length[]
+ (common/)
+ mmo.h
+ GLOBAL_REG_NUM, struct global_reg {}
+ version.h
+ Mod_Version 0799.
+ (conf/)
+ atcommand_athena.conf
+ agitstart: 1,agitend: 1
+ battle_athena.conf
+ agit_eliminate_time: 7000
+ map_athena.conf
+ conf/agit/ev_agit_*.txt
+ (doc/)
+ conf_ref.txt
+ battle_athena.cnf
+ agitdb_ref.txt
+ (login/)
+ login.c
+ parse_login()
+ (map/)
+ atcommand.h
+ agitster, agitend
+
+ atcommand.c
+ @agitstart, @agitend
+ battle.h
+ battle_config.agit_eliminate_time
+ battle.c
+ battle_config_read()
+ chrif.c
+ chrif_changedsex() chrif_connectack()
+ guild.h
+ guild_agit_start() guild_agit_end() guild_agit_break()
+ guild.c
+ guild_read_castledb() do_init_guild()
+ guild_agit_start() guild_agit_end() guild_agit_eliminate_timer() guild_agit_break()
+ intif.h
+ intif_guild_castle_dataload() intif_guild_castle_datasave()
+ intif.c
+ packet_len_table[] intif_guild_castle_dataload() intif_guild_castle_datasave()
+ intif_parse_GuildCastleDataLoad() intif_parse_GuildCastleDataSave() intif_parse()
+ map.h
+ agit_flag
+ map.c
+ agit_flag
+ npc.h
+ npc_event_doall() npc_event_do()
+ npc.c
+ npc_event_do_sub() npc_event_do()
+ script.c
+ buildin_maprespawnguildid() buildin_agitstart() buildin_agitend()
+ buildin_getcastlename() buildin_getcastledata() buildin_setcastledata()
+ skill.c
+ skill_unit_onplace()
+ skill_gangster_count()
+
+--------------------
+//0799 by ‚Ò‚´‚Ü‚ñ
+
+EGvGŽÀ‘•‚ׂ̈Éinter-mapŠÔ‚Ì’ÊMŽd—l•ÏX
+E0798‚̃Rƒ“ƒpƒCƒ‹ƒGƒ‰[C³(byƒoƒO•ñƒXƒŒ82Ž)
+ (login/)
+ login.c
+ parse_login() C³B
+ (map/)
+ intif.c
+ packet_len_table[] C³B
+ intif_parse_GuildCastleInfo() C³B
+ intif_parse_GuildCastleChange()‚ðintif_parse_GuildCastleChangeErr()‚ɉü–¼EC³B
+ intif_parse() C³B
+ guild.c
+ guild_read_castledb() C³B
+
+ (char/)
+ inter.c
+ inter_send_packet_length[] C³B
+ int_guild.c
+ inter_guildcastle_tostr() C³B
+ inter_guildcastle_fromstr() C³B
+ mapif_parse_GuildChangeCastle() C³B
+ mapif_parse_GuildCastleInfo() C³B
+ mapif_guild_castle_info() C³B
+ mapif_guild_change_castle()‚ðmapif_guild_change_castle_err()‚ɉü–¼EC³B
+ (common/)
+ mmo.h C³B
+ version.h C³B
+
+--------------------
+//0798 by ŒÓ’±—–
+
+Elogin-server‚̃ƒOƒCƒ“Ž¸”sƒpƒPƒbƒg‚Ì’·‚³‚ª‚¨‚©‚µ‚©‚Á‚½‚Ì‚ðC³
+Elogin-server‚ɃAƒNƒZƒXƒRƒ“ƒgƒ[ƒ‹‹@”\’ljÁ
+ Elogin_athena.cnf‚Éorder,allow,deny‚ð‹Lq‚·‚邱‚Æ‚ÅA
+ IP’PˆÊ(‘O•ûˆê’v)‚ŃAƒNƒZƒX‚ð‹ÖŽ~‚·‚é‹@”\B
+ EŽw’è•û–@‚Í doc/conf_ref.txt ‚ðŽQÆ
+
+ (doc/)
+ conf_ref.txt
+ login_athena.cnf‚Ì•”•ªC³
+ (login/)
+ login.c
+ ƒOƒ[ƒoƒ‹•Ï” access_* ’ljÁ
+ parse_login()C³,check_ip()’ljÁ
+
+EƒAƒJƒEƒ“ƒg쬗pCGIƒXƒNƒŠƒvƒg’ljÁ
+ EŽ©ŒÈÓ”C•Úׂȉðà–³‚µAŽ¿–₳‚ê‚Ä‚àƒXƒ‹[‚·‚é‰Â”\«—L‚è
+ EƒGƒfƒBƒ^‚ÅŠJ‚¢‚½‚ç­‚µà–¾—L‚è
+ ECGIÝ’u‚ÌŠî–{‚³‚¦‚í‚©‚ê‚Ζâ‘è‚È‚¢‚Í‚¸
+ EƒƒbƒZ[ƒW‚͉pŒêA“ú–{Œê—¼‘Ήž
+ iAccept-Language‚ªja‚È‚ç“ú–{Œê‚É•ÏŠ·‚µ‚Ü‚·j
+ EŠÇ—ŽÒƒpƒXƒ[ƒh‚È‚µ‚Å“®‚­‚̂ŃZƒLƒ…ƒŠƒeƒB‚É‚Í’ˆÓ(.htaccess‚È‚Ç„§)
+
+ (tool/cgi/)
+ addaccount.cgi
+ ƒAƒJƒEƒ“ƒg쬗pCGIB
+
+E‚»‚Ì‘¼
+ (tool/)
+ backup
+ castle.txt‚àƒoƒbƒNƒAƒbƒv‚·‚é‚悤‚É
+
+--------------------
+//0797 by Ž€_
+
+E­‚µC³B
+Ebattle_athena.conf‚Ì€–Ú•ÏXB(lootitem_time íœAitem_first_get_timeA
+item_second_get_timeAitem_third_get_timeAmvp_item_first_get_timeA
+mvp_item_second_get_timeAmvp_item_third_get_time ’ljÁB)
+EƒAƒCƒeƒ€ƒ‹[ƒgŒ ŒÀ‚𳂵‚­ŽÀ‘•BʼnUŒ‚‚Å‚Í‚È‚­—^‚¦‚½ƒ_ƒ[ƒW‚Ì
+—Ê‚É‚æ‚Á‚ÄŽû“¾Œ ŒÀ‚ð—^‚¦‚é‚悤‚É•ÏXB(ʼnŽû“¾Œ ŒÀ‚̂݃eƒXƒg)
+ƒp[ƒeƒB‚Ìꇃp[ƒeƒB‚ÌÝ’è‚ɇ‚킹‚é•K—v‚ª‚ ‚è‚Ü‚·‚ª‚Ü‚¾ƒpƒPƒbƒg‚ª
+•s–¾‚ÈŠ‚ª‚ ‚éˆ×“¯‚¶ƒp[ƒeƒB‚È‚çŽû“¾‚Å‚«‚é‚悤‚É‚È‚Á‚Ä‚¢‚Ü‚·B
+Eƒ{ƒEƒŠƒ“ƒOƒoƒbƒVƒ…‚̃oƒOC³B(‘½•ªC³‚³‚ꂽ‚Í‚¸...)
+E‘•”õƒXƒNƒŠƒvƒgbonus‚ÉbSplashRange‚ÆbSplashAddRange’ljÁB
+bSplashRange‚ÆbSplashAddRange‚Í•Ší‚Ń_ƒ[ƒW‚ð—^‚¦‚½Žž‚Ì‚Ý”­“®A’Êí‚Ì•ŠíUŒ‚ˆµ‚¢‚È‚Ì‚Å”ð‚¯‚ç‚ê‚邪(Flee2‚É‚æ‚銮‘S‰ñ”ð‚Í•s‰Â”\)ƒNƒŠ‚Ío‚È‚¢‚悤‚É‚È‚Á‚Ä‚¢‚Ä•Ší‚É‚æ‚éó‘ÔˆÙí‚Í”­¶‚µ‚Ü‚¹‚ñB–{ŽIŽd—l‚È‚ñ‚Ä’m‚è‚Ü‚¹‚ñB
+EƒXƒLƒ‹‚Ìd‚Ë’u‚«ˆ—‚ð–{ŽI‚ɇ‚킹‚ÄC³B
+Emapflag‚Ìgvg‚Í‚¢‚‚à‚È‚Á‚Ä‚¢‚é‚킯‚¶‚á‚È‚¢‚Ì‚ÅíœB
+E‚»‚Ì‘¼×‚©‚¢C³B
+ athena-start C³B
+ (common/)
+ mmo.h C³B
+ (conf/)
+ mapflag.txt C³B
+ battle_athena.conf C³B
+ (db/)
+ const.txt C³B
+ item_db.txt C³B
+ (doc/)
+ conf_ref.txt C³B
+ item_bonus.txt C³B
+ (map/)
+ mob.c
+ mob_spawn()Amob_damage()Amob_class_change()Amob_warp() C³B
+ mob_delay_item_drop()Amob_delay_item_drop2() C³B
+ mobskill_castend_pos() C³B
+ pc.c
+ pc_takeitem()Apc_dropitem()Apc_equipitem() C³B
+ pc_calcstatus()Apc_bonus() C³B
+ skill.c
+ skill_attack()Askill_additional_effect()Askill_castend_damage_id() C³B
+ skill_castend_nodamage_id()Askill_produce_mix() C³B
+ skill_arrow_create()Askill_unit_timer_sub()Askill_castend_pos() C³B
+ map.h C³B
+ map.c
+ map_addflooritem() C³B
+ script.c
+ buildin_getitem() C³B
+ pet.c
+ pet_return_egg()Apet_get_egg()Apet_unequipitem() C³B
+ battle.h C³B
+ battle.c
+ battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
+ battle_calc_pc_weapon_attack() C³B
+ battle_weapon_attack()Abattle_config_read() C³B
+
+--------------------
+//0796 by huge
+
+Eׂ©‚¢C³
+ (conf/npc/)
+ npc_event_valentine.txt C³B
+
+ (map/)
+ pc.c
+ pc_takeitem() C³B
+ skill.c
+ skill_unit_timer_sub() C³B
+
+--------------------
+//0795 by Kalen
+
+EŽG’k341‚Ìnpc_warp_niflheim.txt’ljÁ
+ conf/warp/npc_warp_niflheim.txt
+
+Emapflag.txtC³(GVGMAPÝ’è)
+ @nosave‚Í‚µ‚Ä‚¢‚Ü‚¹‚ñ
+
+Emap_athena.conf‚ÌC³
+ @umbala niflheim“™‚̒ljÁ
+ @ƒRƒƒ“ƒgƒAƒEƒg‚µ‚Ä‚ ‚è‚Ü‚·B
+
+EƒoƒŒƒ“ƒ^ƒCƒ“ƒXƒNƒŠƒvƒg’ljÁ
+ conf/npc/npc_event_valentine.txt
+ @ƒ`ƒ‡ƒR’B‚ÌDrop‚͘M‚Á‚Ä‚¢‚Ü‚¹‚ñB‚¨D‚Ý‚Å‚Ç‚¤‚¼
+ @®AŽèì‚èƒ`ƒ‡ƒR‚ðH‚ׂ½‚Æ‚«‚̃GƒtƒFƒNƒg‚Í
+ @ÅVƒNƒ‰ƒCƒAƒ“ƒg‚É‚·‚ê‚ÎŒ©‚¦‚Ü‚·B
+
+EGVGScript’ljÁ
+ conf/gvg/ˆÈ‰º
+ @WeissŽž‘ã‚É쬂µ‚½‚à‚Ì‚ðAthena—p‚ɃRƒ“ƒo[ƒg&‘䎌C³
+ @prtg_cas01ˆÈŠO‚ÍŠø‚Ì‚Ý‚Å‚·B
+ @GVGDATA‚ÍŽIÄ‹N“®‚ÅÁ–Å‚µ‚Ü‚·B
+ @ƒGƒ‰[‚ªo‚é‚悤‚È‚çƒRƒƒ“ƒgƒAƒEƒg‚µ‚Ä‚­‚¾‚³‚¢B
+ @MobDataAŽ·Ž–Script‚àprtg_cas01‚Ì‚Ý‚Å‚·B(TestScript)
+ @‚ ‚­‚܂ŃeƒXƒgƒXƒNƒŠƒvƒg‚Å‚·BGVGŽÀ‘•‚ÌŽQl‚É‚Ç‚¤‚¼
+
+--------------------
+//0794 by DRG
+
+Eskillused‚ÅŽw’肵‚½IW,QM‚È‚Ç‚É‚Ì‚Á‚Ä‚éŠÔMOBƒXƒLƒ‹‚ðŽg—p‚·‚é‚悤‚É•ÏX
+EƒAƒbƒvƒXƒŒ‚R‚Ì7‚Ìathena-start‚ðˆê‰žŠÜ‚ß‚Æ‚«‚Ü‚µ‚½
+
+ athena-start
+ (map/)
+ skill.c
+ skill_unit_onplace() C³B
+
+--------------------
+//0793 by huge
+
+EƒT[ƒo[snapshot
+EƒT[ƒo[‚ªƒNƒ‰ƒbƒVƒ…‚·‚éƒoƒO‚ðC³
+E”­“®‚¹‚¸‚Éã©‚ªÁ‚¦‚½‚çAÝ’u—pƒgƒ‰ƒbƒv‚ª•Ô‚Á‚Ä‚­‚é‚悤‚ÉC³B
+Eƒ‹[ƒgŒ ŒÀ‚ÅA“¯‚¶ƒp[ƒeƒB[‚̃Lƒƒƒ‰‚Í‚·‚®E‚¦‚é‚悤‚ÉC³B
+EƒoƒO•ñƒXƒŒ‚R >>54 ‚̃oƒOC³B
+EƒƒOƒCƒ“Žž‚ɃT[ƒo[‘¤‚ÉID‚ð•\Ž¦‚·‚é‚悤‚É‚µ‚Ü‚µ‚½B
+ (login/)
+ login.c
+ parse_login() C³B
+ (conf/npc/)
+ npc_event_doll.txt C³B
+ (map/)
+ skill.c
+ skill_unit_timer_sub() C³B
+ mob.c
+ mob_spawn_dataset() C³B
+ mob_damage() C³B
+ pc.c
+ pc_additem() C³B
+
+--------------------
+//0791 by ¹
+
+Eƒ}ƒbƒvƒT[ƒo‚ªƒNƒ‰ƒbƒVƒ…‚·‚éƒoƒOC³B
+EƒCƒO—t‚ðŽg‚Á‚Ä‚àƒWƒFƒ€‚ª•K—v‚É‚È‚é–â‘è‚ðC³B
+EPvP‹­§‘—ŠÒŽÀ‘•B
+EPvP‚ŃŠƒUƒŒƒNƒVƒ‡ƒ“‚ªo—ˆ‚È‚©‚Á‚½–â‘è‚ðC³B
+E‚»‚Ì‘¼×‚©‚ÈC³B
+ (map/)
+ guild.c
+ mob.c
+ pc.c
+ skill.c
+
+--------------------
+//0790 by Ž€_
+
+EƒoƒOC³B
+ (conf/)
+ battle_athena.conf ŒëŽšC³B
+ (doc/)
+ conf_ref.txt ŒëŽšC³B
+ (common/)
+ mmo.h C³B
+ (map/)
+ itemdb.h C³B
+ map.h C³B
+ skill.c
+ skill_check_condition()Askill_use_pos()Askill_unit_onplace() C³B
+
+--------------------
+//0789 by huge
+
+EƒhƒƒbƒvƒAƒCƒeƒ€‚Ƀ‹[ƒgŒ ŒÀ‚ðŽÀ‘•B
+Eʼn‚ÉUŒ‚‚µ‚½lˆÈŠO‚ªƒhƒƒbƒvƒAƒCƒeƒ€‚ðE‚¦‚é‚Ü‚Å‚ÌŽžŠÔ‚ðÝ’è‚Å‚«‚é‚悤‚ÉB
+ (/conf)
+ battle_athena.conf €–ڒljÁB
+
+ (/doc)
+ conf_doc.txt à–¾’ljÁB
+
+ (/map)
+ battle.h
+ Battle_Config{} C³B
+ battle.c
+ battle_config_read() C³B
+ itemdb.h
+ item_data {} C³B
+ map.h
+ flooritem_data {} C³B
+ mob_data {} C³B
+ map.c
+ map_addflooritem() C³B
+ mob.c
+ delay_item_drop{} C³B
+ mob_spawn() C³B
+ mob_damage() C³B
+ mob_delay_item_drop() C³B
+ mob_warp() C³B
+ pc.c
+ pc_takeitem() C³B
+
+--------------------
+//0788 by ‚ ‚ä‚Ý
+
+EcardƒXƒLƒ‹‚̈—H‚ðC³B
+E@allskillƒRƒ}ƒ“ƒh‚ÌÄC³B
+
+ (map/)
+ pc.c
+ pc_skill() C³B
+ pc_allskillup() C³B
+
+--------------------
+//0787 by ‚Û‚Û‚Û
+
+Eƒyƒbƒg‚É‚àmob_avail.txt‚ÌÝ’è‚ð“K—p‚·‚é‚悤‚É‚µ‚½B
+EMOBƒXƒLƒ‹‚Ìskillused‚Åval1‚É0‚ð“ü‚ê‚é‚Æ‚ ‚ç‚ä‚éƒXƒLƒ‹‚ɑ΂µ‚Ä”­“®‚·‚é‚悤‚É‚µ‚½B
+Eskillused‚Å”­“®‚µ‚½ƒXƒLƒ‹‚Ì‘ÎÛ‚ðA”­“®‚³‚¹‚½PC‚É‚·‚é‚©‚Ç‚¤‚©Ý’è‚Å‚«‚é‚悤‚É‚µ‚½(‘ÎIWƒnƒ‚È‚ÇH)B
+ (/map)
+ clif.c
+ clif_pet0078()Aclif_pet007b()C³B
+ mob.c
+ mobskill_use()C³B
+ skill.c
+ skill_attack() Askill_castend_damage_id()C³B
+ battle.h
+ battle.c
+ battle_config_read()C³B
+
+--------------------
+//0786 by huge
+
+EBDSC³
+ ‘O‚©‚ç‚«”ò‚΂µ‚Äs‚­‚Æ—Ç‚­‚È‚¢‚©‚à‚µ‚ê‚È‚¢‚Ì‚ÅAŒã‚ë‚©‚爗
+ —LŒø”͈͂ÌC³
+
+ (/map)
+
+ skill.h
+ skill.c
+ skill_castend_damage_id() C³B
+ skill_castend_nodamage_id() C³B
+ skill_brandishspear_first() C³B
+ skill_brandishspear_dir() C³B
+
+--------------------
+//0785 by Ž€_
+
+E–{ŽI‚ɇ‚킹‚ÄC³B(ŠØ‘ˆÆ‚̃pƒbƒ`notice‚ðŽQl‚µ‚ÄC³‚µ‚Ü‚µ‚½B)
+EBB‚ÆBS‚̃LƒƒƒXƒeƒBƒ“ƒOŽžŠÔ‚ð0.7•b‚É‚µ‚ăfƒBƒŒƒC‚Í0‚É•ÏXB
+Eghost‚Ì•Ï‚í‚è‚Ƀ}ƒbƒvˆÚ“®Œã‚Ì–³“GŽžŠÔ‚ðÝ’èB‚±‚ÌŽžŠÔ‚ÌŠÔ‚Í‚Ç‚ñ‚ÈUŒ‚‚àŽó‚¯‚È‚¢‚ªˆÚ“®‚âUŒ‚AƒXƒLƒ‹Žg—pAƒAƒCƒeƒ€Žg—p‚Å‚±‚ÌŽžŠÔ‚Í‚È‚­‚È‚è‚Ü‚·BƒV[ƒYƒ‚[ƒh‚Å‚Í‚±‚Ì–³“GŽžŠÔ‚ð2”{‚Æ‚µ‚Ä“K—pB
+EƒV[ƒYƒ‚[ƒh‚ÅŽ€‚ñ‚Å‚àŒoŒ±‚ªŒ¸‚ç‚È‚¢‚悤‚ÉC³B(mapflag‚Ìnopenalty‚ðÝ’è‚·‚é•K—v‚Í‚ ‚è‚Ü‚¹‚ñB)
+EƒXƒLƒbƒh‚ÅŠŠ‚ׂ鋗—£‘‰ÁB
+EŠù‚É’¾–Ù‚É‚©‚©‚Á‚Ä‚é‘ÎۂɃŒƒbƒNƒXƒfƒBƒr[ƒi‚ðŽg‚¤‚Æ’¾–Ù‚ª‰ðœ‚³‚ê‚é‚悤‚É•ÏXB
+EŽô‚¢‚É‚©‚©‚é‚ƈړ®‘¬“x‚àŒ¸‚é‚悤‚ÉC³B
+Ebattle_athena.conf‚É€–Ú•ÏXB
+EƒXƒLƒ‹‚Ìd‚Ë’u‚«‚ð”»’fˆ—‚ð­‚µ•ÏXB
+EHP‚ÌŽ©‘R‰ñ•œŽžŠÔ‚ª4•b‚Å‚Í‚È‚­6•b‚¾‚Æ‚í‚©‚Á‚½‚̂ŃfƒtƒHƒ‹ƒgC³‚Æbattle_athena.confC³B
+E‚»‚Ì‘¼×‚©‚¢C³‚âƒoƒOC³B
+E–w‚ǃeƒXƒg‚µ‚Ä‚Ü‚¹‚ñB
+ (conf/)
+ atcommand_athena.conf C³B
+ battle_athena.conf C³B
+ (doc/)
+ conf_ref.txt C³B
+ (db/)
+ cast_db.txt C³B
+ (map/)
+ atcommand.c C³B
+ clif.c
+ clif_mob0078()Aclif_mob007b()Aclif_skill_estimation() C³B
+ clif_mob_class_change()Aclif_parse_WalkToXY() C³B
+ clif_parse_ActionRequest()Aclif_parse_LoadEndAck() C³B
+ clif_parse_UseItem()Aclif_parse_UseSkillToId() C³B
+ clif_parse_UseSkillToPos()Aclif_parse_UseSkillMap() C³B
+ mob.h C³B
+ mob.c
+ mob_get_viewclass()Amob_attack()Amob_target() C³B
+ mob_ai_sub_hard_activesearch()Amob_ai_sub_hard() C³B
+ mobskill_castend_id()Amobskill_castend_pos() C³B
+ skill.h C³B
+ skill.c
+ skill_can_produce_mix()Askill_castend_damage_id() C³B
+ skill_castend_nodamage_id()Askill_castend_id() C³B
+ skill_castend_pos()Askill_use_id()Askill_readdb() C³B
+ skill_check_condition()Askill_unit_onplace()Askill_unitsetting() C³B
+ skill_additional_effect()Askill_check_unit_range() C³B
+ skill_check_unit_range_sub()Askill_status_change_end() C³B
+ skill_status_change_start() C³B
+ pc.h
+ pc.c
+ pc_ghost_timer()Apc_setghosttimer()Apc_delghosttimer() íœB
+ pc_gvg_invincible_timer() -> pc_invincible_timer()‚É•ÏXB
+ pc_setgvginvincibletimer() -> pc_setinvincibletimer()‚É•ÏXB
+ pc_delgvginvincibletimer() -> pc_delinvincibletimer()‚É•ÏXB
+ pc_authok()Apc_attack_timer()Apc_calcstatus() C³B
+ pc_setrestartvalue()Apc_damage()Apc_allskillup() C³B
+ do_init_pc() C³B
+ battle.h C³B
+ battle.c
+ battle_config_read()Abattle_weapon_attack()Abattle_check_target() C³B
+ battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
+ battle_calc_pc_weapon_attack()Abattle_get_speed() C³B
+ map.h C³B
+ map.c
+ map_quit() C³B
+
+--------------------
+//0784 by ‚ ‚ä‚Ý
+
+EƒJ[ƒhƒXƒLƒ‹‚ðŠo‚¦‚Ä‚¢‚éó‘Ô‚Å@allskillƒRƒ}ƒ“ƒh‚ðŽg—p‚·‚é‚Æmap-server‚ª–\‘–‚·‚é–â‘è‚ðC³B
+
+ (map/)
+ pc.c
+ pc_allskillup() C³B
+
+--------------------
+//0783 by huge
+
+Eƒuƒ‰ƒ“ƒfƒBƒbƒVƒ…ƒXƒsƒA‚ÌC³
+ ”͈͎w’èAŽÎ‚ß‚ÌÛ‚ÌŠiŽq”͈ÍAUŒ‚—ÍŒvŽZ
+ ‘½•ª‡‚Á‚Ä‚é‚ÆŽv‚¤‚ñ‚Å‚·‚¯‚ÇAƒCƒ}ƒCƒ`Ž©M‚ªŽ‚Ä‚È‚¢EEE
+ (ŽQl)‚Ý‚·‚Ƃꑃ -ƒXƒLƒ‹ŠÖ˜A“¤î•ñ
+EƒXƒyƒ‹ƒuƒŒƒCƒJ[‚ð‚¿‚å‚Á‚ÆC³
+Eƒvƒƒ{ƒbƒN‚ðMVPmob‚ÉŒø‚©‚È‚¢‚悤C³
+EƒoƒO•ñƒXƒŒ‚R >>8 ‚Å•ñ‚³‚ꂽ‚à‚Ì‚ÌŽæ‚èž‚Ý
+
+ (/db)
+ create_arrow.txt C³B
+ skill_db.txt C³B
+
+ (/map)
+ battle.c
+ battle_calc_pet_weapon_attack() C³B
+ battle_calc_mob_weapon_attack() C³B
+ battle_calc_pc_weapon_attack() C³B
+
+ skill.h
+ skill.c
+ skill_brandishspear_first() ’ljÁB
+ skill_brandishspear_dir() ’ljÁB
+ skill_castend_nodamage_id() C³B
+ skill_castend_damage_id() C³B
+ skill_unit_group() C³B
+
+--------------------
+//0782 by ‚Ò‚´‚Ü‚ñ
+E@allskillƒRƒ}ƒ“ƒh‚ÌŽg—pðŒ‚ªŽQÆ‚³‚ê‚Ä‚¢‚È‚©‚Á‚½ƒoƒOC³
+ (/map)
+ atcommand.c
+ atcommand() C³B
+
+--------------------
+//0781 by Chunglyeng
+Eƒoƒh, ƒ_ƒ“ƒT[‰¹Šy‹ïŒ»
+ (/map)
+ skill.c C³B
+
+--------------------
+//0780 by reia
+EƒyƒRƒyƒR‚Ì—‘‚È‚Ç‚ª›z‰»‚·‚é‚ƃmƒr‚É‚È‚Á‚Ä‚µ‚Ü‚¤–â‘èC³B
+EGMƒRƒ}ƒ“ƒhu@kickallv‚ª‰½Žž‚ÌŠÔ‚É‚©–³Œø‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ÅC³B
+
+ (/conf)
+ atcommand_athena.conf C³B
+ (db/)
+ mob_skill_db.txt C³B
+ (map/)
+ atcommand.c
+ atcommand_config_read() C³B
+
+--------------------
+//0779 by ‚ ‚ä‚Ý
+
+E‘SƒXƒLƒ‹Žæ“¾ƒRƒ}ƒ“ƒh‚̒ljÁB
+ EGM‚Å‘SƒXƒLƒ‹‚ðŠo‚¦‚ç‚ê‚é‚悤‚É‚µ‚Ä‚¢‚éꇂâAƒXƒLƒ‹‚Ì”‚ª‘½‚¢E‹Æ‚͈ꕔ‚̃XƒLƒ‹•\Ž¦‚ª‚¨‚©‚µ‚­‚È‚è‚Ü‚·B‚»‚Ìꇂ̓ŠƒƒO‚µ‚ĉº‚³‚¢B
+ @allskill : Œ»Ý‚ÌE‹Æ‚Ŏ擾‰Â”\‚È‘SƒXƒLƒ‹‚ðŽæ“¾‚·‚éB(ƒNƒGƒXƒgƒXƒLƒ‹ŠÜ‚Þ)
+
+ (conf/)
+ battle_athena.conf C³B
+ help.txt C³B
+ (map/)
+ atcommand.h C³B
+ atcommand.c
+ atcommand() C³B
+ pc.h C³B
+ pc.c
+ pc_allskillup() ’ljÁB
+ (doc/)
+ conf_ref.txt C³B
+ help.txt C³B
+
+--------------------
+//0778 by huge
+
+EƒXƒyƒ‹ƒuƒŒƒCƒJ[‚ÌC³
+ EƒLƒƒƒXƒeƒBƒ“ƒOƒ^ƒCƒ€‚Ì–³‚¢ƒXƒLƒ‹‚É‚ÍŒø‚©‚È‚¢‚悤‚ÉC³B
+ EŽg—p‚³‚ꂽ‘ŠŽè‚ÌÁ”ïSP‚ÌC³B
+
+ (map/)
+ skill.c
+ skill_castend_nodamage_id() C³B
+
+--------------------
+//0777 by ‚Ò‚´‚Ü‚ñ
+
+EƒMƒ‹ƒhUé퉼ŽÀ‘•
+@EŠî–{“I‚È•”•ª‚¾‚¯‚µ‚©ŽÀ‘•‚µ‚Ä‚È‚¢ãA‚¢‚­‚‚©‚Ì“_‚Å–{ŽI‚Æ‘Šˆá‚ª‚ ‚è‚Ü‚·B
+@EUéíŠJŽn‚ÆI—¹‚Í@ƒRƒ}ƒ“ƒh‚Ås‚¢‚Ü‚·
+ @gvgstart : UéíŠJŽn
+ @gvgend : UéíI—¹
+@Ebattle_athena.conf‚É€–ڒljÁB
+ (char/)
+ int_guild.c
+ inter_guild_init()Ainter_guild_readdb()Ainter_guild_save() C³B
+ inter_castle_save_sub()Amapif_guild_castle_info() ’ljÁB
+ mapif_guild_change_castle()Amapif_parse_GuildCastleInfo() ’ljÁB
+ mapif_parse_GuildChangeCastle() ’ljÁB
+ inter.c
+ inter_config_read() C³B
+ inter_send_packet_length[]Ainter_recv_packet_length[] C³B
+ int_guild.h C³B
+ (map/)
+ atcommand.c
+ atcommand()Aatcommand_config_read() C³B
+ battle.c
+ battle_config_read() C³B
+ guild.c
+ guild_castle_search()Aguild_read_castledb()’ljÁB
+ do_init_guild() C³B
+ guild_gvg_init()Aguild_gvg_final()Aguild_gvg_final_sub() ’ljÁB
+ guild_gvg_eliminate()Aguild_gvg_eliminate_sub() ’ljÁB
+ guild_gvg_eliminate_timer()Aguild_gvg_empelium_pos() ’ljÁB
+ guild_gvg_break_empelium() ’ljÁB
+ intif.c
+ intif_parse()Apacket_len_table[] C³B
+ intif_parse_GuildCastleInfo()Aintif_parse_GuildCastleChange() ’ljÁB
+ intif_guild_castle_info()Aintif_guild_castle_change() ’ljÁB
+ mob.c
+ mob_damage() C³B
+ atcommand.h C³B
+ battle.h C³B
+ guild.h C³B
+ intif.h C³B
+ mob.h C³B
+ (common/)
+ mmo.h C³B
+ (conf/)
+ battle_athena.conf C³B
+ inter_athena.conf C³B
+ msg_athena.conf C³B
+ atcommand_athena.conf C³B
+ (db/)
+ castle_db.txt ’ljÁB
+--------------------
+//0776 by Ž€_
+
+ENPCƒXƒLƒ‹›z‰»ŽÀ‘•B(mob_skill_db.txt‚Ìval1‚ðŽg‚¢‚Ü‚·B)
+Emob_skill_db.txt‚ÌŠm—¦‚ð番—¦‚©‚ç–œ•ª—¦‚É•ÏXB(‚½‚¾mob_skill_db.txt‚ÌC³‚Í‚µ‚Ä‚Ü‚¹‚ñB)
+Eƒ‚ƒ“ƒXƒ^[‚ªƒ_ƒuƒ‹ƒAƒ^ƒbƒN‚·‚é–â‘èC³B(C³‚³‚ꂽ‚©‚Ç‚¤‚©‚ÌŽ©M‚Í‚ ‚è‚Ü‚¹‚ñ‚ª...)
+E‚»‚Ì‘¼×‚©‚¢C³B
+ (db/)
+ mob_skill_db.txt C³B
+ skill_db.txt C³B
+ (map/)
+ map.h C³B
+ mob.h C³B
+ mob.c
+ mob_spawn_dataset()Amob_spawn() C³B
+ mob_changestate()Amobskill_use() C³B
+ mob_class_change() ’ljÁB
+ npc.c
+ npc_parse_mob() C³B
+ battle.c
+ battle_check_target() C³B
+ clif.h C³B
+ clif.c
+ clif_mob_class_change() ’ljÁB
+ skill.c
+ skill_castend_nodamage_id() C³B
+
+--------------------
+//0775 by Ž€_
+
+EƒV[ƒYƒ‚[ƒh‚̈—C³B
+EƒV[ƒYƒ‚[ƒh‚Ì–³“GŽžŠÔ‚ÌŠÔ‚Í‚Ç‚ñ‚ÈUŒ‚‚àŽó‚¯‚È‚¢‚悤‚ÉC³B
+EƒV[ƒYƒ‚[ƒh‚Ì–³“GŽžŠÔ‚ªŽžŠÔØ‚ê‚É‚È‚é‘O‚ɂ͉𜂳‚ê‚È‚¢‚悤‚ÉC³B
+Ebattle_athena.conf‚É€–ڒljÁB
+E@hide‚â/hide‚É‚æ‚éGMƒnƒCƒfƒBƒ“ƒO’†‚ÍŽ©•ª‚ÉŽ©“®Žg—p‚³‚ê‚éƒXƒLƒ‹ˆÈŠO‚̃XƒLƒ‹Žg—p‚âUŒ‚‚ðŽó‚¯‚È‚¢‚悤‚ÉC³B
+EƒnƒCƒfƒBƒ“ƒO’†’n‘®«ƒXƒLƒ‹ˆÈŠO‚ÌUŒ‚‚ðŽó‚¯‚È‚¢‚悤‚ÉC³B(ƒgƒ‰ƒbƒv‚âƒNƒ@ƒOƒ}ƒCƒA“™‚̃XƒLƒ‹‚͉e‹¿‚ðŽó‚¯‚é‚©‚Ç‚¤‚©•s–¾‚È‚Ì‚Å¡‚Ü‚Å‚Æ“¯‚¶‚悤‚ɉe‹¿‚ðŽó‚¯‚é‚悤‚Ɉ—B)
+Eƒgƒ“ƒlƒ‹ƒhƒ‰ƒCƒu‚̈ړ®‘¬“x‚ð–{ŽI‚ɇ‚킹‚Ü‚µ‚½B
+E‚»‚Ì‘¼ƒoƒOC³‚âׂ©‚¢C³B(–w‚Ç–¢ƒeƒXƒg)
+ (conf/)
+ battle_athena.conf C³B
+ (doc/)
+ conf_ref.txt C³B
+ (map/)
+ battle.h C³B
+ battle.c
+ battle_check_target()Abattle_calc_damage() C³B
+ battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
+ battle_calc_pc_weapon_attack()Abattle_calc_magic_attack() C³B
+ battle_calc_misc_attack() C³B
+ battle_config_read()Abattle_weapon_attack() C³B
+ pc.h C³B
+ pc.c
+ do_init_pc()Apc_authok() C³B
+ pc_attack()Apc_attack_timer() C³B
+ pc_setgvg_ghosttimer()Apc_delgvg_ghosttimer()‚ð
+ pc_setgvginvincibletimer()Apc_delgvginvincibletimer()‚ÉC³B
+ pc_gvg_invincible_timer() ’ljÁB
+ pc_attack_timer()Apc_steal_item()Apc_calcstatus() C³B
+ clif.c
+ clif_parse_ActionRequest()Aclif_parse_UseItem() C³B
+ clif_parse_UseSkillToId()Aclif_parse_UseSkillToPos() C³B
+ clif_parse_UseSkillMap()Aclif_parse_WalkToXY() C³B
+ map.h C³B
+ map.c
+ map_quit() C³B
+ mob.c
+ mob_attack()Amob_target()Amob_ai_sub_hard_activesearch() C³B
+ mob_ai_sub_hard_mastersearch()Amob_ai_sub_hard() C³B
+ mob_damage()Amobskill_castend_id()Amobskill_castend_pos() C³B
+ skill.c
+ skill_castend_damage_id()Askill_attack() C³B
+ skill_castend_id()Askill_castend_pos()Askill_castend_map() C³B
+
+--------------------
+//0774 by Ž‚Žqo^.^o
+EMonk job bouns C³
+EƒhƒPƒr C³
+(db/)
+ job_db2.txt C³
+ pet_db.txt C³
+
+--------------------
+//0773 by ¹
+
+Eׂ©‚¢ƒoƒOC³
+ (map/)
+ skill.c C³B
+ battle.c C³B
+
+--------------------
+//0772 by ‚Ò‚´‚Ü‚ñ
+
+EƒV[ƒYƒ‚[ƒh‰º‚ňȉº‚Ì“_‚ðC³
+@E˜A‘±‚µ‚ÄUŒ‚‚Å‚«‚È‚­‚È‚Á‚Ä‚¢‚½ƒoƒOC³
+@Eƒ_ƒ[ƒWŒyŒ¸—¦‚ª³‚µ‚­Ý’è‚Å‚«‚È‚©‚Á‚½ƒoƒOC³
+@E–³“GŽžŠÔŽÀ‘•Bbattle_athena.conf‚Ìgvg_ghost_time‚ÅÝ’è‚Å‚«‚Ü‚·
+
+EƒnƒCƒfƒBƒ“ƒO‚Å–‚–@UŒ‚“™‚ð‰ñ”ð‚Å‚«‚È‚©‚Á‚½ƒoƒOC³
+
+ (map/)
+ skill.c
+ skill_attack()Askill_unit_onplace()Askill_check_condition() C³B
+ clif.c
+ clif_parse_ActionRequest()Aclif_parse_UseItem() C³B
+ clif_parse_UseSkillToId()Aclif_parse_UseSkillToPos() C³B
+ clif_parse_UseSkillMap()Aclif_parse_WalkToXY() C³B
+ pc.c
+ do_init_pc()Apc_authok() C³B
+ pc_attack()Apc_attack_timer() C³B
+ pc_setgvg_ghosttimer()Apc_delgvg_ghosttimer() ’ljÁB
+ pc_gvg_ghost_timer() ’ljÁB
+ map.c
+ map_quit() C³
+ battle.c
+ battle_config_read()Abattle_weapon_attack() C³B
+ battle.h C³B
+ pc.h C³B
+
+--------------------
+//0771 by huge
+
+EƒXƒyƒ‹ƒuƒŒƒCƒJ[ŽÀ‘•
+ (map/)
+ skill.c
+ skill_castend_nodamage_id() C³B
+ (db/)
+ skill_db.txt C³B
+
+--------------------
+//0770 by ¹
+
+E” Œn‚̈—•ÏX
+E‚»‚Ì‘¼ƒoƒOC³
+ (map/)
+ battle.c C³B
+ itemdb.c C³B
+ mob.c C³B
+ script.c C³B
+
+--------------------
+//0769 by Ž€_
+
+EƒV[ƒYƒ‚[ƒhC³B
+E–³“GŽžŠÔ‚Ì•û‚Íghost_timerˆÈŠO‚Ì•û–@‚ÅŽÀ‘•‚·‚é‚‚à‚è‚È‚Ì‚Å¡‚Í휂µ‚Ä‚¢‚Ü‚·B
+EƒXƒNƒŠƒvƒgviewpoint‚ª³‚µ‚­“®ì‚µ‚È‚¢–â‘èC³B
+Eproduce_db.txt‚ðC³B(“û”«‚Ískill_require_db.txt‚ň—‚µ‚Ä‚¢‚Ü‚·B‚»‚µ‚ăAƒCƒeƒ€‚Ì”‚ð0‚É‚·‚ê‚ÎÁ–Õ‚Í‚³‚ê‚È‚¢‚¯‚Çì‚鎞•K—v‚ȃAƒCƒeƒ€‚É‚È‚è‚Ü‚·B)
+E‚»‚Ì‘¼×‚©‚¢C³B
+ (conf/)
+ battle_athena.conf C³B
+ (doc/)
+ conf_ref.txt C³B
+ (db/)
+ produce_db.txt C³B
+ (map/)
+ battle.h C³B
+ battle.c
+ battle_calc_damage()Abattle_calc_weapon_attack() C³B
+ battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
+ battle_calc_pc_weapon_attack()Abattle_calc_magic_attack() C³B
+ battle_calc_misc_attack()Abattle_check_target()Abattle_config_read() C³B
+ skill.c
+ skill_unit_onplace()Askill_castend_damage_id()Askill_castend_id() C³B
+ skill_use_id()Askill_use_pos()Askill_check_condition() C³B
+ skill_can_produce_mix() C³B
+ pc.c
+ pc_attack_timer()Apc_attack()Apc_isUseitem()Apc_delitem() C³B
+ pc_damage() C³B
+ mob.c
+ mob_damage()Amobskill_use_id()Amobskill_use_pos() C³B
+ script.c
+ buildin_viewpoint()Abuildin_emotion() C³B
+ makefile C³B
+
+--------------------
+//0768 by ‚Ò‚´‚Ü‚ñ
+
+EƒV[ƒYƒ‚[ƒh‰º‚ÅAˆÈ‰º‚Ì“_‚ðC³
+@EŽ€–S‚µ‚½‚çƒZ[ƒuƒ|ƒCƒ“ƒg‚É‹­§‘—ŠÒ‚·‚é‚悤‚ÉC³
+@E“Á’è‚̃AƒCƒeƒ€‚ªŽg—p‚Å‚«‚È‚¢‚悤‚ÉC³(ƒAƒ“ƒeƒBƒyƒCƒ“ƒƒ“ƒgEƒnƒG‚̉H)
+@E“Á’è‚̃XƒLƒ‹‚ªŽg—p‚Å‚«‚È‚¢‚悤‚ÉC³(ƒ[ƒvƒ|[ƒ^ƒ‹EƒoƒbƒNƒXƒeƒbƒvEƒCƒ“ƒeƒBƒ~ƒfƒCƒgEƒeƒŒƒ|[ƒgEƒCƒ“ƒfƒ…ƒA)
+@E“¯–¿ƒMƒ‹ƒh‚É‚Í–³ðŒ‚ÅUŒ‚‚Å‚«‚È‚¢‚悤‚ÉC³
+@E“G‘΃Mƒ‹ƒh‚É‚Í–³ðŒ‚ÅUŒ‚‚Å‚«‚é‚悤‚ÉC³
+@E–³“GŽžŠÔ’†‚Í—¼ŽÒ‚Æ‚àUŒ‚‚Å‚«‚È‚¢‚悤‚ÉC³
+
+ƒ\[ƒXƒŒƒxƒ‹‚ŃeƒŒƒ|AƒnƒG‚ÌŽg—p‚ð‹Ö‚¶‚Ä‚¢‚邽‚ßUéíMAP‚Ìmapflag‚Énoteleport‚Í•K—v‚ ‚è‚Ü‚¹‚ñ
+‚Ü‚½A–³“GŽžŠÔ‚Íghost_timerˆË‘¶‚Å‚·B‚‚܂èbattle_athena.conf“à‚Ìghost_time‚ª–³“GŽžŠÔ‚É‚È‚è‚Ü‚·
+
+ (map/)
+ skill.c
+ skill_castend_damage_id()Askill_castend_id() C³
+ skill_check_condition() C³
+ pc.c
+ pc_damage() C³
+ battle.c
+ battle_weapon_attack() C³
+
+--------------------
+//0767 by huge
+
+Eƒtƒ@[ƒ}ƒV[‚ÅA»‘¢‚Ì‘‚ªŒ¸‚é–â‘è‚ðC³
+E•Ší»‘¢DB‚ÅA‚¢‚­‚‚©”²‚¯‚Ä‚¢‚½‚Ì‚ðC³
+
+ (map/)
+ skill.c C³B
+ (db/)
+ produce_db.txt C³B
+
+--------------------
+//0766 by ‚Ò‚´‚Ü‚ñ
+
+EƒV[ƒYƒ‚[ƒh‰º‚ÅAˆÈ‰º‚Ì“_‚ðC³
+@E³‹KƒMƒ‹ƒh³”F‚ª‚È‚¢‚ƃGƒ“ƒyƒŠƒEƒ€‚ÉUŒ‚‚ªŒø‚©‚È‚¢‚悤‚ÉC³
+@EƒGƒ“ƒyƒŠƒEƒ€‚ɑ΂·‚éƒXƒLƒ‹UŒ‚‚ªŒø‚©‚È‚¢‚悤‚ÉC³
+@E–‚–@UŒ‚A‰“‹——£UŒ‚A㩂̃_ƒ[ƒW•â³‚ðŽÀ‘•
+@@–‚–@UŒ‚F50%@‰“‹——£UŒ‚F75%@ã©F60%
+@@‚±‚ê‚Íl‚É‚àƒGƒ“ƒyƒŠƒEƒ€‚É‚à“K—p‚³‚ê‚Ü‚·
+ (map/)
+ battle.c
+ #include "guild.h" ’ljÁ
+ battle_calc_damage()Abattle_calc_weapon_attack() C³
+
+--------------------
+//0765 by ‚Ò‚´‚Ü‚ñ
+
+E‘•”õ§ŒÀŽÀ‘•
+E‘•”õ§ŒÀ‚ª‚©‚©‚Á‚½‘•”õ•i‚ÍŠY“–ƒ}ƒbƒv‚Ɉړ®‚µ‚½Û‚ÉŽ©“®“I‚É‘•”õ‚ªŠO‚êA
+@Ä‘•”õ‚à‚Å‚«‚È‚­‚È‚è‚Ü‚·
+E§ŒÀ‚Å‚«‚é‚Ì‚Í‘•”õ•i‚Ì‚Ý‚Å‚·BƒJ[ƒh—ނͧŒÀ‚Å‚«‚Ü‚¹‚ñ
+ (db/)
+ item_noequip.txt ’ljÁ
+ (map/)
+ itemdb.h C³
+ itemdb.c
+ do_init_itemdb()Aitemdb_search() C³
+ itemdb_read_noequip ’ljÁ
+ pc.c
+ pc_checkitem()Apc_isequip() C³
+
+--------------------
+//0764 by Ž€_
+
+E‘S‚Ẵ_ƒ[ƒW‚ª1‚É‚È‚é–hŒä‚ð10000‚©‚ç1000000‚É•ÏXB
+Ebattle_athena.conf‚É€–ڒljÁB
+Eƒ‚ƒ“ƒXƒ^[‚©‚çŒoŒ±’l‚ð–Ⴄˆ—‚ð–{ŽI‚̂悤‚ÉC³B
+EƒXƒLƒ‹ƒXƒ[ƒ|ƒCƒYƒ“ŽÀ‘•B
+EŒðŠ·ƒoƒOC³B
+E‚»‚Ì‘¼×‚©‚¢C³B
+EƒeƒXƒg‚Í–w‚Ç‚µ‚Ä‚Ü‚¹‚ñB
+ (db/)
+ mob_db.txt C³B
+ skill_db.txt C³B
+ (doc/)
+ conf_ref.txt C³B
+ db_ref.txt C³B
+ (conf/)
+ battle_athena.conf C³B
+ (map/)
+ makefile C³B
+ battle.h C³B
+ battle.c
+ battle_get_def()Abattle_get_mdef() C³B
+ battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
+ battle_calc_pc_weapon_attack()Abattle_calc_magic_attack() C³B
+ battle_calc_misc_attack()Abattle_config_read() C³B
+ skill.h C³B
+ skill.c
+ skill_castend_nodamage_id()Askill_castend_damage_id() C³B
+ skill_check_condition()Askill_status_change_timer() C³B
+ skill_status_change_end()Askill_status_change_start() C³B
+ skill_additional_effect()Askill_produce_mix()Askill_unit_timer_sub() C³B
+ skill_check_unit_sub()‚ð skill_check_unit_range_sub()‚É•ÏXB
+ skill_check_unit_range() ’ljÁB
+ skill_castend_pos()Askill_area_sub_count() C³B
+ mob.c
+ mobskill_castend_pos()Amob_damage() C³B
+ clif.c
+ clif_parse_TradeRequest()Aclif_parse_TradeAck() C³B
+ clif_parse_TradeAddItem()Aclif_parse_TradeOk() C³B
+ clif_parse_TradeCansel()Aclif_parse_TradeCommit() C³B
+ map.h C³B
+ map.c
+ do_init() C³B
+ pc.c
+ pc_calc_skilltree()Apc_calcstatus() C³B
+ tarde.c
+ trade_tradeack() C³B
+
+--------------------
+//0763 by ŒÓ’±—–
+
+EƒT[ƒo[snapshot
+ ƒtƒHƒ‹ƒ_‚ð®—‚µ‚½‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
+ ˆÈ‘O‚̃Z[ƒuƒf[ƒ^(account.txt‚È‚Ç)‚ÍsaveƒtƒHƒ‹ƒ_‚É’u‚¢‚Ä‚­‚¾‚³‚¢
+ cnfƒtƒ@ƒCƒ‹‚ÍŠeŽíƒtƒ@ƒCƒ‹‚̃pƒX‚ª•Ï‚í‚Á‚Ä‚é‚Ì‚ÅA
+ ‚±‚̌¢‚à‚Ì‚ðƒRƒs[‚Å‚Í‚È‚­AV‚µ‚­‘‚«Š·‚¦‚È‚¨‚µ‚Ä‚­‚¾‚³‚¢B
+
+EƒtƒHƒ‹ƒ_®—
+ confƒtƒHƒ‹ƒ_
+ NPCŠÖ˜A‚ðconf/npc/AMOB”z’uŠÖ˜A‚ðconf/mob/AWARPŠÖ˜A‚ðconf/warp/
+ ƒeƒXƒg‚âƒTƒ“ƒvƒ‹‚ðconf/sample/‚Ɉړ®‚µ‚Ü‚µ‚½B
+ dbƒtƒHƒ‹ƒ_
+ sampleƒtƒHƒ‹ƒ_‚Ì‚¤‚¿dbŠÖŒW‚ð db/sample‚Ɉړ®‚µ‚Ü‚µ‚½B
+ help.txt/motd.txt
+ confƒtƒHƒ‹ƒ_‚Ɉړ®‚µ‚Ü‚µ‚½
+ account.txt/athena.txt/guild.txt/party.txt/pet.txt/storage.txt
+ saveƒtƒHƒ‹ƒ_‚Ɉړ®‚µ‚Ü‚µ‚½
+ tool/backup
+ ƒpƒXC³
+
+Emotd.txt/help.txt‚̃pƒX‚ðmap_athena.cnf‚ÅŽw’è‚Å‚«‚é‚悤‚É
+ map.h/map.c/atcommand.c/atcommand.hC³
+
+Eathena-start‚ÉrestartƒIƒvƒVƒ‡ƒ“’ljÁ
+ ./athena-start restart‚ÅAthena‚ðÄ‹N“®‚µ‚Ü‚·
+
+--------------
+//0761 by ‚Û‚Û‚Û
+
+EMOB‚ÌMDEF‚É10000ˆÈãŽw’肵‚Ä‚àƒtƒ@ƒCƒAƒsƒ‰[‚Å•’ʂɃ_ƒ[ƒW‚ð—^‚¦‚Ä‚µ‚Ü‚¤‚Ì‚ðC³B
+ (map/)
+ battle.c
+
+--------------
+//0760 by ll3y
+
+E•¶Žš‰»‚¯C³
+ (map/)
+ script.c
+
+--------------
+//0759 by Ž‚Žqo^.^o
+EƒXƒsƒAƒNƒCƒbƒPƒ“ C³
+EDancer skill tree C³
+(db/)
+ cast_db.txt C³
+ skill_tree.txt C³
+
+--------------
+//0758 by hack
+EPut GM messages into msg_table which is loaded from msg_athena.conf.
+(Easy to translate into other language)
+ (map/)
+ atcommand.h
+ atcommand.c
+ msg_conf_read() Read conf/msg_athena.conf
+ Put messages into msg_table which is loaded from msg_athena.conf.
+ map.c
+ do_init()
+ (conf/)
+ msg_athena.conf Store the message of atcommand, easy to translate into other language.
+
+--------------
+//0757 by Michael
+ (map/)
+ script.c
+ buildin_viewpoint()
+ Fix packet sequence of viewpoint command.
+
+--------------
+//0756 by ll3y
+
+EInterix(Windows Services for Unix 3.5)‚ŃRƒ“ƒpƒCƒ‹‚ª’Ê‚é‚悤‚ÉC³
+ Interop Systems(http://www.interopsystems.com/)‚æ‚ègmake‚Æzlib‚ðŽæ‚Á‚Ä‚­‚é‚©A
+ Ž©‘O‚ÅInterix—p‚ð—pˆÓ‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B
+ (common/)
+ socket.h C³B
+
+--------------
+//0755 by Ž€_
+
+EƒoƒOC³‚Æà–¾’ljÁB(•ñ‚³‚ꂽ‚Ì‚Í‘½•ª‘S‚ÄC³‚³‚ꂽ‚Ì‚©‚Æ...)
+E0751‚ŃXƒLƒ‹‚Ìő僌ƒxƒ‹‚ð100‚Ü‚ÅÝ’è‚Å‚«‚é‚悤‚É‚µ‚Ü‚µ‚½B
+Ecast_db.txt‚É“ü‚Á‚Ä‚¢‚éó‘ÔˆÙí‚̈ێŽžŠÔ‚ÍŽ©•ª‚ª“K“x‚É“ü‚ꂽ•¨‚Å‚·B–{ŽI‚ÌŽd—l‚È‚ñ‚Ä’m‚è‚Ü‚¹‚ñ‚Ì‚ÅB
+ (doc/)
+ db_ref.txt C³B
+ (db/)
+ cast_db.txt C³B
+ skill_db.txt C³B
+ (map/)
+ skill.h C³B
+ skill.c
+ skill_check_unit_sub()Askill_castend_id()Askill_use_id() C³B
+ skill_status_change_end()Askill_status_change_start() C³B
+ skill_castend_map() C³B
+ mob.c
+ mobskill_castend_id()Amobskill_castend_pos() C³B
+ pc.c
+ pc_calcstatus() C³B
+ battle.c
+ battle_calc_pc_weapon_attack()
+ battle_calc_mob_weapon_attack()
+ battle_calc_magic_attack()
+
+--------------
+//0754 by Ž‚Žqo^.^o
+(db/)
+ cast_db.txt C³
+
+--------------
+//0753 by ¹
+
+EIW‚Ì”­¶ƒ|ƒCƒ“ƒg‚ðŽw’è‚·‚é‚ƃƒeƒI‚̃GƒtƒFƒNƒg‚ªˆêØo‚È‚­‚È‚é
+@–â‘肪•œŠˆ‚µ‚Ä‚¢‚½‚Ì‚ÅC³B
+Ewarning‚ðo‚È‚¢‚悤‚ɃR[ƒhC³B
+ (map/)
+ skill.c
+ skill_castend_pos2() C³B
+ chrif.h
+
+--------------
+//0752 by ‚Ò‚´‚Ü‚ñ
+
+EchangesexƒXƒNƒŠƒvƒgŽÀ‘•B«•Ê‚𔽓]‚³‚¹‚邱‚Æ‚ª‚Å‚«‚Ü‚·
+@«•Ê”½“]¬Œ÷Œã‚ÍA‚»‚̃vƒŒƒCƒ„[‚Í‹­§“I‚ÉÚ‘±‚ðØ’f‚³‚ê‚Ü‚·
+@‚Ü‚½Aƒ_ƒ“ƒT[Eƒo[ƒh‚̌݊·«‚Í‚©‚È‚è‰ö‚µ‚¢‚Å‚·
+@ƒ_ƒ“ƒT[Eƒo[ƒh‚ªƒXƒƒbƒg“à‚Ç‚±‚©‚É‹‚éƒAƒJƒEƒ“ƒg‚Å‚Ì”½“]‚ÍAˆÈ‰º‚Ì“_‚É’ˆÓ‚µ‚ĉº‚³‚¢
+@E•K‚¸”½“]‚³‚¹‚é‘O‚É‚»‚̃Lƒƒƒ‰ƒNƒ^[‚ðƒXƒLƒ‹ƒŠƒZƒbƒg‚µ‚Ä‚­‚¾‚³‚¢
+@@‚»‚Ì‚Ü‚Ü”½“]‚³‚¹‚é‚ÆA‹¤’Ê‚·‚éƒXƒLƒ‹(ŠyŠí‚Ì—ûK“™)‚µ‚©Žc‚ç‚È‚­‚È‚Á‚Ä‚µ‚Ü‚¢‚Ü‚·
+@Eƒ_ƒ“ƒT[Eƒo[ƒhê—p•Ší‚ð‘•”õ‚µ‚Ä‚¢‚éꇂÍAŠO‚µ‚Ä‚©‚甽“]‚³‚¹‚Ä‚­‚¾‚³‚¢
+@@‚»‚Ì‚Ü‚Ü”½“]‚³‚¹‚é‚ÆA‚»‚̃Lƒƒƒ‰ƒNƒ^[‚ÌŠJŽnŽž‚É
+@@ƒNƒ‰ƒCƒAƒ“ƒgƒGƒ‰[‚ªo‚Ü‚·io‚邾‚¯‚ÅA—Ž‚¿‚邱‚Æ‚Í‚È‚¢‚Ì‚Å‚·‚ªcj
+Eƒf[ƒ^ƒx[ƒXC³ by Ž‚Žqo^.^o
+ (map/)
+ chrif.c
+ packet_len_table[]Achrif_parse()C³
+ chrif_changesex()Achrif_changedsex()’ljÁ
+ chrif.h C³
+ (char/)
+ char.c
+ parse_frommap()Aparse_tologin()C³
+ (login/)
+ login.c
+ parse_fromchar()C³
+ (db/)
+ cast_db.txt C³
+ skill_require_db.txt C³
+
+--------------
+//0751 by Ž€_
+
+Eskill_db.txt‚Æcast_db.txt‚Ì•ÏX‚Æskill_require_db.txt‚̒ljÁB
+E“Å‚É‚©‚©‚é‚ÆHP‚ªŒ¸‚é‚悤‚É•ÏXBHP‚Í1•b‚ÉÅ‘åHP‚Ì1%Œ¸‚è‚Ü‚·B(–¢ƒeƒXƒg)
+EΉ»‚ðis’†‚Ì•¨‚ÆŠ®‘S‚È•¨‚É•ª‚¯‚ÄHP‚ªŒ¸‚é‚悤‚É•ÏXB(1•b‚ÉÅ‘åHP‚Ì1%)ƒuƒŒƒbƒVƒ“ƒO‚ÅŠ®‘SΉ»‚¾‚¯Ž¡‚¹‚é‚悤‚ÉC³B(–¢ƒeƒXƒg)
+Eƒnƒ“ƒ^[‚̃gƒ‰ƒbƒv‚ɃGƒtƒFƒNƒgŽÀ‘•B‚½‚¾ƒ‰ƒ“ƒhƒ}ƒCƒ“‚ƃVƒ‡ƒbƒNƒEƒF[ƒu‚Í”š”­ƒGƒtƒFƒNƒg‚ªo‚È‚¢‚悤‚Å‚·Bƒ‰ƒ“ƒhƒ}ƒCƒ“‚̓tƒ@ƒCƒAƒsƒ‰[‚Ì”š”­ƒGƒtƒFƒNƒg‚ªo‚é‚悤‚É•Ï‚¦‚Ä‚¢‚Ü‚·B
+EƒI[ƒgƒJƒEƒ“ƒ^[‚Ì•ûŒüƒ`ƒFƒbƒN‚ð‚·‚é‚悤‚É•ÏX‚Æ–{ŽIŽd—l‚ɇ‚킹‚Ü‚µ‚½B
+EƒoƒbƒNƒXƒ^ƒu‚à•ûŒüƒ`ƒFƒbƒN‚ð‚·‚é‚悤‚É•ÏXB
+EƒCƒ“ƒeƒBƒ~ƒfƒCƒg‚̈—•ÏXB
+EƒfƒBƒtƒFƒ“ƒ_[‚̈ړ®‘¬“xŒ¸­‚ð–{ŽI‚ɇ‚킹‚Ü‚µ‚½BASPD‚ÍŸŽè‚È‚ª‚ç
+(30 - (skilllv*5))%‚ªŒ¸‚é‚悤‚É‚µ‚Ü‚µ‚½‚ª–{ŽI‚Å‚¢‚­‚ç’öŒ¸‚é‚Ì‚©‚Ìî•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
+Eƒgƒ“ƒlƒ‹ƒhƒ‰ƒCƒuLV1‚ňړ®‘¬“x‚ª150‚©‚ç312‚É‚È‚é‚Ì‚ªŠm”F‚³‚ê‚ÄŒvŽZ‚ð•ÏX‚µ‚Ü‚µ‚½‚ªƒŒƒxƒ‹‚É‚æ‚Á‚Ä‚Ç‚ê‚®‚ç‚¢‘‰Á‚·‚é‚©‚Í•s–¾‚Å‚·Bî•ñ‚ð‹‚ß‚Ü‚·B(¡‚ÌŒvŽZŽ®‚Í“K“x‚Éì‚Á‚½•¨‚Å‚·B)
+Eƒ|[ƒVƒ‡ƒ“»‘¢‚ÌŒvŽZŽ®•ÏX‚Æ‚¿‚å‚Á‚ÆC³B
+Eˆê•”’n–ʃXƒLƒ‹‚Ìd‚Ë’u‚«‚ð‹ÖŽ~B
+EbNoMagicDamage‚Å–‚–@‚É‚æ‚éˆÙí‚âƒXƒe[ƒ^ƒXƒAƒbƒvŒø‰Ê‚ªo‚È‚¢‚悤‚ÉC³B(ƒŠƒUƒŒƒNƒVƒ‡ƒ“ˆÈŠO‚Ì–‚–@‚Í–³Œø‚É‚È‚è‚Ü‚·B)
+Ebattle_athena.conf‚É€–ڒljÁB
+E‚»‚Ì‘¼FX‚ÆC³B
+E•ÏX‚³‚ꂽskill_db.txtAcastdb.txt‚ƒljÁ‚³‚ꂽskill_require_db.txt‚Ì\‘¢‚Í¡‚ÌŠŽ©•ª‚µ‚©’m‚ç‚È‚¢‚Ì‚Ådb_ref.txt‚Éà–¾‚ð’ljÁ‚·‚é—\’è‚È‚Ì‚Å‚»‚ê‚Ü‚Å‚Í‚±‚ê‚ç‚Ì•ÏX‚ÍT‚¦‚Ä‚­‚¾‚³‚¢B
+ (char/)
+ int_guild.c C³B
+ (conf/)
+ battle_athena.conf C³B
+ (doc/)
+ conf_ref.txt C³B
+ (db/)
+ skill_db.txt C³B
+ skill_require_db.txt C³B
+ cast_db.txt C³B
+ (map/)
+ battle.h C³B
+ battle.c
+ battle_counttargeted()Abattle_calc_pet_weapon_attack() C³B
+ battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
+ battle_weapon_attack()Abattle_config_read() C³B
+ skill.h C³B
+ skill.c
+ skill_attack()Askill_castend_damage_id() C³B
+ skill_castend_nodamage_id()Askill_status_change_start() C³B
+ skill_check_condition()Askill_castend_pos() C³B
+ skill_use_id()Askill_use_pos() C³B
+ skill_status_change_timer()Askill_status_change_start() C³B
+ skill_check_unit_sub() ’ljÁB
+ pc.h C³B
+ pc.c
+ pc_damage()Apc_counttargeted()Apc_counttargeted_sub() C³B
+ mob.h C³B
+ mob.c
+ mob_countslave()Amob_counttargeted()Amob_counttargeted_sub() C³B
+ mobskill_use()Amob_can_move()Amob_damage() C³B
+ mobskill_use_id()Amobskill_use_pos()Amobskill_castend_id() C³B
+ mobskill_castend_pos() C³B
+ map.c
+ map_quit() C³B
+
+--------------
+//0750 by CHRIS
+
+EƒXƒLƒ‹ŠÖŒW‚ÌDB‚ð’²®
+ (db/)
+ skill_db.txt
+ cast_db.txt
+ skill_require_db.txt
+
+--------------
+//0749 by Ž€_
+
+EFX‚Æ•ÏX‚ÆC³B
+EƒXƒLƒ‹‚ÌŽd—l•ÏX‚âŽÀ‘•Aó‘ÔˆÙí‚ÌŽd—l•ÏX‚âŽÀ‘•B
+EƒXƒLƒ‹‚ÌŽg—pðŒ‚ðdb‚ÉÝ’è‚Å‚«‚é‚悤‚É•ÏXB
+Eskill_db.txt‚Æcast_db.txt‚ÌŽd—l•ÏXB
+Eƒ}ƒbƒvŽI‚Ì–³ŒÀƒ‹[ƒv‰Â”\«‚ª‚ ‚é•”•ª‚ðC³B(‚ ‚­‚Ü‚Å‚à‰Â”\«‚ª
+‚ ‚Á‚½‚¾‚¯‚Ì•¨‚Å‚·B–³ŒÀƒ‹[ƒv‚ÌŒ´ˆö‚Æ‚Í’fŒ¾‚Å‚«‚Ü‚¹‚ñB)
+Eƒgƒ‰ƒbƒv‚Ì”­“®ŽÀ‘•B(‚½‚¾ŽÀÛ‚É“®ì‚Í‚Ü‚¾C³‚µ‚Ä‚¢‚Ü‚¹‚ñB
+Œ©‚½–Ú‚ª•Ï‚í‚Á‚½‚¾‚¯‚Å‚·B)
+Ebattle_athena.conf‚É€–ڒljÁ‚ðíœB
+E0748‚ÌC³íœ‚Æ•¶Žš‰»‚¯C³B
+Eskill_db.txtAcast_db.txtAskill_require_db.txt‚Ì•û‚ª‚Ü‚¾Š®¬‚³‚ê‚Ä‚¢‚È‚¢‚Ì‚Å
+‚©‚È‚è‚̗ʂ̃XƒLƒ‹‚ª³‚µ‚­“®ì‚µ‚Ü‚¹‚ñB(db_ref.txt‚ÉÝ’è•û–@‚ð“ü‚ê‚È‚¢‚Æ
+ ‚¯‚È‚¢‚Ì‚Å‚·‚ªŽžŠÔ‚ª‚È‚©‚Á‚½‚Ì‚Å...) ‚»‚µ‚ÄC³‚Í‚µ‚Ü‚µ‚½‚ªƒeƒXƒg‚Í
+–w‚ñ‚Ç‚µ‚Ä‚Ü‚¹‚ñ‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
+ (char/)
+ char.c C³B
+ int_party.h C³B
+ int_party.c C³B
+ int_guild.h C³B
+ int_guild.c C³B
+ int_pet.h C³B
+ int_pet.c C³B
+ int_storage.h C³B
+ int_storage.c C³B
+ char‚Ì•û‚͑債‚½C³‚Í‚µ‚Ä‚Ü‚¹‚ñB
+ (conf/)
+ battle_athena.conf C³B
+ (doc/)
+ conf_ref.txt C³B
+ (db/)
+ skill_db.txt C³B
+ cast_db.txt C³B
+ skill_require_db.txt ’ljÁB
+ produce_db.txt C³B
+ (map/)
+ map.h C³B
+ map.c
+ map_check_dir() ’ljÁB
+ map_readmap()Amap_addblock()Amap_delblock() C³B
+ map_foreachinarea()Amap_foreachinmovearea() C³B
+ map_addflooritem() C³B
+ pc.h C³B
+ pc.c
+ pc_spiritball_timer()Apc_addspiritball()Apc_delspiritball() C³B
+ pc_steal_item()Apc_steal_coin()Apc_calcstatus() C³B
+ pc_checkallowskill()Apc_jobchange()Apc_checkweighticon() C³B
+ pc_damage()Apc_equipitem()Apc_walk()Apc_stop_walking() C³B
+ pc_authok()Apc_counttargeted()Apc_counttargeted_sub() C³B
+ pc_damage()Apc_setpos() C³B
+ skill.h C³B
+ skill.c
+ skill_get_range()Askill_get_sp()Askill_get_num() C³B
+ skill_get_cast()Askill_get_delay() C³B
+ skill_get_hp()Askill_get_zeny()Askill_get_time() ’ljÁB
+ skill_get_time2()Askill_get_weapontype() ’ljÁB
+ skill_get_unit_id()Askill_blown()Askill_additional_effect() C³B
+ skill_attack()Askill_castend_damage_id() C³B
+ skill_castend_nodamage_id()Askill_castend_id() C³B
+ skill_castend_pos()Askill_unit_onplace() C³B
+ skill_unit_timer_sub_onplace()Askill_unitsetting() C³B
+ skill_use_id()Askill_use_pos()Askill_check_condition() C³B
+ skill_status_change_end()Askill_status_change_timer() C³B
+ skill_status_change_start()Askill_can_produce_mix() C³B
+ skill_produce_mix()Askill_gangsterparadise() C³B
+ skill_gangster_out()Askill_gangster_in() C³B
+ skill_gangster_count() ’ljÁB
+ skill_readdb() C³B
+ battle.h C³B
+ battle.c
+ distance()Abattle_counttargeted()Abattle_get_range() ’ljÁB
+ battle_get_dir() ’ljÁB
+ battle_get_maxhp()Abattle_get_str()Abattle_get_agi() C³B
+ battle_get_vit()Abattle_get_dex()Abattle_get_int() C³B
+ battle_get_luk()Abattle_get_flee()Abattle_get_hit() C³B
+ battle_get_flee2()Abattle_get_critical()Abattle_get_baseatk() C³B
+ battle_get_atk()Abattle_get_atk2()Abattle_get_def() C³B
+ battle_get_def2()Abattle_get_mdef()Abattle_get_speed() C³B
+ battle_get_adelay()Abattle_get_amotion()Abattle_get_party_id() C³B
+ battle_get_guild_id()Abattle_get_size() C³B
+ battle_check_undead() ’ljÁB
+ battle_check_target()Abattle_addmastery() C³B
+ battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
+ battle_calc_pc_weapon_attack()Abattle_weapon_attack() C³B
+ clif.h C³B
+ clif.c
+ clif_skillinfo()Aclif_skillinfoblock()Aclif_skillup() C³B
+ clif_item_skill()Aclif_changeoption()Aclif_parse_LoadEndAck() C³B
+ clif_01ac() ’ljÁB
+ clif_parse_WalkToXY()Aclif_parse_ActionRequest() C³B
+ clif_parse_TakeItem()Aclif_parse_DropItem() C³B
+ mob.h C³B
+ mob.c
+ mobskill_castend_id()Amobskill_castend_pos() C³B
+ mobskill_use_id()Amobskill_use_pos()Amob_heal() C³B
+ mob_spawn()Amob_damage()Amob_walk() C³B
+ mob_stop_walking()Amob_warp()Amob_counttargeted() C³B
+ mob_counttargeted_sub()Amob_countslave() C³B
+ mob_attack()Amob_target()Amob_ai_sub_hard_activesearch() C³B
+ mob_ai_sub_hard_mastersearch()Amob_ai_sub_hard() C³B
+ script.c
+ buildin_sc_start() C³B
+ path.c
+ can_move() C³B
+ pet.c
+ pet_data_init()Apet_stop_walking() C³B
+ npc.c
+ npc_parse_warp()Anpc_parse_shop()Anpc_parse_script() C³B
+
+--------------
+//0748 by Michael
+ (map/)
+ pc.c
+ pc_walk();
+ Fix Player cannot move in ICEWALL but have Path.
+ mob.c
+ mob_walk();
+ Fix Monster cannot move in ICEWALL but have Path.
+ path.c
+ can_move();
+ Fix Player&Monster cannot move in ICEWALL.
+
+--------------
+//0747 by ¹
+Eƒyƒbƒg‚ªƒGƒ‚‚ðo‚·‚Æmap-server‚ª—Ž‚¿‚邱‚Æ‚ª‚ ‚Á‚½–â‘è‚ðC³B
+ (map/)
+ clif_parse_SendEmotion() C³B
+
+--------------
+//0746 by Michael
+ (map/)
+ script.c
+ Add Script command - checkoption(type);
+ Attach a npc_testchkoption.txt npc script!
+
+--------------
+//0745 by ‚Ò‚´‚Ü‚ñ
+EƒMƒƒƒ“ƒOƒXƒ^[ƒpƒ‰ƒ_ƒCƒXŽÀ‘•
+EPvPƒGƒŠƒA‚Ìmapflag‚ðC³(“¯Žm“¢‚¿‚ª–³‚­‚È‚Á‚½‚©‚ÆŽv‚¢‚Ü‚·)
+EƒV[ƒYƒ‚[ƒh‚ŃmƒbƒNƒoƒbƒN‚ª‚ ‚Á‚½ƒoƒO‚ðC³
+EƒCƒ“ƒeƒBƒ~‚Ì’x‰„ŽžŠÔ‚ð­‚µ’²®
+ (map/)
+ skill.c
+ skill_attack()Askill_additional_effect()C³
+ skill_gangsterparadise()Askill_gangster_in()Askill_gangster_out()’ljÁ
+ clif.c
+ clif_parse_ActionRequest()C³
+ mob.c
+ mob_target()Amob_attack()C³
+ mob_ai_sub_hard()Amob_ai_sub_hard_mastersearch()C³
+ mob_ai_sub_hard_activesearch()C³
+ map.h C³
+ skill.h C³
+ (conf/)
+ npc_pvp.txt C³
+
+--------------
+//0744 by ¹
+
+EƒAƒCƒXƒEƒH[ƒ‹AƒƒeƒIƒXƒg[ƒ€‚̃Rƒ“ƒ{‚ŃƒeƒIƒXƒg[ƒ€‚̃GƒtƒFƒNƒg‚ª•\Ž¦‚³‚ê‚È‚­‚È‚é–â‘è‚ðC³B
+EHP‹zŽûƒXƒLƒ‹‚̃GƒtƒFƒNƒgC³B
+Ebattle_athena.conf‚É€–ڒljÁB
+EƒpƒPŽü‚è‚Ìׂ©‚¢C³B
+ (conf/)
+ battle_athena.conf
+ (doc/)
+ conf_ref.txt
+ (map/)
+ battle.c
+ battle.h
+ clif.c
+ pc.c
+ pet.c
+ skill.c
+
+--------------
+//0743 by J
+
+EŽæ‚芪‚«¢Š«‚È‚Ç‚ð–{ŽI‚ÉŽ—‚¹‚éˆ×‚ÌC³B
+@‚ ‚Æ–{ŽI‘ŠˆáƒXƒŒ‚É‚ ‚Á‚½ƒSƒXƒŠƒ“‚ÌŽæ‚芪‚«‚ðC³B
+@ƒfƒŠ[ƒ^[‚Ì‹ó‚Æ’n‚̃XƒLƒ‹‚ª‹t‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ðC³B
+ (db/)
+ mob_skill_db.txt C³
+
+--------------
+//0742 by ‚Ò‚´‚Ü‚ñ
+
+EƒCƒ“ƒeƒBƒ~ƒfƒCƒg‚ðŽÀ‘•
+@UŒ‚‚ƃ[ƒv‚Ì•ª•Ê‚ª‚¤‚Ü‚­‚¢‚©‚È‚©‚Á‚½‚Ì‚Å
+@SC_INTIMIDATE‚ðŽg‚Á‚Ä’x‰„ˆ—‚ð‚µ‚Ü‚µ‚½
+Eskill_db‚̌뎚“™‚ðC³
+ (map/)
+ skill.c
+ skill_additional_effect()Askill_castend_map()C³
+ skill_castend_nodamage_id()AC³
+ skill_status_change_start()Askill_status_change_end()C³
+ map.h C³
+ skill.h C³
+ (db/)
+ skill_db.txt C³
+
+--------------------
+//0741 by whitedog
+
+snapshot
+
+--------------
+//0740 by ‚Û‚Û‚Û
+EPC‚ªMOB‚Ƀ^ƒQ‚ç‚ꂽ‚Æ‚«3•C–Ú‚©‚ç–hŒä‚Ɖñ”ð‚ªŒ¸‚é‚悤‚É‚µ‚½B
+@1•C‚ɂ‚«‰ñ”ð‚Í10%A–hŒä‚Í5%Œ¸‚è‚Ü‚·B
+ (map/)
+ pc.h
+ pc.c
+ pc_counttargeted()Apc_counttargeted_sub()’ljÁ
+ battle.c
+ battle_get_flee()Abattle_get_def()Abattle_get_def2()C³B
+
+--------------
+//0739 by ¹
+Eƒtƒ@ƒCƒA[ƒEƒH[ƒ‹“™‚ÌÝ’uŒnƒXƒLƒ‹‚ª³‚µ‚­•\Ž¦‚³‚ê‚È‚¢–â‘è‚ðC³B
+Eƒ}ƒŠƒ“ƒXƒtƒBƒA‚ªŽ©”š‚·‚é‚ƃTƒ“ƒ_[ƒXƒg[ƒ€“™‚̃_ƒ[ƒW‚ª•\Ž¦‚³‚ê‚È‚­‚È‚é–â‘è‚ðC³B
+EHP‹zŽûŒnƒXƒLƒ‹‚Å“G‚ª‰ñ•œ‚µ‚Ä‚éƒGƒtƒFƒNƒg‚ªo‚é‚悤C³B
+ (map/)
+ skill.c
+ skill_castend_damage_id() C³B
+ battle.c
+ battle_calc_misc_attack() C³B
+ clif.c
+ clif_getareachar_skillunit() C³B
+ clif_skill_setunit() C³B
+
+--------------
+//0738 by ‚Ò‚´‚Ü‚ñ
+EƒXƒg[ƒ€ƒKƒXƒg‚ðŠ®‘S‚É–{ŽIŽd—l‚ÉC³(3‰ñ‚Åâ‘Γ€Œ‹•“€Œ‹ó‘Ô‚Ì“G‚ÍSG‚ð‚­‚ç‚í‚È‚¢)
+EƒTƒtƒ‰ƒMƒEƒ€‚ªŽ©•ª‚É‚©‚¯‚ç‚ê‚éƒoƒOC³
+ (map/)
+ skill.c
+ skill_additional_effect()Askill_attack()C³
+ skill_castend_nodamage_id()C³
+ map.h C³
+
+--------------
+//0737 by ‚Û‚Û‚Û
+EƒAƒ“ƒNƒ‹‚ª•à‚¢‚Ä‚¢‚é“G‚ÉŒø‚©‚È‚¢&•¡”‚Ì“G‚ÉŒø‚­‚Ì‚ðC³B
+ (map/)
+ skill.c
+ skill_unit_onplace()Askill_unit_onout()C³
+ mob.c
+ mob_stop_walking()C³
+
+--------------
+//0736 by ‚Ò‚´‚Ü‚ñ
+Eó‘ÔˆÙí‘Ï«‚ªŒø‰ÊŽžŠÔ‚É‚à‹y‚Ô—l‚ÉC³B”­“®—¦‚Æ“¯—¦‚ÅŒø‰ÊŽžŠÔ‚ªŠ„‚èˆø‚©‚ê‚Ü‚·
+EƒXƒg[ƒ“ƒJ[ƒX‚ÌŒø‰ÊŽžŠÔ‚ð‰i‹v‚©‚çƒ}ƒWƒXƒŒƒeƒ“ƒvƒŒ€‹’‚É
+EUŒ‚‚ðŽó‚¯‚½Žž‚Ƀyƒbƒg‚ÌŽx‰‡UŒ‚‚ðŽó‚¯‚ç‚ê‚È‚¢‚悤C³(ƒRƒƒ“ƒgƒAƒEƒg‚µ‚½‚¾‚¯)
+@‚±‚ê‚ÍVITŒ^‚Ƀyƒbƒg‚ð•t‚¯‚Ä•ú’u‚·‚邾‚¯‚ÅŽ©“®‚ŃŒƒxƒ‹ã‚°‚ª‚Å‚«‚é‚Ì‚ð
+@–h‚®‚½‚ß‚ÌŽb’è“I‚Ȉ’u‚Å‚·
+ (map/)
+ skill.c
+ skill_castend_nodamage_id()Askill_addisional_effect()C³
+ skill_status_change_start()C³
+ pc.c
+ pc_damage() C³
+
+--------------
+//0735 by ‚Û‚Û‚Û
+
+E“G‚ð“|‚µ‚ăŒƒxƒ‹‚ªã‚ª‚Á‚½‚Æ‚«PTŒö•½”͈͂̃`ƒFƒbƒN‚ð‚·‚é‚悤‚É‚µ‚½B
+EƒI[ƒgƒJƒEƒ“ƒ^[‰¼ŽÀ‘•B
+@Œü‚«‚âŽË’öƒ`ƒFƒbƒN‚Í‚µ‚Ä‚¢‚Ü‚¹‚ñB‚Ü‚½ƒ^ƒCƒ~ƒ“ƒO‚ª‚¨‚©‚µ‚¢‚©‚à‚µ‚ê‚Ü‚¹‚ñB
+@MOBƒXƒLƒ‹‚Æ‚µ‚ÄŽg‚¤‚Æ‚«‚̓^[ƒQƒbƒg‚ðself‚É‚µ‚Ä‚­‚¾‚³‚¢B
+ (conf/)
+ battle_athena.conf€–ڒljÁ
+ (doc/)
+ conf_refC³
+ (map/)
+ battle.h
+ battle.c
+ battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack()
+ battle_config_read()C³
+ pc.c
+ pc_checkbaselevelup()Apc_attack_timer()C³
+ skill.c
+ skill_castend_nodamage_id()Askill_status_change_start()C³
+ clif.c
+ clif_parse_WalkToXY()C³
+ mob.c
+ mob_attack()C³
+
+--------------
+//0734 by Ž€_
+
+Eplayer_skillup_limit‚̈—C³‚Æׂ©‚¢C³B
+Eplayer_skillup_limit‚ªyes‚Ìê‡skill_tree.txt‚Åݒ肳‚ê‚Ä‚é‚»‚̉ºˆÊE‹Æ‚Ì
+ƒXƒLƒ‹ƒcƒŠ[‚ðŽg‚¢‚Ü‚·‚Ì‚Å‚»‚ÌE‹Æ‚Å‚Í–³‚­‚È‚é‚Í‚¸‚̃XƒLƒ‹‚ªo‚邱‚Æ‚ª
+‚ ‚è‚Ü‚·‚ª‚±‚ê‚ÍŽd—l‚Å‚ ‚èƒoƒO‚Å‚Í‚ ‚è‚Ü‚¹‚ñBƒoƒO•ñ‚³‚ê‚Ä‚à–³Ž‹‚µ‚Ü‚·B
+ (doc/)
+ conf_ref.txt C³B
+ (char/)
+ char.c
+ mmo_char_sync_timer()Ado_init() C³B
+ inter.c
+ inter_init() C³B
+ inter_save_timer() íœB
+ (map/)
+ pc.c
+ pc_calc_skilltree() C³B
+ pc_resetskill() C³B
+
+--------------
+//0733 by Ž€_
+
+EƒoƒOC³‚Æׂ©‚¢C³B
+EŽ€‚ñ‚¾Œã‚É‚·‚®‚ɃZ[ƒuƒ|ƒCƒ“ƒg‚ɖ߂炸‚É‚µ‚΂炭•ú’u‚µ‚Ä‚é‚ÆA
+•ú’u‚µ‚Ă鎞ŠÔ‚É‚æ‚Á‚ÄŒoŒ±’l‚ªŒ¸­‚·‚éƒoƒOC³B(–¢ƒeƒXƒg)
+Emob_availe.txt‚Åݒ肵‚½ƒ‚ƒ“ƒXƒ^[‚Ƀ‚ƒ“ƒXƒ^[î•ñ‚ðŽg‚¤‚¿ˆÆ—Ž‚¿‚·‚é–â‘èC³B
+Ebattle_athena.conf‚É€–ڒljÁB
+E‚»‚Ì‘¼×‚©‚¢C³B
+ (conf/)
+ battle_athena.conf C³B
+ (doc/)
+ conf_ref.txt C³B
+ (map/)
+ clif.c
+ clif_skill_estimation()Aclif_parse_Restart() C³B
+ pc.c
+ pc_setrestartvalue()Apc_makesavestatus() C³B
+ pc_read_gm_account()Apc_calc_skilltree() C³B
+ pc_calc_skillpoint() ’ljÁB
+ map.c
+ map_quit() C³B
+ mob.c
+ mob_damage() C³B
+ skill.c
+ skill_unit_timer_sub()Askill_unit_timer() C³B
+ battle.h C³B
+ battle.c
+ battle_config_read() C³B
+
+--------------
+//0732 by Kalen
+
+Enpc_town_kafra.txt‚Ì‘S–ÊŒ©’¼‚µ
+ ƒJƒvƒ‰—˜—pŒ”‚Ì”pŽ~
+ ‘qŒÉ—˜—p—¿‚ð–{ŽI(jRO)‚Æ“¯ˆê‰¿Ši‚É’²®
+ ƒJ[ƒgŽg—p—¿‚ð–{ŽI(jRO)‚Æ“¯ˆê‰¿Ši‚É’²®
+ ƒ|ƒCƒ“ƒgŽQÆ•ÏX
+ ƒWƒ…ƒm[‚̃Z[ƒuƒ|ƒCƒ“ƒgC³
+ ƒAƒ}ƒc‚̃Z[ƒuƒ|ƒCƒ“ƒgC³
+
+--------------
+//0731 by ‚Û‚Û‚Û
+
+E•ž‚ÌF‚ð•Û‘¶‚·‚é‚©battle_athena.conf‚Å‘I‘ð‚Å‚«‚é‚悤‚ÉB
+@•¾ŠQ‚ª‚ ‚é‚Ì‚Å•Û‘¶‚µ‚È‚¢‚悤‚É‚Æ‘‚¢‚Ä‚ ‚Á‚½‚̂ŃfƒtƒHƒ‹ƒg‚Å‚Í•Û‘¶‚µ‚Ü‚¹‚ñB
+EƒXƒNƒŠƒvƒg’ljÁ
+@strcharinfo(1) Ž©•ª‚̃p[ƒeƒB[–¼‚ðŽæ“¾‚µ‚Ü‚·B
+@strcharinfo(2) Ž©•ª‚̃Mƒ‹ƒh–¼‚ðŽæ“¾‚µ‚Ü‚·B
+@getcharid(1) Ž©•ª‚̃p[ƒeƒB[ID‚ðŽæ“¾‚µ‚Ü‚·B
+@getcharid(2) Ž©•ª‚̃Mƒ‹ƒhID‚ðŽæ“¾‚µ‚Ü‚·B
+@getpartyname(ID) ID‚ÅŽw’肵‚½ƒp[ƒeƒB[‚Ì–¼‘O‚ðŽæ“¾‚µ‚Ü‚·B
+@getguildname(ID) ID‚ÅŽw’肵‚½ƒMƒ‹ƒh‚Ì–¼‘O‚ðŽæ“¾‚µ‚Ü‚·B
+ (map/)
+ battle.h
+ battle.c
+ battle_config_read()C³
+ pc.c
+ pc_makesavestatus()C³
+ script.c
+ buildin_strcharinfo()C³
+ buildin_getcharid()Abuildin_getpartyname()Abuildin_getpartyname_sub()
+ buildin_getguildname()Abuildin_getguildname_sub()’ljÁ
+
+--------------
+//0730 by ‚Ò‚´‚Ü‚ñ
+
+EƒXƒg[ƒ€ƒKƒXƒg‚Ì“€Œ‹ŽžŠÔ‚ð–{ŽI‚É‚ ‚킹‚ÄC³(ƒXƒLƒ‹ƒŒƒxƒ‹‚ÉŠÖŒW‚È‚­ˆê’è‚Ì“€Œ‹ŽžŠÔ(10•b)‚É‚È‚è‚Ü‚·)
+EƒXƒ^ƒ“AˆÃˆÅA’¾–ÙA“Å‚Ìó‘ÔˆÙ펞ŠÔ‚ÌuŒp‚¬‘«‚µv‚ª‚Å‚«‚È‚¢‚悤‚ÉC³
+Eó‘ÔˆÙ킪Š|‚©‚è‚É‚­‚·‚¬‚Ä‚½‚Ì‚ÅMOB‚Ìó‘ÔˆÙí‘Ï«‚ðŠÉ˜a(‚Ü‚½’²®‚·‚é‚©‚à)
+ (map/)
+ skill.c
+ skill_castend_nodamage_id()Askill_addisional_effect()C³
+ skill_status_change_start()C³
+
+--------------
+//0729 by DRG
+
+EƒJ[ƒgƒŒƒ{ƒŠƒ…[ƒVƒ‡ƒ“‚ªƒJ[ƒg‚È‚µ‚ÅŽg‚¦‚½•s‹ï‡‚ÌC³
+EƒJ[ƒgƒŒƒ{ƒŠƒ…[ƒVƒ‡ƒ“‚ªJOBLV30‚ÅŠo‚¦‚ꂽ‚Ì‚ðC³
+ (conf/)
+ npc_event_skillget.txt
+ ƒJ[ƒgƒŒƒ{ƒŠƒ…[ƒVƒ‡ƒ“€C³
+ (map/)
+ skill.c
+ skill_check_condition()C³
+
+--------------
+//0728 by ‚Û‚Û‚Û
+
+EE‚ª•Ï‚í‚Á‚Ä‚àƒMƒ‹ƒh‚ÌE‹Æ—“‚ªXV‚³‚ê‚È‚¢•s‹ï‡‚ÌC³B
+
+ (char/)
+ inter.c
+ ƒpƒPƒbƒg’·ƒŠƒXƒgC³B
+ int_guild.c
+ mapif_guild_memberinfoshort()Amapif_parse_GuildChangeMemberInfoShort()A
+ inter_guild_parse_frommap()C³
+ (map/)
+ intif.h
+ intif.c
+ intif_guild_memberinfoshort()Aintif_parse_GuildMemberInfoShort()
+ intif_parse()C³
+ guild.h
+ guild_send_memberinfoshort()Aguild_recv_memberinfoshort()C³
+
+
+--------------
+//0727 by ¹
+
+E•ŠíŒ¤‹†ƒXƒLƒ‹‚É‚æ‚Á‚ăzƒ‹ƒOƒŒƒ“‚Ȃǂ̸˜BNPC‚ª
+@³í‚É“®ì‚µ‚È‚¢–â‘è‚ðC³B
+
+ (map/)
+ pc.c
+ pc_percentrefinery() C³B
+
+--------------
+//0726 by ŒÓ’±—–
+
+Emob_skill_db2.txt‚ª‚ ‚ê‚Îmob_skill_db.txt‚ðƒI[ƒo[ƒ‰ƒCƒh‚·‚é‚悤‚ÉC³
+ ƒIƒŠƒWƒiƒ‹‚ÌMOBŽg—pŽž‚âAŒ»sMOB‚ÌŽg—pƒXƒLƒ‹‚ð•ÏX‚µ‚½‚¢ê‡‚ÉB
+
+Emob_skill_db.txt‚Åmob_id‚ÌŽŸ‚̃_ƒ~[•¶Žš—ñ‚ª"clear"‚¾‚Á‚½ê‡A
+ ‚»‚ÌMOB‚̃XƒLƒ‹‚ð‰Šú‰»‚·‚é‹@”\’ljÁB
+ Emob_skill_db2.txt‚Å‚ ‚éMOB‚̃XƒLƒ‹‚ðŠ®‘S‚É‘‚«Š·‚¦‚é‚Æ‚«‚ÉŽg—p‚µ‚Ä
+ ‚­‚¾‚³‚¢B
+ Eclear‚µ‚È‚©‚Á‚½ê‡‚Ímob_skill_db.txt‚Ì‚à‚̂ɒljÁ‚³‚ê‚Ü‚·B
+
+ mob.c
+ mob_readskilldb()C³
+
+
+EƒAƒCƒeƒ€–¼/MOB–¼‚ª‘SŠp12•¶Žši24ƒoƒCƒgj‚ ‚éƒAƒCƒeƒ€/MOB‚ªA
+ @ƒRƒ}ƒ“ƒh‚ÅŽæ‚èŠñ‚¹/¢Š«‚Å‚«‚È‚¢–â‘èC³B
+ mob.c
+ mobdb_searchname()C³
+ itemdb.c
+ itemdb_searchname_sub()C³
+
+EŒ»ÝŽž‚ŃCƒxƒ“ƒg‚ð‹N‚±‚·uŽžŒvƒCƒxƒ“ƒgv‹@”\‚ð’ljÁ
+ EOnInit‚Æ“¯‚¶‚悤‚É‚»‚ꂼ‚ê‚ÌNPC‚ÅAOn`‚ÅŽn‚܂郉ƒxƒ‹‚ð’è‹`‚µ‚Ü‚·B
+ OnMinute?? F–ˆŽžA??•ª‚ɃCƒxƒ“ƒg‚ð‹N‚±‚µ‚Ü‚·B(0-59)
+ OnHour?? F–ˆ“úA??Žž‚ɃCƒxƒ“ƒg‚ð‹N‚±‚µ‚Ü‚·B(0-23)
+ OnClock???? F–ˆ“úA??Žž??•ª‚ɃCƒxƒ“ƒg‚ð‹N‚±‚µ‚Ü‚·B
+ OnDate???? F–ˆ”NA??ŒŽ??“ú‚ɃCƒxƒ“ƒg‚ð‹N‚±‚µ‚Ü‚·B
+ EÚ‚µ‚­‚Í npc_test_ev.txt ‚ðŽQÆ
+
+ (conf/)
+ npc_test_ev.txt
+ “à—e’ljÁ
+ (map/)
+ npc.c
+ FXC³
+
+E‚»‚Ì‘¼
+ clif.c
+ ƒRƒ“ƒpƒCƒ‹Œx‚ªo‚È‚¢‚悤‚ÉC³
+
+--------------
+//0725 by Ž€_
+
+EŽI—Ž‚¿ƒoƒOC³B
+Eƒ‚ƒ“ƒXƒ^[‚ɃCƒxƒ“ƒg‚ªÝ’肳‚ê‚Ä‚¢‚ÄŽ©ŽE‚â‚È‚É‚©‚Ń_ƒ[ƒW‚ð—^‚¦‚½
+•¨‚ª‚È‚¢ê‡ŽI—Ž‚¿Šm’è‚È‚Ì‚Å‚»‚̃}ƒbƒv‚É‚ ‚éƒvƒŒƒCƒ„[‚ð—˜—p‚µ‚Ä
+ƒCƒxƒ“ƒgƒXƒNƒŠƒvƒg‚ðŽÀs‚·‚é‚悤‚É•ÏXB
+ (map/)
+ makefile C³B
+ mob.c
+ mob_timer()Amob_damage() C³B
+
+--------------
+//0724 by Ž€_
+
+EƒoƒOC³‚ƈÀ’艻‚ׂ̈ÌC³B
+Eƒyƒbƒg‚ÌUŒ‚‚ŃCƒxƒ“ƒg‚ªˆ—‚³‚ꂸŽI—Ž‚¿‚É‚È‚é–â‘èC³B(–¢ƒeƒXƒg)
+Eƒ‚ƒ“ƒXƒ^[‚Ì‘å—Ê”­¶‚ÅŽI‚ª—Ž‚¿‚é–â‘èC³B(ƒ‚ƒ“ƒXƒ^[‚ð10000•C‚ðŒÄ‚ñ‚Å
+–‚–@‚Å“|‚·‚±‚Æ‚ð5‰ñ’öƒeƒXƒgB‚½‚¾“®‚©‚È‚¢‚â‚‚̂ÝB)
+EŽæ‚芪‚«‚ªƒ{ƒX‚ƈê‚ÉŽ€‚ÊŽžƒAƒCƒeƒ€‚ð—Ž‚Æ‚³‚È‚¢‚悤‚É•ÏXB(–¢ƒeƒXƒg)
+Ebattle_athena.conf‚Ìpc_skillflee‚ðplayer_skillfree‚É•ÏX‚µ‚Ĉ—‚ð•ÏXB
+EƒAƒCƒXƒEƒH[ƒ‹‚Éskill_unit_setting‚ðŽg‚¤ƒXƒLƒ‹‚ÅUŒ‚‚Å‚«‚È‚¢‚悤‚ÉC³B
+E‚»‚Ì‘¼×‚©‚¢C³­‚µBˆÀ’艻‚³‚ꂽ‚©‚Ç‚¤‚©‚Í‚Ü‚¾‚í‚©‚è‚Ü‚¹‚ñ‚ªXP1800+A512MAƒ‚ƒ“ƒXƒ^[”z’u50%‚Å10000•C¢Š«‚µ‚ĈÙí‚È‚©‚Á‚½‚Ì‚Å‘åä•v‚É‚È‚Á‚½‚ÆŽv‚¢‚Ü‚·B‘åä•v‚¶‚á‚È‚­‚Ä‚àÓ”C‚Í‚Æ‚ê‚Ü‚¹‚ñ‚ª...
+ (conf/)
+ battle_athena.conf C³B
+ (doc/)
+ conf_ref.txt C³B
+ (map/)
+ mob.h C³B
+ mob.c
+ mob_timer()Amob_deleteslave_sub()Amob_damage() C³B
+ npc.c
+ npc_event() C³B
+ skill.c
+ skill_area_sub()Askill_unit_onplace()Askill_castend_nodamage_id() C³B
+ clif.c
+ clif_parse_GMKick() C³B
+ battle.h
+ battle.c
+ battle_damage()Abattle_check_target()Abattle_config_read() C³B
+ pc.c
+ pc_calc_skilltree()Apc_checkskill() C³B
+ map.h C³B
+ map.c
+ map_foreachinarea()Amap_foreachinmovearea() C³B
+ map_foreachobject() C³B
+
+--------------
+//0723 by DRG
+
+E0719‚ÌC³
+ (map/)
+ pc.c pc_calc_skilltree()C³
+
+--------------
+//0722 by ƒpƒCƒ“
+
+Egcc 2.29Œn—ñ‚Å‚àƒRƒ“ƒpƒCƒ‹‚ª’Ê‚é‚悤‚ÉC³B
+@‚±‚ê‚͈ȑO‚É‚à’¼‚µ‚½‚Í‚¸‚È‚Ì‚Å‚·‚ªA‚È‚º‚©Œ³‚É–ß‚Á‚Ä‚¢‚Ü‚µ‚½‚Ì‚Å
+@ŠF‚³‚ñ’ˆÓ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
+@‚ ‚ÆAgcc3Œn—ñ‚È‚ç’蔂͂ǂ±‚É‘‚¢‚Ä‚à–â‘è‚È‚¢‚Ì‚Å‚·‚ªA
+@gcc2.29Œn—ñ‚Å‚Íu•K‚¸ƒuƒƒbƒN—v‘f‚̈ê”Ôʼnv‚É‘‚©‚È‚¢‚ƃRƒ“ƒpƒCƒ‹‚ª
+@’Ê‚è‚Ü‚¹‚ñ‚Ì‚Å‚±‚¿‚ç‚à‚²’ˆÓŠè‚¢‚Ü‚·B
+
+ƒRƒ“ƒpƒCƒ‹‚ª’Ê‚é—á
+void hoge() {
+ const char booboo = 1;
+ c
+
+ƒRƒ“ƒpƒCƒ‹‚ª’Ê‚ç‚È‚¢—á
+void hoge() {
+ c
+ const char booboo = 1;
+ c
+
+ (map/)
+ skill.h ƒ}ƒNƒ‚ðC³
+ skill.c skill_addisional_effect()C³
+
+--------------
+//0721 by ¹
+
+Eƒ{ƒX‚ɃŒƒbƒNƒXƒfƒr[ƒi‚ªŒø‚¢‚½–â‘è‚ðC³B
+Eƒ{ƒX‚ɃJ[ƒh‚É‚æ‚éó‘ÔˆÙ킪Œø‚©‚È‚©‚Á‚½–â‘è‚ðC³B
+@–{ŽI‚ł̓}ƒŠƒiƒJ[ƒh“™‚ŃI[ƒNƒq[ƒ[‚È‚Ç‚ð‰£‚é‚ÆŽžX“€Œ‹‚µ‚Ü‚·B
+@(Œ‹\”÷–­‚ÈŽÀ‘••û–@‚È‚Ì‚ÅA‰½‚©–â‘肪‚ ‚Á‚½ê‡
+@ ‚»‚Ì•ÓÚ‚µ‚¢•û‚¨‚è‚Ü‚µ‚½‚çC³‚µ‚Ä‚â‚Á‚Ä‚­‚¾‚³‚¢(^^; ))
+
+--------------
+//0720 by ŒÓ’±—–
+
+EPC‚ÉIW‚ðd‚Ë‚é‚ÆMOB‚ªUŒ‚‚µ‚Ä‚±‚È‚¢–â‘è‚ðC³
+ EIW‚Éd‚È‚Á‚Ä‚¢‚Ä‚àA—×ډ”\‚È‚çMOB‚ª‹ßŠñ‚Á‚Ä‚«‚Ü‚·
+ E‚Ç‚ñ‚È’nŒ`‚É‚¢‚Ä‚àA—×Ú‚µ‚Ä‚¢‚é‚È‚çUŒ‚‰Â”\‚É‚È‚è‚Ü‚·
+ E‚½‚¾‚µAMOB‚ª‰“‹——£UŒ‚‰Â”\‚ÅAUŒ‚”͈͓à‚ÉPC‚ª‚¢‚Ä‚àA
+ —×Ú•s‰Â”\‚È‚çUŒ‚‚µ‚Ä‚«‚Ü‚¹‚ñB‚±‚ê‚Ì‰ðŒˆ‚Í‚©‚È‚è–Ê“|‚È‚Ì‚ÅB
+
+ mob.c
+ mob_can_reach()C³
+ battle.c
+ battle_check_range()C³
+
+--------------
+//0719 by DRG
+
+E‰ºˆÊƒXƒLƒ‹‚ª‚È‚¢ê‡‚ÍãˆÊƒXƒLƒ‹‚ª‚Ó‚ê‚È‚¢‚悤‚É‚µ‚Ü‚µ‚½B
+@battle_athena.conf‚Ìskillflee‚ÅÝ’è‰Â”\‚Å‚·B
+@‰ºˆÊƒXƒLƒ‹‚ª‚È‚¢‚Ü‚ÜãˆÊƒXƒLƒ‹‚ð‚Ó‚Á‚½ó‘Ô‚ÅA‚±‚̃IƒvƒVƒ‡ƒ“‚ðŽg‚¤ê‡‚̓XƒLƒ‹ƒŠƒZƒbƒg‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B
+@ˆê”ʃAƒJ‚ɃXƒLƒ‹ƒŠƒZƒbƒg‚ð‰ð•ú‚µ‚½‚¢‚Æ‚«‚ÉŽg‚Á‚Ä‚â‚Á‚ĉº‚³‚¢B
+ (conf/)
+ battle_athena.conf
+ (map/)
+ battle.c
+ battle.h
+ pc.c pc_calc_skilltree(),pc_checkskill()C³
+
+--------------
+//0718 by Ž€_
+
+EFX‚ÆC³B
+E“Å‚É‚æ‚Á‚Ä–hŒä‚ªŒ¸‚é‚悤‚É•ÏXB(HP‚Í‚Ü‚¾Œ¸‚è‚Ü‚¹‚ñB)
+EƒAƒCƒXƒEƒH[ƒ‹‚ÉUŒ‚‚Å‚«‚é‚悤‚É•ÏXB(¡‚Í‘S‚Ä‚ÌUŒ‚‚É“–‚½‚è‚Ü‚·B)
+‚½‚¾ˆÆ‚̃oƒO‚炵‚­ƒAƒCƒXƒEƒH[ƒ‹‚ðƒNƒŠƒbƒN‚·‚é‚ƈƂ©‚ç0x89ƒpƒPƒbƒg‚ª30‰ñˆÈã˜A‘±‚Å‘—‚Á‚Ä‚­‚邱‚Æ‚ª‹N‚±‚è‚Ü‚·‚ªŒ´ˆö‚Í•s–¾‚Å‚·B‘½•ªˆÆ‚̃oƒO‚¾‚ÆŽv‚¢‚Ü‚·‚ª...)
+E퓬‚ÉŠÖ‚í‚éŒvŽZ“™‚ðC³B
+Eƒ[ƒj‚ª‘‚¦‚éƒoƒOC³B(‘½•ª‚±‚ê‚Å‚±‚̃oƒO‚Í‚È‚­‚È‚é‚ÆŽv‚¢‚Ü‚·‚ª‚Ç‚¤‚È‚Ì‚©•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·B)
+E“ñ“—¬‚̶Žè•Ší‚ÌŽí‘°A‘®«ASize‚̃_ƒ[ƒW•â³‚ð‰EŽè•Ší‚É“K—p‚·‚é‚©‚Ç‚¤‚©‚ðÝ’è‚Å‚«‚é‚悤‚É•ÏXB
+E‚»‚Ì‘¼C³‚Í‚µ‚½‚Í‚¸‚Å‚·‚ªŠo‚¦‚Ä‚Ü‚¹‚ñB(C³‚µ‚Ä‚È‚¢•¨‚à‚ ‚è‚Ü‚·‚ªdiff“–‚Ä‚Ì“r’†‚Å‚Ç‚ê‚ðì‹Æ‚µ‚½‚Ì‚©‚ð–Y‚ꂽ‚Ì‚Å...)
+ (common/)
+ mmo.h C³B
+ (conf/)
+ battle_athena.conf C³B
+ (doc/)
+ conf_ref.txt C³B
+ (map/)
+ battle.h C³B
+ battle.c
+ battle_get_baseatk()Abattle_get_speed()Abattle_get_adelay() ’ljÁB
+ battle_get_amotion() Abattle_calc_pet_weapon_attack() C³B
+ battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
+ battle_get_atk()Abattle_get_atk_()Abattle_get_atk2() C³B
+ battle_get_attack_element()Abattle_get_attack_element2() C³B
+ battle_get_str()Abattle_get_agi()Abattle_get_vit()Abattle_get_int() C³B
+ battle_get_dex()Abattle_get_luk()Abattle_get_flee() C³B
+ battle_get_flee2()Abattle_get_hit()Abattle_get_critical() C³B
+ battle_get_def()Abattle_get_def2()Abattle_get_mdef() C³B
+ battle_get_element()Abattle_check_target()Abattle_check_range() C³B
+ battle_weapon_attack()Abattle_config_read() C³B
+ clif.c
+ clif_skill_estimation()Aclif_mob0078()Aclif_mob007b() C³B
+ pc.c
+ pc_attack_timer()Apc_attack()Apc_calcstatus()Apc_payzeny() C³B
+ pc_getzeny() C³B
+ npc.c
+ npc_buylist()Anpc_selllist() C³B
+ pet.c
+ pet_attack()Apet_randomwalk()Apet_ai_sub_hard() C³B
+ mob.h C³B
+ mob.c
+ calc_next_walk_step()Amob_attack()Amobskill_castend_id() C³B
+ mobskill_use_id()Amobskill_use_pos()Amob_ai_sub_hard() C³B
+ mob_damage()Amob_changestate() C³B
+ mob_get_adelay()Amob_get_speed() íœB
+ skill.h C³B
+ skill.c
+ skill_unitsetting()Askill_unit_ondamaged()Askill_unit_timer_sub() C³B
+ skill_unit_timer()Askill_area_sub()Askill_unit_onplace() C³B
+ skill_status_change_start() C³B
+ chat.c C³B
+ makefile C³B
+ chrif.c C³B
+ guild.c C³B
+ itemdb.c C³B
+ map.c C³B
+ party.c C³B
+ script.c C³B
+ path.c C³B
+
+--------------
+//0717 by ¹
+
+E‘å—ʂɃ‚ƒ“ƒXƒ^[‚ð¢ŠÒ‚µ‚Ĉê“x‚É“|‚·‚Æmap-server‚ª—Ž‚¿‚é–â‘è‚ðC³B
+@(ƒJƒz‚ð100‘Ì‚¸‚¢ŠÒ‚µ‚Ä50‰ñƒeƒXƒg‚ð‚µ‚½‚Ì‚Å‹°‚ç‚­‘åä•v‚¾‚ÆŽv‚¢‚Ü‚·B)
+E‚»‚Ì‘¼Œ‹\ׂ©‚¢C³
+ (common/)
+ mmo.h
+ (map/)
+ chat.c
+ chrif.c
+ clif.c
+ guild.c
+ itemdb.c
+ map.c
+ mob.c
+ npc.c
+ party.c
+ path.c
+ pc.c
+ pet.c
+ script.c
+ skill.c
+ skill.h
+
+--------------
+//0716 by ¹
+
+E¸˜B¬Œ÷—¦‚ɑ΂µ‚ÄBS‚Ì•ŠíŒ¤‹†‚ª³‚µ‚­“K—p‚³‚ê‚Ä‚¢‚È‚©‚Á‚½–â‘è‚ðC³B
+ (map/)
+ pc.c
+ pc_percentrefinery() C³B
+
+--------------
+//0715 by Ž€_
+
+Eƒ}ƒbƒvƒT[ƒo[‚©‚ç•\Ž¦‚³‚ê‚镨‚ð•\Ž¦‚·‚é‚©‚Ç‚¤‚©‚Ìݒ肪‚Å‚«‚é‚悤‚É‚µ‚Ü‚µ‚½BƒXƒLƒ‹•\Ž¦‚¾‚¯‚Å‚à‚È‚­‚µ‚Ä‚â‚é‚ƃT[ƒo[‚ª‚©‚È‚èŠy‚É‚È‚Á‚½‚è‚à‚µ‚Ü‚·B
+ŠJ”­‚âƒoƒOƒgƒŒ[ƒX‚ÌŽž‚Í•\Ž¦‚·‚邱‚Æ‚ð‚¨Š©‚ß‚µ‚Ü‚·B
+E‚»‚Ì‘¼×‚©‚¢C³B
+EC³‚µ‚½Š‚ð‘S‚Ä‘‚¯‚È‚¢‚̂Ńtƒ@ƒCƒ‹‚¾‚¯B
+ (doc/)
+ conf_ref.txt
+ (conf/)
+ battle_athena.conf
+ (map/)
+ makefile
+ skill.c
+ script.c
+ pet.c
+ pc.c
+ path.c
+ party.c
+ npc.c
+ itemdb.c
+ intif.c
+ guild.c
+ chat.c
+ battle.h
+ battle.c
+ chrif.c
+ atcommand.c
+ clif.c
+ mob.c
+ map.c
+
+--------------
+//0714 by Ž€_
+
+Eׂ©‚¢C³B
+EƒV[ƒ‹ƒhƒu[ƒƒ‰ƒ“‚Å‚‚Ìd—ʂƸ˜B‚É‚æ‚Á‚ă_ƒ[ƒW‚ª‘‚¦‚é‚悤‚ÉC³B¸˜Bƒ_ƒ[ƒW‚ð‘«‚·Žž“K—p‚Ń_ƒ[ƒW+d—Ê+‚¸˜B*4(‚±‚Ì4‚Írefine_db.txt‚Ì–h‹ï‚̉ß踘Bƒ{[ƒiƒX‚ðŽg‚Á‚Ä‚é‚Ì‚Å•ÏX‰Â”\‚Å‚·B)‚É‚È‚è‚Ü‚·B
+EƒXƒLƒ‹‚É‚æ‚é‚«”ò‚΂µˆ—‚Å0x88ƒpƒPƒbƒg‚ðŽg‚Á‚Ä‚¢‚Ü‚µ‚½‚ª‚»‚̃pƒPƒbƒg‚Ì—D懈ʂª‚©‚È‚è’á‚¢‚炵‚­Œã‚Å—ˆ‚éƒpƒPƒbƒg‚É‚æ‚Á‚Ä–³Ž‹‚³‚ê‚邱‚Æ‚à‚ ‚é‚悤‚Ȃ̂ŃvƒŒƒCƒ„[‚¾‚¯‚É“K—p‚µ‚ă‚ƒ“ƒXƒ^[‚É‚Í0x78‚ðŽg‚¤‚悤‚É•ÏX‚µ‚Ü‚µ‚½B
+‚Å‚àˆÊ’u‚¸‚ê‚ÍŠ®‘S‚É‚È‚­‚È‚ç‚È‚¢‚悤‚Å‚·B(‹°‚ç‚­ˆÆ‚̃oƒO‚¾‚ÆŽv‚¢‚Ü‚·BŽI‚Ì
+À•W‚ðŠm”F‚µ‚Ä‚Ý‚Ü‚µ‚½‚ªŽI‚Ì•û‚Í–â‘肪‚ ‚è‚Ü‚¹‚ñ‚Å‚µ‚½B)
+ƒvƒŒƒCƒ„[‚Ìê‡0x78(PACKETVER‚ª4ˆÈã‚È‚ç0x1d8)‚ªŽg‚¦‚Ü‚¹‚ñB•ªg‚ðì‚Á‚Ä‚µ‚Ü‚¤‚Ì‚Å...
+EƒoƒO•ñƒXƒŒƒbƒh2 ‚Ì47‚ðŽæ‚èž‚Ý‚Ü‚µ‚½B
+E‚»‚Ì‘¼C³‚µ‚½Š­‚µ‚ ‚èB
+ (db/)
+ refine_db.txt C³B
+ item_db.txt C³B
+ (map/)
+ battle.c
+ battle_stopattack()Abattle_stopwalking() C³B
+ battle_get_attack_element2()Abattle_calc_pc_weapon_attack() C³B
+ battle_weapon_attack() C³B
+ path.c
+ path_blownpos() C³B
+ pc.h C³B
+ pc.c
+ pc_stop_walking()Apc_damage() C³B
+ pc_getrefinebonus() ’ljÁB
+ mob.c
+ mob_damage() C³B
+ pet.c
+ pet_target_check()Apet_stop_walking()Apet_performance() C³B
+ skill.c
+ skill_attack()Askill_blown()Askill_status_change_start() C³B
+ skill_castend_damage_id() C³B
+ makefile C³B
+
+--------------
+//0713 by ‚Û‚Û‚Û
+
+Emob_avail.txt’ljÁBitem_avail.txt‚Æ“¯—l‚ÌŽw’è‚Ń‚ƒ“ƒXƒ^[‚ÌŒ©‚½–ڂ𑼂ÌID‚Ì‚à‚Ì‚É•ÏX‚µ‚Ü‚·B
+@ƒ‚ƒ“ƒXƒ^[‚ÌIDˆÈŠO‚ðŽw’肵‚½‚è‚·‚é‚ÆPC‚âNPC‚ÌŽp‚ð‚µ‚½MOB‚Ɉê•û“I‚ÉUŒ‚‚³‚ê‚éꇂª‚ ‚é‚Ì‚Å’ˆÓB
+ (db/)
+ mob_avail.txt ’ljÁB
+ (map/)
+ clif.c
+ clif_mob0078()Aclif_mob007b() C³B
+ mob.h C³B
+ mob.c
+ mob_readdb_mobavail()Amob_get_viewclass()’ljÁB
+ do_init_mob()Amob_readdb() C³B
+
+--------------
+//0712 by Ž€_
+
+EƒV[ƒ‹ƒhƒ`ƒƒ[ƒWAƒV[ƒ‹ƒhƒu[ƒƒ‰ƒ“ŽÀ‘•B
+EƒI[ƒgƒK[ƒh‚Í‚Æ‚è‚ ‚¦‚¸ƒGƒtƒFƒNƒg‚ªo‚é‚悤‚É•ÏX‚µ‚Ü‚µ‚½B
+E0708‚Å‘‚«–Y‚êBƒfƒBƒtƒFƒ“ƒ_[‚ðŽg‚Á‚½ŽžASPD‚ƈړ®‘¬“x‚Í20%’ቺ‚µ‚Ü‚·B
+–{ŽI‚Œቺ‚·‚é‚Ì‚ÍŠm‚©‚̂悤‚Å‚·‚ª‚Ç‚ê‚®‚ç‚¢‰º‚ª‚é‚Ì‚©‚Í‚³‚Á‚Ï‚è‚í‚©‚è‚Ü‚ñ‚Ì‚Å...
+E‚»‚Ì‘¼×‚©‚¢C³B
+ (db/)
+ cast_db.txt C³B
+ skill_db.txt C³B
+ (map/)
+ battle.h C³B
+ battle.c
+ battle_calc_damage()Abattle_calc_pet_weapon_attack() C³B
+ battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
+ battle_calc_magic_attack()Abattle_calc_misc_attack() C³B
+ skill.c
+ skill_additional_effect()Askill_attack()Askill_castend_nodamage_id() C³B
+ skill_check_condition()Askill_status_change_start() C³B
+ skill_castend_damage_id() C³B
+ pc.h C³B
+ pc.c
+ pc_calcstatus()Apc_checkallowskill()Apc_unequipitem() C³B
+
+--------------
+//0711 by npc
+
+Ezλ‘¢ƒGƒtƒFƒNƒg‚ÌC³
+EƒXƒNƒŠƒvƒg–„‚ßž‚Ý•Ï”‚ÉHp,MaxHp,Sp,MaxSp‚ð’ljÁ(“Ç‚Ýž‚Ý‚Ì‚Ý)
+ (map/)
+ skill.c
+ skill_produce_mix()C³B
+ pc.c
+ pc_readparam()C³B
+ (db/)
+ const.txt C³B
+
+--------------
+//0710 by ŒÓ’±—–
+
+E–¼‘O‚É”¼ŠpƒXƒy[ƒX‚ª“ü‚Á‚½ƒp[ƒeƒB[‚ð쬂µ‚½‚Æ‚«A‚¨‚æ‚ÑA
+ ”¼ŠpƒXƒy[ƒX‚ª“ü‚Á‚½–¼‘O‚ÌPC‚ðƒp[ƒeƒBƒƒ“ƒo‚É‚µ‚½‚Æ‚«A
+ party.txt‚ª³‚µ‚­“Ç‚Ýž‚ß‚È‚­‚È‚é–â‘è‚ðC³
+
+ (char/)
+ int_party.c
+ inter_party_fromstr()C³
+
+EMessage of the Day ‹@”\’ljÁ
+ EƒƒOƒCƒ“‚µ‚½ƒ†[ƒU[‚ÉMOTD‚ð•\Ž¦‚³‚¹‚邱‚Æ‚ªo—ˆ‚Ü‚·B
+ Emap-server.exeŽÀsŽž‚̃JƒŒƒ“ƒgƒfƒBƒŒƒNƒgƒŠihelp.txt‚Æ“¯‚¶
+ ƒfƒBƒŒƒNƒgƒŠj‚Émotd.txt‚ðì‚é‚Æ•\Ž¦‚µ‚Ü‚·B
+ EMOTD‚ª•\Ž¦‚³‚ê‚éƒ^ƒCƒ~ƒ“ƒO‚ÍA
+ uƒ}ƒbƒvƒT[ƒo[‚ɃƒOƒCƒ“‚µ‚½’¼Œã‚ÌAƒ}ƒbƒvƒ[ƒhŠ®—¹Žžv‚Å‚·B
+ ‚‚܂èAƒƒOƒCƒ“’¼ŒãAƒLƒƒƒ‰ƒZƒŒ’¼Œã‚¨‚æ‚ÑA
+ ƒ}ƒbƒvƒT[ƒo[ŠÔˆÚ“®‚ÌŽž(ƒ}ƒbƒvƒT[ƒo[‚Ì•ªŽU‚ðs‚Á‚Ä‚¢‚éꇂ̂Ý)
+ ‚̃}ƒbƒvƒ[ƒh‚ªI‚í‚Á‚½Žž‚É•\Ž¦‚³‚ê‚Ü‚·B
+ E•\Ž¦•û–@‚Íhelp.txt‚Æ“¯‚¶‚Å•’ʂ̃ƒbƒZ[ƒW‚Æ‚µ‚Ä‘—M‚µ‚Ü‚·B
+ iƒMƒ‹ƒh’mƒƒbƒZ[ƒW‚Í•¶Žš”§ŒÀ‚ª‚ ‚èAGMƒAƒiƒEƒ“ƒX‚Í’·ŽžŠÔ
+ ‰æ–Ê‚Ìã•”‚É•\Ž¦‚³‚ê‚Ä‚µ‚Ü‚¤‚½‚ßj
+ E‰ï˜b‚Æ‹æ•Ê‚ª‚‚­‚悤‚ÉA"< Message of the Day >"A"< End of MOTD >"
+ ‚Ì•¶‚Å㉺‚ðˆÍ‚¢‚Ü‚·B
+
+ (map/)
+ pc.c
+ pc_authok()C³
+
+
+--------------
+//0709 by ‚Û‚Û‚Û
+
+EƒXƒNƒŠƒvƒg‚Éemotion’ljÁ
+@emotion n;‚ÆŽg‚¤‚ÆNPC‚ªƒGƒ‚‚ðo‚µ‚Ü‚·Bn‚Í0`33‚ªŽg—p‰Â”\B
+E¸˜B‚ÆŠXƒKƒCƒh‚ÌNPC‚ð–{ŽI‚̑䎌‚ɇ‚킹‚ÄC³B
+ (conf/)
+ npc_town_refine.txtAnpc_town_guide.txt C³B
+ (map/)
+ script.c
+ buildin_emotion() ’ljÁB
+
+--------------
+//0708 by Ž€_
+
+EƒXƒLƒ‹ƒLƒƒƒXƒgƒLƒƒƒ“ƒZƒ‹AƒfƒBƒtƒFƒ“ƒ_[AƒI[ƒgƒK[ƒhŽÀ‘•B
+EƒI[ƒgƒK[ƒh‚ÌꇃK[ƒh‚µ‚Ä‚àƒGƒtƒFƒNƒg‚Ío‚Ü‚¹‚ñBƒ~ƒX‚ɂȂ邾‚¯‚Å‚·B–{ŽI‚Ì•û‚Í•\Ž¦‚³‚ê‚é‚©‚Ç‚¤‚©‚à‚í‚©‚ç‚È‚¢‚µƒpƒPƒbƒgî•ñ‚à‚È‚¢‚Ì‚Å...
+EƒfƒBƒtƒFƒ“ƒ_[‚Í–¢ƒeƒXƒgBbLongAtkDef‚ðŽg‚Á‚Ä‚é‚̂Ńzƒ‹ƒ“ƒJ[ƒh‚̂悤‚ÉbLongAtkDef‚ðã‚°‚镨‚ð‘•”õ‚µ‚ÄŽg‚¤‚Ɖ“‹——£•¨—UŒ‚‚ð‘S‚Ä–³Œø‚É‚Å‚«‚Ü‚·B(‚±‚ê‚à–{ŽI‚ÌŽd—l‚ª‚Ç‚¤‚È‚Ì‚©‚Í‚í‚©‚è‚Ü‚¹‚ñB)
+E‚»‚Ì‘¼×‚©‚¢C³B
+ (db/)
+ cast_db.txt C³B
+ (map/)
+ map.h C³B
+ map.c
+ map_quit() C³B
+ skill.h C³B
+ skill.c
+ skill_castend_nodamage_id()Askill_use_id()Askill_check_condition() C³B
+ skill_castend_id()Askill_castend_nodamage_id()Askill_castcancel() C³B
+ pc.c
+ pc_calcstatus()Apc_setpos()Apc_damage() C³B
+ battle.c
+ battle_calc_damage()Abattle_damage() C³B
+ clif.c
+ clif_parse_UseSkillToId()Aclif_parse_UseSkillToPos() C³B
+ mob.c
+ mob_damage() C³B
+ itemdb.c
+ itemdb_searchrandomid() C³B
+
+--------------
+//0707 by Ž€_
+
+E0705‚̈¢C—…”e–PŒ‚̃oƒOC³B
+ (db/)
+ skill_db.txt
+ (map/)
+ skill.c
+ skill_castend_id()
+ skill_castend_pos()
+ battle.c
+ battle_calc_pc_weapon_attack()
+ clif.c
+ clif_parse_UseSkillToId()
+
+--------------
+//0706 by kalen
+EC³
+ conf/npc_warp_umbala.txt
+
+--------------
+//0705 by Ž€_
+
+EFX‚ÆC³B
+EƒvƒŒƒCƒ„[‚̃NƒŠƒeƒBƒJƒ‹ŒvŽZ‚ɃoƒO‚ª‚ ‚Á‚½‚Ì‚ÅC³B
+E”š—ô”g“®‚̈—C³B
+Eƒ‚ƒ“ƒN‚̃Rƒ“ƒ{‚ðC³B
+Eˆ¢C—…”e–PŒ‚ÌŽg—p‚É‚æ‚Á‚ă}ƒbƒvŽI‚Ì–³ŒÀƒ‹[ƒvƒoƒOC³B(‚±‚ê‚©‚È‚è’v–½“I‚È•¨‚¾‚Á‚½‚悤‚Å‚·B)
+EƒRƒ“ƒ{‚ÅŽg‚¤ˆ¢C—…”e–PŒ‚Í“G‚ðƒNƒŠƒbƒN‚·‚é•K—v‚ª‚È‚¢‚悤‚ÉC³B
+E–Ò—´Œ‚Å“G‚ð‚«”ò‚΂·‹——£‚ð5ƒZƒ‹‚É•ÏXB‚æ‚Á‚ăRƒ“ƒ{‚ÅŽg‚¤ˆ¢C—…”e–PŒ‚Í‹——£ƒ`ƒFƒbƒN‚ð‚µ‚Ü‚¹‚ñB5ƒZƒ‹”ò‚΂³‚ꂽ“G‚͈¢C—…”e–PŒ‚ÌŽË’ö‚©‚ç—£‚ꂽ‚킯‚È‚Ì‚Å‹——£ƒ`ƒFƒbƒN‚È‚µ‚Å”­“®‚µ‚Ü‚·B(–{ŽI‚ÌŽd—l‚È‚ñ‚Ä’m‚è‚Ü‚¹‚ñB)
+Eƒ}ƒbƒv‚Ì–¼‘O‚ð16byte‚©‚ç24bytes‚É•ÏXB(‘債‚½ˆÓ–¡‚Í‚ ‚è‚Ü‚¹‚ñ‚ªˆÀ‘S‚ׂ̈̕¨‚Å‚·B)
+EƒEƒFƒfƒBƒ“ƒOƒLƒƒƒ‰‚É‚æ‚éˆÆ—Ž‚¿‚ð–h‚®ˆ×‚ÉC³B
+E‚»‚Ì‘¼­‚µC³B(ƒeƒXƒg‚Í–w‚ñ‚Ç‚µ‚Ä‚Ü‚¹‚ñB)
+ (conf/)
+ battle_athena.conf C³B
+ (db/)
+ skill_db.txt C³B
+ (common/)
+ mmo.h C³B
+ (doc/)
+ conf_ref.txt C³B
+ item_bonus.txt C³B
+ (map/)
+ battle.h C³B
+ battle.c
+ battle_get_flee2()Abattle_calc_pet_weapon_attack() C³B
+ battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
+ battle_weapon_attack()Abattle_calc_magic_attack() C³B
+ battle_config_read() C³B
+ skill.h C³B
+ skill.c
+ skill_status_change_start()Askill_castend_damage_id() C³B
+ skill_check_condition()Askill_use_id()Askill_blown() C³B
+ skill_castend_map()Askill_unit_onlimit()Askill_attack() C³B
+ pc.c
+ pc_attack_timer()Apc_setpos()Apc_setsavepoint() C³B
+ pc_movepos()Apc_calcstatus()Apc_bonus() C³B
+ clif.h C³B
+ clif.c
+ clif_set0078()Aclif_set007b() C³B
+ clif_updatestatus()Aclif_initialstatus()Aclif_parse_UseSkillToId() C³B
+ clif_skillinfo() ’ljÁB
+ map.h C³B
+ map.c
+ map_setipport()Amap_addmap() C³B
+ ‚»‚Ì‘¼”²‚¯‚½Š­‚µ‚ ‚èB
+
+--------------------
+//0704 by kalen
+
+EUmbala Warp’ljÁ
+ conf/npc_warp_umbala.txt
+
+--------------------
+//0703 by ‚¢‚Ç
+
+EƒT[ƒo[snapshot
+
+--------------
+//0702 by ‚Û‚Û‚Û
+
+Eƒtƒ@[ƒ}ƒV[‚̃GƒtƒFƒNƒg‚ð–{—ˆ‚Ì‚à‚Ì‚É•ÏX
+EƒXƒNƒŠƒvƒg‚Å‚Ì–„‚ßž‚Ý•Ï”‚ÉBaseExp,JobExp,NextBaseExp,NextJobExp’ljÁ
+ (map/)
+ skill.c
+ skill_produce_mix() C³B
+ pc.c
+ pc_readparam()Apc_setparam() C³B
+ (db/)
+ const.txt C³B
+
+--------------
+//0701 by ‚Ò‚´‚Ü‚ñ
+
+EƒXƒe[ƒ^ƒXˆÙí”»•ÊŽ®“±“üBŠeƒXƒe[ƒ^ƒXˆÙí‚Ì”­“®—¦‚ªVIT/INT/MDEF‚ɉe‹¿‚·‚é‚悤‚É‚È‚è‚Ü‚·BŽ‘±ŽžŠÔ’Zk‚Í‚Ü‚½¡“x‚Å_|P|›
+E•sŽ€‚É“€Œ‹‚ªŒø‚¢‚½ƒoƒOC³B
+ (map/)
+ skill.c
+ skill_additional_effect()Askill_castend_nodamage_id() C³B
+
+--------------
+//0700 by “ì
+
+E697‚̃oƒOC³B
+@@@@(db/)
+ mob_db.txt
+
+--------------
+//0699 by Ž€_
+
+E‘•”õ‚̃{[ƒiƒXƒNƒŠƒeƒBƒJƒ‹‚ÍŽ©•ª‚̊ԈႢ‚¾‚Á‚½‚Ì‚ÅbCriticalRate‚ðbCritical‚É•ÏXB‚»‚ê‚Æ0695‚Å‘‚«–Y‚ê‚Å‚·‚ªASPD‚ðã‚°‚éƒJ[ƒh‚â‘•”õ‚̈ꕔ‚ðbAspdAddRate‚©‚çbAspdRate‚É•ÏX‚µ‚Ü‚µ‚½B‚Ý‚·‚Ƃꑃ‚̃Vƒ~ƒ…ƒŒ[ƒ^[‚É‚æ‚é‚ƃhƒbƒyƒ‹ƒJ[ƒh‚Í•¡”‚Å‚àˆê‚‚µ‚©“K—p‚³‚ê‚È‚¢‚Ý‚½‚¢‚¾‚Á‚½‚Ì‚ÅB
+ (db/)
+ item_db.txt
+
+--------------
+//0698 by Ž€_
+
+Eˆê•”‚̃Lƒƒƒ‰‚Éd—Ê‚ª‚O‚É‚È‚Á‚ăJƒvƒ‰‚Ȃlj½‚à‚o‚bC‚m‚b‚o‚ª•\Ž¦‚³‚ê‚È‚­‚È‚éƒoƒOC³B(‚»‚ꂾ‚¯)
+ (common/)
+ mmo.h C³B
+ (map/)
+ clif.c
+ clif_updatestatus() C³B
+ pc.c
+ pc_calcstatus() C³B
+
+--------------
+//0697 by “ì
+
+Emob_dbC³
+@ƒhƒƒbƒv‚ð’†S‚ÉC³B
+@@@@(db/)
+ mob_db.txt
+
+--------------
+//0696 by Ž€_
+
+EƒoƒOC³B
+EƒeƒŒƒ|[ƒg‚âƒ[ƒv“™‚ÌŽžƒXƒLƒ‹ƒ†ƒjƒbƒg‚©‚甲‚¯‚鈗‚ª“ü‚Á‚Ä
+‚È‚©‚Á‚½‚Ì‚ÅSAFETYWALL“™‚É‚æ‚Á‚ÄŽI—Ž‚¿‚ª‹N‚±‚Á‚½‚悤‚Å‚·B(Šm‚©•ñ‚à
+‚ ‚Á‚½‚ÆŽv‚¢‚Ü‚·‚ª...) ‚æ‚Á‚ÄC³‚Í‚µ‚Ü‚µ‚½‚ªŠm”F‚Í‚µ‚Ä‚Ü‚¹‚ñB•ñ‚ð
+‚¨Šè‚¢‚µ‚Ü‚·B
+EƒXƒLƒ‹‚É‚æ‚é‚«”ò‚΂µˆ—‚ð‚¿‚å‚Á‚ÆC³‚ƃ‚ƒ“ƒXƒ^[‚̃R[ƒh‚ð­‚µC³B
+‘½•ª•Ï‚É‚È‚Á‚½‚±‚Æ‚Í‚È‚¢‚ÆŽv‚¢‚Ü‚·‚ª•Ï‚¾‚Á‚½‚ç•ñ‚µ‚Ä‚­‚¾‚³‚¢B
+E‚»‚Ì‘¼×‚©‚¢C³B
+ (map/)
+ skill.h C³B
+ skill.c
+ skill_blown()Askill_attack()Askill_unit_move() C³B
+ skill_castend_nodamage_id()Askill_castend_damage_id() C³B
+ skill_unit_out_all()Askill_unit_out_all_sub() ’ljÁB
+ mob.c
+ mob_stop_walking()Amob_spawn()Amob_warp() C³B
+ mob_can_move()Amob_changestate() C³B
+ map.h C³B
+ pc.c
+ pc_setpos() C³B
+ battle.c
+ battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
+ battle_calc_pc_weapon_attack() C³B
+
+--------------
+//0695 by Ž€_
+
+E­‚µC³B
+EƒvƒŒƒCƒ„[‚ÌŠî–{ƒpƒ‰ƒ[ƒ^‚ð2byte‚ÉŠg’£B
+Eitem_db.txt‚ðƒ‰ƒOƒiƒQ[ƒg‚Ìà–¾‚ɇ‚킹‚ÄC³B
+EbAddEff‚ÆbResEff‚ÌŠm—¦‚ð•S•ª—¦‚©‚ç–œ•ª—¦‚É•ÏXB
+EƒXƒNƒŠƒvƒgstatusup‚Æstatusup2’ljÁB
+statusup bStr; ‚̂悤‚ÉŽg‚Á‚Ä‹@”\‚̓Xƒe[ƒ^ƒXƒ|ƒCƒ“ƒg‚ðŒ¸‚ç‚µ‚Ä
+Šî–{ƒpƒ‰ƒ[ƒ^‚ð1ã‚°‚éB
+statusup2 bInt,n; ‚̂悤‚ÉŽg‚Á‚Ä‹@”\‚̓Xƒe[ƒ^ƒXƒ|ƒCƒ“ƒg‚ðŒ¸‚ç‚³‚¸‚É
+Šî–{ƒpƒ‰ƒ[ƒ^‚ðnã‚°‚éB
+E‚»‚Ì‘¼×‚©‚¢C³B
+ (conf/)
+ battle_athena.conf C³B
+ (db/)
+ item_db.txt C³B
+ const.txt C³B
+ (doc/)
+ item_bonus.txt C³B
+ conf_ref.txt C³B
+ (common/)
+ mmo.h C³B
+ (char/)
+ char.c
+ mmo_char_send006b()Aparse_char() C³B
+ (map/)
+ map.h C³B
+ clif.h C³B
+ clif.c
+ clif_initialstatus()Aclif_updatestatus() C³B
+ pc.h C³B
+ pc.c
+ pc_bonus()Apc_calcstatus()Apc_equippoint()Apc_equipitem() C³B
+ pc_jobchange()Apc_checkbaselevelup()Apc_statusup() C³B
+ pc_statusup2() ’ljÁB
+ battle.h C³B
+ battle.c
+ battle_calc_pet_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
+ battle_calc_pc_weapon_attack()Abattle_config_read() C³B
+ skill.c
+ skill_additional_effect()Askill_status_change_start() C³B
+ script.c
+ buildin_statusup()Abuildin_statusup2() ’ljÁB
+ atcommnad.c C³B
+
+--------------
+//0694 by Ž€_
+
+EƒoƒOC³‚Æׂ©‚¢C³B
+EbCriticalRate‚ª³‚µ‚­“K—p‚³‚ê‚È‚©‚Á‚½–â‘èC³B
+Eƒyƒbƒg‚É‚æ‚éƒXƒe[ƒ^ƒXƒ{[ƒiƒX’ljÁBƒXƒe[ƒ^ƒXƒ{[ƒiƒX‚Í‘•”õ‚Ì
+ƒXƒNƒŠƒvƒg‚É‚æ‚Á‚Äݒ肵‚Ü‚·B‚½‚¾ƒyƒbƒg‚É‚æ‚éƒ{[ƒiƒX‚̓J[ƒh‚É‚æ‚镨‚Æ“¯‚¶ˆµ‚¢‚ð‚µ‚Ü‚·B‚»‚µ‚Ä‘®«‚Ì“K—p‚͈ê”Ô—D懈ʒႢ‚Å‚·B¡‚͉½‚à“ü‚Á‚Ä‚Ü‚¹‚ñ‚ª...
+ (conf/)
+ battle_athena.conf C³B
+ (db/)
+ const.txt C³B
+ pet_db.txt C³B
+ (doc/)
+ item_bonus.txt C³B
+ conf_ref.txt C³B
+ db_ref.txt C³B
+ (map/)
+ map.h C³B
+ map.c
+ map_quit() C³B
+ battle.h C³B
+ battle.c
+ battle_calc_pc_weapon_attack()Abattle_weapon_attack() C³B
+ battle_calc_magic_attack()Abattle_calc_misc_attack() C³B
+ battle_config_read() C³B
+ pc.c
+ pc_calcstatus()Apc_bonus()Apc_setpos()Apc_authok() C³B
+ pc_damage()Apc_autosave_sub() C³B
+ pet.h C³B
+ pet.c
+ pet_hungry()Apet_birth_process()Apet_recv_petdata()Apet_food() C³B
+ pet_return_egg()Apet_ai_sub_hard()Aread_petdb() C³B
+ clif.c
+ clif_sendegg()Aclif_parse_LoadEndAck() C³B
+ atcommand.c C³B
+ makefile C³B
+
+--------------
+//0693 by ŒÓ’±—–
+
+ESC_*‚Ì—ñ‹“•\‚ðƒŠƒiƒ“ƒoƒŠƒ“ƒO
+ ƒNƒ‰ƒCƒAƒ“ƒg‚É’Ê’m‚·‚é‚Ì‚ð64–¢–ž‚©‚ç128–¢–ž‚É‘‚₵‚½
+ ƒpƒPƒbƒgî•ñ‚ɇ‚¤‚悤‚ɃŠƒiƒ“ƒo[
+ StatusChange‚Ì”z—ñ‚ð128‚©‚ç192‚É‘‚₵‚½‚̂Ńƒ‚ƒŠŽg—p—Ê‚ª‘‚¦‚Ü‚·B
+
+ (db/)
+ const.txt
+ SC_* ‚Ì”’l‚ð•ÏX
+ (map/)
+ skill.h
+ SC_* ‚Ì—ñ‹“‚Ì”’l‚ð•ÏX
+ map.h
+ MAX_STATUSCHANGE‚ð128‚©‚ç192‚É‘‚₵‚½
+ skill.c
+ skill_status_change_start(),skill_status_change_end(),
+ skill_status_change_clear()‚Ì’Ê’mˆ—‚ð•ÏX
+
+E‰‰‘t/ƒ_ƒ“ƒX‚̈—‚ð•ÏX
+ ‰‰‘t/ƒ_ƒ“ƒX’†‚©‚Ç‚¤‚©‚ðSC_DANCING‚Å”»’è‚·‚é‚悤‚É•ÏX
+ i”»’舗‚ª‘½­‚‘¬‰»‚³‚ꂽ‚Í‚¸j
+ ƒ[ƒv(ƒ}ƒbƒvˆÚ“®‚┈‚È‚Ç)‚·‚é‚Ɖ‰‘t/ƒ_ƒ“ƒX‚ð’†’f‚·‚é‚悤‚É•ÏX
+
+ skill.h/skill.c
+ skill_check_dancing()íœAskill_stop_dancing()’ljÁ
+ skill_delunitgroup(),skill_initunitgroup()•ÏX
+ skill_status_change_start()•ÏX
+ skill_castend_nodamage_id()•ÏX
+ ‘‚«‘¹‚¶‚ª‚ ‚é‚©‚àEE
+ pc.c
+ pc_calcstatus(),pc_setpos(),pc_damage()•ÏX
+
+E•s‹¦˜a‰¹ƒXƒLƒ‹‚ÌC³
+ (db/)
+ skill_db.txt
+ •s‹¦˜a‰¹ƒXƒLƒ‹‚ÌHIT”C³
+ (map/)
+ skill.c
+ skill_status_change_timer()•ÏX
+ battle.c
+ battle_calc_misc_attack()C³
+
+--------------
+//0692 by ŒÓ’±—–
+
+EƒAƒhƒŠƒuƒXƒLƒ‹‚ªŽg—p‚Å‚«‚È‚¢–â‘èC³iskill_db‚Ì“Y•t‚µ–Y‚êj
+ (db/)
+ skill_db.txt
+ ƒAƒhƒŠƒu‚ÌÁ”ïSP‚ð1‚ÉC³
+
+Emob_db2.txt‚ª‚ ‚ê‚Îmob_db.txt‚ɃI[ƒo[ƒ‰ƒCƒh‚·‚é‚悤‚É
+ ƒIƒŠƒWƒiƒ‹mob‚ðì‚Á‚Ä‚él‚ÍŽg‚¤‚Æ•Ö—˜‚©‚à‚µ‚ê‚Ü‚¹‚ñB
+
+ mob.c
+ mob_readdb()
+
+EŽI—Ž‚¿ƒoƒO•ñŽž‚Ì‚½‚߂̃Xƒ^ƒbƒNƒoƒbƒNƒgƒŒ[ƒXƒƒOŠ“¾•û–@‚ðЉî
+ ŽI—Ž‚¿ƒoƒO‚Ì•ñŽž‚ÉA‚±‚Ìî•ñ‚ðƒRƒsƒy‚·‚é‚ÆŠJ”­ŽÒ‚ªŠì‚Ñ‚Ü‚·B
+ Cygwin‚Åcore‚Ì“f‚©‚¹‚é•û–@‚àЉ‚Ä‚Ü‚·B
+
+ (doc/)
+ coredump_report.txt
+
+--------------
+//0691 by ŒÓ’±—–
+
+Eitem_db2.txt‚ª‚ ‚ê‚Îitem_db.txt‚ɃI[ƒo[ƒ‰ƒCƒh‚·‚é‚悤‚É
+ ƒIƒŠƒWƒiƒ‹ƒAƒCƒeƒ€‚ðì‚Á‚Ä‚él‚ÍŽg‚¤‚Æ•Ö—˜‚©‚à‚µ‚ê‚Ü‚¹‚ñB
+
+ itemdb.c
+ itemdb_readdb()C³
+
+E‰‰‘t/ƒ_ƒ“ƒXŒnƒXƒLƒ‹‰¼ŽÀ‘•
+ E‰‰‘t/ƒ_ƒ“ƒX’†‚͈ړ®‚ª’x‚­AƒXƒLƒ‹‚àŽg‚¦‚È‚¢‚悤‚É‚È‚è‚Ü‚µ‚½
+ EƒAƒhƒŠƒuƒXƒLƒ‹‚ʼn‰‘t/ƒ_ƒ“ƒX‚ð’†’f‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+ E‰‰‘t/ƒ_ƒ“ƒX‚ÍΉ»‚Ȃǂ̈ÙíAMHP‚Ì1/4ˆÈã‚̃_ƒ[ƒW‚Å’†’f‚µ‚Ü‚·
+ EƒLƒƒƒ‰ƒNƒ^[ƒOƒ‰ƒtƒBƒbƒN‚͉‰‘t/ƒ_ƒ“ƒX‚µ‚Ü‚¹‚ñ
+ E‰‰‘t/ƒ_ƒ“ƒX’†‚ÌSPÁ”ï‚Í–¢ŽÀ‘•‚Å‚·
+ EˆÚ“®‚µ‚Ä‚àŒø‰Ê”͈͂͂‚¢‚Ä‚«‚Ü‚¹‚ñ
+ Ed•¡‚µ‚Ä‚à•s‹¦˜a‰¹‚Ȃǂɕω»‚µ‚Ü‚¹‚ñ
+ EƒGƒtƒFƒNƒg‚ªo‚Ä‚àŒø‰Ê‚Í–¢ŽÀ‘•‚Ì‚à‚Ì‚ª‚ ‚è‚Ü‚·
+ E‚Ù‚Æ‚ñ‚Ç–¢ƒeƒXƒg‚È‚Ì‚Å‘½”‚Ì•s“s‡‚ª‚ ‚é‚ÆŽv‚¢‚Ü‚·
+
+ skill.h
+ SC_* ‚Ì—ñ‹“•\‚ðC³
+ skill.c
+ skill_check_dancing()’ljÁ
+ SkillStatusChangeTable[]C³
+ skill_unit_onout(), skill_status_change_start(),
+ skill_status_change_timer(),skill_unitsetting(),
+ skill_castend_id(),skill_castend_pos(),skill_castend_map(),
+ skill_castend_nodamage_id()C³
+ ‚»‚Ì‘¼‚Í–Y‚ê‚Ü‚µ‚½
+ pc.c
+ pc_calcstatus(),pc_damage()C³
+
+--------------
+//0690 by ”g˜Q
+
+Eׂ©‚¢C³
+ (db/)
+ item_db.txt ‚ƃƒMƒ“ƒMƒ‡ƒ‹ƒh‚Ìbonus‚ðC³B
+ (doc/)
+ item_bonus.txt C³B
+
+--------------
+//0689 by Ž€_
+
+E‘qŒÉƒoƒOC³‚Æׂ©‚¢C³B
+ (map/)
+ pc.c
+ pc_modifybuyvalue()Apc_modifysellvalue() C³B
+ storage.c
+ storage_storageopen() C³B
+ storage_storage_quit()Astorage_storage_save() C³B
+
+--------------
+//0688 by ¹
+
+EƒfƒBƒXƒJƒEƒ“ƒgAƒRƒ€ƒpƒ‹ƒVƒ‡ƒ“ƒfƒBƒXƒJƒEƒ“ƒgAƒI[ƒo[ƒ`ƒƒ[ƒW‚ª“K—p‚³‚ê‚È‚©‚Á‚½–â‘è‚ðC³B
+ (map/)
+ pc.c
+ pc_modifybuyvalue() C³B
+ pc_modifysellvalue() C³B
+
+--------------
+//0687 by Ž€_
+
+E­‚µC³B
+Ebattle_athena.conf‚É€–ڒljÁB(Ú‚µ‚¢‚±‚Æ‚Íconf_ref.txt‚Å)
+Eitem_avail.txt‚̈—‚ð•ÏXBƒAƒCƒeƒ€ID‚ÌŒã‚É0‚ð“ü‚ê‚é‚Æ¡‚Ü‚Å’Ê‚è‚ÉŽg—p•s‰Â”\‚ɂȂ邪0ˆÈŠO‚Ì”’l‚ð“ü‚ê‚é‚ÆŽg—p•s‰Â”\‚Å‚Í‚È‚­‚»‚Ì”’l‚ðƒAƒCƒeƒ€‚ÌID‚Æ‚µ‚ÄŒ©‚½–Ú‚¾‚¯‚ð‚»‚ê‚É•ÏX‚µ‚Ü‚·B‚æ‚Á‚ĈƗŽ‚¿ƒAƒCƒeƒ€‚ð•Ê‚Ì•¨‚É•\Ž¦‚µ‚ĈƗŽ‚¿‚ð–h‚®‚±‚Æ‚ª‚Å‚«‚Ü‚·B(•\Ž¦‚¾‚¯•Ï‚¦‚ÄŽI‚̈—‚Í–{“–‚̃AƒCƒeƒ€ID‚Ì•¨‚Æ‚µ‚Ä”FŽ¯‚µ‚Ü‚·BC³‚Í‘S‚Ä‚µ‚½‚ÆŽv‚¢‚Ü‚·‚ª”²‚¯‚½Š‚ª‚ ‚é‚©‚à’m‚è‚Ü‚¹‚Ì‚ÅŒ©‚½–Ú•ÏX‚µ‚½ƒAƒCƒeƒ€‚ňƗŽ‚¿‚ª‹N‚±‚Á‚½‚ç•ñ‚µ‚Ä‚­‚¾‚³‚¢B) ŽI‚̈—‚Í‚±‚ꂪŒÀŠE‚Å‚·B(­‚È‚­‚Æ‚àŽ©•ª‚É‚Í) ƒAƒCƒeƒ€‚ª“¯‚¶•¨‚ª“ñ‚•\Ž¦‚³‚ê‚ĊԈႢˆÀ‚¢‚Æ‚©‚Ç‚¤‚±‚¤‚Æ‚©‚Ì•¶‹å‚ðŒ¾‚¢‚½‚¢l‚͈Æì‚ê‚æBˆÈãB
+EƒWƒ‹ƒ^ƒX‚ƃAƒŠƒX‚̃Rƒ}ƒ“ƒgƒAƒEƒg‰ðœBitem_avail.txt‚Å—‘‚ðƒ‹ƒr[‚ƃAƒNƒAƒ}ƒŠƒ“‚Å•\Ž¦‚µ‚ĕߊlƒAƒCƒeƒ€‚à‘¼‚Ì•¨‚É•\Ž¦‚·‚é‚悤‚É•ÏX‚µ‚Ä‚¢‚Ü‚·B
+Eƒ_ƒ[ƒWŒvŽZ‚̃oƒOC³B(‘債‚½•¨‚¶‚á‚ ‚è‚Ü‚¹‚ñ‚ª‹|‚¾‚¯‚¿‚å‚Á‚Æ–â‘肪‚ ‚Á‚½‚悤‚Å‚·B)
+E” “™‚̃AƒCƒeƒ€‚Å“¾‚½‘•”õ•i‚Í–¢ŠÓ’è‚É‚È‚é‚悤‚É•ÏXB
+E‘•”õƒ{[ƒiƒX‚Ì“à•”ˆ—C³‚Æ­‚µ•ÏXB(Ú‚µ‚¢‚±‚Æ‚Íitem_bonus.txt‚Å)
+EƒLƒƒƒ‰ŽI‚Ƀe[ƒ^‚𑗂鎞ƒLƒƒƒ‰A‘qŒÉAƒyƒbƒg‚̃e[ƒ^‚𓯎ž‚É‘—‚é‚悤‚É•ÏXB(ƒLƒƒƒ‰ŽI‚ƃ}ƒbƒvŽI‚ÌŠÔ‚Ì“]‘——Ê‚ª‘‚¦‚é‚©‚à’m‚è‚ê‚Ü‚¹‚ñ‚ªƒf[ƒ^‚𓯊ú‰»‚ׂ̈ł·B)
+EFW‚Ì“®ìŠÔŠu‚ð0.25•b‚©‚ç0.1•b‚É•ÏXB(‚±‚ê‚Å ‚蔲‚Í­‚µŒ¸‚é‚Í‚¸‚Å‚·B)
+EƒJ[ƒgƒŒƒ{ƒŠƒ…ƒVƒ‡ƒ“‚Å‚Ç‚ñ‚Èó‘ÔˆÙí‚à‚©‚©‚ç‚È‚¢‚悤‚É•ÏXB
+ (conf/)
+ battle_athena.conf C³B
+ (db/)
+ const.txt C³B
+ item_avail.txt C³B
+ pet_db.txt C³B
+ (doc/)
+ conf_ref.txt C³B
+ item_bonus.txt C³B
+ (map/)
+ map.h C³B
+ map.c
+ map_quit() C³B
+ battle.h C³B
+ battle.c
+ battle_calc_pc_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
+ battle_calc_pet_weapon_attack()Abattle_calc_magic_attack() C³B
+ battle_get_dmotion()Abattle_config_read() C³B
+ pc.c
+ pc_calcstatus()Apc_bonus()Apc_bonus3()Apc_setpos() C³B
+ pc_makesavestatus()Apc_autosave_sub()Apc_modifybuyvalue() C³B
+ pc_modifysellvalue()Apc_stop_walking() C³B
+ skill.c
+ skill_additional_effect()Askill_unitsetting() C³B
+ clif.c
+ clif_buylist()Aclif_selllist()Aclif_set009e()Aclif_set0078() C³B
+ clif_set007b()Aclif_additem()Aclif_itemlist()Aclif_equiplist() C³B
+ clif_storageitemlist()Aclif_storageequiplist()Aclif_changelook() C³B
+ clif_arrow_create_list()Aclif_useitemack()Aclif_tradeadditem() C³B
+ clif_storageitemadded()Aclif_getareachar_item() C³B
+ clif_skill_produce_mix_list()Aclif_cart_additem()Aclif_cart_itemlist() C³B
+ clif_cart_equiplist()Aclif_vendinglist()Aclif_openvending() C³B
+ clif_produceeffect()Aclif_sendegg()Aclif_pet_equip()Aclif_mvp_item() C³B
+ clif_pet0078()Aclif_pet007b() C³B
+ itemdb.h C³B
+ itemdb.c
+ itemdb_searchrandomid()Aitemdb_search()Aitemdb_readdb() C³B
+ itemdb_read_itemavail()Aitemdb_read_itemvaluedb() C³B
+ itemdb_equippoint() íœB
+ storage.h C³B
+ storage.c
+ storage_storage_quitsave() ->storage_storage_quit()‚É•ÏX‚ÆC³B
+ storage_storageclose() C³B
+ atcommand.c C³B
+ pet.c
+ pet_change_name()Apet_equipitem()Apet_unequipitem() C³B
+ pet_birth_process()Apet_return_egg() C³B
+ script.c
+ buildin_getitem() C³B
+ mob.c
+ mob_stop_walking() C³B
+ makefile C³B
+
+--------------
+//0686 by ¹
+
+Eׂ©‚¢C³B
+ (map/)
+ pc.h C³B
+
+--------------
+//0685 by ”g˜Q
+
+E0683A0684‚Å‚Ìbonus‚̒ljÁ‚É‚Æ‚à‚È‚Á‚Äitem_db.txt‚ðC³
+E‘¼FXC³
+ (db/)
+ item_db.txt C³B
+ (doc/)
+ item_bonus.txt C³B
+
+--------------
+//0684 by Ž€_
+
+Eׂ©‚¢C³B
+EŽ€‚ñ‚¾‚Ó‚è‚ÌŽžƒXƒLƒ‹‚ƃAƒCƒeƒ€‚ªŽg‚¦‚È‚¢‚悤‚É•ÏXB
+EbInfiniteEndure’ljÁB‹@”\‚Í–³ŒÀƒCƒ“ƒfƒ…ƒAB
+Eƒ_ƒ[ƒW•\Ž¦‚̈—­‚µ•ÏXB
+ (db/)
+ const.txt C³B
+ (doc/)
+ item_bonus.txt C³B
+ (map/)
+ map.h C³B
+ pc.c
+ pc_calcstatus() C³B
+ pc_equipitem()Apc_unequipitem() C³B
+ clif.c
+ clif_parse_UseItem()Aclif_parse_UseSkillToId() C³B
+ clif_parse_UseSkillToPos()Aclif_parse_UseSkillMap() C³B
+ clif_damage()Aclif_skill_damage()Aclif_skill_damage2() C³B
+ clif_parse_LoadEndAck() C³B
+ skill.c
+ skill_status_change_timer() C³B
+
+--------------
+//0683 by Ž€_
+
+EƒoƒOC³‚Æbonus’ljÁB
+E‘qŒÉƒoƒOA‘®«ƒoƒOC³‚Æ‚»‚Ì‘¼‚̃oƒOC³B
+EƒXƒNƒŠƒvƒgbonus3’ljÁB¡‚ÍbAddMonsterDropItem‚¾‚¯‚ª‘Ήž‚É‚È‚Á‚Ä‚¢‚Ü‚·B
+Ebonus bRestartFullRecover;n;“™‚Ån‚Í–³ˆÓ–¡‚¾‚¯‚ÇÁ‚·‚Ì‚Í‚¿‚å‚Á‚Æ‚Ü‚¸‚¢‚Å‚·‚Ì‚Å0‚É‚µ‚Ä“ü‚ꂽ•û‚ª‚¢‚¢‚Å‚·Bbonus‚Í2‚‚̔’l‚ª•K—v‚ȃXƒNƒŠƒvƒg‚È‚Ì‚ÅB
+EbDefRatioAtk‚ð–hŒä–³Ž‹‚É•ÏXB
+E0677‚Å‘‚«–Y‚êB
+E•Ší‚Ì‘®«“K—p—D懈ʂ𻑢>ƒJ[ƒh>•Ší‚É•ÏXB»‘¢‚ªÅ—Dæ‚Å‚·B(‘®«‚ª‚ ‚鎞‚ɘb‚Å‚·B‘®«‚ª‚È‚¢ê‡‘®«‚ ‚镨‚Éã‘‚«‚³‚ꂽ‚è‚Í‚µ‚Ü‚¹‚ñB)
+E‘•”õ‚Å“K—p‚³‚ê‚éŒø‰Ê‚Ì—D懈ʂð‰EŽè>¶Žè>‘Ì>“ªã>“ª’†>“ª‰º>ƒ[ƒu>ŒC>ƒAƒNƒZƒTƒŠ[1>ƒAƒNƒZƒTƒŠ[2>–î‚ÉÝ’èB(–{ŽIŽd—l‚ª‚Ç‚¤‚È‚Ì‚©•ª‚©‚邱‚Æ‚ª‚Å‚«‚»‚¤‚È•¨‚Å‚à‚È‚¢‚̂ŃAƒeƒi‚ÌŽd—l‚ÆŒ¾‚¤‚±‚Æ‚ÅB) ‰EŽè‚ªÅ—Dæ‚Å‚·B
+E•Ší‚ÌŽË’ö‚ð‰EŽè‚ƶŽè‚Ì•Ší‚Ì’†‚Å’·‚¢•¨‚ð“K—p‚·‚é‚悤‚É•ÏXB
+ (db/)
+ const.txt C³B
+ (doc/)
+ item_bonus.txt C³B
+ (map/)
+ map.h C³B
+ battle.c
+ battle_calc_pc_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
+ battle_calc_pet_weapon_attack()Abattle_calc_magic_attack() C³B
+ battle_damage() C³B
+ pc.c
+ pc_autosave_sub()Apc_calcstatus() C³B
+ pc_bonus()Apc_bonus2() C³B
+ pc_bonus3() ’ljÁB
+ script.c
+ buildin_bonus3() ’ljÁB
+ mob.c
+ mob_once_spawn()Amob_damage() C³B
+ storage.h C³B
+ storage.c
+ storage_storage_save() ’ljÁ
+ atcommand.c C³B
+
+--------------
+//0682 by ¹
+
+EƒXƒs[ƒhƒAƒbƒvƒ|[ƒVƒ‡ƒ“Œn‚̃oƒOC³
+ (map/)
+ pc.c
+ pc_calcstatus() C³B
+
+--------------
+//0681 by Ž€_
+
+E‘•”õƒoƒOC³B
+ (map/)
+ pc.c
+ pc_equipitem() C³B
+
+--------------
+//0680 by ¹
+
+Eׂ©‚¢C³B
+Eu@monstervƒRƒ}ƒ“ƒh‚Ń‚ƒ“ƒXƒ^[ID‚ÌŽw’è‚Éu-1vAu-2v“™‚ðŽw’è‚·‚é‚Æ
+@ƒ‚ƒ“ƒXƒ^[‚ðƒ‰ƒ“ƒ_ƒ€‚Å¢ŠÒ‚Å‚«‚é‹@”\‚ð’ljÁB
+ (map/)
+ mob.c
+ atcommand.c
+
+--------------
+//0679 by ”g˜Q
+
+E0676‚ÅV‚µ‚¢ƒAƒCƒeƒ€Œø‰Ê‚ªŽÀ‘•‚³‚ꂽ‚Ì‚ÅAitem_db.txt‚ðC³(bonus bAddMonsterDropItem,n,x; ‚ÍAŽí‘°”»’肪‚Å‚«‚È‚¢‚Ì‚Å‚Æ‚è‚ ‚¦‚¸•Û—¯‚µ‚Ü‚µ‚½B)
+E‘¼FXC³
+ (db/)
+ item_db.txt
+ job_db1.txt
+ (doc/)
+ item_bonus.txt
+
+--------------
+//0678 by ¹
+
+E¢ŠÒŠÖ˜A‚Ìׂ©‚¢C³B
+ (map/)
+ mob.c
+ mob_once_spawn_area() C³B
+
+--------------
+//0677 by Ž€_
+
+Eׂ©‚¢C³B
+EƒAƒCƒeƒ€”„”ƒ‚É‚æ‚Á‚Ä“¾‚ç‚ê‚éŒoŒ±’l‚ðƒJ[ƒh‚É‚æ‚éƒXƒLƒ‹‚Å‚Í“¾‚ç‚ê‚È‚¢‚悤‚ÉC³B
+E“Å‚ÉŠ|‚©‚é‚ÆŽ©‘R‰ñ•œ‚Å‚«‚È‚¢‚悤‚ÉC³B
+E0676‚Å‘‚«–Y‚êB»‘¢•Ší‚Ìꇻ‘¢‚É‚æ‚Á‚Ä—^‚¦‚½‘®«‚ª•Ší‚Ì‘®«‚æ‚è—D悵‚Ä“K—p‚³‚ê‚é‚悤‚É•ÏXB(»‘¢•Ší‚ª–³‘®«‚Ìꇂ͓K—p‚³‚ê‚Ü‚¹‚ñB)
+ (doc/)
+ item_bonus.txt ŒëŽšC³B
+ (map/)
+ npc.c
+ npc_buylist()Anpc_selllist() C³B
+ pc.c
+ pc_calcstatus()Apc_natural_heal_sub() C³B
+
+--------------
+//0676 by Ž€_
+
+EFX‚ÆC³B
+Ebattle_athena.conf‚É€–ڒljÁB(Ú‚µ‚¢‚±‚Æ‚Íconf_ref.txt‚Å)
+E‚Ý‚·‚Ƃꑃ‚ðŽQl‚µ‚ă_ƒ[ƒWŒvŽZ‚ð­‚µC³B
+E‘•”õbonus‚ÉFX‚ƒljÁB(Ú‚µ‚¢‚±‚Æ‚Íitem_bonus.txt‚Å)
+EŽ©“®ƒZ[ƒu‚·‚鎞(ƒLƒƒƒ‰ŽI‚Ƀf[ƒ^‚𑗂鎞)‘qŒÉ‚̃f[ƒ^‚à‘—‚é‚悤‚É•ÏXB
+E0667‚ÅŒ¾‚¢–Y‚êBƒJ[ƒg‚ðŠO‚µ‚Ä‚àƒAƒCƒeƒ€‚ªÁ‚¦‚È‚¢‚悤‚É•ÏXB(–{ŽI‚ÅÁ‚¦‚é‚Ì‚ªŽd—l‚¾‚ÆŽv‚Á‚Ä‚¢‚½‚¯‚ÇC³‚³‚ꂽ‚Ý‚½‚¢‚È‚Ì‚ÅB)
+EŽæˆø—v¿‚ðŽó‚¯‚鑤‚ÍŠî–{ƒXƒLƒ‹‚ðƒ`ƒFƒbƒN‚µ‚È‚¢‚悤‚ÉC³B(Žó‚¯‚鑤‚ÌŠî–{ƒXƒLƒ‹ƒ`ƒFƒbƒN‚ÍŽ©•ª‚ª“ü‚ꂽ•¨‚Å‚Í‚È‚¢‚Å‚·B‚¢‚‚̊Ԃɂ©“ü‚Á‚Ä‚¢‚½‚Ì‚Å휂µ‚Ü‚µ‚½B)
+E–h‹ï‚̸˜Bƒ{[ƒiƒX‚ð’[”–³Ž‹‚É•ÏXB(‚±‚ꂪ–{ŽI‚ÌŽd—l‚Ý‚½‚¢‚È‚Ì‚Å)
+EƒAƒ“ƒNƒ‹‚̈—­‚µ•ÏXB(‚©‚©‚ç‚È‚¢‚ÆŒ¾‚¤•ñ‚ª‚ ‚è‚Ü‚µ‚½‚Ì‚Å...)
+EƒvƒŒƒCƒ„[‚̃Xƒe[ƒ^ƒXŒvŽZ‚Å–â‘è‚ ‚è‚»‚¤‚ÈŠC³B
+EƒJ[ƒh‚ÌID‚Å‹@”\‚ªŒˆ‚Ü‚Á‚Ä‚¢‚½ƒJ[ƒh‚àƒXƒNƒŠƒvƒg‚É‚æ‚Á‚Ä•Ï‚¦‚邱‚Æ‚ª‚Å‚«‚é‚悤‚É•ÏXB(Ú‚µ‚¢‚±‚Æ‚Íitem_bonus.txt‚Å)
+EaspdŒvŽZ•û–@­‚µ•ÏXB
+E–î‚ÉbCriticalAbAtkEleAbHitAbAddEleAbAddRaceAbAddSizeAbAddEff‚ð“K—p‚Å‚«‚é‚悤‚É•ÏXB–î‚ðŽg‚¤ƒXƒLƒ‹‚â‹|‚É‚æ‚éUŒ‚‚¾‚¯‚É–î‚ÌbCriticalAbAtkEleAbHitAbAddEleAbAddRaceAbAddSizeAbAddEff‚ª“K—p‚³‚ê‚é‚悤‚ÉC³B
+EƒLƒŠ‚ÌŽÀ‘•‚ɈׂÉC³‚Í‚µ‚Ü‚µ‚½‚ªƒLƒŠ‚ª–hŒä–³Ž‹‚È‚Ì‚©‚Ç‚¤‚©‚ª‚í‚©‚ç‚È‚©‚Á‚½‚Ì‚Å–hŒä–³Ž‹‚Í‚µ‚È‚¢‚悤‚É‚È‚Á‚Ä‚¢‚Ü‚·B
+EƒeƒXƒg‚µ‚½•¨‚ÍbAddMonsterDropItem‚ÆbGetZenyNum‚¾‚¯‚Ȃ̂ųí‚É“®ì‚·‚é‚©‚Ç‚¤‚©‚Ì•ñ‚ª—~‚µ‚¢Š‚Å‚·B(‚‚¢‚Å‚Éitem_db‚ÌC³‚à...‚±‚ê‚Å‹zŽûŒn‚ƃI[ƒgƒXƒyƒ‹ŒnˆÈŠO‚Í–w‚ÇŽÀ‘•‚Å‚«‚é‚Í‚¸‚Å‚·B‘½•ª...)
+E‚»‚Ì‘¼‚ÍŠo‚¦‚Ä‚È‚¢‚¯‚ÇC³‚µ‚½Š‚ª­‚µ‚ ‚é‚©‚à...
+ (conf/)
+ battle_athena.conf C³B
+ (doc/)
+ conf_ref.txt C³B
+ item_bonus.txt C³B
+ (db/)
+ const.txt C³B
+ (char/)
+ inter.c
+ inter_init() C³B
+ int_storage.c
+ mapif_parse_SaveStorage() C³B
+ (map/)
+ trade.c
+ trade_traderequest() C³B
+ pc.h C³B
+ pc.c
+ pc_autosave_sub()Apc_calcstatus() C³B
+ pc_bonus()Apc_bonus2() C³B
+ pc_setrestartvalue()Apc_setequipindex() C³B
+ pc_check_equip_wcard()Apc_check_equip_dcard()Apc_check_equip_card() íœ
+ ‚»‚Ì‘¼C³B
+ skill.h C³B
+ skill.c C³B
+ skill_castend_nodamage_id()Askill_unit_onplace() C³B
+ skill_check_condition()Askill_additional_effect() C³B
+ skill_attack()Askill_status_change_start() C³B
+ map.h C³B
+ battle.h C³B
+ battle.c
+ battle_get_def()Abattle_get_mdef2() C³B
+ battle_weapon_attack()Abattle_damage() C³B
+ battle_calc_magic_attack()Abattle_calc_pc_weapon_attack() C³B
+ battle_calc_mob_weapon_attack()Abattle_calc_pet_weapon_attack() C³B
+ battle_calc_misc_attack()Abattle_config_read() C³B
+ mob.c
+ mob_damage() C³B
+ pet.c
+ pet_target_check() C³B
+ clif.c
+ clif_set0078()Aclif_set007b()Aclif_changelook() C³B
+ atcommand.c C³B
+
+--------------
+//0675 by ”g˜Q
+
+EŠØŽI‚Å‘º³‚ÌŒø‰Ê‚ª•ÏX‚³‚ꂽ‚Ì‚Å•ñ‚ðŒ³‚Éitem_db.txt‚ðC³
+Ejob_db1.txt‚ðC³
+ (db/)
+ item_db.txt
+ job_db1.txt
+
+--------------
+//0674 by npc
+
+Eƒtƒ@[ƒ}ƒV[‚̉¼ŽÀ‘•B
+ (db/)
+ produce_db.txt
+ (map/)
+ skill.c
+
+--------------
+//0673 by “ì
+
+EW’†—ÍŒüã‚É‘•”õ•i‚̕Ⳃª“ü‚Á‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ðC³B
+@@@@@(map/)@@@
+@@@@@ pc.c
+
+--------------
+//0672 by “ì
+
+EW’†—ÍŒüã‚É‘•”õ•i‚̕Ⳃª“ü‚Á‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ðC³B
+@@@@@(map/)@@@
+@@@@@ pc.c
+
+--------------
+//0672 by ¹
+
+Eƒ‚ƒ“ƒXƒ^[Œn‚̃oƒOC³(‚·‚Ý‚Ü‚¹‚ñA‚Ü‚¾Žc‚Á‚Ä‚Ü‚µ‚½(^^; )
+ (map/)
+ mob.c
+
+--------------
+//0671 by ¹
+
+EIDƒ`ƒFƒbƒN”͈͂ÌC³‘¼B
+E@monster‚Å”‚ðŽw’肵‚È‚­‚Ăࢊ҂ł«‚é‚悤‚ÉC³B
+ (map/)
+ atcommand.c
+ battle.c
+ battle.h
+ mob.c
+ pet.c
+ (conf/)
+ battle_athena.conf
+ (doc/)
+ conf_ref.txt
+
+--------------
+//0670 by RR
+
+Eƒ‚ƒ“ƒXƒ^[ƒhƒƒbƒv—¦‚ðC³(–{ŽI€‹’ADB‚Å‚ÌÝ’è+1/10000)B
+E—Ž‰º—¦‚O‚Éݒ肵‚½ƒAƒCƒeƒ€‚ð—Ž‚Æ‚·‚©‚Ç‚¤‚©‚ðbattle_athena.conf‚ÅÝ’è‰Â”\‚ÉB
+ (map/)
+ mob.c
+ mob_damage() C³B
+ battle.c
+ battle.h
+ (conf/)
+ battle_athena.conf
+
+--------------
+//0669 by ¹
+
+Eƒ‚ƒ“ƒXƒ^[ƒhƒƒbƒv‚ÌC³B
+ (map/)
+ mob.c
+ mob_damage() C³B
+
+--------------
+//0668 by ¹
+
+Eƒ‚ƒ“ƒXƒ^[ID‚͈̔̓`ƒFƒbƒN‚ðC³B
+ (map/)
+ mob.c
+ mob_dbAmob_once_spawn()Amob_once_spawn_area()A
+ mob_summonslave()Amob_read_randommonster()Amob_readdb() C³B
+
+--------------
+//0667 by Ž€_
+
+EÅ‘åHPŒvŽZŽ®‚ðƒ~ƒXƒgƒŒ‘ƒ‚ðŽQl‚µ‚ÄC³B(‘½•ª‚±‚ê‚Å–{ŽI‚É‚ ‚Á‚Ä‚¢‚é‚ÆŽv‚¢‚Ü‚·B)
+E–h‹ï‚̸˜Bƒ{[ƒiƒX‚ð0.7‚É•ÏXB(¡‚Í’[”‚ðŽlŽÌŒÜ“ü‚µ‚Ä‚¢‚Ü‚·‚ª–{ŽI‚ª’[”–³Ž‹‚È‚çC³‚µ‚Ä‚¨‚«‚Ü‚·B)
+E@refineƒRƒ}ƒ“ƒh‚Å‘•”õêŠID‚É0‚ð“ü‚ê‚é‚Æ‘•”õ‚µ‚Ä‚¢‚é‘S‚Ä‚Ì‘•”õ‚ð¸˜B‚·‚é‚悤‚É•ÏXB
+E‚»‚Ì‘¼×‚©‚¢C³B
+ (db/)
+ item_db.txt
+ 7140A7142‚ðŒ³‚É–ß‚µ‚Ä0666‚Ì•¨‚̓Rƒ}ƒ“ƒgƒAƒEƒg‚µ‚Ü‚µ‚½B
+ job_db1.txt C³B
+ refine_db.txt C³B
+ (map/)
+ mob.c
+ mob_once_spawn() C³B
+ itemdb.c
+ itemdb_read_randomitem() C³B
+ pet.c
+ pet_food() C³B
+ pc.c
+ pc_readdb()Ado_init_pc()Apc_calcstatus()Apc_setoption() C³B
+ pc_calc_sigma() ’ljÁB
+ ‚»‚Ì‘¼C³B
+ map.h C³B
+ battle.c
+ battle_calc_magic_attack()Abattle_calc_misc_attack() C³B
+ atcommand.c C³B
+
+--------------
+//0666 by ¹
+
+Eƒ‰ƒ“ƒ_ƒ€ƒAƒCƒeƒ€‚Ìׂ©‚¢C³B
+Ebattle_athena.conf‚Ì€–ڒljÁB
+EŒÃ–Ø‚ÌŽ}‚Å¢ŠÒ‚·‚郂ƒ“ƒXƒ^[‚ÌŠm—¦‚ðÝ’èo—ˆ‚é‚悤‚É‚µ‚Ü‚µ‚½B
+Eƒ‚ƒ“ƒXƒ^[¢ŠÒƒAƒCƒeƒ€‚ð•¡”ì‚鎖‚ªo—ˆ‚é‚悤‚É‚µ‚Ü‚µ‚½B
+E¢ŠÒƒAƒCƒeƒ€‚̃Tƒ“ƒvƒ‹‚Æ‚µ‚Ä
+@¶–½‚ÌŽíŽq‚ðƒ|ƒŠƒ“Œn¢ŠÒA
+@ƒGƒ“ƒuƒŠƒI‚ðMVPƒ{ƒXŒn¢ŠÒ‚É‚µ‚Ä‚Ý‚Ü‚µ‚½B
+@‚ ‚Ü‚è‚¢‚¢ƒTƒ“ƒvƒ‹‚ðŽv‚¢‚‚©‚È‚©‚Á‚½‚Ì‚ÅA
+@‰½‚©‚¢‚¢ˆÄ‚ðŽv‚¢‚‚¢‚½l‚Í‘‚«Š·‚¦‚Ä‚â‚Á‚Ä‚­‚¾‚³‚¢(^^;
+ (conf/)
+ battle_athena.conf
+ (doc/)
+ conf_ref.txt
+ (map/)
+ mob.h
+ mob_db C³B
+ mob.c
+ mob_once_spawn()Amob_makedummymobdb()Amob_readdb() C³B
+ mob_readbranch() -> mob_read_randommonster()‚É•ÏXB
+ battle.h
+ battle_config C³B
+ battle.c
+ battle_config_read() C³B
+ itemdb.c
+ itemdb_read_randomitem() C³B
+ (db/)
+ item_db.txt
+ item_bluebox.txt
+ item_cardalbum.txt
+ item_giftbox.txt
+ item_scroll.txt
+ item_violetbox.txt
+ mob_branch.txt
+ mob_poring.txt ’ljÁB
+ mob_boss.txt ’ljÁB
+
+--------------
+//0665 by J
+
+E‰…—ì•Žm‚ÌŽæ‚芪‚«‚ªƒJƒuƒL”EŽÒ‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ðŽð“V‹ç‚ÉC³B
+EƒIƒbƒg[‚ɃtƒFƒCƒNƒGƒ“ƒWƒFƒ‹‚ªo‚·‚Í‚¸‚ÌŽæ‚芪‚«‚ª‚‚¢‚Ä‚½‚Ì‚ðC³B
+ (db/)
+ mob_skill_db.txt
+
+--------------
+//0664 by ¹
+
+E¸˜BŽ¸”sŽž‘¼‚̃vƒŒ[ƒ„[‚É‚àƒGƒtƒFƒNƒg‚ª•\Ž¦‚³‚ê‚é‚悤‚ÉC³B
+ (map/)
+ script.c
+ buildin_failedrefitem() C³B
+
+--------------
+//0663 by lide
+
+Eƒuƒ‰ƒ“ƒfƒBƒbƒVƒ…ƒXƒsƒAC³
+ (map/)
+ battle.c
+ skill.c
+
+--------------
+//0662 by Ž€_
+
+Eׂ©‚¢C³‚ƃoƒOC³B
+Eƒvƒƒ{ƒbƒN‚É‚æ‚Á‚ă‚ƒ“ƒXƒ^[‚ÍæŽZ–hŒä‚ÆŒ¸ŽZ–hŒä‚ªŒ¸‚é‚悤‚ÉC³‚µ‚ăvƒŒƒCƒ„[‚ÍŒ¸ŽZ–hŒä‚¾‚¯Œ¸‚é‚悤‚ÉC³B
+EƒXƒNƒŠƒvƒggetgmlevel’ljÁB‹@”\‚Í‚»‚ÌNPC‚Ƙb‚µ‚Ä‚¢‚éƒvƒŒƒCƒ„[‚ÌGMƒŒƒxƒ‹‚ð•Ô‚µ‚Ü‚·B
+E0659‚Ì‘‚«–Y‚ê‚Å‚·‚ªƒyƒbƒg‚̃pƒtƒHƒ}ƒ“ƒX‚ÌŽí—Þ‚ªe–§“x‚É‚æ‚Á‚Ä‘‚¦‚é‚悤‚É•ÏX‚µ‚Ü‚µ‚½B
+ (map/)
+ clif.c
+ pc.c
+ script.c
+
+--------------
+//0661 by Ž€_
+
+Eׂ©‚¢C³B
+EÚ‘±‚µ‚½Žž‚̃yƒbƒg‚̃ƒbƒZ[ƒW‚ðe–§“x‚ª‚«‚í‚ß‚Äe‚µ‚¢‚ÌŽž‚Ì‚Ý‚Éo‚é‚悤‚É•ÏXB
+E0659‚Å‘‚«–Y‚ê‚Å‚·‚ªƒyƒbƒg‚ÌŽx‰‡UŒ‚‚Íe–§“x‚ª‚«‚í‚ß‚Äe‚µ‚¢‚ÌŽž‚Ì‚Ý‚É”­¶‚µ‚Ü‚·B(‚»‚ê‚Æe–§“x‚É‚æ‚Á‚ÄŽx‰‡UŒ‚Šm—¦‚ª­‚µ•Ï‰»‚µ‚Ü‚·B)
+EƒWƒ‹ƒ^ƒX‚ƃAƒŠƒX‚Ì—‘‚ÌID‚ðitem_db.txt‚ɇ‚킹‚Ü‚µ‚½B(Ž©•ª‚ªì‚Á‚½pet_db.txt‚Ì•û‚ªŽ©•ªŸŽè‚Éݒ肵‚Ä‚¢‚½•¨‚Å‚µ‚½‚Ì‚ÅB‚ÄŒ¾‚¤‚©–¢ŽÀ‘•ƒAƒCƒeƒ€‚¾‚©‚ç”Ô†‚ª‚í‚©‚ç‚È‚©‚Á‚½‚¾‚¯‚Å‚·‚ª...)
+Epet_db.txt‚Ìattack_rate‚ª³‚µ‚­“K—p‚³‚ê‚È‚©‚Á‚½ƒoƒOC³B
+ (db/)
+ pet_db.txt
+ (map/)
+ clif.c
+ clif_parse_LoadEndAck() C³B
+ pc.c
+ pc_attack_timer() C³B
+
+--------------------
+//0660 by ‚¢‚Ç
+
+EƒT[ƒo[snapshot
+
+--------------
+//0659 by Ž€_
+
+Eƒyƒbƒg‚ðFX‚ÆC³B(ƒyƒbƒg‚̃R[ƒh‚ð‚Ù‚Æ‚ñ‚Ç•Ï‚¦‚Ü‚µ‚½B)
+EŽè“®“I‚¾‚Á‚½ƒyƒbƒg‚Ì“®‚«‚ðƒ‚ƒ“ƒXƒ^[‚̂悤‚ÉAI‚Æ‚µ‚Ĉ—B
+EÚ‘±‚µ‚½Žž‚̃yƒbƒg‚̃ƒbƒZ[ƒWŽÀ‘•B(–{ŽI‚Í‚Ç‚¤‚È‚Ì‚©‚í‚©‚è‚Ü‚¹‚ñ‚ª
+Athena‚ÍÚ‘±‚·‚é‚Æ100%˜b‚·‚悤‚É‚È‚Á‚Ä‚¢‚Ü‚·B)
+Eƒyƒbƒg‚̃XƒyƒVƒƒƒ‹ƒpƒtƒHƒ}ƒ“ƒXŽÀ‘•B(‚½‚¾‘䎌‚ª‚¿‚å‚Á‚Æ•Ï‚Å‚·B‚¢‚­‚ç’T‚µ‚Ä‚àŠY“–‚·‚éƒpƒPƒbƒg‚ªŒ©‚‚©‚ç‚È‚©‚Á‚½‚Ì‚ÅB)
+Eƒyƒbƒg‚̑䎌‚𑼂̃yƒbƒg‚Ì•¨‚É•ÏX‚·‚é‹@”\’ljÁB(Ú‚µ‚¢‚±‚Æ‚Ídb_ref.txt‚Æpet_db.txt‚ÅB)
+Eƒyƒbƒg‚É‚æ‚éŽx‰‡UŒ‚•ÏXBpet_db.txt‚ÅUŒ‚‚·‚鎞‚ÆUŒ‚‚ðŽó‚¯‚½Žž‚ÌŽx‰‡UŒ‚
+Šm—¦‚ð•ÊX‚ÉÝ’è‚Å‚«‚Ü‚·BUŒ‚‚·‚鎞‚Ìê‡UŒ‚‚·‚é“x‚Ƀ`ƒFƒbƒN‚ð‚µ‚Ü‚·‚Ì‚Å
+UŒ‚‘¬“x‚ª‘¬‚¢‚ÆŽx‰‡UŒ‚‚ðŽó‚¯‚â‚·‚­‚È‚è‚Ü‚·BUŒ‚‚ðŽó‚¯‚½Žž‚à“¯‚¶‚Å‚·B(‚±‚¿‚ç‚̓_ƒ[ƒW‚ð‹ò‚炤“x‚É‚È‚è‚Ü‚·‚ªB) Žx‰‡UŒ‚Šm—¦‚̓\ƒq[AƒWƒ‹ƒ^ƒXAƒAƒŠƒX‚¾‚¯Ž©•ªŸŽè‚Éݒ肵‚Ä‚¢‚Ü‚·B(‘¼‚Ì‚Í‘S•”1%‚ÉBƒyƒbƒg‚ÌŽx‰‡UŒ‚‚Í“¯‚¶ƒ‚ƒ“ƒXƒ^[‚É‚Í‚Å‚«‚È‚¢‚悤‚É‚È‚Á‚Ä‚¢‚Ü‚·B‚»‚µ‚ăyƒbƒg‚Ì퓬”\—͂̓‚ƒ“ƒXƒ^[‚Æ“¯‚¶‚Å‚·B)
+E/hideƒRƒ}ƒ“ƒhŽÀ‘•B
+Eƒvƒƒ{ƒbƒN‚É‚æ‚Á‚ÄæŽZ–hŒä‚àŒ¸‚é‚悤‚ÉC³B
+EƒtƒŠ[ƒLƒƒƒXƒg‚̃oƒOC³B
+Eƒm[ƒrƒX‚̃Xƒe[ƒ^ƒXƒ{[ƒiƒXíœB
+Ebattle_athena.conf‚Ì€–ڒljÁ‚ÆíœB
+EC³‚µ‚½ƒtƒ@ƒCƒ‹‚¾‚¯B–¢ƒeƒXƒg‚µ‚½•¨‚à‚©‚È‚è‚ ‚è‚Ü‚·‚Ì‚Å–â‘肪‚ ‚Á‚½‚ç•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
+ (conf/)
+ battle_athena.conf
+ (doc/)
+ conf_ref.txt
+ db_ref.txt ’ljÁB(¡à–¾‚ª“ü‚Á‚Ä‚¢‚é‚Ì‚Ípet_db.txt‚Ì‚Ý‚Å‚·B )
+ client_packet.txt
+ (db/)
+ pet_db.txt
+ job_db2.txt
+ (map)
+ clif.h
+ clif.c
+ map.h
+ map.c
+ pet.h
+ pet.c
+ pc.c
+ mob.h
+ mob.c
+ npc.c
+ atcommand.c
+ skill.c
+ battle.h
+ battle.c
+
+--------------
+//0658 by huge
+
+Eƒyƒbƒg‚ª‚Æ‚Ç‚ß‚ð‚³‚·‚ÆAŽ”‚¢Žå‚ÉŒoŒ±’l‚ª“ü‚é‚悤‚É‚µ‚Ü‚µ‚½B
+EŒÅ’è’lƒ_ƒ[ƒW‚¶‚á–¡‚ª–³‚¢‚Ì‚ÅATK1`ATK2‚ÌŠÔ‚Å—”‚ðŽæ‚é‚悤‚É‚µ‚Ü‚µ‚½B
+E‚ ‚ÆAƒyƒbƒg‚ª‚Æ‚Ç‚ß‚ð‚³‚·‚©‚Ç‚¤‚©‚ÌÝ’è‚ðAbattle_athena.conf‚ɉÁ‚¦‚Ü‚µ‚½B
+
+ (conf/)
+ battle_athena.conf pet_finish’ljÁB
+ (map/)
+ battle.c
+ battle_config_read() C³B
+ battle.h C³B
+ pet.c
+ pet_attack() C³B
+ (doc/)
+ conf_ref.txt à–¾’Ç‹LB
+
+--------------
+//0657 by huge
+
+Eƒyƒbƒg‚É‚æ‚éUŒ‚‚ðŽÀ‘•B
+Eƒyƒbƒg‚ðŽ‚Á‚Ä‚¢‚ÄAƒyƒbƒg‚ª‘•”õ•i‚ð‚‚¯‚Ä‚ÄA‚³‚ç‚Ƀ‰ƒ“ƒ_ƒ€‚É‚æ‚é”»’è‚Å”­“®‚µ‚Ü‚·B
+E‚½‚¾‚Ì—V‚ÑS‚Å‚·‚—
+Ebattle_athena.conf‚Å•p“x‚ðÝ’è‚Å‚«‚Ü‚·BÚׂÍdoc‚ÅB
+
+ (conf/)
+ battle_athena.conf pet_attack’ljÁB
+
+ (map/)
+ battle.c
+ battle_config_read() C³B
+ battle.h C³B
+ pc.c
+ pc_attack_timer() C³B
+ pet.c
+ pet.h
+ pet_attack() ’ljÁB
+ (doc/)
+ conf_ref.txt à–¾’Ç‹LB
+
+ ‚Æ‚è‚ ‚¦‚¸Aƒyƒbƒg‚ª“®‚¢‚Ä‚é‚È‚Ÿ‚Á‚ÄŠ´‚¶‚ÆAƒ_ƒ‰ñ”‚ð‘‚₵‚½’ö“x‚Å‚·B
+
+--------------
+//0656 by Ž€_
+
+EƒOƒ‰ƒ“ƒhƒNƒƒX‚ÌC³B(‚¨‚¢‚¨‚¢‰½“x–Ú‚¾...)
+EƒOƒ‰ƒ“ƒhƒNƒƒXŒvŽZŽ®ŠÔˆá‚¢‚ÅC³B(€3‚ª‚Ü‚¸‚©‚Á‚½‚Ý‚½‚¢‚Å‚·B)
+‚Å‚à‚Ü‚¾”½ŽËƒ_ƒ[ƒW‚ª‚Ý‚·‚Ƃꑃ‚æ‚è‚¿‚å‚Á‚Æ‚‚¢‚Å‚·B(10‚®‚ç‚¢‚¾‚©‚ç
+ŠÖŒW‚È‚¢‚©‚à)
+Eƒ‚ƒ“ƒN‚Ì‹C‹…‚ð•K’†‚ÉC³B(Ž©•ª‚̊ԈႢ‚̂悤‚Å‚·‚Ì‚Å...)
+ (map/)
+ skill.c C³B
+ battle.c C³B
+
+--------------
+//0655 by Ž€_
+
+EƒOƒ‰ƒ“ƒhƒNƒƒX‚ÌC³B
+EŽ©•ª‚È‚è‚Éî•ñ‚ðŽûW‚µ‚Ä‚Ý‚½Œ‹‰ÊƒOƒ‰ƒ“ƒhƒNƒƒX”½ŽËƒ_ƒ[ƒW‚Í
+ƒvƒŒƒCƒ„[ƒLƒƒƒ‰‚ª‚»‚̃Lƒƒƒ‰Ž©g‚ɃOƒ‰ƒ“ƒhƒNƒƒX‚ðŽg‚Á‚½Žž‚Ì
+ƒ_ƒ[ƒW‚¾‚»‚¤‚È‚Ì‚ÅC³‚µ‚Ü‚µ‚½B(‚Ý‚·‚Ƃꑃ‚ÌŒvŽZ‚Æ‚Í‚©‚È‚èˆá‚¤‚悤‚È
+‹C‚à‚µ‚Ü‚·‚ª...)
+E–‚–@‚ƃgƒ‰ƒbƒvA‘é‚ÌUŒ‚‚É‚à‘®«‘Ï«‚ÆŽí‘°‘Ï«‚ð“K—p‚·‚é‚悤‚ÉC³B
+(–{ŽI‚ÌŽd—l‚É‚ ‚Á‚Ä‚¢‚é‚©‚Ç‚¤‚©‚Í•s–¾‚Å‚·‚ª“K—p‚µ‚½•û‚ª³‚µ‚¢‚ÆŽv‚Á‚½‚Ì‚Å
+C³‚µ‚Ü‚µ‚½B)
+ (map/)
+ skill.c C³B
+ map.h C³B
+ battle.c C³B
+
+--------------
+//0654 by Ž€_
+
+EƒOƒ‰ƒ“ƒhƒNƒƒX‚ÌC³‚Æׂ©‚¢C³B(ŒvŽZŽ®ŠÔˆá‚¢‚ÅC³B)
+E0653‚Å‘‚«–Y‚êB‹CŒ÷‚É‚æ‚é’ljÁƒ_ƒ[ƒW‚Í•K’†‚Å‚Í‚È‚¢‚炵‚¢‚Ì‚Å
+C—û‚̉ÁŽZ‚Æ“¯‚¶Š‚ÉŒvŽZ‚·‚é‚悤‚É•ÏX‚µ‚Ü‚µ‚½B
+EƒJ[ƒg‚ɃoƒO‚ª‚ ‚è‚»‚¤‚¾‚Á‚½‚Ì‚Å‚¿‚å‚Á‚ÆC³B
+Eƒ_ƒ[ƒWŒvŽZ‚ð‚Ù‚ñ‚Ì­‚µC³B(ƒ_ƒ[ƒW—Ê‚ª•Ï‚í‚Á‚½‚è‚Í‚µ‚Ü‚¹‚ñB)
+ (map/)
+ battle.c
+ battle_calc_magic_attack() C³B
+ battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
+ skill.c
+ pc_damage_feedback() -> skill_damage_feedback()‚É•ÏXB
+ skill_unit_timer() C³B
+ pc.c
+ pc_setoption() C³B
+ atcommand.c C³B
+
+--------------
+//0653 by Ž€_
+
+E0652‚ÌC³‚Æׂ©‚¢C³B¡‚Ü‚Å’Ê‚è–¢ƒeƒXƒg‚à‘½‚¢‚Å‚·B
+EƒOƒ‰ƒ“ƒhƒNƒƒX‚̈—C³B(–{ŽI‚É‚ ‚Á‚Ä‚¢‚é‚©‚Ç‚¤‚©‚ÌŽ©g‚Í‚ ‚è‚Ü‚¹‚ñB)
+ƒ‰ƒOƒi[ƒQ[ƒg‚Ìà–¾‚É‚æ‚é‚ÆŽn‚ß‚ÉŒ»ÝHP‚Ì20%‚ªÁ–Õ‚³‚ê‚Ä‚»‚ÌŒã“G‚É—^‚¦‚½
+ƒ_ƒ[ƒW‚Ì’†‚ňê”Ô‚‚¢•¨‚ª–ß‚Á‚Ä‚­‚é‚悤‚Å‚·B‚»‚µ‚Ä‚»‚Ì–ß‚Á‚Ä‚«‚½
+ƒ_ƒ[ƒW‚͹‚Ì‘®«‚ðŽ‚¿ƒgƒ‰ƒXƒg‚É‚æ‚Á‚Ĺ‚Ì‘Ï«‚ª50%‚É‚È‚Á‚Ä‚¢‚é‚Ì‚Å
+”¼•ª‚ð‹ò‚炤‚±‚Æ‚É‚È‚é‚悤‚Å‚·B(¹‚̑ϫオ‚é‘•”õ‚ð‚µ‚Ä‚¢‚ê‚Ζ߂Á‚Ä‚­‚é
+ƒ_ƒ[ƒW‚͎󂯂Ȃ¢‚悤‚Å‚·B)
+–â‘è‚Ȃ̂̓vƒŒƒCƒ„[‚Ì–hŒä‘®«‚ðŒvŽZ‚·‚é‚©‚Ç‚¤‚©‚Å‚·B¡‚Í–hŒä‘®«ŒvŽZ‚Ì
+Œã‚Ź‚Ì‘®«‚ðŒvŽZ‚µ‚Ä‚¢‚Ü‚·B‚»‚µ‚Ä–ß‚Á‚Ä‚­‚éƒ_ƒ[ƒW‚ÍHPƒo[‚ÍŒ¸‚邯‚Ç
+•\Ž¦‚Í‚³‚ê‚Ü‚¹‚ñB–{ŽI‚Ì•û‚ª‚Ç‚¤‚È‚Ì‚©•s–¾‚È‚Ì‚Å...
+‚»‚ê‚ƈꉞƒ‚ƒ“ƒXƒ^[‚àƒOƒ‰ƒ“ƒhƒNƒƒX‚ÌŽg—p‚ª‰Â”\‚Å‚·B‚½‚¾ƒ‚ƒ“ƒXƒ^[‚Ìê‡
+Œ»ÝHP‚Ì20%Á–Õ‚ÌŒã‚̃_ƒ[ƒW‚͎󂯂܂¹‚ñB(ƒ‚ƒ“ƒXƒ^[‚ªŽg‚¤
+ƒOƒ‰ƒ“ƒhƒNƒƒX‚̃eƒXƒg‚Í‚µ‚Ä‚Ü‚¹‚ñB)
+Eƒ_ƒ[ƒW‚É‚æ‚éƒfƒBƒŒƒC’†‚É‚Ü‚½ƒfƒBƒŒƒC‚ª‚©‚©‚ç‚È‚¢‚悤‚ÉC³B(‘債‚½ˆÓ–¡‚Í‚È‚¢‚©‚à...)
+E’l’i‚ªƒ[ƒ‚̃AƒCƒeƒ€‚à”„‚ê‚é‚悤‚É•ÏXB
+E@ƒRƒ}ƒ“ƒhheal‚̈—­‚µC³B
+EˆÚ“®ƒR[ƒh­‚µC³B
+ (map/)
+ clif.c
+ clif_selllist() C³B
+ battle.c
+ battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
+ battle_calc_magic_attack()Abattle_calc_misc_attack() C³B
+ skill.c
+ skill_additional_effect()Askill_unit_onplace() C³B
+ skill_status_change_start()Askill_unit_onplace() C³B
+ skill_castend_damage_id()Askill_castend_id()Askill_attack() C³B
+ skill_unitsetting()Askill_check_condition() C³B
+ skill_use_id()Askill_use_pos() C³B
+ npc.c
+ npc_parse_script() C³B
+ pc.h C³B
+ pc.c
+ pc_walk()Apc_walktoxy_sub()Apc_stop_walking() C³B
+ map.h C³B
+ mob.h C³B
+ mob.c
+ mob_stop_walking()Amob_changestate()Amob_walk() C³B
+ pet.c
+ pet_changestate() C³B
+ atcommand.c C³B
+ (db/)
+ skill_db.txt ƒOƒ‰ƒ“ƒhƒNƒƒXC³B
+ cast_db.txt ƒOƒ‰ƒ“ƒhƒNƒƒXC³B
+
+--------------
+//0652 by ŒŽ‰r‚Ý
+
+EƒOƒ‰ƒ“ƒhƒNƒƒX‚ð‰¼ŽÀ‘•
+ (db/)
+ skill_db.txt
+ cast_db.txt
+ (map/)
+ battle.c
+ Damage battle_calc_misc_attack
+ Damage battle_calc_magic_attack
+ skill.c
+ skill_additional_effect
+ skill_castend_damage_id
+ skill_castend_pos2
+ skill_unit_group *skill_unitsetting
+ skill_unit_onplace
+ skill_check_condition
+
+--------------
+//0651 by ”g˜Q
+
+Eitem_db.txt‚ðC³
+ (db/)
+ item_db.txt
+ ‘•”õ•i‚̃AƒCƒeƒ€Œø‰Ê‚ðC³
+
+--------------
+//0650 by Ž€_
+
+EŽO’i¶‚Ì”­“®ðŒ‚ð‹|‚Æ“ñ“—¬ˆÈŠO‚É•ÏXB
+E•\Ž¦‚ð‚¹‚¸‚É“à•”‚ň—‚¾‚¯‚·‚éNPC‚ÌCLASS‚ð111‚©‚ç32767‚É•ÏXB
+Eׂ©‚¢C³B
+ (map/)
+ clif.c
+ clif_getareachar_npc()Aclif_spawnnpc()Aclif_pcoutsight() C³B
+ npc.h C³B
+ battle.c
+ battle_calc_pc_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
+
+--------------
+//0649 by ”g˜Q
+
+EDB‚ÆDOCC³
+ (db/)
+ item_db.txt
+ ƒOƒ“ƒOƒj[ƒ‹‚ÍLV4•Ší‚È‚Ì‚ÅAŠØ‘‚̃f[ƒ^‚É‚ ‚킹‚Ä•—‘®«‚Å‚Í‚È‚­‚µ‚Ü‚·B
+ mob_db.txt
+ size_fix.txt
+ ŠyŠí‚Í‘åŒ^‚ɑ΂µ‚Ä75%‚¾‚»‚¤‚Å‚·B
+ (doc/)
+ item_bonus.txt
+
+--------------
+//0648 by Ž€_
+
+EƒVƒ‡ƒbƒv‚Ì’l’i‚É-‚ð“ü‚ê‚é‚ÆŽI‚ª—Ž‚¿‚é–â‘èC³B(itemdb‚̉Šú‰»‚ðnpc‚æ‚è
+æ‚É‚·‚é‚悤‚É•ÏXB) ‚»‚ꂾ‚¯‚Å‚·B
+ (map/)
+ map.c
+ do_init()
+
+--------------
+//0647 by nini
+
+Eitem_dbC³
+EƒXƒiƒbƒ`ƒƒ[Žd—l•ÏXB‹|ˆÈŠO‚Ì‚·‚ׂĂ̕Ší‚Åo‚é‚悤‚É‚È‚Á‚Ä‚Ü‚·B
+ (/map/)
+ battle.c
+ ŽO’i¶‚Ì”­“®ðŒ’ljÁ
+ skill.c
+ ƒXƒiƒbƒ`ƒƒ[‚Ì”­“®ðŒ’ljÁ
+ (/db/)
+ item_db.txt
+ ƒVƒ‹ƒNƒnƒbƒg‚ÉSP㸒ljÁ
+
+--------------
+//0646 by last
+
+Eitem_db.txt‚ÌC³(‘®«ŠÖ˜A)
+ (/db/)
+ item_db.txt
+
+--------------
+//0645 by ‚é‚é‚éi•ree_ronj
+
+Eitem_value_db.txt‚ɃfƒBƒXƒJƒEƒ“ƒg•ƒI[ƒo[ƒ`ƒƒ[ƒW“™‚̃XƒLƒ‹‚É‚æ‚鉿Ši•Ï“®‚ðŽó‚¯‚é‚©‚Ç‚¤‚©‚̃tƒ‰ƒOƒƒ“ƒg‚ð’ljÁB
+@ŽÀÛ‚ÌŒ`Ž®‚̓Tƒ“ƒvƒ‹‚Æ‚µ‚Ä—pˆÓ‚µ‚½item_value_db.sample.txt‚ðŒ©‚Ä‚­‚¾‚³‚¢Biݒ艿Ši‚ÍŠ®‘S‚É“Æ’f‚Æ•ÎŒ©‚Å‚·j
+@“¯—l‚̃Tƒ“ƒvƒ‹‚Æ‚µ‚Ä‚m‚o‚bÝ’uƒXƒNƒŠƒvƒg‚à“Y•t‚µ‚Ä‚¨‚«‚Ü‚·B
+Eitem_value_db.txt‚̃AƒCƒeƒ€‰¿ŠiÝ’è‚ÅA”„’l‚Æ”ƒ’l‚ÌÝ’è‚ð“Æ—§Biitem_db.txt‚Í]—ˆ‚Ç‚¨‚蔃’l‚Í”„’l‚Ì”¼Šz‚Æ‚µ‚ÄŽ©“®ˆ—j
+E‚m‚o‚bƒVƒ‡ƒbƒv‚É‚ÄA‚P‚m‚o‚b‚ňµ‚¦‚éƒAƒCƒeƒ€”‚ðÅ‘å64‚©‚çÅ‘å100‚É•ÏXBiƒNƒ‰Ž©‘Ì‚Í120‚®‚ç‚¢‚܂ʼn”\‚Å‚·‚ªj
+ (/db)
+ item_value_db.txt
+ ƒJƒ‰ƒ€”‚ð®—‚µ‚½‚¾‚¯‚Å‚·B“à—e‚Í‚Ü‚Á‚½‚­•ÏX‚µ‚Ä‚¢‚Ü‚¹‚ñB
+ (/map/)
+ clif.c
+ clif_buylist() clif_selllist() •ÏX
+ itemdb.h
+ item_data \‘¢‘Ì•ÏX
+ itemdb_value_buy() itemdb_value_sell() itemdb_value_notdc() itemdb_value_notoc() ƒ}ƒNƒ’ljÁ
+ itemdb.c
+ itemdb_search() itemdb_readdb() itemdb_read_itemvaluedb() •ÏX
+ itemdb_sellvalue() íœ
+ npc.c
+ npc_buylist() npc_selllist() npc_parse_shop() •ÏX
+ (/sample/)
+ ƒIƒ}ƒP‚Å‚·BŽŸ‰ñSnapShot‚É‚ÍŠÜ‚Ü‚È‚¢‚Å‹X‚µ‚¢‚Å‚·B
+
+ƒRƒƒ“ƒg
+Œ´Œ^‚ÍŽ„‚Ì—Flree_ron‚ªs‚¢AŽ„‚ªX‚Éׂ©‚¢ƒ~ƒX‚𒼂µ‚½‚¾‚¯‚Å‚·‚ªAƒeƒXƒg‚Í‚µ‚Ü‚µ‚½‚Ì‚Å‘åä•v‚Å‚µ‚傤B
+Œ³X‚±‚̈—‚𓱓ü‚·‚é——R‚Æ‚µ‚ÄA“Á’èƒAƒCƒeƒ€‚Ì”„’l‚ª1zŒÅ’è‚É‚Å‚«‚È‚¢‚à‚Ì‚©A‚Æ‚¢‚¤“_‚¾‚Á‚½‚©‚ç‚Å‚·B
+‚»‚µ‚Ä‚â‚Á‚Ä‚¢‚­‚¤‚¿‚ÉA‚m‚o‚bƒVƒ‡ƒbƒv‚ð—˜—p‚µ‚½ƒŒƒAƒAƒCƒeƒ€‚̔̔„‚Æ‚©‚Å–{ŽI˜I“X‚É‹ß‚¢‚±‚Æ‚ªo—ˆ‚é‚Ì‚Å‚Í‚È‚¢‚©A
+‚Æ‚¢‚¤‚±‚Æ‚ª”»‚Á‚Ä‚«‚½‚킯‚Å‚·B
+‚»‚ê‚ňꉞ‚̓f[ƒ^‚ð—pˆÓ‚µ‚Ü‚µ‚½‚ªA‚ ‚­‚Ü‚Å‚àƒTƒ“ƒvƒ‹‚Æ‚µ‚Ä—˜—p‚µ‚Ä‚­‚¾‚³‚¢B‚à‚µ‰Â”\‚È‚ç‚ÎA
+‚³‚ç‚ÉC³‚ð‰Á‚¦‚ăAƒeƒi“ÆŽ©‚Æ‚µ‚Ä–{Ì—p‚Æ‚µ‚½ƒf[ƒ^‚ðƒpƒbƒ`ƒAƒbƒv‚µ‚Ä‚­‚ê‚ê‚΂ƂàŽv‚¢‚Ü‚·‚ª‚—
+
+
+--------------
+//0644 by nini
+
+EDB‚̊ԈႢA643‚ŒljÁ‚³‚ꂽƒXƒNƒŠƒvƒg’ljÁB
+ (/db/)
+ item_db.txt
+ cast_db.txt
+ ƒ`ƒƒ[ƒWƒAƒ[‚̃LƒƒƒXƒg’ljÁB
+ exp_guild.txt
+ 46-50‚Ü‚Å‚Ìexp”²‚¯‚ɒljÁB
+ size_fix.txt
+ ŠyŠíA•ÚAƒiƒbƒNƒ‹‚̃TƒCƒY•â³C³B
+
+--------------
+//0643 by Ž€_
+
+EFX‚ÆC³B
+EbMVPaddAtkRateíœBbAddRace‚ň—‚·‚é‚悤‚É•ÏXB
+EbIgnoreDefEle‚ÆbIgnoreDefRace’ljÁB
+bonus bIgnoreDefEle,n; n‘®«‚Ì“G‚Ì–hŒä–³Ž‹
+bonus bIgnoreDefRace,n; nŽí‘°‚Ì“G‚Ì–hŒä–³Ž‹
+EbMatkRate’ljÁB–‚–@UŒ‚—Í‚ð+n%ã‚°‚Ü‚·B‚æ‚Á‚Äbattle.c‚ÅŒvŽZ‚µ‚Ä‚¢‚½ƒƒbƒh‚É‚æ‚é–‚–@UŒ‚—Í‘•‚ÌŒvŽZ‚Í‚È‚­‚µ‚Ü‚µ‚½BƒXƒe[ƒ^ƒX‰æ–Ê‚Éオ‚Á‚½”’l‚Í•\Ž¦‚³‚ê‚Ü‚¹‚ñBƒ_ƒ[ƒWŒvŽZ‚ÌŽž‚É“K—p‚µ‚Ä‚¢‚Ü‚·B
+EbCriticalDef‚É-‚ð“ü‚ê‚é‚ƃNƒŠƒeƒBƒJƒ‹‚ð‹ò‚炤Šm—¦‚ªã‚ª‚é‚悤‚É•ÏXB
+ENPC”Ô†111‚Í“§–¾NPC‚Å‚·‚ª—Ž‚Æ‚µŒŠ“™‚Ì‚±‚Æ‚ðl‚¦‚Ä•\Ž¦‚ðˆêØ‚¹‚¸‚É
+“à•”‚ň—‚¾‚¯‚·‚é‚悤‚É•ÏXB(flag‚ðŽg‚¤‚Ɖ½‚Æ‚©‚È‚è‚»‚¤‚Å‚·‚ª‚»‚Ì
+ˆ—‚ª‘S‘R‚í‚©‚ç‚È‚©‚Á‚½‚Ì‚Å“§–¾NPC‚ɃNƒŠƒbƒN‚â–¼‘O‚Ì•\Ž¦‚à‚Å‚«‚È‚¢‚悤‚É•ÏX‚µ‚Ü‚µ‚½B)
+EƒVƒ‡ƒbƒv‚Ì’l’i‚É-‚ð“ü‚ê‚é‚Æitem_db.txt‚à‚µ‚­‚Íitem_value_db.txt‚Ì•¨‚ðŽg‚¤‚悤‚É•ÏXB
+EƒXƒLƒ‹ƒ‹ƒAƒt‚̃GƒtƒFƒNƒg‚ªƒTƒCƒg‚Æ“¯‚¶‚¾‚Á‚½‚Ì‚ÅC³B‚‚¢‚łɃ‹ƒAƒt‚Ì
+ƒ_ƒ[ƒW‚àC³B
+E‚Ý‚·‚Ƃꑃ‚É‚æ‚é‚ƃ‚ƒ“ƒXƒ^[î•ñ‚Å•\Ž¦‚³‚ê‚é–hŒä‚Æ–‚–@–hŒä‚ÍæŽZ‚Å‚Í‚È‚­Œ¸ŽZ‚Ý‚½‚¢‚È‚Ì‚ÅC³B
+E‘¼—Í–{Šè‚Å‚·‚ªitem_db.txt‚ÌC³‚ð‚¨Šè‚¢‚µ‚Ü‚·B(‘S‚Ẵƒbƒh‚Ébonus bMatkRate,15; ‚ð“ü‚ê‚é•K—v‚ª‚ ‚è‚Ü‚·B‚»‚Ì‘¼‚ÌC³‚à•K—v‚Å‚·B)
+EƒeƒXƒg‚µ‚Ä‚¢‚È‚¢•¨‚à‚©‚È‚è‚ ‚è‚Ü‚·‚Ì‚Å–â‘肪‚ ‚Á‚½‚ç•ñ‚µ‚Ä‚­‚¾‚³‚¢B
+ (map/)
+ map.h C³B
+ map.c
+ map_quit() C³B
+ pc.h C³B
+ pc.c
+ pc_walk()Apc_stop_walking()Apc_setpos()Apc_authok() C³B
+ pc_calcstatus()Apc_bonus()Apc_natural_heal_sub() C³B
+ npc.h C³B
+ npc.c
+ npc_touch_areanpc()Anpc_parse_shop() C³B
+ clif.c
+ clif_quitsave()Aclif_getareachar_npc()Aclif_spawnnpc() C³B
+ clif_skill_estimation() C³B
+ battle.c
+ battle_calc_magic_attack()Abattle_calc_pc_weapon_attack() C³B
+ battle_calc_mob_weapon_attack() C³B
+ mob.c
+ mobskill_use() C³B
+ skill.c
+ skill_status_change_end()Askill_status_change_timer() C³B
+ skill_status_change_start() C³B
+ (db/)
+ const.txt C³B
+ (doc/)
+ item_bonus.txt C³B
+
+--------------
+//0642 by Ž€_
+
+E‘•”õƒoƒOC³B(‚»‚ꂾ‚¯)
+ (map/)
+ pc.c
+ pc_authok()Apc_checkitem() C³B
+
+--------------
+//0641 by Ž€_
+
+EbAspdRate‚ÆbSpeedRate‚̃oƒOC³B(‚»‚ꂾ‚¯)0640‚ÅŒvŽZ‚ð‚¿‚å‚Á‚Æ•Ï‚¦‚ÄŒ©‚Ü‚µ‚½‚ª‚»‚ꂪ‚Ü‚¸‚©‚Á‚½‚Ý‚½‚¢‚Å‚·B¡“x‚àŒvŽZŽ®‚ð•Ï‚¦‚Ü‚µ‚½‚ª‚à‚¤‘åä•v‚¾‚ÆŽv‚¢‚Ü‚·B(‘½•ª)
+ (map/)
+ pc.c
+ pc_calcstatus()Apc_bonus()Apc_delitem()
+
+--------------
+//0640 by Ž€_
+
+EƒoƒOC³‚Æ­‚µC³B
+E‚Ý‚·‚Ƃꑃ‚ðŽQl‚µ‚ă_ƒ[ƒWŒvŽZ‚ð­‚µC³B
+Ebattle_athena.conf‚É€–ڒljÁB(Ú‚µ‚¢‚±‚Æ‚Íconf_ref.txt‚Å)
+EƒLƒƒƒ‰‚ÌHP‚ÆSP‚ð2byte‚©‚ç4byte‚É•ÏXB(ƒeƒXƒg‚Í‚µ‚Ä‚¢‚Ü‚·‚ªƒoƒO‚ªo‚é
+‰Â”\«‚à‚©‚È‚è‚ ‚è‚Ü‚·B‚½‚¾ƒLƒƒƒ‰ƒZƒŒƒNƒg‰æ–Ê‚ÅHP‚âSP‚ª32768‚ð‰z‚¦‚鎞
+•\Ž¦‚Í32768‚ɂȂ邯‚Ç“à•”‚̈—‚ͳí‚É“®‚«‚Ü‚·‚Ì‚Å‚»‚ê‚̓oƒO‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
+ƒpƒPƒbƒg‚Ì’·‚³‚Ì‚¹‚¢‚Å‚»‚êˆÈŠOŽè’i‚ª‚È‚©‚Á‚½‚Ì‚Å...)
+EbCriticalDef(ƒNƒŠƒeƒBƒJƒ‹‚ð‹ò‚ç‚í‚È‚¢Šm—¦+n%)‚̈—•ÏXB100‚É‚·‚ê‚Î
+ƒNƒŠƒeƒBƒJƒ‹‚ð‹ò‚ç‚í‚È‚¢‚悤‚É‚È‚è‚Ü‚·B)
+EbInnerAtk‚ðbBaseAtk‚É•ÏXB‚Ý‚·‚Ƃꑃ‚ŃJ[ƒh‚ÌUŒ‚‚ÍŠî–{UŒ‚—Í‚Ì•û‚É‘«‚³‚ê‚é‚Æ‚ ‚è‚Ü‚µ‚½‚Ì‚Å•ÏX‚µ‚Ü‚µ‚½B¡“x‚Íオ‚Á‚½UŒ‚—Í‚ª•\Ž¦‚³‚ê‚Ü‚·B
+EbDoubleRate‚̈—•ÏXBŠm—¦‚ð‘«‚³‚¸‚Ɉê”Ô‚‚¢•¨‚¾‚¯“K—p‚µ‚Ü‚·B‚»‚ê‚ƶŽè
+‘•”õ‚Ìꇖ³Ž‹‚·‚é‚悤‚É•ÏX‚µ‚Ü‚½B(¶Žè‚̓_ƒuƒ‹‚ª“K—p‚³‚ê‚Ü‚¹‚ñ‚Ì‚Å)
+EbDoubleAddRate’ljÁB‹@”\‚̓_ƒuƒ‹ƒAƒ^ƒbƒNŠm—¦+n%(•Ší–³Ž‹)‚Å‚·B
+¶Žè‘•”õ‚Í–³Ž‹‚³‚ê‚Ü‚·B
+E0635‚ÅUŒ‚—Í•\Ž¦‚ð–{ŽI‚É‚ ‚킹‚Ü‚µ‚½B‚»‚µ‚Ä¡“x‚Í‹|‚¾‚¯‚Å‚Í‚È‚­
+ŠyŠí‚ƃ€ƒ`‚àdex‚É‚æ‚Á‚ÄUŒ‚—Í‚ªã‚ª‚é‚悤‚É•ÏX‚µ‚Ü‚µ‚½B
+E‘•”õ‚µ‚½•Ší‚ªÁ‚¦‚éƒoƒOC³‚ׂ̈ɭ‚µC³‚Í‚µ‚Ü‚µ‚½‚ª–{“–‚É
+‘åä•v‚È‚Ì‚©‚Í•s–¾‚Å‚·B•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
+ (conf/)
+ battle_athena.conf C³B
+ (db/)
+ const.txt C³B
+ item_db.txt C³B
+ (doc/)
+ item_bonus.txt C³B
+ conf_ref.txt C³B
+ (map/)
+ map.h C³B
+ pc.c
+ pc_calcstatus()Apc_bonus()Apc_equipitem() C³B
+ battle.h C³B
+ battle.c
+ battle_calc_mob_weapon_attack()Abattle_calc_pc_weapon_attack() C³B
+ battle_config_read() C³B
+ clif.c
+ clif_updatestatus()Aclif_parse_LoadEndAck()Aclif_party_hp() C³B
+ (common/)
+ mmo.h C³B
+ (char/)
+ char.c
+ mmo_char_send006b()Aparse_char() C³B
+
+--------------
+//0639 by ŒÓ’±—–
+
+Eladmin‚ÌC³‚È‚Ç
+ Eƒvƒƒ“ƒvƒg‚Ì“ü—Í‚ÉTerm::ReadLine‚ðŽg‚¤‚悤‚É‚µ‚½
+ @i“ü—Í—š—ð‚âƒRƒ}ƒ“ƒhƒ‰ƒCƒ“‚Ì•ÒW‚ª‰Â”\‚Éj
+ EPOSIXŠÖŒW‚̈—‚Ì—áŠOƒGƒ‰[‚ðƒgƒ‰ƒbƒv‚·‚é‚悤‚É‚µ‚Ü‚µ‚½
+ @iPOSIX‚ª‘S‚­Žg‚¦‚È‚¢ŠÂ‹«‚Å‚àÅ’áŒÀA“®‚­‚悤‚É‚È‚Á‚½‚©‚à‚µ‚ê‚È‚¢j
+ Eו”C³
+
+ (tool/)
+ ladmin
+ Ver.1.04‚ÉB
+
+EMODƒo[ƒWƒ‡ƒ“‚ª‚¨‚©‚µ‚¢–â‘è‚ðC³
+ (common/)
+ version.h
+ ATHENA_MOD_VERSION‚ª‚Wi”‚Å‹Lq‚³‚ê‚Ä‚¢‚é–â‘è‚ðC³
+ ”Žš‚Ì“ª‚É0‚ð‚‚¯‚é‚Æ‚Wi”‚É‚È‚é‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢
+
+--------------
+//0638 by ”g˜Q
+
+E0635E0637‚ÅV‚µ‚­ƒAƒCƒeƒ€Œø‰Ê‚ªŽÀ‘•‚³‚ꂽ‚Ì‚ÅA‚»‚ê‚É”º‚Á‚Äitem_db.txt‚ðC³
+Eitem_bonus.txt‚ðC³
+ (db/)
+ item_db.txt C³
+ (doc/)
+ item_bonus.txt C³
+
+--------------
+//0637 by Ž€_
+
+E0635‚̃oƒOC³B
+Ebattle_athena.conf‚É€–ڒljÁB(Ú‚µ‚¢‚±‚Æ‚Íconf_ref.txt‚ðŒ©‚Ä‚­‚¾‚³‚¢B)
+EŽžŠÔ‚ª’x‚·‚¬‚Ä0635‚Åà–¾‚µ‚Ä‚È‚©‚Á‚½‚Å‚·B(Q•s‘«‚¾‚Á‚½‚Ì‚Å...)
+‚Ü‚¸Žd—l‚ª•Ï‚í‚Á‚½‚Ì‚Í“ñ“—¬‚̃_ƒ[ƒW‚ð•Ší•Ê‚ÉŠ®‘S‚É•ª‚¯‚Äs‚¤‚悤‚É
+•ÏX‚ƃAƒTƒVƒ“‚¶‚á‚È‚­‚ĂඎèC—û‚ðŠo‚¦‚Ä‚¢‚ê‚Γñ“—¬‚ðŽg‚¦‚é‚悤‚É
+•ÏX‚µ‚Ü‚µ‚½B‚»‚ê‚ƃ_ƒ[ƒW‚ÌŒvŽZ‚ð‚¿‚å‚Á‚ÆC³B
+‚»‚µ‚Äbonus‚ɒljÁ‚³‚ꂽ‚Ì‚Í
+bonus bInnerAtk,n; “à•”UŒ‚—Í+n
+ƒJ[ƒh‚̈ø‚«ã‚°ƒ_ƒ[ƒW—p‚Å‚·B•\Ž¦‚Í‚³‚ê‚È‚¢‚¯‚ǃ_ƒ[ƒW‚ÉŒvŽZ‚³‚ê‚Ü‚·B
+bonus bSpeed,n; ˆÚ“®‘¬“x+n
+ˆÚ“®‘¬“x‚ðnã‚°‚Ü‚·B
+bonus bAspd,n; UŒ‚‘¬“x+n
+UŒ‚‘¬“x‚ðnã‚°‚Ü‚·B
+bonus bSpeedRate,n; ˆÚ“®‘¬“x+n%
+ˆÚ“®‘¬“x‚ðn%ã‚°‚Ü‚·B
+bonus bAspdRate,n; UŒ‚‘¬“x+n%
+UŒ‚‘¬“x‚ðn%ã‚°‚Ü‚·B
+bonus bHPrecovRate,n; HPŽ©“®‰ñ•œ—¦+n%
+Ž©“®‰ñ•œ‚·‚éHP‚Ì—Ê‚ðn%ã‚°‚Ü‚·BƒXƒLƒ‹‚É‚æ‚é‰ñ•œ‚ɂ͉e‹¿‚ª‚ ‚è‚Ü‚¹‚ñB–{ŽI‚ÌŽd—l‚Æ‚ ‚Á‚Ä‚¢‚é‚©‚Í•s–¾‚Å‚·B
+bonus bSPrecovRate,n; SPŽ©“®‰ñ•œ—¦+n%
+Ž©“®‰ñ•œ‚·‚éSP‚Ì—Ê‚ðn%ã‚°‚Ü‚·BƒXƒLƒ‹‚É‚æ‚é‰ñ•œ‚ɂ͉e‹¿‚ª‚ ‚è‚Ü‚¹‚ñB–{ŽI‚ÌŽd—l‚Æ‚ ‚Á‚Ä‚¢‚é‚©‚Í•s–¾‚Å‚·B
+bonus bCriticalDef,n; ƒNƒŠƒeƒBƒJƒ‹‚ð‹ò‚ç‚í‚È‚¢Šm—¦+n%
+ƒNƒŠƒeƒBƒJƒ‹‚Ì‘Ï«‚ðnã‚°‚Ü‚·B10000ˆÈã‚É‚·‚é‚ƃNƒŠƒeƒBƒJƒ‹‚ð‹ò‚ç‚¢‚Ü‚¹‚ñB
+bonus bMVPaddAtkRate,n; MVPƒ‚ƒ“ƒXƒ^[‚Én%‚̒ljÁƒ_ƒ[ƒW
+ƒ{ƒXƒ‚ƒ“ƒXƒ^[‚Én%‚̒ljÁƒ_ƒ[ƒW‚ð—^‚¦‚Ü‚·B[•£‚Ì‹RŽmƒJ[ƒh—pB
+bonus bNearAtkDef,n; ‹ß‹——£UŒ‚‚̃_ƒ[ƒW‚ðn%‚ÌŒ¸‚ç‚·
+‘S‚Ä‹ß‹——£UŒ‚‚̃_ƒ[ƒW‚ðn%‚ÌŒ¸‚炵‚Ü‚·B(–‚–@‚ƃgƒ‰ƒbƒvA‘é‚𜂭)
+bonus bLongAtkDef,n; ‰“‹——£UŒ‚‚̃_ƒ[ƒW‚ðn%‚ÌŒ¸‚ç‚·
+‘S‚ĉ“‹——£UŒ‚‚̃_ƒ[ƒW‚ðn%‚ÌŒ¸‚炵‚Ü‚·B(–‚–@‚ƃgƒ‰ƒbƒvA‘é‚𜂭)
+bonus bDoubleRate,n; ƒ_ƒuƒ‹ƒAƒ^ƒbƒNŠm—¦+n%(•Ší–³Ž‹)
+•Ší‚ÉŠÖŒW‚È‚­”­“®‚·‚éƒ_ƒuƒ‹ƒAƒ^ƒbƒNŠm—¦‚ðn%ã‚°‚Ü‚·B
+ƒ_ƒuƒ‹ƒAƒ^ƒbƒNƒXƒLƒ‹‚Æ•Ê‚Ì”»’è‚ðs‚¤ˆ×ƒ_ƒuƒ‹ƒAƒ^ƒbƒNƒXƒLƒ‹‚ª
+‚ ‚Á‚Ä‚àƒXƒLƒ‹‚É‚æ‚éƒ_ƒuƒ‹ƒAƒ^ƒbƒNŠm—¦‚ªã‚ª‚é‚킯‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
+ƒTƒCƒhƒƒCƒ“ƒ_[ƒJ[ƒh—pB
+ (map/)
+ pc.c
+ pc_bonus()Apc_calcstatus() C³B
+ pc_natural_heal_sub() C³B
+ battle.h
+ struct Battle_Config {} C³B
+ battle.c
+ battle_calc_pc_weapon_attack()Abattle_calc_mob_weapon_attack() C³B
+ battle_config_read() C³B
+ (db/)
+ skill_db.txt
+ ƒXƒeƒB[ƒ‹‚ÌSP‚ð10‚ÉC³B
+ (conf/)
+ battle_athena.conf C³B
+ (doc/)
+ conf_ref.txt C³B
+
+--------------
+//0636 by Sin
+
+EƒfƒoƒbƒO—pƒ|ƒ^Žq‚³‚ñƒXƒNƒŠƒvƒg(npc_pota.txt)‚̃Aƒ}ƒcEƒRƒ“ƒƒ“‚ւ̑ΉžB
+@‚·‚Å‚ÉŽ©—ÍŽÀ‘•‚³‚ê‚Ä‚¢‚ç‚Á‚µ‚á‚é•ûX‚à‘½‚¢‚©‚ÆŽv‚¢‚Ü‚·‚ªcB
+@ƒRƒ“ƒƒ“ƒ_ƒ“ƒWƒ‡ƒ“‚Ì–¼‘O‚ª‚í‚©‚ç‚È‚¢‚½‚ßu›À›ÄD1v‚È‚Ç‚Æ‚³‚¹‚Ä‚¢‚½‚¾‚¢‚Ä‚¢‚Ü‚·B
+ (conf/) npc_pota.txt
+
+--------------
+//0635 by Ž€_
+
+Ebattle_athena.conf‚É€–ڒljÁB(Ú‚µ‚¢‚±‚Æ‚Íconf_ref.txt‚ðŒ©‚Ä‚­‚¾‚³‚¢B)
+Ebonus‚ÉbInnerAtk(ƒJ[ƒh“™‚Å•\Ž¦‚Í‚³‚ê‚È‚¢‚¯‚ÇŽÀÛ‚É‚ÍUŒ‚—Í‚É”½‰f‚³‚ê‚镨—p‚Å‚·B)“™‚ð’ljÁB‘¼‚Ì‚Íitem_bonus.txt‚ðŒ©‚Ä‚­‚¾‚³‚¢B(’ljÁ‚Í‚µ‚½‚¯‚Çitem_db.txt‚Í–w‚ñ‚ÇC³‚µ‚Ä‚Ü‚¹‚ñB)
+E‚»‚Ì‘¼ƒoƒOC³‚âŽd—l•ÏX‚à‚â‚è‚Ü‚µ‚½‚ªˆêX‘‚­ŽžŠÔ‚ª‚È‚¢‚Ì‚Å...
+ (map/)
+ makeile C³B
+ pc.c C³B
+ map.h C³B
+ clif.c C³B
+ battle.h C³B
+ battle.c C³B
+ itemdb.c C³B
+ (conf/)
+ battle_athena.conf C³B
+ (doc/)
+ conf_ref.txt C³B
+ item_bonus.txt C³B
+ (db/)
+ const.txt C³B
+ item_db.txt C³B
+
+--------------
+//0634 by Ž€_
+
+EweddingƒNƒ‰ƒX‚É‚Í“]E‚Å‚«‚È‚¢‚悤‚ÉC³B
+EƒX[ƒp[ƒm[ƒrƒX‚ׂ̈Éexpƒe[ƒuƒ‹‚ðbase 4‚Âjob 4‚‚Ɋg’£B
+exp.txt‚ª•Ï‚í‚èƒX[ƒp[ƒm[ƒrƒX‚¾‚¯‚ÌŒoŒ±’l‚ðÝ’è‚Å‚«‚Ü‚·B(exp.txt‚Ì
+4‚–ڂªƒX[ƒp[ƒm[ƒrƒX‚Ìbase exp‚Å8‚–ڂªjob exp‚Å‚·B¡‚Í2ŽŸE‹Æ‚Ì•¨‚ð
+ƒRƒs[‚µ‚½•¨‚ɉ߂¬‚Ü‚¹‚ñ‚ªB) exp.txt‚ÌÝ’è•û–@‚à’m‚ç‚È‚¢•û‚Í‚¢‚È‚¢‚Æ
+Žv‚¢‚Ü‚·‚Ì‚Åà–¾‚ÍÈ—ª‚µ‚Ü‚·B
+EƒX[ƒp[ƒm[ƒrƒX‚Í“]¶‚̃eƒXƒg‚ׂ̈ɊؑƒTƒNƒ‰ƒC‚¾‚¯ŽÀ‘•‚µ‚Ä‚¢‚镨‚Æ
+Žv‚í‚ê‚Ü‚·‚ª(“]¶‚ªŽÀ‘•‚³‚ê‚ê‚΂Ȃ­‚È‚é‚Æ—\‘ª‚µ‚Ä‚¢‚Ü‚·B)‚»‚ê‚ð
+ŽÀ‘•‚µ‚Ä‚¢‚¢‚Ì‚©‚ÆŽv‚Á‚½‚è‚à‚µ‚Ü‚·‚ª...
+EŒ‹¥ˆßÖ‚ÍŠù‚É0629‚ÅŽÀ‘•‚µ‚Ä‚¢‚é‚Ì‚É‚Ü‚½ƒpƒbƒ`‚Æ‚µ‚Ä
+ƒAƒbƒv‚³‚ê‚é‚Ì‚à‚¿‚å‚Á‚Æ•Ï(H)‚Å‚·‚ËB‚»‚¤‚¢‚¦‚Îà–¾‚µ‚Ä‚È‚©‚Á‚½‚ñ‚Å‚·‚ËB
+E‘•”õê—pƒXƒNƒŠƒvƒg‚Å‚ ‚échangebase‚̒ljÁ‚É‚æ‚Á‚ă^ƒLƒV[ƒh‚Æ
+ƒEƒFƒfƒBƒ“ƒOƒhƒŒƒX‚ªŽÀ‘•‚µ‚Ä‚¢‚Ü‚·B‚±‚ê‚ÍE‹Æ‚ð•ÏX‚¹‚¸‚ÉŒ©‚½–Ú‚¾‚¯
+•Ï‚¦‚镨‚Å‚·BweddingƒNƒ‰ƒXˆÈŠO‚Ì“K—p‚à‰Â”\‚Å•Ï‘•ƒZƒbƒg‚Æ‚©‚àì‚ê‚é
+‚킯‚Å‚·‚ª“à•”ˆ—‚Í•ÏX‚¹‚¸‚ÉŒ©‚½–Ú‚¾‚¯•Ï‚¦‚Ä‚¢‚é‚Ì‚Å0631‚Åà–¾‚µ‚½‚悤‚É
+‘•”õ‚Å‚«‚È‚¢•¨‚ð‘•”õ‚µ‚Ä‚¢‚éꇈƗŽ‚¿‚ª‹N‚±‚é‰Â”\«‚ª‚ ‚è‚Ü‚·‚Ì‚Å
+‘¼‚ÌE‹Æ‚ÅŽg‚¤‚Ì‚Í‚¨Š©‚ß‚µ‚Ü‚¹‚ñB‰¼ŽÀ‘•‚È‚Ì‚Í¡‚ÌŽd—l‚̓^ƒLƒV[ƒh‚Æ
+ƒEƒFƒfƒBƒ“ƒOƒhƒŒƒX‚ð‘•”õ‚·‚邾‚¯‚ÅŒ©‚½–Ú‚ª•Ï‚í‚é‚©‚ç‚Å‚·BŠØ‘ƒTƒNƒ‰ƒC‚Ì
+•û‚ł͉½‚©‚ÌðŒ‚ª•K—v‚¾‚ÆŽv‚Á‚Ä‚¢‚é‚Ì‚Å‚»‚ÌðŒ‚ª‚Ü‚¾ŽÀ‘•‚³‚ê‚¢‚È‚¢‚©‚ç
+‰¼ŽÀ‘•‚Å‚·B‚»‚ê‚ÉweddingƒNƒ‰ƒX‚ðE‹Æ‚É‚µ‚Ä‚µ‚Ü‚¤‚ÆŒ‹¥‚·‚é‚ƃXƒLƒ‹“™‚ª
+ƒŠƒZƒbƒg‚³‚ê‚é‚©•Ï‚É‚È‚é‚©‚Ì‚Ç‚¿‚ç‚È‚Ì‚Å•Ï‚¾‚ÆŽv‚Á‚Ä‚È‚©‚Á‚½‚Ì‚Å‚µ‚傤‚©H
+ help.txt C³B
+ (db/)
+ job_db1.txt C³B
+ exp.txt C³B
+ (map/)
+ pc.c
+ pc_jobchange()Apc_readdb() C³B
+ pc_nextbaseexp()Apc_nextjobexp() C³B
+
+--------------
+//0633 by ”g˜Q
+
+E‘•”õ‚ÌÝ’èC³BŒ‹¥ˆßÖ‚ÌE‚ÍAŽÀÛ‚É“]E‚·‚é‚Ì‚Å‚Í‚È‚­ƒyƒRƒiƒCƒg(13)AƒyƒRƒNƒ‹ƒZ(21)‚̂悤‚ɉ摜‚ðŽg‚¤‚¾‚¯‚¾‚ÆŽv‚¤‚Ì‚Å
+@‰½‚à‘•”õ‚Å‚«‚È‚¢Ý’è‚É‚µ‚Ü‚µ‚½BƒXƒpƒmƒr‚̓mƒr‚ª‘•”õ‚Å‚«‚é‚à‚Ì‚¾‚¯Ý’肵‚Ü‚µ‚½B
+EŒÃ–Ø‚ÌŽ}‚ÌoŒ»ƒ‚ƒ“ƒXƒ^[‚ð’ljÁ
+EƒAƒ}ƒc‚̃‚ƒ“ƒX‚Ì•¦‚«‹ï‡‚ð–{ŽI‚É‹ß‚­‚È‚é‚悤‚ÉC³(‚Ü‚¾‚Ü‚¾ˆá‚¢‚Ü‚·‚ªEEE)
+ (conf/)
+ npc_monster.txt ƒ‚ƒ“ƒX–¼C³
+ npc_monster_amatsu.txt C³
+ (db/)
+ item_avail.txt ˆÆ—Ž‚¿ƒAƒCƒeƒ€’ljÁ
+ item_db.txt ‘•”õÝ’è‚ðC³A‘¼‘½”
+ mob_branch.txt C³
+ mob_db.txt ƒ‚ƒ“ƒX–¼C³
+ skill_tree.txt C³
+
+--------------
+//0632 by nini
+
+E@jobchange‚ÅŒ‹¥ˆßւƃX[ƒp[ƒm[ƒrƒX‚É‚È‚ê‚é‚悤‚ÉB(’ˆÓFŠØ‘÷ˆäƒNƒ‰ƒCƒAƒ“ƒg‚Ì‚Ý)
+ESƒmƒr‚̃XƒeAƒXƒLƒ‹‚È‚Ç‚àŽb’è’ljÁB(ƒm[ƒrƒX‚̃Rƒs[‚Å‚·‚ª)
+@‚Æ‚è‚ ‚¦‚¸Œ©‚½–Ú‚¾‚¯‚Æ‚¢‚¤‚±‚Æ‚ÅAŒ‹¥ˆßÖ‚Å‚àUŒ‚‚Å‚«‚Ü‚·‚ª(‚½‚¾‚µƒm[ƒ‚[ƒVƒ‡ƒ“)A–{—ˆ‚Í‚Å‚«‚Ü‚¹‚ñB
+Eã‚É‚ ‚킹‚Äitem_db•ÒWB
+@Œ‹¥ˆßÖ‚Å•Ší‚à‚‚ÆactAsprƒGƒ‰[o‚·‚Ì‚ÅAŒ‹¥ˆßÖ‚Å‚Í•Ší‚ðŽ‚Ä‚È‚¢‚悤‚É‚µ‚½(‚Í‚¸)B
+ (db/)
+ job_db1.txt
+ job_db2.txt
+ item_db.txt
+ Œ‹¥ˆßÖASƒmƒr‚̃f[ƒ^
+ skill_tree.txt
+ Sƒmƒr‚̃XƒLƒ‹
+ (map/)
+ map.h
+ MAX_PC_CLASS‚ɒljÁ
+
+--------------
+//0631 by Ž€_
+
+Eׂ©‚¢C³B
+Eƒ^ƒLƒV[ƒh‚ƃEƒFƒfƒBƒ“ƒOƒhƒŒƒX‚Ì•\Ž¦‚ðbattle_athena.conf‚ÅÝ’è‚Å‚«‚é
+‚悤‚É•ÏXB
+E•ŠíƒOƒ‰ƒpƒbƒ`‚ɂ‚¢‚Ä‚Å‚·‚ªƒpƒbƒ`‘O‚ÍŽg‚¦‚È‚¢E‹Æ‚ª‘•”õ‚ð‚µ‚Ä‚à•\Ž¦‚Í
+‚³‚ê‚È‚¢‚¾‚¯‚ňƗŽ‚¿‚Ü‚Å‚Í‹N‚±‚ç‚È‚©‚Á‚½‚¯‚Ç•ŠíƒOƒ‰ƒpƒbƒ`‚ÌŒã‚Í‚»‚Ì•Ší‚ð
+‘•”õ‚·‚邱‚Æ‚ª‚Å‚«‚È‚¢E‹Æ(–{ŽI‚Å)‚ª‘•”õ‚µ‚Ä‚µ‚Ü‚Á‚½ê‡ˆÆ—Ž‚¿‚ª‹N‚±‚é
+‚±‚Æ‚ª‚ ‚è‚Ü‚·‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
+ (db/)
+ item_db.txt
+ 1161A2338A7170 C³B
+ (conf/)
+ battle_athena.conf C³B
+ (doc/)
+ conf_ref.txt C³B
+ (map/)
+ battle.h
+ struct Battle_Config‚Éwedding_modifydisplay ’ljÁB
+ battle.c
+ battle_config_read() C³B
+ pc.h
+ pc_cart_delitem() C³B
+ pc.c
+ pc_jobchange()Apc_additem()Apc_delitem()Apc_cart_delitem() C³B
+ pc_checkitem()Apc_getitemfromcart() C³B
+ clif.c
+ clif_changelook()Aclif_send()Aclif_parse_GlobalMessage() C³B
+ script.c
+ buildin_changebase() C³B
+ storage.c
+ storage_storageaddfromcart() C³B
+ vending.c
+ vending_purchasereq() C³B
+
+--------------
+//0630 by ˆø‘Þl
+
+EƒMƒ‹ƒh’E‘ÞŽž‚ÉcharƒT[ƒo‚ª—Ž‚¿‚邱‚Æ‚ª‚ ‚é‚Ì‚ðC³
+Ewater_height.txt‚ðXV
+E0627‚ÉŠÖ˜A‚µ‚ÄmodifydisplayŠÖ˜A‚ðíœ
+ (char/)
+ int_guild.c
+ mapif_guild_leaved()‚̃oƒbƒtƒ@—e—Ê‚ª‘«‚è‚È‚©‚Á‚½‚Ì‚ÅA
+ unsigned char buf[64]; -> unsigned char buf[128];
+ ‚ÆC³B
+ (conf/)
+ battle_athena.conf
+ equip_modifydisplay‚ðíœ
+ water_height.txt
+ prt_fild04.gat‚Æmoc_fild01.gat‚Ì•ª‚ð’ljÁ
+ (doc/)
+ conf_ref.txt
+ equip_modifydisplay‚Ìà–¾‚ðíœ
+ (map/)
+ battle.h
+ struct Battle_Config ‚©‚çequip_modifydisplay‚ðíœ
+
+--------------
+//0629 by Ž€_
+
+E0627‚̃oƒOˆê•”C³‚ÆV‚µ‚¢ˆÚ“®ƒpƒPƒbƒg‚ɑΉžB(Ž©•ª‚̊ԈႢ‚Å‚µ‚½B
+ƒ‚ƒ“ƒXƒ^[‚âNPC‚àV‚µ‚¢ˆÚ“®ƒpƒPƒbƒg‚ðŽg‚¤‚ÆŽv‚Á‚Ä‚¢‚½‚Ì‚Å‚·‚ª
+V‚µ‚¢ˆÚ“®ƒpƒPƒbƒg‚̓vƒŒƒCƒ„[‚݂̂̂悤‚Å‚·B)
+Eƒ^ƒLƒV[ƒh‚ƃEƒFƒfƒBƒ“ƒOƒhƒŒƒX‰¼ŽÀ‘•B(ŠØ‘‚̃TƒNƒ‰ƒCˆÆ‚¶‚á‚È‚¢‚Æ
+ˆÆ—Ž‚¿‚³‚ê‚Ü‚·BŽg—p‚·‚鎞‚Íitem_db.txt‚̃Rƒ}ƒ“ƒgƒAƒEƒg‚³‚ê‚Ä‚¢‚é
+2338‚Æ7170‚ð‰ðœ‚µ‚ÄŽg‚Á‚Ä‚­‚¾‚³‚¢B)
+ESP‰ñ•œƒAƒCƒeƒ€‚àint‚É‚æ‚Á‚ÄŒø‰Ê‚ª‘‚¦‚é‚悤‚É•ÏXB
+E0627‚Å‘‚«–Y‚ê‚Å‚·‚ªƒJ[ƒg‚̃AƒCƒeƒ€ŒvŽZ‚Æitemdb_‚ðŒÄ‚Ô‚Ì‚ðŬ‰»‚·‚é
+ˆ—‚ð“ü‚Á‚Ă邹‚¢‚Åpc_additem()Apc_delitem()Apc_cart_additem()Apc_cart_delitem()ˆÈŠO‚Ì•û–@‚ŃJ[ƒgƒAƒCƒeƒ€‚âƒAƒCƒeƒ€‚É•Ï“®‚ª‚ ‚éê‡
+³í‚É“®ì‚·‚é•ÛØ‚ª‚È‚¢‚Ì‚ÅC³‚Ì‚³‚¢‚É‚Í’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
+ readme0754‚ðreadme0574‚ÉC³B
+ makefile C³B
+ (map/)
+ map.h C³B
+ clif.c C³B
+ pc.c C³B
+ battle.c C³B
+ mob.c C³B
+ script.c C³B
+ (db/)
+ item_db.txt C³B
+ class_equip_db.txt C³B
+ skill_db.txt C³B(ŒëŽš‚ðŽ¡‚µ‚½‚¾‚¯‚Å‚·B)
+ (conf/)
+ npc_event_doll.txt C³B(—¬˜Ql‚³‚ñ‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B)
+
+--------------
+//0628 by NOCTURNE
+
+Esnapshot
+Esnapshot‚©‚çsnapshot‚Ü‚Å‚ÌReadme•ªŠ„
+E—v–]‚ª‘½‚©‚Á‚½‚Ì‚Åsnapì¬iƒvƒƒOƒ‰ƒ€“I‚È•ÏX“_‚Í–³‚µ
+
+--------------
+//0627 by Ž€_
+
+EƒR[ƒh‚ÌÅ“K‰»‚Æ­‚µC³B(­‚µ‚ÍŒy‚­‚È‚é‚ÆŽv‚¢‚Ü‚·B)
+E @modifydisplayƒRƒ}ƒ“ƒhíœB
+EV‚µ‚¢ˆÚ“®ƒpƒPƒbƒg‚ɑΉž‚¾‚ÆŽv‚Á‚½‚ç0x1d8A0x1d9A0x1daƒpƒPƒbƒg‚̈ꕔ‚ª
+0x78A0x79A0x7b‚Æ•Ï‚í‚Á‚Ä‚é‚Ý‚½‚¢‚Å‚·B‚‚܂衂̂܂܂ł͑Ήž‚Å‚«‚Ü‚¹‚ñB
+X,Y‚ÌÀ•W‚Ì•”•ª‚Ì‘Ž®‚ª•Ï‚í‚Á‚½‚Ì‚©‚Æ—\‘ª‚Í‚µ‚Ä‚¢‚Ü‚·‚ª...
+î•ñ‚ð‹‚Ý‚Ü‚·B(makefile‚ÌDPACKETVER‚ð4‚É‚·‚ê‚Î0x1d8A0x1d9A0x1da‚ð
+Žg‚¢‚Ü‚·‚ªÀ•W‚ª‚¸‚ꂽ‚炵‚­‰½‚à•WŽ¦‚³‚ê‚Ü‚¹‚ñB)
+E100000‚©‚炾‚Á‚½char_id‚ð150000‚©‚ç‚É•ÏXB(ƒyƒbƒg‚Ì—‘‚Ì–â‘è‚Å•Ší‚Ì–¼‘O‚ª‚¿‚å‚Á‚Æ•Ï‚É‚È‚Á‚½‚Ì‚ÅC³‚µ‚Ü‚µ‚½B)
+Eƒyƒbƒg‚̃R[ƒh­‚µC³B(pet_id‚ðcard[2]‚Æcard[3]‚©‚çcard[1]‚Æcard[2]‚É•ÏX‚µ‚Ü‚µ‚½B‚æ‚Á‚Ä‘O‚Éì‚Á‚½—‘‚ÍŽg‚¦‚Ü‚¹‚ñBˆÆ‚Åcard[3]‚Ì‹@”\‚ª•Ï‚í‚Á‚½‚Ì‚Å
+Žd•û‚È‚­C³‚µ‚Ü‚µ‚½B¡“x‚Íconvertƒc[ƒ‹‚ª‚ ‚è‚Ü‚¹‚ñBì‚鎞ŠÔ‚ª‚È‚©‚Á‚½‚Ì‚Å...)
+EÅ“K‰»‚ׂ̈ÉC³‚µ‚½Š‚ª‘½‚¢‚Å‚·‚ª‘S‚ij퓮삷‚é•ÛØ‚Í‚ ‚è‚Ü‚¹‚ñB
+ŽI—Ž‚¿ƒoƒO‚ª”­¶‚µ‚½‚ç•ñ‚¨Šè‚¢‚µ‚Ü‚·B(batte.c‚Í‚Ü‚¾Å“K‰»‚µ‚Ä‚Ü‚¹‚ñB)
+ƒJ[ƒg‚̃AƒCƒeƒ€ŒvŽZ‚âƒAƒCƒeƒ€‚Ìd—Ê‚ÌŒvŽZ‚ðʼn‚É‚¾‚¯‚·‚é‚悤‚É‚µ‚Ä‚¢‚é‚Ì‚Å•\Ž¦‚É­‚µ–â‘肪‚ ‚é‚©‚à...
+EC³‚µ‚½ƒtƒ@ƒCƒ‹‚¾‚¯‘‚¢‚Ä‚¨‚«‚Ü‚·B
+ makefile
+ help.txt
+ (common/)
+ mmo.h
+ (map/)
+ map.h
+ atcommnad.h
+ atcommnad.c
+ pc.h
+ pc.c
+ clif.c
+ script.c
+ trade.c
+ itemdb.h
+ itemdb.c
+ battle.h
+ battle.c
+ pet.c
+ map.c
+ mob.c
+ (char/)
+ char.c
+ (conf/)
+ battle_athena-conf
+ atcommand_athena.conf
+
+--------------
+//0626 by ˆø‘Þl
+
+EƒpƒPƒbƒg’·ƒe[ƒuƒ‹iVˆÚ“®ƒpƒPƒbƒg‚È‚ÇjC³
+ (doc/)
+ client_packet.txt ƒpƒPƒbƒg‰ð̓XƒŒ M‚³‚ñ‚Ìî•ñ‚𔽉f
+ conf_ref.txt 0624‚ɇ‚킹‚ÄC³
+ (map/)
+ clif.c
+ packet_len_table[] client_packet.txt‚ɇ‚킹‚ÄC³
+
+--------------
+//0625 by ˆø‘Þl
+
+E@hide“§–¾‰»‚ðBOSS‚È‚Ç‚ÉŒ©”j‚ç‚ê‚È‚¢‚悤‚ÉC³
+ (map/)
+ pc.h
+ #define pc_iscarton(sd) C³
+ #define pc_isinvisible(sd) ’ljÁ
+ mob.c
+ mob_attack()
+ mob_target()
+ mob_ai_sub_hard_activesearch()
+ mob_ai_sub_hard_mastersearch()
+ mob_ai_sub_hard()
+ “§–¾ipc_isinvisible(sd)!=0j‚ÅŽ€l‚Æ“¯—l‚É”»’肳‚ê‚é‚悤‚ÉC³
+ (conf/)
+ npc_cTower.txt C³ithx to holyzard‚³‚ñj
+
+--------------
+//0624 by ‚é‚é‚é
+
+E•Ší‰æ‘œ•\Ž¦ˆ—‚̈êViVˆÚ“®ƒpƒPƒbƒgŽg—pj
+Eã‚ÆŠÖ˜A‚µ‚ÄA@modifydisplayƒRƒ}ƒ“ƒh‚ðÝ‚¯‚½
+@@@@‹@”\‚Æ‚µ‚Ä‚ÍAŒ»Ý‚̃AƒTƒVƒ“•Ší‚È‚Ç‚Ì‚ª‚¨‚©‚µ‚¢ê‡‚ÉA‚Ü‚½‚Í‹C‚É“ü‚ç‚È‚¢‚Æ‚©‚ÅA
+@@@@ƒLƒƒƒ‰–ˆ‚É‹ŒƒpƒP‚ðŽg—p‚·‚é‚悤‚É‚µ‚Ä‚¢‚éB
+
+ (map/)
+ atcommand.c
+ atcommand() @modifydisplayƒRƒ}ƒ“ƒh‚ð’ljÁ
+ atcommand.h
+ struct Atcommand_Config {
+'7d •ÏX
+ clif.c
+ clif_set0078_and01d8() , clif_set007b_and01da() ŠÖ”–¼•ˆ—‚Ì•ÏX
+ clif_spawnpc() , clif_movechar() , clif_changelook() , clif_getareachar_pc() ,
+ clif_fixpcpos() , clif_parse_LoadEndAck() •ÏX
+ map.h
+ struct map_session_data Eb} •ÏX
+ pc.c
+ pc_setnewpc() , pc_calcstatus() , pc_equiplookall() , pc_changelook() •ÏX
+
+ (conf/)
+ atcommand_athena.conf
+ equip_modifydisplay ’ljÁ
+
+ •ÏX‰ÓŠ‚Í‘S‚ăL[ƒ[ƒhumodifydisplayv‚ŃT[ƒ`‚·‚ê‚΂قڂ킩‚é‚©‚ÆB
+
+ƒRƒƒ“ƒgF‚à‚¤‚±‚ê‚Å–â‘è‚Í–³‚¢‚Í‚¸BŽÀ‚Í‘å‚¢‚Ȃ銨ˆá‚¢‚ð‚µ‚Ä‚½ŒÂŠ‚ª‚ ‚Á‚½‚Ì‚Í“àiƒ}ƒew
+
+--------------
+//0623 by ˆø‘Þl
+
+E@hide‚Å“§–¾‰»iŒ©‚ç‚ê‚È‚¢•MOB‚Ƀ^ƒQ‚ç‚ê‚È‚¢j‚·‚é‚悤‚ÉC³‚È‚Ç
+ (map/)
+ atcommand.c
+ @hide‚ÌoptionÝ’è‚ð0x04‚©‚ç0x40‚É•ÏX
+ mob.c
+ mob_attack()
+ mob_target()
+ mob_ai_sub_hard_activesearch()
+ mob_ai_sub_hard_mastersearch()
+ mob_ai_sub_hard()
+ option”»’è‚ð0x06‚©‚ç0x46‚ÉC³
+ (conf/)
+ npc_event_potion.txt MORISON_MEATC³ithx to holyzard‚³‚ñj
+
+--------------
+//0622 by ˆø‘Þl
+
+Emob‚ªƒXƒLƒ‹Žg—p‚ÉŽ¸”s‚µ‚½ê‡A’ÊíUŒ‚‚·‚é‚悤‚É
+ (map/)
+ mob.c
+ mobskill_use_id() ƒXƒLƒ‹Žg—pŽ¸”s‚Å0A¬Œ÷‚Å1‚ð•Ô‚·‚悤‚ÉC³
+ mobskill_use_pos() ƒXƒLƒ‹Žg—pŽ¸”s‚Å0A¬Œ÷‚Å1‚ð•Ô‚·‚悤‚ÉC³
+ mobskill_use() ã‹L‚𔽉f‚µ‚ÄŽ¸”sŽž‚É‚Í0‚ð•Ô‚·‚悤‚ÉC³
+
+--------------
+//0621 by ŒÓ’±—–
+
+EƒAƒCƒeƒ€ƒ`ƒFƒbƒN‚ðs‚¤‚©‚Ç‚¤‚©conf/battle_athena.cnf‚É‘‚¯‚é‚悤‚É
+EƒAƒCƒeƒ€ƒ`ƒFƒbƒN‚Å•s³‚Æ”»’f‚·‚é‚©‚Ç‚¤‚©‚ðdb/item_avail.txt‚É‘‚¯‚é‚悤‚É
+E@itemcheck‚Å–¾Ž¦“I‚ɃAƒCƒeƒ€ƒ`ƒFƒbƒN‚Å‚«‚é‚悤‚É
+
+ ƒfƒoƒO‚âƒeƒXƒg‚È‚Ç‚ÅFX‚ȃAƒCƒeƒ€ID‚ðŽg—p‚µ‚½‚¢ê‡‚Í
+ ƒAƒCƒeƒ€ƒ`ƒFƒbƒN‚𖳌ø‚É‚µ‚ĉº‚³‚¢B(item_check: off)
+ –³Œø‚É‚µ‚½ê‡‚Å‚à@itemcheckƒRƒ}ƒ“ƒh‚Ń`ƒFƒbƒN‚·‚邱‚Æ‚ªo—ˆ‚Ü‚·B
+ cnfƒtƒ@ƒCƒ‹‚Í—pˆÓ‚µ‚Ä‚È‚¢‚Ì‚Å•K—v‚È‚çŠeŽ©“K“–‚É‘‚«Š·‚¦‚Ä‚­‚¾‚³‚¢B
+
+ (db/)
+ item_avail.txt
+ V‹K’ljÁB•s³ƒAƒCƒeƒ€‚Ì—ñ‹“‚ÉŽg—pB–¢Š®¬B‘¼—Í–{ŠèB
+ item_db.txt‚É’è‹`‚³‚ê‚Ă邪ŽÀÛ‚É‚ÍŽg—p‚Å‚«‚È‚¢ƒAƒCƒeƒ€‚ð‘‚­B
+ (doc/)
+ conf_ref.txt
+ battle_athena.cnf‚Æatcommand_athena.cnf‚Ìà–¾C³
+ (map/)
+ itemdb.c/itemdb.h
+ itemdb_availableƒ}ƒNƒ’ljÁ
+ itemdb_read_itemavail()’ljÁ
+ itemdb_readdb()‚Åavailable=1‚É‚·‚é‚悤‚É
+ itemdb_search()‚Å‘¶Ý‚µ‚È‚¢ID‚Íavailable=0‚Ńf[ƒ^‚ðì‚é‚悤‚É
+ do_init_itemdb()‚Åitemdb_read_itemavail()‚ðŒÄ‚Ԃ悤‚É
+ pc.c/pc.h
+ pc_checkitem()‚ðƒGƒNƒXƒ|[ƒg
+ pc_checkitem()‚Åavailable‚Æbattleconfig‚ðƒ`ƒFƒbƒN‚·‚é‚悤‚É
+ atcommand.c/atcommand.h
+ @item‚Åbattleconfig‚ðƒ`ƒFƒbƒN‚·‚é‚悤‚É
+ @itemcheckƒRƒ}ƒ“ƒh’ljÁ
+ atcommandconfig‚Éitemcheckƒƒ“ƒo’ljÁ
+ battle.c/battle.h
+ battle_config‚Éitem_checkƒƒ“ƒo’ljÁ
+
+Eladmin‚ÌC³‚È‚Ç
+ ƒAƒJƒEƒ“ƒg’ljÁAƒpƒXƒ[ƒh•ÏX‚ÌۂɃpƒXƒ[ƒh‚ðÈ—ª‚·‚é‚ÆA
+ ƒpƒXƒ[ƒh—p‚̃GƒR[‚µ‚È‚¢ê—pƒvƒƒ“ƒvƒg‚Å“ü—Í‚Å‚«‚Ü‚·i•“ü—ÍŠm”FjB
+ ’ljÁ‚ÌۂɃpƒXƒ[ƒh‚ª•\Ž¦‚³‚ꂽ‚碂éꇂȂǂÉB
+ ƒpƒXƒ[ƒh“ü—Í’†‚ÍCtrl+C‚ªŒø‚©‚È‚¢‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
+
+ ƒpƒXƒ[ƒh‚Ì•s³•¶Žš‚Ì•\Ž¦‚ªA‰½•¶Žš–Ú‚©‚Å•\Ž¦‚·‚é‚悤‚É‚È‚è‚Ü‚µ‚½B
+ ‚»‚Ì‘¼”÷–­‚Ƀ`ƒFƒbƒN’ljÁ‚È‚ÇB
+
+ Cygwin‚Å‚µ‚©“®ìŠm”F‚µ‚Ä‚¢‚Ü‚¹‚ñBPOSIXƒ‚ƒWƒ…[ƒ‹‚ðŽg‚Á‚Ä‚¢‚é‚Ì‚ÅA
+ POSIX‚Å‚È‚¢(•ƒGƒ~ƒ…ƒŒ[ƒVƒ‡ƒ“‚à‚Å‚«‚È‚¢)ƒvƒ‰ƒbƒgƒtƒH[ƒ€‚¾‚Æ
+ “®‚©‚È‚¢‚©‚à‚µ‚ê‚Ü‚¹‚ñB
+ UNIXŒn‚Å‚Ínkf‚ȂǂʼnüsƒR[ƒh‚ð•ÏŠ·‚µ‚È‚¢‚Æ‚¾‚ß‚©‚àH
+
+ (tool/)
+ ladmin
+ Ver.1.03‚ÉB
+
+-------------
+//0620 by ŒŽ‰r‚Ý
+
+Eƒz[ƒŠ[ƒNƒƒXŽÀ‘•
+
+ (db)
+ skill_db.txt C³
+ (map)
+ skill.c
+ skill_additional_effect()C³(ƒRƒƒ“ƒg‚Ì‚Ý)
+ battle.c
+ Damage battle_calc_weapon_attack()C³
+
+-------------
+//0619 by ‚é‚é‚é
+
+Eƒpƒbƒ`0617‚Ì‚Å‚â‚è–Y‚ê‚Æ”÷–­‚ÈC³
+
+ clif.c
+ clif_movechar(),clif_parse_LoadEndAck() C³
+
+--------------
+//0618 by nini
+
+EƒŠƒUƒŒƒNƒVƒ‡ƒ“‚̉r¥AƒfƒBƒŒƒC’ljÁB‰ñ•œ—ÊC³B
+EÁ”ïSPC³
+EƒAƒ[ƒVƒƒƒ[‚͈̔͂ð5*5‚É‚µ‚Ä2ƒZƒ‹‚«”ò‚΂µB
+Eƒ`ƒƒ[ƒWƒAƒ[‚ÌŽg—p•ŠíðŒ–³‚µB
+EƒXƒsƒAƒXƒ^ƒu‚Ì”ò‹——£‚ð6ƒZƒ‹‚ÉB
+ (/db)
+ cast_db.txt C³
+ skill_db.txt C³
+ (/map)
+ battle.c
+ battle_calc_weapon_attack() C³
+ skill.c
+ skill_castend_damage_id() C³
+ skill_check_condition() C³
+ skill_castend_nodamage_id() C³
+
+--------------
+//0617 by ‚é‚é‚é
+
+E•Ší‰æ‘œ•\Ž¦‚Å‘¼ƒLƒƒƒ‰‚ª•\Ž¦‚³‚ê‚È‚¢‚Ì‚ðu‚Æ‚è‚ ‚¦‚¸vC³
+EŒC•\Ž¦‚̃pƒPƒbƒg‚ð‘—M’âŽ~iŒ»Žž“_‚ł̓€ƒ_BƒRƒƒ“ƒg‚µ‚½‚¾‚¯‚Å‚·‚ªj
+ clif.c
+ clif_spawnpc(),clif_getareachar_pc(),clif_fixpcpos(),clif_changelook()C³
+ pc.c
+ clif_changelook()‚ª‚ ‚é•”•ª‚ðC³i•Ší[„‚‚Ƈ‚É‚È‚é‚悤‚Ɉ—‚Ì“ü‚ê‘Ö‚¦j
+
+ƒRƒƒ“ƒgB
+Vƒ}ƒbƒvˆÚ“®ƒpƒP(0x1d8`0x1daj‚ðFX‚Æ‚â‚Á‚½‚ªA‚»‚̃pƒP‚P‚‚ŕŠí•\Ž¦‚ªVŽ®‚̂ɑΉž‚µ‚Ä‚é
+‚Æ‚¢‚¤‚킯‚Å‚Í‚È‚¢‚Á‚Û‚¢B‹ŒˆÚ“®ƒpƒP‚¾‚ÆŽ©•ªˆÈŠO‚̃Lƒƒƒ‰‚ªˆÚ“®‚·‚é‚Æ‹ŒŽ®•\Ž¦‚É‚È‚Á‚Ä‚µ‚È‚¤B
+X‚ÉAV•Ší•\Ž¦ƒpƒP‚Í•Ší‚Æ‚‚Ì“¯Žžˆ—‚ªo—ˆ‚Ä‚È‚¢B‚¨‚»‚ç‚­ƒNƒ‰ƒCƒAƒ“ƒg‚Ì–â‘肾‚ÆŽv‚¤B
+‚Æ‚è‚ ‚¦‚¸AƒLƒƒƒ‰‚ª“®‚­‚½‚Ñ‚ÉV•ŠíƒpƒP„‹Œ‚ƒpƒP‚Ì‚Q‚‚̑•”õƒpƒP‚𑗂邱‚Æ‚Å‰ðŒˆ‚³‚¹‚Ä‚¢‚éB
+–{ŽI‚Å‚Í‚Ç‚¤‚È‚Ì‚©‚ÌŽÀÛ‚Ì‚Æ‚±‚ë‚̃f[ƒ^‚ª–³‚¢‚½‚ßA‚±‚êˆÈã‚Ì‚±‚Ƃ̓€ƒŠB
+
+--------------
+//0616 by ŒÓ’±—–
+
+Ewater_height.txt‚ð“Ç‚ñ‚Å‚¢‚È‚¢‚ƃT[ƒo[‚ª—Ž‚¿‚éƒoƒOC³
+ map.c
+ map_waterheight()C³
+
+EPC‚̃}ƒbƒvˆÚ“®Žž‚̃AƒCƒeƒ€ƒ`ƒFƒbƒN‚ŃAƒCƒeƒ€ID‚Ì‘¶Ý‚ðƒ`ƒFƒbƒN‚·‚é‚悤‚ÉC³
+Eˆê•”‚Ì—ƒRƒ}ƒ“ƒh‚ŃAƒCƒeƒ€ID‚Ì‘¶Ý‚ðƒ`ƒFƒbƒN‚·‚é‚悤‚ÉC³
+ pc.c
+ pc_checkitem()C³
+ pc_authok()C³ pc_checkitem()’ljÁ
+ clif.c
+ clif_parse_LoadEndAck()C³
+ itemdb.c
+ itemdb_exists()’ljÁiitemdb_search‚Æ“¯‚¶‚¾‚ªAdb‚É‘¶Ý‚µ‚È‚¢
+ ꇂÍV‚µ‚¢ƒf[ƒ^‚ðì‚炸‚ÉNULL‚ð•Ô‚·j
+ itemdb_read_classequipdb()C³ itemdb_search=>itemdb_exists
+ itemdb_read_itemnametable()C³ itemdb_search=>itemdb_exists
+ itemdb_read_itemvaluedb()C³ itemdb_search=>itemdb_exists
+ atcommand.c
+ @itemC³ itemdb_search=>itemdb_exists
+ @produceC³ itemdb_exists‚Ń`ƒFƒbƒN‚·‚é‚悤‚É
+
+--------------
+//0615 by ”g˜Q
+
+EƒAƒCƒeƒ€DATA‘å•C³
+@Žå‚ÈC³‰ÓŠ‚ÍA‰ñ•œƒAƒCƒeƒ€‚̉ñ•œ—Ê‚ÌC³AÁ”ïƒAƒCƒeƒ€‚ðclass_equip_db.txt–³‚µ‚Å‚àŽg—p‚Å‚«‚é—l‚ÉC³A
+@‘•”õ•i‚Ì‘•”õ‰Â”\E‚ð‘S‚ÄC³AƒJ[ƒhŒø‰Ê‚ðC³AetcEEE‚Å‚·B
+
+--------------
+//0614 by Nikita
+
+EƒAƒCƒeƒ€DATA‚ÌC³iŽå‚ɉñ•œ—Êj
+EƒXƒLƒ‹‰ð“Å‚ÌŽË’öC³
+E0612‚Ìׂ©‚¢C³
+ (conf/)
+ npc_town_prontera.txt C³
+ (db/)
+ item_db.txt C³
+ skill_db.txt C³
+
+--------------
+//0613 by ˆø‘Þl
+EcheckweightC³
+ (conf/)
+ npc_event_making.txt checkweight•”•ª‚ðC³
+ npc_event_potion.txt ƒ|[ƒVƒ‡ƒ“AƒWƒ…[ƒXNPC‚ÌcheckweightC³
+
+--------------
+//0612 by nini
+
+EƒAƒCƒeƒ€DATAC³
+ (db/)
+ item_db.txt C³
+ (conf/)
+ npc_town_***.txt C³
+ R.O.M776‚³‚ñ‚ðŽQÆ‚µ‚Ü‚µ‚½B
+
+--------------
+//0611 by Ž€_
+
+EƒAƒCƒeƒ€Žg—pðŒ‚ª‚ ‚í‚È‚¢Žž0xa8ƒpƒPƒbƒg‚ð‘—‚é‚悤‚É•ÏXB(ƒoƒO•ñƒXƒŒƒbƒh 243‚Ìno name‚³‚ñî•ñ’ñ‹Ÿ‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B)
+EQM‚ÅW’†—ÍŒüã‚Æ‘¬“xã¸AƒAƒhƒŒƒiƒŠƒ“ƒ‰ƒbƒVƒ…Aƒ‰ƒEƒhƒ{ƒCƒXAƒXƒsƒAƒNƒCƒbƒPƒ“Aƒc[ƒnƒ“ƒhƒNƒCƒbƒPƒ“‚ð‰ðœ‚·‚é‚悤‚ÉC³B
+E‘¬“x㸂Ƒ¬“xŒ¸­‚Å‹t‚̃XƒLƒ‹‚ª‰ðœ‚³‚ê‚é‚悤‚ÉC³B
+E0609‚Å‘‚«–Y‚êBƒ‚ƒ“ƒXƒ^[‚ªQM‚͈̔͂©‚甲‚¯‚Ä‚àŒø‰Ê‚ªˆÛŽ‚·‚é‚悤‚É
+•ÏX‚ƃuƒŒƒbƒVƒ“ƒO‚ÅŽô‚¢‚ÆΉ»‚ª‰ðœ‚³‚ê‚é‚悤‚ÉC³B
+ clif.c
+ clif_useitemack() C³B
+ skill.c
+ skill_status_change_start() C³B
+ pc.c
+ pc_insert_card() C³B(‚±‚ê‚̓J[ƒhƒoƒO‚Æ‚ÍŠÖŒW‚È‚¢C³‚Å‚·B‚»‚̃oƒO‚ÌC³‚ÍŽ©•ª‚ª05xx“–‚½‚è‚ÅC³‚µ‚Ü‚µ‚½‚Ì‚ÅB)
+
+--------------
+//0610 by ”g˜Q
+
+EƒAƒCƒeƒ€DATAC³
+ (db/)
+ item_db.txt C³
+
+--------------
+//0609 by Ž€_
+
+EFX‚ÆC³B
+Eƒ‚ƒ“ƒXƒ^[‚ªŽ~‚Ü‚é‚悤‚É“®‚­–â‘èC³B
+EŽw’e‚̃fƒBƒŒƒCC³B
+E–î쬂̃R[ƒh•Ð•t‚¯B
+E“G‚ªƒXƒLƒ‹”͈͂©‚瓦‚°‚½ê‡ƒXƒLƒ‹‚ªŽ¸”s‚·‚é‚悤‚É•ÏXB
+Eclass_equip_db.txt‚ÌŽd—l•ÏXB
+ «•Ê‚Æ‘•”õƒŒƒxƒ‹‚àÝ’è‰Â”\‚É•ÏX‚ÆŽg—pƒAƒCƒeƒ€‚ÌŽg—pE‹ÆA«•Ê‚ÆŽg—p
+ ƒŒƒxƒ‹‚Ìݒ肪‚Å‚«‚é‚悤‚É•ÏXB(‚½‚¾ƒf[ƒ^‚ª‘½‚¢‚¹‚¢‚ÅC³‚µ‚½
+ class_equip_db.txt‚̓Tƒ“ƒvƒ‹’ö“x‚Ì•¨‚Å‚·B–„‚ß‚Ä‚­‚¾‚³‚¢B‘¼—Í–{Šè‚Å‚·‚ª...)
+ ‚»‚ê‚ƃAƒCƒeƒ€Žg—pðŒ‚ª‚ ‚í‚È‚¢‚ƃAƒCƒeƒ€‚ªŽg‚í‚È‚¢‚悤‚É‚µ‚Ä‚Í
+ ‚¢‚Ü‚·‚ª01c8ƒpƒPƒbƒg‚Ì<type>‚ð0‚É‚µ‚Ä‚àƒAƒCƒeƒ€‚ðŽg—p‚µ‚½Žž‚Æ“¯‚¶
+ ƒGƒtƒFƒNƒg‚ªo‚Ü‚·B–{ŽI‚̃AƒCƒeƒ€Žg—pƒpƒPƒbƒg‚ª•ª‚©‚ç‚È‚¢‚Ü‚Ü‚¶‚á
+ ‚±‚¤‚·‚邵‚©‚È‚©‚Á‚½‚Ì‚Å‚·‚ª...
+Ebattle_athena.conf‚É€–ڒljÁB
+E‚»‚Ì‘¼ƒXƒLƒ‹­‚µC³‚Æׂ©‚¢C³B
+EC³‚µ‚½Š‚ð‘S‚ÄŠo‚¦‚Ä‚Ü‚¹‚ñ‚̂Ńtƒ@ƒCƒ‹‚¾‚¯B
+ (map/)
+ clif.c C³B
+ mob.c C³B
+ mob.h C³B
+ pc.c C³B
+ map.h C³B
+ skill.c C³B
+ skill.h C³B
+ itemdb.c C³B
+ battle.c C³B
+ battle.h C³B
+ (conf/)
+ battle_athena.conf C³B
+ (db/)
+ cast_db.txt C³B
+ skill_db.txt C³B
+ create_arrow_db.txt C³B
+ class_equip_db.txt C³B
+ item_db.txt C³B
+ (doc/)
+ client_packet.txt C³B
+ conf_ref.txt C³B
+
+--------------
+//0608 by sk
+EƒAƒ}ƒcNPC’ljÁ
+ (conf/)
+ npc_town_amatsu.txt é“àNPC’ljÁ
+ npc_warp_amatsu.txt é“àƒ[ƒvƒ|ƒCƒ“ƒg’ljÁ
+
+--------------
+//0607 by J
+EƒAƒTƒ‹ƒgƒ^[ƒgƒ‹‚̎艺¢Š«‚̃oƒOC³(•ñ‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚· ‚é‚é‚邳‚ñ)
+ (db/)
+ mob_skill_db.txt ƒAƒTƒ‹ƒg‚ÌC³‚‚¢‚łɃeƒŒƒ|‚ðŽg‚¤MOB‚̃XƒLƒ‹ƒfƒBƒŒƒC‚àC³
+
+--------------
+//0606 by ˆø‘Þl
+EƒXƒLƒ‹ƒŒƒxƒ‹Å‘å’lˆÈã‚ɃNƒŠƒbƒN‚µ‚½Žž“_‚Å‘¼ƒXƒLƒ‹‚ªã‚°‚ç‚ê‚È‚­‚È‚éƒoƒO‚ðC³iThanx to 227‚³‚ñj
+ (map/)
+ clif.c
+ clif_skillup()
+ ƒXƒLƒ‹ƒŒƒxƒ‹‚ªÅ‘å’l‚Ì‚Æ‚«AƒpƒPƒbƒg––”ö‚ð0‚É‚·‚é‚悤‚ÉC³
+
+--------------
+//0605 by ‚é‚é‚é
+
+E•Ší‘®«•t—^ƒXƒLƒ‹‚Ì•s“s‡C³
+ •Ší‚ðŽ‚¿‘Ö‚¦‚½‚èŠO‚µ‚½‚肵‚½ê‡‚àA‘®«•t—^‚ð‰ðœ‚·‚é‚悤‚É‚µ‚Ü‚µ‚½B
+ ’A‚µA‘fŽè„•Ší‘•”õ‚Ì‚Ýó‘ÔˆÛŽ‚µ‚Ü‚·B
+EƒXƒsƒAƒNƒCƒbƒPƒ“‚̃Xƒe[ƒ^ƒXƒAƒCƒRƒ“‚𳂵‚­•\Ž¦
+E‚Q‚g‚pAƒXƒsƒAƒNƒCƒbƒPƒ“AƒAƒhƒŒƒiƒŠƒ“ƒ‰ƒbƒVƒ…‚ÅŠY“–ˆÈŠO‚Ì•ŠíŽ‚¿‘Ö‚¦‚Åó‘ÔÁ–Å
+ ƒXƒsƒAƒNƒCƒbƒPƒ“‚Í–¢Šm”F‚Å‚·‚ªA‚Q‚g‚p‚ÍŠmŽÀ‚È‚Ì‚Å‚Q‚g‚p‚Æ•sŒö•½‚ÈŽd—l‚Æ‚Í
+ l‚¦‚É‚­‚¢‚Ì‚Å“¯—l‚ȃpƒ^[ƒ“‚Æ‚µ‚Ü‚µ‚½B–{ŽI‚Æ‘Šˆá‚ª‚ ‚éꇂ͕ñŠè‚¢‚Ü‚·B
+E“G‚Ì‚p‚l‚ÅW’†—ÍŒüã‚Æ‘¬“x㸂ð‰ðœ
+ ‚p‚l‚ʼne‹¿‚·‚éƒXƒLƒ‹‚Í‚±‚ê‚Q‚‚¾‚¯‚©‚ÈH@Ž„‚Ì‹L‰¯‚ÆŒfŽ¦”‚ł̕ñ‚Æ‚Å
+ ”»’f‚µ‚½‚Ì‚Å‚·‚ªA‚à‚µ‘Šˆá‚ª‚ ‚è‚Ü‚µ‚½‚ç•ñŠè‚¢‚Ü‚·B
+
+ (map/)
+ clif.c
+ clif_parse_UnequipItem() C³
+ pc.c
+ pc_checkallowskill() pc_equipitem() C³
+ skill.h
+ skill_encchant_eremental_end() ’ljÁ
+ skill.c
+ skill_status_change_start() skill_status_change_end()
+ skill_status_change_clear() skill_encchant_eremental_end() C³
+ ‚»‚Ì‘¼×‚©‚¢‚Æ‚±‚ë­X
+
+--------------
+//0604 by J
+EMOBƒXƒLƒ‹ÄC³
+EMOBDBC³
+ (db/)
+ mob_skill_db.txt
+ ƒA[ƒNƒGƒ“ƒWƒFƒŠƒ“ƒO‚ƃ^[ƒgƒ‹ƒWƒFƒlƒ‰ƒ‹‚ª1‰ñ‚É2Ží—Þ‚Ü‚Å‚µ‚©
+ MOB‚ðo‚³‚È‚©‚Á‚½‚Ì‚ðC³
+ mob_db.txt
+ ƒ[ƒhƒIƒuƒfƒX‚̃hƒƒbƒv‚ŃGƒ‰[‚ªo‚é‚Ì‚ðC³(–¢Šm”F)
+ ‰…—ì•Žm‚̃hƒƒbƒv‚ÆMVP‚ð’ljÁ(–¢Šm”F)
+--------------
+//0603 by ˆø‘Þl
+EV‹KƒAƒCƒeƒ€Žž‚É‚àŠŽ‰Â”\ŒÂ”ƒ`ƒFƒbƒN‚ð‚·‚é‚悤‚ÉC³
+ (map/)
+ pc.c
+ pc_checkadditem()
+ V‹KƒAƒCƒeƒ€Žž‚ÉMAX_AMOUNT‚ð’´‚¦‚Ä‚¢‚½‚ç
+ ADDITEM_OVERAMOUNT‚ð•Ô‚·‚悤‚ÉC³
+
+--------------
+//0602 by ˆø‘Þl
+EGeffen’b–艮‚Å—Ž‚¿‚é–â‘è‚ðC³
+ (conf/)
+ npc_town_geffen.txt if (!checkweight(,)) ‚©‚ç if (!(checkweight(,))) ‚ÉC³
+
+--------------
+//0601 by J
+EMOBƒXƒLƒ‹‚ÌŠë‚È‚¢Š‚ð‚¢‚­‚ç‚©C³
+EŠoÁ‚Æ‹¶‹C‚ÌŽg‚¦‚éE‚ðC³
+EƒQƒtƒFƒjƒAƒ_ƒ“ƒWƒ‡ƒ“‚Ì”z’u‚ðƒJƒ{ƒ`ƒƒƒCƒxƒ“ƒg‚Å“ü‚ꂽ‚Æ‚«‚Ì”z’u‚ÉC³
+ ‚½‚¾‚µƒ{ƒX‚ªDOP2‘Ì‚Å‚Í‚È‚­ƒhƒ‰ƒLƒ…ƒ‰‚É‚µ‚Ä‚¢‚Ü‚·B
+ (conf/)
+ npc_monster.txt ƒ‚ƒ“ƒXƒ^[”z’u”÷•ÏX
+ (db/)
+ mob_skill_db.txt ‰ö‚µ‚¢Ý’è‚È‚Ç‚ÌC³
+ item_db.txt ‘‘¬POT‚ÌC³
+
+--------------
+//0600 by ˆø‘Þl
+Eƒvƒƒ“ƒeƒ‰¸˜BŠ‚̉¡‚̃tƒ@ƒ“‚ɘb‚µŠ|‚¯‚é‚ƌł܂é–â‘è‚ðC³
+EMOBƒXƒLƒ‹Žæ‚èž‚ÝiThanx to J‚³‚ñj
+ (conf/)
+ npc_event_skillget.txt ƒtƒ@ƒ“‚ÌLabel‚ðC³
+ npc_town_prontera.txt ƒtƒ@ƒ“‚ªd•¡‚µ‚Ä‚¢‚½‚Ì‚Åíœ
+ (db/)
+ mob_skill_db.txt ƒWƒ…ƒm[ˆÈ~‚ÌMOBƒXƒLƒ‹’ljÁ
+
+--------------
+//0599 by ‚é‚é‚é
+
+EƒZ[ƒW‚Ì•Ší‘®«•t—^ƒXƒLƒ‹‚Ì•s“s‡C³‚ƃXƒe[ƒ^ƒXƒAƒCƒRƒ“•\Ž¦
+ ƒAƒXƒyƒ‹ƒVƒI‚ƃGƒ“ƒ`ƒƒƒ“ƒgƒ|ƒCƒYƒ“‚Æ‚Å‘½d‚É‚©‚©‚Á‚Ä‚µ‚Ü‚Á‚Ä‚½‚Ì‚ÅA
+ ÅŒã‚É•t—^‚µ‚½‚à‚Ì‚P‚‚ɂȂé‚悤‚É‚µ‚Ü‚µ‚½B
+ ‚»‚̂‚¢‚łɃXƒe[ƒ^ƒXƒAƒCƒRƒ“‚à•\Ž¦‚·‚é‚悤‚É‚à‚µ‚Ü‚µ‚½B
+ i–¢ƒeƒXƒg‚Å‚·‚ªAƒAƒCƒRƒ“o‚È‚©‚Á‚½ƒXƒsƒAƒNƒCƒbƒPƒ“‚à‚Å‚é‚Í‚¸‚Å‚·Bj
+EƒAƒCƒeƒ€DB‚É‚ÄA‘‘¬ƒ|[ƒVƒ‡ƒ“‚ÌŽg—p§ŒÀ‚ð’ljÁ
+ Jazz‚³‚ñ’ñ‹Ÿ‚Å‚·B
+ ‚»‚ê‚ÆŽ„‚ÌŽï–¡‚щƒOƒiƒƒNTƒVƒƒƒc‚ðƒAƒŒƒiƒj‚µ‚Ü‚µ‚½‚ª‚—@‹C‚É“ü‚ç‚È‚¯‚ê‚Î
+ Á‚·‚Ȃ茳’Ê‚è‚ÉC³‚·‚é‚Ȃ肵‚Ä‚µ‚¿‚á‚Á‚Ä‚­‚¾‚³‚¢‚Ü‚¹`B
+
+ (conf/)
+ battle_athena.conf 598‚Å‚Ì“ü‚ê–Y‚ê
+ (map/)
+ skill_encchant_eremental_end() ’ljÁ
+ skill_status_change_end() skill_status_change_start() skill_status_change_clear() C³
+ (db/)
+ iten_db.txt C³
+
+--------------
+//0598 by ‚é‚é‚é
+
+E‘•”õ•Ší‚̉摜•ÏX‚ɑΉž
+ ˆê‰ž‚È‚ª‚çƒNƒ‹ƒZƒCƒ_[‚Ì—¼Žè‘„‚Æ‚©ƒvƒŠ[ƒXƒg‚Ì“ÝŠí‚Æ‚©‚̓eƒXƒg‚µ‚Ü‚µ‚½‚ªA
+ ‘S‚Ä‚ÌE‚ðƒ`ƒFƒbƒN‚Í‚¢‚Ü‚¹‚ñB‚Ü‚½‚±‚ÌŽž“_‚ł̓Nƒ‰ƒCƒAƒ“ƒgŽ©‘Ì‚Ì•\Ž¦ƒf[ƒ^‚É
+ –â‘è‚Ì—L‚é‚Ì‚ª‘½‚¢‚Ì‚à•t‚¯‰Á‚¦‚Ä‚¨‚«‚Ü‚·B
+ ‚ ‚ÆAŒC‚àˆê‰ž‚͑Ήž‚µ‚Ü‚µ‚½B’A‚µ‚±‚ê‚ÍŒ»Žž“_‚Å‚Í–{ŽI‚·‚ç‚à–¢‘Ήž‚È‚Ì‚Å‚·‚ªB
+ •\Ž¦‚ª‰»‚¯‚ÄŒ™‚¾‚Æ‚¢‚¤ê‡‚Í]—ˆ‚Ì‚â‚è•û‚ào—ˆ‚Ü‚·B
+
+ (conf/)
+ battle_athena.conf
+ ƒIƒvƒVƒ‡ƒ“ equip_modifydisplay ‚ð’ljÁ
+ (map/)
+ battle.h
+ Battle_Config C³
+ battle.c
+ battle_config_read() C³
+ clif.c
+ packet_len_table[] clif_changelook() C³
+ map.h
+ enum {} C³
+ pc.c
+ pc_calcstatus() pc_equiplookall() pc_changelook() C³
+ (common/)
+ mmo.h
+ mmo_charstatus {} C³
+
+--------------
+//0597 by ”g˜Q
+
+EƒAƒ}ƒc‚ÉŠÖ‚·‚éC³•”÷C³
+ (conf/)
+ npc_mob_job.txt
+ npc_monster.txt
+ npc_monster30.txt
+ ƒ‚ƒ“ƒX–¼C³
+ npc_monster_amatsu.txt
+ ’ljÁiƒ‚ƒ“ƒX”‚ª‚©‚È‚èŽè”²‚«‚Å‚·EEE
+ npc_town_amatsu.txt
+ ƒVƒ‡ƒbƒvNPC‚ð“‡inpc_shop3.txt‚ðÁ‚µ‚Ä‚àOK‚Å‚·
+ (db/)
+ mob_db.txt
+ ƒAƒ}ƒc‚̃‚ƒ“ƒXƒf[ƒ^‚ðŒ»Ý•ª‚©‚é”͈͂ÅC³•‘‚Æ‚«‚Ì‚±‚Ìdef,mdef‚ðC³
+
+--------------
+//0596 by Ž€_
+
+E0595‚ÌC³‚Æׂ©‚¢C³B
+EƒtƒŠ[ƒLƒƒƒXƒg‚ŃLƒƒƒXƒg‚µ‚Ä‚¢‚éŠÔ‚ÍUŒ‚‰Â”\‚Å‚·‚ªƒLƒƒƒXƒg‚µ‚½Œã‚Ì
+ƒfƒBƒŒƒCƒ^ƒCƒ€‚Å‚ÍUŒ‚‚Å‚«‚È‚¢‚悤‚É‚È‚Á‚Ä‚¢‚Ü‚·B–{ŽI‚ÌŽd—l‚ª‚Ç‚¤‚È‚Ì‚©‚Í
+‚í‚©‚è‚Ü‚¹‚ñB
+E“®‚¢‚Ä‚¢‚éPC‚Ƀ‚ƒ“ƒXƒ^[‚ªUŒ‚‚Å‚«‚È‚¢–â‘èC³B(ƒeƒXƒg‚µ‚Ä‚Ü‚¹‚ñ‚ª
+‘½•ª‚±‚ê‚Å‘åä•v‚©‚ÆB)
+ (map/)
+ skill.h
+ SC_FREECAST íœB
+ skill.c
+ skill_use_id()Askill_use_pos() C³B
+ skill_castend_id()Askill_castend_pos() C³B
+ ‚»‚Ì‘¼­‚µC³B
+ pc.c
+ calc_next_walk_step()Apc_attack_timer()Apc_calcstatus() C³B
+ clif.c
+ clif_parse_ActionRequest()Aclif_parse() C³B
+ map.h
+ struct map_session_data‚Éprev_speed’ljÁB
+ mob.c
+ mob_ai_sub_hard()Amob_changestate()Amob_attack() C³B
+
+--------------
+//0595 by PRevEv
+EƒtƒŠ[ƒLƒƒƒXƒgC³AŽÀ‘•(ƒLƒƒƒXƒeƒBƒ“ƒO’†UŒ‚‚à‚Å‚«‚Ü‚·B)
+ (/map)
+ pc.c
+ pc_calcstatus() C³B
+ calc_next_walk_step() C³B
+ pc_attack_timer() C³B
+ skill.c
+ skill_castend_id()Askill_castend_pos()Askill_use_id()Askill_use_pos() C³B
+
+--------------
+//0594 by Ž€_
+
+EŠØ‘ˆÆ‚̃p[ƒeƒB–â‘èC³‚Æׂ©‚¢C³B
+E@partyƒRƒ}ƒ“ƒhC³‚Æ@guildƒRƒ}ƒ“ƒh’ljÁB
+Ebattle_athena.conf‚Éguild_emperium_check’ljÁB
+EƒXƒLƒ‹Žg—p‚ªŽ¸”s‚µ‚Ä‚àƒfƒBƒŒƒC‚ª‚©‚©‚é–â‘èC³B
+ help.txt C³B
+ (map/)
+ clif.c
+ clif_parse_CreateParty2() ’ljÁB
+ clif_parse_ItemIdentify() C³B
+ ‚»‚Ì‘¼­‚µC³B
+ atcommand.hAatcommand.c C³B
+ battle.h
+ struct Battle_Config‚Éguild_emperium_check’ljÁB
+ battle.c
+ battle_config_read() C³B
+ guild.c
+ guild_create()Aguild_created() C³B
+ skill.c
+ skill_castend_id()Askill_castend_pos() C³B
+ Makefile C³B
+ (doc/)
+ client_packet.txt
+ ƒpƒPƒbƒg0x01e8 ’ljÁB
+ conf_ref.txt C³B
+ (conf/)
+ atcommand_athena.conf C³B
+ battle_athena.conf C³B
+
+--------------
+//0593 by Ž€_
+
+EƒƒeƒI‚ƃoƒ~ƒŠƒIƒ“‚̃_ƒ[ƒWC³‚Æׂ©‚¢C³B
+EƒƒeƒI‚Ìè¦Î‚ª—Ž‚¿‚Ä‚­‚é”͈͂ð7*7‚©‚ç5*5‚É•ÏXB(‚±‚ê‚Å’†‰›‚Í‘S‚Ä‚Ìè¦Î‚Ì
+ƒ_ƒ[ƒW‚ðŽó‚¯‚邱‚Æ‚É‚È‚è‚Ü‚·B)
+EŽ©“®‰ñ•œŒvŽZŽ®•ÏXB
+ ƒXƒLƒ‹ƒŒƒxƒ‹*5 + (max_hp/50)‚©‚ç
+ ƒXƒLƒ‹ƒŒƒxƒ‹*5 + (max_hp*ƒXƒLƒ‹ƒŒƒxƒ‹/500)‚É•ÏXB(SP‚Æ‘§‚à“¯‚¶‚悤‚É•ÏXB)
+EGM‰EƒNƒŠƒbƒN–½—ßuŽg—pŽÒ‹­§I—¹v‚Åatcommand_athena.conf‚Ìkick‚Ì
+ƒŒƒxƒ‹‚ðƒ`ƒFƒbƒN‚·‚é‚悤‚É•ÏXB
+ (db/)
+ skill_db.txt
+ ƒXƒLƒ‹‹CŒ÷‚Ìsp‚ð10‚©‚ç8‚ÉC³B
+ (map/)
+ map.c
+ NO_WATER‚ð100‚©‚ç1000000‚É•ÏXB
+ battle.c
+ battle_calc_magic_attack() C³B
+ skill.c
+ skill_castend_pos2() C³B
+ pc.c
+ pc_natural_heal_hp()Apc_natural_heal_sp()Apc_spirit_heal() C³B
+ clif.c
+ clif_parse_GMKick() C³B
+ (doc/)
+ conf_ref.txt C³B
+
+--------------
+//0592 by ˆø‘Þl
+
+E…ê‚Ì—L‚è–³‚µ‚ðwater_height.txt‚¾‚¯‚ÅŒˆ‚ß‚é‚悤‚É•ÏXBnpc_water.txt‚Í•s—v‚ÉB
+EƒJ[ƒhƒXƒLƒ‹‚ł̓Œƒxƒ‹ã‚°‚Å‚«‚È‚¢‚悤‚É‚È‚Á‚½‚½‚ß•s—v‚É‚È‚Á‚½ˆ—‚ðíœB
+ (conf/)
+ map_athena.conf
+ npc: conf/npc_water.txt Á‹Ž
+ water_height.txt
+ ƒfƒtƒHƒ‹ƒg‚‚³3‚̃}ƒbƒv•ª‚ð’ljÁ•all_water‚ð‚‚³-100‚Æ‚µ‚ăRƒƒ“ƒg‚ŒljÁ
+ (map/)
+ map.c
+ waterlist‚Ímap_readwater()“à‚Ńƒ‚ƒŠŠm•Û
+ gatÝ’èŒã‚Í•s—v‚È‚Ì‚Åmap_readallmap()‚Ńƒ‚ƒŠŠJ•ú‚µ‚Ä‚¢‚Ü‚·
+ map.h
+ struct map_data‚Ìflag‚©‚çwater_flag‚ðÁ‹Ž
+ npc.c
+ npc_parse_mapflag()
+ ƒ}ƒbƒvƒtƒ‰ƒOwater‚Æall_water‚ðÁ‹Ž
+ pc.c
+ pc_skillup()
+ — ‚ŃXƒLƒ‹LvUP‚Å‚«‚È‚­‚È‚Á‚½‚Ì‚Åskill[id].flag‚Ì•ª‚ÍÁ‹Ž
+ skill.c
+ skill_check_condition()
+ map_getcell‚Å…ê”»’è‚·‚é‚悤‚ÉC³
+
+--------------
+//0591 by CHRIS
+
+Eƒ‚ƒ“ƒN‚ªŸ†’e‚ð‚à‚Á‚Ä‚¢‚é‚Æ‚«AŸ†’e*3‚Ì•K’†ƒ_ƒ[ƒW‚ª“ü‚é—l‚É‚È‚è‚Ü‚µ‚½B„Ÿ@battle.cC³
+Eƒ‚ƒ“ƒNƒXƒLƒ‹uŽw’ev‚Æu”­™¤v‚Æu‹CEv‚̉r¥ŽžŠÔ‚ª³‚µ‚­C³‚³‚ê‚Ü‚µ‚½B„Ÿ@cast_db.txtC³
+
+--------------
+//0590 by Ž€_
+
+Egrf-files.txt‚âconfƒtƒ@ƒCƒ‹Aaccount.txtƒtƒ@ƒCƒ‹‚Ì–¼‘O‚ƈʒu‚ð•Ï‚¦‚é‚悤‚É•ÏXB
+Eƒ}ƒbƒvˆÚ“®‚É‚æ‚éŽI—Ž‚¿‚ð–h‚®ˆ×‚ÉC³B(ƒ}ƒbƒv‚ª“ñ“xƒ[ƒh‚³‚ê‚ÄŽI—Ž‚¿‚ª
+‹N‚±‚Á‚½‚Æ‚Ì•ñ‚ðŽó‚¯‚½‚Ì‚ÅB)
+E0586‚ð‚¿‚å‚Á‚ÆC³B‘•”õ‚É‚æ‚éƒXƒLƒ‹‚ÌꇃŒƒxƒ‹ã‚°‚ª‚Å‚«‚È‚¢‚悤‚ÉC³B
+‚½‚¾‘•”õ‚É‚æ‚éƒXƒLƒ‹‚ðƒXƒLƒ‹ƒ|ƒCƒ“ƒg‚ðŽg‚Á‚Äã‚°‚鎞‚Í‘•”õ‚ðŠO‚·•K—v‚ª
+‚ ‚è‚Ü‚·B
+E@party‚¿‚å‚Á‚ÆC³B(–¼‘O‚É‹ó”’‚ª‚ ‚Á‚Ä‚à‘åä•v‚Ȃ悤‚ÉB)
+E…ê‚Ì‚‚³‚ðwater_height.txt‚Å“Ç‚Ýž‚ނ悤‚É•ÏXB
+Econfƒtƒ@ƒCƒ‹‚ÅÝ’è‚·‚镨‚ðƒtƒ@ƒCƒ‹‚̃pƒX‚É‹ó”’‚ª‚ ‚Á‚Ä‚à‘åä•v‚È
+‚悤‚É•ÏXB
+EGM‰EƒNƒŠƒbƒN–½—ßuŽg—pŽÒ‹­§I—¹v‚Ń‚ƒ“ƒXƒ^[‚ð“|‚¹‚é‚悤‚É•ÏXB
+(Œ´ˆö‚Í•s–¾‚Å‚·‚ª‚±‚ê‚Ń‚ƒ“ƒXƒ^[‚ðŽE‚·‚ÆŽI‚ª‚ß‚¿‚á‚­‚¿‚á‚É’x‚­‚Ȃ邱‚Æ‚ª
+‚ ‚è‚Ü‚·B)
+E‚»‚Ì‘¼­‚µC³B
+EƒeƒXƒg‚Í–w‚ñ‚Ç‚µ‚Ä‚Ü‚¹‚ñ‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
+ athena-start C³B
+ (map/)
+ pc.c
+ pc_skill()Apc_resetskill()Apc_setpos()Apc_read_gm_account() C³B
+ pc_set_gm_account_fname() ’ljÁB
+ pc.h
+ pc_set_gm_account_fname() ’ljÁB
+ clif.c
+ clif_skillinfoblock()Aclif_parse_LoadEndAck()Aclif_parse_GMKick() C³B
+ clif_changemap() C³B
+ atcommand.c
+ @partty C³B
+ skill.c
+ skill_castend_nodamage_id() C³B
+ map.c
+ map_config_read()Amap_readwater() C³B
+ script.c
+ script_config_read()Ado_init_script() C³B
+ script.h
+ script_config_read() ’ljÁB
+ (common/)
+ version.h C³B
+ grfio.h
+ grfio.c
+ grfio_init() C³B
+ mmo.h
+ GRF_PATH_FILENAME ’ljÁB
+ (conf/)
+ map_athena.conf C³B
+ npc_water.txt C³B
+ water_height.txt ’ljÁB
+ login_athena.conf C³B
+ (login/)
+ login.c
+ login_config_read()Aread_gm_account() C³B
+ (char/)
+ char.c
+ do_init() C³B
+ char_config_read() ’ljÁB
+ inter.c
+ inter_config_read() C³B
+ (doc/)
+ conf_ref.txt C³B
+
+--------------
+//0589 by ŒÓ’±—–
+
+EGM‚̉EƒNƒŠƒbƒN‚ÅØ’f‚³‚ê‚é–â‘è‚ðC³
+ ‚Æ‚è‚ ‚¦‚¸01dfƒpƒPƒbƒg‚𖳎‹‚·‚é‚悤‚É‚µ‚Ü‚µ‚½B
+ ‚È‚ñ‚Æ‚È‚­‚±‚̃pƒPƒbƒg‚̓`ƒƒƒbƒg‹ÖŽ~‰ñ”‚Æ‚ÍŠÖŒW–³‚¢‚悤‚È‹C‚àcc
+
+ clif.c
+ clif_parse_GMReqNoChatCount()’ljÁ
+
+Estart‚ðathena.sh‚Å‚È‚­athena-start‚ðŽg‚¤‚悤‚É•ÏX
+ start
+ athena.sh => athena-start start‚É’u‚«Š·‚¦‚µ‚½‚¾‚¯
+
+--------------
+//0588 by Kalen
+
+EAmatsuNPC’ljÁ
+
+--------------
+//0587 by ŒÓ’±—–
+
+EloginƒT[ƒo[‚ÌŠÇ—ƒpƒPƒbƒg‚ÌŽd—l‚ð•ÏXi0579‚̃ƒOƒCƒ“‹‘”Ûî•ñ‚ɑΉžj
+ (login/)
+ login.c
+ ƒAƒJƒEƒ“ƒgƒoƒ“ó‘Ô•ÏXƒpƒPƒbƒg’ljÁ(7936,7937)
+ ƒAƒJƒEƒ“ƒgƒŠƒXƒgŠ“¾ƒpƒPƒbƒgC³(7921)
+ (doc/)
+ admin_packet.txt
+
+Eladmin‚Ì‹@”\’ljÁ
+ Eƒoƒ“ó‘Ô‚ð•ÏX‚·‚éƒRƒ}ƒ“ƒh’ljÁ
+ EƒŠƒXƒg•\Ž¦‚ÆŒŸõ‚Ńoƒ“ó‘Ô‚à•\Ž¦‚³‚ê‚é‚悤‚É‚È‚Á‚½
+ E"?"‚Å‚àƒwƒ‹ƒv‚ªo‚é‚悤‚ÉC³
+ EƒVƒ“ƒ{ƒŠƒbƒNƒŠƒ“ƒN‚Éstateaccount‚ª’ljÁ‚³‚ê‚Ü‚µ‚½B
+ Žg‚¤l‚Íladmin‚Ì--makesymlink‚ð‚à‚¤ˆê“xŽÀs‚µ‚Ä‚­‚¾‚³‚¢
+
+ (tool/)
+ ladmin
+ ‹@”\’ljÁ
+
+--------------
+//0586 by ˆø‘Þl
+EƒJ[ƒhƒXƒLƒ‹‚ðC³
+ (/map)
+ pc.c
+ pc_calc_skilltree()
+ pc_skill()
+ Šo‚¦‚ç‚ê‚È‚¢ƒXƒLƒ‹‚È‚çskill[id].flag=1‚Æ‚·‚é
+ ‚Ü‚½‚Ískill[id].flag‚É–{—ˆ‚Ìlv‚ð+2‚µ‚Ä‹L‰¯
+ pc_skillup()
+ skill[id].flag‚à‘‚â‚·
+ clif.c
+ clif_skillinfoblock()
+ skill[id].flag==1‚È‚çŠo‚¦‚ç‚ê‚È‚¢ƒXƒLƒ‹
+ (/char)
+ char.c
+ mmo_char_tostr()
+ skill[id].flag‚©‚ç–{—ˆ‚Ìlv’l‚ð•Û‘¶‚·‚é
+
+--------------
+//0585 by kalen
+EscriptC³
+ npc_town_guid.txt ŠOŒ©•ÏX
+
+--------------
+//0584 by ˆø‘Þl
+EƒJ[ƒhƒXƒLƒ‹‚ðC³
+ (/map)
+ pc.c
+ pc_calc_skilltree() cardƒXƒLƒ‹‚ð–Y‚ꂳ‚¹‚鈗‚ð’ljÁ
+ pc_skill() ®—
+
+--------------
+//0583 by kalen
+EscriptC³
+ npc_event_doll.txt ”²‚¯‚Ä‚¢‚½•”•ª‚̉ï˜b’ljÁ
+ npc_town_guid.txt ’¬‚̈ēà—vˆõ‚̉摜‚ð•\Ž¦‚Å‚«‚é‚悤‚ÉC³
+ Šî–{“I‚ÉÅVjRO‚Å–â‘è‚È‚µ‚Å‚·B
+
+--------------
+//0582 by PRevEv
+E580‚̃oƒOC³B
+ (/map)
+ skill.c
+ skill_use_pos() C³B
+--------------
+//0581 by ˆø‘Þl
+E…ê‚‚³Ý’èŠÖ˜A‚ð­‚µC³
+ (/map)
+ map.c
+ map_waterheight()
+ map_readwater()
+ map_readmap()
+ waterlist[512] -> *waterlist‚É‚µ‚ÄAmalloc‚Ńƒ‚ƒŠŠm•Û‚·‚é‚悤‚ÉC³B
+ map_readallmap()
+ free(waterlist);’ljÁ
+
+EƒoƒO•ñƒXƒŒƒbƒh‚ÌC³ƒpƒbƒ`‚ðŽæ‚èž‚Ý
+ (conf/)
+ npc_town_refine.txt ƒZƒ~ƒRƒƒ“”²‚¯C³
+ (db/)
+ item_db.txt 1161,ƒoƒ‹ƒ€ƒ“C³
+
+--------------
+//0580 by PRevEv
+EƒtƒŠ[ƒLƒƒƒXƒg‰¼ŽÀ‘•(ƒLƒƒƒXƒeƒBƒ“ƒO’†UŒ‚‚Í•s‰Â”\)
+ (/map)
+ clif.c
+ clif_parse_WalkToXY() C³B
+ pc.c
+ pc_calcstatus() C³B
+ skill.c
+ skill_castend_id()Askill_castend_pos()Askill_use_id()Askill_use_pos() C³B
+--------------
+//0579 by A‚Ìl
+EƒƒOƒCƒ“‚ð’e‚­ˆ—‚ð‰¼ŽÀ‘•
+ conf/login.c
+ auth_dat\‘¢‘Ì‚Éstate‚ð’ljÁ
+ mmo_authŠÖ”C³
+ mmo_auth_newŠÖ”C³
+ mmo_auth_syncŠÖ”C³
+ mmo_auth_initŠÖ”C³
+
+ ‚±‚Ì’l‚ð•ÏX‚·‚éƒc[ƒ‹A‰ü‘PôB‘¼—Í–{Šè‚Å‚·i„ƒG
+--------------
+//0578 by ˆø‘Þl
+EƒoƒO•ñƒXƒŒƒbƒh‚ÌC³ƒpƒbƒ`‚ðŽæ‚èž‚Ý‚È‚Çithanx to ‚é‚é‚邳‚ñ,Athefans‚³‚ñ,sage‚³‚ñ,zupport‚³‚ñj
+ help.txt @go‚Ìà–¾‚¿‚å‚Á‚ÆC³
+ (conf/)
+ npc_mob_job.txt ‘æ4—ñ–Ú‚ðTab‹æØ‚è‚ÉC³
+ npc_water.txt …ê‚‚³C³
+ (db/)
+ item_db.txt 640,...,{ pet 1155; },{},,‚ÉC³
+ mob_db.txt 1162,RAFFLESIA,ƒ‰ƒtƒŒƒVƒA...C³
+
+--------------
+//0577 by ‚é‚é‚é
+E@ƒRƒ}ƒ“ƒh‚ð’ljÁ•C³
+ atcommand.c
+ atcommand() @itemresetƒRƒ}ƒ“ƒh’ljÁ @goƒRƒ}ƒ“ƒhC³iƒAƒ}ƒcEƒRƒ“ƒƒ“‚ð’ljÁj
+ atcommand_config_read() ã‚ɇ‚킹‚ÄitemresetŽg—pƒŒƒxƒ‹Žw’è‚ð’ljÁ
+
+ doc/conf_ref.txt
+ conf/atcommand_athena.conf itemresetŽg—pƒŒƒxƒ‹Žw’è‚ð’ljÁ
+ help.txt @itemreset‚Ìà–¾’ljÁ‚Æ@go‚Ìà–¾C³
+
+-------------
+//0576 by V&S
+EƒS[ƒXƒgƒŠƒ“ƒOƒJ[ƒh‚ƃo[ƒXƒŠ[ƒJ[ƒh‚ÌŒø‰Ê‚ª‹t‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ðC³
+ { bonus bDefEle,7; }¨ƒS[ƒXƒgƒŠƒ“ƒOƒJ[ƒh(”O)
+ { bonus bDefEle,8; }¨ƒo[ƒXƒŠ[ƒJ[ƒh(ˆÅ)
+ ª‚¾‚Á‚½‚Ì‚ð«‚ÉC³
+ { bonus bDefEle,7; }¨ƒo[ƒXƒŠ[ƒJ[ƒh(ˆÅ)
+ { bonus bDefEle,8; }¨ƒS[ƒXƒgƒŠƒ“ƒOƒJ[ƒh(”O)
+
+ |“S‚Ìd—Ê‚ðC³
+
+--------------
+//0575 by ˆø‘Þl
+E…êƒtƒ@ƒCƒ‹‚ª"conf/npc_water.txt"ŒÅ’肾‚Á‚½‚Ì‚ðC³
+iconf/map_athena.conf‚Ìnpc:‚É‘‚©‚ê‚Ä‚¢‚éƒtƒ@ƒCƒ‹‚ð‚Ý‚Ä…ê‚‚³Ý’è‚·‚é‚悤‚Éj
+ map.c
+ struct waterlist[512]; V‹K’ljÁBƒ}ƒbƒvƒtƒ@ƒCƒ‹–¼‚Æ…ê‚‚³‚ð‹L‰¯B
+ map_waterheight() V‹K’ljÁB…ê‚Ì‚‚³‚ð•Ô‚·B
+ map_readwater() …êƒtƒ@ƒCƒ‹‚ð‚Ý‚Äwaterlist‚ðÝ’è‚·‚é‚悤‚ÉC³B
+ map_readmap() map_waterheight()‚ðŒÄ‚Ԃ悤‚ÉC³B
+ map_config_read() "npc"‚Åmap_readwater(w2);’ljÁB
+
+--------------
+//0574 by ‚¢‚Ç
+
+EƒT[ƒo[Snapshot
+Econf/shop_*.txt‚Ì“à—e‚ðconf/npc_town_*.txt‚É“‡
+
+--------------
+//0573 by Jazz
+
+Emap‚Ì penalty, nomemo, noteleport, nobranch‚Ì option‚ðÝ’èB
+Emap ƒT[ƒo[‚ª cpu‚𖳌Àè—L‚·‚邱‚Æ‚ðŒŸ¸‚·‚邽‚ß‚Ì script “Y•t. cygwinŠÂ‹«‚Å쬂ƎÀŒ±‚ð‚µ‚Ü‚µ‚½.
+ (/conf)
+ mapflag.txt ’ljÁB
+ (/tool)
+ mapcheck.sh ’ljÁB
+
+--------------
+//0572 by ˆø‘Þl
+E"conf/npc_water.txt"‚Ì‘æ4—ñ‚Å…ê‚‚³Ý’è
+@i‚¿‚á‚ñ‚Æ‚µ‚½…ê”»’肪ŽÀ‘•‚³‚ê‚é‚܂ł̂‚Ȃ¬‚Æ‚µ‚ÄEEEj
+ (/conf)
+ npc_water.txt ƒTƒ“ƒvƒ‹C³B
+ E‘æ4—ñ‚Å…ê‚Ì‚‚³‚ðݒ肵‚Ü‚·B
+ E‚‚³‚ð‘‚©‚È‚©‚Á‚½ê‡‚̃fƒtƒHƒ‹ƒg’l‚Í3‚É‚È‚è‚Ü‚·B
+ (/map)
+ map.c
+ E…ê‚‚³Ý’èŠÖ” map_readwater() ’ljÁB
+
+--------------
+//0571 by code
+“V’ÃtƒB[ƒ‹ƒh‚ÌMOB‚Ì”z’u‚ƃ[ƒvƒ|ƒCƒ“ƒg‚ÌÝ’è‚ÌC³
+“V’Ãpƒbƒ`‚É›À›Ä‚ªŠÜ‚Ü‚ê‚Ä‚¢‚é‚Ì‚ðŠm”F‚µ‚½‚Ì‚Å›À›Ä‚̃[ƒv‚Æmob‚ð”z’u
+
+conf/npc_monster35.txt
+ mob‚Ì”z’u
+
+conf/npc_warp_amatsu.txt
+@@ “V’Ãwarp point‚ÌÝ’u
+
+conf/npc_warp_gonryun.txt
+ ›À›Äwarp point‚ÌÝ’u
+
+conf/npc_town_amatsu.txt
+@@ Žb’è“I‚Ƀvƒƒ“ƒeƒ‰•¬…‘O©¨“V’Ã`^ƒvƒƒ“ƒeƒ‰•¬…‘O©¨›À›Ä‚ÌÚ‘±NPC
+
+--------------
+//0570 by code
+“V’ÃtƒB[ƒ‹ƒh‚ÌMOB‚Ì”z’u‚ƃ[ƒvƒ|ƒCƒ“ƒg‚ÌÝ’è‚Å‚·B
+conf/npc_monster35.txt
+ mob‚Ì”z’u
+
+conf/npc_warp_amatsu.txt
+@@ warp point‚ÌÝ’u
+
+conf/npc_town_amatsu.txt
+@@ Žb’è“I‚Ƀvƒƒ“ƒeƒ‰•¬…‘O©¨“V’Ã`‚ÌÚ‘±NPC
+
+--------------
+//0569 by Ž€_
+
+E0561‚Ì@jobcange ‚Å‚ÌŠƒo[ƒh•‰ƒ_ƒ“ƒT[‚É‚æ‚éˆÆ—Ž‚¿–hŽ~‚ðpc_jobchange()‚Å‚·‚é‚悤‚É•ÏXB
+E@ƒRƒ}ƒ“ƒh@party’ljÁBƒp[ƒeƒB‚ðì‚é–½—ß‚Å‚·BŠØ‘ˆÆ‚ðŽg‚¤‚ƃp[ƒeƒB‚ðì‚鎞Ž~‚Ü‚é‚Ì‚Å—ÕŽž“I‚É‚±‚ê‚ðŽg‚Á‚ăp[ƒeƒB‚ðì‚Á‚Ä‚­‚¾‚³‚¢B
+E…‚Ì”»’fˆ—C³B
+Eƒ}ƒbƒvƒtƒ‰ƒO‚Éwater‚Æall_water’ljÁBÚ‚µ‚­‚Ínpc_water.txt‚ðŽQl‚µ‚Ä‚­‚¾‚³‚¢B
+iz_dun0x‚¾‚¯“ü—Í‚µ‚Ä‚¢‚Ü‚·‚Ì‚Å‘¼‚Ì‚Í–„‚ß‚Ä‚­‚¾‚³‚¢Bƒ}ƒbƒvƒtƒ‰ƒOwater‚©all_water‚ª“ü‚Á‚Ä‚È‚¢‚ƃZƒ‹‚Ìtype‚ª3‚Å‚à…‚Æ‚µ‚Ä”FŽ¯‚µ‚Ü‚¹‚ñB‚»‚µ‚Ä…‚¾‚炯‚Ìiz_dun02‚©‚ç04‚Ü‚Å‚Í‘S‚Ä…‚Æ‚µ‚Ä”FŽ¯‚·‚é‚悤‚Éall_water‚ð“ü‚ê‚Ä‚¢‚Ü‚·B(‚±‚êˆÈŠO‚Í•û–@‚ª‚È‚©‚Á‚½‚Ì‚Å...)
+Ebattle_athena.conf‚É€–ڒljÁBˆê•”‚ÍWeiss‚ðŽQl‚µ‚Äì‚Á‚½•¨‚Å‚·B
+EƒeƒXƒg‚µ‚Ä‚È‚¢•¨‚à­‚µ‚ ‚è‚Ü‚·B
+ (/conf)
+ atcommand_athena.conf C³B
+ battle_athena.conf C³B
+ map_athena.conf C³B
+ npc_water.txt ’ljÁB
+ (/doc)
+ conf_ref.txt C³B
+ (/map)
+ atcommand.hAatcommand.c C³B
+ battle.h C³B
+ battle.c
+ battle_config_read() C³B
+ pc.c
+ pc_jobchange()Apc_stop_walking() C³B
+ npc.c
+ npc_parse_warp()Ado_init_npc()Anpc_parse_mapflag() C³B
+ mob.c
+ mob_ai_sub_hard() C³B
+ pet.c
+ pet_food() C³B
+ skill.c
+ skill_check_condition() C³B
+ map.h
+ struct map_data C³B
+
+--------------
+//0568 by ˆø‘Þl
+
+EƒAƒNƒAƒxƒlƒfƒBƒNƒ^…ê”»’è‚È‚Ç
+EƒEƒH[ƒ^[ƒ{[ƒ‹…ê”»’èiread_gat(m,x,y)==3‚Å…ê‚Æ”»’èj
+ skill.c
+ skill_castend_nodamage_id()
+ case AL_HOLYWATER: ƒAƒNƒAƒxƒlƒfƒBƒNƒ^i¹…Žæ“¾j
+ skill_check_condition()
+ case AL_HOLYWATER: ƒAƒNƒAƒxƒlƒfƒBƒNƒ^i…ê”»’èj
+ case WZ_WATERBALL: ƒEƒH[ƒ^[ƒ{[ƒ‹i…ê”»’èj
+
+--------------
+//0567 by ‚é‚é‚é
+
+EƒAƒRƒ‰ƒCƒg‚̃AƒNƒAƒxƒlƒfƒBƒNƒ^‚ð‰¼ŽÀ‘•i…êŒÀ’èŽg—p‚Ì‚Ý–¢ŽÀ‘•j
+EƒvƒŠ[ƒXƒg‚̃AƒXƒyƒ‹ƒVƒIAƒZ[ƒW‚̃tƒŒƒCƒ€ƒ‰ƒ“ƒ`ƒƒ[‚ŃXƒLƒ‹Žg—pŽž‚ɃAƒCƒeƒ€Á”ï
+Eƒ~ƒXƒgƒŒƒXƒJ[ƒh‘•”õŽž‚ɃZ[ƒW‚Ì‘®«Œ´Î•ƒnƒ“ƒ^[‚Ìã©‚ªÁ”‚ê‚È‚¢ƒoƒO‚ðC³
+
+ (/map)
+ skill.c
+ skill_check_condition() C³
+
+--------------
+//0566 by ƒpƒCƒ“
+
+E0563‚̃XƒLƒ‹‰ðœðŒ‚ªŠÔˆá‚Á‚Ä‚¢‚½‚Ì‚ÅC³B•Ší‚ð‚Í‚¸‚·&•Ší‚ð•Ï‚¦‚½ê‡‚Í
+@–³ðŒ‚ʼn𜂷‚é‚悤‚É‚µ‚½B
+
+# pc_checkallowskill ‚ɂ‚¢‚Ä(‘O‰ñà–¾‘‚­‚Ì‚ð–Y‚ê‚Ä‚¢‚½‚Ì‚Åc)
+@ˆê‰ž¡Œã‚ÌŠÜ‚Ý‚Æ‚µ‚Äreturn‚ð•Ô‚·‚悤‚É‚µ‚Ä‚¢‚Ü‚·‚ªAŒ»Ý‚Í(–ß‚èæ‚Å‚Í)Žg‚Á‚Ä‚¢‚Ü‚¹‚ñB
+@¡Œ»Ý‚Í‹RŽmEƒNƒ‹ƒZƒCƒ_[‚­‚ç‚¢‚µ‚©ƒXƒLƒ‹Žg—pŽž‚Ì•Ší§ŒÀ‚ª‚ ‚è‚Ü‚¹‚ñ‚ªA¡Œão‚Ä‚±‚È‚¢
+@‚Æ‚àŒÀ‚ç‚È‚¢‚Ì‚ÅA‚à‚µ(2ŽŸãˆÊ‚©3ŽŸH)o‚Ä‚«‚½‚炱‚±‚Ń`ƒFƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B
+
+ (/map)
+ pc.c
+ pc_checkallowskill() C³
+
+--------------
+//0565 by ˆø‘Þl
+
+Eƒ}ƒbƒvˆÚ“®Žž‚É–î‘•”õ‚ªŠO‚ê‚È‚¢‚悤‚ÉC³
+EƒƒOƒCƒ“Žž‚É–î‘•”õ‚ª•\Ž¦‚³‚ê‚é‚悤‚ÉC³
+ (/common)
+ mmo.h
+ i–î‘•”õ‚Í0x8000‚È‚Ì‚Åjshort‚¾‚Æint‚ւ̃LƒƒƒXƒgŽž‚È‚Ç‚É
+ •‰’l‚Æ‚È‚Á‚Ä‚µ‚Ü‚¤‚½‚ßunsigned short‚ÉC³
+ struct item
+ short equip; -> unsigned short equip;
+ (/map)
+ clif.c
+ clif_itemlist() ƒAƒCƒeƒ€ƒŠƒXƒg‚Ì–î‚̂‚¢‚Å‚É–î‘•”õ‚àƒ`ƒFƒbƒN
+ clif_arrowequip() ƒVƒ“ƒvƒ‹‰»
+ pc.c
+ pc_equipitem() C³
+
+--------------
+//0564 by g—t
+
+E@model‚Ì•žõ‚ß•s‰Â”\”»’èC³B
+E@model‚ÅA‘I‚ׂéƒnƒY‚Ì”¯Œ`‚É•ÏXo—ˆ‚È‚©‚Á‚½•”•ª‚ðC³B
+@ã‹L•ÏX“_‚ɇ‚킹‚Ähelp.txt‚ÌC³B
+
+--------------
+//0563 by ƒpƒCƒ“
+
+EMOB‚̈ÈŃXƒLƒ‹‚ðH‚ç‚Á‚½Œã‚ɉñ•œ‚µ‚È‚¢‚Ì‚ðC³Bc‚È‚ñ‚¾‚¯‚ÇA“K³‚È’l‚ª•ª‚©‚ç‚È‚¢‚Ì‚Å
+@“Å‚â’¾–Ù‚Æ“¯‚¶ŽžŠÔ‚É‚µ‚Ä‚ ‚è‚Ü‚·
+@¡ŒãA‚Ü‚½Žè‚ð‰Á‚¦‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB
+E2HQ‚ƃXƒsƒAƒNƒCƒbƒPƒ“‚ðŽg—p’†‚É•Ší‚ð•Ï‚¦‚½ê‡‚͉𜂷‚é‚悤‚É•ÏXB
+
+ (/map)
+ skill.c
+ skill_castend_damage_id() C³B
+ skill_status_change_timer() C³B
+ pc.c
+ pc_checkallowskill() VÝB
+ pc_equipitem() C³B
+ pc.h
+ pc_checkallowskill() VÝB
+
+--------------
+//0562 by huge
+
+E–î‚ð‹|‘•”õŽžˆÈŠO‚Å‚à‘•”õ‚Å‚«‚é‚悤‚É–ß‚µ‚Ü‚µ‚½B
+E–î‚Ì‘®«‚ð“K—p‚·‚é‚Ì‚ð‹|‘•”õŽž‚Ì‚Ý‚ÉC³B
+
+ pc.c
+ pc_equipitem() C³B
+ pc_calcstatus() C³B
+
+--------------
+//0561 by ˆø‘Þl
+
+ELinux‚Å‚àƒRƒ“ƒpƒCƒ‹‚Å‚«‚é‚悤‚É
+ (/map)
+ skill.c
+ skill_castend_damage_id() •Ï”dx,dy‚Ì錾ˆÊ’u•ÏX
+ Makefile
+ LIBS ‚É -lm ’ljÁ
+
+E@jobcange ‚Å‚ÌŠƒo[ƒh•‰ƒ_ƒ“ƒT[‚É‚æ‚éˆÆ—Ž‚¿–hŽ~B by (no name)‚³‚ñ
+ atcommand.c
+ @jobchange,@charjob‚É«•Êƒ`ƒFƒbƒN’ljÁ
+
+// ƒiƒiƒX‚³‚ñC³
+Eclif.c“à‚Åatcommand.h‚ð‚Q“xinclude‚µ‚Ä‚¢‚½‚̂ňê‚ÂíœB
+Eƒp[ƒeƒB[‰ï˜bAƒMƒ‹ƒh‰ï˜b‚Å‚à@ƒRƒ}ƒ“ƒh‚ðƒ`ƒFƒbƒN‚·‚é‚悤‚ÉC³B
+ (/map)
+ clif.c
+ clif_parse_PartyMessage()Aclif_parse_GuildMessage C³B
+
+--------------
+//0560 by ƒpƒCƒ“
+
+E0559 ‚Ì athena-start ‚ð Unix Like OS ‚Å‚à“®‚­‚悤‚ɃŠƒtƒ@ƒCƒ“B
+
+--------------
+//0559 by rowla
+
+Eathena.sh‚ð‘S–Ê“I‚É‘‚«’¼‚µAathena-start‚ÉBathena-start start‚ÅŠJŽnAathena-start stop‚ŃT[ƒo[’âŽ~Bcygwin‚ŃeƒXƒgA*BSD|Linux‚Å‚Í–¢ƒeƒXƒg(ŠÂ‹«‚ª‚È‚¢‚½‚ß)B
+
+--------------
+//0558 by Ž€_
+
+EƒuƒŠƒbƒcƒr[ƒg‚ðŽ©“®‚¾‚¯‹|‚ð‘•”õ‚µ‚Ä‚¢‚È‚¢‚Æ”­“®‚Å‚«‚È‚¢‚悤‚É•ÏXB(Žè“®‚Í•Ší‚ÉŠÖŒW‚È‚­Žg‚¦‚Ü‚·B) –¢ƒeƒXƒgB
+Eƒgƒ‰ƒbƒv‚Ìd‚³C³B(‰½ŒÌ‚©‚Í’m‚ç‚È‚¢‚¯‚Ç100‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ð10‚ÉC³Bˆö‚Ý‚É‘q‚Ì•\Ž¦‚Í100‚ª10‚Å10‚ª1‚Å‚·B)
+E‹|‚ÅŽg‚¤ƒXƒLƒ‹‚ÌꇖŒ¸‚ç‚È‚¢‚Ì‚ªŽd—l‚¾‚Á‚½‚ÆŠo‚¦‚Ä‚¢‚é‚Ì‚Å–î‚ðƒ`ƒFƒbƒN‚µ‚È‚¢‚悤‚ÉC³B
+Eƒ‚ƒ“ƒNƒXƒLƒ‹ŽO’i¶‚Ì•\Ž¦‚ðƒpƒbƒVƒu‚É•ÏXB
+Eƒ}ƒbƒvƒtƒ‰ƒO‚ðƒZƒbƒg‚·‚鎞dummy‚ª‚È‚­‚Ä‚àƒZƒbƒg‚Å‚«‚é‚悤‚ÉC³B
+(mapflag nomomo dummy‚©‚çmapflag nomemo‚Å‚à‘åä•v‚Ȃ悤‚É•ÏXB)
+–¢ƒeƒXƒgB
+ (/db)
+ item_db.txt C³B
+ skill_db.txt C³B
+ (/map)
+ skill.c
+ skill_check_condition()Askill_additional_effect() C³B
+ skill_status_change_start() C³B
+ npc.c
+ do_init_npc() C³B
+
+--------------
+//0557 by huge
+
+E–î‚ðA‹|‘•”õŽž‚Ì‚Ý‘•”õ‚Å‚«‚é‚悤‚ÉC³B
+E‹|‚ð‘•”õ‚©‚çŠO‚µ‚½‚çA–î‚àŠO‚ê‚é‚悤‚ÉC³B
+E–î‚ðÁ”ï‚·‚éƒXƒLƒ‹‚ð‚¢‚­‚‚©C³B
+E‘é‚ðA‹|‚ð‘•”õ‚µ‚Ä‚¢‚é‚Æ‚«‚Ì‚Ý”­“®‚·‚é‚悤‚ÉC³B(–¢ƒeƒXƒg)
+
+ pc.c
+ pc_equipitem() C³B
+ pc_unequipitem() C³B
+ skill.c
+ skill_additional_effect() C³B
+ skill_check_condition() C³B
+
+--------------
+//0555 by Ž€_
+
+Eׂ©‚¢C³‚ƃvƒŒƒ[ƒ“ƒgƒ{ƒbƒNƒXAŒÃ‚¢Šª•¨‚̃oƒOC³B
+E@ƒRƒ}ƒ“ƒh@refineA@produce­‚µC³B
+EƒT[ƒo[‚ÌIP‚ÉDNS–¼‚ðŽg‚¦‚é‚悤‚É•ÏXB(¡‚³‚ç‚Å‚·‚ªYare‚©‚ç
+Ž‚Á‚Ä‚«‚½•¨‚Å‚·B)
+EƒXƒeƒB[ƒ‹ŒvŽZŽ®•ÏX‚ÆMVPƒAƒCƒeƒ€ˆ—•ÏXB
+E“XNPC‚ð—˜—p‚É‚æ‚éƒWƒ‡ƒuŒoŒ±’lŠl“¾ŒvŽZŽ®•ÏXB
+ Šl“¾ƒWƒ‡ƒuŒoŒ±’l = ln(‹à*ƒXƒLƒ‹ƒŒƒxƒ‹) * shop_exp / 100
+E‚Ù‚Æ‚ñ‚ǃeƒXƒg‚µ‚Ä‚È‚¢‚̂ŃoƒO‚̉”\«‚ª‚ ‚è‚Ü‚·B
+ help.txt C³B
+ (/conf)
+ atcommand_athena.conf C³B
+ battle_athena.conf C³B
+ (/db)
+ item_db.txt C³B
+ (/doc)
+ conf_ref.txt C³B
+ (/char)
+ char.c
+ do_init()Acheck_connect_login_server() C³‚Æ­‚µC³B
+ (/map)
+ mob.c
+ mob_damage() C³B
+ pc.c
+ pc_getitemfromcart()Apc_steal_item() C³B
+ pet.c
+ pet_return_egg()Apet_get_egg()Apet_unequipitem() C³B
+ script.c
+ buildin_getitem() C³B
+ skill.c
+ skill_produce_mix() C³B
+ storage.c
+ storage_storageget() C³B
+ atcommand.c C³B
+ map.c
+ map_config_read() C³‚Æ­‚µC³B
+ chrif.c
+ check_connect_char_server()Ado_init_chrif()Achrif_setip() C³‚Æ­‚µC³B
+ npc.c
+ npc_buylist()Anpc_selllist() C³B
+
+--------------
+//0554 by NOCTURNE
+EƒT[ƒo[SnapShot
+Etoo/addaccount‚Ìíœ
+Ehelp.txt‚ÌXV
+
+--------------
+//0553 by ŒÓ’±—–
+
+Eladmin‚̃oƒOC³‚Æ‹@”\’ljÁ
+ EƒL[ƒ[ƒh‚É‚æ‚éƒAƒJƒEƒ“ƒgŒŸõ‹@”\’ljÁ
+ EƒVƒFƒ‹ƒRƒ}ƒ“ƒh‚Æ‚µ‚ÄŽg—p‚Å‚«‚é‚悤‚Ƀvƒƒ“ƒvƒg‚ðŽg‚í‚È‚¢ƒ‚[ƒh’ljÁ
+ E’ljÁ‹@”\‚ɂ‚¢‚Ä‚Íladmin‚ðŒ©‚Ä‚­‚¾‚³‚¢
+ E ladmin‚Ì--makesymlink‚É‚æ‚èAƒVƒ“ƒ{ƒŠƒbƒNƒŠƒ“ƒN‚Æ‚µ‚Äaddaccount‚ð
+ 쬂·‚邽‚ßAˆÈ‘O‚Ìaddaccount‚Í휂·‚é•K—v‚ª‚ ‚è‚Ü‚·B
+ ‚±‚ê‚ç‚̃Vƒ“ƒ{ƒŠƒbƒNƒŠƒ“ƒN(Cygwin‚ł̓Vƒ‡[ƒgƒJƒbƒg)‚ÆA
+ ŒÃ‚¢addaccount‚ÍŽIsnapshot‚É‚ÍŠÜ‚Ü‚È‚¢‚ʼnº‚³‚¢B
+
+ (tool/)
+ ladmin
+ ‹@”\’ljÁ‚ÆC³
+
+E—«ƒAƒJƒEƒ“ƒg‚µ‚©ì¬‚Å‚«‚È‚¢ƒoƒOC³
+EladminAcheckversionŽg—pŽžloginƒT[ƒo[‚ª–\‘–‚·‚éƒoƒOC³
+EGMƒAƒJƒEƒ“ƒgŽü•Ó‚ÌID‚ð”ð‚¯‚é‚½‚ß‚ÉSTART_ACCOUNT_NUM‚ð•ÏX
+ (Šù‚ÉGMƒAƒJƒEƒ“ƒg‚Í”ð‚¯‚éŽd—l‚É‚È‚Á‚Ä‚¢‚Ü‚·‚ªA¬—–hŽ~‚Ì‚½‚ß)
+
+ (login/)
+ login.h
+ START_ACCOUNT_NUM‚ð500000‚©‚ç2000000‚É•ÏX
+ login.c
+ 7532(Ø’f)ƒpƒPƒbƒg‚̈—C³
+ mmo_auth_new()C³
+
+Ebackup‚ªƒoƒbƒNƒAƒbƒv‚·‚éƒtƒ@ƒCƒ‹‚Épet.txt‚ð’ljÁ
+ (tool/)
+ backup
+ ƒtƒ@ƒCƒ‹’ljÁC³
+
+--------------
+//0552 by Ž€_
+
+EˆÀ’è«‚ðã‚°‚éˆ×‚ÌC³‚Å‚·‚ª–{“–‚ɈÀ’è«ã‚ª‚Á‚½‚©
+‚Ç‚¤‚©‚Í•s–¾‚Å‚·B
+EPVP‚É‚æ‚èƒNƒ‰ƒCƒAƒ“ƒg‚ª—Ž‚¿‚é–â‘èC³B
+ atcommand.c
+ @pvpoffA@pvponA@gvgonA@gvgoff C³B
+ script.c
+ buildin_pvpon()Abuildin_pvpoff()Abuildin_gvgon()Abuildin_gvgoff() C³B
+ clif.c
+ clif_pvpset() C³B
+ skill.c
+ skill_attack()Askill_unit_onplace()Askill_unit_onout() C³B
+ skill_unit_ondelete() C³B
+
+--------------
+//0551 by Kalen
+EDBC³
+ db/create_arrow_db.txt Š®¬
+ SourceID‡‚Ƀ\[ƒg‚µ‚Ü‚µ‚½B
+
+--------------
+//0550 by huge
+
+E–î쬃XƒLƒ‹ŽÀ‘•
+
+ clif.c
+ clif.h
+ clif_arrow_create_list() ’ljÁ
+ clif_arrow_created() ’ljÁ
+ clif_parse() C³
+
+ pc.c
+ pc_search_inventory() C³
+
+ skill.c
+ skill.h
+ skill_arrow_db() ’ljÁ
+ skill_readdb() C³
+ skill_castend_damage_id() C³
+
+ db/create_arrow_db.txt ’ljÁ
+ db/skill_db.txt C³
+
+ ‚Ü‚¾db‚Í–¢Š®¬‚Å‚·B
+
+--------------
+//0549 by Kalen
+
+Emap_athena.conf
+ ƒIƒŠƒWƒiƒ‹ƒXƒNƒŠƒvƒgA‹GߌÀ’èƒXƒNƒŠƒvƒg‚ð®“Ú
+ shop3.txt’ljÁ
+
+EŠeŽíNPC’ljÁ•C³
+ npc_event_yuno.txt [’ljÁ]ƒWƒ…ƒm[ƒCƒxƒ“ƒg(ÂÎ5ŒÂGET)
+ npc_cTower.txt [’ljÁ]’nã’n‰º‚ÌŒ®NPC
+ npc_town_yuno.txt [C³]‘䎌C³
+
+ npc_event_carnival.txt [’ljÁ]‹ŒŽIƒJ[ƒjƒoƒ‹ƒCƒxƒ“ƒgŽž‚ÌNPC
+
+--------------
+//0548 by huge
+
+E–î‚ð‘•”õ‚µ‚½Žž‚Ì•\Ž¦ƒoƒO–â‘è‚ðC³B
+ clif.c
+ clif_arrowequip() C³B
+ pc.c
+ pc_equipitem() C³B
+
+‚ ‚Æ‚ÍAƒ}ƒbƒv‚ðˆÚ“®‚·‚邽‚Ñ‚É‘•”õ‚ªŠO‚ê‚¿‚Ⴄ“_‚Å‚·‚ËEEEB
+
+--------------
+//0547 by Ž€_
+
+EˆÀ’è«‚ðã‚°‚éˆ×‚ÌC³‚Æׂ©‚¢C³B
+EƒXƒLƒ‹ƒ†ƒjƒbƒg‚Ì”»’è‚ð‚µ‚Ä‚¢‚éŠÔƒƒ‚ƒŠ[‚ð‰ðœ‚Å‚«‚È‚¢‚悤‚É•ÏXB
+ map.c
+ map_foreachinarea()Amap_foreachinmovearea() C³B
+ map_foreachobject() C³B
+ block_free_max‚ð32000‚©‚ç50000‚É•ÏXB
+ pc.c
+ pc_calcstatus() C³B
+ skill.c
+ do_init_skill()Askill_unit_timer()Askill_status_change_clear() C³B
+ skill.cAbattle.cAbattle.h
+ struct battle_config‚Ìsanctury_type‚ðsanctuary_type‚É•ÏXB
+ (‰pŒêƒXƒyƒ‹ŠÔˆá‚¢‚ÅC³B)
+ battle_athena.conf
+ sanctury_type‚ðsanctuary_type‚É•ÏXB
+ conf_ref.txt
+ sanctury_type‚ðsanctuary_type‚É•ÏXB
+
+--------------
+//0546 by Ž‚Žqo^.^o
+
+conf/npc_shop2.txt
+DƒoˆêƒhAƒ_ƒ“ƒTˆê—p‚Ì•ŠíBƒRƒ‚ƒh‚Ì•Ší‰®‚Ŕ̔„‚µ‚Ä‚¢‚éB
+Dƒ‚ƒ“ƒN—p‚Ì•ŠíBƒJƒsƒgˆêƒŠƒiC“¹‰@‚Ŕ̔„‚µ‚Ä‚¢‚éB
+
+--------------
+//0545 by Ž€_
+
+EƒuƒŠƒbƒc‚̃_ƒ[ƒW‚ðŽ©“®‚Å•ªŽUAŽè“®‚Å•’Ê‚É‚È‚é‚悤‚É•ÏXB
+EƒI[ƒgƒuƒŠƒbƒcƒoƒOC³B(‚±‚ê‚Å‘åä•v‚¾‚Æ‚¢‚¢‚¯‚Ç...)
+ map.c
+ block_free_max‚ð16000‚©‚ç32000‚ÉC³B
+ block_list_max‚ð4096‚©‚ç5120‚ÉC³B
+ battle.c
+ battle_weapon_attack() C³B
+ skill.c
+ skill_attack()Askill_castend_damage_id() C³B
+
+--------------
+//0544 by Diex
+E–Ò—´Œ‚©‚爢C—…”e™€Œ‚ւ̃Rƒ“ƒ{ŽÀ‘•B
+Eˆ¢C—…”e™€Œ”­“®ŒãA“G‚Ì”wŒã‚Ɉړ®‚·‚é‚悤AC³B
+EŽO’i¶‚̃_ƒ[ƒWC³B
+ (/map)
+ skill.c
+ skill_castend_damage_id() C³B
+ skill_check_condition() C³B
+ skill_use_id() C³B
+ pc.c
+ pc_attack_timer() C³B
+ pc_authok() C³B
+ battle.c
+ battle_calc_weapon_attack() C³B
+ battle.h
+ struct Battle_Config C³B
+ map.h
+ struct map_session_data C³B
+ (/conf)
+ battle_athena.conf C³B
+
+‚Í‚Á‚«‚è‚¢‚Á‚ăRƒ“ƒ{Œq‚°‚Â炢‚Å‚·B‚»‚Ì‚½‚߈¢C—…‚ւ̃Rƒ“ƒ{‚Í‚©‚È‚èŠÃ‚¢”»’è‚É
+‚µ‚Ä‚Ü‚·iˆêŽž“I‚É‚Å‚·‚ªjBŒq‚°‚Â炯‚ê‚Îbattle_athena.conf‚Ì‚Ù‚¤‚Ńfƒ…ƒŒƒCŽž
+ŠÔ‚ð‘å‚«‚­‚µ‚Ä‚Ý‚Ä‚­‚¾‚³‚¢B
+ “®‰æŒ©‚Ä‚Ä‹C‚¢‚½‚Ì‚Å‚·‚ªAˆ¢C—…”e™€Œ‚Í–Ò—´Œ‚ª”­“®‚µ‚½ŒãA‘¦Žž”­“®‚̃XƒL
+ƒ‹‚É•Ï‚í‚Á‚Ä‚é‚悤‚È‚Ì‚Å‚·B‘¼—Í–{Šè‚Å‚·‚ªAˆ¢C—…‚܂ł̃Rƒ“ƒ{‚̃pƒP‚ð‹L˜^‚µ‚½
+•¨‚ð‚Ç‚È‚½‚©ƒAƒbƒv‚µ‚Ä‚à‚炦‚È‚¢‚Å‚µ‚傤‚©HÚׂª‚í‚©‚莟‘æAC³‚µ‚Ü‚·B
+
+--------------
+//0543 by Ž€_
+
+EƒuƒŠƒbƒc‚̃_ƒ[ƒW‚𕪎U‚³‚ê‚é‚悤‚É•ÏXB
+E•’ʂ̃AƒJƒEƒ“ƒgì‚è‚Å‚ÍGMƒAƒJƒEƒ“ƒg‚ðì‚ê‚È‚¢‚悤‚É•ÏXB
+(‘O‚ÉŽ©•ª‚ª“ü‚ꂽ•¨‚ª‚È‚­‚È‚Á‚½‚Ì‚Å–ß‚µ‚½‚¾‚¯‚Å‚·‚ª...)
+EŽæ‚芪‚«‚ªŽå‚ƈê‚ÉŽ€‚ʂ悤‚É•ÏXB(‚½‚¾‚¿‚å‚Á‚Æd‚­‚È‚é
+‰Â”\«‚ª‚ ‚è‚Ü‚·B) –¢ƒeƒXƒgB
+EMVPŒoŒ±’l‚ª•\Ž¦‚¾‚¯‚³‚ê‚ÄŽÀÛ‚É‚Í“ü‚Á‚Ä‚È‚¢–â‘èC³B
+ (/login)
+ login.c
+ mmo_auth_new() C³B
+ (/map)
+ skill.c
+ skill_castend_damage_id() C³B
+ battle.c
+ battle_calc_misc_attack() C³B
+ mob.c
+ mob_damage() C³B
+ mob_deleteslave()Amob_deleteslave_sub() ’ljÁB
+
+--------------
+//0542 by Ž€_
+
+EƒI[ƒgƒuƒŠƒbƒcƒoƒOC³B(¡“x‚±‚»‘åä•v‚Ì‚Í‚¸...)
+EŽ©•ª‚ÉŽg‚Á‚½ƒq[ƒ‹‚Å‚ÍŒoŒ±‚ª“ü‚ç‚È‚¢‚悤‚É•ÏXB
+E“XNPC‚ð—˜—p‚É‚æ‚éƒWƒ‡ƒuŒoŒ±’lŠl“¾ŒvŽZŽ®•ÏXB
+ Šl“¾ƒWƒ‡ƒuŒoŒ±’l = ln(‹à) * shop_exp / 100
+‚É‚È‚è‚Ü‚·B
+log‚ðŽg‚¤‚±‚Æ‚Å‹à‚ª‘½‚­‚Ä‚à“ü‚éŒoŒ±’l‚ª‘½‚­“ü‚ç‚È‚¢‚悤‚É•ÏX‚µ‚Ü‚µ‚½B
+ (/map)
+ battle.c
+ battle_damage() C³B
+ skill.c
+ skill_attack()Askill_castend_damage_id() C³B
+ skill_castend_nodamage_id C³B
+ npc.c
+ npc_buylist()Anpc_selllist() C³B
+ map.c
+ map_foreachinarea()Amap_foreachinmovearea()Amap_foreachobject()
+ C³B(‘債‚½C³‚Å‚Í‚È‚¢‚Å‚·B)
+ (/conf)
+ battle_athena.conf C³B
+ (/doc)
+ conf_ref.txt C³B
+
+--------------
+//0541 by huge
+
+E–î‚ð‚Ü‚Æ‚ß‚ÄŽ‚Ä‚é‚悤‚ÉC³B
+E‹|‚ÅUŒ‚‚µ‚½‚Æ‚«‚ÉA‘•”õ‚µ‚Ä‚¢‚é–î‚ðÁ”ï‚·‚é‚悤‚ÉC³B
+
+ itemdb.c
+ itemdb_search() C³
+ itemdb_isequip() C³
+
+ battle.c
+ battle_weapon_attack() C³
+ battle_calc_weapon_attack() C³
+
+ clif.c
+ clif.h
+ clif_arrow_fail() ’ljÁ
+ clif_parse_EquipItem() C³
+
+--------------
+//0540 by Ž€_
+
+EƒoƒOC³‚Æ–â‘è‚ ‚è‚»‚¤‚ÈŠC³B(‚±‚ê‚ÅWZ_FIREPILLAR‚ƃuƒŠƒbƒc‚É
+‚æ‚éŽIƒ_ƒEƒ“‚Í‚È‚­‚È‚é‚Í‚¸...)
+ map.c
+ map_foreachinarea()Amap_foreachinmovearea() C³B
+ skill.c
+ skill_unitsetting()Askill_delunitgroup() C³B
+ pc.c
+ pc_damage() C³B
+ battle.c
+ battle_damage() C³B
+ npc.c
+ npc_parse_mob() C³B
+ mob.c
+ mob_spawn_dataset() C³B
+
+--------------
+//0539 by Ž€_
+
+Eclif_pvpset()‚ðƒ}ƒbƒv‚©‚çAREA‚©ƒ}ƒbƒv‚©‚ðÝ’è‚Å‚«‚é‚悤‚É•ÏXB(pvp‚ÌŽž‚̈—‚Í0535ˆÈ‘O‚Ì•¨‚É–ß‚»‚Ü‚µ‚½BŽ©•ª‚¾‚¯‚É“]‘—‚µ‚Ä‚à‚¢‚¢‚悤‚È‹C‚à‚µ‚Ü‚·‚ª...)
+ clif.hAclif.c
+ clif_pvpset() C³B
+ clif_parse_LoadEndAck() C³B
+ script.c
+ buildin_pvpoff() C³B
+ buildin_pvpon() C³B
+ atcommand.c C³B
+EUŒ‚“r’†‚ŃAƒCƒeƒ€‚ðE‚¤‚ÆUŒ‚‚ªŽ~‚Ü‚é‚悤‚ÉC³B
+ pc.c
+ pc_takeitem() C³B
+E0535à–¾‚ª”š—ô”g“®‚É‚È‚Á‚Ä‚¢‚邪‚»‚ê‚Í‹à„‚ÉŠÔˆá‚¢‚Å‚·B
+E0537‚Åà–¾‚ð–Y‚ê‚Ü‚µ‚½‚ªƒ‚ƒ“ƒXƒ^[‚Ìdef‚Æmdef‚ð10000ˆÈã‚ÉÝ’è‚·‚ê‚ΑS‚Ä‚ÌUŒ‚‚É1ƒ_ƒ[ƒW‚ɂȂ郂ƒ“ƒXƒ^[‚É‚È‚è‚Ü‚·B‚»‚µ‚ă‚ƒ“ƒXƒ^[î•ñ‚Ådef‚Æ
+mdef‚ª10000ˆÈã‚Ìê‡def 100Amdef 99‚É•\Ž¦‚·‚é‚悤‚É•ÏXB–{ŽIŽd—l‚É
+‚·‚é‚É‚Ímob_db.txt‚ðC³‚µ‚Ä‚­‚¾‚³‚¢B
+
+--------------
+//0538 by huge
+
+EƒOƒŠƒ€ƒgƒD[ƒX‚ð”͈ÍUŒ‚‚ÉC³
+EƒTƒvƒ‰ƒCƒYƒAƒ^ƒbƒNŽÀ‘• (—LŒø”͈͂Á‚ÄA‚±‚ê‚Å‚ ‚Á‚Ä‚é‚Ì‚©‚ÈH)
+EƒoƒbƒNƒXƒ^ƒu‚̉¼ŽÀ‘•
+ –{ŽI‚Å‚â‚Á‚Ä‚él‚©‚ç˜b‚ð•·‚¢‚ÄAꊎw’肶‚á‚È‚­‚Ä
+ ƒ^ƒQŽæ‚Á‚Ä‚à—Ç‚³‚»‚¤‚¾‚Á‚½‚Ì‚Å•ÏX‚µ‚Ü‚µ‚½Bi‚â‚è‚â‚·‚©‚Á‚½‚Ì‚Å (^^;
+ ‚Ü‚¾Amob‚ÌŒã‚ë‚É‹‚é‚©‚Ç‚¤‚©‚Ì”»’è‚Í“ü‚Á‚Ä‚Ü‚¹‚ñB
+
+Ebattle.c
+ battle_calc_weapon_attack() C³
+
+Eskill.c
+ skill_additional_effect() C³
+ skill_castend_damage_id() C³
+ skill_check_condition() C³
+ skill_use_id() C³
+ skill_castend_nodamage_id() C³
+
+Eskilldb.txt
+ ƒoƒbƒNƒXƒ^ƒu‚ÌŽí—Þ‚ð[êŠ]‚©‚ç[“G]‚Ö•ÏX
+
+--------------
+//0537 by Ž€_
+
+EƒXƒeƒB[ƒ‹ƒoƒOC³‚Æbattle_athena.conf‚Ì€–ڒljÁAŽd—l•ÏX‚Æׂ©‚¢C³‚Å‚·B
+(ƒXƒeƒB[ƒ‹‚ÍŒvŽZŽ®‚É–â‘肪‚ ‚Á‚½‚Ì‚ÅC³‚µ‚ÄŠm—¦‚ðX‚É—Ž‚Æ‚µ‚Ü‚µ‚½B)
+ battle.h
+ finger_offencive_type‚ðfinger_offensive_type‚ÉC³B(‰pŒêƒXƒyƒ‹ŠÔˆá‚¢‚ÅC³‚µ‚Ü‚µ‚½B)
+ struct battle_config‚Érestart_hp_rateArestart_sp_rate ’ljÁB
+ battle.c
+ battle_calc_weapon_attack()Abattle_calc_magic_attack() C³B
+ skill.c
+ skill_attack() C³B
+ clif_skill_nodamage()‚ɃXƒLƒ‹ƒŒƒxƒ‹‚ð‘—‚é‚悤‚É•ÏXB(M‚³‚ñ‚ÌŽw“E‚É‚æ‚èC³B)
+ clif.c
+ clif_skill_estimation() C³B
+ conf_ref.txt
+ finger_offencive_type‚ðfinger_offensive_type‚ÉC³‚Æ­‚µ’ljÁB
+ mob.c
+ mob_ai_sub_hard()Amob_target()Amob_damage() C³B
+ pc.c
+ pc_steal_item() C³B
+ atcommnad.cAatcommnd.h
+ @ƒRƒ}ƒ“ƒh@gvgon , @gvgoff ’ljÁB
+ battle_athena.conf
+ finger_offencive_type‚ðfinger_offensive_type‚ÉC³‚Æ­‚µ’ljÁB
+
+--------------
+//0536 by hogefuga3 (Athena staff)
+
+EVGRFƒtƒ@ƒCƒ‹ƒtƒH[ƒ}ƒbƒg‘Ήž
+@- Athena staff —l‚Ì쬂³‚ꂽƒpƒbƒ`‚ð“K—p‚µ‚Ü‚µ‚½B
+ XV—š—ð‚Ì•”•ª‚̓pƒbƒ`ƒ~ƒX‚É‚È‚Á‚½‚Ì‚ÅŽè“®‚Å‘g‚Ýž‚ÝB
+
+i•ÏXj
+ common/
+ grfio.c
+
+--------------
+//0535 by Ž€_
+
+E0533‚Ì–â‘肪‚ ‚è‚»‚¤‚È•”•ª‘S‚ÄC³BC³‚µ‚½Š‚ð‘S•”ƒ`ƒFƒbƒN‚µ‚Ä‚È‚©‚Á‚½‚Ì‚ÅC³‚µ‚½ƒtƒ@ƒCƒ‹‚¾‚¯...
+EƒXƒNƒŠƒvƒgsetmapflagnosave ’ljÁB
+ setmapflagnosave ƒ}ƒbƒv–¼AƒZ[ƒu‚·‚éƒ}ƒbƒv–¼AÀ•W(XAY)
+ nosaveƒtƒ‰ƒO‚ðon‚É‚µ‚Ü‚·B
+Ebattle_athena.conf‚ɒljÁ‚ƈꕔŽd—l•ÏXB(Ú‚µ‚­‚Íconf_ref.txt‚ðŽQl‚µ‚Ä‚­‚¾‚³‚¢B)
+Eƒ‚ƒ“ƒXƒ^[‚Ìdef‚Æmdef‚ª10000ˆÈã‚ÌꇑS‚Ä‚ÌUŒ‚(ƒNƒŠƒeƒBƒJƒ‹ŠÜ‚ß‚Ä)‚ª1ƒ_ƒ[ƒW‚É‚È‚é‚悤‚É•ÏXB(ƒgƒ‰ƒbƒv‚âƒuƒŠƒbƒc‚Ìꇗ¼•û‚ª10000ˆÈã‚Ìꇂ̂Ý1‚É‚È‚è‚Ü‚·B) ‘‚ƃLƒmƒR‚É‚Pƒ_ƒ[ƒWŒÅ’è‚Í휂µ‚Ü‚µ‚½B(Œ³X–{ŽI‚Å‚à1ŒÅ’è‚Å‚Í‚È‚¢‚Å‚·B¸—û“™‚É‚æ‚éˆø‚«ã‚°ƒ_ƒ[ƒW‚Í‚»‚Ì‚Ü‚Üo‚Ü‚·‚Ì‚Å... ŒÅ’肵‚½‚¢‚Ì‚È‚çdef‚Æmdef‚ð10000‚É‚µ‚Ä‚­‚¾‚³‚¢BŽÀ‚Í‚±‚ê‚̓NƒŠƒXƒ^ƒ‹‚ɈׂÉì‚낤‚Æ‚µ‚½•¨‚Å‚·‚ª...)
+E”š—ô”g“®‚ÌŽžƒAƒCƒeƒ€‚É‚æ‚éƒXƒLƒ‹‚ÍŽg—p‚Å‚«‚é‚悤‚ÉC³B
+E‚»‚Ì‘¼­‚µC³B(C³‚Ì•¨‚Ì’†‚ɃeƒXƒg‚µ‚Ä‚È‚¢•¨‚à‚ ‚è‚Ü‚·B)
+ (/doc)
+ conf_ref.txt C³B
+ (/conf)
+ battle_athena.conf C³B
+ (/map)
+ battle.h C³B
+ battle.c C³B
+ mob.h C³B
+ mob.c C³B
+ skill.c C³B
+ npc.c C³B
+ pc.c C³B
+ script.c C³B
+ clif.c C³B
+ chrif.c C³B
+
+--------------
+//0534 by Diex
+
+EƒRƒ“ƒ{ƒVƒXƒeƒ€‰¼ŽÀ‘•
+ map/
+ battle.c
+ battle_weapon_attack() C³B
+ clif.c
+ clif.h
+ clif_combo_delay()@ŠÖ”’ljÁB
+ map.h
+ map_session_data@•Ï”’ljÁB
+ pc.c
+ pc_authok()@•Ï”’ljÁB
+ pc_attack_timer()@C³B
+ skill.c
+ skill_castend_damage_id()@C³B
+ skill_check_condition@C³B
+ skill_use_id@C³B
+ db/
+ skill_db.txt@C³B
+
+’j–Ò—´Œ‚©‚爢C—…”e–PŒ‚É‚Í‚Ü‚¾‚‚Ȃ°‚Ü‚¹‚ñB
+ ˆ¢C—…”e–PŒ‚ð•ú‚Á‚½ŒãAPC‚ÍMOB‚Ì”wŒã(?)‚Ɉړ®‚µ‚Ä‚é‚Á‚Û‚¢‚Ì‚Å‚·‚ªA
+@@‚»‚±‚ç‚Ö‚ñ‚Ìî•ñ‚ª‘«‚è‚Ü‚¹‚ñBî•ñ’ñ‹Ÿ‚¨Šè‚¢‚µ‚Ü‚·B
+
+--------------
+//0533 by ‚é‚é‚é
+
+E‘‚ƃLƒmƒR‚É‚Pƒ_ƒ[ƒWŒÅ’è
+battle.c ‚Ì battle_weapon_attack() ‚Æ battle_calc_attack() ‚ðC³
+battle.c ‚Ì battle_get_mobid() ‚ð’ljÁ
+mob.c ‚Ì mob_makedummymobdb() ‚Æ mob_readdb() ‚ðC³
+
+EƒXƒLƒ‹ƒƒO‚Ƀ‚ƒu‚̌ŗL”Ô†•‚o‚b‚Ì‚h‚c”Ô†‚ð•\Ž¦
+ibattle.c ‚Ì battle_get_mobid() ‚ð’ljÁ‚µ‚½‚Ì‚Å‚»‚̂‚¢‚Å‚Éj
+mob.c skill.c ‚Ì•ÏX‰ÓŠ‘½”iŠ¾
+i"MOB %d" ‚à‚µ‚­‚Í "PC %d" ‚ÅŒŸõ‚·‚ê‚ΕÏX‰ÓŠ‚ª‚í‚©‚é‚©‚Æj
+
+Eƒnƒ“ƒ^[‚Ìã©‚ðŽg‚Á‚½ƒXƒLƒ‹‚Åã©‚ðÁ”ï‚·‚é‚悤‚É‚µ‚½
+batttle.c ‚Ì skill_check_condition() ‚ðC³
+iƒWƒFƒ€Á”‚Ì—¬—p‚Á‚Û‚¢‚±‚Æ‚ð‚â‚Á‚Ä‚é‚ñ‚¾‚¯‚Lj—’†g‚Í—‰ð‚µ‚Ä‚È‚¢‚—j
+
+EƒTƒ“ƒNƒ`ƒ…ƒAƒŠ•ƒ}ƒOƒkƒX‚̃_ƒ[ƒW”»’è‚ð•sŽ€‘®«•ˆ«–‚Ží‘°‚ÉÄ“xC³
+0532‚ÅÄ‚ÑŒ³‚É–ß‚Á‚Ä‚µ‚Ü‚Á‚½‚Ì‚ð‚È‚¨‚µ‚Ü‚µ‚½B
+‚½‚¾‚µA‰ñ”•l””»’è‚É‚ÍŽè‚ð‰Á‚¦‚Ä‚¢‚Ü‚¹‚ñi‚Á‚Ä‚©Ž©•ª‚É‚Í‚Ü‚¾ƒ€ƒŠj
+
+ˆÈãB
+Ø‚Á‚½“\‚Á‚½‚ÌŒ©—lŒ©^Ž—‚Å‚â‚Á‚½‚Ì‚ÅŒ¾Œê“I‚ɉʂ½‚µ‚Ä‚±‚ê‚Å‚æ‚¢‚Ì‚©BBB
+‚à‚µˆ—•û–@‚É–â‘è—L‚肾‚Á‚½‚çC³‚È‚è‚ð‚µ‚Ä‚¢‚½‚¾‚¯‚é‚ÆŠð‚µ‚¢‚Å‚·B
+
+--------------
+//0532 by Ž€_
+
+EC³‚µ‚½Š‚ð‘S‘Rƒ`ƒFƒbƒN‚µ‚Ä‚È‚©‚Á‚½‚Ì‚ÅC³‚µ‚½ƒtƒ@ƒCƒ‹‚¾‚¯...Š¾
+Emapflag‚Énopenalty’ljÁBŽg—p•û–@‚Í
+ mapflag nopenalty dummy
+‚Å‚·B‹@”\‚Í‚»‚̃}ƒbƒv‚ÅŽ€‚ñ‚¾ŽžŒoŒ±‚ªŒ¸‚ç‚È‚¢‚悤‚É‚µ‚Ü‚·B
+Emapflag‚Épvp_nopartyApvp_noguildAgvgAgvg_noparty’ljÁB
+pvp_noparty‚ÍPVPƒ‚[ƒh‚Å“¯‚¶ƒp[ƒeƒB‚ÉUŒ‚‚ª“–‚½‚ç‚È‚¢Apvp_noguild‚ÍPVPƒ‚[ƒh‚Å“¯‚¶ƒMƒ‹ƒh‚ÉUŒ‚‚ª“–‚½‚ç‚È‚¢Agvg‚̓V[ƒYƒ‚[ƒh‚ÉAgvg_noparty‚̓V[ƒYƒ‚[ƒh‚Å“¯‚¶ƒp[ƒeƒB‚ÉUŒ‚‚ª“–‚½‚ç‚È‚¢•¨‚Å‚·B
+E‰Â“®‚µ‚Ä‚È‚¢ƒ^ƒCƒ}[‚Í‘S‚Ä-1‚É‚È‚é‚悤‚É•ÏXB
+E‚«”ò‚΂µˆ—C³B
+Eƒ}ƒbƒvƒ[ƒh’¼Œã‹CŒ÷‚ªŒ©‚¦‚È‚¢–â‘èC³B
+EŽc‰e‚̈—C³B
+Eƒ}ƒbƒv‚ðƒ[ƒh‚·‚é‚ÆŽ€‚ñ‚¾‚ӂ肪‰ðœ‚³‚ê‚é‚悤‚É•ÏXB
+EPVP‚ð­‚µ•ÏXB
+EŒÃ–Ø‚ÌŽ}‚Åo‚郂ƒ“ƒXƒ^[‚ðŽ©•ª‚̃Œƒxƒ‹‚æ‚è‚‚¢•¨‚Ío‚È‚¢‚悤‚É•ÏXB
+E‰Á‘¬ƒ|[ƒVƒ‡ƒ“‚Ìsc_start SC_SpeedPot0,1,0;‚ðsc_start SC_SpeedPot0,1800,0;‚̂悤‚É•ÏXBSC_SpeedPotH‚ÌŒã‚Ì”’l‚ÍŽ‘±ŽžŠÔ‚Å‚·B(’PˆÊ‚Í•b)
+E@ƒRƒ}ƒ“ƒh@pvp‚ð@pvpon‚É•ÏX‚Æ@pvpon‚Æ@pvpoffA@gat‚Ì‹@”\•ÏXB
+Ebattle_athena.conf‚ÌpvpíœB
+Ebattle_athena.conf‚Édeath_penalty_type’ljÁB
+Eƒyƒiƒ‹ƒeƒB‚Ì“K—p‚ðŽ€‚ñ‚¾Žž‚©‚玀‚ñ‚¾ŒãƒŠƒXƒ^[ƒg‚µ‚½Žž‚É•ÏXB(ƒŠƒU‚Å•œŠˆ‚·‚é‚ÆŒoŒ±‚ªŒ¸‚è‚Ü‚¹‚ñB–{ŽI‚ÌŽd—l‚ª‚©‚È‚è‹C‚É‚¢‚ç‚È‚©‚Á‚½‚Ì‚Å•ÏX‚µ‚Ü‚µ‚½B)
+EƒXƒNƒŠƒvƒgsetmapflagAremovemapflagApvponApvpoffAgvgonAgvgoff’ljÁB
+ setmapflag ƒ}ƒbƒv–¼Aƒ}ƒbƒvƒtƒ‰ƒOƒ^ƒCƒv
+ Žw’肵‚½ƒ}ƒbƒvƒtƒ‰ƒO‚ðon‚µ‚Ü‚·B(‚½‚¾pvpAgvg‚ÍpvponAgvgon‚Å‚Å‚«‚é‚Ì‚ÅŽw’肵‚Ä‚à“®ì‚µ‚Ü‚¹‚ñB‚ ‚Ænosave‚Ìꇈ—‚ª‚¿‚å‚Á‚Æ•¡ŽG‚É‚È‚é‚̂őΉž‚µ‚Ä‚Ü‚¹‚ñB)
+ removemapflag ƒ}ƒbƒv–¼Aƒ}ƒbƒvƒtƒ‰ƒOƒ^ƒCƒv
+ Žw’肵‚½ƒ}ƒbƒvƒtƒ‰ƒO‚ðoff‚µ‚Ü‚·B(‚½‚¾pvpAgvg‚ÍpvpoffAgvgoff‚Å‚Å‚«‚é‚Ì‚ÅŽw’肵‚Ä‚à“®ì‚µ‚Ü‚¹‚ñB‚±‚¿‚ç‚Ínosave‚à‰Â”\‚Å‚·B)
+ pvpon ƒ}ƒbƒv–¼
+ Žw’肵‚½ƒ}ƒbƒv‚ðPVPƒ‚[ƒh‚É‚µ‚Ü‚·B
+ pvpoff ƒ}ƒbƒv–¼
+ Žw’肵‚½ƒ}ƒbƒv‚ÌPVPƒ‚[ƒh‚ð‰ðœ‚µ‚Ü‚·B
+ gvgon ƒ}ƒbƒv–¼
+ Žw’肵‚½ƒ}ƒbƒv‚ðƒV[ƒYƒ‚[ƒh‚É‚µ‚Ü‚·B
+ gvgoff ƒ}ƒbƒv–¼
+ Žw’肵‚½ƒ}ƒbƒv‚̃V[ƒYƒ‚[ƒh‚ð‰ðœ‚µ‚Ü‚·B
+‚½‚¾‘S‚ẴXƒNƒŠƒvƒg‚Ì“®ì‚ÍŠm”F‚µ‚Ä‚Ü‚¹‚ñ‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
+EƒTƒ“ƒNƒ`ƒ…ƒAƒŠAƒ}ƒOƒkƒXƒGƒNƒ\ƒVƒYƒ€‚̈—‚ð0529‚É–ß‚µ‚Ü‚µ‚½B
+Ž©•ª‚Ì’²¸‚ł̓Tƒ“ƒNƒ`ƒ…ƒAƒŠ‚Íl”‚̧ŒÀ‚ª‚ ‚è‚Ü‚·B(ƒŒƒxƒ‹1‚Å4–¼‚Å
+1ƒŒƒxƒ‹‚Ɉêl‚¸‚‘‚¦‚Ü‚·B)
+E‚»‚̌㭂µC³B(‚µ‚½‚Í‚¸...)
+ (db/)
+ const.txt C³B
+ item_db.txt C³B
+ (conf/)
+ battle_athena.conf C³B
+ (doc/)
+ conf_ref.txt C³B
+ (map/)
+ clif.hAclif.c C³B
+ mob.c C³B
+ pc.hApc.c C³B
+ skill.c C³B
+ pet.c C³B
+ npc.c C³B
+ map.hAmap.c C³B
+ battle.hAbattle.c C³B
+ atcommand.hAatcommand.c C³B
+ script.c C³B
+ makefile C³B
+
+--------------
+//0531 by Ž‚Žqo^.^o
+
+conf/npc_turtle.txt
+Dƒ^[ƒgƒ‹ƒAƒCƒ‰ƒ“ƒh‚És‚­ŽžAƒTˆêƒoˆê‚ð—Ž‚Á‚Ä–â‘èC³
+Dnpc_turtle.txt‚Ì508s–Ú
+set Zeny - 10000,0; --> set Zeny,Zeny-10000; C³
+
+--------------
+//0530 by RR
+EƒXƒLƒ‹uƒTƒ“ƒNƒ`ƒ…ƒAƒŠv‚ÅUŒ‚‘ÎÛ‚ðƒAƒ“ƒfƒbƒg/ˆ«–‚Ží‘°‚©‚ç•sŽ€‘®«/ˆ«–‚Ží‘°‚É•ÏX
+EƒXƒLƒ‹uƒ}ƒOƒkƒXƒGƒNƒ\ƒVƒYƒ€v‚ÅUŒ‚‘ÎÛ‚ðƒAƒ“ƒfƒbƒg/ˆ«–‚Ží‘°‚©‚ç•sŽ€‘®«/ˆ«–‚Ží‘°‚É•ÏX
+EƒXƒLƒ‹uƒTƒ“ƒNƒ`ƒ…ƒAƒŠv‚̉ñ•œ‰ñ”‚ðl”‚©‚çƒJƒEƒ“ƒg‚É•ÏX
+ skill.c
+ skill_unit_onplace()C³
+ skill_unit_onout()C³
+
+‘½•ª‚±‚ÌŽd—l‚Ň‚Á‚Ä‚é‚Í‚¸‚Å‚·cB
+
+--------------
+//0529 by ŒÓ’±—–
+
+EMOB‚ªƒXƒLƒ‹uƒq[ƒ‹v‚ðŽg—p‚·‚é‚ƃT[ƒo[‚ª—Ž‚¿‚éꇂª‚ ‚Á‚½–â‘è‚ðC³
+EƒXƒLƒ‹uƒTƒ“ƒNƒ`ƒ…ƒAƒŠv‚ÅUŒ‚‘ÎÛ‚ð•sŽ€‘®«‚©‚çƒAƒ“ƒfƒbƒg/ˆ«–‚Ží‘°‚É•ÏX
+
+ skill.c
+ skill_unit_onplace()C³
+ skill_castend_nodamage_id()C³
+
+EƒƒOƒCƒ“ƒT[ƒo[‚̃AƒJƒEƒ“ƒgƒf[ƒ^ƒx[ƒX•ÛŽçƒc[ƒ‹‚ð“Y•t
+ Perl»‚È‚Ì‚ÅŽÀs‚É‚ÍPerl‚ª•K—v‚Å‚·B
+ Žg—p•û–@‚Ȃǂ̓GƒfƒBƒ^‚ÅŠJ‚¢‚ÄŒ©‚Ä‚­‚¾‚³‚¢B
+ Žg‚¢•û‚ª—Ç‚­‚í‚©‚ç‚È‚¢l‚ÍŽè‚ðo‚³‚È‚¢‚Ù‚¤‚ª‚¢‚¢‚Å‚·B
+
+ “Á‚É——R‚ª–³‚¢ŒÀ‚èƒAƒJƒEƒ“ƒgì¬‚à‚±‚¿‚ç‚̃c[ƒ‹‚ðŽg‚Á‚Ä‚­‚¾‚³‚¢B
+ addaccount‚̓pƒPƒbƒg‚Ì“s‡ãƒpƒXƒ[ƒh•¶Žš”‚̧ŒÀ‚ª‚«‚‚¢‚Ì‚ÅB
+
+ ƒAƒJƒEƒ“ƒg‚ð휂µ‚Ä‚àƒLƒƒƒ‰ƒNƒ^[ƒf[ƒ^A‘qŒÉƒf[ƒ^A
+ ‚»‚Ì‘¼‚̃AƒJƒEƒ“ƒgˆÈŠO‚̃f[ƒ^‚ÍÁ‚¦‚Ü‚¹‚ñB‘ŠŽè‚ªƒƒOƒCƒ“’†‚¾‚Á‚½ê‡
+ ‹­§Ø’f‚Í‚³‚ê‚Ü‚¹‚ñ‚ªAŽŸ‰ñ‚©‚ç‚̓ƒOƒCƒ“‚Å‚«‚È‚¢‚Í‚¸‚Å‚·B
+ i‚‚܂è‚ÍA’P‚Élogin-serverã‚̃AƒJƒEƒ“ƒg‚ðÁ‚µ‚Ä‚¢‚邾‚¯‚Å‚·j
+
+ (login/)
+ login.c
+ parse_admin()’ljÁAparse_login()C³
+ (doc/)
+ admin_packet.txt
+ V‹K’ljÁBŠÇ—ƒpƒPƒbƒgî•ñ
+ (tool/)
+ ladmin
+ login-server administration tool‚ÌPerlƒXƒNƒŠƒvƒg
+
+
+--------------
+//0528 by RR
+EƒXƒLƒ‹uƒq[ƒ‹v‚ðŽg—p‚µ‚½Û‚ɉñ•œ—Ê‚É”ä—Ⴕ‚½•ª‚¾‚¯ƒWƒ‡ƒuŒoŒ±’l‚ªŠl“¾‚Å‚«‚é‚悤‚É•ÏX
+E¤lŒnE‹Æ‚ª“XNPC‚ð—˜—p‚µ‚½Û‚ɃWƒ‡ƒuŒoŒ±’l‚ªŠl“¾‚Å‚«‚é‚悤‚É•ÏX
+E—¼•û‚Æ‚àbattle_athena.conf‚Å’²®‰Â”\‚É‚µ‚Ü‚µ‚½B‰ŠúÝ’è‚Í0”{i”ñ“K—pj
+Emap_athena.conf‚É‚Ä‚©‚Ú‚¿‚áƒNƒGƒXƒg‚Ì‚à‚Ì‚ª“ü‚Á‚Ä‚È‚©‚Á‚½‚̂ŃRƒƒ“ƒgƒAƒEƒg‚µ‚È‚ª‚ç’ljÁB
+
+ map_athena.conf
+
+ battle.c battle_config_read()
+ battle.h Battle_Config
+ battle_athena.conf
+ ˆÈãAbattle_athena.conf—˜—p‚½‚ß‚É•ÏX
+
+ pc.c pc_heal()
+ –ß‚è’l‚ðhp+sp‚ÉB–ß‚è’l‚ð—˜—p‚µ‚Ä‚é•”•ª‚ª‚È‚³‚»‚¤‚¾‚Á‚½‚Ì‚ÅŽg‚킹‚Ä–á‚¢‚Ü‚µ‚½BƒoƒO‚ª‹N‚«‚½‚ç‚·‚Ý‚Ü‚¹‚ñB
+
+ skill.c skill_casted_nodamage_id()‚̃q[ƒ‹•”‚ɂăWƒ‡ƒuŒoŒ±’lŠl“¾‚·‚é‚悤•ÏX
+
+ npc.c npc_buylist()
+ npc_selllist() •ÏX
+ ‚±‚ê‚ç‚Æ‚ÌŒ“‚ˇ‚¢‚Åskill.h‚ðincludeB
+
+
+¤l‚Ì“X—˜—pƒWƒ‡ƒuŒoŒ±’lŠl“¾‚Å‚·‚ªAŒvŽZŽ®‚Í‚Ü‚¾l‚¦’†‚Ȃ̂ʼn¼‚ÅB
+ŒvŽZŽ®‚̓AƒCƒeƒ€w“ü‚ª@‘ã‹à * ƒXƒLƒ‹ƒŒƒxƒ‹iƒfƒBƒXƒJƒEƒ“ƒgj/ ((1{300/ƒAƒCƒeƒ€ŒÂ”) * 4000)
+ƒAƒCƒeƒ€”„‹p‚ª@‘ã‹à * ƒXƒLƒ‹ƒŒƒxƒ‹iƒI[ƒo[ƒ`ƒƒ[ƒWj / ((1{500/ƒAƒCƒeƒ€ŒÂ”) * 4000)‚Å‚·B
+í‚É–î‚ð‚½‚­‚³‚ñˆê‚Éw“ü‚·‚邱‚Æ‚ÅŒoŒ±’l‚𑽗ʂɉ҂®‚±‚Æ‚ª‰Â”\‚Å‚·‚ËcB
+‚Ç‚È‚½‚©‚¢‚¢Ž®‚ðŽv‚¢‚‚¢‚½‚ç•ÏX‚¨Šè‚¢‚µ‚Ü‚·B
+
+‚Æ‚±‚ë‚Å“]ENPC‚ªˆê•”‚©‚Ô‚Á‚Ä‚é‚ñ‚Å‚·‚ªC³‚µ‚È‚¢‚Å‚¢‚¢‚ñ‚Å‚µ‚傤‚©H
+
+--------------
+//0527 by Ž€_
+
+E0526‚̃oƒOC³B(ƒeƒXƒg‚ׂ̈ɕς¦‚Ä‚¢‚½•¨‚ð“ü‚ꂽ‚܂܃Aƒbƒv‚µ‚Ä‚µ‚Ü‚Á‚½‚Ì‚ªŒ´ˆö‚Å‚µ‚½B)
+ skill.c C³B
+ pc.c C³B
+ mob.c C³B
+ clif.c C³B
+
+--------------
+//0526 by Ž€_
+
+E0525‚̃ŠƒUƒŒƒNƒVƒ‡ƒ“‚ðŽ€‚ñ‚¾ƒLƒƒƒ‰‚ÉŽg‚¦‚È‚¢ƒoƒOC³B(ƒeƒXƒg‚Í‚µ‚Ä‚Ü‚¹‚ñ‚ªŽ¡‚Á‚½‚Í‚¸‚Å‚·B‘½•ª...)
+ skill.c C³B
+ clif.c C³B
+
+--------------
+//0525 by Ž€_
+
+Edmotion‚̊Ԃ̓Lƒƒƒ‰‚ª“®‚©‚È‚¢‚悤‚É•ÏXB(ƒeƒXƒg‚µ‚Ä‚Ü‚¹‚ñB)
+EƒƒeƒI‚̃_ƒ[ƒW•\Ž¦ƒ^ƒCƒ~ƒ“ƒOC³B(­‚µ’x‚¢‹C‚à‚µ‚Ü‚·‚ª...)
+EƒoƒbƒNƒXƒ‰ƒCƒfƒBƒ“ƒO‚ÌŽž‚Ƀ‚[ƒVƒ‡ƒ“‚ªo‚é‚悤‚É•ÏXB(ƒXƒLƒ‹Žg—pŒã
+0.2•bŒã‚ɃXƒLƒ‹Žg—pƒpƒPƒbƒg‚ð‘—‚é‚悤‚É•ÏX‚µ‚Ü‚µ‚½Bƒ‰ƒO“™‚É‚æ‚Á‚Ä•Ï‚È“®ì‚ð‚·‚é‰Â”\«‚à‚ ‚è‚Ü‚·B)
+E0524‚ÌC³B
+EƒnƒCƒfƒBƒ“ƒO‚µ‚Ä‚¢‚鎞Ž©‘R‰ñ•œ‚µ‚È‚¢‚悤‚É•ÏXB
+E0519‚ÅŠÔˆá‚Á‚½conf‚ÌC³‚Æׂ©‚¢ŠC³B
+ map.h
+ struct map_session_data‚Ìcanmove_tick‚ðcanact_tick‚É•ÏXB
+ skillcanmove_tick‚ðcanmove_tick‚É•ÏXB
+ skill.c C³B
+ pc.c C³B
+ pc.h C³B
+ clif.c C³B
+ battle.c C³B
+ battle.h C³B
+ mob.c C³B
+ mob.h C³B
+ char_athena.conf C³B
+ map_athena.conf C³B
+
+--------------
+//0524 by huge
+
+Eƒ[ƒO ƒgƒ“ƒlƒ‹ƒhƒ‰ƒCƒuŽÀ‘•
+ clif.c
+ clif_parse_WalkToXY()
+ pc.c
+ pc_calcstatus()
+
+ ‚Ç‚Ì‚­‚ç‚¢‘¬“xŒ¸­‚·‚é‚Ì‚©•ª‚©‚ç‚È‚©‚Á‚½‚Ì‚ÅAŽb’è“I‚É
+ speed += speed * (20-ƒXƒLƒ‹ƒŒƒxƒ‹)/40
+ ‚ÆA‚µ‚Ü‚µ‚½B–{ŽIŽd—l‚ª•ª‚©‚é•û‹‚Ü‚µ‚½‚çC³‚¨Šè‚¢‚µ‚Ü‚·B
+
+--------------
+//0523 by NOCTURNE
+
+Enpc_event_rental.txt‚ɃNƒ‹ƒZƒCƒ_[—p‚̃yƒRƒyƒRŠÇ—•º‚ð’ljÁ
+--------------
+//0522 by ”g˜Q
+
+Emob_db.txt‚ðƒWƒ…ƒm[Œã‚̃f[ƒ^‚ÉC³
+
+--------------
+//0521 by ŒÓ’±—–
+
+EmapƒT[ƒo[‚ÉŒq‚ª‚ç‚È‚¢–â‘è‚ðC³
+ clif.c
+ clif_parse()‚ÌC³
+
+--------------
+//0520 by ŒÓ’±—–
+
+EcharƒT[ƒo[ƒƒO‚Ìuset map X.Y HOGE.gatv‚ª•\Ž¦‚³‚ê‚È‚­‚È‚è‚Ü‚µ‚½
+ •Ï‚í‚è‚ÉAuset map M from XX.YY.ZZ.WW:PP (CC maps)v
+ ‚Æ‚¢‚¤‚Ó‚¤‚ɉ½ŒÂ‚̃}ƒbƒv‚ðƒZƒbƒg‚µ‚½‚©‚¾‚¯‚ð•\Ž¦‚·‚é‚悤‚É‚È‚è‚Ü‚·B
+
+ char/char.c
+ parse_frommapC³
+
+E•¡”mapƒT[ƒo[‚ɉ¼‘Ήž
+ ENPC‚̃}ƒbƒvƒT[ƒo[•Ï”‚ÍŽIŠÔ‚Å‚Í‹¤—L‚³‚ê‚Ü‚¹‚ñB‹¤—L‚·‚ׂ«•Ï”‚ð
+ Ž‚ÂNPC‚ª‚¢‚éƒ}ƒbƒv“¯Žm‚Í“¯‚¶mapƒT[ƒo[‚Å“®‚©‚·‚ׂ«‚Å‚·B
+ ‚¨‚»‚ç‚­PC‚̃Oƒ[ƒoƒ‹•Ï”‚Í‹¤—L‚Å‚«‚é‚ÆŽv‚¢‚Ü‚·(–¢ƒeƒXƒg)
+ EŽb’è“I‚É“®‚­‚悤‚É‚µ‚½‚¾‚¯‚È‚Ì‚ÅA•s“s‡‚ª‚ ‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB
+ “Á‚ÉAƒp[ƒeƒB/ƒMƒ‹ƒh/‘qŒÉ/ƒyƒbƒg/Wis‚È‚Ç‚ÌinterƒT[ƒo[‚ðŽg‚¤‹@”\‚ª
+ ³‚µ‚­ì“®‚·‚é‚©‘S‚­ƒ`ƒFƒbƒN‚µ‚Ä‚¢‚Ü‚¹‚ñB
+ Eurecv map on XX.YY.ZZ.WW:PP (CC maps)v‚Æ‚¢‚¤ƒƒO‚ª•\Ž¦‚³‚ê‚Ü‚·B
+ ‚±‚ê‚Í‘¼‚ÌmapƒT[ƒo[‚ª’S“–‚·‚éƒ}ƒbƒv‚̃ŠƒXƒg‚ªA‚±‚ÌmapƒT[ƒo[‚É
+ ³í‚ÉŽóM‚³‚ꂽ‚Æ‚¢‚¤ˆÓ–¡‚Å‚·B
+
+ (char/)
+ char.c/char.h
+ parse_frommap()C³
+ mapif_sendallwos()’ljÁ
+ (map/)
+ map.c/map.h
+ map_setipport()‚ðC³
+ struct map_session_data‚Ìstateƒƒ“ƒo‚Éwaitingdisconnect’ljÁ
+ chrif.c/chrif.h
+ FX’ljÁ
+ clif.c
+ waitingdisconnect‚ª‚P‚È‚çƒpƒPƒbƒg‚𖳎‹‚·‚é‚悤‚É‚µ‚½
+ pc.c
+ pc_setpos()C³iƒ}ƒbƒvƒT[ƒo[•ÏXˆ—‚È‚Çj
+ pc_setnewpc()C³
+
+--------------
+//0519 by Ž€_
+
+EƒT[ƒo[snapshot‚ÆFXC³B
+EŽ€‚ñ‚¾ƒLƒƒƒ‰‚ÉUŒ‚‚ª“–‚½‚éƒoƒOC³B(ƒeƒXƒg‚µ‚Ä‚Ü‚¹‚ñB–{“–‚ÉŽ¡‚Á‚½‚©‚Ç‚¤‚©•ñ‚¨Šè‚¢‚µ‚Ü‚·B)
+E0517‚̃AƒCƒXƒEƒH[ƒ‹‚̈—‚ð­‚µ•ÏXB
+EƒƒeƒI‚ðƒ‚ƒ“ƒXƒ^[‚àŽg‚¦‚é‚悤‚É•ÏXB(ƒeƒXƒg‚µ‚Ä‚Ü‚¹‚ñB•ñ‚¨Šè‚¢‚µ‚Ü‚·B) ‚Å‚à‚¿‚å‚Á‚ƃƒ‚ƒŠ[‚ÌŽg—p—Ê‚ª‘‚¦‚Ü‚µ‚½B(–ñ10M’öオ‚é‚悤‚Å‚·B)
+Eƒ{ƒX‚ÌŽæ‚芪‚«‚ªƒ{ƒX‚ƈê‚És“®‚·‚é‚悤‚É•ÏXB(ƒeƒXƒg‚µ‚Ä‚Ü‚¹‚ñ‚Ì‚Å‚Ç‚ñ‚È“®‚«‚ð‚·‚é‚©‚ÍŠm”F‚µ‚Ä‚Ü‚¹‚ñBUŒ‚‚àŽó‚¯‚Ä‚È‚¢‚̂Ƀ{ƒX‚ׂ̗©‚矎è‚É—£‚ê‚é‚©‚Ç‚¤‚©‚ÌŠm”F‚ð‚¨Šè‚¢‚µ‚Ü‚·B)
+E‚»‚Ì‘¼×‚©‚¢•¨C³B
+ client-packet.txt C³B
+ map.h
+ AREA_SIZE‚ð15‚©‚ç20‚É•ÏXB
+ struct map_session_dataAstruct mob_dataAstruct skill_timerskill C³B
+ map.c
+ map_quit() C³B
+ clif.h
+ clif_changemapcell() C³B
+ clif.c
+ clif_getareachar_skillunit()Aclif_clearchar_skillunit()Aclif_changemapcell() C³B
+ skill.c
+ skill_unitsetting()Askill_unit_onlimit()Askill_castend_pos2() C³B
+ skill_castend_nodamage_id()Askill_check_condition()Askill_attack() C³B
+ skill_timerskill()Askill_addtimerskill()Askill_cleartimerskill() C³B
+ ‚»‚Ì‘¼­‚µC³B
+ skill.h
+ skill_addtimerskill()Askill_cleartimerskill() C³B
+ pc.c
+ pc_movepos()Apc_walk()Apc_authok() C³B
+ mob.c
+ mob_spawn_dataset()Amob_spawn() C³B
+ mob_changestate()Amob_damage() C³B
+ mob_ai_sub_hard_mastersearch()Amob_ai_sub_hard() C³B
+ ‚»‚Ì‘¼­‚µC³B
+ battle.c
+ battle_calc_weapon_attack()Abattle_weapon_attack() C³B
+ ‚»‚Ì‘¼­‚µC³B
+
+--------------
+//0518 by Kalen
+EEvent_pumpkinŠÖ˜A‚̃tƒ‰ƒO•s‹ï‡C³
+
+--------------
+//0517 by Ž€_
+
+EƒAƒCƒXƒEƒH[ƒ‹‚Å ‚蔲‚é–â‘èC³‚Æ­‚µC³B(M‚³‚ñƒpƒPƒbƒg‚Ì’ñ‹Ÿ‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B)
+ clif.h
+ clif_changemapcell() ’ljÁB
+ clif.c
+ clif_changemapcell() ’ljÁB
+ skill.h
+ SC_STEELBODY‚ð84‚©‚ç87‚É•ÏXB
+ skill.c
+ skill_unitsetting()Askill_unit_onlimit() C³B
+ skill_status_change_end()Askill_status_change_start() C³B
+ client_packet.txt C³B
+
+--------------
+//0516 by Ž€_
+
+Eƒ‚ƒ“ƒXƒ^[‚̃ƒeƒI‚É‚æ‚éŽIƒ_ƒEƒ“‚ð—ÕŽž‚É–h‚¢‚Å’u‚«‚Ü‚µ‚½B(ƒeƒXƒg‚Í‚µ‚Ä‚Ü‚¹‚ñB) ƒ‚ƒ“ƒXƒ^[‚̃XƒLƒ‹‚ɂ‚¢‚Ä‚¿‚å‚Á‚Æ•ªÍ•s‘«‚Å‚·‚Ì‚Å•ªÍ‚µ‚½Œã‚ÉC³‚µ‚Ä’u‚«‚Ü‚·B
+EƒXƒLƒ‹Žw’e‚ÌŽd—l‚ðbattle_athena.conf‚ÅŒˆ‚ß‚é‚悤‚É•ÏXB(0515‚Ì•¨‚ª‚¿‚å‚Á‚Æ‚à‚Á‚½‚¢‚È‚©‚Á‚½‚Ì‚Å...)
+ skill.c
+ skill_castend_pos2() C³B
+ battlc.hAbattle.c
+ battle_config‚Éfinger_offencive_type ’ljÁB
+ battle_calc_weapon_attack() C³B
+ battle_athena.conf C³B
+ conf_ref.txt C³B
+
+--------------
+//0515 by Ž€_
+
+EƒXƒLƒ‹ƒƒeƒI‚ÆŽw’eC³‚ƃpƒPƒbƒgC³A0512‚Ì—Ž‚Æ‚µ•¨C³‚Æ­‚µ‚¾‚¯‚ÌŽd—l•ÏX‚Å‚·B
+EŽw’e‚Ìê‡à–¾‚ðŒ©‚Ä‚±‚ñ‚ÈŠ´‚¶‚©‚È‚ÆŽv‚Á‚Äì‚Á‚½•¨‚Å‚·BˆÈ‘O‚Ì•¨‚ª–{ŽI‚É‚ ‚Á‚Ä‚¢‚é‚Ȃ猳‚É–ß‚µ‚Ü‚·B
+EƒƒeƒI‚Ì1”­‚͈̔͂Í5*5ƒZƒ‹(range = 2)‚Å‚·B
+EƒAƒCƒeƒ€Žg—pƒpƒPƒbƒg‚ðV‚µ‚¢•¨‚É•ÏX‚µ‚½‚ªƒGƒtƒFƒNƒg‚ªo‚È‚¢•¨‚Ío‚È‚¢‚悤‚Å‚·B(FXƒGƒtƒFƒNƒg‚ª“ü‚Á‚Ä‚¢‚é‚Ý‚½‚¢‚¾‚©‚çŒã‚ÍŽg‚Á‚ÄŠm”F‚Å‚·‚¯‚Ç‚ËB)
+E0512‚Åhitrate‚ª10000ˆÈã‚Å•K’†‚Å‚Í‚È‚­100000ˆÈã‚Å•K’†‚Å‚·‚̂ŃR[ƒh‚ÌC³‚Ì‚³‚¢‚É‚Í‹C‚ð‚Á‚‚¯‚Ä‚­‚¾‚³‚¢B
+Ebattle_athena‚Éݒ肳‚ê‚Ä‚¢‚é•Ší‚Ì»‘¢—¦‚ƃyƒbƒg‚̕ߊlŠm—¦‚ÌŒvŽZ•û–@‚ð­‚µ•Ï‚¦‚Ü‚µ‚½B(‹C‚É‚·‚é•K—v‚à‚È‚¢•¨‚Å‚·‚¯‚Ç‚ËB)
+ skill.h
+ skill_addtimerskill()Askill_cleartimerskill ’ljÁB
+ skill.c
+ skill_attack() fixAskill_use_id()Askill_use_pos() C³B
+ skill_castend_damage_id()Askill_castend_nodamage_id() C³B
+ skill_timerskill()Askill_addtimerskill()Askill_cleartimerskill ’ljÁB
+ skill_castcancel()Askill_castend_pos2()Askill_unitsetting() C³B
+ skill_produce_mix()Ado_init_skill() C³B
+ mob.c
+ mob_damage() C³B
+ battle.c
+ battle_calc_weapon_attack() C³B
+ map.h
+ struct skill_timerskill ’ljÁB
+ struct map_session_data C³B
+ map.c
+ map_quit() C³B
+ pc.c
+ pc_authok() C³B
+ pc_damage() C³B
+ clif.c
+ clif_parse_WalkToXY() C³B
+ clif_useitemack() C³B(Ž‘—¿’ñ‹Ÿ: Kalen‚³‚ñ)
+ pet.c
+ pet_catch_process2() C³B
+ skill_db.txt
+ ‹CŒ÷‚ÌSP‚ð10‚É•ÏXB(ƒlƒbƒg‚ÌŒŸõ‚Å‚Í10‚¾‚Á‚½‚Ì‚Å•ÏX‚µ‚Ü‚µ‚½BŠØ‘‘ ‚Å‚Í15‚Æ•\Ž¦‚³‚ê‚Ü‚·‚ª...)
+ client_packet.txt
+ 01c8‚Ì•ÏX‚Å‚·BKalen‚³‚ñî•ñ’ñ‹Ÿ‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
+
+--------------
+//0514 by Kalen
+
+EscriptC³+’ljÁ
+
+ conf/npc_event_pumpkin.txt (V‹K)ƒJƒ{ƒ`ƒƒƒCƒxƒ“ƒg
+ conf/npc_town_guide.txt (C³)Juno‚Ìu+vƒAƒCƒRƒ“ƒJƒ‰[C³
+ conf/npc_town_lutie.txt (ˆê•”’ljÁ)ƒJƒ{ƒ`ƒƒƒCƒxƒ“ƒg‚ɉe‹¿‚·‚éNPC‚̉ï˜b’ljÁ
+
+--------------
+//0513 by RR
+
+E“]EŽž‚É‘•”õ‚ª‘S‚ÄŠO‚ê‚é‚悤‚É‚µ‚Ü‚µ‚½BŠÖ”ˆÊ’u‚Ì•ÏX‚µ‚Ä‚È‚¢‚Ì‚ÅA‚Ђå‚Á‚Æ‚µ‚½‚炨‚©‚µ‚­‚È‚Á‚Ä‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB‚¤‚¿‚̊‹«(win2k cygwin)‚Å‚Í•½‹C‚Å‚µ‚½‚Ì‚Å‚»‚Ì‚Ü‚Ü‚É‚µ‚Ä‚ ‚è‚Ü‚·BB
+Eƒm[ƒrƒXŽž‚ÌŽ€–S‚Å‚ÍAÅ‘åHP‚Ì‚Q•ª‚Ì‚P‚Å•œŠˆ‚Å‚«‚é‚悤C³B(ƒXƒLƒ‹‚É‚æ‚é•œŠˆ‚Í–¢Šm”F)
+EƒfƒXƒyƒiƒ‹ƒeƒB‚É‚æ‚éŒoŒ±’lŒ¸­‚ð’ljÁBbattle_athena.conf‚É‚ÄAŒ¸­—¦‚ð•ÏX‚Å‚«‚é‚悤‚ÉÝ’èBŒ¸‚éŒoŒ±’l‚ͬ”“_ˆÈ‰ºØ‚èŽÌ‚Ä‚È‚Ì‚ÅA•K—vŒoŒ±’l‚ª’á‚¢‚¤‚¿‚É‚Í‚¿‚傤‚Ç‚»‚Ì“•ªˆø‚©‚ê‚é‚Æ‚¢‚¤•—‚É‚Í‚È‚è‚Ü‚¹‚ñB
+ battle.h
+ Battle_Config‚Édeath_penalty_base‚Ædeath_penalty_job‚ð’ljÁB
+ battle.c
+ battle_config_read‚Ådeath_penalty_base‚Ædeath_penalty_job‚ð“ǂނ悤‚ÉC³B
+ pc.c
+ pc_makesavestatus() C³B
+ pc_damege() C³B
+ pc_jobchange() C³B
+ battle_athena.conf
+ death_penalty_base,death_penalty_job’ljÁB
+
+--------------
+//0512 by Ž€_
+
+E–â‘è‚É‚È‚è‚»‚¤‚È•”•ª‚ÌC³‚ÆV‚µ‚¢ƒpƒPƒbƒg‚̑Ήž‚ªƒƒCƒ“‚Å‚·BŒãƒoƒO‚à­‚µŽ¡‚µ‚Ü‚µ‚½B(“®‚¯‚È‚¢ó‘ÔˆÙí‚É‚È‚Á‚Ä‚à“®‚­–â‘è‚ÌC³“™‚Å‚·B)
+ athena.sh C³B(‚¢‚‚àŽI‚ðŒÂ•Ê‚ÉŽÀs‚µ‚Ä‚¢‚½‚Ì‚Å‹C‚ª‚‚«‚Ü‚¹‚ñ‚Å‚µ‚½B)
+ makefile
+ DPACKETVER‚ð2‚©‚ç3 ‚ÉC³BƒWƒ…[ƒmˆÈŒã‚Ì‘ ‚ðŽg‚¤‚Ì‚È‚ç3‚É‚µ‚ÄŽg‚Á‚Ä‚­‚¾‚³‚¢B(‚»‚̈ȑO‚È‚ç2‚©1)
+ clif.c
+ DPACKETVER=3‚ɑΉž(¡‚ÌŠ0x114‚ð0x1de‚É•ÏŠ·‚Æ0x11f‚ð01c9‚É•ÏŠ·‚·‚é‚̂ݑΉž)
+ clif_skill_damage3() íœB
+ clif_skillcastcancel() ’ljÁB
+ clif_skill_damage()Aclif_getareachar_skillunit()Aclif_skill_setunit() C³B
+ clif_fixmobpos()Aclif_fixpetpos()Aclif_fixpcpos() C³B
+ ‘¼‚É­‚µC³B
+ clif.h
+ clif_skill_damage3() íœB
+ clif_skillcastcancel() ’ljÁB
+ battle.c
+ battle_calc_weapon_attack() C³B
+ hitrate‚ð10000ˆÈã‚É‚·‚ê‚ΕK’†‚É‚È‚é‚悤‚É•ÏXB(¡‚ÌŽd—l‚ł̓‚ƒ“ƒXƒ^[‚Ì•K’†UŒ‚ˆÈŠO‚Í•K’†‚É‚È‚è‚Ü‚¹‚ñB)
+ ‘¼‚É­‚µC³B
+ client_packet.txt
+ V‚µ‚¢ƒpƒPƒbƒgî•ñ’ljÁB
+ pc.c
+ pc_spiritball_timer()Apc_delspiritball() C³B
+ pc_damage()Apc_skill() C³B
+ skill.h
+ SC_EXPLOSIONSPIRITS‚ð89‚©‚ç86‚É•ÏXB(86 = 0x56)
+ SC_DELUGE‚ð86‚©‚ç89‚É•ÏXB
+ skill.c
+ skill_castcancel()Askill_use_id()Askill_use_pos() C³B
+ skill_check_condition() C³B
+ skill_castend_damage_id()Askill_castend_nodamage_id C³B
+ skill_status_change_end()Askill_status_change_start() C³B
+ skill_db.txt
+ ‹CŒ÷‚ÌÁ”ïSP‚ðC³B(‘O‚Ì15‚ª–{ŽI‚É‚ ‚Á‚Ä‚¢‚é‚Ý‚½‚¢‚Å‚·‚Ì‚Å...)
+ mob.c
+ mobskill_use_id()Amobskill_use_pos() C³B
+ map.c
+ map_quit() C³B
+ atcommand.h
+ atcommand.c
+ @ƒRƒ}ƒ“ƒh@spiritball’ljÁB(‹@”\‚ÍŽg‚¦‚΂킩‚è‚Ü‚·B‚½‚¾1000ˆÈã‚Í“ü‚ê‚È‚¢•û‚ª‚¢‚¢‚Å‚·B‘ ‚ªƒpƒ“ƒN‚µ‚Ü‚·‚Ì‚Å...)
+ atcommand_athena.conf
+ C³B
+ conf_ref.txt
+ C³B
+E0x196ƒpƒPƒbƒg‚ÉV‚µ‚¢•¨‚ª’ljÁ‚³‚ê‚Ä‚¢‚é‚Ì‚Åó‘ԕω»‚É’¼Ú‚ÉŠÖŒW‚È‚¢SC_xxxx‚̔Ԇ‚ð’²®‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B(¡‚ÍSC_EXPLOSIONSPIRITS‚É‚¾‚¯‘Ήž‚µ‚Ü‚µ‚½B) ‚»‚ê‚Æskill_status_change_end()Askill_status_change_start()‚Åclif_status_change()‚ðŒÄ‚Ôtype‚͈̔͂ª64(0x40)–¢–ž‚É‚È‚Á‚Ä‚¢‚邪‚»‚ê‚à’ljÁ‚³‚ê‚Ä‚¢‚镨‚ɇ‚킹‚ÄC³‚·‚é•K—v‚ª‚ ‚è‚Ü‚·‚ª’ljÁ‚³‚ê‚Ä‚¢‚镨‚ª‘S‚Ä‚í‚©‚Á‚½‚킯‚Å‚à‚È‚¢‚Ì‚ÅSC_EXPLOSIONSPIRITS‚É‚¾‚¯‘Ήž‚µ‚Ü‚µ‚½B¡“x‚©‚ç‚Í”š—ô”g“®‚̉𜂪³Šm‚ÉŒ©‚¦‚Ü‚·B‹à„‚̓f[ƒ^‚ðŒ©‚Â‚¯‚ç‚ê‚Ü‚¹‚ñ‚Å‚µ‚½B
+¦V‚µ‚¢ƒpƒPƒbƒg‚ɑΉž‚·‚éì‹Æ‚ð‚µ‚Ä‚¢‚Ü‚·‚ªî•ñ‚ª•s‘«‚Å‚·B
+ƒCƒOƒhƒ‰ƒVƒ‹‚ÌŽÀ‚âƒCƒOƒhƒ‰ƒVƒ‹‚ÌŽí‚̃GƒtƒFƒNƒg‚ªo‚é‚悤‚É‚·‚éˆ×‚É01c8‚ðŽg‚Á‚Ä‚Ý‚Ü‚µ‚½‚ª‘Ê–Ú‚Å‚µ‚½Bclient_packet.txt‚̃f[ƒ^‚ł͉½‚à‹N‚±‚ç‚È‚¢‚̂ʼn½•û‚ª–{ŽI‚ŃCƒOƒhƒ‰ƒVƒ‹‚ÌŽÀ‚âƒCƒOƒhƒ‰ƒVƒ‹‚ÌŽí‚ðŽg‚Á‚½Žž‚̃pƒPƒbƒg‚ð’ñ‹Ÿ‚µ‚Ä‚­‚ê‚Ü‚¹‚ñ‚©HS 00a7‚ÌŒã00a8‚ª—ˆ‚é‚Ì‚©‚»‚ê‚Æ‚à01c8‚ª—ˆ‚é‚Ì‚©‚ÌŠm”F‚Æ00a8‚ÌŒã‚É01c8‚ª—ˆ‚é‚Ì‚©‚ÌŠm”F‚ª‚Å‚«‚ê‚Ή½‚Æ‚©‚È‚é‚ÆŽv‚¢‚Ü‚·‚ª...
+‚»‚ê‚Æ01c9‚ÌŒã‚É—ˆ‚é?.81b‚ª‚í‚©‚ê‚΃AƒCƒXƒEƒH[ƒ‹‚ð ‚蔲‚é–â‘è‚à‰ðŒˆ‚Å‚«‚é‚ÆŽv‚¢‚Ü‚·‚ª...
+î•ñ’ñ‹Ÿ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
+
+--------------
+//0511 by Diex
+
+EŽw’e‚ÌUŒ‚‰ñ”C³B
+Eˆ¢C—…”e–PŒA”­™¤‚ªC—û‚𖳎‹‚µA–³‘®«‚É‚È‚é‚悤‚ÉC³B
+E‹à„Žg—pŽžAMDEF‚ª³‚µ‚­•\Ž¦‚³‚ê‚Ä‚È‚©‚Á‚½ƒoƒO‚ðC³B
+E‹CŒ÷‚ÌÁ”ïSP‚ðC³B
+ pc.c
+ pc_calcstatus() C³B
+ battle.c
+ battle_calc_weapon_attack() C³B
+ skill.c
+ skill_check_condition() C³B
+
+ skill_db.txt C³B
+
+--------------
+//0510 by Diex
+
+EŽO’i¶‚Ì•\Ž¦ƒoƒOC³
+EŽw’e‚ª‹C’e‚ª–³‚­‚Ä‚àŒ‚‚Ä‚éƒoƒO‚ðC³
+ map.h
+ struct map_session_data‚Éspiritball_old•Ï”’ljÁB
+ skill.c
+ skill_check_condition() C³B
+ clif.c
+ clif_skill_damage3() C³B
+ battle.c
+ battle_weapon_attack()Abattle_calc_weapon_attack C³B
+
+--------------
+//0509 by
+
+Enpc_warp.txt
+ ƒvƒé¨ƒvƒƒtƒB[ƒ‹ƒh‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ðA
+ ƒvƒé¨ƒ”ƒ@ƒ‹ƒLƒŠ[ƒŒƒ‹ƒ€‚ÉC³B
+ ƒvƒƒtƒB[ƒ‹ƒh¨ƒvƒé‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ðƒvƒƒtƒB[ƒ‹ƒh¨ƒ”ƒ@ƒ‹ƒLƒŠ[ƒŒƒ‹ƒ€‚ÉC³
+
+--------------
+//0508 by Ž€_
+
+EƒoƒOC³‚Æ‘§A‹CŒ÷A‹C’D‚ÌC³‚ªƒƒCƒ“‚Å‚·B(¡“x‚©‚ç‚Í‘¼‚Ìl‚É‚à‹C‚ª‚¿‚á‚ñ‚ÆŒ©‚¦‚Ü‚·B)
+EŽ€‚ñ‚¾ƒLƒƒƒ‰‚ÉŒoŒ±’l‚ª“ü‚é–â‘èC³B(ƒeƒXƒg‚Í‚µ‚Ä‚Ü‚¹‚ñB‚Ç‚¤‚È‚Ì‚©•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·B)
+ pc.h
+ pc_addspiritball()Apc_delspiritball() ’ljÁB
+ pc_is50overweight() C³B
+ pc.c
+ pc_gainexp() C³B
+ pc_insert_card()Apc_item_identify() C³B(‘債‚½C³‚¶‚á‚ ‚è‚Ü‚¹‚ñ‚ª...)
+ pc_authok() C³B
+ pc_addspiritball()Apc_delspiritball() ’ljÁB
+ pc_spiritball_timer() ’ljÁB
+ do_init_pc()Apc_calcstatus()C³B
+ pc_spirit_heal() ’ljÁB
+ pc_natural_heal()‚ÉŠÖ‚í‚镨‚ÌC³B
+ map.h
+ struct map_session_data C³B
+ map.c
+ map_quit() C³B
+ map_addflooritem() C³B
+ clif.h
+ clif_spiritball_int()‚ðclif_spiritball()‚É•ÏXB
+ clif_spiritball_ext() íœB
+ clif.c
+ clif_spiritball_int() ‚ðclif_spiritball()‚É•Ï‚¦‚ÄC³B
+ clif_spiritball_ext() íœB
+ clif_set01e1() ’ljÁB
+ clif_getareachar_pc() C³B
+ skill.h
+ SC_CALLSPIRITS íœB
+ skill.c
+ SC_CALLSPIRITS íœB
+ skill_castend_nodamage_id()Askill_check_condition() C³B
+ skill_status_change_start() C³B
+E°‚É—Ž‚¿‚½ƒAƒCƒeƒ€‚ªÁ‚¦‚é‚Ü‚Å‚ÌŽžŠÔ‚ðÝ’è‚Å‚«‚é‚悤‚É•ÏXB
+ battle.hAbattle.c
+ battle_config_read() C³B
+ conf_ref.txt C³B
+ battle_athena.conf C³B
+
+--------------
+//0507 by Diex
+0505‚ÌC³
+EŽO’i¶‚̃GƒtƒFƒNƒgŽÀ‘•
+
+--------------
+//0506 by hoenny
+‘S‘Ì“I‚É­‚µŽ®C³
+ƒZƒCƒW‚̃XƒLƒ‹‚ªƒAƒCƒeƒ€‚ðÁ–Õ‚·‚é‚悤‚ÉC³
+(ƒXƒLƒ‹‚ÌDB‚É zeny, spiritball, item, equip‚ð“ü‚ꂽ‚¢‚ªŽžŠÔ‚ª‚È‚­‚Ä—ÕŽž“I‚É ...)
+
+--------------
+//0505 by Diex
+
+Eˆ¢C—…”e–PŒ‚̃_ƒ[ƒWC³
+E–Ò—´Œ‚̃_ƒ[ƒWC³
+EŽw’eŽÀ‘•
+E”­™¤ŽÀ‘•
+E‹à„‚ªŒ¸ŽZDEF‚ÆŒ¸ŽZMDEF‚ª90‚ɌŒ肳‚ê‚Ä‚¢‚½‚Ì‚ðæŽZDEF‚ÆæŽZMDEF‚ª90‚É‚È‚é‚悤‚ÉC³
+EŽO’i¶ŽÀ‘•i‚½‚¾‚µƒRƒ“ƒ{‚Í–¢ŽÀ‘•j
+ map/clif.c
+ map/clif.h
+ clif_skill_damage3()’ljÁ
+ map/pc.c
+ map/skill.c
+ map/battle.c
+ C³E‹y‚ђljÁ
+iŒvŽZŽ®‚Í+ Acolyte Maniax +‚ðŽQl‚É‚µ‚Ü‚µ‚½Bj
+
+--------------
+//0504 by Ž€_
+
+Eatcommand.c C³B(‚½‚Á‚½2•¶Žš‚ð’ljÁ‚µ‚½‚¾‚¯‚Å‚·B)
+atcommnad_gm_only‚ªno‚¶‚á‚È‚­‚Ä‚àŽg—pƒŒƒxƒ‹Ý’è‚ð0‚É‚µ‚½ƒRƒ}ƒ“ƒh‚ÍGM‚¶‚á‚È‚¢ƒLƒƒƒ‰‚Å‚àŽg‚¦‚Ü‚·BƒeƒXƒg‚Í‚µ‚Ä‚Ü‚¹‚ñB
+
+--------------
+//0503 by nabe
+
+E¸˜BC³‚ÆLinux—p‚É‚¿‚å‚Á‚Æ•ÏX‚È‚Ç
+ conf/map_athena.conf
+ npc_event_doll.txt,
+ npc_turtle.txt,
+ //npc_pota.txt€–ڒljÁ
+ conf/npc_pota.txt’ljÁisocie‚³‚ñì‚̃_ƒ“ƒWƒ‡ƒ“ƒ|ƒ^Žq‚³‚ñj
+ conf/npc_shop.txt
+ ƒCƒYƒ‹[ƒh•Ší¤l‚̉¿ŠiC³
+ conf/script_athena.conf
+ 0499‚Å‚Ì•¶Žš‰»‚¯HC³
+ login/login.c
+ #include <time.h>’ljÁ
+ map/script.c
+ buildin_getequipname()
+ ¸˜Bƒƒjƒ…[‚Ìmalloc‚ðC³
+ buildin_getequipisenableref()
+ ¸˜B‰Â”\ðŒC³iAthefans‚³‚ñ‚ÌðŒ•¶‚É‚µ‚Ä‚Ý‚Ü‚µ‚½j
+ map/skill.c
+ skill_check_condition()•Ï”錾ˆÊ’u‚Ì•ÏX‚Ì‚Ý
+
+--------------
+//0502 by Ž€_
+
+EƒJƒvƒ‰‚Ì‘qŒÉ‚àbattle_athena.conf‚Ìbasic_skill_check‚É‚æ‚Á‚ÄŠî–{ƒXƒLƒ‹‚ª‘«‚è‚È‚­‚Ä‚àŽg—p‚·‚邱‚Æ‚ª‚Å‚«‚é‚悤‚ÉC³‚µ‚Ü‚µ‚½B(ƒvƒƒ“ƒeƒ‰’†‰›‚̃Jƒvƒ‰‚Ì‚ÝŠm”FB)
+EƒNƒFƒXƒgƒXƒLƒ‹‚̎擾‚Í0492‚Ì‚¹‚¢‚Å‚·B0481‚Éskill‚ÌŌオ,2‚¶‚á‚È‚­,0‚¾‚Æ‘‚¢‚½‚Ì‚Å‚·‚ª‰½ŒÌ‚©0492‚Å,2‚É‚È‚Á‚Ä‚¢‚½‚Ì‚Å,0‚ÉC³‚µ‚Ü‚µ‚½B
+EƒXƒNƒŠƒvƒggetbaseskillcheck‚ðbaseskillcheck‚É•ÏX‚ÆŽ©•ª‚ÅC³‚µ‚Ü‚µ‚½‚ª–½—ß‚ÌŒã‚É‚È‚ñ‚Ì”’l‚à“ü‚ç‚È‚¢ê‡‚̓XƒNƒŠƒvƒg‚ª³‚µ‚­ì“®‚µ‚È‚©‚Á‚½‚Ì‚ÅŽg—p‚·‚éꇂÍbaseskillcheck(0)‚É‚µ‚ÄŽg‚í‚È‚¢‚Ƴ‚µ‚¢Œ‹‰Ê‚𓾂邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñB
+(Ú‚µ‚­‚Ínpc_town_kafra.txtŽQÆB)
+ npc_event_skillget.txt C³B
+ npc_town_kafra.txt C³B
+ script.c C³B
+EGM_account.txt‚ÉŽ©•ª‚ªƒeƒXƒg‚ׂ̈Ɏg‚Á‚Ä‚¢‚½500000‚ª“ü‚Á‚Ä‚¢‚½‚Ì‚Å휂µ‚Ü‚µ‚½B(GM_account.txtì‚Á‚½——R‚ÍŽ©•ªŸŽè‚ɃAƒJƒEƒ“ƒg‚ðGM‚É‚·‚邱‚Æ‚ª‚Å‚«‚é‚悤‚É‚·‚éˆ×‚Å‚·B‚‚܂èGM‚Æ‚µ‚Ä•\Ž¦‚³‚ê‚È‚­‚Ä‚àGM‚Æ‚µ‚ÄF‚ñ‚ÈŒ ŒÀ‚ðŽg‚¤‚±‚Æ‚ª‚Å‚«‚Ü‚·B‚³‚·‚ª‚ÉGMê—p‚̉EƒNƒŠƒbƒNƒRƒ}ƒ“ƒh‚ÍŽg‚¦‚Ü‚¹‚ñ‚ª... ‚Å‚à‚±‚ê‚ðŠˆ—p‚µ‚Ä‚¢‚é•û‚Í‚¢‚È‚¢‚Ý‚½‚¢‚È‚ñ‚Å‚·‚Ë...)
+
+--------------
+//0501 by hoenny
+
+E500‚Ì–â‘è“_C³
+-HP‰ñ•œ—ÍŒüã,SP‰ñ•œ—ÍŒüã
+ map/pc.c
+ pc_natural_heal_hp()C³
+ pc_natural_heal_sp()C³
+
+500SP‰ñ•œ—ÍŒüã
+--------------
+//0500 by hoenny
+
+EC“¹‘m‚Ì‘§ŽÀ‘•
+-Šî–{“I‚ÉÀ‚Á‚½Žž 10•b‚²‚Ƃɉñ•œ‚µ‚Ü‚·.
+-ŠŽ—Ê‚ª 50%‚ðƒI[ƒo[‚µ‚½ê‡ 20•b‚²‚Ƃɉñ•œ‚µ‚Ü‚·.
+EC“¹‘m‚Ì‹C’DŽÀ‘•
+-‘¼‚ÌC“¹‘m‚ÌŸ†‹…‚à‹zŽû‚ª‰Â”\‚Å‚·.
+EC“¹‘m‚Ì‹à„ŽÀ‘•
+-‹à„ó‘Ô‚Å‚Í‚·‚ׂẴAƒNƒeƒBƒuƒXƒLƒ‹‚ðŽg‚¤‚±‚Æ‚ª‚Å‚«‚È‚¢‚Å‚·.
+ db/skill_db.txt
+ ‹C’DC³
+ ‹à„C³
+ map/pc.h
+ pc_is50overweight()’ljÁ
+ pc_is90overweight()’ljÁ
+ map/pc.c
+ pc_calcstatus()C³
+ pc_spheal()C³
+ pc_hpheal()C³
+ pc_natural_heal_hp()C³
+ pc_natural_heal_sp()C³
+ pc_natural_heal_sub()C³
+ map/skill.c
+ skill_check_condition()C³
+ skill_castend_nodamage_id()C³
+ skill_status_change_start()C³
+
+--------------
+//0499 by Ž€_
+
+EƒT[ƒo[snapshot‚ƃoƒOC³B
+EƒXƒeƒB[ƒ‹ƒRƒCƒ“‚̃[ƒj—Ê‚ðƒ‚ƒ“ƒXƒ^[ƒŒƒxƒ‹*10 + rand(100)‚É•ÏXB
+EƒLƒƒƒXƒeƒBƒ“ƒOƒ^ƒCƒ€‚ª‚È‚¢ƒXƒLƒ‹‚̓^ƒCƒ}[‚ðŽg‚í‚È‚¢‚悤‚É•ÏXB
+EƒJ[ƒh‚ÌŽg—p‚É‚æ‚éƒ}ƒbƒvŽIƒ_ƒEƒ“‚ð–h‚®ˆ×‚ÉC³B(¡“x‚±‚»Ž¡‚Á‚½‚Í‚¸...) ‚»‚µ‚ÄŠg‘勾‚à“¯‚¶‚悤‚È‚±‚Æ‚ª‚Å‚«‚é‚Ì‚ÅC³B(‚±‚ê‚ÍŽIƒ_ƒEƒ“‚Ü‚Å‚Í‹N‚±‚³‚È‚¢‚悤‚Å‚·‚ª...)
+EƒLƒƒƒ‰‚Ƀ}ƒbƒv‚̃[ƒh‚ªI‚í‚é‚܂Ńyƒbƒg‚̃f[ƒ^‚ª—ˆ‚È‚¢‚ƃ}ƒbƒvŽI‚ª—Ž‚¿‚é–â‘èC³B(–Å‘½‚È‚±‚Æ‚ª‚È‚¢ŒÀ‚è‹N‚±‚ç‚È‚¢‚Å‚·‚¯‚Ç‚ËB)
+EƒI[ƒgƒo[ƒT[ƒNAd‚³‚̃AƒCƒRƒ“‚ƃ`ƒFƒbƒN‚ª³‚µ‚­“K—p‚³‚ê‚é‚悤‚ÉC³B
+E‘‘¬ƒ|[ƒVƒ‡ƒ“‚Ì“K—p‡”Ô•ÏXB¡‚܂ł̓Xƒs[ƒhƒAƒbƒvƒ|[ƒVƒ‡ƒ“‚ªÅ—Dæ‚ÅŽŸ‚ªƒnƒCƒXƒs[ƒhƒ|[ƒVƒ‡ƒ“AŌオƒo[ƒT[ƒNƒ|[ƒVƒ‡ƒ“‚¾‚Á‚½‚Ì‚Å‚·‚ª‡”Ô‚ð‹t‚É•ÏX‚µ‚Ü‚µ‚½B
+EƒAƒCƒeƒ€‚ÅŽg‚¤ƒXƒLƒ‹‚̓LƒƒƒXƒeƒBƒ“ƒOƒ^ƒCƒ€‚ƃfƒBƒŒƒC‚ª0‚É‚È‚é‚悤‚É•ÏXB
+EƒAƒCƒeƒ€‚ÅŽg‚¤ƒXƒLƒ‹‚̃Œƒxƒ‹‚ªitem_db‚Éݒ肵‚Ä‚¢‚郌ƒxƒ‹‚æ‚è‚‚­‚È‚éƒoƒOC³B
+ pc.h
+ pc_move()‚ðpc_movepos()‚É•ÏXB
+ pc.c
+ pc_steal_coin()Apc_insert_card()Apc_item_identify()Apc_authok()A
+ pc_calcstatus()Apc_checkweighticon()Apc_damage() C³B
+ skill.c
+ skill_castend_pos2()Askill_check_condition()Askill_use_id()A
+ skill_use_pos() C³B
+ pet.c
+ pet_recv_petdata()Apet_change_name() C³B
+ map.h
+ struct map_session_data‚Éskillitemlv ’ljÁB
+ script.c
+ buildin_itemskill() C³B
+ clif.c
+ clif_parse_UseSkillToId()Aclif_parse_UseSkillToPos()A
+ clif_parse_LoadEndAck() C³B
+ mob.c
+ mobskill_use_id()Amobskill_use_pos() C³B
+
+--------------
+//0498 by hoenny
+
+DŸ†‹…‚ª‚·‚Á‚©‚茩‚¦‚é‚悤‚ÉC³(Á–ÕƒXƒLƒ‹Žg—p‚ÌŽžÁ–Õ‚·‚é‚悤‚ÉC³)
+DƒXƒLƒ‹Žc‰e‚ðŽg—p‚ÌŽžŸ†‹…‚ðÁ–Õ‚·‚é‚悤‚ÉC³
+ doc/client_packet.txt
+ 0x1d0’ljÁ
+ map/map.h
+ sd‚Ìstructure‚É spiritball’ljÁ
+ map/clif.h
+ clif_spiritball_del() -> clif_spiritball_int()C³
+ clif_spiritball_cre() -> clif_spiritball_ext()C³
+ map/clif.c
+ packet_len_table[]C³
+ clif_spiritball_del() -> clif_spiritball_int()C³
+ clif_spiritball_cre() -> clif_spiritball_ext()C³
+ map/pc.h
+ pc_item_steal() -> pc_steal_item()C³
+ pc_coin_steal() -> pc_steal_coin()C³
+ map/pc.c
+ pc_item_steal() -> pc_steal_item()C³
+ pc_coin_steal() -> pc_steal_coin()C³
+ pc_calcstatus()C³
+ map/skill.c
+ skill_check_conditon()C³
+
+--------------
+//0497 by Ž€_
+
+E0491‚̃XƒLƒ‹Žc‰e‚̃oƒOC³‚ƃXƒeƒB[ƒ‹‚ƃXƒeƒB[ƒ‹ƒRƒCƒ“AƒXƒiƒbƒ`ƒƒ[‚ÌC³Amob_target‚̃oƒOC³B
+EŒðŠ·AÀ‚èAƒp[ƒeƒBŒ‹¬“™‚ÌŽž‚ÉŠî–{ƒXƒLƒ‹‚ðƒ`ƒFƒbƒN‚·‚é‚悤‚ÉC³B(battle_athena.conf‚Ń`ƒFƒbƒN‚·‚é‚©‚Ç‚¤‚©‚ðŒˆ‚ß‚é‚±‚Æ‚ª‚Å‚«‚Ü‚·B)
+‚½‚¾ƒJƒvƒ‰‚Ì‘qŒÉ‚̓XƒNƒŠƒvƒg‚ŧŒÀ‚ð‚©‚¯‚邵‚©‚ ‚è‚Ü‚¹‚ñB
+EƒXƒNƒŠƒvƒggetbasicskillcheck’ljÁB
+ Žg—p•û–@„ getbasicskillcheck
+ –ß‚è’l‚Íbattle_athena.conf‚Ìbasic_skill_check‚Å‚·B0‚Ìꇂ͊î–{ƒXƒLƒ‹‚̃`ƒFƒbƒN‚È‚µ‚Å1‚Ìꇂ͊î–{ƒXƒLƒ‹‚ðƒ`ƒFƒbƒN‚·‚é‚Ì‚ðˆÓ–¡‚µ‚Ü‚·B
+ skill.c
+ skill_castend_pos2() C³B
+ skill_additional_effect() C³B
+ pc.c
+ pc_move() ’ljÁB
+ pc_item_steal()Apc_coin_steal() C³B
+ pc.h
+ pc_move() ’ljÁB
+ map.h
+ struct mob_data C³B
+ mob.c
+ mob_spawn() C³B
+ mob_target() C³B
+ clif.c
+ clif_pcinsight()Aclif_pcoutsight() C³B
+ clif_parse_ActionRequest()Aclif_parse_Emotion()A
+ clif_parse_TradeRequest()Aclif_parse_CreateParty()A
+ clif_parse_ReplyPartyInvite() C³B
+ battle_athena.conf C³B
+ conf_ref.txt C³B
+ skill_db.txt
+ ƒXƒeƒB[ƒ‹‚ÌŽË’ö‚ð3‚©‚ç1‚ÉC³B
+ battle.hAbattle.c
+ battle_config‚Ébasic_skill_check ’ljÁB
+ battle_config_read() C³B
+ trade.c
+ trade_traderequest() C³B
+ script.c
+ buildin_getbasicskillcheck() ’ljÁB
+ map/makefile C³B
+¦ƒXƒeƒB[ƒ‹‚ƃXƒeƒB[ƒ‹ƒRƒCƒ“‚ÌŒvŽZŽ®‚Í“K“–‚Éì‚Á‚½•¨‚Å‚·B–{ŽI‚Ì•û‚ª‚Ç‚¤‚È‚Ì‚©‘S‘R‚í‚©‚ç‚È‚¢‚Ì‚Å...
+
+ ƒXƒeƒB[ƒ‹—¦ = (ƒ‚ƒ“ƒXƒ^[‚̃AƒCƒeƒ€drop—¦ * (ƒLƒƒƒ‰ƒŒƒxƒ‹*0.5 + dex*0.4 +ƒXƒLƒ‹ƒŒƒxƒ‹*5))%
+ ƒXƒeƒB[ƒ‹ƒRƒCƒ“—¦ = (ƒXƒLƒ‹ƒŒƒxƒ‹ + (ƒLƒƒƒ‰ƒŒƒxƒ‹ - ƒ‚ƒ“ƒXƒ^[‚̃Œƒxƒ‹)*0.3 + dex*0.2 + luk*0.2)%
+ ƒXƒiƒbƒ`ƒƒ[”­“®—¦ = (5.5 + ƒXƒLƒ‹ƒŒƒxƒ‹*1.5 +ƒXƒeƒB[ƒ‹‚̃XƒLƒ‹ƒŒƒxƒ‹)%
+
+–{ŽI‚ÌŒvŽZŽ®‚ª‚í‚©‚é•û‚Íî•ñ’ñ‹Ÿ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
+ƒXƒeƒB[ƒ‹ƒRƒCƒ“‚̃[ƒj‚̗ʂ̓‚ƒ“ƒXƒ^[‚̃Œƒxƒ‹*100‚É‚È‚Á‚Ä‚¢‚Ü‚·B‚±‚ê‚ɂ‚¢‚Ä‚àî•ñ’ñ‹Ÿ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
+¦Žc‰e‚Ìꇎg‚Á‚½Œã•’Ê‚É•à‚­‘O‚ɂ̓yƒbƒg‚Ì‘•”õ‚ªŒ©‚¦‚È‚¢ƒoƒO‚ª‚ ‚è‚Ü‚·‚ªŒ´ˆö‚ª‚í‚©‚ç‚È‚¢‚Ì‚Å•ú’u‚·‚邱‚Æ‚É‚µ‚Ü‚µ‚½B
+¦Šî–{ƒXƒLƒ‹‚ª‘«‚è‚È‚¢Žžo‚郃bƒZ[ƒW‚Í–w‚LJ‚킹‚Ä‚¢‚Ü‚·‚ªƒp[ƒeƒB‚É“ü‚鎞‚ÉŠî–{ƒŒƒxƒ‹‚ª‘«‚è‚È‚¢Žž‚ɇ‚¤•¨‚ª‚È‚©‚Á‚½‚̂Ńp[ƒeƒB‚ðì‚ê‚È‚¢(Šî–{ƒXƒLƒ‹ƒŒƒxƒ‹7‚Ì•¨)‚Æ•\Ž¦‚µ‚ÄŠ©—U‚µ‚½•û‚É‚Í‹‘₳‚ꂽ‚Æ•\Ž¦‚³‚ê‚Ü‚·B
+
+--------------
+//0496 by hoenny
+
+DWZ‚̃ƒeƒIƒXƒg[ƒ€ŽÀ‘•
+DƒXƒeƒB[ƒ‹ƒRƒCƒ“C³
+ db/skill_db.txt
+ ƒƒeƒIƒXƒg[ƒ€C³
+ map/pc.c
+ pc_coin_steal()C³
+ map/skill.c
+ skill_castend_pos2()C³
+
+--------------
+//495 by nini
+
+EAR‚ª•ÐŽè•€A—¼Žè•€‚Å‚µ‚©”­“®‚µ‚È‚©‚Á‚½‚Æ‚±‚ëC³¨•ÐŽè•€A—¼Žè•€A“ÝŠí
+ map/skill.c
+ skill_check_condition()@C³
+
+‘O‰ñC³‚Ì‚Æ‚«“ÝŠí“ü‚ê–Y‚ê‚Ä‚½‚悤‚Å‚·B
+
+--------------
+//0494 by Ž‚Žqo^.^o
+
+conf/mpc_warp.txt
+Dƒnƒ“ƒ^ˆê“]E’no‚Ä‚¢‚È‚¢C³
+
+--------------
+//0493 by ”g˜Q
+
+EscriptC³
+ npc_town_comodo.txt ƒRƒ‚ƒhˆÄ“à—vˆõ•”•ª‚ðíœ(npc_town_guide.txt‚Æd•¡‚µ‚Ä‚¢‚½‚Ì‚Å)
+ npc_town_guide.txt ƒWƒ…ƒm[ˆÄ“à—vˆõ‚ð’ljÁ(viewpoint‚ÌF‚ªc)
+ npc_town_kafra.txt ƒWƒ…ƒm[ƒJƒvƒ‰•”•ª‚ðnpc_town_yuno.txt‚©‚çˆÚ“®
+ npc_town_refine.txt ƒWƒ…ƒm[¸˜BŠ•”•ª‚ðnpc_town_yuno.txt‚©‚çˆÚ“®
+ npc_town_yuno.txt ˆÄ“à—vˆõ‚ƃJƒvƒ‰‚Ƹ˜BŠ•”•ª‚ðíœ
+ npc_turtle.txt ‰ï˜b‚ð”÷C³
+
+--------------
+//0492 by Kalen
+
+EscriptC³+’ljÁ
+
+ conf/npc_event_doll.txt (V‹K)
+ conf/npc_turtle.txt (V‹K)‹T“‡ŠÖ˜ANPC+‹T“‡ƒNƒGƒXƒg(qŠC“úŽ)’ljÁ
+
+ conf/npc_event_skillget.txt (C³)‰ž‹}ˆ’u‚Ì•s‹ï‡+‚Ö‚ñ‚Ètabíœetc..
+ conf/npc_town_alberta.txt (C³)Turtle•ª—£A‚¿‚Ñ‚ÁŽqíœ(Event_doll‚ÖˆÚ“®)
+ conf/npc_town_guide.txt (C³)‘䎌‚ª‚©‚È‚è•ÏX‚³‚ê‚Ä‚¢‚½‚Ì‚ÅAC³
+
+
+--------------
+//0491 by Ž€_
+
+EƒXƒLƒ‹Žc‰e(ŠØ‘ƒNƒ‰ƒCƒAƒ“ƒg‚Å‚Í‹|gœ[‰e)ŽÀ‘•B(‚½‚¾‹C’e‚̃`ƒFƒbƒN‚Í‚µ‚Ä‚Ü‚¹‚ñB)
+ pc.h
+ pc.c
+ pc_can_reach() ’ljÁB
+ skill.c
+ skill_check_condition()Askill_castend_pos2() C³B
+ skill_db.txt
+ Žc‰eC³B
+Escript.c
+ set_posword() C³B
+¦ˆêl‚ŃeƒXƒg‚ÍÏ‚ñ‚Å‚¢‚Ü‚·‚ª‘¼‚Ìl‚ɳ‚µ‚­Œ©‚¦‚é‚©‚Ç‚¤‚©‚Í–¢Šm”F‚Å‚·B
+•Ï‚È‚Ì‚©‚Ç‚¤‚©•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
+
+--------------
+//0490 by nabe
+
+EꊃXƒLƒ‹ƒGƒtƒFƒNƒg‚Ń}ƒbƒvŽI‚ª—Ž‚¿‚邱‚Æ‚ª‚ ‚Á‚½‚Ì‚ðC³B
+ clif.c
+ clif_skill_poseffect()‚Ì
+ unsigned char buf[16];‚ðAunsigned char buf[32];‚ÉC³B
+
+--------------
+//0489 by Ž€_
+
+E0483‚̃oƒOC³Bbattle_athena.conf‚Ìquest_skill_learn‚ª³‚µ‚­“K—p‚³‚ê‚é‚悤‚É•ÏX‚Æ–â‘肪‚ ‚Á‚½•”•ª‚ÌC³B(ƒeƒXƒgÏ‚Ý)
+ pc.c
+ pc_calc_skilltree()Apc_skill() C³B
+ atcommand.c
+ @lostskill ­‚µC³B
+EƒJ[ƒh‚ÌŽg—p‚É‚æ‚éƒ}ƒbƒvŽIƒ_ƒEƒ“‚ð–h‚®‚½‚ß‚É­‚µC³B(‚½‚¾ƒJ[ƒh‚ÌŽg—p‚É‚æ‚éƒ}ƒbƒvŽIƒ_ƒEƒ“‚ðÄŒ»‚Å‚«‚È‚©‚Á‚½‚Ì‚Å–{“–‚ÉŽ¡‚Á‚½‚©‚Ç‚¤‚©‚Í•s–¾...Š¾)
+ pc.c
+ pc_insert_card() C³B
+Epc.h
+ pc_ishiding() C³B
+
+--------------
+//0488 by hoenny
+
+ERG‚̃XƒeƒB[ƒ‹ƒRƒCƒ“ŽÀ‘•
+EƒXƒeƒB[ƒ‹C³
+(“ñƒXƒLƒ‹ŠFˆê“xƒXƒ`[ƒ‹‚µ‚½ê‡‚Ü‚½ƒXƒ`[ƒ‹‚·‚邱‚Æ‚ª‚Å‚«‚È‚¢.‚»‚µ‚ăXƒLƒ‹¬Œ÷‚ÌŽžƒ‚ƒ“ƒXƒ^[‚ÍUŒ‚‚·‚é‚悤‚ÉC³‚µ‚½.ƒGƒtƒFƒNƒg‚ͬŒ÷‚ÌŽž‚¾‚¯o‚é‚悤‚ÉC³‚µ‚½.)
+ db/skill_db.txt
+ ƒXƒeƒB[ƒ‹ƒRƒCƒ“C³
+ map/pc.h
+ pc_coin_steal()’ljÁ
+ map/pc.c
+ pc_coin_steal()’ljÁ
+ pc_item_steal()C³
+ map/skill.c
+ skill_castend_nodamage_id()C³
+
+--------------
+//0487 by hoenny
+
+E485‚Ì–â‘è“_‚¿‚å‚Á‚ÆC³
+ map/pc.c
+ pc_item_steal()C³
+ map/skill.c
+ skill_castend_nodamage_id()C³
+
+--------------
+//0486 by Ž‚Žqo^.^o
+
+db/class_equip_db.txtC³
+—ô‚¯‚½‘å’n‚Ì‘A”R‚¦‚鑾—z‚Ì‘AŠ£‚¢‚Ä‚é•—‚Ì‘AàÒŽ¦˜^AƒvƒŠ[ƒXƒg‚Í‘•”õ‚·‚邱‚Æ‚ª‚Å‚«‚È‚¢–â‘èC³
+
+--------------
+//0485 by hoenny
+
+E RG‚̃Xƒiƒbƒ`ƒƒ[ŽÀ‘•
+E ƒXƒeƒB[ƒ‹C³
+E ˜I“XŠJÝ‚ÌŽž skill_check_condition‚Åó‘Ô‚ðƒ`ƒFƒN‚·‚é‚悤‚ÉC³
+ map/pc.h
+ pc_ishiding()’ljÁ
+ pc_item_steal()’ljÁ
+ map/pc.c
+ pc_item_steal()’ljÁ
+ map/skill.c
+ skill_castend_nodamage_id()C³
+ skill_additional_effect()C³
+ skill_check_condition()C³
+
+--------------
+//0484 by ŒÓ’±—–
+
+EŠo‚¦‚Ä‚È‚¢ƒNƒGƒXƒgƒXƒLƒ‹‚ɃXƒLƒ‹ƒ|ƒCƒ“ƒg‚ðU‚ê‚é–â‘èC³
+ pc.c
+ pc_calc_skilltree()‚ŃNƒGƒXƒgƒXƒLƒ‹‚̃`ƒFƒbƒN’ljÁ
+ skill.c
+ skill_readdb()‚Åinf2‚ð“ǂނ悤‚ÉC³
+
+EƒyƒRƒyƒR‹RæAƒtƒ@ƒ‹ƒRƒ“‚̃AƒCƒRƒ“‚ªƒƒOƒCƒ“’¼Œã‚É‚Í•\Ž¦‚³‚ê‚È‚¢–â‘èC³
+ clif.c
+ clif_parse_LoadEndAck()C³
+
+--------------
+//0483 by Ž€_
+
+E0482‚Ì“K—pB
+ npc_event_skillget.txt C³B
+ script.c C³B
+ skill.c C³B
+ pc.c C³B
+
+--------------
+//0482 by ŒÓ’±—–
+
+EƒNƒGƒXƒgƒXƒLƒ‹‚̃XƒNƒŠƒvƒg­‚µC³
+EƒXƒNƒŠƒvƒggetskilllv‚ðŒÄ‚Ԃƃ}ƒbƒvƒT[ƒo[‚ª—Ž‚¿‚éƒoƒOC³
+ (conf/)
+ npc_event_skillget.txt
+ o—ˆ‚邾‚¯•Ï”‚ðŽg‚í‚È‚¢‚悤‚ÉC³i–¢ƒeƒXƒgj
+ (map/)
+ script.c
+ buildin_getskilllv()C³
+
+EƒXƒeƒB[ƒ‹‚ÅŽ¸”sŽž‚̃GƒtƒFƒNƒg•ÏX
+E“¯‚¶MOB‚É‚Í‚P‰ñ‚µ‚©ƒXƒeƒB[ƒ‹‚Å‚«‚È‚¢‚悤‚ÉC³
+ (map/)
+ skill.c
+ skill_castend_nodamage_id()C³
+ map.h
+ struct mob_data‚Ésteal_countƒƒ“ƒo’ljÁ
+ mob.c
+ mob_spawn()C³Asteal_count‚ð0‚ɉŠú‰»‚·‚é‚悤‚É
+
+EƒCƒhƒDƒ“‚Ì—ÑŒç‚ÅHP‚ª32767‚ð’´‚¦‚é‚ƃT[ƒo[‚ª—Ž‚¿‚éƒoƒOC³i–¢ƒeƒXƒgj
+ (map/)
+ pc.c
+ pc_calcstatus()C³
+
+--------------
+//0481 by Ž€_
+
+E‚±‚ê‚Ì“K—p‚É‚Í‹C‚ð‚‚¯‚Ä‚­‚¾‚³‚¢B0478‚̌Ӓ±—–‚³‚ñ‚Ì•¨‚ð Athena.txt‚̃f[ƒ^Œ`Ž®•ÏX‚¹‚¸‚ɃNƒFƒXƒgƒXƒLƒ‹‚ðŠo‚¦‚é‚悤‚Éì‚Á‚½•¨‚Å‚·BŽ©•ª‚ªì‚Á‚Ä‚éÅ’†‚ɌӒ±—–‚³‚ñ‚ª“¯‚¶•¨‚ðƒAƒbƒv‚µ‚Ä‚­‚ꂽ‚Ì‚Å‚·‚ªƒf[ƒ^‚Í•Ï‚¦‚È‚¢•û‚ª‚¢‚¢‚ÆŽv‚Á‚ÄŽ©•ª‚Ì•¨‚àƒAƒbƒv‚µ‚Ü‚µ‚½B’ˆÓ‚·‚邱‚Æ‚Í0478‚Ìathena.txt‚ÍŽg‚¦‚È‚¢‚ÆŒ¾‚¤‚±‚Æ‚Å‚·B0478‘O‚Ì•¨‚ðŽg‚Á‚Ä‚­‚¾‚³‚¢B
+Eskill_db.txt‚Éinf2‚ð’ljÁ‚µ‚Ä‚±‚ê‚ðŽg‚Á‚ăNƒFƒXƒgƒXƒLƒ‹‚©‚Ç‚¤‚©‚ð”»’f‚·‚éŽd‘g‚Ý‚Å‚·B
+ skill.h C³B
+ skill.c
+ skill_readdb()C³‚Æ­‚µC³B
+ skill_get_inf2() ’ljÁB
+ skill_db.txt C³B
+ skill_tree.txt C³B(0478‘O‚Ì•¨)
+ clif.c
+ clif_skillinfoblock() C³B
+ char.c C³B(0478‘O‚Ì•¨)
+Ebattle_athena.conf‚Équest_skill_learn’ljÁB
+ battle.h C³B
+ battle.c
+ battle_config_read() C³B
+ battle_athena.conf C³B
+E/resetskill‚ðbattle_athena.conf‚Équest_skill_learn‚ÌÝ’è‚ɇ‚킹‚Äquest_skill_learn‚ªyes‚Ìꇂ̓XƒLƒ‹ƒ|ƒCƒ“ƒg‚ɉÁŽZ‚µ‚Äquest_skill_learn‚ªno‚Ȃ烊ƒZƒbƒg‚Í‚³‚ê‚邪ƒXƒLƒ‹ƒ|ƒCƒ“ƒg‚ɉÁŽZ‚³‚ê‚Ü‚¹‚ñB
+ pc.c
+ pc_skill()Apc_resetskill() C³‚Æ­‚µC³B
+ pc.h C³B
+ atcommand.c C³B
+ atcommnad_athena.conf C³B
+EƒXƒNƒŠƒvƒg‚ÌskillƒRƒ}ƒ“ƒh‚ŃNƒGƒXƒgƒXƒLƒ‹‚ðŠo‚¦‚ç‚ê‚é‚Ì‚Í“¯‚¶‚Å‚·‚ªÅŒã‚̃tƒ‰ƒO‚ª2‚©‚ç0‚É•Ï‚í‚Á‚Ä‚Ü‚·‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
+ npc_test_skill.txt C³B
+ npc_event_skillget.txt C³B
+ conf_ref.txt C³B
+ client_packet.txt C³B
+
+--------------
+//0480 by Kalen
+
+EEventskill’ljÁ
+ conf/npc_event_skillget.txt
+
+Emap_athena.conf•ÏX
+ warp.txt‚Ì“Ç‚Ýž‚Ý—Dæ“x‚ð•ÏX
+ prt_castle“™A‹ŒEP‚̃[ƒv‚ƈقȂéꊂɕÏX‚³‚ꂽê‡
+ æ‚É“Ç‚Ýž‚ñ‚¾•û‚ª—D悳‚ê‚é‚Ì‚ÅAEP‚Ì‚‚¢‡‚Ì‚ª‚æ‚낵‚¢‚©‚Æ
+ conf/map_athena.conf
+
+--------------
+//0478 by ŒÓ’±—–
+
+***
+ Athena.txt‚̃f[ƒ^Œ`Ž®•ÏX!! (Ž©“®“I‚É•ÏŠ·‚³‚ê‚Ü‚·)
+ ƒoƒbƒNƒAƒbƒv‚ð–Y‚ꂸ‚É!
+ Data format of athena.txt is changed!! (convert automatically)
+ DONT FORGET BACKUP!!
+***
+
+EƒNƒGƒXƒgƒXƒLƒ‹ŽÀ‘•
+EƒXƒNƒŠƒvƒg‚ŃXƒLƒ‹ƒŒƒxƒ‹‚ðƒ`ƒFƒbƒN‚Å‚«‚é‚悤‚É
+ EƒXƒNƒŠƒvƒg‚ÌskillƒRƒ}ƒ“ƒh‚ŃNƒGƒXƒgƒXƒLƒ‹‚ðŠo‚¦‚ç‚ê‚Ü‚·B
+ Žg—p•û–@„ skill ƒXƒLƒ‹ID,ƒXƒLƒ‹LV[,ƒtƒ‰ƒO]
+ ƒtƒ‰ƒO‚ÍÈ—ª‰Â”\‚ÅAÈ—ª‚·‚é‚Æ‚P‚ðŽw’肵‚½‚±‚Æ‚É‚È‚è‚Ü‚·B
+ ‚P‚Å‘•”õ•i‚É‚æ‚éˆêŽž“I‚ÈK“¾A‚Q‚ŃNƒGƒXƒg‚É‚æ‚éP‹v“I‚ÈK“¾‚Å‚·B
+ P‹v“I‚ÈK“¾‚Ìê‡Askill_tree.txt‚Ɉˑ¶‚µ‚Ü‚·
+ EgetskilllvƒRƒ}ƒ“ƒh’ljÁ
+ Žg—p•û–@„ getskilllv(ƒXƒLƒ‹ID) –ß‚è’l‚̓Œƒxƒ‹‚Å‚·B0‚Å–¢K“¾B
+
+ (conf/)
+ npc_test_skill.txt
+ ƒTƒ“ƒvƒ‹
+ (db/)
+ skill_tree.txt
+ ƒNƒGƒXƒgƒXƒLƒ‹‚Æ‚µ‚Ä•K—vƒXƒLƒ‹ID‚É-1‚ðÝ’èB
+ (char/)
+ char.c
+ ƒtƒ‰ƒO‚àathena.txt‚É•Û‘¶‚·‚é‚悤‚ÉB
+ ˆÈ‘O‚ÌŒ`Ž®‚̃f[ƒ^‚à“Ç‚Ýž‚ß‚Ü‚·B
+ (map/)
+ pc.c/pc.h
+ pc_skill(),pc_calc_skilltree()‚È‚ÇC³
+ script.c
+ buildin_skill(),buildin_getskillid()‚È‚ÇC³
+
+E@questskill,@lostskill’ljÁ
+ E@questskill ƒXƒLƒ‹ID ‚ŃNƒGƒXƒgƒXƒLƒ‹‚ðŠo‚¦‚Ü‚·B(ƒNƒGƒXƒgƒXƒLƒ‹‚Ì‚Ý)
+ E@lostskill ƒXƒLƒ‹ID ‚ŃXƒLƒ‹‚ð–Y‚ê‚Ü‚·B(ƒNƒGƒXƒgƒXƒLƒ‹ˆÈŠO‚àOK)
+
+ atcommand.c/atcommand.h
+ struct Atcommand_Config‚Élostskill,questskillƒƒ“ƒo’ljÁ
+ @questskill,@lostskillˆ—’ljÁ
+
+--------------
+//0477 by nabe
+
+Eˆê•”•Ï”‚Ì錾ˆÊ’u‚Ì•ÏX‚Ì‚ÝiLinux“™‚ŃRƒ“ƒpƒCƒ‹‚µ‚â‚·‚¢‚悤‚ÉjB
+ atcommand.c,battle.c,clif.c,mob.c,npc.c,skill.c
+
+--------------
+//0476 by nabe
+
+Econf/ ‚¿‚å‚Á‚Æ®—
+ conf/map_athena.confC³B
+ tortoise.txt‚ðnpc_town_alberta.txt’†‚Ɉړ®B
+ npc_script2.txt‚̃Rƒ‚ƒhƒKƒCƒh‚ðnpc_town_comodo.txt’†‚Ɉړ®B
+
+Enpc‚ªƒLƒƒƒ‰–¼‚ð’‚é‚Æ‚«‚̃oƒOC³
+ map/script.c
+ buildin_strcharinfo()‚ŃLƒƒƒ‰–¼—p‚̃ƒ‚ƒŠ‚ð
+ static‚ÉŠm•Û‚µ‚Ä‚µ‚Ü‚Á‚Ä‚¢‚½‚Ì‚ðAmalloc‚ÉC³B
+
+--------------
+//0475 by hoenny
+
+“D–_‚̃XƒeƒB[ƒ‹ŽÀ‘•B
+ƒMƒ‹ƒh¶¬‚ÌŽžƒGƒ“ƒyƒŠƒEƒ€Á–Õ‚·‚é‚悤‚ÉC³B
+ map/guild.c
+ guild_create()C³B
+ guild_created()C³B
+ map/skill.c
+ skill_castend_nodamage_id()C³B
+
+--------------
+//0474 by Ž€_
+
+E0471‚̸—û‚ÌŽž•\Ž¦‚³‚ê‚镶Žš‚ÌÝ’è‚ðmap_athena.conf‚©‚çscript_athena.conf‚É•ÏXB
+ script.c
+ do_init_script() C³‚Æ­‚µC³B
+ script.h C³B
+ script_athena.conf ’ljÁB
+ map_athena.conf C³B
+ map.c
+ map_config_read() C³B
+EŒÃ‚¢Šª•¨AƒvƒŒƒ[ƒ“ƒgƒ{ƒbƒNƒXŽÀ‘•‚Æ­‚µŽd—l•ÏXB
+ƒ‰ƒ“ƒ_ƒ€‚ŃAƒCƒeƒ€‚𓾂镨‚ɃfƒtƒHƒ‹ƒg‚Åo‚éƒAƒCƒeƒ€‚ðÝ’è‚Å‚«‚é‚悤‚É•ÏXB¡‚ÌŽd—l‚Å‚Í1000‰ñ‚܂ŃAƒCƒeƒ€‚ª‘I‘ð‚³‚ê‚È‚©‚Á‚½‚çƒfƒtƒHƒ‹ƒgƒAƒCƒeƒ€‚ªo‚é‚悤‚É‚È‚Á‚Ä‚¢‚Ü‚·BƒfƒtƒHƒ‹ƒgƒAƒCƒeƒ€‚ª0‚Ìꇂ̓AƒCƒeƒ€‚𓾂ç‚ê‚Ü‚¹‚ñB
+Ý’è‚·‚éŠm—¦‚ð*1000‚©‚ç*10000‚É•ÏXB‚½‚¾item_~.txt‚ÌC³‚Í‚â‚Á‚Ä‚¢‚Ü‚¹‚ñB’N‚©‚â‚Á‚Ä‚­‚¾‚³‚¢B(‘¼—Í–{Šè)
+ itemdb.c
+ temdb_read_randomitem() C³B
+ itemdb_searchrandomid() C³B
+ item_purplebox.txt ‚©‚ç item_violetbox.txt ‚ÉC³B
+ item_giftbox.txtAitem_scroll.txt ’ljÁB(move‚³‚ñ‚ ‚肪‚Æ‚¤B)
+ item_db.txt
+ ŒÃ‚¢Šª•¨AƒvƒŒƒ[ƒ“ƒgƒ{ƒbƒNƒX C³B
+Etrade.c
+ trade_tradecommit() C³Bpc_delitem()‚ðŽg‚¤‚悤‚É•ÏXB
+¦ƒeƒXƒg‚Í‚â‚Á‚Ä‚¢‚Ü‚¹‚ñ‚Ì‚Å–â‘肪‚ ‚Á‚½‚ç•ñ‚µ‚Ä‚­‚¾‚³‚¢B
+
+--------------
+//0473 by Kuro
+
+Eclass_equip_db‚ðˆê•”C³
+ db/class_equip_db.txt
+
+--------------
+//0471 by hoenny
+
+»˜B‚ÌŽžo‚镶‚ð•Ï‚¦‚邱‚Æ‚ª‚Å‚«‚é‚悤‚É‚µ‚Ü‚µ‚½.(map_athena.conf‚Å’²ß‰Â”\)
+‹CŒ÷‚Ì”Žš‚ªŽsœD‚ÌŽžŽÀÛ…˜H•\Ž¦}—ÎC³
+ conf/map_athena.conf
+ refine_posword:’ljÁB
+ map/map.c
+ map_config_read()C³B
+ map/script.h
+ do_set_posword()’ljÁB
+ map/script.c
+ do_set_posword()’ljÁB
+ buildin_getequipname()C³B
+ map/skill.c
+ skill_status_change_start()C³B
+
+--------------
+//0470 by Ž€_
+
+E»‘¢‚ÌŽž‘®«Î‚ª“ñ“xŒ¸‚é–â‘èC³B(ŽÀ‚Í“ñ“xŒ¸‚é‚悤‚ÉŒ©‚¦‚邾‚¯‚Ń}ƒbƒv‚ðˆÚ“®‚·‚é‚Ƴ‚µ‚­•\Ž¦‚³‚ê‚Ü‚·‚ª...)
+ pc.hApc.c
+ pc_delitem() C³B
+ npc.cAscript.cAstorage.cApet.c
+ pc_delitem()‚ð‘S‚ÄC³B
+ skill.c
+ skill_produce_mix() C³B
+
+--------------
+//469 by ”g˜Q
+
+Enpc_mob_job.txtAnpc_monster.txtAnpc_monster30.txtAmob_db.txt‚̃‚ƒ“ƒX–¼‚ðC³
+Eitem_db.txt‚̉ñ•œƒAƒCƒeƒ€‚̉ñ•œ—Ê‚ðƒWƒ…ƒm[Œã‚Ì‚à‚Ì‚ÉC³
+
+--------------
+//468 by Kuro
+
+E–‚Œ•»ìƒNƒGƒXƒg’ljÁ
+ conf/npc_event_ma_sword.txt
+
+--------------
+//467 by nini
+
+EBB‚ª—¼ŽèŒ•‚Å‚µ‚©”­“®‚µ‚È‚©‚Á‚½‚Æ‚±‚ëC³¨‚·‚ׂĂ̕Ší‚Å
+EAR‚ª—¼Žè•€‚Å‚µ‚©”­“®‚µ‚È‚©‚Á‚½‚Æ‚±‚ëC³¨•ÐŽè•€A—¼Žè•€A“ÝŠí
+EƒXƒsƒAƒNƒCƒbƒPƒ“”­“®‚ð‘„‚¾‚¯‚É
+EƒLƒƒƒXƒgƒLƒƒƒ“ƒZƒ‹‚³‚ê‚È‚¢‚à‚̂ɃOƒ‰ƒ“ƒhƒNƒƒXAƒ[ƒO‚̃XƒgƒŠƒbƒvƒVƒŠ[ƒY’ljÁ
+EƒuƒŠƒbƒcƒr[ƒg‚ªƒLƒƒƒXƒgƒLƒƒƒ“ƒZƒ‹‚³‚ê‚È‚­‚È‚Á‚Ä‚½“_C³
+ map/skill.c
+ skill_use_id()@C³
+ skill_check_condition()@C³
+E2-2EƒXƒLƒ‹‚̃LƒƒƒXƒgEƒfƒBƒŒƒC’ljÁ
+ db/cast_db.txt
+
+
+--------------
+//466 by hoenny
+
+Eˆ¢C—…”e–PŒC³(ŒöŽ®C³‹y‚Ñ spÁ–Õ‚ª‚·‚®Œ©‚¦‚é‚悤‚É)
+E’~‹C‚ÌŽž‹C’e‚ªŒ©‚¦‚é‚悤‚ÉC³(Mr.NO NAME—l‚̃pƒPî•ñ‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·.‹C’e‚ªÁ‚¦‚éƒpƒPî•ñ‚ª•s‘«‚Å‚·.)
+EƒpƒŠ‚̉H‚âƒeƒŒƒ|[ƒg1‚ð˜A‘±Žg—p‚ÌŽž,ŽIƒI[ƒo[‚ª”­¶‚µ‚È‚¢‚悤‚ɉ¼‰‚ß‚ÅC³
+ doc/client_packet.txt
+ 0x1e1ƒpƒPî•ñ’ljÁ
+ map/battle.c
+ battle_calc_weapon_attack()C³
+ map/clif.h
+ clif_spiritball_cre()’ljÁ
+ clif_spiritball_del()’ljÁ
+ map/clif.c
+ packet_len_table[]C³
+ clif_spiritball_cre()’ljÁ
+ clif_spiritball_del()’ljÁ
+ clif_changemap()C³
+ map/skill.c
+ skill_castend_nodamage_id()C³
+ skill_check_condition()C³
+
+--------------
+//0465 by Ž€_
+
+EƒŠƒUƒŒƒNƒVƒ‡ƒ“‚ƃnƒCƒfƒBƒ“ƒOAƒuƒŠƒbƒcƒr[ƒg‚̃oƒOC³B(ƒuƒŠƒbƒcƒr[ƒg‚Í•ñ‚Í‚È‚©‚Á‚½‚Ì‚Å‚·‚ª•ªÍ‚µ‚½‚ç–â‘肪‚ ‚Á‚½‚Ì‚ÅC³B)
+ skill.c
+ skill_use_id() C³B
+ skill_castend_nodamage_id() C³B
+E0455‚ÌNPC‚ðŒ³‚É–ß‚µ‚Ü‚µ‚½B
+ npc_event_ice.txt C³B
+ npc_event_potion.txt C³B
+ npc_town_geffen.txt C³Bi454‚Ì•¨‚É–ß‚µ‚Ü‚µ‚½Bj
+E0451‚̃¿ƒ}ƒbƒv‚ðƒRƒ}ƒ“ƒgƒAƒEƒg‚µ‚Ü‚µ‚½B•K—v‚È•û‚̓Rƒ}ƒ“ƒgƒAƒEƒg‚ð‚È‚­‚µ‚ÄŽg‚Á‚Ä‚­‚¾‚³‚¢B
+ map_athena.conf C³B
+EƒŠƒUƒŒƒNƒVƒ‡ƒ“‚Í0442‚Ì–â‘è‚ŃnƒCƒfƒBƒ“ƒOAƒuƒŠƒbƒcƒr[ƒg‚Í0445‚Ì–â‘è‚Å‚µ‚½B‚»‚ê‚Æ0445‚ÌC³‚ŃXƒLƒ‹”Ô†‚ðenum‚Å錾‚µ‚½•¶Žš‚É•Ï‚¦‚Ä‚¢‚Ü‚·‚ª‚»‚ê‚É—Ž‚Æ‚µ‚ª‚ ‚é‚悤‚Å‚·B(ƒnƒCƒfƒBƒ“ƒOAƒuƒŠƒbƒcƒr[ƒg‚Í‚»‚Ì‚¹‚¢‚Å‚µ‚½B)‘O‚̔Ԇƒ\[ƒX‚Æ”ä‚ׂĖâ‘肪‚ ‚é•”•ª‚ÍC³‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B‚¿‚å‚Á‚Æ–Ê“|‚Å‚·‚ª...
+
+--------------
+//464 by ”g˜Q
+
+Eƒ‚ƒ“ƒNƒXƒLƒ‹‚Ì•”•ª‚ɂ‚¢‚ÄC³(–¢ŽÀ‘•ƒXƒŒ‚É‘‚©‚ê‚Ä‚¢‚½‚à‚Ì‚ð’ljÁ‚µ‚½‚¾‚¯‚Å‚·B
+ skill.c
+ skill_use_id()C³
+ cast_db.txt
+ ƒ‚ƒ“ƒNƒXƒLƒ‹’ljÁ
+
+--------------
+//463 by ŒÓ’±—–
+
+E462‚̃oƒOC³
+ ENPC‚ÌSHOP‚Ì•s“s‡C³
+ EREADME‚̊ԈႢC³iwarpwaitingpc‚ªwarpwaitingroom‚É‚È‚Á‚Ä‚¢‚½j
+
+ map.h
+ struct npc_data‚Ìchat_id‚̈ʒu‚ðC³
+
+--------------
+//462 by ŒÓ’±—–
+
+ENPCƒ`ƒƒƒbƒgì¬
+ Ewaitingroom–½—ß‚ÅNPCƒ`ƒƒƒbƒg‚ð쬂µ‚Ü‚·B
+ ˆø”‚Í waitingroom "ƒ`ƒƒƒbƒg–¼",§ŒÀl”,ƒCƒxƒ“ƒg–¼ ‚Å‚·B
+ ƒCƒxƒ“ƒg–¼‚Íl”‚ªÅ‘å‚É‚È‚Á‚½‚Æ‚«‚É‹N‚±‚·ƒCƒxƒ“ƒg–¼‚ÅAÈ—ª‰Â”\B
+ Ewarpwaitingpc–½—ß‚ÅAƒ`ƒƒƒbƒg“à‚É‚¢‚éPC‘Sˆõ‚ðƒ[ƒv‚Å‚«‚Ü‚·B
+ ˆø”‚Íwarp‚Æ“¯‚¶‚ÅAwarpwaitingpc "ƒ}ƒbƒv–¼",x,y ‚Å‚·B
+
+ map.h
+ struct npc_data‚Æchat_data‚ðC³
+ script.c
+ buildin_waitingroom(),buildin_warpwaitingpc()’ljÁ
+ chat.c/chat.h
+ FXC³
+ clif.c
+ clif_getareachar_npc()Aclif_joinchatok()‚È‚ÇC³
+
+ENPC‚ÌOnInitƒCƒxƒ“ƒg‚ðƒT[ƒo[‹N“®Žž‚ɌĂԂ悤‚ÉB
+EƒGƒNƒXƒ|[ƒg‚·‚é‚Æ‚«‚ÌNPC–¼‚Æ•\Ž¦ã‚ÌNPC–¼‚ð•ÊX‚ÉÝ’è‰Â”\‚ÉB
+ E“¯‚¶NPC–¼‚̃Cƒxƒ“ƒg‚Íd•¡‚Å‚«‚È‚¢‚½‚ßAƒGƒNƒXƒ|[ƒg—pNPC–¼‚ðŽg‚¢A
+ “¯‚¶NPC–¼‚Å‚à•Ê‚ÌNPC‚Æ‚µ‚ÄŽ¯•Ê‚Å‚«‚é‚悤‚É‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
+ (‚à‚¿‚ë‚ñAƒCƒxƒ“ƒgˆ—‚ðs‚í‚È‚¢ê‡‚Í‚»‚Ì•K—v‚Í‚ ‚è‚Ü‚¹‚ñB)
+ Enpc_*.txt‚Ìscript–½—ß‚ÅNPC‚Ì–¼‘O‚ðÝ’è‚·‚é‚Æ‚«A
+ u•\Ž¦–¼::ƒGƒNƒXƒ|[ƒg–¼v‚Æ‚·‚é‚ÆA•\Ž¦‚·‚é–¼‘O‚ÆAƒCƒxƒ“ƒg—p‚É
+ ƒGƒNƒXƒ|[ƒg‚·‚é–¼‘O‚ð•ÊX‚ÉŽw’è‚Å‚«‚Ü‚·B
+ •\Ž¦–¼‚ª‘S‚­“¯‚¶•ÊX‚ÌNPC‚ŃCƒxƒ“ƒg‚ð“®ì‚³‚¹‚é‚Æ‚«‚ÉŽg—p‚µ‚Ü‚·B
+ E‚â‚₱‚µ‚¢‚Ì‚ÅPVP‚ÌnpcƒXƒNƒŠƒvƒg‚ðŒ©‚ÄƒCƒ[ƒW‚ð’Í‚ñ‚Å‚­‚¾‚³‚¢B
+
+ npc.c/npc.h
+ npc_parse_*()‚ÌC³
+ npc_event_do_oninit(),npc_event_do_oninit_sub()‚ȂǒljÁ
+ map.c/map.h
+ do_init()‚Ånpc_event_do_oninit()‚ðŒÄ‚Ԃ悤‚É
+ struct npc_dataC³
+
+EƒXƒNƒŠƒvƒggetmapusersAgetareausers‚Ì’v–½“I‚ȃoƒOC³
+ EŠY“–ƒ}ƒbƒv‚ª‘¶Ý‚µ‚È‚¢ê‡Aƒ}ƒbƒvƒT[ƒo[‚ª—Ž‚¿‚é‚Ì‚ðC³B
+ Eƒ}ƒbƒv‚ª‘¶Ý‚µ‚È‚¢‚ÆA-1‚ð•Ô‚·‚悤‚É‚µ‚½B
+
+ script.c
+ buildin_getmapusers(),buildin_getareausers()C³
+
+Epvp‚̃XƒNƒŠƒvƒgC³
+ Eƒ`ƒƒƒbƒgƒ‹[ƒ€‚ðì‚é‚悤‚É‚µ‚½
+
+ (conf/)
+ npc_pvproom.txt
+ ‘S‚Ä‚ÌNPC‚̃GƒNƒXƒ|[ƒg–¼(pvp??r)Ý’è
+ OnInit:‚Åwaitingroom‚ðŽÀs‚·‚é‚悤‚É
+
+--------------
+//461 by Kuro
+EƒAƒRƒ‰ƒCƒg“]EƒNƒGƒXƒgˆê•”C³
+ conf/npc_job_aco.txt
+
+--------------
+//460 by sagitarius
+Eitem_db‚̊ԈႢC³
+ 4032,Ambernite_Card,ƒAƒ“ƒo[ƒiƒCƒgƒJ[ƒh,6,20,,10,,2,,,,,32,,,,{},{},,C³
+
+--------------
+//459 by hoenny
+EƒAƒhƒŒƒiƒŠƒ“ƒ‰ƒbƒVƒ…Žg—p‚ÌŽž•€ƒ`ƒFƒbƒN(Ž©•ª‚¾‚¯)
+EOld_Blue_Box‚ÌŠm—¦‚ª‚‚¢‚Æ‚¢‚¤•ñ‚É‚æ‚Á‚ÄC³
+EScript.c‚Í0455ˆÈ‘O‚±‚ƂňøŠ·(NPC‚ð‚±‚±‚ɇ‚킹‚ÄC³‚µ‚Ä‚­‚¾‚³‚¢)
+Eˆ¢C—…”e–PŒC³(ŒöŽ®‚ðC³‚µ‚½‚ñ‚Å‚·‚ª, ³Šm‚©‚Í‚æ‚­•ª‚©‚ç‚È‚¢‚Å‚·‚Ë.)
+EC“¹‘m‚Ì’~‹C,”šŠú‚̉¼ŽÀ‘•.(ˆ¢C—…”e–PŒŽg—p‚ÌŽž’~‹C,”šŠúó‘Ô‚ðƒ`ƒFƒbƒN‚µ‚Ü‚·. )
+EƒyƒRƒyƒR‚Éæ‚Á‚½Œã‚ÉAADPD‚ªŠÔˆá‚Á‚½‚±‚ÆC³(ƒoƒO‚𒼂µ‚Ä‚ ‚°‚½‚ª, ’¼‚·‘O‚±‚Æ‚É•Ï‚í‚邹‚¢‚Å‚Ü‚½C³)
+‚»‚ÌŠO‚É‚àC³‚ð‚µ‚½‚悤‚È‚Ì‚ÉŠo‚¦‚È‚¢‚Å‚·‚Ë.‚»‚µ‚ÄŒë‚Á‚½•”•ª‚ª‚ ‚ê‚ÎŽw“E‚µ‚Ä‚­‚¾‚³‚¢.
+ conf/npc_event_ice.txt
+ checkweightC³
+ conf/npc_town_geffen.txt
+ checkweightC³
+ db/item_purplebox.txt
+ Old_Blue_BoxC³
+ map/battle.c
+ battle_calc_weapon_attack()C³
+ map/pc.c
+ pc_spheal()C³
+ pc_calcstatus()C³
+ map/script.c
+ buildin_checkweight()C³
+ map/skill.h
+ SC_ EXPLOSIONSPIRITS’ljÁ
+ map/skill.c
+ SkillStatusChangeTable[]C³
+ skill_castend_nodamage_id()C³
+ skill_check_condition()C³
+
+--------------
+//458 by Kuro
+EƒAƒRƒ‰ƒCƒg“]EƒNƒGƒXƒg’ljÁ
+ conf/npc_job_aco.txt
+ ‰ï˜b•¶‚ª•ª‚©‚ç‚È‚©‚Á‚½‚Ì‚Å“K“–‚É‚µ‚Ä‚ ‚è‚Ü‚·B‚Ü‚½ANPC‚ÌŠOŒ©‚Ì•Ï‚¦•û‚ª•ª‚©‚ç‚È‚©‚Á‚½‚Ì‚Å“K“–‚É‚µ‚Ä‚ ‚è‚Ü‚·B
+ •ª‚©‚é•û‚ÍC³‚µ‚Ä‚¨‚¢‚ĉº‚³‚¢B
+
+--------------
+//0457 by Kalen
+
+EPVPŠÖ˜A‚ÌNPC’ljÁ
+ conf/npc_pvp.txt
+ conf/npc_pvproom.txt
+
+--------------
+//0456 by Ž€_
+
+Eƒ‚ƒ“ƒXƒ^[‚ÌʼnUŒ‚ŽžŠÔ‚ª’·‚·‚¬‚é–â‘èC³B
+ƒ‚ƒ“ƒXƒ^[‚ÌʼnUŒ‚ŽžŠÔ‚ð¡‚Ü‚Å‚Ímob_db‚ÌaDelay‚ðŽg‚Á‚Ä‚¢‚Ü‚µ‚½‚ª‚±‚ê‚ðaMotion‚É•ÏX‚µ‚Ü‚µ‚½B¡‚Ü‚Å‚Ímob_db‚ÌaMotion‚̓Sƒ~‚Å‚µ‚½‚ª¡“x‚©‚ç‚̓Sƒ~‚Å‚Í‚ ‚è‚Ü‚¹‚ñBaMotion‚³‚¦³‚µ‚¯‚ê‚΃‚ƒ“ƒXƒ^[‚ÌUŒ‚‚̃‚[ƒVƒ‡ƒ“‚Ì‘O‚Ƀ_ƒ[ƒW‚ªo‚Ä‚­‚é–â‘è‚à‚È‚­‚È‚é‚Í‚¸‚Å‚·B
+ mob.c
+ mob_changestate() C³B
+EƒAƒCƒeƒ€‚ð“üŽè‚Å‚«‚È‚¢Žž‚»‚Ì——R‚É“–‚½‚郃bƒZ[ƒW‚ªo‚é‚悤‚É•ÏXB
+ pc.c
+ pc_additem() C³B
+Ejob_db1.txt‚Ì‚Å–â‘è‚É‚È‚Á‚½.‚ð,‚ÉC³B
+
+--------------
+//455 by Mr.NO NAME
+ENPC‚Ƃ̃AƒCƒeƒ€ŒðŠ·‚┃‚¢•¨ŠÖŒW‚ÌScript‚ªo—ˆã‚ª‚Á‚½“–‰‚Ì
+@NPCƒf[ƒ^(npc_event_making.txtAnpc_town_geffen.txt“™)‚Éæ‚ÁŽæ‚èAˆÈ‰º‚ðC³B
+ conf/npc_event_ice.txt
+ npc_event_potion.txt
+ npc_town_geffen.txti454ˆÈ‘O‚Ì•¨‚É–ß‚µ‚Ü‚µ‚½Bj
+ map/script.c
+ buildin_checkweight()‚ðC³B
+
+--------------
+//454 by Kuro
+EƒQƒbƒtƒFƒ“’b–艮‚Å”ƒ‚¢•¨‚ªo—ˆ‚é‚悤‚ÉC³
+ conf/npc_town_geffen.txt
+
+--------------
+//0451 by code
+E ¡X‚Å‚·‚ªƒ¿ƒNƒ‰ƒCƒAƒ“ƒg‚ɑΉž(ƒ¿ƒNƒ‰ƒCƒAƒ“ƒg‚Ìdata.grf‚ðadata.grf‚Æ‚µ‚Ägrf-files.txt‚Ìadata‚Ì‚Æ‚±‚ë‚É‘‚¢‚Ä‚­‚¾‚³‚¢)
+ common/grfio.c
+ grfio_setadatafile()’ljÁ
+ /grfio.h
+ grfio_setadatafile()’ljÁ
+ conf/map_athena.conf
+ ƒ¿ƒNƒ‰ƒCƒAƒ“ƒg‚̃}ƒbƒv‚ð“Ç‚Ýž‚ނ悤‚É•ÏX
+ /npc_warp_a.txt
+ ƒ¿ƒ}ƒbƒv‚̃[ƒvƒ|ƒCƒ“ƒg‚ÌÝ’è(‚¿‚å‚Á‚Æ‚¸‚ê‚Ä‚é‚©‚à)
+ /grf-files.txt
+ ƒ¿ƒNƒ‰ƒCƒAƒ“ƒg‚Ìdata.grf‚ðadata.grf‚Æ‚µ‚Ä“Ç‚Ýž‚ނ悤‚ÉÝ’è
+ adata: ‚É‹Lq
+¦ƒ¿ƒNƒ‰ƒCƒAƒ“ƒg‚Í
+@ttp://www.castledragmire.com/ragnarok/
+@‚ ‚½‚è‚©‚ç“üŽè‚µ‚Ä‚­‚¾‚³‚¢B
+
+--------------
+//0450 by hoenny
+E ‹R•ºC—ûŽÀ‘•
+E ƒRƒ€ƒpƒ‹ƒVƒ‡ƒ“ƒfƒBƒXƒJƒEƒ“ƒgŽÀ‘•
+E ƒfƒBƒXƒJƒEƒ“ƒgEƒI[ƒo[ƒ`ƒƒ[ƒWC³(”‚ª‚‚¢ê‡ŒvŽZ–@‚ªŠÔˆá‚Á‚½‚±‚Ƃ𒼂µ‚Ü‚µ‚½.)
+E “SŒC³(‘fŽè‚ÈŽž‚à“K—p‚³‚ê‚é‚悤‚É)
+E •€C—ûC³(•ÐŽè•€‚ÈŽž‚à“K—p‚³‚ê‚é‚悤‚É)
+E ƒ{ƒ“ƒSƒ“‚ªUŒ‚‚·‚é‚悤‚ÉC³
+ map/pc.c
+ pc_calcstatus()C³
+ pc_modifybuyvalue()C³
+ pc_modifysellvalue()C³
+ map/battle.c
+ battle_addmastery()C³
+ db/mob_db.txt
+ ƒ{ƒ“ƒSƒ“C³
+
+--------------
+//0449 by Ž€_
+
+E•Ï‚É‚È‚Á‚½ŠC³B
+ const.txt
+ bAtk‚ÆbDef ’ljÁB
+ battle.c
+ battle_calc_weapon_attack()‚ðŒ³‚É–ß‚µ‚Ü‚µ‚½B(0445‚Ì•¨)
+ map.h
+ map_session_data‚ðŒ³‚É–ß‚µ‚Ü‚µ‚½B(0445‚Ì•¨)
+ pc.c
+ pc_calcstatus() C³B
+ pc_bonus() C³B
+ item_db.txt‚ðŒ³‚É–ß‚µ‚Ü‚µ‚½B(0446‚Ì•¨)
+
+--------------
+//0448 by hoenny
+E‘‘¬C³(pc_walk()‚©‚ç pc_calcstatus()‚Ɉړ®)
+Eő劎—ÊC³
+ map/pc.c
+ pc_calcstatus()C³B
+
+--------------
+//0447 by ‚䂤
+E“ñ“—¬E–î‚Ì‘®«‚𳂵‚­“K‰ž
+EATK‚Ìオ‚éƒJ[ƒh‚ÌŒø‰Ê‚ð•ŠíƒTƒCƒYC³‚È‚µ‚Ì’êã‚°‚É•ÏX
+EATKEDEF‚Ìオ‚éƒJ[ƒh‚ÌŒø‰Ê‚Ì“K‰ž‚ÌŽd•û‚ð•ÏX
+
+map.h
+ map_session_data‚Écatk(ƒJ[ƒhATK)‚ð’ljÁ
+
+pc.c
+ pc_calcstatus()
+ ƒAƒTƒVƒ“‚Ì“ñ“—¬‚ÌUŒ‚‘¬“x‚ðC³‚µ‚½
+ ƒXƒNƒŠƒvƒg‚É‚æ‚é‘®«‚ð¶‰E³‚µ‚­“K‰ž‚·‚é‚悤‚É‚µ‚½
+ –î‚Ì‘®«‚𳂵‚­“K‰ž‚·‚é‚悤‚É‚µ‚½i‹|‚Ì‘®«—Dæj
+ ‚½‚¾‚µA–‚·‚ׂĂÌUŒ‚‚É“K‰ž‚³‚ê‚Ü‚·
+ ƒJ[ƒhATK‚̈—‚ð’ljÁ‚µ‚½
+
+battle.c
+ battle_calc_weapon_attack()
+ ƒJ[ƒgATK‚ð’êã‚°ƒ_ƒ[ƒW‚Æ‚µ‚ÄŒvŽZ‚·‚é‚悤‚É‚µ‚½
+
+item_db.txt
+ ƒJ[ƒh‚Ì bonus bAtkAbDef ‚ðíœ
+ ‚©‚í‚è‚ÉA‘•”õ‚Æ“¯—l‚ÉATK‚ÆDEF‚ðÝ’è
+ i•ÏX‘O‚ðitem_db2.txt‚Æ‚µ‚Ä‚¢‚é‚Ì‚ÅA•s‹ï‡‚ª‚ ‚ê‚Ζ߂µ‚Ä‚­‚¾‚³‚¢j
+
+
+--------------
+//0446 by hoenny
+Eƒ~ƒXƒgƒŒƒXƒJ[ƒhŽÀ‘•B
+EƒXƒLƒ‹Žg—p‚ÌŽžƒWƒFƒ€ƒXƒg[ƒ“Á”ïB
+EƒXƒLƒ‹Žg—p‚ÌŽž‘•”õƒ`ƒFƒbƒNB(ƒnƒ“ƒ}[ƒtƒH[ƒ‹‚¾‚¯C³‚µ‚悤‚Æ‚µ‚½‚ª...)
+Eƒnƒ“ƒ}[ƒtƒH[ƒ‹‚͈̔͂𠔼Œa5ƒZƒ‹(‘S25ƒZƒ‹)ƒC³
+ map/skill.c
+ skill_check_condition()C³B
+ skill_castend_pos2()C³B
+
+Eƒ~ƒXƒgƒŒƒXƒJ[ƒhC³B
+ db/item_db.txt
+
+--------------
+//0445 by Aya
+
+EŠî–{ASPD‚ÆŒvŽZˆ—‚ðC³B
+ db/job_db1.txt
+ map/pc.c
+ESPŒW”‚ÆŒvŽZˆ—‚ðC³B
+ db/job_db1.txt
+ map/pc.c
+EƒXƒLƒ‹–¼‚ðenum‚Å錾‚µA‚»‚ê‚ðŽg‚¤‚悤‚É•ÏXB
+ map/skill.h
+ map/battle.c
+ map/pc.c
+ map/skill.c
+EƒŠƒJƒoƒŠ[‚̃XƒLƒ‹ID‚ªƒXƒ[ƒ|ƒCƒYƒ“‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ðC³B
+ map/skill.c
+EW’†—ÍŒüã‚ɃJ[ƒhŒø‰Ê‚ª“K—p‚³‚ê‚Ä‚¢‚½–â‘è‚ÌC³B
+ map/pc.c
+EƒŠƒ€[ƒuƒgƒ‰ƒbƒvAƒXƒvƒŠƒ“ƒOƒgƒ‰ƒbƒvAƒ|ƒCƒYƒ“ƒŠƒAƒNƒg‚̃^[ƒQƒbƒg‚ðC³B
+ db/skill_db.txt
+EGMƒAƒJƒEƒ“ƒg‚ðjRO‚Ìclientinfo.xml‚©‚ç’ljÁB
+ conf/GM_account.txt
+EwarningC³B
+ map/party.c
+EƒLƒƒƒ‰ƒZƒŒ”FØŽž‚Élogin_id2‚̓`ƒFƒbƒN‚µ‚È‚¢‚悤‚É•ÏXB
+ login/login.c
+Eobject_def.batˆÈŠO‘Sƒtƒ@ƒCƒ‹‚̉üsƒR[ƒh‚ðLF‚É•ÏXB
+E*.cnfƒtƒ@ƒCƒ‹‚ð*.confƒtƒ@ƒCƒ‹‚É–¼‘O•ÏXB
+
+--------------
+//0444 by Ž€_
+
+EGMƒRƒ}ƒ“ƒh‚â@ƒRƒ}ƒ“ƒh‚ɃRƒ}ƒ“ƒh•Ê‚ÉŽg—pƒŒƒxƒ‹‚ðÝ’è‚Å‚«‚é‚悤‚É•ÏX‚Æ@ƒRƒ}ƒ“ƒh­‚µC³B(@where‚Æ@dayA@night‚ÌC³‚Æ‘¼‚̃Lƒƒƒ‰‚ÉŽg‚¤ƒRƒ}ƒ“ƒh‚Ìê‡GMƒŒƒxƒ‹‚ªŽ©•ªˆÈã‚Ìꇎg‚¦‚È‚¢‚悤‚ÉC³B)
+ atcommand.h C³B
+ atcommand.c C³B
+ clif.c C³B
+ map/makefile C³B
+ map.c
+ do_init() C³B
+ conf/atcommand_athena.cnf ’ljÁB
+Eׂ©‚¢C³B
+ pc.c
+ pc_setghosttimer()Apc_skill() C³B
+ script.c
+ buildin_skill() C³B
+Econf_ref.txt C³B
+Eitem_db.txt
+ ”Þ—‚Ì‘z‚¢C³B
+
+--------------
+//0442 by ŒÓ’±—–
+
+E‘‘¬ƒ|[ƒVƒ‡ƒ“ŽÀ‘•
+ ELv‚âE‹Æ”»’è‚Ís‚¢‚Ü‚¹‚ñ
+
+ (db/)
+ const.txt
+ SC_SpeedPot0,SC_SpeedPot1,SC_SpeedPot2’ljÁ
+ item_db.txt
+ ‘‘¬ƒ|[ƒVƒ‡ƒ“‚̃XƒNƒŠƒvƒg’ljÁ
+ (map/)
+ skill.c
+ skill_status_change_start()C³
+ pc.c
+ pc_calcstatus()C³
+
+EPvPƒVƒXƒeƒ€‚̉¼ŽÀ‘•
+ Epvpƒ}ƒbƒv‚Å‚ÍŽ©“®“I‚ÉAPC‚Ìpvpƒtƒ‰ƒOonA‡ˆÊ’Ê’m‚È‚Ç‚ðs‚¢‚Ü‚·B
+ Eƒ}ƒbƒv‚Épvpƒtƒ‰ƒO‚ð‚‚¯‚éƒTƒ“ƒvƒ‹‚ðnpc_pvp.txt‚Æ‚µ‚Ä“Y•t‚µ‚Ä‚¢‚Ü‚·B
+ Epvp‚ÌÚ‚µ‚¢ƒ‹[ƒ‹‚ª‚æ‚­‚í‚©‚ç‚È‚©‚Á‚½‚Ì‚ÅAŽŸ‚̂悤‚É‚µ‚Ä‚¢‚Ü‚·B
+ Eʼn‚ÌŽ‚¿“_‚Í5“_A“|‚·‚Æ1“_A“|‚³‚ê‚é‚Æ-5“_B
+ E0“_ˆÈ‰º‚ÌPC‚̓ŠƒUƒŒƒNƒVƒ‡ƒ“‚ªŠ|‚©‚ç‚È‚¢
+ EGM‚Ípvpƒ}ƒbƒv‚É‚¢‚Ä‚à‘«Œ³‚ɃT[ƒNƒ‹‚ªoŒ»‚µ‚È‚¢‚悤‚Å‚·B
+ iƒNƒ‰ƒCƒAƒ“ƒg‚ÌŽd—lHj
+ Epvpƒ}ƒbƒv‚Å@pvpoff/@pvp‚·‚é‚Æ‹xŒe‚µ‚½‚èA‹xŒe‚ð‚â‚ß‚½‚è‚Å‚«‚Ü‚·‚ªA
+ Žg—p‚·‚é‚ׂ«‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
+
+ (conf/)
+ npc_pvp.txt
+ pvpƒtƒ‰ƒO‚ð“ü‚ê‚éƒTƒ“ƒvƒ‹B
+ nosaveƒtƒ‰ƒO‚âŽó‚¯•t‚¯npc‚È‚Ç‚ð’ljÁ‚·‚é‚Æ‚æ‚¢‚ÆŽv‚í‚ê‚éB
+ (map/)
+ clif.c
+ clif_parse_LoadEndAck()C³
+ npc.c
+ npc_parse_mapflag()C³
+ skill.c
+ skill_castend_nodamage_id()C³
+ pc.c
+ pc_damage()ˆø”C³
+ atcommand.c
+ pc_damage()ˆø”C³‚É”º‚¤C³
+ battle.c
+
+E‚»‚Ì‘¼C³
+ E@pvpoff/@pvp‚ŇˆÊ‚âƒT[ƒNƒ‹‚Ì•\Ž¦‚ð‚â‚ß‚½
+ E@jumpto‚ŃXƒy[ƒX‚Ì“ü‚Á‚½ƒLƒƒƒ‰ƒNƒ^[‚àŽw’è‚Å‚«‚é‚悤‚É
+ E@kamibƒRƒ}ƒ“ƒh•œŠˆi•¶Žš“V‚̺j
+ E”ñPVP‚Ì‚Æ‚«‚ÉA‘ÎÛ‚ª“G‚̃XƒLƒ‹Žg—pŽžA“G–¡•û”»’è‚ðs‚¤‚悤‚É
+
+ skill.c
+ skill_castend_id()‚Å“G–¡•û”»’è
+ atcommand.c
+ ŠeƒRƒ}ƒ“ƒhC³
+
+--------------
+//0440 by ’†‚Ìl
+
+E–{‰Æ‚ðÄŒ»‚·‚é•ûŒü‚È‚çˆÓ–¡‚Í‚È‚¢‚©‚à‚µ‚ê‚Ü‚¹‚ñ‚ª
+@pc.cuƒXƒNƒŠƒvƒg‚É‚æ‚éƒXƒLƒ‹Š“¾v‚ðŽáŠ±•ÏX‚µ‚Ä
+ ƒJ[ƒh‚É‚æ‚éƒXƒLƒ‹ˆêŽžK“¾‚ÌÛ‚Å‚à1ƒŒƒxƒ‹ˆÈã‚ðÝ’è‚Å‚«‚é‚悤‚É’v‚µ‚Ü‚µ‚½B
+
+@’Pƒ‚É•„†‚ð•Ï‚¦‚Ä‚²‚Ü‚©‚µ‚½‚¾‚¯‚Å‚·‚Ì‚Å
+@•K—v‚É‚ ‚킹‚ÄC³‚ð‚µ‚Ä‰º‚³‚¢B
+
+--------------
+//0439 by hoenny
+Eˆ¢C—…”e–PŒ‚ÌC³B
+ db/skill_db.txt
+Eƒ‚ƒ“ƒXƒ^[î•ñ‚ÌC³B
+ map/clif.c
+EŒ©Ø‚è‚ÌŽÀ‘•B
+ map/pc.c
+
+--------------
+//0438 by ‚`‚Ìl
+EŒÃ–Ø‚ÌŽ}‚ªŽg‚¦‚éꊂð‚m‚o‚bƒXƒNƒŠƒvƒg‚©‚秌ä‰Â”\
+@mapflag‚Énobranch‚Æ‚·‚ê‚΂»‚̃}ƒbƒv‚͌Ö؂̎}Žg—p•s‰Â‚É‚È‚è‚Ü‚·B
+ map.h
+ enum‚ÉMF_NOBRANCH ’ljÁB
+ npc.c
+ npc_parse_mapflag() C³B
+ pc.c
+ pc_useitem() C³B
+ƒ\[ƒX‰˜‚­‚µ‚Ä‚µ‚Ü‚Á‚½‚©‚àEEE.
+•×‹­•s‘«‚Å‚·
+
+--------------
+//0437 by ”g˜Q
+Eitem_db.txt‚̉p–¼‚ð‘å•C³B(s•t‚«‚Æ‚»‚¤‚Å‚È‚¢•Ší‚̉p–¼‚ª‚¢‚‚̊Ԃɂâ‚ç
+@“¯‚¶‚É‚È‚Á‚Ä‚¢‚½‚Ì‚Å‚»‚ê‚𒼂·‚‚¢‚Å‚É‘¼‚Ì•”•ª‚àC³‚µ‚Ü‚µ‚½B
+ ‚Ü‚Á‚½‚­ˆá‚¤–¼‘O‚É‚È‚Á‚Ä‚é‚à‚Ì‚à‚ ‚è‚Ü‚·‚ªA‚±‚Á‚¿‚Ì•û‚ª³‚µ‚¢‚ÆŽv‚¢‚Ü‚·B
+Eitem_purplebox.txt‚ð–{‰ÆŽd—l‚Á‚Û‚­ì¬(‘å‘Ì‚±‚ñ‚ÈŠ´‚¶‚©‚Æ
+EƒAƒ‹ƒxƒ‹ƒ^‚ƃCƒYƒ‹[ƒhNPC‚ðC³
+
+--------------
+//0436 by hoenny
+Emorocc •óΤl‚ÌC³
+ conf/npc_shop.txt
+Eƒnƒ“ƒ}[ƒtƒH[ƒ‹‚ÌŽÀ‘•(AlchemistŽƒ\[ƒX‚ðŽQÆ‚ ‚肪‚Æ‚¤I)
+ map/skill.c
+ˆÈ‘O‚É•¶Žš‰»‚¯‚Í’á‚Ì‚¹‚¢!
+ŽŸ‚©‚ç‹C‚ð•t‚¯‚Ü‚·.
+
+--------------
+//0434 by Avethes
+
+Eƒ^[ƒgƒ‹ƒAƒCƒ‰ƒ“ƒh‚Ös‚­NPCC³
+Eƒ†ƒm[NPCC³
+i‘O‰ñ‚̃oƒO‚Í‚·‚Ý‚Ü‚¹‚ñ‚Å‚µ‚½j
+
+--------------
+//0433 by Ž€_
+
+E»‘¢ƒoƒOC³B
+ ‰½ŒÌ‚©‚Í‚í‚©‚ç‚È‚¢‚ªskill.c‚Ìskill_readdb()‚ª•Ï‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ÅC³B(Ž©•ª‚ª‚â‚Á‚½C³‚Å‚Í‚ ‚è‚Ü‚¹‚ñ‚ª...)
+ skill.c
+ skill_readdb() C³B
+
+--------------
+//0432 by Ž€_
+
+E0429‚ňꕔ‚̃AƒCƒeƒ€‚̃XƒLƒ‹‚ªo‚È‚¢–â‘èC³B
+ clif.c
+ clif_parse_UseSkillToId()Aclif_parse_UseSkillToPos() C³B
+Eskill.c
+ skill_use_id() C³B(‘債‚½C³‚Å‚Í‚È‚¢‚Å‚·B)
+Eitem_db.txt‚Ì•¶Žš‰»‚¯C³BŒ¾Œêݒ肪“ú–{Œê‚Å‚Í‚È‚¢ê‡•Û‘¶‚·‚鎞‚É‚Í‹C‚ð‚‚¯‚Ü‚µ‚傤B
+EUŒ‚‚³‚ꂽƒ‚ƒ“ƒXƒ^[‚Ì”½Œ‚‚ª‘‚·‚¬‚é–â‘èC³BŽn‚ß‚Ä‚ÌUŒ‚‚ªƒ‚ƒ“ƒXƒ^[‚ÌUŒ‚ƒfƒBƒŒƒC‚ÉŠÖŒW‚È‚­100msŒã‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ÅUŒ‚ƒfƒBƒŒƒC‚ɇ‚킹‚é‚悤‚É•ÏXB(‚½‚¾­‚µ”½Œ‚‚ª’x‚¢‚ÆŽv‚í‚ꂽ‚è‚à‚µ‚Ü‚·‚ª...)
+ mob.c
+ mob_changestate() C³B
+EŽI‚ÉÚ‘±‚·‚éÅ‘ål”‚ðŒˆ‚ß‚é‚悤‚É•ÏXB
+ char.c C³B
+ conf_ref.txt C³B
+ char_athena.cnf C³B
+
+--------------
+//0430 by Avethes
+
+E‚m‚o‚bŠÖŒWB‚Ù‚Æ‚ñ‚ǃeƒXƒgB
+–{‰Æ‰ï˜bî•ñ‚ª‘µ‚¦‚ÎC³B
+
+--------------
+//0429 by Ž€_
+
+EƒMƒ‹ƒh‚̃Œƒxƒ‹ƒAƒbƒv‚ðƒLƒƒƒ‰‚̃Œƒxƒ‹ƒAƒbƒv‚̂悤‚É•ÏXB
+ int_guild.c
+ guild_calcinfo() C³B
+ guild_next_exp() ’ljÁB
+ exp_guild.txt C³B(ƒŒƒxƒ‹‚ªã‚ª‚ç‚È‚¢‚悤‚É‚µ‚½‚¢ƒŒƒxƒ‹‚Ìexp‚É0‚ð“ü‚ê‚ê‚΂»‚êˆÈã‚ɃŒƒxƒ‹‚ªã‚ª‚ç‚È‚­‚È‚è‚Ü‚·B)
+EƒXƒNƒŠƒvƒgresetstatusAresetskill ’ljÁB
+ pc.c
+ pc_resetskill() C³B
+ script.c
+ buildin_resetstatus()Abuildin_resetskill() ’ljÁB
+E0425‚Ì‘±‚«‚Å­‚µC³B
+ clif.c
+ clif_parse_ ‚ð­‚µC³B
+EƒVƒ‡[ƒgƒJƒbƒg‚ÉŠo‚¦‚Ä‚¢‚éƒXƒLƒ‹ƒŒƒxƒ‹ˆÈã‚̃XƒLƒ‹‚ª“o˜^‚³‚ê‚Ä‚¢‚Ä‚àŠo‚¦‚Ä‚¢‚éƒXƒLƒ‹ƒŒƒxƒ‹‚܂ł̃XƒLƒ‹‚ðŽg‚¤‚悤‚É•ÏXB
+ clif.c
+ clif_parse_UseSkillToId()Aclif_parse_UseSkillToPos() C³B
+Eƒƒ‚‚Ìő唂ð10ŒÂ‚É•ÏXB(‚ ‚­‚Ü‚Å‚àŠg’£‚ׂ̈̕¨‚Å‚·B‚Ü‚¾‹@”\‚Í‚µ‚Ü‚¹‚ñB)
+ mmo.h
+ struct mmo_charstatus‚Ìmemo_point‚ð3‚©‚ç10‚É•ÏXB
+ char.c
+ mmo_char_tostr() C³B
+Emob,c
+ mob_once_spawn()Amob_summonslave() C³B(•Ê‚ɈӖ¡‚ª‚ ‚éC³‚¶‚á‚ ‚è‚Ü‚¹‚ñ‚ª...)
+E@monster ƒRƒ}ƒ“ƒh‚ÅÀ•W‚ðŽw’肵‚È‚¢Žžƒ‚ƒ“ƒXƒ^[‚ªˆê‚©Š‚ÉW’†‚µ‚Äo‚é‚Ì‚ðƒLƒƒƒ‰‚Ì10*10ƒ}ƒXˆÈ“à‚Ƀ‰ƒ“ƒ_ƒ€‚ÅŒ»‚ê‚é‚悤‚É•ÏXB
+ atcomand.c C³B
+
+--------------
+//0428 by Avethes
+
+Econf/npc_smilegirl.txt
+ ƒXƒ}ƒCƒ‹ƒ}ƒXƒNƒK[ƒ‹ƒXƒNƒŠƒvƒgB
+ 0427‚Ì‚¨‚©‚µ‚¢•”•ª‚Æ‚©C³B
+ ’ñ‹Ÿ‚³‚ꂽŠe“sŽs‚ÌÀ•W‚É”z’uBiNONAME‚³‚ñ’ñ‹Ÿ‚ ‚肪‚Æ‚¤Ij
+
+--------------
+//0426 by ŒÓ’±—–
+
+EƒAƒCƒeƒ€‚Ì–¼‘O‚ðdata.grf‚©‚ç“Ç‚Ýž‚ނ悤‚É‚µ‚½
+ itemdb.c‚ÌITEMDB_OVERRIDE_NAME‚ð’è‹`‚µ‚È‚¯‚ê‚Γǂݞ‚Ý‚Ü‚¹‚ñB
+ ITEMDB_OVERRIDE_NAME_VERBOSE‚Íitemdb.txt‚̃fƒoƒO—p‚É‚Ç‚¤‚¼B
+ •’Ê‚Í•Ï‚¦‚é•K—v‚Í‚È‚¢‚ÆŽv‚¤‚Ì‚Åbattle_config‚É‚Í“ü‚ê‚Ä‚¢‚Ü‚¹‚ñB
+
+ itemdb.c
+ itemdb_read_itemnametable()’ljÁ
+ do_init_itemdb()C³
+
+Eƒf[ƒ^ƒx[ƒX“Ç‚Ýž‚Ý•”‚Ì•sˆÀ’è«‚ÌC³(Œ‹\’v–½“I‚¾‚Á‚½‚Ý‚½‚¢‚Å‚·)
+ ‚È‚­‚Ä‚à–â‘è‚È‚¢DBiitem_value_db.txt‚È‚Çj‚̃tƒ@ƒCƒ‹‚ª‚È‚¢ê‡‚É
+ ŽI‚ª—Ž‚¿‚½‚è‚·‚錻ۂª”­¶‚µ‚Ä‚¢‚½ê‡‚Í‚±‚ê‚Å’¼‚Á‚Ä‚¢‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñ.
+
+ skill.c
+ skill_readdb()‚ÅNULLƒ|ƒCƒ“ƒ^ƒ`ƒFƒbƒN‚ð’ljÁ
+ itemdb.c
+ item_readdb()‚ð•¡”‚É•ª‚¯‚½B
+ ƒ‰ƒ“ƒ_ƒ€ƒAƒCƒeƒ€ƒf[ƒ^ƒx[ƒX‚Ì“Ç‚Ýž‚Ý•”‚ð‚P‚‚ɓZ‚ß‚½B
+ do_init_itemdb()C³
+
+Eׂ©‚¢ƒoƒOC³
+ Eƒ[ƒvƒ|[ƒ^ƒ‹‚ÌŠJ‚­‚Ü‚Å‚Ì•b”’²®
+
+ skill.c
+ skill_unitsetting()C³
+
+E‚»‚Ì‘¼C³iby –^MŽj
+ db/job_db1.txt
+ ‚¿‚傱‚Á‚ÆC³
+ db/job_db2.txt
+ 2-2ŽŸE‚Ì‘«‚è‚È‚¢Jobƒ{[ƒiƒX‚ð’ljÁ(ŽQl:R.O.M 776)
+ conf/npc_town_kafra.txt
+ ƒI[ƒND‘O‚Æ’Yz‘O‚ɃJƒvƒ‰”z’u(“®ì–¢Šm”F)
+ conf/npc_shop3.txt
+ ƒWƒ…[ƒm”Ì”„NPC(E‚¢•¨)
+ conf/npc_town_yuno.txt
+ ƒWƒ…[ƒmNPC(E‚¢•¨‚ð‰ü—ÇB“®ì–¢Šm”F)
+
+--------------
+//0425 by Ž€_
+
+E0419‚Å‘‚«–Y‚ꂽ•¨‚Å‚·‚ªƒXƒLƒ‹ƒ‰[ƒjƒ“ƒOƒ|[ƒVƒ‡ƒ“‚ªSP‰ñ•œƒAƒCƒeƒ€‚É‚àŒø‰Ê‚ª‚ ‚é‚悤‚É•ÏXB
+E¡“x‚̓oƒOC³‚ªƒƒCƒ“‚Å‚·BŽI—Ž‚¿‚ª‚È‚è‚»‚¤‚ÈŠ‚ÌC³‚ƃeƒŒƒ|[ƒg‚ÌŽžŽ€‚ñ‚¾‚܂܈ړ®‚Å‚«‚é–â‘è‚Æ0419‚ŃAƒNƒeƒBƒuƒ‚ƒ“ƒXƒ^[‚ÌæU–â‘èC³AŽ€‚ñ‚Å‚¢‚é‚Ì‚É‘¼‚Ìl‚É‚ÍŽ€‚ñ‚¾‚悤‚ÉŒ©‚¦‚È‚¢–â‘è‚ÌC³‚Å‚·B­‚µƒeƒXƒg‚Í‚µ‚Ü‚µ‚½‚ª–{“–‚ÉŽ¡‚Á‚½‚©‚Ç‚¤‚©‚Í•s–¾‚Å‚·B•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
+ pc.c
+ pc_attack_timer()Apc_damage()Apc_walk() C³B
+ map.c
+ map_quit() C³B
+ mob_db.txt
+ ƒrƒbƒOƒtƒbƒg‚Ìmode‚ðC³(ƒAƒNƒeƒBƒu‚É‚È‚Á‚Ä‚¢‚½ˆ×)
+ clif.c
+ clif_parse_WalkToXY()Aclif_pcoutsight()Aclif_pcinsight()A
+ clif_getareachar_pc()Aclif_getareachar_mob()Aclif_getareachar_pet() C³B
+ mob.c
+ mob_ai_sub_hard_activesearch()Amob_ai_sub_hard_mastersearch()A
+ mob_walk() C³B
+ pet.c
+ pet_walk() C³B
+
+--------------
+//0424 by hoenny
+
+EƒNƒŠƒbƒvƒ{[ƒiƒX SP 10’ljÁ
+ db/item_db.txt
+Ewarp_test_yuno.txt‚ð npc_warp30.txt‚ÉŠÜ‚ñ‚Å, ‚¿‚å‚Á‚ÆC³
+ conf/npc_warp30.txt
+E‘¼‚̃T[ƒo[‚ª—Ž‚¿‚Ä‚à•œ‹Œ‚³‚ê‚é‚悤‚ÉC³
+ /startƒNƒŠƒbƒv
+
+--------------
+//0420 by g—t
+
+EEP 3.0‚ł̃J[ƒhŒø‰Ê•ÏX‚ɉð‚é”͈͂őΉžB
+@‚Ù‚Ú‘S‚Ä‚Ì•ÏX“_‚ɂ‚¢‚ÄAo—ˆ‚éŒÀ‚èC³‚µ‚Ä‚ ‚è‚Ü‚·B
+@ATKC³‚ª³‚µ‚­“K—p‚³‚ê‚Ä‚¢‚é‚悤‚Ȃ̂ŒljÁ‚µ‚Ä‚ ‚è‚Ü‚·B(ƒAƒ“ƒhƒŒC‚È‚Ç)
+
+--------------
+//0419 by Ž€_
+
+E0414‚Å‘‚«–Y‚ꂽ•¨‚Å‚·‚ª MOB‚Ìmode‚Å0x20(32)‚𕜊ˆ‚³‚¹‚Ü‚µ‚½Bƒ{ƒX‚¶‚á‚È‚­‚Ä‚àmode‚É0x20‚ª“ü‚Á‚Ä‚¢‚éꇕ’Ê‚ÌMOB‚Å‚àŽ€‚ñ‚¾‚Ó‚è‚ð”j‚ê‚Ü‚·B
+(¡‚ÌŠ‹@”\‚Í‚»‚ꂾ‚¯‚Å‚·B–{ŽI‚ÍAI‹­‰»‚Ý‚½‚¢‚Å‚·‚ª...) ‚½‚¾ƒS[ƒXƒg‚̓{ƒX‚Å‚à”j‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñB
+‚»‚ê‚ÆŽæ‚芪‚«‚ÌAI‚ÅŽæ‚芪‚«‚ªƒ^[ƒQƒbƒg‚µ‚½ŽžŽå‚ªƒ^[ƒQƒbƒg‚µ‚Ä‚È‚¢‚Ǝ傪Žæ‚芪‚«‚̃^[ƒQƒbƒg‚ðƒ^[ƒQƒbƒg‚·‚é•”•ª‚ðƒRƒ}ƒ“ƒgƒAƒEƒg‚µ‚Ü‚µ‚½B(‚±‚ꂪ–{ŽI‚É‚ ‚Á‚Ä‚¢‚é‚ÆŽv‚¢‚Ü‚µ‚½‚Ì‚Å...)
+EŒÃ‚¢Â‚¢” AŒÃ‚¢Ž‡F‚Ì” AŒÃ‚¢ƒJ[ƒh’Ÿ‚Åo‚éƒAƒCƒeƒ€‚ðƒtƒ@ƒCƒ‹‚ÅÝ’è‚Å‚«‚é‚悤‚É•ÏXB
+ script.c
+ buildin_getitem() C³B
+ item_db.txt
+ ŒÃ‚¢Â‚¢” AŒÃ‚¢Ž‡F‚Ì” AŒÃ‚¢ƒJ[ƒh’ŸC³B
+ item_bluebox.txtAitem_purplebox.txtAitem_cardalbum.txt ’ljÁB(Žg—p—á’ö“x‚Ì•¨‚Å‚·B‚ǂ̃AƒCƒeƒ€‚ªo‚é‚悤‚É‚·‚é‚©‚ÍŽ©•ª‚Åݒ肵‚ÄŽg‚Á‚Ä‚­‚¾‚³‚¢B‚½‚¾ƒNƒ‰ƒCƒAƒ“ƒg‚ð—Ž‚Æ‚·ƒAƒCƒeƒ€‚Ío‚È‚¢‚悤‚Éݒ肵‚Ä‚­‚¾‚³‚¢B)
+ itemdb.h
+ struct random_item_data ’ljÁB
+ itemdb.c
+ itemdb_searchrandomid()Aitemdb_readdb() C³B
+Emob.c
+ mob_target()Amob_ai_sub_hard() C³B(–â‘肪‚ ‚è‚»‚¤‚È•”•ª‚¾‚¯C³B)
+Epc.c
+ pc_itemheal()Apc_walktoxy_sub() C³B
+Eƒyƒbƒg‚ÌoŒ»‚ðMOB‚Æ“¯‚¶‚悤‚É•ÏXB
+ clif.c
+ clif_spawnpet() C³B
+ pet.c
+ pet_change_name() C³B
+E0418‚ð­‚µC³B(if•¶‚ÌðŒ‚ð­‚µC³‚µ‚½‚¾‚¯‚Å‚·B)
+
+--------------
+
+//0418 by hoenny
+E /mm(/mapmove) /nb /b /bb /resetskill /resetstate GM –½—ߌêŽg—p‚̧ŒÀ
+clif_parse_MapMove ,clif_parse_ResetChar ,clif_parse_GMmessage C³
+ map/clif.c
+
+--------------
+//0417 by ‚ê‚ 
+
+E0412‚Åitem_db.txt‚ª‚¨‚©‚µ‚­‚È‚Á‚Ä‚¢‚½‚Ì‚ðC³
+
+--------------
+//0416 by g—t
+
+EƒWƒ…ƒm[Žü•Ó‚̃[ƒv’è‹`‚Æ“G‚Ì”z’uB
+@ƒ[ƒv’è‹`‚Ínpc_warp30.txt‚Æ‚µA’ljÁ‚·‚éŒ`‚É‚µ‚Ä‚ ‚è‚Ü‚·B
+@“G‚Ì”z’u‚ɂ‚¢‚Ä‚ànpc_monster.txt‚Æ‚Í“‡‚¹‚¸Anpc_monster30.txt‚Æ‚µ‚Ä‚ ‚è‚Ü‚·B
+@–â‘肪–³‚¢‚悤‚Å‚ ‚ê‚Γ‡‚µ‚ĉº‚³‚¢B
+Eã‹L’è‹`ƒtƒ@ƒCƒ‹’ljÁ‚É]‚¢map_athena.cnf‚ð•ÏXB
+E@goƒRƒ}ƒ“ƒh‚ÖƒWƒ…ƒm[’ljÁB
+@—v–]‚ª‚ ‚Á‚½‚悤‚Ȃ̂ŒljÁ‚µ‚Ü‚µ‚½B
+
+--------------
+//0415 by ’†‚Ìl
+
+E¡‚Í–S‚«‹ŒROƒGƒ~ƒ…ŽIŠJ”­ƒXƒŒƒbƒh Lv02‚Å‚ÌŽ€_Ž‚Ìà–¾‚É]‚Á‚Ä
+@ƒ‚ƒ“ƒXƒ^[’è‹`ƒf[ƒ^‚ðŽáŠ±•ÏX‚³‚¹‚Ä’¸‚«‚Ü‚µ‚½B
+ E‰ß‹Ž‚Ìnpc_monster.txt‚©‚ç’Êíƒ}ƒbƒvãiƒ‹ƒeƒBƒG“™œ‚­j‚É‚¢‚éƒTƒ“ƒ^ƒ|ƒŠƒ“AƒAƒ“ƒ\ƒj‚ð’Šo‚µ
+ @V‚½‚Éì‚Á‚½unpc_x-masmonster.txtv‚Ɉړ]
+ Eã‹L‚ÌC³‚É‚ ‚킹‚Ämap_athena.cnf‚ðC³B
+ @map_athena‚ɃRƒƒ“ƒgƒAƒEƒgó‘Ô‚Åunpc: conf/npc_x-masmonster.txtv‚ð’ljÁ‚µ‚Ü‚µ‚½B
+ @•K—v‚É‚ ‚킹‚ăRƒƒ“ƒgƒAƒEƒg‚ð‚µ‚Ä‰º‚³‚¢B
+
+--------------
+//0414 by Ž€_
+
+Estrcasecmp‚ðstrcmpi‚É•ÏXB
+Edb‚âÝ’èƒtƒ@ƒCƒ‹‚ð“Ç‚ÞŽž// ‚ðƒRƒ}ƒ“ƒgƒAƒEƒg‚Æ‚µ‚Ä”FŽ¯‚·‚é‚悤‚ÉC³B
+Eƒyƒbƒg‚Æ—£‚ê‚·‚¬‚é‚ƃyƒbƒg‚ª‘‚­“®‚­‚悤‚É•ÏXB(ƒLƒƒƒ‰‚Ì2”{‚Ì‘¬“x‚Å“®‚«‚Ü‚·B)
+Eƒ‹[ƒgƒ‚ƒ“ƒXƒ^[‚ªƒAƒCƒeƒ€‚ðƒ^[ƒQƒbƒg‚µ‚½ŽžUŒ‚‚ðŽó‚¯‚Ä‚àUŒ‚‚µ‚Ä‚±‚È‚¢–â‘èC³B
+E“¯‘°ƒ‚ƒ“ƒXƒ^[‚ÌAI‚ð•ÏXB¡‚Ü‚Å‚Ítraget_id‚ðŽg‚¤‚¹‚¢‚Ń‚ƒ“ƒXƒ^[‚ªUŒ‚‚µ‚½‘ŠŽè‚ðUŒ‚‚·‚éŽd‘g‚Ý‚¾‚Á‚½‚ª¡“x‚Íattacked_id‚ðŽg‚¤ˆ×UŒ‚‚µ‚Ä‚«‚½‘ŠŽè‚ðUŒ‚‚·‚é‚悤‚É•ÏXB
+‚½‚¾¡‚ÌŽd—l‚¾‚Æ“¯‘°ƒ‚ƒ“ƒXƒ^[‚ðUŒ‚‚µ‚Ä“¦‚°‚éê‡UŒ‚‚ðŽó‚¯‚½Žž‚»‚Ìê‚É‚È‚©‚Á‚½ƒ‚ƒ“ƒXƒ^[‚͂‚¢‚Ä—ˆ‚È‚­‚È‚Á‚Ä‚¢‚Ü‚·B–{ŽI‚ÌŽd—l‚É‚ ‚Á‚Ä‚é‚©‚Ç‚¤‚©‚Í•s–¾‚Å‚·‚Ì‚Åî•ñ’ñ‹Ÿ‚ð‚¨Šè‚¢‚µ‚Ü‚·B(attacked_id‚Í‚¢‚Â‚àƒŠƒZƒbƒg‚³‚ê‚éˆ×‚Å‚·B‘Îô‚ª‚¢‚È‚¢‚킯‚Å‚à‚È‚¢‚Å‚·‚ª–{ŽI‚ÌŽd—l‚ð’m‚ç‚È‚¢‚Ì‚Å...)
+Eƒƒ‚ƒŠ[‚ÌŽg—p—Ê‚ðŒ¸‚ç‚·ˆ×struct mob_data‚Æstruct npc_data‚ð•ÏXB(0412‚Å
+map-server‚̃ƒ‚ƒŠ[‚ÌŽg—p—Ê‚ª164???KBytes‚¾‚Á‚½‚ª0414‚Å‚Í152???KBytes‚É‚È‚è‚Ü‚µ‚½B‚Ù‚ñ‚Ì­‚µŒ¸‚Á‚½‚¾‚¯‚Å‚·‚ª‘‚¦‚é‚æ‚è‚Í‚Ü‚µ‚¾‚ÆŽv‚¢‚Ü‚·‚Ì‚Å...)
+EƒS[ƒXƒgƒ^ƒCƒ€ŽÀ‘•B
+ ƒ}ƒbƒvˆÚ“®‚âƒeƒŒƒ|[ƒgA•œŠˆ‚µ‚½Žž‚É“G‚É‘_‚í‚ê‚È‚¢ŽžŠÔ‚ðd—͂ł̓S[ƒXƒgƒ^ƒCƒ€ŒÄ‚ñ‚Å‚¢‚Ü‚·B‚»‚̃S[ƒXƒgƒ^ƒCƒ€‚ÌŽÀ‘•‚Å‚·B
+battle_athena.cnf‚ÅŽžŠÔ‚ðÝ’è‚Å‚«‚Ü‚·BŽžŠÔ‚ð0‚É‚·‚é‚ƃS[ƒXƒgƒ^ƒCƒ€‚Íì“®‚µ‚Ü‚¹‚ñB‚½‚¾‚±‚̃S[ƒXƒgƒ^ƒCƒ€‚ÍUŒ‚s“®AƒXƒLƒ‹Žg—pAƒAƒCƒeƒ€Žg—p‚ð‚·‚é‚Æ‚È‚­‚È‚è‚Ü‚·B
+ char/int_guild.c
+ char/int_party.c
+ conf/battle_athena.cnf
+ db/mob_db.txt
+ doc/conf_ref.txt
+ login/login.c
+ map/atcommand.c
+ map/battle.c
+ map/battle.h
+ map/clif.c
+ map/itemdb.c
+ map/map.c
+ map/map.h
+ map/mob.c
+ map/npc.c
+ map/pc.c
+ map/pc.h
+ map/pet.c
+ map/skill.c ‚ðC³B(db/mob_db.txt‚Í//‚ð“ü‚ꂽ‚¾‚¯‚Å‚·‚ª...)
+ C³‚µ‚½Š‚ð‘S‚ÄŠo‚¦‚Ä‚Ü‚¹‚ñ‚̂Ńtƒ@ƒCƒ‹‚¾‚¯’m‚点‚Ü‚·B
+
+--------------
+//0412 by ‚¢‚Ç
+
+Eƒ‚ƒ“ƒXƒ^[’è‹`ƒf[ƒ^(“ú–{Œê)‚ÌÄ®—
+@ ‹ŒŒfŽ¦”‚Ŏw“E‚Ì‚ ‚Á‚½Ž–€‚ɂ‚¢‚Ä‘å‘͈̂̔͂ÅC³
+ snapshot387‚̃o[ƒWƒ‡ƒ“‚ðƒx[ƒX‚ÉC³‚µ‚Ü‚µ‚½B
+ conf/npc_monster.txt
+
+EƒAƒCƒeƒ€–¼‚Ì’è‹`‚ð‘å•C³
+ (root)
+ item.list
+ (db/)
+ item_db.txt
+ item_value_db.txt
+
+Eƒ}ƒbƒvƒf[ƒ^‚Ì’è‹`‚ŃRƒƒ“ƒgƒAƒEƒg‚µ‚Ä‚¢‚½ƒWƒ…ƒm[ŠÖ˜Aƒ}ƒbƒv‚̃Rƒƒ“ƒgƒAƒEƒg‚ð‰ðœ
+ conf/map_athena.cnf
+
+--------------
+//0411 by Ž€_
+
+EŽIsnapshot‚Å‚·B‚»‚ê‚Ælogin_portAchar_portAmap_port‚Ìݒ肪‚È‚­‚Ä‚à
+ƒfƒtƒHƒ‹ƒg‚Å6900A6121A5121‚ðŽg‚¤‚悤‚É•ÏXB
+Elogin.cAchar.cAchrif.cAclif.c ­‚µC³B
+Econf_ref.txt C³B
+Elogin_port‚ð6900‚©‚瑼‚Ì•¨‚É•Ï‚¦‚½ê‡‚Íclientinfo.xml‚ð•Ï‚¦‚é•K—v‚ª‚ ‚è‚Ü‚·B
+
+--------------
+//0410 by Ž€_
+
+GM—p‰EƒNƒŠƒbƒNƒƒjƒ…[uinamejŽg—pŽÒ‹­§I—¹vŽÀ‘•B(ƒeƒXƒg‚Í‚µ‚Ä‚Ü‚¹‚ñB@ƒRƒ}ƒ“ƒh‚̓eƒXƒgÏ‚Ý‚Å‚·‚ª...)
+0407‚ÌEXP‚ÉŠÖ‚·‚éC³‚É–â‘肪‚ ‚é‚炵‚¢‚Ì‚ÅC³‚µ‚Ü‚µ‚½B¡“x‚̓eƒXƒgÏ‚Ý‚Å‚·B
+GM‚̃AƒJƒEƒ“ƒgID‚ðÝ’è‚Å‚«‚é‚悤‚É•ÏX‚ÆGM‚ðƒŒƒxƒ‹•Ê‚É•ª‚¯‚é‚悤‚É•ÏXB
+(GM‚̃Œƒxƒ‹‚É‚æ‚é@ƒRƒ}ƒ“ƒh“™‚ɧŒÀ‚ð‚©‚¯‚é‚‚à‚è‚Å‚·‚ª¡§ŒÀ‚ª‚©‚¯‚Ä‚¢‚镨‚Í@kickA@kickall‚Ì‚Ý‚É‚È‚Á‚Ä‚¢‚Ü‚·B)
+Epc.c
+ pc_readdb()Apc_gainexp()Apc_nextbaseexp()Apc_nextjobexp()A
+ pc_checkbaselevelup()Apc_checkjoblevelup() C³B
+ pc_isGM()Apc_read_gm_account() ’ljÁB
+Epc.h
+ pc_isGM() C³B
+ pc_read_gm_account() ’ljÁB
+Eexp.txt
+ ƒŒƒxƒ‹‚ªã‚ª‚ç‚È‚¢”’l‚ð999999999‚©‚ç0ˆÈ‰º‚É•ÏXB
+ ƒŒƒxƒ‹‚ðã‚°‚éˆ×‚É•K—v‚ÈEXP‚ð999999999ˆÈã‚É‚·‚邱‚Æ‚à‰Â”\B
+Eclif.c
+ clif_GM_kickack()Aclif_GM_kick()Aclif_parse_GMKick() ’ljÁB
+Eclif.h
+ clif_GM_kickack()Aclif_GM_kick() ’ljÁB
+Eatcomand.c
+ strncmpi‚ðstrcmpi‚É•ÏXB
+ @kickA@kickall ƒRƒ}ƒ“ƒh’ljÁB
+ @kick <ƒLƒƒƒ‰–¼>
+ Ž©•ªˆÈŠO‚̃Lƒƒƒ‰‚ÌÚ‘±‚ð‹­§I—¹‚³‚¹‚éB(Ž©•ª‚æ‚èGMƒŒƒxƒ‹‚ª
+ ’á‚¢ƒLƒƒƒ‰‚É‚µ‚©Žg‚¦‚È‚¢BGM‚Å‚Í‚È‚¢ƒLƒƒƒ‰‚ÌGMƒŒƒxƒ‹‚Í0)
+ @kickall
+ ŽI‚ÉÚ‘±‚µ‚Ä‚¢‚é‘S‚ẴLƒƒƒ‰‚ÌÚ‘±‚ð‹­§I—¹‚³‚¹‚éB(Ž©•ª‚Æ
+ GM‚ðŠÜ‚ß‚Ä) ŽIƒ_ƒEƒ“—p‚̃Rƒ}ƒ“ƒh‚Å‚·BGMƒŒƒxƒ‹‚ª99‚¶‚á‚È‚¢‚Æ
+ Žg‚¦‚È‚¢B
+Econf/GM_account.txt ’ljÁB
+ GM‚Æ‚µ‚Ä”FŽ¯‚·‚éƒAƒJƒEƒ“ƒgID‚ðÝ’è‚·‚éƒtƒ@ƒCƒ‹‚Å‚·B
+Emmo.h
+ DEFAULT_WALK_SPEED‚ð140‚©‚ç150‚É•ÏXB(‚±‚ꂪ–{ŽI‚É‚ ‚Á‚Ä‚é”’l
+ ‚Ý‚½‚¢‚Å‚·‚Ì‚Å...)
+ struct gm_account ’ljÁB
+Eclient_packet.txt
+ ƒpƒPƒbƒg0x00cd ’ljÁB
+Elogin_port‚ðcnf‚œǂނ悤‚É•ÏXB(‚½‚¾6900‚©‚çƒ|[ƒg‚ð•Ï‚¦‚é‚ƃNƒ‰ƒCƒAƒ“ƒg‚ª”FŽ¯‚Å‚«‚È‚¢–Í—l‚È‚Ì‚Å–³‘Ê‚È‚±‚Æ‚¾‚Á‚½‚è‚à‚µ‚Ü‚·‚ª...)
+ char.cAlogin.cAchar_athena.cnfAlogin_athena.cnf C³B
+E•’ʂ̃AƒJƒEƒ“ƒg쬂łÍGM‚É‚È‚ê‚È‚¢‚悤‚Élogin.c‚ð•ÏXB
+Elogin/makefileAmap/makefile C³B
+
+--------------
+//0408 by ŒÓ’±—–
+
+E405‚ÌV‚µ‚¢—ƒRƒ}ƒ“ƒh‚ðˆÈ‘O‚Ìatcommand.c‚ÉŽæ‚èž‚Ý‚Ü‚µ‚½B
+ E@kami‚ðC³
+ E@kill,@recall,@charjob,@revive,@charstats,@charoption,@charsave,
+ @night,@day,@doom,@doommap,@raise,@raisemap,@charbaselvl,@charjlvl
+ ‚ð’ljÁ•ƒƒbƒZ[ƒW‚ð“ú–{Œê‚É•ÏX•­‚µC³
+
+ atcommand.c
+ ’ljÁ‚ÆC³
+
+Eˆê•”‚̃XƒLƒ‹‚ÌŒø‰ÊŽÀ‘•
+ E•sŽ€g‚̃W[ƒNƒtƒŠ[ƒhAƒCƒhƒDƒ“‚Ì—ÑŒçAK‰^‚̃LƒXA
+ ƒtƒŒƒCƒ€ƒ‰ƒ“ƒ`ƒƒ[AƒtƒƒXƒgƒEƒFƒ|ƒ“Aƒ‰ƒCƒgƒjƒ“ƒOƒ[ƒ_[A
+ ƒTƒCƒYƒ~ƒbƒNƒEƒFƒ|ƒ“
+
+ map.h
+ struct skill_unit‚Érange‚ð’ljÁB
+ skill.c
+ FXC³
+ skill.h
+ enum‚ÌC³‚È‚Ç
+--------------
+//0407 by Ž€_
+
+Eƒyƒbƒg‚̃oƒOC³B(‚½‚¾Ž©•ª‚ÅÄŒ»‚Å‚«‚È‚©‚Á‚½‚Ì‚Å–â‘è‚É‚È‚è‚»‚¤‚ÈŠ‚¾‚¯C³‚µ‚Ü‚µ‚½B)
+Eƒyƒbƒg‚̈ړ®‘¬“x‚ðpet_db‚ɒljÁB
+ pet.h
+ struct pet_db‚Éspeed’ljÁB
+ pet.c
+ pet_catch_process2()Aread_petdb() C³B
+ pet_db.txt
+ ˆÚ“®‘¬“x’ljÁB
+ (ƒRƒ}ƒ“ƒgƒAƒEƒg‚µ‚Ä‚¢‚é‚̂̓Wƒ‹ƒ^ƒX‚ƃAƒŠƒX‚Å‚·B•ßŠl—p‚Ì
+ ƒAƒCƒeƒ€‚ª‘¶Ý‚·‚邱‚ƂƃpƒtƒH[ƒ}ƒ“ƒX‚ð‚·‚é‚±‚Æ‚©‚çl‚¦‚Ä
+ ’ljÁ‚³‚ê‚é—\’è‚Ì•¨‚Æl‚¦‚ç‚ê‚Ü‚·B‚½‚¾‚»‚̕ߊl—p‚̃AƒCƒeƒ€‚ª
+ ‚ ‚é‚ƃNƒ‰ƒCƒAƒ“ƒg‚ð—Ž‚¿‚Ü‚·‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B’ljÁ‚µ‚Ä‚à
+ ‘䎌‚̓|ƒŠƒ“‚Ì•¨‚Å‚·‚Ì‚Å... •ßŠl—p‚̃AƒCƒeƒ€ˆÈŠO‚Í“K“–‚É“ü‚ꂽ
+ •¨‚Å‚·B)
+Epc.cAclif.c
+ pc_equipitem() C³B
+ clif_parse_EquipItem() C³B
+ pc_equipitem()‚Ì–¢ŠÓ’èƒAƒCƒeƒ€‚̃`ƒFƒbƒN‚ðclif_parse_EquipItem()‚É
+ ˆÚ“®‚µ‚Ü‚µ‚½B(ƒyƒbƒg‚Ì‘•”õ‚à‚ ‚è‚Ü‚·‚Ì‚Å...)
+EƒŒƒxƒ‹‚ð99ˆÈã‚É‚ ‚°‚é‚悤‚É•ÏX‚ÆE‹Æ•Ê‚Ƀx[ƒXƒŒƒxƒ‹‚ÌŒÀŠEƒŒƒxƒ‹‚ðÝ’è‚Å‚«‚é‚悤‚ÉC³B
+ map.h
+ MAX_LEVEL’ljÁB
+ pc.c
+ pc_nextbaseexp(), pc_nextjobexp() C³B
+ pc_readdb() C³B
+Eexp.txt C³BE‹ÆƒŒƒxƒ‹‚Æ“¯‚¶‚悤‚Ƀx[ƒXƒŒƒxƒ‹‚àEXPƒe[ƒuƒ‹‚ð3‚Âì‚è‚Ü‚µ‚½BƒŒƒxƒ‹ƒAƒbƒv‚ðŽ~‚ß‚½‚¢ƒŒƒxƒ‹‚Ìexp‚ð999999999‚É‚·‚ê‚΂»‚êˆÈヌƒxƒ‹‚ªã‚ª‚è‚Ü‚¹‚ñB‚‚܂ènoviceA1ŽŸE‹Æ‚Æ2ŽŸE‹Æ‚̃x[ƒXƒŒƒxƒ‹‚ÌŒÀŠE‚ðˆá‚¤‚悤‚ÉÝ’è‚Å‚«‚Ü‚·B‚»‚µ‚ăx[ƒXƒŒƒxƒ‹99ˆÈã‚Éオ‚é‚悤‚É‚·‚邱‚Æ‚à‚Å‚«‚Ü‚·B(exp.txt‚ÌC³‚ª•K—v‚Å‚·‚ª–{ŽI‚ƈႤ‚悤‚Éݒ肵‚½‚¢ê‡‚ÉC³‚µ‚ÄŽg‚Á‚Ä‚­‚¾‚³‚¢B)
+E‘®«‚É‚æ‚é‰ñ•œ‚ðbattle_athena.cnf‚ÅÝ’è‚Å‚«‚é‚悤‚É•ÏXB
+ attr_fix.txt C³B
+ battle.h
+ struct Battle_Config‚Éattr_recover ’ljÁB
+ battle.c
+ battle_config_read() C³B
+ battle_athena.cnf C³B
+Econf_ref.txt C³B
+Eclient_packet.txt C³BƒyƒbƒgƒpƒPƒbƒg’ljÁ‚Æ­‚µC³B
+
+--------------
+//0402 by ŒÓ’±—–
+
+E400‚̃oƒO‚ðˆê•”C³
+ EŠ|‚©‚Á‚Ä‚È‚¢ƒXƒLƒ‹Œø‰Ê‚É‚æ‚éƒXƒe[ƒ^ƒXŒvŽZ‚ªs‚í‚ê‚Ä‚µ‚Ü‚¤ƒoƒOC³
+ EŒø‰ÊC³F‚ ‚­‚Ü‚ÅŒø‰Ê‚ÌŒvŽZ‚ÌC³‚ÅAŽg‚¦‚È‚¢ƒXƒLƒ‹‚ÍŽg‚¦‚Ü‚¹‚ñB
+ ƒXƒsƒAƒNƒBƒbƒPƒ“Aƒvƒƒ”ƒBƒfƒ“ƒXA푾ŒÛ‚Ì‹¿‚«A
+ —[—z‚̃AƒTƒVƒ“ƒNƒƒXAŒû“JA•sŽ€g‚̃W[ƒNƒtƒŠ[ƒhA
+ ƒCƒhƒDƒ“‚Ì—ÑŒçAƒT[ƒrƒXƒtƒH[ƒ†[AK‰^‚̃LƒX
+ EŒø‰Ê’ljÁF‚ ‚­‚Ü‚ÅŒø‰Ê‚ÌŒvŽZ‚̒ljÁ‚ÅAŽg‚¦‚È‚¢ƒXƒLƒ‹‚ÍŽg‚¦‚Ü‚¹‚ñB
+ ƒnƒ~ƒ“ƒOAŽ„‚ð–Y‚ê‚È‚¢‚ÅcAƒj[ƒxƒ‹ƒ“ƒO‚ÌŽw—Ö(•ŠíƒŒƒxƒ‹–³Ž‹)A
+ ƒGƒ^[ƒiƒ‹ƒJƒIƒXAƒhƒ‰ƒSƒmƒƒW[
+ EŒø‰Ê•t‰ÁŒn‚Í‚¿‚å‚Á‚Æ‚Å‚à‰ö‚µ‚¢ƒXƒLƒ‹‚Í‘S‚ÄŽg—p‚Å‚«‚È‚¢‚悤‚ÉC³
+ EUŒ‚ŒnƒXƒLƒ‹‚Í‚Ù‚Æ‚ñ‚ÇŒ©‚Ä‚È‚¢‚Ì‚Å‚½‚Ô‚ñƒoƒO‘½‚¢‚Å‚·B
+ E‘S‚Ä–¢ƒeƒXƒg‚Å‚·B‰ö‚µ‚·‚¬‚é•”•ª‚ðC³‚µ‚½‚¾‚¯‚Å‚·B
+
+ map.h
+ MAX_STATUSCHANGE‚ð128‚ÉC³
+ pc.c
+ pc_calcstatus()C³
+ skill.c/skill.h
+ enum‚ðC³
+ skill_status_change_start()C³
+ battle.c
+ battle_calc_weapon_attack()‚È‚ÇC³
+
+--------------
+//0400 by AppleGirl
+
+Can Someone Help Me.
+2-2 Skills added.
+All The Mastery Skills.
+SpearQuicken,Providence
+New Bard Skill Assassin Cross Of Sunset
+Providence
+Frost Joke
+Apple of Idun
+Service For You
+Meteor Strike (Different Style)
+Assassin Cross Of Sunset (not tested)
+All Masteries Done
+Providence
+Musical Strike
+Throw Arrow
+Frost Weapon << (Problems with elements)?
+Flame Launcher << (Problems with elements)?
+Seismic Weapon << (Problems with elements)?
+Lightning Loader << (Problems with elements)?
+Spirit Recovery
+Potion Pitcher (Tato)
+Axe Mastery (Tato)
+Spear Quicken
+Not Totally Working:
+Combo Finish
+Quadruple strike
+Triple Attack
+(skills in skill.c) (need to be finished.)
+CP_ARMOR
+CP_HELM
+CP_SHIELD
+CP_WEAPON
+STRIP_HELM
+STRIP_WEAPON
+STRIP_SHIELD
+STRIP_ARMOR
+
+* “K“–‚Șa–ó *
+2-2ŽŸEƒXƒLƒ‹‚ð’ljÁ‚µ‚Ü‚µ‚½
+‘S‚Ä‚ÌC—ûƒXƒLƒ‹AƒXƒsƒAƒNƒCƒbƒPƒ“Aƒvƒƒ”ƒBƒfƒ“ƒXA
+—[—z‚̃AƒTƒVƒ“ƒNƒƒXi–¢ƒeƒXƒgjAŠ¦‚¢ƒWƒ‡[ƒNAƒCƒhƒDƒ“‚Ì—ÑŒçA
+ƒT[ƒrƒXƒtƒH[ƒ†[AƒƒeƒIƒXƒgƒ‰ƒCƒNi­‚µˆá‚¤jA
+ƒ~ƒ…[ƒWƒJƒ‹ƒXƒgƒ‰ƒCƒNA–‚¿AƒtƒƒXƒgƒEƒFƒ|ƒ“(‘®«‚ª–â‘è‚ ‚èH)
+ƒtƒŒ[ƒ€ƒ‰ƒ“ƒ`ƒƒ[(V)AƒTƒCƒYƒ~ƒbƒNƒEƒFƒ|ƒ“(V)Aƒ‰ƒCƒgƒjƒ“ƒOƒ[ƒ_[(V)
+‘§Aƒ|[ƒVƒ‡ƒ“ƒsƒbƒ`ƒƒ[
+Š®‘S‚É‚Í“­‚©‚È‚¢ƒXƒLƒ‹F
+–Ò—´ŒA—øŠÂ‘Sg¶AŽO’i¶
+(skills in skill.c) (Š®—¹‚³‚ê‚é•K—v‚ª‚ ‚é)
+ƒPƒ~ƒJƒ‹ƒA[ƒ}[ƒ`ƒƒ[ƒWAƒPƒ~ƒJƒ‹ƒwƒ‹ƒ€ƒ`ƒƒ[ƒWA
+ƒPƒ~ƒJƒ‹ƒV[ƒ‹ƒhƒ`ƒƒ[ƒWAƒPƒ~ƒJƒ‹ƒEƒFƒ|ƒ“ƒ`ƒƒ[ƒWA
+ƒXƒgƒŠƒbƒvƒwƒ‹ƒ€AƒXƒgƒŠƒbƒvƒEƒFƒ|ƒ“
+ƒXƒgƒŠƒbƒvƒV[ƒ‹ƒhAƒXƒgƒŠƒbƒvƒA[ƒ}[
+
+*’ˆÓ !! CAUTION !! by ŒÓ’±—–*
+‚±‚Ì400‚ɂ̓oƒO‚ª‘å—Ê‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
+there are many many BUGS in this update(400) !! Be careful !!
+
+--------------
+//0399 by ŒÓ’±—–
+
+EMOBƒXƒLƒ‹Žg—pðŒ‚âs“®‚ðC³
+ E–³s“®MOB‚ª‘Ò‹@Žž‚̃XƒLƒ‹‚ðŽg—p‚Å‚«‚È‚¢–â‘è‚ðC³
+ EðŒƒXƒLƒ‹”½‰ž(skillused)‚ª‚ǂ̃XƒLƒ‹‚É‚à”½‰ž‚µ‚Ä‚¢‚½ƒoƒOC³
+ E”ñˆÚ“®MOB‚ª’ÇŒ‚‚µ‚Ä‚­‚é–â‘è‚ðC³
+
+ mob.c
+ mob_ai_sub_hard()C³
+ mobskill_event()C³
+ mobskill_use()C³
+ skill.c
+ skill_attack()C³
+
+EMOBƒXƒLƒ‹ˆê•”ŽÀ‘•
+ EŽ©Œˆ(ƒGƒtƒFƒNƒg–³‚µ?)AŽ©”šAƒ^ƒoƒR‚ð‹z‚¤A”͈ÍUŒ‚
+ HP‹zŽû‚Q‚Â(’Êí/–‚–@ji‰ñ•œƒGƒtƒFƒNƒg–³‚µ?jŽÀ‘•
+
+ (db)
+ skill_db.txt
+ ƒXƒ‚[ƒLƒ“ƒO‚È‚Ç‚ðC³
+ (map/)
+ skill.c
+ skill_castend_damage_id(),skill_castend_nodamage_id()C³
+ battle.c
+ battle_calc_misc_damage()C³
+
+E–¢ŠÓ’èƒAƒCƒeƒ€‚ª‘•”õ‚Å‚«‚È‚­‚È‚è‚Ü‚µ‚½
+E–¢ŠÓ’èƒAƒCƒeƒ€‚ɃJ[ƒh‚ª‚³‚¹‚È‚­‚È‚è‚Ü‚µ‚½
+
+ pc.c
+ pc_equipitem(),pc_insert_card()C³
+ clif.c
+ clif_use_card()C³
+
+Ebattle_athena.cnf‚ÉMOB‚Ì”z’uŠ„‡‚ð’è‹`‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+ E”z’u”‚ª‚P‚ÌMOB‚ɂ‚¢‚Ä‚Í“K—p‚³‚ê‚Ü‚¹‚ñ
+ EŒvŽZŒã‚Ì”z’u”‚ª‚P–¢–ž‚ÌꇂP‚ÉC³‚³‚ê‚Ü‚·B
+
+ (conf/)
+ battle_athena.cnf
+ mob_count_rate’ljÁ
+ (doc/)
+ conf_ref.txt
+ C³
+ (map/)
+ battle.c/battle.h
+ struct BattleConfig ‚É mob_count_rate ƒƒ“ƒo’ljÁ
+ npc.c
+ npc_parse_mob()‚ÌC³
+
+Eƒ{[ƒŠƒ“ƒOƒoƒbƒVƒ…‚ª‘ŠŽè‚ª‚P•C‚Å‚à‚Æ‚è‚ ‚¦‚¸“–‚½‚é‚悤‚É‚È‚Á‚½B
+
+ skill.c
+ skill_castend_damage_id()C³
+
+EŠw¶–X쬃Cƒxƒ“ƒg‚ÌC³
+
+ (conf/)
+ npc_event_making.txt
+ ƒAƒƒGƒxƒ‰(606)‚ðƒAƒƒG(704)‚ÉB
+
+EƒpƒPƒbƒgî•ñC³
+
+ (doc/)
+ client_packet.txt
+ 0199ƒpƒPƒbƒgC³
+
+--------------
+//0397 by ‚¢‚Ç
+
+Eƒ‚ƒ“ƒXƒ^[’è‹`ƒf[ƒ^(“ú–{Œê)‚Ì®—
+ Enpc_monster25.txt‚ðnpc_monster.txt‚ɃŠƒl[ƒ€‚µA“à—e‚ð®—(Œ»Ýmob”:13450)
+ E‚»‚ÌŒy—ʔłƂµ‚Änpc_monster_lite.txt‚ðì¬(Œ»Ýmob”:11959)
+ Eã‹L‚ÌC³‚É‚ ‚킹‚Ämap_athena.cnf‚ðC³
+
+--------------
+//0395 by ŒÓ’±—–
+
+EŽæ‚芪‚«MOB‚Ìs“®C³
+ EƒAƒ“ƒNƒ‹‚Ȃǂňړ®‚Å‚«‚È‚¢ê‡Žå‚ɋ߂©‚È‚¢‚悤‚ÉC³
+ EƒƒbƒN‚µ‚Ä‚¢‚é‚ÆŽå‚ɋߊñ‚鈗‚ð‚µ‚È‚¢‚悤‚ÉC³
+ EŽå‚ªƒeƒŒƒ|[ƒg‚·‚é‚Æ’Ç‚¢‚©‚¯‚é‚悤‚ÉC³(•t‹ß10x10ƒ}ƒX’ö“x)
+ EŽå‚Ì‚»‚΂ɂ¢‚é‚Æ‚«‚̓‰ƒ“ƒ_ƒ€•às‚ð‚µ‚È‚¢‚悤‚ÉC³
+
+ mob.c
+ mob_ai_sub_hard_mastersearch()C³
+ mob_can_move()’ljÁ
+ mob_ai_sub_hard()C³
+
+EMOB‚Ìs“®C³
+ EƒXƒLƒ‹Žg—pƒfƒBƒŒƒCˆ—‚ª‚¨‚©‚µ‚©‚Á‚½‚Ì‚ðC³
+ E‰r¥‚Ì‚È‚¢ƒXƒLƒ‹‚Ítimer‚ðŽg‚í‚È‚¢‚悤‚ÉC³(Ž€–SŽžˆ—‘Îô)
+
+ mob.c
+ mobskill_use(),mobskill_use_id()C³
+
+EMOBƒGƒ‚[ƒVƒ‡ƒ“‚ÌŽÀ‘•
+ EƒGƒ‚[ƒVƒ‡ƒ“‚ÌŽí—Þ‚ª‚í‚©‚ç‚È‚¢‚à‚Ì‚Í‘S‚Äu!v‚É‚È‚è‚Ü‚·B
+ ”²‚¯‚Ä‚¢‚éƒf[ƒ^‚ð–„‚ß‚Ä‚­‚ê‚é‚Æ‚¤‚ꂵ‚¢‚Å‚·B
+
+ (db/)
+ mob_skill_db.txt
+ ‚¢‚­‚‚©‚ÌMOB‚̃Gƒ‚[ƒVƒ‡ƒ“‚Ì€–Ú‚Ì’l1‚ÉŽí—Þ‚ð“ü‚ꂽB
+
+ (map/)
+ skill.c
+ skill_castend_nodamage_id()C³
+ clif.c/clif.h
+ clif_emotion()’ljÁ
+
+EƒpƒPƒbƒg‰ðÍ.txt‚ðclient_packet.txt‚ɉü–¼•C³
+
+ (doc/)
+ client_packet.txt
+ ƒGƒ‚[ƒVƒ‡ƒ“‚Ìà–¾’ljÁ
+
+E‚Ç‚¤‚â‚çŽæ‚芪‚«MOB‚ÌŽí—ނ͌¢ƒf[ƒ^‚¾‚Á‚½‚Á‚Û‚¢‚Å‚·B
+ ‚µ‚©‚àMOB¢Š«‚ł͎艺¢Š«‚ƈႤMOB‚𢊫‚·‚é‚Ý‚½‚¢‚Å‚·‚ËB
+ Ú‚µ‚¢l‚Ímob_skill_db.txt‚𒼂µ‚Ä‚­‚ê‚é‚ÆB
+
+--------------
+//0393 by ‚¢‚Ç
+
+EcharŽI‚Å‚ÌloginŽI‚̃|[ƒgÝ’è‚ð6900‚ɌŒ肵A•ÏX‚Å‚«‚È‚¢‚悤‚É‚µ‚½
+@(login‘¤‚Ń|[ƒg6900ŒÅ’è‚É‚È‚Á‚Ä‚¢‚½‚Ì‚Åchar‘¤‚à‚»‚ê‚ɇ‚킹‚Ü‚µ‚½B)
+ char/char.c
+ conf/char_athena.cnf
+ doc/conf_ref.txt
+
+--------------
+//0392 by ŒÓ’±—–
+
+EMOB‚Ìs“®C³
+ E‰½ŒÌ‚©last_thinktick‚ª‰Šú‰»‚³‚ê‚Ä‚¢‚È‚¢–â‘èC³
+ Eã‚ÉŠÖ˜A‚µ‚ÄPC‚ª‹ß‚­‚É‚¢‚Ä‚àŽè”²‚«ˆ—‚ªs‚í‚ê‚é–â‘èC³
+ i‚Ç‚¤‚â‚牊ú‚©‚ç‚̃oƒO‚¾‚Á‚½–Í—lH ‚±‚̃oƒO‚ÆA
+ V‚µ‚¢Žè”²‚«ˆ—‚ÌŽd—l‚ªƒ^ƒbƒO‚ð‘g‚ñ‚ÅŽc‘œ‚ðì‚Á‚Ä‚¢‚½–Í—lj
+ EŽæ‚芪‚«MOB—p‚ÌAIˆ—’ljÁi‚Ü‚¾‰ö‚µ‚¢‚Å‚·j
+ EMOB‚̃XƒLƒ‹ƒfƒBƒŒƒC‚ðƒXƒLƒ‹€–Ú‚²‚Æ‚ÉŽ‚‚悤‚É•ÏX
+ EƒXƒLƒ‹ƒfƒBƒŒƒC‚ª‘å‚«‚È€–ڂł̓I[ƒo[ƒtƒ[‚µ‚Ä‚¢‚½–â‘è‚ðC³
+
+ map.h
+ struct mob_data‚Ì skilldelay‚ð”z—ñ‚É‚µ‚Äunsigned int‚É•ÏX
+ mob.h
+ struct mob_skill‚Ìcasttime,delay‚ðint‚É•ÏX
+ mob.c
+ mob_ai_sub_hard_mastersearch()’ljÁ
+ mob_changestate(),mob_delete(),mob_catch_delete(),mob_damage(),
+ mobskill_use(),mobskill_use_id(),mobskill_use_pos(),
+ mobskill_castend_id(),mobskill_castend_pos(),
+ mob_ai_sub_hard(),mob_ai_sub_lazy()‚È‚ÇC³
+
+EMOBƒXƒLƒ‹‚̎艺¢Š«‚ƃ‚ƒ“ƒXƒ^[¢Š«ŽÀ‘•
+ Emob_skill_db.txt‚Ì‘Ž®•ÏXiÅŒã‚É’l‚ð‚P‚’ljÁAŽæ‚芪‚«MOB‚ÌIDj
+ EŽæ‚芪‚«MOB‚ª‚í‚©‚ç‚È‚©‚Á‚½‚à‚̂̓Rƒƒ“ƒg‰»‚µ‚Ä‚¢‚Ü‚·
+ ‚í‚©‚él‚Í“ü—Í‚æ‚낵‚­‚¨Šè‚¢‚µ‚Ü‚·B
+ EŒ»Ý‚ÍŽæ‚芪‚«‚͈ê“x“|‚µ‚½‚畦‚«‚È‚¨‚µ‚Ü‚¹‚ñB
+ Eƒ{ƒX‚ªƒeƒŒƒ|[ƒg‚µ‚Ä‚àŽæ‚芪‚«‚Í’Ç‚¢‚©‚¯‚Ü‚¹‚ñB
+ E–{ŽI‚Å‚Ç‚¤‚È‚Á‚Ä‚é‚Ì‚©’m‚ç‚È‚¢‚Ì‚ÅAŠÔˆá‚Á‚Ä‚éꇂ͋³‚¦‚Ä‚­‚¾‚³‚¢B
+
+ (db/)
+ mob_skill_db.txt
+ Žè‰º¢Š«‚Ȃǂ̃f[ƒ^C³
+
+ (map/)
+ skill.c
+ skill_castend_nodamage_id()C³
+
+--------------
+//0391 by Ž€_
+
+Eƒyƒbƒg‚̈ړ®’†‚ɃpƒtƒH[ƒ}ƒ“ƒX‚ð‚·‚é‚ƃyƒbƒg‚ª’âŽ~‚·‚é‚悤‚É•ÏXB
+ (ƒyƒbƒg‚̈ʒu‚ª‚¸‚ê‚邽‚ßC³‚µ‚Ü‚µ‚½B)
+ pet.c
+ pet_performance() C³B
+EŽ€‚ñ‚¾ƒ‚ƒ“ƒXƒ^[‚Í‚Ç‚ñ‚Ès“®‚à‚Æ‚ê‚È‚¢‚悤‚É•ÏXB(‚±‚ê‚Å–³“G
+ ƒ‚ƒ“ƒXƒ^[‚ª‚¢‚È‚­‚È‚é‚Æ‚¢‚¢‚Å‚·‚ª...)
+ mob.c
+ mob_changestate(),mob_delete(),mob_catch_delete(),mob_damage(),
+ mob_ai_sub_hard(),mob_ai_sub_lazy() C³B
+EPCANPCA°ƒAƒCƒeƒ€‚ªŽg‚¤ID‚͈̔͂𒲮B
+ °ƒAƒCƒeƒ€‚Í0‚©‚ç500000‚Ü‚Å‚ÅPC‚Í500000‚©‚ç100000000ANPC
+ (ƒ‚ƒ“ƒXƒ^[‚ðŠÜ‚ß‚Ä)‚Í110000000‚©‚ç–ñ21‰­‚Ü‚Å‚É‚È‚è‚Ü‚·B
+ (-‚ðŠÜ‚ß‚é‚Æ‚à‚Á‚Ɣ͈͂ªL‚­‚È‚è‚Ü‚·‚ª‚³‚·‚ª‚É‚»‚±‚Ü‚Å‚Í•K—v‚È‚¢‚Æ
+ Žv‚¢‚Ü‚·‚Ì‚Å...)
+ map.h
+ MAX_FLOORITEM ’ljÁ(‚±‚ê‚ð•Ï‚¦‚é‚Æ°ƒAƒCƒeƒ€‚Ìő唂ð•Ï‚¦‚é
+ ‚±‚Æ‚ª‚Å‚«‚Ü‚·B¡‚Í100000‚É‚È‚Á‚Ä‚¢‚Ü‚·B‚½‚¾‚±‚ê‚Í•K‚¸
+ 500000ˆÈ‰º‚É‚µ‚Ä‚­‚¾‚³‚¢B‚»‚¤‚µ‚È‚¢‚Ƴ‚µ‚­“®‚­‚©‚Ç‚¤‚©
+ •ÛØ‚Å‚«‚Ü‚¹‚ñB)
+ map.c
+ map.h‚ɇ‚킹‚Ä­‚µC³B
+ npc.h
+ START_NPC_NUM ’ljÁB
+ npc.c
+ npc.h‚ɇ‚킹‚Ä­‚µC³B
+ login.h
+ START_ACCOUNT_NUM‚ÆEND_ACCOUNT_NUM ’ljÁB
+ login.c
+ login.h‚ɇ‚킹‚ÄC³BEND_ACCOUNT_NUMˆÈã‚Éaccount‚ð
+ ì‚ê‚È‚¢‚悤‚É•ÏXB
+EƒJ[ƒgƒŒƒ{ƒŠƒ…[ƒVƒ‡ƒ“‚É•ŠíŒ¤‹†‚ð‚Q‰ñ“K—p‚·‚é‚悤‚É•ÏXB
+ (Œ‹‹Ç‚ÍŒ³‚É–ß‚·‚±‚Æ‚É‚È‚è‚Ü‚µ‚½...^^;)
+ battle.c
+ Damage battle_calc_weapon_attack() C³B
+Emob‚̃XƒLƒ‹Žg—p‚ðbattle_athena.cnf‚ÅŒˆ‚ß‚é‚悤‚É•ÏXB
+ mob.c
+ mobskill_use() C³B
+ battle.h
+ battle.c
+ struct Battle_Config‚Émob_skill_use’ljÁB
+ battle_athena.cnf
+ mob_skill_use’ljÁB(ݒ肵‚È‚¢‚Æno‚Å‚·B)
+Ebattle_athena.cnf
+ mob‚ð“ñd‚Å“Ç‚ß‚È‚¢‚悤‚Énpc: conf/npc_monster.txt‚ðíœB
+ (ÅV‚Ínpc_monster25.txt‚È‚Ì‚Å...)
+
+--------------
+//390 by ŒÓ’±—–
+
+Eƒo[ƒWƒ‡ƒ“î•ñŠ“¾•”•ª‚ð­‚µ•ÏX
+ EMODƒo[ƒWƒ‡ƒ“‚ð’è‹`‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½BÚׂÍversion.h‚ðB
+ ‹C‚ªŒü‚¢‚½‚Æ‚«‚©A‘å‚«‚ÈXV‚ª‚ ‚é‚Æ‚«‚È‚Ç‚É•ÏX‚µ‚Ä‚­‚¾‚³‚¢B
+ Eƒo[ƒWƒ‡ƒ“checkŽž‚Ìset eofƒƒO‚ªo‚È‚¢‚悤‚ɃpƒPƒbƒg7532’ljÁB
+
+ (common/)
+ version.h
+ MODƒo[ƒWƒ‡ƒ“‚ð’è‹`‚Å‚«‚é‚悤‚ÉB
+ (tool/)
+ checkversion
+ MODƒo[ƒWƒ‡ƒ“‚ð•\Ž¦‚·‚é‚悤‚ÉB
+ (login/char/map)
+ login.c/char.c/clif.c
+ MODƒo[ƒWƒ‡ƒ“‚̈—’ljÁA
+ ƒpƒPƒbƒg7532iØ’fjˆ—’ljÁB
+
+E‚»‚Ì‘¼FXC³
+ E‚±‚Ü‚²‚Ü‚µ‚½C³‚΂©‚è‚Å‚·‚ªA‚ ‚Ü‚èŠo‚¦‚Ä‚¢‚Ü‚¹‚ñB
+ EMOBƒXƒLƒ‹ðŒ‚Åslavelt,attackpcgtˆ—ŽÀ‘•i–¢ƒeƒXƒgjB
+ EMOB‚̎艺¢Š«‚Ì‚½‚ß‚Ì‹@\’ljÁi‚Ü‚¾¢Š«‚Å‚«‚Ü‚¹‚ñjB
+ E”͈̓XƒLƒ‹Œø‰Ê”͈͂Ɏ€–SPC‚ª‚¢‚é‚ÆŽI‚ª—Ž‚¿‚éƒoƒOC³B
+ EMOBŽc‘œ‚ªo‚È‚­c‚È‚Á‚Ä‚½‚ç‚¢‚¢‚ÈB
+
+ (map/)
+ mob.c/mob.h/map.h/battle.c
+ FX’ljÁ
+
+ (db/)
+ mob_skill_db.txt
+ ƒ‹[ƒgŽžˆ—‚ÆA‘®«•ÏXƒXƒLƒ‹‚̃Rƒƒ“ƒg‚ðŠO‚µ‚½B
+ i‘®«•ÏX‚Í–{ŽI‚Å“®‚¢‚Ä‚È‚¢‚炵‚¢‚à‚Ì‚àƒRƒƒ“ƒg‚ðŠO‚µ‚Ä‚Ü‚·B
+ –â‘肪‚ ‚éꇂÍĂуRƒƒ“ƒg‰»‚µ‚Ä‚­‚¾‚³‚¢j
+
+--------------
+//389 by ‚¢‚Ç
+
+E388‚Ì•ÏX
+ ƒo[ƒWƒ‡ƒ“î•ñ‚ðcommon/version.h“à‚̒蔂ðŽg—p‚·‚é‚悤‚É•ÏX
+
+--------------
+//388 by ŒÓ’±—–
+
+Eƒo[ƒWƒ‡ƒ“î•ñŠ“¾ƒc[ƒ‹“Y•t
+ Perl»‚È‚Ì‚ÅŽÀs‚É‚ÍPerl‚ª•K—v‚Å‚·B
+ Žg—p•û–@‚Ȃǂ̓GƒfƒBƒ^‚ÅŠJ‚¢‚ÄŒ©‚Ä‚­‚¾‚³‚¢B
+ Žg‚¢•û‚ª—Ç‚­‚í‚©‚ç‚È‚¢l‚ÍŽè‚ðo‚³‚È‚¢‚Ù‚¤‚ª‚¢‚¢‚Å‚·B
+
+ ƒo[ƒWƒ‡ƒ“‚ðŠm”F‚·‚é—p“r‚æ‚è‚ÍAƒT[ƒo[‚̶‘¶Šm”F—p‚Æ‚¢‚Á‚½‚©‚ñ‚¶‚Å‚·
+ ƒpƒPƒbƒg7530/7531‚ÌÚׂ̓\[ƒX‚ðŒ©‚Ä‚­‚¾‚³‚¢B
+
+ (tool/)
+ checkversion
+ ƒo[ƒWƒ‡ƒ“Šm”Fƒc[ƒ‹PerlƒXƒNƒŠƒvƒg
+
+ (login/)
+ login.c
+ ƒpƒPƒbƒg7530/7531‚̈—’ljÁ
+ (char/)
+ char.c
+ ƒpƒPƒbƒg7530/7531‚̈—’ljÁ
+ (map/)
+ clif.c
+ ƒpƒPƒbƒg7530/7531‚̈—’ljÁ
+
+E384ˆÈ‘O‚Ìathena.txt‚à“Ç‚Ýž‚ß‚é‚悤‚É‚µ‚Ü‚µ‚½
+ Econvert‚ª–Ê“|‚ÈlŒü‚¯B
+ E³‚µ‚­“Ç‚Ýž‚ß‚é•ÛØ–³‚µBƒoƒbƒNƒAƒbƒv‚ð–Y‚ꂸ‚ÉB
+
+ (char/)
+ char.c
+ 384‚Ì•ûŽ®‚Å“Ç‚Ýž‚ß‚È‚¢ƒf[ƒ^‚Í384ˆÈ‘O‚Ì•ûŽ®‚àŽŽ‚·‚悤‚ÉB
+
+Econf_ref.txt/help.txt/getaccountC³
+ help.txt
+ petƒRƒ}ƒ“ƒh‚Ìà–¾’ljÁ
+ (doc/)
+ conf_ref.txt
+ petŠÖ˜A‚ÌÝ’è‚Ìà–¾’ljÁ
+ (tool/)
+ getlogincount
+ •\Ž¦‚ÌC³
+
+--------------
+//387 by ‚¢‚Ç
+EconfƒtƒHƒ‹ƒ_“à‚ÌNPC’è‹`ƒf[ƒ^‚Ì®—
+ ˆÈ‰º‚̃tƒ@ƒCƒ‹‚ð휂µ‚Ü‚µ‚½
+ npc_kafraJ.txt
+ npc_mind_prtmons.txt
+ npc_script2J.txt(npc_event_mobtim.txt‚É“¯‚¶‚à‚Ì‚ª‚ ‚Á‚½‚½‚ß)
+ npc_testJ.txt(‚Ù‚Ú“¯‚¶‚±‚Æ‚ª@ƒRƒ}ƒ“ƒh‚Åo—ˆ‚邽‚ß)
+ npc_warp25.txt(npc_warp.txt‚É“‡)
+
+ ˆÈ‰º‚̃tƒ@ƒCƒ‹‚Ì–¼‘O‚ð•ÏX‚µ‚Ü‚µ‚½
+ npc_monster3.txt -> nop_monster2E.txt
+ npc_monster3J.txt -> npc_monster25.txt
+ npc_monster.txt -> npc_monsterE.txt
+ npc_monsterJ.txt -> npc_monster.txt
+ npc_sampleJ.txt -> npc_sample.txt
+ npc_script3j.txt -> npc_script2.txt
+ npc_script25J.txt -> npc_town_lutie.txt
+ npc_shop1J.txt -> npc_shop_test.txt
+ npc_shop2J.txt -> npc_shop_mobtim.txt
+ npc_shop3J.txt -> npc_shop2.txt
+ npc_shop.txt -> npc_shopE.txt
+ npc_shopJ.txt -> npc_shop.txt
+ npc_testJ.txt -> npc_test.txt
+ npc_warp3.txt -> npc_warp2.txt
+ npc_warp4.txt -> npc_warp25.txt
+
+Eƒ}ƒbƒv’è‹`‚̒ljÁ
+ ƒWƒ…ƒm[ƒAƒbƒvƒf[ƒg‚ŒljÁ‚³‚ê‚éƒ}ƒbƒv‚ÆAŠØŽI“ÆŽ©(?)‚̃NƒCƒYƒ][ƒ“
+ (ƒRƒ‚ƒhƒAƒbƒvƒf[ƒg)‚Æ“V’ÃAƒbƒvƒf[ƒg‚̃}ƒbƒv’è‹`‚ð’ljÁ
+ Œ»ÝA“úˆÆ‚É–³‚¢‚à‚Ì‚ÉŠÖ‚µ‚Ă̓Rƒƒ“ƒgƒAƒEƒg‚µ‚Ä‚¢‚ÜB
+ conf/map_athena.cnf
+
+--------------
+//385 by ŒÓ’±—–
+
+EMOB‚Ìs“®C³
+ EŽè”²‚«ˆ—‚ňړ®‚µ‚È‚¢ƒ‚[ƒh‚ÌMOB‚à•à‚­–â‘èC³
+ EMOB‚ð“|‚µ‚½‚Æ‚«AÄspawnŽž‚ª‚¨‚©‚µ‚È’l‚É‚È‚éꇂª‚ ‚é–â‘èC³
+ iMOB‚ª•¦‚©‚È‚­‚È‚é–â‘肪C³‚³‚ꂽ‚Í‚¸j
+ EMOB‚̃[ƒv‚ÅꊌŸõ‚É1000‰ñŽ¸”s‚µ‚½‚猳‚ÌꊂÉo‚é‚悤‚ÉC³
+ EMOB‚ð‰r¥’†‚É“|‚·‚ÆAƒ^ƒCƒ}[‚ð휂·‚é‚悤‚ÉC³
+
+ mob.c
+ mob_delete(),mob_catch(),mob_damage(),
+ mob_ai_sub_lazy(),mob_ai_sub_hard()‚È‚ÇC³
+ mobskill_deltimer()’ljÁ
+
+--------------
+//0384 by Ž€_
+
+EƒyƒbƒgŽÀ‘•B
+Žv‚Á‚½‚æ‚è’·‚­‚©‚©‚è‚Ü‚µ‚½BˆêŽü‚à‚©‚©‚Á‚½‚¹‚¢‚ʼn½ˆ‚ðC³‚µ‚½‚©
+Šo‚¦‚Ä‚È‚¢–â‘肪‚ ‚è‚Ü‚·‚ª... ‚»‚ê‚Å”O‚ׂ̈Émap‚Æchar‚̃tƒ@ƒCƒ‹‚Í‘S‚Ä
+ŠÜ‚߂ăAƒbƒv‚µ‚Ü‚·B
+‚»‚ê‚Æmakefile‚Æathena.sh‚ÍŽ©•ª‚ªŽg‚Ä‚¢‚镨‚Å‚·B
+Yare-launcher‚ÍŽg‚Ä‚Ü‚¹‚ñ‚ª‚¢‚‚àŽI‚ÌŽÀsƒtƒ@ƒCƒ‹‚ÅŽÀs‚µ‚Ä‚¢‚Ü‚·‚Ì‚Å...
+ char/char.cAchar/char.hAchar/inter.cAchar/makefile C³B
+ char/int_pet.cAchar/int_pet.h ’ljÁB
+ map/makefile C³B
+ map/intif.cAmap/intif.hAmap/map.cAmap/map.hAmap/mob.cAmap/mob.hA
+ map/npc.cAmap/npc.hAmap/battle.cAmap/battle.hAatcomand.cAmap/pc.cA
+ map/clif.cAmap/clif.hAmap/script.c FXC³B
+ map/pet.cAmap/pet.h ‚Í–w‚Ç‚ðŽ©•ª‚Ì•¨‚É‘‚«Š·‚¦‚Ü‚µ‚½B
+ common/mmo.h C³B
+ db/pet_db.txt C³B
+ db/item_db.txt C³B(Œg‘Ñ—‘›z‰»‹@‚Ìbpet ƒXƒNƒŠƒvƒg‚ª”²‚¯‚Ä‚¢‚½‚Ì‚Å
+ “ü‚ꂽ‚¾‚¯‚Å‚·‚ª...)
+ doc/INTERŽIƒpƒPƒbƒg.txt‚Ì–¼‘O‚ðinter_server_packet.txt‚É•ÏX‚ƃyƒbƒg‚Ì
+ •Û‘¶“™‚ÉŽg‚¤ƒpƒPƒbƒg‚ð’ljÁB
+* ¡“x‚̃yƒbƒgŽÀ‘•‚É‚æ‚èƒLƒƒƒ‰ƒtƒ@ƒCƒ‹‚Ì\‘¢‚ª•Ï‚í‚èˆÈ‘O‚Ì•¨‚ƌ݊·‚Å‚«‚È‚¢
+ ‚Ì‚Å tool/convert.c ‚ð’ljÁ‚µ‚Ü‚µ‚½B
+ ’P“ƂŃRƒ“ƒpƒCƒ‹‚Å‚«‚Ü‚·‚̂ŃRƒ“ƒpƒCƒ‹‚µ‚½‚ ‚ÆŽÀs‚µ‚ăLƒƒƒ‰
+ ƒtƒ@ƒCƒ‹‚ð•ÏŠ·‚µ‚Ä‚­‚¾‚³‚¢B‚»‚¤‚µ‚È‚¢‚ƃLƒƒƒ‰‚ª‘S•””ò‚Ñ‚Ü‚·‚Ì‚Å...
+* ƒyƒbƒg‚Ìe–§“x‚ª0‚É‚È‚é‚ƃyƒbƒg‚Í‚»‚Ìê‚Å“®‚¯‚È‚­‚È‚è‚»‚Ìó‘Ô‚Å‘¼‚Ì
+ ƒ}ƒbƒv‚Ɉړ®‚·‚é‚©I—¹‚·‚é‚ƃyƒbƒg‚ÍÁ–Å‚µ‚Ü‚·Bˆê‰žƒyƒbƒg‚Ì“¦‘–‚ð
+ ŽÀ‘•‚·‚é‚‚à‚è‚Åì‚Á‚½‚Ì‚Å‚·‚ª–{ŽI‚É‚ ‚Á‚Ä‚é‚©‚Ç‚¤‚©‚Í‚í‚©‚è‚Ü‚¹‚ñB
+* ˆÚ“®‘¬“x‚ª’x‚¢ƒyƒbƒg‚Ìꇗ£‚ê‰ß‚¬‚é‚Ƃ‚¢‚Ä—ˆ‚ê‚È‚­‚È‚è‚Ü‚·B‚Å‚à
+ ‚±‚Ìꇃ}ƒbƒv‚ðˆÚ“®‚µ‚Ä‚à‚¿‚á‚ñ‚Ƃ‚¢‚Ä—ˆ‚Ü‚·B
+ Á–Å‚µ‚½‚è‚Í‚µ‚Ü‚¹‚ñB
+* ˆÚ“®‘¬“x‚ª‘¬‚¢ƒyƒbƒg‚̓Lƒƒƒ‰‚æ‚èæ‚Ɉړ®‚µ‚Ü‚·B–{ŽI‚Ì•û‚ª‚Ç‚¤‚È‚Ì‚©
+ ‚í‚©‚ç‚È‚¢‚̂Ńyƒbƒg‚̈ړ®‚̓‚ƒ“ƒXƒ^[‚̈ړ®‘¬“x‚ňړ®‚·‚é
+ ‚悤‚É‚µ‚Ü‚µ‚½B
+Ebattle_athena.cnf
+pet_catch_rate ’ljÁB
+ ƒyƒbƒg‚̕ߊl”{—¦‚ðݒ肵‚Ü‚·B(ݒ肵‚È‚¢‚Æ100)
+ Šî–{“I‚Ƀyƒbƒg‚̕ߊl‚ÉŽg‚Á‚Ä‚éŒöŽ®‚Í
+ (pet_db.txt‚̕ߊl—¦ + (ƒLƒƒƒ‰ƒŒƒxƒ‹ - ƒ‚ƒ“ƒXƒ^[ƒŒƒxƒ‹)*0.3 + luk *0.2)
+ * (2 - ƒ‚ƒ“ƒXƒ^[‚ÌŒ»ÝHP/ƒ‚ƒ“ƒXƒ^[‚ÌÅ‘åHP)
+ ‚É‚È‚è‚Ü‚·BŽ©•ª‚È‚è‚Éì‚Á‚½•¨‚Å‚·‚Ì‚Å–{ŽI‚Æ‚Í‚©‚È‚è‚Ì
+ ˆá‚¢‚ª‚ ‚é‚©‚à’m‚ê‚Ü‚¹‚ñB(ƒ‚ƒ“ƒXƒ^[‚ÌHP‚ðŒ¸‚ç‚¹‚ÎŒ¸‚ç‚·’ö•ßŠl—¦‚ª
+ オ‚éŽd‘g‚Ý‚Å‚·‚ª...)
+pet_rename ’ljÁB
+ ƒyƒbƒg‚Ì–¼‘O‚ð•ÏX‚·‚é‚©‚Ç‚¤‚©‚ðŒˆ‚ß‚Ü‚·B(ݒ肵‚È‚¢‚Æno)
+ yes‚͉½“x‚Å‚à–¼‘O‚Ì•ÏX‚ª‰Â”\B
+ no‚͈ê“x•ÏX‚·‚é‚Æ‚à‚¤•ÏX•s‰Â”\‚É‚È‚é
+pet_hungry_delay_rate ’ljÁB
+ ƒyƒbƒg‚Ì• ‚ªŒ¸‚鎞ŠÔ‚Ì”{—¦‚Å‚·B(ݒ肵‚È‚¢‚Æ100)
+ ”{—¦‚ª‚‚¢‚Æ• ‚ªŒ¸‚è“ï‚­‚È‚è‚Ü‚·
+mvp_exp_rate •ÏXB
+ ‚·‚Å‚Éstruct mob_db‚Ìmexpper‚̓Sƒ~‚É‚È‚Á‚Ä‚¢‚é‚Ì‚Å(MVP EXP‚Í
+ MVPƒAƒCƒeƒ€‚ªŽæ‚ê‚È‚©‚Á‚½ê‡“ü‚é‚̂ňӖ¡‚ª‚ ‚è‚Ü‚¹‚ñB)
+ MVP EXP‚Ì—Ê‚Ì”{—¦‚É‚È‚é‚悤‚É•ÏXB(mob.c‚ðC³)
+Echar_athena.cnf
+autosave_time ’ljÁB
+ Ž©“®•Û‘¶‚·‚鎞ŠÔ‚ðŒˆ‚ß‚Ü‚·B(ݒ肵‚È‚¢‚Æ300)
+ šdˆÊ‚Í•b‚Å‚·B(ƒtƒ@ƒCƒ‹‚É•Û‘¶‚·‚鎞ŠÔ‚ÌŠÔŠu‚Å‚·B)
+Emap_athena.cnf
+autosave_time ’ljÁB
+ Ž©“®•Û‘¶‚·‚鎞ŠÔ‚ðŒˆ‚ß‚Ü‚·B(ݒ肵‚È‚¢‚Æ60)
+ šdˆÊ‚Í•b‚Å‚·B(ƒLƒƒƒ‰ŽI‚Ƀf[ƒ^‚𑗂鎞ŠÔ‚ÌŠÔŠu‚Å‚·B‚±‚ê‚Í
+ ƒtƒ@ƒCƒ‹‚É•Û‘¶‚·‚鎞ŠÔ‚ÌŠÔŠu‚¶‚á‚ ‚è‚Ü‚¹‚ñB)
+Einter_athena.cnf
+pet_txt ’ljÁB
+ ƒyƒbƒg‚̃f[ƒ^‚ð•Û‘¶‚·‚éƒtƒ@ƒCƒ‹‚ðŒˆ‚ß‚Ü‚·B(ݒ肵‚È‚¢‚Æpet.txt)
+E@makepet ƒRƒ}ƒ“ƒh’ljÁB
+ ƒyƒbƒg‚ÌŽÀ‘•‚É‚æ‚Á‚Ä@item‚Åì‚Á‚½—‘‚ÍŽg‚Á‚Ä‚à–³‘Ê‚É‚È‚è‚Ü‚·‚Ì‚Å
+ ‚±‚ê‚ðŽg‚Á‚Ä—‘‚ðì‚Á‚Ä‚­‚¾‚³‚¢B
+ @makepet <ƒ‚ƒ“ƒXƒ^[‚ÌID or —‘‚ÌID>
+E@petfriendly ƒRƒ}ƒ“ƒh’ljÁB
+ @petfriendly <”Žš>
+ ƒyƒbƒg‚ð˜A‚ê‚Ä‚¢‚鎞‚Ƀyƒbƒg‚Ìe–§“x‚ð•ÏXB(0~1000)
+E@pethungry ƒRƒ}ƒ“ƒh’ljÁB
+ @pethungry <”Žš>
+ ƒyƒbƒg‚ð˜A‚ê‚Ä‚¢‚鎞‚Ƀyƒbƒg‚Ì–ž• “x‚ð•ÏXB(0~100)
+E@petrename ƒRƒ}ƒ“ƒh’ljÁB
+ @petrename
+ ƒyƒbƒg‚ð˜A‚ê‚Ä‚¢‚鎞‚Ƀyƒbƒg‚Ì–¼‘O‚ð•ÏX‚Å‚«‚é‚悤‚É•ÏXB
+Eint_guild.cAint_party.c “Ç‚Ýž‚Þƒtƒ@ƒCƒ‹‚ɃGƒ‰[‚ª‚ ‚Á‚Ä‚àƒvƒƒOƒ‰ƒ€‚ð
+ I—¹‚¹‚¸‚Éi‚ނ悤‚É•ÏXB
+Epc_walk 123 != 1234 “™‚̃Gƒ‰[‚ªo‚È‚¢‚悤‚É
+ if((i=calc_next_walk_step(sd))>0) {
+ sd->walktimer=add_timer(tick+i/2,pc_walk,id,sd->walkpath.path_pos);
+ ‚ð
+ if((i=calc_next_walk_step(sd))>0) {
+ i = i/2;
+ if(i <= 0)
+ i = 1;
+ sd->walktimer=add_timer(tick+i,pc_walk,id,sd->walkpath.path_pos);
+ ‚̂悤‚É•ÏX‚µ‚Ü‚µ‚½B
+ tick‚ª“¯‚¶”’l‚É‚È‚é‚Ì‚ð–h‚¢‚½‚Ì‚Å‚·‚ª‚±‚ê‚Å‚Ç‚ñ‚ȉe‹¿‚ªo‚é‚©‚Í
+ ‚³‚Á‚Ï‚è‚í‚©‚è‚Ü‚¹‚ñB
+ pc.cAmob.c‚ðC³B
+ ‚Å‚à‚±‚ÌC³‚ð‚µ‚Ä‚à˜A‘±‚ŃNƒŠƒbƒN‚µ‚½‚è‚·‚é‚ƃLƒƒƒ‰‚ª‚µ‚΂炭
+ Ž~‚Ü‚é‚悤‚Å‚·B(ƒyƒbƒg‚Ì‚¹‚¢‚ÆŽv‚¢‚Ü‚µ‚½‚ªƒyƒbƒg‚ª‚È‚­‚Ä‚à
+ “¯‚¶‚¾‚Á‚½‚Ì‚Å‘¼‚ÌŒ´ˆö‚©‚Æ...)
+* doc/code_ref.txt‚Æhelp.txt‚Í–Ê“|‚­‚³‚¢‚Ì‚ÅC³‚µ‚Ä‚Ü‚¹‚ñB
+Egm_all_skill: yes‚Å2-2‚̃XƒLƒ‹‚à•\Ž¦‚³‚ê‚é‚悤‚É•ÏXB(ŽŽ‚¢‚¹‚Í‚¢‚Ü‚¹‚ñ‚ª...)
+ pc.c
+ pc_calc_skilltre() C³B
+EƒJ[ƒgƒŒƒ{ƒŠƒ…[ƒVƒ‡ƒ“‚̃_ƒ[ƒWŒvŽZ‚ðC³B
+ •ŠíŒ¤‹†‚ð“ñdŒvŽZ‚µ‚Ä‚¢‚½‚Ì‚ÅC³B
+ battle.c
+ Damage battle_calc_weapon_attack() C³B
+
+--------------
+//381 by ŒÓ’±—–
+
+EMOB‚Ìs“®C³
+ EPC‚Ì‚¢‚È‚¢ƒ}ƒbƒv‚ÌMOB‚ÍŽžXƒ[ƒv‚·‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+ EPC‚Ì‚¢‚éƒ}ƒbƒv‚ÌMOB‚Í•à‚­ˆÈŠO‚ÉAŽžX•¦‚«’¼‚·‚悤‚É‚È‚è‚Ü‚µ‚½
+ i‚±‚ê‚Ü‚½ƒpƒtƒH[ƒ}ƒ“ƒX‚ɉe‹¿‚ª‚ ‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñF­‚µd‚­‚È‚é‚©‚àj
+ EŽè”²‚«ˆ—‚ŃuƒƒbƒN‚Ì—LŒø”»’è‚ðs‚¤‚悤‚É‚µ‚Ü‚µ‚½
+ iHP–³ŒÀMOB–â‘èC³Hj
+ Eƒ‹[ƒgŽžƒXƒLƒ‹Žg—p‹@\ŽÀ‘•
+
+ mob.c/mob.h
+ mob_ai_sub_lazy(),mob_ai_sub_hard()C³
+ MSS_LOOT’ljÁ,mob_readskilldb()C³
+
+EMOBƒXƒLƒ‹‚Ì‘®«•ÏX‚ðŽÀ‘•‚µ‚Ü‚µ‚½B
+
+ map.h
+ struct mob_data‚É def_eleƒƒ“ƒo’ljÁ
+ mob.c
+ mob_spawn()‚Ådef_ele‚ðƒZƒbƒg‚·‚é‚悤‚É•ÏX
+ battle.c
+ battle_get_element()‚Ådef_ele‚ð“ǂނ悤‚É•ÏX
+ skill.c
+ skill_castend_nodamage_id()C³
+
+EƒNƒ@ƒOƒ}ƒCƒA‚ÌŒø‰Ê”͈͂©‚ço‚é‚ÆŒø‰Ê‚ªØ‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+
+ skill.c
+ ƒ†ƒjƒbƒgŒnˆ—C³
+
+--------------
+//380 by ‚`‚Ìl
+
+EƒJ[ƒgƒŒƒ”ƒHƒŠƒ…[ƒVƒ‡ƒ“‚̃_ƒ[ƒWŒvŽZŽÀ‘•
+ battle.c‚ð•ÏXB
+
+CHRIS‚³‚ñA‚ ‚肪‚Æ‚¤ŒäÀ‚¢‚Ü‚·B
+ƒmƒbƒNƒoƒbƒNŽÀ‘•‚Å‚«‚È‚­‚ÄA¢‚Á‚Ä‚Ü‚µ‚½i„ƒG
+
+--------------
+//379 by CHRIS
+
+EƒJ[ƒgƒŒƒ”ƒHƒŠƒ…[ƒVƒ‡ƒ“‚ÌŽÀ‘•
+ skill.c‚Æbattle.c‚ð•ÏXB
+
+Eƒ}ƒOƒiƒ€ƒuƒŒƒCƒN‚ɃmƒbƒNƒoƒbƒN‚ð’ljÁB
+ battle.c‚ð•ÏXB
+
+iƒ\[ƒX‚ð˜M‚Á‚½‚͉̂‚ß‚Ä‚È‚Ì‚ÅA—L‚Á‚Ä‚é‚©‚Ç‚¤‚©•ª‚©‚è‚Ü‚¹‚ñ‚ªAŽ©•ª‚Å‚Ío—ˆ‚Ü‚µ‚½Bj
+iƒvƒƒOƒ‰ƒ€ŠÖŒW‚̑Ђ𔃂Á‚ĕ׋­‚µ‚ĉ‚߂ĘM‚Á‚½‚Ì‚Å‚·EEEBƒKƒ“ƒoƒŠƒ}ƒXIBj
+
+--------------
+//377 by ŒÓ’±—–
+
+EMOB‚Ìs“®C³
+ E‹ß‚­‚ÉPC‚Ì‚¢‚È‚¢MOB‚ªŽžXƒ[ƒv‚·‚éŽd—l‚ðŽ~‚ß‚Ü‚µ‚½B
+ EPC‚Ì‚¢‚È‚¢ƒ}ƒbƒv‚ÌMOB‚Í‘S‚­“®‚©‚È‚­‚È‚è‚Ü‚µ‚½B
+ EPC‚Ì‚¢‚éƒ}ƒbƒv‚ÅA‹ß‚­‚ÉPC‚Ì‚¢‚È‚¢MOB‚ÍŽžX•à‚­‚悤‚É‚È‚è‚Ü‚µ‚½B
+ E‚»‚Ì‘¼×‚©‚¢‚Æ‚±‚ëC³
+ iƒpƒtƒH[ƒ}ƒ“ƒX‚ɉe‹¿‚ª‚ ‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñF­‚µd‚­‚È‚é‚©‚àj
+
+ mob.c
+ mob_randomwalk()’ljÁ
+ mob_ai_sub_lazy(),mob_ai_sub_hard()C³‚È‚Ç
+
+EƒXƒLƒ‹C³
+ EMOB‚ªƒeƒŒƒ|[ƒg‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+
+ mob.c
+ mob_warp()’ljÁ
+ skill.c
+ skill_castend_nodamage_id()C³
+
+EƒXƒe[ƒ^ƒXˆÙí‚̈ꕔ‚ðŽÀ‘•/C³
+ EPC/MOB‚Æ‚à‚É‘¬“xŒ¸­‚ÌŒø‰Ê‚ªŒ»‚ê‚é‚悤‚ÉiAGI‚Ì•\Ž¦‚Í•Ï‚í‚炸j
+ EPC‚̃Gƒ“ƒWƒFƒ‰ƒXAƒCƒ“ƒ|ƒVƒeƒBƒIƒ}ƒkƒXA‘¬“x㸂̌ø‰Ê‚ðC³
+ EMOB‚Ì2HQAƒAƒhƒŒƒiƒŠƒ“ƒ‰ƒbƒVƒ…AƒGƒ“ƒWƒFƒ‰ƒXAƒCƒ“ƒ|ƒVƒeƒBƒIƒ}ƒkƒXA
+ ‘¬“xã¸/Œ¸­AƒOƒƒŠƒAAƒuƒŒƒbƒVƒ“ƒO‚È‚Ç‚ÌŒø‰ÊŽÀ‘•
+ E‡–°A“€Œ‹AƒXƒ^ƒ“‚Ì•K’†Œø‰ÊŽÀ‘•
+ E‡–°‚̃NƒŠƒeƒBƒJƒ‹”{Œø‰ÊŽÀ‘•
+ EˆÃ•‚Ì–½’†—¦A‰ñ”𗦌¸­Œø‰ÊŽÀ‘•
+ EŽô‚¢‚ÌATKŒ¸­Œø‰ÊALUKŒ¸­Œø‰ÊŽÀ‘•
+
+ battle.c
+ battle_get_*()C³
+ battle_calc_weapon_damage()C³
+ mob.c
+ mob_get_speed(),mob_get_adelay()’ljÁ
+ pc.c
+ pc_calcstatus()C³
+
+Eitem_value_db.txt‚ŃAƒCƒeƒ€‚̉¿Ši‚ðÝ’è‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+ E‰¿Šiƒf[ƒ^‚ðƒI[ƒo[ƒ‰ƒCƒh‚Å‚«‚é‚悤‚É‚µ‚Ü‚µ‚½B
+ E‚±‚ê‚Åitem_db2.txt‚ð—pˆÓ‚·‚é•K—v‚ª‚ ‚è‚Ü‚¹‚ñB
+
+ (db/)
+ item_value_db2.txt
+ item_db2.txt‚̉¿Šiƒf[ƒ^B
+ item_value_db.txt‚ɃŠƒl[ƒ€‚·‚é‚Æ“Ç‚Ýž‚Ý‚Ü‚·B
+ (map/)
+ itemdb.c
+ itemdb_readdb()C³
+
+EŒÃ–Ø‚ÌŽ}‚ðŽg‚¤‚ÆMOB‚Ì–¼‘O‚ª 0 ‚É‚È‚é–â‘è‚ÌC³
+
+ (db/)
+ item_db.txt
+ ŒÃ–Ø‚ÌŽ}‚̃f[ƒ^C³
+
+--------------
+//375 by ŒÓ’±—–
+
+EMOBê—pƒXƒLƒ‹‚ÌŒø‰Ê‚ð‚¢‚­‚‚©ŽÀ‘•
+ ‘½’iUŒ‚A“łȂǂ̒ljÁŒø‰Ê•t—^UŒ‚A‘®«•t‚«UŒ‚A–‚–@‘ÅŒ‚UŒ‚
+ •K’†UŒ‚A–hŒä–³Ž‹UŒ‚Aƒ‰ƒ“ƒ_ƒ€ATKUŒ‚‚È‚ÇB
+ ‚½‚¾‚µA**‘S‚­ƒeƒXƒg‚µ‚Ä‚Ü‚¹‚ñ**B
+
+ (db/)
+ skill_db.txt
+ MOB—pƒXƒLƒ‹‚̃f[ƒ^‚ðC³
+ mob_skill_db.txt
+ ­‚µ’ljÁ
+ (map/)
+ skill.c
+ skill_castend_damage_id()C³
+ skill_status_change_start()C³
+ skill_additional_effect()C³
+ battle.c
+ battle_calc_weapon_attack()C³
+
+EƒXƒLƒ‹‚ð­‚µC³
+ EƒEƒH[ƒ^[ƒ{[ƒ‹‚Å“G‚ªŽ€‚ñ‚Å‚¢‚Ä‚àŒ‚‚ƒ‚[ƒVƒ‡ƒ“‚ð‚·‚é–â‘èC³
+
+ skill.c
+ skill_status_change_timer()C³
+
+EMOBƒf[ƒ^‚ª•Ï‚È‚Ì‚Å–^‚v‚̃f[ƒ^ƒx[ƒX‚ð—¬—p‚µ‚Ä‚Ý‚é
+ Eƒf[ƒ^‚Ì•À‚ч‚Æ‚©‘S‚­“¯‚¶‚È‚ñ‚Å‚·‚Ë
+
+ (db/)
+ mob_db.txt
+ –^‚v‚Ìmob_db.txt
+
+EŠeŽíconf‚̃Šƒtƒ@ƒŒƒ“ƒX‚ð“Y•t
+ ‚ ‚­‚܂ŃŠƒtƒ@ƒŒƒ“ƒX‚È‚Ì‚ÅAHowTo‚È‚ñ‚©‚Í‘‚¢‚Ä‚Ü‚¹‚ñB
+
+ (doc/)
+ conf_ref.txt
+ conf‚̃Šƒtƒ@ƒŒƒ“ƒX{ƒ¿
+
+
+--------------
+//373 by ŒÓ’±—–
+
+EMOBƒXƒLƒ‹Žg—p‹@\‰¼ŽÀ‘•
+ EƒXƒLƒ‹Žg—pŽž‚̈—‚̓vƒŒƒCƒ„[‚Æ‹¤—p(skill.c)‚Å‚·B
+ E•s“s‡‚ª‘½‚¢‚ÆŽv‚¤‚Ì‚Å•ñ‚¨Šè‚¢‚µ‚Ü‚·B
+ Emob_skill_db.txt‚ð–„‚ß‚Ä‚­‚ê‚él‚à•åWB
+ ‚±‚̃f[ƒ^‚Íuƒ‰ƒOƒiƒƒN‚Ì‚½‚Ü‚²v‚ðŽQl‚É‚µ‚Ä‚¢‚Ü‚·B
+
+ (db/)
+ mob_skill_db.txt
+ MOBƒXƒLƒ‹ƒf[ƒ^ƒx[ƒX(–¢Š®¬)
+ ƒeƒXƒg—p‚̃f[ƒ^‚µ‚©“ü‚Á‚Ä‚Ü‚¹‚ñB
+ (map/)
+ mob.c/mob.h
+ mobskill_*’ljÁA‚»‚Ì‘¼‘½”C³
+ map.h
+ struct mob_data ‚É skill* ’ljÁ
+ skill.c/skill.h
+ skill_castcancel()‚âƒXƒLƒ‹ƒ†ƒjƒbƒgˆ—‚ðMOB‚ɑΉž‚³‚¹‚½
+ battle.c
+ battle_calc_damage()‚È‚ÇC³
+
+EƒMƒ‹ƒh‚̃XƒLƒ‹‚ªG‚ê‚È‚¢–â‘èC³
+ E‚¢‚‚̂܂ɂ©pc_skillup‚ªŒÃ‚¢‚à‚Ì‚É•Ï‚í‚Á‚Ä‚¢‚½‚Ì‚ÅC³
+
+ pc.c
+ pc_skillup(),pc_checkskill()C³
+
+--------------
+//368 by ŒÓ’±—–
+
+EMOBŒn‚ÌC³‚È‚Ç
+ EMOB‚ªô“G”͈͓à‚ÌPC/ƒAƒCƒeƒ€‚𓙊m—¦‚ŃƒbƒN‚·‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+ iƒAƒNƒeƒBƒuAƒ‹[ƒgF‚¢‚Ü‚Ü‚Å‚ÍŠY“–ƒuƒƒbƒN‚̃Šƒ“ƒNƒŠƒXƒg‚̇‚È‚Ç‚É
+ ˆË‘¶‚µ‚Ä‚¢‚½j
+ EŽË’ö”ÍˆÍ“à‚©‚ÂA“ž’B•s‰Â”\’n‘Ñ‚ÌPC‚ðMOB‚ªƒƒbƒN‚·‚é‚ÆA
+ MOB‚ª’âŽ~‚µ‚½‚èA‚»‚Ìê‚Å–\‚ꂾ‚µ‚½‚è‚·‚é–â‘è‚ÌC³
+ EMOBƒƒbƒN’†‚ÉIW‚È‚Ç‚Å“ž’B•s‰Â”\‚É‚È‚Á‚½ê‡AƒƒbƒN‚ð‰ðœ‚·‚é‚悤‚ÉB
+ EAEGIS•ûŽ®‚Å“G‚̈ړ®‚ðŒvŽZ‚µ‚Ĉړ®•s‰Â”\‚È‚çAAthenaŽ®‚ÅŒvŽZ‚·‚é‚悤‚É
+ EƒƒbƒN‚ª‰ðœ‚³‚ê‚é‚Æ‚«‚É”•b‚»‚Ìê‚Å’âŽ~‚·‚é‚悤‚É‚µ‚½
+ E•às‚ª’x‚¢MOB‚ª‚Æ‚Ü‚ç‚È‚¢/ŽŸ‚Ì•àsŠJŽn‚ª‘‚·‚¬‚é–â‘è‚ðC³‚µ‚Ü‚µ‚½
+ Eƒ‹[ƒgŠÖ˜Aˆ—‚ð­‚µC³
+
+ mob.c
+ mob_ai_sub_hard*()C³
+ mob_can_reach()’ljÁ
+
+EƒXƒLƒ‹Žg—pŽž‚Ƀ^[ƒQƒbƒgƒuƒƒbƒN‚Ì—LŒø«”»’è‚ðs‚¤‚悤‚ÉC³
+Eƒ‹ƒAƒt‚̃_ƒ[ƒW‚ª•ŠíŒvŽZ‚É‚È‚Á‚Ä‚¢‚é‚̃oƒO‚ð–‚–@ŒvŽZ‚ÉC³
+
+ skill.c
+ skill_castend_id()C³
+ skill_status_change_timer_sub()C³
+
+
+----------
+//364 by ‚¢‚Ç
+EˆÈ‰º‚̃pƒPƒbƒg‚Ìà–¾‚ð•ÏX
+ doc/ƒpƒPƒbƒg‰ðÍ.txt
+ R 006a <error No>.B
+ R 0081 <type>.B
+
+E363‚Ńrƒ‹ƒhŽž‚Éwarning‚ªo‚é•s‹ï‡‚ðC³
+ map/guild.h
+
+--------------
+//363 by ŒÓ’±—–
+
+EƒMƒ‹ƒh‚ÌC³
+ EƒƒOƒCƒ“‚µ‚Ä‚¢‚È‚¢PC‚ð’Ç•ú‚·‚é‚ƃ}ƒbƒvŽI‚ª—Ž‚¿‚éƒoƒOC³
+ Eƒƒ“ƒo[’ljÁ’¼Œã‚ɒljÁ‚³‚ꂽPC‚ªƒMƒ‹ƒh•\Ž¦‚ɒljÁ‚³‚ê‚È‚¢–â‘èC³
+ E“¯‚¶ƒMƒ‹ƒh‚É“¯C•ÊƒLƒƒƒ‰‚ª—v‚éPC‚ª’E‘Þ‚·‚é/’Ç•ú‚³‚ê‚é‚ƕʃLƒƒƒ‰‚ª
+ ’E‘Þ‚µ‚Ä‚µ‚Ü‚¤ê‡‚ª‚ ‚éƒoƒOC³
+ Eƒƒ“ƒo[‚ª‚¢‚é‚̂ɉðŽU‚µ‚悤‚Æ‚·‚é‚ƃ}ƒbƒvŽI‚ª—Ž‚¿‚éƒoƒOC³
+
+ (char/)
+ int_guild.c
+ guild_calcinfo(),mapif_parse_GuildAddMember()C³
+ (map/)
+ guild.c
+ guild_member_leaved(),guild_member_added()
+ guild_recv_info(),guild_break()C³
+
+--------------
+//362 by ŒÓ’±—–
+
+EƒMƒ‹ƒh‰ðŽUŽÀ‘•
+
+ (char/)
+ int_guild.c
+ ‰ðŽUˆ—‚ð’ljÁ
+ (map/)
+ guild.c/guild.h
+ guild_break(),guild_broken(),guild_broken_sub()‚ȂǒljÁ
+ clif.c/clif.h
+ clif_guild_broken(),clif_parse_GuildBreak()’ljÁ
+ intif.c/intif.h
+ intif_parse_GuildBroken()’ljÁ
+
+--------------
+//361 by ‚¢‚Ç
+
+E360‚Å‚Ì@heal‚Ì•ÏXŠÔˆá‚¢‚ð’ù³
+ map/atcommand.c
+
+--------------
+//360 by ‚¢‚Ç
+
+E353‚ÌC³‚ðíœ
+E@heal‚Å•ÏXŒã‚Ì’l‚ªƒ}ƒCƒiƒX‚É‚È‚ç‚È‚¢‚悤‚ÉC³
+
+--------------
+//359 by ‚¢‚Ç
+
+Eclass_equip_db.txt‚Ì•¶Žš‰»‚¯C³
+
+--------------
+//358 by ŒÓ’±—–
+
+EƒƒOƒCƒ“Žž‚Ìdelete_timer‚̃Gƒ‰[‚ðo‚È‚¢‚悤‚É‚µ‚½
+ pc.c
+ pc_authok()‚ÌC³
+
+EƒMƒ‹ƒhŠÖŒW‚ÌC³
+ Eƒƒ“ƒoŠ©—UŽž‚ÉÅ‘ål”‚ÌŠm”F‚ðs‚¤‚悤‚É
+ Eƒf[ƒ^’Ê’mˆ—‚ð‚¢‚­‚‚©C³
+
+ (char/)
+ int_guild.c
+ FXC³
+ (map/)
+ clif.c/clif.h
+ clif_guild_inviting_refused()‚ðclif_guild_inviteack()‚ɉü–¼
+ guild.c/intif.c
+ FXC³
+
+E@guildlvupƒRƒ}ƒ“ƒhì¬BƒMƒ‹ƒhƒŒƒxƒ‹‚ª’²®‚Å‚«‚Ü‚·B
+
+ (char/)
+ int_guild.c
+ FXC³
+ (map/)
+ atcommand.c
+ @guildlvupˆ—’ljÁ
+
+EMakefike‚Ìclean•”•ª‚ðC³
+
+ (char/ map/ login/)
+ Makefile
+ E휂·‚éŽÀsƒtƒ@ƒCƒ‹‚̃pƒX‚ð ../athena/ ‚©‚ç ../ ‚ÉC³
+
+--------------
+//357 by ŒÓ’±—–
+
+Epc.c‚Ì•¶Žš‰»‚¯C³
+ •¶Žš‰»‚¯‚µ‚½ƒtƒ@ƒCƒ‹‚ðƒAƒbƒv‚·‚é‚Ì‚àA‚»‚ê‚ð‰ü‘¢‚·‚é‚Ì‚à‹ÖŽ~‚µ‚Ü‚¹‚ñ‚©H
+ ’¼‚·‚Ì–Ê“|‚­‚³‚·‚¬‚Ü‚·B
+
+ pc.c
+ •¶Žš‰»‚¯‚ÌC³
+
+Eƒp[ƒeƒB‚âƒMƒ‹ƒh‚ÉŠ©—U‚³‚ꂽó‘ԂŃ}ƒbƒvˆÚ“®‚⃃OƒAƒEƒg‚·‚é‚ÆA
+ Š©—U‚ð‹‘”Û‚·‚é‚悤‚ÉC³
+
+ pc.c
+ pc_setpos()C³
+ map.c
+ map_quit()C³
+
+EI-AthenaŽ©“®•œ‹ŒƒVƒXƒeƒ€(B-NSJŽì)‚ðAthena—p‚ɉü‘¢‚µ‚Ä“Y•t‚µ‚Ü‚µ‚½
+ ƒvƒƒOƒ‰ƒ€‚Ì«Ž¿ã./toolƒtƒHƒ‹ƒ_‚Å‚Í‚È‚­./‚É‚ ‚è‚Ü‚·B
+ athena.sh‚Ì•Ï‚í‚è‚Éstart‚Å‹N“®‚·‚é‚ÆmapŽI‚ª—Ž‚¿‚Ä‚à10•b’ö“x‚Å•œ‹Œ‚µ‚Ü‚·
+ ƒvƒƒZƒX‚Íumapv‚Å’²‚ׂĂ܂·‚ª‘¼‚̃vƒƒZƒX‚É”½‰ž‚·‚é‚Æ‚«‚Í
+ umap-serverv‚È‚Ç‚É•Ï‚¦‚Ä‚Ý‚Ä‚­‚¾‚³‚¢B
+
+ start
+ mapŽIŽ©“®•œ‹ŒƒVƒXƒeƒ€‚̃VƒFƒ‹ƒXƒNƒŠƒvƒg
+
+
+--------------
+//0356 by Ž€_
+
+Eathena.sh‚ðŽg‚í‚È‚­‚Ä‚àYare-launcher‚ðŽg‚¦‚é‚悤‚É•ÏXB(Ž©•ªŽŽ‚µ‚Ä‚Ü‚µ‚½‚ª
+ˆê‰ž“®‚«‚Ü‚µ‚½B‚Å‚à‘‹‚Ìê‡login-server.exe‚ªlogin-server.ex‚É“o˜^‚³‚ê‚Ä‚µ‚Ü‚¢
+Yare-launcher‚ªlogin-server.exe‘±‚¯‚ÄŽÀs‚·‚é–â‘肪‚ ‚è‚Ü‚·B‚±‚ê‚Íathena‚Ì
+–â‘è‚Å‚Í‚ ‚è‚Ü‚¹‚ñ‚ª...)
+ comm/makefileˆÈŠO‚Ìmakefile‘S‚Ä‚ðC³B
+ athena.shC³B
+ ŽÀsƒtƒ@ƒCƒ‹‚Í.,/athena ƒtƒHƒ‹ƒ_[‚¶‚á‚È‚­./ ƒtƒHƒ‹ƒ_[‚Éì‚ç‚ê‚Ü‚·B
+E V‹Kaccount‚Ì‹–—e‚·‚é‚©‚Ç‚¤‚©‚ðlogin_athena.cnf‚ÅŒˆ‚ß‚é‚悤‚É•ÏXB(‚±‚ê‚Í
+ YareCVS‚ðŽQl‚µ‚½•¨‚Å‚·B)
+ login.c
+ int mmo_auth() C³B
+ login_athena.cnf
+ new_account ’ljÁB
+Echar.cAlogin.cAinter.cAmap.cAbattle.c‚ňꕔ‚Ìstrcmp‚ðstrcmpi‚É•ÏXB
+
+--------------
+//355 by ‚䂤
+
+E¶Žè‘•”õ‚àl—¶‚µ‚½“ñ“—¬‚ÉC³
+@iƒ_ƒ[ƒWŒvŽZ‚Ì‚Ý‚ÅŒ©‚½–Ú“™‚Í•ÏX‚È‚µj
+
+map.h
+ map_session_data‚ɶŽè—p‚Ì•Ï”‚ð’ljÁ
+
+battle.h
+ battle_get_attack_element2()’ljÁ
+
+battle.c
+ battle_get_attack_element2()’ljÁ
+ battle_calc_weapon_attack()‚É
+ @“ñ“—¬‚̈—‚ð’ljÁC³
+ @ƒNƒŠƒeƒBƒJƒ‹‚æ‚èƒ_ƒuƒ‹ƒAƒ^ƒbƒN‚ðæ‚É”»’è‚·‚é‚悤‚ÉC³
+ @‰ß踘B‚̒ljÁƒ_ƒ[ƒW‚ð¸˜Bƒ_ƒ[ƒW‚ÌŽŸ‚Ɉ—‚·‚é‚悤‚ÉC³
+ @i‚±‚ê‚ç‚Í“ÆŽ©‚É’²‚ׂ½‚à‚Ì‚ÅŠÔˆá‚Á‚Ä‚¢‚é‰Â”\«‚ ‚èj
+
+pc.c
+ pc_calcstatus()‚ɶŽè—p‚Ì•Ï”‚É’l‚ð“ü‚ê‚鈗‚ð’ljÁ
+ pc_equipitem()‚Ì“ñ“—¬‘•”õ‚Ìꊂª‚¨‚©‚µ‚©‚Á‚½‚Ì‚ðC³
+
+--------------
+//353 by ‚¢‚Ç
+
+EYare-launcher‚ðŽg‚¤‚±‚Æ‚ªo—ˆ‚é‚悤‚ÉMakefile‚Æathena.sh‚ð•ÏX
+
+--------------
+//352 by ŒÓ’±—–
+
+E‰r¥’†‚ɃNƒ‰ƒCƒAƒ“ƒg‚ðI—¹‚·‚é‚ÆmapŽI‚ª—Ž‚¿‚é–â‘è‚ÌC³
+ skill.c
+ skill_castend_id(),skill_castend_pos(),skill_castend_map()C³
+ map.c
+ map_quit()C³
+
+
+Eƒf[ƒ^ƒoƒbƒNƒAƒbƒv—p‚̃c[ƒ‹“Y•t
+ Perl»‚È‚Ì‚ÅŽÀs‚É‚ÍPerl‚ª•K—v‚Å‚·B
+ Žg—p•û–@‚Ȃǂ̓GƒfƒBƒ^‚ÅŠJ‚¢‚ÄŒ©‚Ä‚­‚¾‚³‚¢B
+ Žg‚¢•û‚ª—Ç‚­‚í‚©‚ç‚È‚¢l‚ÍŽè‚ðo‚³‚È‚¢‚Ù‚¤‚ª‚¢‚¢‚Å‚·B
+ ƒf[ƒ^‚ªÁ‚¦‚Ä‚àÓ”C‚ÍŽ‚¿‚Ü‚¹‚ñ
+
+ (tool/)
+ backup
+ ƒf[ƒ^ƒoƒbƒNƒAƒbƒv—pPerlƒXƒNƒŠƒvƒg
+
+--------------
+//0351 by Ž€_
+skill.c
+ skill_use_id()‚ɉr¥”½‰žƒ‚ƒ“ƒXƒ^[‚̈—‚ð•ÏXB(UŒ‚ó‘ԈȊO‚Ìê‡
+ ‰r¥”½‰ž‚ðÅ—Dæ‚É‚µ‚Ü‚·B)
+mob.c
+ mob_ai_sub_hard_castsearch() ‰r¥”½‰žƒ‚ƒ“ƒXƒ^[‚ð“ñdˆ—‚µ‚Ä
+ ‚¢‚½‚Ì‚ÅíœB
+ mob_ai_sub_hard() ‰r¥”½‰žƒ‚ƒ“ƒXƒ^[‚ð“ñdˆ—‚µ‚È‚¢‚悤‚É•ÏXB
+pet.c - 0344‚É–ß‚µ‚Ü‚µ‚½B(C³‚Í­‚µ•ªÍ‚ð‚µ‚Ä‚©‚ç‚É‚µ‚Ü‚·B)
+pet.h - 0344‚É–ß‚µ‚Ü‚µ‚½B
+char.h
+ CHAR_CONF_NAME ’ljÁB
+char.c
+ do_init() ŽÀs‚·‚鎞ƒtƒ@ƒCƒ‹–¼‚ª“ü—Í‚³‚ê‚Ä‚¢‚È‚¢‚ÆCHAR_CONF_NAME‚ð
+ Žg‚¤‚悤‚É•ÏXB
+map.h
+ MAP_CONF_NAME ’ljÁB
+map.c
+ do_init() ŽÀs‚·‚鎞ƒtƒ@ƒCƒ‹–¼‚ª“ü—Í‚³‚ê‚Ä‚¢‚È‚¢‚ÆMAP_CONF_NAME‚ð
+ Žg‚¤‚悤‚É•ÏXB
+‚±‚ê‚Ålogin.exeAchar.exeAmap.exe‚ðathenaƒtƒHƒ‹ƒ_[‚ɃRƒs[‚µ‚½Œã–¼‘O‚ð
+login-server.exeAchar-server.exeAmap-server.exe‚É•ÏX‚·‚é‚ÆYare-launcher‚ðŽg‚¤
+‚±‚Æ‚ª‚Å‚«‚Ü‚·B‚±‚ê‚ðŽg‚¤‚ÆŽI‚ª—Ž‚¿‚é“x‚ÉŽ©“®“I‚ÉÄŽÀs‚µ‚Ä‚­‚ê‚Ü‚·B
+
+--------------
+//0345 by Ž€_
+EƒLƒƒƒXƒeƒBƒ“ƒO’T’mŽÀ‘•B
+ mob.c
+ mob_ai_sub_hard_lootsearch() C³B
+ mob_ai_sub_hard() C³B
+ mob_ai_sub_hard_castsearch() ’ljÁB
+ mob_target(), mob_ai_sub_hard_activesearch() ƒ{ƒXƒ‚ƒ“ƒXƒ^[‚ð
+ mvpŒoŒ±’l‚É‚æ‚Á‚Ä”FŽ¯‚·‚é‚悤‚É•ÏXB
+ mob_ai_sub_hard_linksearch() C³B
+ mob_attack() Ž€‚ñ‚¾‚Ó‚èAƒnƒCƒfƒBƒ“ƒO‚ðƒ`ƒFƒbƒN‚·‚é‚悤‚É•ÏXB
+ mob_readdb() C³B
+Epet.h
+ MAX_PET_DB‚ð100‚É•ÏXB
+Epet.c
+ read_petdb() C³B
+
+--------------
+//0344 by@‰ß‹Ž‚Ìli1
+E@ƒyƒbƒg• Œ¸‚èŽÀ‘•‚¨‚æ‚Ñ‚»‚Ì‚Ù‚©FXC³
+E@ƒyƒbƒg‰a‚â‚èŽÀ‘•
+
+ pet.c
+ pet_calcrate(struct map_session_data *sd);
+ ƒyƒbƒg‚ÌŠl“¾Šm—¦ŒvŽZ
+ pet_food(struct map_session_data *sd);
+ ƒyƒbƒg‰a‚â‚èƒVƒXƒeƒ€
+ pet_hungry_change( int tid, unsigned int tick, int id,int data );
+ ƒyƒbƒg‚ª• ‚ðŒ¸‚éƒƒWƒbƒN
+ pet_status_int(struct map_session_data *sd);
+ e–§“xŒvŽZ
+ pet_status_hungry(struct map_session_data *sd);
+ –ž• “xŒvŽZ
+ pet_status_1a3(struct map_session_data *sd);
+ ƒpƒPƒbƒg1a3Ý’èŠÖ”
+ pet_initstate(struct map_session_data *sd);
+ ƒyƒbƒg‚ª‰‚߂Ķ‚܂ꂽ‚Æ‚«‚̉ŠúƒXƒe[ƒ^ƒXÝ’è
+ pet.h
+ int pet_calcrate(struct map_session_data *sd);
+ int pet_food(struct map_session_data *sd);
+ int pet_hungry_change( int tid, unsigned int tick, int id,int data );
+ int pet_status_int(struct map_session_data *sd);
+ int pet_status_hungry(struct map_session_data *sd);
+ int pet_status_1a3(struct map_session_data *sd);
+ int pet_initstate(struct map_session_data *sd);
+ ‚ð’ljÁ
+ clif.c
+ clif_pet_emotion(int fd,struct map_session_data *sd)
+ ‰a‚ð‚ ‚°‚½‚Æ‚«‚ɃGƒ‚[ƒVƒ‡ƒ“‚ðs‚¤
+ clif.h
+ clif_pet_emotion(int fd,struct map_session_data *sd);
+
+--------------
+//0341 by Ž€_
+Eƒ‹[ƒgƒ‚ƒ“ƒXƒ^[ŽÀ‘•B
+ map.h
+ LOOTITEM_SIZE‚ð20‚ÉC³B
+ struct mob_data‚Éint lootitem_count ’ljÁB
+ mob.c
+ mob_spawn() ­‚µC³B
+ mob_ai_sub_hard_lootsearch() ’ljÁB
+ mob_ai_sub_hard() C³B
+ struct delay_item_drop2 ’ljÁB
+ mob_delay_item_drop2() ’ljÁB
+ mob_damage() C³B
+ battle.h
+ struct Battle_Config‚Éint monster_loot_type ’ljÁB
+ battle.c
+ battle_config_read() C³B
+ battle_athena.cnf
+ monster_loot_type: 0 ’ljÁB(Šî–{“I‚É0‚É‚È‚Á‚Ä‚¢‚Ü‚·B
+ 0‚ÌꇂÍLOOTITEM_SIZE‚܂ŃAƒCƒeƒ€‚ðH‚ׂĂà
+ ‚Ü‚½ƒAƒCƒeƒ€‚ðH‚ׂđO‚̃AƒCƒeƒ€‚ªÁ‚¦‚éŽd—l‚Å‚·B
+ 1‚ÌꇂÍLOOTITEM_SIZE‚܂ŃAƒCƒeƒ€‚ðH‚ׂé‚Æ
+ ‚à‚¤ƒAƒCƒeƒ€‚ðH‚ׂȂ­‚È‚è‚Ü‚·B
+
+--------------
+//0340 by Ž€_
+EmvpƒoƒOC³B
+ mob.c
+ mob_damage()‚Åj‚É•Ï‚¦‚½‚Í‚¸‚Ì•¨‚ÉŒ©—Ž‚Æ‚µ‚ ‚è‚Ü‚µ‚½‚Ì‚Å
+ C³‚µ‚Ü‚µ‚½B‚±‚ê‚ÅmvpƒAƒCƒeƒ€‚Å•Ï‚È•¨‚ªo‚È‚­‚È‚é‚Í‚¸‚Å‚·B
+Eclass_equip_db.txt
+ EUC-JIS‚ðS-JIS‚É•ÏXB(ˆÓ–¡‚Í‚ ‚è‚Ü‚¹‚ñ‚ª‘¼‚̃tƒ@ƒCƒ‹‚Í
+ ‘S•”S-JIS‚¾‚Á‚½‚Ì‚Å...’P‚È‚éƒ~ƒX‚Å‚·‚ª...)
+
+----------
+//339 by ‚¢‚Ç
+
+E338‚ð“K—p‚µ‚½ó‘ԂŃrƒ‹ƒhƒGƒ‰[‚ª”­¶‚·‚é•s‹ï‡‚ðC³
+
+----------
+//338 by ‰ß‹Ž‚Ìli1
+
+E@pet_db.txt‚ɑΉž‚µ‚Ü‚µ‚½B
+E@pet_db‚ð‚‚©‚Á‚½ƒvƒƒOƒ‰ƒ€‚Ì‘‚«•û‚ÉC³‚µ‚Ü‚µ‚½B
+E@ƒyƒbƒg‚Ì–¼‘O‚ð•ÏX‚·‚鎖‚ªo—ˆ‚Ü‚·
+E@ƒyƒbƒg‚ɃAƒNƒZƒTƒŠ[‚ð‚‚¯‚鎖‚ªo—ˆ‚Ü‚·B
+E@Œ»Ýƒyƒbƒg‰a‚â‚èis’†
+
+ (map/)
+ clif.c/clif.h
+ E petŠÖ˜A‚ÌŠÖ”‚ð‚Ù‚ÚC³‹y‚ђljÁ‚¢‚½‚µ‚Ü‚µ‚½B
+ E clif_parse_EquipItem()“à•”‚Ńyƒbƒg—p‘•”õ‚Å‚ ‚é‚©‚Ç‚¤‚©‚Ì”»’è‚ðs‚Á‚Ä‚Ü‚·
+ E clif_parse()‚ðC³‚µ‚Ü‚µ‚½B
+
+ battle.h/battle.c
+ E@battle_config.pet_rate•Ï”‚ð‘‚₵‚Ü‚µ‚½Bmob‚ɑ΂·‚é—‘‚ÌŠl“¾—¦
+ @@‚ðÝ’è‚·‚鎖‚ª‰Â”\‚Æ‚È‚è‚Ü‚·
+
+ pet.c/pet.h
+ E pet_initstate(struct map_session_data *sd);
+ @‰Šú‚̃yƒbƒgƒXƒe[ƒ^ƒX‚ðÝ’è‚·‚éŠÖ”‚Å‚·
+ E pet_npcid(struct map_session_data *sd,int egg_name_id);
+ @ƒyƒbƒg‚ÉŠ„‚è“–‚Ä‚ç‚ꂽnpc_id‚ð•Ô‚µ‚Ü‚·
+ E pet_itemid(struct map_session_data *sd,int mob_id);
+ @ƒ‚ƒ“ƒXƒ^[ID‚©‚ç—‘‚ÌID‚ðŠ„‚èo‚µ‚Ü‚·
+ E pet_equip(struct map_session_data *sd,int equip_id);
+ @ƒyƒbƒg‚̃AƒNƒZƒTƒŠ[‘•”õ‚Å‚·
+ E pet_unequip(struct map_session_data *sd);
+ @ƒyƒbƒg‚̃AƒNƒZƒTƒŠ[‰ðœ‚Å‚·
+ E pet_calcrate(struct map_session_data *sd);
+ @—‘Šl“¾Šm—¦ŒvŽZ‚ðs‚¢1or0‚ð•Ô‚µ‚Ü‚·B
+ E pet_food(struct map_session_data *sd);
+ @ƒyƒbƒg‰a‚â‚èlˆÄ‚Å‚·B‚Ü‚¾³í‚É“®ì‚µ‚Ü‚¹‚ñB
+ E read_petdb()
+ @pet_db.txt‚ð“Ç‚Ýž‚Ýpet_db[]‚É’l‚ð“ü‚ê‚éŠÖ”‚Å‚·
+
+ E do_init_pet()
+ @mapŽI‰Šú‰»‚Å‚æ‚Ñ‚¾‚µpet_db[]‚ðŽg‚¦‚é‚悤‚É‚·‚éˆ×‚Ì
+ ƒyƒbƒgî•ñ‰Šú‰»ŠÖ”‚Å‚·B
+
+ map.c/map.h
+ E@BL_PET•Ï”‚ð‰Á‚¦‚Ü‚µ‚½
+ E@mapŽI‰Šú‰»‚ÌŽž‚Édo_init_pet()‚ðŒÄ‚Ño‚µ‚Ü‚·B
+
+ mmo.h
+ E@s_pet\‘¢‘Ì‚É•Ï”’ljÁBƒLƒƒƒ‰ƒNƒ^[‚ªƒyƒbƒg‚̃f[ƒ^‚ð•ÛŽ‚·‚éˆ×‚̃VƒXƒeƒ€
+ @‚̈סŒã‚à•Ï”‚Í‚»‚̂‚Ǒ‰Á‚·‚é—\’è
+
+ npc.c
+ ‰ü‘P‚µ‚Ü‚µ‚½B
+
+ (conf/)
+ battle_athena.cnf‚É—‘‚ÌŠl“¾Šm—¦pet_rate‚ð‰Á‚¦‚Ü‚µ‚½B
+
+----------
+//337 by ŒÓ’±—–
+
+EƒMƒ‹ƒh‚̒ljÁ‚ÆC³
+ EƒMƒ‹ƒh‚ÉŒoŒ±’l‚ðã”[‚·‚é‚ÆAã”[‚³‚ê‚éEXP‚ªˆÙí‚È’l‚É‚È‚éƒoƒOC³
+ EƒMƒ‹ƒh‚Ì“G‘Ί֌W‚̒ljÁ
+
+ guild.c/guild.h
+ guild_payexp()‚ÌC³(ã”[EXPˆ—)
+ guild_opposition()’ljÁ
+ guild_allianceack(),guild_reqalliance(),
+ guild_reply_reqalliance()‚ÌC³
+ clif.c/clif.h
+ clif_guild_oppositionack(),clif_parse_GuildOpposition’ljÁ
+
+EƒfƒBƒŒƒCŽžŠÔ‚ªdex‚̉e‹¿‚ðŽó‚¯‚é‚©‚Ç‚¤‚©‚ðbattle_athena.cnf‚É‘‚¯‚é‚悤‚É
+
+ (conf/)
+ battle_athena.conf
+ delay_dependon_dex ‚ð’ljÁ
+ (map/)
+ skill.c
+ skill_delay_fix()‚ÌC³
+ battle.c/battle.h
+ struct Battle_Config‚Édelay_dependon_dex’ljÁ
+ battle_config_read()‚ÌC³(“Ç‚Ýž‚݈—‚à•Ï‚¦‚Ä‚Ü‚·)
+
+--------------
+//0336 by Ž€_
+EƒXƒLƒ‹ƒCƒ“ƒfƒ…ƒA‚ð­‚µC³B
+Eclif.c
+ clif_skill_damage()Aclif_skill_damage2() ƒCƒ“ƒfƒ…ƒA‡‚킹‚ÄC³B
+ (‚½‚¾ƒXƒLƒ‹‚â–‚–@‚É‚È‚é‚ƃ‚[ƒVƒ‡ƒ“‚ªo‚È‚¢ƒpƒPƒbƒg‚ð
+ Œ©‚‚¯‚È‚©‚Á‚½‚Ì‚ÅŠ®‘S‚¶‚á‚ ‚è‚Ü‚¹‚ñB)
+ clif_parse_ActionRequest()Aclif_parse_UseSkillToId()Aclif_parse_UseSkillToPos()
+ ƒXƒLƒ‹ƒfƒBƒŒƒC‚ÌŽž‚ɃƒbƒZ[ƒW‚ªo‚é‚悤‚ÉC³B
+EƒoƒbƒNƒXƒeƒbƒvŽÀ‘•AƒIƒŠƒfƒIƒRƒ“Œ¤‹†ŽÀ‘•B
+Eskill.c
+ skill_castend_damage_id()‚É‚ ‚Á‚½ƒXƒLƒ‹ƒoƒbƒNƒXƒeƒbƒv‚̈—‚ð
+ skill_castend_nodamage_id()‚Ɉړ®‚µ‚Ü‚µ‚½B
+ ƒXƒLƒ‹ƒoƒbƒNƒXƒeƒbƒv‚̈—‚Åclif_skill_damage2()‚ðŒÄ‚Ô‚Ì‚ðclif_fixpos()‚ð
+ ŒÄ‚Ԃ悤‚É•ÏXB(‚±‚ê‚Ń_ƒ[ƒW‚̃‚[ƒVƒ‡ƒ“‚ªo‚¸‚É
+ ˆÚ“®‚Å‚«‚Ü‚·B)
+ ƒoƒbƒNƒXƒeƒbƒv‚Æ‹©‚Ԃ悤‚É•ÏXB
+ skill_produce_mix() ƒIƒŠƒfƒIƒRƒ“Œ¤‹†“K—pB•ŠíƒŒƒxƒ‹‚ª3ˆÈã‚ÌŽž‚É
+ ƒXƒLƒ‹ƒŒƒxƒ‹*1%‚ªƒ{[ƒiƒX‚Æ‚µ‚Ä»‘¢Šm—¦‚É•t‚«‚Ü‚·B
+ ƒGƒ‹ƒjƒEƒ€‚ÌŠm—¦”»’è’ljÁB
+Eskill_db.txt - ƒoƒbƒNƒXƒeƒbƒv‚Ìnk‚ð0‚©‚ç1‚É•ÏXB(ƒXƒLƒ‹”Ô†150‚Ì•¨‚Å‚·B)
+Eproduce_db.txt ƒIƒŠƒfƒIƒRƒ“,ƒGƒ‹ƒjƒEƒ€‚ð’ljÁB(‚±‚ê‚Í–{ŽI‚É‚Í‚È‚¢•¨‚Å‚·B
+ ‚æ‚Á‚ăNƒ‰ƒCƒAƒ“ƒg‚É‚Í•K—v‚ȃAƒCƒeƒ€‚ª•\Ž¦‚³‚ê‚Ü‚¹‚ñB)
+ ƒIƒŠƒfƒIƒRƒ“Œ¤‹†‚ð­‚µŽg‚¦‚镨‚É‚·‚邽‚߂ɒljÁ‚µ‚Ü‚µ‚½B
+ ƒIƒŠƒfƒIƒRƒ“‚Ìꇂ̓IƒŠƒfƒIƒRƒ“Œ´Î3‚‚ÆÎ’Y1‚‚ª•K—v‚Å
+ ƒGƒ‹ƒjƒEƒ€‚̓Gƒ‹ƒjƒEƒ€Œ´Î3‚‚ÆÎ’Y1‚‚ª•K—v‚Å‚·B
+Epc.c ­‚µC³B
+ pc_heal()pc_percentheal() ­‚µ‚¾‚¯C³B
+ pc_gainexp() ƒMƒ‹ƒh‚Éexp‚ðã”[‚·‚鎞‚Éexp‚ªƒ}ƒCƒiƒX‚É‚È‚ç‚È‚¢‚悤‚É
+ C³B“¯Žž‚É2‚ˆÈã‚̃Œƒxƒ‹‚ªã‚ª‚é‚悤‚É•ÏXB
+ ő僌ƒxƒ‹ˆÈã‚ɃŒƒxƒ‹‚ªã‚ª‚ç‚È‚¢‚悤‚ÉC³B
+ pc_checkbaselevelup()Apc_checkjoblevelup() ’ljÁBƒŒƒxƒ‹ƒAƒbƒv‚ð
+ ƒ`ƒFƒbƒN‚µ‚Ü‚·B
+ pc_itemheal() ’ljÁBƒAƒCƒeƒ€‚ðŽg‚¤Žž‚ÉVIT‚ƃXƒLƒ‹‚É‚æ‚Á‚ă{[ƒiƒX‚ª
+ •t‚­•¨‚Å‚·BƒXƒLƒ‹ƒ‰[ƒjƒ“ƒOƒ|[ƒVƒ‡ƒ“ŽÀ‘•B
+Epc.h
+ pc_checkbaselevelup(),pc_checkjoblevelup() ’ljÁB
+ pc_itemheal() ’ljÁB
+Escript.c - ƒXƒNƒŠƒvƒgfixheal‚𜋎Bitemheal‚ð’ljÁBheal‚ªfixheal‚Ì‹@”\‚ð‚·‚é
+ ‚悤‚É•ÏXB
+ buildin_fixheal() ‚ðÁ‚µbuildin_heal()‚ðŒ³‚Ì•¨‚É–ß‚µ‚Ü‚µ‚½B(‚‚܂è
+ buildin_heal()‚ªbuildin_fixheal()‚É‚È‚è‚Ü‚µ‚½B)
+ buildin_itemheal() ’ljÁBƒAƒCƒeƒ€‚É‚æ‚é‰ñ•œ‚Í‚±‚ê‚ðŒÄ‚Ԃ悤‚É‚µ‚Ä
+ ‚­‚¾‚³‚¢B
+ buildin_heal()‚©‚çƒ{[ƒiƒX‚ÌŒvŽZ‚𜋎B
+Eitem_db.txtA item_db2.txt - heal‚ðitemheal‚É•ÏXB
+Emob.c
+ mob_damage() 0335‚Åmvp‚É­‚µŠÔˆá‚¢‚ª‚ ‚è‚Ü‚µ‚½‚Ì‚ÅC³‚µ‚Ü‚µ‚½B
+Eskill.h
+ MAX_SKILL_PRODUCE_DB‚ð64‚©‚ç100‚É•ÏXB
+
+
+//0335 by Ž€_
+Echar/char2.c‚̈ꕔ‚ÉRETCODE‚ª“K—p‚³‚ê‚Ä‚È‚©‚Á‚½‚Ì‚Å‚»‚ê‚ðC³B
+Echar/char2.c‚Ìparse_char()‚ŃLƒƒƒ‰‚ðÁ‚·Žž‚É–â‘肪‚ ‚è‚»‚¤‚ÈŠ‚ðC³B
+Echar/cha2.c,login/ login2.c‚ðchar/cha.c, login/login.c‚É•ÏXB
+Echar/makefile,login/makefile‚ð•ÏXB
+Emakefile‚Æcommon/mmo.h‚ð•ÏX‚µ‚ÄOS‚ðŽ©“®”FŽ¯‚µ‚ÄRETCODE‚ðŽ©“®‚É
+ “K—p‚·‚é‚悤‚É•ÏXB
+Ecommon/grfio.c‚Ìgrfio_init()‚ðC³B(ƒR[ƒh‚ð‚¿‚å‚Á‚Æ‚«‚ê‚¢(H)‚É
+ ‚µ‚½‚¾‚¯‚Å‚·‚ª,,,)
+EƒCƒ“ƒfƒ…ƒAŽÀ‘•B‚æ‚Á‚ăAƒ“ƒeƒBƒyƒCƒ“ƒƒ“ƒg‚àŽÀ‘•B
+Emap/clif.c
+ clif_parse_LoadEndAck() ŠØ‘ƒNƒ‰ƒCƒAƒ“ƒg‚̃pƒbƒ`‚ɇ‚킹‚Ä­‚µ•ÏXB
+ (ƒ}ƒbƒv‚ª•Ï‚í‚é“x‚É•Ší‚ƃV[ƒ‹ƒh‚ªŒ©‚¦‚È‚­‚Ȃ邽‚ß‚Å‚·B‚Ü‚¾
+ “ú–{ƒNƒ‰‚Æ‚ÍŠÖŒW‚ ‚è‚Ü‚¹‚ñ‚ª...)
+ clif_skillinfoblock() up‚Í‚¢‚ç‚È‚¢‚ÆŽv‚¤‚Ì‚ÅÁ‚µ‚Ü‚µ‚½BƒXƒLƒ‹ƒ|ƒCƒ“ƒg‚ª
+ 256A512“™‚ÌŽžƒXƒLƒ‹ƒcƒŠ[‚ª³‚µ‚­•\Ž¦‚³‚ê‚È‚¢‚±‚Æ‚Í
+ ‚à‚¤‚ ‚è‚Ü‚¹‚ñB
+ clif_guild_skillinfo() “¯‚¶‚悤‚Éup‚ðÁ‚µ‚Ü‚µ‚½B
+ clif_birthpet() pc_delitem() ŒÄ‚Ԃ悤‚É•ÏXB
+ clif_damage() ƒCƒ“ƒfƒ…ƒA‚ɑΉž‚·‚é‚悤‚É•ÏXB
+Emap/pc.c
+ pc_percentheal() ƒ}ƒCƒiƒX‚ð“ü‚ê‚Ä‚à“®‚­‚悤‚É•ÏXB­‚µC³B
+ pc_heal() ­‚µC³B
+ natual_heal() ­‚µC³B
+ do_init_pc() natual_heal‚ÌC³‚ɇ‚킹‚Ä•ÏXB
+ pc_calcstatus() ‹|‚ð‘•”õ‚µ‚Ä‚È‚¢‚ƃƒV‚Ì–Ú‚ª“K—p‚³‚ê‚È‚¢‚悤‚É•ÏXB
+ ƒgƒ‰ƒXƒgŽÀ‘•B
+ pc_damage() ƒCƒ“ƒfƒ…ƒA‚ɑΉž‚·‚é‚悤‚É•ÏXB
+Emap/pc.h
+ pc_checkoverhp(), pc_checkoversp()‚ð’ljÁB
+Emap/map.h
+ MAX_PC_CLASS‚ð+1‚ÉB
+Emap/atcomand.c
+ comand‚ðcommand‚É•ÏXB
+ strncmp‚ðstrcmpi‚É•ÏXB‚æ‚Á‚ăRƒ}ƒ“ƒh‚ª‘啶ŽšA¬•¶Žš‚ð‹æ•Ê‚·‚é
+ •K—v‚ª‚È‚­‚È‚è‚Ü‚µ‚½B
+Emap/npc.h
+ npc_parse_mob()‚ð’ljÁB(ˆÓ–¡‚Í‚ ‚è‚Ü‚¹‚ñ‚ª...)
+Emap/temdb.c
+ itemdb_readdb()‚Åclass_equip_db.txt‚ð“ǂނ悤‚É•ÏXB
+Edb/class_equip_db.txt ‚ð’ljÁB‚±‚±‚Å‘•”õ‚·‚éƒNƒ‰ƒX‚ðŽw’肵‚Ü‚·B‚È‚¢ê‡‚Í
+ item_db.txt‚É‚ ‚éjob‚ðŽg‚¢‚Ü‚·BŠÜ‚Ü‚ê‚Ă镨‚ÍŠ®‘S‚È•¨‚Å‚Í‚È‚­
+ Žg—p—á’ö‚Ì•¨‚Å‚·B
+Emap/skill.c - skill_status_change_start() ƒCƒ“ƒfƒ…ƒA‚ÌŽžŠÔ‚𳂵‚­•ÏXB
+Emap/battle.h
+ battle_config‚Ìexp_rate‚ðbase_exp_rate‚É•ÏXB,job_exp_rate‚ð’ljÁB
+ battle_get_mexp()‚ð’ljÁB
+Emap/battle.c
+ battle_config‚Ìexp_rate‚ðbase_exp_rate‚É•ÏXB,job_exp_rate‚ð’ljÁB
+ battle_get_mexp()‚ð’ljÁB
+ battle_calc_magic_attack()‚ð•ÏXBƒ_[ƒ“ƒAƒ“ƒfƒbƒh‚Ń{ƒX‚Ì”FŽ¯‚ðmvp
+ exp‚Å‚·‚é‚悤‚É•ÏXB
+Emap/mob.c
+ mob_readdb() base_exp_rate,job_exp_rate‚ɑΉžB
+ mob_readdb() ƒ{ƒX‚Ì”FŽ¯‚ðmvpŒoŒ±’l‚Å‚·‚é‚悤‚É•ÏXB
+ mob_damage() mvp‚ðŽæ‚鎞‚̈—‚ð•ÏXBd‚³‚ª50%‚ð‰z‚¦‚é‚Æ°‚É
+ —Ž‚¿‚é‚悤‚É•ÏX‚ÆFXB
+Econf/battle_athena.cnf
+ base_exp_rateA,job_exp_rate‚ð’ljÁB
+E0308‚Å–Y‚ꂽ•¨
+ ŒÃ‚­Â‚¢” AŒÃ‚¢ƒJ[ƒh’ŸAŒÃ‚¢Ž‡F‚Ì” ‚ÌŽg—p‚Å“¾‚ç‚ꂽƒAƒCƒeƒ€‚ð
+ Ž‚Á‚Ä‚È‚­‚È‚Á‚½‚çƒAƒCƒeƒ€‚ð°‚É—Ž‚Æ‚·‚悤‚É•ÏXB
+ »‘¢‚Í‚·‚Å‚É0302‚Å“K—pB
+
+----------
+//334 by C}{RIS
+
+E‚ ‚Ղ낾‚Ì332.txt‚ðpet_db.txt‚Æ‚µ‚Ä“¯«B
+
+EŠeŽíƒeƒLƒXƒgƒtƒ@ƒCƒ‹‚̃~ƒX‚ðC³
+ Eattr_fix.txt@‘®«C³‚ªƒ}ƒCƒiƒX‚É“­‚¢‚Ä“G‚ª‰ñ•œ‚·‚é–â‘è‚ðC³B
+ „Œ³‚̉ñ•œŽd—l‚É–ß‚µ‚½‚¢ê‡attr_fix.txt‚ðƒŠƒl[ƒ€‚µAattr_fix_old.txt‚ðattr_fix.txt‚ɃŠƒl[ƒ€‚µ‚ĉº‚³‚¢B
+ Emob_db.txt@ƒ‚ƒ“ƒXƒ^[‚Ì“ú–{Œê–¼‚ð–{ŽI‚Æ“ˆêB
+ Ecast_db.txt@‰r¥ŽžŠÔAƒfƒBƒŒƒC‚ð–{ŽI‚Æ“ˆêB
+
+----------
+//333 by ŒÓ’±—–
+
+EƒMƒ‹ƒh‹@”\’ljÁ
+ EƒMƒ‹ƒh‚Ì“¯–¿‚Æ“¯–¿‰ðÁ
+
+ (char/)
+ inter.c/int_guild.c
+ ƒpƒPƒbƒg’·/ƒMƒ‹ƒhˆ—’ljÁ
+ (map/)
+ clif.c/clif.h
+ clif_guild_reqalliance,clif_guild_allianceack,
+ clif_guild_delalliance,clif_parse_GuildRequestAlliance,
+ lif_parse_GuildReplyAlliance,clif_parse_GuildDelAlliance’ljÁ
+ iƒMƒ‹ƒh“¯–¿ŠÖŒW‚̃pƒPƒbƒgˆ—j
+ intif.c/intif.h
+ ƒMƒ‹ƒh“¯–¿ŠÖŒW‚̃pƒPƒbƒgˆ—’ljÁ
+ guild.c/guild.h
+ ƒMƒ‹ƒh“¯–¿ŠÖŒW‚̈—’ljÁ
+ map.h
+ struct map_session_data‚Éguild_alliance,guild_alliance_account’ljÁ
+
+EƒMƒ‹ƒhƒGƒ“ƒuƒŒƒ€‚Ì•ÏX‚ªƒ}ƒbƒvŽI‚ðÄ‹N“®‚µ‚È‚¢‚Æ—LŒø‚É‚È‚ç‚È‚¢ƒoƒOC³
+
+ guild.c/guild.h
+ guild_emblem_changed‚ÌC³
+
+----------
+//331 by ‰ß‹Ž‚Ìli1
+
+EƒyƒbƒgƒVƒXƒeƒ€C³(Š®¬“x25%)
+
+ EŠeŽí•ßŠl—pƒAƒCƒeƒ€‚ð‚»‚ê‚¼‚ê‘Ήž‚·‚é“G‚ɑ΂µ‚ÄŽg—p‚·‚邱‚Æ‚Å
+ @³‚µ‚­—‘‚ªŽè‚É“ü‚é‚悤‚É‚È‚è‚Ü‚µ‚½B
+ EŠeŽí•ßŠl—pƒAƒCƒeƒ€‚ð‘Ήž‚µ‚È‚¢“G‚ÉŽg—p‚µ‚½ê‡‚̓‹[ƒŒƒbƒg‚ª•K‚¸Ž¸”s‚µ‚Ü‚·B
+ Eƒyƒbƒg‚ªuŽž‚É•\Ž¦‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½B
+ Eƒyƒbƒg‚ð‰EƒNƒŠƒbƒN‚·‚é‚ƃƒjƒ…[‚ªo‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+ E‘¼FXŠëŒ¯‚È—v‘f‚ðC³‚µ‚Ü‚µ‚½B(ƒAƒCƒeƒ€‚Ì”‚ÌŒ¸­“™‚̃oƒO‚𒼂µ‚Ü‚µ‚½)
+
+ (db/)
+ item_db.txt
+ ŠeŽí•ßŠl—pƒAƒCƒeƒ€‚ɑΉž‚·‚é‚悤petƒRƒ}ƒ“ƒh‚𳂵‚­‘‚«‚Ü‚µ‚½B
+
+ (common/)
+ mmo.h
+ s_pet ƒyƒbƒg\‘¢‘Ì‚Épet_item_id‚ð’ljÁ
+
+ (map/)
+ clif.c
+ clif_birthpet()‚ðC³B³‚µ‚­—‘‚ªŒ¸‚éA³‚µ‚¢—‘‚ÌID‚ðŽæ“¾‚·‚é‚悤C³
+ ‚±‚ê‚É‚æ‚Á‚ÄA³‚µ‚­npc_petŠÖ”‚ª“®‚«‚Ü‚·B
+
+ clif_spawnnpc()‚ðC³iWBUFPOS(buf,36,nd->bl.x,nd->bl.y)‚ÆA”’l‚ð26‚©‚ç36‚Ö•ÏX‚µ‚Ü‚µ‚½)
+ ‚±‚ê‚É‚æ‚Á‚ăyƒbƒg‚ªuŽž‚É•\Ž¦‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½B
+
+ npc.c
+ npc_pet()‚ðC³B
+
+ pet.c/pet.h
+ ƒyƒbƒgŠÖ˜A‚Ìׂ©‚ÈŠÖ”‚ð‚±‚¿‚ç‚É‚Ü‚Æ‚ß‚éˆ×A’ljÁ‚µ‚Ü‚µ‚½B
+ Œ»Ý‚̓yƒbƒg‚Ì”»’èŠÖŒW‚ð‚Ü‚Æ‚ß‚Ä‚ ‚è‚Ü‚·B
+
+ script.c
+ “Á‚É‘å‚«‚ÈC³‚Í‚ ‚è‚Ü‚¹‚ñB
+----------
+//330 by ‰ß‹Ž‚Ìli1
+
+EƒyƒbƒgƒVƒXƒeƒ€“±“ü(Š®¬“x‚Q‚O“)
+ E“G‚ɑ΂µ‚ĕߊl—pƒAƒCƒeƒ€‚ðŽg—p‚·‚鎖‚ª‰Â”\‚Æ‚È‚è‚Ü‚µ‚½B
+ @(‚Ü‚¾n‚µ‚Ä‚¢‚È‚¢ƒŠƒ“ƒS‚Ì‚ÝŽg—p‰Â”\A“G‚ɂ‚©‚Á‚Ä‚àƒ|ƒŠƒ“‚Ì—‘‚ªŽè‚É“ü‚è‚Ü‚·B)
+ EŠeŽí—‘‚ɑ΂µ‚ăyƒbƒg‚ð•\Ž¦‚·‚鎖‚ª‚Å‚«‚Ü‚·A‚½‚¾‚µ‚È‚º‚©ˆê“x‰æ–ÊŠO‚É
+ @‚Å‚È‚¢‚ƃyƒbƒg‚ª•\Ž¦‚³‚ê‚Ü‚¹‚ñB
+ @(‹°‚ç‚­ƒyƒbƒg•\Ž¦‚ÌÛ‚És‚Á‚Ä‚¢‚éNPCƒXƒe[ƒ^ƒX‚ª³‚µ‚­“ü‚Á‚Ä‚¢‚È‚¢)
+ E•\Ž¦‚³‚ꂽƒyƒbƒg‚ªƒpƒtƒH[ƒ}ƒ“ƒX‚ðs‚¢‚Ü‚·B
+
+ (db/)
+ item_db.txt
+ Œg‘Ñ—‘›z‰»‹@‚ðŽg—p‰Â”\‚É bpetƒRƒ}ƒ“ƒh(Œg‘Ñ—‘›z‰»‹@Žg—p)
+ u‚Ü‚¾n‚µ‚Ä‚È‚¢ƒŠƒ“ƒSv‚ðŽg—p‰Â”\‚É petƒRƒ}ƒ“ƒh(‚ ‚émob‚ɑ΂µ‚ÄŽg—p‰Â”\‚É‚·‚é)
+ (common/)
+ mmo.h
+ s_pet@ƒyƒbƒg\‘¢‘̒ljÁ
+ mmo_charstatus@ƒyƒbƒg\‘¢‘Ì錾•Ï”’ljÁ(pet)
+ (map/)
+ clif.c/clif.h
+
+ int clif_catchpet(struct map_session_data *sd,int pet_id);
+ void clif_ruletpet(int fd,struct map_session_data *sd);
+ int clif_judgepet(struct map_session_data *sd,int target_id);
+ int clif_sendegg(struct map_session_data *sd);
+ void clif_listpet(int fd,struct map_session_data *sd);
+ int clif_birthpet(struct map_session_data *sd,int pet_id);
+ void clif_menupet(int fd,struct map_session_data *sd);
+
+ ˆÈã‚ÌŠÖ”‚ð’ljÁ‚µƒyƒbƒg‚ÉŠÖ‚·‚鈗‚ðs‚Á‚Ä‚¨‚è‚Ü‚·B
+ (ƒ‹[ƒŒƒbƒgA—‘‘I‘ð‘‹AƒpƒtƒH[ƒ}ƒ“ƒXA‚»‚Ì‚Ù‚©FX)
+
+ npc.c/npc.h
+ int npc_pet(struct map_session_data *sd,int name_id);
+ ƒyƒbƒg•\Ž¦‚ׂ̈̊֔‚ð’ljÁ
+ (‚±‚ÌŠÖ”“à•”‚Ńyƒbƒg‚Ì•\Ž¦ˆ—‚ðs‚Á‚Ä‚¢‚Ü‚·B“KØ‚ÉC³‚µ‚Ä‚­‚¾‚³‚¢)
+
+ script.c
+ int buildin_catchpet(struct script_state *st);
+ int buildin_birthpet(struct script_state *st);
+ ‚ð’ljÁ‚µ‚Ü‚µ‚½BƒXƒNƒŠƒvƒg‚Épet,bpet‚ð’ljÁ‚µ‚Ü‚µ‚½B
+----------
+//329 by ŒÓ’±—–
+
+EƒMƒ‹ƒh‹@”\’ljÁ
+ EƒMƒ‹ƒh‚Ö‚ÌEXP‚Ìã”[
+ EƒMƒ‹ƒhƒŒƒxƒ‹ƒAƒbƒv
+ EƒMƒ‹ƒhƒXƒLƒ‹‚ÌŠ„‚èU‚è
+
+ (db/)
+ exp_guild.txt
+ ƒMƒ‹ƒhƒŒƒxƒ‹‚ÌŒoŒ±’lƒf[ƒ^ƒx[ƒX
+ (common/)
+ mmo.h
+ GBI_*,GMI_*‚Ì’è‹`‚̒ljÁ‚È‚Ç
+ (char/)
+ int_guild.c
+ EXP‚⃌ƒxƒ‹ƒAƒbƒvAƒXƒLƒ‹ƒAƒbƒvˆ—’ljÁ‚È‚Ç
+ inter.c
+ ƒpƒPƒbƒg’·’ljÁ
+ (map/)
+ guild.c/guild.h
+ ƒMƒ‹ƒhˆ—’ljÁ
+ intif.c/intif.h
+ ƒMƒ‹ƒhƒpƒPƒbƒgˆ—’ljÁ
+ clif.c
+ clif_guild_skillinfo()C³
+ clif_guild_skillup()’ljÁ
+ pc.c
+ pc_skillup()‚ŃMƒ‹ƒhƒXƒLƒ‹‚ÌꇂÍguild_skillup()‚ðŒÄ‚Ԃ悤‚É
+ pc_gainexp()‚Åã”[EXP‚Ì‚½‚ß‚Éguild_payexp()‚ðŒÄ‚Ԃ悤‚É
+
+EƒMƒ‹ƒh‹@”\C³
+ EƒMƒ‹ƒhƒƒ“ƒo[‚ªƒƒOƒCƒ“‚⃃OƒAƒEƒg‚·‚é‚ÆA
+ ƒƒOƒCƒ“’†‚̃Mƒ‹ƒhƒƒ“ƒo[‚ɃMƒ‹ƒhŒnƒpƒPƒbƒg‚ª‘—‚ç‚ê‚È‚­‚È‚é–â‘èC³
+
+ guild.c
+ guild_recv_memberinfoshort()‚ÌC³
+
+----------
+//328 by ŒÓ’±—–
+
+EƒMƒ‹ƒh‹@”\‚̒ljÁ‚È‚Ç
+ E’Ç•ú‹@”\‰¼ŽÀ‘•i’Ç•ú‚µ‚½ƒLƒƒƒ‰‚àĉÁ“ü‰Â”\•ˆê•”î•ñ‚ªƒ_ƒ~[j
+ EƒXƒLƒ‹‚Ì•\Ž¦i•\Ž¦‚¾‚¯‚Å‚·Bã‚°‚½‚è‚Ío—ˆ‚Ü‚¹‚ñj
+
+ (common/)
+ mmo.h
+ struct guild_explusion‚Ì•ÏX
+ (char/)
+ int_guild.c
+ ’Ç•úˆ—’ljÁ
+ ‹óƒMƒ‹ƒhƒ`ƒFƒbƒN‚ȂǒljÁ
+ (map/)
+ guild.c/guild.h
+ ƒMƒ‹ƒhƒXƒLƒ‹ŠÖŒW‚̃AƒNƒZƒT‚ȂǒljÁ
+ clif.c
+ clif_guild_skillinfo()‚ÌC³
+ clif_guild_explusionlist()’ljÁ
+
+Eƒ^[ƒ“ƒAƒ“ƒfƒbƒh‚ªƒ{ƒXŒnƒAƒ“ƒfƒbƒh‚ÅMISS‚É‚È‚éƒoƒOC³
+ Eƒ^[ƒ“ƒAƒ“ƒfƒbƒhŽ¸”sŽž‚̃_ƒ[ƒW‚ªŽg‚í‚ê‚Ü‚·
+
+ battle.c
+ battle_calc_magic_damage()‚ÌC³
+
+----------
+//327 by ‚¢‚Ç
+EŒoŒ±’lƒe[ƒuƒ‹‚É‚P‰ÓŠŠÔˆá‚¢‚ª‚ ‚Á‚½‚Ì‚ÅC³
+ db/exp.txt
+
+----------
+//326 by ‚¢‚Ç
+EcharŽI‚ÌVŽI,ƒƒ“ƒeƒiƒ“ƒX’†‚̃tƒ‰ƒOî•ñ‚ðÝ’è‚Å‚«‚é‚悤‚É‚µ‚½
+EcharŽI‚ÌŽI–¼‚Ì’·‚³‚ª16ƒoƒCƒg‚É‚È‚Á‚Ä‚¢‚½•”•ª‚ð20ƒoƒCƒg‚ÉC³
+
+ (login/)
+ login2.c
+ parse_login()‚ÌC³
+ login.h
+ struct mmo_char_server‚ÌC³
+ (char/)
+ char2.c
+ check_connect_login_server(),do_init()‚ÌC³
+ (conf/)
+ char_athena.cnf
+@ Echar_maintenance‚ð1‚É‚·‚é‚ƃƒOƒCƒ“l”‚ÌŒã‚ë‚É(“_ŒŸ’†)‚ª‚‚­
+@ Echar_new‚ð1‚É‚·‚é‚ÆŽI–¼‚Ì‘O‚É[V]‚ª‚‚­
+ (doc/)
+ ƒpƒPƒbƒg‰ðÍ.txt
+ E¡‰ñ‚Ì•ÏX‚É”º‚¤ˆê•”C³
+
+----------
+//325 by Mind Twist(224&0293)
+E“G(NPC)ƒXƒLƒ‹‚̒ljÁiƒcƒŠ[‚ɒljÁ‚Ì‚Ýj
+ db/skill_db.txt
+ EƒMƒ‹ƒhƒXƒLƒ‹‘Š•Ï‚í‚炸•s–¾c‚±‚ÌŒ`Ž®‚¶‚á‚È‚¢‚Ì‚©‚ÈH
+
+----------
+//324 by non
+
+Emob‚̃^[ƒQƒbƒgŒãˆÚ“®‚ðC³
+Emob‚̈ړ®‘¬“x‚ðDB‚©‚甽‰f‚³‚¹‚é‚悤‚É
+
+ (map/)
+ mob.c
+ mob_ai_sub_hard()‚ÌC³
+
+EŽÎ‚ß”»’è‚ðC³
+ EFW“™‚ł̎΂ߔ͈͂ð–{ŽIŽd—l‚É
+
+ (map/)
+ map.c
+ map_calc_dir()‚ÌC³
+
+----------
+//322 by ŒÓ’±—–
+
+EƒƒOƒCƒ“Žž‚É•K‚¸ƒp[ƒeƒB[‚©‚眖¼‚³‚ê‚éƒoƒOC³
+ E0318‚Ìuƒp[ƒeƒB‚𜖼‚³‚ꂽ‚Ì‚É`v‚Å‚ÌC³ƒ~ƒX
+
+ (char/)
+ int_party.c
+ ƒp[ƒeƒB[‹£‡Žž‚̃ƒbƒZ[ƒW‚ɉüs’ljÁ
+ (map/)
+ party.c
+ party_check_member()‚ÌC³
+
+EƒMƒ‹ƒh‰ï˜bŽÀ‘••C³‚È‚Ç
+ (char/)
+ int_guild.c
+ ƒMƒ‹ƒh‹£‡Žž‚̃ƒbƒZ[ƒW‚ɉüs’ljÁ
+ (map/)
+ guild.c/guild.c
+ guild_send_message(),guild_recv_message()‚ȂǒljÁ
+ intif.c/intif.h
+ intif_parse_GuildMessage()‚ȂǒljÁ
+ clif.c/clif.h
+ clif_guild_message(),clif_parse_GuildMessage()‚ȂǒljÁ
+ clif_guild_basicinfo()‚̃pƒPƒbƒg‚ð0150‚©‚ç01b6‚É•ÏX
+
+EƒoƒbƒNƒXƒeƒbƒv‚ª‚à‚Ì‚·‚²‚­‰ö‚µ‚¢‚¯‚lj¼ŽÀ‘•
+ EŽg‚¤‚ƃ_ƒ[ƒW‚ð‚P‹ò‚ç‚Á‚½‚悤‚ÉŒ©‚¦‚Ü‚·B(ŽÀۂ̓_ƒ[ƒW‚O‚Å‚·)
+
+ skill.c
+ skill_castend_damage_id()C³
+
+------------------
+//321 by@‰ß‹Ž‚Ìli
+E‹|–î‘•”õŒø‰Ê‚Ì‚ÝŽÀ‘•(‘½X‚¨‚©‚µ‚¢“_‚Í‘¶Ý‚·‚邪‘•”õ‚ªo—ˆA–î‚ÌŒø‰Ê‚ªo‚é)
+ map/clif.c map/clif.h
+ clif_itemlist()’ljÁ
+ Ž‚¿•¨‚Ì’†‚Å‹|–î‚ÉŠ„‚è“–‚Ä‚éƒpƒPƒbƒg”Ô†‚ð0x8000‚Æ‚·‚鈗’ljÁ
+
+ clif_arrowequip(struct map_session_data *sd,int val); //self
+ ‚ð’ljÁB‚±‚Ì’†‚Å‹|–î‘•”õƒpƒPƒbƒgˆ—‚ðs‚Á‚Ä‚Ü‚·
+ map/pc.c
+ pc_equipitem()@‹|–î‘•”õ’ljÁ
+
+ Žc‚³‚ꂽ–â‘è“_F
+ E@–Œ¸‚ç‚È‚¢
+ E@ƒŠƒƒO‚·‚é‚Ɩ‚P‚É‚È‚é
+ E@‘•”õ‚µ‚Ä‚¢‚é–•\Ž¦‚³‚ê‚È‚¢(©‘½•ª‘•”õpos‚ÌÝ’è‚ð‚µ‚Ä‚¢‚È‚¢ˆ×‚©‚Æ)
+ E@–î‚ð‘•”õ‰ðœ‚Å‚«‚È‚¢(‘¼‚Ì–î‚ð‘•”õ‚µ‚È‚¨‚¹‚Α•”õ‚µ‚½–î‚ÌŒø‰Ê‚É‚È‚è‚Ü‚·
+
+----------
+//320 by ‚¢‚Ç
+EˆÈ‰º‚̃pƒPƒbƒg‚̃Gƒ‰[ƒR[ƒh‚Ìà–¾‚ð’ljÁ
+ doc/ƒpƒPƒbƒg‰ðÍ.txt
+ R 006a <error No>.B
+ R 0070 <error No>.B
+ R 0081 <type>.B
+
+----------
+//319 by mk
+ENPC‚Ƃ̉ï˜b’†‚É‘•”õ•ÏXAƒAƒCƒeƒ€AƒXƒLƒ‹‚ðŽg—p‚Å‚«‚È‚¢‚悤‚É‚µ‚Ü‚µ‚½
+ map/clif.c
+ ŠeŠ‚Åsd->npc_id‚ðƒ`ƒFƒbƒN‚µ‚Ä‚Ü‚·
+
+Eˆê•”‚Ì”í‚蕨‚łธBŒã‚É‘•”õ‰ÓŠ‚ª‚¨‚©‚µ‚­‚È‚éƒoƒO‚ðC³
+ map/script.c
+ buildin_successrefitem ‚̃R[ƒh‚ðC³
+
+EƒJ[ƒh‚É‚æ‚é’ljÁŒø‰Ê‚¨‚æ‚шÙí‘Ï«”­“®ˆ—‚ÌC³
+ map/skill.c
+ ƒCƒ“ƒfƒbƒNƒX‰Šú’l‚ªŠÔˆá‚Á‚Ä‚¢‚é‚ÆŽv‚í‚ê‚é‚Ì‚ÅC³iSC_POISON -> SC_STONEj
+
+Eƒ{ƒEƒŠƒ“ƒOƒoƒbƒVƒ…‚̉¼ŽÀ‘•AƒOƒŠƒ€ƒgƒD[ƒX‚ÌŽg—pðŒ’ljÁ
+ Eƒ{ƒEƒŠƒ“ƒOƒoƒbƒVƒ…‚ð‰¼ŽÀ‘•B‚«”ò‚΂µˆ—‚â‚Á‚Ä‚é‚Ì‚Å
+ @battle.c ‚Ìblewcount‚ðƒRƒƒ“ƒgƒAƒEƒg‚µ‚Ü‚µ‚½
+ EƒOƒŠƒ€ƒgƒD[ƒX‚ÌŽg—pðŒiƒnƒCƒfƒBƒ“ƒO•ƒJƒ^[ƒ‹‘•”õjƒ`ƒFƒbƒN’ljÁ
+ @‚±‚ñ‚ÈŠ´‚¶‚Å‘¼‚̃XƒLƒ‹Žg—pðŒ‚à’ljÁ‚µ‚Ä‚à‚æ‚¢‚Ì‚©‚ÈH
+ Eskill_blown ‚Ì‚«”ò‚΂µ•ûŒü‚ðƒ^[ƒQƒbƒg‚Ƃ̈ʒu‚ªd‚È‚Á‚Ä‚¢‚é‚Æ‚«‚Í
+ @ƒ‰ƒ“ƒ_ƒ€‚Å‚Í‚È‚­ƒLƒƒƒ‰ƒNƒ^[‚ðŒã‚ë‚Ö‚«”ò‚΂·‚悤‚É•ÏX‚µ‚Ü‚µ‚½
+ map/skill.c
+ skill_castend_damage_id()•ÏX
+ skill_check_condition()•ÏX
+ skill_blown()•ÏX
+
+EƒAƒTƒVƒ““ñ“—¬ˆ—‚ÉŠÖ‚·‚éC³?
+ E‘•”õˆê——‚Ödrag&dropŽž‚É—¼Žè‚ªÔ‚­ƒ}[ƒLƒ“ƒO‚³‚ê‚é‚悤‚ÉC³
+ @ƒAƒTƒVƒ“‚Å‚Í•Ší‘•”õ‰ÓŠ‚ª—¼Žè‚É‚È‚é‚悤item_equippoint‚ð•ÏX
+ @‚»‚ê‚É”º‚¢pc.c‚Ìpc_equipitem‚ðC³
+ E‹tŽèƒ_ƒ[ƒW‚ð•\Ž¦‚µ‚Ä‚Ý‚Ü‚µ‚½
+ @‚Ü‚Æ‚à‚Ƀ_ƒ[ƒWŒvŽZ‚â‚Á‚Ä‚È‚¢‚Ì‚ÅUŒ‚‰ñ”‚ÌŠm”F‚¾‚¯‚Å‚·
+ EƒJƒ^[ƒ‹’ÇŒ‚‚ƶŽèUŒ‚‚ÌMISS‚ð–³—‚â‚è•\Ž¦
+ (map/)
+ itemdb.c (itemdb.hAclif.cApc.c)
+ itemdb_equippoint() ‚ð•ÏX i“ñ“—¬‚ðl—¶j
+ ˆø”‚ð(int nameid) -> (struct map_session_data *sd,int nameid)‚É
+ ˆø”•ÏX‚É”º‚¢éŒ¾(itemdb.h)‚ƌĂÑo‚µ‘¤(clif.c ,pc.c)‚à•ÏX
+ pc.c
+ pc_equipitem(), pc_checkitem()‘•”õƒ`ƒFƒbƒN‚ðC³
+ battle.c
+ battle_calc_weapon_attack(),battle_weapon_attack()
+ ã‚É‚à‘‚«‚Ü‚µ‚½‚ª¶Žè‚̃_ƒ[ƒWŒvŽZ‚Ís‚Á‚Ä‚Ü‚¹‚ñ
+ (ƒJ[ƒhA‘®«“™‚à–¢“K—p)‰EŽè‚Æ“¯‚¶ƒ_ƒ[ƒW“ü‚ê‚Ķ‰EC—û“K—p‚µ‚Ä‚Ü‚·
+ ƒJƒ^[ƒ‹’ÇŒ‚‚ƶŽèƒ_ƒ[ƒW‚ðƒ~ƒX‚³‚¹‚é•û–@(ƒpƒPƒbƒg?)‚ª‚í‚©‚ç‚È‚¢‚Ì‚Å
+ ŒvŽZŒã‚̃_ƒ[ƒW‚ª-1‚Ìê‡Adamage=0‚ð‘—‚é‚悤‚É‚µ‚Ä‚¢‚Ü‚·
+ ‚à‚Á‚Æ‚æ‚¢•û–@‚ª‚ ‚é‚Ì‚Å‚µ‚½‚çC³‚¨Šè‚¢‚µ‚Ü‚·
+
+EŠ®‘S‰ñ”ð‚ÌŒvŽZ‚ðLuk‚Å‚Í‚È‚­Flee2‚Å”»’f‚·‚é‚悤‚ÉC³
+ map/battle.c
+ battle_calc_weapon_attack()
+
+ (db)
+ item_db.txtAitem_db2.txt
+ ‘•”õ•i‚̈ꕔƒ{[ƒiƒXŒø‰Ê‚ð’ljÁ
+ mob_db.txt
+ –^Š‚Å‚¤‚‚³‚ê‚Ä‚¢‚½‚à‚Ì‚ð­‚µC³
+ ‚Ü‚¾Mode‚âDrop‚É–â‘è“_‚ª‚ ‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñ
+
+----------
+//0318 by ŒÓ’±—–
+
+E‚ ‚éŒö•½•ª”zPT‚Æ‚»‚ÌPT‚É‘®‚³‚È‚¢PC‚ª‹¤“¬‚·‚é‚ÆŽI‚ª–\‘–‚·‚éƒoƒOC³
+
+ mob.c
+ mob_damage()‚ÌEXP•ª”zˆ—C³
+
+Eƒp[ƒeƒB‚𜖼‚³‚ꂽ‚Ì‚ÉŠ‘®‚µ‚Ä‚¢‚é‚悤‚ÉŒ©‚¦‚éƒoƒOC³
+ EŠY“–ƒLƒƒƒ‰‚ªƒƒOƒAƒEƒgó‘Ô‚ÌŽž‚Éœ–¼‚³‚êA‚»‚ÌŒãA“¯C•ÊƒLƒƒƒ‰‚ª
+ “¯ƒp[ƒeƒB‚ÉŠ‘®‚µ‚È‚¨‚µA‚³‚ç‚ÉŒ³‚̃Lƒƒƒ‰‚ŃƒOƒCƒ“‚·‚é‚ÆA
+ œ–¼”»’è‚ÉŽ¸”s‚µ‚ăp[ƒeƒB‚ÉŠ‘®‚µ‚½‚Ü‚Ü‚Å‚ ‚é‚Æ‚³‚ê‚Ä‚µ‚Ü‚¤–â‘èC³
+
+ party.c
+ party_check_member()‚ÌC³
+
+
+----------
+//0317 by nabe
+
+Eu`‚³‚ñ‚©‚çŽæˆø‚ð—v¿‚³‚ê‚Ü‚µ‚½Bv‚ªŽ©•ª‚Ì–¼‘O‚É‚È‚Á‚Ä‚¢‚½‚Ì‚ðC³
+ trade.c/clif.c/clif.h
+ clif_traderequest()‚ÅŽæˆø‘ŠŽè‚̃Lƒƒƒ‰–¼‚ð“n‚·‚悤‚É•ÏX
+
+----------
+//0316 by nabe
+
+E—¼Žè•Ší‚ð¸˜B‚·‚é‚Æ•ÐŽè‘•”õ‚É‚È‚éƒoƒO‚ðC³
+ script.c
+ buildin_successrefitem()‚ÅA—¼Žè•Ší‚Ìꇓ™‚É‘•”õ‰ÓŠƒ`ƒFƒbƒN
+
+----------
+//0315 by ŒÓ’±—–
+
+EPC‚ÌSPAWNƒ^ƒCƒ~ƒ“ƒO‚ð•ÏX
+ Eƒ}ƒbƒvˆÚ“®(ƒƒOƒCƒ“)ŽžAƒ[ƒfƒBƒ“ƒOI—¹Œã‚ÉSPAWN‚·‚é‚悤‚ÉB
+ Eƒ[ƒh’†‚ÉUŒ‚‚³‚ꂽ‚肵‚È‚­‚È‚è‚Ü‚·B
+ EƒMƒ‹ƒh/ƒp[ƒeƒBî•ñ“Ç‚Ýž‚Ý‘O‚É–¼‘O‰ðŒˆƒpƒPƒbƒg‚ª—ˆ‚é–â‘è‚à
+ C³‚³‚ê‚é‚Í‚¸‚Å‚·B
+
+ pc.c
+ pc_setpos()‚Åmap_addblock,clif_spawnpc‚̌ĂÑo‚µ‚ðŽ~‚ß‚½B
+ clif.c
+ clif_parse_LoadEndAck‚Åmap_addblock,clif_spawnpc‚ðŒÄ‚Ԃ悤‚ÉB
+
+EinterŽIƒpƒPƒbƒgˆ—‚Ìd‘å‚È–â‘è‚ðC³
+ Eˆê“x‚ɃpƒPƒbƒg‚ð‘—M‚Å‚«‚È‚©‚Á‚½ê‡A–³ŒÀƒ‹[ƒv‚Ɋׂé–â‘èC³
+
+ (char/)
+ char2.c
+ parse_frommap()C³
+ inter.c
+ inter_parse_frommap()C³
+ (map/)
+ chrif.c
+ chrif_parse()C³
+ intif.c
+ intif_parse()C³
+
+EƒMƒ‹ƒh‚Ì‹@”\’ljÁ
+ E‘¼l‚̃Gƒ“ƒuƒŒƒ€‚ªŒ©‚¦‚é‚悤‚ÉB
+ EƒƒOƒCƒ“’¼Œã‚ÌŽ©•ª‚̃Gƒ“ƒuƒŒƒ€‚ªŒ©‚¦‚é‚悤‚ÉB
+ E’E‘Þ‚Å‚«‚é‚悤‚ÉBi’Ç•ú‚Í‚Ü‚¾‚Å‚·j
+
+ <ƒpƒPƒbƒgî•ñˆø‚«‘±‚«–ÍW>
+ E016c,016d,0163,015c‚È‚Ç‚ÌÚׂÈî•ñ
+ EƒMƒ‹ƒhƒXƒLƒ‹‚ÌID‚ª‚í‚©‚élA‹³‚¦‚Ä‚Ù‚µ‚¢‚Å‚·B
+ 158,205,331‚ ‚½‚è’²‚ׂ܂µ‚½‚ªƒ_ƒ‚È–Í—lB
+
+ (common/)
+ mmo.h
+ MAX_GUILD‚ð36‚ÉB
+ (char/)
+ int_guild.c
+ ’E‘ނ̃pƒPƒbƒg•ÏX
+ inter.c
+ ƒpƒPƒbƒg’·C³
+ (map/)
+ clif.c/clif.h
+ clif_set0078,clif_set007b‚ÌC³
+ clif_guild_belonginfo‚ÌC³
+ clif_guild_skillinfo’ljÁ
+ guild.c/guild.h
+ ’E‘ނȂǂ̈—’ljÁ
+ intif.c/intif.h
+ ’E‘ނȂǂ̈—’ljÁ‚È‚Ç
+
+
+----------
+//0314 by ‚¢‚Ç
+
+EcharŽI‚ÆmapŽI‚ÌŽI”ãŒÀ‚ð30‚Ɉø‚«ã‚°
+ login/login.h
+ char/char.h
+
+Emap_athena1.cnf‚ðmap_athena.cnf‚ɃŠƒl[ƒ€
+@‚»‚ê‚É”º‚¢Aathena.sh‚ð•ÏX
+
+EƒpƒPƒbƒg‰ðÍŽ‘—¿‚ðdoc/‚Ɉړ®
+
+
+----------
+//0313 by ŒÓ’±—–
+
+EƒMƒ‹ƒh‚Ì‹@”\’ljÁ
+ EƒMƒ‹ƒhŠ©—U/–ðE“à—e•ÏX/ƒƒ“ƒo[‚Ì–ðE•ÏX‚È‚Ç
+ Eguild.txt‚Ì‘Ž®‚ª‚Ü‚½•Ï‚í‚è‚Ü‚µ‚½‚ªA‘O‚̃f[ƒ^‚à“Ç‚Ýž‚ß‚é‚Í‚¸‚Å‚·B
+
+ <ƒpƒPƒbƒgî•ñˆø‚«‘±‚«–ÍW>
+ E016c,016d,0163,015c‚È‚Ç‚ÌÚׂÈî•ñ
+ EŽ©•ªˆÈŠO‚ÌPC‚ÌŠ‘®ƒMƒ‹ƒhID‚ð’Ê’m‚·‚éƒpƒPƒbƒg
+
+ (common/)
+ mmo.h
+ struct guild ‚ð•ÏX
+ (char/)
+ int_guild.c/inter.c
+ ˆ—’ljÁ/ƒpƒPƒbƒg’·’ljÁ
+ (map/)
+ guild.c/guild.h/intif.c/intif.h
+ ˆ—’ljÁ
+ clif.c/clif.h
+ ƒMƒ‹ƒhŠÖŒW‚̃pƒPƒbƒgˆ—’ljÁ
+
+Ehelp.txt‚ðC³
+ help.txt
+
+E0311‚É‚æ‚镶Žš‰»‚¯‚ðC³
+ README
+ map/pc.c
+
+----------
+//0312 by ‚¢‚Ç
+
+E@hƒRƒ}ƒ“ƒh‚ð@help‚É•ÏX
+E“Ç‚Ýž‚Þƒ}ƒbƒvƒf[ƒ^‚Ì’è‹`•”•ª‚ð•ÏX
+
+----------
+//0311 by tk44
+EAssassin “ñ“—¬‘•”õAASPD–â‘èC³
+ - map\pc.c
+ pc_equipitem(), pc_calcstatus(), pc_checkitem()
+
+E“ñ“—¬ŠQŒvŽZC³‚Ü‚¾ˆ—’†
+
+----------
+//0310 by ŒÓ’±—–
+
+EƒƒO‚âƒf[ƒ^‚ÉŽg‚¤‰üsƒR[ƒh‚ðmmo.h‚ÅÝ’è‰Â”\‚É
+ (common/)
+ mmo.h
+ RETCODE‚ʼnüsƒR[ƒh‚𕶎š—ñ‚Å’è‹`‚µ‚Ü‚·B
+ WindowsŒn‚¾‚ÆCR/LF‚È‚Ì‚Å"\r\n",UNIXŒn‚¾‚Æ"\n"‚Å‚·B
+ •Ê‚ɳ‚µ‚­Žw’肵‚È‚­‚Ä‚àAthenaŽ©‘Ì‚Í–â‘è‚È‚­“®ì‚·‚é‚Í‚¸‚Å‚·B
+ (login/)
+ login2.c
+ (char/)
+ char2.c/int_storage.c/int_party.c/int_guild.c
+ •Û‘¶‚·‚é‰üsƒR[ƒh‚ðRETCODEˆË‘¶‚É•ÏXB
+ ‰üsƒR[ƒh‚Ɉˑ¶‚¹‚¸‚É“Ç‚ß‚é‚悤‚ÉC³B
+
+EƒNƒ‰ƒCƒAƒ“ƒg‚©‚ç•s–¾‚ȃpƒPƒbƒg‚ª—ˆ‚½‚çƒ_ƒ“ƒv‚·‚é‚悤‚É
+ E#define DUMP_UNKNOWN_PACKET 1 ‚ðƒRƒƒ“ƒg‰»‚·‚ê‚΃_ƒ“ƒv‚µ‚Ü‚¹‚ñB
+
+ clif.c
+ •s–¾ƒpƒPƒbƒg‚̈—‚Ń_ƒ“ƒvˆ—‚ð’ljÁB
+
+EƒMƒ‹ƒh‹@”\‚̒ljÁ
+ EƒGƒ“ƒuƒŒƒ€•ÏX/’m•ÏXŽÀ‘•
+ Eguild.txt‚Ì‘Ž®‚ª•Ï‚í‚è‚Ü‚µ‚½‚ªA‘O‚̃f[ƒ^‚à“Ç‚Ýž‚ß‚é‚Í‚¸‚Å‚·
+
+ (char/)
+ int_guild.c/inter.c
+ ƒMƒ‹ƒhƒpƒPƒbƒgˆ—AƒpƒPƒbƒg’·
+ (map/)
+ guild.c/guild.h
+ ‹@”\’ljÁ
+ intif.c/intif.h
+ ƒMƒ‹ƒhŠÖŒWƒpƒPƒbƒg’ljÁ
+ clif.c/clif.h
+ ƒMƒ‹ƒhŠÖŒWƒpƒPƒbƒg’ljÁ
+
+----------
+//0309 by C}{RIS
+
+Eƒ{ƒEƒŠƒ“ƒOƒoƒbƒVƒ…‚ð”͈ÍUŒ‚‰»‚µ‚Ü‚µ‚½B
+Eƒvƒƒ“ƒeƒ‰‚É‘•”õ•i”Ì”„NPC‚ð’ljÁ‚µ‚Ü‚µ‚½B
+ map_athena1.cnf‚Ì
+ npc_shop1J.txt‚ðƒRƒƒ“ƒgƒAƒEƒg‚·‚ê‚Ζ³Œø‚Éo—ˆ‚Ü‚·B
+EƒAƒCƒeƒ€‚Ì–¼‘O‚ÆID‚ð‘‚¢‚½ƒeƒLƒXƒgƒtƒ@ƒCƒ‹‚ð“Y•tBiitem.listj
+
+----------
+//0308 by Ž€_
+EŽ©‘R‰ñ•œ‚̃vƒƒOƒ‰ƒ€‚ðC³‚µ‚Ü‚µ‚½B
+ ‚±‚ê‚Å‘åä•v‚¾‚Æ‚¢‚¢‚Å‚·‚ª...
+ pc.c
+ pc_natural_heal()“™‚ðC³B
+ pc_percentheal()‚ð­‚µC³B
+ pc_checkskill()‚ð­‚µC³BƒXƒLƒ‹‚ª‚È‚¢ê‡0‚ð•Ô‚·‚悤‚É
+ •ÏX‚µ‚Ü‚µ‚½B‘¼‚Ì.cƒtƒ@ƒCƒ‹‚àC³‚·‚é•K—v‚ª‚ ‚è‚Ü‚µ‚½‚Ì‚Å
+ C³‚µ‚Ü‚µ‚½B
+E4l–Ú‚Æ5l–ڂ̃Lƒƒƒ‰‚ðÁ‚¹‚È‚¢–â‘è‚ðC³B
+EŽn‚ß‚©‚çƒiƒCƒt‚ƃRƒbƒgƒ“ƒVƒƒƒc‚ðŽ‚‚悤‚É•ÏXB
+ELOOK_SHEILD‚ðLOOK_SHIELD‚ÉC³B
+Emmo_charstatus‚Ìsheild‚ðshield‚ÉC³B
+E.logƒtƒ@ƒCƒ‹‚âaccount.txtƒtƒ@ƒCƒ‹‚ðnotepad‚ÅŠJ‚­‚Æ—ñ‚ª‘S•”Œq‚¢‚Å‚¢‚é
+ –â‘è‚ðC³B
+E—”‚ðŽžŠÔ‚É‚æ‚Á‚ĉŠú‰»‚·‚é‚悤‚É•ÏXB
+ map.c
+ do_init()‚ð­‚µC³B
+
+‘¼‚É•ÏX‚µ‚½ƒtƒ@ƒCƒ‹‚à‚ ‚è‚Ü‚·‚ª‘S•”Šo‚¦‚Ä‚Ü‚¹‚ñ‚Ì‚Å...
+
+----------
+//0307 by ŒÓ’±—–
+
+EV‹KPC‚̉ŠúˆÊ’u‚ðchar_athena.cnf‚É‘‚¯‚é‚悤‚É‚µ‚½
+ start_point: ƒ}ƒbƒv–¼,x,y ‚̂悤‚ÉŽw’肵‚Ü‚·B
+ <—á> start_point: new_1-1.gat,53,111
+
+ (char/)
+ char2.c
+
+EƒMƒ‹ƒh‚̈ꕔ‹@”\
+ EƒMƒ‹ƒh쬂­‚ç‚¢‚µ‚©“®‚«‚Ü‚¹‚ñ
+ EŠ©—U/’E‘Þ/‰ðŽU/î•ñ‚Ì•ÏX/ƒGƒ“ƒuƒŒƒ€/’m‚È‚Ç‚Í‚·‚ׂĖ¢ŽÀ‘•‚Å‚·
+
+ <ØŽÀ‚È—v–]>
+ ƒMƒ‹ƒhŠÖŒW‚̃pƒPƒbƒgî•ñ‚ª‘S‘R‘«‚è‚Ü‚¹‚ñB‚í‚©‚él‚Í‹³‚¦‚Ä‚­‚¾‚³‚¢B
+ Œ»Ý‚̂܂܂ł̓Gƒ“ƒuƒŒƒ€‚Æ’m‚­‚ç‚¢‚µ‚©ŽÀ‘•‚Å‚«‚È‚¢‰Â”\«‚ªcB
+
+ (common/)
+ mmo.h
+ ƒMƒ‹ƒhŠÖŒW‚Ì\‘¢‘̂ƒ蔒ljÁ
+ (char/)
+ inter.c
+ ƒpƒPƒbƒg’·î•ñ’ljÁ
+ int_guild.c/int_guild.h
+ ŽÀۂ̈—’ljÁ
+ (map/)
+ map.h
+ struct map_session_data‚ɃMƒ‹ƒhŠÖŒW‚̃ƒ“ƒo’ljÁ
+ guild.c/guild.h
+ V‹K’ljÁBƒMƒ‹ƒh‹@”\—p
+ pc.c
+ pc_authok()‚ŃMƒ‹ƒhŠ‘®ŽžAguild_request_info()‚ðŒÄ‚Ԃ悤‚ÉB
+ clif.c/clif.h
+ ƒMƒ‹ƒhƒpƒPƒbƒg’ljÁ
+ intif.c/intif.h
+ ƒMƒ‹ƒhƒpƒPƒbƒg’ljÁ
+
+E0303‚Å‚ÌC³uMAXHP‚È‚Ç‚ªƒT[ƒo[‚ƃNƒ‰ƒCƒAƒ“ƒg‚Å`v‚ðŒ³‚É–ß‚µ‚½
+ EVPC‚ðì‚é‚Æ‚«‚ɳ‚µ‚­HP‚È‚Ç‚ðŒvŽZ‚µ‚Ä‚­‚ê‚é‚悤‚É‚È‚Á‚½‚Ì‚Å
+ –ß‚µ‚Ä‚à•½‹C‚¾‚낤‚Æ—\‘ªB
+ EƒƒOƒCƒ“’¼Œã‚Éd—ÊŒx‚ªo‚Ä‚µ‚Ü‚¤‚½‚ßB
+
+ pc.c
+ pc_authok()‚ÌC³
+
+E”͈͎w’蕦‚«‚̈—C³
+ E‚Å‚«‚邾‚¯Žw’肵‚½”‚Æ“¯‚¶‚¾‚¯•¦‚­‚悤‚É
+ (áŠQ•¨‚È‚Ç‚É‚æ‚镦‚«–WŠQ‚̉ñ”ðŽ¸”sŽžA‘O‚̉ñ”ðŒ‹‰Ê‚ðŽg‚¤)
+
+ mob.c
+ mob_once_spawn_area()‚ÌC³
+
+----------
+//0305 by ‚¢‚Ç
+EV‹KPC‚̈ʒu‚ð‰SŽÒC—ûê‚É•ÏXB
+EmapŽI‚ªcharŽI‚ÉÚ‘±‚Å‚«‚È‚¢•s‹ï‡‚ÌC³B
+
+----------
+//0304 by Ž€_
+EŽ©‘R‰ñ•œ‚Ì—Ê‚ÆŽžŠÔ‚ð•ÏXBŠØ‘ŽI‚É“K—p‚³‚ê‚Ă镨‚Å‚·‚ª“ú–{‚É‚à
+ “K—p‚³‚ê‚Ä‚é‚Í‚¸‚Å‚·B(‘½•ª... ‚â‚Á‚Ä‚Ü‚¹‚ñ‚Ì‚Å‚í‚©‚è‚Ü‚¹‚ñBŠ¾)
+ HP‚Í–ˆ4•b‚É 1 + vit/6 + max_hp/200 ‚ð‰ñ•œA
+ SP‚Í–ˆ8•b‚É 1 + int/6 + max_sp/100 ‚ð‰ñ•œ‚µ‚Ü‚·B
+EƒXƒLƒ‹HP‰ñ•œ—ÍŒüã‚É‚æ‚é‰ñ•œ‚ð
+ ƒXƒLƒ‹ƒŒƒxƒ‹*5 + max_hp/50‚É•ÏXB
+EƒXƒLƒ‹SP‰ñ•œ—ÍŒüã‚É‚æ‚é‰ñ•œ‚ð
+ ƒXƒLƒ‹ƒŒƒxƒ‹*3 + max_sp/50‚É•ÏXB
+EƒXƒLƒ‹ˆÚ“®ŽžHP‰ñ•œŽÀ‘•B
+ ¡‚ÌŠŽ~‚Ü‚Á‚Ä‚é‚Ì‚Æ”ä‚ׂÄ1/4‚Ì—Ê‚ð‰ñ•œ‚µ‚Ü‚·B(ŽžŠÔ‚Í“¯‚¶‚Å‚·B)
+Evit‚Æint‚É‚æ‚Á‚ĉñ•œŽžŠÔ‚ª’Z‚­‚È‚é‚Ì‚Å‚Í‚È‚­‰ñ•œ—Ê‚ª‘‚¦‚Ü‚·B
+EÅ‘åHP‚ÆÅ‘åSP‚ÌŒvŽZŒöŽ®‚ð•ÏXB
+ map.h
+ int inchealtick‚Ì•Ï‚í‚è‚Éint inchealhptick;‚Æ int inchealsptick;‚ð’ljÁB
+ int parame[6] ‚ð’ljÁBÅ‘åSP‚ÌŒvŽZ‚ׂ̈̕¨‚Å‘•”õ‚É‚æ‚Á‚Äオ‚Á‚½
+ ƒpƒ‰ƒ[ƒ^‚ðŽ‚Á‚ÂB
+ pc.c
+ pc_hpheal(),pc_spheal(),pc_natural_heal_sub(),pc_natural_heal()‚ð
+ Ž©•ª‚̃R[ƒh‚É‘‚«Š·‚¦‚Ü‚µ‚½‚ªˆê‰ž³í‚É“®‚«‚Ü‚·‚ª
+ ‘¼‚̃R[ƒh‚ɉe‹¿‚ª‚È‚¢‚©‚Ç‚¤‚©‚Í‚í‚©‚è‚Ü‚¹‚ñB
+ pc_additem()‚ð­‚µ‚¾‚¯C³B
+ hp_coefficient‚ðint‚©‚çdouble‚É•ÏXB
+ pc_calcstatus()‚Æpc_readdb()‚ðC³B
+ job_db1.txt
+ E‹Æ‚ÌŒv”‚ð•ÏX‚µ‚Ü‚µ‚½B(ƒNƒ‹ƒZƒCƒ_[“™‚̃f[ƒ^‚Í
+ Š®‘S‚È•¨‚¶‚á‚ ‚è‚Ü‚¹‚ñB)
+
+Echar2.c‚ð­‚µ‚¾‚¯•ÏXB
+ char2.c
+ make_new_char()‚ð­‚µ‚¾‚¯•ÏXB(ì‚Á‚½’¼Œã‚ÉHP‚ÆSP‚ªŠ®‘S‚É
+ ‰ñ•œ‚µ‚Ä‚é‚悤‚É•Ï‚¦‚Ü‚µ‚½B)
+ parse_char()‚ð­‚µ‚¾‚¯C³BŠØ‘‚̃Nƒ‰ƒCƒAƒ“ƒg‚ÅŒq‚¢‚Ä‚à
+ ˆÙ킪‚È‚¢‚悤‚É‚µ‚Ü‚µ‚½B(0x187ƒpƒPƒbƒg‚̈—‚ð“ü‚ꂽ‚¾‚¯
+ ‚Å‚·‚ª... ‚±‚ê‚ÍYare‚©‚玂Á‚Ä‚«‚½•¨‚Å‚·B)
+Estrcmpi“™‚Ìdefine‚ðatcomand.h‚©‚çmmo.h‚Ɉړ®‚µ‚Ü‚µ‚½B
+ atcomand.h, mmo.h C³B
+E‰ñ•œƒAƒCƒeƒ€‚ðŽg—p‚·‚鎞vit‚ƃXƒLƒ‹HP‰ñ•œ—ÍŒüã‚É‚æ‚éƒ{[ƒiƒX‚ª•t‚­
+ ‚悤‚É•ÏXBƒ{[ƒiƒX‚Í
+ ‰ñ•œ—Ê *(1 + HP‰ñ•œ—ÍŒüãƒXƒLƒ‹ƒŒƒxƒ‹*0.1 + vit/100)
+ ‚É‚È‚è‚Ü‚·B
+EƒCƒOƒhƒ‰ƒVƒ‹‚ÌŽÀ‚ƃCƒOƒhƒ‰ƒVƒ‹‚ÌŽí‚ð‰¼ŽÀ‘•B(‰ñ•œ‚Í‚µ‚Ü‚·‚ªƒGƒtƒFƒNƒg‚ª
+ o‚Ü‚¹‚ñBitem_db‚Ń^ƒCƒv‚ð•Ï‚¦‚Ä‚à‘Ê–Ú‚Å‚µ‚½B)
+ script.c
+ buildin_fixheal()‚Æbuildin_percentheal()‚ð’ljÁB
+ buildin_fixheal()‚Íbuildin_heal()‚ªƒXƒLƒ‹‚Ævit‚É‚æ‚Á‚ĉñ•œ—Ê‚ª•Ï‚í‚é
+ Žd—l‚É‚È‚Á‚½‚Ì‚ÅŒ³‚Ìbuildin_heal()‚Ì–¼‘O‚¾‚¯‚ð•Ï‚¦‚½•¨‚Å‚·B
+ buildin_percentheal()‚Í“ü—Í‚³‚ꂽ”Žš‚ð%‚Æ‚µ‚ÄHP‚ÆSP‚ðÅ‘åHP‚Æ
+ Å‘åSP‚ð %”ä—¦‚ɉñ•œ‚µ‚Ü‚·B
+ ƒXƒNƒŠƒvƒgfixheal A percentheal ’ljÁBŽg—p•û–@‚Íheal‚Æ“¯‚¶‚Å‚·B
+ fixheal‚Ívit‚ƃXƒLƒ‹HP‰ñ•œ—ÍŒüã‚É‚æ‚éƒ{[ƒiƒX‚ª‚È‚¢•¨‚Å
+ percentheal ‚ÍŒã‚Ì”Žš‚ð %‚É”FŽ¯‚µ‚Ü‚·B
+ pc.h
+ pc.c
+ pc_percentheal()‚ð’ljÁB
+ item_db.txtAitem_db2.txt
+ ƒCƒOƒhƒ‰ƒVƒ‹‚ÌŽÀ‚ƃCƒOƒhƒ‰ƒVƒ‹‚ÌŽí‚ð•ÏXB
+
+----------
+//0303 by ŒÓ’±—–
+
+E*.grf‚̃pƒX‚ðmap_athena.cnf‚É‚à‘‚¯‚é‚悤‚É‚µ‚½B
+ Emap_athena.cnf‚Éudata_grf: ../data/data.grfv‚â
+ usdata_grf: ../sakurai/sdata.grfv‚̂悤‚ɃpƒXŽw’è‚Å‚«‚Ü‚·B
+ Egrf-files.txt‚ª‚ ‚éꇂ»‚¿‚ç‚Ìݒ肪—D悳‚ê‚Ü‚·
+
+ (common/)
+ grfio.c/grfio.h
+ grfio_setdatafile(),grfio_setsdatafile()’ljÁB
+ data_file,sdata_file‚ðƒtƒ@ƒCƒ‹ƒ[ƒJƒ‹‚ȃOƒ[ƒoƒ‹•Ï”‚É•ÏXB
+
+E@stpoint,@skpoint‚É•‰’lŽw’è‚͈̔̓`ƒFƒbƒN‚ð’ljÁ
+E@zenyƒRƒ}ƒ“ƒh’ljÁiƒ[ƒj[‚Ì’²®j
+E@str,@agi,@vit,@int,@dex,@lukƒRƒ}ƒ“ƒh’ljÁiŠî–{ƒpƒ‰ƒ[ƒ^’²®j
+
+ atcommand.c
+ @stpoint,@skpointC³
+ @zeny,@str,@agi,@vit,@int,@dex,@luk’ljÁ
+
+Eƒƒ}[ƒiƒCƒg‚ðŽg‚¤‚Æ‚Ú‚Á‚½‚­‚ç‚ê‚Ä‚¢‚½–â‘è‚ðC³
+E•Ší»‘¢•”•ª‚̃R[ƒh‚𑽭•ÏX
+ EÞ—¿Á”‚ðƒAƒCƒeƒ€‚ª•¡”ƒCƒ“ƒfƒbƒNƒX‚É•ª‚©‚ê‚Ä‚¢‚éꇂɑΉž‚³‚¹‚½
+ i‚R–œŒÂŒÀŠE‚ð’´‚¦‚é‚ƕʃCƒ“ƒfƒbƒNƒX‚ðŽg‚¤Žd—l‚¾‚Á‚½‹C‚ª‚·‚é‚Ì‚Åj
+ EŽ¸”sŽž‚É‚àŽü‚è‚É’Ê’m‚·‚é‚悤‚É‚µ‚½
+
+ skill.c
+ skill_check_condition()‚ÌC³
+ skill_produce_mix()‚ÌC³
+
+E•Ší»‘¢Šm—¦‚ðconfƒtƒ@ƒCƒ‹‚Å”{—¦Žw’è‚Å‚«‚é‚悤‚ÉC³
+
+ (conf/)
+ battle_athena.cnf
+ weapon_produce_rate’ljÁ
+ (map/)
+ skill.c
+ skill_produce_mix()‚ÌC³
+
+E•ŠíATKƒTƒCƒY•â³ƒe[ƒuƒ‹‚ðŠO•”‚©‚ç“Ç‚Ýž‚ނ悤‚É‚µ‚½
+E¸˜B¬Œ÷Šm—¦/¸˜Bƒ{[ƒiƒX‚È‚Ç‚ðŠO•”‚©‚ç“Ç‚Ýž‚ނ悤‚É‚µ‚½
+E‰ß踘Bƒ{[ƒiƒX‚É‚æ‚é’ljÁƒ_ƒ[ƒWŽÀ‘•
+
+ (db/)
+ size_fix.txt
+ ƒTƒCƒY•â³ƒe[ƒuƒ‹
+ refine_db.txt
+ ¸˜BŠÖŒWƒf[ƒ^
+ (map/)
+ pc.c
+ pc_readdb()‚Å“Ç‚Ýž‚Ý
+ battle.c
+ battle_calc_weapon_attack()‚ɉß踘Bƒ{[ƒiƒXˆ—’ljÁ
+
+EMAXHP‚È‚Ç‚ªƒT[ƒo[‚ƃNƒ‰ƒCƒAƒ“ƒg‚ňႤ’l‚ÉŒ©‚¦‚éƒoƒOC³
+ ƒƒOƒCƒ“’¼Œã‚̃Xƒe[ƒ^ƒXŒvŽZ‚ÌŒ‹‰Ê‚𒼂¿‚É‘—M‚·‚é‚悤‚É‚µ‚½
+
+ (map/)
+ pc.c
+ pc_authok()‚Å‚Ìpc_calcstatus()‚̃tƒ‰ƒO‚ð0‚É‚µ‚½
+ ‚±‚ê‚Åpc_calcstatus()‚̃tƒ‰ƒOƒpƒ‰ƒ[ƒ^‚Í–¢Žg—pH
+
+Eitem_db‚Ìu”EŽÒƒX|ƒcv‚ðu”EŽÒƒX[ƒcv‚ÉC³
+ (db/)
+ item_db.txt/item_db2.txt
+ ”EŽÒƒX[ƒc‚Ì–¼Ì•ÏX
+
+EƒƒOƒCƒ“l”‚𒲂ׂéƒc[ƒ‹‚ð“Y•t
+ Perl»‚È‚Ì‚ÅŽÀs‚É‚ÍPerl‚ª•K—v‚Å‚·B
+ Žg—p•û–@‚Ȃǂ̓GƒfƒBƒ^‚ÅŠJ‚¢‚ÄŒ©‚Ä‚­‚¾‚³‚¢B
+ Žg‚¢•û‚ª—Ç‚­‚í‚©‚ç‚È‚¢l‚ÍŽè‚ðo‚³‚È‚¢‚Ù‚¤‚ª‚¢‚¢‚Å‚·B
+
+ (tool/)
+ getlogincount
+ ƒƒOƒCƒ“l”Š“¾PerlƒXƒNƒŠƒvƒg
+
+----------
+//0302 by Ž€_
+EƒAƒCƒeƒ€»‘¢ Šm—¦”»’èŽÀ‘•B
+ “S‚ÌꇬŒ÷—¦‚Í
+ (20 + base_level*0.3 + DEX*0.2 + LUK*0.1 + —v‹ƒXƒLƒ‹ƒŒƒxƒ‹*6)%
+ |“S‚Æ‘®«ÎA¯‚Ì‚©‚¯‚ç‚Ìê‡
+ (10 + base_level*0.3 + DEX*0.2 + LUK*0.1 + —v‹ƒXƒLƒ‹ƒŒƒxƒ‹*5)%
+ •Ší‚Í
+ ((2.5 + base_level*0.15 + DEX*0.1 + LUK*0.05 + —v‹ƒXƒLƒ‹ƒŒƒxƒ‹*5 +
+ ‹à•~ - ‘®«Î‚Ư‚Ì‚©‚¯‚ç) * (1 - (•ŠíƒŒƒxƒ‹ - 1)*0.2) +
+ ƒXƒLƒ‹•ŠíŒ¤‹†ƒŒƒxƒ‹*1)%
+ ‹à•~: ‚È‚¢ê‡ -5%‚Å‹à•~‚Í 0%AƒIƒŠƒfƒIƒRƒ“‚Ì‹à•~‚Í
+ 2.5%A‰©‹à‚Ì‹à•~‚Í 5%AƒGƒ“ƒyƒŠƒEƒ€‚Ì‹à•~‚Í 7.5%
+ ‘®«Î‚Ư‚Ì‚©‚¯‚ç: ‘®«Î‚ª‚ ‚éê‡ 5%‚ÅX‚É
+ ¯‚Ì‚©‚¯‚ç‚Ì” * 5%‚ð‘«‚µ‚Ü‚·B
+ ‚É‚È‚è‚Ü‚·‚ª‚¿‚å‚Á‚ÆŠm—¦‚ª’á‚·‚¬‚é‹C‚à‚µ‚Ü‚·‚Ì‚Å
+ base_level*0.3 + DEX*0.2 + LUK*0.1‚ðbase_level*0.5 + DEX*0.4 + LUK*0.3‚É
+ base_level*0.15 + DEX*0.1 + LUK*0.05‚ðbase_level*0.4 + DEX*0.3 + LUK*0.2
+ ’ö“x‚É•Ï‚¦‚½•û‚ª‚¢‚¢‚©‚à’m‚è‚Ü‚¹‚ñB
+ skill.c
+ skill_can_produce_mix() ‚Æ skill_produce_mix() ‚ðC³B
+ produce_db.txt
+ ¯‚Ì‚©‚¯‚ç‚ðƒXƒLƒ‹‘®«Î»‘¢‚ª•K—v‚É•ÏXB
+E*.grf“™‚ðÝ’u‚¹‚¸ƒfƒBƒŒƒNƒgƒŠ‚©‚ç‚Ì“Ç‚Ýž‚ނ悤‚ÉC³B(‚±‚ê‚ÍYare‚©‚ç
+ Ž‚¿ž‚ñ‚¾•¨‚Å‚·‚ª...)
+ grfio.c
+ grfio_init()‚ðC³B
+ grf-file.txt
+ V‹K’ljÁBgrfƒtƒ@ƒCƒ‹‚ª‚ ‚éƒfƒBƒŒƒNƒgƒŠÝ’è—pB
+E“Ç‚Ýž‚Þƒ}ƒbƒv‚Ìő唂ð512‚ÉC³B
+ mmo.h
+ MAX_MAP_PER_SERVER‚ð384‚©‚ç512‚ÉC³B
+Epc.c‚Épc_search_inventory()‚ð’ljÁB
+ ‹@”\‚Íitem_id‚̃AƒCƒeƒ€‚ðŽ‚Á‚Ä‚é‚©‚Ç‚¤‚©‚ðŠm”F‚µ‚Ä
+ Ž‚Á‚Ä‚éꇂ»‚Ìindex‚ð•Ô‚·B
+ item_id‚ª0‚Ìꇂ͋󂯂Ă銂Ìindex‚ð•Ô‚·B
+ pc_additem()‚Æpc_takeitem()‚¾‚¯‚ð­‚µC³B
+EGMƒRƒ}ƒ“ƒh‚É@stpoint‚Æ@skpoint‚ð’ljÁB
+ @stpoint ”Žš - ƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒg‚ðã‚°‚éB
+ @skpoint ”Žš - ƒXƒLƒ‹ƒ|ƒCƒ“ƒg‚ðã‚°‚éB
+ atcomand.c
+ C³B
+ atcomand.h
+ strcmpi“™‚ðLinux‚Å‚àŽg‚¦‚é‚悤‚ÉC³B
+
+----------
+//0301 by ŒÓ’±—–
+
+EÅ‘åHP‚ª32767‚ð’´‚¦‚é‚ƈÙí‚È’l‚É‚È‚é–â‘è‚ÌC³
+ELv‚ª99‚ð’´‚¦‚é‚Æ‚«‚àƒGƒtƒFƒNƒg‚ðo‚·‚悤‚É‚µ‚½(Ž©•ª‚É‚ÍŒ©‚¦‚È‚¢–Í—l)
+E”z’uMOB‚É‚æ‚éƒCƒxƒ“ƒg‚ŃCƒxƒ“ƒg–¼‚ª‚SƒoƒCƒgˆÈã‚Æ‚¢‚¤§ŒÀ‚ð‚‚¯‚½
+EteleportŽž‚ÉŽæˆø’†’fAƒ`ƒƒƒbƒg‘ÞŽºA‘qŒÉ•Û‘¶ˆ—‚ð‚·‚é‚悤‚É‚µ‚½
+
+ pc.c
+ pc_calcstatus()‚ÌC³(HPŒvŽZ)
+ pc_setpos()‚ÌC³(Žæˆø’†’f‚È‚Ç)
+ clif.c
+ clif_set0078(),clif_set007b(),clif_spawnpc()‚ÌC³(Lv99ƒGƒtƒFƒNƒg)
+ npc.c
+ npc_parse_mob()‚ÌC³
+
+E@h‚Åhelp.txt‚ª“Ç‚ß‚È‚¢‚Æ‚«‚É—Ž‚¿‚éƒoƒOC³
+E@lvup/@joblvup‚Å•‰’l‚ð“ü‚ê‚é‚ÆLvƒ_ƒEƒ“‚ª‰Â”\‚É‚È‚Á‚½
+
+ atcommand.c
+ @h,@lvup,@joblvupˆ—‚ÌC³
+
+EƒeƒŒƒ|[ƒg‚È‚Ç‚ÌÁ–ŃGƒtƒFƒNƒg‚ÌC³
+
+ skill.c
+ ƒeƒŒƒ|‚ÌÁ–ŃGƒtƒFƒNƒg‚ð•ÏX
+
+Eó‘ÔˆÙí‚ÉŠÖ‚·‚éƒXƒNƒŠƒvƒgŽÀ‘• [sc_start]‚Æ[sc_end]B
+E—ÎPOTA—΃n[ƒu‚È‚ÇŽÀ‘•
+E‘•”õƒ{[ƒiƒXƒf[ƒ^’ljÁ
+
+ (db/)
+ item_db.txt/item_db2.txt
+ ‘•”õƒ{[ƒiƒXƒf[ƒ^‚ð’ljÁ
+ —ÎPOTA—΃n[ƒu‚Ȃǂ̃XƒNƒŠƒvƒg’ljÁ
+ (map/)
+ script.c
+ buildin_warp()‚ÅÁ–ŃGƒtƒFƒNƒg‚ð•ÏX
+ buildin_sc_start(),buildin_sc_end()’ljÁ
+
+----------
+//0299 by ŒÓ’±—–
+
+ENPCƒCƒxƒ“ƒg‚ŃGƒNƒXƒ|[ƒg‚³‚ꂽƒ‰ƒxƒ‹‚ðŽw’è‚Å‚«‚é‚悤‚É‚µ‚½
+ NPCƒXƒNƒŠƒvƒg‚ÅOn`‚ÅŽn‚܂郉ƒxƒ‹‚ð’è‹`‚·‚é‚ÆAƒGƒNƒXƒ|[ƒg‚µ‚Ü‚·B
+ NPCƒCƒxƒ“ƒg‚Å"NPC–¼(orƒCƒxƒ“ƒg–¼)::ƒ‰ƒxƒ‹–¼"‚Æ‚·‚é‚ÆA
+ Žw’肵‚½ƒ‰ƒxƒ‹‚©‚çŽÀs‚Å‚«‚Ü‚·B
+ ƒ‰ƒxƒ‹–¼‚Í24ƒoƒCƒgˆÈ“à‚É‚µ‚ĉº‚³‚¢B
+ ‚ ‚ƃvƒƒOƒ‰ƒ€“I‚Ƀƒ‚ƒŠŒø—¦ˆ«‚¢‚Å‚·BŒã“úC³—\’è
+ <—á>
+ NPCutestv‚̃XƒNƒŠƒvƒg“à‚Å OnEvent: ‚ƃ‰ƒxƒ‹’è‹`‚µ‚½ê‡A
+ NPCƒCƒxƒ“ƒgutest::OnEventv‚ÅŽw’èˆÊ’u‚©‚çŽÀs‚Å‚«‚Ü‚·B
+
+ (conf/)
+ npc_test_ev.txt
+ ƒ‰ƒxƒ‹Žw’è‚̃Tƒ“ƒvƒ‹‚à‚¿‚傱‚Á‚ƒljÁ
+ (map/)
+ script.c/script.h
+ script_get_label_db()‚Ȃǂ̒ljÁB
+ parse_script‚Åscriptlabel_db‚Ƀ‰ƒxƒ‹ƒf[ƒ^‚ð’ljÁ‚·‚é
+ npc.c/npc.h
+ npc_event_export()‚ȂǒljÁ
+ npc_parse_script‚щƒxƒ‹ƒf[ƒ^‚ðƒGƒNƒXƒ|[ƒg‚·‚é
+ map.h
+ struct map_session_data ‚Ìeventqueue‚̃Cƒxƒ“ƒg–¼‚̃TƒCƒY‚ð
+ 50ƒoƒCƒg‚É‚µ‚½B
+
+EAGI‚ÆDEX‚É‚æ‚éASPDŒvŽZ‚ÌÅ‘å’l‚ð180‚©‚ç190‚É•ÏX
+ pc.c
+ pc_calcstatus()‚ÌASPDŒvŽZC³
+
+Eskill_db.txt/cast_db.txt‚Ì“Ç‚Ýž‚Ý‚ðskill.c‚É•ÏX
+
+ pc.c
+ pc_readdb()‚ÌC³
+ skill.c
+ skill_readdb()‚̒ljÁ
+
+EƒAƒCƒeƒ€»‘¢‰¼ŽÀ‘•
+ Šm—¦”»’肪–¢ŽÀ‘•‚Å‚·B•K‚¸¬Œ÷‚µ‚Ü‚·B
+
+ (db/)
+ item_db.txt/item_db2.txt
+ ƒAƒCƒeƒ€»‘¢‚ɑΉžiŒg‘Ñ—p—nz˜FA‹à’Æ‚È‚Çj
+ produce_db.txt
+ V‹K’ljÁB»‘¢ƒŠƒXƒgB
+ (map/)
+ skill.c/skill.h
+ struct skill_produce_db’ljÁ
+ skill_readdb()‚Åproduce_db.txt‚ð“ǂނ悤‚É
+ clif.c/clif.h
+ clif_skill_produce_mix_list(),clif_parse_ProduceMix()’ljÁ
+ script.c/script.h
+ »‘¢—pƒRƒ}ƒ“ƒh[produce]ì¬B
+ ˆø”‚Í»‘¢—p”’l‚ÅA1-4‚ª•Ší»‘¢(Lv)A16‚ªzÎ
+
+
+----------
+//0298 by ŒÓ’±—–
+
+ELoginŽI‚̃pƒXƒ[ƒhˆÃ†‰»ƒ^ƒCƒv‚ðŽ©“®”FŽ¯‚Å‚«‚é‚悤‚É•ÏX
+ login.h‚ÌPASSWORDENC‚ð3‚É‚·‚é‚ÆŽ©“®”FŽ¯‚µ‚Ü‚·B
+ ʼn‚Épasswordencrypt‚Ń`ƒFƒbƒN‚µAŽ¸”s‚·‚ê‚Î
+ passwordencrypt2‚Ń`ƒFƒbƒN‚µ‚Ü‚·B
+
+ (login/)
+ login2.c/login.h
+ ˆÃ†‰»ƒpƒXƒ[ƒh‚ÌƇ•”•ª‚ðC³
+
+EƒAƒJƒEƒ“ƒg쬃c[ƒ‹‚ð“Y•t
+ Perl»‚È‚Ì‚ÅŽÀs‚É‚ÍPerl‚ª•K—v‚Å‚·B
+ Žg—p•û–@‚Ȃǂ̓GƒfƒBƒ^‚ÅŠJ‚¢‚ÄŒ©‚Ä‚­‚¾‚³‚¢B
+ Žg‚¢•û‚ª—Ç‚­‚í‚©‚ç‚È‚¢l‚ÍŽè‚ðo‚³‚È‚¢‚Ù‚¤‚ª‚¢‚¢‚Å‚·B
+
+ (tool/)
+ addaccount
+ ƒAƒJƒEƒ“ƒg쬃c[ƒ‹PerlƒXƒNƒŠƒvƒg
+
+EƒXƒLƒ‹‚̒ljÁC³
+ Eƒtƒ@ƒCƒ„[ƒEƒH[ƒ‹‚̉ñ”§ŒÀ‚ðƒOƒ‹[ƒv–ˆ‚©‚烆ƒjƒbƒg–ˆ‚ÉC³
+ EƒNƒ@ƒOƒ}ƒCƒA‰¼ŽÀ‘• i“G‚̈ړ®‘¬“xAƒLƒƒƒ‰‚Ì•\Ž¦”’l‚͕ω»‚¹‚¸j
+ EƒEƒH[ƒ^[ƒ{[ƒ‹‰¼ŽÀ‘•i“®ì‚ª³‚µ‚¢‚Ì‚©•s–¾j
+ EƒtƒƒXƒgƒmƒ”ƒ@‰¼ŽÀ‘•iƒGƒtƒFƒNƒg‚ª—Ç‚­‚í‚©‚ç‚È‚¢‚Ì‚Å“K“–j
+ Eƒxƒmƒ€ƒ_ƒXƒg‰¼ŽÀ‘•i”͈͂Ƃ©‚ª³‚µ‚¢‚©‚Ç‚¤‚©•sˆÀj
+ Eƒvƒƒ{ƒbƒNAƒI[ƒgƒo[ƒT[ƒNA¹‘Ì~•ŸA»‚Ü‚«AΓŠ‚°‚ÌŽÀ‘•
+ EƒGƒ“ƒ`ƒƒƒ“ƒgƒ|ƒCƒYƒ“‚Ì“Å•t—^ŽÀ‘•
+
+ *’ˆÓ* “Åó‘Ô‚ÍŒ©‚½–Ú‚¾‚¯‚ÅŒø‰Ê‚Í–¢ŽÀ‘•
+
+ (db/)
+ skill_db.txt
+ »‚Ü‚«/ΓŠ‚°/ƒEƒH[ƒ^[ƒ{[ƒ‹‚È‚ÇC³
+ (map/)
+ skill.c/skill.h
+ FXC³
+ mob.c/mob.h
+ mob_target()’ljÁBMOB‚̃^ƒQ—p
+ battle.c
+ battle_get_*()ŒnC³‚È‚Ç
+ pc.c
+ pc_calcstatus()C³
+
+----------
+//0297 by ŒÓ’±—–
+
+ELoginŽI‚ªƒpƒXƒ[ƒhˆÃ†‰»‚ɑΉž
+ ˆÃ†‰»key‚ÍŽI‹N“®Žž‚Ɉê“x‚¾‚¯ì¬‚µ‚Ü‚·B
+
+ **’ˆÓ**
+ ˆÃ†‰»ƒpƒXƒ[ƒh‚ðŽg‚Á‚Ä‚¢‚éꇂÍAƒAƒJƒEƒ“ƒg‚ð쬂ł«‚Ü‚¹‚ñB
+ ƒAƒJƒEƒ“ƒg‚ðì‚éꇂÍclientinfo.xml‚ð•ÒW‚·‚é‚È‚Ç‚µ‚ÄA
+ ƒpƒXƒ[ƒh‚ðˆÃ†‰»‚µ‚È‚¢ƒNƒ‰ƒCƒAƒ“ƒg‚ðŽg‚¤•K—v‚ª‚ ‚è‚Ü‚·B
+
+ (login/)
+ login2.c/login.h
+ ˆÃ†‰»ƒpƒXƒ[ƒh‚̃pƒPƒbƒgˆ—’ljÁ
+ ˆÃ†‰»key‚̶¬ˆ—’ljÁ
+ md5calc.c/md5calc.h
+ V‹K’ljÁBmd5ŒvŽZ—p
+
+
+EƒXƒLƒ‹Žg—pƒfƒBƒŒƒC‚ÉDEX‚ª”½‰f‚³‚ê‚È‚¢‚悤‚ÉC³
+ skill.c
+ skill_delay_fix()‚ÌC³
+
+EŽ€–SŒã‚àˆê•”‚Ìó‘ÔˆÙí‚ÌŒø‰Ê‚ªŽ‘±‚·‚é–â‘è‚ðC³
+ pc.c
+ pc_damage()‚ÅŽ€–SŽž‚Épc_calcstatus()‚ðŒÄ‚Ԃ悤‚ÉC³
+ atcommand.c
+ Ž€–SŽžˆ—‚ðˆê–{‰»‚·‚邽‚ß@die‚Å‚Ípc_damage‚ðŒÄ‚Ԃ悤‚ÉC³
+
+
+----------
+//0295 by ŒÓ’±—–
+
+EƒNƒŒƒCƒ‚ƒA[ƒgƒ‰ƒbƒv‚ȂǂɃXƒLƒ‹‚ðŽg‚¤‚ƃ}ƒbƒvŽI‚ª—Ž‚¿‚é–â‘è‚ÌC³
+
+ battle.c
+ battle_get_*()‚È‚Ç‚ÅBL_PC,BL_MOB‚¶‚á‚È‚¢‚Æ‚«‚̈—‚ð’ljÁ
+ skill.c/skill.h
+ skill_unit_ondamage()’ljÁ
+
+E–ñ21Mz‚ð’´‚¦‚éƒAƒCƒeƒ€‚ðNPC‚ňµ‚¤‚Æ‚«OC,DCŒvŽZ‚Å’l’i‚ª‚¨‚©‚µ‚­‚È‚éƒoƒOC³
+ DC‚Å‚Í20MzAOC‚Å‚Í70Mz‚ð’´‚¦‚éƒAƒCƒeƒ€‚ÍdoubleŒ^‚É‚µ‚ÄŒvŽZ‚µ‚Ü‚·
+
+ pc.c
+ pc_modifysellvalue(),pc_modifysellvalue()‚ÌC³
+
+----------
+//0294 by ŒÓ’±—–
+
+EƒXƒNƒŠƒvƒgƒRƒ}ƒ“ƒh‚ŃGƒŠƒAŽw’è‚ÌMOB•¦‚«–½—ß‚ðì¬
+ areamonster "ƒ}ƒbƒv–¼",x0,y0,x1,y1,"MOB•\Ž¦–¼",MOB‚Ìclass,”,"ƒCƒxƒ“ƒg–¼"
+ À•WŽw’肪(x0,y0)-(x1,y1)‚Ì”CˆÓƒ|ƒCƒ“ƒg‚ɂȂ邾‚¯‚Å‘¼‚Ímonster–½—ß‚Æ“¯‚¶‚Å‚·
+
+ script.c
+ buildin_areamonster()’ljÁ
+ mob.c/mob.h
+ mob_once_spawn_area()’ljÁ
+
+EƒAƒCƒXƒEƒH[ƒ‹‚ÌŽI‘¤ˆ—‰¼ŽÀ‘•
+ UŒ‚‚Å‚«‚È‚¢‚È‚Ç‚Ì–â‘è‚Í‚ ‚é‚à‚Ì‚ÌAŽI‘¤‚Å‚Í‚Æ‚è‚ ‚¦‚¸“®‚«‚Ü‚·B
+ ‚½‚¾AƒNƒ‰ƒCƒAƒ“ƒg‚Éi“ü•s‰Â”\ƒGƒŠƒA‚ð‹³‚¦‚éƒpƒPƒbƒg‚ª‚í‚©‚ç‚È‚¢‚Ì‚ÅA
+ ŽI‘¤‚Å‚ÍIW‚̉ñ‚èž‚Ý‚ðs‚¤ê‡‚Å‚àAƒNƒ‰ƒCƒAƒ“ƒg‘¤‚Å‚Í‚·‚蔲‚¯‚Ä‚¢‚é
+ ‚悤‚ÉŒ©‚¦‚Ü‚·B
+
+ skill.c
+ ŠY“–ˆ—’ljÁ‚È‚Ç
+
+----------
+//0293
+E2-2ŽŸE‚̃XƒLƒ‹ƒRƒƒ“ƒg‚ÌC³iˆê•”’ljÁj
+ (db/)
+ skill_db.txt
+ skill_tree.txt
+
+
+----------
+//0292 by ŒÓ’±—–
+
+ESHOP NPC‚ɘb‚µŠ|‚¯‚é‚ÆNPC‚ª”½‰ž‚µ‚È‚­‚È‚é–â‘è‚Ì‚Ü‚Æ‚à‚ÈHC³Part2
+ E”„”ƒ‚Å‚«‚È‚©‚Á‚½–â‘èC³
+
+ map.h
+ struct map_session_data ‚Énpc_shopidƒƒ“ƒo’ljÁ
+ npc.c
+ npc_click()‚È‚ÇC³
+
+EƒXƒNƒŠƒvƒg–½—ߒljÁ
+ EŽw’èƒGƒŠƒA‚̃†[ƒU[”‚ÌŠ“¾
+ getareausers("ƒ}ƒbƒv–¼",x0,y0,x1,y1)
+ Žw’èƒ}ƒbƒv‚Ì(x0,y0)-(x1,y1)‚É‚¢‚éPC‚Ì”‚ðŒvŽZ
+ EŽw’èƒGƒŠƒA‚̃†[ƒU[‚̃[ƒv
+ areawarp "“]‘—Œ³ƒ}ƒbƒv–¼",x0,y0,x1,y1,"“]‘—æƒ}ƒbƒv–¼",x,y;
+ Žw’èƒ}ƒbƒv‚Ì(x0,y0)-(x1,y1)‚É‚¢‚é‘SPC‚ðŽw’èƒ}ƒbƒv‚Ì(x,y)‚É“]‘—B
+
+ script.c
+ buildin_areawarp(),buildin_getareausers()’ljÁ
+
+EƒXƒLƒ‹C³
+ EƒeƒŒƒ|[ƒgŽg—pŽž‚ÉuƒeƒŒƒ|[ƒg!!v‚Æ‹©‚Ԃ悤‚ÉB
+ EƒXƒg[ƒ“ƒJ[ƒX‚̬Œ÷—¦‚ª’á‚¢‚Ì‚ðC³
+
+ skill.c
+ skill_castend_nodamage_id()C³
+
+----------
+//0291 by ŒÓ’±—–
+
+EƒXƒNƒŠƒvƒg–½—ߒljÁ
+ ENPC‚Ì—LŒø–³Œø‚ªØ‚è‘Ö‚¦‚ç‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+ disablenpc "NPC–¼"‚Å–³Œø‰»Aenablenpc "NPC–¼"‚Å—LŒø‰»B
+ NPC–¼‚ªd•¡‚µ‚Ä‚¢‚é‚Æ‚«‚Ì“®ì‚Í•s’è‚Å‚·B
+ Žå‚Ƀ[ƒvƒ|ƒCƒ“ƒg‚𖳌ø‰»‚·‚é‚Æ‚«‚ÉŽg‚¢‚Ü‚·B
+
+ Eƒ^ƒCƒ}[‚̃JƒEƒ“ƒg‚ð•ÏX‚·‚éƒXƒNƒŠƒvƒg–½—ߒljÁ
+ addtimercount "ƒCƒxƒ“ƒg–¼",ƒ~ƒŠ•b
+ ‚ÅAƒ^ƒCƒ}‚ÌŠúŒÀ‚ð‰„‚Î‚¹‚Ü‚·i•‰’l‚ðŽw’肵‚ÄŒ¸‚ç‚·‚±‚Æ‚ào—ˆ‚Ü‚·j
+
+ EƒAƒiƒEƒ“ƒX‚ÌŠg’£
+ mapannounce "ƒ}ƒbƒv–¼","ƒAƒiƒEƒ“ƒX•¶Žš—ñ",ƒtƒ‰ƒO
+ ‚ÅŽw’èƒ}ƒbƒv‚ɃAƒiƒEƒ“ƒX‚𗬂µ‚Ü‚·Bƒtƒ‰ƒO‚Í0‚ʼn©FA16‚Å‚ł·B
+ areaannounce "ƒ}ƒbƒv",x0,y0,x1,y1,"•¶Žš—ñ",ƒtƒ‰ƒO
+ ‚ÅŽw’èƒ}ƒbƒv‚Ì(x0,y0)-(x1,y1)‚̃GƒŠƒA‚ɃAƒiƒEƒ“ƒX‚𗬂µ‚Ü‚·B
+ ƒtƒ‰ƒO‚Ímapannounce‚Æ“¯‚¶‚ÅA0‚ʼn©FA0x10‚Å‚ł·B
+
+ (conf/)
+ npc_test_arena.txt
+ ƒTƒ“ƒvƒ‹‚ÌC³
+ (map/)
+ script.c
+ buildin_disablenpc(),buildin_enablenpc(),
+ buildin_mapannounce(),buildin_areaannounce(),
+ buildin_addtimercount()‚̒ljÁ
+ npc.c/npc.h
+ NPC‚Ì—LŒø–³Œøˆ—’ljÁ
+ map.h
+ struct npc_data‚Éflagƒƒ“ƒo’ljÁ(1ƒrƒbƒg–Ú‚ª–³Œøƒtƒ‰ƒO)
+ clif.c
+ clif_getareachar_npc()‚ÌC³
+ pc.c/pc.h
+ pc_addeventtimercount()’ljÁ
+
+ESHOP NPC‚ɘb‚µŠ|‚¯‚é‚ÆNPC‚ª”½‰ž‚µ‚È‚­‚È‚é–â‘è‚Ì‚Ü‚Æ‚à‚ÈHC³
+ SHOP NPC‚ÆŽæˆø’†‚Å‚àƒCƒxƒ“ƒg‚ª‹N‚±‚é‚悤‚É‚È‚è‚Ü‚·B
+ ‚±‚ê‚ÍRO‚ÌŽd—lã”ð‚¯‚é‚Ì‚ª“‚¢‚½‚ß‚±‚̂悤‚ÈŒ‹‰Ê‚Å—Ž‚¿’…‚«‚Ü‚µ‚½B
+
+ npc.c
+ npc_click()“™‚ÌC³
+
+EƒXƒLƒbƒhƒgƒ‰ƒbƒv‚ÅŽc‘œ‚ªŽc‚é–â‘èC³
+ skill.c
+ skill_blown()‚Åclif_walkok()‚È‚Ç‚ðŒÄ‚Ԃ悤‚ÉB
+ skill_unit_onplace()‚Ìclif_fix*pos()‚ðíœB
+
+----------
+//0290 by ŒÓ’±—–
+
+EƒXƒNƒŠƒvƒg‚ÅMAPŽI“à‹¤—L•Ï”‚ªŽg‚¦‚é‚悤‚É‚È‚è‚Ü‚µ‚½B
+ •Ï”–¼‚ð$‚ÅŠJŽn‚·‚é‚ÆAMAPŽI“à‚Ì‘Sˆõ‚Å‹¤—L‚·‚é•Ï”‚É‚È‚è‚Ü‚·B
+
+ Œ¾—t‚Ì–â‘è‚Å‚·‚ªAPC‚Ìglobalreg‚Íu‘åˆæ“Iv‚Æ‚¢‚¤‚æ‚èu‰i‘±«‚Ì‚ ‚év
+ •Ï”‚Å‚ ‚Á‚ÄAMAPŽI“à‹¤—L•Ï”‚Ì‚Ù‚¤‚ª‘åˆæ“I‚Á‚ăCƒ[ƒW‚ª‹­‚¢‚ñ‚Å‚·‚ªc
+
+ script.c
+ mapval_db’è‹`
+ buildin_set(),buildin_input()‚ÌC³
+ do_init_script()’ljÁ
+ map.c
+ do_init()‚Ådo_init_script()‚ðŒÄ‚Ԃ悤‚ÉB
+
+EƒCƒxƒ“ƒgƒLƒ…[‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½
+ EƒLƒ…[ƒTƒCƒY‚Í‚Q‚Å‚·B•K—v‚Ȃ瑂₵‚Ü‚·‚ªB
+
+ ƒTƒ“ƒvƒ‹‚Ì[ev_doƒeƒXƒg]‚ª‚¿‚á‚ñ‚Æ“®‚­‚悤‚É‚È‚Á‚½‚ÆŽv‚¢‚Ü‚·B
+
+ map.h
+ struct map_session_data‚Éeventqueueƒƒ“ƒo’ljÁ
+ npc.c
+ npc_event_timer()’ljÁ
+ script.c
+ run_script()‚ÅENDˆ—‚ŃLƒ…[‚̈—’ljÁ
+
+EƒXƒNƒŠƒvƒg‚Ń^ƒCƒ}[‚ªŽg—p‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+ Žg—p•û–@‚ÍAaddtimer ƒ~ƒŠ•b,"ƒCƒxƒ“ƒg–¼" ‚Ń^ƒCƒ}[’ljÁA
+ deltimer "ƒCƒxƒ“ƒg–¼" ‚Ń^ƒCƒ}[íœB
+
+ (common/)
+ timer.c/timer.h
+ get_timer(),addtick_timer()’ljÁ
+ (map/)
+ map.c/map.h
+ struct map_session_data‚Éeventtimerƒƒ“ƒo’ljÁ
+ map_quit()‚Åpc_cleareventtimer()‚ðŒÄ‚Ԃ悤‚ÉB
+ pc.c
+ pc_addeventtimer(),pc_deleventtimer(),pc_eventtimer(),
+ pc_cleaereventtimer()’ljÁ
+ pc_authok()‚Åeventimer‚̉Šú‰»
+ script.c
+ buildin_addtimer(),buildin_deltimer()’ljÁ
+
+EƒXƒNƒŠƒvƒg‚̒ljÁ
+ Egetusers,getmapusers,killmonster‚̒ljÁ
+ getusers(x)‚̓†[ƒU[”Š“¾Ax=0‚ÅPC‚ÌMAP,1=‘SMAP,8=NPC‚ÌMAPB
+ getmapusers("ƒ}ƒbƒv–¼")‚ÍŽw’èƒ}ƒbƒv‚̃†[ƒU[”‚ðŠ“¾‚·‚éB
+ killmonster "ƒ}ƒbƒv–¼","ƒCƒxƒ“ƒg–¼"‚ÅŠY“–‚̃}ƒbƒv‚É‚¢‚éA
+ ŠY“–‚̃Cƒxƒ“ƒg‹ì“®Žw’胂ƒ“ƒXƒ^[‚ð‘S‚ÄíœB
+ EannounceƒRƒ}ƒ“ƒhŠg’£
+ ƒtƒ‰ƒO‚Ì0x08ƒrƒbƒg‚ª1‚È‚çƒ}ƒbƒv‚âƒGƒŠƒAŒvŽZ‚ÉPC‚Å‚È‚­NPC‚ðŽg‚¤
+
+ mob.c/mob.h
+ mob_delete()’ljÁ
+ script.c
+ buildin_getusers(),buildin_getmapusers(),
+ buildin_killmonster()’ljÁ
+ clif.c/clif.h
+ clif_GMmessage()‚̈ø”•ÏX
+
+EƒCƒxƒ“ƒgƒTƒ“ƒvƒ‹’ljÁ
+ ŠÈ’P‚ȃAƒŠ[ƒi‚̃Tƒ“ƒvƒ‹‚ð’ljÁB
+
+ (conf/)
+ npc_test_ev.txt
+ ]—ˆ‚̃Tƒ“ƒvƒ‹‚ÌC³
+ npc_test_arena.txt
+ ŠÈ’P‚ȃAƒŠ[ƒi‚̃Tƒ“ƒvƒ‹
+ ƒ[ƒvƒ|ƒCƒ“ƒg‚Ì–³Œø‰»ƒRƒ}ƒ“ƒh‚È‚Ç‚ª•K—v‚ÆŽv‚í‚ê‚éB
+
+ESHOP NPC‚ɘb‚µŠ|‚¯‚é‚ÆNPC‚ª”½‰ž‚µ‚È‚­‚È‚é–â‘èC³
+
+ npc.c
+ npc_buylist(),npc_selllist()C³
+
+----------
+//0289 by ŒÓ’±—–
+
+EƒCƒxƒ“ƒg‹ì“®Œ^ƒXƒNƒŠƒvƒg‚ÌC³‚È‚Ç
+ E‘¼‚ÌNPC‚ɘb‚µŠ|‚¯‚Ä‚¢‚é‚Æ‚«‚̓Cƒxƒ“ƒg‚ª–³Ž‹‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+ =>ƒLƒ…[‚É“ü‚ê‚é‚Ȃǂ̈—‚ª‚¢‚é‚ÆŽv‚í‚ê‚éB
+
+ ‚±‚ÌŠÖŒW‚ÅAƒTƒ“ƒvƒ‹‚Ì[ev_doƒeƒXƒg]NPC‚ðƒNƒŠƒbƒN‚µ‚Ä‚à
+ IDƒGƒ‰[‚ªo‚ĉ½‚à‹N‚«‚Ü‚¹‚ñBƒCƒxƒ“ƒgƒLƒ…[‚ðì‚ê‚Î’¼‚é‚Í‚¸B
+
+ npc.c
+ npc_event(),npc_click()‚Énpc_idƒ`ƒFƒbƒN‚ð’ljÁ
+ script.c
+ I—¹Žž‚Énpc_id‚ðƒNƒŠƒA‚·‚é‚悤‚É
+
+EƒXƒNƒŠƒvƒgƒRƒ}ƒ“ƒh[announce]‚̒ljÁ
+ EGMƒƒbƒZ[ƒW‚É‚æ‚éannounceB
+ ‘æ1ˆø”‚Í•¶Žš—ñA‘æ2ˆø”‚̓tƒ‰ƒO‚ÅA
+ ƒtƒ‰ƒO‚̉ºˆÊ‚Sƒrƒbƒg‚ª0=‘S‚ÄA1=“¯‚¶ƒ}ƒbƒvA
+ 2=‰æ–Ê“àA3=Ž©•ª‚Ì‚ÝA4=“¯‚¶ƒ}ƒbƒvŽI‚É‘—MB
+ ƒtƒ‰ƒO‚Ì‚Sƒrƒbƒg–Ú‚ÍFƒtƒ‰ƒO‚ÅA0x10=ÂA0x00=‰©F
+
+ script.c
+ buildin_announce()‚̒ljÁ
+ clif.c
+ clif_send()‚ÅSELF‚̈—’ljÁ
+ clif_GMmessage()‚̈ø”•ÏX
+ intif.c
+ intif_GMmessage()‚̈ø”•ÏX
+
+Eƒƒ‚‹ÖŽ~AƒeƒŒƒ|‹ÖŽ~AƒZ[ƒu‹ÖŽ~ƒ}ƒbƒv‚ªŽw’è‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½B
+ ENPC‚ÅAmapflag‚Æ‚¢‚¤ƒ^ƒCƒv‚ÅA–¼‘O‚ð nomemo A noteleport‚Å
+ ƒƒ‚‚ƃeƒŒƒ|‹ÖŽ~Bnosave ‚ÅAˆø”‚ɃZ[ƒu‚·‚éƒ}ƒbƒv–¼‚ÆÀ•W‚ðŽw’èB
+
+ Ú‚µ‚­‚Í“¯«‚Ìconf/npc_test_ev.txt‚ðŽQÆB
+
+ (conf/)
+ npc_test_ev.txt
+ C³
+ (map/)
+ map.h
+ struct map_data ‚Éflag,savemap,savex,saveyƒƒ“ƒo’ljÁ
+ npc.c
+ npc_parse_mapflag()’ljÁ
+ do_init_npc()‚ÌC³
+ pc.c
+ pc_memo()‚Ńƒ‚‹ÖŽ~‚©‚Ç‚¤‚©‚ðŠm”F
+ pc_makesavestatus()‚ŃZ[ƒu‹ÖŽ~‚È‚çƒ}ƒbƒv‚ð•ÏX
+ pc_randomwarp()‚ŃeƒŒƒ|‹ÖŽ~‚©‚Ç‚¤‚©Šm”F
+ skill.c
+ ƒeƒŒƒ|‚ƃ|ƒ^‚ŃeƒŒƒ|‹ÖŽ~‚©Šm”F
+
+
+Eƒtƒ@ƒCƒ„[ƒEƒH[ƒ‹‚Å—Ž‚¿‚é–â‘èC³c‚¾‚Æ‚¢‚¢‚È
+
+ skill.c
+ ‚³‚ç‚Ƀ`ƒFƒbƒN‚ð’ljÁ
+ skill_blown()‚É—Ž‚¿‚錴ˆö‚Á‚Û‚¢‚à‚Ì”­Œ©‚µ‚½‚Ì‚ÅC³
+
+----------
+//0288 by ŒÓ’±—–
+
+EŽ©“®‘é”­“®Žž‚ÉuƒuƒŠƒbƒcƒr[ƒg!!v‚Æ‹©‚΂Ȃ­‚È‚è‚Ü‚µ‚½
+ skill.c
+ skill_attack(),skill_additional_effect(),
+ skill_castend_damage_id()‚ÌC³
+
+EƒCƒxƒ“ƒg‹ì“®Œ^ƒXƒNƒŠƒvƒg‚ª‹Lq‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+Eƒ‚ƒ“ƒXƒ^[‚ð“|‚µ‚½‚Æ‚«‚ɃCƒxƒ“ƒgƒXƒNƒŠƒvƒg‚ð“®‚©‚¹‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+
+ NPC’è‹`‚Ìscript‚Å•\Ž¦ƒNƒ‰ƒX‚ð-1‚É‚·‚é‚ƃCƒxƒ“ƒgˆµ‚¢‚É‚È‚è‚Ü‚·B
+ NPC’è‹`‚Ìmonster‚ɃCƒxƒ“ƒg–¼‚ðÝ’è‚Å‚«‚Ü‚·B
+ ƒXƒNƒŠƒvƒg‚ÌmonsterƒRƒ}ƒ“ƒh‚ɃCƒxƒ“ƒg‚ð‹N‚±‚·ˆø”’ljÁB
+ Ú‚µ‚­‚̓Tƒ“ƒvƒ‹‚ðŒ©‚Ä‚­‚¾‚³‚¢B
+ ¡Œãƒ^ƒCƒ}[‚ŃCƒxƒ“ƒg‚ð‹N‚±‚¹‚é‚悤‚É‚µ‚悤‚ÆŽv‚Á‚Ä‚¢‚Ü‚·B
+
+ Œ»ó‚Å‚ÍANPCƒEƒBƒ“ƒhƒE‘€ì’†‚ɃCƒxƒ“ƒg‚ª‚¨‚«‚ÄA
+ ‚»‚̃Cƒxƒ“ƒg‚̃XƒNƒŠƒvƒg‚ÅNPCƒEƒBƒ“ƒhƒE‚ðo‚·‚Æ–â‘肪‹N‚«‚Ü‚·B
+ ‚±‚Ì•Ó‚Í¡Œã‚̉ۑè‚Æ‚¢‚¤‚±‚Æ‚ÅB
+
+ (db/)
+ item_db.txt/item_db2.txt
+ monsterƒRƒ}ƒ“ƒh‚Ì•ÏX‚É‚æ‚éC³iŒÃ–Ø‚ÌŽ}jB
+ (conf/)
+ npc_test_ev.txt
+ ƒTƒ“ƒvƒ‹
+ (map/)
+ npc.c
+ npc_event()’ljÁ
+ npc_parse_script()C³
+ npc_checknear()C³
+ clif.c
+ clif_getareachar_npc()C³
+ map.h
+ struct mob_data‚Énpc_eventƒƒ“ƒo’ljÁ
+ mob.c/mob.h
+ mob_once_spawn()‚̈ø”•ÏX
+ mob_damage()‚ÅŽ€–SŽž‚ɃCƒxƒ“ƒg‚ð‹N‚±‚·‚悤‚É
+ atcommand.h
+ mob_once_spawn()‚̈ø”•ÏX
+ script.c
+ buildin_monster()‚ÌC³
+
+----------
+//0287 by ŒÓ’±—–
+
+Eƒ‚ƒ“ƒXƒ^[î•ñƒXƒLƒ‹‚Å‚g‚o‚ª65535‚ð‰z‚¦‚Ä‚¢‚é‚Ƴí‚È’l‚ªŒ©‚ê‚È‚¢ƒoƒOC³
+
+ clif.c
+ clif_skill_estimation()‚ÌC³
+
+EŒÃ–Ø‚ÌŽ}ƒAƒCƒeƒ€‚ŃNƒ‰ƒCƒAƒ“ƒg‚ªƒŠƒ\[ƒXƒGƒ‰[‚ðo‚·–â‘肪C³‚³‚ê‚Ü‚µ‚½
+EŒÃ–Ø‚ÌŽ}ƒAƒCƒeƒ€‚Å¢Š«‚Å‚«‚é“G‚ªŽw’è‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+
+ (db/)
+ mob_branch.txt
+ ¢Š«‰Â”\‚È“G‚̃ŠƒXƒg
+ (map/)
+ mob.c/mob.h
+ struct mob_data‚Ésummonflagƒƒ“ƒo’ljÁB¢Š«‰Â”\«B
+ mob_once_spawn()‚ÌC³
+ mob_readbranch()‚̒ljÁ
+ do_init_mob()‚Åmob_readbranch()‚ðŒÄ‚Ԃ悤‚ÉB
+
+EŒÃ‚­Â‚¢” AŒÃ‚¢Ž‡F‚Ì” ‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½B
+ ˆê•”‚Ì–¢ŽÀ‘•ƒAƒCƒeƒ€‚ào‚Ü‚·Bitem_db.txt‚É‚ ‚éƒf[ƒ^‚ðŒŸõ‚µ‚Ä‚¢‚Ü‚·B
+ ƒXƒNƒŠƒvƒggetitem‚Å•‰‚Ì’l‚ðŽw’è‚·‚é‚ÆA‚»‚Ìâ‘Î’l‚ðƒtƒ‰ƒO‚Æ‚µ‚Ä
+ ƒ‰ƒ“ƒ_ƒ€‚ɃAƒCƒeƒ€‚ð‘I‘ð‚µ‚Ü‚·B
+
+ (db/)
+ item_db.txt/item_db2.txt
+ ŠY“–•”•ª‚̃XƒNƒŠƒvƒgC³
+ (map/)
+ script.c
+ buildin_getitem()‚ÌC³
+ itemdb.c/itemdb.h
+ itemdb_searchrandomid(),itemdb_searchrandomid_sub()’ljÁ
+
+E‰r¥ƒf[ƒ^‚̈ꕔC³
+ (db/)
+ cast_db.txt
+ ‘¬“x㸂ȂǂÌC³
+
+ENPC‚ÌŒü‚«C³‚È‚Ç
+ (conf/)
+ npc_*.txt
+
+----------
+//0286 by ŒÓ’±—–
+
+Eƒ‚ƒ“ƒXƒ^[î•ñƒXƒLƒ‹‚ŃNƒ‰ƒCƒAƒ“ƒg‚ª—Ž‚¿‚éƒoƒOC³
+ clif.c
+ clif_skill_estimation()‚ÌC³
+
+E‰r¥”½‰žƒ‚ƒ“ƒXƒ^[‚ª”½‰ž‚µ‚È‚¢‚±‚Æ‚ª‚ ‚é–â‘è‚ðC³
+ skill.c
+ skill_use_id(),‰r¥”½‰žŽžAÅ’á’ÇÕ‹——£‚ð13‚ÉÝ’è‚·‚é‚悤‚ÉB
+
+EƒXƒNƒŠƒvƒgƒRƒ}ƒ“ƒh[warp]‚ŃZ[ƒuƒ|ƒCƒ“ƒgˆÚ“®‚⃉ƒ“ƒ_ƒ€ˆÚ“®‚ª‰Â”\‚É‚È‚è‚Ü‚µ‚½
+EƒnƒG‚̉HA’±‚̉HƒAƒCƒeƒ€‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½
+ ƒXƒNƒŠƒvƒgwarp‚Ń}ƒbƒv–¼‚É"SavePoint"‚â"Random"‚ªŽw’è‚Å‚«‚Ü‚·B
+
+ (db/)
+ item_db.txt/item_db2.txt
+ ƒnƒG‚̉HA’±‚̉H‚̃XƒNƒŠƒvƒgC³
+ script.c
+ buildin_warp()‚ÌC³
+
+E@monsterƒRƒ}ƒ“ƒh‚É‚æ‚éMOB‚ª•œŠˆ‚µ‚È‚¢‚悤‚É‚È‚è‚Ü‚µ‚½
+EƒXƒNƒŠƒvƒgƒRƒ}ƒ“ƒh[monster]‚ÅMOB‚ð”­¶‚³‚¹‚邱‚Æ‚ª‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+EŒÃ–Ø‚ÌŽ}ƒAƒCƒeƒ€‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½
+
+ ƒXƒNƒŠƒvƒgˆø”‚Í monster ƒ}ƒbƒv–¼,x,y,MOB–¼,MOB‚ÌID,” ‚Å‚·B
+ ƒ}ƒbƒv–¼‚ª"this"‚Ìê‡AƒXƒNƒŠƒvƒg‚ðŽÀs‚µ‚½ƒvƒŒƒCƒ„[‚Ì‚¢‚éƒ}ƒbƒvA
+ x,y‚ª-1‚È‚çƒvƒŒƒCƒ„[‚ÌÀ•Wi‚Ç‚¿‚ç‚©ˆê•û‚Ì‚Ý‚»‚낦‚邱‚Æ‚à‰Â”\jA
+ MOB–¼‚ª"--en--"‚Ìê‡A–{—ˆ‚̉pŒê–¼‚É‚È‚èA"--ja--"‚Ìê‡A
+ –{—ˆ‚Ì“ú–{Œê–¼‚É‚È‚è‚Ü‚·BMOB‚ÌID‚ª-1‚Ìê‡A“K“–‚ÈID‚É‚È‚è‚Ü‚·B
+
+ (db/)
+ item_db.txt/item_db2.txt
+ ŒÃ–Ø‚ÌŽ}‚̃XƒNƒŠƒvƒgC³
+ (map/)
+ mob.c/mob.h
+ mob_once_spawn()’ljÁ
+ mob_setdelayspwan()‚Å•œŠˆ‹ÖŽ~ˆ—’ljÁB
+ npc.c/npc.h
+ npc_get_new_npc_id()’ljÁ
+ script.c
+ buildin_monster()’ljÁ
+ atcommand.c
+ @monster‚ÌC³
+
+E@itemƒRƒ}ƒ“ƒh‚ÌC³i‘•”õ•i‚È‚Ç‚Ì–â‘èj
+
+ atcommand.c
+ @item‚ÌC³
+
+----------
+//0284 by ŒÓ’±—–
+
+EáŠQ•¨‚ª‚ ‚é‚Ɖ“‹——£UŒ‚‚ª‚Å‚«‚È‚­‚È‚è‚Ü‚µ‚½
+E‘Î’nƒXƒLƒ‹‚ªáŠQ•¨ã‚ÉŽg—p‚Å‚«‚È‚­‚È‚è‚Ü‚µ‚½
+
+ path.c
+ path_search(),can_move()‚ÌC³Acan_place()‚̒ljÁ
+ battle.c/battle.h
+ battle_check_range()’ljÁAŽË’ö‚ÆáŠQ•¨”»’èB
+ battle_weapon_attack()‚Åbattle_check_range()‚ðŒÄ‚ÔB
+ skill.c
+ skill_use_id()Askill_use_pos()‚Åbattle_check_range()‚ðŒÄ‚ÔB
+ mob.c
+ mob_ai_sub_hard()‚̈—‚ðC³
+
+E‰r¥”½‰ž/ƒŠƒ“ƒNƒ‚ƒ“ƒXƒ^[‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½
+ skill.c
+ skill_use_id()‚ɉr¥”½‰žƒ‚ƒ“ƒX‚̈—’ljÁ
+ mob.c
+ mob_ai_sub_hard_linksearch()‚̒ljÁ
+ mob_ai_sub_hard()‚ɃŠƒ“ƒNˆ—‚ðC³
+
+----------
+//0283 by ‚ê‚ 
+EƒŠƒUƒŒƒNƒVƒ‡ƒ“‚ÌC³
+ 0282‚Ŷ‚«‚Ä‚é‚o‚b‚ɃŠƒU‚ª‚©‚¯‚ê‚é‚Ì‚ÉA
+ Ž€‚ñ‚Å‚é‚o‚b‚ɂ̓ŠƒU‚ª‚©‚©‚ç‚È‚­‚È‚Á‚Ä
+ ‚¢‚½‚Ì‚ðC³‚µ‚Ü‚µ‚½B
+
+----------
+//0282 by ŒÓ’±—–
+
+EƒXƒLƒ‹‚ÌC³‚ƒljÁŽÀ‘•
+ EƒLƒŠƒGƒGƒŒƒCƒ\ƒ“‚̃GƒtƒFƒNƒg‚Ì–â‘èC³B
+ EƒŠƒUƒŒƒNƒVƒ‡ƒ“‚ª¶‚«‚Ä‚¢‚éPC‚É‚ÍŠ|‚¯‚ç‚ê‚È‚¢‚悤‚É‚È‚è‚Ü‚µ‚½
+ Eƒ^[ƒ“ƒAƒ“ƒfƒbƒh/UŒ‚ƒŠƒUƒŒƒNƒVƒ‡ƒ“‚ªBOSS‚É‚ÍŒø‚©‚È‚¢‚悤‚É‚È‚è‚Ü‚µ‚½
+ Eƒtƒ@ƒCƒ„[ƒEƒH[ƒ‹‚̃qƒbƒg”§ŒÀ‚ðŽÀ‘•
+ EƒXƒg[ƒ€ƒKƒXƒg‚ÌŽÀ‘•
+ ‚½‚¾‚µA–{ŽI‚ƈႢ“€Œ‹‚ÍŠm—¦‚Ì‚Ý‚ÅAÅ‘åƒqƒbƒg”‚È‚Ç‚ª•Ï‚Å‚·B
+
+ skill.c
+ skill_castend_nodamage_id()‚ÌC³
+ ƒXƒg[ƒ€ƒKƒXƒg‚̈—’ljÁ
+
+EƒXƒLƒ‹ƒ†ƒjƒbƒgˆ—‚ɈӒn‚É‚È‚Á‚ĈÀ‘S«ƒ`ƒFƒbƒN‚ð’ljÁB
+ i—Ž‚¿‚È‚­‚È‚é“ú‚͉“‚¢HHj
+
+ map.h
+ MAX_SKILLUNITGROUP‚ð32‚É‘‚₵‚½
+ skill.c
+ skill_status_change_*()‚ÉNULLƒ`ƒFƒbƒN’ljÁ
+ battle.c
+ battle_calc_damage()‚ɶ‘¶ƒ`ƒFƒbƒN’ljÁ
+ map.c
+ map_freeblock_unlock()‚ɃƒbƒN”ƒ`ƒFƒbƒN‚ð’ljÁ
+
+E‚»‚Ì‘¼C³
+ EPC‚ÌÅ‘åHP‚ª30000‚ɧŒÀ‚³‚ê‚Ü‚µ‚½B
+ EPC‚̉ñ•œˆ—‚ªC³‚³‚ê‚Ü‚µ‚½
+ E‚«”ò‚΂µˆ—‚ÌC³
+ E0281‚Ìitem_db.txt‚Ì•ÏX‚ðitem_db2.txt‚É‚à“K—p
+
+ (map/)
+ pc.c
+ pc_heal(),pc_calcstatus()‚ÌC³
+ path.c
+ path_blownpos()‚ÌC³
+ (db/)
+ item_db2.txt
+ 0281‚Ì–¼‘OC³‚È‚Ç‚ð“K—p
+
+----------
+//0280 by ŒÓ’±—–
+
+EŠÇ—ŽÒ‚̃VƒXƒeƒ€‚ðì¬
+ "conf/login_athena.cnf"‚Ìì¬AŠÇ—ŽÒƒpƒXAGMƒpƒX‚ÌÝ’èB
+ ƒAƒJƒEƒ“ƒg‚ðì‚é‚Æ‚«A
+ ƒ—á„ ID: hoge_M Pass: foobar@admin
+ ‚̂悤‚ÉAƒpƒXƒ[ƒh‚ÌŒã‚ë‚Éu@ŠÇ—ŽÒƒpƒXv‚ª•K—v‚ÉB
+ login_athena.cnf‚Ìadmin_pass‚Ì—“‚ðÁ‚¹‚ÎA¡‚܂ł̂悤‚É‚à‚‚©‚¦‚Ü‚·B
+ i‚»‚Ìê‡Aadmin_pass‚ÌŒã‚낾‚¯‚Å‚È‚­As‚²‚ÆÁ‚µ‚Ä‚­‚¾‚³‚¢j
+
+ (login/)
+ login.h
+ Ý’èƒtƒ@ƒCƒ‹‚̃fƒtƒHƒ‹ƒg–¼’ljÁ
+ login2.c
+ ƒAƒJƒEƒ“ƒg쬂̂Ƃ±‚ë‚ðC³
+ Ý’èƒtƒ@ƒCƒ‹‚Ì“Ç‚Ýž‚ݒljÁ
+
+E@GMƒRƒ}ƒ“ƒh•œŠˆ
+ ‚½‚¾‚µAu@gm GMƒpƒXv‚Æ‚µ‚ÄŽg‚¢‚Ü‚·B
+ GMƒpƒX‚Ílogin_athena.cnf‚Ì‚à‚Ì‚Å‚·B
+ ŽI‚ÌÄ‹N“®‚Ì•K—v‚Í‚ ‚è‚Ü‚¹‚ñ‚ªA
+ ƒNƒ‰ƒCƒAƒ“ƒg‚̓ŠƒƒO‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B
+
+ ƒ’ˆÓ„
+ “¯‚¶ƒAƒJƒEƒ“ƒg‚Ì‘S‚ẴLƒƒƒ‰‚ÍPT‚©‚甲‚¯‚Ä’u‚¢‚Ä‚­‚¾‚³‚¢B
+ ‚Ü‚½A‘qŒÉ‚̃AƒCƒeƒ€‚Í‘S•”ˆø‚«o‚µ‚Ä’u‚¢‚Ä‚­‚¾‚³‚¢B
+ ‚»‚¤‚µ‚È‚¢‚ƃSƒ~ƒf[ƒ^‚ªŽc‚è‚Ü‚·B
+
+ (login/)
+ login2.c
+ ƒAƒJƒEƒ“ƒgID•ÏXˆ—’ljÁ
+ (char/)
+ char2.c
+ ƒAƒJƒEƒ“ƒgID•ÏXˆ—’ljÁ
+ (map/)
+ chrif.c/chrif.h
+ chrif_changegm(),chrif_changedgm()’ljÁ
+
+E@pvpoffƒRƒ}ƒ“ƒh•œŠˆ
+ clif.c/clif.h
+ clif_pvpoff()’ljÁ
+ atcommand.c
+ @pvpoff‚̈—’ljÁ
+
+E‹ó‚Ì‘qŒÉƒf[ƒ^‚Í•Û‘¶‚³‚ê‚È‚¢‚悤‚É•ÏX
+ (char/)
+ int_storage.c
+ inter_storage_save()Astorage_tostr()‚ðC³
+
+E@memoƒRƒ}ƒ“ƒh’ljÁB
+ ”CˆÓ‚Ì‹L‰¯ˆæ‚Ƀƒ‚‚ðŽæ‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½B
+
+ atcommand.c
+ @memo‚̈—’ljÁ
+
+
+----------
+//0279 by ŒÓ’±—–
+
+EƒXƒLƒ‹ƒ†ƒjƒbƒgˆ—‚Ì–â‘è‘Îô
+ ‚Æ‚è‚ ‚¦‚¸‚Ђ½‚·‚çƒ`ƒFƒbƒN‚ð“ü‚ê‚Ü‚µ‚½B
+
+ skill.c
+ skill_unit_timer_sub(),skill_unit_move_sub(),
+ skill_delunit()‚Ƀ†ƒjƒbƒg‚̶‘¶”»’è‚ð’ljÁB
+ skill_unitgrouptickset_search(),skill_unitgrouptickset_delete()
+ skill_delunitgroup()‚ÉNULLƒ|ƒCƒ“ƒ^ƒ`ƒFƒbƒN‚ð’ljÁB
+
+EƒXƒLƒ‹‚̒ljÁŽÀ‘•‚ÆC³
+ ƒeƒŒƒ|[ƒgAƒ[ƒvƒ|[ƒ^ƒ‹‚ÌŽÀ‘•
+ ƒLƒŠƒGƒGƒŒƒCƒ\ƒ“‚ðMOB‚ÉŠ|‚¯‚é‚Æ—Ž‚¿‚éƒoƒOC³
+
+ (db/)
+ cast_db.txt
+ ƒ[ƒvƒ|[ƒ^ƒ‹‚̉r¥ŽžŠÔÝ’è
+ (map/)
+ map.h
+ struct skill_unit_group‚Ìvalstr‚ðƒ|ƒCƒ“ƒ^‚É•ÏX
+ clif.c/clif.h
+ clif_parse_UseSkillMap(),clif_skill_warppoint()A
+ clif_parse_Memo(),clif_skill_memo()’ljÁ
+ skill.c/skill.h
+ skill_castend_map(),skill_unit_onlimit()‚̒ljÁ
+ skill_unit_*Œn‚̈—‚¢‚ë‚¢‚ë’ljÁB
+ skill_status_change_start()‚̃LƒŠƒG‚̈—C³
+ pc.c/pc.h
+ pc_randomwarp(),pc_memo()’ljÁ
+
+----------
+//0278 by nabe
+
+EƒXƒLƒ‹ƒ|ƒCƒ“ƒg‚ðU‚Á‚½‚Æ‚«‚ɃXƒe[ƒ^ƒX‚ðXV
+ pc.c
+ pc_skillup()‚Åpc_calc_skilltree()‚Ì‘ã‚í‚è‚Épc_calcstatus()
+EŠŽ—Ê‘‰Á‚ðC³
+ pc.c
+ pc_calcstatus()‚ÌŠŽ—Ê‘‰Á‚É‚æ‚émax_weight‘•ª‚ðskill*1000‚É
+
+----------
+//0277 by nabe
+
+E•t‘®•iiƒJ[ƒgA‘éAƒyƒRj‚Ì•t‚¯ŠO‚µ‚ð‰ü—Ç
+ (conf/)
+ npc_event_rental.txt
+ ‘éAƒyƒR‚ð•t‚¯‚éƒXƒNƒŠƒvƒgƒRƒ}ƒ“ƒh‚ð•ÏX
+ (map/)
+ battle.c
+ battle_addmastery(),battle_calc_weapon_attack()‚Å
+ ƒyƒRƒyƒR‹R掞‚Ì‘„UŒ‚—͕ⳂðŽÀ‘•
+ clif.c
+ clif_parse_CartOff‚ðclif_parse_RemoveOption‚É•ÏX
+ pc.c/pc.h
+ pc_calcstatus()‚ŃJ[ƒgAƒyƒRƒyƒRæ‚è‚É‚æ‚鑬“x•Ï‰»‚ðŒvŽZ
+ pc_setoption(),pc_setcart()‰ü—Ç
+ pc_setfalcon(),pc_setriding()’ljÁ
+ pc.h‚Épc_isfalcon(),pc_isriding()ƒ}ƒNƒ’ljÁ
+ script.c
+ buildin_setfalcon() ‘é•t‰Á
+ buildin_setriding() ƒyƒRƒyƒRæ‚è
+
+----------
+//0276 by nabe
+
+E¸˜BNPCŽÀ‘•
+ (conf/)
+ npc_town_refine.txt
+ ¸˜BNPCƒXƒNƒŠƒvƒgƒtƒ@ƒCƒ‹V‹K’ljÁ
+ (map/)
+ pc.c/pc.h
+ ¸˜B¬Œ÷—¦‚Ì•\percentrefinery[5][10]‚ð’ljÁ
+ script.c‚©‚çŒÄ‚΂ê‚éŠÖ”
+ pc_percentrefinery() ¸˜B¬Œ÷—¦
+ pc_equipitemindex() ‘•”õ•iƒCƒ“ƒfƒbƒNƒX
+ ‚ð’ljÁ
+ script.c
+ buildin_getequipname() ‘•”õ–¼•¶Žš—ñi¸˜Bƒƒjƒ…[—pj
+ buildin_getequipisequiped() ‘•”õƒ`ƒFƒbƒN
+ buildin_getequipisenableref() ‘•”õ•i¸˜B‰Â”\ƒ`ƒFƒbƒN
+ buildin_getequipisidentify() ‘•”õ•iŠÓ’èƒ`ƒFƒbƒN
+ buildin_getequiprefinerycnt() ‘•”õ•i¸˜B“x
+ buildin_getequipweaponlv() ‘•”õ•i•ŠíLV
+ buildin_getequippercentrefinery() ‘•”õ•i¸˜B¬Œ÷—¦
+ buildin_successrefitem() ¸˜B¬Œ÷
+ buildin_failedrefitem() ¸˜BŽ¸”s
+ ‚ð’ljÁ
+
+EƒXƒNƒŠƒvƒg‚ÉWeight,MaxWeightƒpƒ‰ƒ[ƒ^‚ð’ljÁ
+ const.txt
+ Weight,MaxWeight‚ð’ljÁ
+
+EƒXƒNƒŠƒvƒg‚ł̃Lƒƒƒ‰–¼•\Ž¦•ûŽ®‚ð•ÏX
+ (conf/)
+ npc_job_merchant.txt/npc_job_thief.txt/npc_town_kafra.txt
+ mes "$charaname"; ‚ð mes strcharinfo(0); ‚É•ÏX
+ (map/)
+ script.c
+ buildin_strcharinfo()‚ð’ljÁ
+
+----------
+//0275 by ŒÓ’±—–
+
+EMVP‚ÌŽÀ‘•
+ MVP‚Ì”»’è‚É‚Ídmglog‚ðŽg‚Á‚Ä‚Ü‚·B‚·‚È‚í‚¿—^ƒ_ƒ‚¾‚¯‚ªŒvŽZ‘ÎÛ‚Å‚·B
+ ”íƒ_ƒ‚Íl—¶‚³‚ê‚Ä‚Ü‚¹‚ñB
+ ŒoŒ±’l‚Í–³ðŒ‚Å“ü‚èAŠm—¦‚Å‚³‚ç‚ɃAƒCƒeƒ€‚ª“ü‚è‚Ü‚·B
+ ƒAƒCƒeƒ€‚Í•¡”Žè‚É“ü‚邱‚Æ‚à‚ ‚è‚Ü‚·B
+
+ clif.c/clif.h
+ clif_mvp_effect(),clif_mvp_item(),clif_mvp_exp()’ljÁ
+ mob.c
+ mob_damage()‚ÉMVPˆ—’ljÁ
+
+EƒXƒLƒ‹‚̒ljÁŽÀ‘•‚ÆC³
+ Eƒ}ƒOƒiƒ€ƒuƒŒƒCƒNAƒAƒ[ƒVƒƒƒ[ŽÀ‘•
+ E‚«”ò‚΂µŒnƒXƒLƒ‹‚ªˆê•”Žg—p‚³‚ê‚È‚¢ƒoƒOC³
+ Eƒ_ƒuƒ‹ƒXƒgƒŒƒCƒtƒBƒ“ƒO‚̃_ƒ[ƒWŒvŽZŽ®C³
+ E•ŠíUŒ‚Œn‘®«•t‚«ƒXƒLƒ‹‚Å‘®«‚ª”½‰f‚³‚ê‚È‚¢–â‘èC³
+ Eꊎw’èƒXƒLƒ‹‚ªUŒ‚‚µ‚È‚ª‚ç‰r¥‚Å‚«‚½–â‘è‚ðC³
+
+ battle.c
+ battle_calc_weapon_attack()‚ÌŠY“–ŒÂŠC³•’ljÁ
+ skill.c
+ skill_castend_damage_id()‚Ɉ—’ljÁ
+ skill_use_pos()‚ÉUŒ‚’âŽ~ˆ—’ljÁ
+
+EƒJ[ƒhƒXƒLƒ‹‚ªƒJ[ƒh‚ðŠO‚µ‚Ä‚àŽg—p‰Â”\‚È–â‘è‚ðC³
+ pc.c
+ pc_calc_skilltree()‚ðC³
+
+EƒAƒCƒeƒ€ƒhƒƒbƒv—¦AexpŠ“¾”{—¦‚È‚Ç‚Ì’²®‹@”\’ljÁ
+ battle_athena.cnf‚Å’²®‚Å‚«‚逖ڂª‘‚¦‚Ü‚µ‚½B
+ Ú‚µ‚­‚Í‚»‚¿‚ç‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
+
+ (conf/)
+ battle_athena.cnf
+ mvp_hp_rate,item_rate,exp_rate,mvp_item_rate,mvp_exp_rate’ljÁ
+ (map/)
+ battle.c/battle.h
+ ‘‚¦‚½€–Ú‚ð“Ç‚Ýž‚ނ悤‚Ɉ—’ljÁ
+ mob.c
+ mob_db.txt“Ç‚Ýž‚ÝŽžAƒf[ƒ^‚ð’²®‚·‚鈗’ljÁ
+
+----------
+//0274 by ŒÓ’±—–
+
+EƒXƒLƒ‹‚̒ljÁŽÀ‘•
+ ƒXƒLƒbƒhƒgƒ‰ƒbƒvAƒ‰ƒ“ƒhƒ}ƒCƒ“Aƒuƒ‰ƒXƒgƒ}ƒCƒ“AƒNƒŒƒCƒ‚ƒA[ƒgƒ‰ƒbƒvA
+ ƒtƒŠ[ƒWƒ“ƒOƒgƒ‰ƒbƒvAƒTƒ“ƒhƒ}ƒ“AƒAƒ“ƒNƒ‹ƒXƒlƒA
+
+ ‡–°‚â“€Œ‹‚È‚Ç‚ÌŠm—¦‚Í“K“–‚Å‚·B
+ ã©”­“®Žž‚̃GƒtƒFƒNƒg‚ªo‚Ü‚¹‚ñB‚Ä‚¢‚¤‚©o‚µ•û‚ª‚í‚©‚è‚Ü‚¹‚ñB
+ ‚í‚©‚él‚Í‹³‚¦‚Ä‚­‚¾‚³‚¢B‚à‚µ‚­‚Í–{ŽI‚Åã©”­“®Žž‚Ì•¡‡‰»Ï‚Ý‚Ì
+ ¶ƒpƒPƒbƒgƒf[ƒ^‚Å‚à‚¢‚¢‚Ì‚Å‹³‚¦‚Ä‚­‚¾‚³‚¢B
+
+ (db/)
+ skill_db.txt
+ ‘®«‚ÌC³
+ (map/)
+ skill.c
+ ŠY“–ŒÂŠ
+ battle.c/battle.h
+ battle_calc_misc_damage()‚ÌŠY“–ŒÂŠ
+ battle_stopwalking()’ljÁ
+ clif.c/clif.h
+ clif_fixpcpos()’ljÁ
+ clif_parse_WalkToXY()‚ɃAƒ“ƒNƒ‹‚Å“®‚¯‚È‚­‚·‚鈗’ljÁ
+ mob.c
+ mob_ai_sub_hard()‚ɃAƒ“ƒNƒ‹‚Å“®‚¯‚È‚­‚·‚鈗’ljÁ
+
+E‘•”õ‚Ȃǂ̃NƒŠƒeƒBƒJƒ‹ƒ{[ƒiƒX‚ª1/10‚É‚È‚Á‚Ä‚¢‚éƒoƒO‚ªC³‚³‚ê‚Ü‚µ‚½
+ battle.c
+ battle_calc_weapon_attack()‚ɒljÁ•ª‚ðŒvŽZ‚·‚鈗C³
+
+EƒuƒŠƒbƒcƒr[ƒg‚ÌŒvŽZŽ®‚ª‘S‘Rˆá‚¤ƒoƒO‚ªC³‚³‚ê‚Ü‚µ‚½
+ battle.c
+ battle_calc_attack()‚ÌBF_MISC‚̈’u‚ªŠÔˆá‚Á‚Ä‚¢‚½‚Ì‚ðC³
+
+ESW‚ƃjƒ…[ƒ}‚ª•ŠíUŒ‚‚È‚ç‚Ç‚ñ‚ȃŒƒ“ƒW‚ÌUŒ‚‚Å‚à–h‚¢‚Å‚¢‚½–â‘è‚ðC³
+ battle.c
+ battle_calc_damage()‚̃Œƒ“ƒW”»’è‚ðC³
+
+EƒI[ƒo[ƒgƒ‰ƒXƒg‚ƃEƒFƒ|ƒ“ƒp[ƒtƒFƒNƒVƒ‡ƒ“‚ªPTƒƒ“ƒo‚É‚à‚©‚©‚é‚悤‚ÉC³B
+ Œø‰Ê‚ÍŽg—pŽÒ‚ÆPTƒƒ“ƒo‚ňႢ‚Í‚ ‚è‚Ü‚¹‚ñB
+
+ skill.c
+ skill_castend_nodamage_id()‚ÌC³B
+
+----------
+//0273 by ŒÓ’±—–
+
+EƒLƒƒƒ‰ƒNƒ^[‚ªÁŽ¸‚µ‚½‚茶‰e‚ªo‚é–â‘肪C³‚³‚ê‚Ü‚µ‚½
+ E‚«”ò‚΂µƒXƒLƒ‹‚ðŽó‚¯‚é‚Æ”­¶‚µ‚Ä‚¢‚½
+ EŽÎ‚߈ȊO‚Ì•às‚Å”­¶‚µ‚Ä‚¢‚½
+
+ map.c
+ map_foreachinmovearea()‚ÌC³B
+ skill.c
+ skill_blown()‚É•\Ž¦”͈ÍXVˆ—‚ð’ljÁB
+ mob.c
+ mob_walk()‚Å•à‚«I‚í‚Á‚½‚Æ‚«‚Ɉʒu‚ðÄ‘—M‚·‚é‚悤‚ÉC³
+ pc.c
+ pc_walk()‚Å•à‚«I‚í‚Á‚½‚Æ‚«‚Ɉʒu‚ðÄ‘—M‚·‚é‚悤‚ÉC³
+
+EƒXƒLƒ‹‚̒ljÁŽÀ‘•‚ÆC³
+ ƒtƒ@ƒCƒ„[ƒEƒH[ƒ‹Aƒtƒ@ƒCƒ„[ƒsƒ‰[‚ÌŽÀ‘•
+ ƒTƒ“ƒNƒ`ƒ…ƒAƒŠ‚ł̃mƒbƒNƒoƒbƒN•ûŒü‚ðC³
+
+ (db/)
+ skill_db.txt
+ ƒtƒ@ƒCƒ„[ƒsƒ‰[AƒuƒŠƒbƒcƒr[ƒg‚̃qƒbƒg”C³
+ (map/)
+ skill.c
+ skill_blown()‚É‘ÎÛ‚ÌŒü‚«‚É‚æ‚éƒmƒbƒNƒoƒbƒNˆ—’ljÁ
+ ‚»‚Ì‘¼•K—v‚ÈêŠC³
+ mob.c
+ mob_walk(),mob_attack()‚ÅŒü‚«‚ð•Û‘¶
+ pc.c
+ pc_walk(),pc_attck()‚ÅŒü‚«‚ð•Û‘¶
+ map.c
+ map_calc_dir()’ljÁB‘Š‘ΓI‚È•ûŒü‚ð‹‚ß‚é
+
+
+EƒNƒŠƒeƒBƒJƒ‹‘‰Á‘•”õ‚ªí“¬Žž‚ÉŒvŽZ‚³‚ê‚Ä‚È‚¢ƒoƒO‚ªC³‚³‚ê‚Ü‚µ‚½
+ battle.c
+ battle_calc_weapon_attack()‚ɒljÁ•ª‚ðŒvŽZ‚·‚鈗’ljÁ
+
+
+E–hŒäƒ†ƒjƒbƒgiSW/ƒjƒ…[ƒ}j‚ª“G‚ɉe‹¿‚ð‹y‚Ú‚·‚©‚Ç‚¤‚©‚ð
+ battle_athena.cnf‚ŧŒä‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+ ƒfƒtƒHƒ‹ƒg‚Íu‹y‚Ú‚³‚È‚¢v‚Å‚·B
+
+ (conf/)
+ battle_athena.cnf
+ €–Údefunit_not_enemy‚ð’ljÁ
+ (map/)
+ battle.c/battle.h
+ struct Battle_Config ‚É defnotenemyƒƒ“ƒo’ljÁB
+ battle_read_config()‚̈—‚ðC³B
+ skill.c
+ skill_unitsetting()‚ÅSW/ƒjƒ…[ƒ}‚̈—‚ðC³
+
+EƒtƒFƒ“ƒJ[ƒh‘•”õŽžAŽ€‚ñ‚Å‚à‰r¥‚ª‘±‚­ƒoƒO‚ðC³
+ i‰r¥I—¹‘O‚É•œŠˆ‚·‚ê‚Ζ‚–@‚ª”­“®‚·‚é–â‘è‚àC³‚É‚È‚è‚Ü‚·j
+
+ pc.c
+ pc_damage()‚ÅŽ€–SŽžskill_castcancel()‚ðŒÄ‚Ԃ悤‚ÉC³
+
+E“G–¡•û”»’舗‚ɃoƒO‚ª‚ ‚Á‚½‚Ì‚ðC³
+ battle.c
+ battle_check_target()‚ÌC³
+
+----------
+//0272 by ŒÓ’±—–
+
+EƒXƒLƒ‹‚̒ljÁŽÀ‘•‚ÆC³
+ EƒZƒCƒtƒeƒBƒEƒH[ƒ‹Aƒjƒ…[ƒ}‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½B
+ Eƒ[ƒhƒIƒuƒo[ƒ~ƒŠƒIƒ“”­“®’†‚ÉŒø‰Ê”͈͊O‚©‚ç”͈͓à‚É“ü‚Á‚Ä‚«‚½‚Æ‚«A
+ “G–¡•û‚Ì‹æ•Ê–³‚­UŒ‚‚ª“–‚½‚é–â‘肪C³‚³‚ê‚Ü‚µ‚½B
+ EƒTƒ“ƒNƒ`ƒ…ƒAƒŠ‚ÌŽË’ö‚ªC³‚³‚ê‚Ü‚µ‚½B
+ E”͈͖‚–@‚Å“|‚µ‚½“G‚ªHP0‚ÅŽc‚éꇂª‚ ‚é–â‘肪C³‚³‚ê‚Ü‚µ‚½B
+
+ (db/)
+ skill_db.txt
+ ƒZƒCƒtƒeƒBƒEƒH[ƒ‹‚ƃTƒ“ƒNƒ`ƒ…ƒAƒŠ‚ÌŽË’ö‚ð8‚É•ÏX
+ (map/)
+ skill.c
+ skill_unit_onplace(),~ondelete(),~onout()‚È‚Ç‚ÉA
+ ƒZƒCƒtƒeƒBƒEƒH[ƒ‹‚ƃjƒ…[ƒ}‚̈—’ljÁB
+ skill_unit_move()‚Ƀ^[ƒQƒbƒg‚Ì“G–¡•û”»’è‚ð’ljÁB
+ skill_unit_timer_onplace(),~ondelete()‚Ƀ†ƒjƒbƒg¶‘¶”»’è‚ð’ljÁ.
+ skill_clear_unitgroup()’ljÁBƒ†ƒjƒbƒgƒOƒ‹[ƒv‚Ì‘Síœ‚ð‚·‚éB
+ battle.c
+ battle_calc_damage()‚ɃZƒCƒtƒeƒBƒEƒH[ƒ‹‚ƃjƒ…[ƒ}‚̈—’ljÁB
+ map_foreachinarea()‚È‚ÇC³
+ map.c
+ map_quit()‚Åskill_clear_unitgroup()‚ðŒÄ‚Ԃ悤‚ÉB
+
+EƒXƒLƒ‹‚Ì‚«”ò‚΂µˆ—‚ðŽÀ‘•
+ ƒ†ƒsƒeƒ‹ƒTƒ“ƒ_[AƒTƒ“ƒNƒ`ƒ…ƒAƒŠAƒXƒsƒAƒXƒ^ƒuA
+ ƒ{[ƒŠƒ“ƒOƒoƒbƒVƒ…Aƒ`ƒƒ[ƒWƒAƒ[‚Ì‚«”ò‚΂µˆ—ŽÀ‘•
+
+ path.c/map.h
+ path_blownpos()’ljÁ
+ battle.c/battle.h
+ struct Damage‚Éblewcountƒƒ“ƒo’ljÁ
+ battle_calc_*_damage()‚Åblewcount‚ðƒZƒbƒg‚·‚é‚悤‚ÉB
+ skill.c/skill.h
+ skill_blown()’ljÁB‚«”ò‚΂µˆ—B
+ skill_attack()‚Åskill_blown()‚ðŒÄ‚Ԃ悤‚ÉB
+ skill_attack()‚Ìflag‚Ì‚«”ò‚΂µƒrƒbƒg‚Í–¢Žg—p‚ÉB
+
+E•às’†‚̃‚ƒ“ƒXƒ^[‚ÉUŒ‚‚µ‚½‚Æ‚«Aƒ‚ƒ“ƒXƒ^[‚ɃfƒBƒŒƒC‚ª“ü‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+ iUŒ‚‚̃‚[ƒVƒ‡ƒ“‚Ì’x‰„‚ðl‚¦‚Ä‚È‚¢‚Ì‚Å‚ ‚ñ‚Ü‚èˆÓ–¡‚ª‚È‚¢‚©‚àHj
+
+ (map/)
+ mob.c/mob.h
+ state‚ÉMS_DELAY‚ð’ljÁB
+ mob_damage(),mob_timer()‚È‚Ç‚ÌC³
+
+E•às’†‚̃‚ƒ“ƒXƒ^[‚ÉUŒ‚‚µ‚½‚Æ‚«AˆÊ’u‚ª‚¸‚ê‚é–â‘è‚̉ž‹}ˆ’u
+ i‚Ü‚¾ˆÊ’u‚Í‚¸‚ê‚é‚悤‚Å‚·j
+
+ clif.c/clif.h
+ clif_fixmobpos()‚ð’ljÁ
+ mob.c
+ mob_attack()‚Åclif_fixmobpos()‚ðŒÄ‚Ԃ悤‚ÉB
+
+E‚»‚Ì‘¼C³
+ pc.c
+ pc_stop_walking()‚Åpath_len‚ð‰Šú‰»‚·‚é‚悤‚ÉB
+
+----------
+//0271 by ‚ê‚ 
+
+EPT‚ÉŠÖ‚µ‚Ä­‚µ‚¾‚¯C³
+ Œö•½‚É‚µ‚Ä‚©‚çƒLƒƒƒ‰‚ð‰Á“ü‚³‚¹‚é‚ÆŒö•½‚ª‰ðœ‚³‚ê‚È‚¢ƒoƒO‚ðC³
+
+----------
+//0270 by ŒÓ’±—–
+
+EƒXƒLƒ‹‚̒ljÁŽÀ‘•‚ÆC³
+ ƒ[ƒhƒIƒuƒo[ƒ~ƒŠƒIƒ“AƒTƒ“ƒNƒ`ƒ…ƒAƒŠAƒ}ƒOƒkƒXƒGƒNƒ\ƒVƒYƒ€
+
+ (db/)
+ skill_db.txt
+ ƒ}ƒOƒkƒX‚̃qƒbƒg”A‘®«’²®
+ ƒTƒ“ƒNƒ`ƒ…ƒAƒŠ‚Ì‘®«’²®
+ (map/)
+ map.h
+ struct map_session_data‚ÌC³
+ clif.c/clif.h
+ clif_skill_setunit(),clif_skill_delunit()A
+ clif_getareachar_skillunit(),clif_clearchar_skillunit()’ljÁ
+ clif_pcoutsight(),clif_pcinsight(),clif_getareachar()C³
+ skill.c/skill.h
+ –Y‚ê‚é‚Ù‚Ç‘½”•ÏXBŽå‚ɃXƒLƒ‹ƒ†ƒjƒbƒgŠÖ˜A•”•ªB
+ pc.c
+ pc_authok()‚Åskillunit,skillunittick‚ð‰Šú‰»‚·‚é‚悤‚ÉB
+ pc_walk()‚Åskill_unit_move()‚ðŒÄ‚Ԃ悤‚ÉB
+ mob.c
+ mob_spwan()‚Åskillunittick‚ð‰Šú‰»‚·‚é‚悤‚ÉB
+ mob_walk()‚Åskill_unit_move()‚ðŒÄ‚Ԃ悤‚ÉB
+ battle.c/battle.h
+ battle_calc_magic_attack()C³
+ battle_check_target()C³
+ map.c
+ map_foreachobject()‚È‚ÇC³
+
+E‚±‚Ü‚©‚¢ƒoƒOC³‚È‚Ç
+ Emob‚ª‰ñ•œ‚µ‚È‚¢–â‘èC³
+
+ battle.c
+ battle_damage()C³
+
+----------
+//0266 by ŒÓ’±—–
+
+E–‚–@ŒvŽZŽ®‚ÌC³
+ –‚–@”{—¦‚ðƒ_ƒ[ƒW‚ÉŠ|‚¯‚Ä‚¢‚½‚Ì‚ðMATK‚É‚©‚¯‚é‚悤‚É‚µ‚Ü‚µ‚½B
+ c‚±‚Á‚¿‚ª³‚µ‚¢‚Æ‚µ‚Ä‚¢‚¢‚Ì‚©‚ÈHˆá‚¤‚Ȃ狳‚¦‚Ä‚­‚¾‚³‚¢B
+
+ battle.c
+ battle_calc_magic_attack()‚ÌC³
+
+EƒXƒLƒ‹‚̒ljÁŽÀ‘•
+ ƒTƒCƒgAƒ‹ƒAƒtAƒ[ƒhƒIƒuƒ”ƒ@[ƒ~ƒŠƒIƒ“
+
+ ƒ[ƒhƒIƒuƒo[ƒ~ƒŠƒIƒ“‚Í‚R‰ñ‚Ì”»’莞‚ɉr¥‰¹‚ª–‚è‚Ü‚·cB
+ clif_skill_damage()‚Ìtype‚ðFX•Ï‚¦‚Ä‚Ý‚Ü‚µ‚½‚ª‚Ç‚¤‚à‚¤‚Ü‚­‚¢‚«‚Ü‚¹‚ñB
+ ’¼‚¹‚él‚Í’¼‚µ‚Ä‚­‚ê‚é‚Æ‚¤‚ꂵ‚¢‚Å‚·B
+ i‚¤[‚ñA‚Ђå‚Á‚Æ‚µ‚½‚ç–{—ˆ‚̓Oƒ‰ƒtƒBƒbƒN‚Ì‚È‚¢ƒXƒLƒ‹ƒ†ƒjƒbƒg‚ð
+ Ý’u‚µ‚ÄA‚»‚̃†ƒjƒbƒg‚ÌID‚Ń_ƒ[ƒW‚ð—^‚¦‚é‚Ì‚©‚àHHj
+
+ (db/)
+ skill_db.txt
+ ƒ[ƒhƒIƒuƒo[ƒ~ƒŠƒIƒ“‚̃qƒbƒg”‚ð‚R‚©‚ç10‚É•ÏXB
+ (map/)
+ skill.c
+ skill_status_change_timer_sub()’ljÁB
+ skill_status_change_*()‚Ɉ—’ljÁB
+
+Eblock‚̃ƒ‚ƒŠ‰ð•ú‚̈À‘S«‚ÌŒüã
+ map_foreachinarea,party_foreachsamemap‚ʼnñ‚Á‚Ä‚¢‚é‚Æ‚«‚É
+ block‚ðƒ`ƒFƒCƒ“‚©‚ç휂·‚é‚ÆA‚¤‚Ü‚­‰ñ‚ç‚È‚¢‰Â”\«‚ª‚ ‚é–â‘èC³B
+ ‚³‚ç‚ÉAblock‚ðƒƒ‚ƒŠ‚©‚ç‰ð•ú‚·‚é‚Ɗ댯‚È–â‘è‚àC³B
+
+ Eforeach“à‚ÅŠÖ”‚ðŒÄ‚Ô‘O‚Éblock‚ªƒ`ƒFƒCƒ“‚©‚çŠO‚ê‚Ä‚È‚¢‚©ƒ`ƒFƒbƒNB
+ Eforeach‚É“ü‚Á‚½‚Æ‚«‚ɃƒbƒN‚µ‚ăƒ‚ƒŠ‚©‚ç‰ð•ú‚³‚ê‚È‚¢‚悤‚É‚·‚éB
+ ‚±‚ê‚̓†[ƒU[‚ªfree‚¶‚á‚È‚­map_freeblock‚É‚æ‚Á‚ĉð•ú‚·‚é‚悤‚É
+ ƒvƒƒOƒ‰ƒ€‚·‚é•K—v‚ª‚ ‚éBiƒ‹[ƒv‚©‚çŒÄ‚΂ê‚é‰Â”\«‚Ì‚ ‚éŠÖ”‚ðì‚é
+ ꇂ̂±‚Æ‚ÅA•’Ê‚Ífree‚Å‚à‚¢‚¿‚¨‚¤“®‚­Bj
+ Emap_foreachinmovearea‚ɂ‚¢‚Ă͉ü—Ç‚µ‚Ä‚¢‚È‚¢‚ªA
+ ‚±‚̃‹[ƒv‚Åblock‚ð휂·‚邱‚Æ‚Í‚ ‚肦‚È‚¢‹C‚ª‚·‚é‚Ì‚Å‚¢‚¢‚Æ‚·‚éB
+
+ ‚±‚ê‚Í¡Œã‚ðŒ©‰z‚µ‚½‰ü—Ç‚Å‚ ‚Á‚ÄAŒ»Ý‚Ì•sˆÀ’肳‚𒼂·‚à‚Ì‚Å‚Í‚È‚¢B
+ iŒ»Ý‚Íforeach“à‚Ńƒ‚ƒŠ‚ð‰ð•ú‚µ‚Ä‚¢‚È‚¢c‚Í‚¸‚È‚Ì‚ÅB
+ ‚½‚¾AƒXƒLƒ‹ƒ†ƒjƒbƒg‚ȂLjꎞƒIƒuƒWƒFƒNƒg‚𑽗p‚µŽn‚ß‚é‚ÆŒø‰Ê‚ª‚ ‚éj
+
+ map.c
+ map_freeblock(),map_freeblock_lock(),~_unlock()’ljÁB
+ map_delobject()‚Ìfree()‚ðmap_freeblock()‚É’uŠ·B
+ map_foreachinarea‚ŃƒbƒN‚ƈÀ‘S«ƒ`ƒFƒbƒNB
+ party.c
+ party_foreachsamemap()‚ŃƒbƒN‚ƈÀ‘S«ƒ`ƒFƒbƒN
+
+
+EƒXƒLƒ‹ƒ†ƒjƒbƒg‹@\ŽÀ‘•
+ Ý’uŒn‚̃XƒLƒ‹‚Ì‚½‚ß‚Ì‹@\ŽÀ‘•BŽÀۂ̃XƒLƒ‹‚ÌŽÀ‘•‚Í‚Ü‚¾‚Å‚·B
+
+ skill.c
+ ‚È‚ñ‚©‚à‚¤FX’ljÁ‚µ‚Ü‚µ‚½B
+ map.c
+ do_init()‚Ådo_skill_init()‚ðŒÄ‚Ԃ悤‚ÉB
+ map.h
+ struct skill_unit,skill_unit_group‚ȂǒljÁB
+ map_session_data‚Ì‘‚«Š·‚¦‚È‚ÇB
+
+E‚»‚Ì‘¼×‚©‚¢‚Æ‚±‚ë‚ðC³‚µ‚½‚ÆŽv‚¤‚¯‚Ç–Y‚ê‚Ü‚µ‚½B
+
+----------
+//0264 by nabe
+
+E$charaname‚ð’‚éNPC‚Ƙb‚µ‚½ŽžAmapŽI‚ª—Ž‚¿‚邱‚Æ‚ª‚ ‚éƒoƒO‚ðC³‚µ‚Ü‚µ‚½B
+ script.c
+ replacestr()‚ª‚¨‚©‚µ‚©‚Á‚½‚Ì‚ðŽè’¼‚µ‚µ‚Ü‚µ‚½B
+
+----------
+//0263 by nabe
+
+E˜I“XŠJÝ’†‚ɃJ[ƒgƒAƒCƒeƒ€‚ðo‚µ“ü‚ê‚Å‚«‚È‚¢‚悤C³
+ pc.c
+ pc_putitemtocart(),pc_getitemfromcart()‚ÉA˜I“X”»’è‚ð’ljÁ
+
+E˜I“XƒAƒCƒeƒ€w“ü‚̃`ƒFƒbƒN‚ð’ljÁ
+ vending.c
+ vending_purchasereq()‚Å”X‚ÌðŒ”»’è‚ð’ljÁ
+
+----------
+//0261 by ŒÓ’±—–
+
+EŠg‘勾AƒCƒOƒhƒ‰ƒVƒ‹‚Ì—t‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½
+ ƒXƒNƒŠƒvƒg‚ÉitemskillƒRƒ}ƒ“ƒhì¬BˆêŽž“I‚ɃXƒLƒ‹‚ªŽg—p‚Å‚«‚Ü‚·B
+
+ (map/)
+ script.c
+ buildin_itemskill()‚̒ljÁ‚È‚ÇB
+ skill.c
+ ƒAƒCƒeƒ€ƒXƒLƒ‹‚È‚çSP‚È‚Ç‚ðŒŸ¸•Á”‚È‚¢‚悤‚ÉC³
+ clif.c/clif.h
+ clif_item_skill()‚̒ljÁB
+ (db/)
+ item_db.txt/item_db2.txt
+ ƒXƒLƒ‹Žg—pƒAƒCƒeƒ€‚̃XƒNƒŠƒvƒgC³
+
+Eƒp[ƒeƒBƒXƒLƒ‹‚ÌŽÀ‘•
+ ƒAƒ“ƒ[ƒ‹ƒXAƒ}ƒOƒjƒtƒBƒJ[ƒgAƒOƒƒŠƒAAƒAƒhƒŒƒiƒŠƒ“ƒ‰ƒbƒVƒ…‚ª
+ ‰æ–Ê“à‚̃p[ƒeƒB‘Sˆõ‚ÉŒø‰Ê‚ð‹y‚Ú‚·‚悤‚É‚È‚è‚Ü‚µ‚½B
+
+ skill.c
+ skill_castend_nodamage_id()‚ÌŠY“–ŒÂŠ‚ÌC³
+ party.c
+ party_foreachsamemap()‚ÌC³
+
+EƒXƒLƒ‹ŠÖŒW‚ÌC³
+ ƒLƒŠƒGƒGƒŒƒCƒ\ƒ“‚ª‘¦Žž”­“®‚É‚È‚Á‚Ä‚¢‚é‚Ì‚ðC³B
+ ƒXƒg[ƒ“ƒJ[ƒX‚ŃGƒtƒFƒNƒg‚ª‘¶Ý‚µ‚È‚¢ƒoƒOC³B
+
+ (db/)
+ skill_db.txt
+ ƒLƒŠƒGƒGƒŒƒCƒ\ƒCƒ“C³
+ (map/)
+ skill.c/skill.h
+ skill_check_condition()’ljÁBƒXƒLƒ‹Žg—pðŒŒŸ¸‚̈ê–{‰»B
+ skill_castend_nodamage_id()‚ŃXƒg[ƒ“ƒJ[ƒXC³
+
+EƒXƒNƒŠƒvƒg‚̃R[ƒh‚ð®—
+ get_val()‚Åconst.txt‚Ì’è”‚ðŠ“¾‚Å‚«‚é‚悤‚ÉC³B
+
+ (map/)
+ script.c
+ get_val()‚ÌC³iconst.txt‚Ìtype==0‚Ì’l‚ªŠ“¾‰Â”\‚Éj
+ bonus(),bonus2()‚È‚Ç‚ÌC³B
+ (db/)
+ const.txt
+ type=1‚Å‚ ‚é•K—v‚ª–³‚¢‚à‚Ì‚ð0‚ÉB
+ item_db.txt/item_db.txt
+ const.txt‚Ì•ÏX‚É”º‚¤C³B
+
+----------
+//0260 by ŒÓ’±—–
+
+E퓬ŠÖŒW‚Ìݒ肪ƒtƒ@ƒCƒ‹‚É‘‚¯‚é‚É‚È‚è‚Ü‚µ‚½
+ mapŽI‚Ì‘æ2ˆø”‚Ƀtƒ@ƒCƒ‹–¼‚ªÝ’肳‚ê‚Ä‚¢‚é‚ÆA‚»‚ê‚ðŽg‚¢A
+ ݒ肳‚ê‚Ä‚È‚¢ê‡‚Í "conf/battle_athena.cnf"‚ðŽg‚¢‚Ü‚·B
+
+ ‚ ‚ÆAˆê‰ž”͈ÍUŒ‚ƒXƒLƒ‹‚ɂ‚¢‚Äà–¾B
+ ŽI‚ªí‚ÉPVP‚Éݒ肳‚ê‚Ä‚¢‚éê‡Aƒp[ƒeƒBƒƒ“ƒo‚¶‚á‚È‚¢PC‚É‚à”͈ÍUŒ‚‚ª
+ ‚ ‚½‚è‚Ü‚·BŒ™‚Èꇂ̓p[ƒeƒB‚ð‘g‚Þ‚©Aí‚ÉPVP‚ðoff‚É‚µ‚ĉº‚³‚¢B
+ í‚ÉPVP‚ªoff‚Å‚àA@pvp‚Åpvpƒtƒ‰ƒO‚ð“ü‚ꂽl‚ÌŠÔ‚Å‚ÍUŒ‚‚ª“–‚½‚è‚Ü‚·B
+ ‚½‚¾‚µAˆê“xpvp‚ðon‚É‚·‚é‚ÆAƒŠƒƒO‚·‚é‚Ü‚Åon‚Ì‚Ü‚Ü‚È‚Ì‚Å’ˆÓB
+
+ (conf/)
+ battle_athena.cnf
+ ’†‚Éà–¾‘‚¢‚Ä‚é‚Ì‚ÅŠeŽ©D‚«‚Ȃ悤‚É‘‚«Š·‚¦‚Ä‚­‚¾‚³‚¢B
+
+ (map/)
+ battle.c/battle.h
+ struct Battle_Config‚Ì’è‹`B
+ battle_config_read()‚ȂǒljÁB
+ skill.c
+ CASTFIX,DELAYFIX‚Ì”pŽ~‚ÆBattle_Config‚É‚æ‚éC³‚̒ljÁB
+ atcommand.c
+ @pvpƒRƒ}ƒ“ƒh‚Åpvpƒtƒ‰ƒO‚ðƒZƒbƒg‚·‚é‚悤‚ÉB
+ iŽIÝ’è‚Ìí‚ÉPVP‚ªoff‚ÌŽžA—¼l‚ªpvp‚ðon‚É‚µ‚Ä‚½‚ç퓬‰Â”\j
+ map.c/map.h
+ struct map_session_data‚Épvp_flag‚ð’ljÁ
+ do_init()‚Åbattle_config_read()‚ð“ǂނ悤‚ÉB
+
+E퓬ŠÖŒW‚̃R[ƒh‚ª­‚µ®—‚³‚ê‚Ü‚µ‚½
+ battle.c/battle.h
+ battle_weapon_attack()’ljÁB
+ battle_calc_weapon_attack()‚̈ø”•ÏX
+ battle_calc_attack()‚ð’ljÁ‚µ‚Äbattle_calc_*_attack()‚ðˆê–{‰»B
+ skill.c/skill.h
+ skill_weapon_attack(),~_magic_~(),~_misc_~()‚Ì”pŽ~A
+ skill_attack()‚Ɉê–{‰»B
+ pc.c/mob.c
+ UŒ‚ˆ—‚ðbattle_weapon_attack()‚Ɉê–{‰»B
+
+EƒAƒCƒeƒ€ŠÓ’èƒXƒLƒ‹‚ðŽÀ‘•
+ ¤l‚̃XƒLƒ‹‚Ì•û‚Å‚·B’ŽŠá‹¾‚Í‚Ü‚¾‚Å‚·B
+
+ skill.c
+ ƒXƒLƒ‹ˆ—’ljÁ
+ pc.c/pc.h
+ pc_item_identify()’ljÁ
+ clif.c/clif.h
+ clif_item_identify_list(),clif_item_identified()’ljÁ
+ clif_parse_ItemIdentify()’ljÁ
+
+EƒXƒLƒ‹ƒf[ƒ^ƒx[ƒX‚̃Rƒƒ“ƒgC³
+ (db/)
+ skill_db.txt
+ ¤l‚̃XƒLƒ‹‚̃Rƒƒ“ƒg‚ª‚¸‚ê‚Ä‚¢‚½‚Ì‚ðC³
+
+----------
+//0259 by ‚ê‚ 
+Emob_db.txt‚ÌC³
+ ‹T“‡ƒ‚ƒ“ƒXƒ^[‚âBOSS‚̃Xƒe[ƒ^ƒX’²®
+ ‹T“‡ƒ‚ƒ“ƒX‚É“K“–‚Ƀhƒƒbƒv‚ð•t‚¯‚Ü‚µ‚½B
+ –{ŽI‚ƈقȂ镨‚ð—Ž‚Æ‚·ê‡‚à‚ ‚è‚Ü‚·B
+
+----------
+//0258 by ŒÓ’±—–
+
+Eƒp[ƒeƒB‚ňê“xŒö•½‚É‚µ‚½‚çŠeŽ©Š“¾‚É–ß‚¹‚È‚¢ƒoƒOC³
+ (char/)
+ int_party.c
+ mapif_parse_PartyChangeOption()‚Ì”»’èC³
+
+EƒXƒLƒ‹‚̒ljÁŽÀ‘•iŽå‚ɔ͈ÍUŒ‚Œnj
+ ƒiƒp[ƒ€ƒr[ƒgi•ªŽU‘ΉžjAƒtƒ@ƒCƒ„[ƒ{[ƒ‹A
+ ƒTƒ“ƒ_[ƒXƒg[ƒ€Aƒwƒuƒ“ƒYƒhƒ‰ƒCƒuA
+ ƒuƒŠƒbƒcƒr[ƒgiŽ©“®‘éž‚ÝjAƒXƒ`[ƒ‹ƒNƒƒE
+ ƒXƒLƒ“ƒeƒ“ƒpƒŠƒ“ƒO
+
+ (db/)
+ skill_db.txt/skill_tree.txt
+ ˆê•”C³
+ (map/)
+ battle.c/battle.h
+ battle_check_target()‚ð’ljÁB‘ÎÛ‚É‚È‚é‚©‚ðŒŸ“¢‚·‚éB
+ battle_calc_magic_damage()‚̈ø”•ÏXBƒ_ƒ[ƒW•ªŽUˆ—’ljÁB
+ battle_calc_misc_damage()’ljÁB
+ battle_calc_weapon_damage()C³B
+ clif.c/clif.h
+ clif_skill_damage(),clif_skill_damage2()‚̈ø”•ÏXB
+ clif_skill_poseffect()’ljÁB
+ skill.c/skill.h
+ skill_weapon_attack(),skill_magic_attack()‚É”÷–­‚Ɉ—‚ð“Z‚ß‚½.
+ skill_area_sub()’ljÁB”͈̓XƒLƒ‹—pB
+ skill_area_sub_count()’ljÁBskill_area_sub()—pA“GƒJƒEƒ“ƒgB
+ skill_castend_damage_id()C³Bˆø”‚ƈ—‚ð’ljÁB
+ skill_castend_nodamage_id()C³Bˆø”‚ƈ—‚ð’ljÁB
+ skill_misc_attack()’ljÁB
+ skill_additional_effect()C³iŽ©“®‘éj
+ skill_castend_pos()C³B
+ skill_castend_pos2()’ljÁB
+
+E‹|‚ÅUŒ‚‚µ‚½‚Æ‚«ŒvŽZ‚ÉDEX‚Å‚È‚­STR‚ªŽg‚í‚ê‚é–â‘è‚ðC³B
+ battle.c
+ battle_calc_weapon_damage()C³B
+
+----------
+//0257 by ŒÓ’±—–
+
+Eitem_db.txt‚ÌE‹Æƒtƒ‰ƒO‚ÆAƒJ[ƒh‚Ì‘•”õŒÂŠƒtƒ‰ƒO‚ðC³
+ ‘•”õ•i‚ÍI-Athena‚̃f[ƒ^‚ðŽQl‚É‚µ‚Ä‹@ŠB“I‚ɃRƒ“ƒo[ƒg‚³‚¹‚Ü‚µ‚½B
+ I-Athena‘¤‚É‚È‚¢‘•”õ•i‚ÍA‚ ‚«‚ç‚©‚É•Ï‚È‚Ì‚ÍC³‚µ‚Ü‚µ‚½‚ªA
+ ’m‚ç‚È‚¢‚à‚Ì‚ª‘½‚·‚¬‚ÄA‚Ù‚Æ‚ñ‚Ç•ú’u‚Å‚·B
+ ƒJ[ƒh‚ÍA•Ší—pƒJ[ƒh‚Ì‘•”õŒÂŠ‚ª0‚É‚È‚Á‚Ä‚é‚Ì‚ð2(¶Žè)‚ÉC³B
+ —¼Žè•Ší‚Ìꇂ͕ʂɔ»’肵‚Ä‚é‚Ì‚Å—¼Žè•Ší‚à–â‘è‚È‚¢‚Í‚¸B
+
+ (db/)
+ item_db.txt/item_db2.txt
+ ŠY“–ŒÂŠC³
+
+EƒJ[ƒh’ljÁŽÀ‘•
+ ƒXƒ^ƒ“‚Ȃǂ̒ljÁŒø‰ÊA‚»‚ê‚ç‚Ö‚Ì‘Ï«Œn“AƒI[ƒNƒq[ƒ[ƒJ[ƒhŽÀ‘•
+
+ (db/)
+ item_db.txt/item_db2.txt
+ ƒXƒNƒŠƒvƒg‚ÌC³
+ (map/)
+ map.h
+ struct map_session_data‚Éaddeff‚Ȃǂ̃ƒ“ƒo‚ð’ljÁ
+ pc.c
+ pc_calcstatus()Apc_bonus2()‚ÌC³
+ pc_attack()‚Åskill_additional_effct()‚ðŒÄ‚Ԃ悤‚ÉB
+ skill.c/skill.h
+ skill_additional_effect()‚ŃJ[ƒh‚É‚æ‚é”»’è’ljÁ
+ skill_status_change_start()‚Å‘Ï«‚ð•t‚¯‚½B
+ battle.c
+ battle_calc_weapon_attack()‚ŃI[ƒNƒq[ƒ[ƒJ[ƒh
+ iƒNƒŠƒeƒBƒJƒ‹‘Ï«j‚̈—‚ð’ljÁ
+
+E‰ñ”ð”»’è‚ÌC³
+ UŒ‚ŽÒ‚ªPC‚Ìê‡AÅ‘å–½’†—¦‚X‚T“§ŒÀ‚ð‚È‚µ‚É‚µ‚Ü‚µ‚½B
+ battle.c
+ battle_calc_weapon_attack()‚ðC³
+
+
+EŠ®‘S‰ñ”ð‚ðŽÀ‘•
+ ‚Ö‚ñ‚Ä‚±‚Ȉ—‚µ‚Ä‚Ü‚·•ŒvŽZŽ®“K“–‚Å‚·B
+
+ battle.c
+ battle_calc_weapon_attack()‚Ɉ—’ljÁB
+
+E‘qŒÉ‚ðŠJ‚¢‚½‚܂܃ƒOƒAƒEƒg‚µ‚½‚Æ‚«mapŽI“à‚Å‚ÍŠJ‚«‚Á‚Ï‚È‚µ‚É‚È‚Á‚Ä‚é–â‘è‚ðC³
+ storage.c
+ storage_storage_quitsave()‚ðC³
+
+E@item,@monster,@produce‚Å–¼‘OŽw’è‚Å‚«‚é‚悤‚É•ÏX
+ ‰pŒê–¼A“ú–{Œê–¼‚Ç‚¿‚ç‚Å‚àOKB‰pŒê‚Ìꇂ͑啶Žš¬•¶Žš‹æ•Ê‚µ‚Ü‚¹‚ñB
+
+ atcommand.c
+ ŠY“–ŒÂŠC³
+ itemdb.c/itemdb.h
+ itemdb_searchname(),itemdb_searchname_sub()’ljÁ
+ mob.c/mob.h
+ mobdb_searchname()’ljÁ
+
+E@refine‚Åã‚°‚é”’l‚ðŽw’è‚Å‚«‚é‚悤‚É•ÏX
+ atcommand.c
+ ŠY“–ŒÂŠC³
+
+E@produce‚É‚æ‚黑¢Žž‚̃GƒtƒFƒNƒg‚𳂵‚¢‚à‚Ì‚ÉC³
+ clif.c/clif.h
+ clif_produceeffect()’ljÁ
+ atcommand.c
+ ŠY“–ŒÂŠC³
+
+E˜I“XƒXƒLƒ‹Žg—pŽž‚̈—‚ð­‚µC³
+ skill.c
+ skill_castend_id()‚Å‚È‚­Askill_castend_nodamage_id()‚Å
+ ˜I“XŠJÝ‚ðŒÄ‚Ԃ悤‚É‚µ‚½B
+
+Estricmp‚Ì•Ï‚í‚è‚Éstrcasecmp‚ðŽg‚¤‚悤‚É‚µ‚½
+ i_WIN32‚©__EMX__‚ª’è‹`‚³‚ê‚Ä‚¢‚é‚Æstricmp‚ðŽg‚¢‚Ü‚·j
+
+ (char/)
+ int_party.c
+ (map/)
+ itemdb.c/mob.c
+ ƒ}ƒNƒ’è‹`‚ÌC³‚È‚Ç
+
+EƒXƒLƒ‹‚ð­‚µC³
+ ƒOƒŠƒ€ƒgƒD[ƒX‚ªƒnƒCƒfƒBƒ“ƒO‚ÅŽg‚¦‚È‚¢–â‘èC³
+ •ŠíŒ¤‹†‚Ì–½’†C³‚ðŽÀ‘•
+
+ skill.c
+ skill_use_id()‚ÌC³
+ pc.c
+ pc_calcstatus()‚Å•ŠíŒ¤‹†‚É]‚Á‚Ä–½’†C³
+
+----------
+//0256 by nabe
+
+E˜I“XƒAƒCƒeƒ€w“ü‚̃oƒOC³
+ clif.c
+ clif_vendinglist()‚Å”„‚è؂ꂽƒAƒCƒeƒ€‚Í•\Ž¦‚µ‚È‚¢‚悤‚É
+
+----------
+//0255 by nabe
+
+E˜I“XƒAƒCƒeƒ€w“ü‚̃oƒOC³
+ vending.c
+ vending_purchasereq()‚Åzeny,weight•”•ªC³
+
+----------
+//0254 by nabe
+
+E˜I“X‚ðŽÀ‘•
+ vending.c/vending.h
+ V‹K’ljÁB˜I“XƒƒCƒ“ˆ—
+ skill.c
+ skill_castend_id()‚ɘI“XŠJ݃XƒLƒ‹ˆ—‚ð’ljÁ
+ clif.h/clif.h
+ ˜I“XŠÖ˜AƒpƒPƒbƒgˆ—‚ð’ljÁ
+ map.h
+ struct map_session_data‚ÉA
+ int vender_id;
+ int vend_num;
+ char message[80];
+ struct vending vending[12];
+ ‚ð’ljÁ
+
+----------
+//0253 by ŒÓ’±—–
+
+Estricmp–¢’è‹`ƒGƒ‰[‚ª‚Å‚éŠÂ‹«—p‚ÌC³
+ ƒGƒ‰[‚ªo‚½ê‡Aint_party.c‚Ìʼn‚̃}ƒNƒ’è‹`‚̃Rƒƒ“ƒg‰»‚Ì‚¤‚¿A
+ ‚Ç‚¿‚ç‚©‚ðŠO‚µ‚Ä‚â‚è’¼‚µ‚Ä‚Ý‚é‚ÆA‚¤‚Ü‚­‚¢‚­‚©‚àB
+ ň«A‰º‚ð—LŒø‚É‚µ‚½‚炤‚Ü‚­‚¢‚­‚Í‚¸Bi‘啶Žš¬•¶Žš‚ð‹æ•Ê‚·‚é‚悤‚É‚È‚è‚Ü‚·j
+
+ (char/)
+ int_party.c
+ ƒRƒƒ“ƒg‰»Ï‚݂̃}ƒNƒ’è‹`’ljÁ
+
+----------
+//0252 by ŒÓ’±—–
+
+EƒJ[ƒh‚̈ꕔŽÀ‘•
+ iƒXƒe[ƒ^ƒX•Ï‰»‘S”ÊA•Ší‘®«AƒXƒLƒ‹‚Í‚·‚Å‚ÉŽÀ‘•Ï‚Ýj
+ –h‹ï‘®«A‰r¥ŽžŠÔ•Ï‰»A‘®«UŒ‚‘Ï«AŽí‘°‘Ï«AŽí‘°’ljÁƒ_ƒ[ƒWA
+ ‘®«’ljÁƒ_ƒ[ƒWAƒTƒCƒY’ljÁƒ_ƒ[ƒWAMAXHPAMAXSP‘Œ¸AŽg—pSP•Ï‰»ŒnA
+ ƒtƒFƒ“AƒhƒŒƒCƒNAƒzƒ‹ƒ“A[•£‚Ì‹RŽmA‰©‹àå³AƒIƒVƒŠƒXƒJ[ƒh‚ðŽÀ‘•
+
+ (db/)
+ const.txt
+ bonus—p‚̒蔒ljÁAbonus2‚̒蔂à’ljÁ
+ item_db.txt/item_db2.txt
+ ƒJ[ƒh‚̃XƒNƒŠƒvƒg’ljÁ
+ (map/)
+ map.h
+ struct map_session_data‚Éhprate‚È‚Ç‘½”ƒƒ“ƒo’ljÁ
+ script.c
+ bonus2ƒRƒ}ƒ“ƒh’ljÁ
+ buildin_bonus2()’ljÁ
+ pc.c/pc.h
+ pc_bonus2()’ljÁ
+ pc_bonus()‚̈—’ljÁ
+ pc_calcstatus()‚ÅŠeŽí’ljÁƒƒ“ƒo‚̉Šú‰»‚ðs‚¤‚悤‚É‚µA
+ hprate‚âsprate‚É]‚¢max_hp,max_sp‚Ì’²®‚à‚·‚é‚悤‚É•ÏXB
+ pc_makesavestatus()‚ŃIƒVƒŠƒXƒJ[ƒhC³
+ skill.c
+ skill_castfix()‚Åcastrate‚É]‚¢A‰r¥ŽžŠÔ‚ð’²®B
+ skill_castend_id()‚Ådsprate‚É]‚¢AŽg—pSP‚ð’²®B
+ skill_castend_nodamage_id()‚ŃJ[ƒhC³‚ð’ljÁ
+ battle.c
+ battle_calc_weapon_attack()‚ŃJ[ƒhC³‚ð’ljÁ
+ battle_calc_magic_attack()‚ŃJ[ƒhC³‚ð’ljÁ
+ battle_damage()‚ŃtƒFƒ“ƒJ[ƒhC³‚ð’ljÁ
+
+EƒXƒe[ƒ^ƒXŠ„‚èU‚è‚Ì•\Ž¦ã‚Ì–â‘èC³
+ STR‚ðã‚°‚Ä‚àATK‚ª•Ï‚í‚ç‚È‚¢–â‘èAINT‚ðã‚°‚Ä‚àMATK‚ª•Ï‚í‚ç‚È‚¢–â‘èC³
+
+ map.h
+ struct map_session_data‚Ématk1,matk2ƒƒ“ƒo’ljÁ
+ pc.c
+ pc_calcstatus()‚ÌC³
+ clif.c
+ clif_initialstatus()‚ÌC³
+ battle.c
+ battle_calc_magic_attack()‚ÌC³
+
+
+----------
+//0251 by nabe
+
+E0250‚̃oƒOC³‚È‚Ç
+ ƒJ[ƒg‚ð•t‚¯‚¸‚ɃƒOƒCƒ“‚Ü‚½‚̓}ƒbƒvˆÚ“®‚µ‚½Œã‚ɃJ[ƒg‚ð•t‚¯‚é‚ÆA
+ ƒJ[ƒg‚Ì’†g‚ª2”{‚Ì—Ê‚É•\Ž¦‚³‚ê‚Ä‚µ‚Ü‚Á‚Ä‚¢‚½‚Ì‚ðC³B
+ ƒJ[ƒg‚̃AƒCƒeƒ€”‚ðXV‚·‚é‚悤‚ÉC³B
+ pc.h/pc.c
+ pc_iscarton()ƒ}ƒNƒ‚ð’ljÁ
+ pc_cart_additem(),pc_cart_delitem()‚É‚»‚ꂼ‚ê
+ sd->cart_num++;‚Æsd->cart_num--;ˆ—‚ð’ljÁ
+ clif.c
+ clif_parse_LoadEndAck()‚ÅA
+ ƒJ[ƒg‚ð•t‚¯‚Ä‚¢‚é‚Æ‚«‚̂݃J[ƒgî•ñ‚ð‘—M‚·‚é‚悤‚É‚µ‚½
+
+----------
+//0250 by nabe
+
+EƒJ[ƒgOFFAƒ`ƒFƒ“ƒWƒJ[ƒgŽÀ‘•B
+ (map/)
+ pc.c/pc.h
+ pc_setcart()‚ð’ljÁ
+ script.c
+ buildin_setcart()‚ð’ljÁ
+ ƒXƒNƒŠƒvƒgƒRƒ}ƒ“ƒhusetcart;v‚ŃJ[ƒg‚ª‚‚­
+ clif.c/clif.h
+ clif_parse_CartOff()’ljÁBiƒJ[ƒg‚ð‚Í‚¸‚·j
+ clif_parse_ChangeCart()’ljÁBiƒ`ƒFƒ“ƒWƒJ[ƒg‚̃J[ƒg‘I‘ðj
+ (conf/)
+ npc_town_kafra.txt
+ ƒJ[ƒgƒT[ƒrƒX‚ðusetcart;v‚É’uŠ·
+
+
+----------
+//0249 by ŒÓ’±—–
+
+Eƒp[ƒeƒB‚̃f[ƒ^ƒx[ƒX‚Ì–µ‚‚ðo—ˆ‚邾‚¯—}‚¦‚é‚悤‚ÉB
+ •¡”ƒp[ƒeƒB‚ÉŠ‘®‚µ‚Ä‚éƒf[ƒ^‚ÌŒŸ¸A’ljÁ‚ÉŽ¸”s‚µ‚½‚Æ‚«‚É’E‘Þ‚È‚ÇB
+
+ (char/)
+ int_party.c
+ party_check_conflict(),party_check_conflict_sub(),
+ mapif_parse_PartyCheck()’ljÁ
+ inter.c
+ ƒpƒPƒbƒg’·ƒŠƒXƒg‚É0x3028’ljÁ
+ INTERŽIƒpƒPƒbƒg.txt
+ ƒpƒPƒbƒg0x3028’ljÁ
+ (map/)
+ party.c/party.h
+ party_check_conflict()’ljÁB
+ party_invite()‚Å“¯ƒAƒJƒEƒ“ƒgŠ‘®ƒ`ƒFƒbƒN‚ðs‚¤‚悤‚ÉB
+ party_member_added(),party_send_movemap()‚Å
+ party_check_conflict()‚ðŒÄ‚Ԃ悤‚ÉB
+ intif.c/intif.h
+ intif_party_checkconflict()’ljÁ
+
+Eƒp[ƒeƒB‚ÌÀ•WA‚g‚o’Ê’m‚ðŽÀ‘•
+ •Ï‰»‚ª‚ ‚ê‚΂P•b‚Ɉê‰ñ‘—MB
+
+ map.h
+ struct map_session_data‚Éparty_x,~_y,~_hp‚Ì‚Rƒƒ“ƒo’ljÁ
+ party.c/party.h
+ party_send_xyhp_timer_sub(),party_send_xyhp_timer(),
+ party_send_xy_clear(),party_send_hp_check()’ljÁB
+ party_recv_movemap()‚Åsd->party_*‚ð‰Šú‰»‚·‚é‚悤‚ÉB
+ clif.c/clif.h
+ clif_send‚ÌPARTY*ƒtƒ‰ƒO‚ð—LŒø‚ÉB
+ iPARTY,PARTY_SAMEMAP,PARTY_AREA,PARTY*_WOS‚Ì‚UŽíj
+ clif_party_xy(),clif_party_hp()’ljÁB
+ pc.c/pc.h
+ pc_authok()‚Åsd->party_*‚ð‰Šú‰»‚·‚é‚悤‚ÉB
+ pc_walk()‚Ńp[ƒeƒBƒƒ“ƒo‚ªŽ‹ŠE“à‚É“ü‚Á‚Ä‚«‚½‚Æ‚«‚É
+ party_hp‚ð‰Šú‰»‚·‚é‚悤‚ÉB
+
+Eƒp[ƒeƒB‚ÌexpŒö•½•ª”z‚ðŽÀ‘•
+ party.c/party.h
+ party_share_exp()’ljÁ
+ mob.c/mob.h
+ mob_damage()‚ÅŒö•½•ª”zˆ—’ljÁ
+
+EƒXƒLƒ‹‚ÌC³‚ƒljÁŽÀ‘•
+ ƒoƒbƒVƒ…AƒsƒA[ƒX‚Ì–½’†—¦C³ŽÀ‘•
+ ƒsƒA[ƒX‚̃TƒCƒY‚É‚æ‚é‰ñ”•Ï“®ŽÀ‘•iƒvƒŒƒCƒ„[‚Í’†Œ^‚Ɖ¼’èj
+ ƒoƒbƒVƒ…Aƒ\ƒjƒbƒNƒuƒƒE‚̃Xƒ^ƒ“Œø‰ÊŽÀ‘•
+ ƒXƒg[ƒ“ƒJ[ƒXAƒtƒƒXƒgƒ_ƒCƒoAƒCƒ“ƒxƒiƒ€A
+ ƒAƒXƒyƒ‹ƒVƒIAƒGƒ“ƒ`ƒƒƒ“ƒgƒ|ƒCƒYƒ“AƒŒƒbƒNƒXƒfƒr[ƒiŽÀ‘•
+
+ skill.c
+ skill_additional_effect()’ljÁ
+ skill_castend_damage_id()ŠY“–ŒÂŠC³
+ skill_castend_nodamage_id()ŠY“–ŒÂŠC³
+ skill_use_id(),skill_use_pos()‚ŃXƒLƒ‹‚ªŽg—p‚Å‚«‚È‚¢‚Æ‚«‚Í
+ ‰½‚à‚µ‚È‚¢‚悤‚ÉC³B
+ battle.c
+ battle_calc_weapon_attack()‚ÌŠY“–ŒÂŠC³
+ battle_get_dmotion(),battle_get_attack_element()C³
+ clif.c
+ clif_mob007b(),clif_mob0078‚Åoption‚È‚Ç‚ð‘—‚é‚悤‚ÉC³
+ pc.c
+ pc_attack(),pc_walktoxy()‚Ås“®•s‰Â”\‚È‚Æ‚«‚͉½‚à‚µ‚È‚¢‚悤‚ÉB
+ mob.c
+ mob_stopattack()C³
+ mob_ai_sub_hard()‚Ås“®•s”\‚È‚Æ‚«‚͉½‚à‚µ‚È‚¢‚悤‚ÉB
+
+EUŒ‚ŽË’ö‚Ì”»’è’ljÁ
+ ‘ŠŽè‚ªˆÚ“®‚µ‚Ä“Í‚©‚È‚¢‚Æ‚«‚ÍAˆÚ“®ƒpƒPƒbƒg‚ð‘—M
+
+ clif.c/clif.h
+ clif_movetoattack()’ljÁ
+ pc.c
+ pc_attack()‚ÅŽË’ö”»’èA“Í‚©‚È‚¢‚È‚çclif_movetoattack()‚ðŒÄ‚ÔB
+
+----------
+//0248 by nabe
+
+Eƒp[ƒeƒB쬎ž‚ÉŠù‚Ƀp[ƒeƒB‚ÉŠ‘®‚µ‚Ä‚¢‚½ê‡‚̈—‚ð’ljÁ
+ party.c
+ party_create()‚ÉAŠù‚Ƀp[ƒeƒB‚ÉŠ‘®‚µ‚Ä‚¢‚½ê‡
+ clif_party_created(sd,2)‚ð’ljÁ
+
+EƒfƒBƒXƒJƒEƒ“ƒgAƒI[ƒo[ƒ`ƒƒ[ƒW‚ðŒvŽZ
+ pc.c
+ pc_modifybuyvalue()Apc_modifysellvalue()‚Å’l’i‚ðŒvŽZ
+
+
+----------
+//0247 by ŒÓ’±—–
+
+Eƒp[ƒeƒBŽÀ‘•
+ Œö•½•ª”z‚Íݒ肵‚Ä‚àŽÀÛ‚É‚ÍŒö•½•ª”z‚³‚ê‚Ä‚È‚¢B
+ ƒp[ƒeƒBƒXƒLƒ‹‚Í‚Ü‚¾Ž©•ª‚É‚µ‚©‚©‚©‚ç‚È‚¢
+
+ (char/)
+ int_party.c/int_party.h
+ ‚Ü‚Æ‚à‚ÉŽÀ‘•
+ inter.c
+ ƒpƒPƒbƒg’·ƒŠƒXƒg’ljÁ
+ INTERŽIƒpƒPƒbƒg.txt
+ ƒp[ƒeƒB‚̃pƒPƒbƒg’ljÁ
+ (map/)
+ party.c/party.h
+ V‹K’ljÁ
+ map.c/map.h
+ struct map_session_data‚Éparty_sendedƒƒ“ƒo’ljÁ
+ do_init()‚Ådo_party_init()‚ðŒÄ‚Ô
+ map_quit()‚Åparty_send_logout()‚ðŒÄ‚Ô
+ intif.c/intif.h
+ ƒp[ƒeƒBŠÖ˜A‚Ì•”•ª’ljÁ
+ clif.c/clif.h
+ ƒp[ƒeƒBŠÖ˜A‚Ì•”•ª’ljÁ
+ clif_parse_LoadEndAck()‚Åparty_send_movemap()‚ðŒÄ‚Ño‚·
+ pc.c
+ pc_authok()‚Åparty_request_info()‚ðŒÄ‚Ԃ悤‚É‚µA
+ party_sended‚ð‰Šú‰»‚·‚é‚悤‚ÉB
+
+E‰r¥–WŠQ‚³‚ꂽ‚Æ‚«‰æ–Êã‚ʼnr¥‚ð‚â‚ß‚é‚悤‚ÉC³
+ (map/)
+ skill.c
+ skill_castcancel()‚ʼnr¥’†Ž~ƒpƒP(‡‚Á‚Ä‚é‚Ì‚©‚ÈH)‚ð‘—M
+
+E’´‰“‹——£UŒ‚‚¾‚Æ“G‚ª”½Œ‚‚µ‚Ä‚±‚È‚¢–â‘è‚ðC³
+ (map/)
+ map.h
+ struct mob_data‚Émin_chaseƒƒ“ƒo’ljÁiÅ’á’ÇÕ‹——£j
+ mob.c
+ mob_attack()‚Åmin_chase‚ð13‚ɉŠú‰»‚·‚é
+ mob_walk()‚Åmin_chase‚ª13‚æ‚è‘å‚«‚¢‚È‚ç­‚µ‚¸‚ˆø‚¢‚Ä‚¢‚­
+ mob_ai_sub_hard()‚Åmin_chase‚É‚æ‚è’ÇÕ‚ð”»’fA
+ UŒ‚‚ðŽó‚¯‚½Žž‚Émin_chase‚ð”މ䋗—£+13‚ÉÝ’è
+
+----------
+//0246 by ŒÓ’±—–
+
+EƒJ[ƒgŽÀ‘•
+ map.h
+ struct map_session_data‚Écart_weight‚È‚Ç‚S‚ƒƒ“ƒo’ljÁ
+ pc.c/pc.h
+ pc_cart_additem(),pc_cart_delitem(),
+ pc_cart_putitemtocart(),pc_cart_getitemfromcart()’ljÁ
+ pc_calcstatus()‚ŃJ[ƒgd—Ê‚âŒÂ”‚È‚Ç‚Ìî•ñ‚ðŒvŽZ
+ clif.c/clif.h
+ clif_cart_itemlist(),clif_cart_equiplist(),
+ clif_cart_additem(),clif_cart_delitem(),
+ clif_parse_PutItemToCart(),clif_parse_GetItemFromCart()’ljÁ
+ clif_parse_LoadEndAck()‚ŃJ[ƒgî•ñA“à—e‘—M
+ clif_updatestatus()‚ÅSP_CARTINFO‚ŃJ[ƒgî•ñ‚ð‘—‚ê‚é‚悤‚É
+ clif_parse_MoveFromKafraToCart(),~ToKafraFromCart()’ljÁ
+ storage.c/storage.h
+ storage_additem(),storage_delitem()’ljÁ
+ storage_storageadditemfromcart,~getitemtocart()’ljÁ
+ storage_storageadd(),storage_storageget()‚ÅA
+ storage_additem(),storage_delitem()‚ðŒÄ‚Ԃ悤‚É•ÏX
+
+EƒXƒLƒ‹‰r¥ƒfƒBƒŒƒC‚È‚ÇŽÀ‘•
+ clif.c
+ clif_parse_WalkToXY()‚Éskilltimer‚É‚æ‚éˆÚ“®‰Â”Û‚ð’ljÁ
+ clif_parse_UseSkillToId(),clif_parse_UseSkillToPos()‚É
+ canmove_tick‚É‚æ‚éUŒ‚‰Â”ےljÁ
+ skill.c/skill.h
+ skill_castcancel()‚ð’ljÁ
+ skill_use_id(),skill_use_pos()‚ŃfƒBƒŒƒCŽžŠÔŒvŽZ‚¨‚æ‚ÑA
+ canmove_tick‚ÌÝ’è
+ battle.c
+ battle_damage()‚Åskill_castcancel()‚̌ĂÑo‚µ’ljÁ
+
+E0245‚̃AƒCƒeƒ€ƒf[ƒ^ƒx[ƒXC³‚Ì’Ê퉿Ši”Å—pˆÓ
+ (db/)
+ item_db.txt
+ item_db2.txt‚É‘O‚Ìitem_db.txt‚̉¿Šiî•ñ‚ðƒ}[ƒW‚µ‚½‚¾‚¯‚Å‚·B
+
+----------
+//0245 by ‚ê‚ 
+ ‚Ü‚½—á‚É‚æ‚Á‚ÄA‘ŠêC³”Å‚Ì‚Ý‚Å‚·B
+Eitem_db2.txt‚ÌC³
+ ‹T“‡V‘•”õ‚ÌŒø‰Ê‚ðŽÀ‘•‚µ‚Ü‚µ‚½B
+ ƒEƒBƒU[ƒh‚ªñ‚ð‘•”õ‚Å‚«‚È‚¢‚Ì‚ðC³
+ ƒEƒBƒU[ƒh‚ªƒ}ƒWƒVƒƒƒ“ƒnƒbƒgA‚Æ‚ñ‚ª‚è–X‚ð
+ ‘•”õ‚Å‚«‚È‚¢‚Ì‚ðC³
+----------
+//0244 by ‚ê‚ 
+Emob_db.txt‚ÌC³
+ ‹T“‡ƒ‚ƒ“ƒXƒ^[‚̃f[ƒ^‚ð‚¢‚ê‚Ü‚µ‚½B
+ ‚½‚¾AŠÔˆá‚Á‚Ä‚é•”•ª‚ª‚©‚È‚è‚ ‚è‚Ü‚·B
+ Speed,Delay‚Í“K“–‚Å‚·B
+ ‚Ü‚½A‚í‚©‚ç‚È‚¢‚Ì‚ÍŠØ‘”ł̃f[ƒ^‚È‚Ì‚Å
+ Mdef‚Æ‚©ˆÙí‚É‚‚¢‹C‚àB
+----------
+//0242 by ŒÓ’±—–
+
+EŽæˆøŠÖ˜A‚Ì•ÏX‚ÆC³
+ Žæˆø‚ÉŽg‚¤•Ï”‚ðmmo_charstatus‚©‚çmap_session_data‚Ɉړ®‚µ‚Ü‚µ‚½
+
+ (common/)
+ mmo.h
+ struct mmo_charstatus‚©‚çŽæˆøŠÖŒW‚̃ƒ“ƒoíœ
+ (map/)
+ map.h
+ struct map_session_data‚ÉŽæˆøŠÖŒW‚̃ƒ“ƒo’ljÁ
+ trade.c
+ \‘¢‘Ì‚Ì•ÏX‚É‚ ‚킹‚ÄC³
+ map.c
+ map_quit()‚ÅŽæˆø’†‚È‚çƒLƒƒƒ“ƒZƒ‹‚·‚é‚悤‚É‚µ‚½
+
+EƒJ[ƒh‚Ì‘g‚݇‚킹ŽÀ‘•
+ pc.c/pc.h
+ pc_insert_card()‚ŃJ[ƒh‚ðŽÀÛ‚É‘}“ü‚·‚é
+ clif.c/clif.h
+ clif_parse_UseCard(),clif_parse_InsertCard()’ljÁ
+ clif_use_card(),clif_insert_card()’ljÁ
+
+Eˆê•”‚̃J[ƒhŒø‰ÊŽÀ‘•
+ ƒXƒLƒ‹K“¾ƒJ[ƒhAƒXƒe[ƒ^ƒXƒ{[ƒiƒXƒJ[ƒh‚È‚ÇB
+
+ (map/)
+ map.h
+ struct map_session_data‚É‘•”õƒJ[ƒhŒŸõ—p‚Ì•Ï”’ljÁ
+ pc.c/pc.h
+ pc_calcstatus()‚ŃJ[ƒh‚̈—’ljÁ
+ ‚ ‚éID‚̃J[ƒh‚ª‘•”õÏ‚Ý‚©ŒŸõ‚·‚邽‚ß‚ÌŠÖ”A
+ pc_equip_card(),pc_equip_wcard(),pc_equip_dcard()‚ð—pˆÓ
+
+Ed—ʃI[ƒo[/‘é/‹RæƒAƒCƒRƒ“‚Ì•\Ž¦
+ (map/)
+ pc.c/pc.h
+ pc_checkweighticon()’ljÁAd—ʂ̃AƒCƒRƒ“ˆ—
+ clif.c
+ clif_updatestatus()‚Åd—Ê‘—MŽž‚Épc_checkweighticon()‚ÌŽÀs
+ clif_changeoption()‚Å‘é‚Æ‹Ræ‚̃AƒCƒRƒ“ˆ—
+
+E0241‚̃AƒCƒeƒ€ƒf[ƒ^ƒx[ƒXC³‚Ì’Ê퉿Ši”Å—pˆÓ
+ (db/)
+ item_db.txt
+ item_db2.txt‚É‘O‚Ìitem_db.txt‚̉¿Šiî•ñ‚ðƒ}[ƒW‚µ‚½‚¾‚¯‚Å‚·B
+
+
+----------
+//0241 by ‚ê‚ 
+EƒAƒCƒeƒ€ƒf[ƒ^ƒx[ƒX‚ÌC³
+ V“ª‘•”õ‚̃Oƒ‰ƒtƒBƒbƒN‚ªˆÙ‚È‚é‚Ì‚ðC³
+ ‘•”õ‚ÌŒø‰Ê‚ÌŽÀ‘•
+ ã’iE’†’i‚ªŠÔˆá‚Á‚Ä‚½‚Ì‚ð­‚µC³
+ ‘¬•ñ”Å‚Á‚Ä‚±‚ƂŊԈႦ‘½‚¢‚©‚àB
+ ƒeƒXƒg‚à‚ ‚܂肵‚Ä‚Ü‚¹‚ñB
+ ‚ ‚ÆA‘Šê’²®”Å‚µ‚©—pˆÓ‚µ‚Ä‚Ü‚¹‚ñB
+
+ item_db2.txt
+ ‹T“‡‚É‚ ‚킹‚Ä’²®
+
+----------
+//0240 by nabe
+
+EŽæˆø‚ðŽÀ‘•‚µ‚Ü‚µ‚½B
+ (common/)
+ mmo.h
+ struct mmo_charstatus ‚É
+ int trade_partner;
+ int deal_item_index[10];
+ int deal_item_amount[10];
+ int deal_zeny;
+ short deal_locked;
+ ‚ð’ljÁ
+ (map/)
+ clif.c,clif.h
+ clif_traderequest() : 0xe5iŽæ‚èˆø‚«—v¿Žó‚¯j
+ clif_tradestart() : 0xe7iŽæ‚èˆø‚«—v‹‰ž“šj
+ clif_tradeadditem() : 0xe9i‘ŠŽè•û‚©‚ç‚̃AƒCƒeƒ€’ljÁj
+ clif_tradeitemok() : 0xeaiƒAƒCƒeƒ€’ljÁ¬Œ÷j
+ clif_tradedeal_lock() : 0xeciok‰Ÿ‚µj
+ clif_tradecancelled() : 0xeeiŽæ‚èˆø‚«ƒLƒƒƒ“ƒZƒ‹j
+ clif_tradecompleted() : 0xf0iŽæ‚èˆø‚«Š®—¹j
+ ‚ð’ljÁB
+ trade.c,trade.h
+ trade_traderequest() : Žæˆø—v¿‚ð‘ŠŽè‚É‘—‚é
+ trade_tradeack() : Žæˆø—v¿
+ trade_tradeadditem() : ƒAƒCƒeƒ€’ljÁ
+ trade_tradeok() : ƒAƒCƒeƒ€’ljÁŠ®—¹(ok‰Ÿ‚µ)
+ trade_tradecancel() : ŽæˆøƒLƒƒƒ“ƒZƒ‹
+ trade_tradecommit() : Žæˆø‹–‘ø(trade‰Ÿ‚µ)
+ ‚ðŽÀ‘•B‚»‚ꂼ‚êclif.c::clif_parse_Trade*‚©‚çŒÄ‚΂ê‚éB
+
+
+----------
+//0238 by ‚ê‚ 
+
+E‘¬“x•ÏX‚ÉŠÖ‚µ‚Ä­‚µC³
+ atcommand.c
+ ‘¬“x•ÏX‚Ì•”•ª‚ð­‚µC³
+ ‚±‚ê‚ňꉞ“®‚­‚Ý‚½‚¢H
+ pc.c
+ ‚‚¢‚Å‚É‚Å‚·‚ª
+ ‘¬“x㸂ŕàs‘¬“x‚ªã‚ª‚é‚悤‚É‚µ‚½B
+ ˆê‰ž“®‚­‚Ý‚½‚¢‚Å‚·‚ª“K“–‚È‚Ì‚Å
+ ‚¨‚©‚µ‚È‚Æ‚±‚낪‚ ‚ê‚΂¨Šè‚¢‚µ‚Ü‚·B
+
+----------
+//0236 by nabe
+
+EƒXƒNƒŠƒvƒg‚Åmenu‚Å”ò‚ñ‚¾æ‚Å’¼‚®menu‚ð‘‚­‚ƌ듮삷‚éƒoƒO‚ðC³‚µ‚Ü‚µ‚½B
+ script.c
+ goto“®ì‚ÌŒã‚ÌRERUNLINE‚ɑΈ‚·‚邽‚ßA
+ goto,menu‚Å”ò‚ñ‚¾Œã‚É‚ÍAst.state==GOTO‚Årerun_pos‚ðXVB
+
+
+----------
+//0233 by nabe
+
+EƒAƒCƒeƒ€‚ð‘•”õ‚·‚éÛ‚Ì‘•”õ”»’è‚ð’ljÁ‚µ‚Ü‚µ‚½B
+ pc.c
+ pc_equipitem()‚É‘•”õ”»’èi«•Ê”»’èA‘•”õLV”»’èAE‹Æ”»’èj’ljÁ
+
+Ed—Ê”»’èƒXƒNƒŠƒvƒgƒRƒ}ƒ“ƒh‚ð’ljÁ‚µ‚Ü‚µ‚½B
+ if (checkweight(ƒAƒCƒeƒ€ID,ƒAƒCƒeƒ€”—Ê))
+ ‚Å‚»‚̃AƒCƒeƒ€~”—Ê‚ðŽæ“¾‚Å‚«‚é‚©‚Ç‚¤‚©”»’è‚Å‚«‚Ü‚·B
+ script.c
+ buildin_checkweight()‚ð’ljÁ
+
+EƒXƒNƒŠƒvƒg‹l‚߇‚킹‚ðathena dev-2.1.1—p‚ɈÚA‚µ‚Ü‚µ‚½B
+ map_athena1.cnf
+ npc_event_*.txt ƒCƒxƒ“ƒgNPC
+ npc_job_*.txt “]ENPC
+ npc_mob_job.txt “]E—pƒ‚ƒ“ƒXƒ^[
+ npc_town_*.txt ’¬NPC
+
+
+----------
+//0232 by ŒÓ’±—–
+
+E‘•”õƒ{[ƒiƒX‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½
+ ƒ{[ƒiƒX‚ÉŽg‚¤ƒXƒNƒŠƒvƒg(bonus,skill)‚ðŽÀ‘•
+ ƒXƒNƒŠƒvƒg‚ÍI-Athena‚̃f[ƒ^‚ðŽg‚Á‚ăRƒ“ƒo[ƒg‚µ‚Ü‚µ‚½B
+ i‚Ü‚¾ƒJ[ƒh‚ɂ͑Ήž‚µ‚Ä‚¢‚Ü‚¹‚ñj
+
+ (common/)
+ mmo.h
+ struct skill‚Éflagƒƒ“ƒo’ljÁiƒJ[ƒhƒXƒLƒ‹‚©‚Ç‚¤‚©j
+ (map/)
+ map.h
+ struct map_session_data‚Éatk_ele‚Ȃǂ̃ƒ“ƒo’ljÁ
+ enum‚ÅSP_ATKELEMENT‚ȂǒljÁ
+ pc.c
+ pc_bonus()‚ÌŽÀ‘•Apc_skill()’ljÁ
+ script.c
+ buildin_skill()‚̒ljÁ
+ buildin_bonus()‚ÌC³(const.txt‚̒蔂ªŽg‚¦‚é‚悤‚É)
+ clif.c
+ clif_skillinfoblock()‚ÌC³(ƒJ[ƒhƒXƒLƒ‹‚Íã‚°‚ç‚ê‚È‚¢)
+ (db/)
+ const.txt
+ bonus‚ÉŽg‚¤‚½‚߂̒蔒ljÁ
+ item_db.txt
+ •W€‚̃f[ƒ^‚É‘•”õƒXƒNƒŠƒvƒg‚ð’ljÁ‚µ‚½‚à‚Ì
+ item_db2.txt
+ 0213‚Å‘Šê’²®‚³‚ꂽƒf[ƒ^‚É‘•”õƒXƒNƒŠƒvƒg‚ð’ljÁ‚µ‚½‚à‚Ì
+
+E‰r¥ŠÖŒW‚̃oƒO‚ªC³‚³‚ê‚Ü‚µ‚½
+ (map/)
+ skill.c
+ skill_use_id(),skill_use_pos()‚ðC³
+ (db/)
+ cast_db.txt
+ ­‚µ’ljÁiƒuƒŠƒbƒcƒr[ƒg‚È‚Çj
+
+EUŒ‚‘®«‚ª“K—p‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+E¯‚Ì‚©‚¯‚ç‚ÌC³‚ª“K—p‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+ map.h
+ struct map_session_data‚Éstarƒƒ“ƒo’ljÁ
+ pc.c
+ pc_calcstatus()‚Å‘®«‰Šú‰»
+ battle.c
+ battle_get_element(),battle_get_attack_element()C³
+ battle_calc_weapon_damage()‚ÌŠY“–ŒÂŠC³
+
+Eñ‘•”õŽž‚ÉMATK+15%‚ª“K—p‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+ battle.c
+ battle_calc_magic_damage()‚ÌŠY“–ŒÂŠC³
+
+E»‘¢•Ší‚̃Lƒƒƒ‰ƒNƒ^[–¼‚ª³‚µ‚­•\Ž¦‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+
+ Œ´—‚Æ‚µ‚Ä‚ÍAmapŽI“à‚̃Lƒƒƒ‰ƒNƒ^–¼ƒf[ƒ^ƒx[ƒX‚ðŒŸõ‚µ‚ÄA
+ ‘¶Ý‚·‚ê‚Α¦•ÔMA‘¶Ý‚µ‚È‚¯‚ê‚ÎcharŽI‚É‰ðŒˆ—v‹‚ðo‚·B
+ ‚±‚Ì‚Æ‚«A–¼‘O‚ð—v‹‚µ‚Ä‚«‚½ƒNƒ‰ƒCƒAƒ“ƒg‚ÌID‚ðƒf[ƒ^ƒx[ƒX‚É“o˜^‚·‚éB
+ charŽI‚©‚ç–¼‘Oƒf[ƒ^‚ª‚­‚é‚ÆA‘Ήž‚·‚éƒf[ƒ^ƒx[ƒX‚É–¼‘O‚ðƒZƒbƒg‚µA
+ —v‹‚µ‚Ä‚«‚½ƒNƒ‰ƒCƒAƒ“ƒg‚É–¼‘O‚ð•ÔM‚·‚éB
+ –¢‰ðŒˆ‚Ì“¯‚¶ƒLƒƒƒ‰ID‰ðŒˆ‚ð•¡”‚̃Nƒ‰ƒCƒAƒ“ƒg‚ª—v‹‚µ‚Ä‚«‚½ê‡A
+ ÅŒã‚É—v‹‚µ‚Ä‚«‚½ƒNƒ‰ƒCƒAƒ“ƒg‚É‚µ‚©•ÔM‚µ‚È‚¢‚ªA
+ •ÔM‚³‚ê‚È‚©‚Á‚½ƒNƒ‰ƒCƒAƒ“ƒg‚Í”•bŒã‚ÉÄ‚Ñ‰ðŒˆ—v‹‚ð‘—‚Á‚Ä‚­‚é
+ i‚»‚µ‚Ä‚»‚Ì‚Æ‚«‚ÍmapŽI‚©‚瑦•ÔM‚³‚ê‚éj‚Ì‚Å‘å‚«‚È–â‘è‚Í‚È‚¢B
+
+ ƒpƒPƒbƒg0x2b08,0x2b09‚ÅmapŽI‚ÆcharŽI‚ª’ÊM‚µ‚Ä‚Ü‚·B
+
+ (char/)
+ char.h
+ UNKNOWN_CHAR_NAME’è‹`iƒLƒƒƒ‰ƒf[ƒ^‚ª–³‚¢‚Æ‚«‚É•Ô‚³‚ê‚é–¼‘Oj
+ char2.c
+ parse_frommap()‚ɃpƒPƒbƒg0x2b08‚̈—‚ð’ljÁ
+
+ (map/)
+ chrif.c/chif.h
+ chrif_searchcharid()’ljÁ
+ chrif_parse()‚Å0x2b09‚̈—’ljÁ
+ map.c
+ ƒf[ƒ^ƒx[ƒX charid_db 錾
+ struct charid2nick錾Bnick‚Í–¼‘OA
+ req_id‚Í0‚Å–¼‘O‰ðŒˆÏ‚ÝA0ˆÈŠO‚Å–¢‰ðŒˆ‚Å‰ðŒˆ‘Ò‚¿‚̃uƒƒbƒNID
+ map_addchariddb()’ljÁBƒf[ƒ^ƒx[ƒX‚Ö–¼‘O“o˜^A—v‹‚É•ÔMB
+ map_reqchariddb()’ljÁB—v‹‚ª‚ ‚Á‚½‚±‚Æ‚ðƒf[ƒ^ƒx[ƒX‚֒ljÁB
+ map_charid2nick()‚Ńf[ƒ^ƒx[ƒX‚ÌŒŸõ
+ do_init()‚Å charid_db ‚̉Šú‰»‚ð’ljÁ
+ clif.c/clif.h
+ clif_parse_SolveCharName(),clif_solved_charname()’ljÁ
+
+
+----------
+//0231 by nabe
+
+EƒXƒNƒŠƒvƒg‚Å mes "$charaname"; “™‚Æ‘‚­‚ƃLƒƒƒ‰‚Ì–¼‘O‚ð‚µ‚á‚ׂé‹@”\‚ð’ljÁB
+ script.c
+ buildin_mes()“à‚Å
+ mes“à•”‚Ì$charaname‚ðƒLƒƒƒ‰‚Ì–¼‘O‚É’uŠ·‚·‚鈗‚ð’ljÁB
+ ”“¯—l‚É‚µ‚Ä•Ï”‚Ì’l‚È‚Ç‚ðmes“à•”‚Å•\Ž¦‚·‚é‚悤‚É‚·‚邱‚Æ‚à
+ ”‚Å‚«‚Ü‚·‚ªA‚±‚ê‚ɂ‚¢‚Ä‚Í–¢ŽÀ‘•‚Å‚·EEEB
+ ”‚Æ‚è‚ ‚¦‚¸
+ ” mes Global_Val;
+ ”‚̂悤‚É’¼Ú‘‚­‚±‚ƂőΈ‚µ‚Ä‚­‚¾‚³‚¢B
+
+E“G‚ÉUŒ‚‚³‚ꂽ‚Æ‚«‚ÉmapŽI‚ª—Ž‚¿‚邱‚Æ‚ª‚ ‚é‚Ì‚ðC³B
+ battle.c
+ battle_calc_weapon_attack()‚Ì
+ ƒfƒBƒoƒCƒ“ƒvƒƒeƒNƒVƒ‡ƒ“‚̃XƒLƒ‹ƒ`ƒFƒbƒN•”•ªA
+ pc_checkskill(sd,22)‚ðA
+ pc_checkskill(tsd,22)‚ÉB
+
+----------
+//0230 by nabe
+
+E‰ñ”𗦑‰ÁƒXƒLƒ‹‚ðƒXƒe[ƒ^ƒX‚É”½‰fB
+ pc.c
+ 0228‚Å‚Ìpc_calcstatus()‚̉ñ”𗦑‰Á•ª‚ðŒ³‚É–ß‚µflee‚ð‘‰ÁB
+ battle.c
+ battle_calc_weapon_attack()‚ÌhitrateŒvŽZ‚ʼnñ”𗦕ÛØ‚ðŒvŽZB
+EƒOƒ[ƒoƒ‹•Ï”‚ðŽÀ‘•B
+@ '@'‚à‚µ‚­‚Í'l'‚ÅŽn‚Ü‚ç‚È‚¢•Ï”–¼‚ÍA‘S‚ăOƒ[ƒoƒ‹•Ï”‚Æ‚Ý‚È‚³‚ê‚Ü‚·B
+ mmo.h
+ struct mmo_charstatus ‚É
+ int global_reg_num;
+ struct global_reg global_reg[GLOBAL_REG_NUM];
+ ‚ð’ljÁB
+ pc.c
+ pc_readglobalreg(),pc_setglobalreg()‚ð’ljÁB
+ script.c
+ get_val(),buildin_input(),buildin_set()‚É
+ ƒOƒ[ƒoƒ‹•Ï”‚Ì‚½‚߂̈—‚ð’ljÁB
+ char2.c
+ mmo_char_tostr(),mmo_char_fromstr()‚É
+ ƒOƒ[ƒoƒ‹•Ï”‚Ì‚½‚߂̈—‚ð’ljÁB
+
+----------
+//0229 by ŒÓ’±—–
+
+Eˆê•”ƒXƒLƒ‹‚ÌŽÀ‘•/C³
+ ƒfƒBƒoƒCƒ“ƒvƒƒeƒNƒVƒ‡ƒ“Aƒf[ƒ‚ƒ“ƒxƒCƒ“Aƒr[ƒXƒgƒxƒCƒ“ŽÀ‘•
+ ƒGƒiƒW[ƒR[ƒgC³i–‚–@‚É‚æ‚éUŒ‚‚ɂ̓XƒLƒ‹‚ª“­‚©‚È‚¢‚悤‚ÉC³j
+ •ŠíUŒ‚ŒnƒXƒLƒ‹C³iƒGƒtƒFƒNƒg‚ð’ÊíUŒ‚‚©‚çƒXƒLƒ‹‚É•ÏXj
+
+ battle.c
+ battle_addmastery()‚ŃxƒCƒ“Œn’ljÁ
+ battle_calc_damage()‚ŃGƒiƒW[ƒR[ƒgC³
+ skill.c
+ skill_castend_damage_id()‚Ì•ŠíUŒ‚ŒnƒXƒLƒ‹‚Ì•”•ª‚ðC³
+
+E“GUŒ‚ŒvŽZ‚ðPC‚Ì‚à‚̂ƈê–{‰»
+ ‚±‚ê‚ÅPCvsPCAPCvsMOBAMOBvsPCAMOBvsMOB(!?)‚ð‚P‚‚̊֔‚ÅŒvŽZ‚Å‚«‚Ü‚·
+
+ battle.c/battle.h
+ battle_calc_weapon_attack()‚ðC³
+ battle_calc_weapon_attack_pc(),~mob()‚ðíœ
+ mob.c
+ mob_attack()‚ÅŒvŽZ‚Ébattle_calc_weapon_attack()‚ðŽg‚¤‚悤‚ÉC³
+
+E‰r¥ŽžŠÔƒf[ƒ^‚ª‚È‚¢ê‡‚̃fƒtƒHƒ‹ƒg‚̉r¥ŽžŠÔ‚ð‚O‚É•ÏX
+ ¡‚Ü‚Å‚Í‚P•b‚É‚µ‚Ä‚Ü‚µ‚½‚ªAƒoƒbƒVƒ…‚Æ‚©‚ª‚¨‚©‚µ‚­‚È‚é‚Ì‚ÅB
+ iƒoƒbƒVƒ…‚Æ‚©‚̃f[ƒ^‚ð—pˆÓ‚·‚ê‚΂±‚¤‚µ‚È‚­‚Ä‚à’¼‚é‚ñ‚Å‚·‚ªj
+
+ pc.c
+ pc_readdb()‚Å1000ms‚ðƒZƒbƒg‚·‚é‚Ì‚ðŽ~‚ß‚½
+
+E‰“‹——£UŒ‚‚µ‚Ä‚±‚È‚¢ƒoƒOA‚»‚Ì‘¼‚ðC³
+ mob.c
+ mob_attack()‚ÌŽË’ö‚ðC³‚µ–Y‚ê‚Ä‚¢‚½
+ mob_ai_sub_hard()‚ÅŽË’ö‹——£ŠO‚ÌŽžA–³ˆÚ“®‚Ì“G‚Í
+ ƒ^[ƒQƒbƒg‚ðŠO‚·‚悤‚É‚µ‚½
+
+
+----------
+//0228 by nabe
+
+Eƒ_ƒuƒ‹ƒAƒ^ƒbƒN‚ÌSkillID‚ðC³B
+ battle.c
+ battle_calc_weapon_attack_pc()‚Å
+ pc_checkskill(sd,49) -> pc_checkskill(sd,48)‚ÉB
+E‰ñ”𗦌üã‚ð—z‚É•\‚³‚È‚¢
+ pc.c
+ pc_calcstatus()‚Å‚Ìflee‚̉ñ”𗦌ü㕪‚ð휂µA
+ mob.c
+ mob_attack()‚ÌhitrateŒvŽZ‚ʼnñ”𗦌üã‚ðŒvŽZB
+E“å³A“峎“A“å³—Y‚ð³í‰»B
+ npc_monster3J.txt
+ mob_db.txt‚ɇ‚킹‚ÄA‚½‚Ô‚ñ³‚µ‚¢‚ÆŽv‚í‚ê‚éID‚ÉC³B
+ “å³ 1006 -> 1051
+ “峎“ 1017 -> 1053
+ “å³—Y 1021 -> 1054
+EƒfƒoƒbƒOƒƒbƒZ[ƒW‚ÌÁ‚µ–Y‚êiHj‚ðíœB
+ pc.c
+ printf("pc.c 63 clif_clearchar_area\n");‚ðƒRƒƒ“ƒgƒAƒEƒg
+
+----------
+//0227 by ŒÓ’±—–
+
+Eˆê•”‚̃XƒLƒ‹Œø‰Ê‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½
+ HP‰ñ•œŒüãASP‰ñ•œŒüãAƒ}ƒOƒjƒtƒBƒJ[ƒgA
+ ƒnƒCƒfƒBƒ“ƒOAƒNƒ[ƒLƒ“ƒOAŽ€‚ñ‚¾‚Ó‚èA‰ž‹}Žè“–
+
+ map.h
+ struct map_session_data ‚É inchealtick ƒƒ“ƒo’ljÁ
+ pc.c
+ pc_spheal()‚Ń}ƒOƒjƒtƒBƒJ[ƒgˆ—’ljÁ
+ pc_natual_heal_sub()‚ʼnñ•œŒüãƒXƒLƒ‹ˆ—’ljÁ
+ pc_authok()‚Åinchealtick‚ð‰Šú‰»‚·‚é‚悤‚É•ÏX
+ pc_walk()‚Åincheaktick‚ðÄÝ’è‚·‚é‚悤‚É•ÏX
+ pc_walk()‚ŃNƒ[ƒLƒ“ƒO‚ÌI—¹ðŒ‚𒲸‚·‚é‚悤‚É•ÏX
+ pc_walktoxy()‚Åó‘Ô‚É‚æ‚Á‚Ĉړ®•s‰Â”\‚É‚µ‚½
+ skill.c/skill.h
+ skill_status_change_start(),~timer(),~end()‚Ɉ—’ljÁ
+ skill_check_cloaking()’ljÁAƒNƒ[ƒLƒ“ƒO‚ÌI—¹ðŒ‚ðŒŸ¸
+ battle.c/battle.h
+ battle_stopattack()’ljÁ
+ battle_calc_weapon_attack()‚ÅUŒ‚‚ðŽ~‚߂鈗’ljÁ
+ mob.c
+ mob_ai_sub_hard()‚ÅUŒ‚‚ðŽ~‚߂鈗’ljÁ
+
+E’ÊíUŒ‚ˆ—A‘ÎMOBA‘ÎPC‚ð‹¤—p‚ÉB
+ pc.c
+ pc_attack_mob(),pc_attack_pc()íœ
+ pc_attack()‚ÉUŒ‚ˆ—’ljÁ
+
+Eƒ‚ƒ“ƒXƒ^[‚Ìs“®‚̈ꕔŽÀ‘•
+ ƒAƒNƒeƒBƒ”A–³”½‰žAˆÚ“®‚µ‚È‚¢A‰“‹——£UŒ‚ˆê•”
+
+ mob.c
+ mob_ai_sub_hard()‚És“®’ljÁ
+ mob_ai_sub_hard_activesearch()’ljÁA‹ß‚­‚ÌPC‚Ö‚Ìô“G
+
+EƒI[ƒo[ƒgƒ‰ƒXƒg‚Ì‘‰Á”{—¦‚ª100”{‚É‚È‚Á‚Ä‚¢‚éƒoƒO‚ªC³‚³‚ê‚Ü‚µ‚½
+ battle.c
+ battle_calc_weapon_attack()‚ÅAŠY“–ŒÂŠ‚ðC³
+
+
+----------
+//0226 by ŒÓ’±—–
+
+‚â‚Á‚Ï‚èƒeƒXƒg‚Í‚ ‚ñ‚܂肵‚Ä‚¢‚Ü‚¹‚ñ
+
+Eˆê•”‚̃XƒLƒ‹Œø‰Ê‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½
+ ‘¬“x‘‰ÁAƒGƒ“ƒWƒFƒ‰ƒXAƒLƒ…ƒA[
+ ƒCƒ“ƒ|ƒVƒeƒBƒIƒ}ƒkƒXAƒTƒtƒ‰ƒMƒEƒ€AƒŠƒJƒoƒŠ[AƒOƒƒŠƒA
+ ‚Ó‚­‚낤‚Ì–ÚAƒƒV‚Ì–ÚAW’†—ÍŒüãA‰ñ”𗦌üãA‰ð“Å
+ ŠŽ—Ê‘‰ÁAƒ‰ƒEƒhƒ{ƒCƒXAƒAƒhƒŒƒiƒŠƒ“ƒ‰ƒbƒVƒ…AƒI[ƒo[ƒgƒ‰ƒXƒg
+ ƒEƒFƒ|ƒ“ƒp[ƒtƒFƒNƒVƒ‡ƒ“Aƒ}ƒLƒVƒ}ƒCƒYƒpƒ[A‚Q‚g‚p
+
+ (map/)
+ map.h
+ struct map_session_data‚Éwatk2,def2‚ȂǒljÁ
+ pc.c
+ pc_calcstatus()‚ɃXƒLƒ‹C³’ljÁ
+ atk2‚È‚Ç‚à‘—M‚·‚é‚悤‚É•ÏX
+ battle.c/battle.h
+ battle_get_def2()‚È‚Ç‘½”’ljÁ
+ battle_calc_weapon_damage()‚Å“GŒ¸ŽZ–hŒä‚ÌŠ“¾‚ð
+ battle_get_def2()‚É•ÏX
+ battle_calc_magic_damage()‚Å“GŒ¸ŽZ–‚–@–hŒä‚ÌŠ“¾‚ð
+ battle_get_mdef2()‚É•ÏX
+ battle_calc_weapon_damage()‚ŃXƒLƒ‹C³‚ð’ljÁ
+ skill.c/skill.h
+ skill_use_nodamage_id()‚ÌŠY“–ŒÂŠ’ljÁ
+ skill_status_change_start()‚ÌŠY“–ŒÂŠ’ljÁ
+ clif.c
+ clif_updatestatus()‚Ìatk2‚Ȃǂ̈—’ljÁ
+ clif_initialstatus()‚Åatk2‚Ȃǂ̈µ‚¢•ÏXAaspd‚È‚Ç‘—M’ljÁ
+
+E¸˜Bƒ_ƒ[ƒWC³/¸˜B–hŒäC³‚ª“K—p‚³‚ê‚Ü‚µ‚½
+ (map/)
+ pc.c
+ pc_calcstatus()‚Åwatk2‚Ædef‚̒ljÁŒvŽZ’ljÁ
+ battle.c
+ battle_calc_weapon_damage()‚Åwatk2‚ðƒ_ƒ[ƒW‚ɒljÁ
+
+EinterŽI‚̃pƒPƒbƒg‰ðÍ•”‚Ì’v–½“I‚È–â‘肪C³‚³‚ê‚Ü‚µ‚½
+ TCP/IPƒvƒƒOƒ‰ƒ€‚Å‚â‚Á‚Ä‚Í‚¢‚¯‚È‚¢‚±‚Æ‚ð‚»‚Ì‚Ü‚Ü‚â‚Á‚Ä‚Ü‚µ‚½(Š¾
+ interŽI‚̃pƒPƒbƒg’·ƒf[ƒ^‚ðinter.c‚ÉŽ‚‚悤‚ÉC³‚³‚ê‚Ü‚µ‚½B
+
+ (char/)
+ inter.c/inter.h
+ ƒpƒPƒbƒg’·ƒf[ƒ^ inter_*_packet_length[] ‚ð’ljÁ
+ ƒpƒPƒbƒg’·ƒ`ƒFƒbƒN inter_check_length() ‚ð’ljÁ
+ mapif_parse_*()‚ÅRFIFOSKIP‚ð‚È‚µ‚É•ÏX
+ int_storage.c/int_storage.h
+ mapif_parse_*()‚ÅRFIFOSKIP‚ð‚È‚µ‚É•ÏX
+ int_party.c/int_guild.c
+ Žd—l•ÏX‚ɑΉž‚³‚¹‚½•ÏX
+ INTERŽIƒpƒPƒbƒg.txt
+ ƒpƒPƒbƒg’·ƒŠƒXƒg’ljÁ
+
+E‚¿‚å‚Á‚Æ‚µ‚½C³
+ (char/)
+ inter.h
+ inter_cfgName‚ð"conf/inter_athena.cnf"‚ÉC³
+ char2.c
+ char.exe‘æ‚Qˆø”È—ªŽžAinter_cfgName‚ðŽg‚¤‚悤‚ÉC³
+ (db/)
+ cast_db.txt
+ ƒz[ƒŠ[ƒ‰ƒCƒg‚̉r¥ŽžŠÔ’ljÁiƒfƒBƒŒƒC‚Í“K“–j
+ Ú‚µ‚¢l’ljÁ‹‚Þ
+
+----------
+//0225 by ŒÓ’±—–
+
+‚È‚ñ‚©‚©‚È‚è˜M‚è‚Ü‚µ‚½‚ª‘Š•Ï‚í‚炸ƒeƒXƒg‚Í‚ ‚ñ‚܂肵‚Ä‚Ü‚¹‚ñB
+
+EƒXƒLƒ‹Žg—pŽž‚Ì•Ï”‚ð•ÏX
+ ‚æ‚­Œ©‚½‚çʼn‚©‚ç—pˆÓ‚³‚ê‚Ä‚Ü‚µ‚½‚ËB
+
+ map.h
+ struct map_session_data‚Ìcast_*‚ðíœ
+ skill.c
+ cast_*‚Ì•Ï”‚ðskill*‚É•ÏXB
+
+EƒXƒe[ƒ^ƒXˆÙíƒXƒLƒ‹‚̈—‚ð’ljÁiŒø‰Ê‚Í–¢ŽÀ‘•j
+ Œ©‚©‚¯ãAƒXƒe[ƒ^ƒXˆÙí‚ÉŠ|‚©‚Á‚½‚è‚Æ‚©‚¾‚¯B
+ Œø‰Ê‚Í‚Ü‚¾‚È‚µB
+
+ skill.c/skill.h
+ skill_status_change_start(),~end(),~timer(),~clear()’ljÁB
+ ‚»‚ꂼ‚êƒXƒe[ƒ^ƒXˆÙí‚ÌŠJŽnAI—¹Aƒ^ƒCƒ}ˆ—A‘SÁ‹ŽB
+ map.c/map.h
+ map_quit()‚Åskill_status_change_clear()‚ðŒÄ‚Ԃ悤‚É‚µ‚½B
+ struct map_session_data‚Ésc_data,sc_count’ljÁB
+ struct mob_data‚Ésc_data,sc_count,option,opt1,opt2’ljÁB
+ pc.c
+ pc_authok()‚Åsc_data,sc_count‚ð‰Šú‰»‚·‚é‚悤‚É‚µ‚½B
+ pc_setoption‚Åclif_changeoption()‚̈ø”•ÏXB
+ pc_damage()‚ÅŽ€–SŽž‚Éskill_status_change_clear()‚ðŒÄ‚Ԃ悤‚ÉB
+ mob.c
+ mob_spawn()‚Åsc_data,sc_count‚ð‰Šú‰»‚·‚é‚悤‚É‚µ‚½B
+ mob_attack()‚Åbattle_calc_damage()‚ðŒÄ‚Ԃ悤‚É‚µ‚½B
+ mob_damage()‚ÅŽ€–SŽž‚Éskill_status_change_clear()‚ðŒÄ‚Ԃ悤‚ÉB
+ battle.c/battle.h
+ battle_get_*()‚½‚­‚³‚ñ’ljÁB
+ battle_calc_damage()’ljÁBÅI“I‚ȃ_ƒ[ƒWŒvŽZ—pB
+ battle_calc_magic_attack(),battle_calc_weapon_attack()‚Å
+ battle_calc_damage()‚ðŒÄ‚Ԃ悤‚É‚µ‚½B
+ clif.h/clif.c
+ clif_status_change()’ljÁBƒXƒe[ƒ^ƒXˆÙíƒAƒCƒRƒ“•\Ž¦—pB
+ clif_changeoption()‚̈ø”•ÏXB
+ atcommand.c
+ clif_changeoption()‚ðŒÄ‚ñ‚Å‚¢‚é‚Qƒ–Š‚ňø”•ÏXB
+ @die‚Åskill_status_change_clear()‚ðŒÄ‚Ԃ悤‚ÉB
+
+Eƒ}ƒOƒkƒXƒGƒNƒ\ƒVƒYƒ€‚ÌK“¾ðŒ‚ªŠÔˆá‚Á‚Ä‚¢‚é‚Ì‚ðC³B
+ db/skill_tree.txt
+ ŠY“–ŒÂŠC³BiƒŒƒbƒNƒXƒG[ƒeƒ‹ƒi‚Ì•K—vLv‚ð‚P‚Éj
+
+EƒAƒNƒeƒBƒu‚È“G‚ÍUŒ‚‚·‚é‚Æ‚«ŽžXƒ^[ƒQƒbƒg‚ª•Ï‚í‚é‚悤‚É‚È‚è‚Ü‚µ‚½
+ mob.c
+ mob_ai_sub_hard()‚ÌUŒ‚‚³‚ꂽ‚©Šm”F‚·‚é•”•ª‚É
+ ƒAƒNƒeƒBƒu‚È‚ç25%‚ÌŠm—¦‚Ń^[ƒQƒbƒg‚ª•Ï‚í‚é‚悤‚É•ÏXB
+
+Eˆê•”‚̃XƒLƒ‹Œø‰Ê‚ªŽÀ‘•‚³‚ê‚Ü‚µ‚½
+ ƒLƒŠƒGƒGƒŒƒCƒ\ƒ“AƒGƒiƒW[ƒR[ƒgAƒŒƒbƒNƒXƒG[ƒeƒ‹ƒiA
+ ƒz[ƒŠ[ƒ‰ƒCƒgAƒŠƒUƒŒƒNƒVƒ‡ƒ“Aƒ^[ƒ“ƒAƒ“ƒfƒbƒhAƒ‚ƒ“ƒXƒ^[î•ñ
+
+ skill.c/skill.h
+ skill_castend_nodamage_id()‚ɃXƒLƒ‹‚̈—‚ð’ljÁB
+ skill_castend_*_id()‚̈ø”‚ð•ÏX
+ battle.c
+ battle_calc_damage()‚ɃXƒLƒ‹‚̈—‚ð’ljÁB
+ battle_damage(),battle_heal()‚̈ø”•ÏX
+ battle_calc_weapon_damage(),battle_calc_magic_damage()ˆø”•ÏX
+ clif.c/clif.h
+ clif_skill_estimation()’ljÁBƒ‚ƒ“ƒXƒ^[î•ñ‘—M—p
+ pc.c
+ battle_calc_weapon_damage()ŒÄ‚Ño‚µ‚̈ø”•ÏX
+
+Estorage.txt‚ª–³‚¢ê‡interŽI‚ª‹­§I—¹‚·‚éŽd—l‚ð•ÏX‚µ‚Ü‚µ‚½
+ (char/)
+ int_storage.c
+ inter_storage_init()‚Ńtƒ@ƒCƒ‹‚ª“Ç‚ß‚È‚¢‚Æexit‚µ‚Ä‚½‚Ì‚ðC³
+
+
+----------
+//0224
+E2-2ŽŸE‚̃XƒLƒ‹‚ðƒcƒŠ[‚ɒljÁ‚µ‚Ü‚µ‚½iŽÀ‘•‚Í‚Ü‚¾‚Å‚·j
+ (db/)
+ skill_db.txt
+ skill_tree.txt
+
+
+----------
+//0223 by ŒÓ’±—–
+EƒJƒvƒ‰‘qŒÉ‚ðinterŽI‚ɑΉž‚³‚¹‚Ü‚µ‚½
+ ‚¢‚Ü‚Ü‚Å‚Ìstorage.txt‚Í‚»‚Ì‚Ü‚ÜŽg‚¦‚Ü‚·B
+ interŽI—p‚ÌÝ’èƒtƒ@ƒCƒ‹‚Æ‚µ‚Äconf/inter_athena.cnf‚ðŽg‚¢‚Ü‚·B
+ iÝ’èƒtƒ@ƒCƒ‹‚Íchar.exe‚Ì‘æ‚Qˆø”‚Å‘¼‚̃tƒ@ƒCƒ‹‚ðŽw’è‚Å‚«‚Ü‚·j
+
+ ƒJƒvƒ‰‘qŒÉ‚ÌinterŽIŽÀ‘•‚ÌŠT—v
+
+ interŽI‚Ístorage.txt‚Ì‘Sƒf[ƒ^‚ðŽ‚ÂBmapŽI‚̓AƒJƒEƒ“ƒg‚ª—v‹‚·‚é‚Ü‚Å
+ ‚»‚̃AƒJƒEƒ“ƒg‚Ì‘qŒÉƒf[ƒ^‚ðŽ‚½‚È‚¢BƒNƒ‰ƒCƒAƒ“ƒg‚©‚ç‘qŒÉ‚ðŠJ‚­—v‹‚ª
+ ‚ ‚Á‚½‚Æ‚«AmapŽI‚͑Ήž‚·‚éƒAƒJƒEƒ“ƒg‚Ì‘qŒÉƒf[ƒ^‚ðinterŽI‚É—v‹‚·‚éB
+ interŽI‚©‚çƒf[ƒ^‚ª“Í‚­‚ƃNƒ‰ƒCƒAƒ“ƒg‚É‘qŒÉƒf[ƒ^‚ð‘—‚éB
+ ‘qŒÉ‚Ìo‚µ“ü‚ê‚̓Nƒ‰ƒCƒAƒ“ƒg‚ÆmapŽIŠÔ‚Ì’ÊM‚¾‚¯‚Ås‚í‚ê‚éB
+ ƒNƒ‰ƒCƒAƒ“ƒg‚ª‘qŒÉ‚ð•Â‚¶‚é‚©I—¹‚·‚é‚ÆAmapŽI‚ÍŠY“–ƒAƒJƒEƒ“ƒg‚Ì
+ ‘qŒÉƒf[ƒ^‚ðinterŽI‚É‘—‚éB‚±‚Ì‚Æ‚«interŽI‚̉ž“š‚ð‘Ò‚½‚¸‚ɃNƒ‰ƒCƒAƒ“ƒg‚É
+ ‘qŒÉƒNƒ[ƒY‚ð‘—‚éBinterŽI‚Í‘qŒÉƒf[ƒ^‚ðŽó‚¯Žæ‚é‚ÆA
+ ‘Sˆõ•ª‚̃f[ƒ^‚ðƒtƒ@ƒCƒ‹‚É•Û‘¶‚µ‚ÄAmapŽI‚ɬŒ÷ƒXƒe[ƒ^ƒX‚ð•Ô‚·B
+ mapŽI‚ͬŒ÷ƒXƒe[ƒ^ƒX‚𖳎‹‚·‚éB(ƒfƒoƒbƒO—p‚ɉæ–Ê‚Éo—Í‚·‚邾‚¯)
+ interŽII—¹Žž‚É‚à‘qŒÉƒf[ƒ^‚ðƒtƒ@ƒCƒ‹‚É•Û‘¶‚·‚éB
+
+ mapŽI‚Åaccount2storage‚ÅV‚µ‚¢‘qŒÉƒf[ƒ^‚ðì‚é‚Æ‚«A
+ ‚·‚łɕ‚¶‚ç‚ê‚Ä‚¢‚é‘qŒÉƒf[ƒ^‚̃ƒ‚ƒŠ‚ðŽg‚¢‚܂킵‚½‚Ù‚¤‚ªƒƒ‚ƒŠ‚ª
+ ß–ñ‚Å‚«‚é‚©‚àHi‚±‚ê‚ÍŽÀ‘•‚µ‚Ä‚¢‚Ü‚¹‚ñj
+
+ (common/)
+ mmo.h
+ struct storage ‚ð map/storage.h ‚©‚çˆÚ“®B
+ interŽI‚ÆmapŽI—¼•û‚ÅŽg—p‚·‚邽‚ßB
+ (char/)
+ char2.c
+ do_final()‚ðì¬AI—¹Žž‚Émmo_char_sync()ˆÈŠO‚Éinter_save()‚ð
+ ŒÄ‚Ԃ悤‚É‚µ‚½i‚±‚ê‚Åinter_*_save()‚Í‘S•”ŒÄ‚΂ê‚Ü‚·j
+ inter_init()‚ðchar.exe‚Ì‘æ‚Qˆø”‚à‚µ‚­‚Í"conf/inter.cnf"‚Å
+ ŒÄ‚Ԃ悤‚É‚µ‚½iathena.sh‚ÉinterŽIƒRƒ“ƒtƒBƒOƒtƒ@ƒCƒ‹‚ðŽw’è‚Å‚«‚Ü‚·j
+ inter.c/inter.h
+ inter_storage_init(),inter_storage_save(),
+ inter_storage_parse_frommap()‚ðŒÄ‚Ԃ悤‚ÉB
+ inter_init()‚ɃRƒ“ƒtƒBƒOƒtƒ@ƒCƒ‹–¼‚̈ø”‚ð•t‚¯‚½B
+ inter_config_read()’ljÁAƒRƒ“ƒtƒBƒOƒtƒ@ƒCƒ‹‚©‚ç
+ ‘qŒÉ‚ƃp[ƒeƒB[AƒMƒ‹ƒh‚̃tƒ@ƒCƒ‹–¼‚ð“Ç‚Ýž‚Ý‚Ü‚·B
+ int_storage.c/int_storage.h
+ V‹K’ljÁB‘qŒÉ•”•ª‚ÌinterŽI‹@”\B
+ int_party.h/int_party.c/int_guild.h/int_guild.c/
+ ƒtƒ@ƒCƒ‹–¼•Ï”‚Ì錾’ljÁ
+ INTERŽIƒpƒPƒbƒg.txt
+ ‘qŒÉƒpƒPƒbƒg‚̉ðà’ljÁ
+
+ (map/)
+ storage.h/storage.c
+ storage_fromstr(),storage_tostr()‚ðchar/int_storage.c‚Ɉړ®B
+ “¯‚¶‚­do_init,do_final‚ł̃tƒ@ƒCƒ‹ˆ—‚àˆÚ“®B
+ do_final()‚͈—‚È‚µAdo_init()‚Í•Ï”‰Šú‰»‚Ì‚Ý‚É•ÏXB
+ storage_storageopen()‚Å‚Í’P‚Éintif_request_storage()‚ðŒÄ‚Ô‚¾‚¯‚ÉB
+ storage_storageclose()‚Éintif_send_storage()‚ð’ljÁ
+ storage_storage_quitsave()’ljÁBƒNƒ‰ƒCƒAƒ“ƒgI—¹Žž‚É
+ ƒJƒvƒ‰‘qŒÉ‚ªŠJ‚¢‚Ä‚¢‚ê‚Îintif_send_storage()‚ðŒÄ‚ÔŠÖ”B
+ intif.h/intif.c
+ intif_parse_LoadStorage(),intif_parse_SaveStorage(),
+ intif_send_storage(),intif_request_storage()’ljÁ
+ map.c
+ map_quit()‚Åstorage_storage_quitsave()‚ðŒÄ‚Ԃ悤‚ÉB
+
+ (conf/)
+ inter_athena.cnf
+ V‹K’ljÁBinterŽI—p‚̃Rƒ“ƒtƒBƒOƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹
+
+
+----------
+//0221 by ŒÓ’±—–
+
+EƒXƒLƒ‹ƒ^[ƒQƒbƒg‚ÌID‚ª³‚µ‚­Š“¾‚Å‚«‚È‚¢–â‘èC³
+ clif.c
+ clif_parse_UseSkillToId()‚ÅID‚ðWORD‚Æ‚µ‚Ĉµ‚Á‚Ä‚½‚Ì‚ðLONG‚ÉC³
+
+EƒXƒLƒ‹‰r¥ŽžŠÔ‚Æ‘®«•\A‚¨‚æ‚Ñ–‚–@ŒnƒXƒLƒ‹‚Ì‘®«C³ŽÀ‘•
+ ‘®«ƒ_ƒ[ƒWC³‚Í battle_attr_fix() ‚ÅŒvŽZ‚µ‚Ü‚·B
+ atk_elem‚Í‘®«‚»‚Ì‚Ü‚ÜAdef_elem‚Íi‘®«lv*20{‘®«j‚Å‚·B
+ ‰r¥ŽžŠÔ‚Ískill.c‚ÌCASTFIX‚Ì’l‚ð•Ï‚¦‚邱‚Æ‚Å”{—¦‚ð’²®‚Å‚«‚Ü‚·
+
+ pc.c
+ pc_readdb()‚Åcast_db.txt‚Æattr_fix.txt‚Ì“Ç‚Ýž‚ݒljÁ
+ skill.c/skill.h
+ struct skill_db ‚Écast,delay’ljÁA‚»‚ê‚ç‚̃AƒNƒZƒT‚à’ljÁ
+ ƒXƒLƒ‹‰r¥ŽžŠÔ‚ð skill_get_cast() ‚ÅŠ“¾‚·‚é‚悤‚É‚µ‚½
+ battle.c/battle.h
+ attr_fix_table’è‹`
+ battle_attr_fix()’ljÁA‘®«C³‚ðŒvŽZ‚·‚é
+ ‘®«ŒnƒAƒNƒZƒT(battle_get_element()‚È‚Ç)‚ð’ljÁ
+ battle_calc_magic_damage()‚É‘®«C³‚ð’ljÁ
+ cast_db.txt
+ V‹K’ljÁB‰r¥ŽžŠÔ‚ƃfƒBƒŒƒC‚̃f[ƒ^ƒx[ƒX
+ ‘S‘R‘«‚è‚È‚¢‚Ì‚ÅA’N‚©’ljÁŠó–]B
+ attr_fix.txt
+ V‹K’ljÁB‘®«C³ƒe[ƒuƒ‹
+
+Eƒq[ƒ‹‚ÌŽÀ‘•
+ clif.c/clif.h
+ clif_skill_nodamage()’ljÁAŽx‰‡Œn‚â‰ñ•œ‚̃GƒtƒFƒNƒg
+ skill.c/skill.h
+ skill_castend_damage_id()Askill_castend_nodamage_id()’ljÁA
+ UŒ‚Œn‚ÆŽx‰‡/‰ñ•œŒn‚ÅŠÖ”‚𕪂¯‚½
+ ƒq[ƒ‹ŒvŽZƒ}ƒNƒ skill_calc_heal() ’ljÁ
+ battle.c
+ battle_calc_magic_damage()‚Ńq[ƒ‹‚̃_ƒ[ƒWŒvŽZ’ljÁ
+
+
+----------
+//0220 by ‚ê‚ 
+
+0216‚ÌC³
+HIT‚ÌŒvŽZ‚ª‚¨‚©‚µ‚©‚Á‚½‚Ì‚ÅC³‚µ‚Ä‚Ý‚Ü‚µ‚½B
+ŠÔˆá‚Á‚Ä‚½‚炲‚ß‚ñ‚È‚³‚¢B
+
+Ebattle.c
+ 256s–Ú‚Ì
+ hitrate=battle_get_hit(&sd->bl) - battle_get_flee(&sd->bl) + 80;
+ ‚ª‚½‚Ô‚ñAŽ©•ª‚Ì‚g‚h‚s‚ÆŽ©•ª‚Ì‚e‚k‚d‚d‚ÅŒvŽZ‚µ‚Ä‚é‹C‚ª‚·‚é‚Ì‚Å
+ hitrate=battle_get_hit(&sd->bl) - battle_get_flee(target) + 80;
+ ‚ÉC³‚µ‚Ü‚µ‚½B
+
+
+----------
+//0218 by ŒÓ’±—–
+
+ŽÀÛ‚É•ªŽU‚³‚¹‚ăeƒXƒg‚µ‚Ä‚¢‚È‚©‚Á‚½‚èB
+
+EmapŽI•ªŽUˆ——p‚ÉinterŽI‹@”\‚ð‚‚¯‚Ä‚Ý‚éi¡Œã‚Ì‚½‚ß‚ÌŠg’£j
+ charŽI‚ÉinterŽI‚ðŠñ¶‚³‚¹‚Ü‚µ‚½B•¡”‚ÌmapŽIŠÔ‚Ì’ÊM‚É—˜—p‚µ‚Ü‚·B
+ mapŽI‚𕪎U‚µ‚Ĉ—‚Å‚«‚é‚悤‚É‚·‚邽‚ß‚Ì‹@”\‚Å‚·B
+ ¡Œãparty‚âguildŽÀ‘•Žž‚É‚«‚Á‚Æ–ð‚É‚½‚Á‚Ä‚­‚ê‚é‚©‚ÆB
+
+ ‘qŒÉ‚ÌŽÀ‘•‚àinterŽI‚Ɉړ®‚·‚ׂ«‚©‚à‚µ‚ê‚Ü‚¹‚ñB
+ ‚ǂ̃Lƒƒƒ‰ƒNƒ^[‚ª‚Ç‚ÌmapŽI‚É‚¢‚é‚©ŒŸõ‚·‚é‹@”\‚à‚¢‚é‚©‚àB
+
+ Žg‚¤ƒpƒPƒbƒg‚ÌID‚͈ȉº‚̂悤‚É‚È‚è‚Ü‚·
+ mapŽI=>interŽI‚̓pƒPƒbƒg0x3000`
+ interŽI=>mapŽI‚̓pƒPƒbƒg0x3800`
+ ƒpƒPƒbƒg‚ðì‚Á‚½ê‡‚ÍAINTERŽIƒpƒPƒbƒg.txt‚É‘‚¢‚Ä‚­‚¾‚³‚¢
+
+ ‚±‚Ì‹@”\‚É‚æ‚郃Šƒbƒg
+ mapŽI•ªŽU‚É‚à‘Ήž‚Å‚«‚é
+ ‚±‚Ì‹@”\‚É‚æ‚éƒfƒƒŠƒbƒg
+ interŽIŒo—R‚Ì‘S‚Ä‚Ì–½—ß‚Ì“®ì‘¬“x‚ª—Ž‚¿‚é
+ iˆê‰ñinterŽI‚Ü‚Å“n‚·‚½‚ßj
+ ŽI‚ƃNƒ‰ƒCƒAƒ“ƒg‚𓯂¶PC‚ÅŽg‚Á‚Ä‚¢‚é‚Ƃ‚炢‚©‚à
+
+ (char/)
+ char2.c/char.h
+ mapif_sendall()’ljÁi‘SMAPŽI‚ɃpƒPƒbƒg‚ð‘—‚éj
+ mapif_send()’ljÁi“Á’èMAPŽI‚É‘—‚éF¶‘¶”»’è•t‚«j
+ parse_frommap()‚Åinter_parse_frommap()‚ðŒÄ‚Ԃ悤‚É‚µ‚½
+ (interŽI‚ÌmapŽI‰ðÍ•”‚ðcharŽI‚ÉŠñ¶‚³‚¹‚½‚±‚Æ‚É‚È‚é)
+ inter.h/inter.c
+ V‹K’ljÁBinterŽI‚Ì’†ŠjB
+ inter_parse_frommap‚ÅMAPŽI‚©‚ç‚̃pƒPƒbƒg‚ð‰ðÍ‚µ‚Ü‚·B
+ int_party.h/int_party.c/int_guild.h/int_guild.c
+ V‹K’ljÁB¡Œã‚Ì‚½‚ß‚Ì—\–ñBƒp[ƒeƒB‚âƒMƒ‹ƒh‹@”\—p
+ init‚Ńf[ƒ^‚ð“Ç‚ñ‚ÅAsave‚Å•Û‘¶‚·‚ׂ«H
+ save‚Í‚Ü‚¾ŒÄ‚΂ê‚È‚¢Bparse‚ŃpƒPƒbƒg‰ðÍB
+ common/mmo.h‚ ‚½‚è‚Ńp[ƒeƒB[‚âƒMƒ‹ƒh‚Ì\‘¢‘Ì‚ð
+ ’è‹`‚·‚é•K—v‚ª‚ ‚é‚ÆŽv‚í‚ê‚éB
+ INTERŽIƒpƒPƒbƒg.txt
+ ƒpƒPƒbƒg‚̃ŠƒXƒg
+
+ (map/)
+ intif.h/intif.c
+ interŽI‚Æ’ÊM‚·‚é•”•ªB
+ inter_parse()‚ÅinterŽI‚©‚ç‚̃pƒPƒbƒg‚ð‰ðÍ‚µ‚Ü‚·B
+ interŽI‚Öƒf[ƒ^‚ð‘—‚é‚Æ‚«‚Íinter_fd‚ðŽg‚¢‚Ü‚·B
+ chrif.h/chrif.c
+ chrif_parse()‚Åinter_parse()‚ðŒÄ‚Ԃ悤‚É‚µ‚½
+ iintif.c‚ÌinterŽI‰ðÍ•”‚ðcharŽI‰ðÍ•”‚ÉŠñ¶‚³‚¹‚½‚±‚Æ‚É‚È‚é)
+
+E@kamiƒRƒ}ƒ“ƒh‚ðinterŽIŒo—R‚É•ÏX
+ Œ´—‚Æ‚µ‚Ä‚ÍŽŸ‚̂悤‚ÈŠ´‚¶‚Å‚·
+ ƒNƒ‰ƒCƒAƒ“ƒg„mapŽI„interŽI„‘SmapŽI„‘SƒNƒ‰ƒCƒAƒ“ƒg
+
+ (char/)
+ inter.c
+ mapif_GMmessage()’ljÁ
+ (map/)
+ intif.h/intif.c
+ intif_GMmessage()’ljÁ
+ intif_parse‚ÅGMƒƒbƒZ[ƒW‚̈—‚ð’ljÁ
+ clif.c/clif.h
+ clif_GMmessage()‚̈ø”‚ð•ÏX
+ atcommand.c
+ @kami•”•ª‚Åintif_GMmessage()‚ðŒÄ‚Ԃ悤‚É‚µ‚½
+
+EWis‚ðinterŽIŒo—R‚É•ÏX
+ Œ´—‚Æ‚µ‚Ä‚ÍŽŸ‚̂悤‚ÈŠ´‚¶‚Å‚·
+
+ ‘—‚èŽåƒNƒ‰ƒCƒAƒ“ƒg„‘—‚èŽåmapŽI„interŽI„‘Sƒ}ƒbƒvŽI„(•ªŠòA)
+ [•ªŠòA]
+ 1.‘ŠŽè‚Ìl‚¢‚émapŽI„‘ŠŽè‚̃Nƒ‰ƒCƒAƒ“ƒg
+ @@@@V@@ @„interŽI„‘—‚èŽåmapŽI„‘—‚èŽåƒNƒ‰ƒCƒAƒ“ƒg
+ 2.‘ŠŽè‚Ì‚¢‚È‚¢mapŽI„interŽIi•ªŠòBj
+ [•ªŠòB]
+ 1.‘SmapŽI‚ª‰ž“š‚µ‚½interŽI „‘—‚èŽåmapŽI„‘—‚èŽåƒNƒ‰ƒCƒAƒ“ƒg
+ 2.(‘S•”‚͉ž“š‚µ‚Ä‚È‚¢‚Æ‚«‚ÍA‘SmapŽI‚̉ž“š‚ð‘Ò‚Â)
+
+ ‚à‚Ì‚·‚²‚¢•¡ŽG‚É‚È‚Á‚Ä‚Ü‚·‚ËB
+
+ (char/)
+ inter.c
+ struct WisList ’è‹`iWisƒf[ƒ^‚̃Šƒ“ƒNƒŠƒXƒgj
+ add_wislist(),del_wislist(),search_wislist(),
+ check_ttl_wislist()’ljÁ,ƒŠƒ“ƒNƒŠƒXƒg‚ðˆµ‚¤ŠÖ”ŒQ
+ mapif_wis_message(),mapif_wis_end()’ljÁ
+ (map/)
+ intif.h/intif.c
+ intif_wis_message(),intif_wis_end()’ljÁ
+ intif_parse_WisMessage()’ljÁ,intif_parse()‚©‚çŒÄ‚΂ê‚é‚悤‚É
+ clif.c/clif.h
+ clif_wis_message(),clif_wis_end()’ljÁ
+ clif_parse_Wis()‚ð•ÏX,intif_wis_message()‚ðŒÄ‚Ԃ悤‚É‚µ‚½
+
+EƒXƒLƒ‹Žg—pŽž‚̃qƒbƒg”/Á”ïSPŠ“¾‚̃oƒOC³
+ skill.c
+ skill_get_sp(),skill_get_num()‚ÅŽQÆ‚·‚é”z—ñƒCƒ“ƒfƒbƒNƒX‚ðlv-1‚É‚µ‚½
+
+
+----------
+//0216 by ŒÓ’±—–
+
+‚¢‚‚à‚Ç‚¨‚èƒeƒXƒg‚Ù‚Æ‚ñ‚Ç‚µ‚Ä‚È‚¢‚Ì‚ÅAƒoƒO‘å—Ê‚©‚àB
+
+E0213‚ÌC³H‚Ì‚æ‚­‚í‚©‚ç‚È‚¢‚Æ‚±‚ëC³
+ itemdb.c
+ ƒRƒ“ƒpƒCƒ‹‚ª’Ê‚ç‚È‚¢‚Ì‚Åitemdb_equipoint‚̈ø”ƒŠƒXƒg•ÏX
+
+EAthena dev 2.1.1‚Ì“K—p
+ dev-2.1.1‚Å“K—p‚³‚ꂽC³‚ð“K—p‚µ‚Ü‚µ‚½
+
+ timer.c
+ 2.1.1‚Ì‚à‚Ì‚Æ·‚µ‘Ö‚¦
+ script.c
+ C_NE: ‚ÌC³‚Ì“K—p
+ README
+ ÅŒã‚Ì•¶Í‚ð2.1.1‚Ì‚à‚Ì‚É·‚µ‘Ö‚¦
+
+EƒXƒLƒ‹ƒf[ƒ^ƒx[ƒX‚ÌC³
+ ˆê•”‚ÌÁ”ïSP‚âƒqƒbƒg”‚È‚Ç‚ðC³B
+
+ skill_db.txt
+ ŠY“–ŒÂŠ‚ÌC³
+
+EƒXƒLƒ‹UŒ‚‚ÌŽÀ‘••ÏX•’ljÁŽÀ‘•
+ ƒoƒbƒVƒ…Aƒƒ}[ƒiƒCƒgAƒ_ƒuƒ‹ƒXƒgƒŒƒCƒtƒBƒ“ƒOAƒsƒA[ƒX
+ ƒXƒsƒAƒu[ƒƒ‰ƒ“AƒXƒsƒAƒXƒ^ƒuAƒ{[ƒŠƒ“ƒOƒoƒbƒVƒ…
+ ƒ\ƒjƒbƒNƒuƒ[AƒOƒŠƒ€ƒgƒD[ƒX ‚È‚Ç‚ÌŽÀ‘••ÏX
+
+ ƒiƒp[ƒ€ƒr[ƒgAƒ\ƒEƒ‹ƒXƒgƒ‰ƒCƒNA
+ ƒtƒ@ƒCƒ„[ƒ{ƒ‹ƒgAƒR[ƒ‹ƒhƒ{ƒ‹ƒgAƒ‰ƒCƒgƒjƒ“ƒOƒ{ƒ‹ƒgAƒA[ƒXƒXƒpƒCƒNA
+ ƒ†ƒsƒeƒ‹ƒTƒ“ƒ_[ ‚È‚Ç‚ð’ljÁŽÀ‘•
+ i‘S‚ÄA”͈ÍUŒ‚‚âƒXƒe[ƒ^ƒXˆÙí‚È‚Ç‚Í–¢ŽÀ‘•j
+
+ pc.c/pc.h
+ 0213‚Ì•ÏX‚ð‚È‚©‚Á‚½‚±‚Æ‚É‚µ‚½
+ pc_attack_mob()‚ÌC³AŒvŽZ‚Íbattle_calc_weapon_attack()‚É”C‚¹A
+ ‚»‚ÌŒvŽZŒ‹‰Ê‚ð“K—p‚·‚邾‚¯‚É•ÏX
+ clif.c/clif.h
+ clif_skill_fail(),clif_skill_damage(),clif_skill_damage2()’ljÁ
+ ‚»‚ꂼ‚êŽg—pŽ¸”sAŽg—pƒGƒtƒFƒNƒgA‚«”ò‚΂µ•t‚«Žg—pƒGƒtƒFƒNƒg
+ skill.c/skill.h
+ 0213‚Ì•ÏX‚ð‚È‚©‚Á‚½‚±‚Æ‚É‚µ‚½iƒ_ƒ[ƒW”{—¦ŒvŽZ‚ª‚¨‚©‚µ‚¢j
+ skill_castend_id()‚ÉSP/ZenyŠm”F‚ÆÁ”ï•”•ª‚ð’ljÁA
+ Ží—ޕʂɈ—‚ð’ljÁB
+ battle.c/battle.h
+ V‹K’ljÁ
+ •ŠíUŒ‚ŒvŽZ—p‚Ébattle_calc_weapon_attack(),
+ –‚–@UŒ‚ŒvŽZ—p‚Ébattle_calc_magic_attack()‚ð—pˆÓ
+ i‘o•û‚Æ‚àAMOB‚ÆPC—¼•ûŒvŽZ‰Â”\‚È‚Í‚¸j
+ ƒtƒ@ƒCƒ‹‘‚₵‚·‚¬‚Æ‚¢‚¤ˆÓŒ©‚àc(Š¾)
+
+
+----------
+//0214 by ‚ê‚ 
+Eƒ_ƒuƒ‹ƒAƒ^ƒbƒN‚ª‚¨‚©‚µ‚©‚Á‚½‚Æ‚±‚ë‚ðC³B
+EƒXƒLƒ‹‚̈ꕔŽÀ‘•
+ ƒoƒbƒVƒ…Eƒƒ}[ƒiƒCƒgEƒ_ƒuƒ‹ƒXƒgƒŒƒCƒtƒBƒ“ƒOEƒsƒA[ƒX
+ ƒXƒsƒAƒu[ƒƒ‰ƒ“EƒXƒsƒAƒXƒ^ƒuEƒ{[ƒŠƒ“ƒOƒoƒbƒVƒ…
+ ƒ\ƒjƒbƒNƒuƒ[EƒOƒŠƒ€ƒgƒD[ƒX‚È‚Ç‚Å‚·B
+
+ “K“–‚È‚Ì‚Å‚Ç‚±‚©A•s‹ï‡‚ª‚ ‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB
+ ‚ ‚ÆAƒeƒXƒg‚à‚ ‚܂肵‚Ä‚Ü‚¹‚ñ‚Ì‚Å‚¨‚©‚µ‚¢‚Æ‚±‚낪‚ ‚Á‚½‚çC³‚ð‚¨Šè‚¢‚µ‚Ü‚·B
+ ‘¼‚É‚à–â‘肪‚ ‚Á‚½‚çŽè’¼‚µ‚ð‚¨Šè‚¢‚µ‚Ü‚·B
+ •ÏX“à—e‚͈ȉº‚Ì’Ê‚è‚Å‚·B
+
+ clif.c,clif.h
+ clif_skill_damage()‚ð’ljÁ‚µ‚Ü‚µ‚½B
+
+ pc.c,pc.h
+ pc_attack_mob()‚̈ø”‚ðˆê‚’ljÁB
+ ƒ_ƒuƒ‹ƒAƒ^ƒbƒN‚ª‚¨‚©‚µ‚©‚Á‚½‚̂ųí‚É“®ì‚·‚é‚悤‚ÉC³B
+
+ skill.c
+ ˆê•”ƒXƒLƒ‹‚ÌŽÀ‘•‚ð‚µ‚Ä‚Ý‚Ü‚µ‚½B
+
+
+----------
+//0213 by ‚ê‚ 
+E0208‚Ì—ƒRƒ}ƒ“ƒh‚Å­‚µC³
+ atcommand.c
+ @item‚Ō”Žw’肪–³‚¢ê‡A“üŽèŒÂ”‚ð‚PŒÂ‚É‚·‚é‚悤‚É‚µ‚½B
+ @item‚ÅID‚ÌŽw’肪–³‚¢ê‡AƒAƒCƒeƒ€‚ð“üŽè‚µ‚Ä‚½‚±‚Æ‚É‚È‚Á‚Ä
+ ‚¢‚½‚Ì‚ðC³
+ itemdb.c
+ item_db.txt‚ÅSell‚Ì€–Ú‚ð“X”„‚è‚Ì’l’i‚Æ‚µ‚Ä‚Ý‚½B
+ item_db2.txt
+ ŽŽ‚µ‚ɃJ[ƒh‚⃌ƒAƒAƒCƒeƒ€‚Ì“X”„‚艿Ši‚ð’l’i‚ð–{ŽI‚Ì‘Šê‚É‚µ
+ ‚Ä‚Ý‚½‚à‚ÌBŽg—p‚·‚éꇂÍitem_db.txt‚Æ·‚µ‘Ö‚¦‚Ä‚­‚¾‚³‚¢B
+
+
+----------
+//0208 by nabe
+
+E—ƒRƒ}ƒ“ƒhŽÀ‘•B
+ atcommand.h,atcommand.c
+ ‚Ù‚ÚI-Athena‚Ì—ƒRƒ}ƒ“ƒh‘Š“–‚Å‚·‚ªA@GM‚ÆPVP‚Í–¢ŽÀ‘•‚Å‚·B
+ help.txt‚à“¯«‚µ‚Ä‚¢‚Ü‚·B
+ GMiƒAƒJƒEƒ“ƒgID704554`704583jê—p‚É‚·‚é‚É‚ÍA
+ atcommand.c‚ÌŠY“–•”•ª‚̃Rƒƒ“ƒgƒAƒEƒg‚ð‰ðœ‚µ‚ĉº‚³‚¢B
+ clif.h,clif.c
+ clif_displaymessage()
+ clif_GMmessage()
+ clif_heal()
+ clif_resurrection()
+ clif_pvpon()
+ clif_pvpset()
+ clif_refine()
+ ‚ð’ljÁ‚µ‚Ü‚µ‚½B
+ clif_parse_GlobalMessage()“à‚Åatcommand()‚ðŒÄ‚ñ‚Å‚¢‚Ü‚·B
+
+E‚¿‚å‚Á‚Æ‚¾‚¯C³B
+ script.c
+ {buildin_openstorage,"openstorage","s"},
+ ‚©‚ç
+ {buildin_openstorage,"openstorage",""},
+ ‚ÉC³‚µ‚Ü‚µ‚½B
+
+
+----------
+//0206 by ŒÓ’±—–
+EƒXƒLƒ‹ƒcƒŠ[/ƒXƒLƒ‹Žg—p‹@\‚ÌŽÀ‘•
+ mmo.h
+ MAX_SKILL‚ð‘‚₵‚½
+ char2.c
+ mmo_char_fromstr()
+ mmo_charstatus‚Ìskill‚̃Cƒ“ƒfƒbƒNƒX‚ɃXƒLƒ‹”Ô†‚ðŽg‚¤‚悤‚É‚µ‚½
+ =>ƒXƒLƒ‹‚ÌŒŸõ‚‘¬‰»‚Ì‚½‚ßi‚©‚í‚è‚Ƀƒ‚ƒŠŽg—p—Ê‚ª‘‚¦‚éj
+ pc.h/pc.c
+ pc_skillup(),pc_calc_skilltree()’ljÁ
+ pc_checkskill()•ÏXiƒCƒ“ƒfƒbƒNƒX‚ðƒXƒLƒ‹”Ô†‚Éj
+ pc_readdb()‚Åskill_db.txt‚à“ǂނ悤‚É‚µ‚½
+ pc_authok()‚Åcast_timer‚ð‰Šú‰»‚·‚é‚悤‚É‚µ‚½
+ pc_calcstatus()‚Åpc_calc_skilltree()‚Æclif_skillinfoblock()‚ð
+ ŒÄ‚Ԃ悤‚É‚µ‚½
+ clif.c/clif.h
+ clif_skillinfoblock(),clif_skillcasting(),
+ clif_skillup()‚ð’ljÁ
+ clif_parse_SkillUp(),clif_parse_UseSkillToId(),
+ clif_parse_UseSkillToPos()‚ðŽÀ‘•
+ skill.h/skill.c
+ ƒtƒ@ƒCƒ‹’ljÁ(map/)
+ map.h
+ struct map_session_data‚Écast_*‚ð’ljÁ
+ skill_db.txt
+ ƒtƒ@ƒCƒ‹’ljÁ(db/)
+ (I-Athena0200‚Ìskill_info2.txt‚ðƒRƒ“ƒo[ƒg‚µ‚½‚à‚Ì)
+ (ƒXƒLƒ‹Žg—p•”•ªŠJ”­ŽÒŒü‚¯î•ñ)
+ ƒXƒLƒ‹‚ÌŒø‰Ê‚ðŽÀ‘•‚·‚éꊂÍskill.c‚Ì
+ skill_castend_id(),skill_castend_pos()‚Å‚·B
+ ƒ^[ƒQƒbƒg‚âŽg—pƒXƒLƒ‹‚Í sd->cast_* ‚©‚瓾‚Ü‚·
+ ƒXƒLƒ‹ƒf[ƒ^ƒx[ƒX‚Ö‚Í skill_get_* ‚ŃAƒNƒZƒX‚µ‚Ä‚­‚¾‚³‚¢
+ ¡ŒãAƒLƒƒƒXƒeƒBƒ“ƒOƒ^ƒCƒ€‚àƒf[ƒ^ƒx[ƒX‚É“ü‚ê‚é—\’è
+
+----------
+//0205 by nabe
+
+Estorage.c‚̃oƒOƒtƒBƒNƒXB
+E‘qŒÉƒf[ƒ^‚ðAƒ}ƒbƒvŽI‹N“®Žž‚É“Ç‚ÝAƒ}ƒbƒvŽII—¹Žž‚É‘‚­‚悤‚É•ÏXB
+ storage.h,storage.c
+ storage_init()‚ðdo_init_storage()‚ɉü–¼B
+ storage_save()‚ðdo_final_storage()‚ɉü–¼B
+ fclose‚ð–Y‚ê‚Ä‚¢‚½‚Ì‚ð’ljÁB
+ map.c
+ #include "storage.h"‚ð’ljÁB
+ do_final()‚Édo_final_storage()‚ð’ljÁB
+ do_init()‚Édo_init_storage()‚ð’ljÁB
+
+----------
+
+//0203(unofficial) by ‚È‚Ý
+
+item_db.txt‚Ì‘‚«Š·‚¦‚Ì‚Ý‚Å‚·B
+
+EƒAƒCƒeƒ€‚̉ñ•œ—Ê‚ð’ljÁ/•ÏX
+ Ôƒ|[ƒVƒ‡ƒ“@@@@@@@@@HP 30- 44
+ gƒ|[ƒVƒ‡ƒ“@@@@@@@@@HP 70- 89
+ ‰©F‚¢ƒ|[ƒVƒ‡ƒ“@@@@@@@HP 175-234
+ ”’‚¢ƒ|[ƒVƒ‡ƒ“@@@@@@@@HP 350-429
+ ‚¢ƒ|[ƒVƒ‡ƒ“@@@@@@@@SP 40- 99
+ Ô‚¢ƒn[ƒu@@@@@@@@@@HP 12- 19
+ ‰©F‚¢ƒn[ƒu@@@@@@@@@HP 21- 29
+ ”’‚¢ƒn[ƒu@@@@@@@@@@HP 80-111
+ ‚¢ƒn[ƒu@@@@@@@@@@SP 15- 44
+ ƒŠƒ“ƒS@@@@@@@@@@@@HP 12- 15
+ ƒoƒiƒi@@@@@@@@@@@@HP 11- 16
+ ƒuƒhƒE@@@@@@@@@@@@SP 10- 24
+ ‚¢‚à@@@@@@@@@@@@@HP 11- 15
+ ‚É‚­@@@@@@@@@@@@@HP 70- 99
+ ƒnƒ`‚Ì–¨@@@@@@@@@@@HP 72- 97 / SP 20- 59
+ ƒ~ƒ‹ƒN@@@@@@@@@@@@HP 25- 34
+ ƒLƒƒƒ“ƒfƒB@@@@@@@@@@HP 31- 74
+ ƒXƒeƒBƒbƒNƒLƒƒƒ“ƒfƒB@@@@@HP 46-109
+ ƒŠƒ“ƒSƒWƒ…[ƒX@@@@@@¦@HP 28- 32
+ ƒoƒiƒiƒWƒ…[ƒX@@@@@@@@HP 27- 33
+ ƒuƒhƒEƒWƒ…[ƒX@@@@@@@@SP 15- 39
+ ƒjƒ“ƒWƒ“ƒWƒ…[ƒX@@@@@¦@HP 29- 32
+ ƒJƒ{ƒ`ƒƒ@@@@@@@@@@@HP 14
+ ƒyƒbƒgƒt[ƒh@@@@@@@@@HP 53- 83
+ ‚æ‚­Ä‚¢‚½ƒNƒbƒL[@@@@@@HP 80-177
+ ‚ЂƂ­‚¿ƒP[ƒL[@@@@@@@HP 251-359
+ ‚ЂȂ ‚ç‚ê@@@@@@@@@@HP 175-234
+ •H–Ý@@@@@@@@@@@@@HP 350-429
+ ƒŒƒbƒhƒXƒŠƒ€ƒ|[ƒVƒ‡ƒ“@@¦@HP 30- 44
+ ƒCƒGƒƒXƒŠƒ€ƒ|[ƒVƒ‡ƒ“@@¦@HP 175-234
+ ƒzƒƒCƒgƒXƒŠƒ€ƒ|[ƒVƒ‡ƒ“@¦@HP 350-429
+@Œ»Ý‚ÌAthena‚Å‚ÍVIT‚âƒXƒLƒ‹‚É‚æ‚éƒ{[ƒiƒX‚͉Á–¡‚³‚ê‚Ü‚¹‚ñB
+@i“K—p‚·‚éꇂÍscript.c“à‚Ìbuildin_healŠÖ”‚ ‚½‚è‚É‚ÉŽè‚ð‰Á‚¦‚é•K—v‚ ‚èj
+@‚È‚¨A¦•t‚̃AƒCƒeƒ€‚̃f[ƒ^‚Í“K“–‚Å‚·B
+EŒÃ‚¢ƒJ[ƒh’Ÿ‚ðŽÀ‘•(UseScript)
+E‚»‚Ì‘¼C³
+@@‚ЂȂ ‚ç‚ê@@@@@@@@@@d—Ê‚È‚µ¨d—Ê0.1‚ÉC³
+@@•H–Ý@@@@@@@@@@@@@d—Ê‚È‚µ¨d—Ê0.1‚ÉC³
+@@ƒoƒ‹ƒ€ƒ“@@@@@@@@@@@d—Ê0.1S4•ÐŽèŒ•¨d—Ê100S0—¼ŽèŒ•‚ÉC³
+@‚È‚¨ASell‚Ì€–Ú‚Í‚ ‚邾‚¯–³‘Ê‚Á‚Û‚¢‚Ì‚Å‘S•”Á‚µ‚Ü‚µ‚½B
+
+----------
+
+//0202 by nabe
+
+EƒJƒvƒ‰‘qŒÉ‚Ìu“¯ˆêƒAƒJƒEƒ“ƒg‚È‚Ì‚É‹¤—L‚Å‚«‚È‚¢ƒoƒOv‚ð‰ü—Ç‚µ‚Ü‚µ‚½B
+ ŠeƒLƒƒƒ‰‚É‘qŒÉƒf[ƒ^‚ðŽ‚½‚¹‚é‚Ì‚Í–³‘Ê‚ª‘½‚¢‹C‚ª‚·‚é‚Ì‚ÅA
+ ƒAƒJƒEƒ“ƒgID‚ÅŠÇ—‚·‚é‚悤‚ÉŽd—l‚ð•ÏX‚µ‚Ü‚µ‚½B
+ ‚‚¢‚Å‚ÉA‘qŒÉƒf[ƒ^‚Í‘S‚Ästorage.c‚Å‚Ü‚©‚È‚¢A
+ charŽI‚ÍŠÖ—^‚µ‚È‚¢‚悤‚É‚µ‚Ü‚µ‚½B
+ ‚±‚ê‚É”º‚¢Achar_athena.cnf,mmo.h,char2.c‚ÍŒ³‚É–ß‚µ‚Ü‚µ‚½B
+ ‚Ü‚½A‘qŒÉƒtƒ@ƒCƒ‹–¼‚Ígstorage.txth‚ɌŒ肵‚Ä‚¢‚Ü‚·B
+
+ ‰ü•ÏA’ljÁ‚µ‚½‚Ì‚ÍŽŸ‚̃tƒ@ƒCƒ‹‚Å‚·B
+ map/storage.h,
+ map/storage.c,
+ map/clif.h,//ˆø”•ÏX‚¾‚¯
+ map/clif.c,//ˆø”•ÏX‚¾‚¯
+ conf/char_athena.cnf,//Œ³‚É–ß‚µ‚½‚¾‚¯
+ common/mmo.h,//Œ³‚É–ß‚µ‚½‚¾‚¯
+ char/char2.c,//Œ³‚É–ß‚µ‚½‚¾‚¯
+ map/itemdb.h,//itemdb_equippoint()ˆø”錾•ÏX‚¾‚¯
+ map/itemdb.c,//itemdb_equippoint()ˆø”錾•ÏX‚¾‚¯
+ map/pc.c,//itemdb_equippoint()ˆø”錾•ÏX‚¾‚¯
+
+----------
+
+//0201 by nabe
+
+EƒJƒvƒ‰‘qŒÉ‚ðŽÀ‘•‚µ‚Ü‚µ‚½B
+
+ ƒXƒNƒŠƒvƒg‚©‚çŒÄ‚Ño‚·‚É‚ÍAƒXƒNƒŠƒvƒg“à‚Å
+ openstorage;
+ ‚Æ‚µ‚Ä‚­‚¾‚³‚¢B
+ ƒTƒ“ƒvƒ‹‚Æ‚µ‚Änpc_kafraJ.txt‚ð•t‚¯‚Ä‚ ‚è‚Ü‚·B
+ •¹‚¹‚Änpc_script3J.txt‚ÌŠY“–•”•ª‚à‰ü•Ï‚µ‚Ü‚µ‚½B
+
+ char_athena.cnf‚Ì
+ stor_txt:
+ ‚Å‘qŒÉƒtƒ@ƒCƒ‹–¼‚ðŽw’肵‚Ä‚¢‚Ü‚·B
+
+ ‰ü•ÏA’ljÁ‚µ‚½‚Ì‚ÍŽŸ‚̃tƒ@ƒCƒ‹‚Å‚·B
+ map/Makefile,
+ map/storage.c,
+ map/storage.h,
+ map/clif.c,
+ map/clif.h,
+ map/script.c,
+ char/char2.c,
+ common/mmo,h
+ Ú‚µ‚­‚ÍAã‹Lƒtƒ@ƒCƒ‹‚̃Rƒƒ“ƒg‚È‚Ç‚ðŽQl‚É‚µ‚Ä‚­‚¾‚³‚¢B
+
+EƒJƒvƒ‰‘qŒÉŽÀ‘•‚É”º‚¢Amap_athena1.cnf‚ð­‚µ‘‚«Š·‚¦‚Ü‚µ‚½B
+
+E‘S‚ẴRƒƒ“ƒg•¶‚ðEUC‚©‚çSJIS‚É•ÏŠ·‚µ‚Ü‚µ‚½B
+
+----------
+
+ Athena Dev. v2.1.1 Released: Middle July, 2003
+ (c) 2003 Athena Project.
+ http://project-yare.de/
+
+1. Athena(ƒAƒeƒi)‚ɂ‚¢‚Ä
+2. ‚±‚̃ŠƒŠ[ƒX‚ɂ‚¢‚Ä
+3. •K—v‚È•¨
+4. Žg‚¢•û
+5. Œ»Ý‚ÌŽd—l
+6. jŽ«
+7. –ÆÓŽ–€
+8. •åW
+9. English
+
+
+1. ƒAƒeƒi‚ɂ‚¢‚Ä
+ ƒAƒeƒi‚Æ‚Í2003”N1ŒŽ”¼‚΂ɂł½0052.lzh‚ðƒx[ƒX‚Æ‚µ‚Äì‚ç‚ê‚Ä‚¢‚éƒGƒ~ƒ…ƒŒ[ƒ^‚̈ê‚‚ł·B
+ Šî–{“I‚ȃ‰ƒCƒZƒ“ƒX‚̓IƒŠƒWƒiƒ‹‚ªGPL‚̉º‚É”z•z‚³‚ê‚Ä‚¢‚éˆ×A
+ ‚±‚ê‚É]‚¢GPL‚̉º”z•z‚ð‹–‰Â‚µ‚Ü‚·B
+ /*
+ ‰ü—ǔłð”z•z‚·‚éꇂ͕K‚¸‚±‚ÌREADME‚ð‘‚«Š·‚¦‚Ä‚­‚¾‚³‚¢B
+ ‰½ˆ‚ð‰ü—Ç‚µ‚½‚Ì‚©•ñ(athena@project-yare.de‚Ü‚Å)‚µ‚ĖႦ‚é‚Æ•‚©‚è‚Ü‚·B
+ ƒoƒCƒiƒŠ‚Ì‚Ý‚Ì”z•z‚ÍGPLˆá”½‚Å‚·‚Ì‚Å"•K‚¸"ƒ\[ƒX‚à“Y•t‚µ‚Ä‚­‚¾‚³‚¢B
+ */
+ “®ì‚ÌŠm”F‚͈ȉº‚Ì’Ê‚è‚Ì‚Ýs‚Á‚Ä‚¢‚Ü‚·B
+ // ‚½‚¾‚µŠ®àø‚É“®‚­Ž–‚ð•ÛØ‚·‚é‚à‚Ì‚Å‚ ‚è‚Ü‚¹‚ñ
+ ‘ÎÛCPU: Intel PentiumŒn // PentiumIIˆÈã‚ÅŠm”F.
+ FreeBSD 4.8R, 4.6.2R
+ Linux RedHat 7.3
+ cygwin + gcc 3.2 20020927 (prerelease)
+ ŠJ”­Œ³URL: http://project-yare.de/
+
+
+2. ‚±‚̃ŠƒŠ[ƒX‚ɂ‚¢‚Ä
+ ¡‰ñ‚̃ŠƒŠ[ƒX‚Í‘O‰ñ(V2.1)“¯—lŠJ”­”ł̃ŠƒŠ[ƒX‚Ì‚Ý‚Å‚·B
+ 2.1‚É”ä‚׉º‹L‚Ì“_‚ªC³‚³‚ê‚Ä‚¢‚Ü‚·B
+ map‚̃fƒtƒHƒ‹ƒgݒ肪ŠØ‘data.grf‚̂ݳí‚É“®ì‚·‚é‚悤‚É‚È‚Á‚Ä‚¢‚½“_
+ common/timer.c‚âmap/script.c‚ÌŠô‚‚©‚̃oƒO
+
+ v‘¬‚ÉUpdate‚ð‹­‚­„§‚·‚é‚à‚Ì‚Å‚Í‚ ‚è‚Ü‚¹‚ñ‚ªŠeŽ©‚Ì”»’f‚Ås‚Á‚ĉº‚³‚¢B
+
+
+3. •K—v‚È•¨
+ data.grf //sdata.grf‚Í•K—v‚ɉž‚¶‚Ä
+ account.txt //‘¶Ý‚µ‚È‚¢ê‡athena.sh‚ªŽ©“®¶¬‚µ‚Ü‚·
+ conf/*.cnf //Map—p‚ÆChar—p‚Ì“ñŽí—Þ‚ ‚è‚Ü‚·
+ conf/npc*.txt //npcÝ’è—pƒtƒ@ƒCƒ‹‚Å‚·B•¡”‚̃tƒ@ƒCƒ‹‚É•ª‚¯‚邱‚Æ‚ª‰Â”\‚Å‚·B
+ db/*.txt //ƒAƒCƒeƒ€Ajobî•ñ‚È‚Ç
+
+
+4. Žg‚¢•û
+ > tar xvfz athena-d?.?.tar.gz
+ > cd athena-d?.?.tar.gz
+ > make
+ > vi conf/char_athena.cnf //IP(127.0.0.1)‚Ì•”•ª‚ðŠÂ‹«‚ɇ‚킹‚Ä•ÏX‚µ‚Ä‚­‚¾‚³‚¢
+ > vi conf/map_athena.cnf //“¯ãA‚Ü‚½mapÝ’è‚È‚Ç‚ÍA‚±‚̃tƒ@ƒCƒ‹‚Ås‚¢‚Ü‚·B
+ > ./athena.sh
+ ã‹L‚ðs‚¦‚Î"‚½‚Ô‚ñ"‹N“®‚µ‚Ü‚·B
+
+ •â‘«:
+ conf/npc_sampleJ.txt‚ɂ̓XƒNƒŠƒvƒg‚Ì‘‚«•û‚ɂ‚¢‚ÄFX‚Èà–¾‚ª‹LÚ‚³‚ê‚Ä‚¢‚Ü‚·B
+ ‚à‚µA“ÆŽ©‚ÌMapÝ’è‚ðs‚Á‚Ä‚Ý‚½‚¢l‚âAƒXƒNƒŠƒvƒg‚ð˜M‚肽‚¢•û‚ÍŽQl‚É‚µ‚Ä‚­‚¾‚³‚¢B
+ ‚½‚¾‚µAŠJ”­’†‚Ì‚½‚߃XƒNƒŠƒvƒg‚ÌŽd—l‚ª•ÏX‚³‚ê‚é‰Â”\«‚ª‚‚¢‚Å‚·B
+ command.txt‚É‚ÍŽÀ‘•Ï‚Ý‚Ì“ÁŽêƒRƒ}ƒ“ƒh‚ɂ‚¢‚Ä‚Ìà–¾‚ð‹LÚ‚µ‚Ä‚¢‚Ü‚·B
+
+
+5. Œ»Ý‚ÌŽd—l
+ –{ŽI‚Æ”ä‚ׂè‚©‚µ‚¢(—Ⴆ‚΃vƒo‚ª•à‚­Aƒ|ƒŠƒ“‚ªƒAƒCƒeƒ€‚ðE‚í‚È‚¢‚È‚Ç)“_‚ÍA
+ ‘S‚ÄŒ»ÝŠJ”­’†‚Ɉö‚é‚à‚Ì‚Å‚·B
+ Œ»ó‚Æ‚µ‚ăLƒƒƒ‰ƒNƒ^Œn‹y‚у‚ƒ“ƒXƒ^[Œn‚̃oƒO•ñ‚Í–³Ž‹‚³‚ê‚é‰Â”\«‚ª‚‚¢‚Å‚·B
+
+ ƒoƒO•ñ‚ɂ‚¢‚Ä•K‚¸”­¶ðŒ‚ð‚¨‘‚«‰º‚³‚¢B
+ ‰º‚É‚ ‚é•ñ—pƒeƒ“ƒvƒŒ[ƒg‚ðŽg‚Á‚Ä•ñ‚µ‚Ä’¸‚­‚Æ•‚©‚è‚Ü‚·B
+ •ñæ‚̓Gƒ~ƒ…”‚̊J”­ƒXƒŒ‚É‚Å‚àB
+ ---- Athena v 2.0 (stable or develop) ----
+ ygcc verzgcc -v‚ðŽÀsŽž‚É•\Ž¦‚³‚ê‚é“à—e
+ y“®ìƒVƒXƒeƒ€zFreeBSD, Linux(ƒfƒBƒXƒgƒŠƒrƒ…[ƒWƒ‡ƒ“‚à), cygwin‚È‚Ç
+ y”­¶“à—ezmap‚ª—Ž‚¿‚Ä‚µ‚Ü‚Á‚½Žž‚Ì•\Ž¦‚³‚ê‚Ä‚¢‚½ƒfƒoƒbƒOî•ñ‚È‚Ç‹ï‘Ì“I‚É‘‚¢‚Ä‚­‚¾‚³‚¢B
+ y‘€ì“à—ez‹ï‘Ì“I‚É‚Ç‚ñ‚È‘€ì‚ðs‚Á‚½‚©‚ð‘‚¢‚Ä‚­‚¾‚³‚¢B
+ ------------------ END -------------------
+ —‘z‚̓eƒ“ƒvƒŒ‚ɉÁ‚¦‚Ämap.core‚È‚Çcoreƒtƒ@ƒCƒ‹‚ðUploader‚ɃAƒbƒv‚µ‚Ä’¸‚­‚±‚Æ‚Å‚·‚ª
+ –â‘è‚ÌMap‚¾‚¯‚Ìó‘Ô‚É‚µcore‚Ì“f‚­—e—Ê‚É’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
+ /*
+ Šm”F‚µ‚½ŒÀ‚è‚Å‚Í324ŒÂ‚Ù‚Çmapƒf[ƒ^‚ð“Ç‚Ýž‚Ü‚¹‚é‚ÆA
+ 40MB‹ß‚¢coreƒtƒ@ƒCƒ‹‚ð“f‚«o‚µ‚Ü‚· @FreeBSD
+ cygwin‚ÌꇂÍstackdump‚Æ‚¢‚¤ƒtƒ@ƒCƒ‹‚É‚È‚é‚»‚¤‚Å‚·B
+ ‚µ‚©‚µAcoreƒtƒ@ƒCƒ‹‚È‚Ç‚ðgzipˆ³k‚È‚Ç‚·‚ê‚Α啂ɬ‚³‚­‚È‚è‚Ü‚·B
+ ‘å–}30MB‚Ìcoreƒtƒ@ƒCƒ‹‚ª2.9MB‚Ù‚Ç‚É‚È‚é‚悤‚Å‚·B
+ ‚Å‚·‚Ì‚ÅA‚à‚µƒAƒbƒvƒ[ƒh‚·‚éꇂÍgzipˆ³k‚È‚ÇŠeŽ©s‚Á‚Ä‚­‚¾‚³‚¢B
+ */
+
+ ¡‰ñ‚̃ŠƒŠ[ƒX‚¾‚¯‚Å‚È‚­HISTORY‚ð쬂·‚é‚Æ‘å—Ê‚É‹Lq‚ª•K—v‚Ȉ×È—ª‚µ‚Ä‚¢‚Ü‚·B
+ // ‘½‚¢“ú‚¾‚Æ–{“–‚ÉŒ‹\‚ ‚è‚Ü‚·‚Ì‚ÅddB
+
+
+6. jŽ«
+ ¡‰ñ‚±‚ÌAthenaŠJ”­”Å‚ðo‚·‚É“–‚½‚Á‚ÄŠ´ŽÓ‚µ‚½‚¢•ûX(‡”Ô•s“¯)
+ LemmingŽ (Project YARE)
+ 0052Ž (Uploader)
+ 35Ž (ƒGƒ~ƒ…ŠJ”­ƒXƒŒ)
+ Johan LindhŽ(Author of memwatch)
+ YARE forum‚ÌNPCî•ñ‚ð쬂µ‚½•ûX
+ weissŒ¤‹†‰ïBBS‚Ì—lX‚Èî•ñƒtƒ@ƒCƒ‹‚ð쬂µ‚½•ûX
+ ÅŒã‚ÉA.coreƒtƒ@ƒCƒ‹’B
+
+
+7. –ÆÓŽ–€
+ Athena Project‚͈êØAthena‚Ì“®ì‚ÉŠÖ‚·‚é•ÛØ“™‚Ís‚¢‚Ü‚¹‚ñB
+ ‚‚܂èAAthena‚Í–³•ÛØ‚Å‚·B
+ athena@project-yare.de‚É“®ìE‘€ì“™‚ÉŠÖ‚·‚鎿–â‚È‚Ç‚ð‘—‚ç‚ê‚Ä‚àˆêØ‚¨“š‚¦‚Å‚«‚Ü‚¹‚ñB
+ –”Athena‚ð—p‚¢‚½‚±‚Æ‚É‚æ‚趂¶‚½”íŠQE–â‘è“™‚ÌÓ”C‚͈êØAthena Project‚Í•‰‚¢‚Ü‚¹‚ñB
+
+
+8. •åW
+ athena‚ÌŠJ”­‚ÉŽQ‰Á‚µ‚½‚¢//‹»–¡‚ª‚ ‚é‚Æ‚¢‚¤•û‚²˜A—‰º‚³‚¢B
+ ‰äX‚Í‹M•û‚ÌŽQ‰Á‚ð‚¨‘Ò‚¿‚µ‚Ä‚¢‚Ü‚·B
+ // ÅV”Å‚ª—~‚µ‚¢‚¾‚¯‚ʼn½‚狦—Í‚µ‚Ä’¸‚¯‚È‚¢‚Æ‚¢‚¤•û‚Í‚¨’f‚è‚Å‚·;-)
+ [•åW—v€: ƒvƒƒOƒ‰ƒ}(2-3l)]
+ ”N—î: •s–â
+ «•Ê: •s–â
+ Œ¾Œê: “ú–{Œê‚ª—‰ð‰Â”\
+ “à—e: CŒ¾Œê‚à‚µ‚­‚ÍC++‚É‚æ‚éŠJ”­B(“Á‚Ƀlƒbƒgƒ[ƒN‚âDB‚ÌŒoŒ±‚ª—L‚é•û‘å•åW!)
+ [•åW—v€: –|–ó(?l)]
+ ”N—î: •s–â
+ «•Ê: •s–â
+ Œ¾Œê: “ú–{ŒêA‰pŒê‚ª—‰ð‰Â”\
+ “à—e: •§—–¼ŒêA“ƈíŒêA¼”ljåŒêAˆÉ‘¾—˜ˆŸŒêA‘×(ƒ^ƒC)ŒêA’©‘NŒêA’†‘Œê‚Ö•¶Œ£AƒTƒCƒg‚È‚Ç‚Ì–|–ó
+ ˜A—æ: athena@project-yare.de ŽG–±’S“–‚Ü‚ÅB
+
+
+9. English
+ This release is just fixed some bugs in timer.c, script.c and map_athena1.conf.
+
+
+(c) 2003 Athena Project.
diff --git a/doc/notes/SVN-SUPPORT.txt b/doc/notes/SVN-SUPPORT.txt
index b38f5ee0f..7e14cb461 100644
--- a/doc/notes/SVN-SUPPORT.txt
+++ b/doc/notes/SVN-SUPPORT.txt
@@ -1,15 +1,15 @@
-
-If you are reading this, you are one of the lucky fools to be actually
-using the active development tree of the eAthena team. This is the
-only version that most of the eA dev team will activly support.
-
-svn can be retrieved via:
-
- http://subversion.tigris.org/files/documents/15/20015/svn-1.1.3-setup.exe
-
-once downloaded and placed in your path, you can just do:
-
-C> svn co http://svn2.stormbirds.org:8080/svn/ea/branches/stable
-
-this will check out a copy of our active stable development tree which
-you can then build. Build? figure it out...
+
+If you are reading this, you are one of the lucky fools to be actually
+using the active development tree of the eAthena team. This is the
+only version that most of the eA dev team will activly support.
+
+svn can be retrieved via:
+
+ http://subversion.tigris.org/files/documents/15/20015/svn-1.1.3-setup.exe
+
+once downloaded and placed in your path, you can just do:
+
+C> svn co http://svn2.stormbirds.org:8080/svn/ea/branches/stable
+
+this will check out a copy of our active stable development tree which
+you can then build. Build? figure it out...
diff --git a/doc/notes/help-old.txt b/doc/notes/help-old.txt
index 3af1cc055..ca5802043 100644
--- a/doc/notes/help-old.txt
+++ b/doc/notes/help-old.txt
@@ -1,450 +1,450 @@
- ______ __ __
- /\ _ \/\ \__/\ \
- __\ \ \L\ \ \ ,_\ \ \___ __ ___ __
- /'__`\ \ __ \ \ \/\ \ _ `\ /'__`\/' _ `\ /'__`\
-/\ __/\ \ \/\ \ \ \_\ \ \ \ \/\ __//\ \/\ \/\ \L\.\_
-\ \____\\ \_\ \_\ \__\\ \_\ \_\ \____\ \_\ \_\ \__/.\_\
- \/____/ \/_/\/_/\/__/ \/_/\/_/\/____/\/_/\/_/\/__/\/_/
-
---------------------------------------------------------------
-GM COMMANDS
----------------------------------------------------------------------------------
-Note:
- To use these commands, type them inside the message window where you usually
- type to chat.
-
-Rewritten by: Kevin
-Updated by: massdriller
-
----------------------------------------------------------------------------------
-<> = type of parameter that the command need to have
-[] = optionnal parameter
----------------------------------------------------------------------------------
-
-@h/@help = display commands help inside the game.
-
-=================================================================================
-ANNOUNCEMENT COMMANDS
-=================================================================================
-
-/b, @broadcast <message> = Send a message to everybody, with GM name.
- (yellow text)
-/nb, @kami <message> = Send a message to everybody, with no GM name.
- (yellow text)
-/bb, @kamib <message> = Send a message to everybody, with no GM name.
- (blue text)
-/lb, @localbroadcast <message> = Send a message to everybody, with GM name.
- (yellow text) (current map only)
-/nlb <message> = Send a message to everybody, with no GM name.
- (yellow text) (current map only)
-
-@me <message> = Creates a yellow "action" header on top of
- all the characters around your character.
-
-=================================================================================
-INFORMATION COMMANDS
-=================================================================================
-
------Character Information-----
-
-@who [match_text] = Lists which characters are currently online in your
- server and their location. [match_text] is a parameter
- to search only characters that have this text in their
- name.
-@who2 [match_text] = Lists which characters are currently online in your
- server and their job. [match_text] is a parameter to
- search only characters that have this text in their
- name.
-@who3 [match_text] = Lists which characters are currently online in your
- server and their party/guild. [match_text] is a
- parameter to search only characters that have this text
- in their name.
-@whomap [map] = Displays a listing of which characters are online and
- where they are in a specifical map. If [map] isn't
- specified, you display characters on your map.
-@whomap2 [map] = Displays a listing of which characters are online and
- their job in a specifical map. If [map] isn't specified,
- you display characters on your map.
-@whomap3 [map] = Displays a listing of which characters are online and
- their party/guild in a specifical map. If [map] isn't
- specified, you display characters on your actual map.
-@whogm [match_text] = Like @who+@who2+who3, but only for GM.
-@where [char name] = Tells you the location of a character. If [char name]
- isn't specified, you display your own location.
-@charcartlist <char name> = Displays all items of a player's cart.
-@mapinfo [<0-3> [map]] = Give information about a map (general info +:
- 0: no more, 1: players, 2: NPC, 3: shops/chat).
-
-@time/@date/@server_date/@serverdate/@server_time/@servertime = Display the date/
- time of the server
-
------guild/party information-----
-
-@guildspy <guild_name/id> = You will receive all messages of the specified guild
- channel
-@partyspy <party_name/id> = You will receive all messages of the specified party
- channel
-
------Database Information-----
-
-@mobinfo/@monsterinfo/@mi <monstername> = Gives information about the monster
-@iteminfo/@ii <itemname> = Gives information about the item
-@rates = Displays the Rates of the server
-@version = Gives the number of the SVN Version
-
-
-
-=================================================================================
-YOURSELF ONLY COMMANDS
-=================================================================================
-
------move commands-----
-
-/hide/@hide = GM Hide. Perfect hide that's totally
- invisible. Type @hide again become
- visible.
-@save = Sets save point as current location
-@load/@return = Warps you to your save point (like
- butterfly wing)
-/mm <mapname> <> <p>
-/mapmove <map_name> <x> <y>
-@warp/@rura/@mapmove <mapname> <x> <y> = Warps you to the selected position
- Example: @warp morocc 150 160 -> Warps
- you to Morroc (X:150, Y:160)
-@jump [x [y]] = Teleports you randomly in the map (like
- fly wing)
-/shift/@jumpto/@warpto/@goto <charname> = Warps you to selected character
- Example: @jumpto TestChar -> You are
- warped to TestChar's current
- location
-@go <number/city_name> = Warps you to a set city:
- -3=(Memo point 2) 4=Alberta 11=Gon Ryun
- -2=(Memo point 1) 5=Izlude 12=Umbala
- -1=(Memo point 0) 6=Al de Baran 13=Niflheim
- 0=Prontera 7=Lutie 14=Lou Yang
- 1=Morroc 8=Comodo 15=Start point
- 2=Geffen 9=Yuno 16=Prison
- 3=Payon 10=Amatsu
-@follow = Teleports and follows the player
- persistantly
-
------Health Commands-----
-
-@die = Kill yourself :) (suicide)
-@alive = Revives yourself from death
-@heal [<HP> <SP>] = Heals the desired amount of HP and SP. No value specified
- will do a full heal.
-
--------Job/Skill/Stat Commands-----
-
-@job/@jobchange <job> = Changes your job to the job assigned to the ID:
- 0 Novice 7 Knight 14 Crusader 22 Formal
- 1 Swordman 8 Priest 15 Monk 23 Super Novice
- 2 Mage 9 Wizard 16 Sage
- 3 Archer 10 Blacksmith 17 Rogue
- 4 Acolyte 11 Hunter 18 Alchem
- 5 Merchant 12 Assassin 19 Bard
- 6 Thief 13 Knight2 20 Dancer
- 21 Crusader2
- 24 Novice High 31 Lord Knight 38 Paladin
- 25 Swordman High 32 High Priest 39 Monk
- 26 Mage High 33 High Wizard 40 Professor
- 27 Archer High 34 Whitesmith 41 Stalker
- 28 Acolyte High 35 Sniper 42 Creator
- 29 Merchant High 36 Assassin Cross 43 Clown
- 30 Thief High 37 Peko Knight 44 Gypsy
- 45 Paladin2
-@lvup/@blevel/@baselvlup <number of levels> = Raises your base level the
- desired number of levels. The max
- is 99/255 (User Defined).
-@joblvup/@jlevel/@joblvlup <number of levels> = Raises your job level the desired
- number of levels. The max is 50
- For Basic Classes. For Super
- Novice and Advanced Classes it is
- 70.
-@allskill/@allskills/@skillall/@skillsall = Give you all skills.
-@stpoint <number of points> = Gives you the desired number of stat
- points.
-@skpoint <number of points> = Gives you the desired number of skill
- points.
-@str,@agi,@vit,@int,@dex,@luk <amount> = Adds desired amount to any stat. For
- example "@str 10" raises your str by 10.
-@statall/@statsall/@allstats/@allstat [value] = Adds value in all stats (maximum
- if no value).
-@questskill <id> = Gives you the specified quest skill
-@lostskill <id> = Takes away the specified quest skill
- from you
- Novice Archer Swordsman
- 142 = Emergency Care 147 = Arrow Creation 144 = Moving HP Recovery
- 143 = Act dead 148 = Charge Arrows 145 = Attack Weak Point
- Thief 146 = Auto Berserk
- 149 = Throw Sand Merchant
- 150 = Back Sliding 153 = Cart Revolution
- 151 = Take Stone 154 = Change Cart
- 152 = Stone Throw 155 = Crazy Uproar/Loud Voice
- Acolyte Magician
- 156 = Holy Light 157 = Energy Coat
-
------Other Commands-----
-
-@option <param1> <param2> <param3> = Changes options of your character
- Example: @option 0 0 16 - would give falcon
- <param1> <param2> <param3> <param3>
- 01 Petrified 01 Poison 01 Sight 128 Level 2 Cart
- 02 Frozen 02 Cursed 02 Hide 256 Level 3 Cart
- 03 Stunned 04 Silenced 04 Cloak 512 Level 4 Cart
- 04 Sleeping 08 ??? 08 Level 1 Cart 1024 Level 5 Cart
- 06 darkness 16 darkness 16 Falcon 2048 Orc Head
- 32 Peco Peco riding 4096 Wedding Sprites
- 64 GM Perfect Hide 8192 Ruwach
-@mountpeco = Give/remove you a peco. (Class is required, but not skill)
-@disguise <monster_name/monster_ID/NPC_ID> = Change your appearence to a mob or npc.
- If using NPC ID 104 Will become an effect.
- Speed of player will determine effect, be very careful with this ID
- it can create client crashes with improper ids and can easily lag players
- off of the server.
-@undisguise = Restore your normal appearance.
-@model <hair ID: 0-17> <hair color: 0-8> <clothes color: 0-4>
- = Changes your characters appearance
- (Hair type/colour and/or Clothes colour)
- Hair ID (0-17) Hair Colour (0-8) Clothes Colour (0-4)
- 0 Default 0 Default
- 1 Blonde 1 Red
- 2 Purple 2 Green
- 3 Brown 3 White
- 4 Green 4 Brown
- 5 Blue
- 6 White
- 7 Black
- 8 Red
-@dye/@ccolor <clothes color: 0-4> = Changes your characters appearence
- (only clothes color).
-@hairstyle/@hstyle <hair ID: 0-17> = Changes your characters appearence
- (only hair style).
-@haircolor/@hcolor <hair color: 0-8> = Changes your characters appearence
- (only hair color).
-@speed <1-1000> = Changes you walking speed (1 being the
- fastest & 1000 the slowest. Default 150.
-@effect <effect_id> [flag] = Give an efect to your character.
-@zeny <amount> = Gives you desired amount of Zeny.
-@memo [memo_position] = set/change a memo location.
- (no position: display memo points).
-@spiritball <number: 1-1000> = Gives you monk "spirit spheres" like
- from the skill "Call Spirits" (If the
- number you use is > 1000, your server
- may become instable or crash)
-@me <action> = Displays Charname action. ie. "**Bob dances**"
- if character name is bob and command is
- @me dances.
-
-=================================================================================
-REMOTE CHAR COMMANDS
-=================================================================================
-
-@kill <char name> = Kills specified character name
- Example: @kill TestChar -> The character named
- TestChar is dead
-@jail <char_name> = Sends specified character in jails
-/recall/@recall <char name> = Warps target character to you.
-@recallall = Warps every character online to you.
-@unjail/@discharge <char_name> = Discharges specified character
- or prisoner
-@charwarp/@rura+ <mapname> <x> <y> <char name> = Warps character to location of
- choice: Example:
- @charwarp morocc 150 160 testet
-@revive <char name> = Revives target character.
-@charstats <char name> = Displays the character's stats.
-@charignorelist <char name> = Displays ignore list of the player
-@inall <char name> = Allows all wispers for the player
-@exall <char name> = Blocks all wispers for the player
-@charoption <param1> <param2> <param3> <char name> = Does the same as the @option
- command only to target
- character.
-@charmountpeco <charname> = Give/remove to a player a peco (Class is
- required, but not skill).
-@charpetrename <charname> = Re-enable pet rename to a player.
-@charsave <map> <x> <y> <char name> = Changes the target player's respawn point.
-@charbaselvl <#> <char name> = Change a character's base level.
-@charjlvl <#> <char name> = Change a character's job level.
-@charstpoint <amount> <char name> = Give/take a player's stat points
-@charskpoint <amount> <char name> = Give/take a player's skill points
-@charskreset <charname> = Reset skills of a character.
-@charstreset <charname> = Reset stats of a character.
-@charquestskill <#> <charname> = Gives to a player the specified quest skill.
-@charlostskill <#> <charname> = Takes away the specified quest skill from
- the player.
-@chardelitem <item_name_or_ID> <quantity> <player> = Remove items from a character
-@charmodel <hair type> <hair color> <clothes color> <char name> = Changes a
- player's model
-@chardisguise <monster_name/ID> <char name> = Changes disguise of a player
-@charundisguise <char name> = Cancels disguise of a player
-@charblock/@block <name> = Blocks definitively a account
-@charunblock/@unblock <name> = Unblocks a account
-@charban/@ban/@banish/@charbanish <time> <name> = Ban temporarily a account
- Time usage: adjustement
- (+/- value) and element
- (y/a, m, d/j, h, mn, s)
- Example:
- @ban +1m-2mn1s-6y testplayer
-@charunban/@unban/@unbanish/@uncharbanish <name> = Unban a account
-@kick <charname> = Kicks specified character off the server
-@kickall = Kick all characters off the server
-@mapexit = Kick all players and shut down map-server.
-@doom = Kills all NON GM chars on the server.
-@doommap = Kills all non GM characters on the map.
-@raise = Resurrects all characters on the server.
-@raisemap = Resurrects all characters on the map.
-
-@killable = Other players can kill you
-@charkillable <character name> = Enable other players to be killable
-
-
-=================================================================================
-MOB COMMANDS
-=================================================================================
-
-/monster <monster_name> = Spawns 1 of the desired monster.
-@spawn/@monster/@summon <monster_name_or_monster_ID> [<number to spawn> [<desired_monster_name> [<x coord> [<y coord>]]]]
- = Spawns the desired monster with any desired name,
- quantity and x and y location (if specified).
-@monster2 <desired_monster_name> <monster_name_or_monster_ID> [<number to spawn> [<x coord> [<y coord>]]]
- = Spawns the desired monster with any desired name.
-@spawn/@monster/@summon/@monster2 <monster_name_or_monster_ID> "desired monster name" [<number to spawn> [<x coord> [<y coord>]]]
- = There 2 last forms can use spaces for desired names.
-@killmonster [map] = kill all monsters of the map (they drop items)
-@killmonster2 = kill all monsters of your map (without drops)
-
-=================================================================================
-ITEM COMMANDS
-=================================================================================
-
-@storage = Opens storage
-@gstorage = Opens guild storage
-@item <item name or ID> [quantity] = Gives you the desired item.
-@item2 <item name or ID> <quantity> <Identify_flag> <refine> <attribut> <Card1> <Card2> <Card3> <Card4>
- = Gives you the desired item.
-@itemreset = Remove all your items.
-@itemcheck = Check your items with authorised items.
-@idsearch <part_of_item_name> = search all items that name have
- part_of_item_name
-@refine <equip position> <+/- amount> = Upgrades equipment at the position
- specified (Stackable)
- 0 - All
- 1 - Lower Head
- 2 - Right Hand
- 4 - Robe/Garment
- 8 - Left Accessory
- 16 - Body/Armor
- 32 - Left Hand
- 64 - Foot Gear
- 128 - Right Accessory
- 256 - Top Head
- 512 - Mid Head
- Example: @refine 34 10 - Refines a 2 handed weapon to +10
- @refine 16 4 - Refines the body/armor to +4
-@produce <equip name or equip ID> <element> <# of very's>
- Element: 0=None 1=Ice 2=Earth 3=Fire 4=Wind
- It has separately with fragment 3 of the attribute + stars, you can apply.
- # of very's: 0=None 1=Very Strong 2=Very Very Strong 3=Very Very Very Strong
- Example: @produce 1163 3 3 - Produces a Very Very Very Strong (Your Nick)'s
- Fire Claymore
-@repairall = Repair all items of your inventory
-@cleanmap = Clears map of all fallen items
-
-=================================================================================
-ADMINISTRATION COMMANDS
-=================================================================================
-
-@reloaditemdb = Reload item database (admin command)
-@reloadmobdb = Reload monster database (admin command)
-@reloadskilldb = Reload skills definition database (admin command)
-@reloadscript = Reload all scripts (admin command)
-@reloadgmdb = Reload GM levels (admin command)
-@reloadatcommand = Reload GM command levels (admin command)
-@reloadbattleconf = Reload Battle Config(admin command)
-@reloadstatusdb = Reload status database(admin command)
-@reloadpcdb = Reload pc database(admin command)
-
-@loadnpc <path/to/npc> - Load a NPC (admin command)
-@unloadnpc <NPC_name> - Disable a NPC (admin command)
-@shownpc <NPC_name> - Show a hidden NPC (admin command)
-@hidenpc <NPC_name> - Hide a NPC (admin command)
-
-@disguiseall <monster_name/monster_ID/NPC_ID> = Change everybody on the map's appearence to a mob or npc.
- If using NPC ID 104 Will become an effect.
- Speed of player will determine effect, be very careful with this ID
- it can create client crashes with improper ids and can easily lag players
- off of the server.
-@undisguiseall = Removes all Disguises
-@happyhappyjoyjoy = Random emotions from all players on the map
-@autoloot = All items will go into inventory upon killing a monster
-
-
-@gat = For debugging (you inspect around gat)
-@packet = For debugging (packet variety)
-
-@GM <password> = it becomes GM!
-@email <actual@email> <new@email> = to change your e-mail (characters protection)
-
-@refreshonline = Rechecks to make sure online column is correct (SQL Only)
-
-=================================================================================
-OTHER COMMANDS
-=================================================================================
-
------Environmental Commands-----
-
-@night = Uses @option 00 16 00 on all characters. All characters are in darkness
-@day = Uses @option 00 00 00 on all characters.
-
-@rain = Gives Rain effect on activated map
-@snow = Gives Snow effect on activated map
-@sakura = Gives Flower petal effect on activated map
-@clouds = Gives Clouds effect on activated map
-@fog = Gives Foggy effect on activated map
-@fireworks = Gives Fireworks effect on activated map
-@leaves = Gives attumn effect on activated map
-@clearweather = Clears all "weather" effects on the map (Works only when players leave the map and rejoin again)
-
------Mail System Commands(SQL)-----
-
-@checkmail = Checks # of messages in your mailbox.
-@listmail = Lists all the messages in your mailbox.
-@listnewmail = Lists all new messages in your mailbox.
-@readmail <#> = Reads a message in your mailbox.
-@deletemail <#> = Deletes a message in your mailbox.
-
-@sendmail <name> <message> = Sends a message to another player. Use quotes if
- the player has spaces in their name.
-
-@sendprioritymail <name> <message> = Send priority mail to a player.
-
-Use * for name to send to all players.
-
------Pet Commands-----
-
-@hatch = Create a pet from your inventory eggs list.
-@makeegg <ID> = Gives pet egg for monster ID in pet DB
-@petfriendly <#> = Set pet friendly amount (0-1000) 0 = Min, 1000 = Max
-@pethungry <#> = Set pet hungry amount (0-100) 0 = Min, 100 = Max
-@petrename = Re-enable pet rename
-
------Group Commands-----
-
-@party <party_name> = Create a party
-@guild <guild_name> = Create a guild.
-@guildlvup/@guildlvlup <# of levels> = Raise Guild by desired number of levels
-@guildrecall <guild_name/id> = Warps all online character of a guild to you.
-@partyrecall <party_name/id> = Warps all online character of a party to you.
-
------Mute Commands (muting_players must be enabled)-----
-
-@mute/@red <time> <char_name> = Mutes char_name for time period of time.
-@mutearea/@stfu [time] = Mutes area for time, sets defualt to 15.
-
------System Commands usually used with scripts-------
-
-@marry <Char 1> <char 2> = Makes 2 target characters married
-@divorce <Char 1> <Char 2> = Divorces 2 characters
-@adopt <Char> = Adopts a player
-
+ ______ __ __
+ /\ _ \/\ \__/\ \
+ __\ \ \L\ \ \ ,_\ \ \___ __ ___ __
+ /'__`\ \ __ \ \ \/\ \ _ `\ /'__`\/' _ `\ /'__`\
+/\ __/\ \ \/\ \ \ \_\ \ \ \ \/\ __//\ \/\ \/\ \L\.\_
+\ \____\\ \_\ \_\ \__\\ \_\ \_\ \____\ \_\ \_\ \__/.\_\
+ \/____/ \/_/\/_/\/__/ \/_/\/_/\/____/\/_/\/_/\/__/\/_/
+
+--------------------------------------------------------------
+GM COMMANDS
+---------------------------------------------------------------------------------
+Note:
+ To use these commands, type them inside the message window where you usually
+ type to chat.
+
+Rewritten by: Kevin
+Updated by: massdriller
+
+---------------------------------------------------------------------------------
+<> = type of parameter that the command need to have
+[] = optionnal parameter
+---------------------------------------------------------------------------------
+
+@h/@help = display commands help inside the game.
+
+=================================================================================
+ANNOUNCEMENT COMMANDS
+=================================================================================
+
+/b, @broadcast <message> = Send a message to everybody, with GM name.
+ (yellow text)
+/nb, @kami <message> = Send a message to everybody, with no GM name.
+ (yellow text)
+/bb, @kamib <message> = Send a message to everybody, with no GM name.
+ (blue text)
+/lb, @localbroadcast <message> = Send a message to everybody, with GM name.
+ (yellow text) (current map only)
+/nlb <message> = Send a message to everybody, with no GM name.
+ (yellow text) (current map only)
+
+@me <message> = Creates a yellow "action" header on top of
+ all the characters around your character.
+
+=================================================================================
+INFORMATION COMMANDS
+=================================================================================
+
+-----Character Information-----
+
+@who [match_text] = Lists which characters are currently online in your
+ server and their location. [match_text] is a parameter
+ to search only characters that have this text in their
+ name.
+@who2 [match_text] = Lists which characters are currently online in your
+ server and their job. [match_text] is a parameter to
+ search only characters that have this text in their
+ name.
+@who3 [match_text] = Lists which characters are currently online in your
+ server and their party/guild. [match_text] is a
+ parameter to search only characters that have this text
+ in their name.
+@whomap [map] = Displays a listing of which characters are online and
+ where they are in a specifical map. If [map] isn't
+ specified, you display characters on your map.
+@whomap2 [map] = Displays a listing of which characters are online and
+ their job in a specifical map. If [map] isn't specified,
+ you display characters on your map.
+@whomap3 [map] = Displays a listing of which characters are online and
+ their party/guild in a specifical map. If [map] isn't
+ specified, you display characters on your actual map.
+@whogm [match_text] = Like @who+@who2+who3, but only for GM.
+@where [char name] = Tells you the location of a character. If [char name]
+ isn't specified, you display your own location.
+@charcartlist <char name> = Displays all items of a player's cart.
+@mapinfo [<0-3> [map]] = Give information about a map (general info +:
+ 0: no more, 1: players, 2: NPC, 3: shops/chat).
+
+@time/@date/@server_date/@serverdate/@server_time/@servertime = Display the date/
+ time of the server
+
+-----guild/party information-----
+
+@guildspy <guild_name/id> = You will receive all messages of the specified guild
+ channel
+@partyspy <party_name/id> = You will receive all messages of the specified party
+ channel
+
+-----Database Information-----
+
+@mobinfo/@monsterinfo/@mi <monstername> = Gives information about the monster
+@iteminfo/@ii <itemname> = Gives information about the item
+@rates = Displays the Rates of the server
+@version = Gives the number of the SVN Version
+
+
+
+=================================================================================
+YOURSELF ONLY COMMANDS
+=================================================================================
+
+-----move commands-----
+
+/hide/@hide = GM Hide. Perfect hide that's totally
+ invisible. Type @hide again become
+ visible.
+@save = Sets save point as current location
+@load/@return = Warps you to your save point (like
+ butterfly wing)
+/mm <mapname> <> <p>
+/mapmove <map_name> <x> <y>
+@warp/@rura/@mapmove <mapname> <x> <y> = Warps you to the selected position
+ Example: @warp morocc 150 160 -> Warps
+ you to Morroc (X:150, Y:160)
+@jump [x [y]] = Teleports you randomly in the map (like
+ fly wing)
+/shift/@jumpto/@warpto/@goto <charname> = Warps you to selected character
+ Example: @jumpto TestChar -> You are
+ warped to TestChar's current
+ location
+@go <number/city_name> = Warps you to a set city:
+ -3=(Memo point 2) 4=Alberta 11=Gon Ryun
+ -2=(Memo point 1) 5=Izlude 12=Umbala
+ -1=(Memo point 0) 6=Al de Baran 13=Niflheim
+ 0=Prontera 7=Lutie 14=Lou Yang
+ 1=Morroc 8=Comodo 15=Start point
+ 2=Geffen 9=Yuno 16=Prison
+ 3=Payon 10=Amatsu
+@follow = Teleports and follows the player
+ persistantly
+
+-----Health Commands-----
+
+@die = Kill yourself :) (suicide)
+@alive = Revives yourself from death
+@heal [<HP> <SP>] = Heals the desired amount of HP and SP. No value specified
+ will do a full heal.
+
+-------Job/Skill/Stat Commands-----
+
+@job/@jobchange <job> = Changes your job to the job assigned to the ID:
+ 0 Novice 7 Knight 14 Crusader 22 Formal
+ 1 Swordman 8 Priest 15 Monk 23 Super Novice
+ 2 Mage 9 Wizard 16 Sage
+ 3 Archer 10 Blacksmith 17 Rogue
+ 4 Acolyte 11 Hunter 18 Alchem
+ 5 Merchant 12 Assassin 19 Bard
+ 6 Thief 13 Knight2 20 Dancer
+ 21 Crusader2
+ 24 Novice High 31 Lord Knight 38 Paladin
+ 25 Swordman High 32 High Priest 39 Monk
+ 26 Mage High 33 High Wizard 40 Professor
+ 27 Archer High 34 Whitesmith 41 Stalker
+ 28 Acolyte High 35 Sniper 42 Creator
+ 29 Merchant High 36 Assassin Cross 43 Clown
+ 30 Thief High 37 Peko Knight 44 Gypsy
+ 45 Paladin2
+@lvup/@blevel/@baselvlup <number of levels> = Raises your base level the
+ desired number of levels. The max
+ is 99/255 (User Defined).
+@joblvup/@jlevel/@joblvlup <number of levels> = Raises your job level the desired
+ number of levels. The max is 50
+ For Basic Classes. For Super
+ Novice and Advanced Classes it is
+ 70.
+@allskill/@allskills/@skillall/@skillsall = Give you all skills.
+@stpoint <number of points> = Gives you the desired number of stat
+ points.
+@skpoint <number of points> = Gives you the desired number of skill
+ points.
+@str,@agi,@vit,@int,@dex,@luk <amount> = Adds desired amount to any stat. For
+ example "@str 10" raises your str by 10.
+@statall/@statsall/@allstats/@allstat [value] = Adds value in all stats (maximum
+ if no value).
+@questskill <id> = Gives you the specified quest skill
+@lostskill <id> = Takes away the specified quest skill
+ from you
+ Novice Archer Swordsman
+ 142 = Emergency Care 147 = Arrow Creation 144 = Moving HP Recovery
+ 143 = Act dead 148 = Charge Arrows 145 = Attack Weak Point
+ Thief 146 = Auto Berserk
+ 149 = Throw Sand Merchant
+ 150 = Back Sliding 153 = Cart Revolution
+ 151 = Take Stone 154 = Change Cart
+ 152 = Stone Throw 155 = Crazy Uproar/Loud Voice
+ Acolyte Magician
+ 156 = Holy Light 157 = Energy Coat
+
+-----Other Commands-----
+
+@option <param1> <param2> <param3> = Changes options of your character
+ Example: @option 0 0 16 - would give falcon
+ <param1> <param2> <param3> <param3>
+ 01 Petrified 01 Poison 01 Sight 128 Level 2 Cart
+ 02 Frozen 02 Cursed 02 Hide 256 Level 3 Cart
+ 03 Stunned 04 Silenced 04 Cloak 512 Level 4 Cart
+ 04 Sleeping 08 ??? 08 Level 1 Cart 1024 Level 5 Cart
+ 06 darkness 16 darkness 16 Falcon 2048 Orc Head
+ 32 Peco Peco riding 4096 Wedding Sprites
+ 64 GM Perfect Hide 8192 Ruwach
+@mountpeco = Give/remove you a peco. (Class is required, but not skill)
+@disguise <monster_name/monster_ID/NPC_ID> = Change your appearence to a mob or npc.
+ If using NPC ID 104 Will become an effect.
+ Speed of player will determine effect, be very careful with this ID
+ it can create client crashes with improper ids and can easily lag players
+ off of the server.
+@undisguise = Restore your normal appearance.
+@model <hair ID: 0-17> <hair color: 0-8> <clothes color: 0-4>
+ = Changes your characters appearance
+ (Hair type/colour and/or Clothes colour)
+ Hair ID (0-17) Hair Colour (0-8) Clothes Colour (0-4)
+ 0 Default 0 Default
+ 1 Blonde 1 Red
+ 2 Purple 2 Green
+ 3 Brown 3 White
+ 4 Green 4 Brown
+ 5 Blue
+ 6 White
+ 7 Black
+ 8 Red
+@dye/@ccolor <clothes color: 0-4> = Changes your characters appearence
+ (only clothes color).
+@hairstyle/@hstyle <hair ID: 0-17> = Changes your characters appearence
+ (only hair style).
+@haircolor/@hcolor <hair color: 0-8> = Changes your characters appearence
+ (only hair color).
+@speed <1-1000> = Changes you walking speed (1 being the
+ fastest & 1000 the slowest. Default 150.
+@effect <effect_id> [flag] = Give an efect to your character.
+@zeny <amount> = Gives you desired amount of Zeny.
+@memo [memo_position] = set/change a memo location.
+ (no position: display memo points).
+@spiritball <number: 1-1000> = Gives you monk "spirit spheres" like
+ from the skill "Call Spirits" (If the
+ number you use is > 1000, your server
+ may become instable or crash)
+@me <action> = Displays Charname action. ie. "**Bob dances**"
+ if character name is bob and command is
+ @me dances.
+
+=================================================================================
+REMOTE CHAR COMMANDS
+=================================================================================
+
+@kill <char name> = Kills specified character name
+ Example: @kill TestChar -> The character named
+ TestChar is dead
+@jail <char_name> = Sends specified character in jails
+/recall/@recall <char name> = Warps target character to you.
+@recallall = Warps every character online to you.
+@unjail/@discharge <char_name> = Discharges specified character
+ or prisoner
+@charwarp/@rura+ <mapname> <x> <y> <char name> = Warps character to location of
+ choice: Example:
+ @charwarp morocc 150 160 testet
+@revive <char name> = Revives target character.
+@charstats <char name> = Displays the character's stats.
+@charignorelist <char name> = Displays ignore list of the player
+@inall <char name> = Allows all wispers for the player
+@exall <char name> = Blocks all wispers for the player
+@charoption <param1> <param2> <param3> <char name> = Does the same as the @option
+ command only to target
+ character.
+@charmountpeco <charname> = Give/remove to a player a peco (Class is
+ required, but not skill).
+@charpetrename <charname> = Re-enable pet rename to a player.
+@charsave <map> <x> <y> <char name> = Changes the target player's respawn point.
+@charbaselvl <#> <char name> = Change a character's base level.
+@charjlvl <#> <char name> = Change a character's job level.
+@charstpoint <amount> <char name> = Give/take a player's stat points
+@charskpoint <amount> <char name> = Give/take a player's skill points
+@charskreset <charname> = Reset skills of a character.
+@charstreset <charname> = Reset stats of a character.
+@charquestskill <#> <charname> = Gives to a player the specified quest skill.
+@charlostskill <#> <charname> = Takes away the specified quest skill from
+ the player.
+@chardelitem <item_name_or_ID> <quantity> <player> = Remove items from a character
+@charmodel <hair type> <hair color> <clothes color> <char name> = Changes a
+ player's model
+@chardisguise <monster_name/ID> <char name> = Changes disguise of a player
+@charundisguise <char name> = Cancels disguise of a player
+@charblock/@block <name> = Blocks definitively a account
+@charunblock/@unblock <name> = Unblocks a account
+@charban/@ban/@banish/@charbanish <time> <name> = Ban temporarily a account
+ Time usage: adjustement
+ (+/- value) and element
+ (y/a, m, d/j, h, mn, s)
+ Example:
+ @ban +1m-2mn1s-6y testplayer
+@charunban/@unban/@unbanish/@uncharbanish <name> = Unban a account
+@kick <charname> = Kicks specified character off the server
+@kickall = Kick all characters off the server
+@mapexit = Kick all players and shut down map-server.
+@doom = Kills all NON GM chars on the server.
+@doommap = Kills all non GM characters on the map.
+@raise = Resurrects all characters on the server.
+@raisemap = Resurrects all characters on the map.
+
+@killable = Other players can kill you
+@charkillable <character name> = Enable other players to be killable
+
+
+=================================================================================
+MOB COMMANDS
+=================================================================================
+
+/monster <monster_name> = Spawns 1 of the desired monster.
+@spawn/@monster/@summon <monster_name_or_monster_ID> [<number to spawn> [<desired_monster_name> [<x coord> [<y coord>]]]]
+ = Spawns the desired monster with any desired name,
+ quantity and x and y location (if specified).
+@monster2 <desired_monster_name> <monster_name_or_monster_ID> [<number to spawn> [<x coord> [<y coord>]]]
+ = Spawns the desired monster with any desired name.
+@spawn/@monster/@summon/@monster2 <monster_name_or_monster_ID> "desired monster name" [<number to spawn> [<x coord> [<y coord>]]]
+ = There 2 last forms can use spaces for desired names.
+@killmonster [map] = kill all monsters of the map (they drop items)
+@killmonster2 = kill all monsters of your map (without drops)
+
+=================================================================================
+ITEM COMMANDS
+=================================================================================
+
+@storage = Opens storage
+@gstorage = Opens guild storage
+@item <item name or ID> [quantity] = Gives you the desired item.
+@item2 <item name or ID> <quantity> <Identify_flag> <refine> <attribut> <Card1> <Card2> <Card3> <Card4>
+ = Gives you the desired item.
+@itemreset = Remove all your items.
+@itemcheck = Check your items with authorised items.
+@idsearch <part_of_item_name> = search all items that name have
+ part_of_item_name
+@refine <equip position> <+/- amount> = Upgrades equipment at the position
+ specified (Stackable)
+ 0 - All
+ 1 - Lower Head
+ 2 - Right Hand
+ 4 - Robe/Garment
+ 8 - Left Accessory
+ 16 - Body/Armor
+ 32 - Left Hand
+ 64 - Foot Gear
+ 128 - Right Accessory
+ 256 - Top Head
+ 512 - Mid Head
+ Example: @refine 34 10 - Refines a 2 handed weapon to +10
+ @refine 16 4 - Refines the body/armor to +4
+@produce <equip name or equip ID> <element> <# of very's>
+ Element: 0=None 1=Ice 2=Earth 3=Fire 4=Wind
+ It has separately with fragment 3 of the attribute + stars, you can apply.
+ # of very's: 0=None 1=Very Strong 2=Very Very Strong 3=Very Very Very Strong
+ Example: @produce 1163 3 3 - Produces a Very Very Very Strong (Your Nick)'s
+ Fire Claymore
+@repairall = Repair all items of your inventory
+@cleanmap = Clears map of all fallen items
+
+=================================================================================
+ADMINISTRATION COMMANDS
+=================================================================================
+
+@reloaditemdb = Reload item database (admin command)
+@reloadmobdb = Reload monster database (admin command)
+@reloadskilldb = Reload skills definition database (admin command)
+@reloadscript = Reload all scripts (admin command)
+@reloadgmdb = Reload GM levels (admin command)
+@reloadatcommand = Reload GM command levels (admin command)
+@reloadbattleconf = Reload Battle Config(admin command)
+@reloadstatusdb = Reload status database(admin command)
+@reloadpcdb = Reload pc database(admin command)
+
+@loadnpc <path/to/npc> - Load a NPC (admin command)
+@unloadnpc <NPC_name> - Disable a NPC (admin command)
+@shownpc <NPC_name> - Show a hidden NPC (admin command)
+@hidenpc <NPC_name> - Hide a NPC (admin command)
+
+@disguiseall <monster_name/monster_ID/NPC_ID> = Change everybody on the map's appearence to a mob or npc.
+ If using NPC ID 104 Will become an effect.
+ Speed of player will determine effect, be very careful with this ID
+ it can create client crashes with improper ids and can easily lag players
+ off of the server.
+@undisguiseall = Removes all Disguises
+@happyhappyjoyjoy = Random emotions from all players on the map
+@autoloot = All items will go into inventory upon killing a monster
+
+
+@gat = For debugging (you inspect around gat)
+@packet = For debugging (packet variety)
+
+@GM <password> = it becomes GM!
+@email <actual@email> <new@email> = to change your e-mail (characters protection)
+
+@refreshonline = Rechecks to make sure online column is correct (SQL Only)
+
+=================================================================================
+OTHER COMMANDS
+=================================================================================
+
+-----Environmental Commands-----
+
+@night = Uses @option 00 16 00 on all characters. All characters are in darkness
+@day = Uses @option 00 00 00 on all characters.
+
+@rain = Gives Rain effect on activated map
+@snow = Gives Snow effect on activated map
+@sakura = Gives Flower petal effect on activated map
+@clouds = Gives Clouds effect on activated map
+@fog = Gives Foggy effect on activated map
+@fireworks = Gives Fireworks effect on activated map
+@leaves = Gives attumn effect on activated map
+@clearweather = Clears all "weather" effects on the map (Works only when players leave the map and rejoin again)
+
+-----Mail System Commands(SQL)-----
+
+@checkmail = Checks # of messages in your mailbox.
+@listmail = Lists all the messages in your mailbox.
+@listnewmail = Lists all new messages in your mailbox.
+@readmail <#> = Reads a message in your mailbox.
+@deletemail <#> = Deletes a message in your mailbox.
+
+@sendmail <name> <message> = Sends a message to another player. Use quotes if
+ the player has spaces in their name.
+
+@sendprioritymail <name> <message> = Send priority mail to a player.
+
+Use * for name to send to all players.
+
+-----Pet Commands-----
+
+@hatch = Create a pet from your inventory eggs list.
+@makeegg <ID> = Gives pet egg for monster ID in pet DB
+@petfriendly <#> = Set pet friendly amount (0-1000) 0 = Min, 1000 = Max
+@pethungry <#> = Set pet hungry amount (0-100) 0 = Min, 100 = Max
+@petrename = Re-enable pet rename
+
+-----Group Commands-----
+
+@party <party_name> = Create a party
+@guild <guild_name> = Create a guild.
+@guildlvup/@guildlvlup <# of levels> = Raise Guild by desired number of levels
+@guildrecall <guild_name/id> = Warps all online character of a guild to you.
+@partyrecall <party_name/id> = Warps all online character of a party to you.
+
+-----Mute Commands (muting_players must be enabled)-----
+
+@mute/@red <time> <char_name> = Mutes char_name for time period of time.
+@mutearea/@stfu [time] = Mutes area for time, sets defualt to 15.
+
+-----System Commands usually used with scripts-------
+
+@marry <Char 1> <char 2> = Makes 2 target characters married
+@divorce <Char 1> <Char 2> = Divorces 2 characters
+@adopt <Char> = Adopts a player
+
diff --git a/doc/packet_table_en.txt b/doc/packet_table_en.txt
index 63f74dc51..db291032f 100644
--- a/doc/packet_table_en.txt
+++ b/doc/packet_table_en.txt
@@ -1,1336 +1,1336 @@
-here is a translation for "packet_table.txt".
-i leave original japanese sentenses and write translation below that.
-
-
-Ú‚µ‚­‚Í’m‚è‚Ü‚¹‚ñ‚ªAGM‚̓AƒJƒEƒ“ƒgID704554•t‹ß‚ðŽw’è‚·‚é‚Æ
-ƒNƒ‰ƒCƒAƒ“ƒg‚ªGM‚¾‚Æ”FŽ¯‚µ‚Ä•\Ž¦‚·‚é‚Ý‚½‚¢‚Å‚·B
-”Žš‚ª”¼’[‚È‚Ì‚Í‹C‚É‚µ‚È‚¢‚ÅEEE
-
-i don't know for sure, but if you set account id around 704554,
-the ro client recognizes you as GM ( i don't know about other client like
-iro or something. this is talking about jro.)
-
-
-ƒpƒPƒbƒg’·ƒŠƒXƒgB-1‚̓pƒPƒbƒgŽí•Ê‚Ì’¼Œã‚É’·‚³‚ª‚ ‚éƒpƒPƒbƒg
-
-list of packet length. "-1" means a packet that have its packet length
-just after the packet number.
-
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 55, 17, 3, 37, 46, -1, 23, -1, 3,108, 3, 2,
- 3, 28, 19, 11, 3, -1, 9, 5, 52, 51, 56, 58, 41, 2, 6, 6,
-
- 7, 3, 2, 2, 2, 5, 16, 12, 10, 7, 29, 23, -1, -1, -1, 0,
- 7, 22, 28, 2, 6, 30, -1, -1, 3, -1, -1, 5, 9, 17, 17, 6,
- 23, 6, 6, -1, -1, -1, -1, 8, 7, 6, 7, 4, 7, 0, -1, 6,
- 8, 8, 3, 3, -1, 6, 6, -1, 7, 6, 2, 5, 6, 44, 5, 3,
-
- 7, 2, 6, 8, 6, 7, -1, -1, -1, -1, 3, 3, 6, 3, 2, 27,
- 3, 4, 4, 2, -1, -1, 3, -1, 6, 14, 3, -1, 28, 29, -1, -1,
- 30, 30, 26, 2, 6, 26, 3, 3, 8, 19, 5, 2, 3, 2, 2, 2,
- 3, 2, 6, 8, 21, 8, 8, 2, 2, 26, 3, -1, 6, 27, 30, 10,
-
-
- 2, 6, 6, 30, 79, 31, 10, 10, -1, -1, 4, 6, 6, 2, 11, -1,
- 10, 39, 4, 10, 31, 35, 10, 18, 2, 13, 15, 20, 68, 2, 3, 16,
- 6, 14, -1, -1, 21, 8, 8, 8, 8, 8, 2, 2, 3, 4, 2, -1,
- 6, 86, 6, -1, -1, 7, -1, 6, 3, 16, 4, 4, 4, 6, 24, 26,
-
- 22, 14, 6, 10, 23, 19, 6, 39, 6, 7, 6, 27, -1, 2, 6, 6,
- 110, 6, -1, -1, -1, -1, -1, 6, -1, 54, 66, 54, 90, 42, 6, 42,
- -1, -1, -1, -1, -1, 30, -1, 3, 14, 3, 30, 10, 43, 14,186,182,
- 14, 30, 10, 3, -1, 6,106, -1, 4, 5, 4, -1, 6, 7, -1, -1,
-
- 6, 3,106, 10, 10, 34, 0, 6, 8, 4, 4, 4, 29, -1, 10, 6,
- 90, 86, 24, 6, 30,102, 8, 4, 8, 4, 14, 10
-
-S ƒNƒ‰ƒCƒAƒ“ƒg‚©‚猩‚Ä‘—M
-S means a packet that will be sent from client.
-
-R ƒNƒ‰ƒCƒAƒ“ƒg‚©‚猩‚ÄŽóM
-R means a packet that will be received by client.
-
-B ƒoƒCƒg
-B means a byte.
-
-w ƒ[ƒh=2B
-w means word( 2 bytes)
-
-l ƒƒ“ƒOƒ[ƒh=4B
-l means long word(4bytes)
-
-* 0ŒÂˆÈã‚­‚è‚©‚¦‚µ
-* means repeat
-
-
-S 0064 <version>.l <account name>.24B <password>.24B <version2>.B
- ƒAƒJƒEƒ“ƒgID&ƒpƒXƒ[ƒh‘—M
- send account id & password
-S 0065 <account ID>.l <login ID1>.l <login ID2>.l ?.2B <sex>.B
- ƒLƒƒƒ‰ƒZƒŒŽIÚ‘±—v‹
- request connection to character select server
-S 0066 <charactor number>.B
- ƒLƒƒƒ‰ƒNƒ^‘I‘ð—v‹
- request to select character
-S 0067 <charactor name>.24B <param etc>.11B
- ƒLƒƒƒ‰ƒNƒ^쬗v‹
- request to create new character
-S 0068 <charactor ID>.l <mail address>.40B
- ƒLƒƒƒ‰ƒNƒ^휗v‹
- request to delete character
-R 0069 <len>.w <login ID1>.l <account ID>.l <login ID2>.l ?.32B <sex>.B {<IP>.l <port>.w <server name>.20B <login users>.l ?.2B}.32B*
- login¬Œ÷&ŽIî•ñ
- information about a success of login to login server
-R 006a <error No>.B
- loginŽ¸”s
- fail to login to login server
-R 006b <len>.w <charactor select data>.106B*
- ƒLƒƒƒ‰ƒZƒŒŽIÚ‘±¬Œ÷&ƒLƒƒƒ‰ƒNƒ^ƒf[ƒ^
- information about a success of connection to character select server & character server
- <charactor select data> = <charactor ID>.l <base exp>.l <zeny>.l <job exp>.l <job level>.l ?.8B <option>.l <karma>.l <manner>.l ?.2B <HP>.w <MaxHP>.w <SP>.w <MaxSP>.w <speed>.w <class>.w <hair>.w <weapon>.2w <base level>.w <skill point>.w <head_bottom>.w <sheild>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <name>.24B <STR>.B <AGI>.B <VIT>.B <INT>.B <DEX>.B <LUK>.B <charactor number>.B ?.B
-R 006c <error No>.B
- ƒLƒƒƒ‰ƒNƒ^‘I‘ðŽ¸”s
- fail to select character
-R 006d <charactor select data>.106B
- ƒLƒƒƒ‰ƒNƒ^쬬Œ÷
- success to create new character
-R 006e <error No>.B
- ƒLƒƒƒ‰ƒNƒ^쬎¸”s
- fail to create new character
-R 006f
- ƒLƒƒƒ‰ƒNƒ^휬Œ÷
- success to delete character
-R 0070 <error No>.B
- ƒLƒƒƒ‰ƒNƒ^휎¸”s
- fail to delete character
-R 0071 <charactor ID>.l <map name>.16B <ip>.l <port>.w
- ƒLƒƒƒ‰ƒNƒ^‘I‘ð¬Œ÷&ƒ}ƒbƒv–¼&ƒQ[ƒ€ŽIIP/port
- success to select character & map name and ip/port number for game server
-S 0072 <account ID>.l <charactor ID>.l <login ID1>.l <login ID2>.l <sex>.b
- ƒQ[ƒ€ŽIÚ‘±—v‹
- request connection to game server
-R 0073 <server tick>.l <coordidate>.3B ?.2B
- ƒQ[ƒ€ŽIÚ‘±¬Œ÷&ƒT[ƒo‘¤1msŽžŒv&oŒ»ˆÊ’u
- success to connect to game server & server time & spawn point
-R 0078 <ID>.l <speed>.w ?.w ?.w <option>.w <class>.w <hair>.w <weapon>.w <head option bottom>.w <sheild>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.w ?.w ?.w <manner>.w <karma>.w ?.B <sex>.B <X_Y_dir>.3B ?.B ?.B <sit>.B
- ƒ}ƒbƒvƒ[ƒhŽž&ˆÚ“®Žž—pAŒü‚«•t‚«—pƒLƒƒƒ‰î•ñ?
- a packet for map load or moving, infermation about a direction for character?
-R 0079 <ID>.l <speed>.w ?.w ?.w <option>.w <class>.w <hair>.w <weapon>.w <head option bottom>.w <sheild>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.w ?.w ?.w <manner>.w <karma>.w ?.B <sex>.B <X_Y_dir>.3B ?.B ?.B
- ƒeƒŒƒ|“™‚Ì•\Ž¦”ÍˆÍ“à•¦‚«ƒLƒƒƒ‰—pAŒü‚«•t‚«–³‚µƒLƒƒƒ‰î•ñ?
- information about characters in a range of a skill like teleport, no infor about direction for character?
-R 007b <ID>.l <speed>.w ?.w ?.w <option>.w <class>.w <hair>.w <weapon>.w <head option bottom>.w <server tick>.l <sheild>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.w ?.w ?.w <manner>.w <karma>.w ?.B <sex>.B <X_Y_X_Y>.5B ?.B ?.B ?.B
- •\Ž¦”͈͓àƒLƒƒƒ‰ˆÚ“®î•ñ
- character information about walking in a range of the character can see
-R 007c <ID>.l <speed>.w ?.6w <class>.w ?.7w <X_Y>.3B ?.2B
- NPC—p•\Ž¦”͈͓àƒLƒƒƒ‰î•ñ
- character information for npc in a range the character can see
-S 007d
- mapƒ[ƒhI‚è
- end of load
-S 007e <client tick>.l
- ƒNƒ‰ƒCƒAƒ“ƒg‘¤1msƒ^ƒCƒ}‘—M
- send 1ms timer at client
-R 007f <server tick>.l
- ƒT[ƒo‘¤1msƒ^ƒCƒ}‘—M
- send 1ms timer at server
-R 0080 <ID>.l <type>.B
- type=00 ƒLƒƒƒ‰Á–Å (‰æ–ÊŠOˆÚ“®BŽ€‘ÌÁ–Å“™?)
- character disappear( walk out of screen. died and disappear?)
- type=01 ƒLƒƒƒ‰Ž€–S
- character died
- type=02 ƒLƒƒƒ‰Á–Å (ƒeƒŒƒ|,”ˆ,’±,logout“™?)
- character disappear( teleport, fly's wing, butterfly's wing, logout?)
-R 0081 <type>.B
- type=03 speed hack
- speed hack
- type=08 2dƒƒOƒCƒ“
- duplicated login
-S 0085 <X_Y>.3B
- ˆÚ“®—v‹
- request to walk
-R 0087 <server tick>.l <X_Y_X_Y>.5B ?.B
- ˆÚ“®‰ž“š
- response to the request to walk
-R 0088 <ID>.l <X>.w <Y>.w
- ˆÚ“®“r’†’âŽ~
- stop walking
-S 0089 <target ID>.l <type>.B
- type=00 target‚ð1‰ñ‰£‚é
- hit target once
- type=02 À‚é
- sit down
- type=03 —§‚¿ã‚é
- stand up
- type=07 target‚ð‰£‚è‘±‚¯‚é
- continue to hit target
-R 008a <src ID>.l <dst ID>.l <server tick>.l <src speed>.l <dst speed>.l <param1>.w <param2>.w <type>.B <param3>.w
- type=00 param1=0 miss
- param1=0 miss
- type=00 param1:ƒ_ƒ[ƒW(‚̇Œv?) param2:•ªŠ„” param3:ƒAƒTƒVƒ“2“—¬‹tŽèƒ_ƒ[ƒW
- param1:damage(of total?) param2:number of division param3:damage of assasin's left hand
- NPC‚©‚ç‚ÌUŒ‚‚Ìê‡Aparam2,param3‚̓Sƒ~ƒf[ƒ^
- if the attack was by npc, param2 and param3 are not used
- speed‚ÍPC‚Ìê‡“à•”ASPD‚ƈê’v
- speed match the aspd if it's player character
- type=01 item‚ðE‚¤ ID*2ˆÈŠOƒSƒ~
- pick up item, unused data except ID*2
- type=02 À‚é src IDˆÈŠOƒSƒ~
- sit down, unused data except src ID
- type=03 —§‚ src IDˆÈŠOƒSƒ~
- stand up, unused data except src ID
- type=08 •¡”UŒ‚
- multiple attack
- type=0a ƒNƒŠƒeƒBƒJƒ‹
- critical attack
- type=0b Š®‘S‰ñ”ð
- perfect evade
-R 008c <len>.w <str>.?B
- ’Êí”­Œ¾‘—MBƒ`ƒƒƒbƒg’†‚̓`ƒƒƒbƒg“à”­Œ¾—p‚É‚È‚é
- send normal speech. it become a speech for chat during a chat
- 擪‚Ì"<nick> : "‚Ì•”•ª‚̓Nƒ‰ƒCƒAƒ“ƒg‘¤‚Å•t‚¯‚鎖
- client adds "<nick> : " part.
-R 008d <len>.w <ID>.l <str>.?B
- ID‚³‚ñ‚Ì”­Œ¾ŽóMBƒ`ƒƒƒbƒg’†‚̓`ƒƒƒbƒg“à”­Œ¾—p‚É‚È‚é
- receive a speech by ID. it become speech for chat during a chat
-R 008e <len>.w <str>.?B
- Ž©•ª‚Ì”­Œ¾ŽóMBƒ`ƒƒƒbƒg’†‚̓`ƒƒƒbƒg“à”­Œ¾—p‚É‚È‚é
- receive my character's speech. it become speech for chat during a chat
-S 0090 <ID>.l <type?>.B
- NPC‚ɘb‚µ‚©‚¯‚éBtype‚Í01‚µ‚©Œ©‚½Ž––³‚µ
- talk to npc. i havent seen type setted to 01.
-R 0091 <map name>.16B <X>.w <Y>.w
- ŽI“àƒ}ƒbƒvŠÔˆÚ“®AƒeƒŒƒ|,”ˆ“™—p
- map change in the same server, for instance, teleport, fly's wing...
-R 0092 <map name>.16B <X>.w <Y>.w <IP>.l <port>.w
- ŽIŠÔˆÚ“®
- map change to the other server
-R 0093
- 8ŒŽ’†‚É1‰ñ‚¾‚¯ŠÏ‘ªB“ä
- this packet observed in august once. i dont know what it is.
-S 0094 <ID>.l
- ID‚̃Lƒƒƒ‰–¼“™—v‹B0095‚©0195‚Ì•Ô“š‚ª‚ ‚é‚Í‚¸
- request a character name for ID. 0095 or 0195 response is expected.
-R 0095 <ID>.l <nick>.24B
- NPC,ƒMƒ‹ƒh–¢Š‘®PC‚Ì0094‚Ö‚Ì•Ô“š
- response for 0094 request from npc or player character without guild.
- 0193 <charID>.l ‚Å–â‚¢‡‚킹‚Ä
- request by <charID>.l
- 0194 <charID>.l <name>.24B ‚̉ž“š‚Å“¾‚Ä‚Ü‚·B
- get response by <charID>.l <name>.24B
-
-S 0096 <len>.w <nick>.24B <message>.?B
- wis‘—M
- send wisper
-R 0097 <len>.w <nick>.24B <message>.?B
- wisŽóM
- receive wisper
-R 0098 <type>.B
- type=00 wis‘—M¬Œ÷
- success to send wisper
- type=01 wis‘ŠŽè‚ªlogin‚µ‚Ä‚È‚¢?
- target character is not loged in?
- type=02 wis‘ŠŽè‚©‚çignore‚³‚ê‚Ä‚é?
- ignored by target
-R 009a <len>.w <message>.?B
- GM‚©‚ç‚Ì“V‚̺
- GM announce
-S 009b <head dir>.w <dir>.B
- ‘Ì&“ª‚Ì•ûŒü•ÏX—v‹BƒNƒ‰ƒCƒAƒ“ƒg‚ւ̉ž“š‚Í–³‚¢–Í—l
- request a change of head and body direction. no response to client.
- dir‚Í00`07‚Å‘Ì‚ÌŒü‚«B00‚Å–k‚©‚甽ŽžŒv‰ñ‚è‚É45‹’PˆÊ‚Å07‚Ü‚Å
- dir can be 00-07 and it's for body direction. 00 means north and go counter-clockwise upto 07 by 45 degrees.
- head dir‚Í00,01,02‚Å“ª‚ÌŒü‚«B00‚Å‘Ì‚Æ“¯‚¶A01‚ª‰EA02‚ª¶
- head dir can be 00,01,02. 00 means the same direction of body, 01 means right, 02 menas left.
-R 009c <ID>.l <head dir>.w <dir>.B
- ID‚Ì‘Ì&“ª‚Ì•ûŒü•ÏX
- change body and head direction for ID.
-R 009d <ID>.l <item ID>.w <identify flag>.B <X>.w <Y>.w <amount>.w <subX>.B <subY>.B
- ˆÚ“®“™‚Å°ƒAƒCƒeƒ€‚ª‰æ–Ê“à‚É“ü‚Á‚Ä‚«‚½Žž
- when the item on the floor will appear on the screen by walking etc.
-R 009e <ID>.l <item ID>.w <identify flag>.B <X>.w <Y>.w <subX>.B <subY>.B <amount>.w
- item dropB‰½ŒÌ‚©009d‚ƃ}ƒX–Ú“àˆÊ’u&ŒÂ”‚ª“ü‚ê•Ï‚Á‚Ä‚¢‚é
- item drop. coordinate and amount is different from 009d.
-S 009f <ID>.l
- ID‚Ì°ƒAƒCƒeƒ€‚ðE‚¤
- pick up item on the floor.
-R 00a0 <index>.w <amount>.w <item ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w <equip type>.w <type>.B <fail>.B
- fail=02 Žæ“¾Ž¸”s?
- fail to pick up?
- fail=06 ƒ‹[ƒgŒ –³‚µBŽæ“¾Ž¸”s
- no right to pick up. fail to pick up.
-R 00a1 <ID>.l
- ID‚Ì°ƒAƒCƒeƒ€Á‹Ž
- disappear the floor item
-S 00a2 <index>.w <amount>.w
- Š—LƒAƒCƒeƒ€‚ð—Ž‚·
- drop inventory item.
-R 00a3 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B}.10B*
- Š—LÁ–Õ•i&ŽûW•iƒŠƒXƒg
- list of consumptive item and collecter item that you have
-R 00a4 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <equip type>.w <equip point>.w <attribute?>.B <refine>.B <card>.4w}.20B*
- Š—L‘•”õƒŠƒXƒg
- list of equipments that you have
-R 00a5 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B}.10B*
- ƒJƒvƒ‰‚³‚ñ‚É—a‚¯‚Ä‚ ‚éÁ–Õ•i&ŽûW•iƒŠƒXƒg
- list of consumptive item and collecter item that you leave with capra.
-R 00a6 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <equip type>.w <equip point>.w <attribute?>.B <refine>.B <card>.4w}.20B*
- ƒJƒvƒ‰‚³‚ñ‚É—a‚¯‚Ä‚ ‚é‘•”õƒŠƒXƒg
- list of equipments that you leave with capra.
-S 00a7 <index>.w <ID>.l
- ŠŽƒAƒCƒeƒ€index‚ðŽg—p‚·‚éBID‚ÍŽ©•ª‚Ì‚Ý?
- use index item. ID can be only myself?
-R 00a8 <index>.w <amount>.w <type>.B
- ƒAƒCƒeƒ€Žg—p‰ž“šBtype=00‚Ìꇎg—pŽ¸”s? amount‚àƒSƒ~‚Ì–Í—l
- response to use item. type=00 means failed. amount is unused.
- type=01‚ÌꇬŒ÷‚ÅAamount‚ÍŽg—pŒã‚ÌŽc‚èŒÂ”
- type=01 means success to use item, amount is a number of rest of the item.
-S 00a9 <index>.w <equip type>.w
- ƒAƒCƒeƒ€‘•”õ
- equip item.
-R 00aa <index>.w <equip point>.w <type>.B
- ƒAƒCƒeƒ€‘•”õ‰ž“šBtype=00‚Ìꇑ•”õŽ¸”s? equip point‚àƒSƒ~‚Ì–Í—l
- response to equip item. type=00 means fail. equip point is unused.
-S 00ab <index>.w
- ‘•”õ‰ðœ
- take off equipment.
-R 00ac <index>.w <equip point>.w <type>.B
- ‘•”õ‰ðœ‰ž“šBtype=00‚Ìꇎ¸”s? equip point‚àƒSƒ~‚Ì–Í—l
- response to take off equipment. type=00 means fail? equip point is unused.
-R 00af <index>.w <amount>.w
- ƒAƒCƒeƒ€”Œ¸­BamountŒÂ‚¾‚¯Œ¸‚ç‚·
- decrease number of item by amount.
-R 00b0 <type>.w <val>.l
- FX‚È”\—Í’l‚ÌXVBˆÈ‰ºtype:‘Ήž‚·‚é”’l‚ð—ñ‹“
- update values of various status.
- 0000:speed 0003:ˆ«s’l 0004:ƒ}ƒi[ƒ|ƒCƒ“ƒg 0005:HP 0006:MaxHP
- 0000:speed 0003:carma 0004:manner point 0005:HP 0006: MaxHP
- 0007:SP 0008:MaxSP 0009:ƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒg 000b:ƒx[ƒXƒŒƒxƒ‹
- 0007:SP 0008:MaxSP 0009:status point 000b: base level
- 000c:ƒXƒLƒ‹ƒ|ƒCƒ“ƒg 0018:d—Ê(•\Ž¦‚³‚ê‚Ă锎š‚Ì10”{)
- 000c:skil point 0018:weight(this number must be 10 times greater than it's been diplayed.)
- 0019:Å‘åd—Ê(•\Ž¦‚³‚ê‚Ă锎š‚Ì10”{)
- 0019:max weight(this number must be 10 times greater than it's been diplayed.)
- 0029:ATK‘O 002a:ATKŒã 002b:MATK‘O 002c:MATKŒã
- 0029:attack in front 002a:attack in back 002b:matk in front 002c:matk in back
- 002d:DEF‘O 002e:DEFŒã 002f:MDEF‘O 0030:MDEFŒã
- 002d:deffence in front 002e:deffence in back 002f:mdef in front 0030:mdef in back
- 0031:HIT 0032:FLEE‘O 0033:FLEEŒã 0034:ƒNƒŠƒeƒBƒJƒ‹
- 0031:hit 0032:flee in front 0033:flee in back 0034: critical
- 0035:ASPD(2ms’PˆÊ‚ÌŽžŠÔ?) 0037:ƒWƒ‡ƒuƒŒƒxƒ‹
- 0035:aspd(time by 2ms?) 0037:job level
- 0082:“ä ATKŒã‚Æ“¯‚¶”Žš?
- 0082:unknown. is it the same number as atk in back?
-R 00b1 <type>.w <val>.l
- FX‚È”\—Í’l‚ÌXVBˆÈ‰ºtype:‘Ήž‚·‚é”’l‚ð—ñ‹“
- update valies of various status. below is the list of corresponding type and value.
- 0001:ƒx[ƒX‘¤ŒoŒ±’l 0002:ƒWƒ‡ƒu‘¤ŒoŒ±’l 0014:zeny
- 0001:base experience 0002:job experience 0014:zeny
- 0016:ƒx[ƒX‘¤•K—vŒoŒ±’l 0017:ƒWƒ‡ƒu‘¤•K—vŒoŒ±’l
- 0016:base experience that needed to level up 0017:job experience that needed to level up
- ƒÀ1‚Å‚Í00b0‚Íval‚ªshortA00b1‚Íval‚ªlong‚Æ‚¢‚¤Žg‚¢•ª‚¯‚ª‚ ‚Á‚½‚ñ‚¾‚¯‚Ç
- ¡‚Æ‚È‚Á‚Ä‚Í·‚ª–³‚­‚È‚Á‚ÄA–Ó’°‚Ý‚½‚¢‚È‚à‚Ì?
- in beta1, value of 00b0 was short and value of 00b1 was long,
- but not there are no difference.
-S 00b2 <type>.B
- type=00 Ž€–SŽžƒŠƒXƒ^[ƒg
- restart game when character died
- type=01 ƒLƒƒƒ‰ƒZƒŒ—v‹
- request character select
-R 00b3 <type>.B
- type=01 ƒLƒƒƒ‰ƒZƒŒ‰ž“š
- response to character select
-R 00b4 <len>.w <ID>.l <str>.?B
- ID‚ÌNPC‚©‚ç‚̃ƒbƒZ[ƒW
- message from npc id
-R 00b5 <ID>.l
- ID‚ÌNPC‚Ƃ̃ƒbƒZ[ƒWƒEƒBƒ“ƒhƒE‚É"NEXT"ƒAƒCƒRƒ“‚ðo‚·
- display the "NEXT" icon to npc message window
-R 00b6 <ID>.l
- ID‚ÌNPC‚Ƃ̃ƒbƒZ[ƒWƒEƒBƒ“ƒhƒE‚É"CLOSE"ƒAƒCƒRƒ“‚ðo‚·
- display the "CLOSE" icon to npc message window
-R 00b7 <len>.w <ID>.l <str>.?B
- ID‚ÌNPC‚̉ï˜b‚Å‘I‘ð€–Ú•\Ž¦BŠe€–Ú‚Í':'‚Å‹æØ‚ç‚ê‚é
- display select options in npc message window. each options devided by ":".
-S 00b8 <ID>.l <select>.B
- ID‚ÌNPC‚̉ï˜b‚Ì‘I‘ðBŠe€–ڂɇ‚É1`‚ªU‚ç‚ê‚éBff‚ŃLƒƒƒ“ƒZƒ‹?
- select options in ncp message window. number starts from 1 for each options. cancel for ff?
-S 00b9 <ID>.l
- ID‚ÌNPC‚Ƃ̉ï˜bBNEXTƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚½
- "NEXT" button clicked in ncp message window.
-S 00bb <type>.w <amount>.B
- ƒXƒe[ƒ^ƒXup—v‹Btype‚Í000d‚©‚ç0012‚ª‡‚ÉSTR,AGI,VIT,INT,DEX,LUK‚ɑΉž
- request update status. type can be 000d for STR, 000e for AGI, 000f for VIT, 0010 for INT, 0011 for DEX, 0012 for LUK.
-R 00bc <type>.w <fail>.B <val>.B
- ƒXƒe[ƒ^ƒXup‰ž“šBfail=01‚Ȃ笌÷Btype‚Í00bb‚Æ“¯‚¶Bval‚Íã‚Á‚½Œã‚Ì”Žš
- respnse to update status. it's successeeded if fail=01. type is the same value as packet number 00bb. val is a value of increase.
- Ž¸”s—á‚ÍŒ©‚½Ž––³‚¢‚Ì‚Å“äBƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒg‚ª‘«‚è‚È‚¢ó‘Ô‚Å
- 00bb‚ð”­s‚Å‚«‚éƒNƒ‰ƒCƒAƒ“ƒg‚ª—L‚ê‚ÎAfail=00‚É‚È‚é‚Ì‚Å‚Í‚È‚¢‚©‚Æ—\‘z
- it's unknown when it's failed because i havent ever seen. i think it will be fail=00 when it's failed.
-R 00bd <status point>.w <STR>.B <STRupP>.B <AGI>.B <AGIupP>.B <VIT>.B <VITupP>.B <INT>.B <INTupP>.B <DEX>.B <DEXupP>.B <LUK>.B <LUKupP>.B <ATK>.w <ATKbonus>.w <MATKmax>.w <MATKmin>.w <DEF>.w <DEFbonus>.w <MDEF>.w <MDEFbonus>.w <HIT>.w <FLEE>.w <FLEEbonus>.w <critical>.w ?.w
- ‚܂Ƃ߂ăXƒe[ƒ^ƒXî•ñ‚ð‘—‚éƒpƒPƒbƒg
- packet of information for various status.
-R 00be <type>.w <val>.B
- •K—vƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒgXVƒpƒPƒbƒgBtype‚Í0020`0025‚ª‡‚ÉSTR`LUK‚ɑΉž
- packet to update required status point. type can be 0020-0025 for STR-LUK.( see packet number 00bb for detals.)
-S 00bf <type>.B
- ƒGƒ‚[ƒVƒ‡ƒ“‚ðo‚·Btype‚Í00-0c(,0d)‚ªALT+1`ALT+9,ALT+0,ƒ`ƒ‡ƒL,ƒO[,ƒp[(,ŠØ‘Šø)‚ɑΉž
- display emotion. type can be 00-0c(,0d) for ALT+1-ALT+9,ALT+0,CTRL+-,CTRL++,CTRL+\(,korean flag).
-R 00c0 <ID>.l <type>.B
- ID‚Ìl‚ªƒGƒ‚[ƒVƒ‡ƒ“‚ðo‚µ‚½Btype‚Í00bf‚Æ“¯‚¶
- emotion by ID. type is the same as 00bf.
-S 00c1
- loginl”–â‚¢‡‚킹
- request to ask loged in people.
-R 00c2 <val>.l
- loginl”‰ž“š
- response to asking loged in people.
-R 00c3 <ID>.l <type>.B <val>.B
- Œ©‚½–Ú•ÏXBtype‚Í00‚Å–{‘Ì(“]EŽž“™)A02‚ª•ŠíA03‚ª“ª(‰º)A04‚ª“ª(ã)A05‚ª“ª(’†)A08‚ª‚
- change looks. type=00 means body(by jobs), 02 is weapon, 03 is head(lower), 04 is head(upper), 05 is head(middle), 08 is shield.
-R 00c4 <ID>.l
- ˜b‚©‚¯‚½NPC‚ª¤l‚¾‚Á‚½‚Ì‚Åbuy/sell‘I‘ð‘‹o
- display "BUY" or "SELL" window by npc ID
-R 00c5 <ID>.l <type>.B
- buy/sell‘I‘ðBtype=00‚È‚çbuyBtype=01‚È‚çsell
- select "BUY" or "SELL". type=00 is buy, type=01 is sell.
-R 00c6 <len>.w {<value>.l <DCvalue>.l <type>.B <item ID>.w}.11B*
- NPC‚Ì‚¨“Xbuy‘I‘ðŽžBDCvalue‚ͤlDCŒã‚Ì’l’i
- list of marchandizes when clicked "BUY". DCvalue is a value of Discount Skill applied.
-R 00c7 <len>.w {<index>.w <value>.l <OCvalue>.l}.10B*
- NPC‚Ì‚¨“Xsey‘I‘ðŽžBOCvalue‚ͤlOCŒã‚Ì’l’i
- list of items when clicked "SELL". OCvalue is a value of Over Charge Skill applied.
-S 00c8 <len>.w {<amount>.w <item ID>.w}.4B*
- NPC‚Ì‚¨“X‚©‚甃‚¤
- buy item from npc shop.
-S 00c9 <>.w {<index>.w <amount>.w}.4B*
- NPC‚Ì‚¨“X‚É”„‚é
- sell item to npc shop.
-R 00ca <type>.B
- NPC‚©‚çw“üI—¹Btype=00¬Œ÷
- response for buying item. type=00 meanse successetion.
-R 00cb <type>.B
- NPC‚Ö”„‹pI—¹Btype=00¬Œ÷
- response for selling item. type=00 means success.
-S 00cf <nick>.24B <type>.B
- type=00 nick‚©‚ç‚Ì”­Œ¾Žó‚¯•t‚¯‹‘”Û (/ex nick)
- deny speech from nick(/ex nick).
- type=01 nick‚©‚ç‚Ì”­Œ¾Žó‚¯•t‚¯‹–‰Â (/in nick)
- allow speech from nick(/in nick)
-S 00d0 <type>len.B
- type=00 ‘S‚Ä‚Ì”­Œ¾Žó‚¯•t‚¯‹‘”Û (/exall)
- deny all speech(/exall)
- type=01 ‘S‚Ä‚Ì”­Œ¾Žó‚¯•t‚¯‹–‰Â (/inall)
- allow all speech(/inall)
-R 00d1 <type>.B <fail>.B
- fail=00 ”­Œ¾Žó‚¯•t‚¯‹‘”Û¬Œ÷
- success to deny speech
- fail=01 ”­Œ¾Žó‚¯•t‚¯‹‘”ÛŽ¸”s
- fail to deny speech
-R 00d2 <type>.B <fail>.B
- fail=00 ‘S”­Œ¾Žó‚¯•t‚¯‹‘”Û¬Œ÷
- seccess to allow speech
- fail=01 ‘S”­Œ¾Žó‚¯•t‚¯‹‘”ÛŽ¸”s
- fail to alloe speech
-S 00d5 <len>.w <limit>.w <pub>.B <passwd>.8B <title>.?B
- ƒ`ƒƒƒbƒg—§‚ÄB‚±‚±‚©‚çƒ`ƒƒƒbƒgŠÖŒW‚ª‘±‚­‚¯‚Ç’²‚ׂªŠÃ‚¢‚̂ŕ⊮‚æ‚ë
- create chat room.(from now on, im not sure for packets about chat.)
-R 00d6 <fail>.B
- ƒ`ƒƒƒbƒg—§‚ĉž“š
- response to create chat room.
-R 00d7 <len>.w <owner ID>.l <chat ID>.l <limit>.w <users>.w <pub>.B <title>.?B
- ‰æ–Ê“àƒ`ƒƒƒbƒgî•ñ
- information for chat room in the screen.
-R 00d8 <chat ID>.l
- ƒ`ƒƒƒbƒgÁ‹Ž
- delete chat room.
-S 00d9 <chat ID>.l <passwd>.8B
- ƒ`ƒƒƒbƒgŽQ‰Á—v¿
- request to join the chat.
-R 00da <fail>.B
- ƒ`ƒƒƒbƒgŽQ‰ÁŽ¸”s
- fail to join the chat.
-R 00db <len>.w <chat ID>.l {<index>.l <nick>.24B}.28B*
- ƒ`ƒƒƒbƒgŽQ‰ÁŽÒƒŠƒXƒg
- list of people in the chat room.
-R 00dc <users>.w <nick>.24B
- ƒ`ƒƒƒbƒg‚Ö‚ÌŽQ‰ÁŽÒ’ljÁ(?)
- add person to the chat room.
-R 00dd <index>.w <nick>.24B <fail>.B
- ƒ`ƒƒƒbƒg‚©‚çŽQ‰ÁŽÒ”²‚¯
- leave the chat room.
-S 00de <len>.w <limit>.w <pub>.B <passwd>.8B <title>.?B
- ƒ`ƒƒƒbƒgƒXƒe[ƒ^ƒX•ÏX
- change chat room status.
-R 00df <len>.w <owner ID>.l <chat ID>.l <limit>.w <users>.w <pub>.B <title>.?B
- ƒ`ƒƒƒbƒgƒXƒe[ƒ^ƒX•ÏX¬Œ÷
- success to change chat room status.
-S 00e0 ?.l <nick>.24B
- ƒ`ƒƒƒbƒgƒ‹[ƒ€Š—LŽÒ•ÏX—v‹?
- request to change owner of the chat room?
-R 00e1 <index>.l <nick>.24B
- ƒ`ƒƒƒbƒgŽQ‰ÁŽÒ”Ô†•t‚¯’¼‚µ?
- re-number people in the chat room?
-S 00e2 <nick>.24B
- ƒ`ƒƒƒbƒgkick
- kick nick from chat room.
-S 00e3
- ƒ`ƒƒƒbƒg”²‚¯
- leave chat room.
-S 00e4 <ID>.l
- Žæ‚èˆø‚«—v‹
- request trade.
-R 00e5 <nick>.24B
- Žæ‚èˆø‚«—v¿Žó‚¯
- recieve a request to trade.
-S 00e6 <type>.B
- type=03 Žæ‚èˆø‚«—v¿ok
- trade ok.
- type=04 Žæ‚èˆø‚«—v¿ƒLƒƒƒ“ƒZƒ‹
- trade canceled.
-R 00e7 <fail>.B
- Žæ‚èˆø‚«—v‹‰ž“š
- response to requesting trade.
- fail=00 ‹——£‚ª‰“‰ß‚¬
- too far.
- fail=03 —v¿Žó‚¯‚Ä‚­‚ꂽ
- allowed the trade.
- fail=04 ƒLƒƒƒ“ƒZƒ‹‚³‚ꂽ?
- trade canceled?
-S 00e8 <index>.w <amount>.l
- ƒAƒCƒeƒ€’ljÁBindex=0‚Åzeny’ljÁB³‹KƒNƒ‰ƒCƒAƒ“ƒg‚Å‚Ízeny‚Í00eb‚Ì’¼‘O‚Ì‚Ý
- add item. index=0 means adding zeny. for official client, zeny can be added only in packet number 00eb.
-R 00e9 <amount>.l <type ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w
- ‘ŠŽè•û‚©‚ç‚̃AƒCƒeƒ€’ljÁ
- added item from other character.
-R 00ea <index>.w <fail>.B
- fail=00 ƒAƒCƒeƒ€’ljÁ¬Œ÷
- success to add item.
- fail=01 ’ljÁŽ¸”sB‘ŠŽè‘¤d—ʃI[ƒo
- fail to add item. the player was over weighted.
-S 00eb
- ƒAƒCƒeƒ€’ljÁŠ®—¹(ok‰Ÿ‚µ)
- completed adding item.(cliecked OK)
-R 00ec <fail>.B
- fail=00 Ž©•ª‚©‚ç‚ÌokŽó—Ì
- recieved "OK" from myself
- fail=01 ‘ŠŽè‚©‚ç‚ÌokŽó—Ì
- recieved "OK" from the other.
-S 00ed
- Žæ‚èˆø‚«ƒLƒƒƒ“ƒZƒ‹
- trade canceled.
-R 00ee
- Žæ‚èˆø‚«‚ªƒLƒƒƒ“ƒZƒ‹‚³‚ê‚Ü‚µ‚½
- message of "trade canceled"
-S 00ef
- Žæ‚èˆø‚«‹–‘ø(trade‰Ÿ‚µ)
- trade OKed. (cliecked Trade)
-R 00f0
- Žæ‚èˆø‚«Š®—¹
- trade completed.
-R 00f2 <num>.w <limit>.w
- ƒJƒvƒ‰‚³‚ñ‹–—eƒAƒCƒeƒ€ŒÂ”&Œ»ó
- number of item that capra can stock and number of item that capra stocks now.
-S 00f3 <index>.w <amount>.l
- ƒJƒvƒ‰‚³‚ñ‘qŒÉ‚ɃAƒCƒeƒ€•ú‚èž‚Ý
- put item to capra's warehouse.
-R 00f4 <index>.w <amount>.l <type ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w
- ƒJƒvƒ‰‚³‚ñ‘qŒÉ‚̃AƒCƒeƒ€’ljÁ
- add item to capra's warehouse.
-S 00f5 <index>.w <amount>.l
- ƒJƒvƒ‰‚³‚ñ‘qŒÉ‚©‚çƒAƒCƒeƒ€Žæ‚èo‚µ
- take out item from capra's warehouse.
-R 00f6 <index>.w <amount>.l
- ƒJƒvƒ‰‚³‚ñ‘qŒÉ‚̃AƒCƒeƒ€íœ
- delete item in the capra's warehouse.
-S 00f7
- ƒJƒvƒ‰‚³‚ñ‘qŒÉ•Â‚¶
- request to close capra's warehouse.
-R 00f8
- ƒJƒvƒ‰‚³‚ñ‘qŒÉ•Â‚¶‰ž“š
- response to close capra's warehouse.
-S 00f9 <party name>.24B
- ƒp[ƒeƒBì¬
- create party.
-R 00fa <fail>.B
- fail=00 쬬Œ÷
- success to create party.
-R 00fb <len>.w <party name>.24B {<ID>.l <nick>.24B <map name>.16B <leader>.B <offline>.B}.46B*
- ƒp[ƒeƒBî•ñ‚Ü‚Æ‚ß‚Ä‘—‚è
- packet for various information about party.
-S 00fc <ID>.l
- ƒp[ƒeƒBŠ©—U‚·‚é
- invate player to the party.
-R 00fd <nick>.24B <fail>.B
- fail=00 ‘ŠŽè‚ÍŠù‚Ƀp[ƒeƒB‚É“ü‚Á‚Ä‚¢‚½
- the player is already in other party.
- fail=01 ‘ŠŽè‚É‹‘”Û‚³‚ꂽ
- invitaion was denied.
- fail=02 Š©—U¬Œ÷
- success to invite,
-R 00fe <ID>.l <party name>.24B
- ƒp[ƒeƒB‚É—U‚í‚ꂽ
- invited to party.
-S 00ff <ID>.l <fail>.l
- ƒp[ƒeƒB‚É—U‚í‚ꂽŽž‚Ì•Ô“šBfail=1 ok•Ô“š?
- response when player was invited to party. fail=1 means OK?
-R 0100
- ? ƒp[ƒeƒBŠÖ˜A?
- unknown. related to party?
-S 0101 <exp>.w <item?>.w
- ƒp[ƒeƒBÝ’è•ÏX
- change party setting.
-R 0102 <exp>.w <item?>.w
- ƒp[ƒeƒBݒ茻ó? exp=2‚Ìꇂ͌ö•½”z•ªÝ’莸”s?
- party setting status. when exp=2, fail to set "equality for experience"?
-R 0104 <ID>.l ?.l <X>.w <Y>.w <offline>.B <party name>.24B <nick>.24B <map name>.16B
- ƒp[ƒeƒB1l•ªî•ñXV
- information about a one player in th party.
-R 0105 <ID>.l <nick>.24B <fail>.B
- nick‚³‚ñ‚ªƒp[ƒeƒB‚©‚ç—£’E
- nick leaves the party.
-R 0106 <ID>,l <HP>.w <MaxHP>.w
- ƒp[ƒeƒBƒƒ“ƒoHPXV
- update HP of party members.
-R 0107 <ID>.l <X>.w <Y>.w
- ƒp[ƒeƒBƒƒ“ƒoˆÊ’uXV
- update coordinates of party members.
-S 0108 <len>.w <message>.?B
- ƒp[ƒeƒB“à”­Œ¾
- send speech for party memebers.
-R 0109 <len>.w <ID>.l <message>.?B
- ƒp[ƒeƒB“à”­Œ¾ŽóM
- receive speech for party memebers.
-R 010a <type ID>.w
- MVPƒAƒCƒeƒ€Žæ“¾
- get MVP item.
-R 010b <exp>.l
- MVPŒoŒ±’lŽæ“¾
- get MVP experience.
-R 010c <ID>.l
- MVPƒLƒƒƒ‰•\Ž¦
- display MVP character.
-R 010e <skill ID>.w <lv>.w <sp>.w <range>.w <up>.B
- ƒXƒLƒ‹î•ñXVBsp‚Í–¢Žg—p?
- update skill sinformation. sp is unused?
-R 010f <len>.w {<skill ID>.w <target type>.w ?.w <lv>.w <sp>.w <range>.w <skill name>.24B <up>.B}.37B*
- ƒXƒLƒ‹î•ñ‚̉òBskill name‚͈ꕔ—¬‚ê‚Ä—ˆ‚È‚¢•¨‚ª‚ ‚é„AL_PNEUMA,PR_SLOWPOISON“™
- bunch of information about skill. some of skill name is not send (AL_PNEUMA, PR_SLOWPOISON etc).
- target type‚Í0-ƒpƒbƒVƒuA1-“GA2-êŠA4-‘¦Žž”­“®A16-–¡•û
- target type is 0 for novice skill, 1 for enemy, 2 for place, 4 for immediate invoke, 16 for party member
- lv=0 up=0‚Ìꇂ̓ŠƒXƒg‚Éo‚µ‚Ä‚È‚¢?
- it will not be on list when lv=0 up=0?
-R 0110 <skill ID>.w <basic type>.w ?.w <fail>.B <type>.B
- fail=00‚ÌŽž‚ɃXƒLƒ‹—˜—pŽ¸”s?
- fail to use skill when fail=00?
- type 00:basic type‚Ì•û 01:SP•s‘« 02:HP•s‘« 03:memo–³‚µ 04:delay’†
- type 00:basic type 01:lack of SP, 02:lack of HP, 03:no memo, 04:in delay
- 05:‚¨‹à–³‚µ(‚ß‚Ü[) 06:•Ší‚ª‚æ‚낵‚­‚È‚¢ 07:ÔƒWƒFƒ€–³‚µ 08:ƒWƒFƒ€–³‚µ 09:“ä
- 05:lack of money, 06:weapon does not satisfy, 07:no red jewel, 08:no blue jewel, 09:unkown
- basic type 00:Žæ‚èˆø‚« 01:emotion 02:À‚è 03:ƒ`ƒƒƒbƒg 04:ƒp[ƒeƒB
- basic type 00:trade 01:emotion 02:sit down, 03:chat, 04:party
- 05:shout? 06:PK 07:ƒ}ƒi[ƒ|ƒCƒ“ƒg
- 05:shout? 06:PK, 07:manner point
-R 0111 <skill ID>.w <target type>.w ?.w <lv>.w <sp>.w <range>.w <skill name>.24B <up>.B
- 010f‚Ì1‚•ªBƒÀ2‚¾‚Æ–¢Žg—p?
- just one skill information. not used in beta2?
-S 0112 <skill ID>.w
- ƒXƒLƒ‹lvup—v‹
- request to skill level up.
-S 0113 <level>.w <skill ID>.w <ID>.l
- ID‚ðƒ^[ƒQƒbƒg‚Éskill‚ðŽg‚¤
- use skill to the target.
-R 0114 <skill ID>.w <src ID>.l <dst ID>.l <server tick>.l <src speed>.l <dst speed>.l <param1>.w <param2>.w <param3>.w <type>.B
- UŒ‚ŒnƒXƒLƒ‹ƒGƒtƒFƒNƒg@
- skill effect for attack.
- type=04 ‰Î•Ç‚ÅŠÏ‘ª type=06‚Æ‚Ù‚Ú“¯‚¶?
- rtpe=04 observed when firewall was used. is that the almost same as type=06?
- type=06 ’P”­‚à‚Ì? param1‚̓_ƒ[ƒW‡ŒvAparam2‚ÍlevelAparam3‚Í1ŒÅ’è‚Æ—\‘z
- type=06 skill for just one hit? param1 is total damage, param2 is level, param3 will always stay 1.
- type=08 ˜A‘Å‚à‚Ì? param1‚̓_ƒ[ƒW‡ŒvAparam2‚ÍlevelAparam3‚Í•ªŠ„”‚Æ—\‘z
- type=08 skill for multiple hits? param1 is totak damage, param2 is level, param3 will be a number of hit.
-R 0115 <skill ID>.w <src ID>.l <dst ID>.l <server tick>.l <src speed>.l <dst speed>.l <X>.w <Y>.w <param1>.w <param2>.w <param3>.w <type>.B
- ’e‚«”ò‚΂µ—L‚èUŒ‚ŒnƒXƒLƒ‹ƒGƒtƒFƒNƒg
- blow up type skill effect.
- type=05 ƒ_ƒ[ƒW&’e‚«”ò‚΂µBparam1‚̓_ƒ[ƒW‡ŒvAparam2‚ÍlevelAparam3‚Í•ªŠ„”‚Æ—\‘z
- type=05 damage and blow up. param1 is total damage, param2 is level, param3 will be a number of hit.
- type=06 ”šS’n? ­‚È‚­‚Æ‚àparam1‚̓Sƒ~‚Ì–Í—l
- type=06 a point of explorsion? param1 is unused at least.
-S 0116 <level>.w <skill ID>.w <X>.w <Y>.w
- (X,Y)‚ðƒ^[ƒQƒbƒg‚Éskill‚ðŽg‚¤
- use skill at (X,Y).
-R 0117 <skill ID>.w <src ID>.l <val>.w <X>.w <Y>.w <server tick>.l
- ꊑŠŽè‚̃XƒLƒ‹ƒGƒtƒFƒNƒg•\Ž¦Bval‚̓Œƒxƒ‹‚©Aˆê•”ŒÅ‚³?(•X•Ç)
- display skill effect at (X,Y). is val level? or how hard it is (like ice wall)?
-S 0118
- UŒ‚ƒLƒƒƒ“ƒZƒ‹
- cancel to attack
-R 0119 <ID>.l <param1>.w <param2>.w <param3>.w ?.B
- Œ©‚½–Ú•ÏX
- change looks.
- param1=02 ƒtƒƒXƒgƒ_ƒCƒo‚Å“€‚è’Ђ¯?
- param1=02 flozen diva?
- param2=01 “Å?
- param2=01 poison?
- param2=20 ANGELUSó‘Ô?
- param2=20 ANGELUS?
- param3=01 ƒTƒCƒg‚©ƒ‹ƒƒbƒ`?
- param3-01 site or ruwatch? (i dont know skill names in english :()
- param3=0b ƒnƒCƒfƒBƒ“ƒOó‘Ô?
- param3=0b hiding?
- param3=0b ƒNƒ[ƒLƒ“ƒOó‘Ô?
- param3-0b cloking?
- param3=0d ƒJ[ƒg•t‚«
- param3=0d with cart
- param3=0e ‘é•t‚«
- param3-0e with hawk
- param3=0f ƒyƒRƒyƒRæ‚è
- param3=0f with pekopeko
-
-R 011a <skill ID>.w <val>.w <dst ID>.l <src ID>.l <fail>.B
- ”ñƒ_ƒ[ƒWŒnƒXƒLƒ‹•\Ž¦Bƒq[ƒ‹‚Ìê‡val‚͉ñ•œ—Ê
- display no-damage skill effect. val is an amount of HP cured when it's heal.
- fail=00‚Ìꇎ¸”s‚Û‚¢‚ªAƒXƒ`[ƒ‹ˆÈŠO‚Å‚ÍŒ©‚½Ž––³‚µ
- fail=00 must mean fail, but i havent seend it except steal.
-S 011b <skill ID>.w <map name>.16B
- 011c‚ւ̉ž“šBŽg‚í‚È‚¢ê‡"cancel"‚ð‘—‚é
- response to packet number 011c. send "cancel" for no-use.
-R 011c <skill ID>.w <map1>.16B <map2>.16B <map3>.16B <map4>.16B
- ƒeƒŒƒ|/ƒ|ƒ^‚ÌꊑI‘ðB
- select place for teleport or portal warp.
- ƒeƒŒƒ|‚Ìê‡ARandom/ƒZ[ƒuêŠAƒ|ƒ^‚Ìê‡AƒZ[ƒuêŠ/memo1/memo2/memo3‚Æ‚È‚é
- ƒ}ƒbƒv–¼‚Ì‚Ý‘—‚ç‚ê‚é
- in case of teleport, Ramdom/save point will be sent,
- in case of portal warp, save point/memo1/memo2/memo3 will be sent.
- only map name wil be sent.
-S 011d
- Œ»Ý‹‚éŠ‚ðƒƒ‚—v‹
- request to take a memo at this point.
-R 011e <fail>.B
- fail=00 ƒƒ‚¬Œ÷
- success to take memo.
- fail=01 ƒƒ‚Ž¸”s
- fail to take memo.
-R 011f <dst ID>.l <src ID>.l <X>.w <Y>.w <type>.B <fail>.B
- ƒXƒLƒ‹Œø”\’nì¬
- create ground effect for skills like firewall.
- type 7e:SW 7f:‰Î•Ç 80:ƒ|ƒ^”­“®’† 81:ƒ|ƒ^”­“®‘O 83:ƒTƒ“ƒN 85:ƒtƒjƒ…[ƒ}
- type 7e:SW, 7f:firewall, 80:portal warp(invoking), 81:portal warp(before invoking), 83:sank, 85:funewma( i really don know skill names :()
- 86:ƒo[ƒ~ƒŠƒIƒ“ 8c:ƒg[ƒL[ƒ{ƒbƒNƒX”­“®Žž 8d:•X•Ç 8e:‚­‚ ‚®‚Ü‚¢‚â[ 91:‚ ‚ñ‚­‚é‚·‚Ë‚ 
- 86: bermillion, 8c:talky box(invoked), 8d:frost diva, 8e:kuagumire, 91:uncle snear
- 93:‚ç‚ñ‚Ç‚Ü‚¢‚ñ 97:?? 99:ƒg[ƒL[ƒ{ƒbƒNƒX”­“®‘O
- 93:land mine, 97:??, 99:talky box(befor invoked)
- ‘¼î•ñ‹‚Þ
-R 0120 <ID>.l
- ƒXƒLƒ‹Œø”\’nÁ‹Ž
- delete ground effect.
-R 0121 <num>.w <num limit>.w <weight>.l <weight limit>l
- ƒJ[ƒg‚ÌŽí—Þ&d‚³‚ÌŒ»Ý’l&ãŒÀ
- kind of cart, weight and max weight.
-R 0122 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <equip type>.w <equip point>.w <attribute?>.B <refine>.B <card>.4w}.20B*
- ƒJ[ƒg“àƒAƒCƒeƒ€B‘•”õ•i
- equipments in cart.
-R 0123 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B}.10B*
- ƒJ[ƒg“àƒAƒCƒeƒ€BÁ–Õ•i/ŽûW•i
- cunsumptive and collector items in cart.
-R 0124 <index>.w <amount>.l <item ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w
- ƒJ[ƒg‚ɃAƒCƒeƒ€’ljÁ
- add item to cart.
-R 0125 <index>.w <amount>.l
- ƒJ[ƒg‚©‚çƒAƒCƒeƒ€íœ
- delete item in cart.
-S 0126 <index>.w <amount>.l
- ƒJ[ƒg‚ɃAƒCƒeƒ€‚ð“ü‚ê‚é
- put item to cart.
-S 0127 <index>.w <amount>.l
- ƒJ[ƒg‚©‚çƒAƒCƒeƒ€‚ðŽæ‚èo‚·
- take out item from cart.
-S 0128 <index>.w <amount>.l
- ƒJƒvƒ‰‚³‚ñ‚©‚çƒJ[ƒg‚ÖƒAƒCƒeƒ€‚ðˆÚ‚·
- move item from capra's warehouse to cart.
-S 0129 <index>.w <amount>.l
- ƒJ[ƒg‚©‚çƒJƒvƒ‰‚³‚ñ‚ÖƒAƒCƒeƒ€‚ðˆÚ‚·
- move item from cart to capra's warehouse.
-R 012c <fail>.B
- fail=00 d—ʧŒÀ‚ð‰z‚¦‚ăJ[ƒg‚ɃAƒCƒeƒ€‚ð“ü‚ê‚ç‚ê‚Ü‚¹‚ñ‚Å‚µ‚½?
- fail=00 over the weight and could not add item to cart.
-R 012d <num>.w
- ˜I“XŠJÝBƒAƒCƒeƒ€ƒŠƒXƒg—v‹Bnum‚Í’u‚¯‚éÅ‘å”
- create shop (marchant skill). request item list. num is a number of kind of item that can be sell.
-S 012e
- ˜I“X•Â½
- close shop.
-S 012f <len>.w <message>.80B {<index>.w <amount>.w <value>.l}.8B*
- ˜I“XŠJÝA˜I“X–¼&ƒAƒCƒeƒ€,’l’iƒŠƒXƒg
- create shop, shop name, item, price list.
-S 0130 <ID>.l
- ˜I“XƒAƒCƒeƒ€ƒŠƒXƒg—v‹
- request item list for shop( not npc shop).
-R 0131 <ID>.l <message>.80B
- ˜I“XŠÅ”•\Ž¦
- display shop name tag.
-R 0132 <ID>.l
- ˜I“XŠÅ”ÂÁ‹Ž
- delete shop name tag.
-R 0133 <len>.w <ID>.l {<value>.l <amount>.w <index>.w <type>.B <item ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w}.22B
- ˜I“XƒAƒCƒeƒ€ƒŠƒXƒg
- item list for shop(not npc shop).
-S 0134 <len>.w <ID>.l {<amount>.w <index>.w}.4B*
- ˜I“XƒAƒCƒeƒ€w“ü
- buy item from shop (not npc).
-R 0135 <index>.w <amount>.w <fail>.B
- ˜I“XƒAƒCƒeƒ€w“üŽ¸”sBfail‚ÍŒ´ˆö
- fail to buy item from non npc shop. fail tells you reasons.
-R 0136 <len>.w <ID>.l {<value>.l <index>.w <amount>.w <type>.B <item ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w}.22B*
- ˜I“XŠJݬŒ÷
- success to create non-npc-shop.
-R 0137 <index>.w <amount>.w
- ˜I“XƒAƒCƒeƒ€”Ì”„•ñ
- report of selling item.
-R 0139 <ID>.l <X>.w <Y>.w <X2>.w <Y2>.w <range>.w
- ID‚Ì“G‚Í(X,Y)‚É‹‚ÄŽ©•ª‚Í(X2,Y2)‚É‹‚é‚Ì‚ÅUŒ‚‚ª“Í‚«‚Ü‚¹‚ñ‚Å‚µ‚½
- the enemy at(X,Y) was too far to attack from my coordinate (X2,Y2).
- UŒ‚‰Â”\‹——£‚Írange‚È‚Ì‚ÅA‹ßŠñ‚Á‚ĉº‚³‚¢?
- possible range to attack enemy is "range", so be closer?
-R 013a <val>.w
- UŒ‚ŽË’ö
- attack range.
-R 013b <type>.w
- ŠeŽíƒƒbƒZ[ƒW•\Ž¦B3=–‘•”õ‚Å‚«‚Ü‚µ‚½
- various message. 3="arrow has been equiped"
-R 013c <ID>.w
- ‘•”õ‚³‚ꂽ–î‚ÌItemIDB0‚ÅA–¢‘•”õó‘ÔB
- item id of equiped arrow. 0 means no arrow is equiped.
-R 013d <type>.w <val>.w
- HP‰ñ•œƒXƒLƒ‹/SP‰ñ•œƒXƒLƒ‹‚É‚æ‚é‰ñ•œ
- recovery of HP/SP by HP/SP recovery skill.
- type=5‚È‚çHP type=7‚È‚çSP
- type=5 is HP, type=7 is SP.
-R 013c <index>.w
-@@ ‘•”õ‚µ‚Ä‚¢‚é–î
- id of equiped arrow.
-
-R 013e <src ID>.l <dst ID>.l <X>.w <Y>.w <lv?>.w ?.w <wait>.l
- ƒXƒLƒ‹‰r¥’†BPC/NPC‚ª‘ŠŽè‚ÌꇂÍ(X,Y)‚Í0Bꊂªƒ^[ƒQƒbƒg‚ÌꇂÍdst ID‚Í0‚É‚È‚é
- skill has been casting. (X,Y) will be 0 when target is player character or NPC. dst ID will be 0 when target is place.
-
- 0x013e ‚Ì offset+16(dword) ‚̓XƒLƒ‹‘®«‚Å‚·(’²¸Ï)B
- offset+16(dword) in packet number 0x013e is skill attribute.
-
- 00:–³ 01:… 02:’n 03:‰Î 04:•— 05:“Å 06:¹ 07:ˆÃ 08:”O 09:Ž€
- 00:none, 01:water, 02:ground, 03:fire, 04:wind, 05:poinson, 06:holly, 07:dark, 08:spirit(i don know how to translate.), 09:death
- «—ˆ“I‚ÉA‰r¥’†‚̃GƒtƒFƒNƒg‚ª‘®«‚Å•Ï‚í‚é‚Ì‚©‚ÆB
- casting effect might differ by skill attribute in the future.
-
- wait‚Íms’PˆÊ‚©‚È?
- wait in mili second?
-R 0141 <type>.l <base>.l <bonus>.l
- ƒXƒe[ƒ^ƒXî•ñBtype‚Í0d‚©‚ç12‚ª‡‚ÉSTR,AGI,VIT,INT,DEX,LUK‚ɑΉž
- information for status. type is 0d-12 for STR,AGI,VIT,INT,DEX,LUK.
- base+bonus‚Æ•\Ž¦‚³‚ê‚é
- base+bonus will be displayed.
-R 0144 <ID>.l <type>.l <X>.l <Y>.l <point ID>.B <color>.3B ?.B
- ˆÄ“àˆõ—pAƒ}ƒbƒvãƒAƒCƒRƒ“•\Ž¦ƒpƒPƒbƒg
- for guid npc, packet for display icon on map.
- type=1 ƒAƒCƒRƒ“‚ð•\Ž¦
- display icon.
- type=2 ƒAƒCƒRƒ“‚ðÁ‹Ž
- delete icon.
-R 0145 <file name>.16B <type>.B
- (¡‚ÌŠ)ƒJƒvƒ‰‚³‚ñcutin•\Ž¦
- display capra picture(at this time).
- type=02 •\Ž¦
- display.
- type=ff Á‹Ž
- delete.
-S 0146 <ID>.l
- ID‚ÌNPC‚Ƃ̉ï˜bBCLOSEƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚½Back–³‚µ‚ÉNPCƒƒbƒZ[ƒWƒEƒBƒ“ƒh‚𓯎ž‚ɕ‚¶‚é
- talk to npc with ID. Clicked CLOSE button.
-R 0147 <skill ID>.w <target type>.w ?.w <lv>.w <sp>.w <range>.w <skill name>.24B <up>.B
- ƒAƒCƒeƒ€—˜—p‚ÌŒ‹‰ÊˆêŽž“I‚É“¾‚ç‚ꂽƒXƒLƒ‹î•ñ
- effect for skill by using item.
-S 0148 <ID>.l
- ƒŠƒUƒŒƒNƒVƒ‡ƒ“‚Ì‘ŠŽèŒˆ‚ß? @ ƒÀ1
- decide target of a skill rezarection? in beta1.
-S 0149 <ID>.l <type>.B
- ID‚Ƀ}ƒi[ƒ|ƒCƒ“ƒg‚ð—^‚¦‚éBtype=00 ƒvƒ‰ƒX type=01 ƒ}ƒCƒiƒX
- give manner point to ID. type=00 is plus, type=01 is minus.
-R 014a <fail>.l
- ƒ}ƒi[ƒ|ƒCƒ“ƒg‚ð—^‚¦‚½Œ‹‰ÊBfail=0 ¬Œ÷ fail=1 Ž¸”s
- result of giving manner point. fail=0 is success, fail=1 is fail.
-R 014b <type>.B <nick>.24B
- ƒ}ƒi[ƒ|ƒCƒ“ƒg‚ð–á‚Á‚½Btype=00 ƒvƒ‰ƒX type=01 ƒ}ƒCƒiƒX
- get manner point. type=00 is plus, type-01 is minus.
-R 014C <len>.w (<type>.l <guildID>.l <guild name>.24B).*
- “¯–¿¥“G‘΃Mƒ‹ƒh•\Ž¦
- display alliance and opposition guild.
- type=0 “¯–¿
- alliance.
- type=1 “G‘Î
- opposition.
-S 014D
-@@ ƒMƒ‹ƒhî•ñ•\Ž¦ŠJŽnH
- start of guild information?
-R 014E <type?>.l
-@@ type=0x57 ˆê”ʃMƒ‹ƒh’cˆõ
- normal guild member.
-@@ type=0xD7 ƒMƒ‹ƒhƒ}ƒXƒ^[
- guild master.
-S 014F <page>.l
-@@ ƒMƒ‹ƒh•\Ž¦ƒ^ƒu‘—M
- send packet for guild "DISPLAY" tab.
-R 0150 <guildID>.l <guildLv>.l <connum>.l <’èˆõ>.l <Avl.lvl>.l ?.l <next_exp>.l ?.16B <guild name>.24B <guild master>.24B ?.16B
-@@ ƒMƒ‹ƒhî•ñ
- guild info.
-S 0151 <guild ID>.l
- ƒGƒ“ƒuƒŒƒ€—v‹
- request for guild emblem.
-R 0152 <len>.w <guild ID>.l <emblem ID?>.l <emblem data>.?B
- ƒGƒ“ƒuƒŒƒ€ƒCƒ[ƒW‘—•t
- return emblem image.
-R 0154 <len>.w {<accID>.l <charactorID>.l <”¯Œ^>.w <”¯‚ÌF>.w <«•ÊH>.w <job>.w <lvl?>.w <ã”[ŒoŒ±’l>.l <online>.l <Position>.l ?.50B <nick>.24B}*
- ƒMƒ‹ƒhƒƒ“ƒoƒŠƒXƒg?
- guild member list?
-S 0159 <guildID>.l <accID>.l <charID>.l <mess>.40B
-@@ ƒMƒ‹ƒh’E‘Þ‘—M
- send packet for leaving guild.
-R 015A <nic>.24B <mess>.40B
-@@ ƒMƒ‹ƒh’E‘Þ(‘Sˆõ)ŽóM
- receive packet for leaving guild(all members).
-S 015B <guildID>.l <accID>.l <charID>.l <mess>.40B
-@@ ƒMƒ‹ƒh’Ç•ú‘—M
- send packet for kicking member out of the guild.
-R 015C <nick>.24B <mess>.40B <ƒAƒJƒEƒ“ƒg‚h‚c>.24B
-@@ ƒMƒ‹ƒh’Ç•úi‘SˆõjŽóM
- receive packet for kicking member out of the guild.(all member)
-R 0163 <len>.w <nick>.24B <accountID>.24B <kicking reason>.40B
-
-S 0165 <myaccID>.l <guild name>.24B
-@@ ƒMƒ‹ƒhì¬
- create guild
-R 0166 <len>.w ?.28B*
- –ðE–¼ƒŠƒXƒg?
- list for roll of members?
-R 0167 <type>.b
- ƒMƒ‹ƒh쬇”Û
- response to vreating guild.
- type = 0 ƒMƒ‹ƒh쬬Œ÷
- success.
- type = 2 “¯–¼‚̃Mƒ‹ƒh‚ª‚ ‚é
- there is a guild with the same name.
-S 0168 <TargetAccID>.l <sourceAccID>.l <myCharactorID>.l
-@@ ƒMƒ‹ƒhŠ©—U
- invite to the guild.
-R 0169 <type>.B
-@@ ƒMƒ‹ƒhŠ©—U‹‘”Û‚³‚ꂽ
- invitation denied.
-R 016A <guild ID>.l <guild name>.24B
-@@ ƒMƒ‹ƒhŠ©—U‚³‚ꂽ
- invited to the guild.
-S 016B <guild ID>.l <type>.l
-@@ ƒMƒ‹ƒhŠ©—U•ÔM
- response to invitaion for joining to guild.
-@@ type=0 ‹‘”Û‚·‚é
- deny.
-@@ type=1 ‹–‘ø‚·‚é
- OK.
-R 016c <guild ID>.l ?.13B <guild name>.24B
- loginŽžƒMƒ‹ƒhî•ñ
- guild information when loged in.
-R 016d <ID>.l <charactor ID>.l <online>.l
- ƒMƒ‹ƒhƒƒ“ƒo‚ªlogin‚µ‚½”²‚¯‚½“™
- information about guild member loged in or loged out etc.
-R 016f <message>.180B
- ƒMƒ‹ƒh‚¨‘è–Ú?
- guild message?
-S 016E <guildID>.l <mess1>.60B <mess2>.120B
-@@ ƒMƒ‹ƒh’mÝ’è
- set guild announcement.
-R 016F <mess1>.60B <mess2>.120B
-@@ ƒMƒ‹ƒh’m
- guild announcement.
-S 0170 <TargetAccID>.l <sourceAccID>.l <myCharactorID>.l
-@@ “¯–¿—v¿Š©—U
- invite the guild to be alliance.
-R 0171 <SorceAccID>.l <guild name>.24B
-@@ “¯–¿—v¿Š©—U‚³‚ꂽ
- invited to be a alliance.
-S 0172 <SorceAccID>.l <type>.l
-@@ “¯–¿—v¿•ÔM
- response for invitiation to be alliance.
-@@ type=0 ‹‘”Û‚·‚é
- deny.
-@@ type=1 ‹–‘ø‚·‚é
- OK.
-R 0173 <type>.B
- type = 0 ‚·‚Å‚É“¯–¿ŠÖŒW
- the guild is already alliance.
-@@ type = 1 “¯–¿‹‘”Û‚³‚ꂽ
- denied to be alliance.
-@@ type = 2 “¯–¿¬Œ÷
- success to invite to be alliance.
-R 0177 <len>.w <index>.w*
- ŠÓ’è‰Â”\ƒAƒCƒeƒ€ƒŠƒXƒg
- list of items that need to be judge( i mean unkown items.)
-S 0178 <index>.w
- ƒAƒCƒeƒ€ŠÓ’è
- judge item.
-R 0179 <index>.w <fail>.B
- ƒAƒCƒeƒ€ŠÓ’茋‰ÊBfail=00‚ŬŒ÷Bfail=01‚Á‚Ä‚ ‚é‚Ì‚©?
- response to judging item. fail=00 is success. is there fail=01?
-S 017A <index>.w
-@@ ƒJ[ƒh‚vƒNƒŠƒbƒN
- card is double clicked.
-R 017B <len>.w {<index>.w}*
-@@ ƒJ[ƒh‘}“ü‚Å‚«‚éƒAƒCƒeƒ€Index”Ô†
- item index number for items that can be inserted card.
-S 017C <SrcIndex>.w <DescIndex>.w
-@@ Src ‚ðDesc‚É“Ë‚Áž‚Þ
- insert Src to Desc.
-R 017D <DescIndex>.w <SrcIndex>.w <fail>.b
-@@ Src ‚ðDesc‚É“Ë‚Áž‚Ý<fail> 0=¬Œ÷ 1=Ž¸”sH
- response to insert Src to Desc. fail=0 is success, fail=01 is fail?
-S 017e <len>.w <message>.?B
- ƒMƒ‹ƒh“àƒƒbƒZ[ƒW”­Œ¾
- send speach for guild members.
-R 017f <len>.w <message>.?B
- ƒMƒ‹ƒh“àƒƒbƒZ[ƒWŽóM
- receive guild message.
-R 0182 <accID>.l <charactorID>.l <hair type>.w <hair color>.w <sex?>.w <job>.w <lvl?>.w <experience?>.l <online>.l <Position>.l ?.50B <nick>.24B
-
-R 0187 <account ID>.l
- aliveM†?
- alive signal?
-R 0188 <fail?>.w <index>.w <val>.w
- •Ší¸˜BBŒ‹‰Ê+val•Ší‚É
- weapon refiling. result+val to weapon
-R 0189 ?.w
- “äBƒeƒŒƒ|Ž¸”s?
- unknown. fail to teleport?
-S 018a ?.w
- ƒQ[ƒ€I—¹
- game quited.
-R 018b <fail>.w
- ƒQ[ƒ€I—¹/ƒLƒƒƒ‰ƒZƒŒ‰ž“šBfail=0¬Œ÷Bfail=1Ž¸”s?
- game quited/character select sever response. fail=0 is success, fail=1 is fail?
-R 018C <MonsID>.w <class>.w <size>.w <HP>.w <?>.w <deffence>.w <kind of monster>.w <magic deffence>.w <attribute>.w <anti-attribute?>.9b
- wiz‚Ì“G‚̃Zƒ“ƒXŒ‹‰Ê
- response to sense skill by wizard.
- 0 ¬Œ^
- small
- 1 ’†Œ^
- middle
- 2 ‘åŒ^
- big
-R 0191 <ID>.l <message>.80B
- ƒg[ƒL[ƒ{ƒbƒNƒX‚̃ƒbƒZ[ƒW
- message of talky box.
-S 0193 <ID>.l
- ƒMƒ‹ƒhƒƒ“ƒo–¼‘Oˆø‚«?
- name search for guild member?
-R 0194 <ID>.l <nick>.24B
- ƒMƒ‹ƒhƒƒ“ƒo–¼‘Oˆø‚«‰ž“š?
- response to name search for guild member?
-R 0195 <ID>.l <nick>.24B <party name>.24B <guild name>.24B <class name>.24B
- ƒMƒ‹ƒhŠ‘®PC‚ÌꇂÌ0094•Ô“š
- response to packet number 0094 that if the player joined guild.
-R 0196 <type>.w <ID>.l
- ‘‹­ŒnƒXƒLƒ‹Žg—pŽž‚̃ƒbƒZ[ƒWFXBID‚Ítarget‚ÆŽv‚í‚ê‚邪Ž©•ª‘ŠŽè‚Ì‚Ý‚µ‚©—ˆ‚È‚¢?
- various message of skill that effect status. ID must be target, but only m ID and other's ID are sent?
- type=00 2HQ•t—^uUŒ‚‘¬“x‚ª‘‰Á‚µ‚Ü‚µ‚½Bv
- 2HQ casted. "attack speed insreased."
- type=01 2HQ‰ðœuUŒ‚‘¬“x‚ªŒ¸­‚µ‚Ü‚µ‚½Bv
- 2HQ ended. "attack speed decreased."
- type=02 IMPOSITIO•t—^u•Ší‚ÌUŒ‚—Í‚ª‘‰Á‚µ‚Ü‚µ‚½Bv
- IMPOSITIO casted. "power of the weapon increased."
- type=03 IMPOSITIO‰ðœu•Ší‚ÌUŒ‚—Í‚ªŒ¸­‚µ‚Ü‚µ‚½Bv
- IMPOSITIO ened. "power of the weapon decreased."
- type=04 uƒXƒLƒ‹Žg—pƒfƒBƒŒƒC‚ªŒ¸­‚µ‚Ü‚µ‚½Bv
- "casting delay become short"
- type=05 uƒXƒLƒ‹Žg—pƒfƒBƒŒƒC‚ªŒ³‚É–ß‚è‚Ü‚µ‚½Bv
- "casting delay return to defailt"
- type=06 u•Ší‚É“Å‘®«‚ª•t—^‚³‚ê‚Ü‚µ‚½Bv
- "attribute of poison is given to the weapon"
- type=07 ASPERSIO•t—^u•Ší‚ɹ‘®«‚ª•t—^‚³‚ê‚Ü‚µ‚½Bv
- ASPERSIO casted. "attribute of holly is given to the weapon"
- type=08 ASPERSIO‰ðœu•Ší‚Ì‘®«‚ªŒ³‚É–ß‚è‚Ü‚µ‚½Bv
- ASPERSIO ended. "attribute of weapon return to default"
- type=09 u–h‹ï‚ɹ‘®«‚ª•t—^‚³‚ê‚Ü‚µ‚½Bv
- "armor got holly attribute"
- type=0a u–h‹ï‚Ì‘®«‚ªŒ³‚É–ß‚è‚Ü‚µ‚½Bv
- "armor's attribute return to default"
- type=0b KYRIE•t—^uƒoƒŠƒAó‘Ô‚É‚È‚è‚Ü‚µ‚½Bv
- KYRIE casted. "barrier"
- type=0c KYRIE‰ðœuƒoƒŠƒAó‘Ô‚ª‰ðœ‚³‚ê‚Ü‚µ‚½Bv
- KYRIE ended. "barrier end"
- type=0d uƒEƒFƒ|ƒ“ƒp[ƒtƒFƒNƒVƒ‡ƒ“ƒ‚[ƒh‚É‚È‚è‚Ü‚µ‚½Bv
- "became weapon ferfection mode"
- type=0e uƒEƒFƒ|ƒ“ƒp[ƒtƒFƒNƒVƒ‡ƒ“ƒ‚[ƒh‚ª‰ðœ‚³‚ê‚Ü‚µ‚½Bv
- "end weapon perfection mode"
- type=0f uƒI[ƒo[ƒgƒ‰ƒXƒgƒ‚[ƒh‚É‚È‚è‚Ü‚µ‚½Bv
- "became over trust mode"
- type=10 uƒI[ƒo[ƒgƒ‰ƒXƒgƒ‚[ƒh‚ª‰ðœ‚³‚ê‚Ü‚µ‚½Bv
- "end over trust mode"
- type=11 uƒ}ƒLƒVƒ}ƒCƒYƒpƒ[ƒ‚[ƒh‚É‚È‚è‚Ü‚µ‚½Bv
- "became maximize power mode"
- type=12 uƒ}ƒLƒVƒ}ƒCƒYƒpƒ[ƒ‚[ƒh‚ª‰ðœ‚³‚ê‚Ü‚µ‚½Bv
- "end maximize power mode"
-S 0197 <type>.w
- type=0 /resetstate
- type=1 /resetskill
- Œø”\‚Í–³‚µ?
- no effect?
-R 019b <ID>.l <type>.l
- ‘¼l‚Ìlvup‚â•Ší¸˜B“™‚Ì•\Ž¦?
- display other's level up effect or weapon refiling?
- type=0 base lvup?
- type=1 job lvup?
- type=3 •Ší¸˜B
- weapon refiling
-R 0199 <type>.w
-@@ type=1 pvpƒ‚[ƒhŠJŽn?
- start pvp mode?
-R 019a <ID>.l <rank>.l <num>.l
-@@ pvp‡ˆÊ rank/num
- pvp rank rank/num
-R 019b <ID>.l <type>.l
- ‘¼l‚Ìlvup‚â•Ší¸˜B“™‚Ì•\Ž¦?
- type=0 base lvup?
- type=1 job lvup?
- type=2 •Ší¸˜BŽ¸”s
- type=3 •Ší¸˜B¬Œ÷
-
-R 019d <?>.4B
- GMƒRƒ}ƒ“ƒh/hide
-
-S 00CC <ID>.l
-@ GM—p‰EƒNƒŠƒbƒNƒƒjƒ…[uinamejŽg—pŽÒ‹­§I—¹vŽg—p
- use special right click menu for GM "(name) force to quit"
-
-S 0149 <ID>.l <type>.B <time>.w
-@ GM—p‰EƒNƒŠƒbƒNƒƒjƒ…[uƒ`ƒƒƒbƒg‹ÖŽ~ŽžŠÔ‚ð‰º‚°‚éi‰ð‚¯‚éjvŽg—p ¨ type=00
- use special right click menu for GM "decrease prohibited time to create chat room". type=00
-@ GM—p‰EƒNƒŠƒbƒNƒƒjƒ…[uƒ`ƒƒƒbƒg‹ÖŽ~ŽžŠÔ‚ðã‚°‚éiŠ|‚¯‚éjvŽg—p ¨ type=01
- use special right click menu for GM "increase prohibited time to create chat room". type=01
- @time‚Í•ª’PˆÊ‚Å‚·iŠm‚©
- unit is minute (maybe
-
-R 019e
- •ßŠlƒ‚ƒ“ƒXƒ^[Œˆ‚ß
-S 019f <ID>.l
- •ßŠlƒ‚ƒ“ƒXƒ^[Žw’è
-R 01a0 <fail>.B
- •ßŠl”»’è
- fail=01‚ŬŒ÷A00‚ÅŽ¸”s
-S 01a1 <param>.1B
- <param>
- 0x00Fƒyƒbƒgó‘Ô•\Ž¦
- 0x01F‰a‚ð—^‚¦‚é
- 0x02FƒpƒtƒH[ƒ}ƒ“ƒX
- 0x03F—‘‚É–ß‚·
- 0x04FƒAƒNƒZƒTƒŠ‰ðœ
-R 01a2 <pet name>.24B <name flag>.B <lv>.w <hungry>.w <friendly>.w <accessory>.w
- ƒyƒbƒg‚Ìó‘Ô
- name flag:00=–¼‘O–¢Ý’è 01=–¼‘OÝ’èÏ‚Ý(•ÏX•s‰Â)
- lv=ƒyƒbƒg‚̃Œƒxƒ‹Ahungry=–ž• “x(0~100)Afriendly=e–§“x(‰Šú’l250?)Aaccessory=ƒAƒNƒZƒTƒŠ‚ÌItemID
-R 01a3 <fail>.B <itemID>.w
- <fail>
- 0x00F‰a‚â‚莸”s
- 0x01F‰a‚â‚謌÷
-R 01a4 <type>.B <ID>.l <val>.l
- ƒyƒbƒgŠÖ˜A’Ê’m
- type=00,val=00 ƒyƒbƒg›z‰»Žž‚É‘—‚ç‚ê‚Ä‚­‚éBƒyƒbƒg”FŽ¯—pH
- type=01 e–§“x•Ï‰»
- type=02 –ž• “x•Ï‰»
- type=03 ƒAƒNƒZƒTƒŠ•Ï‰»(0‚Å–¢‘•”õ)
- type=04 ƒpƒtƒH[ƒ}ƒ“ƒX Šm”F‚³‚ꂽval=1~3
- (4‚̓XƒyƒVƒƒƒ‹ƒpƒtƒH[ƒ}ƒ“ƒXH)
- type=05 HŠm”F‚³‚ꂽval=0x14
-S 01a5 <pet name>.24B
- ƒyƒbƒg‚Ì–¼‘OŒˆ‚ß
-R 01a6 <len>.w <index>.w*
- ƒyƒbƒg‚Ì—‘ƒŠƒXƒg
-S 01a7 <index>.w
- ƒyƒbƒg‚Ì—‘ƒŠƒXƒg‚ª‘I‘ð‚³‚ê‚½
-S 01a9 <emotion>.l
- ƒyƒbƒgƒGƒ‚[ƒVƒ‡ƒ“‘—M
-R 01aa <ID>.l <emotion>.l
- ƒyƒbƒgƒGƒ‚[ƒVƒ‡ƒ“ŽóM
- <emotion>
- 33ˆÈ‰º‚Ì‚Æ‚«FƒGƒ‚[ƒVƒ‡ƒ“
- 34ˆÈã‚Ì‚Æ‚«F”­Œ¾ƒe[ƒuƒ‹H
-R 01ac <object id>.l
- ƒAƒ“ƒNƒ‹‚Ì”­“®(‚Ý’u)Žž‚Ì‚Ý–ˆ‰ñoŒ»(‹@”\‚Í“ä)
-R 01ad <len>.l <item>.w
- –îì‚è‚Ì쬉”\ITEM•\ŽóM
-S 01ae <itemID>.w
- –îì‚è‚ÅŽg‚¤Þ—¿‘—M
-S 01af <type>.w
- ƒ`ƒFƒ“ƒWƒJ[ƒgiƒJ[ƒg‘I‘ðj
- type=1 ƒm[ƒ}ƒ‹ƒJ[ƒg
-R 01b0 <monster id>.l <?>.b <new monster code>.l
- –û‚̃Nƒ‰ƒXƒ`ƒFƒ“ƒW
- <new monster code>‚̓`ƒFƒ“ƒWŒã‚̃R[ƒh(1001`)‚ðdword‚Å
-S 01b2 <len>.w <message>.80B <flag>.B {<index>.w <amount>.w <value>.l}.8B*
- ˜I“XŠJÝ
- flag F 0=ƒLƒƒƒ“ƒZƒ‹ , 1=ƒI[ƒvƒ“
-R 01b3 <filename>.64B <type>.B
- R 0145‚ÌãˆÊŒÝŠ·
-R 01B6 <guildID>.l <guildLv>.l <connum>.l <’èˆõ>.l <Avl.lvl>.l <now_exp>.l <next_exp>.l <ã”[ƒ|ƒCƒ“ƒg>.l <«ŒüF-V>.l <«ŒüR-W>.l <members>.l <guild name>.24B <guild master>.24B <agit?>.20B
- ƒMƒ‹ƒhî•ñ
-R 01b9 <ID>.I
- ”íƒ_ƒ“™‚É‚æ‚éID‚̉r¥’†’f
-
-R 01c0
- Some request for some status. Signature of sakexes later than 628. Used to send friends list.
- Probably can be used to tell the player that his sakexe is not the latest version.
-
-R 01c4 <index>.w <amount>.l <itemID>.w <item data>.12B
- ƒJƒvƒ‰‘qŒÉƒAƒCƒeƒ€
-R 01c8 <index>.w <item ID>.w <ID>.l <amount left>.w <type>.B
- ƒAƒCƒeƒ€Žg—p‰ž“šB(00a8‚ÌãˆÊƒo[ƒVƒ‡ƒ“H)
- type=00‚Ìꇎg—pŽ¸”s? amount‚àƒSƒ~‚Ì–Í—l
- type=01‚ÌꇬŒ÷‚ÅAamount‚ÍŽg—pŒã‚ÌŽc‚èŒÂ”
-R 01c9 <dst ID>.l <src ID>.l <X>.w <Y>.w <type>.B <fail>.B ?.81b
- ƒXƒLƒ‹Œø”\’nì¬(011f‚ÌãˆÊƒo[ƒVƒ‡ƒ“H)
- type 0x7e:SWA0x7f:‰Î•ÇA0x80 ƒ|ƒ^ŠJ‚«’†A0x81 ƒ|ƒ^ŠJ‚«’¼‘O
- 0x82 ¹‘ÌA0x83 ƒTƒ“ƒNA0x84 ƒ}ƒOƒkƒXA0x85 ƒjƒ…[ƒ}
- 0x86 0x86 ‘å–‚–@(SG/MS/LoV/GX)A0x87 ƒtƒ@ƒCƒ„[ƒsƒ‰‘Ò‹@
- 0x88 ƒtƒ@ƒCƒ„[ƒsƒ‰”š”­A0x87`0x8B •\Ž¦–³‚µA
- 0x8c ƒg[ƒL[ƒ{ƒbƒNƒX(”­“®’†)A0x8D ƒAƒCƒXƒEƒH[ƒ‹
- 0x8E ƒNƒƒOƒ}ƒCƒAA0x8f ƒuƒ‰ƒXƒgƒ}ƒCƒ“A0x90 ƒXƒLƒbƒh
- 0x91 ƒAƒ“ƒNƒ‹A0x92 ƒxƒmƒ€ƒ_ƒXƒgA0x93 ƒ‰ƒ“ƒhƒ}ƒCƒ“
- 0x94 ƒVƒ‡ƒbƒNƒEƒF[ƒuƒgƒ‰ƒbƒvA0x95 ƒTƒ“ƒhƒ}ƒ“
- 0x96 ƒtƒ‰ƒbƒVƒƒ[A0x97 ƒtƒŠ[ƒWƒ“ƒOƒgƒ‰ƒbƒv
- 0x98 ƒNƒŒƒCƒ‚ƒA[ƒgƒ‰ƒbƒvA0x99 ƒg[ƒL[ƒ{ƒbƒNƒX
- 0x9A ƒ{ƒ‹ƒP[ƒmA0x9B ƒfƒŠƒ…[ƒWA0x9C ƒoƒCƒIƒŒƒ“ƒgƒQƒCƒ‹
- 0x9D ƒ‰ƒ“ƒhƒvƒƒeƒNƒ^[A0x9E Zenyƒ}[ƒNA0x9F Zeny‘Ü
- 0xA0 ‰ñ‚é—΂̗ÖA0xA1 ƒsƒ“ƒN‚̉¹•„ (“ñ˜A•„—L‚è
- 0xA2 ^‚ñ’†‚É“_‚Ì‚ ‚éŒõ‚Ì‹ÊA0xA3 ƒsƒ“ƒN‚̃XƒvƒŠƒ“ƒO
- 0xA4 [•£‚Ì’†‚ÉA0xA5 ‰ñ‚é‚¢—ÖA0xA6 •s‹¦˜a‰¹
- 0xA7 Œû“JA0xA8 —[—z‚̃AƒTƒVƒ“ƒNƒƒXA0xA9 ƒuƒ‰ƒM‚ÌŽ
- 0xAA ƒCƒhƒDƒ“‚Ì—ÑŒçA0xAB Ž©•ªŸŽè‚ȃ_ƒ“ƒXA0xAC ƒnƒ~ƒ“ƒO
- 0xAD Ž„‚ð–Y‚ê‚È‚¢‚ÅcA0xAE ƒT[ƒrƒXƒtƒH[ƒ†[
- 0xAF ƒsƒ“ƒN‚̃XƒvƒŠƒ“ƒOA0xB0 •\Ž¦–³‚µ
- 0xB0 ƒOƒ‰ƒtƒBƒeƒB,
- 0xB1 ƒfƒ‚ƒ“ƒXƒgƒŒ[ƒVƒ‡ƒ“A0xB2`0xBF •\Ž¦–³‚µ
- 0xB2 ƒsƒ“ƒN‚̃[ƒvƒ|[ƒ^ƒ‹•—
- 0xB3 ¬‚³‚È\Žš‰Ë‚ª‚Ó‚æ‚Ó‚æ
- 0xB4 ƒoƒWƒŠƒJA0xB5 ƒGƒtƒFƒNƒg‚È‚µH
- 0xB6 •‚¢~‚ª—§‘Ì“I‚É•‚‚©‚Ñオ‚é
- 0xB7 ƒNƒ‚‚Ì‘ƒA0xB8` ƒGƒtƒFƒNƒg‚È‚µH
-
- ‘¼î•ñ‹‚Þ
- ?.81b‚Í“äB
-R 01cd (<sid>.l)x7
- ƒI[ƒgƒXƒyƒ‹‘I‘ðŽˆŽóM
- <sid>x7 ‚É‚Í NB,CB,FB,LB,SS,FBL,FD ‚̇‚ŃXƒLƒ‹ƒR[ƒh‚ªdword‚Å“ü‚é
- ‚Ü‚¾‘I‘ð‚Å‚«‚È‚¢ƒXƒLƒ‹‚Ì•”•ª‚Í <sid> = 0x00000000 ‚ª“ü‚é
-S 01ce <sid>.l
- ƒI[ƒgƒXƒyƒ‹‘I‘ðŽˆ‘—M
-R 01cf <crusader id>.l <target id>.l <?>.18b
- Œ£gó‘Ôƒ^[ƒQƒbƒgON/OFFBŒ£g‚ªØ‚ê‚é‚Æ <target id> ‚ª 0x00000000 ‚É‚È‚é
-
-R 01d0 <ID>.l <num>.w
- <num> : ‹CŒ÷‚Ì”(”ñLv)
-R 01d1 <monk id>.l <target monster id>.l <bool>.l
- ”’‰HŽæ‚èó‘ÔON/OFFB<bool> ‚Í”’nŽæ‚謗§Žž‚É 0x00000001 ‰ðœŽž‚É 0x00000000 ‚ª—ˆ‚é
-R 01d2 <id>.l <delay>.l
- ƒ‚ƒ“ƒN‚̃Rƒ“ƒ{ƒfƒBƒŒƒC(msec)
- ŽO’iE˜A‘Å‚ÍŠî–{ƒfƒBƒŒƒC1000(+300)A–Ò—´‚ÍŠî–{ƒfƒBƒŒƒC700(+300)
-R 01d4 <ID>.l
- •¶Žš—ñ“ü—Í‘‹•\Ž¦(ID‚ÍNPC‚ÌID‚ª“ü‚é)
-S 01d5 <len>.w <ID>.l <input>.?B 00
- •¶Žš—ñ“ü—Í“à—e‘—M(ID‚ÍNPC‚ÌID‚ª“ü‚é)
-R 01d7 <ID>.l <equip point>.b <item id1>.w <item id2>.w
- ‘•”õƒOƒ‰ƒtƒBƒbƒN <equip point> ‚Í 02Žè‚Æ09‘«‚Ì‚ÝŠm”FBid2‚ͶŽè
-R 01d8 <ID>.l <speed>.w <opt1>.w <opt2>.w <option>.w <class>.w <hair>.w <item id1>.w <item id2>.w <head option bottom>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.l <emblem>.l <manner>.w <karma>.B <sex>.B <X_Y_dir>.3B ?.B ?.B <sit>.B <Lv>.B ?.B
- ƒ}ƒbƒvƒ[ƒhŽž&ˆÚ“®Žž—pAŒü‚«•t‚«—pƒLƒƒƒ‰î•ñ?(0078‚ÌãˆÊƒo[ƒWƒ‡ƒ“)
-R 01d9 <ID>.l <speed>.w <opt1>.w <opt2>.w <option>.w <class>.w <hair>.w <item id1>.w <item id2>.w.<head option bottom>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.l <emblem>.l <manner>.w <karma>.B <sex>.B <X_Y_dir>.3B ?.B ?.B <Lv>.B ?.B
- ƒeƒŒƒ|“™‚Ì•\Ž¦”ÍˆÍ“à•¦‚«ƒLƒƒƒ‰—pAŒü‚«•t‚«–³‚µƒLƒƒƒ‰î•ñ?(0079‚ÌãˆÊƒo[ƒWƒ‡ƒ“)
-R 01da <ID>.l <speed>.w <opt1>.w <opt2>.w <option>.w <class>.w <hair>.<item id1>.w <item id2>.w <head option bottom>.w <server tick>.l <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.l <emblem>.l <manner>.w <karma>.B <sex>.B <X_Y_X_Y>.5B ?.B ?.B ?.B <Lv>.B ?.B
- •\Ž¦”͈͓àƒLƒƒƒ‰ˆÚ“®î•ñ(007b‚ÌãˆÊƒo[ƒWƒ‡ƒ“)
-S 01db
- ˆÃ†‰»key—v‹
-R 01dc <len>.w <key>.?B
- ˆÃ†‰»key‘—•t
-S 01dd <version>.l <account name>.24B <md5 binary>.16B <version2>.1B
- id&ˆÃ†‰»Ï‚Ýpass‘—M
- ‡‚ɃNƒ‰ƒCƒAƒ“ƒg‚ª01db‚ð‘—‚éA
- ŽI‚ª01dc‚Åkey‚ð•Ô‚·A
- ƒNƒ‰ƒCƒAƒ“ƒg‚ª"<key><password>"‚ɂ‚¢‚Ämd5ŒvŽZ‚µ
- <md5 binary>‚ÌŠ‚ð–„‚ß‚Ä01dd‚ð‘—‚éB
- <passwordencrypt2>‚ÌŽž‚Í
- "<key><password>"‚ɑ΂µ‚Ämd5ŒvŽZ‚Æ‚µ‚Ä‚¢‚銂ð
- "<password><key>"‚Æ•ÏX‚·‚é
-R 01de <skill ID>.w <src ID>.l <dst ID>.l <server tick>.l <src speed>.l <dst speed>.l <param1>.l <param2>.w <param3>.w <type>.B
- UŒ‚ŒnƒXƒLƒ‹ƒGƒtƒFƒNƒg@(0114‚ÌãˆÊƒo[ƒVƒ‡ƒ“H)
- type=04 ‰Î•Ç‚ÅŠÏ‘ª type=06‚Æ‚Ù‚Ú“¯‚¶?
- type=05 NB/FBl‚Ì•ªŽU‚µ‚½ƒ_ƒ[ƒW—pH
- type=06 ’P”­‚à‚Ì? param1‚̓_ƒ[ƒW‡ŒvAparam2‚ÍlevelAparam3‚Í1ŒÅ’è‚Æ—\‘z
- type=07 ƒ_ƒ[ƒW•\Ž¦–³‚µH
- type=08 ˜A‘Å‚à‚Ì? param1‚̓_ƒ[ƒW‡ŒvAparam2‚ÍlevelAparam3‚Í•ªŠ„”‚Æ—\‘z
- type=09 ƒ_ƒ[ƒWƒ‚[ƒVƒ‡ƒ“‚È‚µ‚Ƀ_ƒ[ƒW‚¾‚¯•\Ž¦‚³‚ê‚镨(ƒCƒ“ƒfƒ…ƒA)‚ÆŽv‚Á‚½‚Ì‚¾‚ªƒ_ƒ[ƒWƒ‚[ƒVƒ‡ƒ“‚ªo‚镨B(‹@”\‚Í“ä)
-S 01df <ID>.|
- GM‰EƒNƒŠƒbƒN‚É‚æ‚éID‚̃`ƒƒƒbƒg‹ÖŽ~‰ñ”ŽQÆH
-R 01e1 <ID>.l <num>.w
- <num> : ‹CŒ÷‚Ì”(”ñLv) ˆê“x•\Ž¦‚µ‚½‚çŒã‚Ç‚ñ‚Ènum‚ª—ˆ‚Ä‚à–³Ž‹‚³‚ê‚éB
-R 01e6 <partner name>.24B
- Œ‹¥ƒXƒLƒ‹‚ ‚È‚½‚Ɉ§‚¢‚½‚¢Žg—pŽž‚Ì‹©‚Ѻ
-S 01e7
- ƒXƒpƒmƒr‚Å/doridori‚µ‚½‚ç”ò‚ñ‚Å‚­‚éBSPR‰ñ•œ—Ê2”{ƒtƒ‰ƒO‚𗧂ĂéƒpƒPƒbƒg
-S 01e8 <party name>.24B <item1>B <item2>B
- <item1>ƒAƒCƒeƒ€ŽûW•û–@B0‚ÅŒÂl•ÊA1‚Ńp[ƒeƒBŒö—L
- <item2>ƒAƒCƒeƒ€•ª”z•û–@B0‚ÅŒÂl•ÊA1‚Ńp[ƒeƒB‚É‹Ï“™•ª”z
- (00f9‚ÌãˆÊƒo[ƒVƒ‡ƒ“)
-R 01ea <ID>.l
- Œ‹¥ƒGƒtƒFƒNƒg(‰¹ŠyAŽ†á)
- ID‚ÍV•w‚Ì‚à‚Ì‚ª“ü‚éH
-S 01ed
- ƒXƒpƒmƒr‚ª”š—ô”g“®‚É‚È‚éƒtƒ‰ƒO‚𗧂ĂéƒpƒPƒbƒg
-R 01ee <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B <card>.4w}.18B*
- Š—LÁ–Õ•i&ŽûW•iƒŠƒXƒg
- –î‚ÌꇂÍ?.2B‚ª0x8000‚É‚È‚é
- 00a3‚©‚ç•ÏX
-R 01ef <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B <card>.4w}.18B*
- ƒJ[ƒg“àƒAƒCƒeƒ€BÁ–Õ•i/ŽûW•i
- 0123‚©‚ç•ÏX
-R 01f0 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B <card>.4w}.18B*
- ƒJƒvƒ‰‚³‚ñ‚É—a‚¯‚Ä‚ ‚éÁ–Õ•i&ŽûW•iƒŠƒXƒg
- 00a5‚©‚ç•ÏX
-R 01f4 <name>.24B <trade id?>.L <LV>.w
- æ•û‚©‚çŽæˆø—v¿
- 00e5‚©‚ç•ÏX
-R 01f5 <result>.B <trade id?>.L <LV>.w
- ‚±‚¿‚ç‚©‚ç‚ÌŽæˆø—v¿‚ɑ΂·‚锽‰ž
- 00e7‚©‚ç•ÏX
-S 0200 <login name>.24B
- ragexe‚É/accountƒIƒvƒVƒ‡ƒ“‚ð‚‚¯‚Ä‹N“®‚·‚é‚ƃƒOƒCƒ“—v‹‚É•t‰Á‚³‚ê‚éƒpƒPƒbƒg
-
-R 0201 ?.1B<Flag?>.1B (?.8B <Character Name>.24B)x20
- Flag seems to need to be 1 to function.
- 8 unknown bytes and 24 bytes for name need to be repeated for each friend.
-
-S 0202 <Character name>.24B
- Character name to add to friend list (for server-side friend list enabled clients)
-
-R 0203 <Account ID>.3B <Unknown>.3B
- Account ID = zero terminated 3-word hex representation of account ID. Little endian.
- Unknown = observed dependency on online/offline status
-
-S 0204 <?>.16B
- ƒƒOƒCƒ“—v‹‚É•t‰Á‚³‚ê‚éƒpƒPƒbƒgB16ƒoƒCƒg‚͌ŒèH
-S 020B <?>.17B
- ƒLƒƒƒ‰ƒNƒ^ƒT[ƒoÚ‘±—v‹0065‚É•t‰Á‚³‚ê‚éƒpƒPƒbƒgB1+0204‚Ì16ƒoƒCƒg‚Å17ƒoƒCƒgH
-
-
-ƒpƒPƒbƒg’·‚̒ljÁB019e`01aa‚ª‘‚¦‚Ä‚é‚Ì‚ÅA0190`‚ð؂蔲‚«
-added packet lenth. 019e-01aa is a new, so here is a packet length table from 0190.
-
-@ 90, 86, 24,@6, 30,102,@8,@4,@ 8,@4, 14, 10, -1,@6,@2,@6,
-@@3,@3, 35,@5, 11, 26, -1,@4,@ 4,@6, 10
+here is a translation for "packet_table.txt".
+i leave original japanese sentenses and write translation below that.
+
+
+Ú‚µ‚­‚Í’m‚è‚Ü‚¹‚ñ‚ªAGM‚̓AƒJƒEƒ“ƒgID704554•t‹ß‚ðŽw’è‚·‚é‚Æ
+ƒNƒ‰ƒCƒAƒ“ƒg‚ªGM‚¾‚Æ”FŽ¯‚µ‚Ä•\Ž¦‚·‚é‚Ý‚½‚¢‚Å‚·B
+”Žš‚ª”¼’[‚È‚Ì‚Í‹C‚É‚µ‚È‚¢‚ÅEEE
+
+i don't know for sure, but if you set account id around 704554,
+the ro client recognizes you as GM ( i don't know about other client like
+iro or something. this is talking about jro.)
+
+
+ƒpƒPƒbƒg’·ƒŠƒXƒgB-1‚̓pƒPƒbƒgŽí•Ê‚Ì’¼Œã‚É’·‚³‚ª‚ ‚éƒpƒPƒbƒg
+
+list of packet length. "-1" means a packet that have its packet length
+just after the packet number.
+
+ 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 55, 17, 3, 37, 46, -1, 23, -1, 3,108, 3, 2,
+ 3, 28, 19, 11, 3, -1, 9, 5, 52, 51, 56, 58, 41, 2, 6, 6,
+
+ 7, 3, 2, 2, 2, 5, 16, 12, 10, 7, 29, 23, -1, -1, -1, 0,
+ 7, 22, 28, 2, 6, 30, -1, -1, 3, -1, -1, 5, 9, 17, 17, 6,
+ 23, 6, 6, -1, -1, -1, -1, 8, 7, 6, 7, 4, 7, 0, -1, 6,
+ 8, 8, 3, 3, -1, 6, 6, -1, 7, 6, 2, 5, 6, 44, 5, 3,
+
+ 7, 2, 6, 8, 6, 7, -1, -1, -1, -1, 3, 3, 6, 3, 2, 27,
+ 3, 4, 4, 2, -1, -1, 3, -1, 6, 14, 3, -1, 28, 29, -1, -1,
+ 30, 30, 26, 2, 6, 26, 3, 3, 8, 19, 5, 2, 3, 2, 2, 2,
+ 3, 2, 6, 8, 21, 8, 8, 2, 2, 26, 3, -1, 6, 27, 30, 10,
+
+
+ 2, 6, 6, 30, 79, 31, 10, 10, -1, -1, 4, 6, 6, 2, 11, -1,
+ 10, 39, 4, 10, 31, 35, 10, 18, 2, 13, 15, 20, 68, 2, 3, 16,
+ 6, 14, -1, -1, 21, 8, 8, 8, 8, 8, 2, 2, 3, 4, 2, -1,
+ 6, 86, 6, -1, -1, 7, -1, 6, 3, 16, 4, 4, 4, 6, 24, 26,
+
+ 22, 14, 6, 10, 23, 19, 6, 39, 6, 7, 6, 27, -1, 2, 6, 6,
+ 110, 6, -1, -1, -1, -1, -1, 6, -1, 54, 66, 54, 90, 42, 6, 42,
+ -1, -1, -1, -1, -1, 30, -1, 3, 14, 3, 30, 10, 43, 14,186,182,
+ 14, 30, 10, 3, -1, 6,106, -1, 4, 5, 4, -1, 6, 7, -1, -1,
+
+ 6, 3,106, 10, 10, 34, 0, 6, 8, 4, 4, 4, 29, -1, 10, 6,
+ 90, 86, 24, 6, 30,102, 8, 4, 8, 4, 14, 10
+
+S ƒNƒ‰ƒCƒAƒ“ƒg‚©‚猩‚Ä‘—M
+S means a packet that will be sent from client.
+
+R ƒNƒ‰ƒCƒAƒ“ƒg‚©‚猩‚ÄŽóM
+R means a packet that will be received by client.
+
+B ƒoƒCƒg
+B means a byte.
+
+w ƒ[ƒh=2B
+w means word( 2 bytes)
+
+l ƒƒ“ƒOƒ[ƒh=4B
+l means long word(4bytes)
+
+* 0ŒÂˆÈã‚­‚è‚©‚¦‚µ
+* means repeat
+
+
+S 0064 <version>.l <account name>.24B <password>.24B <version2>.B
+ ƒAƒJƒEƒ“ƒgID&ƒpƒXƒ[ƒh‘—M
+ send account id & password
+S 0065 <account ID>.l <login ID1>.l <login ID2>.l ?.2B <sex>.B
+ ƒLƒƒƒ‰ƒZƒŒŽIÚ‘±—v‹
+ request connection to character select server
+S 0066 <charactor number>.B
+ ƒLƒƒƒ‰ƒNƒ^‘I‘ð—v‹
+ request to select character
+S 0067 <charactor name>.24B <param etc>.11B
+ ƒLƒƒƒ‰ƒNƒ^쬗v‹
+ request to create new character
+S 0068 <charactor ID>.l <mail address>.40B
+ ƒLƒƒƒ‰ƒNƒ^휗v‹
+ request to delete character
+R 0069 <len>.w <login ID1>.l <account ID>.l <login ID2>.l ?.32B <sex>.B {<IP>.l <port>.w <server name>.20B <login users>.l ?.2B}.32B*
+ login¬Œ÷&ŽIî•ñ
+ information about a success of login to login server
+R 006a <error No>.B
+ loginŽ¸”s
+ fail to login to login server
+R 006b <len>.w <charactor select data>.106B*
+ ƒLƒƒƒ‰ƒZƒŒŽIÚ‘±¬Œ÷&ƒLƒƒƒ‰ƒNƒ^ƒf[ƒ^
+ information about a success of connection to character select server & character server
+ <charactor select data> = <charactor ID>.l <base exp>.l <zeny>.l <job exp>.l <job level>.l ?.8B <option>.l <karma>.l <manner>.l ?.2B <HP>.w <MaxHP>.w <SP>.w <MaxSP>.w <speed>.w <class>.w <hair>.w <weapon>.2w <base level>.w <skill point>.w <head_bottom>.w <sheild>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <name>.24B <STR>.B <AGI>.B <VIT>.B <INT>.B <DEX>.B <LUK>.B <charactor number>.B ?.B
+R 006c <error No>.B
+ ƒLƒƒƒ‰ƒNƒ^‘I‘ðŽ¸”s
+ fail to select character
+R 006d <charactor select data>.106B
+ ƒLƒƒƒ‰ƒNƒ^쬬Œ÷
+ success to create new character
+R 006e <error No>.B
+ ƒLƒƒƒ‰ƒNƒ^쬎¸”s
+ fail to create new character
+R 006f
+ ƒLƒƒƒ‰ƒNƒ^휬Œ÷
+ success to delete character
+R 0070 <error No>.B
+ ƒLƒƒƒ‰ƒNƒ^휎¸”s
+ fail to delete character
+R 0071 <charactor ID>.l <map name>.16B <ip>.l <port>.w
+ ƒLƒƒƒ‰ƒNƒ^‘I‘ð¬Œ÷&ƒ}ƒbƒv–¼&ƒQ[ƒ€ŽIIP/port
+ success to select character & map name and ip/port number for game server
+S 0072 <account ID>.l <charactor ID>.l <login ID1>.l <login ID2>.l <sex>.b
+ ƒQ[ƒ€ŽIÚ‘±—v‹
+ request connection to game server
+R 0073 <server tick>.l <coordidate>.3B ?.2B
+ ƒQ[ƒ€ŽIÚ‘±¬Œ÷&ƒT[ƒo‘¤1msŽžŒv&oŒ»ˆÊ’u
+ success to connect to game server & server time & spawn point
+R 0078 <ID>.l <speed>.w ?.w ?.w <option>.w <class>.w <hair>.w <weapon>.w <head option bottom>.w <sheild>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.w ?.w ?.w <manner>.w <karma>.w ?.B <sex>.B <X_Y_dir>.3B ?.B ?.B <sit>.B
+ ƒ}ƒbƒvƒ[ƒhŽž&ˆÚ“®Žž—pAŒü‚«•t‚«—pƒLƒƒƒ‰î•ñ?
+ a packet for map load or moving, infermation about a direction for character?
+R 0079 <ID>.l <speed>.w ?.w ?.w <option>.w <class>.w <hair>.w <weapon>.w <head option bottom>.w <sheild>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.w ?.w ?.w <manner>.w <karma>.w ?.B <sex>.B <X_Y_dir>.3B ?.B ?.B
+ ƒeƒŒƒ|“™‚Ì•\Ž¦”ÍˆÍ“à•¦‚«ƒLƒƒƒ‰—pAŒü‚«•t‚«–³‚µƒLƒƒƒ‰î•ñ?
+ information about characters in a range of a skill like teleport, no infor about direction for character?
+R 007b <ID>.l <speed>.w ?.w ?.w <option>.w <class>.w <hair>.w <weapon>.w <head option bottom>.w <server tick>.l <sheild>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.w ?.w ?.w <manner>.w <karma>.w ?.B <sex>.B <X_Y_X_Y>.5B ?.B ?.B ?.B
+ •\Ž¦”͈͓àƒLƒƒƒ‰ˆÚ“®î•ñ
+ character information about walking in a range of the character can see
+R 007c <ID>.l <speed>.w ?.6w <class>.w ?.7w <X_Y>.3B ?.2B
+ NPC—p•\Ž¦”͈͓àƒLƒƒƒ‰î•ñ
+ character information for npc in a range the character can see
+S 007d
+ mapƒ[ƒhI‚è
+ end of load
+S 007e <client tick>.l
+ ƒNƒ‰ƒCƒAƒ“ƒg‘¤1msƒ^ƒCƒ}‘—M
+ send 1ms timer at client
+R 007f <server tick>.l
+ ƒT[ƒo‘¤1msƒ^ƒCƒ}‘—M
+ send 1ms timer at server
+R 0080 <ID>.l <type>.B
+ type=00 ƒLƒƒƒ‰Á–Å (‰æ–ÊŠOˆÚ“®BŽ€‘ÌÁ–Å“™?)
+ character disappear( walk out of screen. died and disappear?)
+ type=01 ƒLƒƒƒ‰Ž€–S
+ character died
+ type=02 ƒLƒƒƒ‰Á–Å (ƒeƒŒƒ|,”ˆ,’±,logout“™?)
+ character disappear( teleport, fly's wing, butterfly's wing, logout?)
+R 0081 <type>.B
+ type=03 speed hack
+ speed hack
+ type=08 2dƒƒOƒCƒ“
+ duplicated login
+S 0085 <X_Y>.3B
+ ˆÚ“®—v‹
+ request to walk
+R 0087 <server tick>.l <X_Y_X_Y>.5B ?.B
+ ˆÚ“®‰ž“š
+ response to the request to walk
+R 0088 <ID>.l <X>.w <Y>.w
+ ˆÚ“®“r’†’âŽ~
+ stop walking
+S 0089 <target ID>.l <type>.B
+ type=00 target‚ð1‰ñ‰£‚é
+ hit target once
+ type=02 À‚é
+ sit down
+ type=03 —§‚¿ã‚é
+ stand up
+ type=07 target‚ð‰£‚è‘±‚¯‚é
+ continue to hit target
+R 008a <src ID>.l <dst ID>.l <server tick>.l <src speed>.l <dst speed>.l <param1>.w <param2>.w <type>.B <param3>.w
+ type=00 param1=0 miss
+ param1=0 miss
+ type=00 param1:ƒ_ƒ[ƒW(‚̇Œv?) param2:•ªŠ„” param3:ƒAƒTƒVƒ“2“—¬‹tŽèƒ_ƒ[ƒW
+ param1:damage(of total?) param2:number of division param3:damage of assasin's left hand
+ NPC‚©‚ç‚ÌUŒ‚‚Ìê‡Aparam2,param3‚̓Sƒ~ƒf[ƒ^
+ if the attack was by npc, param2 and param3 are not used
+ speed‚ÍPC‚Ìê‡“à•”ASPD‚ƈê’v
+ speed match the aspd if it's player character
+ type=01 item‚ðE‚¤ ID*2ˆÈŠOƒSƒ~
+ pick up item, unused data except ID*2
+ type=02 À‚é src IDˆÈŠOƒSƒ~
+ sit down, unused data except src ID
+ type=03 —§‚ src IDˆÈŠOƒSƒ~
+ stand up, unused data except src ID
+ type=08 •¡”UŒ‚
+ multiple attack
+ type=0a ƒNƒŠƒeƒBƒJƒ‹
+ critical attack
+ type=0b Š®‘S‰ñ”ð
+ perfect evade
+R 008c <len>.w <str>.?B
+ ’Êí”­Œ¾‘—MBƒ`ƒƒƒbƒg’†‚̓`ƒƒƒbƒg“à”­Œ¾—p‚É‚È‚é
+ send normal speech. it become a speech for chat during a chat
+ 擪‚Ì"<nick> : "‚Ì•”•ª‚̓Nƒ‰ƒCƒAƒ“ƒg‘¤‚Å•t‚¯‚鎖
+ client adds "<nick> : " part.
+R 008d <len>.w <ID>.l <str>.?B
+ ID‚³‚ñ‚Ì”­Œ¾ŽóMBƒ`ƒƒƒbƒg’†‚̓`ƒƒƒbƒg“à”­Œ¾—p‚É‚È‚é
+ receive a speech by ID. it become speech for chat during a chat
+R 008e <len>.w <str>.?B
+ Ž©•ª‚Ì”­Œ¾ŽóMBƒ`ƒƒƒbƒg’†‚̓`ƒƒƒbƒg“à”­Œ¾—p‚É‚È‚é
+ receive my character's speech. it become speech for chat during a chat
+S 0090 <ID>.l <type?>.B
+ NPC‚ɘb‚µ‚©‚¯‚éBtype‚Í01‚µ‚©Œ©‚½Ž––³‚µ
+ talk to npc. i havent seen type setted to 01.
+R 0091 <map name>.16B <X>.w <Y>.w
+ ŽI“àƒ}ƒbƒvŠÔˆÚ“®AƒeƒŒƒ|,”ˆ“™—p
+ map change in the same server, for instance, teleport, fly's wing...
+R 0092 <map name>.16B <X>.w <Y>.w <IP>.l <port>.w
+ ŽIŠÔˆÚ“®
+ map change to the other server
+R 0093
+ 8ŒŽ’†‚É1‰ñ‚¾‚¯ŠÏ‘ªB“ä
+ this packet observed in august once. i dont know what it is.
+S 0094 <ID>.l
+ ID‚̃Lƒƒƒ‰–¼“™—v‹B0095‚©0195‚Ì•Ô“š‚ª‚ ‚é‚Í‚¸
+ request a character name for ID. 0095 or 0195 response is expected.
+R 0095 <ID>.l <nick>.24B
+ NPC,ƒMƒ‹ƒh–¢Š‘®PC‚Ì0094‚Ö‚Ì•Ô“š
+ response for 0094 request from npc or player character without guild.
+ 0193 <charID>.l ‚Å–â‚¢‡‚킹‚Ä
+ request by <charID>.l
+ 0194 <charID>.l <name>.24B ‚̉ž“š‚Å“¾‚Ä‚Ü‚·B
+ get response by <charID>.l <name>.24B
+
+S 0096 <len>.w <nick>.24B <message>.?B
+ wis‘—M
+ send wisper
+R 0097 <len>.w <nick>.24B <message>.?B
+ wisŽóM
+ receive wisper
+R 0098 <type>.B
+ type=00 wis‘—M¬Œ÷
+ success to send wisper
+ type=01 wis‘ŠŽè‚ªlogin‚µ‚Ä‚È‚¢?
+ target character is not loged in?
+ type=02 wis‘ŠŽè‚©‚çignore‚³‚ê‚Ä‚é?
+ ignored by target
+R 009a <len>.w <message>.?B
+ GM‚©‚ç‚Ì“V‚̺
+ GM announce
+S 009b <head dir>.w <dir>.B
+ ‘Ì&“ª‚Ì•ûŒü•ÏX—v‹BƒNƒ‰ƒCƒAƒ“ƒg‚ւ̉ž“š‚Í–³‚¢–Í—l
+ request a change of head and body direction. no response to client.
+ dir‚Í00`07‚Å‘Ì‚ÌŒü‚«B00‚Å–k‚©‚甽ŽžŒv‰ñ‚è‚É45‹’PˆÊ‚Å07‚Ü‚Å
+ dir can be 00-07 and it's for body direction. 00 means north and go counter-clockwise upto 07 by 45 degrees.
+ head dir‚Í00,01,02‚Å“ª‚ÌŒü‚«B00‚Å‘Ì‚Æ“¯‚¶A01‚ª‰EA02‚ª¶
+ head dir can be 00,01,02. 00 means the same direction of body, 01 means right, 02 menas left.
+R 009c <ID>.l <head dir>.w <dir>.B
+ ID‚Ì‘Ì&“ª‚Ì•ûŒü•ÏX
+ change body and head direction for ID.
+R 009d <ID>.l <item ID>.w <identify flag>.B <X>.w <Y>.w <amount>.w <subX>.B <subY>.B
+ ˆÚ“®“™‚Å°ƒAƒCƒeƒ€‚ª‰æ–Ê“à‚É“ü‚Á‚Ä‚«‚½Žž
+ when the item on the floor will appear on the screen by walking etc.
+R 009e <ID>.l <item ID>.w <identify flag>.B <X>.w <Y>.w <subX>.B <subY>.B <amount>.w
+ item dropB‰½ŒÌ‚©009d‚ƃ}ƒX–Ú“àˆÊ’u&ŒÂ”‚ª“ü‚ê•Ï‚Á‚Ä‚¢‚é
+ item drop. coordinate and amount is different from 009d.
+S 009f <ID>.l
+ ID‚Ì°ƒAƒCƒeƒ€‚ðE‚¤
+ pick up item on the floor.
+R 00a0 <index>.w <amount>.w <item ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w <equip type>.w <type>.B <fail>.B
+ fail=02 Žæ“¾Ž¸”s?
+ fail to pick up?
+ fail=06 ƒ‹[ƒgŒ –³‚µBŽæ“¾Ž¸”s
+ no right to pick up. fail to pick up.
+R 00a1 <ID>.l
+ ID‚Ì°ƒAƒCƒeƒ€Á‹Ž
+ disappear the floor item
+S 00a2 <index>.w <amount>.w
+ Š—LƒAƒCƒeƒ€‚ð—Ž‚·
+ drop inventory item.
+R 00a3 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B}.10B*
+ Š—LÁ–Õ•i&ŽûW•iƒŠƒXƒg
+ list of consumptive item and collecter item that you have
+R 00a4 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <equip type>.w <equip point>.w <attribute?>.B <refine>.B <card>.4w}.20B*
+ Š—L‘•”õƒŠƒXƒg
+ list of equipments that you have
+R 00a5 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B}.10B*
+ ƒJƒvƒ‰‚³‚ñ‚É—a‚¯‚Ä‚ ‚éÁ–Õ•i&ŽûW•iƒŠƒXƒg
+ list of consumptive item and collecter item that you leave with capra.
+R 00a6 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <equip type>.w <equip point>.w <attribute?>.B <refine>.B <card>.4w}.20B*
+ ƒJƒvƒ‰‚³‚ñ‚É—a‚¯‚Ä‚ ‚é‘•”õƒŠƒXƒg
+ list of equipments that you leave with capra.
+S 00a7 <index>.w <ID>.l
+ ŠŽƒAƒCƒeƒ€index‚ðŽg—p‚·‚éBID‚ÍŽ©•ª‚Ì‚Ý?
+ use index item. ID can be only myself?
+R 00a8 <index>.w <amount>.w <type>.B
+ ƒAƒCƒeƒ€Žg—p‰ž“šBtype=00‚Ìꇎg—pŽ¸”s? amount‚àƒSƒ~‚Ì–Í—l
+ response to use item. type=00 means failed. amount is unused.
+ type=01‚ÌꇬŒ÷‚ÅAamount‚ÍŽg—pŒã‚ÌŽc‚èŒÂ”
+ type=01 means success to use item, amount is a number of rest of the item.
+S 00a9 <index>.w <equip type>.w
+ ƒAƒCƒeƒ€‘•”õ
+ equip item.
+R 00aa <index>.w <equip point>.w <type>.B
+ ƒAƒCƒeƒ€‘•”õ‰ž“šBtype=00‚Ìꇑ•”õŽ¸”s? equip point‚àƒSƒ~‚Ì–Í—l
+ response to equip item. type=00 means fail. equip point is unused.
+S 00ab <index>.w
+ ‘•”õ‰ðœ
+ take off equipment.
+R 00ac <index>.w <equip point>.w <type>.B
+ ‘•”õ‰ðœ‰ž“šBtype=00‚Ìꇎ¸”s? equip point‚àƒSƒ~‚Ì–Í—l
+ response to take off equipment. type=00 means fail? equip point is unused.
+R 00af <index>.w <amount>.w
+ ƒAƒCƒeƒ€”Œ¸­BamountŒÂ‚¾‚¯Œ¸‚ç‚·
+ decrease number of item by amount.
+R 00b0 <type>.w <val>.l
+ FX‚È”\—Í’l‚ÌXVBˆÈ‰ºtype:‘Ήž‚·‚é”’l‚ð—ñ‹“
+ update values of various status.
+ 0000:speed 0003:ˆ«s’l 0004:ƒ}ƒi[ƒ|ƒCƒ“ƒg 0005:HP 0006:MaxHP
+ 0000:speed 0003:carma 0004:manner point 0005:HP 0006: MaxHP
+ 0007:SP 0008:MaxSP 0009:ƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒg 000b:ƒx[ƒXƒŒƒxƒ‹
+ 0007:SP 0008:MaxSP 0009:status point 000b: base level
+ 000c:ƒXƒLƒ‹ƒ|ƒCƒ“ƒg 0018:d—Ê(•\Ž¦‚³‚ê‚Ă锎š‚Ì10”{)
+ 000c:skil point 0018:weight(this number must be 10 times greater than it's been diplayed.)
+ 0019:Å‘åd—Ê(•\Ž¦‚³‚ê‚Ă锎š‚Ì10”{)
+ 0019:max weight(this number must be 10 times greater than it's been diplayed.)
+ 0029:ATK‘O 002a:ATKŒã 002b:MATK‘O 002c:MATKŒã
+ 0029:attack in front 002a:attack in back 002b:matk in front 002c:matk in back
+ 002d:DEF‘O 002e:DEFŒã 002f:MDEF‘O 0030:MDEFŒã
+ 002d:deffence in front 002e:deffence in back 002f:mdef in front 0030:mdef in back
+ 0031:HIT 0032:FLEE‘O 0033:FLEEŒã 0034:ƒNƒŠƒeƒBƒJƒ‹
+ 0031:hit 0032:flee in front 0033:flee in back 0034: critical
+ 0035:ASPD(2ms’PˆÊ‚ÌŽžŠÔ?) 0037:ƒWƒ‡ƒuƒŒƒxƒ‹
+ 0035:aspd(time by 2ms?) 0037:job level
+ 0082:“ä ATKŒã‚Æ“¯‚¶”Žš?
+ 0082:unknown. is it the same number as atk in back?
+R 00b1 <type>.w <val>.l
+ FX‚È”\—Í’l‚ÌXVBˆÈ‰ºtype:‘Ήž‚·‚é”’l‚ð—ñ‹“
+ update valies of various status. below is the list of corresponding type and value.
+ 0001:ƒx[ƒX‘¤ŒoŒ±’l 0002:ƒWƒ‡ƒu‘¤ŒoŒ±’l 0014:zeny
+ 0001:base experience 0002:job experience 0014:zeny
+ 0016:ƒx[ƒX‘¤•K—vŒoŒ±’l 0017:ƒWƒ‡ƒu‘¤•K—vŒoŒ±’l
+ 0016:base experience that needed to level up 0017:job experience that needed to level up
+ ƒÀ1‚Å‚Í00b0‚Íval‚ªshortA00b1‚Íval‚ªlong‚Æ‚¢‚¤Žg‚¢•ª‚¯‚ª‚ ‚Á‚½‚ñ‚¾‚¯‚Ç
+ ¡‚Æ‚È‚Á‚Ä‚Í·‚ª–³‚­‚È‚Á‚ÄA–Ó’°‚Ý‚½‚¢‚È‚à‚Ì?
+ in beta1, value of 00b0 was short and value of 00b1 was long,
+ but not there are no difference.
+S 00b2 <type>.B
+ type=00 Ž€–SŽžƒŠƒXƒ^[ƒg
+ restart game when character died
+ type=01 ƒLƒƒƒ‰ƒZƒŒ—v‹
+ request character select
+R 00b3 <type>.B
+ type=01 ƒLƒƒƒ‰ƒZƒŒ‰ž“š
+ response to character select
+R 00b4 <len>.w <ID>.l <str>.?B
+ ID‚ÌNPC‚©‚ç‚̃ƒbƒZ[ƒW
+ message from npc id
+R 00b5 <ID>.l
+ ID‚ÌNPC‚Ƃ̃ƒbƒZ[ƒWƒEƒBƒ“ƒhƒE‚É"NEXT"ƒAƒCƒRƒ“‚ðo‚·
+ display the "NEXT" icon to npc message window
+R 00b6 <ID>.l
+ ID‚ÌNPC‚Ƃ̃ƒbƒZ[ƒWƒEƒBƒ“ƒhƒE‚É"CLOSE"ƒAƒCƒRƒ“‚ðo‚·
+ display the "CLOSE" icon to npc message window
+R 00b7 <len>.w <ID>.l <str>.?B
+ ID‚ÌNPC‚̉ï˜b‚Å‘I‘ð€–Ú•\Ž¦BŠe€–Ú‚Í':'‚Å‹æØ‚ç‚ê‚é
+ display select options in npc message window. each options devided by ":".
+S 00b8 <ID>.l <select>.B
+ ID‚ÌNPC‚̉ï˜b‚Ì‘I‘ðBŠe€–ڂɇ‚É1`‚ªU‚ç‚ê‚éBff‚ŃLƒƒƒ“ƒZƒ‹?
+ select options in ncp message window. number starts from 1 for each options. cancel for ff?
+S 00b9 <ID>.l
+ ID‚ÌNPC‚Ƃ̉ï˜bBNEXTƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚½
+ "NEXT" button clicked in ncp message window.
+S 00bb <type>.w <amount>.B
+ ƒXƒe[ƒ^ƒXup—v‹Btype‚Í000d‚©‚ç0012‚ª‡‚ÉSTR,AGI,VIT,INT,DEX,LUK‚ɑΉž
+ request update status. type can be 000d for STR, 000e for AGI, 000f for VIT, 0010 for INT, 0011 for DEX, 0012 for LUK.
+R 00bc <type>.w <fail>.B <val>.B
+ ƒXƒe[ƒ^ƒXup‰ž“šBfail=01‚Ȃ笌÷Btype‚Í00bb‚Æ“¯‚¶Bval‚Íã‚Á‚½Œã‚Ì”Žš
+ respnse to update status. it's successeeded if fail=01. type is the same value as packet number 00bb. val is a value of increase.
+ Ž¸”s—á‚ÍŒ©‚½Ž––³‚¢‚Ì‚Å“äBƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒg‚ª‘«‚è‚È‚¢ó‘Ô‚Å
+ 00bb‚ð”­s‚Å‚«‚éƒNƒ‰ƒCƒAƒ“ƒg‚ª—L‚ê‚ÎAfail=00‚É‚È‚é‚Ì‚Å‚Í‚È‚¢‚©‚Æ—\‘z
+ it's unknown when it's failed because i havent ever seen. i think it will be fail=00 when it's failed.
+R 00bd <status point>.w <STR>.B <STRupP>.B <AGI>.B <AGIupP>.B <VIT>.B <VITupP>.B <INT>.B <INTupP>.B <DEX>.B <DEXupP>.B <LUK>.B <LUKupP>.B <ATK>.w <ATKbonus>.w <MATKmax>.w <MATKmin>.w <DEF>.w <DEFbonus>.w <MDEF>.w <MDEFbonus>.w <HIT>.w <FLEE>.w <FLEEbonus>.w <critical>.w ?.w
+ ‚܂Ƃ߂ăXƒe[ƒ^ƒXî•ñ‚ð‘—‚éƒpƒPƒbƒg
+ packet of information for various status.
+R 00be <type>.w <val>.B
+ •K—vƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒgXVƒpƒPƒbƒgBtype‚Í0020`0025‚ª‡‚ÉSTR`LUK‚ɑΉž
+ packet to update required status point. type can be 0020-0025 for STR-LUK.( see packet number 00bb for detals.)
+S 00bf <type>.B
+ ƒGƒ‚[ƒVƒ‡ƒ“‚ðo‚·Btype‚Í00-0c(,0d)‚ªALT+1`ALT+9,ALT+0,ƒ`ƒ‡ƒL,ƒO[,ƒp[(,ŠØ‘Šø)‚ɑΉž
+ display emotion. type can be 00-0c(,0d) for ALT+1-ALT+9,ALT+0,CTRL+-,CTRL++,CTRL+\(,korean flag).
+R 00c0 <ID>.l <type>.B
+ ID‚Ìl‚ªƒGƒ‚[ƒVƒ‡ƒ“‚ðo‚µ‚½Btype‚Í00bf‚Æ“¯‚¶
+ emotion by ID. type is the same as 00bf.
+S 00c1
+ loginl”–â‚¢‡‚킹
+ request to ask loged in people.
+R 00c2 <val>.l
+ loginl”‰ž“š
+ response to asking loged in people.
+R 00c3 <ID>.l <type>.B <val>.B
+ Œ©‚½–Ú•ÏXBtype‚Í00‚Å–{‘Ì(“]EŽž“™)A02‚ª•ŠíA03‚ª“ª(‰º)A04‚ª“ª(ã)A05‚ª“ª(’†)A08‚ª‚
+ change looks. type=00 means body(by jobs), 02 is weapon, 03 is head(lower), 04 is head(upper), 05 is head(middle), 08 is shield.
+R 00c4 <ID>.l
+ ˜b‚©‚¯‚½NPC‚ª¤l‚¾‚Á‚½‚Ì‚Åbuy/sell‘I‘ð‘‹o
+ display "BUY" or "SELL" window by npc ID
+R 00c5 <ID>.l <type>.B
+ buy/sell‘I‘ðBtype=00‚È‚çbuyBtype=01‚È‚çsell
+ select "BUY" or "SELL". type=00 is buy, type=01 is sell.
+R 00c6 <len>.w {<value>.l <DCvalue>.l <type>.B <item ID>.w}.11B*
+ NPC‚Ì‚¨“Xbuy‘I‘ðŽžBDCvalue‚ͤlDCŒã‚Ì’l’i
+ list of marchandizes when clicked "BUY". DCvalue is a value of Discount Skill applied.
+R 00c7 <len>.w {<index>.w <value>.l <OCvalue>.l}.10B*
+ NPC‚Ì‚¨“Xsey‘I‘ðŽžBOCvalue‚ͤlOCŒã‚Ì’l’i
+ list of items when clicked "SELL". OCvalue is a value of Over Charge Skill applied.
+S 00c8 <len>.w {<amount>.w <item ID>.w}.4B*
+ NPC‚Ì‚¨“X‚©‚甃‚¤
+ buy item from npc shop.
+S 00c9 <>.w {<index>.w <amount>.w}.4B*
+ NPC‚Ì‚¨“X‚É”„‚é
+ sell item to npc shop.
+R 00ca <type>.B
+ NPC‚©‚çw“üI—¹Btype=00¬Œ÷
+ response for buying item. type=00 meanse successetion.
+R 00cb <type>.B
+ NPC‚Ö”„‹pI—¹Btype=00¬Œ÷
+ response for selling item. type=00 means success.
+S 00cf <nick>.24B <type>.B
+ type=00 nick‚©‚ç‚Ì”­Œ¾Žó‚¯•t‚¯‹‘”Û (/ex nick)
+ deny speech from nick(/ex nick).
+ type=01 nick‚©‚ç‚Ì”­Œ¾Žó‚¯•t‚¯‹–‰Â (/in nick)
+ allow speech from nick(/in nick)
+S 00d0 <type>len.B
+ type=00 ‘S‚Ä‚Ì”­Œ¾Žó‚¯•t‚¯‹‘”Û (/exall)
+ deny all speech(/exall)
+ type=01 ‘S‚Ä‚Ì”­Œ¾Žó‚¯•t‚¯‹–‰Â (/inall)
+ allow all speech(/inall)
+R 00d1 <type>.B <fail>.B
+ fail=00 ”­Œ¾Žó‚¯•t‚¯‹‘”Û¬Œ÷
+ success to deny speech
+ fail=01 ”­Œ¾Žó‚¯•t‚¯‹‘”ÛŽ¸”s
+ fail to deny speech
+R 00d2 <type>.B <fail>.B
+ fail=00 ‘S”­Œ¾Žó‚¯•t‚¯‹‘”Û¬Œ÷
+ seccess to allow speech
+ fail=01 ‘S”­Œ¾Žó‚¯•t‚¯‹‘”ÛŽ¸”s
+ fail to alloe speech
+S 00d5 <len>.w <limit>.w <pub>.B <passwd>.8B <title>.?B
+ ƒ`ƒƒƒbƒg—§‚ÄB‚±‚±‚©‚çƒ`ƒƒƒbƒgŠÖŒW‚ª‘±‚­‚¯‚Ç’²‚ׂªŠÃ‚¢‚̂ŕ⊮‚æ‚ë
+ create chat room.(from now on, im not sure for packets about chat.)
+R 00d6 <fail>.B
+ ƒ`ƒƒƒbƒg—§‚ĉž“š
+ response to create chat room.
+R 00d7 <len>.w <owner ID>.l <chat ID>.l <limit>.w <users>.w <pub>.B <title>.?B
+ ‰æ–Ê“àƒ`ƒƒƒbƒgî•ñ
+ information for chat room in the screen.
+R 00d8 <chat ID>.l
+ ƒ`ƒƒƒbƒgÁ‹Ž
+ delete chat room.
+S 00d9 <chat ID>.l <passwd>.8B
+ ƒ`ƒƒƒbƒgŽQ‰Á—v¿
+ request to join the chat.
+R 00da <fail>.B
+ ƒ`ƒƒƒbƒgŽQ‰ÁŽ¸”s
+ fail to join the chat.
+R 00db <len>.w <chat ID>.l {<index>.l <nick>.24B}.28B*
+ ƒ`ƒƒƒbƒgŽQ‰ÁŽÒƒŠƒXƒg
+ list of people in the chat room.
+R 00dc <users>.w <nick>.24B
+ ƒ`ƒƒƒbƒg‚Ö‚ÌŽQ‰ÁŽÒ’ljÁ(?)
+ add person to the chat room.
+R 00dd <index>.w <nick>.24B <fail>.B
+ ƒ`ƒƒƒbƒg‚©‚çŽQ‰ÁŽÒ”²‚¯
+ leave the chat room.
+S 00de <len>.w <limit>.w <pub>.B <passwd>.8B <title>.?B
+ ƒ`ƒƒƒbƒgƒXƒe[ƒ^ƒX•ÏX
+ change chat room status.
+R 00df <len>.w <owner ID>.l <chat ID>.l <limit>.w <users>.w <pub>.B <title>.?B
+ ƒ`ƒƒƒbƒgƒXƒe[ƒ^ƒX•ÏX¬Œ÷
+ success to change chat room status.
+S 00e0 ?.l <nick>.24B
+ ƒ`ƒƒƒbƒgƒ‹[ƒ€Š—LŽÒ•ÏX—v‹?
+ request to change owner of the chat room?
+R 00e1 <index>.l <nick>.24B
+ ƒ`ƒƒƒbƒgŽQ‰ÁŽÒ”Ô†•t‚¯’¼‚µ?
+ re-number people in the chat room?
+S 00e2 <nick>.24B
+ ƒ`ƒƒƒbƒgkick
+ kick nick from chat room.
+S 00e3
+ ƒ`ƒƒƒbƒg”²‚¯
+ leave chat room.
+S 00e4 <ID>.l
+ Žæ‚èˆø‚«—v‹
+ request trade.
+R 00e5 <nick>.24B
+ Žæ‚èˆø‚«—v¿Žó‚¯
+ recieve a request to trade.
+S 00e6 <type>.B
+ type=03 Žæ‚èˆø‚«—v¿ok
+ trade ok.
+ type=04 Žæ‚èˆø‚«—v¿ƒLƒƒƒ“ƒZƒ‹
+ trade canceled.
+R 00e7 <fail>.B
+ Žæ‚èˆø‚«—v‹‰ž“š
+ response to requesting trade.
+ fail=00 ‹——£‚ª‰“‰ß‚¬
+ too far.
+ fail=03 —v¿Žó‚¯‚Ä‚­‚ꂽ
+ allowed the trade.
+ fail=04 ƒLƒƒƒ“ƒZƒ‹‚³‚ꂽ?
+ trade canceled?
+S 00e8 <index>.w <amount>.l
+ ƒAƒCƒeƒ€’ljÁBindex=0‚Åzeny’ljÁB³‹KƒNƒ‰ƒCƒAƒ“ƒg‚Å‚Ízeny‚Í00eb‚Ì’¼‘O‚Ì‚Ý
+ add item. index=0 means adding zeny. for official client, zeny can be added only in packet number 00eb.
+R 00e9 <amount>.l <type ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w
+ ‘ŠŽè•û‚©‚ç‚̃AƒCƒeƒ€’ljÁ
+ added item from other character.
+R 00ea <index>.w <fail>.B
+ fail=00 ƒAƒCƒeƒ€’ljÁ¬Œ÷
+ success to add item.
+ fail=01 ’ljÁŽ¸”sB‘ŠŽè‘¤d—ʃI[ƒo
+ fail to add item. the player was over weighted.
+S 00eb
+ ƒAƒCƒeƒ€’ljÁŠ®—¹(ok‰Ÿ‚µ)
+ completed adding item.(cliecked OK)
+R 00ec <fail>.B
+ fail=00 Ž©•ª‚©‚ç‚ÌokŽó—Ì
+ recieved "OK" from myself
+ fail=01 ‘ŠŽè‚©‚ç‚ÌokŽó—Ì
+ recieved "OK" from the other.
+S 00ed
+ Žæ‚èˆø‚«ƒLƒƒƒ“ƒZƒ‹
+ trade canceled.
+R 00ee
+ Žæ‚èˆø‚«‚ªƒLƒƒƒ“ƒZƒ‹‚³‚ê‚Ü‚µ‚½
+ message of "trade canceled"
+S 00ef
+ Žæ‚èˆø‚«‹–‘ø(trade‰Ÿ‚µ)
+ trade OKed. (cliecked Trade)
+R 00f0
+ Žæ‚èˆø‚«Š®—¹
+ trade completed.
+R 00f2 <num>.w <limit>.w
+ ƒJƒvƒ‰‚³‚ñ‹–—eƒAƒCƒeƒ€ŒÂ”&Œ»ó
+ number of item that capra can stock and number of item that capra stocks now.
+S 00f3 <index>.w <amount>.l
+ ƒJƒvƒ‰‚³‚ñ‘qŒÉ‚ɃAƒCƒeƒ€•ú‚èž‚Ý
+ put item to capra's warehouse.
+R 00f4 <index>.w <amount>.l <type ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w
+ ƒJƒvƒ‰‚³‚ñ‘qŒÉ‚̃AƒCƒeƒ€’ljÁ
+ add item to capra's warehouse.
+S 00f5 <index>.w <amount>.l
+ ƒJƒvƒ‰‚³‚ñ‘qŒÉ‚©‚çƒAƒCƒeƒ€Žæ‚èo‚µ
+ take out item from capra's warehouse.
+R 00f6 <index>.w <amount>.l
+ ƒJƒvƒ‰‚³‚ñ‘qŒÉ‚̃AƒCƒeƒ€íœ
+ delete item in the capra's warehouse.
+S 00f7
+ ƒJƒvƒ‰‚³‚ñ‘qŒÉ•Â‚¶
+ request to close capra's warehouse.
+R 00f8
+ ƒJƒvƒ‰‚³‚ñ‘qŒÉ•Â‚¶‰ž“š
+ response to close capra's warehouse.
+S 00f9 <party name>.24B
+ ƒp[ƒeƒBì¬
+ create party.
+R 00fa <fail>.B
+ fail=00 쬬Œ÷
+ success to create party.
+R 00fb <len>.w <party name>.24B {<ID>.l <nick>.24B <map name>.16B <leader>.B <offline>.B}.46B*
+ ƒp[ƒeƒBî•ñ‚Ü‚Æ‚ß‚Ä‘—‚è
+ packet for various information about party.
+S 00fc <ID>.l
+ ƒp[ƒeƒBŠ©—U‚·‚é
+ invate player to the party.
+R 00fd <nick>.24B <fail>.B
+ fail=00 ‘ŠŽè‚ÍŠù‚Ƀp[ƒeƒB‚É“ü‚Á‚Ä‚¢‚½
+ the player is already in other party.
+ fail=01 ‘ŠŽè‚É‹‘”Û‚³‚ꂽ
+ invitaion was denied.
+ fail=02 Š©—U¬Œ÷
+ success to invite,
+R 00fe <ID>.l <party name>.24B
+ ƒp[ƒeƒB‚É—U‚í‚ꂽ
+ invited to party.
+S 00ff <ID>.l <fail>.l
+ ƒp[ƒeƒB‚É—U‚í‚ꂽŽž‚Ì•Ô“šBfail=1 ok•Ô“š?
+ response when player was invited to party. fail=1 means OK?
+R 0100
+ ? ƒp[ƒeƒBŠÖ˜A?
+ unknown. related to party?
+S 0101 <exp>.w <item?>.w
+ ƒp[ƒeƒBÝ’è•ÏX
+ change party setting.
+R 0102 <exp>.w <item?>.w
+ ƒp[ƒeƒBݒ茻ó? exp=2‚Ìꇂ͌ö•½”z•ªÝ’莸”s?
+ party setting status. when exp=2, fail to set "equality for experience"?
+R 0104 <ID>.l ?.l <X>.w <Y>.w <offline>.B <party name>.24B <nick>.24B <map name>.16B
+ ƒp[ƒeƒB1l•ªî•ñXV
+ information about a one player in th party.
+R 0105 <ID>.l <nick>.24B <fail>.B
+ nick‚³‚ñ‚ªƒp[ƒeƒB‚©‚ç—£’E
+ nick leaves the party.
+R 0106 <ID>,l <HP>.w <MaxHP>.w
+ ƒp[ƒeƒBƒƒ“ƒoHPXV
+ update HP of party members.
+R 0107 <ID>.l <X>.w <Y>.w
+ ƒp[ƒeƒBƒƒ“ƒoˆÊ’uXV
+ update coordinates of party members.
+S 0108 <len>.w <message>.?B
+ ƒp[ƒeƒB“à”­Œ¾
+ send speech for party memebers.
+R 0109 <len>.w <ID>.l <message>.?B
+ ƒp[ƒeƒB“à”­Œ¾ŽóM
+ receive speech for party memebers.
+R 010a <type ID>.w
+ MVPƒAƒCƒeƒ€Žæ“¾
+ get MVP item.
+R 010b <exp>.l
+ MVPŒoŒ±’lŽæ“¾
+ get MVP experience.
+R 010c <ID>.l
+ MVPƒLƒƒƒ‰•\Ž¦
+ display MVP character.
+R 010e <skill ID>.w <lv>.w <sp>.w <range>.w <up>.B
+ ƒXƒLƒ‹î•ñXVBsp‚Í–¢Žg—p?
+ update skill sinformation. sp is unused?
+R 010f <len>.w {<skill ID>.w <target type>.w ?.w <lv>.w <sp>.w <range>.w <skill name>.24B <up>.B}.37B*
+ ƒXƒLƒ‹î•ñ‚̉òBskill name‚͈ꕔ—¬‚ê‚Ä—ˆ‚È‚¢•¨‚ª‚ ‚é„AL_PNEUMA,PR_SLOWPOISON“™
+ bunch of information about skill. some of skill name is not send (AL_PNEUMA, PR_SLOWPOISON etc).
+ target type‚Í0-ƒpƒbƒVƒuA1-“GA2-êŠA4-‘¦Žž”­“®A16-–¡•û
+ target type is 0 for novice skill, 1 for enemy, 2 for place, 4 for immediate invoke, 16 for party member
+ lv=0 up=0‚Ìꇂ̓ŠƒXƒg‚Éo‚µ‚Ä‚È‚¢?
+ it will not be on list when lv=0 up=0?
+R 0110 <skill ID>.w <basic type>.w ?.w <fail>.B <type>.B
+ fail=00‚ÌŽž‚ɃXƒLƒ‹—˜—pŽ¸”s?
+ fail to use skill when fail=00?
+ type 00:basic type‚Ì•û 01:SP•s‘« 02:HP•s‘« 03:memo–³‚µ 04:delay’†
+ type 00:basic type 01:lack of SP, 02:lack of HP, 03:no memo, 04:in delay
+ 05:‚¨‹à–³‚µ(‚ß‚Ü[) 06:•Ší‚ª‚æ‚낵‚­‚È‚¢ 07:ÔƒWƒFƒ€–³‚µ 08:ƒWƒFƒ€–³‚µ 09:“ä
+ 05:lack of money, 06:weapon does not satisfy, 07:no red jewel, 08:no blue jewel, 09:unkown
+ basic type 00:Žæ‚èˆø‚« 01:emotion 02:À‚è 03:ƒ`ƒƒƒbƒg 04:ƒp[ƒeƒB
+ basic type 00:trade 01:emotion 02:sit down, 03:chat, 04:party
+ 05:shout? 06:PK 07:ƒ}ƒi[ƒ|ƒCƒ“ƒg
+ 05:shout? 06:PK, 07:manner point
+R 0111 <skill ID>.w <target type>.w ?.w <lv>.w <sp>.w <range>.w <skill name>.24B <up>.B
+ 010f‚Ì1‚•ªBƒÀ2‚¾‚Æ–¢Žg—p?
+ just one skill information. not used in beta2?
+S 0112 <skill ID>.w
+ ƒXƒLƒ‹lvup—v‹
+ request to skill level up.
+S 0113 <level>.w <skill ID>.w <ID>.l
+ ID‚ðƒ^[ƒQƒbƒg‚Éskill‚ðŽg‚¤
+ use skill to the target.
+R 0114 <skill ID>.w <src ID>.l <dst ID>.l <server tick>.l <src speed>.l <dst speed>.l <param1>.w <param2>.w <param3>.w <type>.B
+ UŒ‚ŒnƒXƒLƒ‹ƒGƒtƒFƒNƒg@
+ skill effect for attack.
+ type=04 ‰Î•Ç‚ÅŠÏ‘ª type=06‚Æ‚Ù‚Ú“¯‚¶?
+ rtpe=04 observed when firewall was used. is that the almost same as type=06?
+ type=06 ’P”­‚à‚Ì? param1‚̓_ƒ[ƒW‡ŒvAparam2‚ÍlevelAparam3‚Í1ŒÅ’è‚Æ—\‘z
+ type=06 skill for just one hit? param1 is total damage, param2 is level, param3 will always stay 1.
+ type=08 ˜A‘Å‚à‚Ì? param1‚̓_ƒ[ƒW‡ŒvAparam2‚ÍlevelAparam3‚Í•ªŠ„”‚Æ—\‘z
+ type=08 skill for multiple hits? param1 is totak damage, param2 is level, param3 will be a number of hit.
+R 0115 <skill ID>.w <src ID>.l <dst ID>.l <server tick>.l <src speed>.l <dst speed>.l <X>.w <Y>.w <param1>.w <param2>.w <param3>.w <type>.B
+ ’e‚«”ò‚΂µ—L‚èUŒ‚ŒnƒXƒLƒ‹ƒGƒtƒFƒNƒg
+ blow up type skill effect.
+ type=05 ƒ_ƒ[ƒW&’e‚«”ò‚΂µBparam1‚̓_ƒ[ƒW‡ŒvAparam2‚ÍlevelAparam3‚Í•ªŠ„”‚Æ—\‘z
+ type=05 damage and blow up. param1 is total damage, param2 is level, param3 will be a number of hit.
+ type=06 ”šS’n? ­‚È‚­‚Æ‚àparam1‚̓Sƒ~‚Ì–Í—l
+ type=06 a point of explorsion? param1 is unused at least.
+S 0116 <level>.w <skill ID>.w <X>.w <Y>.w
+ (X,Y)‚ðƒ^[ƒQƒbƒg‚Éskill‚ðŽg‚¤
+ use skill at (X,Y).
+R 0117 <skill ID>.w <src ID>.l <val>.w <X>.w <Y>.w <server tick>.l
+ ꊑŠŽè‚̃XƒLƒ‹ƒGƒtƒFƒNƒg•\Ž¦Bval‚̓Œƒxƒ‹‚©Aˆê•”ŒÅ‚³?(•X•Ç)
+ display skill effect at (X,Y). is val level? or how hard it is (like ice wall)?
+S 0118
+ UŒ‚ƒLƒƒƒ“ƒZƒ‹
+ cancel to attack
+R 0119 <ID>.l <param1>.w <param2>.w <param3>.w ?.B
+ Œ©‚½–Ú•ÏX
+ change looks.
+ param1=02 ƒtƒƒXƒgƒ_ƒCƒo‚Å“€‚è’Ђ¯?
+ param1=02 flozen diva?
+ param2=01 “Å?
+ param2=01 poison?
+ param2=20 ANGELUSó‘Ô?
+ param2=20 ANGELUS?
+ param3=01 ƒTƒCƒg‚©ƒ‹ƒƒbƒ`?
+ param3-01 site or ruwatch? (i dont know skill names in english :()
+ param3=0b ƒnƒCƒfƒBƒ“ƒOó‘Ô?
+ param3=0b hiding?
+ param3=0b ƒNƒ[ƒLƒ“ƒOó‘Ô?
+ param3-0b cloking?
+ param3=0d ƒJ[ƒg•t‚«
+ param3=0d with cart
+ param3=0e ‘é•t‚«
+ param3-0e with hawk
+ param3=0f ƒyƒRƒyƒRæ‚è
+ param3=0f with pekopeko
+
+R 011a <skill ID>.w <val>.w <dst ID>.l <src ID>.l <fail>.B
+ ”ñƒ_ƒ[ƒWŒnƒXƒLƒ‹•\Ž¦Bƒq[ƒ‹‚Ìê‡val‚͉ñ•œ—Ê
+ display no-damage skill effect. val is an amount of HP cured when it's heal.
+ fail=00‚Ìꇎ¸”s‚Û‚¢‚ªAƒXƒ`[ƒ‹ˆÈŠO‚Å‚ÍŒ©‚½Ž––³‚µ
+ fail=00 must mean fail, but i havent seend it except steal.
+S 011b <skill ID>.w <map name>.16B
+ 011c‚ւ̉ž“šBŽg‚í‚È‚¢ê‡"cancel"‚ð‘—‚é
+ response to packet number 011c. send "cancel" for no-use.
+R 011c <skill ID>.w <map1>.16B <map2>.16B <map3>.16B <map4>.16B
+ ƒeƒŒƒ|/ƒ|ƒ^‚ÌꊑI‘ðB
+ select place for teleport or portal warp.
+ ƒeƒŒƒ|‚Ìê‡ARandom/ƒZ[ƒuêŠAƒ|ƒ^‚Ìê‡AƒZ[ƒuêŠ/memo1/memo2/memo3‚Æ‚È‚é
+ ƒ}ƒbƒv–¼‚Ì‚Ý‘—‚ç‚ê‚é
+ in case of teleport, Ramdom/save point will be sent,
+ in case of portal warp, save point/memo1/memo2/memo3 will be sent.
+ only map name wil be sent.
+S 011d
+ Œ»Ý‹‚éŠ‚ðƒƒ‚—v‹
+ request to take a memo at this point.
+R 011e <fail>.B
+ fail=00 ƒƒ‚¬Œ÷
+ success to take memo.
+ fail=01 ƒƒ‚Ž¸”s
+ fail to take memo.
+R 011f <dst ID>.l <src ID>.l <X>.w <Y>.w <type>.B <fail>.B
+ ƒXƒLƒ‹Œø”\’nì¬
+ create ground effect for skills like firewall.
+ type 7e:SW 7f:‰Î•Ç 80:ƒ|ƒ^”­“®’† 81:ƒ|ƒ^”­“®‘O 83:ƒTƒ“ƒN 85:ƒtƒjƒ…[ƒ}
+ type 7e:SW, 7f:firewall, 80:portal warp(invoking), 81:portal warp(before invoking), 83:sank, 85:funewma( i really don know skill names :()
+ 86:ƒo[ƒ~ƒŠƒIƒ“ 8c:ƒg[ƒL[ƒ{ƒbƒNƒX”­“®Žž 8d:•X•Ç 8e:‚­‚ ‚®‚Ü‚¢‚â[ 91:‚ ‚ñ‚­‚é‚·‚Ë‚ 
+ 86: bermillion, 8c:talky box(invoked), 8d:frost diva, 8e:kuagumire, 91:uncle snear
+ 93:‚ç‚ñ‚Ç‚Ü‚¢‚ñ 97:?? 99:ƒg[ƒL[ƒ{ƒbƒNƒX”­“®‘O
+ 93:land mine, 97:??, 99:talky box(befor invoked)
+ ‘¼î•ñ‹‚Þ
+R 0120 <ID>.l
+ ƒXƒLƒ‹Œø”\’nÁ‹Ž
+ delete ground effect.
+R 0121 <num>.w <num limit>.w <weight>.l <weight limit>l
+ ƒJ[ƒg‚ÌŽí—Þ&d‚³‚ÌŒ»Ý’l&ãŒÀ
+ kind of cart, weight and max weight.
+R 0122 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <equip type>.w <equip point>.w <attribute?>.B <refine>.B <card>.4w}.20B*
+ ƒJ[ƒg“àƒAƒCƒeƒ€B‘•”õ•i
+ equipments in cart.
+R 0123 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B}.10B*
+ ƒJ[ƒg“àƒAƒCƒeƒ€BÁ–Õ•i/ŽûW•i
+ cunsumptive and collector items in cart.
+R 0124 <index>.w <amount>.l <item ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w
+ ƒJ[ƒg‚ɃAƒCƒeƒ€’ljÁ
+ add item to cart.
+R 0125 <index>.w <amount>.l
+ ƒJ[ƒg‚©‚çƒAƒCƒeƒ€íœ
+ delete item in cart.
+S 0126 <index>.w <amount>.l
+ ƒJ[ƒg‚ɃAƒCƒeƒ€‚ð“ü‚ê‚é
+ put item to cart.
+S 0127 <index>.w <amount>.l
+ ƒJ[ƒg‚©‚çƒAƒCƒeƒ€‚ðŽæ‚èo‚·
+ take out item from cart.
+S 0128 <index>.w <amount>.l
+ ƒJƒvƒ‰‚³‚ñ‚©‚çƒJ[ƒg‚ÖƒAƒCƒeƒ€‚ðˆÚ‚·
+ move item from capra's warehouse to cart.
+S 0129 <index>.w <amount>.l
+ ƒJ[ƒg‚©‚çƒJƒvƒ‰‚³‚ñ‚ÖƒAƒCƒeƒ€‚ðˆÚ‚·
+ move item from cart to capra's warehouse.
+R 012c <fail>.B
+ fail=00 d—ʧŒÀ‚ð‰z‚¦‚ăJ[ƒg‚ɃAƒCƒeƒ€‚ð“ü‚ê‚ç‚ê‚Ü‚¹‚ñ‚Å‚µ‚½?
+ fail=00 over the weight and could not add item to cart.
+R 012d <num>.w
+ ˜I“XŠJÝBƒAƒCƒeƒ€ƒŠƒXƒg—v‹Bnum‚Í’u‚¯‚éÅ‘å”
+ create shop (marchant skill). request item list. num is a number of kind of item that can be sell.
+S 012e
+ ˜I“X•Â½
+ close shop.
+S 012f <len>.w <message>.80B {<index>.w <amount>.w <value>.l}.8B*
+ ˜I“XŠJÝA˜I“X–¼&ƒAƒCƒeƒ€,’l’iƒŠƒXƒg
+ create shop, shop name, item, price list.
+S 0130 <ID>.l
+ ˜I“XƒAƒCƒeƒ€ƒŠƒXƒg—v‹
+ request item list for shop( not npc shop).
+R 0131 <ID>.l <message>.80B
+ ˜I“XŠÅ”•\Ž¦
+ display shop name tag.
+R 0132 <ID>.l
+ ˜I“XŠÅ”ÂÁ‹Ž
+ delete shop name tag.
+R 0133 <len>.w <ID>.l {<value>.l <amount>.w <index>.w <type>.B <item ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w}.22B
+ ˜I“XƒAƒCƒeƒ€ƒŠƒXƒg
+ item list for shop(not npc shop).
+S 0134 <len>.w <ID>.l {<amount>.w <index>.w}.4B*
+ ˜I“XƒAƒCƒeƒ€w“ü
+ buy item from shop (not npc).
+R 0135 <index>.w <amount>.w <fail>.B
+ ˜I“XƒAƒCƒeƒ€w“üŽ¸”sBfail‚ÍŒ´ˆö
+ fail to buy item from non npc shop. fail tells you reasons.
+R 0136 <len>.w <ID>.l {<value>.l <index>.w <amount>.w <type>.B <item ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w}.22B*
+ ˜I“XŠJݬŒ÷
+ success to create non-npc-shop.
+R 0137 <index>.w <amount>.w
+ ˜I“XƒAƒCƒeƒ€”Ì”„•ñ
+ report of selling item.
+R 0139 <ID>.l <X>.w <Y>.w <X2>.w <Y2>.w <range>.w
+ ID‚Ì“G‚Í(X,Y)‚É‹‚ÄŽ©•ª‚Í(X2,Y2)‚É‹‚é‚Ì‚ÅUŒ‚‚ª“Í‚«‚Ü‚¹‚ñ‚Å‚µ‚½
+ the enemy at(X,Y) was too far to attack from my coordinate (X2,Y2).
+ UŒ‚‰Â”\‹——£‚Írange‚È‚Ì‚ÅA‹ßŠñ‚Á‚ĉº‚³‚¢?
+ possible range to attack enemy is "range", so be closer?
+R 013a <val>.w
+ UŒ‚ŽË’ö
+ attack range.
+R 013b <type>.w
+ ŠeŽíƒƒbƒZ[ƒW•\Ž¦B3=–‘•”õ‚Å‚«‚Ü‚µ‚½
+ various message. 3="arrow has been equiped"
+R 013c <ID>.w
+ ‘•”õ‚³‚ꂽ–î‚ÌItemIDB0‚ÅA–¢‘•”õó‘ÔB
+ item id of equiped arrow. 0 means no arrow is equiped.
+R 013d <type>.w <val>.w
+ HP‰ñ•œƒXƒLƒ‹/SP‰ñ•œƒXƒLƒ‹‚É‚æ‚é‰ñ•œ
+ recovery of HP/SP by HP/SP recovery skill.
+ type=5‚È‚çHP type=7‚È‚çSP
+ type=5 is HP, type=7 is SP.
+R 013c <index>.w
+@@ ‘•”õ‚µ‚Ä‚¢‚é–î
+ id of equiped arrow.
+
+R 013e <src ID>.l <dst ID>.l <X>.w <Y>.w <lv?>.w ?.w <wait>.l
+ ƒXƒLƒ‹‰r¥’†BPC/NPC‚ª‘ŠŽè‚ÌꇂÍ(X,Y)‚Í0Bꊂªƒ^[ƒQƒbƒg‚ÌꇂÍdst ID‚Í0‚É‚È‚é
+ skill has been casting. (X,Y) will be 0 when target is player character or NPC. dst ID will be 0 when target is place.
+
+ 0x013e ‚Ì offset+16(dword) ‚̓XƒLƒ‹‘®«‚Å‚·(’²¸Ï)B
+ offset+16(dword) in packet number 0x013e is skill attribute.
+
+ 00:–³ 01:… 02:’n 03:‰Î 04:•— 05:“Å 06:¹ 07:ˆÃ 08:”O 09:Ž€
+ 00:none, 01:water, 02:ground, 03:fire, 04:wind, 05:poinson, 06:holly, 07:dark, 08:spirit(i don know how to translate.), 09:death
+ «—ˆ“I‚ÉA‰r¥’†‚̃GƒtƒFƒNƒg‚ª‘®«‚Å•Ï‚í‚é‚Ì‚©‚ÆB
+ casting effect might differ by skill attribute in the future.
+
+ wait‚Íms’PˆÊ‚©‚È?
+ wait in mili second?
+R 0141 <type>.l <base>.l <bonus>.l
+ ƒXƒe[ƒ^ƒXî•ñBtype‚Í0d‚©‚ç12‚ª‡‚ÉSTR,AGI,VIT,INT,DEX,LUK‚ɑΉž
+ information for status. type is 0d-12 for STR,AGI,VIT,INT,DEX,LUK.
+ base+bonus‚Æ•\Ž¦‚³‚ê‚é
+ base+bonus will be displayed.
+R 0144 <ID>.l <type>.l <X>.l <Y>.l <point ID>.B <color>.3B ?.B
+ ˆÄ“àˆõ—pAƒ}ƒbƒvãƒAƒCƒRƒ“•\Ž¦ƒpƒPƒbƒg
+ for guid npc, packet for display icon on map.
+ type=1 ƒAƒCƒRƒ“‚ð•\Ž¦
+ display icon.
+ type=2 ƒAƒCƒRƒ“‚ðÁ‹Ž
+ delete icon.
+R 0145 <file name>.16B <type>.B
+ (¡‚ÌŠ)ƒJƒvƒ‰‚³‚ñcutin•\Ž¦
+ display capra picture(at this time).
+ type=02 •\Ž¦
+ display.
+ type=ff Á‹Ž
+ delete.
+S 0146 <ID>.l
+ ID‚ÌNPC‚Ƃ̉ï˜bBCLOSEƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚½Back–³‚µ‚ÉNPCƒƒbƒZ[ƒWƒEƒBƒ“ƒh‚𓯎ž‚ɕ‚¶‚é
+ talk to npc with ID. Clicked CLOSE button.
+R 0147 <skill ID>.w <target type>.w ?.w <lv>.w <sp>.w <range>.w <skill name>.24B <up>.B
+ ƒAƒCƒeƒ€—˜—p‚ÌŒ‹‰ÊˆêŽž“I‚É“¾‚ç‚ꂽƒXƒLƒ‹î•ñ
+ effect for skill by using item.
+S 0148 <ID>.l
+ ƒŠƒUƒŒƒNƒVƒ‡ƒ“‚Ì‘ŠŽèŒˆ‚ß? @ ƒÀ1
+ decide target of a skill rezarection? in beta1.
+S 0149 <ID>.l <type>.B
+ ID‚Ƀ}ƒi[ƒ|ƒCƒ“ƒg‚ð—^‚¦‚éBtype=00 ƒvƒ‰ƒX type=01 ƒ}ƒCƒiƒX
+ give manner point to ID. type=00 is plus, type=01 is minus.
+R 014a <fail>.l
+ ƒ}ƒi[ƒ|ƒCƒ“ƒg‚ð—^‚¦‚½Œ‹‰ÊBfail=0 ¬Œ÷ fail=1 Ž¸”s
+ result of giving manner point. fail=0 is success, fail=1 is fail.
+R 014b <type>.B <nick>.24B
+ ƒ}ƒi[ƒ|ƒCƒ“ƒg‚ð–á‚Á‚½Btype=00 ƒvƒ‰ƒX type=01 ƒ}ƒCƒiƒX
+ get manner point. type=00 is plus, type-01 is minus.
+R 014C <len>.w (<type>.l <guildID>.l <guild name>.24B).*
+ “¯–¿¥“G‘΃Mƒ‹ƒh•\Ž¦
+ display alliance and opposition guild.
+ type=0 “¯–¿
+ alliance.
+ type=1 “G‘Î
+ opposition.
+S 014D
+@@ ƒMƒ‹ƒhî•ñ•\Ž¦ŠJŽnH
+ start of guild information?
+R 014E <type?>.l
+@@ type=0x57 ˆê”ʃMƒ‹ƒh’cˆõ
+ normal guild member.
+@@ type=0xD7 ƒMƒ‹ƒhƒ}ƒXƒ^[
+ guild master.
+S 014F <page>.l
+@@ ƒMƒ‹ƒh•\Ž¦ƒ^ƒu‘—M
+ send packet for guild "DISPLAY" tab.
+R 0150 <guildID>.l <guildLv>.l <connum>.l <’èˆõ>.l <Avl.lvl>.l ?.l <next_exp>.l ?.16B <guild name>.24B <guild master>.24B ?.16B
+@@ ƒMƒ‹ƒhî•ñ
+ guild info.
+S 0151 <guild ID>.l
+ ƒGƒ“ƒuƒŒƒ€—v‹
+ request for guild emblem.
+R 0152 <len>.w <guild ID>.l <emblem ID?>.l <emblem data>.?B
+ ƒGƒ“ƒuƒŒƒ€ƒCƒ[ƒW‘—•t
+ return emblem image.
+R 0154 <len>.w {<accID>.l <charactorID>.l <”¯Œ^>.w <”¯‚ÌF>.w <«•ÊH>.w <job>.w <lvl?>.w <ã”[ŒoŒ±’l>.l <online>.l <Position>.l ?.50B <nick>.24B}*
+ ƒMƒ‹ƒhƒƒ“ƒoƒŠƒXƒg?
+ guild member list?
+S 0159 <guildID>.l <accID>.l <charID>.l <mess>.40B
+@@ ƒMƒ‹ƒh’E‘Þ‘—M
+ send packet for leaving guild.
+R 015A <nic>.24B <mess>.40B
+@@ ƒMƒ‹ƒh’E‘Þ(‘Sˆõ)ŽóM
+ receive packet for leaving guild(all members).
+S 015B <guildID>.l <accID>.l <charID>.l <mess>.40B
+@@ ƒMƒ‹ƒh’Ç•ú‘—M
+ send packet for kicking member out of the guild.
+R 015C <nick>.24B <mess>.40B <ƒAƒJƒEƒ“ƒg‚h‚c>.24B
+@@ ƒMƒ‹ƒh’Ç•úi‘SˆõjŽóM
+ receive packet for kicking member out of the guild.(all member)
+R 0163 <len>.w <nick>.24B <accountID>.24B <kicking reason>.40B
+
+S 0165 <myaccID>.l <guild name>.24B
+@@ ƒMƒ‹ƒhì¬
+ create guild
+R 0166 <len>.w ?.28B*
+ –ðE–¼ƒŠƒXƒg?
+ list for roll of members?
+R 0167 <type>.b
+ ƒMƒ‹ƒh쬇”Û
+ response to vreating guild.
+ type = 0 ƒMƒ‹ƒh쬬Œ÷
+ success.
+ type = 2 “¯–¼‚̃Mƒ‹ƒh‚ª‚ ‚é
+ there is a guild with the same name.
+S 0168 <TargetAccID>.l <sourceAccID>.l <myCharactorID>.l
+@@ ƒMƒ‹ƒhŠ©—U
+ invite to the guild.
+R 0169 <type>.B
+@@ ƒMƒ‹ƒhŠ©—U‹‘”Û‚³‚ꂽ
+ invitation denied.
+R 016A <guild ID>.l <guild name>.24B
+@@ ƒMƒ‹ƒhŠ©—U‚³‚ꂽ
+ invited to the guild.
+S 016B <guild ID>.l <type>.l
+@@ ƒMƒ‹ƒhŠ©—U•ÔM
+ response to invitaion for joining to guild.
+@@ type=0 ‹‘”Û‚·‚é
+ deny.
+@@ type=1 ‹–‘ø‚·‚é
+ OK.
+R 016c <guild ID>.l ?.13B <guild name>.24B
+ loginŽžƒMƒ‹ƒhî•ñ
+ guild information when loged in.
+R 016d <ID>.l <charactor ID>.l <online>.l
+ ƒMƒ‹ƒhƒƒ“ƒo‚ªlogin‚µ‚½”²‚¯‚½“™
+ information about guild member loged in or loged out etc.
+R 016f <message>.180B
+ ƒMƒ‹ƒh‚¨‘è–Ú?
+ guild message?
+S 016E <guildID>.l <mess1>.60B <mess2>.120B
+@@ ƒMƒ‹ƒh’mÝ’è
+ set guild announcement.
+R 016F <mess1>.60B <mess2>.120B
+@@ ƒMƒ‹ƒh’m
+ guild announcement.
+S 0170 <TargetAccID>.l <sourceAccID>.l <myCharactorID>.l
+@@ “¯–¿—v¿Š©—U
+ invite the guild to be alliance.
+R 0171 <SorceAccID>.l <guild name>.24B
+@@ “¯–¿—v¿Š©—U‚³‚ꂽ
+ invited to be a alliance.
+S 0172 <SorceAccID>.l <type>.l
+@@ “¯–¿—v¿•ÔM
+ response for invitiation to be alliance.
+@@ type=0 ‹‘”Û‚·‚é
+ deny.
+@@ type=1 ‹–‘ø‚·‚é
+ OK.
+R 0173 <type>.B
+ type = 0 ‚·‚Å‚É“¯–¿ŠÖŒW
+ the guild is already alliance.
+@@ type = 1 “¯–¿‹‘”Û‚³‚ꂽ
+ denied to be alliance.
+@@ type = 2 “¯–¿¬Œ÷
+ success to invite to be alliance.
+R 0177 <len>.w <index>.w*
+ ŠÓ’è‰Â”\ƒAƒCƒeƒ€ƒŠƒXƒg
+ list of items that need to be judge( i mean unkown items.)
+S 0178 <index>.w
+ ƒAƒCƒeƒ€ŠÓ’è
+ judge item.
+R 0179 <index>.w <fail>.B
+ ƒAƒCƒeƒ€ŠÓ’茋‰ÊBfail=00‚ŬŒ÷Bfail=01‚Á‚Ä‚ ‚é‚Ì‚©?
+ response to judging item. fail=00 is success. is there fail=01?
+S 017A <index>.w
+@@ ƒJ[ƒh‚vƒNƒŠƒbƒN
+ card is double clicked.
+R 017B <len>.w {<index>.w}*
+@@ ƒJ[ƒh‘}“ü‚Å‚«‚éƒAƒCƒeƒ€Index”Ô†
+ item index number for items that can be inserted card.
+S 017C <SrcIndex>.w <DescIndex>.w
+@@ Src ‚ðDesc‚É“Ë‚Áž‚Þ
+ insert Src to Desc.
+R 017D <DescIndex>.w <SrcIndex>.w <fail>.b
+@@ Src ‚ðDesc‚É“Ë‚Áž‚Ý<fail> 0=¬Œ÷ 1=Ž¸”sH
+ response to insert Src to Desc. fail=0 is success, fail=01 is fail?
+S 017e <len>.w <message>.?B
+ ƒMƒ‹ƒh“àƒƒbƒZ[ƒW”­Œ¾
+ send speach for guild members.
+R 017f <len>.w <message>.?B
+ ƒMƒ‹ƒh“àƒƒbƒZ[ƒWŽóM
+ receive guild message.
+R 0182 <accID>.l <charactorID>.l <hair type>.w <hair color>.w <sex?>.w <job>.w <lvl?>.w <experience?>.l <online>.l <Position>.l ?.50B <nick>.24B
+
+R 0187 <account ID>.l
+ aliveM†?
+ alive signal?
+R 0188 <fail?>.w <index>.w <val>.w
+ •Ší¸˜BBŒ‹‰Ê+val•Ší‚É
+ weapon refiling. result+val to weapon
+R 0189 ?.w
+ “äBƒeƒŒƒ|Ž¸”s?
+ unknown. fail to teleport?
+S 018a ?.w
+ ƒQ[ƒ€I—¹
+ game quited.
+R 018b <fail>.w
+ ƒQ[ƒ€I—¹/ƒLƒƒƒ‰ƒZƒŒ‰ž“šBfail=0¬Œ÷Bfail=1Ž¸”s?
+ game quited/character select sever response. fail=0 is success, fail=1 is fail?
+R 018C <MonsID>.w <class>.w <size>.w <HP>.w <?>.w <deffence>.w <kind of monster>.w <magic deffence>.w <attribute>.w <anti-attribute?>.9b
+ wiz‚Ì“G‚̃Zƒ“ƒXŒ‹‰Ê
+ response to sense skill by wizard.
+ 0 ¬Œ^
+ small
+ 1 ’†Œ^
+ middle
+ 2 ‘åŒ^
+ big
+R 0191 <ID>.l <message>.80B
+ ƒg[ƒL[ƒ{ƒbƒNƒX‚̃ƒbƒZ[ƒW
+ message of talky box.
+S 0193 <ID>.l
+ ƒMƒ‹ƒhƒƒ“ƒo–¼‘Oˆø‚«?
+ name search for guild member?
+R 0194 <ID>.l <nick>.24B
+ ƒMƒ‹ƒhƒƒ“ƒo–¼‘Oˆø‚«‰ž“š?
+ response to name search for guild member?
+R 0195 <ID>.l <nick>.24B <party name>.24B <guild name>.24B <class name>.24B
+ ƒMƒ‹ƒhŠ‘®PC‚ÌꇂÌ0094•Ô“š
+ response to packet number 0094 that if the player joined guild.
+R 0196 <type>.w <ID>.l
+ ‘‹­ŒnƒXƒLƒ‹Žg—pŽž‚̃ƒbƒZ[ƒWFXBID‚Ítarget‚ÆŽv‚í‚ê‚邪Ž©•ª‘ŠŽè‚Ì‚Ý‚µ‚©—ˆ‚È‚¢?
+ various message of skill that effect status. ID must be target, but only m ID and other's ID are sent?
+ type=00 2HQ•t—^uUŒ‚‘¬“x‚ª‘‰Á‚µ‚Ü‚µ‚½Bv
+ 2HQ casted. "attack speed insreased."
+ type=01 2HQ‰ðœuUŒ‚‘¬“x‚ªŒ¸­‚µ‚Ü‚µ‚½Bv
+ 2HQ ended. "attack speed decreased."
+ type=02 IMPOSITIO•t—^u•Ší‚ÌUŒ‚—Í‚ª‘‰Á‚µ‚Ü‚µ‚½Bv
+ IMPOSITIO casted. "power of the weapon increased."
+ type=03 IMPOSITIO‰ðœu•Ší‚ÌUŒ‚—Í‚ªŒ¸­‚µ‚Ü‚µ‚½Bv
+ IMPOSITIO ened. "power of the weapon decreased."
+ type=04 uƒXƒLƒ‹Žg—pƒfƒBƒŒƒC‚ªŒ¸­‚µ‚Ü‚µ‚½Bv
+ "casting delay become short"
+ type=05 uƒXƒLƒ‹Žg—pƒfƒBƒŒƒC‚ªŒ³‚É–ß‚è‚Ü‚µ‚½Bv
+ "casting delay return to defailt"
+ type=06 u•Ší‚É“Å‘®«‚ª•t—^‚³‚ê‚Ü‚µ‚½Bv
+ "attribute of poison is given to the weapon"
+ type=07 ASPERSIO•t—^u•Ší‚ɹ‘®«‚ª•t—^‚³‚ê‚Ü‚µ‚½Bv
+ ASPERSIO casted. "attribute of holly is given to the weapon"
+ type=08 ASPERSIO‰ðœu•Ší‚Ì‘®«‚ªŒ³‚É–ß‚è‚Ü‚µ‚½Bv
+ ASPERSIO ended. "attribute of weapon return to default"
+ type=09 u–h‹ï‚ɹ‘®«‚ª•t—^‚³‚ê‚Ü‚µ‚½Bv
+ "armor got holly attribute"
+ type=0a u–h‹ï‚Ì‘®«‚ªŒ³‚É–ß‚è‚Ü‚µ‚½Bv
+ "armor's attribute return to default"
+ type=0b KYRIE•t—^uƒoƒŠƒAó‘Ô‚É‚È‚è‚Ü‚µ‚½Bv
+ KYRIE casted. "barrier"
+ type=0c KYRIE‰ðœuƒoƒŠƒAó‘Ô‚ª‰ðœ‚³‚ê‚Ü‚µ‚½Bv
+ KYRIE ended. "barrier end"
+ type=0d uƒEƒFƒ|ƒ“ƒp[ƒtƒFƒNƒVƒ‡ƒ“ƒ‚[ƒh‚É‚È‚è‚Ü‚µ‚½Bv
+ "became weapon ferfection mode"
+ type=0e uƒEƒFƒ|ƒ“ƒp[ƒtƒFƒNƒVƒ‡ƒ“ƒ‚[ƒh‚ª‰ðœ‚³‚ê‚Ü‚µ‚½Bv
+ "end weapon perfection mode"
+ type=0f uƒI[ƒo[ƒgƒ‰ƒXƒgƒ‚[ƒh‚É‚È‚è‚Ü‚µ‚½Bv
+ "became over trust mode"
+ type=10 uƒI[ƒo[ƒgƒ‰ƒXƒgƒ‚[ƒh‚ª‰ðœ‚³‚ê‚Ü‚µ‚½Bv
+ "end over trust mode"
+ type=11 uƒ}ƒLƒVƒ}ƒCƒYƒpƒ[ƒ‚[ƒh‚É‚È‚è‚Ü‚µ‚½Bv
+ "became maximize power mode"
+ type=12 uƒ}ƒLƒVƒ}ƒCƒYƒpƒ[ƒ‚[ƒh‚ª‰ðœ‚³‚ê‚Ü‚µ‚½Bv
+ "end maximize power mode"
+S 0197 <type>.w
+ type=0 /resetstate
+ type=1 /resetskill
+ Œø”\‚Í–³‚µ?
+ no effect?
+R 019b <ID>.l <type>.l
+ ‘¼l‚Ìlvup‚â•Ší¸˜B“™‚Ì•\Ž¦?
+ display other's level up effect or weapon refiling?
+ type=0 base lvup?
+ type=1 job lvup?
+ type=3 •Ší¸˜B
+ weapon refiling
+R 0199 <type>.w
+@@ type=1 pvpƒ‚[ƒhŠJŽn?
+ start pvp mode?
+R 019a <ID>.l <rank>.l <num>.l
+@@ pvp‡ˆÊ rank/num
+ pvp rank rank/num
+R 019b <ID>.l <type>.l
+ ‘¼l‚Ìlvup‚â•Ší¸˜B“™‚Ì•\Ž¦?
+ type=0 base lvup?
+ type=1 job lvup?
+ type=2 •Ší¸˜BŽ¸”s
+ type=3 •Ší¸˜B¬Œ÷
+
+R 019d <?>.4B
+ GMƒRƒ}ƒ“ƒh/hide
+
+S 00CC <ID>.l
+@ GM—p‰EƒNƒŠƒbƒNƒƒjƒ…[uinamejŽg—pŽÒ‹­§I—¹vŽg—p
+ use special right click menu for GM "(name) force to quit"
+
+S 0149 <ID>.l <type>.B <time>.w
+@ GM—p‰EƒNƒŠƒbƒNƒƒjƒ…[uƒ`ƒƒƒbƒg‹ÖŽ~ŽžŠÔ‚ð‰º‚°‚éi‰ð‚¯‚éjvŽg—p ¨ type=00
+ use special right click menu for GM "decrease prohibited time to create chat room". type=00
+@ GM—p‰EƒNƒŠƒbƒNƒƒjƒ…[uƒ`ƒƒƒbƒg‹ÖŽ~ŽžŠÔ‚ðã‚°‚éiŠ|‚¯‚éjvŽg—p ¨ type=01
+ use special right click menu for GM "increase prohibited time to create chat room". type=01
+ @time‚Í•ª’PˆÊ‚Å‚·iŠm‚©
+ unit is minute (maybe
+
+R 019e
+ •ßŠlƒ‚ƒ“ƒXƒ^[Œˆ‚ß
+S 019f <ID>.l
+ •ßŠlƒ‚ƒ“ƒXƒ^[Žw’è
+R 01a0 <fail>.B
+ •ßŠl”»’è
+ fail=01‚ŬŒ÷A00‚ÅŽ¸”s
+S 01a1 <param>.1B
+ <param>
+ 0x00Fƒyƒbƒgó‘Ô•\Ž¦
+ 0x01F‰a‚ð—^‚¦‚é
+ 0x02FƒpƒtƒH[ƒ}ƒ“ƒX
+ 0x03F—‘‚É–ß‚·
+ 0x04FƒAƒNƒZƒTƒŠ‰ðœ
+R 01a2 <pet name>.24B <name flag>.B <lv>.w <hungry>.w <friendly>.w <accessory>.w
+ ƒyƒbƒg‚Ìó‘Ô
+ name flag:00=–¼‘O–¢Ý’è 01=–¼‘OÝ’èÏ‚Ý(•ÏX•s‰Â)
+ lv=ƒyƒbƒg‚̃Œƒxƒ‹Ahungry=–ž• “x(0~100)Afriendly=e–§“x(‰Šú’l250?)Aaccessory=ƒAƒNƒZƒTƒŠ‚ÌItemID
+R 01a3 <fail>.B <itemID>.w
+ <fail>
+ 0x00F‰a‚â‚莸”s
+ 0x01F‰a‚â‚謌÷
+R 01a4 <type>.B <ID>.l <val>.l
+ ƒyƒbƒgŠÖ˜A’Ê’m
+ type=00,val=00 ƒyƒbƒg›z‰»Žž‚É‘—‚ç‚ê‚Ä‚­‚éBƒyƒbƒg”FŽ¯—pH
+ type=01 e–§“x•Ï‰»
+ type=02 –ž• “x•Ï‰»
+ type=03 ƒAƒNƒZƒTƒŠ•Ï‰»(0‚Å–¢‘•”õ)
+ type=04 ƒpƒtƒH[ƒ}ƒ“ƒX Šm”F‚³‚ꂽval=1~3
+ (4‚̓XƒyƒVƒƒƒ‹ƒpƒtƒH[ƒ}ƒ“ƒXH)
+ type=05 HŠm”F‚³‚ꂽval=0x14
+S 01a5 <pet name>.24B
+ ƒyƒbƒg‚Ì–¼‘OŒˆ‚ß
+R 01a6 <len>.w <index>.w*
+ ƒyƒbƒg‚Ì—‘ƒŠƒXƒg
+S 01a7 <index>.w
+ ƒyƒbƒg‚Ì—‘ƒŠƒXƒg‚ª‘I‘ð‚³‚ê‚½
+S 01a9 <emotion>.l
+ ƒyƒbƒgƒGƒ‚[ƒVƒ‡ƒ“‘—M
+R 01aa <ID>.l <emotion>.l
+ ƒyƒbƒgƒGƒ‚[ƒVƒ‡ƒ“ŽóM
+ <emotion>
+ 33ˆÈ‰º‚Ì‚Æ‚«FƒGƒ‚[ƒVƒ‡ƒ“
+ 34ˆÈã‚Ì‚Æ‚«F”­Œ¾ƒe[ƒuƒ‹H
+R 01ac <object id>.l
+ ƒAƒ“ƒNƒ‹‚Ì”­“®(‚Ý’u)Žž‚Ì‚Ý–ˆ‰ñoŒ»(‹@”\‚Í“ä)
+R 01ad <len>.l <item>.w
+ –îì‚è‚Ì쬉”\ITEM•\ŽóM
+S 01ae <itemID>.w
+ –îì‚è‚ÅŽg‚¤Þ—¿‘—M
+S 01af <type>.w
+ ƒ`ƒFƒ“ƒWƒJ[ƒgiƒJ[ƒg‘I‘ðj
+ type=1 ƒm[ƒ}ƒ‹ƒJ[ƒg
+R 01b0 <monster id>.l <?>.b <new monster code>.l
+ –û‚̃Nƒ‰ƒXƒ`ƒFƒ“ƒW
+ <new monster code>‚̓`ƒFƒ“ƒWŒã‚̃R[ƒh(1001`)‚ðdword‚Å
+S 01b2 <len>.w <message>.80B <flag>.B {<index>.w <amount>.w <value>.l}.8B*
+ ˜I“XŠJÝ
+ flag F 0=ƒLƒƒƒ“ƒZƒ‹ , 1=ƒI[ƒvƒ“
+R 01b3 <filename>.64B <type>.B
+ R 0145‚ÌãˆÊŒÝŠ·
+R 01B6 <guildID>.l <guildLv>.l <connum>.l <’èˆõ>.l <Avl.lvl>.l <now_exp>.l <next_exp>.l <ã”[ƒ|ƒCƒ“ƒg>.l <«ŒüF-V>.l <«ŒüR-W>.l <members>.l <guild name>.24B <guild master>.24B <agit?>.20B
+ ƒMƒ‹ƒhî•ñ
+R 01b9 <ID>.I
+ ”íƒ_ƒ“™‚É‚æ‚éID‚̉r¥’†’f
+
+R 01c0
+ Some request for some status. Signature of sakexes later than 628. Used to send friends list.
+ Probably can be used to tell the player that his sakexe is not the latest version.
+
+R 01c4 <index>.w <amount>.l <itemID>.w <item data>.12B
+ ƒJƒvƒ‰‘qŒÉƒAƒCƒeƒ€
+R 01c8 <index>.w <item ID>.w <ID>.l <amount left>.w <type>.B
+ ƒAƒCƒeƒ€Žg—p‰ž“šB(00a8‚ÌãˆÊƒo[ƒVƒ‡ƒ“H)
+ type=00‚Ìꇎg—pŽ¸”s? amount‚àƒSƒ~‚Ì–Í—l
+ type=01‚ÌꇬŒ÷‚ÅAamount‚ÍŽg—pŒã‚ÌŽc‚èŒÂ”
+R 01c9 <dst ID>.l <src ID>.l <X>.w <Y>.w <type>.B <fail>.B ?.81b
+ ƒXƒLƒ‹Œø”\’nì¬(011f‚ÌãˆÊƒo[ƒVƒ‡ƒ“H)
+ type 0x7e:SWA0x7f:‰Î•ÇA0x80 ƒ|ƒ^ŠJ‚«’†A0x81 ƒ|ƒ^ŠJ‚«’¼‘O
+ 0x82 ¹‘ÌA0x83 ƒTƒ“ƒNA0x84 ƒ}ƒOƒkƒXA0x85 ƒjƒ…[ƒ}
+ 0x86 0x86 ‘å–‚–@(SG/MS/LoV/GX)A0x87 ƒtƒ@ƒCƒ„[ƒsƒ‰‘Ò‹@
+ 0x88 ƒtƒ@ƒCƒ„[ƒsƒ‰”š”­A0x87`0x8B •\Ž¦–³‚µA
+ 0x8c ƒg[ƒL[ƒ{ƒbƒNƒX(”­“®’†)A0x8D ƒAƒCƒXƒEƒH[ƒ‹
+ 0x8E ƒNƒƒOƒ}ƒCƒAA0x8f ƒuƒ‰ƒXƒgƒ}ƒCƒ“A0x90 ƒXƒLƒbƒh
+ 0x91 ƒAƒ“ƒNƒ‹A0x92 ƒxƒmƒ€ƒ_ƒXƒgA0x93 ƒ‰ƒ“ƒhƒ}ƒCƒ“
+ 0x94 ƒVƒ‡ƒbƒNƒEƒF[ƒuƒgƒ‰ƒbƒvA0x95 ƒTƒ“ƒhƒ}ƒ“
+ 0x96 ƒtƒ‰ƒbƒVƒƒ[A0x97 ƒtƒŠ[ƒWƒ“ƒOƒgƒ‰ƒbƒv
+ 0x98 ƒNƒŒƒCƒ‚ƒA[ƒgƒ‰ƒbƒvA0x99 ƒg[ƒL[ƒ{ƒbƒNƒX
+ 0x9A ƒ{ƒ‹ƒP[ƒmA0x9B ƒfƒŠƒ…[ƒWA0x9C ƒoƒCƒIƒŒƒ“ƒgƒQƒCƒ‹
+ 0x9D ƒ‰ƒ“ƒhƒvƒƒeƒNƒ^[A0x9E Zenyƒ}[ƒNA0x9F Zeny‘Ü
+ 0xA0 ‰ñ‚é—΂̗ÖA0xA1 ƒsƒ“ƒN‚̉¹•„ (“ñ˜A•„—L‚è
+ 0xA2 ^‚ñ’†‚É“_‚Ì‚ ‚éŒõ‚Ì‹ÊA0xA3 ƒsƒ“ƒN‚̃XƒvƒŠƒ“ƒO
+ 0xA4 [•£‚Ì’†‚ÉA0xA5 ‰ñ‚é‚¢—ÖA0xA6 •s‹¦˜a‰¹
+ 0xA7 Œû“JA0xA8 —[—z‚̃AƒTƒVƒ“ƒNƒƒXA0xA9 ƒuƒ‰ƒM‚ÌŽ
+ 0xAA ƒCƒhƒDƒ“‚Ì—ÑŒçA0xAB Ž©•ªŸŽè‚ȃ_ƒ“ƒXA0xAC ƒnƒ~ƒ“ƒO
+ 0xAD Ž„‚ð–Y‚ê‚È‚¢‚ÅcA0xAE ƒT[ƒrƒXƒtƒH[ƒ†[
+ 0xAF ƒsƒ“ƒN‚̃XƒvƒŠƒ“ƒOA0xB0 •\Ž¦–³‚µ
+ 0xB0 ƒOƒ‰ƒtƒBƒeƒB,
+ 0xB1 ƒfƒ‚ƒ“ƒXƒgƒŒ[ƒVƒ‡ƒ“A0xB2`0xBF •\Ž¦–³‚µ
+ 0xB2 ƒsƒ“ƒN‚̃[ƒvƒ|[ƒ^ƒ‹•—
+ 0xB3 ¬‚³‚È\Žš‰Ë‚ª‚Ó‚æ‚Ó‚æ
+ 0xB4 ƒoƒWƒŠƒJA0xB5 ƒGƒtƒFƒNƒg‚È‚µH
+ 0xB6 •‚¢~‚ª—§‘Ì“I‚É•‚‚©‚Ñオ‚é
+ 0xB7 ƒNƒ‚‚Ì‘ƒA0xB8` ƒGƒtƒFƒNƒg‚È‚µH
+
+ ‘¼î•ñ‹‚Þ
+ ?.81b‚Í“äB
+R 01cd (<sid>.l)x7
+ ƒI[ƒgƒXƒyƒ‹‘I‘ðŽˆŽóM
+ <sid>x7 ‚É‚Í NB,CB,FB,LB,SS,FBL,FD ‚̇‚ŃXƒLƒ‹ƒR[ƒh‚ªdword‚Å“ü‚é
+ ‚Ü‚¾‘I‘ð‚Å‚«‚È‚¢ƒXƒLƒ‹‚Ì•”•ª‚Í <sid> = 0x00000000 ‚ª“ü‚é
+S 01ce <sid>.l
+ ƒI[ƒgƒXƒyƒ‹‘I‘ðŽˆ‘—M
+R 01cf <crusader id>.l <target id>.l <?>.18b
+ Œ£gó‘Ôƒ^[ƒQƒbƒgON/OFFBŒ£g‚ªØ‚ê‚é‚Æ <target id> ‚ª 0x00000000 ‚É‚È‚é
+
+R 01d0 <ID>.l <num>.w
+ <num> : ‹CŒ÷‚Ì”(”ñLv)
+R 01d1 <monk id>.l <target monster id>.l <bool>.l
+ ”’‰HŽæ‚èó‘ÔON/OFFB<bool> ‚Í”’nŽæ‚謗§Žž‚É 0x00000001 ‰ðœŽž‚É 0x00000000 ‚ª—ˆ‚é
+R 01d2 <id>.l <delay>.l
+ ƒ‚ƒ“ƒN‚̃Rƒ“ƒ{ƒfƒBƒŒƒC(msec)
+ ŽO’iE˜A‘Å‚ÍŠî–{ƒfƒBƒŒƒC1000(+300)A–Ò—´‚ÍŠî–{ƒfƒBƒŒƒC700(+300)
+R 01d4 <ID>.l
+ •¶Žš—ñ“ü—Í‘‹•\Ž¦(ID‚ÍNPC‚ÌID‚ª“ü‚é)
+S 01d5 <len>.w <ID>.l <input>.?B 00
+ •¶Žš—ñ“ü—Í“à—e‘—M(ID‚ÍNPC‚ÌID‚ª“ü‚é)
+R 01d7 <ID>.l <equip point>.b <item id1>.w <item id2>.w
+ ‘•”õƒOƒ‰ƒtƒBƒbƒN <equip point> ‚Í 02Žè‚Æ09‘«‚Ì‚ÝŠm”FBid2‚ͶŽè
+R 01d8 <ID>.l <speed>.w <opt1>.w <opt2>.w <option>.w <class>.w <hair>.w <item id1>.w <item id2>.w <head option bottom>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.l <emblem>.l <manner>.w <karma>.B <sex>.B <X_Y_dir>.3B ?.B ?.B <sit>.B <Lv>.B ?.B
+ ƒ}ƒbƒvƒ[ƒhŽž&ˆÚ“®Žž—pAŒü‚«•t‚«—pƒLƒƒƒ‰î•ñ?(0078‚ÌãˆÊƒo[ƒWƒ‡ƒ“)
+R 01d9 <ID>.l <speed>.w <opt1>.w <opt2>.w <option>.w <class>.w <hair>.w <item id1>.w <item id2>.w.<head option bottom>.w <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.l <emblem>.l <manner>.w <karma>.B <sex>.B <X_Y_dir>.3B ?.B ?.B <Lv>.B ?.B
+ ƒeƒŒƒ|“™‚Ì•\Ž¦”ÍˆÍ“à•¦‚«ƒLƒƒƒ‰—pAŒü‚«•t‚«–³‚µƒLƒƒƒ‰î•ñ?(0079‚ÌãˆÊƒo[ƒWƒ‡ƒ“)
+R 01da <ID>.l <speed>.w <opt1>.w <opt2>.w <option>.w <class>.w <hair>.<item id1>.w <item id2>.w <head option bottom>.w <server tick>.l <head option top>.w <head option mid>.w <hair color>.w ?.w <head dir>.w <guild>.l <emblem>.l <manner>.w <karma>.B <sex>.B <X_Y_X_Y>.5B ?.B ?.B ?.B <Lv>.B ?.B
+ •\Ž¦”͈͓àƒLƒƒƒ‰ˆÚ“®î•ñ(007b‚ÌãˆÊƒo[ƒWƒ‡ƒ“)
+S 01db
+ ˆÃ†‰»key—v‹
+R 01dc <len>.w <key>.?B
+ ˆÃ†‰»key‘—•t
+S 01dd <version>.l <account name>.24B <md5 binary>.16B <version2>.1B
+ id&ˆÃ†‰»Ï‚Ýpass‘—M
+ ‡‚ɃNƒ‰ƒCƒAƒ“ƒg‚ª01db‚ð‘—‚éA
+ ŽI‚ª01dc‚Åkey‚ð•Ô‚·A
+ ƒNƒ‰ƒCƒAƒ“ƒg‚ª"<key><password>"‚ɂ‚¢‚Ämd5ŒvŽZ‚µ
+ <md5 binary>‚ÌŠ‚ð–„‚ß‚Ä01dd‚ð‘—‚éB
+ <passwordencrypt2>‚ÌŽž‚Í
+ "<key><password>"‚ɑ΂µ‚Ämd5ŒvŽZ‚Æ‚µ‚Ä‚¢‚銂ð
+ "<password><key>"‚Æ•ÏX‚·‚é
+R 01de <skill ID>.w <src ID>.l <dst ID>.l <server tick>.l <src speed>.l <dst speed>.l <param1>.l <param2>.w <param3>.w <type>.B
+ UŒ‚ŒnƒXƒLƒ‹ƒGƒtƒFƒNƒg@(0114‚ÌãˆÊƒo[ƒVƒ‡ƒ“H)
+ type=04 ‰Î•Ç‚ÅŠÏ‘ª type=06‚Æ‚Ù‚Ú“¯‚¶?
+ type=05 NB/FBl‚Ì•ªŽU‚µ‚½ƒ_ƒ[ƒW—pH
+ type=06 ’P”­‚à‚Ì? param1‚̓_ƒ[ƒW‡ŒvAparam2‚ÍlevelAparam3‚Í1ŒÅ’è‚Æ—\‘z
+ type=07 ƒ_ƒ[ƒW•\Ž¦–³‚µH
+ type=08 ˜A‘Å‚à‚Ì? param1‚̓_ƒ[ƒW‡ŒvAparam2‚ÍlevelAparam3‚Í•ªŠ„”‚Æ—\‘z
+ type=09 ƒ_ƒ[ƒWƒ‚[ƒVƒ‡ƒ“‚È‚µ‚Ƀ_ƒ[ƒW‚¾‚¯•\Ž¦‚³‚ê‚镨(ƒCƒ“ƒfƒ…ƒA)‚ÆŽv‚Á‚½‚Ì‚¾‚ªƒ_ƒ[ƒWƒ‚[ƒVƒ‡ƒ“‚ªo‚镨B(‹@”\‚Í“ä)
+S 01df <ID>.|
+ GM‰EƒNƒŠƒbƒN‚É‚æ‚éID‚̃`ƒƒƒbƒg‹ÖŽ~‰ñ”ŽQÆH
+R 01e1 <ID>.l <num>.w
+ <num> : ‹CŒ÷‚Ì”(”ñLv) ˆê“x•\Ž¦‚µ‚½‚çŒã‚Ç‚ñ‚Ènum‚ª—ˆ‚Ä‚à–³Ž‹‚³‚ê‚éB
+R 01e6 <partner name>.24B
+ Œ‹¥ƒXƒLƒ‹‚ ‚È‚½‚Ɉ§‚¢‚½‚¢Žg—pŽž‚Ì‹©‚Ѻ
+S 01e7
+ ƒXƒpƒmƒr‚Å/doridori‚µ‚½‚ç”ò‚ñ‚Å‚­‚éBSPR‰ñ•œ—Ê2”{ƒtƒ‰ƒO‚𗧂ĂéƒpƒPƒbƒg
+S 01e8 <party name>.24B <item1>B <item2>B
+ <item1>ƒAƒCƒeƒ€ŽûW•û–@B0‚ÅŒÂl•ÊA1‚Ńp[ƒeƒBŒö—L
+ <item2>ƒAƒCƒeƒ€•ª”z•û–@B0‚ÅŒÂl•ÊA1‚Ńp[ƒeƒB‚É‹Ï“™•ª”z
+ (00f9‚ÌãˆÊƒo[ƒVƒ‡ƒ“)
+R 01ea <ID>.l
+ Œ‹¥ƒGƒtƒFƒNƒg(‰¹ŠyAŽ†á)
+ ID‚ÍV•w‚Ì‚à‚Ì‚ª“ü‚éH
+S 01ed
+ ƒXƒpƒmƒr‚ª”š—ô”g“®‚É‚È‚éƒtƒ‰ƒO‚𗧂ĂéƒpƒPƒbƒg
+R 01ee <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B <card>.4w}.18B*
+ Š—LÁ–Õ•i&ŽûW•iƒŠƒXƒg
+ –î‚ÌꇂÍ?.2B‚ª0x8000‚É‚È‚é
+ 00a3‚©‚ç•ÏX
+R 01ef <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B <card>.4w}.18B*
+ ƒJ[ƒg“àƒAƒCƒeƒ€BÁ–Õ•i/ŽûW•i
+ 0123‚©‚ç•ÏX
+R 01f0 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B <card>.4w}.18B*
+ ƒJƒvƒ‰‚³‚ñ‚É—a‚¯‚Ä‚ ‚éÁ–Õ•i&ŽûW•iƒŠƒXƒg
+ 00a5‚©‚ç•ÏX
+R 01f4 <name>.24B <trade id?>.L <LV>.w
+ æ•û‚©‚çŽæˆø—v¿
+ 00e5‚©‚ç•ÏX
+R 01f5 <result>.B <trade id?>.L <LV>.w
+ ‚±‚¿‚ç‚©‚ç‚ÌŽæˆø—v¿‚ɑ΂·‚锽‰ž
+ 00e7‚©‚ç•ÏX
+S 0200 <login name>.24B
+ ragexe‚É/accountƒIƒvƒVƒ‡ƒ“‚ð‚‚¯‚Ä‹N“®‚·‚é‚ƃƒOƒCƒ“—v‹‚É•t‰Á‚³‚ê‚éƒpƒPƒbƒg
+
+R 0201 ?.1B<Flag?>.1B (?.8B <Character Name>.24B)x20
+ Flag seems to need to be 1 to function.
+ 8 unknown bytes and 24 bytes for name need to be repeated for each friend.
+
+S 0202 <Character name>.24B
+ Character name to add to friend list (for server-side friend list enabled clients)
+
+R 0203 <Account ID>.3B <Unknown>.3B
+ Account ID = zero terminated 3-word hex representation of account ID. Little endian.
+ Unknown = observed dependency on online/offline status
+
+S 0204 <?>.16B
+ ƒƒOƒCƒ“—v‹‚É•t‰Á‚³‚ê‚éƒpƒPƒbƒgB16ƒoƒCƒg‚͌ŒèH
+S 020B <?>.17B
+ ƒLƒƒƒ‰ƒNƒ^ƒT[ƒoÚ‘±—v‹0065‚É•t‰Á‚³‚ê‚éƒpƒPƒbƒgB1+0204‚Ì16ƒoƒCƒg‚Å17ƒoƒCƒgH
+
+
+ƒpƒPƒbƒg’·‚̒ljÁB019e`01aa‚ª‘‚¦‚Ä‚é‚Ì‚ÅA0190`‚ð؂蔲‚«
+added packet lenth. 019e-01aa is a new, so here is a packet length table from 0190.
+
+@ 90, 86, 24,@6, 30,102,@8,@4,@ 8,@4, 14, 10, -1,@6,@2,@6,
+@@3,@3, 35,@5, 11, 26, -1,@4,@ 4,@6, 10
diff --git a/doc/pccommand_list.txt b/doc/pccommand_list.txt
index d147cff54..25c16fed6 100644
--- a/doc/pccommand_list.txt
+++ b/doc/pccommand_list.txt
@@ -1,169 +1,169 @@
----> PC Command List
-------> Here's a list of scripts that can be triggered by PC actions and what they do.
-------> Configuration is found at conf/script_athena.conf
-------> There are two methods to define the script to be use (event_script_type)
-------> 0 - By NPC. There has to be an NPC named in the same manner as the event
-------> 1 - By Label. Every label from every NPC with the event name will be
- executed (note that in this case the event HAS to start with the
- word 'On', eg: 'OnPCBaseLvUpEvent:')
-
-+ PCCommand: OnPCLoginEvent
-+ Code by: (davidsiaw)
-+ How it works:
-When a player logs in, the NPC will run as if he just clicked it. Which means
-if the script is like this:
-
-+ Sample:
-prontera.gat,0,0,0 script OnPCLoginEvent -1,{
- mes "lmao";
- close;
- }
-
-+ Explaination:
-every player who logs in will recieve a message 'lmao' in their face as soon
-as they can see the map.
-
-+ Note:
- 1) The name of the NPC has to match the one specified in scripts_athena.conf
- 2) I made it invisible because you don't need to see it. Its an abstract NPC
- 3) If you don't want it, simply delete it
- 4) If you have more than one only the first found will be execute (when using
- event_script_type 0)
- 5) You can put this script in ANY file.
- 6) I put an end; there because that just makes it do nothing.
- 7) Modify this script to your liking and give your players a surprise
- 8) Remember: IT RUNS LIKE A NORMAL NPC. BUT THE ONLY WAY TO 'CLICK' IT IS BY
- LOGGING ON
- 9) There are 2 ways to use this - check the examples below!
-
------------------------------------------------------------------------------
-
-+ PCCommand: OnPcBaseLvUpEvent
-+ Code by: lordalfa
-+ How it works:
-When a player Base level increases, the NPC will run as if he just clicked it. Which means
-if the script is like this:
-
-+ Sample:
-- Script OnPCBaseLvUpEvent -1,{
- mes "zomfg....";
- close;
-}
-
-+ Explanation:
-whenever a player level ups his/her base level, the words zomfg will pop up
-in his face.
-
-+ Note:
- 1) This script runs every moment the player gains a level. It is adviced if
- you want to repeatedly use this script, to use a sort of filter.
- 2) If a player gains multiple levels from a single kill, the script will be
- only called once at the end.
-
------------------------------------------------------------------------------
-
-+ PCCommand: OnPcJobLvUpEvent
-+ Code by: lordalfa
-+ How it works:
-It's exactly the same as OnPcBaseLvUpEvent, except it triggers when leveling job.
-
------------------------------------------------------------------------------
-
-+ PCCommand: OnOnNPCKillEvent
-+ Code by: lordalfa
-+ How it works:
-When a player kills a monster, the NPC will run as if he just clicked it. Which means
-if the script is like this:
-
-+ Sample:
-- script OnNPCKillEvent -1,{
- mes "Holy shit";
- close;
-}
-
-+ Explaination:
-whenever a player kills a monster on the map, the words "Holy Shit" will appear
-on the guy's face.
-
-+ Note:
- 1) This script runs everytime a player kills a monster It is adviced if
- you want to repeatedly use this script, to use a sort of filter.
- 2) The var "KilledRid" is set on the killer, this can be used in
- strmobinfo to find out info about the Monster that was killed
------------------------------------------------------------------------------
-
-+ PCCommand: OnPCKillEvent
-+ Code by: zbuffer aka Lance
-+ How it works:
-It is exactly the same as OnNPCKillEvent, except it triggers when a player kills another player.
-
------------------------------------------------------------------------------
-
-+ PCCommand: OnPCLoadMapEvent
-+ Code by: zbuffer aka Lance
-+ How it works:
-When a player logs in on the map, the NPC will run as if he just clicked it. Which means
-if the script is like this:
-
-+ Sample:
-prontera.gat,159,192,2 script OnPCLoadMapEvent 101,{
- mes "Holy shit";
- close;
-}
-
-----or--->
-
-OnPCLoadMapEvent:
- announce " " strcharinfo(0) + " has changed map!", 16;
- end;
-
- + Note:
- 1) Both types will execute regardless of map.
- 2) The event will only trigger on maps where you enable the 'loadevent' mapflag.
-
------------------------------------------------------------------------------
-
-+ PCCommand: OnPCDieEvent
-+ Code by: Unknown
-+ How it works:
-When a player dies, the event will be run as if a npc were clicked. The RID of the person killed
-will be attached. Simple. It can to be used as a floating npc or as a npc placed on a map.
-Notice that this event is server-wide if used as a floating npc, so if you try running it for
-more than one map, and want to make a single npc, you'll have to use some sort of filter, which
-can be getmapxy, something like this:
-
-- script PCDieEvent -1,{
-if (getmapxy(@mapname$,@mapx,@mapy,0) == -1) goto L_Finish;
-if (@mapname$ == "valkyrie.gat") || (@mapname$ == "amatsu.gat") {
-killmonster "valkyrie.gat","All";
-announce "Deep Voice: You have failed.... you have another opportunity though...",bc_self,0x660033;
-if (killtest != 0) enablenpc "Outern Voices";
-if (killedonce == 1) end;
-set killedonce,1;
-} else
-end;
-
-L_Finish:
- end;
-}
-
-----or---->
-
-OnPCDieEvent:
-if (getmapxy(@mapname$,@mapx,@mapy,0) == -1) goto L_Finish;
-if (@mapname$ == "valkyrie.gat") || (@mapname$ == "amatsu.gat") {
-killmonster "valkyrie.gat","All";
-announce "Deep Voice: You have failed.... you have another opportunity though...",bc_self,0x660033;
-if (killtest != 0) enablenpc "Outern Voices";
-if (killedonce == 1) end;
-set killedonce,1;
-} else
-end;
-
-L_Finish:
- end;
-
-We're using getmapxy to obtain the mapname, then adjust our commands and actions depending on the
-map. We could also use the command to find if the player died inside a wished area.
-
------------------------------------------------------------------------------
+---> PC Command List
+------> Here's a list of scripts that can be triggered by PC actions and what they do.
+------> Configuration is found at conf/script_athena.conf
+------> There are two methods to define the script to be use (event_script_type)
+------> 0 - By NPC. There has to be an NPC named in the same manner as the event
+------> 1 - By Label. Every label from every NPC with the event name will be
+ executed (note that in this case the event HAS to start with the
+ word 'On', eg: 'OnPCBaseLvUpEvent:')
+
++ PCCommand: OnPCLoginEvent
++ Code by: (davidsiaw)
++ How it works:
+When a player logs in, the NPC will run as if he just clicked it. Which means
+if the script is like this:
+
++ Sample:
+prontera.gat,0,0,0 script OnPCLoginEvent -1,{
+ mes "lmao";
+ close;
+ }
+
++ Explaination:
+every player who logs in will recieve a message 'lmao' in their face as soon
+as they can see the map.
+
++ Note:
+ 1) The name of the NPC has to match the one specified in scripts_athena.conf
+ 2) I made it invisible because you don't need to see it. Its an abstract NPC
+ 3) If you don't want it, simply delete it
+ 4) If you have more than one only the first found will be execute (when using
+ event_script_type 0)
+ 5) You can put this script in ANY file.
+ 6) I put an end; there because that just makes it do nothing.
+ 7) Modify this script to your liking and give your players a surprise
+ 8) Remember: IT RUNS LIKE A NORMAL NPC. BUT THE ONLY WAY TO 'CLICK' IT IS BY
+ LOGGING ON
+ 9) There are 2 ways to use this - check the examples below!
+
+-----------------------------------------------------------------------------
+
++ PCCommand: OnPcBaseLvUpEvent
++ Code by: lordalfa
++ How it works:
+When a player Base level increases, the NPC will run as if he just clicked it. Which means
+if the script is like this:
+
++ Sample:
+- Script OnPCBaseLvUpEvent -1,{
+ mes "zomfg....";
+ close;
+}
+
++ Explanation:
+whenever a player level ups his/her base level, the words zomfg will pop up
+in his face.
+
++ Note:
+ 1) This script runs every moment the player gains a level. It is adviced if
+ you want to repeatedly use this script, to use a sort of filter.
+ 2) If a player gains multiple levels from a single kill, the script will be
+ only called once at the end.
+
+-----------------------------------------------------------------------------
+
++ PCCommand: OnPcJobLvUpEvent
++ Code by: lordalfa
++ How it works:
+It's exactly the same as OnPcBaseLvUpEvent, except it triggers when leveling job.
+
+-----------------------------------------------------------------------------
+
++ PCCommand: OnOnNPCKillEvent
++ Code by: lordalfa
++ How it works:
+When a player kills a monster, the NPC will run as if he just clicked it. Which means
+if the script is like this:
+
++ Sample:
+- script OnNPCKillEvent -1,{
+ mes "Holy shit";
+ close;
+}
+
++ Explaination:
+whenever a player kills a monster on the map, the words "Holy Shit" will appear
+on the guy's face.
+
++ Note:
+ 1) This script runs everytime a player kills a monster It is adviced if
+ you want to repeatedly use this script, to use a sort of filter.
+ 2) The var "KilledRid" is set on the killer, this can be used in
+ strmobinfo to find out info about the Monster that was killed
+-----------------------------------------------------------------------------
+
++ PCCommand: OnPCKillEvent
++ Code by: zbuffer aka Lance
++ How it works:
+It is exactly the same as OnNPCKillEvent, except it triggers when a player kills another player.
+
+-----------------------------------------------------------------------------
+
++ PCCommand: OnPCLoadMapEvent
++ Code by: zbuffer aka Lance
++ How it works:
+When a player logs in on the map, the NPC will run as if he just clicked it. Which means
+if the script is like this:
+
++ Sample:
+prontera.gat,159,192,2 script OnPCLoadMapEvent 101,{
+ mes "Holy shit";
+ close;
+}
+
+----or--->
+
+OnPCLoadMapEvent:
+ announce " " strcharinfo(0) + " has changed map!", 16;
+ end;
+
+ + Note:
+ 1) Both types will execute regardless of map.
+ 2) The event will only trigger on maps where you enable the 'loadevent' mapflag.
+
+-----------------------------------------------------------------------------
+
++ PCCommand: OnPCDieEvent
++ Code by: Unknown
++ How it works:
+When a player dies, the event will be run as if a npc were clicked. The RID of the person killed
+will be attached. Simple. It can to be used as a floating npc or as a npc placed on a map.
+Notice that this event is server-wide if used as a floating npc, so if you try running it for
+more than one map, and want to make a single npc, you'll have to use some sort of filter, which
+can be getmapxy, something like this:
+
+- script PCDieEvent -1,{
+if (getmapxy(@mapname$,@mapx,@mapy,0) == -1) goto L_Finish;
+if (@mapname$ == "valkyrie.gat") || (@mapname$ == "amatsu.gat") {
+killmonster "valkyrie.gat","All";
+announce "Deep Voice: You have failed.... you have another opportunity though...",bc_self,0x660033;
+if (killtest != 0) enablenpc "Outern Voices";
+if (killedonce == 1) end;
+set killedonce,1;
+} else
+end;
+
+L_Finish:
+ end;
+}
+
+----or---->
+
+OnPCDieEvent:
+if (getmapxy(@mapname$,@mapx,@mapy,0) == -1) goto L_Finish;
+if (@mapname$ == "valkyrie.gat") || (@mapname$ == "amatsu.gat") {
+killmonster "valkyrie.gat","All";
+announce "Deep Voice: You have failed.... you have another opportunity though...",bc_self,0x660033;
+if (killtest != 0) enablenpc "Outern Voices";
+if (killedonce == 1) end;
+set killedonce,1;
+} else
+end;
+
+L_Finish:
+ end;
+
+We're using getmapxy to obtain the mapname, then adjust our commands and actions depending on the
+map. We could also use the command to find if the player died inside a wished area.
+
+-----------------------------------------------------------------------------
diff --git a/doc/script_commands.txt b/doc/script_commands.txt
index b44ca8082..bb3438ef1 100644
--- a/doc/script_commands.txt
+++ b/doc/script_commands.txt
@@ -1,5277 +1,5277 @@
-//===== Athena Script =====================================
-//= eAthena Script Commands
-//===== By ================================================
-//= Fredzilla
-//===== Helped By =========================================
-//= Terminal Vertex & Z3R0 - Helped define getmapxy
-//= HappyDenn - Gave everything to do with getpartymember
-//= a great help
-//= Maeki Rika - A section on general concepts and lots of
-//= other updates and additions.
-//===== Version ===========================================
-//= 2.8a
-//=========================================================
-//= 1.0 - First release, filled will as much info as I could
-//= remember or figure out, most likely there are errors,
-//= and things I have missed out
-//= 1.1 - Added better discription for "getmapxy"
-//= 1.2b- Added a description for getpartymember
-//= (+few spelling mistakes corrected)
-//= 2.0 - +79kb extra stuff and numerous corrections by
-//= Maeki Rika.
-//= 2.1 - Small but important corrections, more proofreading.
-//= Some important discoveries in item functions, the
-//= secret of making VVS weapons with 'getitem2' and
-//= other news. (Rika again) +10kb :)
-//= 2.2 - added getItemInfo description [Lupus]
-//= 2.3 - added plenty of info for recent (and not so) script commands I added
-// [Skotlex]
-//= 2.4 - Explained the upper parameter of jobchange. [Skotlex]
-//= 2.5 - Added pow, sqrt and distance. [Lance]
-//= 2.6 - Added setd and getd. [Lance]
-//= 2.7 - petstat command. [Lance]
-//= 2.7a - delitem2, countitems2 commands [Lupus]
-//= 2.7b - clone command [Skotlex]
-//= 2.7c - disguise / undisguise, query_sql commands [Lupus]
-
-//= 2.8 - Deleted a copy of the nude command. Added axtoi command (needing a clearer
-//= explanation of atoi.Gave a better explanation of OnLabels and modified
-//= monster explanation due that L_Label isn't working with monster.
-//===== Compatible With ===================================
-//= LOL, can be used by anyone hopefully
-//===== Description =======================================
-//= A reference manual for the eAthena scripting language
-//=========================================================
-
-This document is a reference manual for all the scripting commands and functions
-available in current eAthena SVN. It is not a simple tutorial. When people tell
-you to "Read The F***ing Manual", they mean this.
-
-The information was mostly acquired through looking up how things actually work
-in the source code of the server, which was written by many people over time,
-and lots of them don't speak English and never left any notes - or are otherwise
-not available for comments. As such, anything written in here might not be
-correct, it is only correct to the best of our knowledge, which is limited.
-
-This document is poorly structured and rather messy in general. In fact, further
-cleaning up and reordering this document is probably pointless, due to upcoming
-switch to Lua scripting language, which will rid us of most of the problems
-mentioned herein and make a new manual necessary. But while we have this one, we
-should make the most of it, and it might be helpful in making sure the new Lua
-engine can actually do everything useful that the old engine could.
-
-This is not a place to teach you basic programming. This document will not teach
-you basic programming by itself. It's more of a reference for those who have at
-least a vague idea of what they want to do and want to know what tools they have
-available to do it. We've tried to keep it as simple as feasible, but if you
-don't understand it, getting a clear book on programming in general will help
-better than yelling around the forum for help.
-
-A little learning never caused anyone's head to explode.
-
-Structure
----------
-
-The commands and functions are listed in no particular order:
-
-*Name of the command and how to call it.
-
-Descriptive text
-
- Small example if possible. Will usually be incomplete, it's there just to
- give you an idea of how it works in practice.
-
-To find a specific command, use Ctrl+F, (or whatever keys call up a search
-function in whatever you're reading this with) put an * followed by the command
-name, and it should find the command description for you.
-
-If you find anything omitted, please respond. :)
-
-Syntax
-------
-
-Throughout this document, wherever a command wants an argument, it is given in
-<angle brackets>. This doesn't mean you should type the angle brackets. :) If an
-argument of a command is optional, it is given in {curly brackets}. You've
-doubtlessly seen this convention somewhere, if you didn't, get used to it,
-that's how big boys do it. If a command can optionally take an unspecified
-number of arguments, you'll see a list like this:
-
-command <argument>{,<argument>...<argument>}
-
-This still means they will want to be separated by commas.
-
-Where a command wants a string, it will be given in "quotes", if it's a number,
-it will be given without them. Normally, you can put an expression, like a bunch
-of functions or operators returning a value, in (round brackets) instead of most
-numbers. Round brackets will not always be required, but they're often a good
-idea.
-
-Wherever you refer to a map name, it's always 'mapname.gat' or 'mapname.afm' if
-you are using AFM maps, (if you don't know what they are, you aren't using them)
-and not just 'mapname'. While some commands do know that if you didn't give
-'.gat', it should add it, it's pretty tricky to tell which ones they are.
-
-Script loading structure
-------------------------
-
-Scripts are loaded by the map server as referenced in the 'conf/map_athena.conf'
-configuration file, but in the default configuration, it doesn't load any script
-files itself. Instead, it loads the file 'npc/scripts_main.conf' which itself
-contains references to other files. The actual scripts are loaded from txt
-files, which are linked up like this:
-
-npc: <path to a filename>
-
-Any line like this, invoked, ultimately, by 'map_athena.conf' will load up the
-script contained in this file, which will make the script available. No file
-will get loaded twice, to prevent possible errors.
-
-Another configuration file option of relevance is:
-
-delnpc: <path to a filename>
-
-This will unload a specifiled script filename from memory, which, while
-seemingly useless, may sometimes be required.
-
-Whenever '//' is encountered in a line upon reading, everything beyond this on
-that line is considered to be a comment and is ignored. This works wherever you
-place it.
-
-Upon loading all the files, the server will execute all the top-level commands
-in them. No variables exist yet at this point, no commands can be called other
-than those given in this section. These commands set up the basic server script
-structure - create NPC objects, spawn monster objects, set map flags, etc. No
-code is actually executed at this point except them. The top-level commands the
-scripting are pretty confusing, since they aren't structured like you would
-expect commands, command name first, but rather, normally start with a map name.
-
-What's more confusing about the top-level commands is that most of them use a
-tab symbol to divide their arguments.
-
-To prevent problems and confusion, the tab symbols are written as '%TAB%'
-throughout this document, even though this makes the text a bit less readable.
-Using an invisible symbol to denote arguments is one of the bad things about
-this language, but we're stuck with it for now. :)
-
-Here is a list of valid top-level commands:
-
-** Set a map flag:
-
-<map name>%TAB%mapflag%TAB%<flag>
-
-This will, upon loading, set a specified map flag on a map you like. These are
-normally in files inside 'conf/mapflag' and are loaded first, so by the time the
-server's up, all the maps have the flags they should have. Map flags determine
-the behavior of the map regarding various common problems, for a better
-explanation, see 'setmapflag'.
-
-** Create a permanent monster spawn:
-
-<map name>,<x>,<y>,<xs>,<ys>%TAB%monster%TAB%<monster name>%TAB%<mob id>,<amount>,<delay1>,<delay2>,<event>
-
-Map name is the name of the map the monsters will spawn on. x,y are the
-coordinates where the mob should spawn. If xs and ys are non-zero, they
-specify the diameters of a spawn-rectangle area who's center is x,y.
-Putting zeros instead of these coordinates will spawn the monsters randomly.
-Note this is only the initial spawn zone, as mobs random-walk, they are free
-to move away from their specified spawn region.
-
-Monster name is the name the monsters will have on screen, and has no relation
-whatsoever to their names anywhere else. It's the mob id that counts, which
-identifies monster record in 'mob_db.txt' database of monsters. If the mob name
-is given as "--ja--", the 'japanese name' field from the monster database is
-used, (which, in eAthena, actually contains an english name) if it's "--en--",
-it's the 'english name' from the monster database (which contains an uppercase
-name used to summon the monster with a GM command).
-
-If you add 20000 to the monster ID, the monster will be spawned in a 'big
-version', (monster size class will increase) and if you add 10000, the 'tiny
-version' of the monster will be created. However, this method is deprecated
-and not recommended, as the values to add can change at a later time (20000
-and 10000 actually stand for 2*MAX_MOB_DB and MAX_MOB_DB respectively, which
-is defined on mob.h, and can change in the future as more mobs are created).
-The recommended way to change a mob's size is to use the event-field (see
-below).
-
-Amount is the amount of monsters that will be spawned when this command is
-executed, it is affected by spawn rates in 'battle_athena.conf'.
-
-Delay1 and delay2 are the monster respawn delays - the first one counts the time
-since a monster defined in this spawn was last respawned and the second one
-counts the time since the monster of this spawn was last killed. Whichever turns
-out to be higher will be used. If the resulting number is smaller than a random
-value between 5 and 10 seconds, this value will be used instead. (Which is
-normally the case if both delay values are zero.) The times are given in
-1/1000ths of a second.
-
-You can specify a custom level to use for the mob different from the one of
-the database by adjoining the level after the name with a comma. eg:
-"Poring,50" for a name will spawn a monster with name Poring and level 50.
-
-Event is a script event to be executed when the mob is killed. The event must
-be in the form "NPCName::OnEventName" to execute, and the event name label
-should start with "On". As with all events, if the NPC is an on-touch npc, the
-player who triggers the script must be within 'trigger' range for the event to
-work.
-
-The Event field can be used alternatively to specify other mob properties. Use
-2 to specify that the mob should be small, 4 for big monsters, and 8 for
-special ai mobs (which by default attack other monsters instead of players).
-You can add these, so using 10 will spawn small monsters that attack other
-mobs (if you specify both 2 and 4, the small version takes priority).
-
-** Define a warp point
-
-<from map name>,<fromX>,<fromY>,<facing>%TAB%warp%TAB%<warp name>%TAB%<spanx>,<spany>,<to map name>,<toX>,<toY>
-
-This will define a warp NPC that will warp a player between maps, and while most
-arguments of that are obvious, some deserve special mention.
-
-SpanX and SpanY will make the warp sensitive to a character who didn't step
-directly on it, but walked into a zone which is centered on the warp from
-coordinates and is SpanX in each direction across the X axis and SpanY in each
-direction across the Y axis.
-
-Warp NPC objects also have a name, because you can use it to refer to them later
-with 'enablenpc'/'disablenpc'
-
-Facing of a warp object is irrelevant, it is not used in the code and all
-current scripts have a zero in there.
-
-** Define an NPC object.
-
-<map name>,<x>,<y>,<facing>%TAB%script%TAB%<NPC Name>%TAB%<sprite id>,{<code>}
-<map name>,<x>,<y>,<facing>%TAB%script%TAB%<NPC Name>%TAB%<sprite id>,<triggerX>,<triggerY>,{<code>}
-
-This will place an NPC object on a specified map at the specified location, and
-is a top-level command you will use the most in your custom scripting. The NPCs
-are triggered by clicking on them, and/or by walking in their trigger area, if
-defined, see that below.
-
-Facing is a direction the NPC sprite will face in. Not all NPC sprites have
-different images depending on the direction you look from, so for some facing
-will be meaningless. Facings are counted counterclockwise in increments of 45
-degrees, where 0 means facing towards the top of the map. (So to turn the sprite
-towards the bottom of the map, you use facing 4, and to make it look southeast
-it's facing 5.)
-
-Sprite id is the sprite number used to display this particular NPC. For a full
-list of sprite id numbers see http://kalen.s79.xrea.com/npc/npce.shtml You may
-also use a monster's ID number instead to display a monster sprite for this NPC.
-It is possible to use a job sprite as well, but you must first define it as a
-monster sprite in 'mob_avail.txt', a full description on how to do this is for
-another manual. A '-1' sprite id will make the NPC invisible (and unclickable).
-A '111' sprite id will make an NPC which does not have a sprite, but is still
-clickable, which is useful if you want to make a clickable object of the 3D
-terrain.
-
-TriggerX and triggerY, if given, will define an area, centered on NPC and
-spanning triggerX cells in every direction across X and triggerY in every
-direction across Y. Walking into that area will trigger the NPC. If no
-'OnTouch:' special label is present in the NPC code, the execution will start
-from the beginning of the script, otherwise, it will start from the 'OnTouch:'
-label.
-
-NPC name is kinda special, because it's not only the name of NPC you will see on
-screen. It's formatted this way:
-
-<Screen name>{#<Extra name identifier>}{::<Label name>}
-
-The extra identifier is there that you can make an npc with an invisible name
-(just omit the screen name, but keep the identifier name) and so that you can
-refer to several NPCs which have the same name on screen, which is useful to
-make an NPC that relocates depending on special conditions, for example - you
-define several NPC objects and hide all except one.
-('Hunter#hunter1','Hunter#hunter2'...) The extra name identifiers will let your
-code tell them apart.
-
-Label name is used to duplicate NPC objects (more on that below).
-
-The complete NPC name (Screen name + extra identifier) may not exceed 24
-characters. The label name is counted separately but also limited to 24
-characters.
-
-The code part is the script code that will execute whenever the NPC is
-triggered. It may contain commands and function calls, descriptions of which
-compose most of this document. It has to be in curly brackets, unlike elsewhere
-where we use curly brackets, these do NOT signify an optional parameter.
-
-** Define an NPC duplicate.
-
-<map name>,<x>,<y>,<facing>%TAB%duplicate(<NPC label>)%TAB%<sprite id>
-<map name>,<x>,<y>,<facing>%TAB%duplicate(<NPC label>)%TAB%<sprite id>,<triggerX>,<triggerY>
-
-This will duplicate an NPC referred to by the label. The duplicate runs the same
-code as the NPC it refers to, but may have different location, facing and sprite
-ID. Whether it may actually have it's own size of trigger area is unclear at the
-moment - if you need that, try it and tell us of the results.
-
-** Define a 'floating' NPC object.
-
--%TAB%script%TAB%-1,{<code>}
-
-This will define an NPC object not triggerable by normal means. This would
-normally mean it's pointless since it can't do anything, but there are
-exceptions, mostly related to running scripts at specified time, which is what
-these floating NPC objects are for. More on that below.
-
-** Define a shop NPC.
-
-<map name>,<x>,<y>,<facing>%TAB%shop%TAB%<NPC Name>%TAB%<sprite id>,<itemid>:<price>{,<itemid>:<price>...}
-
-This will define a shop NPC, which, when triggered (which can only be done by
-clicking) will cause a shop window to come up. No code whatsoever runs in shop
-NPCs and you can't change the prices otherwise than by editing the script
-itself. (No variables even exist at this point of scripting, so don't even
-bother trying to use them.)
-
-The item id is the number of item in the 'item_db.txt' database. If Price is set
-to -1, the 'buy price' given in the item database will be used. Otherwise, the
-price you gave will be used for this item, which is how you create differing
-prices for items in different shops.
-
-** Define a function object
-
-function%TAB%<function name>%TAB%{<code>}
-
-This will define a function object, callable with the 'callfunc' command (see
-below). This object will load on every map server separately, so you can get at
-it from anywhere. It's not possible to call the code in this object by
-anything other than the 'callfunc' script command.
-
-The code part is the script code that will execute whenever the function is
-called with 'callfunc'. It has to be in curly brackets, unlike elsewhere where
-we use curly brackets, these do NOT signify an optional parameter.
-
-** Alter a map cell
-
-<map name>%TAB%setcell%TAB%<type>,<x1>,<y1>,<x2>,<y2>
-
-This is sneaky, and isn't used in any official scripts, but it will let you
-define an area (x1/y1-x2/y2 square) of a map as having cell type 'type', where
-type is a number, which, among other things, defines whether the area is
-walkable or not, whether it has Basilica working in it or not, and some other
-things. This is a solution just itching for a problem and there's a number of
-interesting things you could use it for. Further investigation on what types are
-valid and mean what exactly is pending.
-
-Once an object is defined which has a 'code' field to it's definition, it
-contains script commands which can actually be triggered and executed.
-
-What a RID is and why do you need to know
------------------------------------------
-
-Most scripting commands and functions will want to request data about a
-character, store variables referenced to that character, send stuff to the
-client connected to that specific character. Whenever a script is invoked by a
-character, it is passed a so-called RID - this is the character ID number of a
-character that caused the code to execute by clicking on it, walking into it's
-OnTouch zone, or otherwise.
-
-If you are only writing common NPCs, you don't need to bother with it. However,
-if you use functions, if you use timers, if you use clock-based script
-activation, you need to be aware of all cases when a script execution can be
-triggered without a RID attached. This will make a lot of commands and functions
-unusable, since they want data from a specific character, want to send stuff to
-a specific client, want to store variables specific to that character, and they
-would not know what character to work on if there's no RID.
-
-Unless you use 'attachrid' to explicitly attach a character to the script first.
-
-Whenever we say 'invoking character', we mean 'the character who's RID is
-attached to the running script. The script function "playerattached" can be
-used to check which is the currently attached player to the script (it will
-return 0 if the there is no player attached or the attached player no longer
-is logged on to the map-server).
-
-Item and pet scripts
---------------------
-
-Each item in the item database has two special fields - EquipScript and
-UseScript. The first is script code run every time a character equips the item,
-with the RID of the equipping character. Every time they unequip an item, all
-temporary bonuses given by the script commands are cleared, and all the scripts
-are executed once again to rebuild them. This also happens in several other
-situations (like upon login) but the full list is currently unknown.
-
-UseScript is a piece of script code run whenever the item is used by a character
-by doubleclicking on it.
-
-Not all script commands work properly in the item scripts. Where commands and
-functions are known to be meant specifically for use in item scripts, they are
-described as such.
-
-Every pet in the pet database has a PetScript field, which determines pet
-behavior. It is invoked wherever a pet of the specified type is spawned.
-(hatched from an egg, or loaded from the char server when a character who had
-that pet following them connects) This may occur in some other situations as
-well. Don't expect anything other than commands definitely marked as usable in
-pet scripts to work in there reliably.
-
-Numbers
--------
-
-Beside the common decimal numbers, which are nothing special whatsoever (though
-do not expect to use fractions, since ALL numbers are integer in this language),
-the script engine also handles hexadecimal numbers, which are otherwise
-identical. Writing a number like '0x<hex digits>' will make it recognised as a
-hexadecimal value. Notice that 0x10 is equal to 16. Also notice that if you try
-to 'mes 0x10' it will print '16'.
-
-This is not used much, but it pays to know about it.
-
-Variables and scope
--------------------
-
-The meat of every programming language is variables - places where you store
-data.
-
-Variables are divided into global (not attached to any specific RID, and
-independent of whoever triggered the object) and local (attached to a specific
-character object or a specific account object). They are further divided into
-permanent (they come back when the server resets) and temporary (they only
-persist until the server dies). This is what's called variable scope. :)
-
-Unlike in more advanced languages, all temporary variables are essentially
-'global', but not in the sense described above - if one NPC sets a temporary
-variable, even if it is character based, if that character triggers another NPC
-object, the variable will still be there, so you should be careful and set the
-variables you mean to be temporary to something sensible before using them. It
-also pays to keep variable names descriptive and reasonably long.
-
-Variable scope is defined by a prefix before the variable name:
-
-" " - Thats right, nothing before a variable, this a permanent variable
- attached to the character object.
-"@" - A temporary version of a character-based variable.
- SVN versions before 2094 revision and RC5 version will also treat 'l' as
- a temporary variable prefix, so bevare of having variable names starting
- with 'l', they will also be considered temporary, even if you didn't mean
- them to be!
-"$" - A global permanent variable.
- They are stored in "save\mapreg.txt" file and are the only kind of
- variables stored in a text file in the SQL version.
-"$@" - A global temporary variable.
- This is important for scripts which are called with no RID attached, that
- is, not triggered by a specific character object.
-"#" - A permanent account-based variable.
- They are stored with all the account data in "save\accreg.txt" in TXT
- versions and in the SQL versions in the 'global_reg_value' table using
- type 2.
-"##" - A permanent account-based variable stored by the login server.
- They are stored in "save\account.txt" and in the SQL versions in the
- 'global_reg_value' table, using type 1. The only difference you will
- note from normal # variables is when you have multiple char-servers
- connected to the same login server. The # variables are unique to each
- char-server, while the ## variables are shared by all these
- char-servers.
-
-Some variables are special, that is, they are already defined for you by the
-scripting engine. You can see the full list somewhere in 'db/const.txt', which
-is a file you should read, since it also allows you to replace lots of numbered
-arguments for many commands with easier to read text. The special variables most
-commonly used are all permanent character-based variables:
-
-StatusPoint - Amount of status points remaining.
-BaseLevel - Current base level
-SkillPoint - Amount of skill points remaining
-Class - Current job
-Upper - 1 if the character is an advanced job class.
-Zeny - Current amount of zeny
-Sex - Character's gender, 0 if female, 1 if male.
-Weight - The weight the character currently carries.
-MaxWeight - The maximum weight the character can carry.
-JobLevel - Character's job level
-BaseExp - The amount of base experience points the character has.
- Notice that it's zero (or close) if the character just got a level.
-JobExp - Same for job levels
-NextBaseExp - Amount of experience points needed to reach the next base level.
-NextJobExp - Same for job levels.
-Hp - Current amount of hit points.
-MaxHp - Maximum amount of hit points.
-Sp - Current spell points.
-MaxSp - Maximum amount of spell points.
-BaseJob - This is sneaky, apparently meant for baby class support.
- This will supposedly equal Job_Acolyte regardless of whether the
- character is an acolyte or a baby acolyte, for example.
-Karma - The character's karma. Karma system is not fully functional, but
- this doesn't mean this doesn't work at all. Not tested.
-Manner - The character's manner rating. Becomes negative if the player
- utters words forbidden through the use of 'manner.txt' client-side
- file.
-
-While these behave as variables, do not always expect to just set them - it is
-not certain whether this will work for all of them. Whenever there is a command
-or a function to set something, it's usually preferable to use that instead. The
-notable exception is Zeny, which you can and often will address directly -
-setting it will make the character own this number of zeny.
-
-All of the above variables store numbers. They can store positive and negative
-numbers, but only whole numbers (so don't expect to do any fractional math). You
-can also store a string in a variable, but this means naming it specially to
-denote it contains text rather than a number:
-
-@variable$ is a temporary string variable.
-$@variable$ is a global temporary string variable.
-
-Etc, etc.
-
-If a variable was never set, it is considered to equal zero (for number
-variables) or an empty string ("", nothing between the quotes) for string
-variables. Once you set it to that, the variable is as good as forgotten
-forever, and no trace remains of it even if it was stored with character or
-account data.
-
-Arrays
-------
-
-Arrays (in eAthena at least) are essentially a set of variables going under the
-same name. You can tell between the specific variables of an array with an
-'array index', a number of a variable in that array:
-
-<variable name>[<array index>]
-
-Variables stored in this way, inside an array, are also called 'array elements'.
-Arrays are specifically useful for storing a set of similar data (like several
-item IDs for example) and then looping through it. You can address any array
-variable as if it was a normal variable:
-
- set @arrayofnumbers[0],1;
-
-You can also do sneaky things like using a variable (or an expression, or even a
-value from an another array) to get at an array value:
-
- set @x,100;
- set @arrayofnumbers[@x],10;
-
-This will make @arrayofnumbers[100] equal to 10.
-
-Notice that index numbering always starts with 0. Arrays cannot hold more than
-128 variables. (So the last one can't have a number higher than 127)
-
-And array indices probably can't be negative. Nobody tested what happens when
-you try to get a negatively numbered variable from an array, but it's not going
-to be pretty. :)
-
-Arrays can naturaly store strings:
-
-@menulines$[0] is the 0th element of the @menulines$ array of strings. Notice
-the '$', normally denoting a string variable, before the square brackets that
-denotes an array index.
-
-Operators
----------
-
-Operators are things you can do to variables and numbers. They are either the
-common mathematical operations or conditional operators
-
-+ - will add two numbers. If you try to add two strings, the result will be a
- string glued together at the +. You can add a number to a string, and the
- result will be a string. No other math operators work with strings.
-- - will subtract two numbers.
-* - will multiply two numbers.
-/ - will divide two numbers. Note that this is an integer division, i.e.
- 7/2 is not equal 3.5, it's equal 3.
-% - will give you the remainder of the division. 7%2 is equal to 1.
-
-There are also conditional operators. This has to do with the conditional
-command 'if' and they are meant to return either 1 if the condition is satisfied
-and 0 if it isn't. (That's what they call 'boolean' variables. 0 means 'False'.
-Anything except the zero is 'True' Odd as it is, -1 and -5 and anything below
-zero will also be True.)
-
-You can compare numbers to each other and you compare strings to each other, but
-you can not compare numbers to strings.
-
- == - Is true if both sides are equal. For strings, it means they are the same.
- >= - True if the first value is equal to, or greater than, the second value.
- <= - True if the first value is equal to, or less than, the second value
- > - True if the first value greater than the second value
- < - True if the first value is less than the second value
- != - True if the first value IS NOT equal to the second one
-
-Examples:
-
- 1=1 is True.
- 1<2 is True while 1>2 is False.
- @x>2 is True if @x is equal to 3. But it isn't true if @x is 2.
-
-Only '==' and '!=' have been tested for comparing strings. Since there's no way
-to code a seriously complex data structure in this language, trying to sort
-strings by alphabet would be pointless anyway.
-
-Comparisons can be stacked in the same condition:
-
- && - Is True if and only if BOTH sides are true.
- ('1==1 && 2=2' is true. '2=1 && 1=1' is false.)
- || - Is True if either side of this expression is True.
-
- 1=1 && 2=2 is True.
- 1=1 && 2=1 is False.
- 1=1 || 2=1 is True.
-
-Logical operators work only on numbers:
-
- << - Left shift.
- >> - Right shift.
- & - And.
- | - Or.
- ^ - Xor.
-
-If you don't know what these five mean, don't bother, you don't need them.
-
-Labels
-------
-
-Within executable script code, some lines can be labels:
-
-<label name>:
-
-Labels are points of reference in your script, which can be used to route
-execution with 'goto', 'menu' and 'jump_zero' commands, invoked with 'doevent'
-and 'donpcevent' commands and are otherwise essential. A label's name may not be
-longer than 22 characters. (23rd is the ':'.) There is some confusion in the
-source about whether it's 22, 23 or 24 all over the place, so keeping labels
-under 22 characters could be wise. In addition to labels you name yourself,
-there are also some special labels which the script engine will start execution
-from if a special event happens:
-
-OnClock<hour><minute>:
-OnHour<hour>:
-On<weekday><hour><minute>:
-OnDay<month><day>:
-
-This will execute when the server clock hits the specified date or time. Hours
-and minutes are given in military time. ('0105' will mean 01:05 AM). Weekdays
-are Sun,Mon,Tue,Wed,Thu,Fri,Sat. Months are 01 to 12, days are 01 to 31.
-Remember the zero. :)
-
-OnInit:
-OnInterIfInit:
-OnInterIfInitOnce:
-
-OnInit will execute every time the scripts loading is complete, including when
-they are reloaded with @reloadscript command. OnInterIfInit will execute when
-the map server connects to a char server, OnInterIfInitOnce will only execute
-once and will not execute if the map server reconnects to the char server later.
-
-OnAgitStart:
-OnAgitEnd:
-OnAgitInit:
-
-OnAgitStart will run whenever the server shifts into WoE mode, whether it is
-done with @agitstart GM command or with 'AgitStart' script command. OnAgitEnd
-will do likewise for the end of WoE. OnAgitInit will run when castle data is
-loaded from the char-server by the map server.
-
-No RID will be attached while any of the abovementioned labels are triggered, so
-no character or account-based variables will be accessible, until you attach a
-RID with 'attachrid' (see below).
-
-OnTouch:
-
-This label will be executed if a trigger area is defined for the NPC object it's
-in. If it isn't present, the execution will start from the beginning of the NPC
-code. The RID of the triggering character object will be attached.
-
-OnPCDieEvent:
-OnPCKillEvent:
-OnPCLogoutEvent:
-OnPCLoginEvent:
-
-These four special labels will be invoked if you have set 'event_script_type'
-value in your 'script_athena.conf' to 1, and you can change their names by
-altering the configuration options in 'script_athena.conf'. It's pretty obvious
-when those will get triggered. For more information, see
-'npc/sample/PCLoginEvent.txt'
-
-Only the special labels which are not associated with any script command are
-listed here. There are other kinds of labels which may be triggered in a similar
-manner, but they are described with their associated commands.
-
-On<label name>:
-
-These special labels are used with Mob scripts mostly, and script commands
-that requires you to point/link a command to a mob or another npc, giving a label
-name to start from. The label name can be any of your liking, but must be
-
-Example:
-
-monster "prontera.gat",123,42,"Poringz0rd",2341,23,"Master::OnThisMobDeath";
-
-amatsu.gat,13,152,4 script Master 767,{
-
-mes "Hi there";
-close;
-
-OnThisMobDeath:
- announce "Hey, "+strcharinfo(0)+" just killed a Poringz0rd!",bc_blue|bc_all;
- end;
-}
-
-Each time you kill one, that announce will appear in blue to everyone.
-
-Scripting commands and functions
---------------------------------
-
-The commands and functions are listed here in no particular order. There's a
-difference between commands and functions - commands leave no 'return value'
-which might be used in a conditional statement, as a command argument, or stored
-in a variable. Calling commands as if they were functions will sometimes work,
-but is not advised, as this can lead to some hard to track errors. Calling
-functions as if they were commands will mess up the stack, so 'return' command
-will not return correctly after this happens in a particular script.
-
-All commands must end with a ';'. Actually, you may expect to have multiple
-commands on one line if you properly terminate them with a ';', but it's better
-if you don't, since it is not certain just whether the scripting engine will
-behave nicely if you do.
-
--------------------------
-
-*playerattached;
-
-Returns the ID of the player currently attached to the script. It will return
-0 if noone is attached, or if the attached player no longer exists on the map
-server. It is wise to check for the attached player in script functions that
-deal with timers as there's no guarantee the player will still be logged on
-when the timer triggers. Note that the ID of a player is actually their
-account ID.
-
--------------------------
-
-*mes "<string>";
-
-This command will displays a box on the screen for the invoking character, if no
-such box is displayed already, and will print the string specified into that
-box. There is normally no 'close' or 'next' button on this box, unless you
-create one with 'close' or 'next', and while it's open the player can't do much
-else, so it's important to create a button later. If the string is empty, it
-will show up as an empty line.
-
- mes "Text that will appear in the box";
-
-Inside the string you may put color codes, which will alter the color of the
-text printed after them. The color codes are all '^<R><G><B>' and contain three
-hexadecimal numbers representing colors as if they were HTML colors - ^FF0000 is
-bright red, ^00FF00 is bright green, ^0000FF is bright blue, ^000000 is black.
-^FF00FF is a pure magenta, but it's also a color that is considered transparent
-whenever the client is drawing windows on screen, so printing text in that color
-will have kind of a weird effect. Once you've set a text's color to something,
-you have to set it back to black unless you want all the rest of the text be in
-that color:
-
- mes "This is ^FF0000 red ^000000 and this is ^00FF00 green, ^000000 so.";
-
-Notice that the text coloring is handled purely by the client. If you use non-
-english characters, the color codes might get screwed if they stick to letters
-with no intervening space. Separating them with spaces from the letters on
-either side solves the problem.
-
----------------------------------------
-
-*goto <label>;
-
-This command will make the script jump to a label, usually used in conjunction
-with other command, such as "if", but often used on it's own.
-
- goto Label;
- mes "This will not be seen";
- Label:
- mes "This will be seen";
-
----------------------------------------
-
-*callfunc "<function>"{,<argument>,...<argument>};
-*callfunc("<function>"{,<argument>,...<argument>})
-
-This command lets you call up a function NPC. A function NPC can be called from
-any script on any map server. Using the 'return' command it will come back to
-the place that called it.
-
- place.gat,50,50,6%TAB%script%TAB%Woman%TAB%115,{
- mes "[Woman]"
- mes "Lets see if you win";
- callfunc "funcNPC";
- mes "Well done you have won";
- close;
- }
- function%TAB%script%TAB%funcNPC%TAB%{
- set @win, rand(2);
- if(@win==0) return;
- mes "Sorry you lost";
- end;
- }
-
-You can pass arguments to your function - values telling it what exactly to do -
-which will be available there with getarg() (see 'getarg')
-Notice that returning is not mandatory, you can end execution right there.
-
-If you want to return a real value from inside your function NPC, it is better
-to write it in the function form, which will also work and will make the script
-generally cleaner:
-
- place.gat,50,50,6%TAB%script%TAB%Man%TAB%115,{
- mes "[Man]"
- mes "Gimme a number!";
- next;
- input @number;
- if (callfunc("OddFunc",@number)) mes "It's Odd!";
- close;
- }
- function%TAB%script%TAB%OddFunc%TAB%{
- if (getarg(0)%2==0) goto ItsEven;
- return (1);
- ItsEven:
- return (0);
- }
-
----------------------------------------
-
-*callsub <label name>{,<argument>,...<argument>};
-
-This command will go to a specified label within the current script (do NOT use
-quotes around it) coming in as if it were a 'callfunc' call, and pass it
-arguments given, if any, which can be recovered there with 'getarg'. When done
-there, you should use the 'return' command to go back to the point from where
-this label was called. This is used when there is a specific thing the script
-will do over and over, this lets you use the same bit of code as many times as
-you like, to save space and time, without creating extra NPC objects which are
-needed with 'callfunc'. A label is not callable in this manner from another
-script.
-
- mes "[Woman]"
- mes "Lets see if you win";
- callsub Check;
- mes "Well done you have won";
- Check:
- set @win, rand(2);
- if(@win==0) return;
- mes "Sorry you lost";
-
----------------------------------------
-
-*return {(<value>)};
-
-When you use callsub or callfunc, this command allows you to go back to the
-calling script. You can optionally return with a value telling the calling
-program what exactly happened. To get at this value, you will have to use the
-'set' command:
-
- set <variable>,callfunc "<your function>"
-
-Note the round brackets. Turns out you have to enclose just about anything in
-brackets if it isn't a straight number for the return command to work with it:
-
- return (@x+@y);
-
-Also note that
-
- if (<condition>) return (<whatever>);
-
-does NOT always work, even though it would make scripts a lot cleaner, and it
-might be wiser to avoid using it like that.
-
-For an example see 'callfunc' and 'callsub'
-
----------------------------------------
-
-*getarg(<number>)
-
-This function is used when you use the 'callsub' or 'callfunc' commands. In the
-call you can specify variables that will make that call different from another
-one. This function willwill return an argument the function or subroutine was
-called with, and is the normal way to get them.
-This is another thing that can let you use the same but of code more than once.
-
-Argument numbering starts with 0, i.e. the first argument you gave is number 0.
-If no such argument was given, a zero is returned.
-
- place.gat,50,50,6%TAB%script%TAB%Woman1%TAB%115,{
- mes "[Woman]";
- mes "Lets see if you win";
- callfunc "funcNPC",2;
- mes "Well done you have won";
-
- ...
-
- place.gat,52,50,6%TAB%script%TAB%Woman2%TAB%115,{
- mes "[Woman]";
- mes "Lets see if you win";
- callfunc "funcNPC",5;
- mes "Well done you have won";
-
- ...
-
- function%TAB%script%TAB%funcNPC%TAB%{
- set @win, rand(getarg(0));
- if(@win==0) return;
- mes "Sorry you lost";
-
-"woman1" NPC object calls the funcNPC. The argument it gives in this call is
-stated as 2, so when the random number is generated by the 'rand' function, it
-can only be 0 or 1. Whereas "woman2" gives 5 as the argument number 0 when
-calling the function, so the random number could be 0, 1, 2, 3 or 4, this makes
-"woman2" less likely to say the player won.
-
-You can pass multiple arguments in a function call:
-
- callfunc "funcNPC",5,4,3;
-
-getarg(0) would be 5, getarg(1) would be 4 and getarg(2) would be 3.
-
-'getarg()' can also be used to carry information back from using the "callfunc"
-script command, if the 'return' command is set to return a value:
-
- place.gat,50,50,6%TAB%script%TAB%Woman%TAB%115,{
- mes "[Woman]";
- mes "Lets see if you win";
- callfunc "funcNPC";
- mes "Well it seems you have "+getarg(0);
- }
- function%TAB%script%TAB%funcNPC%TAB%{
- set @win, rand(2);
- if(@win==0) return(won);
- return(lost);
- }
-
-It is, however, better to use 'set' to get this value instead (see 'callfunc')
-because otherwise you can't call functions from within other functions. (Return
-values mess up the stack.)
-
----------------------------------------
-
-*next;
-
-This command will create a 'next' button in the message window for the invoking
-character. If no window is currently on screen, it will be created. Used to
-segment NPC talking, this command is used A LOT. See 'mes'.
-
- mes "[Woman]";
- mes "This would appear on the page";
- next;
- // This is needed cause it is a new page and the top will now be blank
- mes "[Woman]";
- mes "This would appear on the 2nd page";
-
----------------------------------------
-
-*close;
-
-This command will create a 'close' button in the message window for the invoking
-character. If no window is currently on screen, it will be created. This is one
-of the ways to end a speech from an NPC. Once the button is clicked, the NPC
-script execution will end, and the message box will disappear.
-
- mes "[Woman]";
- mes "I am finished talking to you, click the close button";
- close;
- mes "This command will not run at all, cause the script has ended.";
-
----------------------------------------
-
-*close2;
-
-This command will create a 'close' button in the message window for the invoking
-character. If no window is currently on screen, it will be created. See 'close'.
-There is one important difference, though - even though the message box will
-have closed, the script execution will not stop, and commands after 'close2'
-will still run, meaning an 'end' has to be used to stop the script, unless you
-make it stop in some other manner.
-
- mes "[Woman]";
- mes "I will warp you now";
- close2;
- warp "place.gat",50,50;
- end;
-
-Don't expect things to run smoothly if you don't make your scripts 'end'.
-
----------------------------------------
-
-*menu "<menu option>",<label>{,"<menu option>",<label>...};
-
-This command will create a selectable menu for the invoking character. Only one
-menu can be on screen at the same time.
-
-Depending on what the player picks from the menu, the script execution will
-continue from the corresponding label. (it's string-label pairs, not label-
-string)
-
-It also sets a special temporary character variable @menu, which contains the
-number of option the player picked. (Numbering of options starts at 1.)
-
- menu "I want to Start",L_Start,"I want to end",L_End;
- L_Start:
- //If they click "I want to Start" they will end up here
- L_End:
- //If they click "I want to end" they will end up here
-
-If a label is '-', the script execution will continue right after the menu
-command if that option is selected, this can be used to save you time, and
-optimize big scripts.
-
- menu "I want to Start",-,"I want to end",L_End;
- //If they click "I want to Start" they will end up here
- L_End:
- //If they click "I want to end" they will end up here
-
-Both these examples will perform the same task.
-
-If you give an empty string as a menu item, the item will not display. This
-can effectively be used to script dynamic menus by using empty string for
-entries that should be unavailable at that time.
-
-You can do it by using arrays, but watch carefully - this trick isn't high
-wizardry, but minor magic at least. You can't expect to easily duplicate it
-until you understand how it works.
-
-Create a temporary array of strings to contain your menu items, and populate it
-with the strings that should go into the menu at this execution, making sure not
-to leave any gaps. Normally, you do it with a loop and an extra counter, like
-this:
-
- setarray @possiblemenuitems$[0],<list of potential menu items>;
- set @i,0; // That's our loop counter.
- set @j,0; // That's the menu lines counter.
-
- makemenuloop:
-
- // We record the number of option into the list of options actually
- // available. That 'condition' is whatever condition that determines whether
- // a menu item number @i actually goes into the menu or not.
-
- if (<condition>) set @menulist$[@j],@possiblemenuitems$[@i];
-
- // We just copied the string, we do need it's number for later though, so we
- // file it away as well.
-
- if (<condition>) set @menureference[@j],@i;
-
- // Since we've just added a menu item into the list, we increment the menu
- // lines counter.
-
- if (<condition>) set @j,@j+1;
-
- // We go on to the next possible menu item.
-
- set @i,@i+1;
-
- // And continue looping through the list of possible menu items until it
- // ends.
-
- if (@i<=getarraysize(@possiblemenuitems)) goto makemenuloop;
-
-
-This will create you an array @menulist$ which contains the text of all items
-that should actually go into the menu based on your condition, and an array
-@menureference, which contains their numbers in the list of possible menu items.
-(Remember, arrays start with 0.) There's less of them than the possible menu
-items you've defined, but the menu command can handle the empty lines - only if
-they are last in the list, and if it's made this way, they are. Now comes a
-dirty trick:
-
- // X is whatever the most menu items you expect to handle.
- menu @menulist$[0],-,@menulist$[1],-,....@menulist$[<X>],-;
-
-This calls up a menu of all your items. Since you didn't copy some of the
-possible menu items into the list, it's end is empty and so no menu items will
-show up past the end. But this menu call doesn't jump anywhere, it just
-continues execution right after the menu command. (And it's a good thing it
-doesn't, cause you can only explicitly define labels to jump to, and how do you
-know which ones to define if you don't know beforehand which options will end up
-where in your menu?)
-But how do you figure out which option the user picked? Enter the @menu.
-
-@menu contains the number of option that the user selected from the list,
-starting with 1 for the first option. You know now which option the user picked
-and which number in your real list of possible menu items it translated to:
-
- mes "You selected "+@possiblemenuitems$[@menureference[@menu-1]]+"!";
-
-@menu is the number of option the user picked.
-@menu-1 is the array index for the list of actually used menu items that we
-made.
-@menureference[@menu-1] is the number of the item in the array of possible menu
-items that we've saved just for this purpose.
-
-And @possiblemenuitems$[@menureference[@menu-1]] is the string that we used to
-display the menu line the user picked. (Yes, it's a handful, but it works.)
-
-You can set up a bunch of 'if (@menureference[@menu-1]==X) goto Y' statements to
-route your execution based on the line selected and still generate a different
-menu every time, which is handy when you want to, for example, make users select
-items in any specific order before proceeding, or make a randomly shuffled menu.
-
-Kafra code bundled with the standard distribution uses a similar array-based
-menu technique for teleport lists, but it's much simpler and doesn't use @menu,
-probably since that wasn't documented anywhere.
-
-See also 'select', which is probably better in this particular case. Instead of
-menu, you could use 'select' like this:
-
- set @dummy,select(@menulist$[0],@menulist$[1],....@menulist$[<X>]);
-
-For the purposes of the technique described above these two statements are
-perfectly equivalent.
-
----------------------------------------
-
-*rand(<number>{,<number>});
-
-This function returns a number, randomly positioned between 0 and the number you
-specify (if you only specify one) and the two numbers you specify if you give it
-two.
-
-rand(10) would result in 0,1,2,3,4,5,6,7,8 or 9
-
-rand(2,10) would result in 2,3,4,5,6,7,8,9 or 10
-
----------------------------------------
-
-*warp "<map name>",<x>,<y>;
-
-This command will take the invoking character to the specifed map, and if
-wanted, specified coordinates too, but these can be random.
-
- warp "place.gat",50,55;
-
-This would take them to X 50 Y 55 on the map called "place". If your X and Y
-coordinates land on an unwalkable map square, it will send the warped character
-to a random place. Same will happen if they are both zero:
-
- warp "place.gat",0,0;
-
-Notice that while warping people to coordinates 0,0 will normally get them into
-a random place, it's not certain to always be so. Darned if I know where this is
-actually coded, it might be that this happens because square 0,0 is unwalkable
-on all official maps. If you're using custom maps, beware.
-
-There are also three special 'map names' you can use.
-
-"Random" will warp the player randomly on the current map.
-"Save" and "SavePoint" will warp the player back to their savepoint.
-
----------------------------------------
-
-*areawarp "<from map name>",<x1>,<y1>,<x2>,<y2>,"<to map name>",<x3>,<y3>;
-
-This command is similar to 'warp', however, it will not refer to the invoking
-character, but instead, all characters within a specified area, defined by the
-x1/y1-x2/y2 square, will be warped. Nobody outside the area will be affected,
-including the activating character, if they are outside the area.
-
- areawarp "place.gat",10,10,120,120,"place2.gat",150,150;
-
-Everyone that is in the area between X 10 Y 10 and X 120 Y 120, in a square
-shape, on the map called "place", will be affected, and warped to "place2" X 150
-Y 150
-
- areawarp "place.gat",10,10,120,120,"place2.gat",0,0;
-
-By using ,0,0; as the destination coordinates it will take all the characters in
-the affected area to a random set of co-ordinates on "place2".
-
-Like 'warp', areawarp will also explicitly warp characters randomly into the
-current map if you give the 'to map name' as "Random".
-
-See also 'warp'.
-
----------------------------------------
-
-*heal <hp>,<sp>;
-
-This command will heal a set amount of HP and/or SP on the invoking character.
-
- heal 30000,0; // This will heal 30,000 HP
- heal 0,30000; // This will heal 30,000 SP
- heal 300,300; // This will heal 300 HP and 300 SP
-
-This command just alters the hit points and spell points of the invoking
-character and produces no other output whatsoever.
-
----------------------------------------
-
-*itemheal <hp>,<sp>;
-
-This command works on the invoking character like 'heal', however, it is not
-normally used in NPC scripts and will not work as expected there, but is used
-all over in item scripts.
-
-Unlike 'heal', which just alters hp/sp and doesn't do anything else at all, this
-command also shows healing animations for potions and other stuff, checks
-whether the potion was made by a famous alchemist and alters the amount healed,
-etc, etc. Since which kind of effect is shown depends on what item was used,
-using it in an NPC script will not have a desired effect.
-
-There is also a nice example on using this with the 'rand' function, to give you
-a random ammount of healing.
-
- // This will heal anything thing from 100 to 150 HP and no SP
- itemheal rand(100,150),0;
-
----------------------------------------
-
-*percentheal <hp>,<sp>;
-
-This command will heal the invoking character. It heals the character, but not
-by a set value - it adds percent of their maximum HP/SP.
-
- percentheal 100,0; // This will heal 100% HP
- percentheal 0,100; // This will heal 100% SP
- percentheal 50,50; // This will heal 50% HP and 50% SP
-
-So the amount that this will heal will depend on the total ammount of HP or SP
-you have maximum. Like 'heal', this will not call up any animations or effects.
-
----------------------------------------
-
-*jobchange <job number>{,<upper flag>};
-
-This command will change the job class of the invoking character.
-
- jobchange 1; // This would change your player into a Swordman
- jobchange 4002; // This would change your player into a Swordman High
-
-This command does work with numbers, but you can also use job names. The full
-list of job names and the numbers they correspond to can be found in
-'db/const.txt'.
-
- // This would change your player into a Swordman
- jobchange Job_Swordman;
- // This would change your player into a Swordman High
- jobchange Job_Swordman_High;
-
-'upper flag' can alternatively be used to specify the type of job one changes
-to. For example, jobchange Job_Swordman,1; will change the character to a high
-swordsman. The upper values are:
--1 (or when omitted): preserves the current job type.
-0: Normal/standard classes
-1: High/Advanced classes
-2: Baby classes
-
-This command will also set a permanent character-based variable
-'jobchange_level' which will contain the job level at the time right before
-changing jobs, which can be checked for later in scripts.
-
----------------------------------------
-
-*jobname <job number>
-
-This command retrieves the name of the given job using the msg_athena entries 550->650.
-
- mes "[Kid]";
- mes "I never thought I'd met a "+jobname(Class)+" here of all places.";
- close;
-
----------------------------------------
-
-*eaclass {<job number>}
-
-This commands returns the "eA job-number" corresponding to the given class (if none is given, it returns uses
-the invoking player's class as argument). The eA job-number is also a class number system, but it's one that
-comes with constants which make it easy to convert among classes. The command will return -1 if you pass it a
-job number which doesn't has a eA Job value equivalent.
-
- set @eac, eaclass();
- if ((@eac&EAJ_BASEMASK) == EAJ_SWORDMAN)
- mes "You must be a swordman, knight, crusader, paladin, high swordman, lord knight, baby swordman,";
- mes "baby knight or baby crusader.";
- if (@eac&EAJL_UPPER)
- mes "You are a rebirth job.";
- if ((@eac&EAJ_UPPERMASK) == EAJ_SWORDMAN)
- mes "You must be a Swordman, Baby Swordman or High Swordman.";
-
-For more information on the eA Job System, see the docs/ea_job_system.txt file.
-
----------------------------------------
-*roclass <job number> {,<gender>}
-
-Does the opposite of eaclass. That is, given a eA Job class, it returns which is the corresponding RO class number.
-A gender is required because both Bard and Dancers share the same eA Job value (EAJ_BARDDANCER), if it isn't given, the
-gender of the executing player is taken (if there's no player running the script, male will be used by default).
-The command returns -1 when there isn't a valid class to represent the required job (for example, if you try to get the
-baby version of a Taekwon class).
-
- set @eac, eaclass();
- //Check if class is already rebirth
- if (@eac&EAJL_UPPER) {
- mes "You look strong.";
- close;
- }
- set @eac, roclass(@eac|EAJL_UPPER);
- //Check if class has a rebirth version
- if (@eac != -1) {
- mes "Bet you can't wait to become a "+jobname(@eac)+"!";
- close;
- }
-
----------------------------------------
-
-*input <variable>;
-
-This command will make an input box pop up on the client connected to the
-invoking character, to allow entering of a number or a string. This has many
-uses, one example would be a guessing game, also making use of the 'rand'
-function:
-
- mes "[Woman]";
- mes "Try and guess the number I am thinking of.";
- mes "The number will be between 1 and 10.";
- next;
- set @number, rand(1,10);
- input @guess;
- if(@guess==@number) goto L_Correct;
- mes "[Woman]";
- mes "Sorry, that wasn't the number I was thinking of.";
- close;
- L_Correct:
- mes "[Woman]";
- mes "Well done that was the number I was thinking of";
- close;
-
-If you give the input command a string variable to put the input in, it will
-allow the player to enter text. Otherwise, only numbers will be allowed.
-
- mes "[Woman]";
- mes "Please say HELLO";
- next;
- input @var$;
- if(@var$=="HELLO") goto L_Correct;
- mes "[Woman]";
- mes "Sorry you got it wrong";
- close;
- L_Correct:
- mes "[Woman]";
- mes "Well done you typed it correctly";
- close;
-
-Notice that in current SVN, you may not input a negative number with this
-command. This was done to prevent exploits in badly written scripts, which would
-let people, for example, put negative amounts of zeny into a bank script and
-recieve free zeny as a result. Unfortunately it limits the uses of the 'input'
-command quite a bit.
-
----------------------------------------
-
-*setlook <look type>,<look value>;
-
-This command will alter the look data for the invoking character. It is used
-mainly for changing the palette used on hair and clothes, you specify which look
-type you want to change, then the palette you want to use. Make sure you specify
-a palette number that exists/is usable by the client you use.
-
- // This will change your hair(6), so that it uses palette 8, what ever your
- // palette 8 is your hair will use that colour
-
- setlook 6,8;
-
- // This will change your clothes(7), so they are using palette 1, whatever
- // your palette 1 is, your clothes will then use that set of colours.
-
- setlook 7,1;
-
-Here are the possible look types:
-
- 0 - Base sprite
- 1 - Hairstyle
- 2 - Weapon
- 3 - Head bottom
- 4 - Head top
- 5 - Head mid
- 6 - Hair color
- 7 - Clothes color
- 8 - Shield
- 9 - Shoes
-
-Whatever 'shoes' means is anybody's guess, ask Gravity - the client does nothing
-with this value. It still wants it from the server though, so it is kept, but
-normally doesn't do a thing.
-
-Only the look data for hairstyle, hair color and clothes color are saved to the
-char server's database and will persist. The rest freely change as the character
-puts on and removes equipment, changes maps, logs in and out and otherwise you
-should not expect to set them. In fact, messing with them is generally
-hazardous, do it at your own risk, it is not tested what will this actually do -
-it won't cause database corruption and probably won't cause a server crash, but
-it's easy to crash the client with just about anything unusual.
-
-However, it might be an easy way to quickly check for empty view IDs for
-sprites, which is essential for making custom headgear.
-
-Since a lot of people have different palettes for hair and clothes, it's
-impossible to tell you what all the colour numbers are. If you want a serious
-example, there is a Stylist script inside the default eAthena installation that
-you can look at, this may help you create a Stylist of your own:
-'custom\dye.txt'
-
----------------------------------------
-
-*set <variable>,<expression>;
-
-This command will set a variable to the value that the expression results in.
-This is the only way to set a variable directly.
-
-This is the most basic script command and is uses a lot whenever you try to do
-anything more advanced than just printing text into a messagebox.
-
- set @x,100;
-
-will make @x equal 100.
-
- set @x,1+5/8+9;
-
-will compute 1+5/8+9 (which is, surprisingly, 10 - remember, all numbers are
-integer in this language) and make @x equal it.
-
----------------------------------------
-
-*setarray <array name>[<first value>],<value>{,<value>...<value>};
-
-This command will allow you to quickly fill up an array in one go. Check the
-Kafra scripts in the distribution to see this used a lot.
-
- setarray @array[0], 100, 200, 300, 400, 500, 600;
-
-First value is the index of the first element of the array to alter. For
-example:
-
- setarray @array[0],200,200,200;
- setarray @array[1],300,150;
-
-will produce:
-
- @array[0]=200
- @array[1]=300
- @array[2]=150
-
----------------------------------------
-
-*cleararray <array name>[<first value to alter>],<value>,<number of values to set>;
-
-This command will change many array values at the same time to the same value.
-
- setarray @array[0], 100, 200, 300, 400, 500, 600;
- // This will make all 6 values 0
- cleararray @array[0],0,6;
- // This will make array element 0 change to 245
- cleararray @array[0],245,1;
- // This will make elements 1 and 2 change to 345
- cleararray @array[1],345,2;
-
-See 'setarray'.
-
----------------------------------------
-
-*copyarray <to array>[<first value>],<from array>[<first value>],<amount to copy>;
-
-This command lets you quickly shuffle a lot of data between arrays, which is in
-some cases invaluable.
-
- setarray @array[0], 100, 200, 300, 400, 500, 600;
- // So we have made @array[]
- copyarray @array2[0],@array[2],2;
-
- // Now, @array2[0] will be equal to @array[2] (300) and
- // @array2[1] will be equal to @array[3].
-
-So using the examples above:
- @array[0] = 100
- @array[1] = 200
- @array[2] = 300
- @array[3] = 400
- @array[4] = 500
- @array[5] = 600
-
- @array2[0] = 300
- @array2[1] = 400
- @array2[2] = 500
- @array2[3] = 0
-
-Notice that @array[5] wont be coppied to the second array, and it will return a
-0.
-
----------------------------------------
-
-*getarraysize(<array name>);
-
-This function returns the number of values that are contained inside the
-specified array. Notice that zeros and empty strings at the end of this array
-are not counted towards this number.
-
-For example:
-
- setarray @array[0], 100, 200, 300, 400, 500, 600;
- set @arraysize,getarraysize(@array);
-
-This will make @arraysize == 6. But if you try this:
-
- setarray @array[0], 100, 200, 300, 400, 500, 600, 0;
- set @arraysize,getarraysize(@array);
-
-@arraysize will still equal 6, even though you've set 7 values.
-
----------------------------------------
-
-*deletearray <array name>[<first value>],<how much to delete>
-
-This command will delete a specified number of array elements totally from an
-array, shifting all the elements beyond this towards the beginning.
-
- // This will delete array element 0, and move all the other array elements
- // up one place.
- deletearray @array[0],1
-
-// This would delete array elements numbered 1, 2 and 3, leave element 0 in its
-// place, and move the other elements ups, so there are no gaps.
-
- deletearray @array[1],3
-
-IMPORTANT: deletarray is horribly broken since the earliest days of jAthena. It
-tends to merrily remove much more variables than it's told to remove, which
-makes it pretty much useless for anything other than removing an array from
-memory entirely. This would be very handy, if it always worked.
-
----------------------------------------
-
-*getelementofarray(<array name>,<index>);
-
-This function will return an array's element when given an index.
-
- // This will find the 2nd array value
- getelementofarray(@array,1)
-
-Pretty pointless now when we have
-
- @array[1]
-
-which has the same effect.
-
----------------------------------------
-
-*if (<condition>) <statement>;
-
-This is the basic conditional statement command, and just about the only one
-available in this scripting language.
-
-The condition can be any expression. All expressions resulting in a non-zero
-value will be considered True, including negative values. All expressions
-resulting in a zero are false.
-
-If the expression results in True, the statement will be executed. If it isn't
-true, nothing happens and we move on to the next line of the script.
-
- if (1) mes "This will always print.";
- if (0) mes "And this will never print.";
- if (5) mes "This will also always print.";
- if (-1) mes "Funny as it is, this will also print just fine.";
-
-For more information on conditional operators see the operators section above.
-Anything that is returned by a function can be used in a condition check without
-bothering to store it in a specific variable:
-
- if (strcharinfo(0)=="Daniel Jackson") mes "It is true, you are Daniel!";
-
-More examples of using the 'if' command in the real world:
-
-Example 1:
-
- set @var1,1;
- input @var2;
- if(@var1==@var2) goto L_Same;
- mes "Sorry that is wrong";
- close;
- L_Same:
- close;
-
-Example 2:
-
- set @var1,1;
- input @var2;
- if(@var1!=@var2) mes "Sorry that is wrong";
- close;
-
-(Notice examples 1 and 2 have the same effect.)
-
-Example 3:
-
- set @var1,@var1+1;
- mes "[Forgetfull Man]";
- if (@var==1) mes "This is the first time you have talked to me";
- if (@var==2) mes "This is the second time you have talked to me";
- if (@var==3) mes "This is the third time you have talked to me";
- if (@var==4) mes "This is the forth time you have talked to me, but I think I am getting amnesia, I have forgoten about you";
- if (@var==4) set @var,0;
- close;
-
-Example 4:
-
- mes "[Quest Person]";
- if(countitem(512)>=1) goto L_GiveApple;
- // The number 512 was found from item_db, it is the item number for the Apple.
- mes "Can you please bring me an apple?";
- close;
- L_GiveApple:
- mes "Oh an apple, I didnt want it, I just wanted to see one";
- close;
-
-Example 5:
-
- mes "[Person Checker]";
- if($name$!=null) goto L_Check;
- mes "Please tell me someones name";
- next;
- input $name$;
- set $name2$,strcharinfo(0);
- mes "[Person Checker]";
- mes "Thank you";
- L_Check:
- if($name$==strcharinfo(0) ) goto L_SameName;
- mes "[Person Checker]";
- mes "You are not the person that " +$name2$+ " mentioned";
- L_End:
- set $name$,null;
- set $name2$,null;
- close;
- L_SameName:
- mes "[Person Checker]";
- mes "You are the person that " +$name2$+ " just mentioned";
- mes "nice to meet you";
- goto L_End;
-
-See 'strcharinfo' for explanation of what this function does.
-
-Example 6: Using complex conditions.
-
- mes "[Multi Checker]";
- if( (@queststarted==1) && (countitem(512)>=5) ) goto L_MultiCheck;
- // Only if the quest has been started AND You have 5 apples will it goto "L_MultiCheck"
- mes "Please get me 5 apples";
- set @queststarted,1;
- close;
- L_MultiCheck:
- mes "[Multi Checker]";
- mes "Well done you have started the quest of got me 5 apples";
- mes "Thank you";
- set @queststarted,0;
- delitem 512,5;
- close;
-
----------------------------------------
-
-*getitem <item id>,<amount>{,<character ID>};
-*getitem "<item name>",<amount>{,<character ID>};
-
-This command will give a specific amount of specified items to the invoking
-character. If an optional character ID is specified, and that character is
-currently online, items will be created in their inventory instead. If they are
-not online, nothing will happen.
-
-In the first and most commonly used version of this command, tems are referred
-to by their database ID number found inside 'db/item_db.txt'.
-
- getitem 502,10 // The person will recieve 10 apples
- getitem 617,1 // The person will recieve 1 Old Violet Box
-
-Giving an item ID of -1 will give a specified number of random items from the
-list of those that fall out of Old Blue Box. Unlike in all other cases, these
-will be unidentified, if they turn out to be equipment. This is exactly what's
-written in the Old Blue Box's item script.
-
-Other negative IDs also correspond to other random item generating item tables:
-
-Giving an item ID of -2 will produce the effects of Old Violet Box.
-Giving an item ID of -3 will produce the effects of Old Card Album.
-Giving an item ID of -4 will produce the effects of Gift Box.
-Giving an item ID of -5 will produce the effects of Worn Out Scroll, which, in
-current SVN, drops only Jellopies anyway.
-
-Calling this command with a negative item ID to create a random item will create
-an entry in the log file for those if such logging is enabled.
-
-You may also create an item by it's name in the 'english name' field in the item
-database:
-
- getitem "RED_POTION",10;
-
-Which will do what you'd expect. If it can't find that name in the database,
-apples will be created anyway. It is often a VERY GOOD IDEA to use it like this.
-
-This used in pretty much all NPC scripts that have to do with items and quite a
-few item scripts. For more examples check just about any official script.
-
----------------------------------------
-
-*getitem2 <item id>,<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<character ID>};
-*getitem2 "<Item name>",<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<character ID>};
-
-This command will give an amount of specified items to the invoking character.
-If an optional character ID is specified, and that character is currently
-online, items will be created in their inventory instead. If they are not
-online, nothing will happen. It works essentially the same as 'getitem' (it even
-works for negative ID numbers the same way, which is kinda silly) but is a lot
-more flexible, since it allows you to give the player an item altered with it's
-specific properties.
-
-Those parameters that are different from 'getitem' are:
-
-identify - Whether you want the item to be identified or not, 0 unidentified,
- 1 identified.
-refine - For how many plusses will it be refined.
- It will not let you refine an item higher than +10, if you
- specify more it'll still be 10.
-attribute - Whether the item is broken (1) or not (0) and NOT an elemental
- attribute.
-card1,2,3,4 - If you want a card compound to it, place the card ID number into
- the specific card slot. Card ID numbers also found in
- 'db/item_db.txt'
-
-Card1-card4 values are also used to store name information for named items, as
-well as the elemental property of weapons and armor. You can create a named item
-in this manner, however, if you just need a named piece of standard equipment,
-it is much easier to the 'getnameditem' function instead.
-
-You will need to keep these values if you want to destroy and then perfectly
-recreate a named item, for this see 'getinventorylist'.
-
-If you still want to try creating a named item with this command because
-'getnameditem' won't do it for you cause it's too limited, you can do it like
-this. Careful, minor magic ahead.
-
- // First, let's get an ID of a character who's name will be on the item.
- // Only an existing character's name may be there.
- // Let's assume our character is 'Adam' and find his ID.
-
- set @charid,getcharid(0,"Adam");
-
- // Now we split the character ID number into two portions with a binary
- // shift operation. If you don't understand what this does, just copy it.
-
- set @card3, @charid & 65535;
- set @card4, @charid >> 16;
-
- // If you're inscribing non-equipment, @card1 must be 254.
- // Arrows are also not equipment. :)
- set @card1,254;
-
- // For named equipment, card2 means the Star Crumbs and elemental
- // crystals used to make this equipment. For everything else, it's 0.
-
- set @card2,0;
-
- // Now, let's give the character who invoked the script some
- // Adam's Apples:
-
- getitem2 512,1,1,0,0,@card1,@card2,@card3,@card4;
-
-This wasn't tested with all possible items, so I can't give any promises,
-experiment first before relying on it.
-
-To create equipment, continue this example it like this:
-
- // We've already have card3 and card4 loaded with correct
- // values so we'll just set up card1 and card2 with data
- // for an Ice Stiletto.
-
- // If you're inscribing equipment, @card1 must be 255.
- set @card1,255;
-
- // That's the number of star crumbs in a weapon.
- set @sc,2;
-
- // That's the number of elemental property of the weapon.
- set @ele,1;
-
- // And that's the wacky formula that makes them into
- // a single number.
- set @card2,@ele+((@sc*5)<<8);
-
- // That will make us an Adam's +2 VVS Ice Stiletto:
-
- getitem2 1216,1,1,2,0,@card1,@card2,@card3,@card4;
-
-Experiment with the number of star crumbs - I'm not certain just how much will
-work most and what it depends on. The valid element numbers are:
-
- 1 - Ice, 2 - Earth 3 - Fire 4 - Wind.
-
-You can, apparently, even create duplicates of the same pet egg with this
-command, creating a pet which is the same, but simultaneously exists in two
-eggs, and may hatch from either, although, I'm not sure what kind of a mess will
-this really cause.
-
----------------------------------------
-*groupranditem <group id>;
-
-Returns the item_id of a random item picked from the group specified. The
-different groups and their group number are specified in db/item_group_db.txt
-
-When used in conjunction with other functions, you can get a random item. For
-example, for a random pet lure:
-
-getitem groupranditem(15),1;
-
----------------------------------------
-
-*makeitem <item id>,<amount>,<X>,<Y>,"<map name>";
-*makeitem "<item name>",<amount>,<X>,<Y>,"<map name>";
-
-This command will create an item lying around on a specified map in the
-specified location.
-
- itemid - Found in 'db/item_db.txt'
- amount - Amount you want produced
- X - The X coordinate
- Y - The Y coordinate
- map name - The map name.
-
-This item will still disappear just like any other dropped item. Like 'getitem',
-it also accepts an 'english name' field from the database and creates apples if
-the name isn't found.
-
----------------------------------------
-
-*delitem <item id>,<amount>;
-*delitem "<item name>",<amount>;
-
-This command will take a specified amount of items from the invoking character.
-As all the item commands, this one uses the ID of the item found inside
-'db/item_db.txt'. The items are destroyed - there is no way an NPC can simply
-own items and have an inventory of them, other as by destroying and recreating
-them when needed.
-
- delitem 502,10 // The person will lose 10 apples
- delitem 617,1 // The person will lose 1 Old Violet Box
-
-It is always a good idea to to check if the player actually has the item before
-you take it from them, Otherwise, you could try to delete items which the
-players don't actually have, which won't fail and won't give an error message,
-but might open up ways to exploit your script.
-
-Like 'getitem' this command will also accept an 'english name' field from the
-database. If the name is not found, nothing will be deleted.
-
----------------------------------------
-
-*delitem2 <item id>,<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<character ID>};
-*delitem2 "<Item name>",<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<character ID>};
-
-This command will take a specified amount of items from the invoking character.
-Check 'getitem2' to understand its expanded parameters.
-
----------------------------------------
-
-*enable_items;
-*disable_items;
-
-These commands enable item usage while an npc is running. When enable_items is
-run, items can be used during scripts until disable_items is called.
-To avoid possible exploits, when enable_items is invoked, it will only enable
-item usage while running that script in particular. Note that if a different
-script also calls enable_items, it will override the last call (so you may
-want to call this command at the start of your script without assuming the
-effect is still in effect).
-
----------------------------------------
-
-*viewpoint <action>,<x>,<y>,<point number>,<color>;
-
-This command will mark places on the mini map in the client connected to the
-invoking character. It uses the normal X and Y coordinates from the main map.
-The colors of the marks are defined using a hexidecimal number, same as the ones
-used to color text in 'mes' output, but are written as hexadecimal numbers in C.
-(They look like 0x<six numbers>.)
-
-Action is what you want to do with a point, 1 will set it, while 2 will clear
-it. Point number is the number of the point - you can have several. If more than
-one point is drawn at the same coordinates, they will cycle, which can be used
-to create flashing marks.
-
- // This command will show a mark at coordinates X 30 Y 40, is mark number 1,
- // and will be red.
-
- viewpoint 1,30,40,1,0xFF0000;
-
-This will create three points:
-
- viewpoint 1,30,40,1,0xFF0000;
- viewpoint 1,35,45,2,0xFF0000;
- viewpoint 1,40,50,3,0xFF0000;
-
-And this is how you remove them:
-
- viewpoint 2,30,40,1,0xFF0000;
- viewpoint 2,35,45,2,0xFF0000;
- viewpoint 2,40,50,3,0xFF0000;
-
-The client determines what it does with the points entirely, the server keeps no
-memory of where the points are set whatsoever.
-
----------------------------------------
-
-*countitem(<item id>)
-*countitem("<item name>")
-
-This function will return the number of items for the specified item ID that the
-invoking character has in the inventory.
-
- mes "[Item Checker]";
- mes "Hmmm, it seems you have "+countitem(502)+" apples";
- close;
-
-Like 'getitem', this function will also accept an 'english name' from the
-database as an argument.
-
-If you want to state the number at the end of a sentence, you can do it by
-adding up strings:
-
- mes "[Item Checker]";
- mes "Hmmm, the total number of apples you are holding is "+countitem("APPLE");
- close;
-
----------------------------------------
-
-*countitem2(<item id>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>)
-*countitem2("<item name>",<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>)
-
-Expanded version of 'countitem' function, used for created/carded/forged items.
-
-This function will return the number of items for the specified item ID and
-other parameters that the invoking character has in the inventory.
-Check 'getitem2' to understand the arguments of the function.
-
----------------------------------------
-
-*checkweight(<item id>,<amount>)
-*checkweight("<item name>",<amount>)
-
-This function will compute and return 1 if the total weight of a specified
-number of specific items does not exceed the invoking character's carrying
-capacity, and 0 otherwise. It is important to see if a player can carry the
-items you expect to give them, failing to do that may open your script up to
-abuse or create some very unfair errors.
-
-Like 'getitem', this function will also accept an 'english name' from the
-database as an argument.
-
- checkweight(502,10) // 10 apples
-
- if (checkweight(502,10) == 0 ) goto L_OverWeight;
- getitem 502,10;
- close;
- L_OverWeight:
- mes "Sorry you cannot hold this ammount of apples";
- close;
-
-Or to put this another way:
-
- if (checkweight("APPLE",10)) goto L_Getapples;
- mes "Sorry you cannot hold this ammount of apples";
- close;
- L_Getapples:
- getitem 502,10;
- close;
-
-Both these examples have the same effect.
-
----------------------------------------
-
-*readparam(<parameter number>)
-
-This function will return the basic stats of an invoking character, referred to
-by the parameter number. Instead of a number, you can use a parameter name if it
-is defined in "db/const.txt".
-
-For reference, in there these things are defined:
-
-StatusPoint, BaseLevel, SkillPoint, Class, Upper, Zeny, Sex, Weight, MaxWeight,
-JobLevel, BaseExp, JobExp, NextBaseExp, NextJobExp, Hp, MaxHp, Sp, MaxSp,
-BaseJob, Karma, Manner, bVit, bDex, bAgi, bStr, bInt, bLuk
-
-All of these also behave as variables, but don't expect to be able to just 'set'
-all of them - some will not work for various internal reasons.
-
- // This would return how many status points you haven't spent yet
- readparam(9)
-
-Using this particular information as a function call is not required. Just
-putting
-
- StatusPoint
-
-will give you the same result, and some of these parameters work just like
-variables (i.e. you can 'set Zeny,100' to make the character have 100 zeny,
-destroying whatever zeny they had before, or 'set Zeny,Zeny+100' to give them
-100 zeny)
-
-You can also use this command to get stat values:
-
- readparam(bVit)
- if(readparam(bVit)<=77) goto L_End;
- mes "Only people with over 77 Vit are reading this";
-L_End:
- close;
-
----------------------------------------
-
-*getcharid(<type>{,"<character name>"})
-
-This function will return a unique ID number of the invoking character, or, if a
-character name is specified, of that character.
-
-Type is the kind of associated ID number required:
-
- 0 - Character ID number.
- 1 - Party ID number.
- 2 - Guild ID number.
- 3 - Account ID number.
-
-For most purposes other than printing it, a number is better to have than a name
-(people do horrifying things to their character names).
-
-If the character is not in a party or not in a guild, the function will return 0
-if guild or party number is requested. If a name is specified and the character
-is not found, 0 is returned.
-
-If getcharid(0) returns a zero, the script got called not by a character and
-doesn't have an attached RID. Note that this will cause the map server to
-print "player not attached!" error messages, so it is preferred to use
-"playerattached" to check for the character attached to the script.
-
-if (getcharid(2)) mes "Only members of a guild are allowed beyond this point!";
-
----------------------------------------
-
-*getpartyname(<party id>)
-
-This function will return the name of a party that has the specified ID number.
-If there is no such party ID, "null" will be returned.
-
-Lets say the ID of a party was saved as a global variable:
-
- // This would return the name of the party from the ID stored in a variable
- mes "You're in the '"+getpartyname($@var)"' party, I know!";
-
----------------------------------------
-
-*getpartymember <party id>,[<type>];
-
-Thank you to HappyDenn for all this information.
-
-This command will finds all members of a specified party and returns their names
-(or character id or account id depending on the value of "type") into an array
-of temporary global variables. There's actually quite a few commands like this
-which will fill a special variable with data upon execution and not do anything
-else.
-
-Upon executing this,
-
-$@partymembername$[] is a global temporary stringarray which contains all the
- names of these party members
- (only set when type is 0 or not specified)
-
-$@partymembercid[] is a global temporary number array which contains the
- character id of these party members.
- (only set when type is 1)
-
-$@partymemberaid[] is a global temporary number array which contains the
- account id of these party members.
- (only set when type is 2)
-
-$@partymembercount is the number of party members that were found.
-
-The party members will (apparently) be found regardless of whether they are
-online or offline. Note that the names come in no particular order.
-
-Be sure to use $@partymembercount to go through this array, and not
-'getarraysize', because it is not cleared between runs of 'getpartymember'. If
-someone with 7 party members invokes this script, the array would have 7
-elements. But if another person calls up the NPC, and he has a party of 5, the
-server will not clear the array for you, overwriting the values instead. So in
-addition to returning the 5 member names, the 6th and 7th elements from the last
-call remain, and you will get 5+2 members, of which the last 2 don't belong to
-the new guy's party. $@partymembercount will always contain the correct number,
-(5) unlike 'getarraysize()' which will return 7 in this case.
-
-Example:
-
- // get the character's party ID
- getpartymember(getcharid(1));
-
- // immediately copy $@partymembercount value to a new variable, since
- // you don't know when 'getpartymember' will get called again for someone
- // else's party, overwriting your global array.
- set @partymembercount,$@partymembercount;
-
- // copy $@partymembername array to a new array
- copyarray @partymembername$[0],$@partymembername$[0],@partymembercount;
-
- //list the party members in NPC dialog
- set @count,0;
- L_DisplayMember:
- if(@count == @partymembercount) goto L_DisplayMemberEnd;
- mes (@count + 1) + ". ^0000FF" + @partymembername$[@count] + "^000000";
- set @count,@count+1;
- goto L_DisplayMember;
- L_DisplayMemberEnd:
- close;
-
----------------------------------------
-
-*getpartyleader <party id>,[<type>];
-
-This function returns some information about the given party-id's leader. When type is ommitted,
-the default information retrieved is Character name of the party leader. Possible types are:
-
- 1: Leader account id
- 2: Leader character id
- 3: Leader's class
- 4: Leader's current map index
- 5: Leader's current level as stored on the party structure (may not be
- current level if leader leveled up recently).
-
-If retrieval fails (leader not found or party does not exists), "null" is returned instead of character name,
-and -1 is returned for the other types.
-
----------------------------------------
-*getguildname(<guild id>)
-
-This function returns a guild's name given an ID number. If there is no such
-guild, "null" will be returned;
-
- // Would print what ever guild 10007 is, in my case this would return "AlcoROhics"
- mes "The guild "+GetGuildName(10007)+" are all nice people.";
-
- // This will do the same as above:
- set @var,10007;
- mes "We have some friends in "+GetGuildName(@var)+", you know.";
-
-This is used all over the WoE controlling scripts. You could also use it for a
-guild-based event.
-
----------------------------------------
-
-*getguildmaster(<guild id>)
-
-This function return the name of the master of the guild which has the specified
-ID number. If there is no such guild, "null" will be returned.
-
-// Would return the guild master of guild 10007, whatever that might be.
-// In this example it would return "MissDjax" cause she owns "AlcoROhics" (10007)
- mes getguildmaster(10007)+" runs "+getguildname(10007);
-
-Can be used to check if the character is the guildmaster of the specified guild.
-
-Maybe you want to make a room only guildmasters can enter:
-
- set @GID,getcharid(2);
- if(@GID==0) goto L_NoGuild;
- if(strcharinfo(0)==getguildmaster(@GID)) goto L_GuildMaster;
- mes "Sorry you dont own the guild you are in";
- close;
- L_NoGuild:
- mes "Sorry you are not in a guild";
- close;
- L_GuildMaster:
- mes "Welcome guild master of "+GetGuildName(@GID);
- close;
-
-
----------------------------------------
-*guildchangegm(<guild id>,<new master's name>)
-
-This function will change the Guild Master of a guild. The ID is the guild's
-id, and the new guildmaster's name must be passed.
-
-Returns 1 on success, 0 otherwise.
-
----------------------------------------
-*getguildmasterid(<guild id>)
-
-This function will return the character ID number of the guildmaster of the
-guild specified by the ID. 0 if the character is not a guildmaster of any guild.
-
----------------------------------------
-
-*strcharinfo(<type>)
-
-This function will return either the name, party name or guild name for the
-invoking character. Whatever it returns is determined by type.
-
- 0 - Character's name.
- 1 - The name of the party they're in if any.
- 2 - The name of the guild they're in if any.
-
-If a character is not a member of any party or guild, an empty string will be
-returned when requesting that information.
-
----------------------------------------
-
-*getequipid(<equipment slot>)
-
-This function returns the item ID of the item equipped in the equipment slot
-specified on the invoking character. If nothing is equpped there, it returns -1.
-Valid equipment slots are:
-
-1 - Upper head gear
-2 - Armor (Where you keep your Jackets and Robes)
-3 - What is in your Left hand.
-4 - What is in your Right hand.
-5 - The garment slot (Mufflers, Hoods, Manteaus)
-6 - What foot gear the player has on.
-7 - Accessory 1.
-8 - Accessory 2.
-9 - Middle Headgear (masks and glasses)
-10 - Lower Headgear (beards, some masks)
-
-Notice that a few items occupy several equipment slots, and if the character is
-wearing such an item, 'getequipid' will return it's ID number for either slot.
-
-Can be used to check if you have something equiped, or if you haven't got
-something equiped:
-
- if(getequipid(1)==2234) goto L_WearingTiara;
- mes "Come back when you have a Tiara on";
- close;
- L_WearingTiara:
- mes "What a lovely Tiara you have on";
- close;
-
-You can also use it to make sure people dont pass a point before removing an
-item totally from them. Let's say you dont want people to wear Legion Plate
-armor, but also dont want them to equip if after the check, you would do this:
-
- if ((getequipid(2) == 2341) || (getequipid(2) == 2342) goto L_EquipedLegionPlate;
- // the || is used as an or argument, there is 2341 and 2342 cause there are
- // two different legion plate armors, one with a slot one without.
- if ((countitem(2341) > 0) || (countitem(2432) > 0) goto L_InventoryLegionPlate;
- mes "I will lets you pass";
- close2;
- warp "place.gat",50,50;
- end;
- L_EquipedLegionPlate:
- mes "You are wearing some Legion Plate Armor, please drop that in your stash before continuing";
- close;
- L_InventoryLegionPlate:
- mes "You have some Legion Plate Armor in your inventory, please drop that in your stash before continuing";
- close;
-
----------------------------------------
-
-*getequipname(<equpment slot>)
-
-This function will return the name of the item equipped in the specified
-equipment slot on the invoking character. Almost identical to 'getequipid', good
-for an NPC to state what your are wearing, or maybe saving as a string variable.
-See 'getequipid' for a full list of valid equipment slots.
-
- if (getequipname(1)==0) goto L_No_HeadGear;
- mes "So you are wearing a "+getequipname(1)+" on your head";
- close;
- L_No_HeadGear:
- mes "You are not wearing any head gear";
- close;
-
----------------------------------------
-
-*getbrokenid(<number>)
-
-This function will search the invoking character's inventory for any broken
-items, and will return their item ID numbers. Since the character may have
-several broken items, 0 given as an argument will return the first one found, 1
-will return the second one, etc. Will return 0 if no such item is found.
-
- // Let's see if they have anything broken:
- if (getbrokenid(0)==0) goto Skip;
- // They do, so let's print the name of the first broken item:
- mes "Oh, I see you have a broken "+getitemname(getbrokenid(0))+" here!";
- Skip:
- mes "You don't have anything broken, quit bothering me.";
-
----------------------------------------
-
-*repair <broken item number>;
-
-This command repairs a broken peice of equipment, using the same list of broken
-items as available through 'getbrokenid'.
-
-The official scripts seem to use the repair command as a function instead:
-'repair(<number>)' but it returns nothing on the stack. Probably only Valaris,
-who made it, can answer why is it so.
-
----------------------------------------
-
-*getequipisequiped(<equipment slot>)
-
-This functions will return 1 if there is an equipment placed on the specified
-equipment slot and 0 otherwise. For a list of equipment slots
-see 'getequipid'. Function originally used by the refining NPCs:
-
- if (getequipisequiped(1)) goto L_equipped;
- mes "[Refiner]";
- mes "Do you want me to refine your dumb head?";
- close;
- L_equipped:
- mes "[Refiner]";
- mes "That's a fine hat you are wearing there...";
- close;
-
-
----------------------------------------
-
-*getequipisenableref(<equipment slot>)
-
-Will return 1 if the item equipped on the invoking character in the specified
-equipment slot is refinable, and 0 if it isn't. For a list of equipment slots
-see 'getequipid'.
-
- if (getequipisenableref(1)) goto L_Refine;
- mes "[Refiner]";
- mes "I can't refine this hat!...";
- close;
- L_Refine:
- mes "[Refiner]";
- mes "Ok I can refine this";
- close;
-
----------------------------------------
-
-*getequipisidentify(<equipment slot>)
-
-This function will return 1 if an item in the specified equipment slot is
-identified and 0 if it isn't. Since you can't even equip unidentified equipment,
-there's a question of whether it can actually end up there, and it will normally
-return 1 all the time if there is an item in this equipment slot.
-Which is kinda pointless.
-For a list of equipment slots see 'getequipid'.
-
----------------------------------------
-
-*getequiprefinerycnt(<equipment slot>)
-
-Returns the current number of plusses for the item in the specified equipment
-slot. For a list of equipment slots see 'getequipid'.
-
-Can be used to check if you have reached a maximum refine value, default for
-this is +10:
-
- if(getequiprefinerycnt(1) < 10) goto L_Refine_HeadGear;
- mes "Sorry, it's not possible to refine hats better than +10";
- close;
- L_Refine_HeadGear:
- mes "I will now upgrade your "+getequipname(1);
-
----------------------------------------
-
-*getequipweaponlv(<equipment slot>)
-
-This function returns the weapon level for the weapon equipped in the specified
-equipment slot on the invoking character. For a list of equipment slots see
-'getequipid'.
-
-Only 3 (Left hand) and 4 (Right hand) normally make sense, since only weapons
-have a weapon level. You can, however, probably, use this field for other
-equippable custom items as a flag or something.
-If no item is equipped in this slot, or if it doesn't have a weapon level
-according to the database, 0 will be returned.
-
- if(getequipweaponlv(4)==0) mes "Seems you dont have a weapon on";
- if(getequipweaponlv(4)==1) mes "You are holding a lvl 1 weapon";
- if(getequipweaponlv(4)==2) mes "You are holding a lvl 2 weapon";
- if(getequipweaponlv(4)==3) mes "You are holding a lvl 3 weapon";
- if(getequipweaponlv(4)==4) mes "You are holding a lvl 4 weapon";
- if(getequipweaponlv(4)==5) mes "You are holding a lvl 5 weapon, hm, must be a custom design";
-
-Or for the left hand, cause it can hold a weapon or a shield:
-
- if(getequipid(3)==0) goto L_NothingEquiped;
- if(getequipweaponlv(3)==0) mes "You are holding a shield, so it doesnt have a level";
- if(getequipweaponlv(3)==1) mes "You are holding a lvl 1 weapon";
- if(getequipweaponlv(3)==2) mes "You are holding a lvl 2 weapon";
- if(getequipweaponlv(3)==3) mes "You are holding a lvl 3 weapon";
- if(getequipweaponlv(3)==4) mes "You are holding a lvl 4 weapon";
- if(getequipweaponlv(3)==5) mes "You are holding a lvl 5 weapon, hm, must be a custom design";
- close;
- L_NothingEquiped:
- mes "Seems you have nothing equiped";
- close;
-
----------------------------------------
-
-*getequippercentrefinery(<equipment slot>)
-
-This function calculates and returns the percent value chance to successfully
-refine the item found in the specified equipment slot of the invoking character
-by +1. The actual formula is beyond the scope of this document, however, it is
-calculated as if the character was a blacksmith trying to refine this particular
-weapon, and depends on lots and lots of stuff. For a list of equipment slots see
-'getequipid'.
-
-These values can be displayed for the player to see, or used to calculate the
-random change of a refine succeeding or failing and then going through with it
-(which is what the official NPC refinery scripts use it for)
-
-// This will find a random number from 0 - 99 and if that is equal to or more
-// than the value recoverd by this command it will go to L_Fail
- if (getequippercentrefinery(3)<=rand(100)) goto L_Fail;
-
----------------------------------------
-
-*successrefitem <equipment slot>;
-
-This command will refine an item in the specified equipment slot of the invoking
-character by +1. For a list of equipment slots see 'getequipid'. This command
-will not only add the +1, but also display a 'refine success' effect on the
-character and put appropriate messages into their chat window. It will also give
-the character fame points if a weapon reached +10 this way, even though these
-will only take effect for blacksmith who will later forge a weapon.
-
-The official scripts seem to use the 'successrefitem' command as a function
-instead: 'successrefitem(<number>)' but it returns nothing on the stack.
-This is since jAthena, so probably nobody knows for sure why is it so.
-
----------------------------------------
-
-*failedrefitem <equipment slot>;
-
-This command will fail to refine an item in the specified equipment slot of the
-invoking character. The item will be destroyed. This will also display a 'refine
-failure' effect on the character and put appropriate messages into their chat
-window.
-
-The official scripts seem to use the 'failedrefitem' command as a function
-instead: 'failedrefitem(<number>)' but it returns nothing on the stack. This is
-since jAthena, so probably nobody knows for sure why is it so.
-
-
----------------------------------------
-
-*cutin "<filename with no extension>",<position>;
-
-This command will display a picture stored in the GRF file in the client for the
-player.
-
-The files are taken from '\data\texture\A_A£AII’„AI«§\illust' directory in the
-GRF file. The filename must be given with no extension, '.bmp' is added by the
-client itself and you can't have any other picture format displayed as a cutin.
-The biggest one that comes with the client is 400x503 pixels, and the smallest
-is 303x493 pixels, it is not known how big a picture has to be before the client
-goes insane. Bright magenta (color FF00FF) is considered to be transparent in
-these pictures. You can easily add and alter them, but how to do this is outside
-of the scope of this document.
-
-The position determines just where on screen the picture will appear:
- 0 - bottom left corner
- 1 - bottom middle
- 2 - bottom right corner
- 3 - middle of screen in a movable window with an empty title bar.
- 4 - middle of screen without the window header, but still movable.
- 255 - will remove the cutin previously displayed.
-
-Giving an empty string for the filename and 255 for the position will remove all
-cutin pictures. Any other position value will not cause a script error but will
-cause the player's client to curl up and die. Only one cutin may be on screen at
-any given time, any new cutins will replace it.
-
- // This will display the picture of the 7th kafra,
- // the one in orange and the mini-skirt :P
- cutin "kafra_7",2;
-
- // This will remove the displayed picture.
- cutin "Kafra_7",255;
-
- // This will remove all pictures displayed.
- cutin "",255;
-
-The client comes with those cutin pictures preinstalled which you can use:
-
-mets_alpha - This is a old fat man, holding a pipe, also with a pocket watch
- and cane
-pay_soldier - Wanna take a wild guess, thats right, the Soldiers that appear in
- Payon :D
-prt_soldier - Obvious
-ein_soldier - This guy looks cool, you've got to see him ;) This picture is for
- the new Einbroch guards
-moc_soldier - Obvious
-gef_soldier - Obvious
-katsua01 - It is not certain who this girl is (There is no sprite coming with
-katsua02 - the client that seems to match very well) but she is believed to
-katsua03 - be an NPC in official Comodo. The three pictures give different
- facial expressions.
-kafra_01 - Obvious
-kafra_02 - Obvious
-kafra_03 - Obvious
-kafra_04 - Obvious
-kafra_05 - Obvious
-kafra_06 - Obvious
-kafra_07 - Do I need to mention this one again ;)
-
----------------------------------------
-
-*cutincard <item id>;
-
-This command will display a card picture as a cutin on the client connected to
-the invoking character, with position number 4 (middle of screen, movable, but
-no title bar). See 'cutin'. To remove this cutin, use the regular 'cutin'
-command. Unlike the 'cutin' command, it will not take a filename, but will
-instead take an item ID. It will then refer to the text file listing card images
-which is normally found within your server's copy of the GRF file to find the
-real (korean) filename.
-
-If your server doesn't have that text file in that GRF or can't read it, it
-probably won't work.
-
----------------------------------------
-
-*statusup <stat>;
-
-This command will bump a specified stat of the invoking character up by one
-permanently. Stats are to be given as number, but you can use these constants to
-replace them:
-
-bStr - Strength
-bVit - Vitality
-bInt - Intelligence
-bAgi - Agility
-bDex - Dexterity
-bLuk - Luck
-
----------------------------------------
-
-*statusup2 <stat>,<amount>;
-
-This command will bump a specified stat of the invoking character up by the
-specified amount permanently. The amount can be negative. See 'statusup'.
-
- // This will decrease a character's Vit forever.
- statusup bVit,-1;
-
----------------------------------------
-
-*bonus <bonus type>,<amount>;
-*bonus2 <bonus type>,<amount>;
-*bonus3 <bonus type>,<amount>;
-*bonus4 <bonus type>,<amount>;
-
-These commands are meant to be used in item scripts. They will probably work
-outside item scripts, but the bonus will not persist for long. They, as
-expected, refer only to an invoking character.
-
-You can find the full list of possible bonuses and which command to use for each
-kind in 'doc/item_bonus.txt'.
-
----------------------------------------
-
-*skill <skill id>,<level>{,<flag>};
-*addtoskill <skill id>,<level>{,<flag>}
-
-These commands will give the invoking character a specified skill. This is also
-used for item scripts.
-
-Level is obvious. Skill id is the ID number of the skill in question as per
-'db/skill_db.txt'. It is not known for certain whether this can be used to give
-a character a monster's skill, but you're welcome to try with the numbers given
-in 'db/mob_skill_db.txt'.
-
-Flag is 0 if the skill is given permanently (will get written with the character
-data) or 1 if it is temporary (will be lost eventually, this is meant for card
-item scripts usage.). The flag parameter is optional, and defaults to 1 in
-'skill' and to 2 in 'addtoskill'.
-
-Flag 2 means that the level parameter is to be interpreted as a stackable
-additional bonus to the skill level. If the character did not have that skill
-previously, they will now at 0+the level given.
-
-// This will permanently give the character Stone Throw (TF_THROWSTONE,152), at
-// level 1.
- skill 152,1,0;
-
----------------------------------------
-
-*guildskill <skill id>,<level>{,<flag>}
-
-This command will bump up the specified guild skill by the specified number of
-levels. This refers to the invoking character and will only work if the invoking
-character is a member of a guild AND it's guildmaster, otherwise no failure
-message will be given and no error will occur, but nothing will happen - same
-about the guild skill trying to exceed the possible maximum. The full list of
-guild skills is available in 'db/skill_db.txt', these are all the GD_ skills at
-the end.
-
-The flag parameter is currently not functional and it's a mystery of what it
-would actually do. (Though probably, like for character skills, it would allow
-temporary bumping.) Using this command will bump the guild skill up permanently.
-
-// This would give your character's guild one level of Approval (GD_APPROVAL ID
-// 10000). Notice that if you try to add two levels of Approval, or add
-// Approval when the guild already has it, it will only have one level of
-// Approval afterwards.
- guildskill 10000,1,0;
-
-You might want to make a quest for getting a certain guild skill, make it hard
-enough that all the guild needs to help or something. Doing this for the Glory
-of the Guild skill, which allows your guild to use an emblem, is a good idea for
-a fun quest. (Wasting a level point on that is really annoying :D)
-
----------------------------------------
-
-*getskilllv(<skill id>)
-
-This function returns the level of the specified skill that the invoking
-character has. If they don't have the skill, 0 will be returned. The full list
-of character skills is available in 'db/skill_db.txt'.
-
-There are two main uses for this function, it can check whether the character
-has a skill or not, and it can tell you if the level is high enough.
-
-Example 1:
-
- f (getskilllv(152)) goto L_HasSkillThrowStone;
- mes "You dont have Throw Stone";
- close;
- L_HasSkillThrowStone:
- mes "You have got the skill Throw Stone";
- close;
-
-Example 2:
-
- if (getskilllv(28) >= 5) goto L_HasSkillHeallvl5orMore;
- if (getskilllv(28) == 10) goto L_HasSkillHealMaxed;
- mes "You heal skill is below lvl 5";
- close;
- L_HasSkillHeallvl6orMore:
- mes "Your heal lvl is 5 or more";
- close;
- L_HasSkillHealMaxed:
- mes "Your heal lvl has been maxed";
- close;
-
----------------------------------------
-
-*getgdskilllv(<guild id>,<skill id>)
-
-This function retirns the guild skills for the guild with a specified ID exactly
-as 'getskilllv' does.
-
----------------------------------------
-
-*basicskillcheck()
-
-This function will return the state of the configuration option
-'basic_skill_check' in 'battle_athena.conf'. It returns 1 if the option is
-enabled and 0 if it isn't. If the 'basic_skill_check' option is enabled, which
-it is by default, characters must have a certain number of basic skill levels to
-sit, request a trade, use emoticons, etc. Making your script behave differently
-depending on whether the characters must actually have the skill to do all these
-things might in some cases be required.
-
----------------------------------------
-
-*getgmlevel()
-
-This function will return the GM level of the account to which the invoking
-character belongs. If this is somehow executed from a console command, 99 will
-be returned, and 0 will be returned if the account has no GM level.
-
-This allows you to make NPC's only accessable for certain GM levels, or behave
-specially when talked to by GMs.
-
- if (getgmlevel()) mes "What is your command, your godhood?";
- if (getgmlevel()) goto Wherever;
-
----------------------------------------
-
-*end;
-*break;
-
-This command will stop the execution for this particular script. The two
-versions are prefectly equivalent. It is the normal way to end a script which
-does not use 'mes'.
-
- if (BaseLevel<=10) goto L_Lvl10;
- if (BaseLevel<=20) goto L_Lvl20;
- if (BaseLevel<=30) goto L_Lvl30;
- if (BaseLevel<=40) goto L_Lvl40;
- if (BaseLevel<=50) goto L_Lvl50;
- if (BaseLevel<=60) goto L_Lvl60;
- if (BaseLevel<=70) goto L_Lvl70;
- L_Lvl10:
- npctalk "Look at that you are still a n00b";
- end;
- L_Lvl20:
- npctalk "Look at that you are getting better, but still a n00b";
- end;
- L_Lvl30:
- npctalk "Look at that you are getting there, you are almost 2nd profession now right???";
- end;
- L_Lvl40:
- npctalk "Look at that you are almost 2nd profession";
- end;
-
-Without the use if 'end' it would travel through the labels until the end of the
-script. If you were lvl 10 or less, you would see all the speech lines, the use
-of 'end' stops this, and ends the script.
-
-Note: Break won't work anymore, it has been commented out in src/map/script.c:
-
-// {buildin_end,"break",""}, this might confuse advanced scripting support [Eoe]
-
----------------------------------------
-
-*checkoption(<option number>)
-*checkoption1(<option number>)
-*checkoption2(<option number>)
-*setoption <option number>{,type};
-
-The 'setoption' series of functions check for a so-called option that is set on
-the invoking character. 'Options' are used to store status conditions and a lot
-of other non-permanent character data of the yes-no kind. For most common cases,
-it is better to use 'checkcart','checkfalcon','checkpeco' and other similar
-functions, but there are some options which you cannot get at this way. They
-return 1 if the option is set and 0 if the option is not set.
-
-Option numbers valid for the first (option) version of this command are:
-
-0x1 - Sight in effect.
-0x2 - Hide in effect.
-0x4 - Cloaking in effect.
-0x8 - Cart number 1 present.
-0x10 - Falcon present.
-0x20 - Peco Peco present.
-0x40 - GM Perfect Hide in effect.
-0x80 - Cart number 2 present.
-0x100 - Cart number 3 present.
-0x200 - Cart number 4 present.
-0x400 - Cart number 5 present.
-0x800 - Orc head present.
-0x1000 - The character is wearing a wedding sprite.
-0x2000 - Ruwach is in effect.
-0x4000 - Chasewalk in effect.
-
-Option numbers valid for the second version (opt1) of this command are:
-
-1 - Petrified.
-2 - Frozen.
-3 - Stunned.
-4 - Sleeping.
-6 - Petrifying (the state where you can still walk)
-
-Option numbers valid for the third version (opt2) of this command are:
-
-1 - Poisoned.
-2 - Cursed.
-4 - Silenced.
-8 - Signum Crucis (plays a howl-like sound effect, but otherwise no visible effects are displayed)
-16 - Blinded.
-
-Option numbers (except for opt1) are bitmasks - you can add them up to check
- for several states, but the functions will return true if at least one of them
- is in effect.
-
-'setoption' will set options on the invoking character. There are no second and
-third versions of this command, so you can only change the values in the first
-list (cloak, cart, ruwach, etc). if flag is 1 (default when omitted),
-the option will be added to what the character currently has; if 0, the option is removed.
-
-This is definitely not a complete list of available option flag numbers. Ask a
-core developer (or read the source: src/map/status.h) for the full list.
-
----------------------------------------
-
-*setcart;
-*checkcart()
-
-This command will give the invoking character a cart. The cart given will be
-cart number 1 and will work regardless of whether the character is a merchant
-class or not.
-
-The accompanying function will return 1 if the invoking character has a cart
-(any kind of cart) and 0 if they don't.
-
- if (checkcart()) mes "But you already have a cart!";
-
----------------------------------------
-
-*setfalcon;
-*checkfalcon()
-
-This command will give the invoking character a falcon. The falcon will be there
-regardless of whether the character is a hunter or not. It will (probably) not
-have any useful effects for non-hunters though.
-
-The accompanying function will return 1 if the invoking character has a falcon
-and 0 if they don't.
-
- if (checkfalcon()) mes "But you already have a falcon!";
-
----------------------------------------
-
-*setriding;
-*checkriding()
-
-This command will give the invoking character a PecoPeco (if they are a Knight
-series class) or a GrandPeco (if they are a Crusader seriesclass). Unlike
-'setfalcon' and 'setcart' this will not work at all if they aren't of a class
-which can ride. This will work if the character doesn't have the riding skill,
-however.
-
-The accompanying function will return 1 if the invoking character is riding a
-bird and 0 if they don't.
-
- if (checkriding()) mes "PLEASE leave your bird outside! No riding birds on the floor here!";
-
----------------------------------------
-
-*savepoint "<map name>",<x>,<y>;
-*save "<map name>",<x>,<y>;
-
-This command saves a point that the invoking character will return to upon
-'return to save point' if dead or in some other cases. The two versions are
-equivalent. Map name, X coordinate and Y coordinate should be perfectly obvious.
-This ignores any and all map flags, and can make a character respawn where no
-teleportation is otherwise possible.
-
- savepoint "place.gat",350,75;
-
----------------------------------------
-
-*gettimetick(<tick type>)
-
-This function will return the system time in UNIX epoch time (if tick type is 2)
-or the time since the start of the current day in seconds if tick type is 1.
-Passing 0 will make it return the server's tick, which is a measurement in
-milliseconds used by the server's timer system. The server's tick is an
-unsigned int which loops every ~50 days.
-
-Just in case you don't know, UNIX epoch time is the number of seconds elapsed
-since 1st of January 1970, and is useful to see, for example, for how long the
-character has been online with OnPCLoginEvent and OnPCLogoutEvent, which could allow
-you to make an 'online time counted for conviction only' jail script.
-
----------------------------------------
-
-*gettime(<type>)
-
-This function will return specified information about the current system time.
-
-1 - Seconds (of a minute)
-2 - Minutes (of an hour)
-3 - Hour (of a day)
-4 - Week day (0 for Sunday, 6 is Saturday)
-5 - Day of the month.
-6 - Number of the month.
-7 - Year.
-8 - Day of the year.
-
-It will only return numbers.
-
- if (gettime(4)==6) mes "It's a Saturday. I don't work on Saturdays.";
-
----------------------------------------
-
-*gettimestr(<format string>,<max length>)
-
-This function will return a string containing time data as specified by the
-format string.
-
-This uses the C function 'strfmtime', which obeys special format characters. For
-a full description see, for example, the description of 'strfmtime' at
-http://www.delorie.com/gnu/docs/glibc/libc_437.html
-All the format characters given in there should properly work.
-Max length is the maximum length of a time string to generate.
-
-The example given in eAthena sample scripts works like this:
-
- mes gettimestr("%Y-%m/%d %H:%M:%S",21);
-
-This will print a full date and time like 'YYYY-MM/DD HH:MM:SS'.
-
----------------------------------------
-
-*openstorage;
-
-This will open a character's Kafra storage window on the client connected to the
-invoking character. It does not check wherever it is run from, so you can allow
-any feasible NPC to open a kafra storage. (It's not certain whether this works
-in item scripts, but if it does, it could be interesting.)
-
-The storage window might not open if a message box or a trade deal is present on
-screen already, so you should at least make sure the message box is closed
-before you open storage.
-
- mes "I will now open your stash for you";
- close2;
- openstorage;
- end;
-
----------------------------------------
-
-*guildopenstorage()
-
-This function works the same as 'openstorage' but will open a guild storage
-window instead for the guild storage of the guild the invoking character belongs
-to. This is a function because it returns a value - 0 if the guild storage was
-opened successfully and 1 if it wasn't. (Notice, it's a ZERO upon success.)
-Since guild storage is only accessible to one character at one time, it may fail
-if another character is accessing the guild storage at the same time.
-
-This will also fail and return 2 if the character does not belong to any guild.
-
----------------------------------------
-
-*itemskill <skill id>,<skill level>,"<skill name to show>";
-
-This is a command meant for item scripts to replicate single-use skills. It will
-not work properly in NPC scripts a lot of the time because casting a skill is
-not allowed when there is a message window or menu on screen. If there isn't one
-cause you've made sure to run this when they already closed it, it should work
-just fine and even show a targeting pointer if this is a targeting skill.
-
-// When you use Anodyne, you will cast Endure(8) level 1,
-// and "Endure" will appear above your head as you use it.
-605,Anodyne,Anodyne,11,2000,0,100,,,,,10477567,2,,,,,{ itemskill 8,1,"Endure"; },{}
-
-
----------------------------------------
-
-*produce <item level>;
-
-This command will open a crafting window on the client connected to the invoking
-character. The 'item level' is a number which determines what kind of a crafting
-window will pop-up. You can see the full list of such item levels in
-'db/produce_db.txt' which determines what can actually be produced.
-The window will not be empty only if the invoking character can actually produce
-the items of that type and has the appropriate raw materials in their inventory.
-
-Valid item levels are:
-
- 1 - Level 1 Weapons
- 2 - Level 2 Weapons
- 3 - Level 3 Weapons
- 16 - Blacksmith's Stones and Metals
- 32 - Alchemist's Potions
- 64 - Whitesmith's Coins
- 123 - Whitesmith's Nuggets
- 256 - Assassin Cross's Deadly Poison
-
----------------------------------------
-
-*monster "<map name>",<x>,<y>,"<name to show>",<mob id>,<amount>{,"<event label>"};
-*areamonster "<map name>",<x1>,<y1>,<x2>,<y2>,"<monster name>",<amount>{,"<event label>"};
-
-This command will spawn a monster on the specified coordinates on the specified
-map. If the script is invoked by a character, a special map name, "this", will
-be recognised to mean the name of the map the invoking character is located at.
-This command works fine in the item scripts.
-
-The same command arguments mean the same things as described above in the
-beginning of this document when talking about permanent monster spawns. Monsters
-spawned in this manner will not respawn upon being killed.
-
-Unlike the permanent monster spawns, if the mob id is -1, a random monster will
-be picked from the entire database according to the rules configured in the
-server for dead branches. This will work for all other kinds of non-permanent
-monster spawns.
-
-The only very special thing about this command is an event label, which is an
-optional parameter. This label is written like '<NPC object name>::<label name>'
-and upon the monster being killed, it will execute the script inside of the
-specified NPC object starting from the label given. The RID of the player
-attached at this execution will be the RID of the killing character.
-
- monster "place.gat",60,100,"Poring",1002,1,"NPCNAME::OnLabel";
-
-If you do not specify any event label, a label in the NPC object that ran this
-command, called 'OnMyMobDead:' will execute anyway, if present.
-
-The coordinates of 0,0 will spawn the monster on a random place on the map.
-
-The 'areamonster' command works much like the 'monster' command and is not
-significantly different, but spawns the monsters within a square defined by
-x1/y1-x2/y2.
-
-Simple monster killing script:
-
- <Normal NPC object definition. Let's assume you called him NPCNAME.>
- mes "[Summon Man]";
- mes "Want to start the kill?";
- next;
- menu "Yes",L_Yes,"No",-;
- mes "[Summon Man]";
- mes "Come back later";
- close;
- L_Yes:
- monster "prontera.gat",0,0,"Quest Poring",1002,10,"NPCNAME::OnPoringKilled";
- // By using 0,0 it will spawn them in a random place.
- mes "[Summon Man]";
- mes "Now go and kill all the Poring I summoned";
- // He summoned ten.
- close;
- L_PoringKilled:
- set $PoringKilled,$PoringKilled+1;
- if ($PoringKilled==10) goto L_AllDead;
- end;
- L_AllDead:
- announce "Summon Man: Well done all the poring are dead",3;
- set $PoringKilled,0;
- end;
-
-For more good examples see just about any official 2-1 or 2-2 job quest script.
-
----------------------------------------
-
-*killmonster "<map name>","<event label>";
-
-This command will kill all monsters that were spawned with 'monster' or
-'addmonster' and have a specified event label attached to them. Commonly used to
-get rid of remaining quest monsters once the quest is complete.
-
-If the label is given as "All", all monsters which have their respawn times set
-to -1 (like all the monsters summoned with 'monster' or 'areamonster' script
-command, and all monsters summoned with GM commands, but no other ones - that
-is, all non-permanent monsters) on the specified map will be killed regardless
-of the event label value.
-
----------------------------------------
-
-*killmonsterall "<map name>";
-
-This command will kill all monsters on a specified map name, regardless of how
-they were spawned or what they are.
-
----------------------------------------
-*clone "<map name>",<x>,<y>,"<event>",<char id>{,<master_id>{,<mode>{,<flag>,<duration>}}}
-
-This command creates a monster which is a copy of another player. The first
-four arguments serve the same purpose as in the monster script command, The
-<char id> is the character id of the player to clone (player must be online).
-If <master id> is given, the clone will be a 'slave/minion' of it. Master_id
-must be a character id of another online player.
-
-The mode can be specified to determine the behaviour of the clone, it's
-values are the same as the ones used for the mode field in the mob_db. The
-default mode is aggressive, assists, can move, can attack.
-
-Flag can be either zero or one currently. If zero, the clone is a normal
-monster that'll target players, if one, it is considered a summoned monster,
-and as such, it'll target other monsters. Defaults to zero.
-
-The duration specifies how long the clone will live before it is auto-removed.
-Specified in seconds, defaults to no limit (zero).
-
-Returned value is the monster ID of the spawned clone. If command fails,
-returned value is zero.
-
----------------------------------------
-
-*doevent "<NPC object name>::<event label>";
-
-This command will start a new execution thread in a specified NPC object at the
-specified label. The execution of the script running this command will not stop.
-No parameters may be passed with a doevent call.
-
-The script of the NPC object invoked in this manner will run as if it's been
-invoked by the RID that was active in the script that issued a 'doevent'.
-
- place.gat,100,100,1%TAB%script%TAB%NPC%TAB%53,{
- mes "This is what you will see when you click me";
- close;
- Label:
- mes "This is what you will see if the doevent is activated";
- close;
- }
-
- ....
-
- doevent "NPC::Label";
-
----------------------------------------
-
-*donpcevent "<event label>";
-
-This command is kinda confusing cause it performs in two completely different
-ways.
-
-If the event label is phrased like "::<label name>", all NPC objects that have a
-specified label in them will be invoked as if by a 'doevent', but no RID
-whatsoever will be attached while they execute.
-
-Otherwise, if the label is given as "<NPC name>::<label name>", a label within
-the NPC object that runs this command will be called, but as if it was running
-inside another, specified NPC object. No RID will be attached to it in this case
-either.
-
-This can be used for making another NPC react to an action that you have done
-with the NPC that has this command in it, i.e. show an emotion, or say
-something.
-
- place.gat,100,100,1%TAB%script%TAB%NPC%TAB%53,{
- mes "Hey NPC2 copy what I do";
- close2;
- set @emo, rand(1,30);
- donpcevent "NPC2::Emo";
- Emo:
- emotion @emo;
- end;
- }
-
- place.gat,102,100,1%TAB%script%TAB%NPC2%TAB%53,{
- mes "Hey NPC copy what I do";
- close2;
- set @emo, rand(1,30);
- donpcevent "NPC::Emo";
- Emo:
- emotion @emo;
- end;
- }
-
-This will make both NPC perform the same random emotion from 1 to 30, and the
-emotion will appear above each of their heads.
-
----------------------------------------
-
-*addtimer <ticks>,"<NPC object name>::<label>";
-*deltimer "<NPC object name>::<event label>";
-*addtimercount <ticks>,"<NPC object name>::<event label>";
-
-These commands will create, destroy, and delay a countdown timer - 'addtimer' to
-create, 'deltimer' to destroy and 'addtimercount' to delay it by the specified
-number of ticks. For all three cases, the event label given is the identifier of
-that timer.
-
-When this timer runs out, a new execution thread will start in the specified NPC
-object at the specified label. If no such label is found in the NPC object, it
-will run as if clicked. In either case, no RID will be attached during
-execution.
-
-The ticks are given in 1/1000ths of a second.
-
----------------------------------------
-
-*stoptimer;
-*inittimer;
-*enablearena;
-*disablearena;
-*cmdothernpc "<npc name?>","<command?>";
-
-This set of commands is marked as added by someone going under the nickname
-'RoVeRT', as mentioned the source code comments, and has to do with timers and
-scheduling working entirely unlike any other timing commands. It is not certain
-that they actually even work properly anymore, and most of these read no
-arguments, though the 'inittimer'/'stoptimer' pair of commands has to do
-something with an 'OnTimer' label and will probably invoke it and 'cmdothernpc'
-will execute starting with the label 'OnCommand'. Whatever they actually do, the
-other commands can most likely do it better. The two arena commands definitely
-do not do anything useful at all.
-
-None of these commands are used in any scripts bundled with eAthena. Most
-probably they are deprecated and left in by mistake.
-
-Unless RoVeRT can be found and asked to clarify what these were made for, that
-is.
-
----------------------------------------
-
-*initnpctimer{ "<NPC object name>"};
-*stopnpctimer{ "<NPC object name>"};
-*startnpctimer{ "<NPC object name>"};
-*setnpctimer <tick>{,"<NPC object name>"};
-*getnpctimer(<type of information>{,"<NPC object name>"});
-*attachnpctimer {"<character name>"};
-*detachnpctimer {"<NPC object name>"};
-
-This set of commands and functions will create and manage an NPC-object based
-timer. The NPC object may be declared by name, or the name in all cases may be
-omitted, in that case this timer will be based in the object the current script
-is running in.
-
-Why is it actually part of an NPCs structure we aren't sure, but it is, and
-while 'addtimer'/'deltimer' commands will let you have many different timers
-referencing different labels in the same NPC, one each and each with their own
-countdown, 'initnpctimer' can only have one per NPC object. But it can trigger
-many labels and it can let you know how many were triggered already and how many
-still remain.
-
-This timer is counting up from 0 in ticks of 1/1000ths of a second each. Upon
-creating this timer, the execution will not stop, but will happily continue
-onward. The timer will then invoke new execution threads at labels
-"OnTimer<time>:" in the NPC object it is attached to.
-
-To create the timer, use the 'initnpctimer', which will start it running.
-'stopnpctimer' will pause the timer, without clearing the current tick, while
-'startnpctimer' will let the paused timer continue.
-
-It is not quite clear whether the new invocations will always have a RID.
-Apparently, the RID that was in effect when the timer was initialised will still
-be attached to these executions in some cases, but it's not quite clear -
-experiment with RID-dependent commands, like 'mes', and tell us what happens and
-who gets the message, if anyone.
-
-Even if they don't have a RID by default, 'attachnpctimer' will allow you to
-explicitly attach a character's RID to the timer, which will make them the
-target for all character-referencing commands and functions, not to mention
-variables. 'detachnpctimer' will make the RID zero, making all character-
-referencing functions fail with an error.
-
-'setnpctimer' will explicitly set the timer to a given tick. To make it useful,
-you will need the 'getnpctimer' function, which the type of information argument
-means:
-
- 0 - Will return the current tick count of the timer.
- 1 - Will return 1 if there are remaining "OnTimer<ticks>:" labels in the
- specified NPC waiting for execution.
- 2 - Will return the number of times the timer has triggered an "OnTimer<tick>:"
- label in the specified NPC.
-
-Example 1:
-
- <NPC Header> {
- initnpctimer;
- npctalk "I cant talk right now, give me 10 seconds";
- end;
- OnTimer5000:
- npctalk "Ok 5 seconds more";
- end;
- OnTimer6000:
- npctalk "4";
- end;
- OnTimer7000:
- npctalk "3";
- end;
- OnTimer8000:
- npctalk "2";
- end;
- OnTimer9000:
- npctalk "1";
- end;
- OnTimer10000:
- stopnpctimer;
- mes "[Man]";
- mes "Ok we can talk now";
- }
-
-Example 2:
-
- OnTimer15000:
- set $quote,rand(5);
- if($quote == 0) goto Lquote0;
- if($quote == 1) goto Lquote1;
- if($quote == 2) goto Lquote2;
- if($quote == 3) goto Lquote3;
- if($quote == 4) goto Lquote4;
- Lquote0:
- npctalk "If 0 is randomly picked you will see this";
- setnpctimer 0;
- end;
- Lquote1:
- npctalk "If 1 is randomly picked you will see this";
- setnpctimer 0;
- end;
- Lquote2:
- npctalk "If 2 is randomly picked you will see this";
- setnpctimer 0;
- end;
- Lquote3:
- npctalk "If 3 is randomly picked you will see this";
- setnpctimer 0;
- end;
- Lquote4:
- npctalk "If 4 is randomly picked you will see this";
- setnpctimer 0;
- end;
-
- // This OnInit label will run when the script is loaded, so that the timer
- // is initialised immediately as the server starts. It is dropped back to 0
- // every time the NPC says something, so it will cycle continiously.
- OnInit:
- initnpctimer;
- end;
-
-Example 3:
-
- mes "[Man]";
- mes "I have been waiting "+(getnpctimer(0)/1000)+" seconds for you";
- // we divide the timer returned by 1000 cause it will be displayed in
- // milliseconds otherwise
- close;
-
-Example 4:
-
- mes "[Man]";
- mes "Ok I will let you have 30 sec more";
- close2;
- setnpctimer (getnpctimer(0)-30000);
- // Notice the 'close2'. If there were a 'next' there the timer would be
- // changed only after the player pressed the 'next' button.
- end;
-
----------------------------------------
-
-*announce "<text>",<flag>{,<color>}
-
-This command will broadcast a message to all or most players, similar to
-@kami/@kamib GM commands.
-
-The region the broadcast is heard in and the color the message will come up as
-will be determined by the flags:
-
- announce "This will be shown to everyone at all in yellow.",0;
-
-The flag values are coded as constants in db/const.txt to make them easier to use:
-- bc_all: Broadcast message is sent server-wide
-- bc_map: Message is sent to everyone in the same map
-- bc_area: Message is sent to players in the vecinity of the source.
-- bc_self: Message is sent only to current player.
-
-- bc_npc: Broadcast source is the npc, not the player attached to the script
- (useful when a player is not attached or the message should be sent to those
- nearby the npc)
-
-- bc_yellow: The default is to send broadcasts in yellow color.
-- bc_blue: Alternate broadcast is displayed in blue color.
-
-The optional parameter, color, allows usage of broadcasts in any custom color.
-The color parameter is a single number which can be in hexadecimal notation.
-For example:
- announce "This will be shown to everyone at all in yellow.",bc_all,0xFFFF00;
-Will display a global announce in yellow. The color format is in RGB (0xRRGGBB).
-
-Using this for private messages to players is probably not that good an idea,
-but it can be used instead in NPCs to "preview" an announce.
-
- // This will be a private message to the player using the NPC that made the
- // annonucement
- announce "This is my message just for you",bc_blue|bc_self;
-
- // This will be shown on everyones screen that is in sight of the NPC.
- announce "This is my message just for you people here",bc_area;
-
----------------------------------------
-
-*mapannounce "<map name>","<text>",<flag>[,<color>];
-
-This command will work like 'announce' but will only broadcast to characters
-currently residing on the specified map. The flag and optional color
-parameters are the same as in 'announce', even though the only ones that make
-sense are the color related ones.
-
----------------------------------------
-
-*areaannounce "<map name>",<x1>,<y1>,<x2>,<y2>,"<text>",<flag>[,<color>];
-
-This command works like 'announce' but will only broadcast to characters
-residing in the specified x1/y1-x2/y2 square on the map given. The flags and
-color parameter given are the same as in 'announce', but only the color
-related ones have effect.
-
- areaannounce "prt_church.gat",0,0,350,350,"God's in his heaven, all right with the world",0;
-
----------------------------------------
-
-*getusers(<type>)
-
-This function will return a number of users on a map or the whole server. What
-it returns is specified by Type.
-
-Type is a bitmask, add up to get the effects you want:
-
- 8 - This will count all characters on the same map as the current NPC.
- (By default, it will count people on the same map as the character)
- 7 - Return the amount of players for the entire server.
- (By default, only the players on the map will be counted.)
-
-So 'getusers(0)' will return the number of characters on the same map as the
-invoking character, while 'getusers(7)' will give the count for entire server.
-
----------------------------------------
-
-*getmapusers("<map name>")
-
-This function will return the number of users currently located on the specified
-map.
-
-Currently being used in the PVP scripts to check if a PVP room is full of not,
-if the number returned it equal to the maximum allowed it will not let you
-enter.
-
----------------------------------------
-
-*getareausers("<map name>",<x1>,<y1>,<x2>,<y2>)
-
-This function will return the count of connected characters which are located
-within the specified area - an x1/y1-x2/y2 square on the specified map.
-
-This is useful for maps that are split into many buildings, such as all the
-"*_in.gat" maps, due to all the shops and houses.
-
----------------------------------------
-
-*getareadropitem("<map name>",<x1>,<y1>,<x2>,<y2>,<item>)
-
-This function will count all the items with the specified ID number lying on the
-ground on the specified map within the x1/y1-x2/y2 square on it and return that
-number.
-
-This is the only function around where a parameter may be either a string or a
-number! If it's a number, it means that only the items with that item ID number
-will be counted. If it is a string, it is assumed to mean the 'english name'
-field from the item database. If you give it an empty string, or something that
-isn't found from the item database, it will count items number '512' (apples).
-
----------------------------------------
-
-*disablenpc "<NPC object name>";
-*enablenpc "<NPC object name>";
-
-These two commands will disable and enable, respectively, an NPC object
-specified by name. The disabled NPC will disappear from sight and will no longer
-be triggerable in the normal way. It is not clear whether it will still be
-accessible through 'donpcevent' and other triggering commands, but it probably
-will be. You can disable even warp NPCs if you know their object names, which is
-an easy way to make a map only accessible through walking half the time. Then
-you 'enablenpc' them back.
-
-You can also use these commands to create the illusion of an NPC switching
-between several locations, which is often better than actually moving the NPC -
-create one NPC object with a visible and a hidden part to their name, make a few
-copies, and then disable all except one.
-
----------------------------------------
-
-*hideonnpc "<NPC object name>";
-*hideoffnpc "<NPC object name>";
-
-These commands will make the NPC object specified display as hidden/visible,
-even though not actually disabled per se. Hidden as in thief Hide skill, but
-unfortunately, not detectable by Ruwach or Sight.
-
-As they are now, these commands are pointless, it is suggested to use
-'disablenpc'/'enablenpc', because these two commands actually unload the NPC
-sprite location and other accompanying data from memory when it is not used.
-However, you can use these for some quest ideas (such as cloaking npcs talking
-while hidden then revealing.... you can wonder around =P
-
----------------------------------------
-
-*sc_start <effect type>,<ticks>,<extra argument>{,<target ID number>};
-*sc_start2 <effect type>,<ticks>,<extra argument>,<percent chance>{,<target ID number>};
-*sc_start4 <effect type>,<ticks>,<value 1>,<value 2>,<value 3>,<value 4>{,<target ID number>};
-*sc_end <effect type>{,<target ID number>};
-
-These command bestow a status effect on the invoking character. This command is
-used a lot in the item scripts.
-
- // This would poison them for 10 min
- sc_start SC_Poison,600000,0;
-
-Effect type is a number of effect, 'db/const.txt' lists the common (mostly
-negative) status effect types as constants, starting with 'SC_'. You can also
-use this to give someone an effect of a player-cast spell:
-
- // This will bless someone as if with Bless 10:
- sc_start 10,240000,10;
-
-Extra argument's meaning differs depending on the effect type, for most effects
-caused by a player skill the extra argument means the level of the skill that
-would have been used to create that effect, for others it might have no meaning
-whatsoever. You can actually bless someone with a 0 bless spell level this way,
-which is fun, but weird.
-
-The target ID number, if given, will cause the status effect to appear on a
-specified character, instead of the one attached to the running script. This has
-not been properly tested.
-
-'sc_start2' is perfectly equivalent, but unlike 'sc_start', a status change
-effect will only occur with a specified percentage chance. 10000 given as the
-chance is equivalent to a 100% chance, 0 is a zero.
-
-'sc_start4' is just like sc_start, however it takes four parameters for the
-status change instead of one. What these values are depends on the status
-change in question. For example, elemental armor defense takes the following
-four values:
-- val1 is the first element, val2 is the resistance to the element val1.
-- val3 is the second element, val4 is the resistance to said element.
-eg: sc_start4 SC_DefEle,60000,Ele_Fire,20,Ele_Water,-15;
-
-'sc_end' will remove a specified status effect.
-
-You can see the full list of status effects caused by skills in
-'src/map/status.h' - they are currently not fully documented, but most of that
-should be rather obvious.
-
----------------------------------------
-
-*getscrate(<effect type>,<base rate>{,<target ID number>})
-
-This function will return the chance of a status effect affecting the invoking
-character, in percent, modified by the their current defense against said
-status. The 'base rate' is the base chance of the status effect being inflicted,
-in percent.
-
- if (rand(100) > getscrate(Eff_Blind, 50)) goto BlindHimNow;
-
-You can see the full list of available effect types you can possibly inflict in
-'db/const.txt' under 'Eff_'.
-
-It is pretty certain that addressing the target by an ID number will not
-currently work due to a bug.
-
----------------------------------------
-
-*callshop "<shop name>",<flag>;
-
-This command forces an npc shop to be invoked as if the player clicked on it.
-With normal shops it will not work unless the player is within clicking range,
-but the real use of this script command is together with "invisible shops",
-which are specified in the same way an invisible npc would be specified.
-For example, a generic invisible tool shop could be:
-
-- shop INVISIBLE_SHOP -,611:-1,1750:-1,501:-1,502:-1,503:-1,504:-1,506:-1
-
-Which players cannot click on, but can be invoked using:
-
-callshop "INVISIBLE_SHOP", 0;
-
-The flag values are: 1 invokes the buying window, 2 invokes the selling
-window, any other value invokes the buy/sell dialogue.
-
-The function returns 1 on success, and the script is not automatically
-closed, so be careful to not do any item trading on the same script to prevent
-possible exploits (if possible, use close or close2 before invoking the shop
-itself).
-
----------------------------------------
-
-*debugmes "<message>";
-
-This command will send the message to the server console (map-server window). It
-will not be displayed anywhere else.
-
- debugmes strcharinfo(0)+" has just done this that and the other";
- // You would see in the map-server window "NAME has just done this that and
- // the other"
-
----------------------------------------
-
-*pet <pet id>;
-
-This command is used in all the item scripts for taming items. Running this
-command will make the pet catching cursor appear on the client connected to the
-invoking character, usable on the monsters with the specified pet ID number. It
-will still work outside an item script.
-
-A full list of pet IDs can be found inside 'db/pet_db.txt'
-
----------------------------------------
-
-*bpet;
-
-This command opens up a pet hatching window on the client connected to the
-invoking character. It is used in item script for the pet incubators and will
-let the player hatch an owned egg. If the character has no eggs, it will just
-open up an empty incubator window.
-This is still usable outside item scripts.
-
----------------------------------------
-
-*resetlvl <action type>;
-
-This is a character reset command, meant mostly for rebirth script supporting
-Advanced jobs, which will reset the invoking character's stats and level
-depending on the action type given. Valid action types are:
-
- 1 - Base level 1, Job level 1, 0 skill points, 0 base xp, 0 job xp, wipes the
- status effects, sets all stats to 1. If the new job is 'Novice High', give
- 100 status points, give First Aid and Play Dead skills.
- 2 - Base level 1, Job level 1, 0 skill points, 0 XP/JXP. Skills and attribute
- values are not altered.
- 3 - Base level 1, base xp 0. Nothing else is changed.
- 4 - Job level 1, job xp 0. Nothing else is changed.
-
-In all cases it will also unequip everything the character has on.
-
-Even though it doesn't return a value, it is used as a function in the official
-rebirth scripts. Ask AppleGirl why.
-
----------------------------------------
-
-*resetstatus;
-
-This is a character reset command, which will reset the stats on the invoking
-character and give back all the stat points used to raise them previously.
-Nothing will happen to any other numbers about the character.
-
-Used in reset NPC's (duh!)
-
----------------------------------------
-
-*resetskill;
-
-This command takes off all the skill points on the invoking character, so they
-only have Basic Skill blanked out (lvl 0) left, and returns the points for them
-to spend again. Nothing else will change but the skills. Quest skills will also
-reset if 'quest_skill_reset' option is set to Yes in 'battle_athena.conf'. If
-the 'quest_skill_learn' option is set in there, the points in the quest skills
-will also count towards the total.
-
-Used in reset NPC's (duh!)
-
----------------------------------------
-
-*changebase <job ID number>;
-
-This will change the appearance of the invoking character to that of a specified
-job class. Nothing but appearance will change. This command is used in item
-scripts for "Wedding Dress" and "Tuxedo" so the character like job 22, which is
-the job number of the wedding sprites.
-
-It would be entered in the equip bonus section of an item
-
-2338,Wedding_Dress,Wedding Dress,5,43000,,500,,0,,0,119529470,7,0,16,,0,1,0,{ bonus bMdef,15; changebase 22; }
-
-This command only works when inside item scripts.
-
----------------------------------------
-
-*changesex;
-
-This command will change the gender for the attached character's account. If it
-was male, it will become female, if it was female, it will become male. The
-change will be written to the character server, but there is no way to send this
-information to the client, so the player will continue to see their character as
-the gender it previously was. What the other players will see before the
-relogin is not clear.
-
-If the character currently connected when this command was invoked was a
-Dancer/Gypsy or Bard/Clown, they will become a Swordman upon 'changesex'.
-Whatever happens to their skills is not clear. Whatever happens if another
-character on the same account was a gender-specific class is not clear either,
-but it's likely that the client will have serious issues with that, since no
-other characters on the same account will get altered.
-
-There's good reasons to be very careful when using this command.
-
----------------------------------------
-
-*waitingroom "<chatroom name>",<limit>{,<event label>,<trigger>};
-
-This command will create a chat room, owned by the NPC object running this
-script and displayed above the NPC sprite.
-The maximum length of a chatroom name is 60 letters.
-
-The limit is the maximum number of people allowed to enter the chat room. If the
-optional event and trigger parameters are given, the event label
-("<NPC object name>::<label name>") will be invoked as if with a 'doevent' upon
-the number of people in the chat room reaching the given triggering amount.
-
-It's funny, but for compatibility with jAthena, you can swap the event label and
-the trigger parameters, and it will still work.
-
-// The NPC will just show a box above its head that says "Hello World", clicking
-// it will do nothing, since the limit is zero.
- waitingroom "Hello World",0;
-
-// The NPC will have a box above its head, it will say "Disco - Waiting Room"
-// and will have 8 waiting slots. Clicking this will enter the chat room, where
-// the player will be able to wait until 8 people accumulate. Once this happens,
-// it will cause the NPC "Bouncer" run the label "OnStart"
-
- waitingroom "Disco - Waiting Room",8,"Bouncer::OnStart",8;
-
-Creating a waiting room does not stop the execution of the script and it will
-continue to the next line.
-
-For more examples see the 2-1 and 2-2 job quest scripts which make extensive use
-of waiting rooms.
-
----------------------------------------
-
-*delwaitingroom {"<NPC object name"};
-
-This command will delete a waiting room. If no parameter is given, it will
-delete a waiting room attached to the NPC object running this command, if it is,
-it will delete a waiting room owned by another NPC object. This is the only way
-to get rid of a waiting room, nothing else will cause it to disappear.
-
-It's not clear what happens to a waiting room if the NPC is disabled with
-'disablenpc', by the way.
-
----------------------------------------
-
-*enablewaitingroomevent {"<NPC object name>"};
-*disablewaitingroomevent {"<NPC object name>"};
-
-This will enable and disable triggering the waiting room event (see
-'waitingroom') respectively. Optionally giving an NPC object name will do that
-for a specified NPC object. The chat room will not disappear when triggering is
-disabled and enabled in this manner and players will not be kicked out of it.
-Enabling a chat room event will also cause it to immediately check whether the
-number of users in it exceeded the trigger amount and trigger the event
-accordingly.
-
-Normally, whenever a waiting room was created to make sure that only one
-character is, for example, trying to pass a job quest trial, and no other
-characters are present in the room to mess up the script.
-
----------------------------------------
-
-*getwaitingroomstate(<information type>{,"<NPC object name>"})
-
-This function will return information about the wating room state for the
-attached waiting room or for a waiting room attached to the specified NPC if
-any.
-
-The valid information types are:
-
- 0 - Number of users currently chatting.
- 1 - Maximum number of users allowed.
- 2 - Will return 1 if the waiting room has a trigger set.
- 0 otherwise.
- 3 - Will return 1 if the waiting room is currently disabled.
- 0 otherwise.
- 4 - The Title of the waiting room (string)
- 5 - Password of the waiting room, if any. Pointless, since there is no way to
- set a password on a waiting room right now.
- 16 - Event name of the waiting room (string)
- 32 - Whether or not the waiting room is full.
- 33 - Whether the amount of users in the waiting room is higher than the trigger
- number.
-
----------------------------------------
-
-*warpwaitingpc "<map name>",<x>,<y>{,<number of people>};
-
-This command will warp the amount of characters equal to the trigger number of
-the waiting room chat attached to the NPC object running this command to the
-specified map and coordinates, kicking them out of the chat. Those waiting the
-longest will get warped first. It can also do a random warp on the same map
-("Random" instead of map name) and warp to the save point ("SavePoint").
-
-The list of characters to warp is taken from the list of the chat room members.
-Those not in the chat room will not be considered even if they are talking to
-the NPC in question. If the number of people is given, exactly this much people
-will be warped.
-
-This command can also keep track of who just got warped. It does this by setting
-special variables:
-
-$@warpwaitingpc[] is an array containing the character id numbers of the
- characters who were just warped.
-$@warpwaitingpcnum contains the number of the character it just warped.
-
-See also 'getpartymember' for advice on what to do with those variables.
-
-The obvious way of using this effectively would be to set up a waiting room for
-two characters to be warped onto a random PVP map for a one-on-one duel, for
-example.
-
----------------------------------------
-
-*waitingroomkickall {"<NPC object name>"};
-
-This command would kick everybody out of a specified waiting room chat. IF it
-was properly linked into the script interpreter which it isn't, even though the
-code for it is in place. Expect this to become available in upcoming SVN
-releases.
-
----------------------------------------
-
-*attachrid(<character ID>)
-*detachrid
-
-A 'RID' is an ID of a character who caused the NPC script to run, as has been
-explained above in the introduction section. Quite a bit of commands want a RID
-to work, since they wouldn't know where to send information otherwise. And in
-quite a few cases the script gets invoked with a RID of zero (like through
-OnTime special labels). If an NPC script needs this, it can attach a specified
-character's id to itself. by calling the 'attachrid' function.
-
-'attachrid' returns 1 if the character was found online and 0 if it wasn't.
-
-This could also be used, while running in a script invoked by a character
-through talking to an NPC, to mess with other characters.
-Detaching the RID will make the RID of the script zero.
-
----------------------------------------
-
-*isloggedin(<character id>)
-
-This function returns 1 if the specified character is logged in and 0 if they
-aren't.
-
----------------------------------------
-
-*setmapflagnosave "<map name>","<alternate map name>",<x>,<y>;
-
-This command sets the 'nosave' flag for the specified map and also gives an
-alternate respawn-upon-relogin point.
-
-It does not make a map impossible to make a savepoint on as you would normally
-think, 'savepoint' will still work. It will, however, make the specified map
-kick the reconnecting players off to the alternate map given to the coordinates
-specified.
-
----------------------------------------
-
-*setmapflag "<map name>",<flag>;
-
-This command marks a specified map with a map flag given. Map flags alter the
-behavior of the map, you can see the list of the available ones in
-'db/const.txt' under 'mf_'.
-
-The map flags alter the behavior of the map regarding teleporting (mf_nomemo,
-mf_noteleport, mf_nowarp, mf_nogo) storing location when disconnected
-(mf_nosave), dead branch usage (mf_nobranch), penalties upon death
-(mf_nopenalty, mf_nozenypenalty), PVP behavior (mf_pvp, mf_pvp_noparty,
-mf_pvp_noguild, mf_nopvp), WoE behavior (mf_gvg,mf_gvg_noparty), ability to use
-skills or open up trade deals (mf_notrade, mf_novending, mf_noskill, mf_noicewall),
-current weather effects (mf_snow, mf_fog, mf_sakura, mf_leaves, mf_rain, mf_clouds,
-mf_fireworks) and whether day/night will be in effect on this map (mf_indoors).
-
----------------------------------------
-
-*removemapflag "<map name>",<flag>;
-
-This command removes a mapflag from a specified map. See 'setmapflag'.
-
----------------------------------------
-
-*pvpon "<map name>";
-*pvpoff "<map name>";
-
-These commands will turn PVP mode for the specified maps on and off. Beside
-setting the flags referred to in 'setmapflag', 'pvpon' will also create a PVP
-timer and ranking as will @pvpon GM command do.
-
----------------------------------------
-
-*gvgon "<map name>";
-*gvgoff "<map name>";
-
-These commands will turn GVG mode for the specified maps on and off, setting up
-appropriate map flags. In GVG mode, maps behave as if during the time of WoE,
-even though WoE itself may or may not actually be in effect.
-
----------------------------------------
-
-*emotion <emotion number>{, target};
-
-This command makes an object display an emoticon sprite above their own as
-if they were doing that emotion. For a full list of emotion numbers,
-see 'db/const.txt' under 'e_'. The inobvious ones are 'e_what' (a question mark)
-and 'e_gasp' (the exclamation mark).
-
-The optional target parameter specifies who will get the emotion on top of
-their head. If 0 (the default if omitted), the NPC in current use will show
-the emotion, if 1, the player that is running the script will display it.
-
----------------------------------------
-
-*maprespawnguildid "<map name>",<guild id>,<flag>;
-
-This command goes through the specified map and for each player and monster
-found there does stuff.
-
-Flag is a bitmask (add up numbers to get effects you want)
- 1 - warp all guild members to their savepoints.
- 2 - warp all non-guild members to their savepoints.
- 4 - remove all monsters which are not guardian or emperium.
-
-Flag 7 will, therefore, mean 'wipe all mobs but guardians and the emperium and
-kick all characters out', which is what the official scripts do upon castle
-surrender. Upon start of WoE, the scripts do 2 (warp all intruiders out).
-
-Characters not belonging to any guild will warp out regardless of the flag setting.
-
-For examples, check the WoE scripts in the distribution.
-
----------------------------------------
-
-*agitstart;
-*agitend;
-
-These two commands will start and end War of Emperium.
-
-This is a bit more complex than it sounds, since the commands themselves won't
-actually do anything interesting, except causing all 'OnAgitStart:' and
-'OnAgitEnd:' events to run everywhere, respectively, and setting a so-called
-'agit_flag' which also doesn't do much interesting itself. They are used as
-simple triggers to run a lot of complex scripts all across the server, and they,
-in turn, are triggered by clock with an 'OnClock<time>:' time-triggering label.
-
----------------------------------------
-
-*agitcheck(0)
-*agitcheck 1;
-
-These function and command will let you check whether the server is currently in
-the War of Emperium mode. (that is, if 'agit_flag' is set. Even if it is set,
-doesn't mean that there's even one map in GVG mode somewhere) Calling
-'agitcheck' as a function (the argument must be zero) will return 1 if WoE is on
-and 0 if it isn't. Running 'agitcheck' as a command will instead set a local
-variable @agit_flag to 1 if the server is in WoE mode and 0 if it isn't.
-
----------------------------------------
-
-*flagemblem <guild id>;
-
-This command only works when run by the NPC objects which have sprite id 722,
-which is a 3D guild flag sprite. If it isn't, the data will change, but nothing
-will be seen by anyone. If it is invoked in that manner, the emblem of the
-specified guild will appear on the flag, though, if any players are watching it
-at this moment, they will not see the emblem change until they move out of sight
-of the flag and return.
-
-This is commonly used in official guildwar scripts with a function call which
-returns a guild id:
-
-// This will change the emblem on the flag to that of the guild that owns
-// "guildcastle"
-
- flagemblem GetCastleData("guildcastle.gat",1);
-
----------------------------------------
-
-*getcastlename("<map name>")
-
-This function returns the name of the castle when given the map name for that
-castle. The data is read from 'db/castle_db.txt'.
-
----------------------------------------
-
-*getcastledata("<map name>",<type of data>)
-*setcastledata "<map name>",<type of data>,<value>;
-
-This function returns the castle ownership information for the castle referred
-to by it's map name. Castle information stored in 'save\castle.txt' for the TXT
-version of the server and in 'guild_castle' table for the SQL version.
-
-Valid types of data are:
-
- 0 - Will make the map server request the castle data from the char server, and
- always return 0. This, apparently, will also cause indirectly the execution
- of an 'OnAgitInit:' event mentioned at the beginning of this document.
- 1 - Guild ID
- 2 - Castle Economy score.
- 3 - Castle Defence score.
- 4 - Number of times the economy was invested in today.
- 5 - Number of times the defence was invested in today.
- 9 - Will return 1 if a Kafra was hired for this castle, 0 otherwise.
-10 - Is 1 if the 1st guardian is present (Soldier Guardian)
-11 - Is 1 if the 2nd guardian is present (Soldier Guardian)
-12 - Is 1 if the 3rd guardian is present (Soldier Guardian)
-13 - Is 1 if the 4th guardian is present (Archer Guardian)
-14 - Is 1 if the 5th guardian is present (Archer Guardian)
-15 - Is 1 if the 6th guardian is present (Knight Guardian)
-16 - Is 1 if the 7th guardian is present (Knight Guardian)
-17 - Is 1 if the 8th guardian is present (Knight Guardian)
-
-18-25 types of data will return current hit point values for guardians 1-8
-respectively.
-
-The 'setcastledata' command will behave identically, but instead of returning
-values for the specified types of accessible data, it will alter them and cause
-them to be sent to the char server for storage. Data type of 0 won't do
-anything, obviously.
-
----------------------------------------
-
-*requestguildinfo <guild id>,"<event label>";
-
-This command requests the guild data from the char server and merrily continues
-with the execution. Whenever the guild information becomes available (which
-happens instantly if the guild information is already in memory, or later, if it
-isn't and the map server has to wait for the char server to reply) it will run
-the specified event as in a 'doevent' call.
-
----------------------------------------
-
-*getequipcardcnt(<equipment slot>)
-
-This function will return the number of cards that have been compounded onto a
-specific equipped item for the invoking character. See 'getequipid' for a list
-of possible equipment slots.
-
----------------------------------------
-
-*successremovecards <equipment slot>;
-
-This command will remove all cards from the item found in the specified
-equipment slot of the invoking character, create new card items and give them to
-the character. If any cards were removed in this manner, it will also show a
-success effect.
-
----------------------------------------
-
-*failedremovecards <equipment slot>,<type>;
-
-This command will remove all cards from the item found in the specified
-equipment slot of the invoking character. 'type' determines what happens to the
-item and the cards:
-
- 0 - will destroy both the item and the cards.
- 1 - will keep the item, but destroy the cards.
- 2 - will keep the cards, but destroy the item.
-
-Whatever the type is, it will also show a failure effect on screen.
-
----------------------------------------
-
-*marriage("<spouse name>");
-
-This function will marry two characters, the invoking character and the one
-referred to by name given, together, setting them up as each other's marriage
-partner. No second function call has to be issued (in current SVN at least) to
-make sure the marriage works both ways. The function returns 1 upon success, or
-0 if the marriage could not be completed, either because the other character
-wasn't found or because one of the two characters is already married.
-
-This will do nothing else for the marriage except setting up the spouse ID for
-both of these characters. No rings will be given and no effects will be shown.
-
----------------------------------------
-
-*wedding;
-
-This command will call up wedding effects - the music and confetti - centered on
-the invoking character.
-
----------------------------------------
-
-*divorce()
-
-This function will un-marry the invoking character from whoever they were
-married to. Both will no longer be each other's marriage partner, (at least in
-current SVN, which prevents the cases of multi-spouse problems). It will return
-1 upon success or 0 if the character was not married at all.
-
-This function will also destroy both wedding rings and send a message to both
-players, telling them they are now divorced.
-
----------------------------------------
-
-*ispartneron()
-
-This function returns 1 if the invoking character's marriage partner is
-currently online and 0 if they are not or if the character has no partner.
-
----------------------------------------
-
-*getpartnerid()
-
-This function returns the character ID of the invoking character's marriage
-partner, if any. If the invoking character is not married, it will return 0,
-which is a quick way to see if they are married:
-
- if (getpartnerid()) mes "I'm not going to be your girlfriend!";
- if (getpartnerid()) mes "You're married already!";
-
----------------------------------------
-
-*warppartner("<map name>",<x>,<y>);
-
-This function will find the invoking character's marriage partner, if any, and
-warp them to the map and coordinates given. Go kidnap that spouse. :) It will
-return 1 upon success and 0 if the partner is not online, the character is not
-married, or if there's no invoking character (no RID). 0,0 will, as usual,
-normally translate to random coordinates.
-
----------------------------------------
-
-*adopt "<parent name>","<parent name>","<novice name>";
-*adopt("<parent name>","<parent name>","<novice name>");
-
-This command will set up a novice as a baby of a married couple. All three are
-referred to by character name. The correct variables are set on all three
-characters in the same call. The command will unequip anything the novice has
-equipped and make them a Job_Baby class, as well as send them a 'your job has
-been changed' message.
-
-Beware of calling this from inside a 'callfunc' function, cause upon successful
-adoption, this command returns a zero, as if it were a function. This is likely
-to screw up execution of a 'return' command. You may try to call it as a
-function instead, but it doesn't return anything upon an error, which may also
-cause script execution to throw up errors.
-
-Nothing will happen (and nothing will be returned either) if either future
-parent is below base level 70 and/or if any of the three characters is not found
-online.
-
----------------------------------------
-
-*getchildid()
-*getmotherid()
-*getfatherid()
-
-These functions return the characters (shild/mother/father) ID
-
- if (getmotherid()) mes "Oh... I know your mother's ID:"+getmotherid();
-
----------------------------------------
-
-*getitemname(<item id>)
-
-Given the database ID number of an item, this function will return the text
-stored in the 'japanese name' field (which, in eAthena, stores an english name
-the players would normally see on screen.)
-
----------------------------------------
-
-*makepet <pet id>;
-
-This command will create a pet egg and put it in the invoking character's
-inventory. The kind of pet is specified by pet ID numbers listed in
-'db/pet_db.txt'. The egg is created exactly as if the character just successfuly
-caught a pet in the normal way.
-
- // This will make you a poring:
- makepet 1002;
-
-Notice that you absolutely have to create pet eggs with this command. If you try
-to give a pet egg with 'getitem', pet data will not be created by the char
-server and the egg will disappear when anyone tries to hatch it.
-
----------------------------------------
-
-*getexp <base xp>,<job xp>;
-
-This command will give the invoking character a specified number of base and job
-experience points. Can be used as a quest reward. Negative amounts of experience
-were not tested but should work.
-
- getexp 10000,5000;
-
-You can also use the "set" command with the constants defined in 'db/const.txt':
-
- // These 2 combined has the same effect as the above command
- set BaseExp,BaseExp+10000;
- set JobExp,JobExp+5000;
-
-You can also reduce the ammount of experience points:
-
- set BaseExp,BaseExp-10000;
-
----------------------------------------
-
-*getinventorylist;
-
-This command sets a bunch of arrays with a complete list of whatever the
-invoking character has in their inventory, including all the data needed to
-recreate these items perfectly if they are destroyed. Here's what you get:
-
-@inventorylist_id[] - array of item ids.
-@inventorylist_amount[] - their corresponding item amounts.
-@inventorylist_equip[] - whether the item is equipped or not.
-@inventorylist_refine[] - for how much it is refined.
-@inventorylist_identify[] - whether it's refined.
-@inventorylist_attribute[] - whether it is broken.
-@inventorylist_card1[] - These four arrays contain card data for the items.
-@inventorylist_card2[] These data slots are also used to store names
-@inventorylist_card3[] inscribed on the items, so you can explicitly check
-@inventorylist_card4[] if the character owns an item made by a specific
- craftsman.
-@inventorylist_count - the number of items in these lists.
-
-This could be handy to save/restore a character's inventory, since no other
-command returns such a complete set of data, and could also be the only way to
-correctly handle an NPC trader for carded and named items who could resell them
-- since NPC objects cannot own items, so they have to store item data in
-variables and recreate the items.
-
-Notice that the variables this command generates are all local and numeric.
-
----------------------------------------
-
-*getskilllist;
-
-This command sets a bunch of arrays with a complete list of skills the
-invoking character has. Here's what you get:
-
-@skilllist_id[] - skill ids.
-@skilllist_lv[] - skill levels.
-@skilllist_flag[] - see 'skill' for the meaning of skill flags.
-@skilllist_count - number of skills in the above arrays.
-
-While 'getskillv' is probably more useful for most situations, this is the
-easiest way to store all the skills and make the character something else for a
-while. Advanced job for a day? :) This could also be useful to see how many
-skills a character has.
-
----------------------------------------
-
-*clearitem;
-
-This command will destroy all items the invoking character has in their
-inventory. (that includes equipped items) It will not affect anything else, like
-storage or cart.
-
----------------------------------------
-
-*classchange <view id>,<type>;
-
-This command is very ancient, it's origins are clouded in mystery.
-It will send a 'display id change' packet to everyone in the immediate area of
-the NPC object, which will supposedly make the NPC look like a different sprite,
-an NPC sprite ID, or a monster ID. This effect is not stored anywhere and will
-not persist (Which is odd, cause it would be relatively easy to make it do so)
-and most importantly, will not work at all since this command was broken with
-the introduction of advanced classes. The code is written with the assumption
-that the lowest sprite IDs are the job sprites and the anything beyond them is
-monster and NPC sprites, but since the advanced classes rolled in, they got the
-ID numbers on the other end of the number pool where monster sprites float.
-
-As a result it is currently impossible to call this command with a valid view
-id. It will do nothing whatsoever if the view ID is below 4047. Getting it to
-run will actually just crash the client.
-
-It could be a real gem if it can be gotten to actually do what it's supposed to
-do, but this will only happen in a later SVN revision.
-
----------------------------------------
-
-*misceffect <effect number>;
-
-This command, if run from an NPC object that has a sprite, will call up a
-specified effect number, centered on the NPC sprite. If the running code does
-not have an object ID (a 'floating' npc) or is not running from an NPC object at
-all (an item script) the effect will be centered on the character who's RID got
-attached to the script, if any. For usable item scripts, this command will
-create an effect centered on the player using the item.
-
-A full list of known effects is found in 'doc/effect_list.txt'. The list of
-those that actually work may differ greatly between client versions.
-
----------------------------------------
-
-*soundeffect "<effect filename>",<number>
-*soundeffectall "<effect filename>",<number>
-
-These two commands will play a sound effect to either the invoking character
-only 'soundeffect' or everyone around ('soundeffectall'). If the running code
-does not have an object ID (a 'floating' npc) or is not running from an NPC
-object at all (an item script) the sound will be centered on the character who's
-RID got attached to the script, if any. If it does, it will be centered on that
-object. (an NPC sprite)
-
-Effect filename is the filename of the wav in GRF. It must have an extension.
-
-It's not quite certain what the number actually does, it is sent to the client
-directly, probably it determines which directory of the GRF the effect is played
-from - the sound effect type. It's certain that giving 0 for the number will
-play sound files from 'data/wav', but where the other numbers will read from is
-unclear.
-
-You can add your own effects this way, naturally.
-
----------------------------------------
-
-*mapwarp "<from map>","<to map>",<x>,<y>;
-
-This command will collect all characters located on the From map and warp them
-wholesale to the same point on the To map, or randomly distribute them there if
-the coordinates are zero. "Random" is understood as a special To map name and
-will mean randomly shuffling everyone on the same map.
-
----------------------------------------
-
-*mobcount("<map name>","<event label>")
-
-This function will count all the monsters on the specified map that have a given
-event label and return the number or 0 if it can't find any. Naturally, only
-monsters spawned with 'monster' and 'areamonster' script commands can be like
-this.
-
-However, apparently, if you pass this function an empty string for the event
-label, it should return the total count of normal permanently respawning
-monsters instead. With the current dynamic mobs system, where mobs are not kept
-in memory for maps with no actual people playing on them, this will return a 0
-for any such map.
-
----------------------------------------
-
-*strmobinfo(<type>,<monster id>);
-
-This function will return information about a monster record in the database, as
-per 'db/mob_db.txt'. Type is the kind of information returned. Valid types are:
-
- 1 - 'english name' field in the database, a string.
- 2 - 'japanese name' field in the database, a string.
- All other returned values are numbers:
- 3 - Level.
- 4 - Maximum HP.
- 5 - Maximum SP.
- 6 - Experience reward.
- 7 - Job experience reward.
-
----------------------------------------
-
-*guardian "<map name>",<x>,<y>,"<name to show>",<mob id>,<amount>{,"<event label>"};
-
-This command is roughly equivalent to 'monster', but is meant to be used with
-castle guardian monsters and will only work with them. It will set the guardian
-characteristics up according to the castle's investment values and otherwise
-set the things up that only castle guardians need.
-
----------------------------------------
-
-*guardianinfo(<guardian number>)
-
-This function will return the current hit point value for the specified guardian
-number, if such guardian is currently installed. This function will only work if
-the invoking character is on a castle map, and will refer only to the guardians
-of that castle, regardless of anything else, i.e. whether the character is a
-member of the guild owning the castle, etc, etc.
-If no guardian is installed in this slot, the function will return -1.
-
----------------------------------------
-
-* The Pet AI commands
-
-These commands will only work if the invoking character has a pet, and are meant
-to be executed from pet scripts. They will modify the pet AI decision-making for
-the current pet of the invoking character, and will NOT have any independent
-effect by themselves, which is why only one of them each may be in effect at any
-time for a specific pet. A pet may have 'petloot', 'petskillbonus',
-'petskillattack' OR 'petpetskillattack2' and 'petskillsupport' OR 'petheal' at
-the same time. 'petheal' is deprecated and is no longer used in the default pet
-scripts.
-
-*petskillbonus <bonus type>,<value>,<duration>,<delay>;
-
-This command will make the pet give a bonus to the owner's stat (bonus type -
-bInt,bVit,bDex,bAgi,bLuk,bStr,bSpeedRate - for a full list, see the values
-starting with 'b' in 'db/const.txt')
-
-*petrecovery <status type>,<delay>;
-
-This command will make the pet cure a specified status condition. The curing
-actions will occur once every Delay seconds. For a full list of status
-conditions that can be cured, see the list of 'SC_' status condition constants
-in 'db/const.txt'
-
-*petloot <max items>;
-
-This command will turn on pet looting, with a maximum number of items to loot
-specified. Pet will store items and return them when the maximum is reached or
-when pet performance is activated.
-
-*petskillsupport <skill id>,<skill level>,<delay>,<percent hp>,<percent sp>;
-*petheal <level>,<delay>,<percent hp>,<percent sp>;
-
-This will make the pet use a specified support skill on the owner whenever the
-HP and SP are below the given percent values, with a specified delay time
-between activations. The skill numbers are as per 'db/skill_db.txt'.
-'petheal' works the same as 'petskillsupport' but has the skill ID hardcoded to
-28 (Heal). This command is deprecated.
-It's not quite certain who's stats will be used for the skills cast, the
-character's or the pets. Probably, Skotlex can answer that question.
-
-*petskillattack <skill id>,<skill level>,<rate>,<bonusrate>;
-*petskillattack2 <skill id>,<damage>,<number of attacks>,<rate>,<bonusrate>;
-
-These two commands will make the pet cast an attack skill on the enemy the pet's
-owner is currently fighting. Skill IDs and levels are as per 'petskillsupport'.
-'petskillattack2' will make the pet cast the skill with a fixed amount of damage
-inflicted and the specified number of attacks.
-
-All commands with delays and durations will only make the behavior active for
-the specified duration of seconds, with a delay of the specified number of
-seconds between activations. Rates are a chance of the effect occuring and are
-given in percent. 'bonusrate' is added to the normal rate if the pet intimacy is
-at the maximum possible.
-
-The behavior modified with the abovementioned commands will only be exibited if
-the pet is loyal and appropriate configuration options are set in
-'battle_athena.conf'.
-
-Pet scripts in the database normally run whenever a pet of that type hatches
-from the egg. Other commands usable in item scripts (see 'bonus') will also
-happily run from pet scripts. Apparently, the pet-specific commands will also
-work in NPC scripts and modify the behavior of the current pet up until the pet
-is hatched again. (Which will also occur when the character is logged in again
-with the pet still out of the egg.) It is not certain for how long the effect of
-such command running from an NPC script will eventually persist, but apparently,
-it is possible to usefully employ them in usable item scripts to create pet
-buffing items.
-
-Nobody tried this before, so you're essentially on your own here.
-
---------------------------------------
-
-*skilleffect <skill id>,<number>;
-
-This command will display the visual and sound effects of a specified skill (see
-'db/skill_db.txt' for a full list of skills) on the invoking character's sprite.
-Nothing but the special effects and animation will happen. If the skill's normal
-effect displays a floating number, the number given will float up.
-
- // This will heal the character with 2000 hp, buff with
- // Bless 10 and Increase AGI 5, and display appropriate
- // effects.
- mes "Blessed be!";
- skilleffect 28,2000;
- heal 2000,0;
- skilleffect 34,0;
- // That's bless 10.
- sc_start 10,240000,10;
- skilleffect 29,0;
- // That's agi 5
- sc_start 12,140000,5;
-
----------------------------------------
-
-*npcskilleffect <skill id>,<number>,<x>,<y>;
-
-This command behaves identically to 'skilleffect', however, the effect will not
-be centered on the invoking character's sprite, nor on the NPC sprite, if any,
-but will be centered at map coordinates given on the same map as the invoking
-character.
-
----------------------------------------
-
-*specialeffect <effect number>;
-
-This command will display special effect with the given number, centered on the
-specified NPCs coordinates, if any. For a full list of special effect numbers
-known see 'doc/effect_list.txt'. Some effect numbers are known not to work in
-some client releases. (Notably, rain is absent from any client executables
-released after April 2005.)
-
----------------------------------------
-
-*specialeffect2 <effect number>;
-
-This command behaves identically to the 'specialeffect', but the effect will be
-centered on the invoking character's sprite.
-
----------------------------------------
-
-*nude;
-
-This command will unequip anything equipped on the invoking character.
-
-It is not required to do this when changing jobs since 'jobchange' will unequip
-everything not equippable by the new job class anyway.
-
----------------------------------------
-
-*atcommand "<command line>";
-
-This command will run the given command line exactly as if it was typed in from
-the keyboard by the player connected to the invoking character, and that
-character belonged to an account which had GM level 99.
-
- // This will ask the invoker for a character name and then use the '@nuke'
- // GM command on them, killing them mercilessly.
- input @player$;
- gmcommand "@nuke "+@player$
-
-This command has a lot of good uses, I am sure you can have some fun with this
-one.
-
----------------------------------------
-
-*message "<character name>","<message>";
-
-That command will send a message to the chat window of the character specified
-by name. The text will also appear above the head of that character. It will not
-be seen by anyone else.
-
----------------------------------------
-
-*npctalk "<message>";
-
-This command will display a message to the surrounding area as if the NPC object
-running it was a player talking - that is, above their head and in the chat
-window. The display name of the NPC will get appended in front of the message to
-complete the effect.
-
- // This will make everyone in the area see the NPC greet the character
- // who just invoked it.
- npctalk "Hello "+strcharinfo(0)+" how are you";
-
----------------------------------------
-
-*hasitems(0)
-
-This function will return 1 if the invoking character has anything at all in
-their inventory and 0 if they do not. Even though the argument is not used for
-anything, it is required.
-
----------------------------------------
-
-*getlook(<type>)
-
-This function will return the number for the currentcharacter look value
-specified by type. See 'setlook' for valid look types.
-
-This can be used to make a certain script behave differently for characters
-dressed in black. :)
-
----------------------------------------
-
-*getsavepoint(<information type>)
-
-This function will return information about the invoking character's save point.
-You can use it to let a character swap between several recorded savepoints.
-Available information types are:
-
- 0 - Map name (a string)
- 1 - X coordinate
- 2 - Y coordinate
-
----------------------------------------
-
-*npcspeed <speed value>;
-*npcwalkto <x>,<y>;
-*npcstop;
-
-These commands will make the NPC object in question move around the map. As they
-currently are, they are a bit buggy and are not useful for much more than making
-an NPC move randomly around the map. (see 'npc/custom/devnpc.txt' for an example
-of such usage)
-
-'npcspeed' will set the NPCs walking speed to a specified value. As in the
-@speed GM command, 200 is the slowest possible speed while 0 is the fastest
-possible (instant motion). 100 is the default character walking speed.
-'npcwalkto' will start the NPC sprite moving towards the specified coordinates
-on the same map as it is currently on.
-'npcstop' will stop the motion.
-
-While in transit, the NPC will be clickable, but invoking it will cause it to
-stop motion, which will make it's coordinates different from what the client
-computed based on the speed and motion coordinates. The effect is rather
-unnerving.
-
-Only a few NPC sprites have walking animations, and those that do, do not get
-the animation invoked when moving the NPC, due to the problem in the npc walking
-code, which looks a bit silly. You might have better success by defining a job-
-sprite based sprite id in 'db/mob-avail.txt' with this.
-
----------------------------------------
-
-*getmapxy("<variable for map name>",<variable for x>,<variable for y>,<type>{,"<search string>"})
-
-This function will locate a character object, NPC object or pet's coordinates
-and place their coordinates into the variables specified when calling it. It
-will return 0 if the search was successful, and -1 if the parameters given were
-not variables or the search was not successful.
-
-Type is the type of object to search for:
-
- 0 - Character object
- 1 - NPC object
- 2 - Pet object
- 3 - Monster object.
-
-While 3 is meant to look for a monster object, no searching will be done if you
-specify type 3, and the function will always return -1.
-
-The search string is optional. If it is not specified, the location of the
-invoking character will always be returned for types 0 and 2, the location of
-the NPC running this function for type 1.
-If a search string is specified, for types 0 and 1, the character or NPC with
-the specified name will be located. If type is 3, the search will locate the
-current pet of the character who's name is given in the search string, it will
-NOT locate a pet by name.
-
-What a mess. Example, a working and tested one now:
-
- prontera.gat,164,301,3%TAB%script%TAB%Meh%TAB%730,{
- mes "My name is Meh. I'm here so that Nyah can find me.";
- close;
- }
-
- prontera.gat,164,299,3%TAB%script%TAB%Nyah%TAB%730,{
- mes "My name is Nyah.";
- mes "I will now search for Meh all across the world!";
- if (getmapxy(@mapname$,@mapx,@mapy,1,"Meh")!=0) goto Notfound;
- mes "And I found him on map "+@mapname$+" at X:"+@mapx+" Y:"+@mapy+" !";
- close;
- Notfound:
- mes "I can't seem to find Meh anywhere!";
- close;
- }
-
-Notice that NPC objects disabled with 'disablenpc' will still be located.
-
----------------------------------------
-
-*guildgetexp <amount>;
-
-This will give the specified amount of guild experience points to the guild the
-invoking character belongs to. It will silently fail if they do not belong to
-any guild.
-
----------------------------------------
-
-*skilluseid <skill>,<level>;
-*doskill <skill>,<level>;
-*skillusepos <skill>,<level>,<x>,<y>;
-
-These commands will cause the invoking character to use a specified skill at the
-specified level, as if they had that skill, with their current level and stats.
-If the skill involves targeting a character, no targeting pointer will come up -
-the invoking character will automatically be the skill target.
-
-'doskill' is an alias for 'skilluseid'.
-
-'skillusepos' will specify a target map square for the skill to be used. If that
-skill is an area effect skill, it will be centered at the square specified. It
-will not work if the skill is supposed to be targeted on character or monster.
-
----------------------------------------
-
-*logmes "<message>";
-
-This command will write the message given to the map server npc log file, as
-specified in 'conf/log_athena.conf'. In the TXT version of the server, the log
-file is 'log/npclog.log' by default. In the SQL version, if SQL logging is
-enabled, the message will go to the 'npclog' table, otherwise, it will go to the
-same log file.
-
-If logs are not enabled, nothing will happen.
-
----------------------------------------
-
-*summon "<monster name>",<mob id>{,"<event label>"};
-
-This command will summon a monster. (see also 'monster') Unlike monsters spawned
-with other commands, this one will set up the monster to fight to protect the
-invoking character. Monster name and mob id obey the same rules as the one given
-at the beginning of this document for permanent monster spawns with the
-exceptions mentioned when describing 'monster' command.
-
-The effect for the skill 'Call Homonuculus' will be displayed centered on the
-invoking character.
-
-If an event label is given, upon the monster being killed, the event label will
-run as if by 'donpcevent'.
-
- // Will summon a dead branch-style monster to fight for the character.
- summon "--ja--",-1;
-
----------------------------------------
-
-*isnight()
-*isday()
-
-These functions will return 1 or 0 depending on whether the server is in night
-mode or day mode. 'isnight' returns 1 if it's night and 0 if it isn't, 'isday'
-the other way around. They can be used interchangeably, pick the one you like
-more:
-
- // These two are equivalent:
- if (isday()) mes "I only prowl in the night.";
- if (isnight()!=1) mes "I only prowl in the night.";
-
----------------------------------------
-
-*isequipped(<id>{,<id>{,<id>{,<id>}}})
-
-This function will return 1 if the invoking character has all of the item
-IDs given equipped (if card IDs are passed, then it checks if the cards are
-inserted into slots in the equipment they are currently wearing). Theorically
-there is no limit to the number of items that may be tested for at the same time.
-If even one of the items given is not equipped, 0 will be returned.
-
- // (Poring,Santa Poring,Poporing,Marin)
- if (isequipped(4001,4005,4033,4196)) mes "Wow! You're wearing a full complement of possible poring cards!";
- // (Poring)
- if (isequipped(4001)) mes "A poring card is useful, don't you think?";
-
-The function was meant for item scripts to support the cards released by Gravity
-in February 2005, but it will work just fine in normal NPC scripts.
-
----------------------------------------
-
-*isequippedcnt(<card id>{,<card id>{,<card id>{,<card id>}}})
-
-This function is similar to 'isequipped', but instead of 1 or 0, it will return
-the number of cards in the list given that were found on the invoking character.
-
- if (isequippedcnt(4001,4005,4033,4196)=4) mes "Finally got all four poring cards?";
-
----------------------------------------
-
-*cardscnt()
-
-This function will return the number of cards inserted into the weapon currently
-equipped on the invoking character.
-While this function was meant for item scripts, it will work outside them:
-
- if (cardscnt()==4) mes "So you've stuck four cards into that weapon, think you're cool now?";
-
----------------------------------------
-
-*getrefine()
-
-This function will return the number of plusses the weapon currently equipped on
-the invoking character has been refined for.
-While this function was meant for item scripts, it will work outside them:
-
- if (getrefine()==10) mes "Wow. That's a murder weapon.";
-
----------------------------------------
-
-*day;
-*night;
-
-These two commands will switch the entire server between day and night mode.
-Depending on the configuration, it may cause differing client effects. If your
-server is set to cycle between day and night, it will eventually return to that
-cycle.
-
-This example will set the night time to start at 03 AM and end at 08 AM, and the
-nighttime will persist if the server restarts during the night, if the automated
-day/night switching is turned off in the configuration files. Figure it out on
-your own:
-
--%TAB%script%TAB%DayNight%TAB%-1,{
-
- end;
-
-OnClock0300:
-
-OnClock0800:
-
-OnInit:
-
- set $@minutesfrommidnight, gettime(3)*60+gettime(2);
-
- set $@night_start, 180; // 03:00
- set $@night_end, 480; // 08:00
-
- if ($@minutesfrommidnight>=$@night_start && $@minutesfrommidnight<$@night_end) goto StartNight;
-
- goto StartDay;
- StartNight:
- night;
- end;
- StartDay:
- day;
- end; }
-
----------------------------------------
-
-*getusersname;
-
-This command will give the invoking character a list of names of the connected
-characters (including themselves) into an NPC script message window (see 'mes')
-paging it by 10 names as if with the 'next' command.
-
-You need to put a 'close' after that yourself.
-
----------------------------------------
-
-*dispbottom "<message>";
-
-This command will send the given message into the invoking character's chat
-window.
-
----------------------------------------
-
-*recovery;
-
-This command will revive and restore full HP and SP to all characters currently
-connected to the server.
-
----------------------------------------
-
-*getpetinfo(<type>)
-
-This function will return pet information for the pet the invoking character
-currently has active. Valid types are:
-
- 0 - Unique pet ID number as stored by the char server and distinguishing it
- from all other pets the characters actually have. This value is currently
- useless, at most you can use it to tell pets apart reliably.
- 1 - Pet ID number as per 'db/pet_db.txt' - will tell you what kind of a pet it
- is.
- 2 - Pet name. Will return "null" if there's no pet.
- 3 - Pet friendly level (intimacy score). 1000 is full loyalty.
- 4 - Pet hungry level. 100 is completely full.
-
----------------------------------------
-
-*checkequipedcard(<card id>)
-
-This function will return 1 if the card specified by it's item ID number is
-inserted into any equipment they have in their inventory, currently equipped or
-not.
-
----------------------------------------
-
-*globalmes "message";
-
-This command will send a message to the chat window of all currently connected
-characters.
-
----------------------------------------
-
-*jump_zero (<condition>),<label>;
-
-This command works kinda like an 'if'+'goto' combination in one go. (See 'if').
-If the condition is false (equal to zero) this command will immediately jump to
-the specified label like in 'goto'.
-
-While 'if' is more generally useful, for some cases this could be an
-optimisation.
-
----------------------------------------
-
-*select("<option>"{,"<option>"..."<option>"})
-
-This function is a handy replacement for 'menu' for some specific cases where
-you don't want a complex label structure - like, for example, asking simple yes-
-no questions. It will return the number of menu option picked, starting with 1.
-Like 'menu', it will also set the variable @menu to contain the option the user
-picked.
-
- if (select("Yes","No")==1) mes "You said yes, I know.";
-
-And like 'menu', this command has a problem with empty strings - if some of the
-option strings given to it are empty, you won't be able to tell which one the
-user really picked. The number it returns will only make sense if all the empty
-strings are last in the list of options.
-
----------------------------------------
-
-*getmapmobs("<map name>")
-
-This function will return the total count of monsters currently located on the
-specified map. If the map name is given as "this", the map the invoking
-character is on will be used. If the map is not found, or the invoker is not a
-character while the map is "this", it will return -1.
-
----------------------------------------
-
-*unequip <equipment slot>;
-
-This command will unequip whatever is currently equipped in the invoking
-character's specified equipment slot. For a full list of possible equipment
-slots see 'getequipid'.
-
-If an item occupies several equipment slots, it will get unequipped from all of
-them. (Which is a good thing.)
-
----------------------------------------
-
-*defpattern <set number>,"<regular expression pattern>","<event label>";
-*activatepset <set number>;
-*deactivatepset <set number>;
-*deletepset <set number>;
-
-This set of commands is only available if the server is compiled with regular
-expressions library enabled. Default compilation and most binary distributions
-aren't, which is probably bad, since these, while complex to use, are quite
-fascinating.
-
-They will make the NPC object listen for text spoken publicly by players and
-match it against regular expression patterns, then trigger labels associated
-with these regular expression patterns.
-
-Patterns are organised into sets, which are referred to by a set number. You can
-have multiple sets patterns, and multiple patterns may be active at once.
-Numbers for pattern sets start at 1.
-
-'defpattern' will associate a given regular expression pattern with an event
-label. This event will be triggered whenever something a player says is matched
-by this regular expression pattern, if the pattern is currently active.
-
-'activatepset' will make the pattern set specified active. An active pattern
-will enable triggering labels defined with 'defpattern', which will not happen
-by default.
-'deactivatepset' will deactivate a specified pattern set. Giving -1 as a pattern
-set number in this case will deactivate all pattern sets defined.
-
-'deletepset' will delete a pattern set from memory, so you can create a new
-pattern set in it's place.
-
-Using regular expressions is high wizardry. But with this high wizardry comes
-unparallelled power of text manipulation. For an explanation of what a regular
-expression pattern is, see a few web pages:
-
-http://www.regular-expressions.info/
-http://www.weitz.de/regex-coach/
-
-For an example of this in use, see 'npc\custom\eliza.txt'.
-
-With this you could, for example, automagically punish players for asking for
-zeny in public places, or alternatively, automagically give them zeny instead if
-they want it so much.
-
----------------------------------------
-
-*getstrlen("<string>")
-
-This function will return the length of the string given as an argument. It is
-useful to check if anything input by the player exceeds name length limits and
-other length limits and asking them to try to input something else.
-
----------------------------------------
-
-*charisalpha("<string>",<position>)
-
-This function will return 1 if the character number Position in the given string
-is a letter, 0 if it isn't a letter but a digit or a space.
-
----------------------------------------
-
-*getnameditem(<item id>,"<name to inscribe>");
-*getnameditem("<item name>","<name to inscribe>");
-
-This function is equivalent to using 'getitem', however, it will not just give
-the character an item object, but will also inscribe it with a specified
-character's name. You may not inscribe items with arbitrary strings, only with
-names of characters that actually exist. While this isn't said anywhere
-specifically, apparently, named items may not have cards in them, slots or no -
-these data slots are taken by the character ID who's name is inscribed. Only one
-remains free and it's not quite clear if a card may be there.
-
-Items that may not be equipped may NOT be inscribed with a name with this
-function. Which is why this is a function which will return a value - 1 if an
-item was successfully created and 0 if it wasn't for whatever reason. Like
-'getitem' this function will also take an 'english name' from the itemdb
-database as an item name and will return 0 if nothing is found.
-
----------------------------------------
-
-*getitemslots(<item ID>)
-
-This function will look up the item with the specified ID number in the database
-and return the number of slots this kind of items has - 0 if they are not
-slotted. It will also be 0 for all non-equippable items, naturally, unless
-someone messed up the item database. It will return -1 if there is no such item.
-
----------------------------------------
-
-*getiteminfo(<item ID>,<type>)
-
-This function will look up the item with the specified ID number in the database
-and return the info set by TYPE argument.
-It will return -1 if there is no such item.
-
-Valid types are:
- 0 - Buy Price; 1 - Sell Price; 2 - Item Type;
- 3 - maxchance (Max drop chance of this item e.g. 1 = 0.01% , etc..
- if = 0, then monsters don't drop it at all (rare or a quest item)
- if = 10000, then this item is sold in NPC shops only
- 4 - sex; 5 - equip; 6 - weight; 7 - atk; 8 - def; 9 - range;
- 10 - slot; 11 - look; 12 - elv; 13 - wlv;
-
-Check sample in nps\sample\getiteminfo.txt
-
----------------------------------------
-
-*getmonsterinfo(<item ID>,<type>)
-
-This function will look up the monster with the specified ID number in the database
-and return the info set by TYPE argument.
-It will return -1 if there is no such item. Due to specific of MOB DB routines,
-it's better to check monster name. It'd return "Dummy" for a non-existing monster.
-
-Valid types are listed in const.txt:
- MOB_NAME 0 MOB_LV 1
- MOB_MAXHP 2 MOB_BASEEXP 3
- MOB_JOBEXP 4 MOB_ATK1 5
- MOB_ATK2 6 MOB_DEF 7
- MOB_MDEF 8 MOB_STR 9
- MOB_AGI 10 MOB_VIT 11
- MOB_INT 12 JOB_DEX 13
- MOB_LUK 14 MOB_RANGE 15
- MOB_RANGE2 16 MOB_RANGE3 17
- MOB_SIZE 18 MOB_RACE 19
- MOB_ELEMENT 20 MOB_MODE 21
-
-Check sample in nps\sample\getmonsterinfo.txt
-
----------------------------------------
-
-*pow(<number>,<power>)
-
-Returns the result of the calculation.
-
-Example:
-set @i, pow(2,3); // @i will be 8
-
----------------------------------------
-
-*sqrt(<number>)
-
-Returns square-root of number.
-
-Examlpe:
-set @i, sqrt(25); // @i will be 5
-
----------------------------------------
-
-*distance(<x0>,<y0>,<x1>,<y1>)
-
-Returns distance between 2 points.
-
-Example:
-set @i, distance(100,200,101,202);
-
----------------------------------------
-*query_sql "your MySQL query", <array name>, [<array name>]
-Returns up to 127 values into array and return the number of row
-
-Example:
-set @nb, query_sql("select name,fame from `char` ORDER BY fame DESC LIMIT 5", @name$, @fame);
-mes "Hall Of Fame: TOP5";
-mes "1."+@name$[0]+"("+@fame[0]+")"; // Will return a person with the biggest fame value.
-mes "2."+@name$[1]+"("+@fame[1]+")";
-mes "3."+@name$[2]+"("+@fame[2]+")";
-mes "4."+@name$[3]+"("+@fame[3]+")";
-mes "5."+@name$[4]+"("+@fame[4]+")";
-
-Note: In the TXT version it doesn't fill the array and always return -1.
-Note: Use Text$[] array to recieve all data as text.
-
----------------------------------------
-
-*setd "variable name", <value>
-
-Works almost identical as set, just that the variable name is identified as a string,
-thus can be constructed dynamically.
-
-Example:
-set $var$, "Poring";
-
-setd "$var$", "Poporing";
-mes $var$; // Will return Poporing
-
-setd "$" + $var$ + "123$", "Poporing is cool";
-mes $Poporing123$; // Will return Poporing is cool.
-
----------------------------------------
-
-*getd("variable name")
-
-Retrieves variable, name can be constructed dynamically. Refer to setd for usage.
-
-Example:
-set @i, getd("$pikachu");
-
----------------------------------------
-
-*petstat(<flag>)
-
-Returns current pet status, all are integers except name.
-Returns 0 or "" if the player doesn't have pets.
-
-Flags usable >>
-PET_CLASS
-PET_NAME
-PET_LEVEL
-PET_HUNGRY
-PET_INTIMATE
-
-Example:
-set @i, petstat(PET_CLASS);
-
-
----------------------------------------
-
-*setitemscript(<ItemID>,<"{ new item script }">)
-
-Set a new script bonus to the Item. Very useful for game events.
-
-Example:
-
-setitemscript 2637,"{ bonus bDamageWhenUnequip,40; if(isequipped(2236)==0)end; if(getskilllv(26)){skill 40,1;}else{skill 26,1+isequipped(2636);} }";
-
----------------------------------------
-
-*disguise <Monster ID>;
-*undisguise;
-
-This command disgueses current player with a monster sprite.
-The disguise is disappearing on re-login or on 'undisguise' command.
-
-Note: It doesn't work with "Pets with equipment on"
-Note: If u're a Sniper, u'd get an old Falcon over your head
-Note: You can kill yourself with some skills
-Note: Monsters of your type could heal you
-
-Example:
-disquise 1002; //Yay! You're a Poring!!!
-next;
-undisquise; //Yay!!!! You're a human again!!
-
----------------------------------------
-
-*axtoi(<hexadecimal_value>);
-
-This command will convert an hexadecimal value into integers (numbers).
-The inputted value must not have neither # or 0x in it, just 6 numbers and/or letters.
-The variable registering this value, if so, must be a string (letter) variable, due that
-it contains letters in some cases.
-
-This is mostly used for the new announce command, which uses hexadecimal values for announce
-colors, using the Ragnarok coloring system.
-
-Example:
-
-amatsu.gat,171,166,4 script Testing npc 767,{
-
-mes "Input hex color";
-input @trying$;
-next;
-set @try2$,axtoi(@trying$);
-announce "zOMG TEH PWNZ0RDZ",bc_all,@try2$;
-close;
-}
-
-If you want a list of hexadecimal colors, check these two links:
-
-http://webmonkey.wired.com/webmonkey/reference/color_codes/
-
-http://www.december.com/html/spec/color.html
-
----------------------------------------
-
-*rid2name(rid)
-
-Converts rid to name. Note: The player/monster/NPC must be online/enabled.
-Good for PCKillEvent where you can convert 'killedrid' to the name of the player.
-
-Note: rid2name may not produce correct character names since rid = account id.
- It will return the current online character of the account only.
-
----------------------------------------
-
-*function <function name>;
-*<function name>;
-*function <function name> {
-<code>
-}
-
-(Skotlex stop being so selfish and give us all the commands T~T! J/k lol :P)
-
-This works like callfunc, but doesn't support arguments like callfunc. It's used for cleaner
-and fast script that doesn't require arguments for it to work. Also they must be inside a script.
-They're not separated scripts and they work more like labels.
-
-Note it looks like the normal declaration
-
-Usage:
-
-You first Declare the function with function <function name>;.
-
-Put the rest of your code. You can use then <function name>; to call the function. If it returns a value is unsure,
-test it if you want and give us some comments ;3
-
-And at least, but inside the script itself, put the function <function name> {<code>}.
-
-Example:
-
-prontera.gat,154,189,4 script Item seller 767,{
-
-function SF_Selling;
-
-mes "I'll open this now if you have more than 50z and you are level 50 or bigger";
-next;
-
-if (Zeny > 50) && (BaseLevel > 50) {
- mes "Welcome";
- next;
- SF_Selling;
- close;
-} else
-
-set @needed,50-BaseLevel;
-mes "You either are Level "+BaseLevel+", thus you need "+@needed+" more levels";
-mes "to be able to use this npc; or you don't have enough zeny, so get some please";
-close;
-
-function SF_Selling {
-
- mes "Would you like to buy a phracon for 50z?";
- switch(select("Yes","No, thanks")) {
-
- case 1:
- mes "Ok, how many?";
- input @quantity;
- set @check,Zeny/50;
- if (@quantity > @check) {
- mes "Sorry but you can only have "+@check+" Phracons with "+Zeny;
- close;
- } else
- next;
- mes "here you have";
- set Zeny,Zeny-@quantity*50;
- getitem 1010,@quantity;
- close;
- case 2:
- mes "Good bye then";
- close;
- }
- }
- return;
-}
-
-
----------------------------------------
-
-*getequipcardid (<equipment slot>,<card slot>);
-
-Returns value from equipped item slot in the indicated slot:
-
-getequipcardid(num,slot)
-
-where:
- num = eqip position slot
- slot = 0,1,2,3 (Card Slot N)
-
-This func returns CARD ID, 255,254,-255 (for card 0, if the item is produced) it's useful
-when you want to check item cards or if it's signed. Useful for such quests as
-"Sign this refined item with players name" etc;
- Hat[0] +4 -> Player's Hat[0] +4
-
-By Lupus
-
---------------------------------------
-
-*warpparty "mapname.gat",x,y,<party_id>;
-
-Warps a party to specified map and coordinate given the party ID, which you can get with
-getcharid(1). You can also request another party id given a member's name with getcharid(1,<player_name>).
-
-Example:
-mes "[Party Warper]";
-mes "Here you go!";
-close2;
-set @id,getcharid(1);
-warpparty "prontera.gat",150,100,@id;
-close;
-
----------------------------------------
-
-*warpchar "mapname.gat",x,y,<char_id>;
-
-Warps another player to specified map and coordinate given the char id, which you can get with
-getcharid(0,<player_name>). Obviously this is useless if you want to warp the same player that
-is executing this script, unless it's some kind of "chosen" script.
-
-Example:
-
-warpchar "prontera.gat",150,100,20000001;
-
----------------------------------------
-
-*warpguild "mapname.gat",x,y,<guild_id>;
-
-Warps a guild to specified map and coordinate given the guild id, which you can get with
-getcharid(2). You can also request another guild id given the member's name with getcharid(2,<player_name>).
-
-Example:
-
-warpguild "prontera.gat",x,y,Guild_ID;
-
----------------------------------------
-
-Whew.
-What's about all of them.
+//===== Athena Script =====================================
+//= eAthena Script Commands
+//===== By ================================================
+//= Fredzilla
+//===== Helped By =========================================
+//= Terminal Vertex & Z3R0 - Helped define getmapxy
+//= HappyDenn - Gave everything to do with getpartymember
+//= a great help
+//= Maeki Rika - A section on general concepts and lots of
+//= other updates and additions.
+//===== Version ===========================================
+//= 2.8a
+//=========================================================
+//= 1.0 - First release, filled will as much info as I could
+//= remember or figure out, most likely there are errors,
+//= and things I have missed out
+//= 1.1 - Added better discription for "getmapxy"
+//= 1.2b- Added a description for getpartymember
+//= (+few spelling mistakes corrected)
+//= 2.0 - +79kb extra stuff and numerous corrections by
+//= Maeki Rika.
+//= 2.1 - Small but important corrections, more proofreading.
+//= Some important discoveries in item functions, the
+//= secret of making VVS weapons with 'getitem2' and
+//= other news. (Rika again) +10kb :)
+//= 2.2 - added getItemInfo description [Lupus]
+//= 2.3 - added plenty of info for recent (and not so) script commands I added
+// [Skotlex]
+//= 2.4 - Explained the upper parameter of jobchange. [Skotlex]
+//= 2.5 - Added pow, sqrt and distance. [Lance]
+//= 2.6 - Added setd and getd. [Lance]
+//= 2.7 - petstat command. [Lance]
+//= 2.7a - delitem2, countitems2 commands [Lupus]
+//= 2.7b - clone command [Skotlex]
+//= 2.7c - disguise / undisguise, query_sql commands [Lupus]
+
+//= 2.8 - Deleted a copy of the nude command. Added axtoi command (needing a clearer
+//= explanation of atoi.Gave a better explanation of OnLabels and modified
+//= monster explanation due that L_Label isn't working with monster.
+//===== Compatible With ===================================
+//= LOL, can be used by anyone hopefully
+//===== Description =======================================
+//= A reference manual for the eAthena scripting language
+//=========================================================
+
+This document is a reference manual for all the scripting commands and functions
+available in current eAthena SVN. It is not a simple tutorial. When people tell
+you to "Read The F***ing Manual", they mean this.
+
+The information was mostly acquired through looking up how things actually work
+in the source code of the server, which was written by many people over time,
+and lots of them don't speak English and never left any notes - or are otherwise
+not available for comments. As such, anything written in here might not be
+correct, it is only correct to the best of our knowledge, which is limited.
+
+This document is poorly structured and rather messy in general. In fact, further
+cleaning up and reordering this document is probably pointless, due to upcoming
+switch to Lua scripting language, which will rid us of most of the problems
+mentioned herein and make a new manual necessary. But while we have this one, we
+should make the most of it, and it might be helpful in making sure the new Lua
+engine can actually do everything useful that the old engine could.
+
+This is not a place to teach you basic programming. This document will not teach
+you basic programming by itself. It's more of a reference for those who have at
+least a vague idea of what they want to do and want to know what tools they have
+available to do it. We've tried to keep it as simple as feasible, but if you
+don't understand it, getting a clear book on programming in general will help
+better than yelling around the forum for help.
+
+A little learning never caused anyone's head to explode.
+
+Structure
+---------
+
+The commands and functions are listed in no particular order:
+
+*Name of the command and how to call it.
+
+Descriptive text
+
+ Small example if possible. Will usually be incomplete, it's there just to
+ give you an idea of how it works in practice.
+
+To find a specific command, use Ctrl+F, (or whatever keys call up a search
+function in whatever you're reading this with) put an * followed by the command
+name, and it should find the command description for you.
+
+If you find anything omitted, please respond. :)
+
+Syntax
+------
+
+Throughout this document, wherever a command wants an argument, it is given in
+<angle brackets>. This doesn't mean you should type the angle brackets. :) If an
+argument of a command is optional, it is given in {curly brackets}. You've
+doubtlessly seen this convention somewhere, if you didn't, get used to it,
+that's how big boys do it. If a command can optionally take an unspecified
+number of arguments, you'll see a list like this:
+
+command <argument>{,<argument>...<argument>}
+
+This still means they will want to be separated by commas.
+
+Where a command wants a string, it will be given in "quotes", if it's a number,
+it will be given without them. Normally, you can put an expression, like a bunch
+of functions or operators returning a value, in (round brackets) instead of most
+numbers. Round brackets will not always be required, but they're often a good
+idea.
+
+Wherever you refer to a map name, it's always 'mapname.gat' or 'mapname.afm' if
+you are using AFM maps, (if you don't know what they are, you aren't using them)
+and not just 'mapname'. While some commands do know that if you didn't give
+'.gat', it should add it, it's pretty tricky to tell which ones they are.
+
+Script loading structure
+------------------------
+
+Scripts are loaded by the map server as referenced in the 'conf/map_athena.conf'
+configuration file, but in the default configuration, it doesn't load any script
+files itself. Instead, it loads the file 'npc/scripts_main.conf' which itself
+contains references to other files. The actual scripts are loaded from txt
+files, which are linked up like this:
+
+npc: <path to a filename>
+
+Any line like this, invoked, ultimately, by 'map_athena.conf' will load up the
+script contained in this file, which will make the script available. No file
+will get loaded twice, to prevent possible errors.
+
+Another configuration file option of relevance is:
+
+delnpc: <path to a filename>
+
+This will unload a specifiled script filename from memory, which, while
+seemingly useless, may sometimes be required.
+
+Whenever '//' is encountered in a line upon reading, everything beyond this on
+that line is considered to be a comment and is ignored. This works wherever you
+place it.
+
+Upon loading all the files, the server will execute all the top-level commands
+in them. No variables exist yet at this point, no commands can be called other
+than those given in this section. These commands set up the basic server script
+structure - create NPC objects, spawn monster objects, set map flags, etc. No
+code is actually executed at this point except them. The top-level commands the
+scripting are pretty confusing, since they aren't structured like you would
+expect commands, command name first, but rather, normally start with a map name.
+
+What's more confusing about the top-level commands is that most of them use a
+tab symbol to divide their arguments.
+
+To prevent problems and confusion, the tab symbols are written as '%TAB%'
+throughout this document, even though this makes the text a bit less readable.
+Using an invisible symbol to denote arguments is one of the bad things about
+this language, but we're stuck with it for now. :)
+
+Here is a list of valid top-level commands:
+
+** Set a map flag:
+
+<map name>%TAB%mapflag%TAB%<flag>
+
+This will, upon loading, set a specified map flag on a map you like. These are
+normally in files inside 'conf/mapflag' and are loaded first, so by the time the
+server's up, all the maps have the flags they should have. Map flags determine
+the behavior of the map regarding various common problems, for a better
+explanation, see 'setmapflag'.
+
+** Create a permanent monster spawn:
+
+<map name>,<x>,<y>,<xs>,<ys>%TAB%monster%TAB%<monster name>%TAB%<mob id>,<amount>,<delay1>,<delay2>,<event>
+
+Map name is the name of the map the monsters will spawn on. x,y are the
+coordinates where the mob should spawn. If xs and ys are non-zero, they
+specify the diameters of a spawn-rectangle area who's center is x,y.
+Putting zeros instead of these coordinates will spawn the monsters randomly.
+Note this is only the initial spawn zone, as mobs random-walk, they are free
+to move away from their specified spawn region.
+
+Monster name is the name the monsters will have on screen, and has no relation
+whatsoever to their names anywhere else. It's the mob id that counts, which
+identifies monster record in 'mob_db.txt' database of monsters. If the mob name
+is given as "--ja--", the 'japanese name' field from the monster database is
+used, (which, in eAthena, actually contains an english name) if it's "--en--",
+it's the 'english name' from the monster database (which contains an uppercase
+name used to summon the monster with a GM command).
+
+If you add 20000 to the monster ID, the monster will be spawned in a 'big
+version', (monster size class will increase) and if you add 10000, the 'tiny
+version' of the monster will be created. However, this method is deprecated
+and not recommended, as the values to add can change at a later time (20000
+and 10000 actually stand for 2*MAX_MOB_DB and MAX_MOB_DB respectively, which
+is defined on mob.h, and can change in the future as more mobs are created).
+The recommended way to change a mob's size is to use the event-field (see
+below).
+
+Amount is the amount of monsters that will be spawned when this command is
+executed, it is affected by spawn rates in 'battle_athena.conf'.
+
+Delay1 and delay2 are the monster respawn delays - the first one counts the time
+since a monster defined in this spawn was last respawned and the second one
+counts the time since the monster of this spawn was last killed. Whichever turns
+out to be higher will be used. If the resulting number is smaller than a random
+value between 5 and 10 seconds, this value will be used instead. (Which is
+normally the case if both delay values are zero.) The times are given in
+1/1000ths of a second.
+
+You can specify a custom level to use for the mob different from the one of
+the database by adjoining the level after the name with a comma. eg:
+"Poring,50" for a name will spawn a monster with name Poring and level 50.
+
+Event is a script event to be executed when the mob is killed. The event must
+be in the form "NPCName::OnEventName" to execute, and the event name label
+should start with "On". As with all events, if the NPC is an on-touch npc, the
+player who triggers the script must be within 'trigger' range for the event to
+work.
+
+The Event field can be used alternatively to specify other mob properties. Use
+2 to specify that the mob should be small, 4 for big monsters, and 8 for
+special ai mobs (which by default attack other monsters instead of players).
+You can add these, so using 10 will spawn small monsters that attack other
+mobs (if you specify both 2 and 4, the small version takes priority).
+
+** Define a warp point
+
+<from map name>,<fromX>,<fromY>,<facing>%TAB%warp%TAB%<warp name>%TAB%<spanx>,<spany>,<to map name>,<toX>,<toY>
+
+This will define a warp NPC that will warp a player between maps, and while most
+arguments of that are obvious, some deserve special mention.
+
+SpanX and SpanY will make the warp sensitive to a character who didn't step
+directly on it, but walked into a zone which is centered on the warp from
+coordinates and is SpanX in each direction across the X axis and SpanY in each
+direction across the Y axis.
+
+Warp NPC objects also have a name, because you can use it to refer to them later
+with 'enablenpc'/'disablenpc'
+
+Facing of a warp object is irrelevant, it is not used in the code and all
+current scripts have a zero in there.
+
+** Define an NPC object.
+
+<map name>,<x>,<y>,<facing>%TAB%script%TAB%<NPC Name>%TAB%<sprite id>,{<code>}
+<map name>,<x>,<y>,<facing>%TAB%script%TAB%<NPC Name>%TAB%<sprite id>,<triggerX>,<triggerY>,{<code>}
+
+This will place an NPC object on a specified map at the specified location, and
+is a top-level command you will use the most in your custom scripting. The NPCs
+are triggered by clicking on them, and/or by walking in their trigger area, if
+defined, see that below.
+
+Facing is a direction the NPC sprite will face in. Not all NPC sprites have
+different images depending on the direction you look from, so for some facing
+will be meaningless. Facings are counted counterclockwise in increments of 45
+degrees, where 0 means facing towards the top of the map. (So to turn the sprite
+towards the bottom of the map, you use facing 4, and to make it look southeast
+it's facing 5.)
+
+Sprite id is the sprite number used to display this particular NPC. For a full
+list of sprite id numbers see http://kalen.s79.xrea.com/npc/npce.shtml You may
+also use a monster's ID number instead to display a monster sprite for this NPC.
+It is possible to use a job sprite as well, but you must first define it as a
+monster sprite in 'mob_avail.txt', a full description on how to do this is for
+another manual. A '-1' sprite id will make the NPC invisible (and unclickable).
+A '111' sprite id will make an NPC which does not have a sprite, but is still
+clickable, which is useful if you want to make a clickable object of the 3D
+terrain.
+
+TriggerX and triggerY, if given, will define an area, centered on NPC and
+spanning triggerX cells in every direction across X and triggerY in every
+direction across Y. Walking into that area will trigger the NPC. If no
+'OnTouch:' special label is present in the NPC code, the execution will start
+from the beginning of the script, otherwise, it will start from the 'OnTouch:'
+label.
+
+NPC name is kinda special, because it's not only the name of NPC you will see on
+screen. It's formatted this way:
+
+<Screen name>{#<Extra name identifier>}{::<Label name>}
+
+The extra identifier is there that you can make an npc with an invisible name
+(just omit the screen name, but keep the identifier name) and so that you can
+refer to several NPCs which have the same name on screen, which is useful to
+make an NPC that relocates depending on special conditions, for example - you
+define several NPC objects and hide all except one.
+('Hunter#hunter1','Hunter#hunter2'...) The extra name identifiers will let your
+code tell them apart.
+
+Label name is used to duplicate NPC objects (more on that below).
+
+The complete NPC name (Screen name + extra identifier) may not exceed 24
+characters. The label name is counted separately but also limited to 24
+characters.
+
+The code part is the script code that will execute whenever the NPC is
+triggered. It may contain commands and function calls, descriptions of which
+compose most of this document. It has to be in curly brackets, unlike elsewhere
+where we use curly brackets, these do NOT signify an optional parameter.
+
+** Define an NPC duplicate.
+
+<map name>,<x>,<y>,<facing>%TAB%duplicate(<NPC label>)%TAB%<sprite id>
+<map name>,<x>,<y>,<facing>%TAB%duplicate(<NPC label>)%TAB%<sprite id>,<triggerX>,<triggerY>
+
+This will duplicate an NPC referred to by the label. The duplicate runs the same
+code as the NPC it refers to, but may have different location, facing and sprite
+ID. Whether it may actually have it's own size of trigger area is unclear at the
+moment - if you need that, try it and tell us of the results.
+
+** Define a 'floating' NPC object.
+
+-%TAB%script%TAB%-1,{<code>}
+
+This will define an NPC object not triggerable by normal means. This would
+normally mean it's pointless since it can't do anything, but there are
+exceptions, mostly related to running scripts at specified time, which is what
+these floating NPC objects are for. More on that below.
+
+** Define a shop NPC.
+
+<map name>,<x>,<y>,<facing>%TAB%shop%TAB%<NPC Name>%TAB%<sprite id>,<itemid>:<price>{,<itemid>:<price>...}
+
+This will define a shop NPC, which, when triggered (which can only be done by
+clicking) will cause a shop window to come up. No code whatsoever runs in shop
+NPCs and you can't change the prices otherwise than by editing the script
+itself. (No variables even exist at this point of scripting, so don't even
+bother trying to use them.)
+
+The item id is the number of item in the 'item_db.txt' database. If Price is set
+to -1, the 'buy price' given in the item database will be used. Otherwise, the
+price you gave will be used for this item, which is how you create differing
+prices for items in different shops.
+
+** Define a function object
+
+function%TAB%<function name>%TAB%{<code>}
+
+This will define a function object, callable with the 'callfunc' command (see
+below). This object will load on every map server separately, so you can get at
+it from anywhere. It's not possible to call the code in this object by
+anything other than the 'callfunc' script command.
+
+The code part is the script code that will execute whenever the function is
+called with 'callfunc'. It has to be in curly brackets, unlike elsewhere where
+we use curly brackets, these do NOT signify an optional parameter.
+
+** Alter a map cell
+
+<map name>%TAB%setcell%TAB%<type>,<x1>,<y1>,<x2>,<y2>
+
+This is sneaky, and isn't used in any official scripts, but it will let you
+define an area (x1/y1-x2/y2 square) of a map as having cell type 'type', where
+type is a number, which, among other things, defines whether the area is
+walkable or not, whether it has Basilica working in it or not, and some other
+things. This is a solution just itching for a problem and there's a number of
+interesting things you could use it for. Further investigation on what types are
+valid and mean what exactly is pending.
+
+Once an object is defined which has a 'code' field to it's definition, it
+contains script commands which can actually be triggered and executed.
+
+What a RID is and why do you need to know
+-----------------------------------------
+
+Most scripting commands and functions will want to request data about a
+character, store variables referenced to that character, send stuff to the
+client connected to that specific character. Whenever a script is invoked by a
+character, it is passed a so-called RID - this is the character ID number of a
+character that caused the code to execute by clicking on it, walking into it's
+OnTouch zone, or otherwise.
+
+If you are only writing common NPCs, you don't need to bother with it. However,
+if you use functions, if you use timers, if you use clock-based script
+activation, you need to be aware of all cases when a script execution can be
+triggered without a RID attached. This will make a lot of commands and functions
+unusable, since they want data from a specific character, want to send stuff to
+a specific client, want to store variables specific to that character, and they
+would not know what character to work on if there's no RID.
+
+Unless you use 'attachrid' to explicitly attach a character to the script first.
+
+Whenever we say 'invoking character', we mean 'the character who's RID is
+attached to the running script. The script function "playerattached" can be
+used to check which is the currently attached player to the script (it will
+return 0 if the there is no player attached or the attached player no longer
+is logged on to the map-server).
+
+Item and pet scripts
+--------------------
+
+Each item in the item database has two special fields - EquipScript and
+UseScript. The first is script code run every time a character equips the item,
+with the RID of the equipping character. Every time they unequip an item, all
+temporary bonuses given by the script commands are cleared, and all the scripts
+are executed once again to rebuild them. This also happens in several other
+situations (like upon login) but the full list is currently unknown.
+
+UseScript is a piece of script code run whenever the item is used by a character
+by doubleclicking on it.
+
+Not all script commands work properly in the item scripts. Where commands and
+functions are known to be meant specifically for use in item scripts, they are
+described as such.
+
+Every pet in the pet database has a PetScript field, which determines pet
+behavior. It is invoked wherever a pet of the specified type is spawned.
+(hatched from an egg, or loaded from the char server when a character who had
+that pet following them connects) This may occur in some other situations as
+well. Don't expect anything other than commands definitely marked as usable in
+pet scripts to work in there reliably.
+
+Numbers
+-------
+
+Beside the common decimal numbers, which are nothing special whatsoever (though
+do not expect to use fractions, since ALL numbers are integer in this language),
+the script engine also handles hexadecimal numbers, which are otherwise
+identical. Writing a number like '0x<hex digits>' will make it recognised as a
+hexadecimal value. Notice that 0x10 is equal to 16. Also notice that if you try
+to 'mes 0x10' it will print '16'.
+
+This is not used much, but it pays to know about it.
+
+Variables and scope
+-------------------
+
+The meat of every programming language is variables - places where you store
+data.
+
+Variables are divided into global (not attached to any specific RID, and
+independent of whoever triggered the object) and local (attached to a specific
+character object or a specific account object). They are further divided into
+permanent (they come back when the server resets) and temporary (they only
+persist until the server dies). This is what's called variable scope. :)
+
+Unlike in more advanced languages, all temporary variables are essentially
+'global', but not in the sense described above - if one NPC sets a temporary
+variable, even if it is character based, if that character triggers another NPC
+object, the variable will still be there, so you should be careful and set the
+variables you mean to be temporary to something sensible before using them. It
+also pays to keep variable names descriptive and reasonably long.
+
+Variable scope is defined by a prefix before the variable name:
+
+" " - Thats right, nothing before a variable, this a permanent variable
+ attached to the character object.
+"@" - A temporary version of a character-based variable.
+ SVN versions before 2094 revision and RC5 version will also treat 'l' as
+ a temporary variable prefix, so bevare of having variable names starting
+ with 'l', they will also be considered temporary, even if you didn't mean
+ them to be!
+"$" - A global permanent variable.
+ They are stored in "save\mapreg.txt" file and are the only kind of
+ variables stored in a text file in the SQL version.
+"$@" - A global temporary variable.
+ This is important for scripts which are called with no RID attached, that
+ is, not triggered by a specific character object.
+"#" - A permanent account-based variable.
+ They are stored with all the account data in "save\accreg.txt" in TXT
+ versions and in the SQL versions in the 'global_reg_value' table using
+ type 2.
+"##" - A permanent account-based variable stored by the login server.
+ They are stored in "save\account.txt" and in the SQL versions in the
+ 'global_reg_value' table, using type 1. The only difference you will
+ note from normal # variables is when you have multiple char-servers
+ connected to the same login server. The # variables are unique to each
+ char-server, while the ## variables are shared by all these
+ char-servers.
+
+Some variables are special, that is, they are already defined for you by the
+scripting engine. You can see the full list somewhere in 'db/const.txt', which
+is a file you should read, since it also allows you to replace lots of numbered
+arguments for many commands with easier to read text. The special variables most
+commonly used are all permanent character-based variables:
+
+StatusPoint - Amount of status points remaining.
+BaseLevel - Current base level
+SkillPoint - Amount of skill points remaining
+Class - Current job
+Upper - 1 if the character is an advanced job class.
+Zeny - Current amount of zeny
+Sex - Character's gender, 0 if female, 1 if male.
+Weight - The weight the character currently carries.
+MaxWeight - The maximum weight the character can carry.
+JobLevel - Character's job level
+BaseExp - The amount of base experience points the character has.
+ Notice that it's zero (or close) if the character just got a level.
+JobExp - Same for job levels
+NextBaseExp - Amount of experience points needed to reach the next base level.
+NextJobExp - Same for job levels.
+Hp - Current amount of hit points.
+MaxHp - Maximum amount of hit points.
+Sp - Current spell points.
+MaxSp - Maximum amount of spell points.
+BaseJob - This is sneaky, apparently meant for baby class support.
+ This will supposedly equal Job_Acolyte regardless of whether the
+ character is an acolyte or a baby acolyte, for example.
+Karma - The character's karma. Karma system is not fully functional, but
+ this doesn't mean this doesn't work at all. Not tested.
+Manner - The character's manner rating. Becomes negative if the player
+ utters words forbidden through the use of 'manner.txt' client-side
+ file.
+
+While these behave as variables, do not always expect to just set them - it is
+not certain whether this will work for all of them. Whenever there is a command
+or a function to set something, it's usually preferable to use that instead. The
+notable exception is Zeny, which you can and often will address directly -
+setting it will make the character own this number of zeny.
+
+All of the above variables store numbers. They can store positive and negative
+numbers, but only whole numbers (so don't expect to do any fractional math). You
+can also store a string in a variable, but this means naming it specially to
+denote it contains text rather than a number:
+
+@variable$ is a temporary string variable.
+$@variable$ is a global temporary string variable.
+
+Etc, etc.
+
+If a variable was never set, it is considered to equal zero (for number
+variables) or an empty string ("", nothing between the quotes) for string
+variables. Once you set it to that, the variable is as good as forgotten
+forever, and no trace remains of it even if it was stored with character or
+account data.
+
+Arrays
+------
+
+Arrays (in eAthena at least) are essentially a set of variables going under the
+same name. You can tell between the specific variables of an array with an
+'array index', a number of a variable in that array:
+
+<variable name>[<array index>]
+
+Variables stored in this way, inside an array, are also called 'array elements'.
+Arrays are specifically useful for storing a set of similar data (like several
+item IDs for example) and then looping through it. You can address any array
+variable as if it was a normal variable:
+
+ set @arrayofnumbers[0],1;
+
+You can also do sneaky things like using a variable (or an expression, or even a
+value from an another array) to get at an array value:
+
+ set @x,100;
+ set @arrayofnumbers[@x],10;
+
+This will make @arrayofnumbers[100] equal to 10.
+
+Notice that index numbering always starts with 0. Arrays cannot hold more than
+128 variables. (So the last one can't have a number higher than 127)
+
+And array indices probably can't be negative. Nobody tested what happens when
+you try to get a negatively numbered variable from an array, but it's not going
+to be pretty. :)
+
+Arrays can naturaly store strings:
+
+@menulines$[0] is the 0th element of the @menulines$ array of strings. Notice
+the '$', normally denoting a string variable, before the square brackets that
+denotes an array index.
+
+Operators
+---------
+
+Operators are things you can do to variables and numbers. They are either the
+common mathematical operations or conditional operators
+
++ - will add two numbers. If you try to add two strings, the result will be a
+ string glued together at the +. You can add a number to a string, and the
+ result will be a string. No other math operators work with strings.
+- - will subtract two numbers.
+* - will multiply two numbers.
+/ - will divide two numbers. Note that this is an integer division, i.e.
+ 7/2 is not equal 3.5, it's equal 3.
+% - will give you the remainder of the division. 7%2 is equal to 1.
+
+There are also conditional operators. This has to do with the conditional
+command 'if' and they are meant to return either 1 if the condition is satisfied
+and 0 if it isn't. (That's what they call 'boolean' variables. 0 means 'False'.
+Anything except the zero is 'True' Odd as it is, -1 and -5 and anything below
+zero will also be True.)
+
+You can compare numbers to each other and you compare strings to each other, but
+you can not compare numbers to strings.
+
+ == - Is true if both sides are equal. For strings, it means they are the same.
+ >= - True if the first value is equal to, or greater than, the second value.
+ <= - True if the first value is equal to, or less than, the second value
+ > - True if the first value greater than the second value
+ < - True if the first value is less than the second value
+ != - True if the first value IS NOT equal to the second one
+
+Examples:
+
+ 1=1 is True.
+ 1<2 is True while 1>2 is False.
+ @x>2 is True if @x is equal to 3. But it isn't true if @x is 2.
+
+Only '==' and '!=' have been tested for comparing strings. Since there's no way
+to code a seriously complex data structure in this language, trying to sort
+strings by alphabet would be pointless anyway.
+
+Comparisons can be stacked in the same condition:
+
+ && - Is True if and only if BOTH sides are true.
+ ('1==1 && 2=2' is true. '2=1 && 1=1' is false.)
+ || - Is True if either side of this expression is True.
+
+ 1=1 && 2=2 is True.
+ 1=1 && 2=1 is False.
+ 1=1 || 2=1 is True.
+
+Logical operators work only on numbers:
+
+ << - Left shift.
+ >> - Right shift.
+ & - And.
+ | - Or.
+ ^ - Xor.
+
+If you don't know what these five mean, don't bother, you don't need them.
+
+Labels
+------
+
+Within executable script code, some lines can be labels:
+
+<label name>:
+
+Labels are points of reference in your script, which can be used to route
+execution with 'goto', 'menu' and 'jump_zero' commands, invoked with 'doevent'
+and 'donpcevent' commands and are otherwise essential. A label's name may not be
+longer than 22 characters. (23rd is the ':'.) There is some confusion in the
+source about whether it's 22, 23 or 24 all over the place, so keeping labels
+under 22 characters could be wise. In addition to labels you name yourself,
+there are also some special labels which the script engine will start execution
+from if a special event happens:
+
+OnClock<hour><minute>:
+OnHour<hour>:
+On<weekday><hour><minute>:
+OnDay<month><day>:
+
+This will execute when the server clock hits the specified date or time. Hours
+and minutes are given in military time. ('0105' will mean 01:05 AM). Weekdays
+are Sun,Mon,Tue,Wed,Thu,Fri,Sat. Months are 01 to 12, days are 01 to 31.
+Remember the zero. :)
+
+OnInit:
+OnInterIfInit:
+OnInterIfInitOnce:
+
+OnInit will execute every time the scripts loading is complete, including when
+they are reloaded with @reloadscript command. OnInterIfInit will execute when
+the map server connects to a char server, OnInterIfInitOnce will only execute
+once and will not execute if the map server reconnects to the char server later.
+
+OnAgitStart:
+OnAgitEnd:
+OnAgitInit:
+
+OnAgitStart will run whenever the server shifts into WoE mode, whether it is
+done with @agitstart GM command or with 'AgitStart' script command. OnAgitEnd
+will do likewise for the end of WoE. OnAgitInit will run when castle data is
+loaded from the char-server by the map server.
+
+No RID will be attached while any of the abovementioned labels are triggered, so
+no character or account-based variables will be accessible, until you attach a
+RID with 'attachrid' (see below).
+
+OnTouch:
+
+This label will be executed if a trigger area is defined for the NPC object it's
+in. If it isn't present, the execution will start from the beginning of the NPC
+code. The RID of the triggering character object will be attached.
+
+OnPCDieEvent:
+OnPCKillEvent:
+OnPCLogoutEvent:
+OnPCLoginEvent:
+
+These four special labels will be invoked if you have set 'event_script_type'
+value in your 'script_athena.conf' to 1, and you can change their names by
+altering the configuration options in 'script_athena.conf'. It's pretty obvious
+when those will get triggered. For more information, see
+'npc/sample/PCLoginEvent.txt'
+
+Only the special labels which are not associated with any script command are
+listed here. There are other kinds of labels which may be triggered in a similar
+manner, but they are described with their associated commands.
+
+On<label name>:
+
+These special labels are used with Mob scripts mostly, and script commands
+that requires you to point/link a command to a mob or another npc, giving a label
+name to start from. The label name can be any of your liking, but must be
+
+Example:
+
+monster "prontera.gat",123,42,"Poringz0rd",2341,23,"Master::OnThisMobDeath";
+
+amatsu.gat,13,152,4 script Master 767,{
+
+mes "Hi there";
+close;
+
+OnThisMobDeath:
+ announce "Hey, "+strcharinfo(0)+" just killed a Poringz0rd!",bc_blue|bc_all;
+ end;
+}
+
+Each time you kill one, that announce will appear in blue to everyone.
+
+Scripting commands and functions
+--------------------------------
+
+The commands and functions are listed here in no particular order. There's a
+difference between commands and functions - commands leave no 'return value'
+which might be used in a conditional statement, as a command argument, or stored
+in a variable. Calling commands as if they were functions will sometimes work,
+but is not advised, as this can lead to some hard to track errors. Calling
+functions as if they were commands will mess up the stack, so 'return' command
+will not return correctly after this happens in a particular script.
+
+All commands must end with a ';'. Actually, you may expect to have multiple
+commands on one line if you properly terminate them with a ';', but it's better
+if you don't, since it is not certain just whether the scripting engine will
+behave nicely if you do.
+
+-------------------------
+
+*playerattached;
+
+Returns the ID of the player currently attached to the script. It will return
+0 if noone is attached, or if the attached player no longer exists on the map
+server. It is wise to check for the attached player in script functions that
+deal with timers as there's no guarantee the player will still be logged on
+when the timer triggers. Note that the ID of a player is actually their
+account ID.
+
+-------------------------
+
+*mes "<string>";
+
+This command will displays a box on the screen for the invoking character, if no
+such box is displayed already, and will print the string specified into that
+box. There is normally no 'close' or 'next' button on this box, unless you
+create one with 'close' or 'next', and while it's open the player can't do much
+else, so it's important to create a button later. If the string is empty, it
+will show up as an empty line.
+
+ mes "Text that will appear in the box";
+
+Inside the string you may put color codes, which will alter the color of the
+text printed after them. The color codes are all '^<R><G><B>' and contain three
+hexadecimal numbers representing colors as if they were HTML colors - ^FF0000 is
+bright red, ^00FF00 is bright green, ^0000FF is bright blue, ^000000 is black.
+^FF00FF is a pure magenta, but it's also a color that is considered transparent
+whenever the client is drawing windows on screen, so printing text in that color
+will have kind of a weird effect. Once you've set a text's color to something,
+you have to set it back to black unless you want all the rest of the text be in
+that color:
+
+ mes "This is ^FF0000 red ^000000 and this is ^00FF00 green, ^000000 so.";
+
+Notice that the text coloring is handled purely by the client. If you use non-
+english characters, the color codes might get screwed if they stick to letters
+with no intervening space. Separating them with spaces from the letters on
+either side solves the problem.
+
+---------------------------------------
+
+*goto <label>;
+
+This command will make the script jump to a label, usually used in conjunction
+with other command, such as "if", but often used on it's own.
+
+ goto Label;
+ mes "This will not be seen";
+ Label:
+ mes "This will be seen";
+
+---------------------------------------
+
+*callfunc "<function>"{,<argument>,...<argument>};
+*callfunc("<function>"{,<argument>,...<argument>})
+
+This command lets you call up a function NPC. A function NPC can be called from
+any script on any map server. Using the 'return' command it will come back to
+the place that called it.
+
+ place.gat,50,50,6%TAB%script%TAB%Woman%TAB%115,{
+ mes "[Woman]"
+ mes "Lets see if you win";
+ callfunc "funcNPC";
+ mes "Well done you have won";
+ close;
+ }
+ function%TAB%script%TAB%funcNPC%TAB%{
+ set @win, rand(2);
+ if(@win==0) return;
+ mes "Sorry you lost";
+ end;
+ }
+
+You can pass arguments to your function - values telling it what exactly to do -
+which will be available there with getarg() (see 'getarg')
+Notice that returning is not mandatory, you can end execution right there.
+
+If you want to return a real value from inside your function NPC, it is better
+to write it in the function form, which will also work and will make the script
+generally cleaner:
+
+ place.gat,50,50,6%TAB%script%TAB%Man%TAB%115,{
+ mes "[Man]"
+ mes "Gimme a number!";
+ next;
+ input @number;
+ if (callfunc("OddFunc",@number)) mes "It's Odd!";
+ close;
+ }
+ function%TAB%script%TAB%OddFunc%TAB%{
+ if (getarg(0)%2==0) goto ItsEven;
+ return (1);
+ ItsEven:
+ return (0);
+ }
+
+---------------------------------------
+
+*callsub <label name>{,<argument>,...<argument>};
+
+This command will go to a specified label within the current script (do NOT use
+quotes around it) coming in as if it were a 'callfunc' call, and pass it
+arguments given, if any, which can be recovered there with 'getarg'. When done
+there, you should use the 'return' command to go back to the point from where
+this label was called. This is used when there is a specific thing the script
+will do over and over, this lets you use the same bit of code as many times as
+you like, to save space and time, without creating extra NPC objects which are
+needed with 'callfunc'. A label is not callable in this manner from another
+script.
+
+ mes "[Woman]"
+ mes "Lets see if you win";
+ callsub Check;
+ mes "Well done you have won";
+ Check:
+ set @win, rand(2);
+ if(@win==0) return;
+ mes "Sorry you lost";
+
+---------------------------------------
+
+*return {(<value>)};
+
+When you use callsub or callfunc, this command allows you to go back to the
+calling script. You can optionally return with a value telling the calling
+program what exactly happened. To get at this value, you will have to use the
+'set' command:
+
+ set <variable>,callfunc "<your function>"
+
+Note the round brackets. Turns out you have to enclose just about anything in
+brackets if it isn't a straight number for the return command to work with it:
+
+ return (@x+@y);
+
+Also note that
+
+ if (<condition>) return (<whatever>);
+
+does NOT always work, even though it would make scripts a lot cleaner, and it
+might be wiser to avoid using it like that.
+
+For an example see 'callfunc' and 'callsub'
+
+---------------------------------------
+
+*getarg(<number>)
+
+This function is used when you use the 'callsub' or 'callfunc' commands. In the
+call you can specify variables that will make that call different from another
+one. This function willwill return an argument the function or subroutine was
+called with, and is the normal way to get them.
+This is another thing that can let you use the same but of code more than once.
+
+Argument numbering starts with 0, i.e. the first argument you gave is number 0.
+If no such argument was given, a zero is returned.
+
+ place.gat,50,50,6%TAB%script%TAB%Woman1%TAB%115,{
+ mes "[Woman]";
+ mes "Lets see if you win";
+ callfunc "funcNPC",2;
+ mes "Well done you have won";
+
+ ...
+
+ place.gat,52,50,6%TAB%script%TAB%Woman2%TAB%115,{
+ mes "[Woman]";
+ mes "Lets see if you win";
+ callfunc "funcNPC",5;
+ mes "Well done you have won";
+
+ ...
+
+ function%TAB%script%TAB%funcNPC%TAB%{
+ set @win, rand(getarg(0));
+ if(@win==0) return;
+ mes "Sorry you lost";
+
+"woman1" NPC object calls the funcNPC. The argument it gives in this call is
+stated as 2, so when the random number is generated by the 'rand' function, it
+can only be 0 or 1. Whereas "woman2" gives 5 as the argument number 0 when
+calling the function, so the random number could be 0, 1, 2, 3 or 4, this makes
+"woman2" less likely to say the player won.
+
+You can pass multiple arguments in a function call:
+
+ callfunc "funcNPC",5,4,3;
+
+getarg(0) would be 5, getarg(1) would be 4 and getarg(2) would be 3.
+
+'getarg()' can also be used to carry information back from using the "callfunc"
+script command, if the 'return' command is set to return a value:
+
+ place.gat,50,50,6%TAB%script%TAB%Woman%TAB%115,{
+ mes "[Woman]";
+ mes "Lets see if you win";
+ callfunc "funcNPC";
+ mes "Well it seems you have "+getarg(0);
+ }
+ function%TAB%script%TAB%funcNPC%TAB%{
+ set @win, rand(2);
+ if(@win==0) return(won);
+ return(lost);
+ }
+
+It is, however, better to use 'set' to get this value instead (see 'callfunc')
+because otherwise you can't call functions from within other functions. (Return
+values mess up the stack.)
+
+---------------------------------------
+
+*next;
+
+This command will create a 'next' button in the message window for the invoking
+character. If no window is currently on screen, it will be created. Used to
+segment NPC talking, this command is used A LOT. See 'mes'.
+
+ mes "[Woman]";
+ mes "This would appear on the page";
+ next;
+ // This is needed cause it is a new page and the top will now be blank
+ mes "[Woman]";
+ mes "This would appear on the 2nd page";
+
+---------------------------------------
+
+*close;
+
+This command will create a 'close' button in the message window for the invoking
+character. If no window is currently on screen, it will be created. This is one
+of the ways to end a speech from an NPC. Once the button is clicked, the NPC
+script execution will end, and the message box will disappear.
+
+ mes "[Woman]";
+ mes "I am finished talking to you, click the close button";
+ close;
+ mes "This command will not run at all, cause the script has ended.";
+
+---------------------------------------
+
+*close2;
+
+This command will create a 'close' button in the message window for the invoking
+character. If no window is currently on screen, it will be created. See 'close'.
+There is one important difference, though - even though the message box will
+have closed, the script execution will not stop, and commands after 'close2'
+will still run, meaning an 'end' has to be used to stop the script, unless you
+make it stop in some other manner.
+
+ mes "[Woman]";
+ mes "I will warp you now";
+ close2;
+ warp "place.gat",50,50;
+ end;
+
+Don't expect things to run smoothly if you don't make your scripts 'end'.
+
+---------------------------------------
+
+*menu "<menu option>",<label>{,"<menu option>",<label>...};
+
+This command will create a selectable menu for the invoking character. Only one
+menu can be on screen at the same time.
+
+Depending on what the player picks from the menu, the script execution will
+continue from the corresponding label. (it's string-label pairs, not label-
+string)
+
+It also sets a special temporary character variable @menu, which contains the
+number of option the player picked. (Numbering of options starts at 1.)
+
+ menu "I want to Start",L_Start,"I want to end",L_End;
+ L_Start:
+ //If they click "I want to Start" they will end up here
+ L_End:
+ //If they click "I want to end" they will end up here
+
+If a label is '-', the script execution will continue right after the menu
+command if that option is selected, this can be used to save you time, and
+optimize big scripts.
+
+ menu "I want to Start",-,"I want to end",L_End;
+ //If they click "I want to Start" they will end up here
+ L_End:
+ //If they click "I want to end" they will end up here
+
+Both these examples will perform the same task.
+
+If you give an empty string as a menu item, the item will not display. This
+can effectively be used to script dynamic menus by using empty string for
+entries that should be unavailable at that time.
+
+You can do it by using arrays, but watch carefully - this trick isn't high
+wizardry, but minor magic at least. You can't expect to easily duplicate it
+until you understand how it works.
+
+Create a temporary array of strings to contain your menu items, and populate it
+with the strings that should go into the menu at this execution, making sure not
+to leave any gaps. Normally, you do it with a loop and an extra counter, like
+this:
+
+ setarray @possiblemenuitems$[0],<list of potential menu items>;
+ set @i,0; // That's our loop counter.
+ set @j,0; // That's the menu lines counter.
+
+ makemenuloop:
+
+ // We record the number of option into the list of options actually
+ // available. That 'condition' is whatever condition that determines whether
+ // a menu item number @i actually goes into the menu or not.
+
+ if (<condition>) set @menulist$[@j],@possiblemenuitems$[@i];
+
+ // We just copied the string, we do need it's number for later though, so we
+ // file it away as well.
+
+ if (<condition>) set @menureference[@j],@i;
+
+ // Since we've just added a menu item into the list, we increment the menu
+ // lines counter.
+
+ if (<condition>) set @j,@j+1;
+
+ // We go on to the next possible menu item.
+
+ set @i,@i+1;
+
+ // And continue looping through the list of possible menu items until it
+ // ends.
+
+ if (@i<=getarraysize(@possiblemenuitems)) goto makemenuloop;
+
+
+This will create you an array @menulist$ which contains the text of all items
+that should actually go into the menu based on your condition, and an array
+@menureference, which contains their numbers in the list of possible menu items.
+(Remember, arrays start with 0.) There's less of them than the possible menu
+items you've defined, but the menu command can handle the empty lines - only if
+they are last in the list, and if it's made this way, they are. Now comes a
+dirty trick:
+
+ // X is whatever the most menu items you expect to handle.
+ menu @menulist$[0],-,@menulist$[1],-,....@menulist$[<X>],-;
+
+This calls up a menu of all your items. Since you didn't copy some of the
+possible menu items into the list, it's end is empty and so no menu items will
+show up past the end. But this menu call doesn't jump anywhere, it just
+continues execution right after the menu command. (And it's a good thing it
+doesn't, cause you can only explicitly define labels to jump to, and how do you
+know which ones to define if you don't know beforehand which options will end up
+where in your menu?)
+But how do you figure out which option the user picked? Enter the @menu.
+
+@menu contains the number of option that the user selected from the list,
+starting with 1 for the first option. You know now which option the user picked
+and which number in your real list of possible menu items it translated to:
+
+ mes "You selected "+@possiblemenuitems$[@menureference[@menu-1]]+"!";
+
+@menu is the number of option the user picked.
+@menu-1 is the array index for the list of actually used menu items that we
+made.
+@menureference[@menu-1] is the number of the item in the array of possible menu
+items that we've saved just for this purpose.
+
+And @possiblemenuitems$[@menureference[@menu-1]] is the string that we used to
+display the menu line the user picked. (Yes, it's a handful, but it works.)
+
+You can set up a bunch of 'if (@menureference[@menu-1]==X) goto Y' statements to
+route your execution based on the line selected and still generate a different
+menu every time, which is handy when you want to, for example, make users select
+items in any specific order before proceeding, or make a randomly shuffled menu.
+
+Kafra code bundled with the standard distribution uses a similar array-based
+menu technique for teleport lists, but it's much simpler and doesn't use @menu,
+probably since that wasn't documented anywhere.
+
+See also 'select', which is probably better in this particular case. Instead of
+menu, you could use 'select' like this:
+
+ set @dummy,select(@menulist$[0],@menulist$[1],....@menulist$[<X>]);
+
+For the purposes of the technique described above these two statements are
+perfectly equivalent.
+
+---------------------------------------
+
+*rand(<number>{,<number>});
+
+This function returns a number, randomly positioned between 0 and the number you
+specify (if you only specify one) and the two numbers you specify if you give it
+two.
+
+rand(10) would result in 0,1,2,3,4,5,6,7,8 or 9
+
+rand(2,10) would result in 2,3,4,5,6,7,8,9 or 10
+
+---------------------------------------
+
+*warp "<map name>",<x>,<y>;
+
+This command will take the invoking character to the specifed map, and if
+wanted, specified coordinates too, but these can be random.
+
+ warp "place.gat",50,55;
+
+This would take them to X 50 Y 55 on the map called "place". If your X and Y
+coordinates land on an unwalkable map square, it will send the warped character
+to a random place. Same will happen if they are both zero:
+
+ warp "place.gat",0,0;
+
+Notice that while warping people to coordinates 0,0 will normally get them into
+a random place, it's not certain to always be so. Darned if I know where this is
+actually coded, it might be that this happens because square 0,0 is unwalkable
+on all official maps. If you're using custom maps, beware.
+
+There are also three special 'map names' you can use.
+
+"Random" will warp the player randomly on the current map.
+"Save" and "SavePoint" will warp the player back to their savepoint.
+
+---------------------------------------
+
+*areawarp "<from map name>",<x1>,<y1>,<x2>,<y2>,"<to map name>",<x3>,<y3>;
+
+This command is similar to 'warp', however, it will not refer to the invoking
+character, but instead, all characters within a specified area, defined by the
+x1/y1-x2/y2 square, will be warped. Nobody outside the area will be affected,
+including the activating character, if they are outside the area.
+
+ areawarp "place.gat",10,10,120,120,"place2.gat",150,150;
+
+Everyone that is in the area between X 10 Y 10 and X 120 Y 120, in a square
+shape, on the map called "place", will be affected, and warped to "place2" X 150
+Y 150
+
+ areawarp "place.gat",10,10,120,120,"place2.gat",0,0;
+
+By using ,0,0; as the destination coordinates it will take all the characters in
+the affected area to a random set of co-ordinates on "place2".
+
+Like 'warp', areawarp will also explicitly warp characters randomly into the
+current map if you give the 'to map name' as "Random".
+
+See also 'warp'.
+
+---------------------------------------
+
+*heal <hp>,<sp>;
+
+This command will heal a set amount of HP and/or SP on the invoking character.
+
+ heal 30000,0; // This will heal 30,000 HP
+ heal 0,30000; // This will heal 30,000 SP
+ heal 300,300; // This will heal 300 HP and 300 SP
+
+This command just alters the hit points and spell points of the invoking
+character and produces no other output whatsoever.
+
+---------------------------------------
+
+*itemheal <hp>,<sp>;
+
+This command works on the invoking character like 'heal', however, it is not
+normally used in NPC scripts and will not work as expected there, but is used
+all over in item scripts.
+
+Unlike 'heal', which just alters hp/sp and doesn't do anything else at all, this
+command also shows healing animations for potions and other stuff, checks
+whether the potion was made by a famous alchemist and alters the amount healed,
+etc, etc. Since which kind of effect is shown depends on what item was used,
+using it in an NPC script will not have a desired effect.
+
+There is also a nice example on using this with the 'rand' function, to give you
+a random ammount of healing.
+
+ // This will heal anything thing from 100 to 150 HP and no SP
+ itemheal rand(100,150),0;
+
+---------------------------------------
+
+*percentheal <hp>,<sp>;
+
+This command will heal the invoking character. It heals the character, but not
+by a set value - it adds percent of their maximum HP/SP.
+
+ percentheal 100,0; // This will heal 100% HP
+ percentheal 0,100; // This will heal 100% SP
+ percentheal 50,50; // This will heal 50% HP and 50% SP
+
+So the amount that this will heal will depend on the total ammount of HP or SP
+you have maximum. Like 'heal', this will not call up any animations or effects.
+
+---------------------------------------
+
+*jobchange <job number>{,<upper flag>};
+
+This command will change the job class of the invoking character.
+
+ jobchange 1; // This would change your player into a Swordman
+ jobchange 4002; // This would change your player into a Swordman High
+
+This command does work with numbers, but you can also use job names. The full
+list of job names and the numbers they correspond to can be found in
+'db/const.txt'.
+
+ // This would change your player into a Swordman
+ jobchange Job_Swordman;
+ // This would change your player into a Swordman High
+ jobchange Job_Swordman_High;
+
+'upper flag' can alternatively be used to specify the type of job one changes
+to. For example, jobchange Job_Swordman,1; will change the character to a high
+swordsman. The upper values are:
+-1 (or when omitted): preserves the current job type.
+0: Normal/standard classes
+1: High/Advanced classes
+2: Baby classes
+
+This command will also set a permanent character-based variable
+'jobchange_level' which will contain the job level at the time right before
+changing jobs, which can be checked for later in scripts.
+
+---------------------------------------
+
+*jobname <job number>
+
+This command retrieves the name of the given job using the msg_athena entries 550->650.
+
+ mes "[Kid]";
+ mes "I never thought I'd met a "+jobname(Class)+" here of all places.";
+ close;
+
+---------------------------------------
+
+*eaclass {<job number>}
+
+This commands returns the "eA job-number" corresponding to the given class (if none is given, it returns uses
+the invoking player's class as argument). The eA job-number is also a class number system, but it's one that
+comes with constants which make it easy to convert among classes. The command will return -1 if you pass it a
+job number which doesn't has a eA Job value equivalent.
+
+ set @eac, eaclass();
+ if ((@eac&EAJ_BASEMASK) == EAJ_SWORDMAN)
+ mes "You must be a swordman, knight, crusader, paladin, high swordman, lord knight, baby swordman,";
+ mes "baby knight or baby crusader.";
+ if (@eac&EAJL_UPPER)
+ mes "You are a rebirth job.";
+ if ((@eac&EAJ_UPPERMASK) == EAJ_SWORDMAN)
+ mes "You must be a Swordman, Baby Swordman or High Swordman.";
+
+For more information on the eA Job System, see the docs/ea_job_system.txt file.
+
+---------------------------------------
+*roclass <job number> {,<gender>}
+
+Does the opposite of eaclass. That is, given a eA Job class, it returns which is the corresponding RO class number.
+A gender is required because both Bard and Dancers share the same eA Job value (EAJ_BARDDANCER), if it isn't given, the
+gender of the executing player is taken (if there's no player running the script, male will be used by default).
+The command returns -1 when there isn't a valid class to represent the required job (for example, if you try to get the
+baby version of a Taekwon class).
+
+ set @eac, eaclass();
+ //Check if class is already rebirth
+ if (@eac&EAJL_UPPER) {
+ mes "You look strong.";
+ close;
+ }
+ set @eac, roclass(@eac|EAJL_UPPER);
+ //Check if class has a rebirth version
+ if (@eac != -1) {
+ mes "Bet you can't wait to become a "+jobname(@eac)+"!";
+ close;
+ }
+
+---------------------------------------
+
+*input <variable>;
+
+This command will make an input box pop up on the client connected to the
+invoking character, to allow entering of a number or a string. This has many
+uses, one example would be a guessing game, also making use of the 'rand'
+function:
+
+ mes "[Woman]";
+ mes "Try and guess the number I am thinking of.";
+ mes "The number will be between 1 and 10.";
+ next;
+ set @number, rand(1,10);
+ input @guess;
+ if(@guess==@number) goto L_Correct;
+ mes "[Woman]";
+ mes "Sorry, that wasn't the number I was thinking of.";
+ close;
+ L_Correct:
+ mes "[Woman]";
+ mes "Well done that was the number I was thinking of";
+ close;
+
+If you give the input command a string variable to put the input in, it will
+allow the player to enter text. Otherwise, only numbers will be allowed.
+
+ mes "[Woman]";
+ mes "Please say HELLO";
+ next;
+ input @var$;
+ if(@var$=="HELLO") goto L_Correct;
+ mes "[Woman]";
+ mes "Sorry you got it wrong";
+ close;
+ L_Correct:
+ mes "[Woman]";
+ mes "Well done you typed it correctly";
+ close;
+
+Notice that in current SVN, you may not input a negative number with this
+command. This was done to prevent exploits in badly written scripts, which would
+let people, for example, put negative amounts of zeny into a bank script and
+recieve free zeny as a result. Unfortunately it limits the uses of the 'input'
+command quite a bit.
+
+---------------------------------------
+
+*setlook <look type>,<look value>;
+
+This command will alter the look data for the invoking character. It is used
+mainly for changing the palette used on hair and clothes, you specify which look
+type you want to change, then the palette you want to use. Make sure you specify
+a palette number that exists/is usable by the client you use.
+
+ // This will change your hair(6), so that it uses palette 8, what ever your
+ // palette 8 is your hair will use that colour
+
+ setlook 6,8;
+
+ // This will change your clothes(7), so they are using palette 1, whatever
+ // your palette 1 is, your clothes will then use that set of colours.
+
+ setlook 7,1;
+
+Here are the possible look types:
+
+ 0 - Base sprite
+ 1 - Hairstyle
+ 2 - Weapon
+ 3 - Head bottom
+ 4 - Head top
+ 5 - Head mid
+ 6 - Hair color
+ 7 - Clothes color
+ 8 - Shield
+ 9 - Shoes
+
+Whatever 'shoes' means is anybody's guess, ask Gravity - the client does nothing
+with this value. It still wants it from the server though, so it is kept, but
+normally doesn't do a thing.
+
+Only the look data for hairstyle, hair color and clothes color are saved to the
+char server's database and will persist. The rest freely change as the character
+puts on and removes equipment, changes maps, logs in and out and otherwise you
+should not expect to set them. In fact, messing with them is generally
+hazardous, do it at your own risk, it is not tested what will this actually do -
+it won't cause database corruption and probably won't cause a server crash, but
+it's easy to crash the client with just about anything unusual.
+
+However, it might be an easy way to quickly check for empty view IDs for
+sprites, which is essential for making custom headgear.
+
+Since a lot of people have different palettes for hair and clothes, it's
+impossible to tell you what all the colour numbers are. If you want a serious
+example, there is a Stylist script inside the default eAthena installation that
+you can look at, this may help you create a Stylist of your own:
+'custom\dye.txt'
+
+---------------------------------------
+
+*set <variable>,<expression>;
+
+This command will set a variable to the value that the expression results in.
+This is the only way to set a variable directly.
+
+This is the most basic script command and is uses a lot whenever you try to do
+anything more advanced than just printing text into a messagebox.
+
+ set @x,100;
+
+will make @x equal 100.
+
+ set @x,1+5/8+9;
+
+will compute 1+5/8+9 (which is, surprisingly, 10 - remember, all numbers are
+integer in this language) and make @x equal it.
+
+---------------------------------------
+
+*setarray <array name>[<first value>],<value>{,<value>...<value>};
+
+This command will allow you to quickly fill up an array in one go. Check the
+Kafra scripts in the distribution to see this used a lot.
+
+ setarray @array[0], 100, 200, 300, 400, 500, 600;
+
+First value is the index of the first element of the array to alter. For
+example:
+
+ setarray @array[0],200,200,200;
+ setarray @array[1],300,150;
+
+will produce:
+
+ @array[0]=200
+ @array[1]=300
+ @array[2]=150
+
+---------------------------------------
+
+*cleararray <array name>[<first value to alter>],<value>,<number of values to set>;
+
+This command will change many array values at the same time to the same value.
+
+ setarray @array[0], 100, 200, 300, 400, 500, 600;
+ // This will make all 6 values 0
+ cleararray @array[0],0,6;
+ // This will make array element 0 change to 245
+ cleararray @array[0],245,1;
+ // This will make elements 1 and 2 change to 345
+ cleararray @array[1],345,2;
+
+See 'setarray'.
+
+---------------------------------------
+
+*copyarray <to array>[<first value>],<from array>[<first value>],<amount to copy>;
+
+This command lets you quickly shuffle a lot of data between arrays, which is in
+some cases invaluable.
+
+ setarray @array[0], 100, 200, 300, 400, 500, 600;
+ // So we have made @array[]
+ copyarray @array2[0],@array[2],2;
+
+ // Now, @array2[0] will be equal to @array[2] (300) and
+ // @array2[1] will be equal to @array[3].
+
+So using the examples above:
+ @array[0] = 100
+ @array[1] = 200
+ @array[2] = 300
+ @array[3] = 400
+ @array[4] = 500
+ @array[5] = 600
+
+ @array2[0] = 300
+ @array2[1] = 400
+ @array2[2] = 500
+ @array2[3] = 0
+
+Notice that @array[5] wont be coppied to the second array, and it will return a
+0.
+
+---------------------------------------
+
+*getarraysize(<array name>);
+
+This function returns the number of values that are contained inside the
+specified array. Notice that zeros and empty strings at the end of this array
+are not counted towards this number.
+
+For example:
+
+ setarray @array[0], 100, 200, 300, 400, 500, 600;
+ set @arraysize,getarraysize(@array);
+
+This will make @arraysize == 6. But if you try this:
+
+ setarray @array[0], 100, 200, 300, 400, 500, 600, 0;
+ set @arraysize,getarraysize(@array);
+
+@arraysize will still equal 6, even though you've set 7 values.
+
+---------------------------------------
+
+*deletearray <array name>[<first value>],<how much to delete>
+
+This command will delete a specified number of array elements totally from an
+array, shifting all the elements beyond this towards the beginning.
+
+ // This will delete array element 0, and move all the other array elements
+ // up one place.
+ deletearray @array[0],1
+
+// This would delete array elements numbered 1, 2 and 3, leave element 0 in its
+// place, and move the other elements ups, so there are no gaps.
+
+ deletearray @array[1],3
+
+IMPORTANT: deletarray is horribly broken since the earliest days of jAthena. It
+tends to merrily remove much more variables than it's told to remove, which
+makes it pretty much useless for anything other than removing an array from
+memory entirely. This would be very handy, if it always worked.
+
+---------------------------------------
+
+*getelementofarray(<array name>,<index>);
+
+This function will return an array's element when given an index.
+
+ // This will find the 2nd array value
+ getelementofarray(@array,1)
+
+Pretty pointless now when we have
+
+ @array[1]
+
+which has the same effect.
+
+---------------------------------------
+
+*if (<condition>) <statement>;
+
+This is the basic conditional statement command, and just about the only one
+available in this scripting language.
+
+The condition can be any expression. All expressions resulting in a non-zero
+value will be considered True, including negative values. All expressions
+resulting in a zero are false.
+
+If the expression results in True, the statement will be executed. If it isn't
+true, nothing happens and we move on to the next line of the script.
+
+ if (1) mes "This will always print.";
+ if (0) mes "And this will never print.";
+ if (5) mes "This will also always print.";
+ if (-1) mes "Funny as it is, this will also print just fine.";
+
+For more information on conditional operators see the operators section above.
+Anything that is returned by a function can be used in a condition check without
+bothering to store it in a specific variable:
+
+ if (strcharinfo(0)=="Daniel Jackson") mes "It is true, you are Daniel!";
+
+More examples of using the 'if' command in the real world:
+
+Example 1:
+
+ set @var1,1;
+ input @var2;
+ if(@var1==@var2) goto L_Same;
+ mes "Sorry that is wrong";
+ close;
+ L_Same:
+ close;
+
+Example 2:
+
+ set @var1,1;
+ input @var2;
+ if(@var1!=@var2) mes "Sorry that is wrong";
+ close;
+
+(Notice examples 1 and 2 have the same effect.)
+
+Example 3:
+
+ set @var1,@var1+1;
+ mes "[Forgetfull Man]";
+ if (@var==1) mes "This is the first time you have talked to me";
+ if (@var==2) mes "This is the second time you have talked to me";
+ if (@var==3) mes "This is the third time you have talked to me";
+ if (@var==4) mes "This is the forth time you have talked to me, but I think I am getting amnesia, I have forgoten about you";
+ if (@var==4) set @var,0;
+ close;
+
+Example 4:
+
+ mes "[Quest Person]";
+ if(countitem(512)>=1) goto L_GiveApple;
+ // The number 512 was found from item_db, it is the item number for the Apple.
+ mes "Can you please bring me an apple?";
+ close;
+ L_GiveApple:
+ mes "Oh an apple, I didnt want it, I just wanted to see one";
+ close;
+
+Example 5:
+
+ mes "[Person Checker]";
+ if($name$!=null) goto L_Check;
+ mes "Please tell me someones name";
+ next;
+ input $name$;
+ set $name2$,strcharinfo(0);
+ mes "[Person Checker]";
+ mes "Thank you";
+ L_Check:
+ if($name$==strcharinfo(0) ) goto L_SameName;
+ mes "[Person Checker]";
+ mes "You are not the person that " +$name2$+ " mentioned";
+ L_End:
+ set $name$,null;
+ set $name2$,null;
+ close;
+ L_SameName:
+ mes "[Person Checker]";
+ mes "You are the person that " +$name2$+ " just mentioned";
+ mes "nice to meet you";
+ goto L_End;
+
+See 'strcharinfo' for explanation of what this function does.
+
+Example 6: Using complex conditions.
+
+ mes "[Multi Checker]";
+ if( (@queststarted==1) && (countitem(512)>=5) ) goto L_MultiCheck;
+ // Only if the quest has been started AND You have 5 apples will it goto "L_MultiCheck"
+ mes "Please get me 5 apples";
+ set @queststarted,1;
+ close;
+ L_MultiCheck:
+ mes "[Multi Checker]";
+ mes "Well done you have started the quest of got me 5 apples";
+ mes "Thank you";
+ set @queststarted,0;
+ delitem 512,5;
+ close;
+
+---------------------------------------
+
+*getitem <item id>,<amount>{,<character ID>};
+*getitem "<item name>",<amount>{,<character ID>};
+
+This command will give a specific amount of specified items to the invoking
+character. If an optional character ID is specified, and that character is
+currently online, items will be created in their inventory instead. If they are
+not online, nothing will happen.
+
+In the first and most commonly used version of this command, tems are referred
+to by their database ID number found inside 'db/item_db.txt'.
+
+ getitem 502,10 // The person will recieve 10 apples
+ getitem 617,1 // The person will recieve 1 Old Violet Box
+
+Giving an item ID of -1 will give a specified number of random items from the
+list of those that fall out of Old Blue Box. Unlike in all other cases, these
+will be unidentified, if they turn out to be equipment. This is exactly what's
+written in the Old Blue Box's item script.
+
+Other negative IDs also correspond to other random item generating item tables:
+
+Giving an item ID of -2 will produce the effects of Old Violet Box.
+Giving an item ID of -3 will produce the effects of Old Card Album.
+Giving an item ID of -4 will produce the effects of Gift Box.
+Giving an item ID of -5 will produce the effects of Worn Out Scroll, which, in
+current SVN, drops only Jellopies anyway.
+
+Calling this command with a negative item ID to create a random item will create
+an entry in the log file for those if such logging is enabled.
+
+You may also create an item by it's name in the 'english name' field in the item
+database:
+
+ getitem "RED_POTION",10;
+
+Which will do what you'd expect. If it can't find that name in the database,
+apples will be created anyway. It is often a VERY GOOD IDEA to use it like this.
+
+This used in pretty much all NPC scripts that have to do with items and quite a
+few item scripts. For more examples check just about any official script.
+
+---------------------------------------
+
+*getitem2 <item id>,<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<character ID>};
+*getitem2 "<Item name>",<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<character ID>};
+
+This command will give an amount of specified items to the invoking character.
+If an optional character ID is specified, and that character is currently
+online, items will be created in their inventory instead. If they are not
+online, nothing will happen. It works essentially the same as 'getitem' (it even
+works for negative ID numbers the same way, which is kinda silly) but is a lot
+more flexible, since it allows you to give the player an item altered with it's
+specific properties.
+
+Those parameters that are different from 'getitem' are:
+
+identify - Whether you want the item to be identified or not, 0 unidentified,
+ 1 identified.
+refine - For how many plusses will it be refined.
+ It will not let you refine an item higher than +10, if you
+ specify more it'll still be 10.
+attribute - Whether the item is broken (1) or not (0) and NOT an elemental
+ attribute.
+card1,2,3,4 - If you want a card compound to it, place the card ID number into
+ the specific card slot. Card ID numbers also found in
+ 'db/item_db.txt'
+
+Card1-card4 values are also used to store name information for named items, as
+well as the elemental property of weapons and armor. You can create a named item
+in this manner, however, if you just need a named piece of standard equipment,
+it is much easier to the 'getnameditem' function instead.
+
+You will need to keep these values if you want to destroy and then perfectly
+recreate a named item, for this see 'getinventorylist'.
+
+If you still want to try creating a named item with this command because
+'getnameditem' won't do it for you cause it's too limited, you can do it like
+this. Careful, minor magic ahead.
+
+ // First, let's get an ID of a character who's name will be on the item.
+ // Only an existing character's name may be there.
+ // Let's assume our character is 'Adam' and find his ID.
+
+ set @charid,getcharid(0,"Adam");
+
+ // Now we split the character ID number into two portions with a binary
+ // shift operation. If you don't understand what this does, just copy it.
+
+ set @card3, @charid & 65535;
+ set @card4, @charid >> 16;
+
+ // If you're inscribing non-equipment, @card1 must be 254.
+ // Arrows are also not equipment. :)
+ set @card1,254;
+
+ // For named equipment, card2 means the Star Crumbs and elemental
+ // crystals used to make this equipment. For everything else, it's 0.
+
+ set @card2,0;
+
+ // Now, let's give the character who invoked the script some
+ // Adam's Apples:
+
+ getitem2 512,1,1,0,0,@card1,@card2,@card3,@card4;
+
+This wasn't tested with all possible items, so I can't give any promises,
+experiment first before relying on it.
+
+To create equipment, continue this example it like this:
+
+ // We've already have card3 and card4 loaded with correct
+ // values so we'll just set up card1 and card2 with data
+ // for an Ice Stiletto.
+
+ // If you're inscribing equipment, @card1 must be 255.
+ set @card1,255;
+
+ // That's the number of star crumbs in a weapon.
+ set @sc,2;
+
+ // That's the number of elemental property of the weapon.
+ set @ele,1;
+
+ // And that's the wacky formula that makes them into
+ // a single number.
+ set @card2,@ele+((@sc*5)<<8);
+
+ // That will make us an Adam's +2 VVS Ice Stiletto:
+
+ getitem2 1216,1,1,2,0,@card1,@card2,@card3,@card4;
+
+Experiment with the number of star crumbs - I'm not certain just how much will
+work most and what it depends on. The valid element numbers are:
+
+ 1 - Ice, 2 - Earth 3 - Fire 4 - Wind.
+
+You can, apparently, even create duplicates of the same pet egg with this
+command, creating a pet which is the same, but simultaneously exists in two
+eggs, and may hatch from either, although, I'm not sure what kind of a mess will
+this really cause.
+
+---------------------------------------
+*groupranditem <group id>;
+
+Returns the item_id of a random item picked from the group specified. The
+different groups and their group number are specified in db/item_group_db.txt
+
+When used in conjunction with other functions, you can get a random item. For
+example, for a random pet lure:
+
+getitem groupranditem(15),1;
+
+---------------------------------------
+
+*makeitem <item id>,<amount>,<X>,<Y>,"<map name>";
+*makeitem "<item name>",<amount>,<X>,<Y>,"<map name>";
+
+This command will create an item lying around on a specified map in the
+specified location.
+
+ itemid - Found in 'db/item_db.txt'
+ amount - Amount you want produced
+ X - The X coordinate
+ Y - The Y coordinate
+ map name - The map name.
+
+This item will still disappear just like any other dropped item. Like 'getitem',
+it also accepts an 'english name' field from the database and creates apples if
+the name isn't found.
+
+---------------------------------------
+
+*delitem <item id>,<amount>;
+*delitem "<item name>",<amount>;
+
+This command will take a specified amount of items from the invoking character.
+As all the item commands, this one uses the ID of the item found inside
+'db/item_db.txt'. The items are destroyed - there is no way an NPC can simply
+own items and have an inventory of them, other as by destroying and recreating
+them when needed.
+
+ delitem 502,10 // The person will lose 10 apples
+ delitem 617,1 // The person will lose 1 Old Violet Box
+
+It is always a good idea to to check if the player actually has the item before
+you take it from them, Otherwise, you could try to delete items which the
+players don't actually have, which won't fail and won't give an error message,
+but might open up ways to exploit your script.
+
+Like 'getitem' this command will also accept an 'english name' field from the
+database. If the name is not found, nothing will be deleted.
+
+---------------------------------------
+
+*delitem2 <item id>,<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<character ID>};
+*delitem2 "<Item name>",<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<character ID>};
+
+This command will take a specified amount of items from the invoking character.
+Check 'getitem2' to understand its expanded parameters.
+
+---------------------------------------
+
+*enable_items;
+*disable_items;
+
+These commands enable item usage while an npc is running. When enable_items is
+run, items can be used during scripts until disable_items is called.
+To avoid possible exploits, when enable_items is invoked, it will only enable
+item usage while running that script in particular. Note that if a different
+script also calls enable_items, it will override the last call (so you may
+want to call this command at the start of your script without assuming the
+effect is still in effect).
+
+---------------------------------------
+
+*viewpoint <action>,<x>,<y>,<point number>,<color>;
+
+This command will mark places on the mini map in the client connected to the
+invoking character. It uses the normal X and Y coordinates from the main map.
+The colors of the marks are defined using a hexidecimal number, same as the ones
+used to color text in 'mes' output, but are written as hexadecimal numbers in C.
+(They look like 0x<six numbers>.)
+
+Action is what you want to do with a point, 1 will set it, while 2 will clear
+it. Point number is the number of the point - you can have several. If more than
+one point is drawn at the same coordinates, they will cycle, which can be used
+to create flashing marks.
+
+ // This command will show a mark at coordinates X 30 Y 40, is mark number 1,
+ // and will be red.
+
+ viewpoint 1,30,40,1,0xFF0000;
+
+This will create three points:
+
+ viewpoint 1,30,40,1,0xFF0000;
+ viewpoint 1,35,45,2,0xFF0000;
+ viewpoint 1,40,50,3,0xFF0000;
+
+And this is how you remove them:
+
+ viewpoint 2,30,40,1,0xFF0000;
+ viewpoint 2,35,45,2,0xFF0000;
+ viewpoint 2,40,50,3,0xFF0000;
+
+The client determines what it does with the points entirely, the server keeps no
+memory of where the points are set whatsoever.
+
+---------------------------------------
+
+*countitem(<item id>)
+*countitem("<item name>")
+
+This function will return the number of items for the specified item ID that the
+invoking character has in the inventory.
+
+ mes "[Item Checker]";
+ mes "Hmmm, it seems you have "+countitem(502)+" apples";
+ close;
+
+Like 'getitem', this function will also accept an 'english name' from the
+database as an argument.
+
+If you want to state the number at the end of a sentence, you can do it by
+adding up strings:
+
+ mes "[Item Checker]";
+ mes "Hmmm, the total number of apples you are holding is "+countitem("APPLE");
+ close;
+
+---------------------------------------
+
+*countitem2(<item id>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>)
+*countitem2("<item name>",<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>)
+
+Expanded version of 'countitem' function, used for created/carded/forged items.
+
+This function will return the number of items for the specified item ID and
+other parameters that the invoking character has in the inventory.
+Check 'getitem2' to understand the arguments of the function.
+
+---------------------------------------
+
+*checkweight(<item id>,<amount>)
+*checkweight("<item name>",<amount>)
+
+This function will compute and return 1 if the total weight of a specified
+number of specific items does not exceed the invoking character's carrying
+capacity, and 0 otherwise. It is important to see if a player can carry the
+items you expect to give them, failing to do that may open your script up to
+abuse or create some very unfair errors.
+
+Like 'getitem', this function will also accept an 'english name' from the
+database as an argument.
+
+ checkweight(502,10) // 10 apples
+
+ if (checkweight(502,10) == 0 ) goto L_OverWeight;
+ getitem 502,10;
+ close;
+ L_OverWeight:
+ mes "Sorry you cannot hold this ammount of apples";
+ close;
+
+Or to put this another way:
+
+ if (checkweight("APPLE",10)) goto L_Getapples;
+ mes "Sorry you cannot hold this ammount of apples";
+ close;
+ L_Getapples:
+ getitem 502,10;
+ close;
+
+Both these examples have the same effect.
+
+---------------------------------------
+
+*readparam(<parameter number>)
+
+This function will return the basic stats of an invoking character, referred to
+by the parameter number. Instead of a number, you can use a parameter name if it
+is defined in "db/const.txt".
+
+For reference, in there these things are defined:
+
+StatusPoint, BaseLevel, SkillPoint, Class, Upper, Zeny, Sex, Weight, MaxWeight,
+JobLevel, BaseExp, JobExp, NextBaseExp, NextJobExp, Hp, MaxHp, Sp, MaxSp,
+BaseJob, Karma, Manner, bVit, bDex, bAgi, bStr, bInt, bLuk
+
+All of these also behave as variables, but don't expect to be able to just 'set'
+all of them - some will not work for various internal reasons.
+
+ // This would return how many status points you haven't spent yet
+ readparam(9)
+
+Using this particular information as a function call is not required. Just
+putting
+
+ StatusPoint
+
+will give you the same result, and some of these parameters work just like
+variables (i.e. you can 'set Zeny,100' to make the character have 100 zeny,
+destroying whatever zeny they had before, or 'set Zeny,Zeny+100' to give them
+100 zeny)
+
+You can also use this command to get stat values:
+
+ readparam(bVit)
+ if(readparam(bVit)<=77) goto L_End;
+ mes "Only people with over 77 Vit are reading this";
+L_End:
+ close;
+
+---------------------------------------
+
+*getcharid(<type>{,"<character name>"})
+
+This function will return a unique ID number of the invoking character, or, if a
+character name is specified, of that character.
+
+Type is the kind of associated ID number required:
+
+ 0 - Character ID number.
+ 1 - Party ID number.
+ 2 - Guild ID number.
+ 3 - Account ID number.
+
+For most purposes other than printing it, a number is better to have than a name
+(people do horrifying things to their character names).
+
+If the character is not in a party or not in a guild, the function will return 0
+if guild or party number is requested. If a name is specified and the character
+is not found, 0 is returned.
+
+If getcharid(0) returns a zero, the script got called not by a character and
+doesn't have an attached RID. Note that this will cause the map server to
+print "player not attached!" error messages, so it is preferred to use
+"playerattached" to check for the character attached to the script.
+
+if (getcharid(2)) mes "Only members of a guild are allowed beyond this point!";
+
+---------------------------------------
+
+*getpartyname(<party id>)
+
+This function will return the name of a party that has the specified ID number.
+If there is no such party ID, "null" will be returned.
+
+Lets say the ID of a party was saved as a global variable:
+
+ // This would return the name of the party from the ID stored in a variable
+ mes "You're in the '"+getpartyname($@var)"' party, I know!";
+
+---------------------------------------
+
+*getpartymember <party id>,[<type>];
+
+Thank you to HappyDenn for all this information.
+
+This command will finds all members of a specified party and returns their names
+(or character id or account id depending on the value of "type") into an array
+of temporary global variables. There's actually quite a few commands like this
+which will fill a special variable with data upon execution and not do anything
+else.
+
+Upon executing this,
+
+$@partymembername$[] is a global temporary stringarray which contains all the
+ names of these party members
+ (only set when type is 0 or not specified)
+
+$@partymembercid[] is a global temporary number array which contains the
+ character id of these party members.
+ (only set when type is 1)
+
+$@partymemberaid[] is a global temporary number array which contains the
+ account id of these party members.
+ (only set when type is 2)
+
+$@partymembercount is the number of party members that were found.
+
+The party members will (apparently) be found regardless of whether they are
+online or offline. Note that the names come in no particular order.
+
+Be sure to use $@partymembercount to go through this array, and not
+'getarraysize', because it is not cleared between runs of 'getpartymember'. If
+someone with 7 party members invokes this script, the array would have 7
+elements. But if another person calls up the NPC, and he has a party of 5, the
+server will not clear the array for you, overwriting the values instead. So in
+addition to returning the 5 member names, the 6th and 7th elements from the last
+call remain, and you will get 5+2 members, of which the last 2 don't belong to
+the new guy's party. $@partymembercount will always contain the correct number,
+(5) unlike 'getarraysize()' which will return 7 in this case.
+
+Example:
+
+ // get the character's party ID
+ getpartymember(getcharid(1));
+
+ // immediately copy $@partymembercount value to a new variable, since
+ // you don't know when 'getpartymember' will get called again for someone
+ // else's party, overwriting your global array.
+ set @partymembercount,$@partymembercount;
+
+ // copy $@partymembername array to a new array
+ copyarray @partymembername$[0],$@partymembername$[0],@partymembercount;
+
+ //list the party members in NPC dialog
+ set @count,0;
+ L_DisplayMember:
+ if(@count == @partymembercount) goto L_DisplayMemberEnd;
+ mes (@count + 1) + ". ^0000FF" + @partymembername$[@count] + "^000000";
+ set @count,@count+1;
+ goto L_DisplayMember;
+ L_DisplayMemberEnd:
+ close;
+
+---------------------------------------
+
+*getpartyleader <party id>,[<type>];
+
+This function returns some information about the given party-id's leader. When type is ommitted,
+the default information retrieved is Character name of the party leader. Possible types are:
+
+ 1: Leader account id
+ 2: Leader character id
+ 3: Leader's class
+ 4: Leader's current map index
+ 5: Leader's current level as stored on the party structure (may not be
+ current level if leader leveled up recently).
+
+If retrieval fails (leader not found or party does not exists), "null" is returned instead of character name,
+and -1 is returned for the other types.
+
+---------------------------------------
+*getguildname(<guild id>)
+
+This function returns a guild's name given an ID number. If there is no such
+guild, "null" will be returned;
+
+ // Would print what ever guild 10007 is, in my case this would return "AlcoROhics"
+ mes "The guild "+GetGuildName(10007)+" are all nice people.";
+
+ // This will do the same as above:
+ set @var,10007;
+ mes "We have some friends in "+GetGuildName(@var)+", you know.";
+
+This is used all over the WoE controlling scripts. You could also use it for a
+guild-based event.
+
+---------------------------------------
+
+*getguildmaster(<guild id>)
+
+This function return the name of the master of the guild which has the specified
+ID number. If there is no such guild, "null" will be returned.
+
+// Would return the guild master of guild 10007, whatever that might be.
+// In this example it would return "MissDjax" cause she owns "AlcoROhics" (10007)
+ mes getguildmaster(10007)+" runs "+getguildname(10007);
+
+Can be used to check if the character is the guildmaster of the specified guild.
+
+Maybe you want to make a room only guildmasters can enter:
+
+ set @GID,getcharid(2);
+ if(@GID==0) goto L_NoGuild;
+ if(strcharinfo(0)==getguildmaster(@GID)) goto L_GuildMaster;
+ mes "Sorry you dont own the guild you are in";
+ close;
+ L_NoGuild:
+ mes "Sorry you are not in a guild";
+ close;
+ L_GuildMaster:
+ mes "Welcome guild master of "+GetGuildName(@GID);
+ close;
+
+
+---------------------------------------
+*guildchangegm(<guild id>,<new master's name>)
+
+This function will change the Guild Master of a guild. The ID is the guild's
+id, and the new guildmaster's name must be passed.
+
+Returns 1 on success, 0 otherwise.
+
+---------------------------------------
+*getguildmasterid(<guild id>)
+
+This function will return the character ID number of the guildmaster of the
+guild specified by the ID. 0 if the character is not a guildmaster of any guild.
+
+---------------------------------------
+
+*strcharinfo(<type>)
+
+This function will return either the name, party name or guild name for the
+invoking character. Whatever it returns is determined by type.
+
+ 0 - Character's name.
+ 1 - The name of the party they're in if any.
+ 2 - The name of the guild they're in if any.
+
+If a character is not a member of any party or guild, an empty string will be
+returned when requesting that information.
+
+---------------------------------------
+
+*getequipid(<equipment slot>)
+
+This function returns the item ID of the item equipped in the equipment slot
+specified on the invoking character. If nothing is equpped there, it returns -1.
+Valid equipment slots are:
+
+1 - Upper head gear
+2 - Armor (Where you keep your Jackets and Robes)
+3 - What is in your Left hand.
+4 - What is in your Right hand.
+5 - The garment slot (Mufflers, Hoods, Manteaus)
+6 - What foot gear the player has on.
+7 - Accessory 1.
+8 - Accessory 2.
+9 - Middle Headgear (masks and glasses)
+10 - Lower Headgear (beards, some masks)
+
+Notice that a few items occupy several equipment slots, and if the character is
+wearing such an item, 'getequipid' will return it's ID number for either slot.
+
+Can be used to check if you have something equiped, or if you haven't got
+something equiped:
+
+ if(getequipid(1)==2234) goto L_WearingTiara;
+ mes "Come back when you have a Tiara on";
+ close;
+ L_WearingTiara:
+ mes "What a lovely Tiara you have on";
+ close;
+
+You can also use it to make sure people dont pass a point before removing an
+item totally from them. Let's say you dont want people to wear Legion Plate
+armor, but also dont want them to equip if after the check, you would do this:
+
+ if ((getequipid(2) == 2341) || (getequipid(2) == 2342) goto L_EquipedLegionPlate;
+ // the || is used as an or argument, there is 2341 and 2342 cause there are
+ // two different legion plate armors, one with a slot one without.
+ if ((countitem(2341) > 0) || (countitem(2432) > 0) goto L_InventoryLegionPlate;
+ mes "I will lets you pass";
+ close2;
+ warp "place.gat",50,50;
+ end;
+ L_EquipedLegionPlate:
+ mes "You are wearing some Legion Plate Armor, please drop that in your stash before continuing";
+ close;
+ L_InventoryLegionPlate:
+ mes "You have some Legion Plate Armor in your inventory, please drop that in your stash before continuing";
+ close;
+
+---------------------------------------
+
+*getequipname(<equpment slot>)
+
+This function will return the name of the item equipped in the specified
+equipment slot on the invoking character. Almost identical to 'getequipid', good
+for an NPC to state what your are wearing, or maybe saving as a string variable.
+See 'getequipid' for a full list of valid equipment slots.
+
+ if (getequipname(1)==0) goto L_No_HeadGear;
+ mes "So you are wearing a "+getequipname(1)+" on your head";
+ close;
+ L_No_HeadGear:
+ mes "You are not wearing any head gear";
+ close;
+
+---------------------------------------
+
+*getbrokenid(<number>)
+
+This function will search the invoking character's inventory for any broken
+items, and will return their item ID numbers. Since the character may have
+several broken items, 0 given as an argument will return the first one found, 1
+will return the second one, etc. Will return 0 if no such item is found.
+
+ // Let's see if they have anything broken:
+ if (getbrokenid(0)==0) goto Skip;
+ // They do, so let's print the name of the first broken item:
+ mes "Oh, I see you have a broken "+getitemname(getbrokenid(0))+" here!";
+ Skip:
+ mes "You don't have anything broken, quit bothering me.";
+
+---------------------------------------
+
+*repair <broken item number>;
+
+This command repairs a broken peice of equipment, using the same list of broken
+items as available through 'getbrokenid'.
+
+The official scripts seem to use the repair command as a function instead:
+'repair(<number>)' but it returns nothing on the stack. Probably only Valaris,
+who made it, can answer why is it so.
+
+---------------------------------------
+
+*getequipisequiped(<equipment slot>)
+
+This functions will return 1 if there is an equipment placed on the specified
+equipment slot and 0 otherwise. For a list of equipment slots
+see 'getequipid'. Function originally used by the refining NPCs:
+
+ if (getequipisequiped(1)) goto L_equipped;
+ mes "[Refiner]";
+ mes "Do you want me to refine your dumb head?";
+ close;
+ L_equipped:
+ mes "[Refiner]";
+ mes "That's a fine hat you are wearing there...";
+ close;
+
+
+---------------------------------------
+
+*getequipisenableref(<equipment slot>)
+
+Will return 1 if the item equipped on the invoking character in the specified
+equipment slot is refinable, and 0 if it isn't. For a list of equipment slots
+see 'getequipid'.
+
+ if (getequipisenableref(1)) goto L_Refine;
+ mes "[Refiner]";
+ mes "I can't refine this hat!...";
+ close;
+ L_Refine:
+ mes "[Refiner]";
+ mes "Ok I can refine this";
+ close;
+
+---------------------------------------
+
+*getequipisidentify(<equipment slot>)
+
+This function will return 1 if an item in the specified equipment slot is
+identified and 0 if it isn't. Since you can't even equip unidentified equipment,
+there's a question of whether it can actually end up there, and it will normally
+return 1 all the time if there is an item in this equipment slot.
+Which is kinda pointless.
+For a list of equipment slots see 'getequipid'.
+
+---------------------------------------
+
+*getequiprefinerycnt(<equipment slot>)
+
+Returns the current number of plusses for the item in the specified equipment
+slot. For a list of equipment slots see 'getequipid'.
+
+Can be used to check if you have reached a maximum refine value, default for
+this is +10:
+
+ if(getequiprefinerycnt(1) < 10) goto L_Refine_HeadGear;
+ mes "Sorry, it's not possible to refine hats better than +10";
+ close;
+ L_Refine_HeadGear:
+ mes "I will now upgrade your "+getequipname(1);
+
+---------------------------------------
+
+*getequipweaponlv(<equipment slot>)
+
+This function returns the weapon level for the weapon equipped in the specified
+equipment slot on the invoking character. For a list of equipment slots see
+'getequipid'.
+
+Only 3 (Left hand) and 4 (Right hand) normally make sense, since only weapons
+have a weapon level. You can, however, probably, use this field for other
+equippable custom items as a flag or something.
+If no item is equipped in this slot, or if it doesn't have a weapon level
+according to the database, 0 will be returned.
+
+ if(getequipweaponlv(4)==0) mes "Seems you dont have a weapon on";
+ if(getequipweaponlv(4)==1) mes "You are holding a lvl 1 weapon";
+ if(getequipweaponlv(4)==2) mes "You are holding a lvl 2 weapon";
+ if(getequipweaponlv(4)==3) mes "You are holding a lvl 3 weapon";
+ if(getequipweaponlv(4)==4) mes "You are holding a lvl 4 weapon";
+ if(getequipweaponlv(4)==5) mes "You are holding a lvl 5 weapon, hm, must be a custom design";
+
+Or for the left hand, cause it can hold a weapon or a shield:
+
+ if(getequipid(3)==0) goto L_NothingEquiped;
+ if(getequipweaponlv(3)==0) mes "You are holding a shield, so it doesnt have a level";
+ if(getequipweaponlv(3)==1) mes "You are holding a lvl 1 weapon";
+ if(getequipweaponlv(3)==2) mes "You are holding a lvl 2 weapon";
+ if(getequipweaponlv(3)==3) mes "You are holding a lvl 3 weapon";
+ if(getequipweaponlv(3)==4) mes "You are holding a lvl 4 weapon";
+ if(getequipweaponlv(3)==5) mes "You are holding a lvl 5 weapon, hm, must be a custom design";
+ close;
+ L_NothingEquiped:
+ mes "Seems you have nothing equiped";
+ close;
+
+---------------------------------------
+
+*getequippercentrefinery(<equipment slot>)
+
+This function calculates and returns the percent value chance to successfully
+refine the item found in the specified equipment slot of the invoking character
+by +1. The actual formula is beyond the scope of this document, however, it is
+calculated as if the character was a blacksmith trying to refine this particular
+weapon, and depends on lots and lots of stuff. For a list of equipment slots see
+'getequipid'.
+
+These values can be displayed for the player to see, or used to calculate the
+random change of a refine succeeding or failing and then going through with it
+(which is what the official NPC refinery scripts use it for)
+
+// This will find a random number from 0 - 99 and if that is equal to or more
+// than the value recoverd by this command it will go to L_Fail
+ if (getequippercentrefinery(3)<=rand(100)) goto L_Fail;
+
+---------------------------------------
+
+*successrefitem <equipment slot>;
+
+This command will refine an item in the specified equipment slot of the invoking
+character by +1. For a list of equipment slots see 'getequipid'. This command
+will not only add the +1, but also display a 'refine success' effect on the
+character and put appropriate messages into their chat window. It will also give
+the character fame points if a weapon reached +10 this way, even though these
+will only take effect for blacksmith who will later forge a weapon.
+
+The official scripts seem to use the 'successrefitem' command as a function
+instead: 'successrefitem(<number>)' but it returns nothing on the stack.
+This is since jAthena, so probably nobody knows for sure why is it so.
+
+---------------------------------------
+
+*failedrefitem <equipment slot>;
+
+This command will fail to refine an item in the specified equipment slot of the
+invoking character. The item will be destroyed. This will also display a 'refine
+failure' effect on the character and put appropriate messages into their chat
+window.
+
+The official scripts seem to use the 'failedrefitem' command as a function
+instead: 'failedrefitem(<number>)' but it returns nothing on the stack. This is
+since jAthena, so probably nobody knows for sure why is it so.
+
+
+---------------------------------------
+
+*cutin "<filename with no extension>",<position>;
+
+This command will display a picture stored in the GRF file in the client for the
+player.
+
+The files are taken from '\data\texture\A_A£AII’„AI«§\illust' directory in the
+GRF file. The filename must be given with no extension, '.bmp' is added by the
+client itself and you can't have any other picture format displayed as a cutin.
+The biggest one that comes with the client is 400x503 pixels, and the smallest
+is 303x493 pixels, it is not known how big a picture has to be before the client
+goes insane. Bright magenta (color FF00FF) is considered to be transparent in
+these pictures. You can easily add and alter them, but how to do this is outside
+of the scope of this document.
+
+The position determines just where on screen the picture will appear:
+ 0 - bottom left corner
+ 1 - bottom middle
+ 2 - bottom right corner
+ 3 - middle of screen in a movable window with an empty title bar.
+ 4 - middle of screen without the window header, but still movable.
+ 255 - will remove the cutin previously displayed.
+
+Giving an empty string for the filename and 255 for the position will remove all
+cutin pictures. Any other position value will not cause a script error but will
+cause the player's client to curl up and die. Only one cutin may be on screen at
+any given time, any new cutins will replace it.
+
+ // This will display the picture of the 7th kafra,
+ // the one in orange and the mini-skirt :P
+ cutin "kafra_7",2;
+
+ // This will remove the displayed picture.
+ cutin "Kafra_7",255;
+
+ // This will remove all pictures displayed.
+ cutin "",255;
+
+The client comes with those cutin pictures preinstalled which you can use:
+
+mets_alpha - This is a old fat man, holding a pipe, also with a pocket watch
+ and cane
+pay_soldier - Wanna take a wild guess, thats right, the Soldiers that appear in
+ Payon :D
+prt_soldier - Obvious
+ein_soldier - This guy looks cool, you've got to see him ;) This picture is for
+ the new Einbroch guards
+moc_soldier - Obvious
+gef_soldier - Obvious
+katsua01 - It is not certain who this girl is (There is no sprite coming with
+katsua02 - the client that seems to match very well) but she is believed to
+katsua03 - be an NPC in official Comodo. The three pictures give different
+ facial expressions.
+kafra_01 - Obvious
+kafra_02 - Obvious
+kafra_03 - Obvious
+kafra_04 - Obvious
+kafra_05 - Obvious
+kafra_06 - Obvious
+kafra_07 - Do I need to mention this one again ;)
+
+---------------------------------------
+
+*cutincard <item id>;
+
+This command will display a card picture as a cutin on the client connected to
+the invoking character, with position number 4 (middle of screen, movable, but
+no title bar). See 'cutin'. To remove this cutin, use the regular 'cutin'
+command. Unlike the 'cutin' command, it will not take a filename, but will
+instead take an item ID. It will then refer to the text file listing card images
+which is normally found within your server's copy of the GRF file to find the
+real (korean) filename.
+
+If your server doesn't have that text file in that GRF or can't read it, it
+probably won't work.
+
+---------------------------------------
+
+*statusup <stat>;
+
+This command will bump a specified stat of the invoking character up by one
+permanently. Stats are to be given as number, but you can use these constants to
+replace them:
+
+bStr - Strength
+bVit - Vitality
+bInt - Intelligence
+bAgi - Agility
+bDex - Dexterity
+bLuk - Luck
+
+---------------------------------------
+
+*statusup2 <stat>,<amount>;
+
+This command will bump a specified stat of the invoking character up by the
+specified amount permanently. The amount can be negative. See 'statusup'.
+
+ // This will decrease a character's Vit forever.
+ statusup bVit,-1;
+
+---------------------------------------
+
+*bonus <bonus type>,<amount>;
+*bonus2 <bonus type>,<amount>;
+*bonus3 <bonus type>,<amount>;
+*bonus4 <bonus type>,<amount>;
+
+These commands are meant to be used in item scripts. They will probably work
+outside item scripts, but the bonus will not persist for long. They, as
+expected, refer only to an invoking character.
+
+You can find the full list of possible bonuses and which command to use for each
+kind in 'doc/item_bonus.txt'.
+
+---------------------------------------
+
+*skill <skill id>,<level>{,<flag>};
+*addtoskill <skill id>,<level>{,<flag>}
+
+These commands will give the invoking character a specified skill. This is also
+used for item scripts.
+
+Level is obvious. Skill id is the ID number of the skill in question as per
+'db/skill_db.txt'. It is not known for certain whether this can be used to give
+a character a monster's skill, but you're welcome to try with the numbers given
+in 'db/mob_skill_db.txt'.
+
+Flag is 0 if the skill is given permanently (will get written with the character
+data) or 1 if it is temporary (will be lost eventually, this is meant for card
+item scripts usage.). The flag parameter is optional, and defaults to 1 in
+'skill' and to 2 in 'addtoskill'.
+
+Flag 2 means that the level parameter is to be interpreted as a stackable
+additional bonus to the skill level. If the character did not have that skill
+previously, they will now at 0+the level given.
+
+// This will permanently give the character Stone Throw (TF_THROWSTONE,152), at
+// level 1.
+ skill 152,1,0;
+
+---------------------------------------
+
+*guildskill <skill id>,<level>{,<flag>}
+
+This command will bump up the specified guild skill by the specified number of
+levels. This refers to the invoking character and will only work if the invoking
+character is a member of a guild AND it's guildmaster, otherwise no failure
+message will be given and no error will occur, but nothing will happen - same
+about the guild skill trying to exceed the possible maximum. The full list of
+guild skills is available in 'db/skill_db.txt', these are all the GD_ skills at
+the end.
+
+The flag parameter is currently not functional and it's a mystery of what it
+would actually do. (Though probably, like for character skills, it would allow
+temporary bumping.) Using this command will bump the guild skill up permanently.
+
+// This would give your character's guild one level of Approval (GD_APPROVAL ID
+// 10000). Notice that if you try to add two levels of Approval, or add
+// Approval when the guild already has it, it will only have one level of
+// Approval afterwards.
+ guildskill 10000,1,0;
+
+You might want to make a quest for getting a certain guild skill, make it hard
+enough that all the guild needs to help or something. Doing this for the Glory
+of the Guild skill, which allows your guild to use an emblem, is a good idea for
+a fun quest. (Wasting a level point on that is really annoying :D)
+
+---------------------------------------
+
+*getskilllv(<skill id>)
+
+This function returns the level of the specified skill that the invoking
+character has. If they don't have the skill, 0 will be returned. The full list
+of character skills is available in 'db/skill_db.txt'.
+
+There are two main uses for this function, it can check whether the character
+has a skill or not, and it can tell you if the level is high enough.
+
+Example 1:
+
+ f (getskilllv(152)) goto L_HasSkillThrowStone;
+ mes "You dont have Throw Stone";
+ close;
+ L_HasSkillThrowStone:
+ mes "You have got the skill Throw Stone";
+ close;
+
+Example 2:
+
+ if (getskilllv(28) >= 5) goto L_HasSkillHeallvl5orMore;
+ if (getskilllv(28) == 10) goto L_HasSkillHealMaxed;
+ mes "You heal skill is below lvl 5";
+ close;
+ L_HasSkillHeallvl6orMore:
+ mes "Your heal lvl is 5 or more";
+ close;
+ L_HasSkillHealMaxed:
+ mes "Your heal lvl has been maxed";
+ close;
+
+---------------------------------------
+
+*getgdskilllv(<guild id>,<skill id>)
+
+This function retirns the guild skills for the guild with a specified ID exactly
+as 'getskilllv' does.
+
+---------------------------------------
+
+*basicskillcheck()
+
+This function will return the state of the configuration option
+'basic_skill_check' in 'battle_athena.conf'. It returns 1 if the option is
+enabled and 0 if it isn't. If the 'basic_skill_check' option is enabled, which
+it is by default, characters must have a certain number of basic skill levels to
+sit, request a trade, use emoticons, etc. Making your script behave differently
+depending on whether the characters must actually have the skill to do all these
+things might in some cases be required.
+
+---------------------------------------
+
+*getgmlevel()
+
+This function will return the GM level of the account to which the invoking
+character belongs. If this is somehow executed from a console command, 99 will
+be returned, and 0 will be returned if the account has no GM level.
+
+This allows you to make NPC's only accessable for certain GM levels, or behave
+specially when talked to by GMs.
+
+ if (getgmlevel()) mes "What is your command, your godhood?";
+ if (getgmlevel()) goto Wherever;
+
+---------------------------------------
+
+*end;
+*break;
+
+This command will stop the execution for this particular script. The two
+versions are prefectly equivalent. It is the normal way to end a script which
+does not use 'mes'.
+
+ if (BaseLevel<=10) goto L_Lvl10;
+ if (BaseLevel<=20) goto L_Lvl20;
+ if (BaseLevel<=30) goto L_Lvl30;
+ if (BaseLevel<=40) goto L_Lvl40;
+ if (BaseLevel<=50) goto L_Lvl50;
+ if (BaseLevel<=60) goto L_Lvl60;
+ if (BaseLevel<=70) goto L_Lvl70;
+ L_Lvl10:
+ npctalk "Look at that you are still a n00b";
+ end;
+ L_Lvl20:
+ npctalk "Look at that you are getting better, but still a n00b";
+ end;
+ L_Lvl30:
+ npctalk "Look at that you are getting there, you are almost 2nd profession now right???";
+ end;
+ L_Lvl40:
+ npctalk "Look at that you are almost 2nd profession";
+ end;
+
+Without the use if 'end' it would travel through the labels until the end of the
+script. If you were lvl 10 or less, you would see all the speech lines, the use
+of 'end' stops this, and ends the script.
+
+Note: Break won't work anymore, it has been commented out in src/map/script.c:
+
+// {buildin_end,"break",""}, this might confuse advanced scripting support [Eoe]
+
+---------------------------------------
+
+*checkoption(<option number>)
+*checkoption1(<option number>)
+*checkoption2(<option number>)
+*setoption <option number>{,type};
+
+The 'setoption' series of functions check for a so-called option that is set on
+the invoking character. 'Options' are used to store status conditions and a lot
+of other non-permanent character data of the yes-no kind. For most common cases,
+it is better to use 'checkcart','checkfalcon','checkpeco' and other similar
+functions, but there are some options which you cannot get at this way. They
+return 1 if the option is set and 0 if the option is not set.
+
+Option numbers valid for the first (option) version of this command are:
+
+0x1 - Sight in effect.
+0x2 - Hide in effect.
+0x4 - Cloaking in effect.
+0x8 - Cart number 1 present.
+0x10 - Falcon present.
+0x20 - Peco Peco present.
+0x40 - GM Perfect Hide in effect.
+0x80 - Cart number 2 present.
+0x100 - Cart number 3 present.
+0x200 - Cart number 4 present.
+0x400 - Cart number 5 present.
+0x800 - Orc head present.
+0x1000 - The character is wearing a wedding sprite.
+0x2000 - Ruwach is in effect.
+0x4000 - Chasewalk in effect.
+
+Option numbers valid for the second version (opt1) of this command are:
+
+1 - Petrified.
+2 - Frozen.
+3 - Stunned.
+4 - Sleeping.
+6 - Petrifying (the state where you can still walk)
+
+Option numbers valid for the third version (opt2) of this command are:
+
+1 - Poisoned.
+2 - Cursed.
+4 - Silenced.
+8 - Signum Crucis (plays a howl-like sound effect, but otherwise no visible effects are displayed)
+16 - Blinded.
+
+Option numbers (except for opt1) are bitmasks - you can add them up to check
+ for several states, but the functions will return true if at least one of them
+ is in effect.
+
+'setoption' will set options on the invoking character. There are no second and
+third versions of this command, so you can only change the values in the first
+list (cloak, cart, ruwach, etc). if flag is 1 (default when omitted),
+the option will be added to what the character currently has; if 0, the option is removed.
+
+This is definitely not a complete list of available option flag numbers. Ask a
+core developer (or read the source: src/map/status.h) for the full list.
+
+---------------------------------------
+
+*setcart;
+*checkcart()
+
+This command will give the invoking character a cart. The cart given will be
+cart number 1 and will work regardless of whether the character is a merchant
+class or not.
+
+The accompanying function will return 1 if the invoking character has a cart
+(any kind of cart) and 0 if they don't.
+
+ if (checkcart()) mes "But you already have a cart!";
+
+---------------------------------------
+
+*setfalcon;
+*checkfalcon()
+
+This command will give the invoking character a falcon. The falcon will be there
+regardless of whether the character is a hunter or not. It will (probably) not
+have any useful effects for non-hunters though.
+
+The accompanying function will return 1 if the invoking character has a falcon
+and 0 if they don't.
+
+ if (checkfalcon()) mes "But you already have a falcon!";
+
+---------------------------------------
+
+*setriding;
+*checkriding()
+
+This command will give the invoking character a PecoPeco (if they are a Knight
+series class) or a GrandPeco (if they are a Crusader seriesclass). Unlike
+'setfalcon' and 'setcart' this will not work at all if they aren't of a class
+which can ride. This will work if the character doesn't have the riding skill,
+however.
+
+The accompanying function will return 1 if the invoking character is riding a
+bird and 0 if they don't.
+
+ if (checkriding()) mes "PLEASE leave your bird outside! No riding birds on the floor here!";
+
+---------------------------------------
+
+*savepoint "<map name>",<x>,<y>;
+*save "<map name>",<x>,<y>;
+
+This command saves a point that the invoking character will return to upon
+'return to save point' if dead or in some other cases. The two versions are
+equivalent. Map name, X coordinate and Y coordinate should be perfectly obvious.
+This ignores any and all map flags, and can make a character respawn where no
+teleportation is otherwise possible.
+
+ savepoint "place.gat",350,75;
+
+---------------------------------------
+
+*gettimetick(<tick type>)
+
+This function will return the system time in UNIX epoch time (if tick type is 2)
+or the time since the start of the current day in seconds if tick type is 1.
+Passing 0 will make it return the server's tick, which is a measurement in
+milliseconds used by the server's timer system. The server's tick is an
+unsigned int which loops every ~50 days.
+
+Just in case you don't know, UNIX epoch time is the number of seconds elapsed
+since 1st of January 1970, and is useful to see, for example, for how long the
+character has been online with OnPCLoginEvent and OnPCLogoutEvent, which could allow
+you to make an 'online time counted for conviction only' jail script.
+
+---------------------------------------
+
+*gettime(<type>)
+
+This function will return specified information about the current system time.
+
+1 - Seconds (of a minute)
+2 - Minutes (of an hour)
+3 - Hour (of a day)
+4 - Week day (0 for Sunday, 6 is Saturday)
+5 - Day of the month.
+6 - Number of the month.
+7 - Year.
+8 - Day of the year.
+
+It will only return numbers.
+
+ if (gettime(4)==6) mes "It's a Saturday. I don't work on Saturdays.";
+
+---------------------------------------
+
+*gettimestr(<format string>,<max length>)
+
+This function will return a string containing time data as specified by the
+format string.
+
+This uses the C function 'strfmtime', which obeys special format characters. For
+a full description see, for example, the description of 'strfmtime' at
+http://www.delorie.com/gnu/docs/glibc/libc_437.html
+All the format characters given in there should properly work.
+Max length is the maximum length of a time string to generate.
+
+The example given in eAthena sample scripts works like this:
+
+ mes gettimestr("%Y-%m/%d %H:%M:%S",21);
+
+This will print a full date and time like 'YYYY-MM/DD HH:MM:SS'.
+
+---------------------------------------
+
+*openstorage;
+
+This will open a character's Kafra storage window on the client connected to the
+invoking character. It does not check wherever it is run from, so you can allow
+any feasible NPC to open a kafra storage. (It's not certain whether this works
+in item scripts, but if it does, it could be interesting.)
+
+The storage window might not open if a message box or a trade deal is present on
+screen already, so you should at least make sure the message box is closed
+before you open storage.
+
+ mes "I will now open your stash for you";
+ close2;
+ openstorage;
+ end;
+
+---------------------------------------
+
+*guildopenstorage()
+
+This function works the same as 'openstorage' but will open a guild storage
+window instead for the guild storage of the guild the invoking character belongs
+to. This is a function because it returns a value - 0 if the guild storage was
+opened successfully and 1 if it wasn't. (Notice, it's a ZERO upon success.)
+Since guild storage is only accessible to one character at one time, it may fail
+if another character is accessing the guild storage at the same time.
+
+This will also fail and return 2 if the character does not belong to any guild.
+
+---------------------------------------
+
+*itemskill <skill id>,<skill level>,"<skill name to show>";
+
+This is a command meant for item scripts to replicate single-use skills. It will
+not work properly in NPC scripts a lot of the time because casting a skill is
+not allowed when there is a message window or menu on screen. If there isn't one
+cause you've made sure to run this when they already closed it, it should work
+just fine and even show a targeting pointer if this is a targeting skill.
+
+// When you use Anodyne, you will cast Endure(8) level 1,
+// and "Endure" will appear above your head as you use it.
+605,Anodyne,Anodyne,11,2000,0,100,,,,,10477567,2,,,,,{ itemskill 8,1,"Endure"; },{}
+
+
+---------------------------------------
+
+*produce <item level>;
+
+This command will open a crafting window on the client connected to the invoking
+character. The 'item level' is a number which determines what kind of a crafting
+window will pop-up. You can see the full list of such item levels in
+'db/produce_db.txt' which determines what can actually be produced.
+The window will not be empty only if the invoking character can actually produce
+the items of that type and has the appropriate raw materials in their inventory.
+
+Valid item levels are:
+
+ 1 - Level 1 Weapons
+ 2 - Level 2 Weapons
+ 3 - Level 3 Weapons
+ 16 - Blacksmith's Stones and Metals
+ 32 - Alchemist's Potions
+ 64 - Whitesmith's Coins
+ 123 - Whitesmith's Nuggets
+ 256 - Assassin Cross's Deadly Poison
+
+---------------------------------------
+
+*monster "<map name>",<x>,<y>,"<name to show>",<mob id>,<amount>{,"<event label>"};
+*areamonster "<map name>",<x1>,<y1>,<x2>,<y2>,"<monster name>",<amount>{,"<event label>"};
+
+This command will spawn a monster on the specified coordinates on the specified
+map. If the script is invoked by a character, a special map name, "this", will
+be recognised to mean the name of the map the invoking character is located at.
+This command works fine in the item scripts.
+
+The same command arguments mean the same things as described above in the
+beginning of this document when talking about permanent monster spawns. Monsters
+spawned in this manner will not respawn upon being killed.
+
+Unlike the permanent monster spawns, if the mob id is -1, a random monster will
+be picked from the entire database according to the rules configured in the
+server for dead branches. This will work for all other kinds of non-permanent
+monster spawns.
+
+The only very special thing about this command is an event label, which is an
+optional parameter. This label is written like '<NPC object name>::<label name>'
+and upon the monster being killed, it will execute the script inside of the
+specified NPC object starting from the label given. The RID of the player
+attached at this execution will be the RID of the killing character.
+
+ monster "place.gat",60,100,"Poring",1002,1,"NPCNAME::OnLabel";
+
+If you do not specify any event label, a label in the NPC object that ran this
+command, called 'OnMyMobDead:' will execute anyway, if present.
+
+The coordinates of 0,0 will spawn the monster on a random place on the map.
+
+The 'areamonster' command works much like the 'monster' command and is not
+significantly different, but spawns the monsters within a square defined by
+x1/y1-x2/y2.
+
+Simple monster killing script:
+
+ <Normal NPC object definition. Let's assume you called him NPCNAME.>
+ mes "[Summon Man]";
+ mes "Want to start the kill?";
+ next;
+ menu "Yes",L_Yes,"No",-;
+ mes "[Summon Man]";
+ mes "Come back later";
+ close;
+ L_Yes:
+ monster "prontera.gat",0,0,"Quest Poring",1002,10,"NPCNAME::OnPoringKilled";
+ // By using 0,0 it will spawn them in a random place.
+ mes "[Summon Man]";
+ mes "Now go and kill all the Poring I summoned";
+ // He summoned ten.
+ close;
+ L_PoringKilled:
+ set $PoringKilled,$PoringKilled+1;
+ if ($PoringKilled==10) goto L_AllDead;
+ end;
+ L_AllDead:
+ announce "Summon Man: Well done all the poring are dead",3;
+ set $PoringKilled,0;
+ end;
+
+For more good examples see just about any official 2-1 or 2-2 job quest script.
+
+---------------------------------------
+
+*killmonster "<map name>","<event label>";
+
+This command will kill all monsters that were spawned with 'monster' or
+'addmonster' and have a specified event label attached to them. Commonly used to
+get rid of remaining quest monsters once the quest is complete.
+
+If the label is given as "All", all monsters which have their respawn times set
+to -1 (like all the monsters summoned with 'monster' or 'areamonster' script
+command, and all monsters summoned with GM commands, but no other ones - that
+is, all non-permanent monsters) on the specified map will be killed regardless
+of the event label value.
+
+---------------------------------------
+
+*killmonsterall "<map name>";
+
+This command will kill all monsters on a specified map name, regardless of how
+they were spawned or what they are.
+
+---------------------------------------
+*clone "<map name>",<x>,<y>,"<event>",<char id>{,<master_id>{,<mode>{,<flag>,<duration>}}}
+
+This command creates a monster which is a copy of another player. The first
+four arguments serve the same purpose as in the monster script command, The
+<char id> is the character id of the player to clone (player must be online).
+If <master id> is given, the clone will be a 'slave/minion' of it. Master_id
+must be a character id of another online player.
+
+The mode can be specified to determine the behaviour of the clone, it's
+values are the same as the ones used for the mode field in the mob_db. The
+default mode is aggressive, assists, can move, can attack.
+
+Flag can be either zero or one currently. If zero, the clone is a normal
+monster that'll target players, if one, it is considered a summoned monster,
+and as such, it'll target other monsters. Defaults to zero.
+
+The duration specifies how long the clone will live before it is auto-removed.
+Specified in seconds, defaults to no limit (zero).
+
+Returned value is the monster ID of the spawned clone. If command fails,
+returned value is zero.
+
+---------------------------------------
+
+*doevent "<NPC object name>::<event label>";
+
+This command will start a new execution thread in a specified NPC object at the
+specified label. The execution of the script running this command will not stop.
+No parameters may be passed with a doevent call.
+
+The script of the NPC object invoked in this manner will run as if it's been
+invoked by the RID that was active in the script that issued a 'doevent'.
+
+ place.gat,100,100,1%TAB%script%TAB%NPC%TAB%53,{
+ mes "This is what you will see when you click me";
+ close;
+ Label:
+ mes "This is what you will see if the doevent is activated";
+ close;
+ }
+
+ ....
+
+ doevent "NPC::Label";
+
+---------------------------------------
+
+*donpcevent "<event label>";
+
+This command is kinda confusing cause it performs in two completely different
+ways.
+
+If the event label is phrased like "::<label name>", all NPC objects that have a
+specified label in them will be invoked as if by a 'doevent', but no RID
+whatsoever will be attached while they execute.
+
+Otherwise, if the label is given as "<NPC name>::<label name>", a label within
+the NPC object that runs this command will be called, but as if it was running
+inside another, specified NPC object. No RID will be attached to it in this case
+either.
+
+This can be used for making another NPC react to an action that you have done
+with the NPC that has this command in it, i.e. show an emotion, or say
+something.
+
+ place.gat,100,100,1%TAB%script%TAB%NPC%TAB%53,{
+ mes "Hey NPC2 copy what I do";
+ close2;
+ set @emo, rand(1,30);
+ donpcevent "NPC2::Emo";
+ Emo:
+ emotion @emo;
+ end;
+ }
+
+ place.gat,102,100,1%TAB%script%TAB%NPC2%TAB%53,{
+ mes "Hey NPC copy what I do";
+ close2;
+ set @emo, rand(1,30);
+ donpcevent "NPC::Emo";
+ Emo:
+ emotion @emo;
+ end;
+ }
+
+This will make both NPC perform the same random emotion from 1 to 30, and the
+emotion will appear above each of their heads.
+
+---------------------------------------
+
+*addtimer <ticks>,"<NPC object name>::<label>";
+*deltimer "<NPC object name>::<event label>";
+*addtimercount <ticks>,"<NPC object name>::<event label>";
+
+These commands will create, destroy, and delay a countdown timer - 'addtimer' to
+create, 'deltimer' to destroy and 'addtimercount' to delay it by the specified
+number of ticks. For all three cases, the event label given is the identifier of
+that timer.
+
+When this timer runs out, a new execution thread will start in the specified NPC
+object at the specified label. If no such label is found in the NPC object, it
+will run as if clicked. In either case, no RID will be attached during
+execution.
+
+The ticks are given in 1/1000ths of a second.
+
+---------------------------------------
+
+*stoptimer;
+*inittimer;
+*enablearena;
+*disablearena;
+*cmdothernpc "<npc name?>","<command?>";
+
+This set of commands is marked as added by someone going under the nickname
+'RoVeRT', as mentioned the source code comments, and has to do with timers and
+scheduling working entirely unlike any other timing commands. It is not certain
+that they actually even work properly anymore, and most of these read no
+arguments, though the 'inittimer'/'stoptimer' pair of commands has to do
+something with an 'OnTimer' label and will probably invoke it and 'cmdothernpc'
+will execute starting with the label 'OnCommand'. Whatever they actually do, the
+other commands can most likely do it better. The two arena commands definitely
+do not do anything useful at all.
+
+None of these commands are used in any scripts bundled with eAthena. Most
+probably they are deprecated and left in by mistake.
+
+Unless RoVeRT can be found and asked to clarify what these were made for, that
+is.
+
+---------------------------------------
+
+*initnpctimer{ "<NPC object name>"};
+*stopnpctimer{ "<NPC object name>"};
+*startnpctimer{ "<NPC object name>"};
+*setnpctimer <tick>{,"<NPC object name>"};
+*getnpctimer(<type of information>{,"<NPC object name>"});
+*attachnpctimer {"<character name>"};
+*detachnpctimer {"<NPC object name>"};
+
+This set of commands and functions will create and manage an NPC-object based
+timer. The NPC object may be declared by name, or the name in all cases may be
+omitted, in that case this timer will be based in the object the current script
+is running in.
+
+Why is it actually part of an NPCs structure we aren't sure, but it is, and
+while 'addtimer'/'deltimer' commands will let you have many different timers
+referencing different labels in the same NPC, one each and each with their own
+countdown, 'initnpctimer' can only have one per NPC object. But it can trigger
+many labels and it can let you know how many were triggered already and how many
+still remain.
+
+This timer is counting up from 0 in ticks of 1/1000ths of a second each. Upon
+creating this timer, the execution will not stop, but will happily continue
+onward. The timer will then invoke new execution threads at labels
+"OnTimer<time>:" in the NPC object it is attached to.
+
+To create the timer, use the 'initnpctimer', which will start it running.
+'stopnpctimer' will pause the timer, without clearing the current tick, while
+'startnpctimer' will let the paused timer continue.
+
+It is not quite clear whether the new invocations will always have a RID.
+Apparently, the RID that was in effect when the timer was initialised will still
+be attached to these executions in some cases, but it's not quite clear -
+experiment with RID-dependent commands, like 'mes', and tell us what happens and
+who gets the message, if anyone.
+
+Even if they don't have a RID by default, 'attachnpctimer' will allow you to
+explicitly attach a character's RID to the timer, which will make them the
+target for all character-referencing commands and functions, not to mention
+variables. 'detachnpctimer' will make the RID zero, making all character-
+referencing functions fail with an error.
+
+'setnpctimer' will explicitly set the timer to a given tick. To make it useful,
+you will need the 'getnpctimer' function, which the type of information argument
+means:
+
+ 0 - Will return the current tick count of the timer.
+ 1 - Will return 1 if there are remaining "OnTimer<ticks>:" labels in the
+ specified NPC waiting for execution.
+ 2 - Will return the number of times the timer has triggered an "OnTimer<tick>:"
+ label in the specified NPC.
+
+Example 1:
+
+ <NPC Header> {
+ initnpctimer;
+ npctalk "I cant talk right now, give me 10 seconds";
+ end;
+ OnTimer5000:
+ npctalk "Ok 5 seconds more";
+ end;
+ OnTimer6000:
+ npctalk "4";
+ end;
+ OnTimer7000:
+ npctalk "3";
+ end;
+ OnTimer8000:
+ npctalk "2";
+ end;
+ OnTimer9000:
+ npctalk "1";
+ end;
+ OnTimer10000:
+ stopnpctimer;
+ mes "[Man]";
+ mes "Ok we can talk now";
+ }
+
+Example 2:
+
+ OnTimer15000:
+ set $quote,rand(5);
+ if($quote == 0) goto Lquote0;
+ if($quote == 1) goto Lquote1;
+ if($quote == 2) goto Lquote2;
+ if($quote == 3) goto Lquote3;
+ if($quote == 4) goto Lquote4;
+ Lquote0:
+ npctalk "If 0 is randomly picked you will see this";
+ setnpctimer 0;
+ end;
+ Lquote1:
+ npctalk "If 1 is randomly picked you will see this";
+ setnpctimer 0;
+ end;
+ Lquote2:
+ npctalk "If 2 is randomly picked you will see this";
+ setnpctimer 0;
+ end;
+ Lquote3:
+ npctalk "If 3 is randomly picked you will see this";
+ setnpctimer 0;
+ end;
+ Lquote4:
+ npctalk "If 4 is randomly picked you will see this";
+ setnpctimer 0;
+ end;
+
+ // This OnInit label will run when the script is loaded, so that the timer
+ // is initialised immediately as the server starts. It is dropped back to 0
+ // every time the NPC says something, so it will cycle continiously.
+ OnInit:
+ initnpctimer;
+ end;
+
+Example 3:
+
+ mes "[Man]";
+ mes "I have been waiting "+(getnpctimer(0)/1000)+" seconds for you";
+ // we divide the timer returned by 1000 cause it will be displayed in
+ // milliseconds otherwise
+ close;
+
+Example 4:
+
+ mes "[Man]";
+ mes "Ok I will let you have 30 sec more";
+ close2;
+ setnpctimer (getnpctimer(0)-30000);
+ // Notice the 'close2'. If there were a 'next' there the timer would be
+ // changed only after the player pressed the 'next' button.
+ end;
+
+---------------------------------------
+
+*announce "<text>",<flag>{,<color>}
+
+This command will broadcast a message to all or most players, similar to
+@kami/@kamib GM commands.
+
+The region the broadcast is heard in and the color the message will come up as
+will be determined by the flags:
+
+ announce "This will be shown to everyone at all in yellow.",0;
+
+The flag values are coded as constants in db/const.txt to make them easier to use:
+- bc_all: Broadcast message is sent server-wide
+- bc_map: Message is sent to everyone in the same map
+- bc_area: Message is sent to players in the vecinity of the source.
+- bc_self: Message is sent only to current player.
+
+- bc_npc: Broadcast source is the npc, not the player attached to the script
+ (useful when a player is not attached or the message should be sent to those
+ nearby the npc)
+
+- bc_yellow: The default is to send broadcasts in yellow color.
+- bc_blue: Alternate broadcast is displayed in blue color.
+
+The optional parameter, color, allows usage of broadcasts in any custom color.
+The color parameter is a single number which can be in hexadecimal notation.
+For example:
+ announce "This will be shown to everyone at all in yellow.",bc_all,0xFFFF00;
+Will display a global announce in yellow. The color format is in RGB (0xRRGGBB).
+
+Using this for private messages to players is probably not that good an idea,
+but it can be used instead in NPCs to "preview" an announce.
+
+ // This will be a private message to the player using the NPC that made the
+ // annonucement
+ announce "This is my message just for you",bc_blue|bc_self;
+
+ // This will be shown on everyones screen that is in sight of the NPC.
+ announce "This is my message just for you people here",bc_area;
+
+---------------------------------------
+
+*mapannounce "<map name>","<text>",<flag>[,<color>];
+
+This command will work like 'announce' but will only broadcast to characters
+currently residing on the specified map. The flag and optional color
+parameters are the same as in 'announce', even though the only ones that make
+sense are the color related ones.
+
+---------------------------------------
+
+*areaannounce "<map name>",<x1>,<y1>,<x2>,<y2>,"<text>",<flag>[,<color>];
+
+This command works like 'announce' but will only broadcast to characters
+residing in the specified x1/y1-x2/y2 square on the map given. The flags and
+color parameter given are the same as in 'announce', but only the color
+related ones have effect.
+
+ areaannounce "prt_church.gat",0,0,350,350,"God's in his heaven, all right with the world",0;
+
+---------------------------------------
+
+*getusers(<type>)
+
+This function will return a number of users on a map or the whole server. What
+it returns is specified by Type.
+
+Type is a bitmask, add up to get the effects you want:
+
+ 8 - This will count all characters on the same map as the current NPC.
+ (By default, it will count people on the same map as the character)
+ 7 - Return the amount of players for the entire server.
+ (By default, only the players on the map will be counted.)
+
+So 'getusers(0)' will return the number of characters on the same map as the
+invoking character, while 'getusers(7)' will give the count for entire server.
+
+---------------------------------------
+
+*getmapusers("<map name>")
+
+This function will return the number of users currently located on the specified
+map.
+
+Currently being used in the PVP scripts to check if a PVP room is full of not,
+if the number returned it equal to the maximum allowed it will not let you
+enter.
+
+---------------------------------------
+
+*getareausers("<map name>",<x1>,<y1>,<x2>,<y2>)
+
+This function will return the count of connected characters which are located
+within the specified area - an x1/y1-x2/y2 square on the specified map.
+
+This is useful for maps that are split into many buildings, such as all the
+"*_in.gat" maps, due to all the shops and houses.
+
+---------------------------------------
+
+*getareadropitem("<map name>",<x1>,<y1>,<x2>,<y2>,<item>)
+
+This function will count all the items with the specified ID number lying on the
+ground on the specified map within the x1/y1-x2/y2 square on it and return that
+number.
+
+This is the only function around where a parameter may be either a string or a
+number! If it's a number, it means that only the items with that item ID number
+will be counted. If it is a string, it is assumed to mean the 'english name'
+field from the item database. If you give it an empty string, or something that
+isn't found from the item database, it will count items number '512' (apples).
+
+---------------------------------------
+
+*disablenpc "<NPC object name>";
+*enablenpc "<NPC object name>";
+
+These two commands will disable and enable, respectively, an NPC object
+specified by name. The disabled NPC will disappear from sight and will no longer
+be triggerable in the normal way. It is not clear whether it will still be
+accessible through 'donpcevent' and other triggering commands, but it probably
+will be. You can disable even warp NPCs if you know their object names, which is
+an easy way to make a map only accessible through walking half the time. Then
+you 'enablenpc' them back.
+
+You can also use these commands to create the illusion of an NPC switching
+between several locations, which is often better than actually moving the NPC -
+create one NPC object with a visible and a hidden part to their name, make a few
+copies, and then disable all except one.
+
+---------------------------------------
+
+*hideonnpc "<NPC object name>";
+*hideoffnpc "<NPC object name>";
+
+These commands will make the NPC object specified display as hidden/visible,
+even though not actually disabled per se. Hidden as in thief Hide skill, but
+unfortunately, not detectable by Ruwach or Sight.
+
+As they are now, these commands are pointless, it is suggested to use
+'disablenpc'/'enablenpc', because these two commands actually unload the NPC
+sprite location and other accompanying data from memory when it is not used.
+However, you can use these for some quest ideas (such as cloaking npcs talking
+while hidden then revealing.... you can wonder around =P
+
+---------------------------------------
+
+*sc_start <effect type>,<ticks>,<extra argument>{,<target ID number>};
+*sc_start2 <effect type>,<ticks>,<extra argument>,<percent chance>{,<target ID number>};
+*sc_start4 <effect type>,<ticks>,<value 1>,<value 2>,<value 3>,<value 4>{,<target ID number>};
+*sc_end <effect type>{,<target ID number>};
+
+These command bestow a status effect on the invoking character. This command is
+used a lot in the item scripts.
+
+ // This would poison them for 10 min
+ sc_start SC_Poison,600000,0;
+
+Effect type is a number of effect, 'db/const.txt' lists the common (mostly
+negative) status effect types as constants, starting with 'SC_'. You can also
+use this to give someone an effect of a player-cast spell:
+
+ // This will bless someone as if with Bless 10:
+ sc_start 10,240000,10;
+
+Extra argument's meaning differs depending on the effect type, for most effects
+caused by a player skill the extra argument means the level of the skill that
+would have been used to create that effect, for others it might have no meaning
+whatsoever. You can actually bless someone with a 0 bless spell level this way,
+which is fun, but weird.
+
+The target ID number, if given, will cause the status effect to appear on a
+specified character, instead of the one attached to the running script. This has
+not been properly tested.
+
+'sc_start2' is perfectly equivalent, but unlike 'sc_start', a status change
+effect will only occur with a specified percentage chance. 10000 given as the
+chance is equivalent to a 100% chance, 0 is a zero.
+
+'sc_start4' is just like sc_start, however it takes four parameters for the
+status change instead of one. What these values are depends on the status
+change in question. For example, elemental armor defense takes the following
+four values:
+- val1 is the first element, val2 is the resistance to the element val1.
+- val3 is the second element, val4 is the resistance to said element.
+eg: sc_start4 SC_DefEle,60000,Ele_Fire,20,Ele_Water,-15;
+
+'sc_end' will remove a specified status effect.
+
+You can see the full list of status effects caused by skills in
+'src/map/status.h' - they are currently not fully documented, but most of that
+should be rather obvious.
+
+---------------------------------------
+
+*getscrate(<effect type>,<base rate>{,<target ID number>})
+
+This function will return the chance of a status effect affecting the invoking
+character, in percent, modified by the their current defense against said
+status. The 'base rate' is the base chance of the status effect being inflicted,
+in percent.
+
+ if (rand(100) > getscrate(Eff_Blind, 50)) goto BlindHimNow;
+
+You can see the full list of available effect types you can possibly inflict in
+'db/const.txt' under 'Eff_'.
+
+It is pretty certain that addressing the target by an ID number will not
+currently work due to a bug.
+
+---------------------------------------
+
+*callshop "<shop name>",<flag>;
+
+This command forces an npc shop to be invoked as if the player clicked on it.
+With normal shops it will not work unless the player is within clicking range,
+but the real use of this script command is together with "invisible shops",
+which are specified in the same way an invisible npc would be specified.
+For example, a generic invisible tool shop could be:
+
+- shop INVISIBLE_SHOP -,611:-1,1750:-1,501:-1,502:-1,503:-1,504:-1,506:-1
+
+Which players cannot click on, but can be invoked using:
+
+callshop "INVISIBLE_SHOP", 0;
+
+The flag values are: 1 invokes the buying window, 2 invokes the selling
+window, any other value invokes the buy/sell dialogue.
+
+The function returns 1 on success, and the script is not automatically
+closed, so be careful to not do any item trading on the same script to prevent
+possible exploits (if possible, use close or close2 before invoking the shop
+itself).
+
+---------------------------------------
+
+*debugmes "<message>";
+
+This command will send the message to the server console (map-server window). It
+will not be displayed anywhere else.
+
+ debugmes strcharinfo(0)+" has just done this that and the other";
+ // You would see in the map-server window "NAME has just done this that and
+ // the other"
+
+---------------------------------------
+
+*pet <pet id>;
+
+This command is used in all the item scripts for taming items. Running this
+command will make the pet catching cursor appear on the client connected to the
+invoking character, usable on the monsters with the specified pet ID number. It
+will still work outside an item script.
+
+A full list of pet IDs can be found inside 'db/pet_db.txt'
+
+---------------------------------------
+
+*bpet;
+
+This command opens up a pet hatching window on the client connected to the
+invoking character. It is used in item script for the pet incubators and will
+let the player hatch an owned egg. If the character has no eggs, it will just
+open up an empty incubator window.
+This is still usable outside item scripts.
+
+---------------------------------------
+
+*resetlvl <action type>;
+
+This is a character reset command, meant mostly for rebirth script supporting
+Advanced jobs, which will reset the invoking character's stats and level
+depending on the action type given. Valid action types are:
+
+ 1 - Base level 1, Job level 1, 0 skill points, 0 base xp, 0 job xp, wipes the
+ status effects, sets all stats to 1. If the new job is 'Novice High', give
+ 100 status points, give First Aid and Play Dead skills.
+ 2 - Base level 1, Job level 1, 0 skill points, 0 XP/JXP. Skills and attribute
+ values are not altered.
+ 3 - Base level 1, base xp 0. Nothing else is changed.
+ 4 - Job level 1, job xp 0. Nothing else is changed.
+
+In all cases it will also unequip everything the character has on.
+
+Even though it doesn't return a value, it is used as a function in the official
+rebirth scripts. Ask AppleGirl why.
+
+---------------------------------------
+
+*resetstatus;
+
+This is a character reset command, which will reset the stats on the invoking
+character and give back all the stat points used to raise them previously.
+Nothing will happen to any other numbers about the character.
+
+Used in reset NPC's (duh!)
+
+---------------------------------------
+
+*resetskill;
+
+This command takes off all the skill points on the invoking character, so they
+only have Basic Skill blanked out (lvl 0) left, and returns the points for them
+to spend again. Nothing else will change but the skills. Quest skills will also
+reset if 'quest_skill_reset' option is set to Yes in 'battle_athena.conf'. If
+the 'quest_skill_learn' option is set in there, the points in the quest skills
+will also count towards the total.
+
+Used in reset NPC's (duh!)
+
+---------------------------------------
+
+*changebase <job ID number>;
+
+This will change the appearance of the invoking character to that of a specified
+job class. Nothing but appearance will change. This command is used in item
+scripts for "Wedding Dress" and "Tuxedo" so the character like job 22, which is
+the job number of the wedding sprites.
+
+It would be entered in the equip bonus section of an item
+
+2338,Wedding_Dress,Wedding Dress,5,43000,,500,,0,,0,119529470,7,0,16,,0,1,0,{ bonus bMdef,15; changebase 22; }
+
+This command only works when inside item scripts.
+
+---------------------------------------
+
+*changesex;
+
+This command will change the gender for the attached character's account. If it
+was male, it will become female, if it was female, it will become male. The
+change will be written to the character server, but there is no way to send this
+information to the client, so the player will continue to see their character as
+the gender it previously was. What the other players will see before the
+relogin is not clear.
+
+If the character currently connected when this command was invoked was a
+Dancer/Gypsy or Bard/Clown, they will become a Swordman upon 'changesex'.
+Whatever happens to their skills is not clear. Whatever happens if another
+character on the same account was a gender-specific class is not clear either,
+but it's likely that the client will have serious issues with that, since no
+other characters on the same account will get altered.
+
+There's good reasons to be very careful when using this command.
+
+---------------------------------------
+
+*waitingroom "<chatroom name>",<limit>{,<event label>,<trigger>};
+
+This command will create a chat room, owned by the NPC object running this
+script and displayed above the NPC sprite.
+The maximum length of a chatroom name is 60 letters.
+
+The limit is the maximum number of people allowed to enter the chat room. If the
+optional event and trigger parameters are given, the event label
+("<NPC object name>::<label name>") will be invoked as if with a 'doevent' upon
+the number of people in the chat room reaching the given triggering amount.
+
+It's funny, but for compatibility with jAthena, you can swap the event label and
+the trigger parameters, and it will still work.
+
+// The NPC will just show a box above its head that says "Hello World", clicking
+// it will do nothing, since the limit is zero.
+ waitingroom "Hello World",0;
+
+// The NPC will have a box above its head, it will say "Disco - Waiting Room"
+// and will have 8 waiting slots. Clicking this will enter the chat room, where
+// the player will be able to wait until 8 people accumulate. Once this happens,
+// it will cause the NPC "Bouncer" run the label "OnStart"
+
+ waitingroom "Disco - Waiting Room",8,"Bouncer::OnStart",8;
+
+Creating a waiting room does not stop the execution of the script and it will
+continue to the next line.
+
+For more examples see the 2-1 and 2-2 job quest scripts which make extensive use
+of waiting rooms.
+
+---------------------------------------
+
+*delwaitingroom {"<NPC object name"};
+
+This command will delete a waiting room. If no parameter is given, it will
+delete a waiting room attached to the NPC object running this command, if it is,
+it will delete a waiting room owned by another NPC object. This is the only way
+to get rid of a waiting room, nothing else will cause it to disappear.
+
+It's not clear what happens to a waiting room if the NPC is disabled with
+'disablenpc', by the way.
+
+---------------------------------------
+
+*enablewaitingroomevent {"<NPC object name>"};
+*disablewaitingroomevent {"<NPC object name>"};
+
+This will enable and disable triggering the waiting room event (see
+'waitingroom') respectively. Optionally giving an NPC object name will do that
+for a specified NPC object. The chat room will not disappear when triggering is
+disabled and enabled in this manner and players will not be kicked out of it.
+Enabling a chat room event will also cause it to immediately check whether the
+number of users in it exceeded the trigger amount and trigger the event
+accordingly.
+
+Normally, whenever a waiting room was created to make sure that only one
+character is, for example, trying to pass a job quest trial, and no other
+characters are present in the room to mess up the script.
+
+---------------------------------------
+
+*getwaitingroomstate(<information type>{,"<NPC object name>"})
+
+This function will return information about the wating room state for the
+attached waiting room or for a waiting room attached to the specified NPC if
+any.
+
+The valid information types are:
+
+ 0 - Number of users currently chatting.
+ 1 - Maximum number of users allowed.
+ 2 - Will return 1 if the waiting room has a trigger set.
+ 0 otherwise.
+ 3 - Will return 1 if the waiting room is currently disabled.
+ 0 otherwise.
+ 4 - The Title of the waiting room (string)
+ 5 - Password of the waiting room, if any. Pointless, since there is no way to
+ set a password on a waiting room right now.
+ 16 - Event name of the waiting room (string)
+ 32 - Whether or not the waiting room is full.
+ 33 - Whether the amount of users in the waiting room is higher than the trigger
+ number.
+
+---------------------------------------
+
+*warpwaitingpc "<map name>",<x>,<y>{,<number of people>};
+
+This command will warp the amount of characters equal to the trigger number of
+the waiting room chat attached to the NPC object running this command to the
+specified map and coordinates, kicking them out of the chat. Those waiting the
+longest will get warped first. It can also do a random warp on the same map
+("Random" instead of map name) and warp to the save point ("SavePoint").
+
+The list of characters to warp is taken from the list of the chat room members.
+Those not in the chat room will not be considered even if they are talking to
+the NPC in question. If the number of people is given, exactly this much people
+will be warped.
+
+This command can also keep track of who just got warped. It does this by setting
+special variables:
+
+$@warpwaitingpc[] is an array containing the character id numbers of the
+ characters who were just warped.
+$@warpwaitingpcnum contains the number of the character it just warped.
+
+See also 'getpartymember' for advice on what to do with those variables.
+
+The obvious way of using this effectively would be to set up a waiting room for
+two characters to be warped onto a random PVP map for a one-on-one duel, for
+example.
+
+---------------------------------------
+
+*waitingroomkickall {"<NPC object name>"};
+
+This command would kick everybody out of a specified waiting room chat. IF it
+was properly linked into the script interpreter which it isn't, even though the
+code for it is in place. Expect this to become available in upcoming SVN
+releases.
+
+---------------------------------------
+
+*attachrid(<character ID>)
+*detachrid
+
+A 'RID' is an ID of a character who caused the NPC script to run, as has been
+explained above in the introduction section. Quite a bit of commands want a RID
+to work, since they wouldn't know where to send information otherwise. And in
+quite a few cases the script gets invoked with a RID of zero (like through
+OnTime special labels). If an NPC script needs this, it can attach a specified
+character's id to itself. by calling the 'attachrid' function.
+
+'attachrid' returns 1 if the character was found online and 0 if it wasn't.
+
+This could also be used, while running in a script invoked by a character
+through talking to an NPC, to mess with other characters.
+Detaching the RID will make the RID of the script zero.
+
+---------------------------------------
+
+*isloggedin(<character id>)
+
+This function returns 1 if the specified character is logged in and 0 if they
+aren't.
+
+---------------------------------------
+
+*setmapflagnosave "<map name>","<alternate map name>",<x>,<y>;
+
+This command sets the 'nosave' flag for the specified map and also gives an
+alternate respawn-upon-relogin point.
+
+It does not make a map impossible to make a savepoint on as you would normally
+think, 'savepoint' will still work. It will, however, make the specified map
+kick the reconnecting players off to the alternate map given to the coordinates
+specified.
+
+---------------------------------------
+
+*setmapflag "<map name>",<flag>;
+
+This command marks a specified map with a map flag given. Map flags alter the
+behavior of the map, you can see the list of the available ones in
+'db/const.txt' under 'mf_'.
+
+The map flags alter the behavior of the map regarding teleporting (mf_nomemo,
+mf_noteleport, mf_nowarp, mf_nogo) storing location when disconnected
+(mf_nosave), dead branch usage (mf_nobranch), penalties upon death
+(mf_nopenalty, mf_nozenypenalty), PVP behavior (mf_pvp, mf_pvp_noparty,
+mf_pvp_noguild, mf_nopvp), WoE behavior (mf_gvg,mf_gvg_noparty), ability to use
+skills or open up trade deals (mf_notrade, mf_novending, mf_noskill, mf_noicewall),
+current weather effects (mf_snow, mf_fog, mf_sakura, mf_leaves, mf_rain, mf_clouds,
+mf_fireworks) and whether day/night will be in effect on this map (mf_indoors).
+
+---------------------------------------
+
+*removemapflag "<map name>",<flag>;
+
+This command removes a mapflag from a specified map. See 'setmapflag'.
+
+---------------------------------------
+
+*pvpon "<map name>";
+*pvpoff "<map name>";
+
+These commands will turn PVP mode for the specified maps on and off. Beside
+setting the flags referred to in 'setmapflag', 'pvpon' will also create a PVP
+timer and ranking as will @pvpon GM command do.
+
+---------------------------------------
+
+*gvgon "<map name>";
+*gvgoff "<map name>";
+
+These commands will turn GVG mode for the specified maps on and off, setting up
+appropriate map flags. In GVG mode, maps behave as if during the time of WoE,
+even though WoE itself may or may not actually be in effect.
+
+---------------------------------------
+
+*emotion <emotion number>{, target};
+
+This command makes an object display an emoticon sprite above their own as
+if they were doing that emotion. For a full list of emotion numbers,
+see 'db/const.txt' under 'e_'. The inobvious ones are 'e_what' (a question mark)
+and 'e_gasp' (the exclamation mark).
+
+The optional target parameter specifies who will get the emotion on top of
+their head. If 0 (the default if omitted), the NPC in current use will show
+the emotion, if 1, the player that is running the script will display it.
+
+---------------------------------------
+
+*maprespawnguildid "<map name>",<guild id>,<flag>;
+
+This command goes through the specified map and for each player and monster
+found there does stuff.
+
+Flag is a bitmask (add up numbers to get effects you want)
+ 1 - warp all guild members to their savepoints.
+ 2 - warp all non-guild members to their savepoints.
+ 4 - remove all monsters which are not guardian or emperium.
+
+Flag 7 will, therefore, mean 'wipe all mobs but guardians and the emperium and
+kick all characters out', which is what the official scripts do upon castle
+surrender. Upon start of WoE, the scripts do 2 (warp all intruiders out).
+
+Characters not belonging to any guild will warp out regardless of the flag setting.
+
+For examples, check the WoE scripts in the distribution.
+
+---------------------------------------
+
+*agitstart;
+*agitend;
+
+These two commands will start and end War of Emperium.
+
+This is a bit more complex than it sounds, since the commands themselves won't
+actually do anything interesting, except causing all 'OnAgitStart:' and
+'OnAgitEnd:' events to run everywhere, respectively, and setting a so-called
+'agit_flag' which also doesn't do much interesting itself. They are used as
+simple triggers to run a lot of complex scripts all across the server, and they,
+in turn, are triggered by clock with an 'OnClock<time>:' time-triggering label.
+
+---------------------------------------
+
+*agitcheck(0)
+*agitcheck 1;
+
+These function and command will let you check whether the server is currently in
+the War of Emperium mode. (that is, if 'agit_flag' is set. Even if it is set,
+doesn't mean that there's even one map in GVG mode somewhere) Calling
+'agitcheck' as a function (the argument must be zero) will return 1 if WoE is on
+and 0 if it isn't. Running 'agitcheck' as a command will instead set a local
+variable @agit_flag to 1 if the server is in WoE mode and 0 if it isn't.
+
+---------------------------------------
+
+*flagemblem <guild id>;
+
+This command only works when run by the NPC objects which have sprite id 722,
+which is a 3D guild flag sprite. If it isn't, the data will change, but nothing
+will be seen by anyone. If it is invoked in that manner, the emblem of the
+specified guild will appear on the flag, though, if any players are watching it
+at this moment, they will not see the emblem change until they move out of sight
+of the flag and return.
+
+This is commonly used in official guildwar scripts with a function call which
+returns a guild id:
+
+// This will change the emblem on the flag to that of the guild that owns
+// "guildcastle"
+
+ flagemblem GetCastleData("guildcastle.gat",1);
+
+---------------------------------------
+
+*getcastlename("<map name>")
+
+This function returns the name of the castle when given the map name for that
+castle. The data is read from 'db/castle_db.txt'.
+
+---------------------------------------
+
+*getcastledata("<map name>",<type of data>)
+*setcastledata "<map name>",<type of data>,<value>;
+
+This function returns the castle ownership information for the castle referred
+to by it's map name. Castle information stored in 'save\castle.txt' for the TXT
+version of the server and in 'guild_castle' table for the SQL version.
+
+Valid types of data are:
+
+ 0 - Will make the map server request the castle data from the char server, and
+ always return 0. This, apparently, will also cause indirectly the execution
+ of an 'OnAgitInit:' event mentioned at the beginning of this document.
+ 1 - Guild ID
+ 2 - Castle Economy score.
+ 3 - Castle Defence score.
+ 4 - Number of times the economy was invested in today.
+ 5 - Number of times the defence was invested in today.
+ 9 - Will return 1 if a Kafra was hired for this castle, 0 otherwise.
+10 - Is 1 if the 1st guardian is present (Soldier Guardian)
+11 - Is 1 if the 2nd guardian is present (Soldier Guardian)
+12 - Is 1 if the 3rd guardian is present (Soldier Guardian)
+13 - Is 1 if the 4th guardian is present (Archer Guardian)
+14 - Is 1 if the 5th guardian is present (Archer Guardian)
+15 - Is 1 if the 6th guardian is present (Knight Guardian)
+16 - Is 1 if the 7th guardian is present (Knight Guardian)
+17 - Is 1 if the 8th guardian is present (Knight Guardian)
+
+18-25 types of data will return current hit point values for guardians 1-8
+respectively.
+
+The 'setcastledata' command will behave identically, but instead of returning
+values for the specified types of accessible data, it will alter them and cause
+them to be sent to the char server for storage. Data type of 0 won't do
+anything, obviously.
+
+---------------------------------------
+
+*requestguildinfo <guild id>,"<event label>";
+
+This command requests the guild data from the char server and merrily continues
+with the execution. Whenever the guild information becomes available (which
+happens instantly if the guild information is already in memory, or later, if it
+isn't and the map server has to wait for the char server to reply) it will run
+the specified event as in a 'doevent' call.
+
+---------------------------------------
+
+*getequipcardcnt(<equipment slot>)
+
+This function will return the number of cards that have been compounded onto a
+specific equipped item for the invoking character. See 'getequipid' for a list
+of possible equipment slots.
+
+---------------------------------------
+
+*successremovecards <equipment slot>;
+
+This command will remove all cards from the item found in the specified
+equipment slot of the invoking character, create new card items and give them to
+the character. If any cards were removed in this manner, it will also show a
+success effect.
+
+---------------------------------------
+
+*failedremovecards <equipment slot>,<type>;
+
+This command will remove all cards from the item found in the specified
+equipment slot of the invoking character. 'type' determines what happens to the
+item and the cards:
+
+ 0 - will destroy both the item and the cards.
+ 1 - will keep the item, but destroy the cards.
+ 2 - will keep the cards, but destroy the item.
+
+Whatever the type is, it will also show a failure effect on screen.
+
+---------------------------------------
+
+*marriage("<spouse name>");
+
+This function will marry two characters, the invoking character and the one
+referred to by name given, together, setting them up as each other's marriage
+partner. No second function call has to be issued (in current SVN at least) to
+make sure the marriage works both ways. The function returns 1 upon success, or
+0 if the marriage could not be completed, either because the other character
+wasn't found or because one of the two characters is already married.
+
+This will do nothing else for the marriage except setting up the spouse ID for
+both of these characters. No rings will be given and no effects will be shown.
+
+---------------------------------------
+
+*wedding;
+
+This command will call up wedding effects - the music and confetti - centered on
+the invoking character.
+
+---------------------------------------
+
+*divorce()
+
+This function will un-marry the invoking character from whoever they were
+married to. Both will no longer be each other's marriage partner, (at least in
+current SVN, which prevents the cases of multi-spouse problems). It will return
+1 upon success or 0 if the character was not married at all.
+
+This function will also destroy both wedding rings and send a message to both
+players, telling them they are now divorced.
+
+---------------------------------------
+
+*ispartneron()
+
+This function returns 1 if the invoking character's marriage partner is
+currently online and 0 if they are not or if the character has no partner.
+
+---------------------------------------
+
+*getpartnerid()
+
+This function returns the character ID of the invoking character's marriage
+partner, if any. If the invoking character is not married, it will return 0,
+which is a quick way to see if they are married:
+
+ if (getpartnerid()) mes "I'm not going to be your girlfriend!";
+ if (getpartnerid()) mes "You're married already!";
+
+---------------------------------------
+
+*warppartner("<map name>",<x>,<y>);
+
+This function will find the invoking character's marriage partner, if any, and
+warp them to the map and coordinates given. Go kidnap that spouse. :) It will
+return 1 upon success and 0 if the partner is not online, the character is not
+married, or if there's no invoking character (no RID). 0,0 will, as usual,
+normally translate to random coordinates.
+
+---------------------------------------
+
+*adopt "<parent name>","<parent name>","<novice name>";
+*adopt("<parent name>","<parent name>","<novice name>");
+
+This command will set up a novice as a baby of a married couple. All three are
+referred to by character name. The correct variables are set on all three
+characters in the same call. The command will unequip anything the novice has
+equipped and make them a Job_Baby class, as well as send them a 'your job has
+been changed' message.
+
+Beware of calling this from inside a 'callfunc' function, cause upon successful
+adoption, this command returns a zero, as if it were a function. This is likely
+to screw up execution of a 'return' command. You may try to call it as a
+function instead, but it doesn't return anything upon an error, which may also
+cause script execution to throw up errors.
+
+Nothing will happen (and nothing will be returned either) if either future
+parent is below base level 70 and/or if any of the three characters is not found
+online.
+
+---------------------------------------
+
+*getchildid()
+*getmotherid()
+*getfatherid()
+
+These functions return the characters (shild/mother/father) ID
+
+ if (getmotherid()) mes "Oh... I know your mother's ID:"+getmotherid();
+
+---------------------------------------
+
+*getitemname(<item id>)
+
+Given the database ID number of an item, this function will return the text
+stored in the 'japanese name' field (which, in eAthena, stores an english name
+the players would normally see on screen.)
+
+---------------------------------------
+
+*makepet <pet id>;
+
+This command will create a pet egg and put it in the invoking character's
+inventory. The kind of pet is specified by pet ID numbers listed in
+'db/pet_db.txt'. The egg is created exactly as if the character just successfuly
+caught a pet in the normal way.
+
+ // This will make you a poring:
+ makepet 1002;
+
+Notice that you absolutely have to create pet eggs with this command. If you try
+to give a pet egg with 'getitem', pet data will not be created by the char
+server and the egg will disappear when anyone tries to hatch it.
+
+---------------------------------------
+
+*getexp <base xp>,<job xp>;
+
+This command will give the invoking character a specified number of base and job
+experience points. Can be used as a quest reward. Negative amounts of experience
+were not tested but should work.
+
+ getexp 10000,5000;
+
+You can also use the "set" command with the constants defined in 'db/const.txt':
+
+ // These 2 combined has the same effect as the above command
+ set BaseExp,BaseExp+10000;
+ set JobExp,JobExp+5000;
+
+You can also reduce the ammount of experience points:
+
+ set BaseExp,BaseExp-10000;
+
+---------------------------------------
+
+*getinventorylist;
+
+This command sets a bunch of arrays with a complete list of whatever the
+invoking character has in their inventory, including all the data needed to
+recreate these items perfectly if they are destroyed. Here's what you get:
+
+@inventorylist_id[] - array of item ids.
+@inventorylist_amount[] - their corresponding item amounts.
+@inventorylist_equip[] - whether the item is equipped or not.
+@inventorylist_refine[] - for how much it is refined.
+@inventorylist_identify[] - whether it's refined.
+@inventorylist_attribute[] - whether it is broken.
+@inventorylist_card1[] - These four arrays contain card data for the items.
+@inventorylist_card2[] These data slots are also used to store names
+@inventorylist_card3[] inscribed on the items, so you can explicitly check
+@inventorylist_card4[] if the character owns an item made by a specific
+ craftsman.
+@inventorylist_count - the number of items in these lists.
+
+This could be handy to save/restore a character's inventory, since no other
+command returns such a complete set of data, and could also be the only way to
+correctly handle an NPC trader for carded and named items who could resell them
+- since NPC objects cannot own items, so they have to store item data in
+variables and recreate the items.
+
+Notice that the variables this command generates are all local and numeric.
+
+---------------------------------------
+
+*getskilllist;
+
+This command sets a bunch of arrays with a complete list of skills the
+invoking character has. Here's what you get:
+
+@skilllist_id[] - skill ids.
+@skilllist_lv[] - skill levels.
+@skilllist_flag[] - see 'skill' for the meaning of skill flags.
+@skilllist_count - number of skills in the above arrays.
+
+While 'getskillv' is probably more useful for most situations, this is the
+easiest way to store all the skills and make the character something else for a
+while. Advanced job for a day? :) This could also be useful to see how many
+skills a character has.
+
+---------------------------------------
+
+*clearitem;
+
+This command will destroy all items the invoking character has in their
+inventory. (that includes equipped items) It will not affect anything else, like
+storage or cart.
+
+---------------------------------------
+
+*classchange <view id>,<type>;
+
+This command is very ancient, it's origins are clouded in mystery.
+It will send a 'display id change' packet to everyone in the immediate area of
+the NPC object, which will supposedly make the NPC look like a different sprite,
+an NPC sprite ID, or a monster ID. This effect is not stored anywhere and will
+not persist (Which is odd, cause it would be relatively easy to make it do so)
+and most importantly, will not work at all since this command was broken with
+the introduction of advanced classes. The code is written with the assumption
+that the lowest sprite IDs are the job sprites and the anything beyond them is
+monster and NPC sprites, but since the advanced classes rolled in, they got the
+ID numbers on the other end of the number pool where monster sprites float.
+
+As a result it is currently impossible to call this command with a valid view
+id. It will do nothing whatsoever if the view ID is below 4047. Getting it to
+run will actually just crash the client.
+
+It could be a real gem if it can be gotten to actually do what it's supposed to
+do, but this will only happen in a later SVN revision.
+
+---------------------------------------
+
+*misceffect <effect number>;
+
+This command, if run from an NPC object that has a sprite, will call up a
+specified effect number, centered on the NPC sprite. If the running code does
+not have an object ID (a 'floating' npc) or is not running from an NPC object at
+all (an item script) the effect will be centered on the character who's RID got
+attached to the script, if any. For usable item scripts, this command will
+create an effect centered on the player using the item.
+
+A full list of known effects is found in 'doc/effect_list.txt'. The list of
+those that actually work may differ greatly between client versions.
+
+---------------------------------------
+
+*soundeffect "<effect filename>",<number>
+*soundeffectall "<effect filename>",<number>
+
+These two commands will play a sound effect to either the invoking character
+only 'soundeffect' or everyone around ('soundeffectall'). If the running code
+does not have an object ID (a 'floating' npc) or is not running from an NPC
+object at all (an item script) the sound will be centered on the character who's
+RID got attached to the script, if any. If it does, it will be centered on that
+object. (an NPC sprite)
+
+Effect filename is the filename of the wav in GRF. It must have an extension.
+
+It's not quite certain what the number actually does, it is sent to the client
+directly, probably it determines which directory of the GRF the effect is played
+from - the sound effect type. It's certain that giving 0 for the number will
+play sound files from 'data/wav', but where the other numbers will read from is
+unclear.
+
+You can add your own effects this way, naturally.
+
+---------------------------------------
+
+*mapwarp "<from map>","<to map>",<x>,<y>;
+
+This command will collect all characters located on the From map and warp them
+wholesale to the same point on the To map, or randomly distribute them there if
+the coordinates are zero. "Random" is understood as a special To map name and
+will mean randomly shuffling everyone on the same map.
+
+---------------------------------------
+
+*mobcount("<map name>","<event label>")
+
+This function will count all the monsters on the specified map that have a given
+event label and return the number or 0 if it can't find any. Naturally, only
+monsters spawned with 'monster' and 'areamonster' script commands can be like
+this.
+
+However, apparently, if you pass this function an empty string for the event
+label, it should return the total count of normal permanently respawning
+monsters instead. With the current dynamic mobs system, where mobs are not kept
+in memory for maps with no actual people playing on them, this will return a 0
+for any such map.
+
+---------------------------------------
+
+*strmobinfo(<type>,<monster id>);
+
+This function will return information about a monster record in the database, as
+per 'db/mob_db.txt'. Type is the kind of information returned. Valid types are:
+
+ 1 - 'english name' field in the database, a string.
+ 2 - 'japanese name' field in the database, a string.
+ All other returned values are numbers:
+ 3 - Level.
+ 4 - Maximum HP.
+ 5 - Maximum SP.
+ 6 - Experience reward.
+ 7 - Job experience reward.
+
+---------------------------------------
+
+*guardian "<map name>",<x>,<y>,"<name to show>",<mob id>,<amount>{,"<event label>"};
+
+This command is roughly equivalent to 'monster', but is meant to be used with
+castle guardian monsters and will only work with them. It will set the guardian
+characteristics up according to the castle's investment values and otherwise
+set the things up that only castle guardians need.
+
+---------------------------------------
+
+*guardianinfo(<guardian number>)
+
+This function will return the current hit point value for the specified guardian
+number, if such guardian is currently installed. This function will only work if
+the invoking character is on a castle map, and will refer only to the guardians
+of that castle, regardless of anything else, i.e. whether the character is a
+member of the guild owning the castle, etc, etc.
+If no guardian is installed in this slot, the function will return -1.
+
+---------------------------------------
+
+* The Pet AI commands
+
+These commands will only work if the invoking character has a pet, and are meant
+to be executed from pet scripts. They will modify the pet AI decision-making for
+the current pet of the invoking character, and will NOT have any independent
+effect by themselves, which is why only one of them each may be in effect at any
+time for a specific pet. A pet may have 'petloot', 'petskillbonus',
+'petskillattack' OR 'petpetskillattack2' and 'petskillsupport' OR 'petheal' at
+the same time. 'petheal' is deprecated and is no longer used in the default pet
+scripts.
+
+*petskillbonus <bonus type>,<value>,<duration>,<delay>;
+
+This command will make the pet give a bonus to the owner's stat (bonus type -
+bInt,bVit,bDex,bAgi,bLuk,bStr,bSpeedRate - for a full list, see the values
+starting with 'b' in 'db/const.txt')
+
+*petrecovery <status type>,<delay>;
+
+This command will make the pet cure a specified status condition. The curing
+actions will occur once every Delay seconds. For a full list of status
+conditions that can be cured, see the list of 'SC_' status condition constants
+in 'db/const.txt'
+
+*petloot <max items>;
+
+This command will turn on pet looting, with a maximum number of items to loot
+specified. Pet will store items and return them when the maximum is reached or
+when pet performance is activated.
+
+*petskillsupport <skill id>,<skill level>,<delay>,<percent hp>,<percent sp>;
+*petheal <level>,<delay>,<percent hp>,<percent sp>;
+
+This will make the pet use a specified support skill on the owner whenever the
+HP and SP are below the given percent values, with a specified delay time
+between activations. The skill numbers are as per 'db/skill_db.txt'.
+'petheal' works the same as 'petskillsupport' but has the skill ID hardcoded to
+28 (Heal). This command is deprecated.
+It's not quite certain who's stats will be used for the skills cast, the
+character's or the pets. Probably, Skotlex can answer that question.
+
+*petskillattack <skill id>,<skill level>,<rate>,<bonusrate>;
+*petskillattack2 <skill id>,<damage>,<number of attacks>,<rate>,<bonusrate>;
+
+These two commands will make the pet cast an attack skill on the enemy the pet's
+owner is currently fighting. Skill IDs and levels are as per 'petskillsupport'.
+'petskillattack2' will make the pet cast the skill with a fixed amount of damage
+inflicted and the specified number of attacks.
+
+All commands with delays and durations will only make the behavior active for
+the specified duration of seconds, with a delay of the specified number of
+seconds between activations. Rates are a chance of the effect occuring and are
+given in percent. 'bonusrate' is added to the normal rate if the pet intimacy is
+at the maximum possible.
+
+The behavior modified with the abovementioned commands will only be exibited if
+the pet is loyal and appropriate configuration options are set in
+'battle_athena.conf'.
+
+Pet scripts in the database normally run whenever a pet of that type hatches
+from the egg. Other commands usable in item scripts (see 'bonus') will also
+happily run from pet scripts. Apparently, the pet-specific commands will also
+work in NPC scripts and modify the behavior of the current pet up until the pet
+is hatched again. (Which will also occur when the character is logged in again
+with the pet still out of the egg.) It is not certain for how long the effect of
+such command running from an NPC script will eventually persist, but apparently,
+it is possible to usefully employ them in usable item scripts to create pet
+buffing items.
+
+Nobody tried this before, so you're essentially on your own here.
+
+--------------------------------------
+
+*skilleffect <skill id>,<number>;
+
+This command will display the visual and sound effects of a specified skill (see
+'db/skill_db.txt' for a full list of skills) on the invoking character's sprite.
+Nothing but the special effects and animation will happen. If the skill's normal
+effect displays a floating number, the number given will float up.
+
+ // This will heal the character with 2000 hp, buff with
+ // Bless 10 and Increase AGI 5, and display appropriate
+ // effects.
+ mes "Blessed be!";
+ skilleffect 28,2000;
+ heal 2000,0;
+ skilleffect 34,0;
+ // That's bless 10.
+ sc_start 10,240000,10;
+ skilleffect 29,0;
+ // That's agi 5
+ sc_start 12,140000,5;
+
+---------------------------------------
+
+*npcskilleffect <skill id>,<number>,<x>,<y>;
+
+This command behaves identically to 'skilleffect', however, the effect will not
+be centered on the invoking character's sprite, nor on the NPC sprite, if any,
+but will be centered at map coordinates given on the same map as the invoking
+character.
+
+---------------------------------------
+
+*specialeffect <effect number>;
+
+This command will display special effect with the given number, centered on the
+specified NPCs coordinates, if any. For a full list of special effect numbers
+known see 'doc/effect_list.txt'. Some effect numbers are known not to work in
+some client releases. (Notably, rain is absent from any client executables
+released after April 2005.)
+
+---------------------------------------
+
+*specialeffect2 <effect number>;
+
+This command behaves identically to the 'specialeffect', but the effect will be
+centered on the invoking character's sprite.
+
+---------------------------------------
+
+*nude;
+
+This command will unequip anything equipped on the invoking character.
+
+It is not required to do this when changing jobs since 'jobchange' will unequip
+everything not equippable by the new job class anyway.
+
+---------------------------------------
+
+*atcommand "<command line>";
+
+This command will run the given command line exactly as if it was typed in from
+the keyboard by the player connected to the invoking character, and that
+character belonged to an account which had GM level 99.
+
+ // This will ask the invoker for a character name and then use the '@nuke'
+ // GM command on them, killing them mercilessly.
+ input @player$;
+ gmcommand "@nuke "+@player$
+
+This command has a lot of good uses, I am sure you can have some fun with this
+one.
+
+---------------------------------------
+
+*message "<character name>","<message>";
+
+That command will send a message to the chat window of the character specified
+by name. The text will also appear above the head of that character. It will not
+be seen by anyone else.
+
+---------------------------------------
+
+*npctalk "<message>";
+
+This command will display a message to the surrounding area as if the NPC object
+running it was a player talking - that is, above their head and in the chat
+window. The display name of the NPC will get appended in front of the message to
+complete the effect.
+
+ // This will make everyone in the area see the NPC greet the character
+ // who just invoked it.
+ npctalk "Hello "+strcharinfo(0)+" how are you";
+
+---------------------------------------
+
+*hasitems(0)
+
+This function will return 1 if the invoking character has anything at all in
+their inventory and 0 if they do not. Even though the argument is not used for
+anything, it is required.
+
+---------------------------------------
+
+*getlook(<type>)
+
+This function will return the number for the currentcharacter look value
+specified by type. See 'setlook' for valid look types.
+
+This can be used to make a certain script behave differently for characters
+dressed in black. :)
+
+---------------------------------------
+
+*getsavepoint(<information type>)
+
+This function will return information about the invoking character's save point.
+You can use it to let a character swap between several recorded savepoints.
+Available information types are:
+
+ 0 - Map name (a string)
+ 1 - X coordinate
+ 2 - Y coordinate
+
+---------------------------------------
+
+*npcspeed <speed value>;
+*npcwalkto <x>,<y>;
+*npcstop;
+
+These commands will make the NPC object in question move around the map. As they
+currently are, they are a bit buggy and are not useful for much more than making
+an NPC move randomly around the map. (see 'npc/custom/devnpc.txt' for an example
+of such usage)
+
+'npcspeed' will set the NPCs walking speed to a specified value. As in the
+@speed GM command, 200 is the slowest possible speed while 0 is the fastest
+possible (instant motion). 100 is the default character walking speed.
+'npcwalkto' will start the NPC sprite moving towards the specified coordinates
+on the same map as it is currently on.
+'npcstop' will stop the motion.
+
+While in transit, the NPC will be clickable, but invoking it will cause it to
+stop motion, which will make it's coordinates different from what the client
+computed based on the speed and motion coordinates. The effect is rather
+unnerving.
+
+Only a few NPC sprites have walking animations, and those that do, do not get
+the animation invoked when moving the NPC, due to the problem in the npc walking
+code, which looks a bit silly. You might have better success by defining a job-
+sprite based sprite id in 'db/mob-avail.txt' with this.
+
+---------------------------------------
+
+*getmapxy("<variable for map name>",<variable for x>,<variable for y>,<type>{,"<search string>"})
+
+This function will locate a character object, NPC object or pet's coordinates
+and place their coordinates into the variables specified when calling it. It
+will return 0 if the search was successful, and -1 if the parameters given were
+not variables or the search was not successful.
+
+Type is the type of object to search for:
+
+ 0 - Character object
+ 1 - NPC object
+ 2 - Pet object
+ 3 - Monster object.
+
+While 3 is meant to look for a monster object, no searching will be done if you
+specify type 3, and the function will always return -1.
+
+The search string is optional. If it is not specified, the location of the
+invoking character will always be returned for types 0 and 2, the location of
+the NPC running this function for type 1.
+If a search string is specified, for types 0 and 1, the character or NPC with
+the specified name will be located. If type is 3, the search will locate the
+current pet of the character who's name is given in the search string, it will
+NOT locate a pet by name.
+
+What a mess. Example, a working and tested one now:
+
+ prontera.gat,164,301,3%TAB%script%TAB%Meh%TAB%730,{
+ mes "My name is Meh. I'm here so that Nyah can find me.";
+ close;
+ }
+
+ prontera.gat,164,299,3%TAB%script%TAB%Nyah%TAB%730,{
+ mes "My name is Nyah.";
+ mes "I will now search for Meh all across the world!";
+ if (getmapxy(@mapname$,@mapx,@mapy,1,"Meh")!=0) goto Notfound;
+ mes "And I found him on map "+@mapname$+" at X:"+@mapx+" Y:"+@mapy+" !";
+ close;
+ Notfound:
+ mes "I can't seem to find Meh anywhere!";
+ close;
+ }
+
+Notice that NPC objects disabled with 'disablenpc' will still be located.
+
+---------------------------------------
+
+*guildgetexp <amount>;
+
+This will give the specified amount of guild experience points to the guild the
+invoking character belongs to. It will silently fail if they do not belong to
+any guild.
+
+---------------------------------------
+
+*skilluseid <skill>,<level>;
+*doskill <skill>,<level>;
+*skillusepos <skill>,<level>,<x>,<y>;
+
+These commands will cause the invoking character to use a specified skill at the
+specified level, as if they had that skill, with their current level and stats.
+If the skill involves targeting a character, no targeting pointer will come up -
+the invoking character will automatically be the skill target.
+
+'doskill' is an alias for 'skilluseid'.
+
+'skillusepos' will specify a target map square for the skill to be used. If that
+skill is an area effect skill, it will be centered at the square specified. It
+will not work if the skill is supposed to be targeted on character or monster.
+
+---------------------------------------
+
+*logmes "<message>";
+
+This command will write the message given to the map server npc log file, as
+specified in 'conf/log_athena.conf'. In the TXT version of the server, the log
+file is 'log/npclog.log' by default. In the SQL version, if SQL logging is
+enabled, the message will go to the 'npclog' table, otherwise, it will go to the
+same log file.
+
+If logs are not enabled, nothing will happen.
+
+---------------------------------------
+
+*summon "<monster name>",<mob id>{,"<event label>"};
+
+This command will summon a monster. (see also 'monster') Unlike monsters spawned
+with other commands, this one will set up the monster to fight to protect the
+invoking character. Monster name and mob id obey the same rules as the one given
+at the beginning of this document for permanent monster spawns with the
+exceptions mentioned when describing 'monster' command.
+
+The effect for the skill 'Call Homonuculus' will be displayed centered on the
+invoking character.
+
+If an event label is given, upon the monster being killed, the event label will
+run as if by 'donpcevent'.
+
+ // Will summon a dead branch-style monster to fight for the character.
+ summon "--ja--",-1;
+
+---------------------------------------
+
+*isnight()
+*isday()
+
+These functions will return 1 or 0 depending on whether the server is in night
+mode or day mode. 'isnight' returns 1 if it's night and 0 if it isn't, 'isday'
+the other way around. They can be used interchangeably, pick the one you like
+more:
+
+ // These two are equivalent:
+ if (isday()) mes "I only prowl in the night.";
+ if (isnight()!=1) mes "I only prowl in the night.";
+
+---------------------------------------
+
+*isequipped(<id>{,<id>{,<id>{,<id>}}})
+
+This function will return 1 if the invoking character has all of the item
+IDs given equipped (if card IDs are passed, then it checks if the cards are
+inserted into slots in the equipment they are currently wearing). Theorically
+there is no limit to the number of items that may be tested for at the same time.
+If even one of the items given is not equipped, 0 will be returned.
+
+ // (Poring,Santa Poring,Poporing,Marin)
+ if (isequipped(4001,4005,4033,4196)) mes "Wow! You're wearing a full complement of possible poring cards!";
+ // (Poring)
+ if (isequipped(4001)) mes "A poring card is useful, don't you think?";
+
+The function was meant for item scripts to support the cards released by Gravity
+in February 2005, but it will work just fine in normal NPC scripts.
+
+---------------------------------------
+
+*isequippedcnt(<card id>{,<card id>{,<card id>{,<card id>}}})
+
+This function is similar to 'isequipped', but instead of 1 or 0, it will return
+the number of cards in the list given that were found on the invoking character.
+
+ if (isequippedcnt(4001,4005,4033,4196)=4) mes "Finally got all four poring cards?";
+
+---------------------------------------
+
+*cardscnt()
+
+This function will return the number of cards inserted into the weapon currently
+equipped on the invoking character.
+While this function was meant for item scripts, it will work outside them:
+
+ if (cardscnt()==4) mes "So you've stuck four cards into that weapon, think you're cool now?";
+
+---------------------------------------
+
+*getrefine()
+
+This function will return the number of plusses the weapon currently equipped on
+the invoking character has been refined for.
+While this function was meant for item scripts, it will work outside them:
+
+ if (getrefine()==10) mes "Wow. That's a murder weapon.";
+
+---------------------------------------
+
+*day;
+*night;
+
+These two commands will switch the entire server between day and night mode.
+Depending on the configuration, it may cause differing client effects. If your
+server is set to cycle between day and night, it will eventually return to that
+cycle.
+
+This example will set the night time to start at 03 AM and end at 08 AM, and the
+nighttime will persist if the server restarts during the night, if the automated
+day/night switching is turned off in the configuration files. Figure it out on
+your own:
+
+-%TAB%script%TAB%DayNight%TAB%-1,{
+
+ end;
+
+OnClock0300:
+
+OnClock0800:
+
+OnInit:
+
+ set $@minutesfrommidnight, gettime(3)*60+gettime(2);
+
+ set $@night_start, 180; // 03:00
+ set $@night_end, 480; // 08:00
+
+ if ($@minutesfrommidnight>=$@night_start && $@minutesfrommidnight<$@night_end) goto StartNight;
+
+ goto StartDay;
+ StartNight:
+ night;
+ end;
+ StartDay:
+ day;
+ end; }
+
+---------------------------------------
+
+*getusersname;
+
+This command will give the invoking character a list of names of the connected
+characters (including themselves) into an NPC script message window (see 'mes')
+paging it by 10 names as if with the 'next' command.
+
+You need to put a 'close' after that yourself.
+
+---------------------------------------
+
+*dispbottom "<message>";
+
+This command will send the given message into the invoking character's chat
+window.
+
+---------------------------------------
+
+*recovery;
+
+This command will revive and restore full HP and SP to all characters currently
+connected to the server.
+
+---------------------------------------
+
+*getpetinfo(<type>)
+
+This function will return pet information for the pet the invoking character
+currently has active. Valid types are:
+
+ 0 - Unique pet ID number as stored by the char server and distinguishing it
+ from all other pets the characters actually have. This value is currently
+ useless, at most you can use it to tell pets apart reliably.
+ 1 - Pet ID number as per 'db/pet_db.txt' - will tell you what kind of a pet it
+ is.
+ 2 - Pet name. Will return "null" if there's no pet.
+ 3 - Pet friendly level (intimacy score). 1000 is full loyalty.
+ 4 - Pet hungry level. 100 is completely full.
+
+---------------------------------------
+
+*checkequipedcard(<card id>)
+
+This function will return 1 if the card specified by it's item ID number is
+inserted into any equipment they have in their inventory, currently equipped or
+not.
+
+---------------------------------------
+
+*globalmes "message";
+
+This command will send a message to the chat window of all currently connected
+characters.
+
+---------------------------------------
+
+*jump_zero (<condition>),<label>;
+
+This command works kinda like an 'if'+'goto' combination in one go. (See 'if').
+If the condition is false (equal to zero) this command will immediately jump to
+the specified label like in 'goto'.
+
+While 'if' is more generally useful, for some cases this could be an
+optimisation.
+
+---------------------------------------
+
+*select("<option>"{,"<option>"..."<option>"})
+
+This function is a handy replacement for 'menu' for some specific cases where
+you don't want a complex label structure - like, for example, asking simple yes-
+no questions. It will return the number of menu option picked, starting with 1.
+Like 'menu', it will also set the variable @menu to contain the option the user
+picked.
+
+ if (select("Yes","No")==1) mes "You said yes, I know.";
+
+And like 'menu', this command has a problem with empty strings - if some of the
+option strings given to it are empty, you won't be able to tell which one the
+user really picked. The number it returns will only make sense if all the empty
+strings are last in the list of options.
+
+---------------------------------------
+
+*getmapmobs("<map name>")
+
+This function will return the total count of monsters currently located on the
+specified map. If the map name is given as "this", the map the invoking
+character is on will be used. If the map is not found, or the invoker is not a
+character while the map is "this", it will return -1.
+
+---------------------------------------
+
+*unequip <equipment slot>;
+
+This command will unequip whatever is currently equipped in the invoking
+character's specified equipment slot. For a full list of possible equipment
+slots see 'getequipid'.
+
+If an item occupies several equipment slots, it will get unequipped from all of
+them. (Which is a good thing.)
+
+---------------------------------------
+
+*defpattern <set number>,"<regular expression pattern>","<event label>";
+*activatepset <set number>;
+*deactivatepset <set number>;
+*deletepset <set number>;
+
+This set of commands is only available if the server is compiled with regular
+expressions library enabled. Default compilation and most binary distributions
+aren't, which is probably bad, since these, while complex to use, are quite
+fascinating.
+
+They will make the NPC object listen for text spoken publicly by players and
+match it against regular expression patterns, then trigger labels associated
+with these regular expression patterns.
+
+Patterns are organised into sets, which are referred to by a set number. You can
+have multiple sets patterns, and multiple patterns may be active at once.
+Numbers for pattern sets start at 1.
+
+'defpattern' will associate a given regular expression pattern with an event
+label. This event will be triggered whenever something a player says is matched
+by this regular expression pattern, if the pattern is currently active.
+
+'activatepset' will make the pattern set specified active. An active pattern
+will enable triggering labels defined with 'defpattern', which will not happen
+by default.
+'deactivatepset' will deactivate a specified pattern set. Giving -1 as a pattern
+set number in this case will deactivate all pattern sets defined.
+
+'deletepset' will delete a pattern set from memory, so you can create a new
+pattern set in it's place.
+
+Using regular expressions is high wizardry. But with this high wizardry comes
+unparallelled power of text manipulation. For an explanation of what a regular
+expression pattern is, see a few web pages:
+
+http://www.regular-expressions.info/
+http://www.weitz.de/regex-coach/
+
+For an example of this in use, see 'npc\custom\eliza.txt'.
+
+With this you could, for example, automagically punish players for asking for
+zeny in public places, or alternatively, automagically give them zeny instead if
+they want it so much.
+
+---------------------------------------
+
+*getstrlen("<string>")
+
+This function will return the length of the string given as an argument. It is
+useful to check if anything input by the player exceeds name length limits and
+other length limits and asking them to try to input something else.
+
+---------------------------------------
+
+*charisalpha("<string>",<position>)
+
+This function will return 1 if the character number Position in the given string
+is a letter, 0 if it isn't a letter but a digit or a space.
+
+---------------------------------------
+
+*getnameditem(<item id>,"<name to inscribe>");
+*getnameditem("<item name>","<name to inscribe>");
+
+This function is equivalent to using 'getitem', however, it will not just give
+the character an item object, but will also inscribe it with a specified
+character's name. You may not inscribe items with arbitrary strings, only with
+names of characters that actually exist. While this isn't said anywhere
+specifically, apparently, named items may not have cards in them, slots or no -
+these data slots are taken by the character ID who's name is inscribed. Only one
+remains free and it's not quite clear if a card may be there.
+
+Items that may not be equipped may NOT be inscribed with a name with this
+function. Which is why this is a function which will return a value - 1 if an
+item was successfully created and 0 if it wasn't for whatever reason. Like
+'getitem' this function will also take an 'english name' from the itemdb
+database as an item name and will return 0 if nothing is found.
+
+---------------------------------------
+
+*getitemslots(<item ID>)
+
+This function will look up the item with the specified ID number in the database
+and return the number of slots this kind of items has - 0 if they are not
+slotted. It will also be 0 for all non-equippable items, naturally, unless
+someone messed up the item database. It will return -1 if there is no such item.
+
+---------------------------------------
+
+*getiteminfo(<item ID>,<type>)
+
+This function will look up the item with the specified ID number in the database
+and return the info set by TYPE argument.
+It will return -1 if there is no such item.
+
+Valid types are:
+ 0 - Buy Price; 1 - Sell Price; 2 - Item Type;
+ 3 - maxchance (Max drop chance of this item e.g. 1 = 0.01% , etc..
+ if = 0, then monsters don't drop it at all (rare or a quest item)
+ if = 10000, then this item is sold in NPC shops only
+ 4 - sex; 5 - equip; 6 - weight; 7 - atk; 8 - def; 9 - range;
+ 10 - slot; 11 - look; 12 - elv; 13 - wlv;
+
+Check sample in nps\sample\getiteminfo.txt
+
+---------------------------------------
+
+*getmonsterinfo(<item ID>,<type>)
+
+This function will look up the monster with the specified ID number in the database
+and return the info set by TYPE argument.
+It will return -1 if there is no such item. Due to specific of MOB DB routines,
+it's better to check monster name. It'd return "Dummy" for a non-existing monster.
+
+Valid types are listed in const.txt:
+ MOB_NAME 0 MOB_LV 1
+ MOB_MAXHP 2 MOB_BASEEXP 3
+ MOB_JOBEXP 4 MOB_ATK1 5
+ MOB_ATK2 6 MOB_DEF 7
+ MOB_MDEF 8 MOB_STR 9
+ MOB_AGI 10 MOB_VIT 11
+ MOB_INT 12 JOB_DEX 13
+ MOB_LUK 14 MOB_RANGE 15
+ MOB_RANGE2 16 MOB_RANGE3 17
+ MOB_SIZE 18 MOB_RACE 19
+ MOB_ELEMENT 20 MOB_MODE 21
+
+Check sample in nps\sample\getmonsterinfo.txt
+
+---------------------------------------
+
+*pow(<number>,<power>)
+
+Returns the result of the calculation.
+
+Example:
+set @i, pow(2,3); // @i will be 8
+
+---------------------------------------
+
+*sqrt(<number>)
+
+Returns square-root of number.
+
+Examlpe:
+set @i, sqrt(25); // @i will be 5
+
+---------------------------------------
+
+*distance(<x0>,<y0>,<x1>,<y1>)
+
+Returns distance between 2 points.
+
+Example:
+set @i, distance(100,200,101,202);
+
+---------------------------------------
+*query_sql "your MySQL query", <array name>, [<array name>]
+Returns up to 127 values into array and return the number of row
+
+Example:
+set @nb, query_sql("select name,fame from `char` ORDER BY fame DESC LIMIT 5", @name$, @fame);
+mes "Hall Of Fame: TOP5";
+mes "1."+@name$[0]+"("+@fame[0]+")"; // Will return a person with the biggest fame value.
+mes "2."+@name$[1]+"("+@fame[1]+")";
+mes "3."+@name$[2]+"("+@fame[2]+")";
+mes "4."+@name$[3]+"("+@fame[3]+")";
+mes "5."+@name$[4]+"("+@fame[4]+")";
+
+Note: In the TXT version it doesn't fill the array and always return -1.
+Note: Use Text$[] array to recieve all data as text.
+
+---------------------------------------
+
+*setd "variable name", <value>
+
+Works almost identical as set, just that the variable name is identified as a string,
+thus can be constructed dynamically.
+
+Example:
+set $var$, "Poring";
+
+setd "$var$", "Poporing";
+mes $var$; // Will return Poporing
+
+setd "$" + $var$ + "123$", "Poporing is cool";
+mes $Poporing123$; // Will return Poporing is cool.
+
+---------------------------------------
+
+*getd("variable name")
+
+Retrieves variable, name can be constructed dynamically. Refer to setd for usage.
+
+Example:
+set @i, getd("$pikachu");
+
+---------------------------------------
+
+*petstat(<flag>)
+
+Returns current pet status, all are integers except name.
+Returns 0 or "" if the player doesn't have pets.
+
+Flags usable >>
+PET_CLASS
+PET_NAME
+PET_LEVEL
+PET_HUNGRY
+PET_INTIMATE
+
+Example:
+set @i, petstat(PET_CLASS);
+
+
+---------------------------------------
+
+*setitemscript(<ItemID>,<"{ new item script }">)
+
+Set a new script bonus to the Item. Very useful for game events.
+
+Example:
+
+setitemscript 2637,"{ bonus bDamageWhenUnequip,40; if(isequipped(2236)==0)end; if(getskilllv(26)){skill 40,1;}else{skill 26,1+isequipped(2636);} }";
+
+---------------------------------------
+
+*disguise <Monster ID>;
+*undisguise;
+
+This command disgueses current player with a monster sprite.
+The disguise is disappearing on re-login or on 'undisguise' command.
+
+Note: It doesn't work with "Pets with equipment on"
+Note: If u're a Sniper, u'd get an old Falcon over your head
+Note: You can kill yourself with some skills
+Note: Monsters of your type could heal you
+
+Example:
+disquise 1002; //Yay! You're a Poring!!!
+next;
+undisquise; //Yay!!!! You're a human again!!
+
+---------------------------------------
+
+*axtoi(<hexadecimal_value>);
+
+This command will convert an hexadecimal value into integers (numbers).
+The inputted value must not have neither # or 0x in it, just 6 numbers and/or letters.
+The variable registering this value, if so, must be a string (letter) variable, due that
+it contains letters in some cases.
+
+This is mostly used for the new announce command, which uses hexadecimal values for announce
+colors, using the Ragnarok coloring system.
+
+Example:
+
+amatsu.gat,171,166,4 script Testing npc 767,{
+
+mes "Input hex color";
+input @trying$;
+next;
+set @try2$,axtoi(@trying$);
+announce "zOMG TEH PWNZ0RDZ",bc_all,@try2$;
+close;
+}
+
+If you want a list of hexadecimal colors, check these two links:
+
+http://webmonkey.wired.com/webmonkey/reference/color_codes/
+
+http://www.december.com/html/spec/color.html
+
+---------------------------------------
+
+*rid2name(rid)
+
+Converts rid to name. Note: The player/monster/NPC must be online/enabled.
+Good for PCKillEvent where you can convert 'killedrid' to the name of the player.
+
+Note: rid2name may not produce correct character names since rid = account id.
+ It will return the current online character of the account only.
+
+---------------------------------------
+
+*function <function name>;
+*<function name>;
+*function <function name> {
+<code>
+}
+
+(Skotlex stop being so selfish and give us all the commands T~T! J/k lol :P)
+
+This works like callfunc, but doesn't support arguments like callfunc. It's used for cleaner
+and fast script that doesn't require arguments for it to work. Also they must be inside a script.
+They're not separated scripts and they work more like labels.
+
+Note it looks like the normal declaration
+
+Usage:
+
+You first Declare the function with function <function name>;.
+
+Put the rest of your code. You can use then <function name>; to call the function. If it returns a value is unsure,
+test it if you want and give us some comments ;3
+
+And at least, but inside the script itself, put the function <function name> {<code>}.
+
+Example:
+
+prontera.gat,154,189,4 script Item seller 767,{
+
+function SF_Selling;
+
+mes "I'll open this now if you have more than 50z and you are level 50 or bigger";
+next;
+
+if (Zeny > 50) && (BaseLevel > 50) {
+ mes "Welcome";
+ next;
+ SF_Selling;
+ close;
+} else
+
+set @needed,50-BaseLevel;
+mes "You either are Level "+BaseLevel+", thus you need "+@needed+" more levels";
+mes "to be able to use this npc; or you don't have enough zeny, so get some please";
+close;
+
+function SF_Selling {
+
+ mes "Would you like to buy a phracon for 50z?";
+ switch(select("Yes","No, thanks")) {
+
+ case 1:
+ mes "Ok, how many?";
+ input @quantity;
+ set @check,Zeny/50;
+ if (@quantity > @check) {
+ mes "Sorry but you can only have "+@check+" Phracons with "+Zeny;
+ close;
+ } else
+ next;
+ mes "here you have";
+ set Zeny,Zeny-@quantity*50;
+ getitem 1010,@quantity;
+ close;
+ case 2:
+ mes "Good bye then";
+ close;
+ }
+ }
+ return;
+}
+
+
+---------------------------------------
+
+*getequipcardid (<equipment slot>,<card slot>);
+
+Returns value from equipped item slot in the indicated slot:
+
+getequipcardid(num,slot)
+
+where:
+ num = eqip position slot
+ slot = 0,1,2,3 (Card Slot N)
+
+This func returns CARD ID, 255,254,-255 (for card 0, if the item is produced) it's useful
+when you want to check item cards or if it's signed. Useful for such quests as
+"Sign this refined item with players name" etc;
+ Hat[0] +4 -> Player's Hat[0] +4
+
+By Lupus
+
+--------------------------------------
+
+*warpparty "mapname.gat",x,y,<party_id>;
+
+Warps a party to specified map and coordinate given the party ID, which you can get with
+getcharid(1). You can also request another party id given a member's name with getcharid(1,<player_name>).
+
+Example:
+mes "[Party Warper]";
+mes "Here you go!";
+close2;
+set @id,getcharid(1);
+warpparty "prontera.gat",150,100,@id;
+close;
+
+---------------------------------------
+
+*warpchar "mapname.gat",x,y,<char_id>;
+
+Warps another player to specified map and coordinate given the char id, which you can get with
+getcharid(0,<player_name>). Obviously this is useless if you want to warp the same player that
+is executing this script, unless it's some kind of "chosen" script.
+
+Example:
+
+warpchar "prontera.gat",150,100,20000001;
+
+---------------------------------------
+
+*warpguild "mapname.gat",x,y,<guild_id>;
+
+Warps a guild to specified map and coordinate given the guild id, which you can get with
+getcharid(2). You can also request another guild id given the member's name with getcharid(2,<player_name>).
+
+Example:
+
+warpguild "prontera.gat",x,y,Guild_ID;
+
+---------------------------------------
+
+Whew.
+What's about all of them.
diff --git a/doc/script_ref.txt b/doc/script_ref.txt
index 63fea4ec6..06df8f425 100644
--- a/doc/script_ref.txt
+++ b/doc/script_ref.txt
@@ -1,1424 +1,1424 @@
-AthenaNPCScript
-
-- Table of contents
- 0. Introduction
- 1. Definition of NPC
- 2. Explanation of Script, and Fundamental Rule
- 3. Imperative Sentence, Function, and Constant Label
- 4. Error Message
- 5. Postscript
-
-0. Introduction
- The function and form which are contained in this text refer to npc_sample.txt contained in the newest snapshot, and are described.
- The convenience of the editor which shows this text is considered, <tab> is written and <n> etc. is written. [ a tab character ] [ arbitrary values ].
- Although it is a coordinate system, please make a lower figure reference.
- The increase in ?Y
- ( 0,200)--(200,200)
- | |
- | |
- | |
- | |
- | |
- ( 0, 0)--(200, 0)-> the increase in X
-
-1. Definition of NPC
- if it is below an athena directory -- anywhere -- being good (if it being able to do below athena/npc) -- please create txt for the time being
- The NPC describes first what is shown (a way of speaking called NPC depending on the case is unsuitable).
-
- * Warp point : perform movement between MAP.
- <gatname>,<x>,<y><tab>warp<tab><displayname><tab><dx>,<dy>,<destination_gatname>,<destination_x>,<destination_y>
-
- gatname The MAP file name on which a warp point is put is specified. Please do not forget gat.
- x The horizontal coordinates on which a warp point is put are specified.
- y The vertical coordinates on which a warp point is put are specified.
- displayname It is a warp point discernment child. You may overlap. It uses by debugging.
- dx It is the horizontal effect range of a warp point.
- dy It is the vertical effect range of a warp point. Probably I do not write a circle but think that it is a region.
- Example of dx and dy (- is x and y) :
- 0,0 1,0 2,2
- *@*– *–*–*–*–*– *–*–*–*–*–*–*–
- *–*œ*– *–*–*œ*–*– *–*–*–*–*–*–*–
- *@*– *–*–*–*–*– *–*–*–*–*–*–*–
- *@ *–*–*–*œ*–*–*–
- *@ *–*–*–*–*–*–*–
- *@ *–*–*–*–*–*–*–
- *@ *–*–*–*–*–*–*–
- *@
- * I hear that and it will leap if the cell of - is stepped on.
- *@
- destination_gatname It is a warp place. . Even if there is gat and there is not, don't care about it.
- destination_x They are warp place horizontal coordinates.
- destination_y They are warp place vertical coordinates.
-
- Notes :
- A warp point displays only that plurality is described to be at the end when located on this position.
- When the coordinates of a warp place are move prohibition cells, it leaps to somewhere in the MAP.
-
- * Monster : manage the spawning(aka apperance in japanese.) of a monster.
- <gatname>,<x>,<y>,<xs>,<ys><tab>monster<tab><displayname><tab><npcid>,<number>,<spawn_delay1>,<spawn_delay2>[,<event>]
-
- gatname The appearing MAP file name is specified.
- x The appearing horizontal coordinates are specified. Random at 0.
- y The appearing vertical coordinates are specified. Random at 0.
- xs The appearing horizontal range is specified.
- ys The appearing vertical range is specified.
- Example of xs and ys (- is x and y) :
- 0,0 2,1
- *@*œ *–*–*–*–*–
- *@ *–*–*œ*–*–
- *@ *–*–*–*–*–
- *@
- * And a monster appears from the cell of -.
-
- displayname It is the display name of the appearing monster.
- npcid Please refer to mob_db.txt. id of the monster made to appear is specified.
- number It is the number of the maximum appearances in the MAP and the appearance range.
- spawn_delay1 After appearing, if specified the amount of time in milliseconds before it re-appears.
- spawn_delay2 After dying, if specified the amount of time in milliseconds before it re-appears.
- event The specified event is generated. An abbreviation is possible.
-
- Notes:
- spawn_delay1 and spawn_delay2 judge and give priority to whether it re-appears having been based the latest [ direction ] on which as a result.
-
- * Store : sell an item.
- <gatname>,<x>,<y>,<direction><tab>shop<tab><displayname><tab><npcid>,<item_id>:<price>,<item_id>:<price>,<item_id>:<price>
-
- gatname The MAP file name to arrange is specified.
- x The horizontal coordinates to arrange are specified.
- y The vertical coordinates to arrange are specified.
- direction Direction is specified.
- Details of direction :
- 7 0 1
- 6 2
- 5 4 3
-
- displayname The display name of the store to arrange is specified.
- npcid The display sprite ID of the store to arrange is specified.
- item_id The item ID put on the store to arrange is specified. Please refer to item_db.
- price The price of the item specified by item_id is set up.
- each <item_id>:<price> is divided by a comma (,), and more than one can be specified.
- example:
- item_id:price,item_id2,price2
-
- * Script : create NPC.
- <gatname>,<x>,<y>,<direction><tab>script<tab><displayname><tab><npcid>,<xs>,<ys>,{ <script> ... }
-
- gatname The MAP file name to arrange is specified.
- x The horizontal coordinates to arrange are specified.
- y The vertical coordinates to arrange are specified.
- direction Direction is specified.
- displayname The display name of NPC to arrange is specified. It becomes an event name when npcid is -1.
- When making said display name another operation event, it can be described as a display name::discernment child.
- npcid The display sprite ID of NPC to arrange is specified. If -1 is specified, it will become an event in map.
- xs The horizontal range which performs a script automatically is specified.
- ys The vertical range which performs a script automatically is specified. It is the same as a warp.
-
- Explanation about the inside of {} (inside parenthesis).
- Collecting by the party cannot recommend you. If it can do
- gatname etc,
- {
- //comment
- script;
- label:
- script;
- }
- Let's write by the said touch. Comment out is //and comment area is /* and */.
- The ? which does not leave; (semicolon) in the script ending.
-
- u<gatname>,<x>,<y>,<direction><tab>v‚Ì•”•ª‚ðAu-<tab>v‚Æ‚·‚邱‚Æ‚ÅA
- ƒ}ƒbƒvƒT[ƒo[“à‚É‚Í‘¶Ý‚µ‚Ä‚¢‚Ä‚àAŽÀۂ̃}ƒbƒv‚É‚Í”z’u‚³‚ê‚È‚¢NPC‚ð쬂ł«‚Ü‚·B
- ‚±‚ê‚ÍŒãq‚̃fƒ…ƒvƒŠƒP[ƒgƒXƒNƒŠƒvƒg‚ŃRƒs[Œ³‚Æ‚µ‚ÄŽg—p‚µ‚Ü‚·B
-
- –ƒfƒ…ƒvƒŠƒP[ƒgƒXƒNƒŠƒvƒgFŠù‘¶‚ÌNPCi‚̃XƒNƒŠƒvƒgj‚ðƒRƒs[‚µ‚Ü‚·B
- <gatname>,<x>,<y>,<direction><tab>duplicate(<source>)<tab><displayname><tab><npcid>,<xs><ys>
-
- sourceˆÈŠO‚̃pƒ‰ƒ[ƒ^‚Í’Êí‚̃XƒNƒŠƒvƒg‚Æ“¯‚¶‚Å‚·B
- source‚ɂ̓Rƒs[Œ³‚Æ‚È‚éNPC‚ÌŽ¯•Ê–¼‚ð“ü—Í‚µ‚Ü‚·B
-
- ƒRƒs[Œ³‚ÌNPC‚ªƒ}ƒbƒvã‚É”z’u‚³‚ê‚Ä‚¢‚éê‡A“¯‚¶ƒ}ƒbƒv‚Å‚ ‚é•K—v‚ª‚ ‚è‚Ü‚·B
- ƒ}ƒbƒvã‚É”z’u‚³‚ê‚Ä‚¢‚È‚¢ê‡‚ÍA‚ǂ̃}ƒbƒv‚Ö‚àƒRƒs[‰Â”\‚Å‚·B
-
- –ƒ†[ƒU[’è‹`ŠÖ”ƒXƒNƒŠƒvƒgFƒXƒNƒŠƒvƒg‚©‚çŒÄ‚Ño‚³‚ê‚郆[ƒU[’è‹`ŠÖ”‚ð쬂µ‚Ü‚·B
- function<tab>script<tab><name><tab>{ <script> ... }
-
- callfunc–½—߂ŌĂÑo‚·‚±‚Æ‚Ìo—ˆ‚éŠÖ”‚ð쬂µ‚Ü‚·B
- ŠÖ”‚ÌÅŒã‚É‚Í•K‚¸return–½—ß‚ð“ü‚ê‚Ä‚­‚¾‚³‚¢B
-
- –ƒ}ƒbƒvƒtƒ‰ƒOFMAP‚̃‹[ƒ‹‚ðŠÇ—‚µ‚Ü‚·B
- <gatname><tab>mapflag<tab><const>
-
- gatname ƒ‹[ƒ‹‚ðÝ’è‚·‚éMAPƒtƒ@ƒCƒ‹–¼‚ðŽw’肵‚Ü‚·B
- const ƒ‹[ƒ‹‚Ì“à—e‚ðŽw’肵‚Ü‚·B
-
- const‚̈ꗗB
- nosave<tab><gatname>,<x>,<y>
- ƒŠƒƒOƒCƒ“‚µ‚½Û<gatname>‚ÌÀ•W<x>,<y>‚Ɉړ®‚µ‚Ü‚·B
- nomemo<tab>dummy
- ƒƒ‚‚ðŽæ‚邱‚Æ‚ð‹ÖŽ~‚µ‚Ü‚·B
- notereport<tab>dummy
- SavePoint‚Ü‚½‚ÍRandom‚ðŽw’肵‚½warp•¶Aƒ[ƒvƒ|[ƒ^ƒ‹AƒeƒŒƒ|[ƒg‚ð‹ÖŽ~‚µ‚Ü‚·B
- nobranch<tab>dummy
- ŒÃ–Ø‚ÌŽ}‚ÌŽg—p‚ð‹ÖŽ~‚µ‚Ü‚·B
- pvp<tab>dummy
- PVP‰Â”\MAP‚É‚È‚è‚Ü‚·B
- nopenalty<tab>dummy
- ƒfƒXƒyƒiƒ‹ƒeƒB–³‚µ‚É‚È‚è‚Ü‚·B
- pvp_noparty<tab>dummy
- PVP‚É‚¨‚¢‚ÄA“¯ƒp[ƒeƒB[UŒ‚•s‰Â‚É‚È‚è‚Ü‚·B
- pvp_noguild<tab>dummy
- PVP‚É‚¨‚¢‚ÄA“¯ƒMƒ‹ƒhUŒ‚•s‰Â‚É‚È‚è‚Ü‚·B
- gvg<tab>dummy
- ƒV[ƒYƒ‚[ƒh‚É‚È‚è‚Ü‚·B
- gvg_noparty<tab>dummy
- ƒV[ƒYƒ‚[ƒh‚É‚¨‚¢‚ÄA“¯ƒp[ƒeƒB[UŒ‚•s‰Â‚É‚È‚è‚Ü‚·B
-
-‚QDƒXƒNƒŠƒvƒg‚Ìà–¾‚ÆŠî–{“I‚È‹K‘¥
- –”Žš
- •„†•t‚Ì®”‚Æ‚P‚Ui”•\‹L®”‚ðŽg—p‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
- •„‡•t®”‚Í”¼Šp”Žš‚Å123456“™‚Æ‹Lq‚µ‚Ü‚·B
- ‚P‚Ui”•\‹L®”‚Í0x12“™0x‚ð•t‚¯‚Ä‹Lq‚µ‚Ü‚·B
-
- –•¶Žš—ñ
- "iƒ_ƒuƒ‹ƒNƒH[ƒe[ƒVƒ‡ƒ“j‚ň͂ñ‚¾•¶Žš‚Í•¶Žš—ñ‚Æ‚µ‚Ä•]‰¿‚³‚ê‚Ü‚·B
- "iƒ_ƒuƒ‹ƒNƒH[ƒe[ƒVƒ‡ƒ“j‹L†‚ðˆµ‚¢‚½‚¢ê‡‚Í\"‚Æ‹Lq‚µ‚Ü‚·B
- \‹L†‚ðˆµ‚¢‚½‚¢ê‡‚Í\\‚Æ‹Lq‚µ‚Ü‚·B
- ‚È‚¨•\Ž¦ŠÖŒW‚Ì•¨‚ÉŠÖ‚µ‚Ä‚Í^000000“™‚ÌF•ÏX‚ðŽg‚¤‚±‚Æ‚ª‚Å‚«‚Ü‚·B
- •Ï” + "•¶Žš—ñ"‚Æ‚¢‚Á‚½•¶Žš—ñŒ‹‡‚à‚Å‚«‚Ü‚·B
-
- –’P€‰‰ŽZŽq
- ˆÈ‰º‚Ì”’lê—p‚Ì’P€‰‰ŽZŽq‚ª—pˆÓ‚³‚ê‚Ä‚¢‚Ü‚·B
- - •„†‹t“]i‚Q‚Ì•â”j
- ~ ƒrƒbƒg˜_—”Û’èi‚P‚Ì•â”j
- ! ˜_—”Û’è
-
- –‚Q€‰‰ŽZŽq
- ˆÈ‰º‚Q€‰‰ŽZŽq‚Í”’l‚Æ•¶Žš—ñ‚Å“®ì‚ªˆÙ‚È‚è‚Ü‚·B
- + ‰ÁŽZ/Œ‹‡
- ”’l‚Ç‚¤‚µ‚Ìꇂ͉ÁŽZ‚µ‚Ü‚·B
- ‚»‚êˆÈŠO‚Ìꇂ͕¶Žš—ñ‚Æ‚Ý‚È‚µ‚ÄŒ‹‡‚µ‚Ü‚·B
-
- ˆÈ‰º‚Ì‚Q€‰‰ŽZŽq‚Í”’lê—p‚Å‚·B
- - Œ¸ŽZ
- * æŽZ
- / œŽZ
- % è—]
- & ƒrƒbƒg˜_—Ï
- | ƒrƒbƒg˜_—˜a
- ^ ƒrƒbƒg”r‘¼“I˜_—˜a
- && ˜_—Ï
- || ˜_—˜a
-
- ˆÈ‰º‚Ì‚Q€‰‰ŽZŽq‚Í”’l‚Ç‚¤‚µA‚Ü‚½‚Í•¶Žš—ñ‚Ç‚¤‚µ‚Ì”äŠr‚ðs‚¢‚Ü‚·B
- ‚±‚ê‚ç‚ÌŠÖŒW‰‰ŽZŽq‚ÍŠÖŒW‚ª¬‚è—§‚‚Æ1A¬‚è—§‚½‚È‚¢‚Æ0‚ð•Ô‚µ‚Ü‚·B
- == “™‚µ‚¢
- != “™‚µ‚­‚È‚¢
- > ‚æ‚è‘å‚«‚¢
- >= ‚æ‚è‘å‚«‚¢‚©“™‚µ‚¢iˆÈãj
- < ‚æ‚謂³‚¢i–¢–žj
- <= ‚æ‚謂³‚¢‚©“™‚µ‚¢iˆÈ‰ºj
-
- –•Ï”
- ”¼Šp‰p”Žš‚ðŽg—p‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
- •Ï”‚̃XƒR[ƒv‚ƃ‰ƒCƒtƒ^ƒCƒ€‚̓vƒŒƒtƒBƒbƒNƒX‚É‚æ‚èŽw’肵‚Ü‚·B
- ¬•¶Žš‚̃Gƒ‹‚̓vƒŒƒtƒBƒbƒNƒX‚Æ‚µ‚Ĉµ‚í‚ê‚é‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
- (¬•¶Žš‚̃Gƒ‹‚Í¡Œã‚Ì“®ì‚ð•ÛႳ‚ê‚È‚¢‚Ì‚ÅŽg—p‚µ‚È‚¢‚ʼnº‚³‚¢)
-
- ƒvƒŒƒtƒBƒbƒNƒX ƒXƒR[ƒv ƒ‰ƒCƒtƒ^ƒCƒ€
- (‚È‚µ) ƒLƒƒƒ‰ƒNƒ^[ ‰i‘±“I
- @ ƒLƒƒƒ‰ƒNƒ^[ ˆêŽž“I
- l “¯ã “¯ãi„§‚³‚ê‚È‚¢j
- $ ƒ}ƒbƒvƒT[ƒo[ ‰i‘±“I
- $@ ƒ}ƒbƒvƒT[ƒo[ ˆêŽž“I
- # ƒAƒJƒEƒ“ƒg ‰i‘±“I
- ## ƒAƒJƒEƒ“ƒg(‘Sƒ[ƒ‹ƒh) ‰i‘±“I
-
- ‚‚܂èA•’ʂ̈ꎞ“I‚È•Ï”‚Í@, •Û‘¶‚·‚é•K—v‚Ì‚ ‚é•Ï”‚Í
- ƒvƒŒƒtƒBƒbƒNƒX‚È‚µA‘S‚ẴLƒƒƒ‰ƒNƒ^[‚Å‹¤—L‚·‚ׂ«•Ï”‚Í $A
- “¯ˆêƒAƒJƒEƒ“ƒg‚Å‹¤—L‚·‚ׂ«•Ï”‚Í # ‚â ## ‚ðŽg—p‚·‚邱‚Æ‚É‚È‚è‚Ü‚·B
-
- ‚Ü‚½A•Ï”‚ÌŒ^‚̓|ƒXƒgƒtƒBƒbƒNƒX‚É‚æ‚èŽw’肵‚Ü‚·B
- ‚½‚¾‚µA•¶Žš—ñŒ^‚̓Lƒƒƒ‰ƒNƒ^[ˆêŽž•Ï”A‚¨‚æ‚ÑA
- ‰i‘±“I/ˆêŽž“Iƒ}ƒbƒvƒT[ƒo[•Ï”‚Å‚Ì‚ÝŽg—p‚Å‚«‚Ü‚·B
- iƒvƒŒƒtƒBƒbƒNƒX @A$A$@ j
-
- ƒ|ƒXƒgƒtƒBƒbƒNƒX Œ^
- (‚È‚µ) ®”
- $ •¶Žš—ñ
-
- <—á> @hoge$ •¶Žš—ñŒ^ˆêŽž“IƒLƒƒƒ‰ƒNƒ^[•Ï”
- hoge ”’lŒ^‰i‘±“IƒLƒƒƒ‰ƒNƒ^[•Ï”
- $hoge ”’lŒ^‰i‘±“I‘SƒLƒƒƒ‰ƒNƒ^[‹¤—L•Ï”
-
- ˆêŽž“I‚Å‚È‚¢•Ï”‚Í‘½—p‚·‚ׂ«‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
- •Û‘¶‚·‚é•K—v‚Ì‚È‚¢‚à‚̂͋ɗ͈ꎞ•Ï”‚ÅÏ‚Ü‚¹‚é‚ׂ«‚Å‚·B
- •Û‘¶‚·‚é•K—v‚ª‚ ‚é‚Ì‚©‚È‚¢‚Ì‚©‚Í‚æ‚­l—¶‚µ‚Ä‚­‚¾‚³‚¢B
- “Á‚ɉi‘±“I‚ȃLƒƒƒ‰ƒNƒ^[/ƒAƒJƒEƒ“ƒg•Ï”‚ÍA”‚ɧŒÀ‚ª‚ ‚è‚Ü‚·B
- Žg—p‚ªI‚í‚Á‚Ä“ñ“x‚ÆŽg—p‚·‚邱‚Æ‚ª‚È‚¢‚Æ‚í‚©‚Á‚Ä‚¢‚é•Ï”‚Í
- ’l‚ð0‚ÉÝ’è‚·‚邱‚Æ‚Å휂·‚邱‚Æ‚ªo—ˆ‚Ü‚·B
-
- –”z—ñ•Ï”
- •Ï”–¼‚ÌŒã‚ÉŠ‡ŒÊ [ ] ‚ÅŠ‡‚Á‚½Ž®‚ðŽw’è‚·‚邱‚Æ‚Å”z—ñ•Ï”‚É‚È‚è‚Ü‚·B
- •Ï”–¼‚Æ"["‚ÌŠÔ‚É‹ó”’•¶Žš‚ð“ü‚ê‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñB
-
- <—á> hoge[10] fuga[ @temp ]
-
- ”z—ñ‚Ì—v‘f”Ô†‚Í0`127‚ªŽw’è‚Å‚«‚Ü‚·‚ªA”Ô†0‚Í“¯–¼‚Ì•Ï”‚Æ
- ’l‚ð‹¤—L‚µ‚Ü‚·B‚½‚Æ‚¦‚ÎAhoge[0] ‚Æ hoge ‚Í“¯‚¶•Ï”‚Å‚·B
-
- ”z—ñ•Ï”‚͈ꎞ“IƒLƒƒƒ‰ƒNƒ^[•Ï”AˆêŽž“I/‰i‘±“Iƒ}ƒbƒvƒT[ƒo[•Ï”‚ÅŽg—p‚Å‚«‚Ü‚·B
- •Ï”‚ÌŒ^‚Í”’lA•¶Žš—ñ—¼•û‚Æ‚à—˜—p‚Å‚«‚Ü‚·B
-
- –ƒ‰ƒxƒ‹
- ”¼Šp‰p”‚¨‚æ‚уAƒ“ƒ_[ƒo[‚ªŽg—p‚Å‚«‚Ü‚·B
- •Ï”‚â–½—ß‚È‚Ç‚Æ‹æ•Ê‚·‚邽‚ß L_ ‚ð擪‚ɂ‚¯‚邱‚Æ‚ª„§‚³‚ê‚Ü‚·B
- L_hoge: ‚Æ‚¢‚Á‚½•—‚ÉŽg—p‚µ‚Ü‚·B
- if•¶‚âmenu•¶‚̃Wƒƒƒ“ƒvæ‚ÉŽw’肳‚ê‚Ü‚·B
-
- –’è”
- athena‚Ídb/const.txt‚É€‹’‚µ‚½’蔂ð’ñ‹Ÿ‚µ‚Ü‚·B
- ƒXƒNƒŠƒvƒg“à‚Å‚Ì‚ÝŽg—p‰Â”\‚Å‚·B
-
- ––„‚ßž‚Ý•Ï”
- ˜b‚©‚¯‚½ƒvƒŒƒCƒ„[‚̃Xƒe[ƒ^ƒX‚È‚Ç‚ðŽQÆ‚Å‚«‚Ü‚·B
- db/const.txt‚É‹Lq‚³‚ê‚Ä‚¢‚Ü‚·B
- ƒXƒNƒŠƒvƒg“à‚Å‚Ì‚ÝŽg—p‰Â”\‚Å‚·B
- ‚È‚¨Aˆê•”‚𜂢‚Ä’l‚Ì‘ã“ü‚Í‚Å‚«‚Ü‚¹‚ñB
-
- –Ž®
- –½—ß•¶‚̈ø”‚ª”’l‚¾‚Á‚½ê‡A‚»‚±‚Å—˜—p‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
- ƒXƒy[ƒX‚Í—v‚ç‚È‚¢‚悤‚Å‚·‚ª‚ ‚Á‚½•û‚ªŒ©ˆÕ‚¢‚Å‚·B
- ”äŠr‰‰ŽZŽq‹y‚ј_—‰‰ŽZŽq‚Í’l‚ª^‚Å‚ ‚Á‚½‚Æ‚«”’l‚Ì1A‹U‚Å‚ ‚Á‚½‚Æ‚«0‚ð•Ô‚µ‚Ü‚·B
-
- –ƒCƒxƒ“ƒg
- Œ`‚ðŽ‚½‚È‚¢ƒXƒNƒŠƒvƒg‚Å‚·B
- ƒ^ƒCƒ€ƒAƒ^ƒbƒN‚È‚Ç‚Ì쬂Ɏg‚¢‚Ü‚·B
- ƒCƒxƒ“ƒg–¼‚ð‹Lq‚·‚é•”•ª‚Å‚ÍAƒCƒxƒ“ƒg–¼::ƒ‰ƒxƒ‹–¼‚Æ‚·‚邱‚Æ‚Å‚»‚̃Cƒxƒ“ƒg‚ÌŽw’肵‚½ƒ‰ƒxƒ‹‚©‚ç
- ƒXƒNƒŠƒvƒg‚ðŠJŽn‚³‚¹‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
-
- ––½—ß\•¶
- ˆø”‚Í”¼ŠpƒXƒy[ƒX‚ð‹ó‚¯‚Ä‹Lq‚µ‚Ä‚­‚¾‚³‚¢B
-
-‚RD–½—ß•¶‹y‚ÑŠÖ”‹y‚ђ蔃‰ƒxƒ‹
- ––½—ß•¶
- mes–½—ß
- mes <string>;
-
- string •¶Žš—ñ
-
- <string>‚É‹Lq‚³‚ꂽ•¶Žš—ñ‚ðƒƒbƒZ[ƒWƒEƒBƒ“ƒhƒE‚Éo—Í‚µ‚Ü‚·B
-
- next–½—ß
- next;
-
- ƒƒbƒZ[ƒWƒEƒBƒ“ƒhƒE‚Énextƒ{ƒ^ƒ“‚ð•\Ž¦‚µA‘Ò‹@‚µ‚Ü‚·B
-
- close–½—ß
- close;
-
- ƒƒbƒZ[ƒWƒEƒBƒ“ƒhƒE‚Écloseƒ{ƒ^ƒ“‚ð•\Ž¦‚µAƒXƒNƒŠƒvƒg‚ðI—¹‚µ‚Ü‚·B
-
- menu–½—ß
- menu <string1>,<label1>[,<stringN>,<labelN>...];
-
- stringN •¶Žš—ñ
- labelN ƒ‰ƒxƒ‹
-
- ƒƒjƒ…[‚ð•\Ž¦‚µ‚Ü‚·B<stringN>‚É‹Lq‚³‚ꂽ•¶Žš—ñ‚ð‘I‘ð‚·‚é‚Æ<labelN>‚©‚çƒXƒNƒŠƒvƒg‚ðŠJŽn‚µ‚Ü‚·B
- ‚Ü‚½A‘I‚΂ꂽƒ‰ƒxƒ‹‚̔Ԇ‚Í•Ï”@menu‚É‘ã“ü‚³‚ê‚Ü‚·B
- (l15‚É‚à‘ã“ü‚³‚ê‚Ü‚·‚ªA‚±‚¿‚ç‚Í¡Œã“®ì‚ª•ÛႳ‚ê‚È‚¢‚Ì‚Ål15‚ÍŽg—p‚µ‚È‚¢‚ʼnº‚³‚¢j
-
- goto–½—ß
- goto <label>;
-
- label ƒ‰ƒxƒ‹
-
- <label>‚©‚çƒXƒNƒŠƒvƒg‚ðŠJŽn‚µ‚Ü‚·B
-
- cutin–½—ß
- cutin <filename>,<position>;
-
- filename •¶Žš—ñ
- position ”’l
-
- ƒJƒvƒ‰Eˆõ‚Ȃǂ̃JƒbƒgƒCƒ“‚ð•\Ž¦‚µ‚Ü‚·B<filename>‚Í•\Ž¦‚µ‚½‚¢ƒtƒ@ƒCƒ‹–¼A<position>‚Í•\Ž¦ˆÊ’u‚ðŽw’肵‚Ü‚·B
- positionF0,¶‰ºA1,’†‰›‰ºA2,‰E‰ºA255,ƒJƒbƒgƒCƒ“Á‹Ž
-
- jobchange–½—ß
- jobchange <job>[, <upper>];
-
- job ”’l
- upper ”’l
-
- E‹Æ‚ð•ÏX‚µ‚Ü‚·B<job>‚Ídb/const.txt‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
- <upper>‚Í0=’Êí,1=“]¶,2=—{Žq,-1 or –³‚µ=Œ»Ý‚Ì<upper>‚É‚È‚è‚Ü‚·B
- jobLv‚ÍŽ©“®‚Å‚P‚É‚È‚è‚Ü‚·B
- ƒo[ƒh‚ƃ_ƒ“ƒT[‚É‚Í’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
-
- input–½—ß
- input [<variable>];
-
- variable •Ï”AÈ—ª‰Â
-
- “ü—̓EƒBƒ“ƒhƒE‚ðŠJ‚«A“ü—̓f[ƒ^‚ð<variable>‚É‘ã“ü‚µ‚Ü‚·B
- •Ï”‚ÌŒ^‚ª•¶Žš—ñŒ^‚Ì‚Æ‚«‚Í•¶Žš—ñ“ü—̓EƒBƒ“ƒhƒEA®”Œ^‚Ì‚Æ‚«‚Í”’l“ü—̓EƒBƒ“ƒhƒE‚É‚È‚è‚Ü‚·B
- <variable>‚ðÈ—ª‚µ‚½ê‡‚É‚Í”’l“ü—̓EƒBƒ“ƒhƒE‚ðo‚µAƒf[ƒ^‚Í•Ï”l14 (¬•¶Žš‚̃Gƒ‹+14)‚É‘ã“ü‚³‚ê‚Ü‚·B
- il14‚Í¡Œã‚Ì“®ì‚ª•ÛႳ‚ê‚È‚¢‚Ì‚ÅAˆø”‚ÍÈ—ª‚µ‚È‚¢‚ʼnº‚³‚¢j
-
- warp–½—ß
- warp <gatname>,<x>,<y>;
-
- gatname •¶Žš—ñ
- x,y ”’l
-
- <gatname>‚ÉŽw’肳‚ꂽMAP‚ÌÀ•W<x>,<y>‚Ƀ[ƒv‚µ‚Ü‚·B
- <gatname>‚ðSavePoint‚É‚µ‚½ê‡AƒZ[ƒuƒ|ƒCƒ“ƒg‚Ɉړ®‚µ‚Ü‚·B
- Random‚É‚µ‚½ê‡A‚»‚ÌMAP“à‚Ì‚Ç‚±‚©‚Ɉړ®‚µ‚Ü‚·B‘¦‚¿<x><y>‚Í–³Ž‹B
-
- setlook–½—ß
- setlook <n1>,<n2>;
-
- n1,n2 ”’l
-
- ŠOŒ©‚ð•ÏX‚µ‚Ü‚·B<n1>‚Í•”•i‚ðA<n2>‚ÍŽí—Þ‚ðŽw’肵‚Ü‚·B
- n1F1,”¯Œ^A2,•ŠíA3,“ªã’iA4,“ª’†’iA5,“ª‰º’iA6,”¯FA7,•žFA8,‚
- ‘•”õ•i‚Í•ÏX‚³‚ê‚Ü‚¹‚ñBƒAƒTƒVƒ“’j‚ƃ[ƒO’j‚ÉŠÖ‚µ‚Ä‚Í•ž‚ÌF‚ª‚ ‚è‚Ü‚¹‚ñB
-
-
- set–½—ß
- set <variable>,<n>;
-
- variable •Ï”
- n ”’l/•¶Žš—ñ
-
- <variable>‚É<n>‚ð‘ã“ü‚µ‚Ü‚·B
- •¶Žš—ñŒ^‚ðŽg—p‚·‚é‚Æ‚«‚Í•Ï”–¼‚Ƀ|ƒXƒgƒtƒBƒbƒNƒX‚ð–Y‚ê‚È‚¢‚ʼnº‚³‚¢B
-
- setarray–½—ß
- setarray <variable>[,<n0>[,<n1>c]];
-
- variable •Ï”
- nx ”’l/•¶Žš—ñ
-
- ”z—ñ<variable>‚É’l<n0>,<n1>,c‚̃ŠƒXƒg‚ð‘ã“ü‚µ‚Ü‚·B
- <variable>‚Í”z—ñ–¼‚ðŽw’è‚·‚é‚Æʼn‚©‚çA—v‘f”Ô†‚àŽw’è‚·‚ê‚Γr’†‚©‚ç‘ã“ü‚Å‚«‚Ü‚·B
- <—á> setarray @hoge[2],16,24,32; @hoge‚Ì—v‘f2‚©‚ç4‚Ü‚Å‚ð16,24,32‚É‚·‚éB
-
- cleararray–½—ß
- cleararray <variable>,<n>,<count>;
-
- variable •Ï”
- n ”’l/•¶Žš—ñ
- count ”’l
-
- ”z—ñ<variable>‚É’l<n>‚ð<count>ŒÂ•ª‘ã“ü‚µ‚Ü‚·B
- <variable>‚Í”z—ñ–¼‚ðŽw’è‚·‚é‚Æʼn‚©‚çA—v‘f”Ô†‚àŽw’è‚·‚ê‚Γr’†‚©‚ç‘ã“ü‚Å‚«‚Ü‚·B
- <—á> cleararray @hoge[3],0,6; @hoge‚Ì—v‘f3‚©‚ç8‚Ü‚Å‚ð0‚ɃZƒbƒg‚·‚é
-
- copyarray–½—ß
- copyarray <var1>,<var2>,<n>;
-
- <var1>,<var2> •Ï”
- n ŒÂ”
-
- ”z—ñ<var1>‚É”z—ñ<var2>‚Ì—v‘f<n>ŒÂ‚ðƒRƒs[‚µ‚Ü‚·B
- <var1>,<var2>‚Í”z—ñ–¼‚ðŽw’è‚·‚é‚Æʼn‚©‚çA—v‘f”Ô†‚àŽw’è‚·‚ê‚Γr’†‚©‚çƒRƒs[‚Å‚«‚Ü‚·B
-
- deletearray–½—ß
-
- deletearray <variable>,<n>;
-
- variable •Ï”
- n ”’l
-
- ”z—ñ<variable>‚©‚ç<n>ŒÂ‚Ì—v‘f‚ð휂µAŒã‚ë‚Ì—v‘f‚ð‘O‚É‹l‚ß‚é
- <variable>‚Í”z—ñ–¼‚ðŽw’è‚·‚é‚Æʼn‚©‚çA—v‘f”Ô†‚àŽw’è‚·‚ê‚Γr’†‚©‚ç휂ł«‚Ü‚·B
-
- if–½—ß
- if (<cond>) goto <label>;
-
- cond ”’l
- label ƒ‰ƒxƒ‹
-
- <cond>‚ª0ˆÈŠO‚Ìê‡A<label>‚©‚çƒXƒNƒŠƒvƒg‚ðŠJŽn‚µ‚Ü‚·B
-
- getitem–½—ß
- getitem <itemid>,<num>;
-
- itemid ”’l‚Ü‚½‚Í•¶Žš—ñ
- num ”’l
-
- <itemid>‚ÉŽw’肳‚ꂽƒAƒCƒeƒ€ID‚ðŽ‚ƒAƒCƒeƒ€‚ð<num>ŒÂ•ª“üŽè‚µ‚Ü‚·B
- <itemid>‚ª•¶Žš—ñ‚Ìê‡A‚»‚Ì–¼‘O(name,jname)‚ðŽ‚ƒAƒCƒeƒ€‚ÌID‚ðŽg—p‚µ‚Ü‚·B
- ‚½‚¾‚µAƒAƒCƒeƒ€–¼‚Íitem_db.txt‚ȂǂɈˑ¶‚·‚邽‚ßAƒeƒXƒg–Ú“IˆÈŠO‚Å‚ÍŽg—p‚·‚ׂ«‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
-
- getitem2–½—ß
- getitem <itemid>,<num>,<identify>,<refine>,<attribute>,<card1>,
- <card2>,<card3>,<card4>
-
- itemid ”’l‚Ü‚½‚Í•¶Žš—ñ
- num,identify,refine,attribute,card1,card2,card3,card4 ”’l
-
- <itemid>‚ÉŽw’肳‚ꂽƒAƒCƒeƒ€ID‚ðŽ‚ƒAƒCƒeƒ€‚ð<num>ŒÂ•ª“üŽè‚µ‚Ü‚·B
- <identify> ŠÓ’èó‘Ô(0‚Å–¢ŠÓ’èA1‚ÅŠÓ’è)
- <refine> ¸˜B’l
- <attribute> ƒAƒCƒeƒ€‚Ìó‘Ô
- <card1> ·‚³‚Ä‚¢‚éƒJ[ƒhA»‘¢•Ší‚È‚ç255‚Å‘•”õˆÈŠO‚̃AƒCƒeƒ€‚ŃLƒƒƒ‰‚Ì–¼‘O‚ð“ü‚ꂽ‚¢Žž‚Í254
- <card2> ·‚³‚Ä‚¢‚éƒJ[ƒhA»‘¢•Ší‚È‚ç‘®«‚Ư‚Ì‚©‚¯‚ç‚Ì”‚ðÝ’èB¯‚Ì‚©‚¯‚ç‚Ì”(”͈Í:0~3)*5*256 + ‘®«(–³:0A‰Î:3A…:1A•—:4A“y:2)
- <card3> ·‚³‚Ä‚¢‚éƒJ[ƒhA»‘¢•Ší‚âƒLƒƒƒ‰‚Ì–¼‘O‚ª“ü‚éƒAƒCƒeƒ€‚̓Lƒƒƒ‰ID‚̉º‚Ì2ƒoƒCƒg
- <card4> ·‚³‚Ä‚¢‚éƒJ[ƒhA»‘¢•Ší‚âƒLƒƒƒ‰‚Ì–¼‘O‚ª“ü‚éƒAƒCƒeƒ€‚̓Lƒƒƒ‰ID‚Ìã‚Ì2ƒoƒCƒg
-
- <itemid>‚ª•¶Žš—ñ‚Ìê‡A‚»‚Ì–¼‘O(name,jname)‚ðŽ‚ƒAƒCƒeƒ€‚ÌID‚ðŽg—p‚µ‚Ü‚·B
- ‚½‚¾‚µAƒAƒCƒeƒ€–¼‚Íitem_db.txt‚ȂǂɈˑ¶‚·‚邽‚ßAƒeƒXƒg–Ú“IˆÈŠO‚Å‚ÍŽg—p‚·‚ׂ«‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
-
- delitem–½—ß
- delitem <itemid>,<num>;
-
- itemid_num ”’l
-
- <itemid>‚ÉŽw’肳‚ꂽƒAƒCƒeƒ€ID‚ðŽ‚ƒAƒCƒeƒ€‚ð<num>ŒÂ•ªŽ¸‚¢‚Ü‚·B
-
- getexp–½—ß
- getexp <base_exp>,<job_exp>;
-
- base_exp ”’l
- job_exp ”’l
-
- <base_exp>‚ÉŽw’肳‚ꂽ”‚¾‚¯Base‚ÉŒoŒ±’l‚ª“ü‚è‚Ü‚·B
- <job_exp>‚ÉŽw’肳‚ꂽ”‚¾‚¯Job‚ÉŒoŒ±’l‚ª“ü‚è‚Ü‚·B
- ƒ}ƒCƒiƒX‚Ì”Žš‚Í“K‰ž‚³‚ê‚Ü‚¹‚ñB
-
- makepet–½—ß
- makepet <petid>;
-
- petid ”’l
-
- <petid>‚ÉŽw’肳‚ꂽƒAƒCƒeƒ€ID‚ðŽ‚ƒyƒbƒg‚Ì—‘‚ð쬂µ‚Ü‚·B
-
- viewpoint–½—ß
- viewpoint <type>,<x>,<y>,<id>,<color>;
-
- type,x,y,id ”’l
- color •s–¾
-
- Ž‘—¿•s‘«‚È‚Ì‚ÅÚ‚µ‚¢à–¾‚Í‚Å‚«‚Ü‚¹‚ñ‚ªAƒ~ƒjMAP‚É“_–Å‚·‚é“_‚ð•\Ž¦A휂µ‚Ü‚·B
- type:1,•\Ž¦A2,íœ
-
- heal–½—ß
- heal <hp>,<sp>;
-
- hp,sp ”’l
-
- <hp>•ªHP‚ðA<sp>•ªSP‚ð‰ñ•œ‚µ‚Ü‚·B
-
- itemheal–½—ß
- itemheal <hp>,<sp>;
-
- hp,sp ”’l
-
- <hp>•ªHP‚ðA<sp>•ªSP‚ð‰ñ•œ‚µ‚Ü‚·Bheal‚Ƃ͈Ⴂ‰ñ•œ‚·‚éHP‚ÆSP‚Ì—Ê‚ÉVIT(SP‚Ìê‡INT)‚ƃXƒLƒ‹‚É‚æ‚é•â³‚ª•t‚«‚Ü‚·B
-
- end–½—ß
- end;
-
- ƒXƒNƒŠƒvƒg‚ÌŽÀs‚ðI—¹‚µ‚Ü‚·B
-
- setoption–½—ß
- setoption <string>;
-
- string •¶Žš—ñ
-
- ˆø—pF
- PC‚Ɉȉº‚ÅŽ¦‚·•t‘®•i(?)‚ð•t‚¯‚Ü‚·B
- 0x0000 - •t‘®•iíœ
- 0x0001 - ?
- 0x0002 - ƒnƒCƒh(‰e•t‚«)
- 0x0004 - ??
- 0x0008 - ƒJ[ƒg
- 0x0010 - ‘é
- 0x0020 - ƒyƒRƒyƒR(ƒiƒCƒg,ƒNƒ‹ƒZƒCƒ_[‚ÌŽž‚Ì‚Ý—LŒø)
- 0x0040 - ƒnƒCƒh(‰e–³‚µ)
- 0x0080 - ƒJ[ƒg2
- 0x0100 - ƒJ[ƒg3
- 0x0200 - ƒJ[ƒg4
- 0x0400 - ƒJ[ƒg5
- 0x0800 - “ª‚ªƒI[ƒN(Sage‚̃XƒLƒ‹AƒŠƒo[ƒXƒI[ƒLƒbƒVƒ…‚ª‚©‚©‚Á‚½ó‘Ô‚É‚È‚é)
-
- ˆê’[‚·‚ׂÄÁ‚³‚ê‚Ä‚©‚ç•t‚¯’¼‚·‚Ì‚ÅA•¡”Žw’肵‚½‚¢ê‡‚ɂ͇Œv‚ðŽw’肵‚Ä‚­‚¾‚³‚¢B
-
- savepoint–½—ß
- savepoint <gatname>,<x>,<y>;
-
- gatname •¶Žš—ñ
- x,y ”’l
-
- <gatname>‚ÌÀ•W<x>,<y>‚ðƒZ[ƒuƒ|ƒCƒ“ƒg‚Éݒ肵‚Ü‚·B
-
- openstorage–½—ß
- openstorage;
-
- ‘qŒÉ‚ðŠJ‚«‚Ü‚·B
-
- setcart–½—ß
- setcart;
-
- ƒJ[ƒg‚ð•t‚¯‚Ü‚·B
-
- successrefitem–½—ß
- successrefitem <n>;
-
- n ”’l
-
- ¸˜B¬Œ÷ƒGƒtƒFƒNƒg‚ð•\Ž¦‚µ‚Ü‚·B
- n:1,“ª‘•”õA2,ŠZA3,¶ŽèA4,‰EŽèA5,‚©‚¯‚é‚à‚ÌA6,ŒCA7,ƒAƒNƒZ‚PA8,ƒAƒNƒZ‚QA9,“ª’†’iA10,“ª‰º’i
-
- failedrefitem–½—ß
- failedrefitem <n>;
-
- n ”’l
-
- ¸˜BŽ¸”sƒGƒtƒFƒNƒg‚ð•\Ž¦‚µ‚Ü‚·B
- n:1,“ª‘•”õA2,ŠZA3,¶ŽèA4,‰EŽèA5,‚©‚¯‚é‚à‚ÌA6,ŒCA7,ƒAƒNƒZ‚PA8,ƒAƒNƒZ‚QA9,“ª’†’iA10,“ª‰º’i
-
- setfalcon–½—ß
- setfalcon;
-
- ‘é‚ð•t‚¯‚Ü‚·B
-
- setriding–½—ß
- setriding;
-
- ƒyƒRƒyƒR‚Éæ‚è‚Ü‚·B
-
- monster–½—ß
- monster <gatname>,<x>,<y>,<mobname>,<mobid>,<num>[,<event>];
-
- gatname,mobname •¶Žš—ñ
- x,y,mobid,num ”’l
- event •¶Žš—ñAÈ—ª‰Â
-
- <gatname>‚ÌÀ•W<x>,<y>‚É<mobname>‚ðŽ‚Â<mobid>‚ÉŽw’肳‚ꂽID‚ðŽ‚ƒ‚ƒ“ƒXƒ^[‚ð<num>‘ÌoŒ»‚³‚¹‚Ü‚·B
- <gatname>‚ªthis‚ÌꇃXƒNƒŠƒvƒg‚ðŽÀs‚µ‚½ƒvƒŒƒCƒ„[‚ª‚¢‚éMAPA
- <x><y>‚ª-1‚Ìê‡AƒXƒNƒŠƒvƒg‚ðŽÀs‚µ‚½ƒvƒŒƒCƒ„[‚ÌÀ•WA
- <mobname>‚ª--en--‚ÌꇉpŒê–¼A--ja--‚Ìꇓú–{Œê–¼A<mobid>‚ª-1‚Ìꇃ‰ƒ“ƒ_ƒ€B
- ‚»‚̃‚ƒ“ƒXƒ^[‚ð“|‚µ‚½‚Æ‚«<event>‚ðŠJŽn‚µ‚Ü‚·B
-
- announce–½—ß
- announce <string>,<flag>;
-
- string •¶Žš—ñ
- flag ”’l
-
- <string>‚ð‚f‚lƒAƒiƒEƒ“ƒX‚Å•\Ž¦‚µ‚Ü‚·B
- <flag>‚͈ȉº‚ÉŽ¦‚·’Ê‚è‚Å‚·B
- ƒGƒŠƒAƒtƒ‰ƒO
- 0x00 ‚·‚ׂĂ̂l‚`‚o‚É‘—M
- 0x01 “¯‚¶‚l‚`‚o
- 0x02 ‰æ–Ê“à
- 0x03 Ž©•ª‚Ì‚Ý
- 0x04 “¯‚¶‚l‚`‚oŽI
- Fƒtƒ‰ƒO
- 0x00 ‰©F
- 0x10 ÂF
- “ÁŽêƒtƒ‰ƒO
- 0x00 “Á‚É–³‚µ
- 0x08 ƒCƒxƒ“ƒg—p
-
- ƒGƒŠƒAƒtƒ‰ƒO‚ÆFƒtƒ‰ƒO‚Æ“ÁŽêƒtƒ‰ƒO‚̇Œv‚ðŽw’肵‚Ä‚­‚¾‚³‚¢B
-
- killmonster–½—ß
- killmonster <gatname>[,<event>];
-
- gatname •¶Žš—ñ
- event •¶Žš—ñAÈ—ª‰Â
-
- <gatname>‚É‘¶Ý‚·‚郂ƒ“ƒXƒ^[‚ð‚·‚×‚ÄŽE‚µ‚Ü‚·B
- <event>‚É‚æ‚Á‚ČĂÑo‚³‚ꂽƒ‚ƒ“ƒXƒ^[‚Ì‚ÝŽE‚·‚±‚Æ‚à‰Â”\‚Å‚·B<event>‚ðAll‚É‚·‚é‚Æ‚»‚̃}ƒbƒv‚É‚ ‚éˆêŽž“I‚É¢Š«‚³‚ꂽƒ‚ƒ“ƒXƒ^[‚ð‘S‚ÄŽE‚µ‚Ü‚·B
-
- killmonsterall–½—ß
- killmonsterall <gatname>
-
- gatname •¶Žš—ñ
-
- <gatname>‚É‘¶Ý‚·‚郂ƒ“ƒXƒ^[‚ð‚·‚×‚ÄŽE‚µ‚Ü‚·Bkillmonster‚Ƃ͈á‚Á‚Ä‚»‚̃}ƒbƒv‚ÉŽn‚ß‚©‚ç”z’u‚³‚ê‚Ä‚¢‚½ƒ‚ƒ“ƒXƒ^[‚Ü‚Å‘S‚ÄŽE‚·‚±‚Æ‚ª‚Å‚«‚Ü‚·B
-
-
- addtimer–½—ß
- addtimer <ms>,<event>;
-
- ms ”’l
- event •¶Žš—ñ
-
- Œ»Ý‚̃vƒŒƒCƒ„[‚ÉA<ms>ƒ~ƒŠ•bŒo‰ß‚µ‚½Œã<event>‚ðŠJŽn‚·‚éƒ^ƒCƒ}[‚ð쬂µ‚Ü‚·B
- ‚±‚̃^ƒCƒ}[‚É‚æ‚Á‚ÄŽÀs‚³‚ê‚éƒCƒxƒ“ƒg‚ÍA‚±‚̃vƒŒƒCƒ„[‚Ìî•ñ‚ɃAƒNƒZƒX‚Å‚«‚Ü‚·B
- ƒvƒŒƒCƒ„[‚ªƒƒOƒAƒEƒg‚·‚é‚ƃ^ƒCƒ}[‚Í–³Œø‚ɂȂ邽‚ß’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
- ƒAƒŠ[ƒiƒ}ƒbƒv‚È‚Ç‚ÅŽg—p‚·‚éꇂ͂±‚ê‚Å‚Í‚È‚­NPCƒ^ƒCƒ}[‚ðŽg—p‚µ‚Ä‚­‚¾‚³‚¢B
-
- deltimer–½—ß
- deltimer <event>;
-
- event •¶Žš—ñ
-
- Œ»Ý‚̃vƒŒƒCƒ„[‚Ì<event>‚ðŠJŽn‚·‚éƒ^ƒCƒ}[‚ðÁ‹Ž‚µ‚Ü‚·B
-
- addtimercount–½—ß
- addtimercount <event>,<ms>;
-
- event •¶Žš—ñ
- ms ”’l
-
- Œ»Ý‚̃vƒŒƒCƒ„[‚Ì<event>‚ðŠJŽn‚·‚éƒ^ƒCƒ}[‚ÌŠJŽn‚Ü‚Å‚ÌŽžŠÔ‚ð<ms>ƒ~ƒŠ•b’ljÁ‚µ‚Ü‚·B
-
- initnpctimer–½—ß
- initnpctimer [<name>];
-
- <name>‚ÅŽw’肳‚ꂽNPC‚ªŽ‚ÂNPCƒ^ƒCƒ}[‚Ì’l‚ð‚O‚É‚µAƒJƒEƒ“ƒg‚ðŠJŽn‚µ‚Ü‚·B
- name‚ðÈ—ª‚·‚é‚ÆA–½—ß‚ðŽÀs‚µ‚½NPC‚ª‘ÎÛ‚É‚È‚è‚Ü‚·B
-
- ‚±‚ÌNPCƒ^ƒCƒ}[‚̓~ƒŠ•b’PˆÊ‚ÅOnTimerXXXX‚Æ‚¢‚¤ƒ‰ƒxƒ‹ƒCƒxƒ“ƒg‚ðŽÀs‚µ‚Ü‚·B
- <—á> OnTimer1000: <= 1•bŒã, OnTimer30000: <= 30•bŒã
-
- stopnpctimer–½—ß
- stopnpctimer [<name>];
-
- <name>‚ÅŽw’肳‚ꂽNPC‚ªŽ‚ÂNPCƒ^ƒCƒ}[‚̃JƒEƒ“ƒg‚ð’âŽ~‚µ‚Ü‚·B
- name‚ðÈ—ª‚·‚é‚ÆA–½—ß‚ðŽÀs‚µ‚½NPC‚ª‘ÎÛ‚É‚È‚è‚Ü‚·B
-
- startnpctimer–½—ß
- stopnpctimer [<name>];
-
- <name>‚ÅŽw’肳‚ꂽNPC‚ªŽ‚ÂNPCƒ^ƒCƒ}[‚̃JƒEƒ“ƒg‚ðÄŠJ‚µ‚Ü‚·B
- name‚ðÈ—ª‚·‚é‚ÆA–½—ß‚ðŽÀs‚µ‚½NPC‚ª‘ÎÛ‚É‚È‚è‚Ü‚·B
- ‚±‚¿‚ç‚Íinitnpctimer‚ƈႢAƒJƒEƒ“ƒg‚ð0‚ɃŠƒZƒbƒg‚µ‚Ü‚¹‚ñB
- stopnpctimer‚ƃZƒbƒg‚ÅŽg—p‚µ‚Ü‚·B
-
- setnpctimer–½—ß
- setnpctimer <tick>[,<name>]
-
- <name>‚ÅŽw’肳‚ꂽNPC‚ªŽ‚ÂNPCƒ^ƒCƒ}[‚̃JƒEƒ“ƒg‚ð•ÏX‚µ‚Ü‚·B
- name‚ðÈ—ª‚·‚é‚ÆA–½—ß‚ðŽÀs‚µ‚½NPC‚ª‘ÎÛ‚É‚È‚è‚Ü‚·B
- getnpctimer‚ð—˜—p‚·‚ê‚ÎAƒJƒEƒ“ƒg‚𑌸‚Å‚«‚Ü‚·B
-
- disablenpc–½—ß
- disablenpc <npcname>;
-
- npcname •¶Žš—ñ
-
- <npcname>‚𖳌ø‚É‚µ‚Ü‚·B
-
- enablenpc–½—ß
- enablenpc <npcname>;
-
- npcname •¶Žš—ñ
-
- <npcname>‚ð—LŒø‚É‚µ‚Ü‚·B
-
- mapannounce–½—ß
- mapannounce <gatname>,<string>,<flag>;
-
- gatname,string •¶Žš—ñ
- flag ”’l
-
- <gatname>‘S‘Ì‚É<string>‚ð‚f‚lƒAƒiƒEƒ“ƒX‚Å•\Ž¦‚µ‚Ü‚·B
- flag:0,‰©F•¶ŽšA16,•¶Žš
-
- areaannounce–½—ß
- areannounce <gatname>,<x0>,<y0>,<x1>,<y1>,<string>,<flag>;
-
- gatname,string •¶Žš—ñ
- x0,y0,x1,y1,flag ”’l
-
- <gatname>‚Ì<x0>,<y0>‚©‚ç<x1>,<y1>‚͈͓̔à‚ɑ΂µ<string>‚ð‚f‚lƒAƒiƒEƒ“ƒX‚Å•\Ž¦‚µ‚Ü‚·B
- flag:0,‰©F•¶ŽšA16,•¶Žš
-
- areawarp–½—ß
- areawarp <gatname>,<x0>,<y0>,<x1>,<y1>,<gatname2>,<x>,<y>;
-
- gatname,gatname2 •¶Žš—ñ
- x0,y0,x1,y1,x,y ”’l
-
- <gatname>‚Ì<x0>,<y0>‚©‚ç<x1>,<y1>‚͈͓̔à‚É‚¢‚éPC‚ð<gatname2>‚ÌÀ•W<x>,<y>‚Ɉړ®‚³‚¹‚Ü‚·B
-
- areamonster–½—ß
- areamonster <gatname>,<x0>,<y0>,<x1>,<y1>,<mobname>,<mobid>,<num>[,<event>];
-
- gatname,mobname •¶Žš—ñ
- x0,y0,x1,y1,mobid,num ”’l
- event •¶Žš—ñAÈ—ª‰Â
-
- <gatname>‚Ì<x0>,<y0>‚©‚ç<x1>,<y1>‚͈͓̔à‚É<mobname>‚ðŽ‚Â<mobid>‚ÉŽw’肳‚ꂽID‚ðŽ‚ƒ‚ƒ“ƒXƒ^[‚ð<num>‘ÌoŒ»‚³‚¹‚Ü‚·B
- <gatname>‚ªthis‚ÌꇃXƒNƒŠƒvƒgŽÀsMAPA<x><y>‚ª-1‚Ìꇃ‰ƒ“ƒ_ƒ€À•WA
- <mobname>‚ª--en--‚ÌꇉpŒê–¼A--ja--‚Ìꇓú–{Œê–¼A<mobid>‚ª-1‚Ìꇃ‰ƒ“ƒ_ƒ€B
- ‚»‚̃‚ƒ“ƒXƒ^[‚ð“|‚µ‚½‚Æ‚«<event>‚ðŠJŽn‚µ‚Ü‚·B
-
- percentheal–½—ß
- percentheal <hp>,<sp>;
-
- hp,sp ”’l
-
- HP‚ÆSP‚ð<hp>%A<sp>%•ª‰ñ•œ‚µ‚Ü‚·B
-
- resetstatus–½—ß
- resetstatus;
-
- ƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒg‚ðƒŠƒZƒbƒg‚µ‚Ü‚·B
-
- resetskill–½—ß
- resetskill;
-
- ƒXƒLƒ‹ƒ|ƒCƒ“ƒg‚ðƒŠƒZƒbƒg‚µ‚Ü‚·B
-
- statusup–½—ß
- statusup <st>;
-
- st ”’l
-
- <st>‚ÅŽw’肳‚ꂽŠî–{ƒXƒe[ƒ^ƒX’l‚ðAƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒg‚ðÁ”‚Ä1ã‚°‚éB
- <st>‚Í bStr, bVit, bInt, bAgi, bDex, bLuk ‚ÅŽw’è‚·‚éB
-
- statusup2–½—ß
- statusup2 <st>,<n>;
-
- st,n ”’l
-
- <st>‚ÅŽw’肳‚ꂽŠî–{ƒXƒe[ƒ^ƒX’l‚ðAƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒg‚ðÁ”‚¸‚É<n>ã‚°‚éB
- <st>‚Í bStr, bVit, bInt, bAgi, bDex, bLuk ‚ÅŽw’è‚·‚éB
-
- skill–½—ß
- skill <skillid>,<skilllv>,<flag>;
-
- skillid,skilllv,flag ”’l
-
- <skillid>‚ÉŽw’肳‚ꂽID‚ðŽ‚ÂLV<skilllv>ƒXƒLƒ‹‚ðK“¾‚µ‚Ü‚·B
- flag:0,P‹v“I‚ȃXƒLƒ‹Žæ“¾(ƒXƒLƒ‹ƒcƒŠ[‚É‚È‚¢•¨‚Í–³Œø)A1,ˆêŽž“I(”͈͕͂s–¾)‚Ȏ擾A
- <skilllv>‚ð0‚É‚·‚é‚Æ‚±‚Å‚»‚̃XƒLƒ‹‚ð–Y‚ꂳ‚¹‚邱‚Æ‚à‰Â”\‚Å‚·B
-
- waitingroom–½—ß
- waitingroom <title>,<limit>[,<event>[,<trigger>]];
-
- title •¶Žš—ñ
- limit ”’l
- event •¶Žš—ñAÈ—ª‰Â
- trigger ”’lAÈ—ª‰Â
-
- <title>‚ðƒ^ƒCƒgƒ‹‚Æ‚µ‚ă`ƒƒƒbƒgƒ‹[ƒ€‚ð•\Ž¦‚³‚¹‚Ü‚·B
- <trigger>‚ð–ž‚½‚µ‚½‚Æ‚«A<event>‚ð“®ì‚³‚¹‚邱‚Æ‚ª‰Â”\‚Å‚·B
- <trigger>‚ðÈ—ª‚·‚é‚Æ<limit>‚Ì”’l‚ªŽg—p‚³‚ê‚Ü‚·B
-
- delwaitingroom–½—ß
- delewaitingroom [<name>]
-
- name •¶Žš—ñAÈ—ª‰Â
-
- Žw’肵‚½NPC‚̃`ƒƒƒbƒgƒ‹[ƒ€‚ð•Â‚¶‚Ü‚·B
- <name>‚ðÈ—ª‚·‚é‚ÆA–½—ß‚ðŽÀs‚µ‚½NPC‚ª‘ÎÛ‚É‚È‚è‚Ü‚·B
-
- disablewaitingroomevent–½—ß
- disablewaitingroomevent [<name>]
-
- name •¶Žš—ñAÈ—ª‰Â
-
- <name>‚ÅŽw’肵‚½NPC‚̃`ƒƒƒbƒgƒ‹[ƒ€‚̃Cƒxƒ“ƒg‚𖳌ø‚É‚µ‚Ü‚·B
- <name>‚ðÈ—ª‚·‚é‚ÆA–½—ß‚ðŽÀs‚µ‚½NPC‚ª‘ÎÛ‚É‚È‚è‚Ü‚·B
-
- enablewaitingroomevent–½—ß
- enablewaitingroomevent [<name>]
-
- name •¶Žš—ñAÈ—ª‰Â
-
- <name>‚ÅŽw’肵‚½NPC‚̃`ƒƒƒbƒgƒ‹[ƒ€‚̃Cƒxƒ“ƒg‚ð—LŒø‚É‚µ‚Ü‚·B
- <name>‚ðÈ—ª‚·‚é‚ÆA–½—ß‚ðŽÀs‚µ‚½NPC‚ª‘ÎÛ‚É‚È‚è‚Ü‚·B
- ‚Ü‚½AŠù‚ɃCƒxƒ“ƒg‚ª‹N‚±‚él”‚É’B‚µ‚Ä‚¢‚éê‡A
- ‘¦À‚ɃCƒxƒ“ƒg‚ðŽÀs‚µ‚Ü‚·B
-
- warpwaitingnpc–½—ß
- warpwaitingnpc <gatname>,<x>,<y>[,<num>];
-
- gatname •¶Žš—ñ
- x,y,num ”’l
-
- –½—ß‚ðŽÀs‚µ‚½NPC‚̃`ƒƒƒbƒgƒ‹[ƒ€‚É“ü‚Á‚Ä‚¢‚éPC‚Ì‚¤‚¿A
- <num>‚ÅŽw’肵‚½l”‚ðA<gatname>‚ÌÀ•W<x>,<y>‚Ɉړ®‚³‚¹‚Ü‚·B
- <num>‚ðÈ—ª‚·‚é‚Æ waitingroom‚Ì<trigger>‚ÅŽw’肵‚½l”‚ðŽg—p‚µ‚Ü‚·B
-
- ƒ[ƒv‚³‚¹‚½l”‚ð $@warpwaitingpcnum ‚ÉAƒ[ƒv‚³‚¹‚½l‚̃AƒJƒEƒ“ƒgID‚ð
- ”z—ñ $@warpwaitingpc ‚ɃZƒbƒg‚µ‚Ü‚·(擪‚©‚çl”•ª)B
-
-
- emotion–½—ß
- emotion <n>;
-
- n ”’l
-
- <n>ƒGƒ‚[ƒVƒ‡ƒ“‚ðo‚µ‚Ü‚·B
-
- setmapflag–½—ß
- setmapflag <gatname>,<flag>;
-
- gatname •¶Žš—ñ
- flag ”’l
-
- <gatname>‚Ìmapflag‚ð’ljÁ‚µ‚Ü‚·B
- <flag>‚Ídb/const.txt‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
-
- removemapflag–½—ß
- removemapflag <gatname>,<flag>;
-
- gatname •¶Žš—ñ
- flag ”’l
-
- <gatname>‚Ìmapflag‚ðÁ‹Ž‚µ‚Ü‚·B
- <flag>‚Ídb/const.txt‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
-
- pvpon–½—ß
- pvpon <gatname>;
-
- gatname •¶Žš—ñ
-
- <gatname>‚ðPVP‰Â”\MAP‚É‚µ‚Ü‚·B
-
- pvpoff–½—ß
- pvpoff <gatname>;
-
- gatname •¶Žš—ñ
-
- <gatname>‚ðPVP•s‰ÂMAP‚É‚µ‚Ü‚·B
-
- gvgon–½—ß
- gvgon <gatname>;
-
- gatname •¶Žš—ñ
-
- <gatname>‚ðƒV[ƒYƒ‚[ƒh‚É‚µ‚Ü‚·B
-
- gvgoff–½—ß
- gvgoff <gatname>;
-
- gatname •¶Žš—ñ
-
- <gatname>‚ð”ñƒV[ƒYƒ‚[ƒh‚É‚µ‚Ü‚·B
-
- setmapflagnosave–½—ß
- setmapflagnosave <gatname>,<savegatname>,<x>,<y>;
-
- gatname,nosavegat •¶Žš—ñ
- x,y ”’l
-
- <gatname>‚Ìmapflag‚ÉnosaveAˆø”‚Æ‚µ‚Ä<savegatname>,<x>,<y>‚ðݒ肵‚Ü‚·B
-
- detachrid–½—ß
- detachrid;
-
- NPC‚ɃAƒ^ƒbƒ`‚³‚ê‚Ä‚¢‚éID‚ðƒNƒŠƒA‚µ‚Ü‚·B
- ˆÈŒãAƒLƒƒƒ‰ƒNƒ^[î•ñ‚ð•K—v‚Æ‚·‚é–½—ß‚ªŽÀs‚Å‚«‚È‚­‚È‚è‚Ü‚·B
-
- doevent–½—ß
- doevent <name>;
-
- name •¶Žš—ñ
-
- ƒvƒŒƒCƒ„[Žå‘̂̃Cƒxƒ“ƒg‚ð‹N‚±‚µ‚Ü‚·B<name>‚ɂ̓Cƒxƒ“ƒg–¼‚ðŽw’肵‚Ü‚·B
- ƒvƒŒƒCƒ„[‚ª‘¼‚ÌNPC‚Ɖï˜b’†‚È‚Ç‚ÅŽÀs‚Å‚«‚È‚¢ê‡AƒLƒ…[‚É“ü‚èAŽÀs‰Â”\‚É‚È‚é‚Ü‚Å‘Ò‚Á‚ÄŽÀs‚³‚ê‚Ü‚·B
- ƒLƒ…[‚̃TƒCƒY‚͂ƂĂଂ³‚¢‚Ì‚ÅA˜A‘±‚Å‹N‚±‚é‚ƃCƒxƒ“ƒg‚ª–³Ž‹‚³‚ê‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB
- ƒ‰ƒxƒ‹•t‚«ƒCƒxƒ“ƒg‚àŽw’è‚Å‚«‚Ü‚·‚ªANPC–¼‚ðÈ—ª‚Å‚«‚È‚¢‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
-
- donpcevent–½—ß
- donpcevent <name>;
-
- name •¶Žš—ñ
-
- ƒvƒŒƒCƒ„[‚ªƒAƒ^ƒbƒ`‚³‚ê‚Ä‚¢‚È‚¢(NPCŽå‘Ì‚Ì)ƒCƒxƒ“ƒg‚ð‹N‚±‚µ‚Ü‚·B
- <name>‚ɂ̓Cƒxƒ“ƒg–¼‚ðŽw’肵‚Ü‚·BƒCƒxƒ“ƒg‚Í‘¦À‚ÉŽÀs‚³‚ê‚Ü‚·B
- ƒ‰ƒxƒ‹•t‚«ƒCƒxƒ“ƒg‚àŽw’è‚Å‚«ANPC–¼‚ðÈ—ª‚·‚邱‚Æ‚ÅAƒCƒxƒ“ƒg‚ðƒuƒ[ƒhƒLƒƒƒXƒg‚Å‚«‚Ü‚·B
- i•¡”‚ÌNPC‚Ì“¯‚¶–¼‘O‚̃‰ƒxƒ‹‚ðŽÀs‚Å‚«‚éB —á„"::OnEvent"j
-
- callsub–½—ß
- callsub <label>
-
- label ƒ‰ƒxƒ‹
-
- “¯ˆêƒXƒNƒŠƒvƒg“à‚̃‰ƒxƒ‹<label>‚ðƒTƒuƒ‹[ƒeƒBƒ“‚Æ‚µ‚ÄŽÀs‚µ‚Ü‚·B
- ƒTƒuƒ‹[ƒeƒBƒ“‚©‚ç•œ‹A‚·‚é‚Æ‚«‚Íreturn–½—ß‚ðŽg—p‚µ‚Ä‚­‚¾‚³‚¢B
- ‚±‚Ì–½—ß‚Íreturn–½—ß‚ÌŽÀs󋵂ɂæ‚Á‚Ä‚ÍŠÖ”‚Æ‚µ‚ÄŽg—p‚·‚邱‚Æ‚ào—ˆ‚Ü‚·B
-
- callfunc–½—ß
- callfunc <func>
-
- func •¶Žš—ñ
-
- <func>‚Å’è‹`‚³‚ꂽƒ†[ƒU[’è‹`ŠÖ”‚ðŽÀs‚µ‚Ü‚·B
- ƒ†[ƒU[’è‹`ŠÖ”‚©‚ç•œ‹A‚·‚é‚Æ‚«‚Íreturn–½—ß‚ðŽg—p‚µ‚Ä‚­‚¾‚³‚¢B
- ‚±‚Ì–½—ß‚Íreturn–½—ß‚ÌŽÀs󋵂ɂæ‚Á‚Ä‚ÍŠÖ”‚Æ‚µ‚ÄŽg—p‚·‚邱‚Æ‚ào—ˆ‚Ü‚·B
-
- return–½—ß
- return <retval>
-
- retval ”’l‚Ü‚½‚Í•¶Žš—ñAÈ—ª‰Â
-
- ’¼‚¿‚ɃTƒuƒ‹[ƒeƒBƒ“‚à‚µ‚­‚̓†[ƒU[’è‹`ŠÖ”‚𔲂¯AŒÄ‚Ño‚µŒ³‚É–ß‚è‚Ü‚·B
- <retval>‚Í–ß‚è’l‚ÅAcallsub‚Ü‚½‚Ícallfunc‚ªŠÖ”‚Æ‚µ‚ČĂÑo‚³‚ê‚Ä‚¢‚é‚Æ‚«A‚±‚Ì–ß‚è’l‚ªŽg—p‚³‚ê‚Ü‚·B
- callsub‚Ü‚½‚Ífunc‚ª–½—ß‚Æ‚µ‚ČĂ΂ê‚Ä‚¢‚é‚Æ‚«‚ÍA<retval>‚ÍÈ—ª‚µ‚Ä‚­‚¾‚³‚¢B
-
- –ŠÖ”
- randŠÖ”
- rand(<n1>[,<n2>])
-
- n1 ”’l
- n2 ”’lAÈ—ª‰Â
-
- <n1>‚Ì‚ÝŽw’肳‚ê‚Ä‚¢‚½ê‡A0‚©‚ç<n1>-1‚Ü‚Å‚Ì”’l‚ðƒ‰ƒ“ƒ_ƒ€‚É‘I‚ñ‚Å•Ô‚µ‚Ü‚·B
- <n2>‚ðŽw’肵‚½ê‡A<n1>‚©‚ç<n2>‚Ü‚Å‚Ì”ƒ`‚ðƒ‰ƒ“ƒ_ƒ€‚É‘I‚ñ‚Å•Ô‚µ‚Ü‚·B
-
- getitemnameŠÖ”
- getitemname(<itemid>)
-
- itemid ”’l
-
- <itemid>‚ÉŽw’肳‚ꂽID‚ðŽ‚ƒAƒCƒeƒ€‚Ìjname‚𕶎š—ñ‚Å•Ô‚µ‚Ü‚·B
- ‚È‚¨AƒAƒCƒeƒ€–¼‚Íitem_db.txt‚ðŽQÆ‚µ‚Ü‚·
-
- countitemŠÖ”
- countitem(<itemid>)
-
- itemid ”’l‚Ü‚½‚Í•¶Žš—ñ
-
- <itemid>‚ÉŽw’肳‚ꂽID‚ðŽ‚ƒAƒCƒeƒ€‚ÌŠŽ”‚ð•Ô‚µ‚Ü‚·B
- <itemid>‚ª•¶Žš—ñ‚Ìê‡A‚»‚Ì–¼‘O(name,jname)‚ðŽ‚ƒAƒCƒeƒ€‚ÌID‚ðŽg—p‚µ‚Ü‚·B
- ‚½‚¾‚µAƒAƒCƒeƒ€–¼‚Íitem_db.txt‚ȂǂɈˑ¶‚·‚邽‚ßAƒeƒXƒg–Ú“IˆÈŠO‚Å‚ÍŽg—p‚·‚ׂ«‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
-
- checkweightŠÖ”
- checkweight(<itemid>,<num>)
-
- itemid ”’l‚Ü‚½‚Í•¶Žš—ñ
- num ”’l
-
- <itemid>‚ÉŽw’肳‚ꂽID‚ðŽ‚ƒAƒCƒeƒ€‚ð<num>ŒÂŽ‚‚±‚Æ‚ª‚Å‚«‚é‚Ì‚È‚ç‚Î1‚ðA
- ‚Å‚«‚È‚¯‚ê‚Î0‚ð•Ô‚µ‚Ü‚·B
- <itemid>‚ª•¶Žš—ñ‚Ìê‡A‚»‚Ì–¼‘O(name,jname)‚ðŽ‚ƒAƒCƒeƒ€‚ÌID‚ðŽg—p‚µ‚Ü‚·B
- ‚½‚¾‚µAƒAƒCƒeƒ€–¼‚Íitem_db.txt‚ȂǂɈˑ¶‚·‚邽‚ßAƒeƒXƒg–Ú“IˆÈŠO‚Å‚ÍŽg—p‚·‚ׂ«‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
-
- strcharinfoŠÖ”
- strcharinfo(<n>)
-
- n ”’l
-
- ƒLƒƒƒ‰î•ñ‚ð•Ô‚µ‚Ü‚·B
- n:0,ƒLƒƒƒ‰–¼A1,ƒp[ƒeƒB[–¼A2,ƒMƒ‹ƒh–¼
-
- getequipnameŠÖ”
- strcharinfo(<n>)
-
- n ”’l
-
- ‘•”õ•i–¼‚ð•Ô‚µ‚Ü‚·B
- n:1,“ª‘•”õA2,ŠZA3,¶ŽèA4,‰EŽèA5,‚©‚¯‚é‚à‚ÌA6,ŒCA7,ƒAƒNƒZ‚PA8,ƒAƒNƒZ‚QA9,“ª’†’iA10,“ª‰º’i
-
- getequipisequipedŠÖ”
- getequipisequiped(<n>)
-
- n ”’l
-
- ‘•”õ‚µ‚Ä‚¢‚½‚ç1A‚µ‚Ä‚¢‚È‚©‚Á‚½‚ç0‚ð•Ô‚µ‚Ü‚·B
- n:1,“ª‘•”õA2,ŠZA3,¶ŽèA4,‰EŽèA5,‚©‚¯‚é‚à‚ÌA6,ŒCA7,ƒAƒNƒZ‚PA8,ƒAƒNƒZ‚QA9,“ª’†’iA10,“ª‰º’i
-
- getequipisenablerefŠÖ”
- getequipisenableref(<n>)
-
- n ”’l
-
- ¸˜B‚Å‚«‚éꇂÍ1A‚Å‚«‚È‚¢ê‡‚Í0‚ð•Ô‚µ‚Ü‚·B
- n:1,“ª‘•”õA2,ŠZA3,¶ŽèA4,‰EŽèA5,‚©‚¯‚é‚à‚ÌA6,ŒCA7,ƒAƒNƒZ‚PA8,ƒAƒNƒZ‚QA9,“ª’†’iA10,“ª‰º’i
-
- getequipisidentifyŠÖ”
- getequipisidentify(<n>)
-
- n ”’l
-
- ŠÓ’èÏ‚Ý‚Ìê‡1A–¢ŠÓ’è‚Ìê‡0‚ð•Ô‚µ‚Ü‚·B
- n:1,“ª‘•”õA2,ŠZA3,¶ŽèA4,‰EŽèA5,‚©‚¯‚é‚à‚ÌA6,ŒCA7,ƒAƒNƒZ‚PA8,ƒAƒNƒZ‚QA9,“ª’†’iA10,“ª‰º’i
-
- getequiprefinerycntŠÖ”
- getequiprefinerycnt(<n>)
-
- n ”’l
-
- ¸˜B‚Ì“x‡‚¢‚ð•Ô‚µ‚Ü‚·B
- n:1,“ª‘•”õA2,ŠZA3,¶ŽèA4,‰EŽèA5,‚©‚¯‚é‚à‚ÌA6,ŒCA7,ƒAƒNƒZ‚PA8,ƒAƒNƒZ‚QA9,“ª’†’iA10,“ª‰º’i
-
- getequipweaponlvŠÖ”
- getequipweaponlv(<n>)
-
- n ”’l
-
- •ŠíLV‚ð•Ô‚µ‚Ü‚·B–h‹ï‚ÌꇂɂÍ0A‚ ‚Æ‚Í•ŠíLV‚ɑΉž‚µ‚Ü‚·B
- n:1,“ª‘•”õA2,ŠZA3,¶ŽèA4,‰EŽèA5,‚©‚¯‚é‚à‚ÌA6,ŒCA7,ƒAƒNƒZ‚PA8,ƒAƒNƒZ‚QA9,“ª’†’iA10,“ª‰º’i
-
- getequippercentrefineryŠÖ”
- getequippercentrefinery(<n>)
-
- n ”’l
-
- ¸˜B¬Œ÷—¦‚ð•Ô‚µ‚Ü‚·B
- n:1,“ª‘•”õA2,ŠZA3,¶ŽèA4,‰EŽèA5,‚©‚¯‚é‚à‚ÌA6,ŒCA7,ƒAƒNƒZ‚PA8,ƒAƒNƒZ‚QA9,“ª’†’iA10,“ª‰º’i
-
- getusersŠÖ”
- getusers(<n>)
-
- n ”’l
-
- l”‚ð•Ô‚µ‚Ü‚·B
- n:0,PC‚Ì‚¢‚éMAP‚Ì‘l”A1,‘SMAP‚Ì‘l”i‘¦‚¿ƒƒOƒCƒ“l”jA8,NPC‚Ì‘¶Ý‚·‚éMAP‚Ì‘l”
-
- getmapusersŠÖ”
- getmapusers(<gatname>)
-
- gatname •¶Žš—ñ
-
- <gatname>‚É‘¶Ý‚·‚é‘l”‚ð•Ô‚µ‚Ü‚·B
-
- getareausersŠÖ”
- getareausers(<gatname>,<x0>,<y0>,<x1>,<y1>)
-
- gatname •¶Žš—ñ
- x0,y0,x1,y1 ”’l
-
- <gatname>‚Ì<x0>,<y0>‚©‚ç<x1>,<y1>‚͈͓̔à‚É‚¢‚él”‚ð•Ô‚µ‚Ü‚·B
-
- getskilllvŠÖ”
- getskilllv(<skillid>)
-
- skillid ”’l
-
- <skillid>‚ÅŽw’肵‚½ID‚ðŽ‚ƒXƒLƒ‹‚ÌLV‚ð•Ô‚µ‚Ü‚·BK“¾‚µ‚Ä‚¢‚È‚¢ê‡‚Í0‚ð•Ô‚µ‚Ü‚·B
-
- getcharidŠÖ”
- getcharid(<n>)
-
- n ”’l
-
- ƒLƒƒƒ‰î•ñ‚ðID‚Å•Ô‚µ‚Ü‚·B
- n=0 ƒLƒƒƒ‰ID
- n=1 ƒp[ƒeƒB[
- n=2 ƒMƒ‹ƒh
- n=3 ƒAƒJƒEƒ“ƒgID
-
- getpartynameŠÖ”
- getpartyname(<n>)
-
- n ”’l
-
- <n>‚ÅŽw’肵‚½ID‚ðŽ‚ƒp[ƒeƒB[–¼‚ð•Ô‚µ‚Ü‚·B
-
- getguildnameŠÖ”
- getguildname(<n>)
-
- n ”’l
-
- <n>‚ÅŽw’肵‚½ID‚ðŽ‚ƒMƒ‹ƒh–¼‚ð•Ô‚µ‚Ü‚·B
-
- getguildmasterŠÖ”
- getguildname(<n>)
-
- n ”’l
-
- <n>‚ÅŽw’肵‚½ID‚ðŽ‚ƒMƒ‹ƒh‚̃}ƒXƒ^[‚Ì–¼‘O‚ð•Ô‚µ‚Ü‚·B
-
- getguildmasteridŠÖ”
- getguildmasterid(<n>)
-
- n ”’l
-
- <n>‚ÅŽw’肵‚½ID‚ðŽ‚ƒMƒ‹ƒh‚̃}ƒXƒ^[‚̃Lƒƒƒ‰ƒNƒ^[ID‚ð•Ô‚µ‚Ü‚·B
-
- basicskillcheckŠÖ”
- basicskillcheck(0);
-
- battle_athena.conf‚Ìbasic_skill_check‚ÌÝ’è’l‚ð•Ô‚µ‚Ü‚·B0‚͈Ӗ¡‚Í‚ ‚è‚Ü‚¹‚ñ‚ª‰½‚à“ü‚ê‚È‚©‚Á‚½ê‡ƒGƒ‰[‚É‚È‚è‚Ü‚·B
- basic_skill_check‚ƃJƒvƒ‰‚Ì‘qŒÉ—˜—p‚ð‡‚킹‚éˆ×‚Éì‚Á‚½•¨‚Å‚»‚êˆÈŠO‚Ì‹@”\‚Í‚ ‚è‚Ü‚¹‚ñB–ß‚Á‚½”’l‚ª0‚È‚çbasic_skill_check‚ªnoA1‚È‚çyes‚Å‚·B
-
- getgmlevelŠÖ”
- getgmlevel(0);
-
- ƒvƒŒƒCƒ„[‚ÌGMƒŒƒxƒ‹‚ð•Ô‚µ‚Ü‚·B
-
- guildopenstorageŠÖ”
- guildopenstorage(0);
-
- ƒMƒ‹ƒh‘qŒÉ‚ðŠJ‚«‚Ü‚·B
- •Ô‚½”’l‚ª2‚È‚çƒMƒ‹ƒh‚ÉŠ‘®‚µ‚Ä‚È‚¢ƒLƒƒƒ‰‚ÆŒ¾‚¤ˆÓ–¡‚Å
- 1‚Ȃ瑼‚̃Mƒ‹ƒhƒƒ“ƒo[‚ª‘qŒÉ‚ðŽg—p’†‚̈Ӗ¡‚Å‚·B
- 0‚Ȃ笌÷“I‚ɃMƒ‹ƒh‘qŒÉ‚ªŠJ‚¢‚½‚Æ‚Ì‚±‚Æ‚Å‚·B
-
- getwaitingroomstateŠÖ”
- getwaitingroomstate(<num>,[<name>])
-
- num ”’l
- name •¶Žš—ñAÈ—ª‰Â
-
- <name>‚ÅŽw’肵‚½NPC‚̃`ƒƒƒbƒgƒ‹[ƒ€‚Ìó‘Ô‚ð•Ô‚µ‚Ü‚·B
- <name>‚ðÈ—ª‚·‚é‚ÆA–½—ß‚ðŽÀs‚µ‚½NPC‚ª‘ÎÛ‚É‚È‚è‚Ü‚·B
- <num>‚Å“¾‚½‚¢î•ñ‚ðŽw’肵‚Ü‚·B
-
- num=0 Œ»Ýƒ`ƒƒƒbƒgƒ‹[ƒ€‚É“ü‚Á‚Ä‚¢‚él”i”’lj
- num=1 ƒ`ƒƒƒbƒgƒ‹[ƒ€‚ÌŒÀŠEl”i”’lj
- num=2 ƒ`ƒƒƒbƒgƒ‹[ƒ€‚̃Cƒxƒ“ƒg‚ð‹N‚±‚·l”i”’lj
- num=3 ƒ`ƒƒƒbƒgƒ‹[ƒ€‚̃Cƒxƒ“ƒg‚ª—LŒø‚©‚Ç‚¤‚©i”’lj
- num=4 ƒ`ƒƒƒbƒgƒ‹[ƒ€‚̃^ƒCƒgƒ‹i•¶Žš—ñj
- num=5 ƒ`ƒƒƒbƒgƒ‹[ƒ€‚̃pƒXƒ[ƒhi•¶Žš—ñj
- num=16 ƒ`ƒƒƒbƒgƒ‹[ƒ€‚̃Cƒxƒ“ƒg–¼i•¶Žš—ñj
- num=32 ƒ`ƒƒƒbƒgƒ‹[ƒ€‚ª–žˆõ‚©‚Ç‚¤‚©i”’lj
- num=33 ƒ`ƒƒƒbƒgƒ‹[ƒ€‚ŃCƒxƒ“ƒg‚ª‹N‚±‚él”‚©‚Ç‚¤‚©i”’lj
-
- getnpctimerŠÖ”
- getnpctimer(<num>[,<name>])
-
- num ”’l
-
- <name>‚ÅŽw’肳‚ꂽNPC‚ªŽ‚ÂNPCƒ^ƒCƒ}[‚Ìî•ñ‚𓾂܂·B
- name‚ðÈ—ª‚·‚é‚ÆA–½—ß‚ðŽÀs‚µ‚½NPC‚ª‘ÎÛ‚É‚È‚è‚Ü‚·B
- <num>‚Å“¾‚½‚¢î•ñ‚ðŽw’肵‚Ü‚·B
-
- num=0 Œ»Ý‚ÌNPCƒ^ƒCƒ}[‚̃JƒEƒ“ƒg’l
- num=1 Œ»ÝNPCƒ^ƒCƒ}[‚ª“®ì‚µ‚Ä‚¢‚é‚©‚Ç‚¤‚©
- num=2 Žw’èNPC‚̃^ƒCƒ}[ƒCƒxƒ“ƒgƒ‰ƒxƒ‹‚Ì‘”
-
- attachridŠÖ”
- attachrid(<num>)
-
- num ”’l
-
- <num>‚ÅŽw’肳‚ꂽID‚̃Lƒƒƒ‰ƒNƒ^[‚ðŽÀs‚µ‚½ƒXƒNƒŠƒvƒg‚ɃAƒ^ƒbƒ`‚µ‚Ü‚·B
- ˆÈŒãAƒLƒƒƒ‰ƒNƒ^[‚ÉŠÖ‚·‚é–½—ß‚âŠÖ”/•Ï”‚È‚Ç‚Í‘S‚ÄV‚µ‚¢ƒLƒƒƒ‰ƒNƒ^[‚ª‘ÎÛ‚É‚È‚è‚Ü‚·B
- ‚±‚ê‚̓XƒNƒŠƒvƒg‚ªI—¹/’†’f‚·‚é(close,end,menu,next,input‚È‚Ç‚ÌŽÀs)‚Ü‚Å—LŒø‚Å‚·B
- Žå‚ɃCƒxƒ“ƒg‚Å‹N“®‚³‚ꂽƒXƒNƒŠƒvƒg“à‚Ń}ƒbƒv•Ï”‚ðŽg‚Á‚ĕʃLƒƒƒ‰ƒNƒ^[‚ð
- ƒAƒ^ƒbƒ`‚·‚é‚Ì‚ÉŽg—p‚µ‚Ü‚·Bgetcharid(3)‚ÅŠ“¾‚µ‚½ƒAƒJƒEƒ“ƒgID‚ðŽg‚Á‚Ä‚­‚¾‚³‚¢B
- ‚È‚¨Aƒfƒ^ƒbƒ`‚É‚Ídetachrid–½—ß‚ðŽg‚¢‚Ü‚·B
-
- ’ˆÓ‚·‚ׂ«“_‚Æ‚µ‚Ä‚ÍA‚±‚Ì–½—ß‚ÅPC‚ðƒAƒ^ƒbƒ`‚µ‚½ê‡Ames,menu,next‚È‚Ç‚Ì
- ƒEƒBƒ“ƒhƒE(‚âƒ{ƒ^ƒ“)‚ªo‚é–½—ß‚ðŽÀs‚µ‚Ä‚Í‚¢‚¯‚Ü‚¹‚ñB
- ‘ŠŽè‚ª‘¼‚ÌNPC‚Ɖï˜b’†‚Ìê‡A‚±‚ê‚ç‚Ì–½—߂ͳ‚µ‚­“®ì‚µ‚Ü‚¹‚ñB
- î•ñŠ“¾–½—ß‚È‚Ç‚¾‚¯‚ÅÏ‚Ü‚¹‚é‚ׂ«‚Å‚·B
-
- ‚±‚ÌŠÖ”‚̓Aƒ^ƒbƒ`‚ɬŒ÷‚µ‚½‚©‚Ç‚¤‚©‚ð•Ô‚µ‚Ü‚·B
- ‹U(0)‚ª•Ô‚Á‚Ä—ˆ‚½ê‡‚ÍAŠY“–ƒLƒƒƒ‰ƒNƒ^[‚ª‘¶Ý‚µ‚Ä‚¢‚Ü‚¹‚ñB
-
- isloggedinŠÖ”
- isloggedin(<num>)
-
- num ”’l
-
- <num>‚ÅŽw’肳‚ꂽID‚̃Lƒƒƒ‰ƒNƒ^[‚ª‚±‚̃}ƒbƒvƒT[ƒo[‚É
- ƒƒOƒCƒ“‚µ‚Ä‚¢‚é‚©‚Ç‚¤‚©’²‚ׂ܂·B
-
- getarraysizeŠÖ”
- getarraysize(<variable>)
-
- variable •Ï”
-
- ”z—ñ<variable>‚Ì—LŒø‚ȃTƒCƒY‚𒲂ׂ܂·B
- ‚±‚±‚ł̃TƒCƒY‚Í—v‘f‚ª0i•¶Žš—ñ•Ï”‚Å‚Í"")‚Å‚È‚¢A
- Å‘å‚Ì—v‘f”Ô†+1 ‚É‚È‚è‚Ü‚·B
- ”z—ñ–¼‚Å‚Í‚È‚­—v‘f”Ô†•t‚«‚ÅŽw’è‚·‚é‚ÆA
- ­‚È‚­‚Æ‚à‚»‚Ì—v‘f‚Ü‚Å‚Í‘S‚Ä—LŒø‚Å‚ ‚é‚Ɖ¼’肵‚Ü‚·B
- <—á> ”z—ñ@hoge‚ª 1,2,3,4,5 ‚¾‚Æ‚·‚é‚ÆA
- getarraysize(@hoge)=5, getarraysize(@hoge[10])=10;
-
- callsubŠÖ”
- callsub <label>
-
- callsub–½—ß‚ðŠÖ”‚Æ‚µ‚ÄŽÀs‚µ‚Ü‚·BÚ‚µ‚­‚Ícallsub–½—ß‚ðŒ©‚Ä‚­‚¾‚³‚¢B
-
- callfuncŠÖ”
- callfunc <func>
-
- callfunc–½—ß‚ðŠÖ”‚Æ‚µ‚ÄŽÀs‚µ‚Ü‚·BÚ‚µ‚­‚Ícallfunc–½—ß‚ðŒ©‚Ä‚­‚¾‚³‚¢B
-
- –’蔃‰ƒxƒ‹
- -ƒ‰ƒxƒ‹
- if•¶‚âmenu•¶‚ÅŽg—p‚µ‚Ü‚·BŽŸ‚Ìs‚©‚çƒXƒNƒŠƒvƒg‚ðŠJŽn‚µ‚Ü‚·B
-
- OnInitƒ‰ƒxƒ‹
- MAP‚ªƒ[ƒh‚³‚ꂽ‚Æ‚«ƒXƒNƒŠƒvƒg‚ðŠJŽn‚µ‚Ü‚·B
-
- OnInterIfInitƒ‰ƒxƒ‹
- MAPƒT[ƒo[‚ªInterƒT[ƒo[‚ÉÚ‘±‚µ‚½‚Æ‚«‚ÉŽÀs‚µ‚Ü‚·B
-
- OnCharIfInitƒ‰ƒxƒ‹
- MAPƒT[ƒo[‚ªCharƒT[ƒo[‚ÉÚ‘±‚µ‚½‚Æ‚«‚ÉŽÀs‚µ‚Ü‚·B
-
- OnMinuteXXƒ‰ƒxƒ‹
- –ˆŽžXX•ª‚ÉŽÀs‚µ‚Ü‚·B”’l‚Í\i”‚QŒ…‚Å‚·B
-
- OnClockXXXXƒ‰ƒxƒ‹
- –ˆ“úXXŽžXX•ª‚ÉŽÀs‚µ‚Ü‚·B”’l‚Í\i”‚SŒ…‚Å‚·B
-
- OnHourXXƒ‰ƒxƒ‹
- –ˆ“úXXŽž00•ª‚ÉŽÀs‚µ‚Ü‚·B”’l‚Í\i”‚QŒ…‚Å‚·B
-
- OnDayXXƒ‰ƒxƒ‹
- –ˆŒŽXX“ú00Žž00•ª‚ÉŽÀs‚µ‚Ü‚·B”’l‚Í\i”‚QŒ…‚Å‚·B
-
- OnTimerXƒ‰ƒxƒ‹
- NPCƒ^ƒCƒ}[‚̃JƒEƒ“ƒg‚ªX‚É‚È‚Á‚½‚Æ‚«‚ÉŽÀs‚³‚ê‚Ü‚·B
- ‚±‚ÌX‚̓~ƒŠ•b’PˆÊ‚Å‚·BŒ…”‚ÍŠÖŒW‚ ‚è‚Ü‚¹‚ñB
-
- OnAgitInitƒ‰ƒxƒ‹
- ƒMƒ‹ƒhéƒf[ƒ^‚Æè‹’ƒMƒ‹ƒhî•ñ‚ªƒ}ƒbƒvƒT[ƒo[“à‚É
- Š“¾‚³‚ꂽ‚Æ‚«‚ÉŽÀs‚³‚ê‚Ü‚·B
- ƒMƒ‹ƒhéŠÖŒW‚ÌNPC‚̉Šú‰»‚ÉŽg—p‚µ‚Ü‚·B
-
- OnAgitStartƒ‰ƒxƒ‹
- ƒMƒ‹ƒhUé킪Žn‚Ü‚Á‚½‚Æ‚«‚ÉŽÀs‚³‚ê‚Ü‚·B
-
- OnAgitEndƒ‰ƒxƒ‹
- ƒMƒ‹ƒhUé킪I‚í‚Á‚½‚Æ‚«‚ÉŽÀs‚³‚ê‚Ü‚·B
-
- OnAgitBreakƒ‰ƒxƒ‹
- ƒGƒ“ƒyƒŠƒEƒ€‚ð”j‰ó‚µ‚½‚Æ‚«‚ÉŽÀs‚³‚ê‚Ü‚·B
- ‚±‚̃‰ƒxƒ‹‚Í”j‰ó‚µ‚½ƒvƒŒƒCƒ„[‚ðŽå‘Ì‚É‚µ‚ÄŽÀs‚³‚ê‚Ü‚·B
-
- OnAgitEliminateƒ‰ƒxƒ‹
- ƒGƒ“ƒyƒŠƒEƒ€”j‰óŒãAƒMƒ‹ƒh‚ÌŠ—LŽÒ‚ª‘‚«Š·‚í‚é‚Æ‚«‚É
- ŒÄ‚΂ê‚Ü‚·B
-
- –’ˆÓŽ–€
- •¶Žš—ñ‚Æà–¾‚³‚ê‚Ä‚¢‚éˆø”‚Í""‚ň͂Á‚Ä‚­‚¾‚³‚¢B
-
-4. Error Message
-
- * Make an error at the time of compile (it is a thing at the time of map server starting).
- A place is displayed for the line number of an error.
-
- unexpected expr end
- It is the end of an unexpected formula.
- ', ', and';' are in the beginning of a formula.
-
- unmatch ')'
- ')' does not match.
- Correspondence of parenthesis'('')' is amusing.
-
- unexpected newline @ string
- It is the new-line which is not expected in a character sequence.
- There is a new-line in the middle of a character sequence (surrounded by '"').
- Probably it is a failure of '"' to close.
-
- unexpected eof @ string
- It is the file terminus which is not expected in a character sequence.
- The file finished in the middle of the character sequence.
- Probably it is a failure of '"' to close.
-
- unexpected character
- unexpected char
- It is an unexpected character.
- It is thought that the variable etc. is not following a naming rule.
-
- l14 and l15 is DEPRECATED. use @menu instead of l15.
- l14 and l15 are not recommended. Please use @menu instead of l15.
-
- prefix 'l' is DEPRECATED. use prefix '@' instead.
- Prefix'l' is not recommended. Please use '@' instead.
-
- unmatch ']'
- ']' does not carry out an interval.
- Correspondence of parenthesis']' is missing.
-
- expect function
- ŠÖ”‚ðŠú‘Ò‚µ‚Ä‚¢‚Ü‚µ‚½
- ŠÖ”ŒÄ‚Ño‚µ‰‰ŽZŽq'('‚Ì‘O‚ÉŠÖ”ˆÈŠO‚̃Vƒ“ƒ{ƒ‹‚ª‚ ‚è‚Ü‚·B
- ‚¨‚»‚ç‚­ŠÖ”–¼‚ðŠÔˆá‚¦‚Ä‚¢‚Ü‚·B
-
- expect ',' or ')' at func params
- ŠÖ”‚̈ø”‚É‚¨‚¢‚Ä','‚©')'‚ðŠú‘Ò‚µ‚Ä‚¢‚Ü‚µ‚½
- ‚¨‚»‚ç‚­ˆø”‹æØ‚è‚Ì','‚©')'‚ð–Y‚ê‚Ä‚¢‚Ü‚·B
-
- func request '(' ')'
- ŠÖ”ŒÄ‚Ño‚µ‚ÌŠ‡ŒÊ‘Ήž–â‘è
- ‚¨‚»‚ç‚­ˆø”‚Ì”‚ª128‚ð’´‚¦‚Ü‚µ‚½B
-
- illeagal number of parameters
- ƒpƒ‰ƒ[ƒ^‚Ì”‚ª•s³‚Å‚·
- ŠÖ”/–½—߃pƒ‰ƒ[ƒ^‚̌”‚ªˆÙ‚È‚è‚Ü‚·B
- ˆø”‚̌”‚ðŠm”F‚µ‚Ä‚­‚¾‚³‚¢B
- ƒGƒ‰[ˆÊ’u‚Í‘S‚Ă̈ø”‚ÌŒã‚É‚È‚è‚Ü‚·B
-
- expect command
- –½—ß‚ðŠú‘Ò‚µ‚Ä‚¢‚Ü‚µ‚½
- –½—߈ȊO‚̃Vƒ“ƒ{ƒ‹‚ª“Ë‘RoŒ»‚µ‚Ä‚¢‚Ü‚·B
- ‚¨‚»‚ç‚­–½—ß–¼‚ðŠÔˆá‚¦‚Ä‚¢‚Ü‚·B
-
- expect ',' or ';' at cmd params
- –½—߂̈ø”‚É‚¨‚¢‚Ä','‚©';'‚ðŠú‘Ò‚µ‚Ä‚¢‚Ü‚µ‚½
- ‚¨‚»‚ç‚­ˆø”‹æØ‚è‚Ì','‚©';'‚ð–Y‚ê‚Ä‚¢‚Ü‚·B
-
- need ';'
- ';'‚ª•K—v‚Å‚·
- ‚¨‚»‚ç‚­ˆø”‚Ì”‚ª128‚ð’´‚¦‚Ü‚µ‚½B
-
- ŽÀsŽž‚̃Gƒ‰[
- fatal error ! player not attached!
- ’v–½“IƒGƒ‰[IƒvƒŒƒCƒ„[‚ªƒAƒ^ƒbƒ`‚³‚ê‚Ä‚¢‚Ü‚¹‚ñI
-
- ƒLƒƒƒ‰ƒNƒ^[‚ð“Á’è‚Å‚«‚È‚¢ƒCƒxƒ“ƒg‚ÅŽÀs‚³‚ê‚Ä‚¢‚é
- ƒXƒNƒŠƒvƒg‚Ì’†‚ŃLƒƒƒ‰ƒNƒ^[î•ñ‚ª•K—v‚È–½—ß‚âŠÖ”A
- •Ï”‚ÖƒAƒNƒZƒX‚µ‚Ü‚µ‚½BattachridŠÖ”‚ðŽg‚¤‚©A
- ƒLƒƒƒ‰ƒNƒ^[î•ñ‚ª•s—v‚È–½—ß‚ðŽg—p‚µ‚Ä‚­‚¾‚³‚¢B
- ‚à‚µ‚­‚ÍAattachridŠÖ”‚Åݒ肳‚ꂽî•ñ‚ª•s³‚Å‚·B
- ‚È‚¨A‚±‚̃Gƒ‰[‚ª‹N‚±‚é‚Æ’¼Œã‚ɃRƒA‚ð“f‚­‚ÆŽv‚í‚ê‚Ü‚·B
-
- NPCŽå‘̃Cƒxƒ“ƒg‚Åannounce‚µ‚½‚Æ‚«‚Ƀtƒ‰ƒO0x08‚ðŽw’肵‚Ä‚¢‚È‚¢
- ê‡‚à‚±‚̃Gƒ‰[‚ª‚Å‚Ü‚·B
-
-
- illeagal scope string variable.
- •¶Žš—ñ•Ï”‚̃XƒR[ƒv‚ª•s³‚Å‚·B
- –¢‘Ήž‚̃vƒŒƒtƒBƒbƒNƒX‚Å•¶Žš—ñ•Ï”‚ªŽg—p‚³‚ê‚Ü‚µ‚½B
- ƒvƒŒƒtƒBƒbƒNƒX‚ðŠm”F‚µ‚Ä‚­‚¾‚³‚¢B
-
- illeagal scope
- ƒXƒR[ƒv‚ª•s³‚Å‚·B”z—ñ•Ï”–¢‘Ήž‚̃vƒŒƒtƒBƒbƒNƒX‚ð
- Ž‚•ϔ‚É”z—ñ•Ï”Œn‚Ì–½—ß‚ðŽÀs‚µ‚½ê‡‚È‚ÇB
-
- not label !
- goto/menu–½—߂щƒxƒ‹‚ªŽw’肳‚ê‚é‚ׂ«‚Æ‚±‚ë‚É
- ƒ‰ƒxƒ‹ˆÈŠO‚̃Vƒ“ƒ{ƒ‹‚ªŽw’肳‚ê‚Ä‚¢‚Ü‚·B
- ‚à‚µ‚­‚ÍAƒ‰ƒxƒ‹–¼‚Æ•Ï”–¼‚ªƒoƒbƒeƒBƒ“ƒO‚µ‚Ä‚¢‚Ü‚·B
-
- buildin_set: not name
- set–½—ß‚Å‘æˆêˆø”‚ª•Ï”–¼‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
-
- getelementofarray (operator[]): param2 illeagal number
- ”z—ñ•Ï”‚Å[]“à‚Ì’l‚ª•s³‚Å‚·
- []“à‚Ì’l‚ª0–¢–ž‚©128ˆÈã‚É‚È‚è‚Ü‚µ‚½
-
- getelementofarray (operator[]): param1 not name
- ”z—ñ•Ï”‚Å[]‚Ì‘O‚̃Vƒ“ƒ{ƒ‹‚ª•Ï”–¼‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
-
- op_2: int&str, str&int not allow.
- ŠÖŒW‰‰ŽZŽqi”äŠr‰‰ŽZŽqj‚ÅA”’l‚Æ•¶Žš—ñA‚à‚µ‚­‚Í
- •¶Žš—ñ‚Æ”’l‚ªŽw’肳‚ê‚Ü‚µ‚½B
-
- infinity loop !
- ƒXƒNƒŠƒvƒg‚ÌŽÀs–½—ß”‚©Agoto/menu–½—ߎÀs‰ñ”‚ª
- ‘½‚·‚¬‚é‚Ì‚ÅA–³ŒÀƒ‹[ƒv‚Æ”»’f‚µ‚Ü‚µ‚½B
- ƒXƒNƒŠƒvƒg‚ÌŽÀs‚Í‹­§“I‚É’†’f‚³‚ê‚Ü‚µ‚½B
-
- not function and command !
- ŠÖ”ŽÀs/–½—ߎÀs•”•ª‚ÅAŠÖ”‚Å‚à–½—ß‚Å‚à‚È‚¢
- ƒVƒ“ƒ{ƒ‹‚ª‚ ‚è‚Ü‚µ‚½B
- if•¶‚Ì‚È‚©‚Å‚ ‚é‰Â”\«‚ª‚‚¢‚Å‚·B
-
- return without callfunc or callsub !
- callfunc‚âcallsub‚³‚ê‚Ä‚¢‚È‚¢‚Ì‚Éreturn–½—ß‚ðŽÀs‚µ‚Ü‚µ‚½B
-
- stack.sp(?) != default(?)
- ƒXƒ^ƒbƒNƒ|ƒCƒ“ƒ^‚ªŠî€ƒXƒ^ƒbƒNƒ|ƒCƒ“ƒ^‚ƈقȂÁ‚Ä‚¢‚Ü‚·B
- –½—ß‚ðŽÀs‚µ‚½Œ‹‰ÊAƒXƒ^ƒbƒNƒ|ƒCƒ“ƒ^‚ª‹¶‚¢‚Ü‚µ‚½B
- ŠÖ”‚ð–½—ß‚Æ‚µ‚ÄŽÀs‚µ‚½‰Â”\«‚ª‚ ‚è‚Ü‚·B
-
-
-5. Postscript
- NPC contained in snapshot was made reference in creating this text.
- I appreciate people which created NPC.
-
-It corrects based on text by asong (2004/3/1).
-
-
+AthenaNPCScript
+
+- Table of contents
+ 0. Introduction
+ 1. Definition of NPC
+ 2. Explanation of Script, and Fundamental Rule
+ 3. Imperative Sentence, Function, and Constant Label
+ 4. Error Message
+ 5. Postscript
+
+0. Introduction
+ The function and form which are contained in this text refer to npc_sample.txt contained in the newest snapshot, and are described.
+ The convenience of the editor which shows this text is considered, <tab> is written and <n> etc. is written. [ a tab character ] [ arbitrary values ].
+ Although it is a coordinate system, please make a lower figure reference.
+ The increase in ?Y
+ ( 0,200)--(200,200)
+ | |
+ | |
+ | |
+ | |
+ | |
+ ( 0, 0)--(200, 0)-> the increase in X
+
+1. Definition of NPC
+ if it is below an athena directory -- anywhere -- being good (if it being able to do below athena/npc) -- please create txt for the time being
+ The NPC describes first what is shown (a way of speaking called NPC depending on the case is unsuitable).
+
+ * Warp point : perform movement between MAP.
+ <gatname>,<x>,<y><tab>warp<tab><displayname><tab><dx>,<dy>,<destination_gatname>,<destination_x>,<destination_y>
+
+ gatname The MAP file name on which a warp point is put is specified. Please do not forget gat.
+ x The horizontal coordinates on which a warp point is put are specified.
+ y The vertical coordinates on which a warp point is put are specified.
+ displayname It is a warp point discernment child. You may overlap. It uses by debugging.
+ dx It is the horizontal effect range of a warp point.
+ dy It is the vertical effect range of a warp point. Probably I do not write a circle but think that it is a region.
+ Example of dx and dy (- is x and y) :
+ 0,0 1,0 2,2
+ *@*– *–*–*–*–*– *–*–*–*–*–*–*–
+ *–*œ*– *–*–*œ*–*– *–*–*–*–*–*–*–
+ *@*– *–*–*–*–*– *–*–*–*–*–*–*–
+ *@ *–*–*–*œ*–*–*–
+ *@ *–*–*–*–*–*–*–
+ *@ *–*–*–*–*–*–*–
+ *@ *–*–*–*–*–*–*–
+ *@
+ * I hear that and it will leap if the cell of - is stepped on.
+ *@
+ destination_gatname It is a warp place. . Even if there is gat and there is not, don't care about it.
+ destination_x They are warp place horizontal coordinates.
+ destination_y They are warp place vertical coordinates.
+
+ Notes :
+ A warp point displays only that plurality is described to be at the end when located on this position.
+ When the coordinates of a warp place are move prohibition cells, it leaps to somewhere in the MAP.
+
+ * Monster : manage the spawning(aka apperance in japanese.) of a monster.
+ <gatname>,<x>,<y>,<xs>,<ys><tab>monster<tab><displayname><tab><npcid>,<number>,<spawn_delay1>,<spawn_delay2>[,<event>]
+
+ gatname The appearing MAP file name is specified.
+ x The appearing horizontal coordinates are specified. Random at 0.
+ y The appearing vertical coordinates are specified. Random at 0.
+ xs The appearing horizontal range is specified.
+ ys The appearing vertical range is specified.
+ Example of xs and ys (- is x and y) :
+ 0,0 2,1
+ *@*œ *–*–*–*–*–
+ *@ *–*–*œ*–*–
+ *@ *–*–*–*–*–
+ *@
+ * And a monster appears from the cell of -.
+
+ displayname It is the display name of the appearing monster.
+ npcid Please refer to mob_db.txt. id of the monster made to appear is specified.
+ number It is the number of the maximum appearances in the MAP and the appearance range.
+ spawn_delay1 After appearing, if specified the amount of time in milliseconds before it re-appears.
+ spawn_delay2 After dying, if specified the amount of time in milliseconds before it re-appears.
+ event The specified event is generated. An abbreviation is possible.
+
+ Notes:
+ spawn_delay1 and spawn_delay2 judge and give priority to whether it re-appears having been based the latest [ direction ] on which as a result.
+
+ * Store : sell an item.
+ <gatname>,<x>,<y>,<direction><tab>shop<tab><displayname><tab><npcid>,<item_id>:<price>,<item_id>:<price>,<item_id>:<price>
+
+ gatname The MAP file name to arrange is specified.
+ x The horizontal coordinates to arrange are specified.
+ y The vertical coordinates to arrange are specified.
+ direction Direction is specified.
+ Details of direction :
+ 7 0 1
+ 6 2
+ 5 4 3
+
+ displayname The display name of the store to arrange is specified.
+ npcid The display sprite ID of the store to arrange is specified.
+ item_id The item ID put on the store to arrange is specified. Please refer to item_db.
+ price The price of the item specified by item_id is set up.
+ each <item_id>:<price> is divided by a comma (,), and more than one can be specified.
+ example:
+ item_id:price,item_id2,price2
+
+ * Script : create NPC.
+ <gatname>,<x>,<y>,<direction><tab>script<tab><displayname><tab><npcid>,<xs>,<ys>,{ <script> ... }
+
+ gatname The MAP file name to arrange is specified.
+ x The horizontal coordinates to arrange are specified.
+ y The vertical coordinates to arrange are specified.
+ direction Direction is specified.
+ displayname The display name of NPC to arrange is specified. It becomes an event name when npcid is -1.
+ When making said display name another operation event, it can be described as a display name::discernment child.
+ npcid The display sprite ID of NPC to arrange is specified. If -1 is specified, it will become an event in map.
+ xs The horizontal range which performs a script automatically is specified.
+ ys The vertical range which performs a script automatically is specified. It is the same as a warp.
+
+ Explanation about the inside of {} (inside parenthesis).
+ Collecting by the party cannot recommend you. If it can do
+ gatname etc,
+ {
+ //comment
+ script;
+ label:
+ script;
+ }
+ Let's write by the said touch. Comment out is //and comment area is /* and */.
+ The ? which does not leave; (semicolon) in the script ending.
+
+ u<gatname>,<x>,<y>,<direction><tab>v‚Ì•”•ª‚ðAu-<tab>v‚Æ‚·‚邱‚Æ‚ÅA
+ ƒ}ƒbƒvƒT[ƒo[“à‚É‚Í‘¶Ý‚µ‚Ä‚¢‚Ä‚àAŽÀۂ̃}ƒbƒv‚É‚Í”z’u‚³‚ê‚È‚¢NPC‚ð쬂ł«‚Ü‚·B
+ ‚±‚ê‚ÍŒãq‚̃fƒ…ƒvƒŠƒP[ƒgƒXƒNƒŠƒvƒg‚ŃRƒs[Œ³‚Æ‚µ‚ÄŽg—p‚µ‚Ü‚·B
+
+ –ƒfƒ…ƒvƒŠƒP[ƒgƒXƒNƒŠƒvƒgFŠù‘¶‚ÌNPCi‚̃XƒNƒŠƒvƒgj‚ðƒRƒs[‚µ‚Ü‚·B
+ <gatname>,<x>,<y>,<direction><tab>duplicate(<source>)<tab><displayname><tab><npcid>,<xs><ys>
+
+ sourceˆÈŠO‚̃pƒ‰ƒ[ƒ^‚Í’Êí‚̃XƒNƒŠƒvƒg‚Æ“¯‚¶‚Å‚·B
+ source‚ɂ̓Rƒs[Œ³‚Æ‚È‚éNPC‚ÌŽ¯•Ê–¼‚ð“ü—Í‚µ‚Ü‚·B
+
+ ƒRƒs[Œ³‚ÌNPC‚ªƒ}ƒbƒvã‚É”z’u‚³‚ê‚Ä‚¢‚éê‡A“¯‚¶ƒ}ƒbƒv‚Å‚ ‚é•K—v‚ª‚ ‚è‚Ü‚·B
+ ƒ}ƒbƒvã‚É”z’u‚³‚ê‚Ä‚¢‚È‚¢ê‡‚ÍA‚ǂ̃}ƒbƒv‚Ö‚àƒRƒs[‰Â”\‚Å‚·B
+
+ –ƒ†[ƒU[’è‹`ŠÖ”ƒXƒNƒŠƒvƒgFƒXƒNƒŠƒvƒg‚©‚çŒÄ‚Ño‚³‚ê‚郆[ƒU[’è‹`ŠÖ”‚ð쬂µ‚Ü‚·B
+ function<tab>script<tab><name><tab>{ <script> ... }
+
+ callfunc–½—߂ŌĂÑo‚·‚±‚Æ‚Ìo—ˆ‚éŠÖ”‚ð쬂µ‚Ü‚·B
+ ŠÖ”‚ÌÅŒã‚É‚Í•K‚¸return–½—ß‚ð“ü‚ê‚Ä‚­‚¾‚³‚¢B
+
+ –ƒ}ƒbƒvƒtƒ‰ƒOFMAP‚̃‹[ƒ‹‚ðŠÇ—‚µ‚Ü‚·B
+ <gatname><tab>mapflag<tab><const>
+
+ gatname ƒ‹[ƒ‹‚ðÝ’è‚·‚éMAPƒtƒ@ƒCƒ‹–¼‚ðŽw’肵‚Ü‚·B
+ const ƒ‹[ƒ‹‚Ì“à—e‚ðŽw’肵‚Ü‚·B
+
+ const‚̈ꗗB
+ nosave<tab><gatname>,<x>,<y>
+ ƒŠƒƒOƒCƒ“‚µ‚½Û<gatname>‚ÌÀ•W<x>,<y>‚Ɉړ®‚µ‚Ü‚·B
+ nomemo<tab>dummy
+ ƒƒ‚‚ðŽæ‚邱‚Æ‚ð‹ÖŽ~‚µ‚Ü‚·B
+ notereport<tab>dummy
+ SavePoint‚Ü‚½‚ÍRandom‚ðŽw’肵‚½warp•¶Aƒ[ƒvƒ|[ƒ^ƒ‹AƒeƒŒƒ|[ƒg‚ð‹ÖŽ~‚µ‚Ü‚·B
+ nobranch<tab>dummy
+ ŒÃ–Ø‚ÌŽ}‚ÌŽg—p‚ð‹ÖŽ~‚µ‚Ü‚·B
+ pvp<tab>dummy
+ PVP‰Â”\MAP‚É‚È‚è‚Ü‚·B
+ nopenalty<tab>dummy
+ ƒfƒXƒyƒiƒ‹ƒeƒB–³‚µ‚É‚È‚è‚Ü‚·B
+ pvp_noparty<tab>dummy
+ PVP‚É‚¨‚¢‚ÄA“¯ƒp[ƒeƒB[UŒ‚•s‰Â‚É‚È‚è‚Ü‚·B
+ pvp_noguild<tab>dummy
+ PVP‚É‚¨‚¢‚ÄA“¯ƒMƒ‹ƒhUŒ‚•s‰Â‚É‚È‚è‚Ü‚·B
+ gvg<tab>dummy
+ ƒV[ƒYƒ‚[ƒh‚É‚È‚è‚Ü‚·B
+ gvg_noparty<tab>dummy
+ ƒV[ƒYƒ‚[ƒh‚É‚¨‚¢‚ÄA“¯ƒp[ƒeƒB[UŒ‚•s‰Â‚É‚È‚è‚Ü‚·B
+
+‚QDƒXƒNƒŠƒvƒg‚Ìà–¾‚ÆŠî–{“I‚È‹K‘¥
+ –”Žš
+ •„†•t‚Ì®”‚Æ‚P‚Ui”•\‹L®”‚ðŽg—p‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+ •„‡•t®”‚Í”¼Šp”Žš‚Å123456“™‚Æ‹Lq‚µ‚Ü‚·B
+ ‚P‚Ui”•\‹L®”‚Í0x12“™0x‚ð•t‚¯‚Ä‹Lq‚µ‚Ü‚·B
+
+ –•¶Žš—ñ
+ "iƒ_ƒuƒ‹ƒNƒH[ƒe[ƒVƒ‡ƒ“j‚ň͂ñ‚¾•¶Žš‚Í•¶Žš—ñ‚Æ‚µ‚Ä•]‰¿‚³‚ê‚Ü‚·B
+ "iƒ_ƒuƒ‹ƒNƒH[ƒe[ƒVƒ‡ƒ“j‹L†‚ðˆµ‚¢‚½‚¢ê‡‚Í\"‚Æ‹Lq‚µ‚Ü‚·B
+ \‹L†‚ðˆµ‚¢‚½‚¢ê‡‚Í\\‚Æ‹Lq‚µ‚Ü‚·B
+ ‚È‚¨•\Ž¦ŠÖŒW‚Ì•¨‚ÉŠÖ‚µ‚Ä‚Í^000000“™‚ÌF•ÏX‚ðŽg‚¤‚±‚Æ‚ª‚Å‚«‚Ü‚·B
+ •Ï” + "•¶Žš—ñ"‚Æ‚¢‚Á‚½•¶Žš—ñŒ‹‡‚à‚Å‚«‚Ü‚·B
+
+ –’P€‰‰ŽZŽq
+ ˆÈ‰º‚Ì”’lê—p‚Ì’P€‰‰ŽZŽq‚ª—pˆÓ‚³‚ê‚Ä‚¢‚Ü‚·B
+ - •„†‹t“]i‚Q‚Ì•â”j
+ ~ ƒrƒbƒg˜_—”Û’èi‚P‚Ì•â”j
+ ! ˜_—”Û’è
+
+ –‚Q€‰‰ŽZŽq
+ ˆÈ‰º‚Q€‰‰ŽZŽq‚Í”’l‚Æ•¶Žš—ñ‚Å“®ì‚ªˆÙ‚È‚è‚Ü‚·B
+ + ‰ÁŽZ/Œ‹‡
+ ”’l‚Ç‚¤‚µ‚Ìꇂ͉ÁŽZ‚µ‚Ü‚·B
+ ‚»‚êˆÈŠO‚Ìꇂ͕¶Žš—ñ‚Æ‚Ý‚È‚µ‚ÄŒ‹‡‚µ‚Ü‚·B
+
+ ˆÈ‰º‚Ì‚Q€‰‰ŽZŽq‚Í”’lê—p‚Å‚·B
+ - Œ¸ŽZ
+ * æŽZ
+ / œŽZ
+ % è—]
+ & ƒrƒbƒg˜_—Ï
+ | ƒrƒbƒg˜_—˜a
+ ^ ƒrƒbƒg”r‘¼“I˜_—˜a
+ && ˜_—Ï
+ || ˜_—˜a
+
+ ˆÈ‰º‚Ì‚Q€‰‰ŽZŽq‚Í”’l‚Ç‚¤‚µA‚Ü‚½‚Í•¶Žš—ñ‚Ç‚¤‚µ‚Ì”äŠr‚ðs‚¢‚Ü‚·B
+ ‚±‚ê‚ç‚ÌŠÖŒW‰‰ŽZŽq‚ÍŠÖŒW‚ª¬‚è—§‚‚Æ1A¬‚è—§‚½‚È‚¢‚Æ0‚ð•Ô‚µ‚Ü‚·B
+ == “™‚µ‚¢
+ != “™‚µ‚­‚È‚¢
+ > ‚æ‚è‘å‚«‚¢
+ >= ‚æ‚è‘å‚«‚¢‚©“™‚µ‚¢iˆÈãj
+ < ‚æ‚謂³‚¢i–¢–žj
+ <= ‚æ‚謂³‚¢‚©“™‚µ‚¢iˆÈ‰ºj
+
+ –•Ï”
+ ”¼Šp‰p”Žš‚ðŽg—p‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+ •Ï”‚̃XƒR[ƒv‚ƃ‰ƒCƒtƒ^ƒCƒ€‚̓vƒŒƒtƒBƒbƒNƒX‚É‚æ‚èŽw’肵‚Ü‚·B
+ ¬•¶Žš‚̃Gƒ‹‚̓vƒŒƒtƒBƒbƒNƒX‚Æ‚µ‚Ĉµ‚í‚ê‚é‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
+ (¬•¶Žš‚̃Gƒ‹‚Í¡Œã‚Ì“®ì‚ð•ÛႳ‚ê‚È‚¢‚Ì‚ÅŽg—p‚µ‚È‚¢‚ʼnº‚³‚¢)
+
+ ƒvƒŒƒtƒBƒbƒNƒX ƒXƒR[ƒv ƒ‰ƒCƒtƒ^ƒCƒ€
+ (‚È‚µ) ƒLƒƒƒ‰ƒNƒ^[ ‰i‘±“I
+ @ ƒLƒƒƒ‰ƒNƒ^[ ˆêŽž“I
+ l “¯ã “¯ãi„§‚³‚ê‚È‚¢j
+ $ ƒ}ƒbƒvƒT[ƒo[ ‰i‘±“I
+ $@ ƒ}ƒbƒvƒT[ƒo[ ˆêŽž“I
+ # ƒAƒJƒEƒ“ƒg ‰i‘±“I
+ ## ƒAƒJƒEƒ“ƒg(‘Sƒ[ƒ‹ƒh) ‰i‘±“I
+
+ ‚‚܂èA•’ʂ̈ꎞ“I‚È•Ï”‚Í@, •Û‘¶‚·‚é•K—v‚Ì‚ ‚é•Ï”‚Í
+ ƒvƒŒƒtƒBƒbƒNƒX‚È‚µA‘S‚ẴLƒƒƒ‰ƒNƒ^[‚Å‹¤—L‚·‚ׂ«•Ï”‚Í $A
+ “¯ˆêƒAƒJƒEƒ“ƒg‚Å‹¤—L‚·‚ׂ«•Ï”‚Í # ‚â ## ‚ðŽg—p‚·‚邱‚Æ‚É‚È‚è‚Ü‚·B
+
+ ‚Ü‚½A•Ï”‚ÌŒ^‚̓|ƒXƒgƒtƒBƒbƒNƒX‚É‚æ‚èŽw’肵‚Ü‚·B
+ ‚½‚¾‚µA•¶Žš—ñŒ^‚̓Lƒƒƒ‰ƒNƒ^[ˆêŽž•Ï”A‚¨‚æ‚ÑA
+ ‰i‘±“I/ˆêŽž“Iƒ}ƒbƒvƒT[ƒo[•Ï”‚Å‚Ì‚ÝŽg—p‚Å‚«‚Ü‚·B
+ iƒvƒŒƒtƒBƒbƒNƒX @A$A$@ j
+
+ ƒ|ƒXƒgƒtƒBƒbƒNƒX Œ^
+ (‚È‚µ) ®”
+ $ •¶Žš—ñ
+
+ <—á> @hoge$ •¶Žš—ñŒ^ˆêŽž“IƒLƒƒƒ‰ƒNƒ^[•Ï”
+ hoge ”’lŒ^‰i‘±“IƒLƒƒƒ‰ƒNƒ^[•Ï”
+ $hoge ”’lŒ^‰i‘±“I‘SƒLƒƒƒ‰ƒNƒ^[‹¤—L•Ï”
+
+ ˆêŽž“I‚Å‚È‚¢•Ï”‚Í‘½—p‚·‚ׂ«‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
+ •Û‘¶‚·‚é•K—v‚Ì‚È‚¢‚à‚̂͋ɗ͈ꎞ•Ï”‚ÅÏ‚Ü‚¹‚é‚ׂ«‚Å‚·B
+ •Û‘¶‚·‚é•K—v‚ª‚ ‚é‚Ì‚©‚È‚¢‚Ì‚©‚Í‚æ‚­l—¶‚µ‚Ä‚­‚¾‚³‚¢B
+ “Á‚ɉi‘±“I‚ȃLƒƒƒ‰ƒNƒ^[/ƒAƒJƒEƒ“ƒg•Ï”‚ÍA”‚ɧŒÀ‚ª‚ ‚è‚Ü‚·B
+ Žg—p‚ªI‚í‚Á‚Ä“ñ“x‚ÆŽg—p‚·‚邱‚Æ‚ª‚È‚¢‚Æ‚í‚©‚Á‚Ä‚¢‚é•Ï”‚Í
+ ’l‚ð0‚ÉÝ’è‚·‚邱‚Æ‚Å휂·‚邱‚Æ‚ªo—ˆ‚Ü‚·B
+
+ –”z—ñ•Ï”
+ •Ï”–¼‚ÌŒã‚ÉŠ‡ŒÊ [ ] ‚ÅŠ‡‚Á‚½Ž®‚ðŽw’è‚·‚邱‚Æ‚Å”z—ñ•Ï”‚É‚È‚è‚Ü‚·B
+ •Ï”–¼‚Æ"["‚ÌŠÔ‚É‹ó”’•¶Žš‚ð“ü‚ê‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñB
+
+ <—á> hoge[10] fuga[ @temp ]
+
+ ”z—ñ‚Ì—v‘f”Ô†‚Í0`127‚ªŽw’è‚Å‚«‚Ü‚·‚ªA”Ô†0‚Í“¯–¼‚Ì•Ï”‚Æ
+ ’l‚ð‹¤—L‚µ‚Ü‚·B‚½‚Æ‚¦‚ÎAhoge[0] ‚Æ hoge ‚Í“¯‚¶•Ï”‚Å‚·B
+
+ ”z—ñ•Ï”‚͈ꎞ“IƒLƒƒƒ‰ƒNƒ^[•Ï”AˆêŽž“I/‰i‘±“Iƒ}ƒbƒvƒT[ƒo[•Ï”‚ÅŽg—p‚Å‚«‚Ü‚·B
+ •Ï”‚ÌŒ^‚Í”’lA•¶Žš—ñ—¼•û‚Æ‚à—˜—p‚Å‚«‚Ü‚·B
+
+ –ƒ‰ƒxƒ‹
+ ”¼Šp‰p”‚¨‚æ‚уAƒ“ƒ_[ƒo[‚ªŽg—p‚Å‚«‚Ü‚·B
+ •Ï”‚â–½—ß‚È‚Ç‚Æ‹æ•Ê‚·‚邽‚ß L_ ‚ð擪‚ɂ‚¯‚邱‚Æ‚ª„§‚³‚ê‚Ü‚·B
+ L_hoge: ‚Æ‚¢‚Á‚½•—‚ÉŽg—p‚µ‚Ü‚·B
+ if•¶‚âmenu•¶‚̃Wƒƒƒ“ƒvæ‚ÉŽw’肳‚ê‚Ü‚·B
+
+ –’è”
+ athena‚Ídb/const.txt‚É€‹’‚µ‚½’蔂ð’ñ‹Ÿ‚µ‚Ü‚·B
+ ƒXƒNƒŠƒvƒg“à‚Å‚Ì‚ÝŽg—p‰Â”\‚Å‚·B
+
+ ––„‚ßž‚Ý•Ï”
+ ˜b‚©‚¯‚½ƒvƒŒƒCƒ„[‚̃Xƒe[ƒ^ƒX‚È‚Ç‚ðŽQÆ‚Å‚«‚Ü‚·B
+ db/const.txt‚É‹Lq‚³‚ê‚Ä‚¢‚Ü‚·B
+ ƒXƒNƒŠƒvƒg“à‚Å‚Ì‚ÝŽg—p‰Â”\‚Å‚·B
+ ‚È‚¨Aˆê•”‚𜂢‚Ä’l‚Ì‘ã“ü‚Í‚Å‚«‚Ü‚¹‚ñB
+
+ –Ž®
+ –½—ß•¶‚̈ø”‚ª”’l‚¾‚Á‚½ê‡A‚»‚±‚Å—˜—p‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+ ƒXƒy[ƒX‚Í—v‚ç‚È‚¢‚悤‚Å‚·‚ª‚ ‚Á‚½•û‚ªŒ©ˆÕ‚¢‚Å‚·B
+ ”äŠr‰‰ŽZŽq‹y‚ј_—‰‰ŽZŽq‚Í’l‚ª^‚Å‚ ‚Á‚½‚Æ‚«”’l‚Ì1A‹U‚Å‚ ‚Á‚½‚Æ‚«0‚ð•Ô‚µ‚Ü‚·B
+
+ –ƒCƒxƒ“ƒg
+ Œ`‚ðŽ‚½‚È‚¢ƒXƒNƒŠƒvƒg‚Å‚·B
+ ƒ^ƒCƒ€ƒAƒ^ƒbƒN‚È‚Ç‚Ì쬂Ɏg‚¢‚Ü‚·B
+ ƒCƒxƒ“ƒg–¼‚ð‹Lq‚·‚é•”•ª‚Å‚ÍAƒCƒxƒ“ƒg–¼::ƒ‰ƒxƒ‹–¼‚Æ‚·‚邱‚Æ‚Å‚»‚̃Cƒxƒ“ƒg‚ÌŽw’肵‚½ƒ‰ƒxƒ‹‚©‚ç
+ ƒXƒNƒŠƒvƒg‚ðŠJŽn‚³‚¹‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+
+ ––½—ß\•¶
+ ˆø”‚Í”¼ŠpƒXƒy[ƒX‚ð‹ó‚¯‚Ä‹Lq‚µ‚Ä‚­‚¾‚³‚¢B
+
+‚RD–½—ß•¶‹y‚ÑŠÖ”‹y‚ђ蔃‰ƒxƒ‹
+ ––½—ß•¶
+ mes–½—ß
+ mes <string>;
+
+ string •¶Žš—ñ
+
+ <string>‚É‹Lq‚³‚ꂽ•¶Žš—ñ‚ðƒƒbƒZ[ƒWƒEƒBƒ“ƒhƒE‚Éo—Í‚µ‚Ü‚·B
+
+ next–½—ß
+ next;
+
+ ƒƒbƒZ[ƒWƒEƒBƒ“ƒhƒE‚Énextƒ{ƒ^ƒ“‚ð•\Ž¦‚µA‘Ò‹@‚µ‚Ü‚·B
+
+ close–½—ß
+ close;
+
+ ƒƒbƒZ[ƒWƒEƒBƒ“ƒhƒE‚Écloseƒ{ƒ^ƒ“‚ð•\Ž¦‚µAƒXƒNƒŠƒvƒg‚ðI—¹‚µ‚Ü‚·B
+
+ menu–½—ß
+ menu <string1>,<label1>[,<stringN>,<labelN>...];
+
+ stringN •¶Žš—ñ
+ labelN ƒ‰ƒxƒ‹
+
+ ƒƒjƒ…[‚ð•\Ž¦‚µ‚Ü‚·B<stringN>‚É‹Lq‚³‚ꂽ•¶Žš—ñ‚ð‘I‘ð‚·‚é‚Æ<labelN>‚©‚çƒXƒNƒŠƒvƒg‚ðŠJŽn‚µ‚Ü‚·B
+ ‚Ü‚½A‘I‚΂ꂽƒ‰ƒxƒ‹‚̔Ԇ‚Í•Ï”@menu‚É‘ã“ü‚³‚ê‚Ü‚·B
+ (l15‚É‚à‘ã“ü‚³‚ê‚Ü‚·‚ªA‚±‚¿‚ç‚Í¡Œã“®ì‚ª•ÛႳ‚ê‚È‚¢‚Ì‚Ål15‚ÍŽg—p‚µ‚È‚¢‚ʼnº‚³‚¢j
+
+ goto–½—ß
+ goto <label>;
+
+ label ƒ‰ƒxƒ‹
+
+ <label>‚©‚çƒXƒNƒŠƒvƒg‚ðŠJŽn‚µ‚Ü‚·B
+
+ cutin–½—ß
+ cutin <filename>,<position>;
+
+ filename •¶Žš—ñ
+ position ”’l
+
+ ƒJƒvƒ‰Eˆõ‚Ȃǂ̃JƒbƒgƒCƒ“‚ð•\Ž¦‚µ‚Ü‚·B<filename>‚Í•\Ž¦‚µ‚½‚¢ƒtƒ@ƒCƒ‹–¼A<position>‚Í•\Ž¦ˆÊ’u‚ðŽw’肵‚Ü‚·B
+ positionF0,¶‰ºA1,’†‰›‰ºA2,‰E‰ºA255,ƒJƒbƒgƒCƒ“Á‹Ž
+
+ jobchange–½—ß
+ jobchange <job>[, <upper>];
+
+ job ”’l
+ upper ”’l
+
+ E‹Æ‚ð•ÏX‚µ‚Ü‚·B<job>‚Ídb/const.txt‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
+ <upper>‚Í0=’Êí,1=“]¶,2=—{Žq,-1 or –³‚µ=Œ»Ý‚Ì<upper>‚É‚È‚è‚Ü‚·B
+ jobLv‚ÍŽ©“®‚Å‚P‚É‚È‚è‚Ü‚·B
+ ƒo[ƒh‚ƃ_ƒ“ƒT[‚É‚Í’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
+
+ input–½—ß
+ input [<variable>];
+
+ variable •Ï”AÈ—ª‰Â
+
+ “ü—̓EƒBƒ“ƒhƒE‚ðŠJ‚«A“ü—̓f[ƒ^‚ð<variable>‚É‘ã“ü‚µ‚Ü‚·B
+ •Ï”‚ÌŒ^‚ª•¶Žš—ñŒ^‚Ì‚Æ‚«‚Í•¶Žš—ñ“ü—̓EƒBƒ“ƒhƒEA®”Œ^‚Ì‚Æ‚«‚Í”’l“ü—̓EƒBƒ“ƒhƒE‚É‚È‚è‚Ü‚·B
+ <variable>‚ðÈ—ª‚µ‚½ê‡‚É‚Í”’l“ü—̓EƒBƒ“ƒhƒE‚ðo‚µAƒf[ƒ^‚Í•Ï”l14 (¬•¶Žš‚̃Gƒ‹+14)‚É‘ã“ü‚³‚ê‚Ü‚·B
+ il14‚Í¡Œã‚Ì“®ì‚ª•ÛႳ‚ê‚È‚¢‚Ì‚ÅAˆø”‚ÍÈ—ª‚µ‚È‚¢‚ʼnº‚³‚¢j
+
+ warp–½—ß
+ warp <gatname>,<x>,<y>;
+
+ gatname •¶Žš—ñ
+ x,y ”’l
+
+ <gatname>‚ÉŽw’肳‚ꂽMAP‚ÌÀ•W<x>,<y>‚Ƀ[ƒv‚µ‚Ü‚·B
+ <gatname>‚ðSavePoint‚É‚µ‚½ê‡AƒZ[ƒuƒ|ƒCƒ“ƒg‚Ɉړ®‚µ‚Ü‚·B
+ Random‚É‚µ‚½ê‡A‚»‚ÌMAP“à‚Ì‚Ç‚±‚©‚Ɉړ®‚µ‚Ü‚·B‘¦‚¿<x><y>‚Í–³Ž‹B
+
+ setlook–½—ß
+ setlook <n1>,<n2>;
+
+ n1,n2 ”’l
+
+ ŠOŒ©‚ð•ÏX‚µ‚Ü‚·B<n1>‚Í•”•i‚ðA<n2>‚ÍŽí—Þ‚ðŽw’肵‚Ü‚·B
+ n1F1,”¯Œ^A2,•ŠíA3,“ªã’iA4,“ª’†’iA5,“ª‰º’iA6,”¯FA7,•žFA8,‚
+ ‘•”õ•i‚Í•ÏX‚³‚ê‚Ü‚¹‚ñBƒAƒTƒVƒ“’j‚ƃ[ƒO’j‚ÉŠÖ‚µ‚Ä‚Í•ž‚ÌF‚ª‚ ‚è‚Ü‚¹‚ñB
+
+
+ set–½—ß
+ set <variable>,<n>;
+
+ variable •Ï”
+ n ”’l/•¶Žš—ñ
+
+ <variable>‚É<n>‚ð‘ã“ü‚µ‚Ü‚·B
+ •¶Žš—ñŒ^‚ðŽg—p‚·‚é‚Æ‚«‚Í•Ï”–¼‚Ƀ|ƒXƒgƒtƒBƒbƒNƒX‚ð–Y‚ê‚È‚¢‚ʼnº‚³‚¢B
+
+ setarray–½—ß
+ setarray <variable>[,<n0>[,<n1>c]];
+
+ variable •Ï”
+ nx ”’l/•¶Žš—ñ
+
+ ”z—ñ<variable>‚É’l<n0>,<n1>,c‚̃ŠƒXƒg‚ð‘ã“ü‚µ‚Ü‚·B
+ <variable>‚Í”z—ñ–¼‚ðŽw’è‚·‚é‚Æʼn‚©‚çA—v‘f”Ô†‚àŽw’è‚·‚ê‚Γr’†‚©‚ç‘ã“ü‚Å‚«‚Ü‚·B
+ <—á> setarray @hoge[2],16,24,32; @hoge‚Ì—v‘f2‚©‚ç4‚Ü‚Å‚ð16,24,32‚É‚·‚éB
+
+ cleararray–½—ß
+ cleararray <variable>,<n>,<count>;
+
+ variable •Ï”
+ n ”’l/•¶Žš—ñ
+ count ”’l
+
+ ”z—ñ<variable>‚É’l<n>‚ð<count>ŒÂ•ª‘ã“ü‚µ‚Ü‚·B
+ <variable>‚Í”z—ñ–¼‚ðŽw’è‚·‚é‚Æʼn‚©‚çA—v‘f”Ô†‚àŽw’è‚·‚ê‚Γr’†‚©‚ç‘ã“ü‚Å‚«‚Ü‚·B
+ <—á> cleararray @hoge[3],0,6; @hoge‚Ì—v‘f3‚©‚ç8‚Ü‚Å‚ð0‚ɃZƒbƒg‚·‚é
+
+ copyarray–½—ß
+ copyarray <var1>,<var2>,<n>;
+
+ <var1>,<var2> •Ï”
+ n ŒÂ”
+
+ ”z—ñ<var1>‚É”z—ñ<var2>‚Ì—v‘f<n>ŒÂ‚ðƒRƒs[‚µ‚Ü‚·B
+ <var1>,<var2>‚Í”z—ñ–¼‚ðŽw’è‚·‚é‚Æʼn‚©‚çA—v‘f”Ô†‚àŽw’è‚·‚ê‚Γr’†‚©‚çƒRƒs[‚Å‚«‚Ü‚·B
+
+ deletearray–½—ß
+
+ deletearray <variable>,<n>;
+
+ variable •Ï”
+ n ”’l
+
+ ”z—ñ<variable>‚©‚ç<n>ŒÂ‚Ì—v‘f‚ð휂µAŒã‚ë‚Ì—v‘f‚ð‘O‚É‹l‚ß‚é
+ <variable>‚Í”z—ñ–¼‚ðŽw’è‚·‚é‚Æʼn‚©‚çA—v‘f”Ô†‚àŽw’è‚·‚ê‚Γr’†‚©‚ç휂ł«‚Ü‚·B
+
+ if–½—ß
+ if (<cond>) goto <label>;
+
+ cond ”’l
+ label ƒ‰ƒxƒ‹
+
+ <cond>‚ª0ˆÈŠO‚Ìê‡A<label>‚©‚çƒXƒNƒŠƒvƒg‚ðŠJŽn‚µ‚Ü‚·B
+
+ getitem–½—ß
+ getitem <itemid>,<num>;
+
+ itemid ”’l‚Ü‚½‚Í•¶Žš—ñ
+ num ”’l
+
+ <itemid>‚ÉŽw’肳‚ꂽƒAƒCƒeƒ€ID‚ðŽ‚ƒAƒCƒeƒ€‚ð<num>ŒÂ•ª“üŽè‚µ‚Ü‚·B
+ <itemid>‚ª•¶Žš—ñ‚Ìê‡A‚»‚Ì–¼‘O(name,jname)‚ðŽ‚ƒAƒCƒeƒ€‚ÌID‚ðŽg—p‚µ‚Ü‚·B
+ ‚½‚¾‚µAƒAƒCƒeƒ€–¼‚Íitem_db.txt‚ȂǂɈˑ¶‚·‚邽‚ßAƒeƒXƒg–Ú“IˆÈŠO‚Å‚ÍŽg—p‚·‚ׂ«‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
+
+ getitem2–½—ß
+ getitem <itemid>,<num>,<identify>,<refine>,<attribute>,<card1>,
+ <card2>,<card3>,<card4>
+
+ itemid ”’l‚Ü‚½‚Í•¶Žš—ñ
+ num,identify,refine,attribute,card1,card2,card3,card4 ”’l
+
+ <itemid>‚ÉŽw’肳‚ꂽƒAƒCƒeƒ€ID‚ðŽ‚ƒAƒCƒeƒ€‚ð<num>ŒÂ•ª“üŽè‚µ‚Ü‚·B
+ <identify> ŠÓ’èó‘Ô(0‚Å–¢ŠÓ’èA1‚ÅŠÓ’è)
+ <refine> ¸˜B’l
+ <attribute> ƒAƒCƒeƒ€‚Ìó‘Ô
+ <card1> ·‚³‚Ä‚¢‚éƒJ[ƒhA»‘¢•Ší‚È‚ç255‚Å‘•”õˆÈŠO‚̃AƒCƒeƒ€‚ŃLƒƒƒ‰‚Ì–¼‘O‚ð“ü‚ꂽ‚¢Žž‚Í254
+ <card2> ·‚³‚Ä‚¢‚éƒJ[ƒhA»‘¢•Ší‚È‚ç‘®«‚Ư‚Ì‚©‚¯‚ç‚Ì”‚ðÝ’èB¯‚Ì‚©‚¯‚ç‚Ì”(”͈Í:0~3)*5*256 + ‘®«(–³:0A‰Î:3A…:1A•—:4A“y:2)
+ <card3> ·‚³‚Ä‚¢‚éƒJ[ƒhA»‘¢•Ší‚âƒLƒƒƒ‰‚Ì–¼‘O‚ª“ü‚éƒAƒCƒeƒ€‚̓Lƒƒƒ‰ID‚̉º‚Ì2ƒoƒCƒg
+ <card4> ·‚³‚Ä‚¢‚éƒJ[ƒhA»‘¢•Ší‚âƒLƒƒƒ‰‚Ì–¼‘O‚ª“ü‚éƒAƒCƒeƒ€‚̓Lƒƒƒ‰ID‚Ìã‚Ì2ƒoƒCƒg
+
+ <itemid>‚ª•¶Žš—ñ‚Ìê‡A‚»‚Ì–¼‘O(name,jname)‚ðŽ‚ƒAƒCƒeƒ€‚ÌID‚ðŽg—p‚µ‚Ü‚·B
+ ‚½‚¾‚µAƒAƒCƒeƒ€–¼‚Íitem_db.txt‚ȂǂɈˑ¶‚·‚邽‚ßAƒeƒXƒg–Ú“IˆÈŠO‚Å‚ÍŽg—p‚·‚ׂ«‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
+
+ delitem–½—ß
+ delitem <itemid>,<num>;
+
+ itemid_num ”’l
+
+ <itemid>‚ÉŽw’肳‚ꂽƒAƒCƒeƒ€ID‚ðŽ‚ƒAƒCƒeƒ€‚ð<num>ŒÂ•ªŽ¸‚¢‚Ü‚·B
+
+ getexp–½—ß
+ getexp <base_exp>,<job_exp>;
+
+ base_exp ”’l
+ job_exp ”’l
+
+ <base_exp>‚ÉŽw’肳‚ꂽ”‚¾‚¯Base‚ÉŒoŒ±’l‚ª“ü‚è‚Ü‚·B
+ <job_exp>‚ÉŽw’肳‚ꂽ”‚¾‚¯Job‚ÉŒoŒ±’l‚ª“ü‚è‚Ü‚·B
+ ƒ}ƒCƒiƒX‚Ì”Žš‚Í“K‰ž‚³‚ê‚Ü‚¹‚ñB
+
+ makepet–½—ß
+ makepet <petid>;
+
+ petid ”’l
+
+ <petid>‚ÉŽw’肳‚ꂽƒAƒCƒeƒ€ID‚ðŽ‚ƒyƒbƒg‚Ì—‘‚ð쬂µ‚Ü‚·B
+
+ viewpoint–½—ß
+ viewpoint <type>,<x>,<y>,<id>,<color>;
+
+ type,x,y,id ”’l
+ color •s–¾
+
+ Ž‘—¿•s‘«‚È‚Ì‚ÅÚ‚µ‚¢à–¾‚Í‚Å‚«‚Ü‚¹‚ñ‚ªAƒ~ƒjMAP‚É“_–Å‚·‚é“_‚ð•\Ž¦A휂µ‚Ü‚·B
+ type:1,•\Ž¦A2,íœ
+
+ heal–½—ß
+ heal <hp>,<sp>;
+
+ hp,sp ”’l
+
+ <hp>•ªHP‚ðA<sp>•ªSP‚ð‰ñ•œ‚µ‚Ü‚·B
+
+ itemheal–½—ß
+ itemheal <hp>,<sp>;
+
+ hp,sp ”’l
+
+ <hp>•ªHP‚ðA<sp>•ªSP‚ð‰ñ•œ‚µ‚Ü‚·Bheal‚Ƃ͈Ⴂ‰ñ•œ‚·‚éHP‚ÆSP‚Ì—Ê‚ÉVIT(SP‚Ìê‡INT)‚ƃXƒLƒ‹‚É‚æ‚é•â³‚ª•t‚«‚Ü‚·B
+
+ end–½—ß
+ end;
+
+ ƒXƒNƒŠƒvƒg‚ÌŽÀs‚ðI—¹‚µ‚Ü‚·B
+
+ setoption–½—ß
+ setoption <string>;
+
+ string •¶Žš—ñ
+
+ ˆø—pF
+ PC‚Ɉȉº‚ÅŽ¦‚·•t‘®•i(?)‚ð•t‚¯‚Ü‚·B
+ 0x0000 - •t‘®•iíœ
+ 0x0001 - ?
+ 0x0002 - ƒnƒCƒh(‰e•t‚«)
+ 0x0004 - ??
+ 0x0008 - ƒJ[ƒg
+ 0x0010 - ‘é
+ 0x0020 - ƒyƒRƒyƒR(ƒiƒCƒg,ƒNƒ‹ƒZƒCƒ_[‚ÌŽž‚Ì‚Ý—LŒø)
+ 0x0040 - ƒnƒCƒh(‰e–³‚µ)
+ 0x0080 - ƒJ[ƒg2
+ 0x0100 - ƒJ[ƒg3
+ 0x0200 - ƒJ[ƒg4
+ 0x0400 - ƒJ[ƒg5
+ 0x0800 - “ª‚ªƒI[ƒN(Sage‚̃XƒLƒ‹AƒŠƒo[ƒXƒI[ƒLƒbƒVƒ…‚ª‚©‚©‚Á‚½ó‘Ô‚É‚È‚é)
+
+ ˆê’[‚·‚ׂÄÁ‚³‚ê‚Ä‚©‚ç•t‚¯’¼‚·‚Ì‚ÅA•¡”Žw’肵‚½‚¢ê‡‚ɂ͇Œv‚ðŽw’肵‚Ä‚­‚¾‚³‚¢B
+
+ savepoint–½—ß
+ savepoint <gatname>,<x>,<y>;
+
+ gatname •¶Žš—ñ
+ x,y ”’l
+
+ <gatname>‚ÌÀ•W<x>,<y>‚ðƒZ[ƒuƒ|ƒCƒ“ƒg‚Éݒ肵‚Ü‚·B
+
+ openstorage–½—ß
+ openstorage;
+
+ ‘qŒÉ‚ðŠJ‚«‚Ü‚·B
+
+ setcart–½—ß
+ setcart;
+
+ ƒJ[ƒg‚ð•t‚¯‚Ü‚·B
+
+ successrefitem–½—ß
+ successrefitem <n>;
+
+ n ”’l
+
+ ¸˜B¬Œ÷ƒGƒtƒFƒNƒg‚ð•\Ž¦‚µ‚Ü‚·B
+ n:1,“ª‘•”õA2,ŠZA3,¶ŽèA4,‰EŽèA5,‚©‚¯‚é‚à‚ÌA6,ŒCA7,ƒAƒNƒZ‚PA8,ƒAƒNƒZ‚QA9,“ª’†’iA10,“ª‰º’i
+
+ failedrefitem–½—ß
+ failedrefitem <n>;
+
+ n ”’l
+
+ ¸˜BŽ¸”sƒGƒtƒFƒNƒg‚ð•\Ž¦‚µ‚Ü‚·B
+ n:1,“ª‘•”õA2,ŠZA3,¶ŽèA4,‰EŽèA5,‚©‚¯‚é‚à‚ÌA6,ŒCA7,ƒAƒNƒZ‚PA8,ƒAƒNƒZ‚QA9,“ª’†’iA10,“ª‰º’i
+
+ setfalcon–½—ß
+ setfalcon;
+
+ ‘é‚ð•t‚¯‚Ü‚·B
+
+ setriding–½—ß
+ setriding;
+
+ ƒyƒRƒyƒR‚Éæ‚è‚Ü‚·B
+
+ monster–½—ß
+ monster <gatname>,<x>,<y>,<mobname>,<mobid>,<num>[,<event>];
+
+ gatname,mobname •¶Žš—ñ
+ x,y,mobid,num ”’l
+ event •¶Žš—ñAÈ—ª‰Â
+
+ <gatname>‚ÌÀ•W<x>,<y>‚É<mobname>‚ðŽ‚Â<mobid>‚ÉŽw’肳‚ꂽID‚ðŽ‚ƒ‚ƒ“ƒXƒ^[‚ð<num>‘ÌoŒ»‚³‚¹‚Ü‚·B
+ <gatname>‚ªthis‚ÌꇃXƒNƒŠƒvƒg‚ðŽÀs‚µ‚½ƒvƒŒƒCƒ„[‚ª‚¢‚éMAPA
+ <x><y>‚ª-1‚Ìê‡AƒXƒNƒŠƒvƒg‚ðŽÀs‚µ‚½ƒvƒŒƒCƒ„[‚ÌÀ•WA
+ <mobname>‚ª--en--‚ÌꇉpŒê–¼A--ja--‚Ìꇓú–{Œê–¼A<mobid>‚ª-1‚Ìꇃ‰ƒ“ƒ_ƒ€B
+ ‚»‚̃‚ƒ“ƒXƒ^[‚ð“|‚µ‚½‚Æ‚«<event>‚ðŠJŽn‚µ‚Ü‚·B
+
+ announce–½—ß
+ announce <string>,<flag>;
+
+ string •¶Žš—ñ
+ flag ”’l
+
+ <string>‚ð‚f‚lƒAƒiƒEƒ“ƒX‚Å•\Ž¦‚µ‚Ü‚·B
+ <flag>‚͈ȉº‚ÉŽ¦‚·’Ê‚è‚Å‚·B
+ ƒGƒŠƒAƒtƒ‰ƒO
+ 0x00 ‚·‚ׂĂ̂l‚`‚o‚É‘—M
+ 0x01 “¯‚¶‚l‚`‚o
+ 0x02 ‰æ–Ê“à
+ 0x03 Ž©•ª‚Ì‚Ý
+ 0x04 “¯‚¶‚l‚`‚oŽI
+ Fƒtƒ‰ƒO
+ 0x00 ‰©F
+ 0x10 ÂF
+ “ÁŽêƒtƒ‰ƒO
+ 0x00 “Á‚É–³‚µ
+ 0x08 ƒCƒxƒ“ƒg—p
+
+ ƒGƒŠƒAƒtƒ‰ƒO‚ÆFƒtƒ‰ƒO‚Æ“ÁŽêƒtƒ‰ƒO‚̇Œv‚ðŽw’肵‚Ä‚­‚¾‚³‚¢B
+
+ killmonster–½—ß
+ killmonster <gatname>[,<event>];
+
+ gatname •¶Žš—ñ
+ event •¶Žš—ñAÈ—ª‰Â
+
+ <gatname>‚É‘¶Ý‚·‚郂ƒ“ƒXƒ^[‚ð‚·‚×‚ÄŽE‚µ‚Ü‚·B
+ <event>‚É‚æ‚Á‚ČĂÑo‚³‚ꂽƒ‚ƒ“ƒXƒ^[‚Ì‚ÝŽE‚·‚±‚Æ‚à‰Â”\‚Å‚·B<event>‚ðAll‚É‚·‚é‚Æ‚»‚̃}ƒbƒv‚É‚ ‚éˆêŽž“I‚É¢Š«‚³‚ꂽƒ‚ƒ“ƒXƒ^[‚ð‘S‚ÄŽE‚µ‚Ü‚·B
+
+ killmonsterall–½—ß
+ killmonsterall <gatname>
+
+ gatname •¶Žš—ñ
+
+ <gatname>‚É‘¶Ý‚·‚郂ƒ“ƒXƒ^[‚ð‚·‚×‚ÄŽE‚µ‚Ü‚·Bkillmonster‚Ƃ͈á‚Á‚Ä‚»‚̃}ƒbƒv‚ÉŽn‚ß‚©‚ç”z’u‚³‚ê‚Ä‚¢‚½ƒ‚ƒ“ƒXƒ^[‚Ü‚Å‘S‚ÄŽE‚·‚±‚Æ‚ª‚Å‚«‚Ü‚·B
+
+
+ addtimer–½—ß
+ addtimer <ms>,<event>;
+
+ ms ”’l
+ event •¶Žš—ñ
+
+ Œ»Ý‚̃vƒŒƒCƒ„[‚ÉA<ms>ƒ~ƒŠ•bŒo‰ß‚µ‚½Œã<event>‚ðŠJŽn‚·‚éƒ^ƒCƒ}[‚ð쬂µ‚Ü‚·B
+ ‚±‚̃^ƒCƒ}[‚É‚æ‚Á‚ÄŽÀs‚³‚ê‚éƒCƒxƒ“ƒg‚ÍA‚±‚̃vƒŒƒCƒ„[‚Ìî•ñ‚ɃAƒNƒZƒX‚Å‚«‚Ü‚·B
+ ƒvƒŒƒCƒ„[‚ªƒƒOƒAƒEƒg‚·‚é‚ƃ^ƒCƒ}[‚Í–³Œø‚ɂȂ邽‚ß’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
+ ƒAƒŠ[ƒiƒ}ƒbƒv‚È‚Ç‚ÅŽg—p‚·‚éꇂ͂±‚ê‚Å‚Í‚È‚­NPCƒ^ƒCƒ}[‚ðŽg—p‚µ‚Ä‚­‚¾‚³‚¢B
+
+ deltimer–½—ß
+ deltimer <event>;
+
+ event •¶Žš—ñ
+
+ Œ»Ý‚̃vƒŒƒCƒ„[‚Ì<event>‚ðŠJŽn‚·‚éƒ^ƒCƒ}[‚ðÁ‹Ž‚µ‚Ü‚·B
+
+ addtimercount–½—ß
+ addtimercount <event>,<ms>;
+
+ event •¶Žš—ñ
+ ms ”’l
+
+ Œ»Ý‚̃vƒŒƒCƒ„[‚Ì<event>‚ðŠJŽn‚·‚éƒ^ƒCƒ}[‚ÌŠJŽn‚Ü‚Å‚ÌŽžŠÔ‚ð<ms>ƒ~ƒŠ•b’ljÁ‚µ‚Ü‚·B
+
+ initnpctimer–½—ß
+ initnpctimer [<name>];
+
+ <name>‚ÅŽw’肳‚ꂽNPC‚ªŽ‚ÂNPCƒ^ƒCƒ}[‚Ì’l‚ð‚O‚É‚µAƒJƒEƒ“ƒg‚ðŠJŽn‚µ‚Ü‚·B
+ name‚ðÈ—ª‚·‚é‚ÆA–½—ß‚ðŽÀs‚µ‚½NPC‚ª‘ÎÛ‚É‚È‚è‚Ü‚·B
+
+ ‚±‚ÌNPCƒ^ƒCƒ}[‚̓~ƒŠ•b’PˆÊ‚ÅOnTimerXXXX‚Æ‚¢‚¤ƒ‰ƒxƒ‹ƒCƒxƒ“ƒg‚ðŽÀs‚µ‚Ü‚·B
+ <—á> OnTimer1000: <= 1•bŒã, OnTimer30000: <= 30•bŒã
+
+ stopnpctimer–½—ß
+ stopnpctimer [<name>];
+
+ <name>‚ÅŽw’肳‚ꂽNPC‚ªŽ‚ÂNPCƒ^ƒCƒ}[‚̃JƒEƒ“ƒg‚ð’âŽ~‚µ‚Ü‚·B
+ name‚ðÈ—ª‚·‚é‚ÆA–½—ß‚ðŽÀs‚µ‚½NPC‚ª‘ÎÛ‚É‚È‚è‚Ü‚·B
+
+ startnpctimer–½—ß
+ stopnpctimer [<name>];
+
+ <name>‚ÅŽw’肳‚ꂽNPC‚ªŽ‚ÂNPCƒ^ƒCƒ}[‚̃JƒEƒ“ƒg‚ðÄŠJ‚µ‚Ü‚·B
+ name‚ðÈ—ª‚·‚é‚ÆA–½—ß‚ðŽÀs‚µ‚½NPC‚ª‘ÎÛ‚É‚È‚è‚Ü‚·B
+ ‚±‚¿‚ç‚Íinitnpctimer‚ƈႢAƒJƒEƒ“ƒg‚ð0‚ɃŠƒZƒbƒg‚µ‚Ü‚¹‚ñB
+ stopnpctimer‚ƃZƒbƒg‚ÅŽg—p‚µ‚Ü‚·B
+
+ setnpctimer–½—ß
+ setnpctimer <tick>[,<name>]
+
+ <name>‚ÅŽw’肳‚ꂽNPC‚ªŽ‚ÂNPCƒ^ƒCƒ}[‚̃JƒEƒ“ƒg‚ð•ÏX‚µ‚Ü‚·B
+ name‚ðÈ—ª‚·‚é‚ÆA–½—ß‚ðŽÀs‚µ‚½NPC‚ª‘ÎÛ‚É‚È‚è‚Ü‚·B
+ getnpctimer‚ð—˜—p‚·‚ê‚ÎAƒJƒEƒ“ƒg‚𑌸‚Å‚«‚Ü‚·B
+
+ disablenpc–½—ß
+ disablenpc <npcname>;
+
+ npcname •¶Žš—ñ
+
+ <npcname>‚𖳌ø‚É‚µ‚Ü‚·B
+
+ enablenpc–½—ß
+ enablenpc <npcname>;
+
+ npcname •¶Žš—ñ
+
+ <npcname>‚ð—LŒø‚É‚µ‚Ü‚·B
+
+ mapannounce–½—ß
+ mapannounce <gatname>,<string>,<flag>;
+
+ gatname,string •¶Žš—ñ
+ flag ”’l
+
+ <gatname>‘S‘Ì‚É<string>‚ð‚f‚lƒAƒiƒEƒ“ƒX‚Å•\Ž¦‚µ‚Ü‚·B
+ flag:0,‰©F•¶ŽšA16,•¶Žš
+
+ areaannounce–½—ß
+ areannounce <gatname>,<x0>,<y0>,<x1>,<y1>,<string>,<flag>;
+
+ gatname,string •¶Žš—ñ
+ x0,y0,x1,y1,flag ”’l
+
+ <gatname>‚Ì<x0>,<y0>‚©‚ç<x1>,<y1>‚͈͓̔à‚ɑ΂µ<string>‚ð‚f‚lƒAƒiƒEƒ“ƒX‚Å•\Ž¦‚µ‚Ü‚·B
+ flag:0,‰©F•¶ŽšA16,•¶Žš
+
+ areawarp–½—ß
+ areawarp <gatname>,<x0>,<y0>,<x1>,<y1>,<gatname2>,<x>,<y>;
+
+ gatname,gatname2 •¶Žš—ñ
+ x0,y0,x1,y1,x,y ”’l
+
+ <gatname>‚Ì<x0>,<y0>‚©‚ç<x1>,<y1>‚͈͓̔à‚É‚¢‚éPC‚ð<gatname2>‚ÌÀ•W<x>,<y>‚Ɉړ®‚³‚¹‚Ü‚·B
+
+ areamonster–½—ß
+ areamonster <gatname>,<x0>,<y0>,<x1>,<y1>,<mobname>,<mobid>,<num>[,<event>];
+
+ gatname,mobname •¶Žš—ñ
+ x0,y0,x1,y1,mobid,num ”’l
+ event •¶Žš—ñAÈ—ª‰Â
+
+ <gatname>‚Ì<x0>,<y0>‚©‚ç<x1>,<y1>‚͈͓̔à‚É<mobname>‚ðŽ‚Â<mobid>‚ÉŽw’肳‚ꂽID‚ðŽ‚ƒ‚ƒ“ƒXƒ^[‚ð<num>‘ÌoŒ»‚³‚¹‚Ü‚·B
+ <gatname>‚ªthis‚ÌꇃXƒNƒŠƒvƒgŽÀsMAPA<x><y>‚ª-1‚Ìꇃ‰ƒ“ƒ_ƒ€À•WA
+ <mobname>‚ª--en--‚ÌꇉpŒê–¼A--ja--‚Ìꇓú–{Œê–¼A<mobid>‚ª-1‚Ìꇃ‰ƒ“ƒ_ƒ€B
+ ‚»‚̃‚ƒ“ƒXƒ^[‚ð“|‚µ‚½‚Æ‚«<event>‚ðŠJŽn‚µ‚Ü‚·B
+
+ percentheal–½—ß
+ percentheal <hp>,<sp>;
+
+ hp,sp ”’l
+
+ HP‚ÆSP‚ð<hp>%A<sp>%•ª‰ñ•œ‚µ‚Ü‚·B
+
+ resetstatus–½—ß
+ resetstatus;
+
+ ƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒg‚ðƒŠƒZƒbƒg‚µ‚Ü‚·B
+
+ resetskill–½—ß
+ resetskill;
+
+ ƒXƒLƒ‹ƒ|ƒCƒ“ƒg‚ðƒŠƒZƒbƒg‚µ‚Ü‚·B
+
+ statusup–½—ß
+ statusup <st>;
+
+ st ”’l
+
+ <st>‚ÅŽw’肳‚ꂽŠî–{ƒXƒe[ƒ^ƒX’l‚ðAƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒg‚ðÁ”‚Ä1ã‚°‚éB
+ <st>‚Í bStr, bVit, bInt, bAgi, bDex, bLuk ‚ÅŽw’è‚·‚éB
+
+ statusup2–½—ß
+ statusup2 <st>,<n>;
+
+ st,n ”’l
+
+ <st>‚ÅŽw’肳‚ꂽŠî–{ƒXƒe[ƒ^ƒX’l‚ðAƒXƒe[ƒ^ƒXƒ|ƒCƒ“ƒg‚ðÁ”‚¸‚É<n>ã‚°‚éB
+ <st>‚Í bStr, bVit, bInt, bAgi, bDex, bLuk ‚ÅŽw’è‚·‚éB
+
+ skill–½—ß
+ skill <skillid>,<skilllv>,<flag>;
+
+ skillid,skilllv,flag ”’l
+
+ <skillid>‚ÉŽw’肳‚ꂽID‚ðŽ‚ÂLV<skilllv>ƒXƒLƒ‹‚ðK“¾‚µ‚Ü‚·B
+ flag:0,P‹v“I‚ȃXƒLƒ‹Žæ“¾(ƒXƒLƒ‹ƒcƒŠ[‚É‚È‚¢•¨‚Í–³Œø)A1,ˆêŽž“I(”͈͕͂s–¾)‚Ȏ擾A
+ <skilllv>‚ð0‚É‚·‚é‚Æ‚±‚Å‚»‚̃XƒLƒ‹‚ð–Y‚ꂳ‚¹‚邱‚Æ‚à‰Â”\‚Å‚·B
+
+ waitingroom–½—ß
+ waitingroom <title>,<limit>[,<event>[,<trigger>]];
+
+ title •¶Žš—ñ
+ limit ”’l
+ event •¶Žš—ñAÈ—ª‰Â
+ trigger ”’lAÈ—ª‰Â
+
+ <title>‚ðƒ^ƒCƒgƒ‹‚Æ‚µ‚ă`ƒƒƒbƒgƒ‹[ƒ€‚ð•\Ž¦‚³‚¹‚Ü‚·B
+ <trigger>‚ð–ž‚½‚µ‚½‚Æ‚«A<event>‚ð“®ì‚³‚¹‚邱‚Æ‚ª‰Â”\‚Å‚·B
+ <trigger>‚ðÈ—ª‚·‚é‚Æ<limit>‚Ì”’l‚ªŽg—p‚³‚ê‚Ü‚·B
+
+ delwaitingroom–½—ß
+ delewaitingroom [<name>]
+
+ name •¶Žš—ñAÈ—ª‰Â
+
+ Žw’肵‚½NPC‚̃`ƒƒƒbƒgƒ‹[ƒ€‚ð•Â‚¶‚Ü‚·B
+ <name>‚ðÈ—ª‚·‚é‚ÆA–½—ß‚ðŽÀs‚µ‚½NPC‚ª‘ÎÛ‚É‚È‚è‚Ü‚·B
+
+ disablewaitingroomevent–½—ß
+ disablewaitingroomevent [<name>]
+
+ name •¶Žš—ñAÈ—ª‰Â
+
+ <name>‚ÅŽw’肵‚½NPC‚̃`ƒƒƒbƒgƒ‹[ƒ€‚̃Cƒxƒ“ƒg‚𖳌ø‚É‚µ‚Ü‚·B
+ <name>‚ðÈ—ª‚·‚é‚ÆA–½—ß‚ðŽÀs‚µ‚½NPC‚ª‘ÎÛ‚É‚È‚è‚Ü‚·B
+
+ enablewaitingroomevent–½—ß
+ enablewaitingroomevent [<name>]
+
+ name •¶Žš—ñAÈ—ª‰Â
+
+ <name>‚ÅŽw’肵‚½NPC‚̃`ƒƒƒbƒgƒ‹[ƒ€‚̃Cƒxƒ“ƒg‚ð—LŒø‚É‚µ‚Ü‚·B
+ <name>‚ðÈ—ª‚·‚é‚ÆA–½—ß‚ðŽÀs‚µ‚½NPC‚ª‘ÎÛ‚É‚È‚è‚Ü‚·B
+ ‚Ü‚½AŠù‚ɃCƒxƒ“ƒg‚ª‹N‚±‚él”‚É’B‚µ‚Ä‚¢‚éê‡A
+ ‘¦À‚ɃCƒxƒ“ƒg‚ðŽÀs‚µ‚Ü‚·B
+
+ warpwaitingnpc–½—ß
+ warpwaitingnpc <gatname>,<x>,<y>[,<num>];
+
+ gatname •¶Žš—ñ
+ x,y,num ”’l
+
+ –½—ß‚ðŽÀs‚µ‚½NPC‚̃`ƒƒƒbƒgƒ‹[ƒ€‚É“ü‚Á‚Ä‚¢‚éPC‚Ì‚¤‚¿A
+ <num>‚ÅŽw’肵‚½l”‚ðA<gatname>‚ÌÀ•W<x>,<y>‚Ɉړ®‚³‚¹‚Ü‚·B
+ <num>‚ðÈ—ª‚·‚é‚Æ waitingroom‚Ì<trigger>‚ÅŽw’肵‚½l”‚ðŽg—p‚µ‚Ü‚·B
+
+ ƒ[ƒv‚³‚¹‚½l”‚ð $@warpwaitingpcnum ‚ÉAƒ[ƒv‚³‚¹‚½l‚̃AƒJƒEƒ“ƒgID‚ð
+ ”z—ñ $@warpwaitingpc ‚ɃZƒbƒg‚µ‚Ü‚·(擪‚©‚çl”•ª)B
+
+
+ emotion–½—ß
+ emotion <n>;
+
+ n ”’l
+
+ <n>ƒGƒ‚[ƒVƒ‡ƒ“‚ðo‚µ‚Ü‚·B
+
+ setmapflag–½—ß
+ setmapflag <gatname>,<flag>;
+
+ gatname •¶Žš—ñ
+ flag ”’l
+
+ <gatname>‚Ìmapflag‚ð’ljÁ‚µ‚Ü‚·B
+ <flag>‚Ídb/const.txt‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
+
+ removemapflag–½—ß
+ removemapflag <gatname>,<flag>;
+
+ gatname •¶Žš—ñ
+ flag ”’l
+
+ <gatname>‚Ìmapflag‚ðÁ‹Ž‚µ‚Ü‚·B
+ <flag>‚Ídb/const.txt‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
+
+ pvpon–½—ß
+ pvpon <gatname>;
+
+ gatname •¶Žš—ñ
+
+ <gatname>‚ðPVP‰Â”\MAP‚É‚µ‚Ü‚·B
+
+ pvpoff–½—ß
+ pvpoff <gatname>;
+
+ gatname •¶Žš—ñ
+
+ <gatname>‚ðPVP•s‰ÂMAP‚É‚µ‚Ü‚·B
+
+ gvgon–½—ß
+ gvgon <gatname>;
+
+ gatname •¶Žš—ñ
+
+ <gatname>‚ðƒV[ƒYƒ‚[ƒh‚É‚µ‚Ü‚·B
+
+ gvgoff–½—ß
+ gvgoff <gatname>;
+
+ gatname •¶Žš—ñ
+
+ <gatname>‚ð”ñƒV[ƒYƒ‚[ƒh‚É‚µ‚Ü‚·B
+
+ setmapflagnosave–½—ß
+ setmapflagnosave <gatname>,<savegatname>,<x>,<y>;
+
+ gatname,nosavegat •¶Žš—ñ
+ x,y ”’l
+
+ <gatname>‚Ìmapflag‚ÉnosaveAˆø”‚Æ‚µ‚Ä<savegatname>,<x>,<y>‚ðݒ肵‚Ü‚·B
+
+ detachrid–½—ß
+ detachrid;
+
+ NPC‚ɃAƒ^ƒbƒ`‚³‚ê‚Ä‚¢‚éID‚ðƒNƒŠƒA‚µ‚Ü‚·B
+ ˆÈŒãAƒLƒƒƒ‰ƒNƒ^[î•ñ‚ð•K—v‚Æ‚·‚é–½—ß‚ªŽÀs‚Å‚«‚È‚­‚È‚è‚Ü‚·B
+
+ doevent–½—ß
+ doevent <name>;
+
+ name •¶Žš—ñ
+
+ ƒvƒŒƒCƒ„[Žå‘̂̃Cƒxƒ“ƒg‚ð‹N‚±‚µ‚Ü‚·B<name>‚ɂ̓Cƒxƒ“ƒg–¼‚ðŽw’肵‚Ü‚·B
+ ƒvƒŒƒCƒ„[‚ª‘¼‚ÌNPC‚Ɖï˜b’†‚È‚Ç‚ÅŽÀs‚Å‚«‚È‚¢ê‡AƒLƒ…[‚É“ü‚èAŽÀs‰Â”\‚É‚È‚é‚Ü‚Å‘Ò‚Á‚ÄŽÀs‚³‚ê‚Ü‚·B
+ ƒLƒ…[‚̃TƒCƒY‚͂ƂĂଂ³‚¢‚Ì‚ÅA˜A‘±‚Å‹N‚±‚é‚ƃCƒxƒ“ƒg‚ª–³Ž‹‚³‚ê‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB
+ ƒ‰ƒxƒ‹•t‚«ƒCƒxƒ“ƒg‚àŽw’è‚Å‚«‚Ü‚·‚ªANPC–¼‚ðÈ—ª‚Å‚«‚È‚¢‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
+
+ donpcevent–½—ß
+ donpcevent <name>;
+
+ name •¶Žš—ñ
+
+ ƒvƒŒƒCƒ„[‚ªƒAƒ^ƒbƒ`‚³‚ê‚Ä‚¢‚È‚¢(NPCŽå‘Ì‚Ì)ƒCƒxƒ“ƒg‚ð‹N‚±‚µ‚Ü‚·B
+ <name>‚ɂ̓Cƒxƒ“ƒg–¼‚ðŽw’肵‚Ü‚·BƒCƒxƒ“ƒg‚Í‘¦À‚ÉŽÀs‚³‚ê‚Ü‚·B
+ ƒ‰ƒxƒ‹•t‚«ƒCƒxƒ“ƒg‚àŽw’è‚Å‚«ANPC–¼‚ðÈ—ª‚·‚邱‚Æ‚ÅAƒCƒxƒ“ƒg‚ðƒuƒ[ƒhƒLƒƒƒXƒg‚Å‚«‚Ü‚·B
+ i•¡”‚ÌNPC‚Ì“¯‚¶–¼‘O‚̃‰ƒxƒ‹‚ðŽÀs‚Å‚«‚éB —á„"::OnEvent"j
+
+ callsub–½—ß
+ callsub <label>
+
+ label ƒ‰ƒxƒ‹
+
+ “¯ˆêƒXƒNƒŠƒvƒg“à‚̃‰ƒxƒ‹<label>‚ðƒTƒuƒ‹[ƒeƒBƒ“‚Æ‚µ‚ÄŽÀs‚µ‚Ü‚·B
+ ƒTƒuƒ‹[ƒeƒBƒ“‚©‚ç•œ‹A‚·‚é‚Æ‚«‚Íreturn–½—ß‚ðŽg—p‚µ‚Ä‚­‚¾‚³‚¢B
+ ‚±‚Ì–½—ß‚Íreturn–½—ß‚ÌŽÀs󋵂ɂæ‚Á‚Ä‚ÍŠÖ”‚Æ‚µ‚ÄŽg—p‚·‚邱‚Æ‚ào—ˆ‚Ü‚·B
+
+ callfunc–½—ß
+ callfunc <func>
+
+ func •¶Žš—ñ
+
+ <func>‚Å’è‹`‚³‚ꂽƒ†[ƒU[’è‹`ŠÖ”‚ðŽÀs‚µ‚Ü‚·B
+ ƒ†[ƒU[’è‹`ŠÖ”‚©‚ç•œ‹A‚·‚é‚Æ‚«‚Íreturn–½—ß‚ðŽg—p‚µ‚Ä‚­‚¾‚³‚¢B
+ ‚±‚Ì–½—ß‚Íreturn–½—ß‚ÌŽÀs󋵂ɂæ‚Á‚Ä‚ÍŠÖ”‚Æ‚µ‚ÄŽg—p‚·‚邱‚Æ‚ào—ˆ‚Ü‚·B
+
+ return–½—ß
+ return <retval>
+
+ retval ”’l‚Ü‚½‚Í•¶Žš—ñAÈ—ª‰Â
+
+ ’¼‚¿‚ɃTƒuƒ‹[ƒeƒBƒ“‚à‚µ‚­‚̓†[ƒU[’è‹`ŠÖ”‚𔲂¯AŒÄ‚Ño‚µŒ³‚É–ß‚è‚Ü‚·B
+ <retval>‚Í–ß‚è’l‚ÅAcallsub‚Ü‚½‚Ícallfunc‚ªŠÖ”‚Æ‚µ‚ČĂÑo‚³‚ê‚Ä‚¢‚é‚Æ‚«A‚±‚Ì–ß‚è’l‚ªŽg—p‚³‚ê‚Ü‚·B
+ callsub‚Ü‚½‚Ífunc‚ª–½—ß‚Æ‚µ‚ČĂ΂ê‚Ä‚¢‚é‚Æ‚«‚ÍA<retval>‚ÍÈ—ª‚µ‚Ä‚­‚¾‚³‚¢B
+
+ –ŠÖ”
+ randŠÖ”
+ rand(<n1>[,<n2>])
+
+ n1 ”’l
+ n2 ”’lAÈ—ª‰Â
+
+ <n1>‚Ì‚ÝŽw’肳‚ê‚Ä‚¢‚½ê‡A0‚©‚ç<n1>-1‚Ü‚Å‚Ì”’l‚ðƒ‰ƒ“ƒ_ƒ€‚É‘I‚ñ‚Å•Ô‚µ‚Ü‚·B
+ <n2>‚ðŽw’肵‚½ê‡A<n1>‚©‚ç<n2>‚Ü‚Å‚Ì”ƒ`‚ðƒ‰ƒ“ƒ_ƒ€‚É‘I‚ñ‚Å•Ô‚µ‚Ü‚·B
+
+ getitemnameŠÖ”
+ getitemname(<itemid>)
+
+ itemid ”’l
+
+ <itemid>‚ÉŽw’肳‚ꂽID‚ðŽ‚ƒAƒCƒeƒ€‚Ìjname‚𕶎š—ñ‚Å•Ô‚µ‚Ü‚·B
+ ‚È‚¨AƒAƒCƒeƒ€–¼‚Íitem_db.txt‚ðŽQÆ‚µ‚Ü‚·
+
+ countitemŠÖ”
+ countitem(<itemid>)
+
+ itemid ”’l‚Ü‚½‚Í•¶Žš—ñ
+
+ <itemid>‚ÉŽw’肳‚ꂽID‚ðŽ‚ƒAƒCƒeƒ€‚ÌŠŽ”‚ð•Ô‚µ‚Ü‚·B
+ <itemid>‚ª•¶Žš—ñ‚Ìê‡A‚»‚Ì–¼‘O(name,jname)‚ðŽ‚ƒAƒCƒeƒ€‚ÌID‚ðŽg—p‚µ‚Ü‚·B
+ ‚½‚¾‚µAƒAƒCƒeƒ€–¼‚Íitem_db.txt‚ȂǂɈˑ¶‚·‚邽‚ßAƒeƒXƒg–Ú“IˆÈŠO‚Å‚ÍŽg—p‚·‚ׂ«‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
+
+ checkweightŠÖ”
+ checkweight(<itemid>,<num>)
+
+ itemid ”’l‚Ü‚½‚Í•¶Žš—ñ
+ num ”’l
+
+ <itemid>‚ÉŽw’肳‚ꂽID‚ðŽ‚ƒAƒCƒeƒ€‚ð<num>ŒÂŽ‚‚±‚Æ‚ª‚Å‚«‚é‚Ì‚È‚ç‚Î1‚ðA
+ ‚Å‚«‚È‚¯‚ê‚Î0‚ð•Ô‚µ‚Ü‚·B
+ <itemid>‚ª•¶Žš—ñ‚Ìê‡A‚»‚Ì–¼‘O(name,jname)‚ðŽ‚ƒAƒCƒeƒ€‚ÌID‚ðŽg—p‚µ‚Ü‚·B
+ ‚½‚¾‚µAƒAƒCƒeƒ€–¼‚Íitem_db.txt‚ȂǂɈˑ¶‚·‚邽‚ßAƒeƒXƒg–Ú“IˆÈŠO‚Å‚ÍŽg—p‚·‚ׂ«‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
+
+ strcharinfoŠÖ”
+ strcharinfo(<n>)
+
+ n ”’l
+
+ ƒLƒƒƒ‰î•ñ‚ð•Ô‚µ‚Ü‚·B
+ n:0,ƒLƒƒƒ‰–¼A1,ƒp[ƒeƒB[–¼A2,ƒMƒ‹ƒh–¼
+
+ getequipnameŠÖ”
+ strcharinfo(<n>)
+
+ n ”’l
+
+ ‘•”õ•i–¼‚ð•Ô‚µ‚Ü‚·B
+ n:1,“ª‘•”õA2,ŠZA3,¶ŽèA4,‰EŽèA5,‚©‚¯‚é‚à‚ÌA6,ŒCA7,ƒAƒNƒZ‚PA8,ƒAƒNƒZ‚QA9,“ª’†’iA10,“ª‰º’i
+
+ getequipisequipedŠÖ”
+ getequipisequiped(<n>)
+
+ n ”’l
+
+ ‘•”õ‚µ‚Ä‚¢‚½‚ç1A‚µ‚Ä‚¢‚È‚©‚Á‚½‚ç0‚ð•Ô‚µ‚Ü‚·B
+ n:1,“ª‘•”õA2,ŠZA3,¶ŽèA4,‰EŽèA5,‚©‚¯‚é‚à‚ÌA6,ŒCA7,ƒAƒNƒZ‚PA8,ƒAƒNƒZ‚QA9,“ª’†’iA10,“ª‰º’i
+
+ getequipisenablerefŠÖ”
+ getequipisenableref(<n>)
+
+ n ”’l
+
+ ¸˜B‚Å‚«‚éꇂÍ1A‚Å‚«‚È‚¢ê‡‚Í0‚ð•Ô‚µ‚Ü‚·B
+ n:1,“ª‘•”õA2,ŠZA3,¶ŽèA4,‰EŽèA5,‚©‚¯‚é‚à‚ÌA6,ŒCA7,ƒAƒNƒZ‚PA8,ƒAƒNƒZ‚QA9,“ª’†’iA10,“ª‰º’i
+
+ getequipisidentifyŠÖ”
+ getequipisidentify(<n>)
+
+ n ”’l
+
+ ŠÓ’èÏ‚Ý‚Ìê‡1A–¢ŠÓ’è‚Ìê‡0‚ð•Ô‚µ‚Ü‚·B
+ n:1,“ª‘•”õA2,ŠZA3,¶ŽèA4,‰EŽèA5,‚©‚¯‚é‚à‚ÌA6,ŒCA7,ƒAƒNƒZ‚PA8,ƒAƒNƒZ‚QA9,“ª’†’iA10,“ª‰º’i
+
+ getequiprefinerycntŠÖ”
+ getequiprefinerycnt(<n>)
+
+ n ”’l
+
+ ¸˜B‚Ì“x‡‚¢‚ð•Ô‚µ‚Ü‚·B
+ n:1,“ª‘•”õA2,ŠZA3,¶ŽèA4,‰EŽèA5,‚©‚¯‚é‚à‚ÌA6,ŒCA7,ƒAƒNƒZ‚PA8,ƒAƒNƒZ‚QA9,“ª’†’iA10,“ª‰º’i
+
+ getequipweaponlvŠÖ”
+ getequipweaponlv(<n>)
+
+ n ”’l
+
+ •ŠíLV‚ð•Ô‚µ‚Ü‚·B–h‹ï‚ÌꇂɂÍ0A‚ ‚Æ‚Í•ŠíLV‚ɑΉž‚µ‚Ü‚·B
+ n:1,“ª‘•”õA2,ŠZA3,¶ŽèA4,‰EŽèA5,‚©‚¯‚é‚à‚ÌA6,ŒCA7,ƒAƒNƒZ‚PA8,ƒAƒNƒZ‚QA9,“ª’†’iA10,“ª‰º’i
+
+ getequippercentrefineryŠÖ”
+ getequippercentrefinery(<n>)
+
+ n ”’l
+
+ ¸˜B¬Œ÷—¦‚ð•Ô‚µ‚Ü‚·B
+ n:1,“ª‘•”õA2,ŠZA3,¶ŽèA4,‰EŽèA5,‚©‚¯‚é‚à‚ÌA6,ŒCA7,ƒAƒNƒZ‚PA8,ƒAƒNƒZ‚QA9,“ª’†’iA10,“ª‰º’i
+
+ getusersŠÖ”
+ getusers(<n>)
+
+ n ”’l
+
+ l”‚ð•Ô‚µ‚Ü‚·B
+ n:0,PC‚Ì‚¢‚éMAP‚Ì‘l”A1,‘SMAP‚Ì‘l”i‘¦‚¿ƒƒOƒCƒ“l”jA8,NPC‚Ì‘¶Ý‚·‚éMAP‚Ì‘l”
+
+ getmapusersŠÖ”
+ getmapusers(<gatname>)
+
+ gatname •¶Žš—ñ
+
+ <gatname>‚É‘¶Ý‚·‚é‘l”‚ð•Ô‚µ‚Ü‚·B
+
+ getareausersŠÖ”
+ getareausers(<gatname>,<x0>,<y0>,<x1>,<y1>)
+
+ gatname •¶Žš—ñ
+ x0,y0,x1,y1 ”’l
+
+ <gatname>‚Ì<x0>,<y0>‚©‚ç<x1>,<y1>‚͈͓̔à‚É‚¢‚él”‚ð•Ô‚µ‚Ü‚·B
+
+ getskilllvŠÖ”
+ getskilllv(<skillid>)
+
+ skillid ”’l
+
+ <skillid>‚ÅŽw’肵‚½ID‚ðŽ‚ƒXƒLƒ‹‚ÌLV‚ð•Ô‚µ‚Ü‚·BK“¾‚µ‚Ä‚¢‚È‚¢ê‡‚Í0‚ð•Ô‚µ‚Ü‚·B
+
+ getcharidŠÖ”
+ getcharid(<n>)
+
+ n ”’l
+
+ ƒLƒƒƒ‰î•ñ‚ðID‚Å•Ô‚µ‚Ü‚·B
+ n=0 ƒLƒƒƒ‰ID
+ n=1 ƒp[ƒeƒB[
+ n=2 ƒMƒ‹ƒh
+ n=3 ƒAƒJƒEƒ“ƒgID
+
+ getpartynameŠÖ”
+ getpartyname(<n>)
+
+ n ”’l
+
+ <n>‚ÅŽw’肵‚½ID‚ðŽ‚ƒp[ƒeƒB[–¼‚ð•Ô‚µ‚Ü‚·B
+
+ getguildnameŠÖ”
+ getguildname(<n>)
+
+ n ”’l
+
+ <n>‚ÅŽw’肵‚½ID‚ðŽ‚ƒMƒ‹ƒh–¼‚ð•Ô‚µ‚Ü‚·B
+
+ getguildmasterŠÖ”
+ getguildname(<n>)
+
+ n ”’l
+
+ <n>‚ÅŽw’肵‚½ID‚ðŽ‚ƒMƒ‹ƒh‚̃}ƒXƒ^[‚Ì–¼‘O‚ð•Ô‚µ‚Ü‚·B
+
+ getguildmasteridŠÖ”
+ getguildmasterid(<n>)
+
+ n ”’l
+
+ <n>‚ÅŽw’肵‚½ID‚ðŽ‚ƒMƒ‹ƒh‚̃}ƒXƒ^[‚̃Lƒƒƒ‰ƒNƒ^[ID‚ð•Ô‚µ‚Ü‚·B
+
+ basicskillcheckŠÖ”
+ basicskillcheck(0);
+
+ battle_athena.conf‚Ìbasic_skill_check‚ÌÝ’è’l‚ð•Ô‚µ‚Ü‚·B0‚͈Ӗ¡‚Í‚ ‚è‚Ü‚¹‚ñ‚ª‰½‚à“ü‚ê‚È‚©‚Á‚½ê‡ƒGƒ‰[‚É‚È‚è‚Ü‚·B
+ basic_skill_check‚ƃJƒvƒ‰‚Ì‘qŒÉ—˜—p‚ð‡‚킹‚éˆ×‚Éì‚Á‚½•¨‚Å‚»‚êˆÈŠO‚Ì‹@”\‚Í‚ ‚è‚Ü‚¹‚ñB–ß‚Á‚½”’l‚ª0‚È‚çbasic_skill_check‚ªnoA1‚È‚çyes‚Å‚·B
+
+ getgmlevelŠÖ”
+ getgmlevel(0);
+
+ ƒvƒŒƒCƒ„[‚ÌGMƒŒƒxƒ‹‚ð•Ô‚µ‚Ü‚·B
+
+ guildopenstorageŠÖ”
+ guildopenstorage(0);
+
+ ƒMƒ‹ƒh‘qŒÉ‚ðŠJ‚«‚Ü‚·B
+ •Ô‚½”’l‚ª2‚È‚çƒMƒ‹ƒh‚ÉŠ‘®‚µ‚Ä‚È‚¢ƒLƒƒƒ‰‚ÆŒ¾‚¤ˆÓ–¡‚Å
+ 1‚Ȃ瑼‚̃Mƒ‹ƒhƒƒ“ƒo[‚ª‘qŒÉ‚ðŽg—p’†‚̈Ӗ¡‚Å‚·B
+ 0‚Ȃ笌÷“I‚ɃMƒ‹ƒh‘qŒÉ‚ªŠJ‚¢‚½‚Æ‚Ì‚±‚Æ‚Å‚·B
+
+ getwaitingroomstateŠÖ”
+ getwaitingroomstate(<num>,[<name>])
+
+ num ”’l
+ name •¶Žš—ñAÈ—ª‰Â
+
+ <name>‚ÅŽw’肵‚½NPC‚̃`ƒƒƒbƒgƒ‹[ƒ€‚Ìó‘Ô‚ð•Ô‚µ‚Ü‚·B
+ <name>‚ðÈ—ª‚·‚é‚ÆA–½—ß‚ðŽÀs‚µ‚½NPC‚ª‘ÎÛ‚É‚È‚è‚Ü‚·B
+ <num>‚Å“¾‚½‚¢î•ñ‚ðŽw’肵‚Ü‚·B
+
+ num=0 Œ»Ýƒ`ƒƒƒbƒgƒ‹[ƒ€‚É“ü‚Á‚Ä‚¢‚él”i”’lj
+ num=1 ƒ`ƒƒƒbƒgƒ‹[ƒ€‚ÌŒÀŠEl”i”’lj
+ num=2 ƒ`ƒƒƒbƒgƒ‹[ƒ€‚̃Cƒxƒ“ƒg‚ð‹N‚±‚·l”i”’lj
+ num=3 ƒ`ƒƒƒbƒgƒ‹[ƒ€‚̃Cƒxƒ“ƒg‚ª—LŒø‚©‚Ç‚¤‚©i”’lj
+ num=4 ƒ`ƒƒƒbƒgƒ‹[ƒ€‚̃^ƒCƒgƒ‹i•¶Žš—ñj
+ num=5 ƒ`ƒƒƒbƒgƒ‹[ƒ€‚̃pƒXƒ[ƒhi•¶Žš—ñj
+ num=16 ƒ`ƒƒƒbƒgƒ‹[ƒ€‚̃Cƒxƒ“ƒg–¼i•¶Žš—ñj
+ num=32 ƒ`ƒƒƒbƒgƒ‹[ƒ€‚ª–žˆõ‚©‚Ç‚¤‚©i”’lj
+ num=33 ƒ`ƒƒƒbƒgƒ‹[ƒ€‚ŃCƒxƒ“ƒg‚ª‹N‚±‚él”‚©‚Ç‚¤‚©i”’lj
+
+ getnpctimerŠÖ”
+ getnpctimer(<num>[,<name>])
+
+ num ”’l
+
+ <name>‚ÅŽw’肳‚ꂽNPC‚ªŽ‚ÂNPCƒ^ƒCƒ}[‚Ìî•ñ‚𓾂܂·B
+ name‚ðÈ—ª‚·‚é‚ÆA–½—ß‚ðŽÀs‚µ‚½NPC‚ª‘ÎÛ‚É‚È‚è‚Ü‚·B
+ <num>‚Å“¾‚½‚¢î•ñ‚ðŽw’肵‚Ü‚·B
+
+ num=0 Œ»Ý‚ÌNPCƒ^ƒCƒ}[‚̃JƒEƒ“ƒg’l
+ num=1 Œ»ÝNPCƒ^ƒCƒ}[‚ª“®ì‚µ‚Ä‚¢‚é‚©‚Ç‚¤‚©
+ num=2 Žw’èNPC‚̃^ƒCƒ}[ƒCƒxƒ“ƒgƒ‰ƒxƒ‹‚Ì‘”
+
+ attachridŠÖ”
+ attachrid(<num>)
+
+ num ”’l
+
+ <num>‚ÅŽw’肳‚ꂽID‚̃Lƒƒƒ‰ƒNƒ^[‚ðŽÀs‚µ‚½ƒXƒNƒŠƒvƒg‚ɃAƒ^ƒbƒ`‚µ‚Ü‚·B
+ ˆÈŒãAƒLƒƒƒ‰ƒNƒ^[‚ÉŠÖ‚·‚é–½—ß‚âŠÖ”/•Ï”‚È‚Ç‚Í‘S‚ÄV‚µ‚¢ƒLƒƒƒ‰ƒNƒ^[‚ª‘ÎÛ‚É‚È‚è‚Ü‚·B
+ ‚±‚ê‚̓XƒNƒŠƒvƒg‚ªI—¹/’†’f‚·‚é(close,end,menu,next,input‚È‚Ç‚ÌŽÀs)‚Ü‚Å—LŒø‚Å‚·B
+ Žå‚ɃCƒxƒ“ƒg‚Å‹N“®‚³‚ꂽƒXƒNƒŠƒvƒg“à‚Ń}ƒbƒv•Ï”‚ðŽg‚Á‚ĕʃLƒƒƒ‰ƒNƒ^[‚ð
+ ƒAƒ^ƒbƒ`‚·‚é‚Ì‚ÉŽg—p‚µ‚Ü‚·Bgetcharid(3)‚ÅŠ“¾‚µ‚½ƒAƒJƒEƒ“ƒgID‚ðŽg‚Á‚Ä‚­‚¾‚³‚¢B
+ ‚È‚¨Aƒfƒ^ƒbƒ`‚É‚Ídetachrid–½—ß‚ðŽg‚¢‚Ü‚·B
+
+ ’ˆÓ‚·‚ׂ«“_‚Æ‚µ‚Ä‚ÍA‚±‚Ì–½—ß‚ÅPC‚ðƒAƒ^ƒbƒ`‚µ‚½ê‡Ames,menu,next‚È‚Ç‚Ì
+ ƒEƒBƒ“ƒhƒE(‚âƒ{ƒ^ƒ“)‚ªo‚é–½—ß‚ðŽÀs‚µ‚Ä‚Í‚¢‚¯‚Ü‚¹‚ñB
+ ‘ŠŽè‚ª‘¼‚ÌNPC‚Ɖï˜b’†‚Ìê‡A‚±‚ê‚ç‚Ì–½—߂ͳ‚µ‚­“®ì‚µ‚Ü‚¹‚ñB
+ î•ñŠ“¾–½—ß‚È‚Ç‚¾‚¯‚ÅÏ‚Ü‚¹‚é‚ׂ«‚Å‚·B
+
+ ‚±‚ÌŠÖ”‚̓Aƒ^ƒbƒ`‚ɬŒ÷‚µ‚½‚©‚Ç‚¤‚©‚ð•Ô‚µ‚Ü‚·B
+ ‹U(0)‚ª•Ô‚Á‚Ä—ˆ‚½ê‡‚ÍAŠY“–ƒLƒƒƒ‰ƒNƒ^[‚ª‘¶Ý‚µ‚Ä‚¢‚Ü‚¹‚ñB
+
+ isloggedinŠÖ”
+ isloggedin(<num>)
+
+ num ”’l
+
+ <num>‚ÅŽw’肳‚ꂽID‚̃Lƒƒƒ‰ƒNƒ^[‚ª‚±‚̃}ƒbƒvƒT[ƒo[‚É
+ ƒƒOƒCƒ“‚µ‚Ä‚¢‚é‚©‚Ç‚¤‚©’²‚ׂ܂·B
+
+ getarraysizeŠÖ”
+ getarraysize(<variable>)
+
+ variable •Ï”
+
+ ”z—ñ<variable>‚Ì—LŒø‚ȃTƒCƒY‚𒲂ׂ܂·B
+ ‚±‚±‚ł̃TƒCƒY‚Í—v‘f‚ª0i•¶Žš—ñ•Ï”‚Å‚Í"")‚Å‚È‚¢A
+ Å‘å‚Ì—v‘f”Ô†+1 ‚É‚È‚è‚Ü‚·B
+ ”z—ñ–¼‚Å‚Í‚È‚­—v‘f”Ô†•t‚«‚ÅŽw’è‚·‚é‚ÆA
+ ­‚È‚­‚Æ‚à‚»‚Ì—v‘f‚Ü‚Å‚Í‘S‚Ä—LŒø‚Å‚ ‚é‚Ɖ¼’肵‚Ü‚·B
+ <—á> ”z—ñ@hoge‚ª 1,2,3,4,5 ‚¾‚Æ‚·‚é‚ÆA
+ getarraysize(@hoge)=5, getarraysize(@hoge[10])=10;
+
+ callsubŠÖ”
+ callsub <label>
+
+ callsub–½—ß‚ðŠÖ”‚Æ‚µ‚ÄŽÀs‚µ‚Ü‚·BÚ‚µ‚­‚Ícallsub–½—ß‚ðŒ©‚Ä‚­‚¾‚³‚¢B
+
+ callfuncŠÖ”
+ callfunc <func>
+
+ callfunc–½—ß‚ðŠÖ”‚Æ‚µ‚ÄŽÀs‚µ‚Ü‚·BÚ‚µ‚­‚Ícallfunc–½—ß‚ðŒ©‚Ä‚­‚¾‚³‚¢B
+
+ –’蔃‰ƒxƒ‹
+ -ƒ‰ƒxƒ‹
+ if•¶‚âmenu•¶‚ÅŽg—p‚µ‚Ü‚·BŽŸ‚Ìs‚©‚çƒXƒNƒŠƒvƒg‚ðŠJŽn‚µ‚Ü‚·B
+
+ OnInitƒ‰ƒxƒ‹
+ MAP‚ªƒ[ƒh‚³‚ꂽ‚Æ‚«ƒXƒNƒŠƒvƒg‚ðŠJŽn‚µ‚Ü‚·B
+
+ OnInterIfInitƒ‰ƒxƒ‹
+ MAPƒT[ƒo[‚ªInterƒT[ƒo[‚ÉÚ‘±‚µ‚½‚Æ‚«‚ÉŽÀs‚µ‚Ü‚·B
+
+ OnCharIfInitƒ‰ƒxƒ‹
+ MAPƒT[ƒo[‚ªCharƒT[ƒo[‚ÉÚ‘±‚µ‚½‚Æ‚«‚ÉŽÀs‚µ‚Ü‚·B
+
+ OnMinuteXXƒ‰ƒxƒ‹
+ –ˆŽžXX•ª‚ÉŽÀs‚µ‚Ü‚·B”’l‚Í\i”‚QŒ…‚Å‚·B
+
+ OnClockXXXXƒ‰ƒxƒ‹
+ –ˆ“úXXŽžXX•ª‚ÉŽÀs‚µ‚Ü‚·B”’l‚Í\i”‚SŒ…‚Å‚·B
+
+ OnHourXXƒ‰ƒxƒ‹
+ –ˆ“úXXŽž00•ª‚ÉŽÀs‚µ‚Ü‚·B”’l‚Í\i”‚QŒ…‚Å‚·B
+
+ OnDayXXƒ‰ƒxƒ‹
+ –ˆŒŽXX“ú00Žž00•ª‚ÉŽÀs‚µ‚Ü‚·B”’l‚Í\i”‚QŒ…‚Å‚·B
+
+ OnTimerXƒ‰ƒxƒ‹
+ NPCƒ^ƒCƒ}[‚̃JƒEƒ“ƒg‚ªX‚É‚È‚Á‚½‚Æ‚«‚ÉŽÀs‚³‚ê‚Ü‚·B
+ ‚±‚ÌX‚̓~ƒŠ•b’PˆÊ‚Å‚·BŒ…”‚ÍŠÖŒW‚ ‚è‚Ü‚¹‚ñB
+
+ OnAgitInitƒ‰ƒxƒ‹
+ ƒMƒ‹ƒhéƒf[ƒ^‚Æè‹’ƒMƒ‹ƒhî•ñ‚ªƒ}ƒbƒvƒT[ƒo[“à‚É
+ Š“¾‚³‚ꂽ‚Æ‚«‚ÉŽÀs‚³‚ê‚Ü‚·B
+ ƒMƒ‹ƒhéŠÖŒW‚ÌNPC‚̉Šú‰»‚ÉŽg—p‚µ‚Ü‚·B
+
+ OnAgitStartƒ‰ƒxƒ‹
+ ƒMƒ‹ƒhUé킪Žn‚Ü‚Á‚½‚Æ‚«‚ÉŽÀs‚³‚ê‚Ü‚·B
+
+ OnAgitEndƒ‰ƒxƒ‹
+ ƒMƒ‹ƒhUé킪I‚í‚Á‚½‚Æ‚«‚ÉŽÀs‚³‚ê‚Ü‚·B
+
+ OnAgitBreakƒ‰ƒxƒ‹
+ ƒGƒ“ƒyƒŠƒEƒ€‚ð”j‰ó‚µ‚½‚Æ‚«‚ÉŽÀs‚³‚ê‚Ü‚·B
+ ‚±‚̃‰ƒxƒ‹‚Í”j‰ó‚µ‚½ƒvƒŒƒCƒ„[‚ðŽå‘Ì‚É‚µ‚ÄŽÀs‚³‚ê‚Ü‚·B
+
+ OnAgitEliminateƒ‰ƒxƒ‹
+ ƒGƒ“ƒyƒŠƒEƒ€”j‰óŒãAƒMƒ‹ƒh‚ÌŠ—LŽÒ‚ª‘‚«Š·‚í‚é‚Æ‚«‚É
+ ŒÄ‚΂ê‚Ü‚·B
+
+ –’ˆÓŽ–€
+ •¶Žš—ñ‚Æà–¾‚³‚ê‚Ä‚¢‚éˆø”‚Í""‚ň͂Á‚Ä‚­‚¾‚³‚¢B
+
+4. Error Message
+
+ * Make an error at the time of compile (it is a thing at the time of map server starting).
+ A place is displayed for the line number of an error.
+
+ unexpected expr end
+ It is the end of an unexpected formula.
+ ', ', and';' are in the beginning of a formula.
+
+ unmatch ')'
+ ')' does not match.
+ Correspondence of parenthesis'('')' is amusing.
+
+ unexpected newline @ string
+ It is the new-line which is not expected in a character sequence.
+ There is a new-line in the middle of a character sequence (surrounded by '"').
+ Probably it is a failure of '"' to close.
+
+ unexpected eof @ string
+ It is the file terminus which is not expected in a character sequence.
+ The file finished in the middle of the character sequence.
+ Probably it is a failure of '"' to close.
+
+ unexpected character
+ unexpected char
+ It is an unexpected character.
+ It is thought that the variable etc. is not following a naming rule.
+
+ l14 and l15 is DEPRECATED. use @menu instead of l15.
+ l14 and l15 are not recommended. Please use @menu instead of l15.
+
+ prefix 'l' is DEPRECATED. use prefix '@' instead.
+ Prefix'l' is not recommended. Please use '@' instead.
+
+ unmatch ']'
+ ']' does not carry out an interval.
+ Correspondence of parenthesis']' is missing.
+
+ expect function
+ ŠÖ”‚ðŠú‘Ò‚µ‚Ä‚¢‚Ü‚µ‚½
+ ŠÖ”ŒÄ‚Ño‚µ‰‰ŽZŽq'('‚Ì‘O‚ÉŠÖ”ˆÈŠO‚̃Vƒ“ƒ{ƒ‹‚ª‚ ‚è‚Ü‚·B
+ ‚¨‚»‚ç‚­ŠÖ”–¼‚ðŠÔˆá‚¦‚Ä‚¢‚Ü‚·B
+
+ expect ',' or ')' at func params
+ ŠÖ”‚̈ø”‚É‚¨‚¢‚Ä','‚©')'‚ðŠú‘Ò‚µ‚Ä‚¢‚Ü‚µ‚½
+ ‚¨‚»‚ç‚­ˆø”‹æØ‚è‚Ì','‚©')'‚ð–Y‚ê‚Ä‚¢‚Ü‚·B
+
+ func request '(' ')'
+ ŠÖ”ŒÄ‚Ño‚µ‚ÌŠ‡ŒÊ‘Ήž–â‘è
+ ‚¨‚»‚ç‚­ˆø”‚Ì”‚ª128‚ð’´‚¦‚Ü‚µ‚½B
+
+ illeagal number of parameters
+ ƒpƒ‰ƒ[ƒ^‚Ì”‚ª•s³‚Å‚·
+ ŠÖ”/–½—߃pƒ‰ƒ[ƒ^‚̌”‚ªˆÙ‚È‚è‚Ü‚·B
+ ˆø”‚̌”‚ðŠm”F‚µ‚Ä‚­‚¾‚³‚¢B
+ ƒGƒ‰[ˆÊ’u‚Í‘S‚Ă̈ø”‚ÌŒã‚É‚È‚è‚Ü‚·B
+
+ expect command
+ –½—ß‚ðŠú‘Ò‚µ‚Ä‚¢‚Ü‚µ‚½
+ –½—߈ȊO‚̃Vƒ“ƒ{ƒ‹‚ª“Ë‘RoŒ»‚µ‚Ä‚¢‚Ü‚·B
+ ‚¨‚»‚ç‚­–½—ß–¼‚ðŠÔˆá‚¦‚Ä‚¢‚Ü‚·B
+
+ expect ',' or ';' at cmd params
+ –½—߂̈ø”‚É‚¨‚¢‚Ä','‚©';'‚ðŠú‘Ò‚µ‚Ä‚¢‚Ü‚µ‚½
+ ‚¨‚»‚ç‚­ˆø”‹æØ‚è‚Ì','‚©';'‚ð–Y‚ê‚Ä‚¢‚Ü‚·B
+
+ need ';'
+ ';'‚ª•K—v‚Å‚·
+ ‚¨‚»‚ç‚­ˆø”‚Ì”‚ª128‚ð’´‚¦‚Ü‚µ‚½B
+
+ ŽÀsŽž‚̃Gƒ‰[
+ fatal error ! player not attached!
+ ’v–½“IƒGƒ‰[IƒvƒŒƒCƒ„[‚ªƒAƒ^ƒbƒ`‚³‚ê‚Ä‚¢‚Ü‚¹‚ñI
+
+ ƒLƒƒƒ‰ƒNƒ^[‚ð“Á’è‚Å‚«‚È‚¢ƒCƒxƒ“ƒg‚ÅŽÀs‚³‚ê‚Ä‚¢‚é
+ ƒXƒNƒŠƒvƒg‚Ì’†‚ŃLƒƒƒ‰ƒNƒ^[î•ñ‚ª•K—v‚È–½—ß‚âŠÖ”A
+ •Ï”‚ÖƒAƒNƒZƒX‚µ‚Ü‚µ‚½BattachridŠÖ”‚ðŽg‚¤‚©A
+ ƒLƒƒƒ‰ƒNƒ^[î•ñ‚ª•s—v‚È–½—ß‚ðŽg—p‚µ‚Ä‚­‚¾‚³‚¢B
+ ‚à‚µ‚­‚ÍAattachridŠÖ”‚Åݒ肳‚ꂽî•ñ‚ª•s³‚Å‚·B
+ ‚È‚¨A‚±‚̃Gƒ‰[‚ª‹N‚±‚é‚Æ’¼Œã‚ɃRƒA‚ð“f‚­‚ÆŽv‚í‚ê‚Ü‚·B
+
+ NPCŽå‘̃Cƒxƒ“ƒg‚Åannounce‚µ‚½‚Æ‚«‚Ƀtƒ‰ƒO0x08‚ðŽw’肵‚Ä‚¢‚È‚¢
+ ê‡‚à‚±‚̃Gƒ‰[‚ª‚Å‚Ü‚·B
+
+
+ illeagal scope string variable.
+ •¶Žš—ñ•Ï”‚̃XƒR[ƒv‚ª•s³‚Å‚·B
+ –¢‘Ήž‚̃vƒŒƒtƒBƒbƒNƒX‚Å•¶Žš—ñ•Ï”‚ªŽg—p‚³‚ê‚Ü‚µ‚½B
+ ƒvƒŒƒtƒBƒbƒNƒX‚ðŠm”F‚µ‚Ä‚­‚¾‚³‚¢B
+
+ illeagal scope
+ ƒXƒR[ƒv‚ª•s³‚Å‚·B”z—ñ•Ï”–¢‘Ήž‚̃vƒŒƒtƒBƒbƒNƒX‚ð
+ Ž‚•ϔ‚É”z—ñ•Ï”Œn‚Ì–½—ß‚ðŽÀs‚µ‚½ê‡‚È‚ÇB
+
+ not label !
+ goto/menu–½—߂щƒxƒ‹‚ªŽw’肳‚ê‚é‚ׂ«‚Æ‚±‚ë‚É
+ ƒ‰ƒxƒ‹ˆÈŠO‚̃Vƒ“ƒ{ƒ‹‚ªŽw’肳‚ê‚Ä‚¢‚Ü‚·B
+ ‚à‚µ‚­‚ÍAƒ‰ƒxƒ‹–¼‚Æ•Ï”–¼‚ªƒoƒbƒeƒBƒ“ƒO‚µ‚Ä‚¢‚Ü‚·B
+
+ buildin_set: not name
+ set–½—ß‚Å‘æˆêˆø”‚ª•Ï”–¼‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
+
+ getelementofarray (operator[]): param2 illeagal number
+ ”z—ñ•Ï”‚Å[]“à‚Ì’l‚ª•s³‚Å‚·
+ []“à‚Ì’l‚ª0–¢–ž‚©128ˆÈã‚É‚È‚è‚Ü‚µ‚½
+
+ getelementofarray (operator[]): param1 not name
+ ”z—ñ•Ï”‚Å[]‚Ì‘O‚̃Vƒ“ƒ{ƒ‹‚ª•Ï”–¼‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
+
+ op_2: int&str, str&int not allow.
+ ŠÖŒW‰‰ŽZŽqi”äŠr‰‰ŽZŽqj‚ÅA”’l‚Æ•¶Žš—ñA‚à‚µ‚­‚Í
+ •¶Žš—ñ‚Æ”’l‚ªŽw’肳‚ê‚Ü‚µ‚½B
+
+ infinity loop !
+ ƒXƒNƒŠƒvƒg‚ÌŽÀs–½—ß”‚©Agoto/menu–½—ߎÀs‰ñ”‚ª
+ ‘½‚·‚¬‚é‚Ì‚ÅA–³ŒÀƒ‹[ƒv‚Æ”»’f‚µ‚Ü‚µ‚½B
+ ƒXƒNƒŠƒvƒg‚ÌŽÀs‚Í‹­§“I‚É’†’f‚³‚ê‚Ü‚µ‚½B
+
+ not function and command !
+ ŠÖ”ŽÀs/–½—ߎÀs•”•ª‚ÅAŠÖ”‚Å‚à–½—ß‚Å‚à‚È‚¢
+ ƒVƒ“ƒ{ƒ‹‚ª‚ ‚è‚Ü‚µ‚½B
+ if•¶‚Ì‚È‚©‚Å‚ ‚é‰Â”\«‚ª‚‚¢‚Å‚·B
+
+ return without callfunc or callsub !
+ callfunc‚âcallsub‚³‚ê‚Ä‚¢‚È‚¢‚Ì‚Éreturn–½—ß‚ðŽÀs‚µ‚Ü‚µ‚½B
+
+ stack.sp(?) != default(?)
+ ƒXƒ^ƒbƒNƒ|ƒCƒ“ƒ^‚ªŠî€ƒXƒ^ƒbƒNƒ|ƒCƒ“ƒ^‚ƈقȂÁ‚Ä‚¢‚Ü‚·B
+ –½—ß‚ðŽÀs‚µ‚½Œ‹‰ÊAƒXƒ^ƒbƒNƒ|ƒCƒ“ƒ^‚ª‹¶‚¢‚Ü‚µ‚½B
+ ŠÖ”‚ð–½—ß‚Æ‚µ‚ÄŽÀs‚µ‚½‰Â”\«‚ª‚ ‚è‚Ü‚·B
+
+
+5. Postscript
+ NPC contained in snapshot was made reference in creating this text.
+ I appreciate people which created NPC.
+
+It corrects based on text by asong (2004/3/1).
+
+
diff --git a/doc/whisper_sys.txt b/doc/whisper_sys.txt
index 553ac1399..2c786ebd5 100644
--- a/doc/whisper_sys.txt
+++ b/doc/whisper_sys.txt
@@ -1,29 +1,29 @@
-Adapted from: http://eathena.deltaanime.net/board/index.php?showtopic=42659
-Copied by: Massdriller
-Post made by: lordalfa
-
-As requested by MassDriller, I made this piece of code to allow you to whisper your NPCS and let them execute some commands for you.
-
-An example of what you can do with it, before you eventually go on reading.
-
-Let's say you prepared a special NPC called NPCCommander.
-You whisper to NPCCommander in Game with formatted instructions like these:
-
-//============================================================
-
-[To NPC:Commander] Report#Killstealing#Lordalfa
-
-//============================================================
-
-Now what happens is that this code allows you to trigger a Label called "OnWhisperGlobal" into that NPC and execute some code, passing it The values you just input.
-
-Values will be passed into Temp string Variables called @whispervar0$, @whispervar1$ and so on..
-In the example above:
-
-@whispervar0$ would contain the word "Report"
-@whispervar1$ would contain the word "KillStealing"
-@whispervar2$ would contain the word "Lordalfa"
-
-so you might prepare the NPC Label to process these Variables and give Executing Character a Feedback ( via dispbottom "message" for example )
-
-Now , it's allowed to use up to 10 commands in a Row, separed by "#" character, they will be splitted and passed to the NPC Label in their respective variables, for you to process them.
+Adapted from: http://eathena.deltaanime.net/board/index.php?showtopic=42659
+Copied by: Massdriller
+Post made by: lordalfa
+
+As requested by MassDriller, I made this piece of code to allow you to whisper your NPCS and let them execute some commands for you.
+
+An example of what you can do with it, before you eventually go on reading.
+
+Let's say you prepared a special NPC called NPCCommander.
+You whisper to NPCCommander in Game with formatted instructions like these:
+
+//============================================================
+
+[To NPC:Commander] Report#Killstealing#Lordalfa
+
+//============================================================
+
+Now what happens is that this code allows you to trigger a Label called "OnWhisperGlobal" into that NPC and execute some code, passing it The values you just input.
+
+Values will be passed into Temp string Variables called @whispervar0$, @whispervar1$ and so on..
+In the example above:
+
+@whispervar0$ would contain the word "Report"
+@whispervar1$ would contain the word "KillStealing"
+@whispervar2$ would contain the word "Lordalfa"
+
+so you might prepare the NPC Label to process these Variables and give Executing Character a Feedback ( via dispbottom "message" for example )
+
+Now , it's allowed to use up to 10 commands in a Row, separed by "#" character, they will be splitted and passed to the NPC Label in their respective variables, for you to process them.
diff --git a/doc/woe_time_explanation.txt b/doc/woe_time_explanation.txt
index 7701107a1..019d88059 100644
--- a/doc/woe_time_explanation.txt
+++ b/doc/woe_time_explanation.txt
@@ -1,111 +1,111 @@
-//| ~~~~~ How to set WoE times, by erKURITA: ~~~~~
-//|
-//| Basically, there are 2 commands that affects the WoE times,
-//| OnClock<time>: and gettime(<type).
-//|
-//| OnClock<time> runs when the said time where <time> is has been reached.
-//| The format of time is hhmm, being h = hour, m = minute.
-//| OnClock2350: would run at 23:50 on Computer's time.
-//|
-//| gettime(<type) is a function which is used to make a check
-//| for a desired amount of information regarding time. The types are:
-//| 1 - Seconds (of a minute)
-//| 2 - Minutes (of an hour)
-//| 3 - Hour (of a day). Hour goes from 0 to 23.
-//| 4 - Week day (0 for Sunday, 6 is Saturday)
-//| 5 - Day of the month.
-//| 6 - Number of the month.
-//| 7 - Year.
-//| 8 - Day of the year.
-//|
-//| Days (explained later) :
-//| Monday = 1
-//| Tuesday = 2
-//| Wednesday = 3
-//| Thursday = 4
-//| Friday = 5
-//| Saturday = 6
-//| Sunday = 7
-//|
-//| This way, we can check for a desired minute, hour, day, month, etc.
-//|
-//| Now the structure:
-//|
-//| OnClock2100: //start time for Tues(2), Thurs(4)
-//| OnClock2300: //end time for Tues(2), Thurs(4)
-//| OnClock1600: //start time for Sat(6)
-//| OnClock1800: //end time for Sat(6)
-//|
-//| These 4 labels will run one after the other. It's acomodated so,
-//| The Tuesday at 21:00 and 23:00 they will run, and go to the next
-//| part of the script:
-//|
-//| if((gettime(4)==2) && (gettime(3)>=21 && gettime(3)<23)) goto L_Start;
-//| if((gettime(4)==4) && (gettime(3)>=21 && gettime(3)<23)) goto L_Start;
-//| if((gettime(4)==6) && (gettime(3)>=16 && gettime(3)<18)) goto L_Start;
-//|
-//| This part will check for the times. Since both Starting and Ending times
-//| run through the same chain of commands, there are necesary checks to ensure
-//| it's the right time. Let's take the following example:
-//|
-//| if((gettime(4)==2) && (gettime(3)>=21 && gettime(3)<23))
-//|
-//| The first gettime is checking for a type 4, the day of the week, and it's
-//| comparing it to the one desired, which is 2, that's Tuesday. If the comparation
-//| is true and both sides are equal, it will return 1. 1 means true, 0 means false
-//| in comparations and conditions.
-//|
-//| The second gettime is checking for a type 3, which is the hour, and it's
-//| comparing it to 21, and if the first part is greater or equal (>=) than the second,
-//| the comparation will return 1.
-//|
-//| The third and last gettime is checking again for the hour, but the time has to be less
-//| than the said time, in this case, 23.
-//|
-//| Now, look at the parentheses. Parentheses are very important when making comparations
-//| and conditions. Check the order of these. I'll place dummy characters for this example:
-//|
-//| if ((X && (Y && Z)) goto L_Start;
-//|
-//| It's saying, if Y and Z are true, the condition meets. Now let's replace that comparation
-//| with another dummy character. We're doing (Y && Z) = G:
-//|
-//| if (X && G) goto L_Start;
-//|
-//| It's saying, if X and G are true, the condition meets, thus it has to go to L_Start.
-//|
-//| Now, the last part of the script, regarding the end of WoE time:
-//|
-//| if((gettime(4)==2) && (gettime(3)==23)) goto L_End;
-//| if((gettime(4)==4) && (gettime(3)==23)) goto L_End;
-//| if((gettime(4)==6) && (gettime(3)==18)) goto L_End;
-//| end;
-//|
-//| This is the same as before, but it's checking for the day in the first gettime, and
-//| the hour on the second. If both conditions are true, the WoE will end. We're checking
-//| here for the end time, not the start.
-//|
-//| Another important thing is OnAgitInit: . This special label will be run as soon as the
-//| castle data is loaded from the char data. So it will check for the above start and end time
-//| to see if it's in WoE time, hence why the hours has to be checked.
-//|
-//| Now a example of how to set the WoE so it starts on Monday, at 4 pm and ends up at 10 pm:
-//|
-//| OnClock1600: //| 16:00 = 4 pm
-//| OnClock2200: //| 22:00 = 10 pm
-//|
-//| OnAgitInit: //| there has to be ONLY ONE of these labels, so put the OnClock above this
-//| //| and the checks below.
-//|
-//| if ((gettime(4)==1) && (gettime(3)>=16 && gettime(3)<22)) goto L_Start;
-//|
-//| if ((gettime(4)==1) && (gettime(3)==22) goto L_End;
-//| end;//| VERY IMPORTANT TO PLACE AND END AFTER THE LAST END CHECK. You don't want to
-//| //| start the WoE w/o being on the right times/day
-//|
-//| I hope this has been clear enough. Remember to put the checks in a logical way, e.g:
-//| Monday checks first, then Thursday, etc.
-//| Any questions Pm me (erKURITA) or go to irc channel on irc.deltaanime.net in #athena
-//| channel. Do not PM on IRC w/o asking please.
-//|
+//| ~~~~~ How to set WoE times, by erKURITA: ~~~~~
+//|
+//| Basically, there are 2 commands that affects the WoE times,
+//| OnClock<time>: and gettime(<type).
+//|
+//| OnClock<time> runs when the said time where <time> is has been reached.
+//| The format of time is hhmm, being h = hour, m = minute.
+//| OnClock2350: would run at 23:50 on Computer's time.
+//|
+//| gettime(<type) is a function which is used to make a check
+//| for a desired amount of information regarding time. The types are:
+//| 1 - Seconds (of a minute)
+//| 2 - Minutes (of an hour)
+//| 3 - Hour (of a day). Hour goes from 0 to 23.
+//| 4 - Week day (0 for Sunday, 6 is Saturday)
+//| 5 - Day of the month.
+//| 6 - Number of the month.
+//| 7 - Year.
+//| 8 - Day of the year.
+//|
+//| Days (explained later) :
+//| Monday = 1
+//| Tuesday = 2
+//| Wednesday = 3
+//| Thursday = 4
+//| Friday = 5
+//| Saturday = 6
+//| Sunday = 7
+//|
+//| This way, we can check for a desired minute, hour, day, month, etc.
+//|
+//| Now the structure:
+//|
+//| OnClock2100: //start time for Tues(2), Thurs(4)
+//| OnClock2300: //end time for Tues(2), Thurs(4)
+//| OnClock1600: //start time for Sat(6)
+//| OnClock1800: //end time for Sat(6)
+//|
+//| These 4 labels will run one after the other. It's acomodated so,
+//| The Tuesday at 21:00 and 23:00 they will run, and go to the next
+//| part of the script:
+//|
+//| if((gettime(4)==2) && (gettime(3)>=21 && gettime(3)<23)) goto L_Start;
+//| if((gettime(4)==4) && (gettime(3)>=21 && gettime(3)<23)) goto L_Start;
+//| if((gettime(4)==6) && (gettime(3)>=16 && gettime(3)<18)) goto L_Start;
+//|
+//| This part will check for the times. Since both Starting and Ending times
+//| run through the same chain of commands, there are necesary checks to ensure
+//| it's the right time. Let's take the following example:
+//|
+//| if((gettime(4)==2) && (gettime(3)>=21 && gettime(3)<23))
+//|
+//| The first gettime is checking for a type 4, the day of the week, and it's
+//| comparing it to the one desired, which is 2, that's Tuesday. If the comparation
+//| is true and both sides are equal, it will return 1. 1 means true, 0 means false
+//| in comparations and conditions.
+//|
+//| The second gettime is checking for a type 3, which is the hour, and it's
+//| comparing it to 21, and if the first part is greater or equal (>=) than the second,
+//| the comparation will return 1.
+//|
+//| The third and last gettime is checking again for the hour, but the time has to be less
+//| than the said time, in this case, 23.
+//|
+//| Now, look at the parentheses. Parentheses are very important when making comparations
+//| and conditions. Check the order of these. I'll place dummy characters for this example:
+//|
+//| if ((X && (Y && Z)) goto L_Start;
+//|
+//| It's saying, if Y and Z are true, the condition meets. Now let's replace that comparation
+//| with another dummy character. We're doing (Y && Z) = G:
+//|
+//| if (X && G) goto L_Start;
+//|
+//| It's saying, if X and G are true, the condition meets, thus it has to go to L_Start.
+//|
+//| Now, the last part of the script, regarding the end of WoE time:
+//|
+//| if((gettime(4)==2) && (gettime(3)==23)) goto L_End;
+//| if((gettime(4)==4) && (gettime(3)==23)) goto L_End;
+//| if((gettime(4)==6) && (gettime(3)==18)) goto L_End;
+//| end;
+//|
+//| This is the same as before, but it's checking for the day in the first gettime, and
+//| the hour on the second. If both conditions are true, the WoE will end. We're checking
+//| here for the end time, not the start.
+//|
+//| Another important thing is OnAgitInit: . This special label will be run as soon as the
+//| castle data is loaded from the char data. So it will check for the above start and end time
+//| to see if it's in WoE time, hence why the hours has to be checked.
+//|
+//| Now a example of how to set the WoE so it starts on Monday, at 4 pm and ends up at 10 pm:
+//|
+//| OnClock1600: //| 16:00 = 4 pm
+//| OnClock2200: //| 22:00 = 10 pm
+//|
+//| OnAgitInit: //| there has to be ONLY ONE of these labels, so put the OnClock above this
+//| //| and the checks below.
+//|
+//| if ((gettime(4)==1) && (gettime(3)>=16 && gettime(3)<22)) goto L_Start;
+//|
+//| if ((gettime(4)==1) && (gettime(3)==22) goto L_End;
+//| end;//| VERY IMPORTANT TO PLACE AND END AFTER THE LAST END CHECK. You don't want to
+//| //| start the WoE w/o being on the right times/day
+//|
+//| I hope this has been clear enough. Remember to put the checks in a logical way, e.g:
+//| Monday checks first, then Thursday, etc.
+//| Any questions Pm me (erKURITA) or go to irc channel on irc.deltaanime.net in #athena
+//| channel. Do not PM on IRC w/o asking please.
+//|
//| ~ erKURITA \ No newline at end of file