diff options
author | Valaris <Valaris@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-01-29 16:10:48 +0000 |
---|---|---|
committer | Valaris <Valaris@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-01-29 16:10:48 +0000 |
commit | 620e60eebce2c1f35c5c9a82f6ca365b316587f5 (patch) | |
tree | 38a39e0415f419d9a49ae456ed0e26654c23d559 /doc | |
parent | a2675f07d7da22a7c6ae11f545bf8f671e785a82 (diff) | |
download | hercules-620e60eebce2c1f35c5c9a82f6ca365b316587f5.tar.gz hercules-620e60eebce2c1f35c5c9a82f6ca365b316587f5.tar.bz2 hercules-620e60eebce2c1f35c5c9a82f6ca365b316587f5.tar.xz hercules-620e60eebce2c1f35c5c9a82f6ca365b316587f5.zip |
AS OF SVN REV. 5901, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. EVERYTHING ELSE
GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5094 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'doc')
-rw-r--r-- | doc/admin_packet.txt | 281 | ||||
-rw-r--r-- | doc/agitdb_ref.txt | bin | 0 -> 2374 bytes | |||
-rw-r--r-- | doc/client_packet.txt | 1088 | ||||
-rw-r--r-- | doc/conf_ref.txt | 1981 | ||||
-rw-r--r-- | doc/coredump_report.txt | 109 | ||||
-rw-r--r-- | doc/db_ref.txt | 147 | ||||
-rw-r--r-- | doc/effect_list.txt | 360 | ||||
-rw-r--r-- | doc/help.txt | 453 | ||||
-rw-r--r-- | doc/inter_server_packet.txt | 204 | ||||
-rw-r--r-- | doc/item.txt | 1451 | ||||
-rw-r--r-- | doc/item_bonus.txt | 206 | ||||
-rw-r--r-- | doc/miscnotes.txt | 552 | ||||
-rw-r--r-- | doc/mob_db_mode_list.txt | 50 | ||||
-rw-r--r-- | doc/notes/Changelog.txt | 8164 | ||||
-rw-r--r-- | doc/notes/INSTALL.txt | 246 | ||||
-rw-r--r-- | doc/notes/README.win32.txt | 32 | ||||
-rw-r--r-- | doc/notes/Readme-jap.txt | 21260 | ||||
-rw-r--r-- | doc/notes/SVN-SUPPORT.txt | 15 | ||||
-rw-r--r-- | doc/notes/help-old.txt | 450 | ||||
-rw-r--r-- | doc/packet_table_en.txt | 1336 | ||||
-rw-r--r-- | doc/pccommand_list.txt | 105 | ||||
-rw-r--r-- | doc/script_commands.txt | 4893 | ||||
-rw-r--r-- | doc/script_ref.txt | 1424 | ||||
-rw-r--r-- | doc/whisper_sys.txt | 29 |
24 files changed, 44836 insertions, 0 deletions
diff --git a/doc/admin_packet.txt b/doc/admin_packet.txt new file mode 100644 index 000000000..d40c8a370 --- /dev/null +++ b/doc/admin_packet.txt @@ -0,0 +1,281 @@ +===========================================================================
+===========================================================================
+ DETAIL OF ADMINISTRATION PACKETS
+---------------------------------------------------------------------------
+---------------------------------------------------------------------------
+
+===========================================================================
+ COMMON PACKETS FOR ALL SERVERS
+---------------------------------------------------------------------------
+S 7530 (void)
+ It's a request to obtain the version of the server.
+ Answer packet: 0x7531.
+
+R 7531 <major_version>.B <minor_version>.B <revision>.B <release_flag>.B <official_flag>.B <server_type>.B <mod_version>.w
+ It's the reply to a request about the server version (0x7530).
+ It gives the information about the version of the server.
+ release_flag : 0 = release, 1 = debug
+ official_flag: 0 = official, 1 = mod
+ server_type: 1 = login, 2 = char, 4 = inter, 8 = map (add all values if the server have more than 1 type)
+
+S 7532 (void)
+ End of connection (no reply is sended back)
+
+===========================================================================
+ ADMINISTRATION PACKETS OF THE LOGIN-SERVER
+---------------------------------------------------------------------------
+
+NB: All information about an account can be obtain by an administration packet, except the password.
+ The login-server will never send back the password af an account.
+ If someone sniffs the password from the login-server, he can not obtain it.
+ But, it exists a packet to check the password.
+ It's to secure the password.
+
+CONNECTION SYSTEM IN ADMINSTRATION MODE
+
+S 7918 <encrypt_flag>.w <administration_password>.24(16)B
+ It's a request to obtain an (administration) connection on the login-server.
+ The packet size changes according to the encrypted password or not.
+ A non-encrypted password is sended with 24 bytes (plain text with NULL terminate),
+ and an encrypted password is sended with 16 bytes.
+ Answer packet: 0x7919.
+ encrypt_flag: 0 = plain text, 1 = md5 (key + password), 2 = md5 (password + key)
+
+R 7919 <flag>.B
+ It's the reply to a request for an (administration) connection (0x7918).
+ Flag: 0 = accepted, 1 = refused
+
+S 791a (void)
+ It's a request to obtain the encrypted key. This key is used to create the encrypted password.
+ This packet must be called before the packet 0x7918 if you want connect you with an encrypted password.
+ The reply is the packet 0x01dc, as like a player sends a connection request with the packet 0x01db.
+
+PACKETS OF ADMINISTRATION MODE
+
+R 791f (void)
+ Ready signal (no reply is sended back). NOT USED.
+
+S 7920 <start_id>.l <end_id>.l
+ It's a request to obtain an accounts list.
+ start_id: 0 for begining of the list, or presumed start id value of the first account.
+ end_id: 0 to go until the last id, or the upper id limit value that you want.
+ If 'end_id' is lower to 'start_id', you give no limit for the last id.
+ Answer packet: 0x7921.
+
+R 7921 <length>.w { <account_id>.l <GM_level>.B <account_name>.24B <sex>.B <count>.l <state>.l }.38B*
+ It's tje reply packet of the packet 0x7920.
+ It gives an accounts list.
+ If you receive at least an account, you must do an additional request (packet 0x7920 begining with the last received account id +1)
+ to be sure that you receive all asked accounts, because this packet is limited in size when it sends information.
+ if <state> is 7, there are 2 possibilities: banishement or state{Your are Prohibited to log in until %s}.
+
+S 7930 <account_name>.24B <password>.24B <sex>.B <E-mail>.40B
+ It's a request to create a new account.
+ If e-mail is not valid, the e-mail is replaced by the default e-mail (a@a.com).
+ The default e-mail is like no e-mail to protect your characters against a deletion.
+ Answer packet: 0x7931.
+
+R 7931 <account_id>.l <account_name>.24B
+ It's the reply to an account creation (0x7930).
+ If the account_id value is -1, the login-server fails to create the new account
+ (an account already exists with the same name, the request is invalid, etc.).
+ Otherwise, the account_id is the id of the new account.
+
+S 7932 <account_name>.24B
+ It's a request to delete an account.
+ Answer packet: 0x7933.
+
+R 7933 <account_id>.l <account_name>.24B
+ It's the reply to an account deletion (0x7932).
+ If the account_id value is -1, the login-server fails to delete the account (the account doesn't exist).
+ Otherwise, the account_id is the id of the deleted account.
+ The login-server returns the correct sensitive case account_name (use strcmpi to compare).
+
+S 7934 <account_name>.24B <password>.24B
+ It's a request to modify the password of an account.
+ Answer packet: 0x7935.
+
+R 7935 <account_id>.l <account_name>.24B
+ It's the reply to an password modification (0x7934).
+ If the account_id value is -1, the login-server fails to modify the password (the account doesn't exist).
+ Otherwise, the account_id is the id of the account that the login-server have modified the password.
+ The login-server returns the correct sensitive case account_name (use strcmpi to compare).
+
+S 7936 <account_name>.24B <state>.l <error_message>.20B
+ It's a request to modify the state of an account.
+ State: It's the state like the packet 0x006a +1.
+ Error_message: it's the message of the error code #6 = Your are Prohibited to login until <error_message> (packet 0x006a).
+ If state is 7 (6+1), the error_message is saved in the account.
+ For another state, the error_message is deleted (voided) in the account.
+ Answer packet: 0x7937.
+
+R 7937 <account_id>.l <account_name>.24B <state>.l
+ It's the reply to a state modification (0x7936).
+ If the account_id value is -1, the login-server fails to modify the state (the account doesn't exist).
+ Otherwise, the account_id is the id of the account that the login-server have modified the state.
+ The login-server returns the correct sensitive case account_name (use strcmpi to compare).
+
+S 7938 (void)
+ It's a request to obtain information about the servers connected to the login-server (servers list with details)
+ Answer packet: 0x7939.
+
+R 7939 <length>.w {<IP>.l <port>.w <server_name>.20B <#_of_users>.w <maintenance>.w <new>.w}.32B*
+ It's the reply to an request to obtain servers information (0x7938).
+ It returns all information about the servers connected on the login-server.
+
+S 793a <account_name>.24B <password>.24B
+ It's a request to test a password. REMEMBER: Never create a packet to send the password from the login-server.
+ Answer packet: 0x793b.
+
+S 793b <account_id>.l <account_name>.24B
+ It's the reply to a password check (0x793a).
+ If the account_id value is -1, the login-server doesn't valid the password (the account doesn't exist or the password is not the correct one).
+ Otherwise, the account_id is the id of the account that the login-server have checked the password.
+ The login-server returns the correct sensitive case account_name (use strcmpi to compare).
+
+S 793c <account_name>.24B <sex>.B
+ It's a request to modify the sex of an account.
+ Answer packet: 0x793d.
+
+R 793d <account_id>.l <account_name>.24B
+ It's the reply to a request to modify a sex (0x793c).
+ If the account_id value is -1, the login-server fails to modify the sex (the account doesn't exist or the sex is already the good sex).
+ Otherwise, the account_id is the id of the account that the login-server have modified the sex.
+ The login-server returns the correct sensitive case account_name (use strcmpi to compare).
+
+S 793e <account_name>.24B <GM_level>.B
+ It's a request to modify the GM level of an account.
+ Answer packet: 0x793f.
+
+R 793f <account_id>.l <account_name>.24B
+ It's the reply to a request to modify a GM level (0x793e).
+ If the account_id value is -1, the login-server fails to modify the GM level (the account doesn't exist, or GM_account file can not be modified or the GM level is already the good sex).
+ Otherwise, the account_id is the id of the account that the login-server have modified the GM level.
+ The login-server returns the correct sensitive case account_name (use strcmpi to compare).
+
+S 7940 <account_name>.24B <e-mail>.40B
+ It's a request to modify the email of an account.
+ Answer packet: 0x7941.
+
+R 7941 <account_id>.l <account_name>.24B
+ It's the reply to a request to modify an email (0x7940).
+ If the account_id value is -1, the login-server fails to modify the e-mail (the account doesn't exist).
+ Otherwise, the account_id is the id of the account that the login-server have modified the email.
+ The login-server returns the correct sensitive case account_name (use strcmpi to compare).
+
+S 7942 <account_name>.24B <length_of_memo>.w <memo>.(length_of_memo)B
+ It's a request to modify the memo of an account.
+ The length can be 0 to have a void memo.
+ Answer packet: 0x7943.
+
+R 7943 <account_id>.l <account_name>.24B
+ It's the reply to an request to modify a memo (0x7942).
+ If the account_id value is -1, the login-server fails to modify the memo (the account doesn't exist).
+ Otherwise, the account_id is the id of the account that the login-server have modified the memo.
+ The login-server returns the correct sensitive case account_name (use strcmpi to compare).
+
+S 7944 <account_name>.24B
+ It's a request to obtain (by the name) the id of an account.
+ Answer packet: 0x7945.
+
+R 7945 <account_id>.l <account_name>.24B
+ It's the reply to an request (by the name) to obtain an account id (0x7944).
+ If the account_id value is -1, the login-server fails to obtain the account id (the account doesn't exist).
+ Otherwise, the account_id is the id of the found account.
+ The login-server returns the correct sensitive case account_name (use strcmpi to compare).
+
+S 7946 <account_id>.l
+ It's a request to obtain (by the id) the name of an account.
+ Answer packet: 0x7947.
+
+R 7947 <account_id>.l <account_name>.24B
+ It's the reply to an request (by the id) to obtain an account name (0x7946).
+ If the account_name value is "" (void), the login-server fails to obtain the account name (the account id doesn't exist).
+ Otherwise, the account_name is the name of the found account.
+
+S 7948 <account_name>.24B <validity>.l
+ It's a request to set the validity date of an account.
+ This packet fixes an absolute validity time.
+ Answer packet: 0x7949.
+
+R 7949 <account_id>.l <account_name>.24B <validity>.l
+ It's the reply to an request to set the validity date of an account (0x7948).
+ If the account_id value is -1, the login-server fails to set the validity date (the account doesn't exist).
+ Otherwise, the account_id is the id of the account that the login-server have fixed the validity date.
+ The login-server returns the correct sensitive case account_name (use strcmpi to compare).
+
+S 794a <account_name>.24B <end_date_of_banishment>.l
+ It's a request to set the final date of a banishment of an account.
+ This packet fixes an absolute time for the end of the banishment.
+ Answer packet: 0x794b.
+
+R 794b <account_id>.l <account_name>.24B <end_date_of_banishment>.l
+ It's the reply to an request to set the final date of a banishment of an account (0x794a).
+ If the account_id value is -1, the login-server fails to set the final date of a banishment (the account doesn't exist).
+ Otherwise, the account_id is the id of the account that the login-server have fixed the final date of a banishment.
+ The login-server returns the correct sensitive case account_name (use strcmpi to compare).
+
+S 794c <account_name>.24B <+/-years_modification>.w <+/-months_modification>.w <+/-days_modification>.w <+/-hours_modification>.w <+/-minutes_modification>.w <+/-seconds_modification>.w
+ It's a request to adjust the final date of a banishment of an account.
+ This packet modifies the final date of a banishment by add/sustract of some parameters.
+ If you adjust a non-banished account, you fix a banishment with actual time + adjustments.
+ Answer packet: 0x794d.
+
+R 794d <account_id>.l <account_name>.24B <end_date_of_banishment>.l
+ It's the reply to an request to adjust the final date of a banishment of an account (0x794c).
+ If the account_id value is -1, the login-server fails to adjust the final date of a banishment (the account doesn't exist).
+ Otherwise, the account_id is the id of the account that the login-server have adjusted the final date of a banishment.
+ The login-server returns the correct sensitive case account_name (use strcmpi to compare).
+ Note: if value is impossible, the returned value is the (unchanged) value of the final date of the banishment.
+
+S 794e <broadcast_type>.W <length_of_message>.L <message>.(length_of_message)B
+ It's a request to send a broadcast to all map-servers.
+ The length can not be 0.
+ broadcast_type:
+ 0: normal (yellow)
+ 0x10: blue
+ Answer packet: 794f.
+
+R 794f <answaer>.W
+ It's the reply to an request to send a broadcast to all map-servers (794e).
+ If the answer value is -1, the login-server fails to send the message (no char-server are conected).
+ Otherwise, the answer is 0.
+
+S 7950 <account_name>.24B <+/-years_modification>.w <+/-months_modification>.w <+/-days_modification>.w <+/-hours_modification>.w <+/-minutes_modification>.w <+/-seconds_modification>.w
+ It's a request to adjust the validity date of an account.
+ This packet modifies the validity date by add/sustract of some parameters.
+ You can not adjust an unlimited validity date.
+ Answer packet: 0x7951.
+
+R 7951 <account_id>.l <account_name>.24B <validity>.l
+ It's the reply to an request to adjust the validity date of an account (0x7950).
+ If the account_id value is -1, the login-server fails to adjust the validity date (the account doesn't exist).
+ Otherwise, the account_id is the id of the account that the login-server have found to try the adjustement of the validity date.
+ The login-server returns the correct sensitive case account_name (use strcmpi to compare).
+ If the returned validity date is 0, the login-server haven't modify the validity date (the account have an unlimited validity,
+ the modification is impossible because the new date is too far in the future, etc...).
+ If the returned validity date is not 0, it's the new validity date of the account.
+
+S 7952 <account_name>.24B
+ It's a request (by name) to obtain complete information about an account.
+ Answer packet: 0x7953.
+
+R 7953 <account_id>.l <GM_level>.B <account_name>.24B <sex>.B <count>.l <state>.l <error_message>.20B <last_login_time>.24B <last_authorised_login_ip>.16B <email>.40B <validity_date>.l <until_ban_date>.l <length_of_memo>.w <memo>.(length_of_memo)B
+ It's the reply to an request to obtain complete information about an account (0x7952 and 0x7954).
+ It sends all informations about an account.
+ Reply of 0x7952:
+ If the account_id value is -1, the login-server fails to found the account (the account doesn't exist).
+ Otherwise, the account_id is the id of the found account.
+ The login-server returns the correct sensitive case account_name (use strcmpi to compare).
+ Reply of 0x7954:
+ If the account_name value is "" (void), the login-server fails to found the account (the account id doesn't exist).
+ Otherwise, the account_name is the name of the found account.
+
+S 7954 <account_id>.l
+ It's a request (by id) to obtain complete information about an account.
+ Answer packet: 0x7953.
+
+S 7955
+ It's a request to re-load GM file definition.
+ Answer packet: NONE.
+
diff --git a/doc/agitdb_ref.txt b/doc/agitdb_ref.txt Binary files differnew file mode 100644 index 000000000..b1553cda0 --- /dev/null +++ b/doc/agitdb_ref.txt diff --git a/doc/client_packet.txt b/doc/client_packet.txt new file mode 100644 index 000000000..0b39da3c7 --- /dev/null +++ b/doc/client_packet.txt @@ -0,0 +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 クライアントから見て送信
+R クライアントから見て受信
+
+B バイト
+w ワード=2B
+l ロングワード=4B
+* 0個以上くりかえし
+
+S 0064 <version>.l <account name>.24B <password>.24B <version2>.B
+ アカウントID&パスワード送信
+S 0065 <account ID>.l <login ID1>.l <login ID2>.l ?.2B <sex>.B
+ キャラセレ鯖接続要求
+S 0066 <charactor number>.B
+ キャラクタ選択要求
+S 0067 <charactor name>.24B <param etc>.11B
+ キャラクタ作成要求
+S 0068 <charactor ID>.l <mail address>.40B
+ キャラクタ削除要求
+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成功&鯖情報
+R 006a <error No>.B
+ login失敗 その1
+ err No=00 未登録のIDです
+ err No=01 パスワードが違います
+ err No=02 使用期間が終了しています
+ err No=03 サーバーから接続拒否されました
+ err No=04 解約されたID、またはアカウントブロックされているIDです
+ err No=05 最新のパッチではありません
+ err No=06 解約されたID、またはアカウントブロックされているIDです
+ err No=07 サーバーが混雑しています
+R 006b <len>.w <charactor select data>.106B*
+ キャラセレ鯖接続成功&キャラクタデータ
+ <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
+ キャラクタ選択失敗
+R 006d <charactor select data>.106B
+ キャラクタ作成成功
+R 006e <error No>.B
+ キャラクタ作成失敗
+R 006f
+ キャラクタ削除成功
+R 0070 <error No>.B
+ キャラクタ削除失敗
+ err No=00 メールアドレスが違う
+ err No=01 削除が拒否された
+R 0071 <charactor ID>.l <map name>.16B <ip>.l <port>.w
+ キャラクタ選択成功&マップ名&ゲーム鯖IP/port
+S 0072 <account ID>.l <charactor ID>.l <login ID1>.l <login ID2>.l <sex>.b
+ ゲーム鯖接続要求
+R 0073 <server tick>.l <coordidate>.3B ?.2B
+ ゲーム鯖接続成功&サーバ側1ms時計&出現位置
+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 ?.w <head dir>.w <guild>.l <emblem>.l <manner>.w <karma>.B <sex>.B <X_Y_dir>.3B ?.B ?.B <sit>.B <Lv>.B
+ マップロード時&移動時用、向き付き用キャラ情報?
+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
+ テレポ等の表示範囲内沸きキャラ用、向き付き無しキャラ情報?
+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
+ 表示範囲内キャラ移動情報
+R 007c <ID>.l <speed>.w ?.6w <class>.w ?.7w <X_Y>.3B ?.2B
+ NPC用表示範囲内キャラ情報
+S 007d
+ mapロード終り
+S 007e <client tick>.l
+ クライアント側1msタイマ送信
+R 007f <server tick>.l
+ サーバ側1msタイマ送信
+R 0080 <ID>.l <type>.B
+ type=00 キャラ消滅 (画面外移動。死体消滅等?)
+ type=01 キャラ死亡
+ type=02 キャラ消滅 (logout等?)
+ type=03 テレポート (テレポ,蝿,蝶等?)
+R 0081 <type>.B
+ login失敗 その2
+ type=01 サーバー接続終了
+ type=02 同じIDで他の使用者がログインしました
+ type=03 サーバーとの同期に失敗しました
+ type=04 地域の収容人員超過で接続できません
+ type=05 18歳以下は接続できません
+ type=06 決済されたアカウントではありません
+ type=07 サーバーが混雑しています
+ type=08 前の接続情報が残っています
+ type=0b アカウントが保留されました
+ type=0c 課金システム変更のため、一時終了します
+ type=0d IPが一致しないため、接続を終了します
+ type=10 有料サービスになりました
+ type=11 チケットが買われていないか、有効期限が切れています
+S 0085 <X_Y>.3B
+ 移動要求
+R 0087 <server tick>.l <X_Y_X_Y>.5B ?.B
+ 移動応答
+R 0088 <ID>.l <X>.w <Y>.w
+ 移動途中停止
+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:ダメージ(の合計?) param2:分割数 param3:アサシン2刀流逆手ダメージ
+ NPCからの攻撃の場合、param2,param3はゴミデータ
+ speedはPCの場合内部ASPDと一致
+ type=01 itemを拾う ID*2以外ゴミ
+ type=02 座る src ID以外ゴミ
+ type=03 立つ src ID以外ゴミ
+ type=08 複数攻撃
+ type=09 ダメージモーションなしにダメージだけ表示される物(インデュア)
+ type=0a クリティカル
+ type=0b 完全回避
+S 008c <len>.w <str>.?B
+ 通常発言送信。チャット中はチャット内発言用になる
+ 先頭の"<nick> : "の部分はクライアント側で付ける事
+R 008d <len>.w <ID>.l <str>.?B
+ IDさんの発言受信。チャット中はチャット内発言用になる
+R 008e <len>.w <str>.?B
+ 自分の発言受信。チャット中はチャット内発言用になる
+S 0090 <ID>.l <type?>.B
+ NPCに話しかける。typeは01しか見た事無し
+R 0091 <map name>.16B <X>.w <Y>.w
+ 鯖内マップ間移動、テレポ,蝿等用
+R 0092 <map name>.16B <X>.w <Y>.w <IP>.l <port>.w
+ 鯖間移動
+R 0093
+ 8月中に1回だけ観測。謎
+S 0094 <ID>.l
+ IDのキャラ名等要求。0095か0195の返答があるはず
+R 0095 <ID>.l <nick>.24B
+ NPC,ギルド未所属PCの0094への返答
+ 0193 <charID>.l で問い合わせて
+ 0194 <charID>.l <name>.24B の応答で得てます。
+
+S 0096 <len>.w <nick>.24B <message>.?B
+ wis送信
+R 0097 <len>.w <nick>.24B <message>.?B
+ wis受信
+R 0098 <type>.B
+ type=00 wis送信成功
+ type=01 wis相手がloginしてない?
+ type=02 wis相手からignoreされてる?
+S 0099
+ 神の声送信
+R 009a <len>.w <message>.?B
+ GMからの天の声
+S 009b <head dir>.w <dir>.B
+ 体&頭の方向変更要求。クライアントへの応答は無い模様
+ dirは00〜07で体の向き。00で北から反時計回りに45°単位で07まで
+ head dirは00,01,02で頭の向き。00で体と同じ、01が右、02が左
+R 009c <ID>.l <head dir>.w <dir>.B
+ IDの体&頭の方向変更
+R 009d <ID>.l <item ID>.w <identify flag>.B <X>.w <Y>.w <amount>.w <subX>.B <subY>.B
+ 移動等で床アイテムが画面内に入ってきた時
+R 009e <ID>.l <item ID>.w <identify flag>.B <X>.w <Y>.w <subX>.B <subY>.B <amount>.w
+ item drop。何故か009dとマス目内位置&個数が入れ変っている
+S 009f <ID>.l
+ IDの床アイテムを拾う
+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 取得失敗?
+ fail=06 ルート権無し。取得失敗
+R 00a1 <ID>.l
+ IDの床アイテム消去
+S 00a2 <index>.w <amount>.w
+ 所有アイテムを落す
+R 00a3 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B}.10B*
+ 所有消耗品&収集品リスト
+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*
+ 所有装備リスト
+R 00a5 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B}.10B*
+ カプラさんに預けてある消耗品&収集品リスト
+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*
+ カプラさんに預けてある装備リスト
+S 00a7 <index>.w <ID>.l
+ 所持アイテムindexを使用する。IDは自分のみ?
+R 00a8 <index>.w <amount>.w <type>.B
+ アイテム使用応答。type=00の場合使用失敗? amountもゴミの模様
+ type=01の場合成功で、amountは使用後の残り個数
+S 00a9 <index>.w <equip type>.w
+ アイテム装備
+R 00aa <index>.w <equip point>.w <type>.B
+ アイテム装備応答。type=00の場合装備失敗? equip pointもゴミの模様
+S 00ab <index>.w
+ 装備解除
+R 00ac <index>.w <equip point>.w <type>.B
+ 装備解除応答。type=00の場合失敗? equip pointもゴミの模様
+R 00af <index>.w <amount>.w
+ アイテム数減少。amount個だけ減らす
+R 00b0 <type>.w <val>.l
+ 色々な能力値の更新。以下type:対応する数値を列挙
+ 0000:speed 0003:悪行値 0004:マナーポイント 0005:HP 0006:MaxHP
+ 0007:SP 0008:MaxSP 0009:ステータスポイント 000b:ベースレベル
+ 000c:スキルポイント 0018:重量(表示されてる数字の10倍)
+ 0019:最大重量(表示されてる数字の10倍)
+ 0029:ATK前 002a:ATK後 002b:MATK前 002c:MATK後
+ 002d:DEF前 002e:DEF後 002f:MDEF前 0030:MDEF後
+ 0031:HIT 0032:FLEE前 0033:FLEE後 0034:クリティカル
+ 0035:ASPD(2ms単位の時間?) 0037:ジョブレベル
+ 0082:謎 ATK後と同じ数字?
+R 00b1 <type>.w <val>.l
+ 色々な能力値の更新。以下type:対応する数値を列挙
+ 0001:ベース側経験値 0002:ジョブ側経験値 0014:zeny
+ 0016:ベース側必要経験値 0017:ジョブ側必要経験値
+ β1では00b0はvalがshort、00b1はvalがlongという使い分けがあったんだけど
+ 今となっては差が無くなって、盲腸みたいなもの?
+S 00b2 <type>.B
+ type=00 死亡時リスタート
+ type=01 キャラセレ要求
+R 00b3 <type>.B
+ type=01 キャラセレ応答
+R 00b4 <len>.w <ID>.l <str>.?B
+ IDのNPCからのメッセージ
+R 00b5 <ID>.l
+ IDのNPCとのメッセージウィンドウに"NEXT"アイコンを出す
+R 00b6 <ID>.l
+ IDのNPCとのメッセージウィンドウに"CLOSE"アイコンを出す
+R 00b7 <len>.w <ID>.l <str>.?B
+ IDのNPCの会話で選択項目表示。各項目は':'で区切られる
+S 00b8 <ID>.l <select>.B
+ IDのNPCの会話の選択。各項目に順に1〜が振られる。ffでキャンセル?
+S 00b9 <ID>.l
+ IDのNPCとの会話。NEXTボタンを押した
+S 00bb <type>.w <amount>.B
+ ステータスup要求。typeは000dから0012が順にSTR,AGI,VIT,INT,DEX,LUKに対応
+R 00bc <type>.w <fail>.B <val>.B
+ ステータスup応答。fail=01なら成功。typeは00bbと同じ。valは上った後の数字
+ 失敗例は見た事無いので謎。ステータスポイントが足りない状態で
+ 00bbを発行できるクライアントが有れば、fail=00になるのではないかと予想
+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
+ まとめてステータス情報を送るパケット
+R 00be <type>.w <val>.B
+ 必要ステータスポイント更新パケット。typeは0020〜0025が順にSTR〜LUKに対応
+S 00bf <type>.B
+ エモーションを出す。typeは00-0c(,0d)がALT+1〜ALT+9,ALT+0,チョキ,グー,パー(,韓国旗)に対応
+ 00=! 01=? 02=うれしい(♪) 03=ハート 04=汗 05=あはは(電球)
+ 06=いやだな(#) 07=怒り(もやもや)08=お金($) 09=… 0a=チョキ
+ 0b=グー 0c=パー 0d=韓国旗 0e=大きいハート 0f=ありがとう(thanks)
+ 10=無念 11=ごめん(sorry) 12=笑い 13=汗かき 14=あの
+ 15=最高(GoodJob)16=キョロキョロ 17=ショック 18=まる 19=バツ
+ 1a=ヘルプ(help) 1b=go 1c=えーん 1d=くすくす 1e=ちゅ
+ 1f=ちゅちゅ 20=ふん 21=うんうん
+R 00c0 <ID>.l <type>.B
+ IDの人がエモーションを出した。typeは00bfと同じ
+S 00c1
+ login人数問い合わせ
+R 00c2 <val>.l
+ login人数応答
+R 00c3 <ID>.l <type>.B <val>.B
+ 見た目変更。typeは00で本体(転職時等)、02が武器、03が頭(下)、04が頭(上)、05が頭(中)、08が盾
+R 00c4 <ID>.l
+ 話かけたNPCが商人だったのでbuy/sell選択窓出
+R 00c5 <ID>.l <type>.B
+ buy/sell選択。type=00ならbuy。type=01ならsell
+R 00c6 <len>.w {<value>.l <DCvalue>.l <type>.B <item ID>.w}.11B*
+ NPCのお店buy選択時。DCvalueは商人DC後の値段
+R 00c7 <len>.w {<index>.w <value>.l <OCvalue>.l}.10B*
+ NPCのお店sell選択時。OCvalueは商人OC後の値段
+S 00c8 <len>.w {<amount>.w <item ID>.w}.4B*
+ NPCのお店から買う
+S 00c9 <len>.w {<index>.w <amount>.w}.4B*
+ NPCのお店に売る
+R 00ca <type>.B
+ NPCから購入終了。type=00成功
+R 00cb <type>.B
+ NPCへ売却終了。type=00成功
+S 00cc <ID>.l
+ GM用右クリックメニュー「(name)使用者強制終了」使用
+R 00cd <ID?>.l
+ GM用右クリックメニュー「(name)使用者強制終了」の応答
+ <ID>が0の場合は失敗と表示。(このパケットはただの応答です。接続終了の機能はありません。)
+S 00cf <nick>.24B <type>.B
+ type=00 nickからの発言受け付け拒否 (/ex nick)
+ type=01 nickからの発言受け付け許可 (/in nick)
+S 00d0 <type>len.B
+ type=00 全ての発言受け付け拒否 (/exall)
+ type=01 全ての発言受け付け許可 (/inall)
+R 00d1 <type>.B <fail>.B
+ fail=00 発言受け付け拒否成功
+ fail=01 発言受け付け拒否失敗
+R 00d2 <type>.B <fail>.B
+ fail=00 全発言受け付け拒否成功
+ fail=01 全発言受け付け拒否失敗
+S 00d5 <len>.w <limit>.w <pub>.B <passwd>.8B <title>.?B
+ チャット立て。ここからチャット関係が続くけど調べが甘いので補完よろ
+R 00d6 <fail>.B
+ チャット立て応答
+R 00d7 <len>.w <owner ID>.l <chat ID>.l <limit>.w <users>.w <pub>.B <title>.?B
+ 画面内チャット情報
+R 00d8 <chat ID>.l
+ チャット消去
+S 00d9 <chat ID>.l <passwd>.8B
+ チャット参加要請
+R 00da <fail>.B
+ チャット参加失敗
+R 00db <len>.w <chat ID>.l {<index>.l <nick>.24B}.28B*
+ チャット参加者リスト
+R 00dc <users>.w <nick>.24B
+ チャットへの参加者追加(?)
+R 00dd <index>.w <nick>.24B <fail>.B
+ チャットから参加者抜け
+S 00de <len>.w <limit>.w <pub>.B <passwd>.8B <title>.?B
+ チャットステータス変更
+R 00df <len>.w <owner ID>.l <chat ID>.l <limit>.w <users>.w <pub>.B <title>.?B
+ チャットステータス変更成功
+S 00e0 ?.l <nick>.24B
+ チャットルーム所有者変更要求?
+R 00e1 <index>.l <nick>.24B
+ チャット参加者番号付け直し?
+S 00e2 <nick>.24B
+ チャットkick
+S 00e3
+ チャット抜け
+S 00e4 <ID>.l
+ 取り引き要求
+R 00e5 <nick>.24B
+ 取り引き要請受け
+S 00e6 <type>.B
+ type=03 取り引き要請ok
+ type=04 取り引き要請キャンセル
+R 00e7 <fail>.B
+ 取り引き要求応答
+ fail=00 距離が遠過ぎ
+ fail=03 要請受けてくれた
+ fail=04 キャンセルされた?
+S 00e8 <index>.w <amount>.l
+ アイテム追加。index=0でzeny追加。正規クライアントではzenyは00ebの直前のみ
+R 00e9 <amount>.l <type ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w
+ 相手方からのアイテム追加
+R 00ea <index>.w <fail>.B
+ fail=00 アイテム追加成功
+ fail=01 追加失敗。相手側重量オーバ
+S 00eb
+ アイテム追加完了(ok押し)
+R 00ec <fail>.B
+ fail=00 自分からのok受領
+ fail=01 相手からのok受領
+S 00ed
+ 取り引きキャンセル
+R 00ee
+ 取り引きがキャンセルされました
+S 00ef
+ 取り引き許諾(trade押し)
+R 00f0
+ 取り引き完了
+R 00f2 <num>.w <limit>.w
+ カプラさん許容アイテム個数&現状
+S 00f3 <index>.w <amount>.l
+ カプラさん倉庫にアイテム放り込み
+R 00f4 <index>.w <amount>.l <type ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w
+ カプラさん倉庫のアイテム追加
+S 00f5 <index>.w <amount>.l
+ カプラさん倉庫からアイテム取り出し要求
+R 00f6 <index>.w <amount>.l
+ カプラさん倉庫からアイテム取り出し応答
+S 00f7
+ カプラさん倉庫閉じ要求
+R 00f8
+ カプラさん倉庫閉じ応答
+S 00f9 <party name>.24B
+ パーティ作成要求
+R 00fa <fail>.B
+ パーティ作成応答
+ fail=00 「パーティーを結成しました。」
+ fail=01 「同じ名前のパーティーがあります。」
+ fail=02 「すでにパーティーに加入しています。」
+R 00fb <len>.w <party name>.24B {<ID>.l <nick>.24B <map name>.16B <leader>.B <offline>.B}.46B*
+ パーティ情報まとめて送り
+S 00fc <ID>.l
+ パーティ勧誘する
+R 00fd <nick>.24B <fail>.B
+ fail=00 相手は既にパーティに入っていた
+ fail=01 相手に拒否された
+ fail=02 勧誘成功
+R 00fe <ID>.l <party name>.24B
+ パーティに誘われた
+S 00ff <ID>.l <fail>.l
+ パーティに誘われた時の返答。fail=1 ok返答?
+S 0100
+ パーティ脱退要求
+R 0101 <exp>.w <item?>.w
+ パーティ設定現状? exp=2の場合は公平配分設定失敗?
+S 0102 <exp>.w <item?>.w
+ パーティ設定変更
+R 0104 <ID>.l ?.l <X>.w <Y>.w <offline>.B <party name>.24B <nick>.24B <map name>.16B
+ パーティ1人分情報更新
+R 0105 <ID>.l <nick>.24B <fail>.B
+ nickさんがパーティから離脱
+R 0106 <ID>,l <HP>.w <MaxHP>.w
+ パーティメンバHP更新
+R 0107 <ID>.l <X>.w <Y>.w
+ パーティメンバ位置更新
+S 0108 <len>.w <message>.?B
+ パーティ内発言
+R 0109 <len>.w <ID>.l <message>.?B
+ パーティ内発言受信
+R 010a <type ID>.w
+ MVPアイテム取得
+R 010b <exp>.l
+ MVP経験値取得
+R 010c <ID>.l
+ MVPキャラ表示
+R 010e <skill ID>.w <lv>.w <sp>.w <range>.w <up>.B
+ スキル情報更新。spは未使用?
+R 010f <len>.w {<skill ID>.w <target type>.w ?.w <lv>.w <sp>.w <range>.w <skill name>.24B <up>.B}.37B*
+ スキル情報の塊。skill nameは一部流れて来ない物がある>AL_PNEUMA,PR_SLOWPOISON等
+ target typeは0-パッシブ、1-敵、2-場所、4-即時発動、16-味方
+ lv=0 up=0の場合はリストに出してない?
+R 0110 <skill ID>.w <basic type>.w ?.w <fail>.B <type>.B
+ fail=00の時にスキル利用失敗?
+ type 00:basic typeの方 01:SP不足 02:HP不足 03:memo無し 04:delay中
+ 05:お金無し(めまー) 06:武器がよろしくない 07:赤ジェム無し 08:青ジェム無し 09:謎
+ basic type 00:取り引き 01:emotion 02:座り 03:チャット 04:パーティ
+ 05:shout? 06:PK 07:マナーポイント
+R 0111 <skill ID>.w <target type>.w ?.w <lv>.w <sp>.w <range>.w <skill name>.24B <up>.B
+ 010fの1つ分。β2だと未使用?
+ 20040415転職時に観測
+S 0112 <skill ID>.w
+ スキルlvup要求
+S 0113 <level>.w <skill ID>.w <ID>.l
+ IDをターゲットにskillを使う
+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
+ 攻撃系スキルエフェクト@
+ type=04 火壁で観測 type=06とほぼ同じ?
+ type=05 NB/FBlの分散したダメージ用?
+ type=06 単発もの? param1はダメージ合計、param2はlevel、param3は1固定と予想
+ type=07 ダメージ表示無し?
+ type=08 連打もの? param1はダメージ合計、param2はlevel、param3は分割数と予想
+ type=09 ダメージモーションなしにダメージだけ表示される物(インデュア)と思ったのだがダメージモーションが出る物。(機能は謎)
+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
+ 弾き飛ばし有り攻撃系スキルエフェクト
+ type=05 ダメージ&弾き飛ばし。param1はダメージ合計、param2はlevel、param3は分割数と予想
+ type=06 爆心地? 少なくともparam1はゴミの模様
+ type=09 ダメージモーションなしにダメージだけ表示される物(インデュア)と思ったのだがダメージモーションが出る物。(機能は謎)
+S 0116 <level>.w <skill ID>.w <X>.w <Y>.w
+ (X,Y)をターゲットにskillを使う
+R 0117 <skill ID>.w <src ID>.l <val>.w <X>.w <Y>.w <server tick>.l
+ 場所相手のスキルエフェクト表示。valはレベルか、一部固さ?(氷壁)
+S 0118
+ 攻撃キャンセル
+R 0119 <ID>.l <param1>.w <param2>.w <param3>.w ?.B
+ 見た目変更
+ param1=02 フロストダイバで凍り漬け?
+ param2=01 毒?
+ param2=20 ANGELUS状態?
+ param3=01 サイトかルワッチ?
+ param3=0b ハイディング状態?
+ param3=0b クローキング状態?
+ param3=0d カート付き
+ param3=0e 鷹付き
+ param3=0f ペコペコ乗り
+
+R 011a <skill ID>.w <val>.w <dst ID>.l <src ID>.l <fail>.B
+ 非ダメージ系スキル表示。ヒールの場合valは回復量
+ fail=00の場合失敗ぽいが、スチール以外では見た事無し
+S 011b <skill ID>.w <map name>.16B
+ 011cへの応答。使わない場合"cancel"、マップ内ランダムの場合"Random"を送る
+R 011c <skill ID>.w <map1>.16B <map2>.16B <map3>.16B <map4>.16B
+ テレポ/ポタの場所選択。
+ テレポの場合、Random/セーブ場所、ポタの場合、セーブ場所/memo1/memo2/memo3となる
+ マップ名のみ送られる
+S 011d
+ 現在居る所をメモ要求
+R 011e <fail>.B
+ fail=00 メモ成功
+ fail=01 メモ失敗
+R 011f <dst ID>.l <src ID>.l <X>.w <Y>.w <type>.B <fail>.B
+ スキル効能地作成
+ type 7e:SW 7f:火壁 80:ポタ発動中 81:ポタ発動前 83:サンク 85:フニューマ
+ 86:バーミリオン 8c:トーキーボックス発動時 8d:氷壁 8e:くあぐまいやー 91:あんくるすねあ
+ 93:らんどまいん 97:?? 99:トーキーボックス発動前
+ 他情報求む
+R 0120 <ID>.l
+ スキル効能地消去
+R 0121 <num>.w <num limit>.w <weight>.l <weight limit>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*
+ カート内アイテム。装備品
+R 0123 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B}.10B*
+ カート内アイテム。消耗品/収集品
+R 0124 <index>.w <amount>.l <item ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w
+ カートにアイテム追加
+R 0125 <index>.w <amount>.l
+ カートからアイテム削除
+S 0126 <index>.w <amount>.l
+ カートにアイテムを入れる
+S 0127 <index>.w <amount>.l
+ カートからアイテムを取り出す
+S 0128 <index>.w <amount>.l
+ カプラさんからカートへアイテムを移す
+S 0129 <index>.w <amount>.l
+ カートからカプラさんへアイテムを移す
+R 012c <fail>.B
+ fail=00 「重量オーバーです。」
+ fail=01 「アイテム最大種類数を超過しました。」
+R 012d <num>.w
+ 露店開設。アイテムリスト要求。numは置ける最大数
+S 012e
+ 露店閉鎖
+S 012f <len>.w <message>.80B {<index>.w <amount>.w <value>.l}.8B*
+ 露店開設、露店名&アイテム,値段リスト
+S 0130 <ID>.l
+ 露店アイテムリスト要求
+R 0131 <ID>.l <message>.80B
+ 露店看板表示
+R 0132 <ID>.l
+ 露店看板消去
+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
+ 露店アイテムリスト
+S 0134 <len>.w <ID>.l {<amount>.w <index>.w}.4B*
+ 露店アイテム購入
+R 0135 <index>.w <amount>.w <fail>.B
+ 露店アイテム購入失敗。
+ fail=1 「お金が足りません。」
+ fail=2 「重量オーバーです。」
+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*
+ 露店開設成功
+R 0137 <index>.w <amount>.w
+ 露店アイテム販売報告
+R 0139 <ID>.l <X>.w <Y>.w <X2>.w <Y2>.w <range>.w
+ IDの敵は(X,Y)に居て自分は(X2,Y2)に居るので攻撃が届きませんでした
+ 攻撃可能距離はrangeなので、近寄って下さい?
+R 013a <val>.w
+ 攻撃射程
+R 013b <type>.w
+ 各種メッセージ表示。3=矢が装備できました
+R 013c <ID>.w
+ 装備された矢のItemID。0で、未装備状態。
+R 013d <type>.w <val>.w
+ HP回復スキル/SP回復スキルによる回復
+ 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
+ スキル詠唱中。PC/NPCが相手の場合は(X,Y)は0。場所がターゲットの場合はdst IDは0になる
+
+ 0x013e の offset+16(dword) はスキル属性です(調査済)。
+ 00:無 01:水 02:地 03:火 04:風 05:毒 06:聖 07:暗 08:念 09:死
+ 将来的に、詠唱中のエフェクトが属性で変わるのかと。
+
+ waitはms単位かな?
+R 0141 <type>.l <base>.l <bonus>.l
+ ステータス情報。typeは0dから12が順にSTR,AGI,VIT,INT,DEX,LUKに対応
+ base+bonusと表示される
+R 0142 <ID>.l
+ 数値入力用窓表示
+S 0143 <ID>.l <amount>.l
+ 0142の窓に入力した数値の送信
+R 0144 <ID>.l <type>.l <X>.l <Y>.l <point ID>.B <color>.3B ?.B
+ 案内員用、マップ上アイコン表示パケット
+ type=1 アイコンを表示
+ type=2 アイコンを消去
+R 0145 <file name>.16B <type>.B
+ (今の所)カプラさんcutin表示
+ type=02 表示
+ type=ff 消去
+S 0146 <ID>.l
+ IDのNPCとの会話。CLOSEボタンを押した。ack無しにNPCメッセージウィンドを同時に閉じる
+R 0147 <skill ID>.w <target type>.w ?.w <lv>.w <sp>.w <range>.w <skill name>.24B <up>.B
+ アイテム利用の結果一時的に得られたスキル情報
+R 0148 <ID>.l
+ リザレクションの相手決め? @ β1
+S 0149 <ID>.l <type>.B <time>.w
+ IDにチャット禁止時間を付加 type=0 マイナス type=1 プラス
+ tymeは分単位
+R 014a <fail>.l
+ マナーポイントを与えた結果。fail=0 成功 fail=1 失敗
+R 014b <type>.B <nick>.24B
+ マナーポイントを貰った。type=00 プラス type=01 マイナス
+R 014C <len>.w (<type>.l <guildID>.l <guild name>.24B).*
+ 同盟・敵対ギルド表示
+ type=0 同盟
+ type=1 敵対
+S 014D
+ ギルド情報表示開始?
+R 014E <type?>.l
+ type=0x57 一般ギルド団員
+ type=0xD7 ギルドマスター
+S 014F <page>.l
+ ギルド表示タブ送信
+R 0150 <guildID>.l <guildLv>.l <接続数>.l <定員>.l <Avl.lvl>.l <経験値>.l <next_exp>.l <上納ポイント>.l <性向左右VW>.l <性向上下RF>.l <人数?>.l <guild name>.24B <guild master>.24B <本拠地>.16B
+ ギルド情報
+S 0151 <guild ID>.l
+ エンブレム要求
+R 0152 <len>.w <guild ID>.l <emblem ID(変更回数?)>.l <emblem data>.?B
+ エンブレムイメージ送付
+S 0153 <len>.w <emblem data>.?B
+ エンブレムイメージ変更
+R 0154 <len>.w {<accID>.l <charactorID>.l <髪型>.w <髪の色>.w <性別?>.w <job>.w <lvl?>.w <上納経験値>.l <online>.l <Position>.l <メモ?>.50B <nick>.24B}*
+ ギルドメンバリスト
+S 0155 <len>.w {<accID>.l <charaID>.l <index>.l}.12B*
+ 役職変更
+R 0156 <len>.w {<accID>.l <charaID>.l <index>.l}.12B*
+ 役職変更通知
+S 0159 <guildID>.l <accID>.l <charID>.l <mess>.40B
+ ギルド脱退送信
+R 015A <nic>.24B <mess>.40B
+ ギルド脱退(全員)受信
+S 015B <guildID>.l <accID>.l <charID>.l <mess>.40B
+ ギルド追放送信
+R 015C <nick>.24B <mess>.40B <アカウントID>.24B
+ ギルド追放(全員)受信
+S 015D <guild name>.24B <?>.16B
+ ギルド解散
+R 015E <fail>.l
+ ギルド解散正否通知
+ 0x00:成功
+ 0x01:住民登録番号不一致
+R 0160 <len>.w {<index>.l <mode>.l <index>.l <exp_mode>.l}.16B
+ 職位情報
+S 0161 <len>.w {<index>.l <mode>.l <index>.l <exp_mode>.l <nickname>.24B}.40B*
+ 職位変更
+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*
+ ギルドスキル
+R 0163 <len>.w { <nick>.24B <アカウントID>.24B <追放理由>.40B }.88B*
+ ギルド追放リスト
+S 0165 <myaccID>.l <guild name>.24B
+ ギルド作成
+R 0166 <len>.w {<index>.l <name>.24B }.28B*
+ 職位名リスト
+R 0167 <type>.b
+ ギルド作成合否
+ type = 0 ギルド作成成功
+ type = 1 すでにギルドに所属している
+ type = 2 同名のギルドがある
+ type = 3 エンペリウム無し
+S 0168 <TargetAccID>.l <sourceAccID>.l <myCharactorID>.l
+ ギルド勧誘
+R 0169 <type>.B
+ ギルド勧誘結果
+ type = 0 他のギルドに加入している
+ type = 1 拒否された
+ type = 2 加入した
+ type = 3 定員を超過
+R 016A <guild ID>.l <guild name>.24B
+ ギルド勧誘された
+S 016B <guild ID>.l <type>.l
+ ギルド勧誘返信
+ type=0 拒否する
+ type=1 許諾する
+R 016c <guild ID>.l <emblem ID>.l <mode>.l ?.5B <guild name>.24B
+ login時ギルド情報
+ mode=自分の所属職位のmode
+R 016d <ID>.l <charactor ID>.l <online>.l
+ ギルドメンバがloginした抜けた等
+S 016E <guildID>.l <mess1>.60B <mess2>.120B
+ ギルド告知設定
+R 016F <mess1>.60B <mess2>.120B
+ ギルド告知
+S 0170 <TargetAccID>.l <sourceAccID>.l <myCharactorID>.l
+ 同盟要請勧誘
+R 0171 <SorceAccID>.l <guild name>.24B
+ 同盟要請勧誘された
+S 0172 <SorceAccID>.l <type>.l
+ 同盟要請返信
+ type=0 拒否する
+ type=1 許諾する
+R 0173 <type>.B
+ type = 0 すでに同盟関係
+ type = 1 同盟拒否された
+ type = 2 同盟成功
+ type = 3 相手ギルドの同盟ギルド数が超過
+ type = 4 自分のギルドの同盟ギルド数が超過
+R 0174 <len>.w {<index>.l <mode>.l <index>.l <exp_mode>.l <nickname>.24B}.40B*
+ 職位変更通知
+R 0177 <len>.w <index>.w*
+ 鑑定可能アイテムリスト
+S 0178 <index>.w
+ アイテム鑑定
+R 0179 <index>.w <fail>.B
+ アイテム鑑定結果。fail=00で成功。fail=01ってあるのか?
+S 017A <index>.w
+ カードWクリック
+R 017B <len>.w {<index>.w}*
+ カード挿入できるアイテムIndex番号
+S 017C <SrcIndex>.w <DescIndex>.w
+ Src をDescに突っ込む
+R 017D <DescIndex>.w <SrcIndex>.w <fail>.b
+ Src をDescに突っ込み<fail> 0=成功 1=失敗?
+S 017e <len>.w <message>.?B
+ ギルド内メッセージ発言
+R 017f <len>.w <message>.?B
+ ギルド内メッセージ受信
+S 0180 <charactorID>.l
+ ギルド敵対
+R 0181 <flag>.b
+ ギルド敵対可否
+ flag=0 敵対成功
+ flag=1 敵対ギルド数が多すぎる
+ flag=2 すでに敵対関係
+R 0182 <accID>.l <charactorID>.l <髪型>.w <髪の色>.w <性別?>.w <job>.w <lvl?>.w <上納経験値>.l <online>.l <Position>.l ?.50B <nick>.24B
+
+S 0183 <guild_id>.l <type>.l
+ ギルド関係解消
+R 0184 <guild_id>.l <type>.l
+ ギルド関係解消通知
+R 0185 <flag>.l <guild_id>.l <guild_name>.24B
+ ギルド関係追加 flag=0 同盟/ 1 敵対
+R 0187 <account ID>.l
+ alive信号?
+R 0188 <fail?>.w <index>.w <val>.w
+ 武器精錬。結果+val武器に
+R 0189 <fail?>.w
+ 謎。テレポ(ワープポータルmemo)失敗?
+ 1 memo禁止地域
+S 018a ?.w
+ ゲーム終了
+R 018b <fail>.w
+ ゲーム終了/キャラセレ応答。fail=0成功。fail=1失敗?
+R 018C <MonsID>.w <等級>.w <大小>.w <生命値>.w <?>.w <防御力>.w <種族>.w <魔法防御力>.w <属性>.w <魔法相性属性>.9b
+ wizの敵のセンス結果
+ 0 小型
+ 1 中型
+ 2 大型
+R 018d <length>.w { <ItemID>,w ?.w <CharID?>.l }.8B*
+ 製造可能アイテムリスト表示(?の部分は0012固定)
+S 018e <MakeItemID>.w <slot1ItemID>.w <slot2ItemID>,w <slot3.ItemID>.w
+ 製造アイテムの選択
+R 018f <flag>.w [00] <MakeItemID>.w
+ 製造結果(flag = 00なら成功 01なら失敗)
+S 0190 <skill lv>.w <skill code>.w <x & y>.l <message>.80b
+ メッセージ(トーキーボックス)
+R 0191 <ID>.l <message>.80B
+ トーキーボックスのメッセージ
+R 0192 <x & y>.l <type>.w <mapname>.16b
+ アイスウォール等による地形属性変化
+S 0193 <ID>.l
+ ギルドメンバ名前引き?
+R 0194 <ID>.l <nick>.24B
+ ギルドメンバ名前引き応答?
+R 0195 <ID>.l <nick>.24B <party name>.24B <guild name>.24B <class name>.24B
+ ギルド所属PCの場合の0094返答
+R 0196 <type>.w <ID>.l
+ 増強系スキル使用時のメッセージ色々。IDはtargetと思われるが自分相手のみしか来ない?
+ type=00 2HQ付与「攻撃速度が増加しました。」
+ type=01 2HQ解除「攻撃速度が減少しました。」
+ type=02 IMPOSITIO付与「武器の攻撃力が増加しました。」
+ type=03 IMPOSITIO解除「武器の攻撃力が減少しました。」
+ type=04 「スキル使用ディレイが減少しました。」
+ type=05 「スキル使用ディレイが元に戻りました。」
+ type=06 「武器に毒属性が付与されました。」
+ type=07 ASPERSIO付与「武器に聖属性が付与されました。」
+ type=08 ASPERSIO解除「武器の属性が元に戻りました。」
+ type=09 「防具に聖属性が付与されました。」
+ type=0a 「防具の属性が元に戻りました。」
+ type=0b KYRIE付与「バリア状態になりました。」
+ type=0c KYRIE解除「バリア状態が解除されました。」
+ type=0d 「ウェポンパーフェクションモードになりました。」
+ type=0e 「ウェポンパーフェクションモードが解除されました。」
+ type=0f 「オーバートラストモードになりました。」
+ type=10 「オーバートラストモードが解除されました。」
+ type=11 「マキシマイズパワーモードになりました。」
+ type=12 「マキシマイズパワーモードが解除されました。」
+R 0196 <type>.w <ID>.l <switch>.b (コモド以降)
+ switch=0で解除,1で付加
+ type=00 プロボック
+ type=01 インデュア
+ type=02 「攻撃速度が増加しました。」(2HQ)
+ type=03 集中力向上
+ type=04 ハイディング
+ type=05 クローキング
+ type=06 「武器に毒属性が付与されました。」(エンチャントポイズン)
+ type=07 「毒を反射できる状態になりました。」(ポイズンリアクト)
+ type=08 「クァグマイア状態になり、・・・」
+ type=09 「エンジェラス状態になり、・・・」
+ type=0a ブレッシング
+ type=0b シグナムクルシス
+ type=0c 「速さが増加しました」(速度増加)
+ type=0d 「速さが減少しました」(速度減少)
+ type=0e 「スローポイズン状態になりました」(スローポイズン)
+ type=0f 「武器の攻撃力が増加しました」(インポシティオマヌス)
+ type=10 「スキル使用ディレイが減少しました」(サフラギウム)
+ type=11 「武器に聖属性が付与されました」(アスペルシオ)
+ type=12 「防具に聖属性が付与されました」(聖体降臨)
+ type=13 「バリア状態になりました」(キリエエレイソン)
+ type=14 「マグニフィカート状態になりました」
+ type=15 「グロリア状態になりました」
+ type=16 「レックスエーテルナ状態になりました」
+ type=17 「アドレナリンラッシュ状態になりました」
+ type=18 「ウェポンパーフェクションモードになりました」
+ type=19 「オーバートラストモードになりました」
+ type=1a 「マキシマイズパワーモードになりました」
+ type=1b ペコペコ騎乗
+ type=1c 鷹
+ type=1d 死んだふり
+ type=1e 「叫びました」(ラウドボイス)
+ type=1f 「エナジーコート状態になりました」
+ type=20 「防具が壊れました」
+ type=21 「武器が壊れました」
+ type=22 謎(目のアップというアイコン:盲目??)
+ type=23 重量50%超え
+ type=24 重量90%超え
+ type=25 謎「攻撃速度が増加しました」(x2アイコン:速度系ポーション?)
+ type=26 謎「攻撃速度が増加しました」(x2アイコン:速度系ポーション?)
+ type=27 謎「攻撃速度が増加しました」(x2アイコン:速度系ポーション?)
+ type=28 (未使用っぽい?:不可と解除で効果が違う)
+ type=29 謎「速さが増加しました」(白いアイコン)
+ type=32 ストリップウエポン
+ type=33 ストリップシールド
+ type=34 ストリップアーマー
+ type=35 ストリップヘルム
+ type=36 ケミカルウェポンチャージ
+ type=37 ケミカルシールドチャージ
+ type=38 ケミカルアーマーチャージ
+ type=39 ケミカルヘルムチャージ
+ type=3a オートガード
+ type=3b リフレクトシールド
+ type=3d プロヴィデンス
+ type=3e ディフェンダー
+ type=41 オートスペル
+ type=44 スピアクィッケン
+ type=56 爆裂波動(アイコンは表示されません。)
+ type=57 金剛(表示はされないが金剛の解除はされるようです。)
+ type=59 コンボディレイ
+ type=5a フレイムランチャー
+ type=5b フロストウェポン
+ type=5c ライトニングローダー
+ type=5d サイズミックウェポン
+
+S 0197 <type>.w
+ type=0 /resetstate
+ type=1 /resetskill
+ 効能は無し?
+R 0199 <type>.w
+ type=1 pvpモード開始?
+ type=3 gvgモード開始?
+R 019a <ID>.l <rank>.l <num>.l
+ pvp順位 rank/num
+R 019b <ID>.l <type>.l
+ 他人のlvupや武器精錬等の表示?
+ type=0 base lvup?
+ type=1 job lvup?
+ type=2 武器精錬失敗
+ type=3 武器精錬成功
+
+R 019d <?>.4B
+ GMコマンド/hide
+
+S 0149 <ID>.l <type>.B <time>.w
+ GM用右クリックメニュー「チャット禁止時間を下げる(解ける)」使用 → type=00
+ GM用右クリックメニュー「チャット禁止時間を上げる(掛ける)」使用 → type=01
+ timeは分単位です(確か
+
+R 019e
+ 捕獲モンスター決め
+S 019f <ID>.l
+ 捕獲モンスター指定
+R 01a0 <fail>.B
+ 捕獲判定
+ fail=01で成功、00で失敗
+S 01a1 <param>.1B
+ <param>
+ 0x00:ペット状態表示
+ 0x01:餌を与える
+ 0x02:パフォーマンス
+ 0x03:卵に戻す
+ 0x04:アクセサリ解除
+R 01a2 <pet name>.24B <name flag>.B <lv>.w <hungry>.w <friendly>.w <accessory>.w
+ ペットの状態
+ name flag:00=名前未設定 01=名前設定済み(変更不可)
+ lv=ペットのレベル、hungry=満腹度(0~100)、friendly=親密度(初期値250?)、accessory=アクセサリのItemID
+R 01a3 <fail>.B <itemID>.w
+ <fail>
+ 0x00:餌やり失敗
+ 0x01:餌やり成功
+R 01a4 <type>.B <ID>.l <val>.l
+ ペット関連通知
+ type=00,val=00 ペット孵化時に送られてくる。ペット認識用?
+ type=01 親密度変化
+ type=02 満腹度変化
+ type=03 アクセサリ変化(0で未装備)
+ type=04 パフォーマンス 確認されたval=1~3
+ (4はスペシャルパフォーマンス?)
+ type=05 ?確認されたval=0x14
+S 01a5 <pet name>.24B
+ ペットの名前決め
+R 01a6 <len>.w <index>.w*
+ ペットの卵リスト
+S 01a7 <index>.w
+ ペットの卵リストが選択された
+S 01a9 <emotion>.l
+ ペットエモーション送信
+R 01aa <ID>.l <emotion>.l
+ ペットエモーション受信
+ <emotion>
+ 33以下のとき:エモーション
+ 34以上のとき:発言テーブル?
+R 01ac <object id>.l
+ アンクルの発動(≠設置)時のみ毎回出現(機能は謎)
+R 01ad <len>.l <item>.w
+ 矢作りの作成可能ITEM表受信
+S 01ae <itemID>.w
+ 矢作りで使う材料送信
+S 01af <type>.w
+ チェンジカート(カート選択)
+ type=1 ノーマルカート
+R 01b0 <monster id>.l <?>.b <new monster code>.l
+ 油のクラスチェンジ
+ <new monster code>はチェンジ後のコード(1001〜)をdwordで
+S 01b2 <len>.w <message>.80B <flag>.B {<index>.w <amount>.w <value>.l}.8B*
+ 露店開設
+ flag : 0=キャンセル , 1=オープン
+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 <上納ポイント>.l <性向F-V>.l <性向R-W>.l <members>.l <guild name>.24B <guild master>.24B <agit?>.20B
+ ギルド情報
+R 01b9 <ID>.I
+ 被ダメ等によるIDの詠唱中断
+R 01c4 <index>.w <amount>.l <itemID>.w <item data>.12B
+ カプラ倉庫アイテム
+R 01c8 <index>.w <item ID>.w <ID>.l <amount left>.w <type>.B
+ アイテム使用応答。(00a8の上位バーション?)
+ type=00の場合使用失敗? amountもゴミの模様
+ type=01の場合成功で、amountは使用後の残り個数
+R 01c9 <dst ID>.l <src ID>.l <X>.w <Y>.w <type>.B <fail>.B ?.81b
+ スキル効能地作成(011fの上位バーション?)
+ type 0x7e:SW、0x7f:火壁、0x80 ポタ開き中、0x81 ポタ開き直前
+ 0x82 聖体、0x83 サンク、0x84 マグヌス、0x85 ニューマ
+ 0x86 0x86 大魔法(SG/MS/LoV/GX)、0x87 ファイヤーピラ待機
+ 0x88 ファイヤーピラ爆発、0x87〜0x8B 表示無し、
+ 0x8c トーキーボックス(発動中)、0x8D アイスウォール
+ 0x8E クワグマイア、0x8f ブラストマイン、0x90 スキッド
+ 0x91 アンクル、0x92 ベノムダスト、0x93 ランドマイン
+ 0x94 ショックウェーブトラップ、0x95 サンドマン
+ 0x96 フラッシャー、0x97 フリージングトラップ
+ 0x98 クレイモアートラップ、0x99 トーキーボックス
+ 0x9A ボルケーノ、0x9B デリュージ、0x9C バイオレントゲイル
+ 0x9D ランドプロテクター、0x9E Zenyマーク、0x9F Zeny袋
+ 0xA0 回る緑の輪、0xA1 ピンクの音符 (二連符有り
+ 0xA2 真ん中に点のある光の玉、0xA3 ピンクのスプリング
+ 0xA4 深淵の中に、0xA5 回る青い輪、0xA6 不協和音
+ 0xA7 口笛、0xA8 夕陽のアサシンクロス、0xA9 ブラギの詩
+ 0xAA イドゥンの林檎、0xAB 自分勝手なダンス、0xAC ハミング
+ 0xAD 私を忘れないで…、0xAE サービスフォーユー
+ 0xAF ピンクのスプリング、0xB0 表示無し
+ 0xB0 グラフィティ,
+ 0xB1 デモンストレーション、0xB2〜0xBF 表示無し
+ 0xB2 ピンクのワープポータル風
+ 0xB3 小さな十字架がふよふよ
+ 0xB4 バジリカ、0xB5 エフェクトなし?
+ 0xB6 黒い×が立体的に浮かび上がる
+ 0xB7 クモの巣、0xB8〜 エフェクトなし?
+
+ 他情報求む
+ ?.81bは謎。
+R 01cd (<sid>.l)x7
+ オートスペル選択肢受信
+ <sid>x7 には NB,CB,FB,LB,SS,FBL,FD の順でスキルコードがdwordで入る
+ まだ選択できないスキルの部分は <sid> = 0x00000000 が入る
+S 01ce <sid>.l
+ オートスペル選択肢送信
+R 01cf <crusader id>.l <target id>.l <?>.18b
+ 献身状態ターゲットON/OFF。献身が切れると <target id> が 0x00000000 になる
+
+R 01d0 <ID>.l <num>.w
+ <num> : 気功の数(非Lv)
+R 01d1 <monk id>.l <target monster id>.l <bool>.l
+ 白羽取り状態ON/OFF。<bool> は白刃取り成立時に 0x00000001 解除時に 0x00000000 が来る
+R 01d2 <id>.l <delay>.l
+ モンクのコンボディレイ(msec)
+ 三段・連打は基本ディレイ1000(+300)、猛龍は基本ディレイ700(+300)
+R 01d4 <ID>.l
+ 文字列入力窓表示(IDはNPCのIDが入る)
+S 01d5 <len>.w <ID>.l <input>.?B 00
+ 文字列入力内容送信(IDはNPCのIDが入る)
+R 01d7 <ID>.l <equip point>.b <item id1>.w <item id2>.w
+ 装備グラフィック <equip point> は 02手と09足のみ確認。id2は左手
+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
+ マップロード時&移動時用、向き付き用キャラ情報?(0078の上位バージョン)
+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
+ テレポ等の表示範囲内沸きキャラ用、向き付き無しキャラ情報?(0079の上位バージョン)
+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
+ 表示範囲内キャラ移動情報(007bの上位バージョン)
+S 01db
+ 暗号化key要求
+R 01dc <len>.w <key>.?B
+ 暗号化key送付
+S 01dd <version>.l <account name>.24B <md5 binary>.16B <version2>.1B
+ id&暗号化済みpass送信
+ 順にクライアントが01dbを送る、
+ 鯖が01dcでkeyを返す、
+ クライアントが"<key><password>"についてmd5計算し
+ <md5 binary>の所を埋めて01ddを送る。
+ <passwordencrypt2>の時は
+ "<key><password>"に対してmd5計算としている所を
+ "<password><key>"と変更する
+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
+ 攻撃系スキルエフェクト@(0114の上位バーション?)
+ type=04 火壁で観測 type=06とほぼ同じ?
+ type=05 NB/FBlの分散したダメージ用?
+ type=06 単発もの? param1はダメージ合計、param2はlevel、param3は1固定と予想
+ type=07 ダメージ表示無し?
+ type=08 連打もの? param1はダメージ合計、param2はlevel、param3は分割数と予想
+ type=09 ダメージモーションなしにダメージだけ表示される物(インデュア)と思ったのだがダメージモーションが出る物。(機能は謎)
+S 01df <ID>.|
+ GM右クリックによるIDのチャット禁止回数参照?
+R 01e1 <ID>.l <num>.w
+ <num> : 気功の数(非Lv) 一度表示したら後どんなnumが来ても無視される。
+R 01e6 <partner name>.24B
+ 結婚スキルあなたに逢いたい使用時の叫び声
+S 01e7
+ スパノビで/doridoriしたら飛んでくる。SPR回復量2倍フラグを立てるパケット
+S 01e8 <party name>.24B <item1>B <item2>B
+ <item1>アイテム収集方法。0で個人別、1でパーティ公有
+ <item2>アイテム分配方法。0で個人別、1でパーティに均等分配
+ (00f9の上位バーション)
+R 01ea <ID>.l
+ 結婚エフェクト(音楽、紙吹雪)
+ IDは新婦のものが入る?
+S 01ed
+ スパノビが爆裂波動になるフラグを立てるパケット
+R 01ee <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B <card>.4w}.18B*
+ 所有消耗品&収集品リスト
+ 矢の場合は?.2Bが0x8000になる
+ 00a3から変更
+R 01ef <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B <card>.4w}.18B*
+ カート内アイテム。消耗品/収集品
+ 0123から変更
+R 01f0 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B <card>.4w}.18B*
+ カプラさんに預けてある消耗品&収集品リスト
+ 00a5から変更
+R 01f4 <name>.24B <trade id?>.L <LV>.w
+ 先方から取引要請
+ 00e5から変更
+R 01f5 <result>.B <trade id?>.L <LV>.w
+ こちらからの取引要請に対する反応
+ 00e7から変更
+S 0200 <login name>.24B
+ ragexeに/accountオプションをつけて起動するとログイン要求に付加されるパケット
+S 0204 <?>.16B
+ ログイン要求に付加されるパケット。16バイトは固定?
+S 020B <?>.17B
+ キャラクタサーバ接続要求0065に付加されるパケット。1+0204の16バイトで17バイト?
diff --git a/doc/conf_ref.txt b/doc/conf_ref.txt new file mode 100644 index 000000000..88886d055 --- /dev/null +++ b/doc/conf_ref.txt @@ -0,0 +1,1981 @@ +==========================================================================
+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 A setup of map-server (setup of a special rule etc.)
+ 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 誰..............
+ 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からみた、このサーバーが担当するマップのワールドを管理する
+ char-serverのIPです。
+
+char_port
+ マップを登録するchar-serverのポートです。省略可能でデフォルトは6121です。
+
+map_ip
+ クライアントから見たこのmap-serverのIPです。
+
+map_port
+ map-serverで使用するポートです。省略可能でデフォルトは5121です。
+
+autosave_time
+ データを自動的にキャラ鯖に送る時間です。単位は秒です。
+ 省略可能でデフォルトは60(1分)です。
+
+water_height
+ 水場の高さを指定するファイルを決めます。
+ 省略可能で、デフォルトはconf/water_height.txtです。
+
+motd_txt
+ Message of the Dayファイルを指定します。
+ 省略可能で、デフォルトはconf/motd.txtです。
+
+help_txt
+ @helpで表示するファイルを指定します。
+ 省略可能で、デフォルトはconf/help.txtです。
+
+mapreg_txt
+ MAPサーバー内キャラクター共有変数を保存するファイルを指定します。
+ 省略可能で、デフォルトはsave/mapreg_txtです。
+
+data_grf
+ ROデータファイル data.grf へのパスです。
+ 省略可能で、デフォルトは ./data.grf です。
+ grf-files.txtがある場合そちらの設定が優先されます。
+
+sdata_grf
+ サクライデータファイル sdata.grf へのパスです。
+ 省略可能で、デフォルトは ./sdata.grf です。
+ grf-files.txtがある場合そちらの設定が優先されます。
+
+adata_grf
+ αデータファイル adata.grf へのパスです。
+ 省略可能で、デフォルトは ./adata.grf です。
+ grf-files.txtがある場合そちらの設定が優先されます。
+
+npc
+ 読み込むnpcデータファイルへのパスです。
+ 複数指定可能で、指定した順にロードします。
+ clear を指定するとそれまでに登録したパスを全て削除します。
+
+delnpc
+ 読み込まないnpcファイルへのパスです。
+ 指定したパスはnpcで指定されたデータファイルリストから削除されます。
+ all を指定すると全て削除します( npc: clear と同義)。
+
+map
+ このマップが担当するマップファイル名です。
+ 複数指定可能で、指定した順にロードします。
+ 存在しないマップを指定した場合エラーになります。
+ clear を指定するとそれまでに登録したファイル名を全て削除します。
+
+delmap
+ 読み込まないマップファイルへのパスです。
+ 指定したファイルはmapで指定されたリストから削除されます。
+ all を指定すると全て削除します( map: clear と同義)。
+
+import
+ その行を別ファイルの中身と置き換えます。
+
+< 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
+(npc、mapは多いので省略)
+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
+ ワープポイントを普通に表示するかどうかです。これをyesにすると
+ ワープポイントのかわりにギルドフラグがその場所に出てワープ
+ ポイントの名前を確認することができます。デフォルトはnoです。
+
+enemy_critical
+ プレイヤーと同じLUKによるクリティカル判定をMOBとペットに有効にするかどうかです。
+ このクリティカルはもちろん必中なので、onにすると高Fleeでも、
+ LUKの高い敵の攻撃が避けづらくなります。デフォルトはnoです。
+
+enemy_critical_rate
+ モンスターとペットのクリティカル頻度の百分率です。enemy_criticalがyesじゃないと設定しても何の意味もありません。デフォルトは100です。
+
+enemy_str
+ モンスターのが攻撃するときのATK計算にSTRを使用するかどうかです。
+ デフォルトはyesです。
+
+enemy_perfect_flee
+ 敵が完全回避をするかどうかです。これをyesにすると敵も完全回避を
+ するようになります。デフォルトはnoです。
+
+casting_rate
+ スキルの詠唱時間を百分率で調整します。
+ 200にすると詠唱時間が倍になり、0にすると詠唱がなくなります。
+ 0-1000程度の数値を指定してください。デフォルトは100です。
+
+delay_rate
+ スキル使用後ディレイを百分率で調整します。
+ 200にするとディレイが倍になり、0にするとディレイがなくなります。
+ 0-1000程度の数値を指定してください。デフォルトは100です。
+
+delay_dependon_dex
+ スキル使用後ディレイが詠唱時間と同じようにDEXで影響を受けるかどうかを
+ 指定します。デフォルトはnoです。
+
+skill_delay_attack_enable
+ スキルディレイの間攻撃できるかどうかです。yesにすればスキルディレイの間スキルは使えないけど攻撃はできます。
+ デフォルトはnoです。
+
+left_cardfix_to_right
+ 二刀流の左手武器の種族、属性、Sizeのダメージ補正を右手武器に適用するかどうかです。これをyesにすると左手武器には種族、属性、Sizeのダメージ補正が掛からなくなります。デフォルトはnoです。
+
+player_skill_add_range
+ プレイヤーのスキル射程から敵が離れた時どれぐらいの距離までスキルを使用可能にするかを決めます。スキルの射程+player_skill_add_rangeまでスキルが届きます。デフォルトは0ですが少しは入れた方がいいです。
+
+skill_out_range_consume
+ スキルの射程から敵が離れてスキルが失敗した時SPやアイテムを消耗するかどうかです。デフォルトはyesです。
+
+monster_skill_add_range
+ モンスターのスキル射程から敵が離れた時どれぐらいの距離までスキルを使用可能にするかを決めます。スキルの射程+monster_skill_add_rangeまでスキルが届きます。デフォルトは0です。
+
+player_damage_delay
+ プレイヤーキャラがダメージを受けた時移動できないディレイを入れるかどうかです。
+ yesにするとインデュアでも使わない限りダメージを受けた時
+ しばらくは動きません。デフォルトはyesです。
+
+player_damage_delay_rate
+ プレイヤーキャラがダメージを受けた時移動できないディレイを百分率で調整します。
+ 200にするとディレイが倍になり、0にするとディレイがなくなります。
+ player_damage_delayがyesにしてないと意味がありません。
+ デフォルトは100です。
+
+defunit_not_enemy
+ 防御ユニット(セイフティウォール/ニューマなど)がMOBに効果を
+ 及ぼさないようにするかどうかです。デフォルトはyesです。
+
+random_monster_checklv
+ モンスター召還アイテムを使ったときに自分よりLVの高いモンスターを召還するかどうかです。
+ yesにすると、自分よりLVの高いモンスターを召還しないようになります。
+ デフォルトはyesです。
+
+attribute_recover
+ 属性によって攻撃されても回復するかどうかです。noの場合は-属性を
+ 0にします。デフォルトはyesです。
+
+item_auto_get
+ アイテム自動取得機能を使用するかどうかです。
+ yesにするとアイテムドロップをモンスターに一番多くダメージを与えたキャラが
+ 自動でアイテムを取得するようになります。
+ デフォルトはnoです。
+
+flooritem_lifetime
+ 床に落ちたアイテムが消えるまでかかる時間です。単位はms(ミリ秒)です。
+ デフォルトは60000(60秒)で最小は1000(1秒)です。1000未満ならデフォルトにセットされます。
+
+item_first_get_time
+ モンスターに一番ダメージを多く与えたキャラ以外がそのモンスターの
+ ドロップアイテムを取れるようになるまでの時間です。
+ 単位はms(ミリ秒)です。デフォルトは10000(10秒)です。
+
+item_second_get_time
+ item_first_get_timeの後モンスターに二番目にダメージを多く与えた
+ キャラ以外がそのモンスターのドロップアイテムを取れるようになるまでの
+ 時間です。単位はms(ミリ秒)です。デフォルトは7000(7秒)です。
+
+item_third_get_time
+ item_second_get_timeの後モンスターに三番目にダメージを多く与えた
+ ャラ以外がそのモンスターのドロップアイテムを取れるようになるまでの
+ 時間です。単位はms(ミリ秒)です。デフォルトは5000(5秒)です。
+
+mvp_item_first_get_time
+ モンスターに一番ダメージを多く与えたキャラ以外がそのモンスターの
+ MVPアイテムを取れるようになるまでの時間です。
+ 単位はms(ミリ秒)です。デフォルトは10000(10秒)です。
+
+mvp_item_second_get_time
+ mvp_item_first_get_timeの後モンスターに二番目にダメージを多く与えた
+ キャラ以外がそのモンスターのMVPアイテムを取れるようになるまでの
+ 時間です。単位はms(ミリ秒)です。デフォルトは10000(10秒)です。
+
+mvp_item_third_get_time
+ mvp_item_second_get_timeの後モンスターに三番目にダメージを多く与えた
+ キャラ以外がそのモンスターのMVPアイテムを取れるようになるまでの
+ 時間です。単位はms(ミリ秒)です。デフォルトは2000(2秒)です。
+
+item_rate
+ アイテムドロップ率を百分率で調整します。
+ 0-1000程度の数値を指定してください。デフォルトは100です。
+
+drop_rate0item
+ 落下確率0のアイテム(一部モンスターにおけるリンゴ)を落下するかどうかの設定です。
+ デフォルトはnoです。
+
+base_exp_rate
+ BaseEXPの所得倍率を百分率で調整します。
+ 0-1000程度の数値を指定してください。デフォルトは100です。
+
+job_exp_rate
+ JobEXPの所得倍率を百分率で調整します。
+ 0-1000程度の数値を指定してください。デフォルトは100です。
+
+death_penalty_type
+ デスペナルティのタイプを決定します。
+ 0で死んだ後リスタートする時に適用で持っているEXPの量から比率の分を減らす仕様、1で死んだ直後に適用で持っているEXPの量から比率の分を減らす仕様です。
+ 2で死んだ後リスタートする時に適用で次のレベルアップまでのEXPから比率の分を減らす仕様、3で死んだ直後に適用で次のレベルアップまでのEXPから比率の分を減らす仕様です。
+ デフォルトは0です。
+
+death_penalty_base
+ デスペナルティによるBASE経験値減少率を百分率で調整します。
+ あまり低すぎる値を使うと減りません。単位は0.01%です。
+ デフォルトは0です。
+
+death_penalty_job
+ デスペナルティによるJOB経験値減少率を百分率で調整します。
+ あまり低すぎる値を使うと減りません。単位は0.01%です。
+ デフォルトは0です。
+
+zeny_penalty
+ 死んだ時無くなるゼニ量の比率です。単位は0.01%です。死んだ時
+ 減るわけではなく死んだ後セーヴポイントに戻る時適用されます。
+ デフォルトは0です。
+
+restart_hp_rate
+ リスタートする時に回復するHP比率を百分率で調整します。単位は%です。
+ デフォルトは0です。0の場合1回復になります。
+
+restart_sp_rate
+ リスタートする時に回復するSP比率を百分率で調整します。単位は%です。
+ デフォルトは0です。0の場合は回復しません。
+ そしてSPが比率より高い場合も回復しません。
+
+mvp_hp_rate
+ MVP モンスターのHPを百分率で調整します。
+ 0-1000程度の数値を指定してください。デフォルトは100です。
+
+mvp_item_rate
+ MVPアイテムの所得倍率を百分率で調整します。
+ 0-1000程度の数値を指定してください。デフォルトは100です。
+
+mvp_exp_rate
+ MVP EXPの所得倍率を百分率で調整します。
+ 0-1000程度の数値を指定してください。デフォルトは100です。
+
+monster_hp_rate
+ MVP 以外のモンスターのHPを百分率で調整します。
+ 0-1000程度の数値を指定してください。デフォルトは100です。
+
+monster_max_aspd
+ モンスターの最大攻撃速度を設定します。
+ デフォルトは199です。最大は199で最小は100です。
+
+atcommand_gm_only
+ @コマンドをGM専用にするかどうかです。デフォルトはnoです。
+
+gm_all_skill
+ 全てのスキルを覚えられるようにするGMのレベルを設定します。
+ これを0以外にすると、そのGMレベル以上のGMはJOBやスキル所得条件に関係なく全スキルが覚えられます。(クェストスキルも含めて)
+ デフォルトは 0 です。0の場合はGMではない全てのキャラの意味ではなく全てのGMが全てのスキルを覚えられないと言うことです。
+
+gm_all_equipment
+ 全ての装備品を装備できるようにするGMのレベルを設定します。
+ これを0以外にすると、そのGMレベル以上のGMはJOBやレベル、性別に関係なく
+ 全装備品を装備できるようになります。ただし、クライアント側でエラーを
+ 起こす組み合わせもあると思います。デフォルトは 0 です。
+ 0の場合は全てのGMは通常プレイヤーと同じ判定が行われます。
+
+gm_skill_unconditional
+ 無条件にスキルを使用できるようにするGMのレベルを設定します。
+ これを0以外にすると、そのGMレベル以上のGMは装備武器や消費アイテムの有無
+ などに関係なく、そして何も消費することなくスキルを使用できるように
+ なります。判定処理を無視するので動作に不都合がでる可能性があります。
+ デフォルトは 0 です。 0の場合は全てのGMは通常プレイヤーと同じ判定が
+ 行われます。
+
+player_skillfree
+ スキルツリーに関係なくスキルを上げることができるかどうかです。
+ これをyesにすればプレイヤーの職業で習うことができるスキル全てを
+ スキルツリーに関係なく上げることができます。デフォルトはnoです。
+
+player_skillup_limit
+ スキルリセット等をした時スキルを制限なしに上げるかどうかです。
+ これをyesにすれば始めのスキルポイント9つはノービスで習うスキルにしか
+ 使えません。そしてその後の39は1次職業で習う物にだけ使えてその後の
+ ポイントは自由に使うことができます。デフォルトはnoです。
+
+weapon_produce_rate
+ 武器製造スキルでの製造成功率を百分率で調整します。
+ 0-1000程度の数値を指定してください。デフォルトは100です。
+
+potion_produce_rate
+ ポーション製造スキルでの製造成功率を百分率で調整します。
+ 0-1000程度の数値を指定してください。デフォルトは100です。
+
+monster_active_enable
+ 先攻モンスターを先攻にするかどうかです。これをnoにすると
+ 先攻モンスターが非先攻になります。デフォルトはyesです。
+
+monster_damage_delay_rate
+ モンスターがダメージを受けた時移動できないディレイを百分率で調整します。
+ 200にするとディレイが倍になり、0にするとディレイがなくなります。
+ デフォルトは100です。
+
+monster_loot_type
+ ルートモンスターの行動の仕方を指定します。
+ 0の場合はLOOTITEM_SIZEまでアイテムを食べてもまたアイテムを食べて、
+ 前のアイテムが消える仕様。1の場合はLOOTITEM_SIZEまでアイテムを食べると
+ もうアイテムを食べなくなる仕様。デフォルトは0です。
+
+mob_skill_use
+ MOBがスキルを使ってくるかどうかです。デフォルトはyesです。
+
+mob_count_rate
+ map_athena.confで指定されたnpcデータを読み込む際、
+ monsterで定義された配置MOBの数を百分率で調整します。
+ 例外として、配置数1として定義されたMOBの数は変わりません。(BOSS対策)
+ また、配置数を下方修正したとき、1未満になった場合は1として処理します。
+ 0-1000程度で指定してください。デフォルトは100です。
+
+quest_skill_learn
+ クェストスキルを普通に習得するかどうかです。
+ これをyesにするとクェストスキルが普通に表示されてスキルポイントを使って習得することができます。
+ デフォルトは noです。
+
+quest_skill_reset
+ スキルをリセットする時クェストスキルをリセットするかどうかです。
+ デフォルトはyesです。
+ noにしてもquest_skill_learnをyesにすればリセットされます。
+
+basic_skill_check
+ 座り、交換、パーティ結成、チャットルーム作り等の時基本スキルをチェックするかどうかです。
+ これをnoにすれば座り、交換等の基本スキルが必要な行動を基本スキルに関係なく使うことができます。
+ デフォルトは yesです。
+
+guild_emperium_check
+ ギルドを作る時エンペリウムを消費するかどうかです。これをnoにすれば
+ エンペリウムなしでもギルドが作れます。
+ デフォルトは yesです。
+
+guild_exp_limit
+ ギルドの役職に設定できる上納経験値の割合の上限を設定できます。
+ デフォルトは50(%)です。
+
+player_invincible_time
+ マップ移動やテレポート、復活した時の無敵時間を設定します。単囲は
+ ms(ミリ秒)。移動、攻撃行動、スキル使用、アイテム使用をするとこの
+ 時間はなくなる。(シーズモードでは時間を2倍にして適用)
+ デフォルトは5000(5秒)です。
+
+pet_catch_rate
+ ペットの捕獲倍率を百分率で設定します。
+ 0-1000程度の数値を指定してください。デフォルトは100です。
+pet_rename
+ ペットの名前を変更するかどうかを決めます。デフォルトはnoです。
+ yesは何度でも名前の変更が可能。noは一度変更するともう変更不可能になる。
+
+pet_friendly_rate
+ ペットに餌をあげた時上がる親密度の倍率です。
+ 親密度が減る場合は適用されません。デフォルトは100です。
+
+pet_hungry_delay_rate
+ ペットの腹が減る時間の倍率です。
+ 倍率が高いと腹が減り難くなります。デフォルトは100です。
+
+pet_hungry_friendly_decrease
+ ペットの腹が完全に減った時減る親密度の量です。デフォルトは5です。
+
+pet_str
+ ペットのATK計算にSTRを適用するかどうかです。
+ デフォルトはyesです。
+
+pet_status_support
+ ペットによるステータスボーナスを適用するかどうかです。yesにすると
+ ペットを持ってる時ペット毎に設定されているステータスボーナスが
+ 付きます。デフォルトはnoです。
+
+pet_attack_support
+pet_damage_support
+ 主人がモンスターにダメージを与えたとき、受けたときに
+ ペットが支援攻撃をするかどうかです。yesにするとペットの親密度が
+ きわめて親しいの時だけ支援攻撃をしてくれます。デフォルトはnoです。
+
+pet_support_rate
+ ペットの支援攻撃確率の倍率です。(100で通常、200で倍です)
+ 倍率が高いと支援攻撃よくしてくれるようになります。デフォルトは100です。
+
+pet_attack_exp_to_master
+ ペットが与えたダメージの分の経験値を主人が収得するかどうかです。
+ これをyesにするとペットの攻撃によるダメージも主人が与えた物になり
+ 主人が経験値を収得することができます。デフォルトはnoです。
+
+pet_attack_exp_rate
+ ペットが与えたダメージの分の経験値を主人が収得する時の倍率です。
+ デフォルトは100です。
+pet_lootitem
+ ペットがアイテムをルートするかどうかの設定です。
+ デフォルトはnoです。
+
+pet_weight
+ ペットにルートさせるときの重量制限です。
+ デフォルトは1000です。
+
+skill_min_damage
+ スキルを使った時ダメージが連打数より未満の場合全てミスになるか1ダメージになるかを決定します。
+ デフォルトはnoです。
+
+finger_offensive_type
+ スキル指弾の表示タイプを決定します。
+ 0は本サーバー仕様で1はアテナ仕様です。デフォルトは0です。
+
+heal_exp
+ スキル「ヒール」を使った際にもらえるジョブ経験値量の設定です。
+ 100で回復した量と同量になります。
+ モンスターの経験値を変更してない場合は5〜10程度が適当だと思われます。
+ デフォルトは0です。
+
+resurrection_exp
+ スキル「リザレクション」を使った際にもらえる経験値量の設定です。
+ 単位は0.01%です。復活したプレイヤーが持っている経験値 * レベル差/100 * resurrection_exp/10000 分の経験が貰えます。
+ デフォルトは0です。
+
+shop_exp
+ スキルディスカウントとオーバーチャージを習得してる場合NPC利用金額に応じたJOB経験値獲得倍率です。(100で通常、200で倍になります)
+ 計算式はln(代金*スキルレベル) * shop_exp / 100 で買う場合はディスカウントがある時のみ適用で売る場合オーバーチャージがある時のみ適用されます。
+ 計算式は適度に作った物です。
+ デフォルトは0です。
+
+combo_delay_rate
+ モンクのコンボディレイの時間の倍率です。(100で通常、200で倍になります。)
+ ただ注意するべきなのは高く設定するのがいいことではないことです。
+ コンボディレイが長いとコンボの繋ぎはよくなりますがその長くなった
+ 時間の間は行動できないからです。デフォルトは100です。
+
+item_check
+ アイテムのチェックを行うかどうかです。
+ ログイン時とマップ移動時に所持アイテムに不正アイテムがないかチェックします。
+ また@itemで不正アイテムを所得できなくします。
+ デバグやアイテムの確認を行うときなどはoffにしてください。
+ デフォルトはonです。
+
+wedding_modifydisplay
+ タキシードとウェディングドレスを表示するかどうかです。
+ 結婚キャラを表示したい場合はこれをyesにしてください。
+ デフォルトはnoです。
+
+natural_healhp_interval
+ HPが自動回復するまで掛かる時間です。単位はms(ミリ秒)です。
+ デフォルトは6000でNATURAL_HEAL_INTERVAL未満にすることはできません。
+
+natural_healsp_interval
+ SPが自動回復するまで掛かる時間です。単位はms(ミリ秒)です。
+ デフォルトは8000でNATURAL_HEAL_INTERVAL未満にすることはできません。
+
+natural_heal_skill_interval
+ スキルによって自動回復する場合掛かる時間です。単位はms(ミリ秒)です。
+ デフォルトは10000でNATURAL_HEAL_INTERVAL未満にすることはできません。
+
+natural_heal_weight_rate
+ 自動回復ができなくなる重量を設定します。単位は%です。
+ 最小は50で最大は101です。最大が101なのは重量が
+ natural_heal_weight_rate未満の時に自動回復するからです。(つまり101なら
+ いつでも自動回復できます。)
+ デフォルトは50です。
+
+item_name_override_grffile
+ アイテムの名前(英語以外の名前です。)を.grfファイルから読むかどうかです。
+ noにするとitem_db.txtの名前を使います。
+ デフォルトはyesです。
+
+arrow_decrement
+ 弓を使う時矢を消耗するかどうかです。これをnoにすると
+ 矢が消耗されません。(矢を装備する必要はあります。)
+ デフォルトはyesです。
+
+max_aspd
+ プレイヤーの最大攻撃速度を設定します。
+ デフォルトは199です。最大は199で最小は100です。
+
+max_hp
+ 最大HPを設定します。
+ デフォルトは32500です。最大は1000000で最小は100です。
+
+max_sp
+ 最大SPを設定します。
+ デフォルトは32500です。最大は1000000で最小は100です。
+
+max_parameter
+ プレイヤーの基本パラメータの最大値を設定します。
+ デフォルトは99です。最大は10000で最小は10です。
+ 基本パラメータ大きい過ぎるとクライアント落ちが起こるので
+ 適当な値を設定する方が良いです。
+
+max_cart_weight
+ カートの最大重量を設定します。
+ デフォルトは8000です。最大は1000000で最小は100です。
+
+player_skill_log
+ プレイヤーのスキル使用ログを表示するかどうかです。
+ デフォルトはnoです。
+
+monster_skill_log
+ モンスターのスキル使用ログを表示するかどうかです。
+ デフォルトはnoです。
+
+battle_log
+ 戦闘関係のログを表示するかどうかです。
+ デフォルトはnoです。
+
+save_log
+ キャラの保存に関するログを表示するかどうか
+ デフォルトはnoです。
+
+error_log
+ エラーログを表示するかどうかです。
+ デフォルトはyesです。
+
+etc_log
+ スキル、戦闘、キャラ保存、エラー以外のログを表示するかどうか
+ デフォルトはyesです。
+
+save_clothcolor
+ 服の色を保存するかどうか、有効にすると問題があるかもしれません。
+ デフォルトはnoです。
+
+undead_detect_type
+ アンデッドを認識する方法を設定します。0で属性のみ、1で種族のみ、
+ 2で属性と種族の両方のどちらでもあってる場合になります。
+ デフォルトは0です。
+
+player_auto_counter_type
+ プレイヤーのオートカウンターの仕様を設定します。0で100%クリティカル
+ でスキル反撃無し、1で防御無視、Hit+20、クリティカル率2倍でスキル反撃
+ 無し、2で100%クリティカルでスキル反撃有り、3で防御無視、Hit+20、
+ クリティカル率2倍でスキル反撃有りです。
+ デフォルトは1です。
+
+monster_auto_counter_type
+ モンスターのオートカウンターの仕様を設定します。0で100%クリティカル
+ でスキル反撃無し、1で防御無視、Hit+20、クリティカル率2倍でスキル反撃
+ 無し、2で100%クリティカルでスキル反撃有り、3で防御無視、Hit+20、
+ クリティカル率2倍でスキル反撃有りです。
+ デフォルトは1です。
+
+agi_penaly_type
+ agi_penaly_count以上の敵に攻撃された時のagiペナルティの仕様を設定します。
+ 0でなし、1でagi_penaly_num%ずつ減って、2でagi_penaly_numだけ減ります。
+ デフォルトは0です。
+
+agi_penaly_count
+ agiペナルティを適用する敵の数を設定します。
+ 2未満に設定することはできません。デフォルトは3です。
+
+agi_penaly_num
+ agiペナルティによって減る回避の量を設定します。
+ デフォルトは0です。
+
+vit_penaly_type
+ vit_penaly_count以上の敵に攻撃された時のvitペナルティの仕様を設定します。
+ 0でなし、1でvit_penaly_num%ずつ減って、2でvit_penaly_numだけ減ります。
+ (減るのはvitによる防御のみ)
+ デフォルトは0です。
+
+vit_penaly_count
+ vitペナルティを適用する敵の数を設定します。
+ 2未満に設定することはできません。デフォルトは3です。
+
+vit_penaly_num
+ vitペナルティによって減る回避の量を設定します。
+ デフォルトは0です。
+
+player_defense_type
+ プレイヤーが対象に攻撃する時のDEFの計算方法。0で本鯖仕様、1以上で減算(DEF*値)。
+
+monster_defense_type
+ モンスターが対象に攻撃する時のDEFの計算方法。0で本鯖仕様、1以上で減算(DEF*値)。
+
+pet_defense_type
+ ペットが対象に攻撃する時のDEFの計算方法。0で本鯖仕様、1以上で減算(DEF*値)。
+
+magic_defense_type
+ MDEFの計算方法。0で本鯖仕様、1以上で減算(MDEF*値)
+
+player_skill_reiteration
+ プレイヤーが使う一部の地面スキルの重ね置きを許可するかどうかです。
+ これをyesにするとSWやニューマ、トラップを重ねて置くことができます。
+ デフォルトはnoです。
+
+monster_skill_reiteration
+ モンスターが使う一部の地面スキルの重ね置きを許可するかどうかです。
+ これをyesにするとSWやニューマ、トラップを重ねて置くことができます。
+ デフォルトはnoです。
+
+player_skill_nofootset
+ プレイヤーが使う一部の地面スキルをプレイヤーやモンスターの足元に
+ 置くのを禁止するかどうかです。これをyesにするとスキルを設置する時その
+ 効果範囲にプレイヤーやモンスターがいるとスキルを置くことができません。
+ デフォルトはnoです。
+
+monster_skill_nofootset
+ モンスターが使う一部の地面スキルをプレイヤーやモンスターの足元に
+ 置くのを禁止するかどうかです。これをyesにするとスキルを設置する時その
+ 効果範囲にプレイヤーやモンスターがいるとスキルを置くことができません。
+ デフォルトはnoです。
+
+player_cloak_check_type
+ プレイヤークローキングの仕様を設定します。
+ 0は壁チェック有り、スキル使用と攻撃で解除される。
+ 1は壁チェック無し、スキル使用と攻撃で解除される。
+ 2はは壁チェック有り、スキル使用と攻撃で解除されない。
+ 2はは壁チェック無し、スキル使用と攻撃で解除されない。
+ デフォルトは0です。
+
+monster_cloak_check_type
+ モンスタークローキングの仕様を設定します。
+ 0は壁チェック有り、スキル使用と攻撃で解除される。
+ 1は壁チェック無し、スキル使用と攻撃で解除される。
+ 2はは壁チェック有り、スキル使用と攻撃で解除されない。
+ 2はは壁チェック無し、スキル使用と攻撃で解除されない。
+ デフォルトは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
+ 条件がskillusedのスキルをMOBがPCに使用するとき、その対象をスキル使用者にするかどうかです。
+ MOBスキル使用後にタゲは戻ります。デフォルトはnoです。
+
+player_attack_direction_change
+ プレイヤーが攻撃した時方向を変更するかどうかです。本鯖では動けない限り方向が変えらないのですがバグぽい仕様なのでデフォルトはyesです。
+ noにすれば動くことだけで方向が変えるようになります。
+
+monster_attack_direction_change
+ モンスターが攻撃した時方向を変更するかどうかです。本鯖では動けない限り方向が変えらないのですがバグぽい仕様なのでデフォルトはyesです。
+ noにすれば動くことだけで方向が変えるようになります。
+
+player_land_skill_limit
+ skill_db.txtで設定されている地面スキルの数制限をプレイヤーに
+ 適用するかどうかです。これをyesにすれば設定されている数以上は
+ 地面に設置することができなくなりますが数制限をどう変えても
+ MAX_SKILLUNITGROUPを越える数の設置はできません。
+ デフォルトはyesです。
+
+monster_land_skill_limit
+ skill_db.txtで設定されている地面スキルの数制限をモンスターに
+ 適用するかどうかです。これをyesにすれば設定されている数以上は
+ 地面に設置することができなくなりますが数制限をどう変えても
+ MAX_MOBSKILLUNITGROUPを越える数の設置はできません。
+ デフォルトはyesです。
+
+party_skill_penaly
+ 一部のパーティスキルを使用者とパーティでスキル効果が違うように
+ するかどうかです。これの影響を受けるスキルは今の所
+ アドレナリンラッシュ、ウエポンパーフェクション、オーバートラストのみです。
+ デフォルトはyesです。
+
+monster_class_change_full_recover
+ モンスターがメタモルフォーシスとトランスフォーメーション等によって
+ 他のモンスターに変わった時そのモンスターのHPを最大なで回復させるか
+ どうかです。これをyesにすると変わったモンスターの最大HPまで
+ 回復します。noなら変わる前のHPと最大HPの比率の分のHPになります。
+ デフォルトは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
+ チャット中のPCをワープポータルで飛ばせるかどうかです。
+ デフォルトはnoです。
+
+mob_warpportal
+ MOBをワープポータルで飛ばせるかどうかです。
+ デフォルトはnoです。
+
+dead_branch_active
+ 古木の枝などmonster命令でmobidを負数に指定した場合に召喚されるモンスターをアクティブにするかどうかです。
+ デフォルトはnoです。
+
+vending_max_value
+ 露店で置けるアイテム価格の最高値です。
+ デフォルトは10000000です。
+
+show_steal_in_same_party
+ スティール成功時、画面内のPTメンバー(自分含む)に
+ スティールしたアイテムの情報を公開するかどうかです。
+ デフォルトは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
+ GMアカウントのキャラクターを@コマンド等で表示の対象にするかどうかです。
+ デフォルトはnoです
+unit_movement_type
+ ユニット移動処理方法を選択します。
+ 0で本鯖仕様(回線負荷→重、鯖処理→軽)、1でAthena仕様(回線負荷→軽、鯖処理→重)
+ デフォルトは0(本鯖仕様)です
+invite_request_check
+ プレイヤーが各種要請中(PT加入、Guild加入、取引)に他の要請を受け入れるかどうかです。
+ yesで本鯖仕様、noでAthena仕様(受け入れない)
+ デフォルトはyes(受け入れる)です。
+skill_removetrap_type
+ リムーブトラップの仕様を選択します。
+ 0:本鯖仕様で罠1個を取得する
+ 1:Athena仕様で使ったアイテムを使った個数を取得する
+disp_experience
+ 経験値を表示するかどうかです。
+ yesにすると、敵を倒した時など経験値が入った時に本人にのみ表示されます。
+ デフォルトはnoです。
+
+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
+ その行を別ファイルの中身と置き換えます。
+
+< 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コマンド(/mm、/nb等)や@コマンドを使うことができるGMのレベルを設定する物です。
+ 設定は全て省略可能で、省略時はデフォルト値が利用されます。(デフォルトは0です。)
+
+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コマンド /nb、/b、/bb
+local_broadcast
+ GMコマンド /lb
+mapmove
+ GMコマンド /mm
+resetstate
+ GMコマンド /resetstate、/resetskill
+rura+
+ @コマンド @rura+
+rura
+ @コマンド @rura
+where
+ @コマンド @where
+jumpto
+ @コマンド @jumpto
+jump
+ @コマンド @jump
+who
+ @コマンド @who
+save
+ @コマンド @save
+load
+ @コマンド @load
+speed
+ @コマンド @speed
+storage
+ @コマンド @storage
+gstorage
+ @コマンド @gstorage
+option
+ @コマンド @option
+hide
+ GMコマンド /hideと@コマンド @hide
+jobchange
+ @コマンド @jobchange
+die
+ @コマンド @die
+kill
+ @コマンド @kill
+alive
+ @コマンド @alive
+kami
+ @コマンド @kami、@kamib
+heal
+ @コマンド @heal
+item
+ @コマンド @item、@item2
+itemreset
+ @コマンド @itemreset
+itemcheck
+ @コマンド @itemcheck
+lvup
+ @コマンド @lvup
+joblvup
+ @コマンド @joblvup
+help
+ @コマンド @help、@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
+ @コマンド @pvpoff
+pvpon
+ @コマンド @pvpon
+gvgoff
+ @コマンド @gvgoff
+gvgon
+ @コマンド @gvgon
+model
+ @コマンド @model
+go
+ @コマンド @go
+monster
+ @コマンド @monster
+killmonster
+ @コマンド @killmonster、@killmonster2
+refine
+ @コマンド @refine
+produce
+ @コマンド @produce
+memo
+ @コマンド @memo
+gat
+ @コマンド @gat
+packet
+ @コマンド @packet
+stpoint
+ @コマンド @stpoint
+skpoint
+ @コマンド @skpoint
+zeny
+ @コマンド @zeny
+param
+ @コマンド @str、@agi、@vit、@int、@dex、@luk
+guildlvup
+ @コマンド @guildlvup
+makeegg
+ @コマンド @makeegg
+petfriendly
+ @コマンド @petfriendly
+pethungry
+ @コマンド @pethungry
+petrename
+ @コマンド @petrename
+recall
+ @コマンド @recall
+charjob
+ @コマンド @charjob
+revive
+ @コマンド @revive
+charstats
+ @コマンド @charstats
+charoption
+ @コマンド @charoption
+charsave
+ @コマンド @charsave
+charload
+ @コマンド @charload
+night
+ @コマンド @night
+day
+ @コマンド @day
+doom
+ @コマンド @doom
+doommap
+ @コマンド @doommap
+raise
+ @コマンド @raise
+raisemap
+ @コマンド @raisemap
+charbaselvl
+ @コマンド @charbaselvl
+charjlvl
+ @コマンド @charjlvl
+kick
+ @コマンド @kickとGM右クリック命令「使用者強制終了」
+allskill
+ @コマンド @allskill
+questskill
+ @コマンド @questskill
+lostskill
+ @コマンド @lostskill
+spiritball
+ @コマンド @spiritball
+party
+ @コマンド @party
+guild
+ @コマンド @guild
+agitstart
+ @コマンド @agitstart
+agitend
+ @コマンド @agitend
+mapexit
+ @コマンド @mapexit
+idsearch
+ @コマンド @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
+ その行を別ファイルの中身と置き換えます。
+
+
+< 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軋is
+ 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 new file mode 100644 index 000000000..f556b0366 --- /dev/null +++ b/doc/coredump_report.txt @@ -0,0 +1,109 @@ +==========================================================================
+ サーバーが強制終了する場合のcoredumpによる詳細なバグ報告方法
+--------------------------------------------------------------------------
+
+< このファイルは何? >
+
+ Athena使用中にmap-server.exeなどが突然落ちた場合に、落ちたときのスタックの
+ バックトレースをを開発者に伝える方法を解説する。
+ バグ報告の時に併用すると開発者が喜ぶかもしれない。
+
+ ここでの「落ちる」はあくまでサーバーであり、クライアントではない。
+ またプロセスがcore(またはstackdump)を吐く現象のことであり、
+ 無限ループなどのプロセスは生きているがサーバーの機能は提供されない状態の
+ ことではない。
+
+
+--------------------------------------------------------------------------
+< 目次 >
+
+ * Cygwinでのstackdumpとcore
+ Cygwin上でcoreファイルを吐く方法を紹介する。
+
+ * coreファイルからスタックのバックトレースを得る
+ プログラムが吐いたcoreからバックトレースを得る方法を紹介する。
+
+ * 例
+ 実際にとったログの例を示す。
+
+
+--------------------------------------------------------------------------
+< Cygwinでのstackdumpとcore >
+
+ Cygwinでプログラムが強制終了する(アクセス違反などによるもの)場合、標準では
+ coreではなくstackdumpを吐く。これは全くといって良いほど役に立たないため、
+ stackdumpをコピペされても開発者はおそらく見ないだろう。
+
+ よって次の方法で、stackdumpではなくcoreを吐くようにする。
+ ** 環境変数に「error_start=dumper.exe」を追加する **
+
+ よくわからない場合、次のように作業するといい。(Win2000でのみ確認)
+ * デスクトップの「マイコンピュータ」を右クリックして「プロパティ」を出す。
+ * [詳細]タブを開き、[環境変数]ボタンをクリックする。
+ * ユーザー環境変数、システム環境変数のどちらか「CYGWIN」という変数がないか探す
+ * ある場合は、選択して[編集]ボタンを押し、[変数値]に「error_start=dumper.exe」
+ を追加する。既に何かの単語がある場合は、単語を区切るため、
+ 追加する部分の最初に半角スペースを入れることを忘れないこと。
+ * ない場合は、システム環境変数に(Administrator権限がないならユーザー環境変数)
+ の[新規]ボタンを押して、[変数名]に「CYGWIN」、辺数値に
+ 「error_start=dumper.exe」を入力する。
+ * OKを押してウィンドウを閉じ、Cygwinを起動しなおせばよい
+
+ こうしておくと、stackdumpの変わりにcoreを吐くようになる。
+ サイズが大きい場合、coreを吐くのには多少時間がかかる。
+ またcoreを吐いている間、dumper.exeというプログラムのウィンドウが表示される。
+
+
+--------------------------------------------------------------------------
+< coreファイルからスタックのバックトレースを得る >
+
+ coreを吐く場合、まず開発者はスタックのバックトレースを欲しがる。エラー個所を
+ 判断しやすいからだ。よって、gdbでバックトレースを取り出そう。
+ まず、次のようにしてgdbを起動する。ここではmap-server.exeを例に出す。
+ UNIX系OSではコアファイル名を修正する必要があるだろう。(「core」など)
+
+ $ gdb -c map-server.exe.core
+
+ なにやら色々英文が表示され、最後に (gdb) というプロンプトが出たはずだ。
+ この直前にエラーの起こった関数やファイル名などと、その内容が表示されている
+ はずなので、これはコピペすべきだ。
+
+ また、ここで「bt」と入力すると、スタックのバックトレースが表示される。
+ これもコピペするとよい。ただし、あまりにも長い場合は最初の十数行程度で
+ 十分だろう。
+
+ ちなみに、「p 変数名」のように入力すると変数を見たりも出来る。
+ 関連しそうな変数の値を色々表示して一緒にコピペすると開発者が喜ぶかもしれない。
+
+ gdbを終了する場合は、「q」と打ち込む。
+
+
+--------------------------------------------------------------------------
+< 例 >
+
+ 以下はmob.cのmob_warp()関数でわざとアクセス違反を起こしてとったログである。
+ エラーの場所、どういう順で呼び出されたかがわかるだろう。
+
+ もちろん、Athenaのパッチ番号の報告を忘れないこと。
+ パッチが違うと、ソースファイルが変わるので、行番号が役に立たなくなるためだ。
+
+ なお以下の例では、バックトレース以外に、
+ pコマンドを使って該当のMOBの名前(英語)と、マップの名前を表示している。
+ (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 new file mode 100644 index 000000000..fbdfad4d7 --- /dev/null +++ b/doc/db_ref.txt @@ -0,0 +1,147 @@ +==========================================================================
+ Athena dev 2.1.1 mod0659 現在のdbのリファレンス+α
+--------------------------------------------------------------------------
+
+< このファイルは何? >
+
+ Athenaのdbファイルの設定方法のリファレンスです。
+
+
+< dbのリスト >
+
+cast_db.txt スキルのキャスティング時間とディレイ、維持時間等を設定。
+skill_db.txt スキルのデータを設定。
+skill_require_db.txt スキル使用条件を設定。
+pet_db.txt ペットのデータを設定。
+
+
+==========================================================================
+1. db/cast_db.txt
+--------------------------------------------------------------------------
+
+id,cast_list,delay_list,upkeep_time,upkeep_time2
+
+id: スキルのIDです。
+cast_list: スキルのキャスティング時間を設定します。レベル別に設定する場合は「:」を使います。
+delay_list: スキルのディレイ時間を設定します。レベル別に設定する場合は「:」を使います。
+upkeep_time:スキルの維持時間を設定します。レベル別に設定する場合は「:」を使います。
+upkeep_time2:スキルによって起こる状態異常の維持時間を設定します。レベル別に設定する場合は「:」を使います。(ただ速度減少はupkeep_timeを使いますので注意してください。)
+
+※武器の追加効果による状態異常はMG_STONECURSE(石化)、MG_FROSTDIVER(凍結)、NPC_STUNATTACK(スタン)、NPC_SLEEPATTACK(睡眠)、TF_POISON(毒)、NPC_CURSEATTACK(呪い)、NPC_SILENCEATTACK(沈黙)、NPC_BLINDATTACK(暗黒)のupkeep_time2を使います。(レベルは7で適用)
+※急所攻撃の場合最大レベルは1ですがバッシュのレベルによって異常時間を変更できるので複数設定も可能です。
+※マキシマイズパワーとクローキングのupkeep_timeは維持時間ではなくSPが1減る時間です。
+
+
+==========================================================================
+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: スキルのIDです。
+range: スキルの射程距離です。レベル別に設定する場合は「:」を使います。-1はキャラの武器射程と同じと言う意味で-2ならキャラの武器射程+1、-3ならキャラの武器射程+2になります。
+hit: 連打なら8、単発なら6(スキルのヒット数じゃありません。)
+inf: スキル情報です。
+ 0-パッシブ、1-敵、2-場所、4-即時発動、16-味方、32-罠
+ 複数の物を入れると(数値を足して)正しく動作しません。
+pl: スキルの属性です。
+ 0-無 1-水 2-地 3-火 4-風 5-毒 6-聖 7-暗 8-念 9-不死
+nk: 付加 1効果 2吹き飛ばし
+MaxLv: スキルの最大レベルです。
+list_num: Hit回数のリストです。レベル別に設定する場合は「:」を使います。
+castcancel: スキルがキャンセルされるかどうかを設定します。yesはキャンセルされる物でnoはキャンセルされない物です。
+cast_defence_rate: キャスティング中に低下する防御力の比率です。ボウリングバッシュやクランドクロスのようにスキルキャスティング中に防御が減るスキルの設定に使います。
+inf2: スキル情報2です。1 - クェストスキル、2 - npc スキル、4-敵、8-場所、16-即時発動、32-味方、64-罠、128-PVPモードで自分を含む全ての物にダメージが入るスキル(地面スキルのみ)、256-普通の使用で自分に必ずダメージが入るスキル(地面スキルのみ)、512-自分には使うことができないスキル、1024 - 自分か自分のパーティにしか使えないスキル。2048 - 自分か自分のギルドにしか使えないスキル、同盟ギルドチェックは無し。(4、8、16、32、64は一部のアクティブスキルが使用。今は阿修羅覇鳳拳のみ使用。)
+maxcount: 地面スキルのみに適用される物でスキルを置ける最大数です。0は置けないと言う意味ではなく制限がない物と言う意味です。
+skill_type: スキルの種類を設定します。weaponは武器スキルでmagicは魔法スキル、miscは武器でも魔法でもないスキルです。noneは決め難しい物等に設定します。ただこれを変えたとしてもスキルのダメージ計算がこれに合わせて変わるわけではなくダメージの計算はプログラムレベルで行なっています。これはスペルブレイカーで詠唱中止されるかどうかを設定する為の物です。(他のスキルでこの設定を使用する可能性もありますが今の所スペルブレイカーのみです。) magicに設定するとスペルブレイカーで詠唱中止されます。
+blow_count: スキルよるノックバック距離です。レベル別に設定する場合は「:」を使います。
+
+
+==========================================================================
+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: スキルのIDです。
+list_hp: スキル使用で減るHPの量です。レベル別に設定する場合は「:」を使います。
+list_sp: スキル使用で減るSPの量です。レベル別に設定する場合は「:」を使います。
+list_hp_rate: スキル使用で減るHPの比率です。レベル別に設定する場合は「:」を使います。(最大HPの比率ではなく現在HPの比率です。)
+list_sp_rate: スキル使用で減るSPの比率です。レベル別に設定する場合は「:」を使います。(最大SPの比率ではなく現在SPの比率です。)
+list_zeny: スキル使用で減るゼニの量です。レベル別に設定する場合は「:」を使います。
+list_weapon: スキルを使うことができる武器を設定します。
+ 99 - 全ての武器、0 - 素手、1 - 短剣、2 - 片手剣、3 - 両手剣、4 - 片手槍、
+ 5 - 両手槍、6 - 片手斧、7 - 両手斧、8 - 片手鈍器、9 - 両手鈍器、10 - ロッド、
+ 11 - 弓、12 - ナックル、13 - 楽器、14 - 鞭、15 - 本、16 - カタール、
+ 17~22: 二刀流
+ 複数を設定する場合は「:」を使います。
+state:スキルを使用する為の条件を設定します。複数の設定はできません。
+ none - 条件無し
+ hiding - ハイディング状態
+ cloacking - クローキング状態。
+ hidden: ハイディングやクロッキング状態
+ riding: ペコペコに乗っている
+ falcon: 鷹を連れている
+ cart: カートを着けている
+ shield: シールドを持っている
+ sight: サイト状態
+ explosionspirits: 爆裂波動状態
+ recover_weight_rate: 自然回復できる重量
+ move_enable: スキル使用位置が移動可能な場所
+ water: 足元が水
+spiritball: スキル使用に必要な気弾の数です。レベル別に設定する場合は「:」を使います。
+itemid1: スキル使用に必要なアイテムのID、ポーションピッチャーの場合レベル別に使うことになるアイテムID
+amount1: スキル使用に必要なアイテムの数(数が0の場合アイテムのIDがあるとアイテムは減らないけど触媒としてそのアイテムを持っている必要があるようになります。) ポーションピッチャーの場合レベル別に使うことになるアイテム数
+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: モンスターIDです。
+Name: 英語名前(ダミー)
+JName: 名前
+ItemID: 捕獲用のアイテムID
+EggID: 卵のアイテムID
+AcceID: 装備アクセサリーのアイテムID
+FoodID: 餌のアイテムID
+Fullness: 1回の餌での満腹度増加率%
+HungryDelay: 満腹度が1%減る為にかかる時間(秒)
+R_Hungry: 空腹時餌やり親密度増加量
+R_Full: とても満腹時餌やり親密度減少量
+Intimate: 捕獲時親密度
+Die: 死亡時親密度減少量
+Capture: 捕獲率(万分率)
+Speed: 移動速度
+S_Performance: スペシャルパフォマンスがあるかどうか(1であり0でなし)
+talk_convert_class: 台詞を他のペットの物に変更。変更したいペットのモンスターIDを入れます。0の場合変更なしでマイナスを入れるとエモーション以外の物(台詞)は全て無視されます。
+attack_rate: 支援攻撃確率。(万分率) 主人が攻撃をしかけた場合。
+defence_attack_rate: 支援攻撃確率。(万分率) 主人が攻撃を受けた場合。
+change_target_rate: 攻撃目標を変更する確率。(万分率)
+pet_script: ペットを持っている時適用されるステータスボーナスを設定。
+
+
+
+==========================================================================
+EOF
+--------------------------------------------------------------------------
diff --git a/doc/effect_list.txt b/doc/effect_list.txt new file mode 100644 index 000000000..d8ec0cafb --- /dev/null +++ b/doc/effect_list.txt @@ -0,0 +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
diff --git a/doc/help.txt b/doc/help.txt new file mode 100644 index 000000000..f5e735fec --- /dev/null +++ b/doc/help.txt @@ -0,0 +1,453 @@ +GM Commands Help File
+By Akaru
+-----------------------
+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).
+
+<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 ---- デバッグ用(周辺gatを調べる)
+@packet ---- デバッグ用(パケット色々)
+
+@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)
diff --git a/doc/inter_server_packet.txt b/doc/inter_server_packet.txt new file mode 100644 index 000000000..a88694aa8 --- /dev/null +++ b/doc/inter_server_packet.txt @@ -0,0 +1,204 @@ +S map鯖=>inter鯖
+R inter鯖=>map鯖
+
+パケット長リスト
+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メッセージ送信要求
+R 3800 <len>.w <message>.?B
+ GMメッセージ
+S 3001 <len>.w <src-nick>.24B <dst-nick>.24B <message>.?B
+ Wis送信要求
+R 3801 <len>.w <wis-id>.l <src-nick>.24B <dst-nick>.24B <message>.?B
+ Wisデータ受信
+ wis-id=inter鯖内部のWis-id:map鯖では3002で送信するためだけに使う
+S 3002 <wis-id>.l <flag>.B
+ このmap鯖でのWisの送信結果
+ flag=0 送信完了(このmap鯖にいたので、送信した)
+ flag=1 送信失敗(このmap鯖にはそんな人いません)
+ flag=2 送信終了(このmap鯖にいるが、ignoreされている)
+R 3802 <src-nick>.24B <flag>.B
+ 全map鯖でのWis送信結果
+ flag=0 送信完了
+ flag=1 送信失敗(どのmap鯖にもそんな人いません)
+ flag=2 送信失敗(ignoreされた)
+S 3010 <account_id>.l
+ 倉庫データ要求
+R 3810 <len>.w <account_id>.l <storage>.?B
+ 倉庫データ受信
+S 3011 <len>.w <account_id>.l <storage>.?B
+ 倉庫データ送信&保存要求
+R 3811 <account_id>.l <flag>.b
+ 倉庫データ保存終了
+ flag=0 成功(現在の仕様では必ず0なので、返信を待たなくてもいい)
+
+S 3020 <account_id>.l <party_name>.24B <nick_name>.24B <map_name>.16B <level>.w
+ パーティ作成要求
+R 3820 <account_id>.l <fail>.B <party_id>.l <party_name>.24B
+ パーティ成功可否(自分のマップ鯖のみ)
+ fail=00 パーティ作成成功
+ fail=01 失敗(party_id,pary_nameはゴミ)
+S 3021 <party_id>.l
+ パーティ情報要求
+R 3821 <len>.w <struct party>.?B
+ (struct partyの最初4バイトはparty_id)
+ len=8 パーティは存在しない(受信したら該当キャラを未所属に変更する)
+ len>8 パーティ情報(受信したらクライアントに送ること)
+ (要求してきたマップ鯖へ)
+S 3022 <party_id>.l <account_id>.l <nick>.24B <map_name>.16B <level>.w
+ パーティ追加要求
+R 3822 <party_id>.l <account_id>.l <fail>.B
+ パーティ追加通知(要求してきたマップ鯖へ)
+ fail=00で成功、fail=01で失敗
+ (成功時はこの直後に全鯖にパーティ情報が送られる)
+S 3023 <party_id>.l <account_id>.l <exp>.w <item>.w
+ パーティ設定変更要求
+R 3823 <party_id>.l <account_id>.l <exp>.w <item>.w <fail>.B
+ パーティ設定変更通知(成功の場合全マップ鯖へ通知)
+ fail=0x00 パーティ設定変更完了
+ fail=0x01 expの変更失敗
+ fail=0x10 itemの変更失敗
+S 3024 <party_id>.l <account_id>.l
+ パーティ脱退要求
+R 3824 <party_id>.l <account_id>.l <nick>.24B
+ パーティ脱退通知(全マップ鯖へ)
+S 3025 <party_id>.l <account_id>.l <map_name>.16B <online>.B <level>.w
+ パーティマップ更新/オンライン要求
+R 3825 <party_id>.l <account_id>.l <map_name>.16B <online>.B <level>.w
+ パーティマップ更新通知(全マップ鯖へ)
+S 3026 <party_id>.l
+ パーティ解散要求(送られることはないと思われる)
+R 3026 <party_id>.l <fail>.B
+ パーティ解散
+ fail=00 パーティは解散された(今のところ必ず00)
+ (map鯖内の不要データ削除のためだけに使われる)
+S 3027 <len>.w <party_id>.l <account_id>.l <message>.?B
+ パーティ内発言要求
+R 3827 <len>.w <party_id>.l <account_id>.l <message>.?B
+ パーティ内発言通知(全マップ鯖へ)
+S 3028 <party_id>.l <account_id>.l <nick>.24B
+ 別パーティに所属していないかチェック<party_id>は本来の所属
+
+
+S 3030 <len>.w <account_id>.l <guild_name>.24B <struct guild_member>.?B
+ ギルド作成要求
+R 3830 <account_id>.l <guild_id>.l
+ ギルド作成可否(guild_id=0で失敗)
+S 3031 <guild_id>.l
+ ギルド情報要求
+R 3831 <len>.w <struct guild>.?B
+ ギルド情報
+ len=8 ギルドは存在しない
+ len>8 ギルド情報
+S 3032 <len>.w <guild_id>.l <struct guild_member>.?B
+ ギルドメンバ追加要求
+R 3832 <guild_id>.l <account_id>.l <charactor_id>.l <fail>.B
+ ギルド追加メンバ通知
+ fail=0で成功,1で失敗
+S 3034 <guild_id>.l <account_id>.l <charactor_id>.l <flag>.B <mes>.40B
+ ギルド脱退/追放要求
+ flag=0 脱退 / 1 追放
+R 3834 <guild_id>.l <account_id>.l <charactor_id>.l <flag>.B <mes>.40B <nick>.24B
+ ギルド脱退/追放通知
+S 3035 <guild_id>.l <account_id>.l <charactor_id>.l <online>.B <lv>.w <class>.w
+ ギルドメンバ情報更新要求
+R 3835 <guild_id>.l <account_id>.l <charactor_id>.l <online>.B <lv>.w <class>.w
+ ギルドメンバ情報更新通知
+S 3036 <guild_id>.l
+ ギルド解散要求
+R 3836 <guild_id>.l <fail>.B
+ ギルド解散通知
+ flag=00 解散成功 / 01 失敗
+S 3037 <len>.w <guild_id>.l <account_id>.l <message>.?B
+ ギルド発言要求
+R 3837 <len>.w <guild_id>.l <account_id>.l <message>.?B
+ ギルド発言通知
+S 3038 <guild_id>.l <account_id>.l <charactor_id>.l
+ 別ギルドに所属していないかチェック
+S 3039 <len>.w <guild_id>.l <type>.w <data>.?B
+ 各種基本情報更新要求
+R 3839 <len>.w <guild_id>.l <type>.w <data>.?B
+ 各種基本情報更新通知
+S 303A <len>.w <guild_id>.l <account_id>.l <char_id>.l <type>.w <data>.?B
+ 各種ギルドメンバ情報更新要求
+R 383A <len>.w <guild_id>.l <account_id>.l <char_id>.l <type>.w <data>.?B
+ 各種ギルドメンバ情報更新通知
+S 303B <len>.w <guild_id>.l <position>.l <struct guild_position>.?B
+ ギルド役職変更要求
+R 383B <len>.w <guild_id>.l <position>.l <struct guild_position>.?B
+ ギルド役職変更通知
+S 303C <guild_id>.l <skill_num>.l <account_id>.l
+ ギルドスキル割り振り
+R 383C <guild_id>.l <skill_num>.l <account_id>.l
+ ギルドスキル割り振り(skill_num==0で失敗)
+S 303D <guild_id1>.l <guild_id2>.l <account_id1>.l <account_id2>.l <flag>.B
+ ギルド同盟/敵対要求
+ flag=0 同盟 / 1 敵対 / 8 同盟解除 / 9 敵対解除
+R 383D <guild_id1>.l <guild_id2>.l <account_id1>.l <account_id2>.l <flag>.B <name1>.24B <name2>.24B
+ ギルド同盟/敵対通知
+ flag=0 同盟 / 1 敵対
+ flag=0x10 同盟失敗 / 0x11 敵対失敗
+S 303E <guild_id>.l <message1>.60B <message2>.120B
+ ギルド告知設定要求
+R 383E <guild_id>.l <message1>.60B <message2>.120B
+ ギルド告知設定通知
+S 303F <len>.w <guild_id>.l <dummy>.l <emblem_data>.?B
+ ギルドエンブレム変更要求 dummyは0固定
+R 383F <len>.w <guild_id>.l <dummy>.l <emblem_data>.?B
+ ギルドエンブレム変更通知
+(以下、ギルド系追加予定)
+
+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
+ ペット生成要求
+R 3880 <account_id>.l <fail>.B <pet_id>.l
+ ペット生成成功可否
+ fail=00 ペット生成成功
+ fail=01 失敗(pet_idはゴミ)
+S 3081 <account_id>.l <char_id>.I <pet_id>.l
+ ペットデータ要求
+R 3881 <len>.w <account_id>.l <fail>.B <struct s_pet>.?B
+ ペットデータ受信
+ fail=00 ペットデータ転送
+ fail=01 ペットのデータがないかもしくはaccount_idかchar_idが合わないので
+ 失敗(s_petはゴミ)
+S 3082 <len>.w <account_id>.l <struct s_pet>.?B
+ ペットデータ送信&保存要求
+R 3882 <account_id>.l <flag>.b
+ ペットデータ保存終了
+ flag=0 成功(現在の仕様ではメモリ不足以外には必ず0なので、返信を
+ 待たなくてもいい)
+ flag=1 失敗
+S 3083 <pet_id>.l
+ ペットデータ削除要求
+R 3883 <flag>.b
+ ペットデータ削除終了
+ flag=0 成功(現在の仕様では既にデータがいない場合以外は必ず0なので、
+ 返信を待たなくてもいい)
+ flag=1 失敗(pet_idに当たるデータがない場合の物ですが既にデータが
+ いないと言うことは削除する必要がないことにもなりますので
+ 意味はありません)
+
diff --git a/doc/item.txt b/doc/item.txt new file mode 100644 index 000000000..27a09a309 --- /dev/null +++ b/doc/item.txt @@ -0,0 +1,1451 @@ +ID Ename
+
+0 Default
+501 Red Potion
+502 Orange Potion
+503 Yellow Potion
+504 White Potion
+505 Blue Potion
+506 Green Potion
+507 Red Herb
+508 Yellow Herb
+509 White Herb
+510 Blue Herb
+511 Green Herb
+512 Apple
+513 Banana
+514 Grape
+515 Carrot
+516 Sweet Potato
+517 Meat
+518 Honey
+519 Milk
+520 Hinalle Leaflet
+521 Aloe Leaflet
+522 Mastela Fruit
+523 Holy Water
+525 Panacea
+526 Royal Jelly
+528 Monster's Feed
+529 Candy
+530 Candy Cane
+531 Apple Juice
+532 Banana Juice
+533 Grape Juice
+534 Carrot Juice
+535 Pumpkin
+536 Ice Cream
+537 Pet Food
+538 Well-baked Cookie
+539 Piece of Cake
+540 Falcon food
+541 Pecopeco food
+542 Festive Cookie
+543 Festive Rainbow Cake
+544 Raw Fish
+545 Red Potion Bottle
+546 Yellow Potion Bottle
+547 White Potion Bottle
+548 Cheese
+549 Hot Potato
+550 Rice Popper
+551 Sushi
+552 Ketupat
+553 Dumpling
+554 Mochi
+555 ??
+556 ??????
+557 ??????_???_??????
+558 Chocolate
+559 Hand-made Chocolate
+601 Fly Wing
+602 Butterfly Wing
+603 Old Blue Box
+604 Branch of Dead tree
+605 Anodyne
+606 Aloevera
+607 Yggdrasilberry
+608 Yggdrasil Seed
+609 Amulet
+610 Yggdrasil Leaf
+611 Magnifier
+612 Mini Furnace
+613 Iron Hammer
+614 Golden Hammer
+615 Oridecon Hammer
+616 Old Card Album
+617 Old Violet Box
+618 Worn Out Scroll
+619 Unripe Apple
+620 Orange Juice
+621 Bitter Herb
+622 Rainbow Carrot
+623 Earthworm the Dude
+624 Rotten Fish
+625 Rusty Iron
+626 Monster Juice
+627 Sweet Milk
+628 Well Dried Bone
+629 Singing Flower
+630 Dew Laden Moss
+631 Deadly Noxious Herb
+632 Fatty Chubby Earthworm
+633 Baked Yam
+634 Tropical Banana
+635 Horror of Tribe
+636 No Recipient
+637 Old Broom
+638 Silver Knife of Chastity
+639 Armlet of Obedience
+640 Shining Stone
+641 Contracts in Shadow
+642 Book of Devil
+643 Pet Incubator
+644 Gift Box
+645 Concentration Potion
+656 Awakening Potion
+657 Berserk Potion
+658 Tribal Solidarity
+659 Her Heart
+660 Red Candle
+661 Sky Apron
+663 Rice Cake
+664 Gift Box
+665 Gift Box
+666 Gift Box
+667 Gift Box
+668 Angpow
+669 ??????_??????_????
+670 ????
+671 ??
+672 ????
+673 ??
+674 ?????
+675 ??
+676 ????
+677 ???
+678 ??
+679 ???
+701 Ora Ora
+702 Animal Gore
+703 Hinalle
+704 Aloe
+705 Clover
+706 Four-Leaf Clover
+707 Singing Plant
+708 Ment
+709 Izidor
+710 Illusion Flower
+711 Shoot
+712 Flower
+713 Empty Bottle
+714 Emperium
+715 Yellow Gemstone
+716 Red Gemstone
+717 Blue Gemstone
+718 Garnet
+719 Amethyst
+720 Aquamarine
+721 Emerald
+722 Pearl
+723 Ruby
+724 Cursed Ruby
+725 Sardonyx
+726 Sapphire
+727 Opal
+728 Topaz
+729 Zircon
+730 1 Carat Diamond
+731 2 Carat Diamond
+732 3 Carat Diamond
+733 Cracked Diamond
+734 Red Frame
+735 Chung Jah
+736 China
+737 Black Ladle
+738 Pencil Case
+739 Rouge
+740 Puppet
+741 Poring Doll
+742 Chonchon Doll
+743 Spore Doll
+744 Bouquet
+745 Wedding Bouquet
+746 Glass Bead
+747 Crystal Mirror
+748 Witherless Rose
+749 Frozen Rose
+750 Baphomet Doll
+751 Osiris Doll
+752 Grasshopper Doll
+753 Yoyo Doll
+754 Raccoon Doll
+756 Rough Oridecon
+757 Rough Elunium
+901 Danggie
+902 Tree Root
+903 Reptile Tongue
+904 Scorpion Tail
+905 Stem
+906 Pointed Scale
+907 Resin
+908 Spawn
+909 Jellopy
+910 Garlet
+911 Scell
+912 Zargon
+913 Tooth of Bat
+914 Fluff
+915 Chrysalis
+916 Feather of Birds
+917 Talon
+918 Sticky Webfoot
+919 Animal Skin
+920 Wolf Claw
+921 Mushroom Spore
+922 Orc's Fang
+923 Evil Horn
+924 Powder of Butterfly
+925 Bill of Birds
+926 Snake Scale
+928 Insect Feeler
+929 Immortal Heart
+930 Rotten Bandage
+931 Orcish Voucher
+932 Skel-Bone
+934 Memento
+935 Shell
+936 Scale Shell
+937 Venom Canine
+938 Sticky Mucus
+939 Bee Sting
+940 Grasshopper's Leg
+941 Nose Ring
+942 Yoyo Tail
+943 Solid Shell
+944 Horseshoe
+945 Raccoon Leaf
+946 Snail's Shell
+947 Horn
+948 Bear's Footskin
+949 Feather
+950 Heart of Mermaid
+951 Fin
+952 Cactus Needle
+953 Stone Heart
+954 Shining Scale
+955 Worm Peeling
+956 Gill
+957 Decayed Nail
+958 Horrendous Mouth
+959 Stinky Scale
+960 Nipper
+961 Conch
+962 Tentacle
+963 Sharp scale
+964 Crap Shell
+965 Clam Shell
+966 Clam Flesh
+967 Turtle Shell
+968 Heroic Emblem
+969 Gold
+970 Alchol
+971 Detrimindexta
+972 Karvodailnirol
+973 Counteragent
+974 Mixture
+975 Scarlet Dyestuffs
+976 Lemon Dyestuffs
+978 Cobaltblue Dyestuffs
+979 Darkgreen Dyestuffs
+980 Orange Dyestuffs
+981 Violet Dyestuffs
+982 White Dyestuffs
+983 Black Dyestuffs
+984 Oridecon
+985 Elunium
+986 Anvil
+987 Oridecon Anvil
+988 Golden Anvil
+989 Emperium Anvil
+990 Red Blood
+991 Crystal Blue
+992 Wind of Verdure
+993 Green Live
+994 Flame Heart
+995 Mystic Frozen
+996 Rough Wind
+997 Great Nature
+998 Iron
+999 Steel
+1000 Star Crumb
+1001 Star Dust
+1002 Iron Ore
+1003 Coal
+1004 Chivalry Emblem
+1005 Hammer of Blacksmith
+1006 Old Magic Book
+1007 Necklace of Wisdom
+1008 Necklace of Oblivion
+1009 Hand of God
+1010 Phracon
+1011 Emveretarcon
+1012 Frill
+1013 Rainbow Shell
+1014 Ant Jaw
+1015 Tongue
+1016 Rat Tail
+1017 Mole Whiskers
+1018 Mole Claw
+1019 Trunk
+1020 Black Hair
+1021 Dokebi Horn
+1022 Nine Tails
+1023 Fish Tail
+1024 Squid ink
+1025 Cobweb
+1026 Acorn
+1027 Porcupine Quill
+1028 Mane
+1029 Tiger Skin
+1030 Tiger's Footskin
+1031 Mantis Scythe
+1032 Maneater Blossom
+1033 Maneater Root
+1034 Blue Hair
+1035 Dragon Canine
+1036 Dragon Scale
+1037 Dragon Tail
+1038 Little Evil Horn
+1039 Little Evil Wing
+1040 Elder Pixie's Moustache
+1041 Lantern
+1042 Bug Leg
+1043 Orc Claw
+1044 Zenorc's Fang
+1045 Cultish Masque
+1046 Scorpion Nipper
+1047 Dead Medusa
+1048 Horrendous Hair
+1049 Skirt of Virgin
+1050 Tendon
+1051 Detonator
+1052 Single Cell
+1053 Ancient Tooth
+1054 Ancient Lips
+1055 Earthworm Peeling
+1056 Grit
+1057 Moth Dust
+1058 Moth Wings
+1059 Fabric
+1060 Golden Hair
+1061 Witched Starsand
+1062 Jack o' Pumpkin
+1063 Fang
+1064 Reins
+1065 Trap
+1066 Fine-grained Trunk
+1067 Solid Trunk
+1068 Barren Trunk
+1069 Orange Net Mushroom
+1070 Orange Gooey Mushroom
+1071 Unknown Testtube
+1072 DEL Message
+1073 Voucher
+1074 Voucher
+1075 Voucher
+1076 Voucher
+1077 Voucher
+1078 Voucher
+1079 Voucher
+1080 Voucher
+1081 DEL Box
+1082 DEL Box
+1083 DEL Box
+1084 Kapra Pass
+1085 Unknown Testtube
+1086 Unknown Testtube
+1087 Unknown Testtube
+1088 Morocc Solution
+1089 Payon Solution
+1090 Unknown Testtube
+1091 DEL Box
+1092 Empty Testtube
+1093 Empty Potion Bottle
+1094 Short Daenggie
+1095 Needle of Alarm
+1096 Round Shell
+1097 Worn Out Page
+1098 Manacles
+1099 Worn-out Prison Uniform
+1101 Sword
+1102 Sword
+1103 Sword
+1104 Falchion
+1105 Falchion
+1106 Falchion
+1107 Blade
+1108 Blade
+1109 Blade
+1110 Rapier
+1111 Rapier
+1112 Rapier
+1113 Scimiter
+1114 Scimiter
+1115 Scimiter
+1116 Katana
+1117 Katana
+1118 Katana
+1119 Tsurugi
+1120 Tsurugi
+1121 Tsurugi
+1122 Ring Pommel Saber
+1123 Haedonggum
+1124 Orcish sword
+1125 Ring Pommel Saber
+1126 Saber
+1127 Saber
+1128 Haedonggum
+1129 Flamberge
+1130 Nagan
+1131 Ice Falchon
+1132 Edge
+1133 Fire Brand
+1134 Caesar's Sword
+1135 Cutlas
+1136 Solar Sword
+1137 Excalibur
+1138 Mysteltainn
+1139 Talefing
+1140 Byeollungum
+1141 Immaterial Sword
+1142 Crystal Sword
+1143 Gaia Sword
+1144 Sashimi
+1145 Holy Avenger
+1151 Slayer
+1152 Slayer
+1153 Slayer
+1154 Bastard Sword
+1155 Bastard Sword
+1156 Bastard Sword
+1157 Two-handed Sword
+1158 Two-handed Sword
+1159 Two-handed Sword
+1160 Broad Sword
+1161 Balmung
+1162 Broad Sword
+1163 Claymore
+1164 Muramasa
+1165 Masamune
+bonus bStr
+bonus bAspd
+bonus bDefRate
+bonus bDef2Rate
+ }
+1166 Dragon Slayer
+1167 Schweizersabel
+1168 Zweihander
+1169 Executioner
+1170 Katzbalger
+1201 Knife
+1202 Knife
+1203 Knife
+1204 Cutter
+1205 Cutter
+1206 Cutter
+1207 Main Gauche
+1208 Main Gauche
+1209 Main Gauche
+1210 Dirk
+1211 Dirk
+1212 Dirk
+1213 Dagger
+1214 Dagger
+1215 Dagger
+1216 Stiletto
+1217 Stiletto
+1218 Stiletto
+1219 Gladius
+1220 Gladius
+1221 Gladius
+1222 Damascus
+1223 Fortune Sword
+1224 Swordbreaker
+1225 Mailbreaker
+1226 Damascus
+1227 Weeder Knife
+1228 Combat Knife
+1229 Mama's Knife
+1230 House Auger
+1231 Bazerald
+1232 Assasin Dagger
+1233 Excorcise
+1234 Walgwanggum
+1235 Azoth
+1236 Sucsamad
+1237 Grimtooth
+1238 Zeny Knife
+1239 Poison Knife
+1240 Princess Knife
+1241 Cursed Knife
+1242 Counter Knife
+1243 Novice's Main Gauche
+1250 Jur
+1251 Jur
+1252 Katar
+1253 Katar
+1254 Jamadhar
+1255 Jamadhar
+1256 Katar of Cold Icicle
+1257 Katar of Dusty Thornbush
+1258 Katar of Raging Blaze
+1259 Katar of Piercing Wind
+1260 Sharppened Legbone of Gh
+1261 Infiltrator
+1301 Axe
+1302 Axe
+1303 Axe
+1304 Orcish Axe
+1305 Cleaver
+1306 War Axe
+1351 Battle Axe
+1352 Battle Axe
+1353 Battle Axe
+1354 Hammer
+1355 Hammer
+1356 Hammer
+1357 Buster
+1358 Buster
+1359 Buster
+1360 Two-handed Axe
+1361 Two-handed Axe
+1362 Two-handed Axe
+1363 Bloody Axe
+1364 Great Axe
+1365 Sabbath
+1366 Light Epsilon
+1367 Slaughter
+1368 Tomahawk
+1369 Guillotine
+1401 Javelin
+1402 Javelin
+1403 Javelin
+1404 Spear
+1405 Spear
+1406 Spear
+1407 Pike
+1408 Pike
+1409 Pike
+1410 Lance
+1411 Lance
+1412 Lance
+1413 Gungnir
+1414 Gelerdria
+1415 Brocca
+1416 Tjungkuletti
+1417 Pole Axe
+1451 Guisarme
+1452 Guisarme
+1453 Guisarme
+1454 Glaive
+1455 Glaive
+1456 Glaive
+1457 Partizan
+1458 Partizan
+1459 Partizan
+1460 Trident
+1461 Trident
+1462 Trident
+1463 Halberd
+1464 Halberd
+1465 Halberd
+1466 Crescent Scythe
+1467 Bill Guisarme
+1468 Zephyrus
+1469 Longinus's Spear
+1470 Brionac
+1471 Hellfire
+1472 Soul Staff
+1473 Wizardy staff
+1501 Club
+1502 Club
+1503 Club
+1504 Mace
+1505 Mace
+1506 Mace
+1507 Smasher
+1508 Smasher
+1509 Smasher
+1510 Flail
+1511 Flail
+1512 Flail
+1513 Morning Star
+1514 Morning Star
+1515 Morning Star
+1516 Sword Mace
+1517 Sword Mace
+1518 Sword Mace
+1519 Chain
+1520 Chain
+1521 Chain
+1522 Stunner
+1523 Spike
+1524 Golden Mace
+1525 Long Mace
+1526 Slash
+1527 Quadrille
+1528 Grand Cross
+1529 Iron Driver
+1530 Mjollnir
+1531 Spanner
+1550 Book
+1551 Bible
+1552 Tablet
+1553 Book of Billows
+1554 Book of Mother Earth
+1555 Book of Blazing Sun
+1556 Book of Gust of Wind
+1557 Book of the Apocalypse
+1558 Girl's Diary
+1599 Angra Manyu
+1601 Rod
+1602 Rod
+1603 Rod
+1604 Wand
+1605 Wand
+1606 Wand
+1607 Staff
+1608 Staff
+1609 Staff
+1610 Arc Wand
+1611 Arc Wand
+1612 Arc Wand
+1613 Mighty Staff
+1614 Wand of Occult
+1615 Bone Wand
+1701 Bow
+1702 Bow
+1703 Bow
+1704 Composite Bow
+1705 Composite Bow
+1706 Composite Bow
+1707 Great Bow
+1708 Great Bow
+1709 Great Bow
+1710 Cross Bow
+1711 Cross Bow
+1712 Cross Bow
+1713 Arbalest
+1714 Gakkung
+1715 Arbalest
+1716 Gakkung
+1718 Hunter Bow
+1719 Roguemaster's Bow
+1720 Rudra's Bow
+1721 Repeating Crossbow
+1722 Ballista
+1750 Arrow
+1751 Silver Arrow
+1752 Fire Arrow
+1753 Steel Arrow
+1754 Crystal Arrow
+1755 Arrow of Wind
+1756 Stone Arrow
+1757 Immaterial Arrow
+1758 Stun Arrow
+1759 Freeze Arrow
+1760 Flash Arrow
+1761 Curse Arrow
+1762 Rusted Arrow
+1763 Poison Arrow
+1764 Sharp Arrow
+1765 Oridecon Arrow
+1766 Arrow of Counter Evil
+1767 Shadow Arrow
+1768 Sleep Arrow
+1769 Mute Arrow
+1770 Iron Arrow
+1801 Waghnakh
+1802 Waghnakh
+1803 Knuckle Duster
+1804 Knuckle Duster
+1805 Hora
+1806 Hora
+1807 Fist
+1808 Fist
+1809 Claw
+1810 Claw
+1811 Finger
+1812 Finger
+1813 Kaiser Knuckle
+1814 Berserk
+1901 Violin
+1902 Violin
+1903 Mandolin
+1904 Mandolin
+1905 Lute
+1906 Lute
+1907 Guitar
+1908 Guitar
+1909 Harp
+1910 Harp
+1911 Guhmoongoh
+1912 Guhmoongoh
+1950 Rope
+1951 Rope
+1952 Line
+1953 Line
+1954 Wire
+1955 Wire
+1956 Rante
+1957 Rante
+1958 Tail
+1959 Tail
+1960 Whip
+1961 Whip
+1962 Lariat
+1963 Rapture Rose
+1964 Chemeti
+2101 Guard
+2102 Guard
+2103 Buckler
+2104 Buckler
+2105 Shield
+2106 Shield
+2107 Mirror Shield
+2108 Mirror Shield
+2109 Book of Summoning
+2110 Holy Guard
+2111 Evangelist
+2112 Novice Guard
+2199 Ahura Mazda
+2201 Sunglasses
+2202 Sunglasses
+2203 Glasses
+2204 Glasses
+2205 Diver's Goggles
+2206 Wedding Veil
+2207 Fancy Flower
+2208 Ribbon
+2209 Ribbon
+2210 Hair Band
+2211 Bandana
+2212 Eye Patch
+2213 Kitty Band
+2214 Bunny Band
+2215 Flower Band
+2216 Biretta
+2217 Biretta
+2218 Flu Mask
+2219 Flu Mask
+2220 Hat
+2221 Hat
+2222 Turban
+2223 Turban
+2224 Goggle
+2225 Goggle
+2226 Cap
+2227 Cap
+2228 Helm
+2229 Helm
+2230 Gemmed Sallet
+2231 Gemmed Sallet
+2232 Circlet
+2233 Circlet
+2234 Tiara
+2235 Crown
+2236 Santa's Hat
+2237 Bandit Beard
+2238 Moustache
+2239 Single Glass
+2240 Beard
+2241 Granpa Beard
+2242 Purple Glasses
+2243 Geek Glasses
+2244 Big Ribbon
+2245 Sweet Gent
+2246 Golden Gear
+2247 Romantic Gent
+2248 Western Grace
+2249 Coronet
+2250 Cute Ribbon
+2251 Monk Hat
+2252 Wizard Hat
+2253 Sunflower
+2254 Angel Wing
+2255 Evil Wing
+2256 Majestic Goat
+2257 Snow Horn
+2258 Spiky Band
+2259 Mini Propeller
+2260 Mini Glasses
+2261 Army Cap
+2262 Pierrot Nose
+2263 Zoro Masque
+2264 Munak Hat
+2265 Ganster Mask
+2266 Iron Cane
+2267 Cigar
+2268 Pipe
+2269 Romantic Flower
+2270 Romantic Leaf
+2271 Jack a Dandy
+2272 Stop Post
+2273 Doctor Band
+2274 Ghost Bandana
+2275 Red Bandana
+2276 Eagle Eyes
+2277 Nurse Cap
+2278 Mr. Smile
+2279 Bomb Wick
+2280 Sakkat
+2281 Opera Masque
+2282 Heaven Ring
+2283 Ear Mufs
+2284 Antler
+2285 Apple o' Archer
+2286 Elven Ears
+2287 Pirate Bandana
+2288 Mr. Scream
+2289 Poo Poo Hat
+2290 Funeral Hat
+2291 Masquerade
+2292 Welding Mask
+2293 Pretend Murdered
+2294 Stellar
+2295 Blinker
+2296 Binoculars
+2297 Goblini Mask
+2298 Green Feeler
+2299 Orc Helm
+2301 Cotton Shirt
+2302 Cotton Shirt
+2303 Leather Jacket
+2304 Leather Jacket
+2305 Adventurer's Suit
+2306 Adventurer's Suit
+2307 Mantle
+2308 Mantle
+2309 Coat
+2310 Coat
+2311 Mink Coat
+2312 Padded Armor
+2313 Padded Armor
+2314 Chain Mail
+2315 Chain Mail
+2316 Full Plate
+2317 Full Plate
+2318 Lord's Clothes
+2319 Glittering Jacket
+2320 Formal Suit
+2321 Silk Robe
+2322 Silk Robe
+2323 Scapulare
+2324 Scapulare
+2325 Saint's Robe
+2326 Saint's Robe
+2327 Holy Robe
+2328 Wooden Mail
+2329 Wooden Mail
+2330 Tights
+2331 Tights
+2332 Silver Robe
+2333 Silver Robe
+2334 Mage Coat
+2335 Thief Clothes
+2336 Thief Clothes
+2337 Ninja Suit
+2338 Wedding Dress
+2339 Pantie
+2340 Novice Breastplate
+2341 Full Plate Armor
+2342 Full Plate Armor
+2343 Casting Robe
+2344 Fire Armor
+2345 Fire Armor
+2346 Water Armor
+2347 Water Armor
+2348 Wind Armor
+2349 Wind Armor
+2350 Earth Armor
+2351 Earth Armor
+2352 Novice Armor
+2401 Sandals
+2402 Sandals
+2403 Shoes
+2404 Shoes
+2405 Boots
+2406 Boots
+2407 Crystal Pumps
+2408 Ball'n'Chain
+2409 Highheals
+2410 Sleipnir
+2411 Greaves
+2412 Greaves
+2413 Safety Shoes
+2414 Novice Sandal
+2501 Hood
+2502 Hood
+2503 Muffler
+2504 Muffler
+2505 Manteau
+2506 Manteau
+2507 Cape of Old Marquess
+2508 Ragamuffin Manteau
+2509 Manteau of Life
+2510 Novice Hood
+2601 Ring
+2602 Earring
+2603 Necklace
+2604 Glove
+2605 Brooch
+2607 Clip
+2608 Rosary
+2609 Skull Ring
+2610 Gold Ring
+2611 Silver Ring
+2612 Flower Ring
+2613 Diamond Ring
+2614 Eye of Dullahan
+2615 Safety Ring
+2616 Critical Ring
+2617 Celebrant's Mitten
+2618 Matyr's Leash
+2619 Bow Thimble
+2620 Rogue's Treasure
+2621 Ancient Ring
+2622 Ancient Earring
+2623 Ancient Necklace
+2624 Ancient Glove
+2625 Ancient Brooch
+2626 Ancient Rosary
+2627 Ancient Belt
+2628 Novice Armlet
+2629 Magingiorde
+2630 Brysinggamen
+2631 Pebble Ring
+2634 Wedding Ring
+2635 Wedding Ring
+2636 Gold Christmas Ring
+2637 Silver Christmas Ring
+4001 Poring Card
+4002 Fabre Card
+4003 Pupa Card
+4004 Drops Card
+4005 Poring Card
+4006 Lunatic Card
+4007 Pecopeco Egg Card
+4008 Picky Card
+4009 Chonchon Card
+4010 Wilow Card
+4011 Picky Card
+4012 Thief Bug Egg Card
+4013 Andre Egg Card
+4014 Roda Frog Card
+4015 Condor Card
+4016 Thief Bug Card
+4017 Savage Babe Card
+4018 Andre Larva Card
+4019 Hornet Card
+4020 Farmiliar Card
+4021 Rocker Card
+4022 Spore Card
+4023 Desert Wolf Babe Card
+4024 Plankton Card
+4025 Skeleton Card
+4026 Thief bug Female Card
+4027 Kukre Card
+4028 Tarou Card
+4029 Wolf Card
+4030 Mandragora Card
+4031 Pecopeco Card
+4032 Ambernite Card
+4033 Poporing Card
+4034 Worm Tail Card
+4035 Hydra Card
+4036 Muka Card
+4037 Snake Card
+4038 Zombie Card
+4039 Stainer Card
+4040 Creamy Card
+4041 Coco Card
+4042 Steel Chonchon Card
+4043 Andre Card
+4044 Smokie Card
+4045 Horn Card
+4046 Martin Card
+4047 Ghostring Card
+4048 Poison Spore Card
+4049 Vadon Card
+4050 Thief bug Male Card
+4051 Yoyo Card
+4052 Elder Wilow Card
+4053 Vitata Card
+4054 Angeling Card
+4055 Marina Card
+4056 Dustiness Card
+4057 Metaller Card
+4058 Thara Frog Card
+4059 Soldier Andre Card
+4060 Goblin Card
+4061 Cornutus Card
+4062 Anacondaq Card
+4063 Caramel Card
+4064 Zerom Card
+4065 Kaho Card
+4066 Orc Warrior Card
+4067 Megalodon Card
+4068 Scorpion Card
+4069 Drainliar Card
+4070 Eggyra Card
+4071 Orc Zombie Card
+4072 Golem Card
+4073 Pirate Skeleton Card
+4074 BigFoot Card
+4075 Argos Card
+4076 Magnolia Card
+4077 Phen Card
+4078 Savage Card
+4079 Mantis Card
+4080 Flora Card
+4081 Hode Card
+4082 Desert Wolf Card
+4083 Rafflesia Card
+4084 Marine Sphere Card
+4085 Orc Skeleton Card
+4086 Soldier Skeleton Card
+4087 Giearth Card
+4088 Frilldora Card
+4089 Swordfish Card
+4090 Munak Card
+4091 Kobold Card
+4092 Skel Worker Card
+4093 Obeaune Card
+4094 Archer Skeleton Card
+4095 Marse Card
+4096 Zenorc Card
+4097 Matyr Card
+4098 Dokebi Card
+4099 Pasana Card
+4100 Sohee Card
+4101 Sandman Card
+4102 Whisper Card
+4103 Horong Card
+4104 Requiem Card
+4105 Marc Card
+4106 Mummy Card
+4107 Verit Card
+4108 Myst Card
+4109 Jakk Card
+4110 Ghoul Card
+4111 Strouf Card
+4112 Marduk Card
+4113 Marionette Card
+4114 Argiope Card
+4115 Hunter Fly Card
+4116 Isis Card
+4117 Sidewinder Card
+4118 Petit Card
+4119 Bathory Card
+4120 Petit Card
+4121 Phreeoni Card
+4122 Deviruchi Card
+4123 Eddga Card
+4124 Medusa Card
+4125 Deviace Card
+4126 Minorous Card
+4127 Nightmare Card
+4128 Golden Bug Card
+4129 Baphomet Card
+4130 Scorpion King Card
+4131 Moonlight Flower Card
+4132 Mistress Card
+4133 Raydric Card
+4134 Dracula Card
+4135 Orc Lord Card
+4136 Khalitzburg Card
+4137 Drake Card
+4138 Anubis Card
+4139 Joker Card
+4140 Knight Of Abyss Card
+4141 Evil Druid Card
+4142 Doppelganger Card
+4143 Orc Hero Card
+4144 Osiris Card
+4145 Berzebub Card
+4146 Maya Card
+4147 Baphomet Card
+4148 Pharaoh Card
+4149 Bon Gun Card
+4150 Orc Archer Card
+4151 Mimic Card
+4152 Wraith Card
+4153 Alarm Card
+4154 Arclouse Card
+4155 Rideword Card
+4156 Skel Prisoner Card
+4157 Zombie Prisoner Card
+4158 Dark Priest Card
+4159 Punk Card
+4160 Zherlthsh Card
+4161 Mysteltainn Card
+4162 Tirfing Card
+4163 Executioner Card
+4164 Anolian Card
+4165 Sting Card
+4166 Wander Man Card
+4167 Cramp Card
+4168 Filamentous Card
+4169 Brilight Card
+4170 Iron Fist Card
+4171 High Orc Card
+4172 Choco Card
+4173 Stem Worm Card
+4174 Penomena Card
+4175 Marin Card
+4176 Sasquatch Card
+4177 Antonio Card
+4178 Cruiser Card
+4179 Mystcase Card
+4180 Chepet Card
+4181 Knight Of Windstorm Card
+4182 Garm Card
+4183 Gargoyle Card
+4184 Raggler Card
+4185 Neraid Card
+4186 Pest Card
+4187 Injustice Card
+4188 Goblin Archer Card
+4189 Gryphon Card
+4190 Dark Frame Card
+4191 Wind Ghost Card
+4192 Merman Card
+4193 Cookie Card
+4194 Aster Card
+4195 Carat Card
+4196 Bloody Knight Card
+4197 Clock Card
+4198 C Tower Manager Card
+4199 Alligator Card
+4200 Dark Lord Card
+4201 Orc Lady Card
+4202 Megalith Card
+4203 Alice Card
+4204 Raydric Archer Card
+4205 Greatest General Card
+4206 Stalactic Golem Card
+4207 Tri Joint Card
+4208 Steam Goblin Card
+4209 Sage Worm Card
+4210 Kobold archer Card
+4211 Chimera Card
+5001 Headset
+5002 Jewel Crown
+5003 Joker Jester
+5004 Oxygen Mask
+5005 Gas Mask
+5006 Machoman's Glasses
+5007 Grand Circlet
+5008 Puppy Love
+5009 Safety Helmet
+5010 Indian Fillet
+5011 Aerial
+5012 Ph.D Hat
+5013 Lord Kaho's Horn
+5014 Fin Helm
+5015 Egg Shell
+5016 Boys Cap
+5017 Bone Helm
+5018 Feather Bonnet
+5019 Corsair
+5020 Kafra Band
+5021 Money Loser's Grief
+5022 Solar God Helm
+5023 Parcel Hat
+5024 Cake Hat
+5025 Angel Helm
+5026 Chef's Hat
+5027 Magic Instructor's Hat
+5028 Candle
+5029 Spore Hat
+5030 Panda Cap
+5031 Miner's Helmet
+5032 Sunday Hat
+5033 Smokie Hat
+5034 Lightbulb Hairband
+5035 Poring hat
+5036 Cross Hairband
+5037 Apple Hat
+5038 Deviruchi Hat
+5039 Spotted Eggshell
+5040 Innocence of Maiden
+5041 Heart Hairpin
+5042 Dumpling Decoration
+5043 Opera Ghost Mask
+5044 Wing's of Demon
+5045 Magic Hat
+5046 Bongun hat
+5047 Fashion Sunglasses
+5048 Cresent Hairpin
+5049 Striped Bandana
+5050 Mysterious Apple Hat
+5051 Bell of Pussycat
+5052 Blue Bandana
+5053 Sphinx Hat
+5054 Assassin Mask
+5055 Novice Eggshell
+5056 ???
+7001 Mould Powder
+7002 Ogre Tooth
+7003 Anolian Skin
+7004 Mud Lump
+7005 Skull
+7006 Wing of Red Bat
+7007 Claw of Rat
+7008 Stiff Horn
+7009 Glitter Shell
+7010 Tail of Steel Scorpion
+7011 Claw of Monkey
+7012 Tough Scalelike Stem
+7013 Coral Reef
+7014 Old Portrait
+7015 Bookclip in Memory
+7016 Spoon Stub
+7017 Executioner's Mitten
+7018 Young Twig
+7019 Loki's Whispers
+7020 Mother's Nightmare
+7021 Foolishness of the Blind
+7022 Old Hilt
+7023 Blade Lost in Darkness
+7024 Bloody Edge
+7025 Lucifer's Lament
+7026 Key of Clock Tower
+7027 Key of Underground
+7028 Invite for Duel
+7029 Admission for Duel
+7030 Claw of Desert Wolf
+7031 Old Frying Fan
+7032 Piece of Egg Shell
+7033 Poison Spore
+7034 Red Socks with Holes
+7035 Matchstick
+7036 Fang of Garm
+7037 Coupon
+7038 Yarn
+7039 Novice Nametag
+7040 Megaphone
+7041 Fine Grit
+7042 Leather Bag of Infinity
+7043 Fine Sand
+7044 Vigorgra
+7045 Magic Paint
+7046 Cart Parts
+7047 Alice's Apron
+7048 Talon of Griffon
+7049 Stone
+7050 Cotton Mat
+7051 Silk Mat
+7052 Wasted Magazine
+7053 Cyfar
+7054 Brigan
+7055 Animal Poop
+7056 Payment Statement for Ka
+7057 Gallar Horn
+7058 Gullraifnir
+7059 Free Ticket for Kafra St
+7060 Free Ticket for Kafra Tr
+7061 Free Ticket for the Cart
+7062 Broken Turtle Shell
+7063 Soft Feather
+7064 Wing of Dragonfly
+7065 Sea Otter Fur
+7066 Ice Cubes
+7067 Piece of Rock
+7068 Half Burnt Log
+7069 Broken Armor Piece
+7070 Broken Shell
+7071 Tattered Clothes
+7072 Old Shuriken
+7073 Freyja's Jewel
+7074 Thor's Guntlet
+7075 Iron Maiden
+7076 Wheel of the Unknown
+7077 Silver Ornament
+7078 Wrath of Valkyrie
+7079 Feather of Angel Wing
+7080 Footprints of Cat
+7081 Woman's Moustache
+7082 Root of Stone
+7083 Spirit of Fish
+7084 Saliva of Bird
+7085 Tendon of Bear
+7086 Solar Bead
+7087 Breath of Soul
+7088 Snow Crystal
+7089 Omen of Tempest
+7090 Ripple
+7091 Billow
+7092 Drifting Air
+7093 Metal Wheel
+7094 Cabinet Chip
+7095 Tooth Fragment
+7096 Hardened Lava
+7097 Burning Heart
+7098 Fire Seed
+7099 Old Magical Circle
+7100 Sharpened Leaf
+7101 Peco's Feather
+7102 Nightmare
+7103 Yellwo Liquid Bottle
+7104 Imitation Angel's Wing
+7105 Imitation Soul's Band
+7106 Horn of Goat
+7107 Fur of Goat
+7108 Broken Shield
+7109 Shiny Spear Tip
+7110 Sharp Sword
+7111 String Paper
+7112 Transparent Paper
+7113 Onion Wand
+7114 Sphinx Mask
+7115 Blood Feather
+7116 Tooth of Lowblood
+7117 Torn Spell Book
+7118 Torn Scroll
+7119 Hypha Body
+7120 Burning Horseshoe
+7121 Honey Jar
+7122 Hot Feather
+7123 Dragon's Skin
+7124 Sand Lump
+7125 Crab Shot
+7126 Large Jellopy
+7127 Alcohol Making Book
+7128 Fire Bottle Making Book
+7129 Acid Bottle Making Book
+7130 Plant Bottle Making Book
+7131 Mine Bottle Making Book
+7132 Coating Wax Making Book
+7133 Slim Potion Making Book
+7134 Medicine Bowl
+7135 Fire Bottle
+7136 Hydrobolic Acid Bottle
+7137 Water Bottle
+7138 Mine Bottle
+7139 Coating Wax
+7140 Seed of Life
+7141 Water Flow
+7142 Ancient Life
+7143 Seperation Tubes
+7144 Potion Making Book
+7145 Ragnarok T-Shirt
+7146 Vacation Ticket
+7147 Jasmine
+7148 Mother's Letter
+7149 Yellow Plate
+7150 Bamboo Trunk
+7151 Oiled Paper
+7152 Glossy Hair
+7153 Old Kimono
+7154 Poison Powder
+7155 Poisonous Toad's Skin
+7156 Broken Shuriken
+7157 Black Mask
+7158 Broken Liquor Bottle
+7159 Demon's Nose
+7160 Passport From King
+7161 Skin of the Black Bear
+7162 Piece of Cloud
+7163 Hard Antennae
+7164 Very Hard Peach
+7165 Etherial Winged Clothing
+7166 Soft Silk Fabric
+7167 Strange Piece of Iron
+7168 Big Wing of Butterfly
+7169 Tae Guk Tablet
+7170 Tuxedo
+7171 Skin of Panther
+7172 Claw of Panther
+7173 Bun Buster Bag
+7174 Wrapping Thread
+7175 Wrapper
+7176 King's Proof Document
+7177 ?????_?????_????
+7178 ?????_?????
+7179 ????_???????
+7180 0
+7181 0
+7182 Cacao
+7183 ????
+7184 ??????
+7185 ??????
+7186 ???
+7187 ?????
+7188 ????
+7189 ????
+7190 ????
+7191 ?
+7192 ????
+7193 ?????
+7194 ????????
+7195 ????
+7196 ????
+7197 ????????
+7198 ??????
+7199 20
+7200 ???
+7201 ??
+7202 ????????
+7203 ?????
+7204 ??
+9001 Poring Egg
+9002 Drops Egg
+9003 Poporing Egg
+9004 Lunatic Egg
+9005 Picky Egg
+9006 Chonchon Egg
+9007 Steel Chonchon Egg
+9008 Hunter Fly Egg
+9009 Savage Babe Egg
+9010 Baby Desert Wolf Egg
+9011 Rocker Egg
+9012 Spore Egg
+9013 Poison Spore Egg
+9014 PecoPeco Egg
+9015 Smokie Egg
+9016 Yoyo Egg
+9017 Orc Warrior Egg
+9018 Munak Egg
+9019 Dokebi Egg
+9020 Sohee Egg
+9021 Isis Egg
+9022 Green Petite Egg
+9023 Deviruchi Egg
+9024 Bapho Jr. Egg
+9025 Bongun Egg
+9026 Alice Egg
+9027 Zherlthsh Egg
+9028 Test Egg
+9029 Test Egg
+10001 Skull Helm
+10002 Monster Oxygen Mask
+10003 Transparent Headgear
+10004 Pacifier
+10005 Wig
+10006 Queen's Hair Ornament
+10007 Silk Ribbon
+10008 Punisher
+10009 Wild Flower
+10010 Battered Pot
+10011 Stellar Hairpin
+10012 Tiny Egg Shell
+10013 Backpack
+10014 Rocker Glasses
+10015 Green Lace
+10016 Golden Bell
+10017 Bark Shorts
+10018 Monkey Circlet
+10019 Red Muffler
+10020 Sword of Chinese Exorcis
diff --git a/doc/item_bonus.txt b/doc/item_bonus.txt new file mode 100644 index 000000000..6ccd5c9d2 --- /dev/null +++ b/doc/item_bonus.txt @@ -0,0 +1,206 @@ +//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 % probability -- x % -- HP -- absorption (+ n and x are carried out)
+bonus2 bSPDrainRate,n,x; it obtained to the enemy -- ? ME ? JI -- n % probability -- x % -- SP -- absorption (+ n and x are carried out)
+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% 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% chance to cast skill x of level y when
+ being hit by physical close range damage
+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% 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% chance to cast skill x of level y when
+ being hit by physical close range damage
+ 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%
+ (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/miscnotes.txt b/doc/miscnotes.txt new file mode 100644 index 000000000..4850b77f3 --- /dev/null +++ b/doc/miscnotes.txt @@ -0,0 +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 *
+// **************************
\ No newline at end of file diff --git a/doc/mob_db_mode_list.txt b/doc/mob_db_mode_list.txt new file mode 100644 index 000000000..edd83a167 --- /dev/null +++ b/doc/mob_db_mode_list.txt @@ -0,0 +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)
+none -> 2181 : Hyper-active (Familiar)
\ No newline at end of file diff --git a/doc/notes/Changelog.txt b/doc/notes/Changelog.txt new file mode 100644 index 000000000..f9f9d284b --- /dev/null +++ b/doc/notes/Changelog.txt @@ -0,0 +1,8164 @@ +Date Added
+
+-------- Read Changelog-SVN.txt for the newer SVN entries--------
+
+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 new file mode 100644 index 000000000..ab8609bf3 --- /dev/null +++ b/doc/notes/INSTALL.txt @@ -0,0 +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.
diff --git a/doc/notes/README.win32.txt b/doc/notes/README.win32.txt new file mode 100644 index 000000000..16a8c9524 --- /dev/null +++ b/doc/notes/README.win32.txt @@ -0,0 +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
+
diff --git a/doc/notes/Readme-jap.txt b/doc/notes/Readme-jap.txt new file mode 100644 index 000000000..daef9665a --- /dev/null +++ b/doc/notes/Readme-jap.txt @@ -0,0 +1,21260 @@ +--------------------
+//1162 by pizza
+・スパイラルピアース・ソウルブレーカー・発勁・ファルコンアサルトについて本鯖準拠に修正
+
+ (db)
+ skill_db.txt
+ スパイラルピアース・ソウルブレーカーの射程
+ ソウルブレーカーが詠唱妨害可
+ skill_cast_db.txt
+ ソウルブレーカーの詠唱時間
+
+ (src/map)
+ battle.c
+ 発勁・ファルコンアサルトの計算式
+ スパイラルピアースがニュマで無効化
+
+--------------------
+//1161 by Nameless
+
+・バイオプラントによる召還mobのIDとスキルを本鯖準拠に修正
+ ※呼び出せる数についてはまだ未実装…
+
+ (db)
+ mob_avail.txt
+ クライアントによって発生する可能性のあるグラ問題の
+ 暫定対応
+ mob_db.txt
+ バイオプラント用mobのステを一部修正
+ mob_skill_db.txt
+ バイオプラント用mobにスキルを修正
+
+ (src/map)
+ skill.c - case AM_CANNIBALIZE: 修正
+
+--------------------
+//1160 by Nameless
+
+・1158のfix
+ フェアリーフの非移動化と呼び出されたMOBのHPを下方修正
+
+ (src/map)
+ skill.c - case AM_CANNIBALIZE: 修正
+
+--------------------
+//1158 by もっさり
+・mob後退実装 自分が向いてる方とは逆にskilllvの分ぐらい動きます
+ 離れすぎる呼び戻されないので取り巻き呼び戻しを修正
+ IWの斜め位置がおかしかったのを修正(バグ報告スレッド part8 >>110)
+
+ (src/map)
+ skill.c 呼び戻し修正、後退追加、IW修正
+ skill.h
+ mob.c
+ map.h
+ (db)
+ skill_db.txt
+--------------------
+//1158 by Nameless
+
+・アルケミのバイオプラントを修正
+ 各LVにあわせて、マンドラゴラ、ヒドラ、フローラ、フェアリーフ、ジオグラファー
+ を呼び出すようにした
+
+ (src/map)
+ skill.c - case AM_CANNIBALIZE: 修正
+
+--------------------
+//1157 by eigen
+
+・バードダンサースキルの使用でMAP鯖が落ちる不具合を修正
+
+ (src/map)
+ skill.c - skill_unit_onout() 修正
+
+--------------------
+//1156 by eigen
+
+・聖体降福使用時、モンクが人数カウントされていなかった不具合を修正
+(thanks to 本鯖相違スレpart3 >>121氏)
+・バードダンサースキルの効果が切れなかった不具合を修正
+
+ (src/map)
+ skill.c - skill_unit_onout(), skill_check_condition_char_sub() 修正
+
+--------------------
+//1155 by latte
+・ディボーションに詠唱時間付与
+・サクリファイス:倍率修正とボスに有効に。
+・グランドクロスのエフェクトの修正
+
+ (db)
+ skill_cast_db.txt
+ skill_db.txt
+ (src/map)
+ battle.c
+
+--------------------
+//1154 by eigen
+
+・バードダンサースキル使用でMAP鯖が落ちる問題を修正
+・ゴスペルの実装
+・マグナムブレイクの仕様を本鯖に合わせて変更(火属性追加ダメージは未実装です)
+
+ (db)
+ skill_cast_db.txt - ゴスペル, マグナムブレイクに関する修正
+ skill_require_db.txt - マグナムブレイクに関する修正
+ skill_unit_db.txt - ゴスペルに関する修正
+ (src/map)
+ battle.c - battle_calc_pet_weapon_attack(), battle_calc_mob_weapon_attack(),
+ battle_calc_pc_weapon_attack(), battle_calc_magic_attack() 修正
+ clif.c - clif_parse_UseSkillToId(), clif_parse_UseSkillToId(),
+ clif_parse_WalkToXY(), clif_parse_ActionRequest(),
+ clif_parse_UseSkillToId(), clif_parse_UseSkillMap() 修正
+ map.h - MAX_STATUSCHANGEの増加
+ pc.c - pc_natural_heal_sub() 修正
+ skill.h - マグナムブレイク, ゴスペルに関する状態異常テーブル追加
+ skill.c - skill_castend_damage_id(), skill_castend_nodamage_id(),
+ skill_unit_onout(), skill_unit_onplace_timer(),
+ skill_init_unit_layout() 修正
+ status.c - status_change_start(), status_change_end() 修正
+
+--------------------
+//1153 by ぽえ
+
+・ヒール、サンクの修正
+ (イビルドルイドC装備中にPv,Gv以外だとダメージが出ないように修正)
+ (該当PCにヒールを使用した場合SPだけ消費)
+・放置されてるversion.hの更新
+ (src/map)
+ skill.c - skill_castend_id(),skill_unit_onplace_timer() 修正
+ (src/common)
+ version.h - mod version 1153
+--------------------
+//1152 by p
+
+・鉱石発見修正
+ (db)
+ item_db.txt - 古い巻物の getitem 番号を戻し
+ (src/map)
+ itemdb.c - 鉱石発見時生成処理の変更
+ mob.c - 鉱石発見処理の変更
+--------------------
+//1151 by p
+
+・ブラックスミススキル鉱石発見の実装(仮)
+ (conf)
+ battle_athena.conf - 鉱石発見率の指定
+ (db)
+ item_findingore.txt - 鉱石ドロップ率の指定
+ item_db.txt - 古い巻物の getitem 番号変更
+ (src/map)
+ itemdb.c - db/item_findingore.txt の読み込みと発見時生成
+ battle.h - 設定保持用の項目追加
+ battle.c - 設定読み込み処理追加
+ mob.c - 鉱石発見処理追加
+
+--------------------
+//1150 by Theia
+
+・ベノムスプラッシャーをjRO仕様に変更
+ (完全ではないので補完希望)
+・シャープシューティングの計算式を変更
+ (今までの計算式だと必中していた)
+ (db)
+ skill_cast.txt
+ skill_require_db.txt
+ (src/map)
+ skill.c - ベノムスプラッシャーの発動条件を変更
+ battle.c - ベノムスプラッシャー,シャープシューティングの倍率を変更
+
+--------------------
+//1149 by eigen
+
+・一部のダンサーバードスキルの演奏スキル上から出るとMAP鯖が落ちる不具合を修正
+
+ (src/map)
+ skill.c - skill_unit_onout() 修正
+
+--------------------
+//1148 by eigen
+
+・ストリップスキルが詠唱中断されないよう変更
+・ストリップスキル成功率のスキルレベル比重を5に変更
+・バックスタブの射程を武器に関係なく1に変更
+・バックスタブ使用時、弓を装備しているならダメージ半減に変更
+・アシッドテラーとデモンストレーションが詠唱中断されるよう変更
+・アシッドテラー使用後、相手の鎧を破壊することに成功した場合ショックエモを出すよう変更
+・メルトダウンで破壊できる箇所を武器と鎧のみに変更
+・ダンサーバードの演奏スキル範囲外に出ても効果が20秒持続するよう変更
+(ただし私を忘れないでと合奏スキルは除く)
+・倉庫の最大収容量を300に変更
+(以上thanks to 本鯖相違スレPart3 >>115氏)
+・メルトダウン鎧破壊確率を0.7〜7%に変更
+
+ (db)
+ skill_db.txt - cast_cancel、rangeの修正
+ skill_unit_db.txt - (1148-fixの取り込み)
+ (src/common)
+ mmo.h - MAX_STORAGEを300に
+ (src/map)
+ battle.c - battle_calc_pc_weapon_attack() 修正
+ skill.c - skill_additional_effect(), skill_castend_nodamage_id(),
+ skill_castend_damage_id(), skill_unit_onout() 修正
+
+--------------------
+//1147 by eigen
+
+・インデュア使用後、10秒経たないと再使用できないよう変更
+・シーズモードではインデュアを使用するとMDEFが上がるだけに変更
+・残影使用後、2秒経たないと阿修羅を使用できないよう変更
+
+ (src/map)
+ map.h - #define MAX_SKILL_ID, unsigned int skillstatictimer[MAX_SKILL_ID] 追加
+ clif.c - clif_parse_UseSkillToId(), clif_damage() 修正
+ skill.c - skill_castend_nodamage_id(), skill_castend_pos2(), skill_use_id() 修正
+ pc.c - pc_setnewpc(), pc_authok() 修正
+ status.c - status_get_dmotion() 修正
+ battle.c - battle_calc_damage() 修正
+
+--------------------
+//1146 by eigen
+
+・インデュア使用時Lvに応じてMDEFが上がるように変更
+・インデュア使用中7回ダメージを受けると解除するよう変更
+・石投げの固定ダメージを50に変更
+
+ (src/map)
+ battle.c - battle_calc_damage(), battle_calc_misc_attack() 修正
+ status.c - status_calc_pc(), status_change_start(), status_change_end() 修正
+
+--------------------
+//1145 by End_of_exam
+
+・start のチェック間隔が短すぎたのを修正(start)
+・skill_unit_effect() から無限ループに突入して、スタックオーバーフローで落ちる
+ 可能性があるバグを修正(skill.c)
+・ペットの読み込みに失敗した時に落ちるバグを修正(pet.c)
+・2重ログインの切断処理が違っていたバグを修正(map.c)
+
+・1142のマグヌスエクソシズムの修正を元に戻す(skill.c)
+・メディタティオのSP回復量修正の取り込み(skill.c thanks to ななしさん)
+
+ (/)
+ start - チェック間隔を修正
+
+ (src/map)
+ map.c - map_quit() 修正
+ pet.c - pet_recv_petdata() 修正
+ skill.c - skill_unit_onplace_timer() , skill_unit_effect() 修正
+ status.c - status_calc_pc() 修正
+
+--------------------
+//1144 by 聖
+
+・VCでコンパイルしたとき警告が出るのを修正。
+・簡易アイテム・モンスター召還コマンド@imを追加。
+・@im追加に伴いAEGISで使われている/item,/monsterを実装。
+ (AEGISの仕様に則り装備は1個単位・未鑑定で
+ ほかのアイテムは30個単位・鑑定済みで出ます。)
+・@monsterを召還匹数入力なしで召還できるようにした。
+・コマンド入力の際とある条件を満たすと
+ バッファオーバーフローが発生するバグを修正。
+ (src/map)
+ atcommand.h 修正。
+ atcommand.c
+ atcommand_monster() 修正。
+ atcommand_itemmonster() 追加。
+ clif.c
+ clif_parse_GMkillall() 修正。
+ clif_parse_GMsummon() 修正。
+ clif_parse_GMitemmonster() 追加。
+ status.c
+ status_change_start() 修正。
+ (db)
+ packet_db.txt 修正。
+ (conf)
+ msg_athena.conf 修正。
+ atcommand_athena.conf 修正。
+
+--------------------
+//1143 by End_of_exam
+
+・map_quit(), pc_setpos() を色々整理(map.c pc.c)
+・モンスターがバシリカを使うと落ちるバグを修正(skill.c)
+・ボスモンスターにロキの叫びが効いていたのを修正(mob.c)
+・ダンス途中にサーバー内の別のマップに移動した場合、スキルユニットが消えない
+ (転送前のマップに残っている)バグを修正。(pc.c)
+・1134でサーバー間のワープポータルを使った時に、スキル使用者が乗ったらサーバーが
+ 落ちるバグを修正(skill.c)
+・1134でハエの羽を使ってサーバー間を移動した場合、アイテムが減らないバグを修正(pc.c)
+
+ (src/map)
+ map.c - map_quit() 修正
+ mob.c - mobskill_castend_id() , mobskill_castend_pos(),
+ mobskill_use_id(), mobskill_use_pos() 修正
+ pc.c - pc_useitem(), pc_setpos() 修正、pc_remove_map() 追加
+ pc.h - pc_remove_map() 追加
+ skill.c - skill_castend_nodamege_id(), skill_unit_onplace() 修正
+
+--------------------
+//1142 by づん
+・マグヌスエクソシズムで種族にアンデットを持つモンスターに当たらなかったのを修正
+ (src/map)
+ skill.c - && race!=1を追加
+
+--------------------
+//1141.1 by BDPQ銀 [ 2005/02/21 ]
+・1141の添付忘れの追加です。申し訳ありませんでした。
+・GMコマンドを行った時のメッセージを追加しました。
+
+ (conf)
+ msg_athena.conf - 113〜117 追加 (@reload〜 を行った時のメッセージを追加)
+
+--------------------
+//1141 by BDPQ銀 [ 2005/02/20 ]
+・GMコマンドを追加
+ @reloadatcommand - atcommand_athena.conf を再読込する
+ @reloadbattleconf - battle_athena.conf を再読込する
+ @reloadgmaccount - gm_account_filename (デフォルト 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 を再読込する
+・GMコマンド「@reloadmobdb」でペットのデータベースも再読込するように変更
+ * @reload〜 にはクライアントのリログが必要な場合も有ります。
+・GMコマンド「@who+」でレベルも表示するように変更
+・ヒールを何レベル以上で9999固定にするかのオプション(heal_counterstop)追加
+
+ (conf)
+ atcommand_athena.conf - reloadatcommand reloadbattleconf reloadgmaccount reloadstatusdb reloadpcdb 追加 (デフォルト99)
+ battle_athena.conf - heal_counterstop 追加 (デフォルト11)
+ help.txt - reloadatcommand reloadbattleconf reloadgmaccount reloadstatusdb reloadpcdb who+ の説明を追加
+
+ (doc)
+ conf_ref.txt - 5. conf/battle_athena.conf 編集 (heal_counterstop の説明とサンプルを追加)
+ - 6. atcommand_athena.conf 編集 (説明とサンプルに再読込関連を追加)
+
+ (src/map)
+ atcommand.c - AtCommandInfo atcommand_info 編集 (構造体定義)
+ - atcommand_whop() 編集 (プレイヤーのレベルも表示するよう変更)
+ - atcommand_reloadatcommand() 追加 (atcommand_athena.conf 再読込)
+ - atcommand_reloadbattleconf() 追加 (battle_athena.conf 再読込)
+ - atcommand_reloadgmaccount() 追加 (gm_account_filename 再読込)
+ - atcommand_reloadstatusdb() 追加 (ステータス関連DB 再読込)
+ - atcommand_reloadpcdb() 追加 (プレイヤー関連DB 再読込)
+ - atcommand_reloadmobdb() 編集 (ペットのデータベースも読込むよう変更)
+ atcommand.h - AtCommandType 編集 (構造体定義)
+
+ battle.c - battle_config_read() 編集 (heal_counterstop の追加)
+ battle.h - Battle_Config 編集 (heal_counterstop の追加)
+
+ skill.c - skill_castend_nodamage_id() 編集 (9999ヒール部を battle_athena.conf を参照するよう変更)
+
+ pet.h - int read_petdb(); 追加 (ペット関連DB 再読込用)
+
+ pc.h - int pc_readdb(void); 追加 (プレイヤー関連DB 再読込用)
+
+ status.h - int status_readdb(void); 追加 (ステータス関連DB 再読込用)
+
+--------------------
+//1140 by eigen
+・一部の環境でathena-startとstartが正常に動作していなかったバグを修正
+
+ athena-start - 改行コードを0Aに統一
+ start - 改行コードを0Aに統一
+
+--------------------
+//1139 by もっさり
+・NPC取り巻き呼び戻しスキル実装
+・コメントされてる9999ヒール(skilllv>10の時)、広範囲メテオ(skilllv>10の時)、広範囲ハンマーフォール(skilllv>5の時)のコメント取り外し。
+・広範囲lovの付け加え(skilllv>10の時)
+例
+1312,取り巻き呼び戻し@タートルジェネラル,attack,354,1,3000,0,0,no,self,always,0,,,,,,10
+1063,9999ヒール@ルナティック,idle,28,11,10,2000,60000,yes,self,always,0,,,,,,
+
+ (src/map)
+ skill.c npc_recallスキル追加,上記のコメント取り外し
+ skill.h NPC_RECALL = 354を追加
+ mob.c スキル追加のために「取り巻きモンスターの処理」部分に付け加え
+ mob.h int mob_countslave(struct mob_data *md);を追加
+ map.h struct mob_dataにrecall_flagとrecallmob_countメンバー追加
+ (db)
+ skill_db.txt スキル追加
+
+--------------------
+//1138 by End_of_exam
+
+・1132のsocket.cに紛れ込んでいたかなり深刻なバグ(送信データがランダムに
+ 書き換わる可能性があるバグ)を修正(socket.c)
+・1134で組み込んだアイテムdupe対策が不完全だったのを修正(pc.c party.c guild.c)
+
+ (src/common/)
+ socket.c - send_from_fifo() 修正
+
+ (src/map)
+ pc.c - pc_setpos() 修正
+ party.c - 色々修正
+ guild.c - 色々修正
+
+--------------------
+//1137 by いど
+
+・サーバースナップショット
+
+--------------------
+//1136 by by eigen
+
+・1135で消えていたbattle_athena.confの項目とデフォルト値を復活
+・conf_ref.txtにnext_exp_limitの説明を追加
+
+ (conf)
+ battle_athena.conf - 消えた項目とデフォルト値を復活
+ (doc)
+ conf_ref.txt - next_exp_limitの説明を追加
+
+--------------------
+//1135 by by Toshi^2
+・パッチ1125で修正された、経験値の上限設定を従来方式の制限無しも選べるように変更
+
+ (db)
+ battle_athena.conf - next_exp_limitを追加。
+ (src/map)
+ battle.c - battle_config_read() 修正
+ battle.h - struct Battle_Config{}に int next_exp_limit; を追加。
+ pc.c - pc_gainexp() 修正
+
+--------------------
+//1134 by End_of_exam
+
+・1132で#undef closeを忘れていたバグを修正(socket.c)
+・1133のアイテムdupe対策が不完全だったのを修正(map.c)
+・athena-start stop , kill の順番をmap -> char -> login に変更
+ (athena-start thanks to eigenさん)
+
+ (/)
+ athena-start - athena-start stop , kill の順番修正
+
+ (src/common)
+ socket.c - #undef close 追加
+
+ (src/map)
+ map.c - map_quit() 修正
+
+--------------------
+//1133 by End_of_exam
+
+・mapflag nosave が指定されたマップで死んでリスタートする時に、セーブポイントが
+ 別マップサーバーにあると、(nul,0,0)に飛ばされていたバグを修正(pc.c)
+・マップサーバーを分配している時に、細工をした特殊なツールを使うことによって、
+ アイテムがdupeできたバグを修正。(pc.c)
+・buildin_menu, buildin_select() がバッファオーバーフローを起こしていた
+ バグを修正(script.c)
+
+ (src/map)
+ pc.c - pc_makesavestatus(), pc_setpos(), pc_autosave_sub() 修正
+ script.c - buildin_menu(), buildin_select() 修正
+
+--------------------
+//1132 by End_of_exam
+・@users コマンド(サーバー内の人数マップを表示)を追加(atcommand.c / h)
+・guild_check_alliance() を呼び出すときのチェックを追加(mob.c battle.c)
+・マップサーバー分配時にギルドのメンバーが抜けた時、そのギルドメンバーが
+ 一人もログインしていないマップサーバーが落ちていたのを修正(guild.c)
+・1130で見切りの回避率上昇が消えていたのを戻す(status.c)
+・pid 対応版のstart, athena-start を統合(start , athena_start)
+・田代砲対策、Shinomoriさんの do_sendrecv() 高速化を組み込む
+ (socket.c socket.conf Makefile)
+・socket の高速化
+ 1. FIFOFLUSH が実行される頻度を下げる(socket.c char.c)
+ 2. 不正なfdを0 に変更(socket.c socket.h chrif.c char.c)
+
+ (/)
+ start - pid ファイルに対応するように修正
+ sthena-start - pid ファイルに対応するように修正
+ Makefile - "-D_XOPEN_SOURCE -D_BSD_SOURCE" 追加
+
+ (conf/)
+ help.txt - @users 追加、@mes の修正
+ socket.conf - アクセス制限の設定ファイル
+
+ (src/common/)
+ socket.c - アクセス制限の追加、色々高速化
+ socket.h - FIFO命令の高速化
+
+ (src/char/)
+ char.c - parse_tologin(), parse_char() 更新
+
+ (src/map/)
+ atcommand.c - @users 追加
+ atcommand.h - @users 追加
+ battle.c - battle_calc_damage() 修正
+ chrif.c - 不正なfdを0 に変更したのに伴う修正
+ guild.c - guild_member_leaved() 修正
+ mob.c - mob_gvmobcheck() 修正
+ status.c - status_calc_pc() 修正
+
+--------------------
+//1131 by eigen
+・ギルド拡張の人数増分を+2/Lvから+4/Lvに変更
+・メテオストームにスタンがかかるよう修正
+・ロードオブヴァーミリオンに暗闇がかかるよう修正
+・ヒルトバインディングを取っていればSTR+1 ATK+4が付くよう変更
+・ヒルトバインディングを取っていればAR・OT・WPがの効果時間が10%長くなるよう変更
+・AR・OTのパーティーメンバー効果時間減少を撤廃
+・フロストダイバーで凍結する際、凍結時間がMDEFに影響されるよう変更
+・skill_db.txt、skill_require_db.txt、skill_cast_db.txtをOWNや各職Wikiなどを参考に修正
+
+ (src/map)
+ skill.c
+ status.c
+ (db)
+ skill_db.txt
+ skill_cast_db.txt
+ skill_require_db.txt
+
+--------------------
+//1130 by eigen
+・所持限界量増加の+100/Lvを+200/Lvに修正
+・シーフの上位職に於いて回避率増加のFlee上昇率+3/Lvを+4/Lvに修正
+・アサシン系が回避率増加を取得している場合、移動速度が+0.5%/Lvになるよう修正
+・プレッシャーのSP攻撃を実装
+・プリザーブ、フルストリップ、武器精錬、スリムピッチャー、フルケミカルチャージ
+をdbに追加
+
+ (src/map)
+ skill.c - skill_additional_effect() 修正
+ status.c - status_calc_pc() 修正
+ (db)
+ skill_db.txt
+ skill_cast_db.txt
+ skill_require_db.txt
+ skill_tree.txt
+
+--------------------
+//1129 by En_of_exam
+
+・NPC イベントが重複した場合のメモリ解放手順が違っていたバグを修正
+ (npc.c thanks to TOSHI^2さん)
+
+ (src/map)
+ npc.c - npc_parse_script() 修正
+
+--------------------
+//1128 by 悩める人
+・アイテムを消費せずに使用するかのオプション追加
+・カード、装備品、エル・オリのドロップ率を別に設定出来るようにオプション追加
+・battle_athena.confの初期設定で矢・聖水等を作成時に名前を付けないように変更
+ (本鯖ではまだ来てないと思ったので初期設定を変えました)
+ (src/map)
+ battle.c
+ mob.c
+ pc.c
+ battle.h
+ (conf)
+ battle_athena.conf
+
+--------------------
+//1127 by End_of_exam
+
+・getarraysize() が正しい値を返さないバグを修正(script.c)
+ このバグの影響で、deletearray() 命令の動作が正常なものと異なっていました。
+
+・buildin_deletearray() の最適化(script.c)
+・シグナル処理中に再度シグナルが呼ばれる可能性に対処する(core.c)
+・委託販売を追加してみる(npc_test_seller.txt)
+
+ (src/map)
+ script.c - getarraysize() , buildin_deletearray() 修正
+
+ (src/common)
+ core.c - sig_proc() 修正
+
+ (script/sample)
+ npc_test_seller.txt - 委託販売NPC
+
+--------------------
+//1126 by eigen
+・メモライズの効果回数と詠唱短縮比率をそれぞれ5回、1/2に修正
+
+ (src/map)
+ skill.c - 1/3になっているのを1/2に修正
+ status.c - 3回になっているのを5回に修正
+
+--------------------
+//1125 by lizorett
+・ブランディッシュスピアのノックバックを3セルにし、ミス時にはノックバックしない
+よう変更
+・スピアスタブを対象から自分に向かって4マスの範囲攻撃に変更(本鯖仕様)
+・鷹/投石をニュマで防げるよう変更
+・ボウリングバッシュが対象にミスした場合にはノックバックしないよう変更
+・ソウルブレイカーのダメージ計算、ニュマでミスになるよう変更
+・獲得経験値の上限(現レベルの必要経験値-1)を設定
+・バジリカ展開時に展開者はノックバックしないよう変更
+・メテオアサルトを即時発動、使用者中心、詠唱500ms固定、エフェクト有に変更
+・ストリップウェポン時のmobの攻撃力低下を10%に変更
+・掛けられているものより低レベルのブレスにより呪い/石化が解除できるよう変更
+・ソウルバーン/マインドブレーカー/ソウルチェンジ実装
+・シャープシューティングを射線にいる敵にもダメージを与えるよう変更、クリティカル
+確率+20%で防御無視ダメージに変更
+・投石など一部のスキルが草などに1ダメージにならない問題を修正
+
+ (db)
+ skill_db.txt- BDS/メテオアサルト変更、スキル追加
+ skill_cast_db.txt
+ - スキル追加
+ skill_require_db.txt
+ - スキル追加
+ (src/map)
+ battle.c - ソウルブレイカーのダメージ計算を変更
+ - シャープシューティングのクリティカル確率修正
+ - 鷹/投石をニュマで防げるよう変更
+ skill.h - SC_MINDBREAKER追加
+ skill.c - BDS/BBのノックバックを修正
+ - スピアスタブを範囲攻撃に変更
+ - メテオアサルト修正
+ - ソウルバーン/マインドブレーカー/ソウルチェンジ実装
+ path.c - シャープシューティングの射線計算を追加
+ pc.c - 獲得経験値の上限(前のレベルの経験値-1)を設定
+ status.c - マインドブレーカーのmatk上昇/mdef減少の実装
+ map.h - シャープシューティングの射線計算用構造体を追加
+
+--------------------
+//1124 by もっさり
+敵が使う爆裂波動実装
+効果
+atk1,atk2 1000*skilllv加算
+hit 20*skilllv加算
+
+ (src/map)
+ skill.c
+ skill.h NPC_EXPLOSIONSPIRITS関係を追加
+ status.c
+ (db)
+ skill_db.txt
+ skill_cast_db.txt
+
+
+
+--------------------
+//1123 by Nameless
+・Athenaサービス化キットを追加しました。(NT/2000/XP/2003/LH)
+ 詳しい方法はdoc内のinstasv.txtを参照してください
+
+ (bin/tool)
+ instasv.bat - サービス登録用バッチ
+ delasv.bat - サービス抹消用バッチ
+ (doc/)
+ instasv.txt - 説明書(テキスト版)
+
+--------------------
+//1122 by End_of_exam
+
+・1120のstrdb のキーを保存し忘れていたバグ修正(db.c)
+・念のため1121、1120のreadme をマージして、両方に含まれていたファイルを添付する
+
+ (src/char)
+ char.c - 1121のものを添付
+
+ (src/common)
+ mmo.h - 1121のものを添付
+ db.h - 1120のものを添付
+ db.c - strdb のキーを保存するようにする
+
+ (src/map)
+ battle.c - 1121のものを添付
+ guild.c - 1121のものを添付
+ guild.h - 1121のものを添付
+ mob.c - 1121のものを添付
+ skill.c - 1121のものを添付
+ skill.h - 1121のものを添付
+
+--------------------
+//1121 by _
+
+・ロードナイト/パラディンのログイン時のエラー対策
+・Gvでの同盟の扱いを修正
+ エンペリウム攻撃不可、ガーディアンから攻撃されないように修正
+・新追加スキル用の定数追加修正
+
+ (src/char)
+ char.c
+ 修正 mmo_char_send006b()
+ (src/common)
+ mmo.h
+ 修正 MAX_SKILL=500
+ 追加 新ギルドスキル(コメントアウトしてます)
+ (src/map)
+ battle.c
+ 修正 battle_calc_damage()
+ guild.c
+ guild.h
+ 追加 guild_check_alliance()
+ mob.c
+ 修正 mob_gvmobcheck()
+ skill.c
+ 修正 SkillStatusChangeTable[] (420-490)
+ skill.h
+ 修正 MAX_SKILL_DB=500
+ 追加 475以降の新スキルID
+
+--------------------
+//1120 by End_of_exam
+
+・db_foreach()の呼び出し先でdb_erase()が呼び出されているされている場合、
+ 複数回同じキーで関数を呼び出す可能性があるバグを修正(db.h db.c)
+
+ cygwin上で2重freeをした場合、プログラムが暴走する可能性があります。
+ char鯖との接続が切れたmap 鯖が暴走するバグは、これに起因しています。
+
+ (src/common)
+ db.c - db_eraseを一時的にロックする機能追加
+ db.h - db_eraseを一時的にロックする機能追加
+
+--------------------
+//1119 by ICO
+
+・NPCスキル(ブレイクウェポン、ブレイクアーマー、ブレイクヘルム、ブレイクシールド)の実装
+・battle_athena.confにmonster_damage_delayを追加。
+ noを指定するとFW等のノックバックスキルの挙動が多少本鯖に近づくかも…?
+
+ (db)
+ skill_db.txt
+ skill_cast_db.txt
+ (conf/)
+ battle_athena.conf
+ monster_damage_delay 追加
+ (map/)
+ battle.c
+ battle.h
+ mob.c
+ monster_damage_delay関連を追加
+ skill.c
+ skill.h
+ skill_additional_effect,skill_castend_damage_id 修正
+
+--------------------
+//1118 by BDPQ銀 [ 2005/02/10 ]
+■データベースが変更されています。導入時には御注意ください■
+・スキルの固定詠唱時間を skill_cast_db.txt に移動。
+ 詠唱時間の計算は、 (通常詠唱 + 固定詠唱)*メモライズ補正 となります。
+ skill_cast_dbの書式は
+ [ID],[cast_list(通常詠唱)],[fixed_cast_list(固定詠唱)],[delay_list(ディレイ)],[upkeep_time(維持時間)],[upkeep_time2(維持時間2)] です。
+・アブラカタブラをディレイにASPDによるディレイを付加しないよう修正(即発動スキル用)
+・新2次職のskill_cast_dbに関する項目の修正
+
+ (src/map)
+ skill.c - skill_use_id() 修正 (詠唱時間計算部 ・ メモライズ/魔法力増幅 固定詠唱時間部削除)
+ (アブラカタブラの修正)
+ skill_use_pos() 修正 (詠唱時間計算部)
+ skill_readdb() 修正 (cast_db 読込部)
+ skill.h - skill_db 修正 (fixedcastの追加)
+ skill_get_fixedcast() 追加 (dbから固定詠唱時間の取得)
+
+ (db)
+ skill_cast_db.txt- fixed_cast_list 追加 (固定詠唱時間)
+ 魔法力増幅-700、メモライズ-5000に設定
+
+ 361(アスムプティオ) 修正 ( R.O.M 776を参考に詠唱/ディレイを修正 )
+ 365(マジッククラッシャー)修正 ( R.O.M 776を参考に詠唱/ディレイを追加 )
+ 373(ライフ置き換え) 修正 ( R.O.M 776を参考にディレイを修正 )
+ 375(ソウルバーン) 追加 ( R.O.M 776を参考にディレイを追加 ) ( スキル効果は実装していません )
+ 381(ファルコンアサルト) 修正 ( R.O.M 776を参考にディレイを修正 )
+ 383(ウィンドウォーク) 修正 ( R.O.M 776を参考に詠唱/ディレイ/効果時間を修正 )
+ 384(メルトダウン) 修正 ( R.O.M 776を参考に詠唱/ディレイを修正 )
+ 387(カートブースト) 修正 ( R.O.M 776を参考に効果時間を修正 )
+ 398(ヘッドクラッシュ) 修正 ( R.O.M 776を参考にディレイ持続時間を修正 )
+ 406(メテオアサルト) 修正 ( R.O.M 776を参考に詠唱/ディレイを追加 )
+
+ (doc)
+ db_ref.txt - 1. db/skill_cast_db.txt 修正 (fixed_cast_listの項目を追加)
+
+--------------------
+//1117 by End_of_exam
+
+・ベナムスプラッシャーを毒状態の敵に使用したが、失敗した時(敵モンスターの
+ HPが2/3 以上だった時)に深刻なメモリリークが起きていたバグを修正(skill.c)
+・あなたに逢いたいが失敗した時に深刻なメモリリークが起きていたバグを修正(skill.c)
+
+ 上2つは、共にmap_freeblock_unlock() が抜けている為に発生していました。
+ ドロップアイテム、スキルユニット、取り巻きなどで確保されたメモリが、
+ 以降全く開放されなくなるというかなり深刻なメモリリークのバグです。
+ map_freeblock_lock() を呼ぶルーチンを修正する場合、ルーチンを抜けるときに、
+ map_freeblock_unlock() が呼ばれるように気を付けてください(return に注意!)。
+
+・map_freeblock_unlock() を忘れても良いように、定期的にblock_free_lockを
+ クリアするように修正(map.c)
+・Debian好き さんのMPVモンスターのHP計算がオーバーフローするバグ修正の取り込み(status.c)
+
+ (src/map)
+ skill.c - skill_castend_nodamage_id() 修正
+ map.c - map_freeblock_timer() 追加、 do_init() 修正
+ status.c - status_get_max_hp() 修正
+
+--------------------
+//1116 by End_of_exam
+
+・copyarray で同じ配列を指定した時、コピー先の要素番号がコピー元の要素番号より
+ 大きい時の動作が不定になっていたバグを修正(script.c npc_test_array.txt)
+・関数宣言せずに関数定義したユーザー定義関数を呼び出そうとすると、エラーが出る
+ バグを修正(script.c)
+・スクリプトのオーバーフロー判定基準を緩和させる(script.c)
+・ギルドの告知に\nが使えるバグを修正(int_guild.c)
+・イベントdbのメモリリーク修正が不完全だったのを修正(npc.c)
+・db_foreachのチェック方法を変更(db.c)
+・起動時に*.pid (プロセスIDのファイル)を作成するようにする(core.c)
+・経験値所得が全体発言になっているバグを修正(clif.c)
+・叫ぶを全体発言に変更(clif.c)
+・testerさん作成のVC++ Toolkit2003 用のバッチファイルを同伴(vc07_make.bat)
+
+ (/)
+ vc07_make.bat - testerさん作成のバッチファイルを同伴
+
+ (src/common)
+ db.c - db_foreach() 修正
+ core.c - main() 修正 , pid_create() , pid_delete() 追加
+
+ (src/char)
+ int_guild.c - mapif_parse_GuildPosition() 修正
+
+ (src/map)
+ clif.c - clif_disp_onlyself() , clif_onlymessage() 修正
+ npc.c - npc_parse_script() 修正
+ script.c - buildin_copyarray() , parse_syntax() 修正
+
+ (script/sample)
+ npc_test_array.txt - チェック項目の追加
+
+--------------------
+//1115 by いど
+
+・サーバースナップショット
+
+--------------------
+//1114-fix1 by 稀枝
+
+・zlibをmap-server内部に取り込めるオプションを追加
+・makeがMinGW+Msysで正常に通るよう修正
+・win32_start.batにチェック追加
+
+ (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が指定されている時のみコンパイルします。
+
+ (src/map/)
+ Makefile - MinGWの場合、引数-wsock32を追加します。
+ - LOCALZLIBが指定されている場合リンクします。
+ - LOCALZLIBが無い場合だけzlib.aをリンクします。
+ (src/char/)
+ Makefile - MinGWの場合、引数-wsock32を追加します。
+ (src/login/)
+ Makefile - MinGWの場合、引数-wsock32を追加します。
+ (src/common/grfio.c) - Zlibを内包した際に_WIN32と競合しないよう変更
+ - zlib_win32.h zconf_win32.hを廃止
+
+ (./)
+ Makefile - #Link Zlib(NOTrecommended)、zlibを内包します。
+ win32_start.bat - athena-startの半クローン化。初期起動でこけなくなるはずです。
+
+--------------------
+//1113 by End_of_exam
+
+・linux 環境で大量のwarning が出ていたのを修正(malloc.h)
+・map_quit() でcharid_db のデータを削除しないように変更(map.c thanks to lemitさん)
+・pc_eventtimer(), npc_event_timer() のfree()で警告が出ていたのを修正(pc.c npc.c)
+・map_eraseipport() がメモリリークしていたバグを修正(map.c)
+・addtimer 命令に指定するイベント名が23文字に制限されていたのを無制限にする(pc.c)
+・pc_cleareventtimer() , pc_deleventtimer() がメモリリークしていたバグを修正
+ (pc.c thanks to Shinomoriさん)
+
+ (src/common/)
+ malloc.h - "#undef strdup" を追加
+
+ (src/map/)
+ npc.c - npc_event_timer() 修正
+ pc.c - pc_eventtimer() , pc_addeventtimer() , pc_cleareventtimer(),
+ pc_deleventtimer() 修正
+ map.c - map_quit() , map_eraseipport() 修正
+
+--------------------
+//1112 by lizorett
+・PCがマップ移動中に、そのPCが設置したスキルユニットのskill_unit_onoutが呼ばれ
+ない問題(map-severが落ちる可能性あり)を修正
+・バジリカを仕様に併せて修正
+・正常終了時にchar-serverがコアダンプする問題を修正
+・mobがウォータボール使用時のヒット数を修正(skill_db.txtに指定した数ヒット)
+・コーティングされている場合にはストリップできないよう変更
+・属性場を使用した際、前に出していた属性場が消えないことがある問題を修正
+
+ (db)
+ skill_db.txt
+ - mobのウォータボールのカウント数をDBにいれた
+ skill_unit_db.txt
+ - バジリカを修正
+ (char)
+ char.c - do_final()のchar_datのメモリ開放位置を変更
+ (map)
+ clif.c - バジリカ時に攻撃などができないよう変更
+ map.c - バジリカ位置をセルのフラグに入れるよう変更
+ map.h - バジリカ用のセルフラグ追加
+ mob.c - バジリカに進入できないように変更
+ pc.c - 移動時(蝿など)にバジリカを消すよう修正
+ skill.c - バジリカ修正
+ - ウォータボール修正
+ - skill_unit_onoutの呼び出しを修正
+ - コーティングされている箇所はストリップ不可に変更
+
+--------------------
+//1111 by Toshi^2
+・pc系mobに転生&養子を指定できるように変更。
+ db/mob_avail.txtに説明文を追加したので、それを参照してください。
+
+ (db)
+ mob_avail.txt - 引数の説明を追加。
+ (src/map)
+ clif.c - clif_mob0078() clif_mob007b() clif_pet0078() clif_pet007b() 修正
+ mob.c - mob_readdb_mobavail() 修正
+ mob.h - 構造体mob_dbに「short trans」を追加、mob_availのtransフラグを格納。
+
+--------------------
+//1110 by lizorett
+・ユニット系スキル(ニュマ、ダンス等)でmap_server.exeが落ちる問題を修正
+ (トレースではskill_unit_onplace/skill_unit_onoutで落ちる)
+・サンクチュアリの人数カウント方法を変更(本鯖仕様)
+・マグヌスの範囲を広げ、使用したユニットが削除されるようにする(本鯖仕様)
+・デボーションの距離が短くなる問題を修正(バグ報告スレッド part8 >>15)
+・デボーションでnullpoが出る問題を修正
+・mobのインティミデイトが成功するとmap-serverが落ちる問題を修正(バグ報告スレッ
+ド part8 >>42)
+・ウォーターボールの仕様を本鯖に近づける(水場が少ない場合にはhit数が減る、
+デリュージ上で実行するとユニットが欠ける)
+・ファーマシーの製造成功確率のコードを変更
+
+ (db)
+ skill_unit_db.txt
+ - ユニットID/配置などをdb化しています
+ (src/map)
+ map.h - skill_unit_groupのメンバ変更
+ mob.c - 移動時にスキルユニット判断(skill_unit_out_all/skill_unit_move)
+ を追加
+ - 足元置き/重複置き判断を変更
+ pc.c - 移動時にスキルユニット判断(同上)を追加
+ - 無敵時間が終わる際にスキルユニット判断(同上)を追加
+ skill.h - skill_dbの参照関数をdefineに変更
+ - スキル配置を入れるskill_unit_layout構造体を定義
+ - SC_WATERBALL削除
+ skill.c - unit_idをdb化(skill_unit_db.txt)
+ - スキルユニットのレイアウトを起動時に定義
+ - 移動時にスキルユニット判断(同上)を追加
+ - 足元置き/重複置き判断を変更
+ - スキルユニットの移動処理を変更
+ - デボーションの修正
+ - mobのインティミデイトで落ちる問題を修正
+ - ウォータボールの仕様変更
+ status.c- SC_WATERBALLの処理を削除
+
+--------------------
+//1109 by End_of_exam
+
+1108に引き続きメモリリークのバグ修正です。2つ共に深刻なバグなので、
+最新版に更新しない方でも修正することをおすすめします。
+
+・ペットが床にアイテムを落とす時、ペットを卵に戻す時にメモリリークが発生
+ していたバグを修正。(pet.c)
+
+・キャラクター依存一時変数の利用したキャラがログアウトするとメモリリークが
+ 発生していたバグを修正(map.c)
+
+ (src/map)
+ map.c - map_quit() 修正
+ pet.c - pet_remove_map(), pet_return_egg() pet_lootitem_drop() 修正
+
+--------------------
+//1108 by End_of_exam
+
+・以前作ったメモリマネージャーを統合。(malloc.c core.c)
+ 有効にするには、malloc.c内部のコメントを外す必要があります。開発に協力して
+ 頂ける方は、メモリマネージャを有効にして、チェック結果(map-server.logなど)を
+ アップロードしてくれると助かります。
+
+ 1. guild.c がコンパイルエラーになったので修正(guild.c)
+ 2. pet.c がメモリ解放し忘れていたので、do_final_pet() を追加(pet.c)
+ 3. do_final_socket を追加して、終了時に全ての接続を切断する(socket.c)
+ 4. deplicate の元スクリプトが終了時にfreeされないバグを修正(npc.c)
+ 5. do_final_script で開放されないメモリがあるバグを修正(script.c)
+ 6. do_init_*** の呼ばれる順番がおかしかったのを修正(map.c)
+ 7. イベント名が重複したときにメッセージを出すように変更(npc.c)
+ 8. map_quit() 内部でcharid_db をfreeし忘れているバグを修正(map.c)
+
+ 特に8.は最重要で、キャラがログアウトする度にメモリリークが発生するという、
+ 最悪な結果になっていました。気になる方は修正しておきましょう。
+
+・delete_session でNULLチェックを怠っていたバグを修正(socket.c)
+・chrif_disconnect_sub でdelete_session を呼ぶように変更(chrif.c)
+・マルチラインコメント(/* 〜 */)の解析を忘れていたバグを修正(npc.c)
+・銀行などのNPC でZenyがMAX_ZENYにならないバグを修正(pc.c)
+・1107の製造確率が一部消されていたのを修正(skill.c thanks to lizorettさん)
+・セージ転職試験のイベントが衝突を起こしていたのを修正(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() 追加
+ malloc.c - メモリマネージャの追加
+ malloc.h - メモリマネージャの追加
+ socket.c - delete_sessionのバグ、do_final_socketの追加
+
+ (src/map)
+ chrif.c - chrif_disconnect_sub() を修正
+ guild.c - guild_recv_info(), guild_castledataloadack() 修正
+ map.c - map_quit() のメモリリーク、do_final,do_init 修正
+ npc.c - npc_parse_script_line() , npc_parse_script() 他修正
+ pc.c - pc_setparam() 修正
+ pet.c - do_final_pet() 追加
+ pet.h - do_final_pet() 追加
+ script.c - do_init_script(), do_final_script() 修正
+ skill.c - skill_produce_mix() 修正
+
+--------------------
+//1107 by code
+・@npctalk, @pettalkコマンド追加
+・ダメージの遅延を実装
+・@mesを全体発言に修正
+・ファーマシーの製造成功確率修正
+・@storageで倉庫が二重で開くことがないよう修正
+・scriptに globalmes, getmapmobs 関数を追加
+
+ (/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
+
+・item_rate_details:1が動かなかったのを修正
+
+ (src/map/)
+ mob.c
+
+--------------------
+//1105 by End_of_exam
+
+・1101のマップの再分配が上手くいかないバグを修正(char.c thanks to Mystleさん)
+
+ (src/char/)
+ char.c - parse_frommap() 修正
+
+--------------------
+//1104 by nameless
+・BCC32のコンパイルオプションなどの最適化
+・BCC32/VC++で最適な最適化オプションを見つけるためのベンチ
+・bcc32_clean.batとbcc32_make.batを統合、クリーンビルドの失敗をしないように。
+
+※P4だからとかOpteronだから特定オプションで早いということではないようです。
+※P4でもロットによっては-5が最適だったり-3 -O2が最適だったりするものがあるようです
+※思い込みでオプションをつけないようにするために作りました。
+※少しでもレスポンスを上げて運用したいという人は活用してください。
+
+ (/)
+ bcc32_make.bat
+
+ 最適化オプションの追加と警告メッセージで深刻ではないものを
+ 完全に表示しないように設定、bcc32_clean.batをmakeに統合した
+ ので確実にクリーンビルドできるようになりました
+
+ bench.bat
+ bench.c
+
+ 最適なコンパイルオプションを見つけるためのベンチです。
+ bench.batでコンパイル&実行が行われます。
+ 結果はbench.txtに格納されますので数値の一番小さいものを選ん
+ でbcc32_make.batの23行目に追加・修正してあげてください。
+ ※初期状態ではbcc32用になっていますので
+--------------------
+//1103 by End_of_exam
+
+・char_athena.conf のdefault_map_typeが0 になっている時に、PVPガイドで
+ セーブした後、PVPエリア内でログアウトしたキャラがログインできなくなる
+ バグを修正。(npc_etc_pvp.txt) 多くの方々からの情報提供感謝します。
+ (npc_etc_pvp.txt 内部の ".gat" の付け忘れと、このミスに対応していない
+ pc.c のバグです。このパッチを当てないでこのバグを修正したい場合、
+ 添付した修正ファイルを参考にしながら、npc_etc_pvp.txtに".gat"を
+ 付加してください。)
+
+・do_final内部で不正な処理を行う場合があるのを修正(map.c thanks to lizorettさん)
+・マップキャッシュの読み込みに失敗したときにメモリリークしていたバグを修正(map.c)
+
+ (src/map)
+ pc.c - pc_setsavepoint() 修正
+ map.c - do_final(), map_cache_read() 修正
+
+ (src/char)
+ char.c - search_mapserver() , parse_char() 修正
+
+ (script/npc/etc)
+ npc_etc_pvp.txt - ".gat" を付加する
+
+--------------------
+//1102 by 人柱さんA
+・バグ報告スレ >>35-37にあった修正版
+ 詳しいことはスレを見てください
+ (src/map)
+ pc.c
+
+--------------------
+//1101 by End_of_exam
+
+・socket関連の修正(socket.c socket.h)
+
+ 1. FIFO関連をfd が不正(fd<=0)の時にも正常に動作するように変更
+ 2. socket.h の内部を色々と整理
+ 3. make_connection() が接続に失敗した時にエラーを返さないバグを修正
+ その変更に合わせて、chrif.c check_connect_char_server() , char.c
+ check_connect_login_server() を修正。これでサーバーゾンビ化のバグは
+ 解決したと思いますが、再発したら報告をお願いします。
+
+・char - map 間のコネクションを見直し(char.c chrif.c map.c map.h)
+
+ 1. char - map 間のコネクションが切れたら、map 鯖に接続しているキャラを
+ 全て切断するようにする。これは、同期を取るのが難しいのと、char鯖との
+ 通信が必要な処理(パーティ、ギルド、ペット他)ができなくなるためです。
+ 2. 複数のmap 鯖で同じマップを担当することがあるバグを修正
+ 3. map 鯖の割り当て方法の見直し
+ 複数のmap 鯖で同じマップを読み込めば、どれか1つが落ちている時でも、
+ 正常なmap 鯖にログインできるようになりました。例えば、同じマップを
+ map鯖AとBに読み込ませておけば、Aが落ちている時にはBに、Bが落ちている
+ 時にはAに転送されます。ただし、優先順位の指定はまだ出来てないので、
+ 1つのmap 鯖に人数が集中しすぎる可能性があります。
+
+ (src/map)
+ chrif.c - map 鯖の割り当て方法の見直し
+ map.c - map 鯖の割り当て方法の見直し
+ map.h - map 鯖の割り当て方法の見直し
+
+ (src/char)
+ char.c - map 鯖の割り当て方法の見直し
+
+ (src/common)
+ socket.c - 色々修正(上記参照)
+ socket.h - 色々修正(上記参照)
+
+--------------------
+//1100 by nyankochan
+・1098の修正
+ (src/map)
+ pc.c
+
+--------------------
+//1099 by End_of_exam
+
+・mapflag nosave が不正な時に起動を中断させるようにする(npc.c)
+・pc_autosave が呼ばれる回数が異常に高くなるバグを修正(pc.c)
+
+pc_autosave() の内部が、
+
+> interval = autosave_interval/(clif_countusers()+1);
+> if(interval <= 0)
+> interval = 1;
+
+という風になっているので、1マップサーバーに200人のキャラが接続してると、
+autosave_interval(def:15 * 1000) / 200 = 0.075 秒ごとに関数が呼ばれます。
+さすがにこの状態だとchar鯖が厳しくなるので、関数を呼び出す最小間隔を
+0.2 秒に変更しました。
+
+ (src/map)
+ pc.c - pc_autosave が呼ばれる回数が異常に高くなるバグを修正
+ npc.c - mapflag nosave が不正な時に起動を中断させる
+
+--------------------
+//1098 by nyankochan
+・入手装備品の個数1固定
+ (src/map)
+ pc.c
+
+--------------------
+//1097 by End_of_exam
+
+主にバグ修正です。バグ報告してくれた皆様に感謝、感謝。
+
+・Zeny増殖対策(pc.c trade.c script.c)
+ 1. 交換、pc_setparam でMAX_ZENY を超える場合があるバグを修正
+ 2. スクリプトにオーバーフロー対策を追加
+
+・ログイン成功時・アカウント変数更新時に無条件にmmo_auth_sync を
+ 呼んでいたのをタイマーを使用した定期更新に変更(login.c login_athena.conf)
+
+・db関係にバグが潜んでいる模様なので、チェック機構を追加する(db.c db.h)
+ 一部アカウントのみログイン不可、倉庫ロスト、@whoで表示されるキャラが
+ 一部消えるなどのバグの原因がdb関連にある模様です。
+ 「db_foreach : data lost %d of %d item(s)」というメッセージが表示
+ された場合はバグがある(dbに入っているはずのデータが消えた)ので、
+ 報告をお願いします。
+
+・ある方法で通常より強いキャラが作れてしまうバグの修正(char.c)
+・ギルドの役職名に不正な文字が使えるバグを修正(int_guild.c)
+・スクリプト内で0での除算時が起こった時にINT_MAXを返すようにする(script.c)
+
+ (conf/)
+ login_athena.conf - autosave_time の追加
+
+ (src/common)
+ db.h - チェック機構の追加
+ db.c - チェック機構の追加
+
+ (src/login)
+ login.c - mmo_auth_sync にタイマーを適用
+
+ (src/char)
+ char.c - 通常より強いキャラが作れてしまうバグの修正
+ int_guild.c - ギルドの役職名に不正な文字が使えるバグを修正
+
+ (src/map)
+ trade.c - MAX_ZENY を超える場合があるバグを修正
+ pc.c - MAX_ZENY を超える場合があるバグを修正
+ script.c - オーバーフロー対策、0での除算時の処理を追加
+
+--------------------
+//1096 by lizorett
+・壁越しにスキルが撃ててしまうバグを修正(バグ報告スレッド part8 >>28)
+
+ (src/map)
+ path.c - 壁越しにスキルが撃ててしまうバグを修正
+
+--------------------
+//1095 by lizorett
+・スクリプトのエスケープ判断を変更
+・スキルユニットグループのgroup_idの範囲を変更
+・skill_unitsetting()で全てのスキルでskill_get_time()を使用するよう変更
+・サイトラッシャーをユニットスキルから範囲攻撃魔法に変更(本鯖仕様)
+
+ (src/map)
+ skill.c - skill_unitgrouptickset_* で skill_id/group_idが重ならないよう
+ にgroup_idの範囲を制限
+ - SkillStatusChangeTableにSC_SAFETYWALL,SC_PNEUMA追加
+ - skill_unitsetting()で全てのスキルでskill_get_time()を使用する
+ よう変更
+ - サイトラッシャーを範囲攻撃魔法に変更
+ npc.c - エスケープ判断をparse_simpleexpr()と同様にし、全角判断を削除
+ (db)
+ skill_cast_db.txt
+ - TS/MS/LoV/FN/SG/HD/GXにupkeep_timeを設定
+
+--------------------
+//1094 by End_of_exam
+
+・サブルーチン呼び出し構文の追加(script.c npc.c npc_convertlabel_db())
+・逆アセンブル処理の追加(script.c , DEBUG_DISASM を有効にしてください。)
+・switch の一時変数消去位置を変更(script.c)
+・RERUNLINEの衝動が怪しかったので修正(script.c / h , map.h)
+・ソースを読みやすくするためにbuildin_*をファイル最後に移動(script.c)
+・新しく加わった構文のサンプルとして「ハノイの塔」を追加(npc_test_hanoi.txt)
+・buildin_getitemname 修正(script.c , 質問スレッド Part14 >>129-130)
+
+・bcc でコンパイルした時に落ちるバグを修正(map.c map_id2bl 内部)
+・Windowsでコンパイルした時に、gettick()のキャッシュが無効になっていたのを
+ 修正(timer.c , thanks to Shinomori)
+
+ (src/common)
+ timer.c gettick() のバグ修正
+
+ (src/map)
+ script.c 色々変更(上記参照)
+ script.h struct script_state 修正
+ npc.c npc_convertlabel_db() で落ちるのを修正
+ map.c map_id2bl() を修正(落ちるのはbcc だけ?)
+ map.h map_session_data 修正
+
+ (doc/)
+ script_ref.txt function 構文の追加
+
+ (script/sample/)
+ npc_test_hanoi.txt ハノイの塔
+
+--------------------
+//1093 by いど
+
+・サーバースナップショット
+
+--------------------
+//1092 by lizorett
+・遠距離攻撃のパス検索アルゴリズムを本鯖と同じになるよう変更
+・ストームガスト、ロードオブヴァーミリオンを重ねた場合、片方からだけダメージを
+受けるよう修正(仕様が不明なので先に見つけたユニットから攻撃するようにしています)
+・アイテムが一つしかない場合、アイテムを使用してもエフェクトが表示されない問題
+を修正
+・セーフティーウォール使用時にアドレス不正となる場合がある問題を修正
+・map_getcell/map_setcellの仕様変更
+・1085のビットマップ対応の痕跡の消去
+・1088のアイスウォールの変更を巻き戻し(本鯖に合わせる)
+・全角判断(npc.c)を修正(For English User Forum >>54)
+
+ (注意) map_athena.confのマップキャッシュ指定を行うパラメータ名を変更しています
+
+ (conf)
+ map_athena.conf - read_map_from_bitmapをread_map_from_cache に変更
+ - map_bitmap_pathをmap_cache_fileに変更
+ (src/map)
+ map.h - セルタイプ名称変更(CELL_CHKHIGH,CELL_CHKTYPE)、
+ 削除(CELL_SET*)
+ - skill_unit_group_ticksetメンバ名変更(group_id -> id)
+ - ビットマップ関連の記述の痕跡を削除
+ map.c - map_getcell() セルタイプ名称変更と若干のコード変更
+ - map_setcell()を1084以前の仕様に戻し、CELL_SETNPCの
+ フラグを追加
+ - map_cache関連の細かな修正
+ npc.c - 全角判断(is_zenkaku)を正確に行うよう変更
+ - map_getcell()のセルタイプ名称変更に追従
+ pc.c - アイテムが一つしかない場合、使用時のエフェクトが表示
+ されない問題を修正
+ - map_getcell()のセルタイプ名称変更に追従
+ skill.c - ストームガスト、ロードオブヴァーミリオンを重ねた場合
+ 片方からだけダメージを受けるよう修正
+ - セーフティーウォール使用時にアドレス不正となる場合が
+ ある問題を修正
+ - map_getcell()のセルタイプ名称変更に追従
+ skill.h - 関数定義変更
+ path.c - 遠距離攻撃のパス検索処理を追加(path_search_long)
+ - map_getcell()のセルタイプ名称変更に追従
+ battle.c - 遠距離攻撃のパス検索を使用するよう変更
+
+--------------------
+//1091 by End_of_exam
+
+** 注意 **
+
+ 今回のパッチは改造内容が複雑なので、導入は慎重に行ってください。
+ status.c / h への分離は、関数名の置き換えだけに留めたつもりですが、
+ 思わぬバグが潜んでいる可能性があります。
+
+・スパゲティ対策の一環として、ステータス計算、状態異常に関わる部分を
+ status.c / h として分離。battle.c から39KB程 , skill.c から41KB程 ,
+ pc.c から38KB程移動できました。少々強引ですが、スキル使用や攻撃などの
+ 処理の流れをつかみやすくするためには、battle.c / skill.c の中身を
+ 減らす必要があると考えたためです。
+
+ 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
+
+・battle.c , script.c の巻き戻りを戻す
+・npc.c の怪しい変更を戻し、きちんとNUL を付け加えるようにする
+・script.c のミスを直す(jump_non_zero => jump_zero 意味が逆になってました…)
+・skill.c の武器修理 のコメントミスを修正
+・WIN32でコンパイルした時、最大接続人数が60人程に制限されていたバグを修正
+
+ (/)
+ athena.dsw , athena.dsp , bcc32_make.bat , src/login/login.dsp
+ src/char/char.dsp , src/map/map.dsp
+ コンパイル条件の変更
+
+ (src/map/)
+ 上の分離に合わせてコンパイルエラーの出ないように修正
+
+--------------------
+//1090 by Sapientia
+・チャットの便利さのために叫ぶ追加 (ギルドチャットと区分するためにウェチギシの前に [叫ぶこと]が付き)
+・atcomand_athena.conf で onlymes を 0で設定して皆使うように活性化
+ オリジナルなのでデフォルトで GMだけ使うことができるように設定しました.
+・@mes [言うこと] で使用
+
+ (src/map)
+ atcommand.c atcommand_charkami 追加
+ atcommand.h
+ clif.c clif_onlymessage 追加
+ clif.h
+ (src/conf)
+ atcommand_athena.conf onlymes 追加
+ help.txt @mes 説明追加
+
+
+--------------------
+//1089 by 聖
+・VC.NET2003でコンパイルすると大量に警告が出るのを修正
+・その他バッファオーバーフロー等の細かいバグ修正
+
+ (src/char)
+ int_guild.c 警告箇所を修正
+
+ (src/map)
+ atcommand.c, battle.c, clif.c, itemdb.c, pc.c, pc.h, script.c, skill.c
+ 警告箇所を修正
+ npc.c 警告箇所とバッファオーバーフロー修正
+
+--------------------
+//1088 by Sapientia
+・ウィザドスキル Icewall このキャラクターやモンスター足もとに設置されることを防止
+・ロードナイトスキル Berserk 使用の時 HPが 1/3になれば回復するバグ修正
+
+ (src/map)
+ pc.c Berserk 修正
+ skill.c Icewall 修正
+
+--------------------
+//1087 by End_of_exam
+
+・マップキャッシュに圧縮機能を追加(1MB程に縮まるようです)
+・npc.c の巻き戻りを修正(質問スレッド Part14 , 111)
+・map_athena.conf のコメントアウトを修正(Athena雑談スレッドPart7 , 146)
+・Windows 用の起動スクリプトを追加してみる(eAthena のを元に改造)
+
+ (/)
+ win32_start.bat Windows 用の起動ファイル
+
+ (src/map)
+ map.c 圧縮機能の追加
+ npc.c 巻き戻りを修正
+
+ (src/common)
+ grfio.c decode_zip , encode_zip のエクスポート
+ grfio.h decode_zip , encode_zip のエクスポート
+
+ (conf/)
+ map_athena.conf 修正
+
+--------------------
+//1086 by End_of_exam
+
+主に1085のバグ修正だったりもします。
+「てめー、1から書き直しやがって」という突っ込みだけは勘弁してくださいませ。
+
+・データ構造の大変更(map.c)
+ マップを削除&追加しても正しく動くように変更
+ マップキャッシュ作成中に強制終了すると再起動時に不安定になるバグを修正
+ 圧縮フラグの追加(需要あるのか不明。compressを真にすると、現在のソースで
+ 読めなくなります。)
+
+・なんか衝動があやしすぎるので、ビットマップ処理を撤廃する(map.c map.h)
+ npc_touch_areanpc : some bug がたくさん出てくる -> 原因不明?
+ 恐らく通行可能判定が正しく設定されていないっぽいんですが謎です。
+ #read_map_from_bitmap の設定を省くとログイン時に落ちるバグを修正
+
+・キャッシュ内に全てのマップがあれば、grf 無しでも動作するように変更。(grfio.c map.c)
+
+ (src/map)
+ map.c バグ修正他
+ map.h バグ修正他
+
+ (src/common)
+ grfio.c ファイルが見つからない時にexit を呼ばないように修正
+
+--------------------
+//1085 by zalem
+・マップデータの読み込みはビットマップファイルから行なえるような機能追加
+
+ grfファイルから一度ビットマップファイルを作成して以後はその
+ 作成されたビットマップフォーマットのファイルからマップ情報を読み込む
+ という方法を採ることによって、map-serverが立ち上がる時マップ情報を読み取る
+ のに掛かる時間がほとんどなくなる、また1intに32個のセル情報が格納できるの
+ で、map情報に関するメモリ使用量も3割り近くまで減るので(そのかわりに
+ ある程度CPUの負担が大きくなる)、追加してみた。
+ conf/map_athena.confのread_map_from_bitmapオプションで利用する
+ かどうかを指定でき、その下にあるmap_bitmap_pathでファイル名を変更する
+ (デフォルトでdb/map.info)
+ まだテスト段階なので、導入はご慎重に(一応Linuxで、いろいろと
+ テストしてみたが...)
+
+・map_getcell()に4番目引数の追加とmap_setcell()の4番目引数の変更
+
+ 関数の利用意図がわかりやすいように、そしてこれからの変更を容易にする
+ ために、map_getcell()とmap_setcell()のそれぞれ4番目の引数を追加、変更してみた、
+ map_getcell()の4番目の引数はmap.hで定義されてるCELL_CHK列挙型、map_setcell()
+ の4番目の引数はmap.hで定義されてるCELL_SET列挙型をとるように変更.また、上の
+ Featureに対応するため、map_getcell()をポインタに変更した。
+
+ 主な変更点:
+
+ src/map/map.h read_gat(),read_gatp()マクロの変更
+ 列挙型 CELL_CHK,CELL_SETを追加,map_getcell(),map_setcel()用
+ map_data構造体にメンバーint* gat_fileused[MAX_CELL_TYPE+2]追加
+ src/map/map.c map_getcell()を関数型ポインタに変更,map_getcellp()をread_gatp()
+ のために追加,実際に下の四つの関数のどっちに指すかはmap_read_flagによる
+ map_getcell_gat(),map_getcell_bitmap() 追加
+ map_getcellp_gat(),map_getcellp_bitmap() 追加
+ map_setcell() 変更
+ map_createbitmap() 追加
+ map_readmapfromfile() 追加
+ map_readallmap() 変更
+ map_config_read() 変更
+ do_final() 変更
+ 以下の*.cファイル内のmap_getcell(),map_setcell(),read_gat(),read_gatp()を呼出した部分をすべて変更
+ 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 追加
+
+--------------------
+//1084 by lizorett
+・経験値獲得のバグ修正(バグ報告スレッド part7 >>134)
+ (src/map)
+ mob.c 経験値計算修正
+
+--------------------
+//1083 by End_of_exam special thanks to lizorettさん
+・ソケットのデストラクタ処理の追加
+ (common/socket.c common/socket.h login/login.c char/char.c map/clif.c map/chrif.c)
+ ソケットを閉じる時の処理の流れが変更になります。今までソケットを閉じる場合は、
+ まずsession[fd]->eof を真にした後、パーズルーチン内で後処理(メモリ解放など)
+ していました。ですが、close(fd); が2重に実行されてサーバーが落ちるなどの
+ バグが発生していたり、処理の流れがつかみにくいといった理由から、socket.c 内部で
+ 全て処理するように変更しました。ソケットを閉じる時の主な流れは次の通りです。
+
+ 1. ソース内からsession[fd]->eof = 1; をする
+ 2. socket.c 内からsession[fd]->destruct() が呼ばれる
+ 3. メモリの解放&後処理(socket.c delete_session内部)
+
+ close(fd) は、session[fd]->eof = 1; に置き換えました(#define)。
+ また、delete_session() を明示的に呼ぶ必要はありません。
+
+・マップ鯖分配時のアイテムdupe問題修正(map/map.c map/pc.c map/chrif.c)
+ ソケット切断時に倉庫データのキャッシュを消すように変更
+ 2重ログイン時にマップサーバーが違った場合にも切断できるように修正
+
+・古いバージョンでログインした時にmap鯖が落ちるバグを修正(map/clif.c)
+ clif_parse() 内部
+
+ if(packet_db[cmd].len==0) {
+ -> if(cmd<MAX_PACKET_DB && packet_db[cmd].len==0) {
+
+・gcc でコンパイルした時にtimer.c でwarning が出たのを修正(common/timer.c)
+ timer.c:116: warning: `check_timer_heap' defined but not used
+
+ (src/common/)
+ socket.c ソケットのデストラクタ処理を追加
+ socket.h ソケットのデストラクタ処理を追加
+ timer.c warning 修正
+
+ (src/map/)
+ clif.c ソケットのデストラクタ処理を追加
+ chrif.c ソケットのデストラクタ処理を追加
+ map.c マップ鯖分配時のアイテムdupe問題修正
+ pc.c マップ鯖分配時のアイテムdupe問題修正
+
+ (src/char/)
+ char.c ソケットのデストラクタ処理を追加
+
+ (src/login/)
+ login.c ソケットのデストラクタ処理を追加
+
+--------------------
+//1082 by lizorett (2004/12/18) special thanks to 名無し様@g@me
+・白刃取りをボスに無効に変更
+・1079の変更部分にNULLチェックを追加
+・カードの効果が乗らないスキルにエンチャントデッドリーポイズン効果が乗らないよ
+ うに変更
+・エンチャントデッドリーポイズンの効果に左手が載らないように変更
+・サクリファイスを実装
+・ストームガストのノックバックがスキル指定位置を中心とするよう変更
+・スキルの射程距離から1セル離れた場所を指定してスキルを使うと何も起こらない問題
+ を修正
+・経験値の配分を修正(ダメージを与えた人がいない場合や、毒ダメージがある場合に経
+ 験値が少なくなっていた)
+・装備していない箇所へのストリップスキルが失敗するよう変更
+・パッチアップスレッド Part 6?の>>116,>>125,>>126 のファイルを念のためマージ
+
+ (db/)
+ skill_db.txt, skill_cast_db.txt, skill_require_db.txt
+ - サクリファイスの記述を修正/追加
+ (src/map/)
+ battle.c - エンチャントデッドリーポイズンの変更
+ - サクリファイスの実装
+ - ストームガストのノックバック方向を変更
+ - 白刃取りをボスに無効に変更
+ skill.h - SC_SACRIFICEを追加
+ skill.c - サクリファイスの実装
+ - skill_castend_damage_id()のMG_FROSTDIVER/MG_STONECURSEに
+ NULLチェックを追加
+ mob.c - 経験値の配分を修正
+ script.c - 個別に出されていたファイルをマージ(>>125)
+ npc.c - 個別に出されていたファイルをマージ(>>126)
+ (src/common)
+ core.c - 個別に出されていたファイルをマージ(>>116)
+
+--------------------
+//1081 by End_of_exam
+・「ループ構文の方も実装してください」という要望を貰ったので、
+ for , while , do - while 構文を導入。個人的に余り需要は無いと思うのですが…。
+
+・elseが完全に解析できてなかったバグを修正。
+・switch のbreak; が場所によってはコンパイルエラーになるバグを修正。
+
+ (src/map/)
+ script.c : 構文を拡張。色々整理。
+
+ (doc/)
+ script_ref.txt : 上の修正に合わせて変更。
+
+--------------------
+//1080 by End_of_exam
+
+・スクリプトを if - else if - else 構文 , switch 構文に対応させました。
+ 多重ネストが可能ですので、今までより見やすいスクリプトが書けると思います。
+ if(aa) { aaa(); } else if(bb) { cc; if(dd) { ee() } else { ff(); } }
+ それに伴い、__ から始まる変数やラベルを用いると、不都合が生じる可能性があります。
+
+・スクリプトに新しい関数(select関数・menu命令の関数版)を追加しました。
+
+ (src/map/)
+ script.c : 構文を拡張
+ npc.c : npc_perse_script の修正( { , } のネストに対応 )
+
+ (script/)
+ npc/town/npc_town_alberta.txt : 一カ所 goto が抜けてたので修正
+ sample/npc_debug_pota.txt : switch , select を使って書き直し
+ (デバッグに使わせて貰いました)
+
+ (doc/)
+ script_ref.txt : 上の修正に合わせて変更
+--------------------
+//1079 by Yuuki
+・石化中にストーンカースを使うと石化解除
+・FDでスキル追加効果を使うと氷化中ダメージ判定で先に割れてもう一度氷化判定がくるのでスキル追加効果つかわず
+・BBで睡眠石化氷化が割れないバグの修正(独自のダメージ判定使ってたので消して正規のダメージ判定に戻した)
+・ディレイ0のスキルにadelay/2追加(G鯖でTS使って検証した結果最もこれが近かった通常攻撃よりはやかったので)
+
+ (src/map)
+ skill.c
+
+--------------------
+//1078 by End_of_exam
+
+・Visual C++ 6.0 / bcc32 でコンパイル出来るように修正(別途zlib.dll が必要)
+・1074は欠番にします。色々とご迷惑をかけた事をお詫びします。
+
+** 注意 **
+ 今回のバージョンの完全な動作確認はしていません(人柱版扱いにしてください)。
+ 本格的な運用に踏み切る前には、必ず動作確認をするようにしてください。
+ 場合によっては、コンパイル出来ない、不正な動作になる…等々の問題が起こるかも
+ しれませんが、そのときは、騒がず、慌てずに、ネ申の降臨を待つようお願いします。
+
+** お願い **
+ このパッチを完全版にしてくれる方、使用感レポートを投稿してくれる方を募集します。
+ パッチを公開するついでに、大量のwarning を修正してくれたら嬉しいな〜、と思ってみたり。
+
+ (/)
+ bcc32_make.bat , bcc32_clean.bat
+ bcc32 でコンパイル / クリーン を簡単にするためのバッチファイル。
+
+ athena.dsp , athena.dsw , src/login/login.dsp , src/char/char.dsp ,
+ src/map/map.dsp
+ Visual C++ 用のプロジェクトファイル & ワークスペース
+
+ (src/)
+ コンパイル出来るように色々修正。
+
+ (src/common/timer.c)
+ 独自の手抜きアルゴリズム(2分ソート)を採用したバージョン。
+
+--------------------
+//1077 by sylpheed
+・サーバースナップショット
+・下記二つを取り込み
+質問スレッド Part14-41 Plalaさん
+バグ報告スレッド part7-68 ...さん
+
+1074は取り込んでいません。
+
+--------------------
+//1076 by mare
+・韓国公知の通りアリスとジルタスのエサの変更。
+・GMのアブラカタブラ専用スキルのフラグが消えてたので復活。
+・ブラックスミスギルド員にプリーストの場合のセリフを追加。
+・クラスチェンジで全ての指定IDボスが出るように(なってるといいなぁ)
+ (db)
+ pet_db.txt
+ (conf)
+ battle_athena.conf
+ (script/npc/job)
+ npc_job_10blacksmith.txt
+ (src/map)
+ mob.c
+--------------------
+//1075 by kag
+・弓手用の指貫の効果実装の布石
+・効果がはっきりとしないのでitem_dbの修正はいれていません。
+・1075番でいいのかなぁと思ったり。
+
+ (db)
+ const.txt
+ bWeponAtk=1073とbWeponAtkRate=1074を追加
+
+ (src/map)
+ battle.c
+ int battle_get_baseatk()修正
+ static struct Damage battle_calc_pc_weapon_attack()修正
+ map.h
+ int weapon_atk[16],weapon_atk_rate[16];
+ SP_WEPON_ATK,SP_WEPON_ATK_RATE, // 1073-1074を追加
+ pc.c
+ memset(sd->weapon_atk,0,sizeof(sd->weapon_atk));
+ memset(sd->weapon_atk_rate,0,sizeof(sd->weapon_atk_rate));を追加
+
+ pc_bonus2() 修正
+ (doc)
+ item_bonus.txt
+ bWeponAtk,bWeponAtkRate,bHPDrainValue,bSPDrainValue 追加。
+
+--------------------
+//1073 by LP@@
+・アコスキルの一部及びサイトスキルの修正(日本には今月末に来る筈?@2004/12/06)
+速度減少は移動速度減少量が、シグナムクルシスは成功率、DEF減少量の増加量が
+はっきりしなかったので弄っていません。
+ (src/map)
+ battle.c
+ デーモンベイン、ディバインプロテクション計算式を修正。
+ skill.c
+ ルアフ、サイトの有効範囲を修正(両方10x10→ルアフ5x5,サイト7x7)。
+
+ (db)
+ skill_cast.db
+ アクアベネディクタの詠唱及びディレイを修正。
+
+//1072 by kag
+・転生スキルを中心に修正
+ (src/map)
+ battle.c
+ 魔法力増幅をスキルレベル*5%に修正。
+ 矢撃ちに矢のATKが乗らなくなるように修正。
+ オーラブレードの追加ダメージを100に修正。
+ バーサークの与ダメを2倍になるように修正。
+ ヘッドクラッシュの計算式を修正。
+ スパイラルピアースの計算式だけ修正。
+ プレッシャーの計算式を修正。
+ 連柱崩撃の計算式を修正。
+ ソードリジェクトの反射率をスキルレベル*15%に修正。
+ アローバルカンの計算式を修正。矢の属性が乗るように修正。
+ ファルコンアサルトの計算式を修正。頑強フラグで1ダメになるように修正。
+ ブリッツビートを頑強フラグで1ダメになるように修正。
+ デモンストレーションを必中、カードを乗らないように修正。
+ アシッドテラーを防御無視、必中、無属性、カードを乗らないように修正。
+ skill.c
+ 魔法力増幅に0.7秒の固定詠唱追加。
+ LP@@ さんのアスムキリエ重複不可を追加。
+
+ (db)
+ skill_db.txt
+ 狂気孔を詠唱妨害できるように修正。
+ skill_cast_db.txt
+ プレッシャーの詠唱、ディレイを追加。
+ 猛虎硬派山のディレイを追加。
+ ライフ置き換えのディレイを追加。
+ ファルコンアサルトの詠唱、ディレイを追加。
+ ウインドウォークのディレイ、持続時間を変更。
+ アローバルカンの詠唱、ディレイを追加。
+ クリエイトデッドリーポイズンのディレイを追加。
+ skill_require_db.txt
+ オーラブレードの消費SPを修正。
+ コンセントレーションの消費SPを修正。
+ 魔法力増幅の消費SPを修正。
+ ナパームバルカンの消費SPを修正。
+ プレッシャーの消費SPを修正。
+ サクリファイスの消費SPを修正。
+ 猛虎硬派山の消費SPを修正。
+ リジェクトソードの消費SPを修正。
+
+//1071 by ICO
+・npc_job_09wizard.txt,npc_job_16sage.txtを修正
+・取り巻きが召喚系スキルを使用する際の挙動を修正
+
+ (src/map)
+ mob.c
+ 取り巻きの召喚系スキルを規制するタイミングを変更
+ skill.c
+ 召喚系スキルの発動条件を修正
+
+//1070 by sylpheed
+・ドロップ率のレートごとの調整を追加
+ ドロップ設定1〜9 10〜99 100〜999 1000〜10000で個別に倍率と最低/最高値の設定が可能です
+・@weather 0 が動かないのを修正
+・転生二次職のHP/SP25%上昇実装
+ドロップ倍率はeAthenaのアイテム種類毎の設定を移植しても良かったのですが
+種類毎だとレートの開きが大きい場合があり、あまり意味がないため
+このような形でレート詳細設定を追加してみました。
+mob_dbを弄るより楽にドロップ率の変更ができると思います。
+
+weather 0が動かないのは理由が良くわからなかったので
+動くように修正するついでに、雨フラグ消去時に
+虹が出るように追加してみました。
+
+転生のHP/SPに関しては、転生していても二次職になってない場合
+増加はしないようなので、そのように実装してみました。
+wedding_modifydisplay: yes の時にドレス/タキシードを装備解除すると
+増加分が消えてしまいます・・・
+わかる方いたら修正お願いしますorz
+
+ (src/map)
+ atcommand.c
+ @weather関連の修正(case 0を実行するように修正)
+ 雨フラグを消した場合虹が出るようにしてみました(JP蔵で使えるか不明)
+ (マップ移動しないと天候が消えないのはragexeの仕様かな?)
+ battle.c
+ battle.h
+ mob.c
+ item_rate_details関連を追加
+ pc.c
+ 転生二次職時のHP/SP最大値25%増加を追加
+ 転生していても二次職でない場合はHP/SP増加は無しのようです
+ (conf)
+ help.txt 修正
+ msg_athena.conf 112追加
+
+ (doc)
+ conf_ref.txt 修正
+ help.txt 修正
+
+//1069 by lizorett (2004/11/26) special thanks to 名無し様@g@me
+・メルトダウンの実装
+・魔法力増幅が詠唱のある魔法で有効にならなかった問題を修正
+・map-serverがダウンする問題の修正(質問スレッド Part13 >>55)
+・map-serverに不正IDでログインするとchar-serverがダウンする問題の修正
+・サフラギウムが無詠唱スキルで取り消されない問題を修正
+・重複して猛毒状態とならないよう修正
+・マグナムブレイクのダメージを修正
+・バーサク中にHP/SP吸収、毒などのダメージを受けるよう修正
+・月光剣のSP吸収量が増加していく問題を修正(暫定)
+・@helpにキーワード検索機能を追加
+
+ (src/map)
+ battle.c - マジックパワーによるMATK増加の実装
+ - 武器鎧破壊をpc_break_equip()に書き換え
+ - HP/SP吸収を修正
+ map.h - 装備破壊の定義を追加
+ pc.c - pc_break_armor()/pc_break_weapon()を、新規の装備破壊の
+ 関数pc_break_equip()に統合
+ - 魔法力増幅のコードを削除(battle.cで行う)
+ - HP/SP吸収関係の変数の初期化を追加
+ pc.h - 関数定義を修正
+ skill.c - メルトダウンによる装備破壊を実装
+ - 魔法力増幅に関する修正
+ - 重複して猛毒状態とならないよう修正
+ clif.c - map-serverがダウンする問題の修正
+ atcommand.c - @helpにキーワード検索を追加("@help jobchange"など)
+ (src/char)
+ char.c - char-serverがダウンする問題の修正
+ (db)
+ const.txt - bUnbreakableHelm, bUnbreakableShield追加
+ skill_cast_db.txt
+ - メルトダウンの状態異常時間を設定
+
+//1068 by huge
+・atcommandをいくつか追加と、eAthenaからいくつか移植。(help.txt参照)
+・非GMキャラが@で始まる発言をした時、そのまま表示するようにした。(GMレベル0のコマンドは実行)
+・天気コマンドに合わせて、mapflag設定できるように。
+・scriptをいくつか追加と、eAthenaから一つ移植。
+・初期HP倍率とSP倍率をbattle_athenaで設定できるようにした。
+・全キャラが、GMには位置・HPを通知させるようbattle_athenaで設定できるようにした。
+・ドクロドロップについて、battle_athenaで設定できるようにした。
+・GMのアイテムドロップや交換についてGMレベルを制限できるようにした。
+・ディテクティングスキル修正。
+※デフォルトの日本クライアントだと、雨で落ちます。
+
+ (conf/)
+ atcommand_athena.conf 修正
+ battle_athena.conf 修正
+ help.txt 修正
+ msg_athena.conf 修正
+
+ (doc/)
+ help.txt 修正
+ script_ref.txt 修正
+ conf_ref.txt 修正
+
+ (src/map/)
+ atcommand.c
+ atcommnad.h
+ guild.h party.hを読む様に修正
+ is_atcommand() 修正
+ atcommand() 修正
+ ※移植・新規コマンドについては help.txt を確認して下さい。
+ battle.c
+ battle.h
+ hp_rate,sp_rate,hp_meter,bone_drop 追加
+ clif.c
+ clif.h
+ clif_spawnpc() 修正
+ clif_hpmeter() 追加
+ guild.c
+ guild.h
+ guild_searchname() 追加
+ guild_searchname_sub() 追加
+ map.h
+ 天候に関するflag追加
+ npc.c
+ npc_parse_mapflag() 修正
+ party.c
+ party.h
+ party_searchname() 追加
+ party_searchname_sub() 追加
+ pc.c
+ pc.h
+ pc_calcstatus() 修正
+ pc_damage() 修正
+ pc_walk() 修正
+ pc_can_drop() 追加
+ script.c
+ gmcommand 移植追加
+ dispbottom 追加
+ getusersname 追加
+ recovery 追加
+ petinfo 追加
+ checkequipedcard 追加
+ getexp 削除(setを使うようにして下さい)
+ skill.c
+ skill.h
+ skill_castend_pos2() 修正
+
+ +Athena雑談スレッドPart7 >>54 もっさりさんの分
+ 記述漏れがあったらすいません。
+--------------------
+//1067 by kai
+・メディテイティオによるヒール回復量増加の効果を修正
+・アドバンスドカタール研究の修正
+・PvP時におけるアスムプティオの効果を修正
+
+ (src/map)
+ skill.c
+ 2120行 heal += heal*(skill*2)/100; //メディテイティオの修正
+
+ battle.c
+ 1723行 damage += dmg*(10+(skill * 2))/100; //アドバンスドカタール研究の修正
+
+ 2598〜2599、3580〜3582行 アスムプティオの修正
+ if(map[target->m].flag.pvp)としダメージ計算を2/3に修正
+
+--------------------
+//1066 by lizorett (2004/11/17) special thanks to 名無し様@g@me
+・デッドリーポイズン作成実装
+・エンチャントデッドリーポイズン実装
+・ソウルブレイカー実装
+・battle_weapon_attackで未初期化の値が戻されるバグ修正
+・他使用SPの変更等の細かい修正
+
+ (db)
+ const.txt - 猛毒(SC_DPoison)を追加
+ item_db.txt - 緑ハーブ,緑ポーション,万能薬に猛毒を治す効果を追加
+ produce_db.txt - デッドリーポイズンの材料の定義を追加
+ skill_cast_db.txtエンチャントデッドリーポイズン、ソウルブレイカー
+ の定義を修正/追加
+ skill_db.txt - ソウルブレイカー/エンチャントデッドリーポイズン/
+ デッドリーポイズン作成の定義を修正
+ - ナパームバルカンのヒット数修正
+ skill_require_db.txt
+ - エンチャントデッドリーポイズンが毒薬の瓶を使用する
+ ように修正
+ - ソウルブレーカー/メテオアサルトの使用SPを修正
+ (src/map)
+ battle.h - battle_config.cdp_rateを追加
+ battle.c - ソウルブレーカー実装
+ - メテオアサルトにカード効果がかからないよう変更
+ - 4213行の条件で未初期化の値が戻されるバグ修正
+ - battle_config.cdp_rateを追加
+ skill.h - デッドリーポイズン作成の材料が7つなので、テーブル
+ を追加。材料の最大数をdefineで変更できるよう修正
+ - SC_DPOISON(182)/SC_EDP(183)を追加
+ skill.c - 猛毒効果を追加
+ - デッドリーポイズン作成を実装
+--------------------
+//1065 by End_of_exam
+
+・サーバーゾンビ化に暫定対処
+・calc_index(path.c)の不都合を修正
+
+ (common/)
+ timer.c
+ TIMER_MIN_INTERVEL(タイマーの最小インターバル)を追加しました。
+ それに伴い、do_timer() の戻り値の最低を 10ms から 50ms に変更しました。
+
+ selectが10ms以内に終わらない環境だと、モンスターを大量召還した時などに、
+ クライアントからのパケットに反応しなくなる模様です。
+ ローカルテスト(モンスター大量召還)をしてみたところ、25msに変更した時点で
+ 改善しましたが、環境によっては50msでも不十分かもしれません。
+ その場合は、TIMER_MIN_INTERVELを増やして様子を見てください。
+
+ 同様の現象として、多数のクライアントが接続するとサーバーが反応しなくなる
+ というのがありますが、このパッチによってある程度改善されるかもしれません。
+
+ (map/)
+ map.h : MAX_WALKPATH
+ path.c 内の calc_indexが不都合を起こす(48*48-1 = 1000 1111 1111(b)) ため、
+ MAX_WALKPATHを 48 から 32 に変更しました。(32*32-1 = 0011 1111 1111(b))
+
+ #define calc_index(x,y) (((x)+(y)*MAX_WALKPATH) & (MAX_WALKPATH*MAX_WALKPATH-1))
+--------------------
+//1064 by nameless
+・GCC 3.3.0/3.3.1が内包する0/0=変数最大値の問題対策(int:65535/long:4294967294)
+・魔法防御・防御・属性防御が正しく適用されない問題を修正
+・ナパームバルカンを単体魔法のコードに修正し、呪い効果を実装
+
+ (src/map)
+ skill.c
+ 442〜448行 不等号[<]を[>]に修正
+ 512〜519行 不等号[>]を[<]に修正
+ 529〜538行 コンパイラバグの訂正方法と例/*〜*/の部分を
+ gccのバージョンに合わせて生かしたり殺したり
+ してください。3.3.2からは直っているようです
+ 1857行 ナパームバルカンを追加
+ 660〜664行 ナパームバルカンの呪い効果を追加
+ (src/char)
+ char.c
+ 修正しきれていなかった部分を修正しました。
+
+--------------------
+//1063 by 七誌
+・月光剣の効果実装
+・左手カードによる、武器攻撃時のHP/SP吸収効果が右手に影響する様に修正(本鯖仕様)
+ (left_cardfix_to_rightがyesの時のみ。noだと従来通り)
+
+ (db)
+ const.txt
+ bHPDrainValue=1071とbSPDrainValue=1072を追加
+ item_db.txt
+ 月光剣のEquipScriptにbonus2 bSPDrainValue,100,3を追加
+
+ (src/map)
+ battle.c
+ battle_weapon_attack() 修正
+ map.h
+ short hp_drain_value,sp_drain_value,hp_drain_value_,sp_drain_value_;を追加
+ SP_HP_DRAIN_VALUE,SP_SP_DRAIN_VALUE, // 1071-1072を追加
+ pc.c
+ pc_bonus2() 修正
+
+--------------------
+//1062 by nameless
+・パケット送受信での誤送信修正
+・バグ報告スレッド part7 からの取り込み・修正 >> 56,57,58
+・fix1059の取り込み
+・ハイウィズのネイパームバルカンの実装(eA取り込み)
+・CPU最適化コードの修正(athlon系)・追加(玄人箱/Linux Zaurus)
+
+ (/)
+ Makefile
+ athlon系最適化の修正
+ 玄人箱(Kuro-Box 200MHz版[PPC 603x])
+ 玄人箱(Kuro-Box 266MHz版[PPC 604x])
+ Linux Zaurus (SL-C7xx)
+ の最適化コードを記述
+
+ (db)
+ skill_cast_db.txt
+ 400,500,1200:1600:2000:2400:2500,0,0 //HW_NAPALMVULCAN#ナパームバルカン#
+ (src/map)
+ clif.c
+ clif_parse() 修正
+ (src/char)
+ char.c
+ 1367行 cmd = RFIFOW(fd,0);追加
+ (src/map)
+ skill.c
+ switch(skillid)にcase HW_NAPALMVULCAN:以下20行ほど追加
+--------------------
+//1061 by lizorett (2004/11/9)
+・不正なギルドスキルパケットを受けた場合にmap/charサーバが落ちる現象を修正
+・不正なパケットを受けた場合にcharサーバが落ちる現象を修正
+・結婚したキャラを削除するとcharサーバが落ちる現象を修正
+・青箱を一つだけ持った状態で青箱から青箱がでると、青箱が消えるたように見える
+ (リログすると見える)問題を修正
+・スナッチャーのスキル失敗を表示しないようにできる設定を追加
+・デボーションのレベル制限(10レベル差)を変更できる設定を追加
+
+ (src/common)
+ mmo.h
+ ギルドスキルのenumを追加(src/map/skill.hから移動)
+ (src/map)
+ skill.h
+ ギルドスキルのenumを削除(src/common/mmo.hに移動)
+ guild.c
+ guild_checkskill スキルの範囲チェックを追加
+ guild_skillup スキルの範囲チェックを追加
+ skill.c
+ skill_additional_effect display_snatcher_skill_failの処理を追加
+ skill_castend_nodamage_id devotion_level_differenceの処理を追加
+ battle.c
+ display_snatcher_skill_fail,devotion_level_differenceの初期化を追加
+ (src/char)
+ int_guild.c
+ guild_checkskill スキルの範囲チェックを追加
+ mapif_parse_GuildSkillUp スキルの範囲チェックを追加
+ char.c
+ parse_char 不正なパケットを受けた場合にはダンプするよう修正
+ char_divorce i<MAX_INVENTORYをj<MAX_INVENTORYに変更
+ (conf)
+ battle_athena.conf
+ display_snatcher_skill_fail,devotion_level_differenceを追加
+--------------------
+//1060 by mosya
+・モンスターがスキル詠唱中に座標ズレを起こす問題を修正
+・MOBのAI変更。前衛がタゲを取っているのに、後衛に攻撃をしにゆくのを修正
+ (src/map)
+ mob.c
+ mob_ai_sub_hard() 変更
+ mobskill_castend_id() 変更
+ mobskill_castend_pos() 変更
+ mobskill_use_id() 変更
+ mobskill_use_pos() 変更
+--------------------
+//1059 by SPDFMember
+・eAthenaを参考にリロードDB系統を追加しました。
+ (conf/)
+ atcommand_athena.conf
+ reloaditemdb
+ reloadmobdb
+ reloadskilldbを追加
+ help.txt
+ reloaditemdb
+ reloadmobdb
+ reloadskilldbの説明を追加
+ msg_athena.conf
+ 89
+ 90
+ 91を追加
+ (src/map)
+ atcommand.c
+ reloaditemdb
+ reloadmobdb
+ reloadskilldbを追加。
+ atcommand.h
+ AtCommand_ReloadItemDB,
+ AtCommand_ReloadMobDB,
+ AtCommand_ReloadSkillDB,を追加
+ itemdb.c
+ static int itemdb_readdb(void);追加
+ itemdb.h
+ void itemdb_reload(void);追加
+ mob.c
+ void mob_reload(void)追加
+ mob.h
+ void mob_reload(void);追加
+ skill.c
+ void skill_reload(void)追加
+ skill.h
+ void skill_reload(void);追加
+--------------------
+//1058 by lizorett
+・ギルド倉庫アイテムがMAX_STORAGE個以上あると取り出せないものがある問題を修正
+ (src/map)
+ clif.c
+ clif_parse_DropItem item_index/item_amountの範囲チェックを削除
+ (pc_dropitem でチェックする)
+ clif_parse_MoveToKafra item_amountのチェックを削除
+ (storage_*storageaddでチェックされている)
+ clif_parse_MoveFromKafra item_index/item_amountのチェックを削除
+ (storage_*storagegetでチェックされている)
+ pc.c
+ pc_dropitem n/amountの範囲チェックを追加
+--------------------
+//1057 by BDPQ銀
+・ウォーターボールのダメージを本鯖告知値→実測値に修正。
+ [ MATK+SkillLv*30 → MATK*(1+SkillLv*0.3) ]
+
+ (src/map)
+ battle.c
+ battle_calc_magic_attack 変更 [ 3848行目あたり ]
+
+--------------------
+//1056 by robert
+順番を検査するのは不法かどうか
+ (src/map)
+ clif.c
+ clif_parse_DropItem
+ clif_parse_MoveToKafra
+ clif_parse_MoveFromKafra
+--------------------
+//1055 by Nameless
+・各種CPUに対するコード最適化オプションを設定(全27種) ※GCC 3.3.1 準拠
+・Pentium 3のオプションがSSE2になっていたのを訂正
+・稀枝さん、robertさんのPacket情報の取り込み(お二人に感謝)
+
+ (/)
+ makefile
+ i486/586/p54c/mmx/P3/P4/Cele
+ k6/k6-2/k6-3/athlon系
+ Via C3(Eden)
+ PowerPC/G4系
+
+ (src/map/)
+ clif.c
+ clif_parse_MoveToKafra{}
+ コード取り込み
+
+--------------------
+//1054 by Nameless
+・Cygwinでコンパイルしたathenaが接続53〜58人付近で接続不能になるバグを解消
+
+ (src/common/)
+ socket.h
+ #ifdef CYGWIN
+ #undef FD_SETSIZE
+ #define FD_SETSIZE 4096
+ #endif
+ 以上の行を削除
+ (/)
+ makefile
+ OS_TYPE = -DCYGWIN
+ ↓
+ OS_TYPE = -DCYGWIN -DFD_SETSIZE=4096
+ に修正
+
+ #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
+
+ 各種CPUの最適化を追加gcc3.1以上を使っている場合は#を外し
+ て最適化を行うことができると思います。
+
+ ※makefileでセットしておかないと、コンパイルの際に一部
+ FD_SETSIZEが小さくなってしまうバグ(?)があるらしく、接続人数が
+ 60人弱で接続不能が発生してしまいます。
+
+--------------------
+//1053 by TEILU
+・パケットパーサーをタイマー呼出しに変更できる設定の追加
+・精錬の可否判定でDBにどのような設定を入れてもアクセサリは
+ 精錬できなかった不具合を修正
+
+ (conf/)
+ map_athena.conf
+ packet_parse_time: 0 追加
+ (src/common/)
+ core.c
+ packet_parse_time 追加
+ main() 変更
+ socket.c
+ parsepacket_timer() 追加
+ socket.h
+ parsepacket_timer() 追加
+ (src/map/)
+ map.c
+ packet_parse_time 追加
+ map_config_read() 変更
+ script.c
+ buildin_getequipisenableref() 変更
+
+--------------------
+//1052 by
+居場所つきで検索コマンド追加。
+ GMコマンド追加
+ @who+ 居場所つき検索
+
+ (conf/)
+ atcommand_athena.conf
+ who+: 1 追加
+ (/src/common/)
+ version.h
+ Ver 1051->1052 変更
+ (/src/map)
+ atcommand.c
+ ATCOMMAND_FUNC(whop); 追加
+ { AtCommand_WhoP,"@who+",0, atcommand_whop }, 追加
+ atcommand.h
+ AtCommand_WhoP, 追加
+--------------------
+//1051 by Plala
+・ペコペコ騎乗時MAX Weightを増やせるようにしました。
+battle_athena.confで設定可能です。
+
+ (conf/)
+ battle_athena.conf
+ riding_weight 追加
+ (map/)
+ battle.c
+ battle_config.riding_weight 追加
+ battle.h
+ int riding_weight; 追加
+ clif.c
+ clif_parse_RemoveOption 変更
+ pc.c
+ int pc_calcstatus 変更
+ 1415にsd->max_weight +=battle_config.riding_weight; を追加
+ (common/)
+ version.h
+ Ver 1050->1051 変更
+--------------------
+//1050 by code
+・各種天候操作コマンドの見直し
+※いちいち@misceffectで呼び出さずに簡単に天候操作を行えるように
+※クライアント依存は落ち葉ではなく雨でした、間違いました(^-^;
+
+ (src/common/)
+ version.h
+ Ver 1049->1050 変更
+ (/src/map)
+ atcommand.c
+ AtCommand_Rain{} 変更
+ AtCommand_Snow{} 変更
+ AtCommand_Cherry{} 変更
+ AtCommand_Fog{} 変更
+ AtCommand_Maple{} 変更
+
+--------------------
+//1049 by code
+・霧、落葉の2つの天候操作コマンドを追加しました。
+※落ち葉に関してはクライアント依存なのでjROだと落ちるかも…
+
+ GMコマンド追加
+ @fog 霧
+ @maple 落葉
+
+ (conf/)
+ atcommand_athena.conf
+ fog: 1 追加
+ maple: 1 追加
+
+ msg_athena.conf
+ 87: 霧が立ち込めました。 追加
+ 88: 落ち葉が降ってきました。 追加
+ (/src/common/)
+ version.h
+ Ver 1048->1049 変更
+ (/src/map)
+ atcommand.c
+ ATCOMMAND_FUNC(fog); 追加
+ ATCOMMAND_FUNC(maple); 追加
+ { AtCommand_fog,"@fog",0, atcommand_fog }, 追加
+ { AtCommand_maple,"@maple",0, atcommand_maple }, 追加
+
+ atcommand.h
+ AtCommand_Fog, 追加
+ AtCommand_Maple, 追加
+
+--------------------
+//1048 by code
+・雨、雪、サクラ吹雪の3つの天候操作コマンドを追加しました。
+※衝動的に追加してしまったのでバグがあるかも知れません(汗
+
+ GMコマンド追加
+ @rain 雨
+ @snow 雪
+ @cherry サクラ吹雪
+
+ (conf/)
+ atcommand_athena.conf
+ rain: 1 追加
+ snow: 1 追加
+ cherry: 1 追加
+
+ msg_athena.conf
+ 84: 雨が降り出しました。 追加
+ 85: 雪が降り出しました。 追加
+ 86: サクラ吹雪を降らせます。 追加
+ (/src/common/)
+ version.h
+ Ver 1047->1048 変更
+ (/src/map)
+ atcommand.c
+ ATCOMMAND_FUNC(rain); 追加
+ ATCOMMAND_FUNC(snow); 追加
+ ATCOMMAND_FUNC(cherry); 追加
+ { AtCommand_rain,"@rain",0, atcommand_rain }, 追加
+ { AtCommand_snow,"@snow",0, atcommand_snow }, 追加
+ { AtCommand_cherry,"@cherry",0, atcommand_cherry }, 追加
+
+ atcommand.h
+ AtCommand_Rain, 追加
+ AtCommand_Snow, 追加
+ AtCommand_Cherry, 追加
+
+--------------------
+//1047 by SVN
+・製造アイテムの製作者の名前を引くmap←→charのパケットが間違っていたのを修正
+・二重ログインをした時にchar-serverが落ちる可能性があったのを修正
+・ガーディアンをGv時間外に殴れた、ID指定のスキルが当たった、skill_unitなスキル攻撃が当たったのを修正
+・グラフィティのRangeをとりあえず3にしてみた
+ (db/)
+ skill_db.txt
+ (char/)
+ char.c
+ parse_frommap()
+ (map/)
+ clif.c
+ clif_parse_ActionRequest() 変更
+ clif_parse_UseSkillToId() 変更
+ mob.c
+ mob_gvmobcheck() 追加
+ mob.h
+ mob_gvmobcheck() 定義追加
+ skill.c
+ skill_attack() 変更
+
+--------------------
+//1046 by SVN
+※db/packet_db.txtは2004-09-06aSakexe用なので、jROクライアントで使用する際は「//jROはここまで」以下をコメントアウトするか削除してください
+
+・変更点が多いので詳細はファイル、関数ごとに記述しています
+・1045にそのまま上書きしても動作しますが、使われないファイルがいくつか残ります
+・script/以下は名前が変更されているファイルが大量にあるのでscript/の変更点を参考にしてください
+・スクリプト用の関数や命令が増えたり仕様が変更されているものがあります
+ 基本的には互換性があるはずですが、getgdskilllv()だけは第二引数を数字ではなくスキル名(GD_APPROVALなど)に置き換える必要があります
+ getgdskilllv()が使われている/script/npc/gvg_big5/*.* は中国語で必要ないので削除してください
+ 追加や変更に関しては概ねscript_ref.txtに反映してありますが、詳細はscript.cの変更点を読んでください
+・追加された@コマンドについては@helpとatcommand.cの変更点を読んでください
+・追加された設定はconf_ref.txtを参照してください
+・記述漏れの変更点もあるかもしれません
+
+追加したファイルは「A」
+変更したファイルは「C」
+削除したファイルは「D」
+移動したファイルは「M」
+ /
+ C athena-start
+ ./conf/import 以下を起動時に自動作成するように変更
+ seqコマンドを使わないようにしてFreeBSDでも動作するように変更
+ start
+ すでにAthenaが起動している時は何もしないように変更
+ execで ./ がダブっていたので削除
+ stop
+ FreeBSDでもシェルに戻るように変更
+ kill
+ 同上
+ C Makefile
+ PACKETDEF に PACKETVER=6 を追加
+ FreeBSDを判定して make と gmake を切り替えるように変更
+ CFLAGS を分解して弄りやすいように変更
+ C start
+ 1行目のシェル指定が正しくなかったのを変更
+ すでにAthenaが起動している時は何もしないように変更
+ 起動確認の条件式を athena-start と同じ物に変更
+ bin/tool/
+ シェルスクリプトの改行コードを CRLF から LF のみに変更
+ C getlogincount
+ ログインバージョンを $loginversion として変更できるように変更
+ C ladmin
+ アカウント名に「-」を使えるように変更
+
+ conf/
+ D import/
+ 配布物から削除(athena-start start で自動作成される)
+ C atcommand_athena.conf
+ shuffle maintenance misceffect 追加
+ C char_athena.conf
+ default_map_type default_map_name 追加
+ C help.txt
+ 説明追加
+ C login_athena.conf
+ login_version login_type 追加
+ C map_athena.conf
+ npc map 色々変更
+ C mapflag.txt
+ 最新版に更新
+ C msg_athena.conf
+ 81以降追加
+ C water_height.txt
+ 最新版に更新
+ db/
+ C castle_db.txt
+ ギルド解体時に発生する OnGuildBreak イベントのために <Event_Name> 追加
+ C const.txt
+ GvGの開始時間等を設定できるように追加
+ マップフラグ mf_notrade mf_noskill 追加
+ パラメータ PartnerId Cart 追加
+ ボーナス bBreakWeaponRate bBreakArmorRate bAddStealRate bUnbreakableWeapon bUnbreakableArmor 追加
+ ステータス変化 SC_WEDDING 追加
+ スクリプト命令 getgdskilllv 用に GD_APPROVAL など追加
+ C exp.txt
+ 転生二次職がBaseLv12になるときに必要な経験値を41→481に修正
+ 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
+ 最新版に更新
+ A packet_db.txt
+ パケット定義ファイル追加
+ doc/
+ C client_packet.txt
+ 新しく判明したパケットをいくつか追加
+ C conf_ref.txt
+ 新しく追加した設定の説明を追加
+ C db_ref.txt
+ skill_cast_db.txt の list_hp_rate list_sp_rate で負数を指定した時の挙動を追加
+ C help.txt
+ conf/help.txt 同様に変更
+ C inter_server_packet.txt
+ 新規で追加したパケットを追加と実態とあっていなかった部分を修正
+ C item.txt
+ 最新版に更新
+ C item_bonus.txt
+ 新規で追加されたボーナスを追加
+ C script_ref.txt
+ 新規命令の追加と既存命令の変更など
+ C serverlink_packet.txt
+ 新規で追加したパケットを追加と既存で書かれていなかったパケットの追加
+ script/
+ mob/
+ C npc_monster.txt
+ 最新版に更新
+ ニブルヘイムのMobはnpc_parse_mob()の変更サンプルになってます
+ npc/
+ ほぼすべてのNPCをnpc_function.txtを使ったユーザー定義関数と複製などで書き換え
+ 移動したファイルに関しては移動後のファイルが含まれているので移動前のファイルのみ削除してください
+ 例) 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ファイル合体
+ →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を使ったユーザー定義関数で書き換え
+ すべて削除してからこのパッチを当ててください
+ ギルド解散時に砦を放棄するためにev_agit_砦.txtにOnGuildBreakイベントを追加
+ 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/
+ 転職スクリプトの名前をnpc_job_[JOB番号][ジョブ名].txtに変更
+ すべて削除してからこのパッチを当ててください
+ C quest/
+ M npc_event_arrow.txt
+ →../../sample/npc_debug_arrow.txt
+ A npc_event_hat2.txt
+ ニブル同時実装の新頭装備スクリプトを追加
+ src/
+ calloc() realloc() を極力各型にキャストするように変更
+ calloc() 後に memset() で \0 を埋めていたのを削除
+ calloc() なのに(サイズ*個数,1)で指定していたのを(個数,サイズ)に変更
+ メモリ確保をエラー処理をまとめた関数に書き換え
+ malloc() → aMalloc()
+ calloc() → aCalloc()
+ realloc() → aRealloc()
+ strcpy() を strncpy() に極力変更
+
+ char/
+ C char.c
+ スペースでインデントされていたところをタブで統一
+ A isGM()
+ A read_gm_account()
+ GMアカウントが必要になったので追加
+ C mmo_char_tostr()
+ C mmo_char_fromstr()
+ nullpoチェック追加
+ C count_users()
+ 必要ない{}を削除
+ C char_delete()
+ nullチェック追加
+ 削除メッセージをコンソールに表示するようにした
+ 削除時に接続しているキャラを切断するようmap-serverに通知(0x2b19パケット)するようにした
+ C parse_tologin()
+ C 0x2713
+ char-serverメンテナンス設定時はGM以外入れないようにした
+ 接続数制限で最大値でもGMは接続できるようにした
+ C 0x272a
+ 0x2730を0x272aに変更して番号を詰めた
+ アカウント削除した時にキャラが一部消されない問題を修正
+ A 0x272c
+ 受信時にlogin-serverに通知(0x2b15パケット)してメンテナンス状態になるようにした
+ A char_erasemap()
+ map-server切断時に他map-serverにマップの削除を通知(0x2b16パケット)するようにした
+ これにより他map-server管轄のマップに移動しようとして、そのmap-serverが切断されていたら、
+ pc_setpos()で存在しないマップということで移動しようとしなくなるので、
+ クライアントが「永遠にお待ちください状態」にならないようになります
+ C parse_frommap()
+ map-server切断時にchar_erasemap()を実行するようにした
+ map-server切断時に管轄のマップにキャラが残っていたら切断を他map-serverに通知(0x2b17パケット)するようにした
+ C 0x2afc
+ 認証失敗時に char_dat[].mapip/mapport を 0 にするようにした
+ 認証成功時に char_dat[].mapip/mapport をmap-serverのIPアドレスとポートにするようにした
+ 認証成功時に他map-serverにキャラがログインしたことを通知(0x2b09パケット)するようにした
+ C 0x2b02
+ C 0x2b05
+ コンソールへの出力にパケット番号を記述するようにした
+ C 0x2b08
+ パケット仕様を変更して account_id mapip mapport も通知するように変更
+ map-serverに接続していない時はすべて 0 が入ります
+ A 0x2b13
+ map-server起動途中などでキャラがログインできないようにする server[].active フラグを操作する
+ active = 0 でキャラはログインできずに切断される
+ map-serverが起動を完了したときに active = 1 にするパケットが送られてくる
+ A 0x2b14
+ char-serverをメンテナンス状態にする char_maintenance フラグを操作する
+ login-serverにも通知(0x272bパケット)してワールド選択画面でメンテナンス表示をする
+ メンテナンス状態ではGM以外のユーザーはログインできません
+ A 0x2b18
+ キャラクターの切断を他map-serverに通知(0x2b17パケット)するようにした
+ C search_mapserver()
+ 引数に struct mmo_charstatus *cd を追加
+ cdが渡された&探しているマップが接続しているmap-serverに無かったときに、最初に見つけたmap-serverの最初に見つけたマップに接続するようにした
+ これは char_athena.conf default_map_type: 2 の時の挙動です
+ C parse_char()
+ C 0x65
+ メンテナンス状態の時にGM以外を切断するようにした
+ 最大接続数が設定されていて最大接続数のときもGMは接続できるようにした
+ C 0x66
+ char-serverに接続しているmap-serverにlast_pointが見つけられなかったときに、
+ default_map_type&1 の時は default_map_name に接続する
+ default_map_type&2 の時は 最初に見つけたmap-serverの最初に見つけたマップに接続する
+ それでも見つからない時は切断するようにした
+ コンソールへの出力にパケット番号を記述するようにした
+ C 0x2af8
+ 他マップに接続しているキャラ情報を通知(0x2b09パケット)するようにした
+ C 0x187
+ S 0187パケットを返信するようにした
+ C check_connect_login_server()
+ char_portをWFIFOLで送っていたのをWFIFOWに修正
+ 80と82の間が空いていたのを詰めてパケット長を86→84に変更
+ C char_config_read()
+ default_map_type default_map_name を読み込むようにした
+ A gm_account_db_final()
+ 確保した gm_account_db のメモリを終了時に開放するようにした
+ C do_final()
+ inter.c など他ファイルの終了処理(do_final_*)を追加した
+ exit_dbn() でdb用のメモリを開放するようにした
+ 接続されているmap-serverのセッションを削除するようにした
+ do_final_timer()でtimerを終了させるようにした
+ C do_init()
+ server[].active = 0 で初期化
+ read_gm_account() でGMアカウントファイルを読み込むようにした
+ C char.h
+ mmo_map_server に active フラグを追加した
+ C int_guild.c
+ C mapif_parse_GuildSkillUp()
+ ギルドポイントを消費しないでギルドスキルを上げるために int flag を追加
+ C inter_guild_parse_frommap()
+ 0x303C
+ パケット定義を変更してflagを追加した
+ A guild_db_final()
+ A castle_db_final()
+ A do_final_int_guild()
+ 終了時にメモリを開放するようにした
+ C int_guild.h
+ A do_final_int_guild()
+ 定義を追加
+ C int_party.c
+ A party_db_final()
+ A do_final_int_party()
+ 終了時にメモリを開放するようにした
+ C int_party.h
+ A do_final_int_party()
+ 定義を追加
+ C int_pet.c
+ A pet_db_final()
+ A do_final_int_pet()
+ 終了時にメモリを開放するようにした
+ C int_pet.h
+ A do_final_int_pet()
+ 定義を追加
+ C int_storage.c
+ A storage_db_final()
+ A guild_storage_db_final()
+ A do_final_int_storage()
+ 終了時にメモリを開放するようにした
+ C int_storage.h
+ A do_final_int_storage()
+ 定義を追加
+ C inter.c
+ パケット長定義を変更
+ A mapif_parse_CharPosReq()
+ 0x3090パケットへの対応
+ キャラの位置要求をmap-serverに通知(0x3890パケット)する
+ A mapif_parse_CharPos()
+ 0x3091パケットへの対応
+ キャラの位置要求をしたキャラに位置情報を通知(0x3891パケット)する
+ A mapif_parse_CharMoveReq()
+ 0x3092パケットへの対応
+ 要求したキャラまで対象のキャラを飛ばす要求を通知(0x3892パケット)をする
+ A mapif_parse_DisplayMessage()
+ 0x3093パケットへの対応
+ キャラにメッセージを送信(0x3893パケット)する
+ C inter_parse_frommap()
+ 各追加パケットへの対応を追加した
+ A wis_db_final()
+ A accreg_db_final()
+ A do_final_inter()
+ 終了時にメモリを開放するようにした
+ C inter.h
+ A do_final_inter()
+ 定義を追加
+ C Makefile
+ A nullpo.o nullpo.h を追加
+ A malloc.o malloc.h を追加
+ common/
+ C db.c
+ A exit_dbn()
+ 終了時にメモリを開放するために追加
+ C db.h
+ A exit_dbn()
+ 定義追加
+ A malloc.h
+ A malloc.c
+ メモリ確保関数のまとめ
+ C mmo.h
+ C mmp_charstatus
+ mapip mapport 追加
+ C guild_castle
+ castle_event 追加
+ C Makefile
+ A malloc.o malloc.h malloc.c を追加
+ C nullpo.h
+ 古いgccでコンパイルできるように\を削除
+ C socket.c
+ C recv_to_fifo()
+ 汎用性を高めるために read() を recv() に変更
+ C send_from_fifo()
+ 汎用性を高めるために write() を send() に変更
+ C timer.c
+ A do_final_timer()
+ 終了時にメモリを開放するようにした
+ C timer.h
+ A do_final_timer()
+ 定義追加
+ login/
+ C login.c
+ A login_version login_type
+ clientinfo.xmlで指定する login_version login_type でログインを規制するときに使います
+ C parse_fromchar()
+ A 0x272b
+ server[].maintenance フラグを変更する
+ 変更した内容をchar-serverに返信(0x272cパケット)する
+ C parse_admin()
+ C 0x7932
+ 0x2730→0x272a に変更
+ C parse_login()
+ C 0x64 0x01dd
+ login_version login_type を判定するようにした
+ C 0x2710
+ パケット長の定義が正しくなかったのを修正した
+ char.c check_connect_login_server の変更を反映
+ C login_config_read()
+ login_version login_typeの読み込みを追加
+ A gm_account_db_final()
+ C do_final()
+ 終了時にメモリを開放するように変更
+ C Makefile
+ A malloc.o malloc.h を追加
+ map/
+ C atcommand.c
+ コンパイルオプションでmemwatchを読み込めるようにした
+ C atcommand_where()
+ 他map-serverにいるキャラの居場所も表示できるようにした
+ C atcommand_jumpto()
+ 他map-serverにいるキャラにも飛べるようにした
+ C atcommand_who()
+ ワールド内のすべてにいるキャラを表示するようにした
+ C atcommand_go()
+ ニブルヘルムの移動ポイントを変更
+ C atcommand_recall()
+ 他map-serverにいるキャラも呼び出せるようにした
+ A atshuffle_sub()
+ A atcommand_shuffle()
+ PCとMOBのシャッフルを行う @shuffle を追加
+ A atcommand_maintenance()
+ char-serverをメンテナンス状態にする @maintenance を追加
+ A atcommand_misceffect()
+ 実行したキャラから0x1f3パケットを発信してエフェクトを表示する @misceffect を追加
+ A atcommand_summon()
+ コールホムンクルスと叫んで指定したMobを召喚する @summon を追加
+ 召喚されたMobは他のMob(Pv等では敵対PC含む)を攻撃します
+ 召喚されたMobに攻撃されたMobは召喚主を攻撃します(バイオプラントのフローラと同じ挙動)
+ 召喚されたMobは1分後に消滅します
+ ネタなので隠しコマンドとしてhelp.txtには記述してません
+ C atcommand.h
+ 追加した@コマンドを AtCommandType に追加
+ C msg_table[] を外から使えるようにするためにexternした
+ C battle.c
+ コンパイルオプションでmemwatchを読み込めるようにした
+ A battle_config.castle_defense_rate
+ 本鯖で防御値がどのように影響するか具体的には分からなかったので、砦の防御値を反映させる率を設定できるようにした
+ C battle_get_opt1()
+ C battle_get_opt2()
+ C battle_get_option()
+ NPCのオプションも返すようにした
+ A battle_get_opt3()
+ opt3を返すように追加
+ C battle_calc_damage()
+ 砦内のMobへのダメージは防御値で減算(ダメージ*(防御値/100)*(castle_defense_rate/100))されるようにした
+ ガーディアンにはスキルが効くようにした
+ C battle_calc_pet_weapon_attack()
+ C battle_calc_mob_weapon_attack()
+ C battle_calc_pc_weapon_attack()
+ ベナムスプラッシャーのダメージ計算をするようにした
+ C battle_weapon_attack()
+ 武器攻撃による即死の仕様を変更
+ 武器、鎧破壊の確率計算をするように変更
+ ベナムスプラッシャーが解除されるように変更
+ C battle_check_target()
+ src じゃなくて ss からparty_id guild_idを取得するように修正
+ target=BCT_NOENEMY なスキル 口笛、ハミングなどがPvP、GvGの時にも他PCに影響するようにした
+ Mobがspecial_aiならMobを敵とみなすようにした
+ C battle_config_read()
+ castle_defense_rate を読み込むようにした
+ C battle.h
+ A battle_get_opt3()
+ 定義追加
+ C Battle_Config
+ castle_defense_rate 追加
+ C chat.c
+ C chat_createnpcchat()
+ 引数に int pub を追加
+ pub=3 ではチャットの看板に(0/20)のような表示がされなくなります
+ A do_final_chat()
+ 何もしてないけどとりあえず追加
+ C chat.h
+ C chat_createnpcchat()
+ 定義を変更
+ A do_final_chat()
+ 定義を追加
+ C chrif.c
+ パケット長テーブルを拡張
+ C chrif_connect()
+ C chrif_changemapserver()
+ WFIFOLでポートを送っていたのをWFIFOWに修正
+ A chrif_recverasemap()
+ 他map-serverが切断されたことがchar-serverより通知された時に、そのmap-serverが管理していたマップの情報を削除するようにした
+ A chrif_mapactive()
+ map-server起動準備中に0、完了時に1をchar-serverに通知(0x2b13)して起動途中にユーザーがログインできないようにした
+ A chrif_maintenance()
+ char-serverをメンテナンス状態にしたり解除したりを通知(0x2b14)する
+ A chrif_maintenanceack()
+ char-serverをメンテナンス状態にした時の応答
+ メンテナンス状態にした旨をマップ内に通知する
+ A chrif_chardisconnect()
+ char-serverにキャラが切断されたことを通知(0x2b18)する
+ A chrif_parse_chardisconnectreq()
+ char-serverからのキャラ切断要求を受けて、対象キャラがいる場合には切断する
+ C chrif_parse()
+ C 0x2b09
+ map_addchariddb() の引数増加に対応
+ A 0x2b15
+ A 0x2b16
+ A 0x2b17
+ A 0x2b19
+ 各新規パケットに対応
+ C check_connect_char_server()
+ 接続時char-serverにmap-serverの準備が出来たことを通知するようにした
+ A do_final_chrif()
+ 終了時にchar-serverとの接続を削除するようにした
+ C chrif.h
+ A chrif_mapactive()
+ A chrif_maintenance()
+ A chrif_chardisconnect()
+ A do_final_chrif()
+ 定義を追加
+ C clif.c
+ すべてのパケット定義を packet_db から読み込むように変更
+ packet_db.txtを変更することで、度々変更される韓国クライアントのパケット定義に対応しやすくなります
+ packet_len_table[] は packet_db[].len に置き換わりました
+ <time.h> をinclude
+ clif_parse_*を先頭で宣言するようにした
+ clif_parse_*内のRFIFO系で使われている第2引数は packet_db[cmd].pos[] で表記されるようになりました
+ パケット番号の最大値を MAX_PACKET_DB で定義するようにした
+ C clif_set0078()
+ C clif_set007b()
+ パケットの内容が本鯖と違っていたのでguild_emblem_id,manner,opt3を正しく送るように変更
+ C clif_class_change()
+ Mob以外のNPCでも使えるようにした
+ C clif_mob0078()
+ C clif_mob007b()
+ ガーディアンにギルドエンブレムを表示するように変更
+ C clif_npc0078()
+ ワープポータルをギルドフラッグにするオプションを有効にした時にmap-serverが落ちる問題を修正
+ C clif_spawnnpc()
+ NPCが無効でもHide状態の時はパケットを送るように変更
+ C clif_quitsave()
+ キャラ終了時にchar-serverに切断を通知するようにした
+ C clif_scriptmenu()
+ C clif_dispchat()
+ C clif_changechatstatus()
+ lenに1バイト追加
+ C clif_updatestatus()
+ マナーポイントを送信するようにした
+ A clif_changestatus()
+ 周囲に赤エモ状態であることを送信
+ A clif_misceffect2()
+ エフェクトを発生させるパケットを送信
+ @misceffect, misceffect命令で使用
+ C clif_changeoption()
+ 状態異常時以外は状態異常アイコン表示パケットを送らないようにした
+ PCの時は clif_changelook() を送信するようにした(結婚衣裳表示用?)
+ C clif_traderequest()
+ 取引パケットの 0xe5 → 0x1f4 に仮対応(本鯖での算出式は不明なのでとりあえず char_id を送信)
+ C clif_tradestart()
+ 取引パケットの 0xe7 → 0x1f5 に仮対応(本鯖での算出式は不明なのでとりあえず char_id を送信)
+ C clif_getareachar_pc()
+ マナーポイントが負数の時には赤エモ表示パケットを送信するようにした
+ C clif_getareachar_npc()
+ NPCのHide状態に対応
+ C clif_getareachar_skillunit()
+ C clif_skill_nodamage()
+ 自爆の時はhealを負数にできるようにした
+ C clif_skill_setunit()
+ グラフィティに対応
+ A clif_item_repair_list()
+ 武器修理スキルに対応しようとしたけどパケットが分からないので頓挫中
+ C clif_produceeffect()
+ map_addchariddb() の引数増加に対応
+ C clif_guild_skillinfo()
+ 未実装ギルドスキル カリスマを表示しないようにした
+ C clif_callpartner()
+ あなたに逢いたい 使用時に相手の名前を叫ぶようにした
+ C clif_sitting()
+ 引数 fd は不要なので削除
+ C clif_GM_kick()
+ フラグを0にするようにした
+ A clif_wisexin()
+ Wis拒否許可の応答を送信
+ A clif_wisall()
+ Wis全拒否許可の応答を送信
+ A clif_soundeffect()
+ SEを鳴らすパケットを送信
+ soundeffect命令で使用
+ C clif_parse_LoadEndAck()
+ 結婚後のウェディングドレスやタキシードの状態をログアウトしても1時間は継続されるようにした
+ 赤エモ状態はログアウトしてもログインした時からまた継続するようにした
+ C clif_parse_QuitGame()
+ C clif_parse_Restart()
+ 終了できない条件を pc_isquitable() にまとめた
+ C clif_parse_GlobalMessage()
+ C clif_parse_Wis()
+ C clif_parse_PartyMessage()
+ C clif_parse_GuildMessage()
+ 赤エモ状態では発言できないようにした
+ C clif_parse_ActionRequest()
+ ギルド未加入などの場合はガーディアンやエンペリウムを殴れないようにした
+ clif_sitting()の引数変更に対応
+ C clif_parse_UseItem()
+ 赤エモ状態ではアイテムを使えないようにした
+ C clif_parse_EquipItem()
+ アイテムが破壊されている時は装備できないようにした
+ C clif_parse_TradeRequest()
+ C clif_parse_TradeAck()
+ notradeマップでは取引要請を送れないようにした
+ C clif_parse_UseSkillToId()
+ C clif_parse_UseSkillToPos()
+ C clif_parse_UseSkillMap()
+ noskillマップではスキルを使用できないようにした
+ チャット中はスキルを使用できないようにした
+ 赤エモ中はスキルを使用できないようにした
+ ウェディング状態ではスキルを使用できないようにした
+ C clif_parse_MoveToKafra()
+ itemdb_isdropable()==0 は倉庫に入れられないようにした
+ C clif_parse_GMReqNoChat()
+ GM右クリックで赤エモを付与・解除できるようにした
+ C clif_parse_GMReqNoChatCount()
+ 本鯖での返答パケットがよく分からないので仮対応
+ 本当はアカウント名が返るのかな?
+ C clif_parse_sn_explosionspirits()
+ クライアントからパケットが来た時にコンソールにログを表示するようにした
+ BaseLv99以上の時に0で除算する可能性があるのを回避
+ A pstrcmp()
+ clif_parse_wisexin()のqsort()で使用
+ A clif_parse_wisexin()
+ Wis拒否許可に対応
+ A clif_parse_wisexlist()
+ Wis拒否リスト表示に対応
+ A clif_parse_wisall()
+ Wis全拒否許可に対応
+ A clif_parse_GMkillall()
+ GMコマンド/killall(=@kickall)に対応
+ A clif_parse_GMsummon()
+ GMコマンド/summon(=@recall)に対応
+ A clif_parse_GMshift()
+ GMコマンド/shift(=@jumpto)に対応
+ A clif_parse_debug()
+ packet_db.txtのデバグ用に追加
+ パケット内容をダンプします
+ C clif_parse()
+ clif_parse_func_table を削除(packet_db[cmd].funcに入るようになりました)
+ A packetdb_readdb()
+ packet_db.txtを読み込みます
+ フォーマットは パケット番号,パケット長[,コマンド,コマンド引数の位置(:区切りで複数指定)]
+ コマンド引数の位置は各コマンドに対応する関数内で設定されているのでclif.cを読まないと分からない難解なフォーマットです
+ 変更されたパケットはpacket_db.txtの末尾に追加します
+ 古いクライアントを利用する場合には不要な定義を末尾から削除すればよいようにします
+ A do_final_clif()
+ 終了時にセッションを削除するようにした
+ C do_init_clif()
+ packet_dbを読み込むようにした
+ 終了時にセッションを削除できるように make_listen_port() の戻り値を 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()
+ 定義を追加
+ C clif_class_change
+ clif_mob_class_change() から変更
+ C guild.c
+ C guild_read_castledb()
+ castle_event を読み込むようにした
+ C guild_skillup()
+ 引数を変更
+ flag=1 でギルドポイントを使用しないようにした
+ C guild_broken()
+ ギルド解散時に所有砦を破棄するための OnGuildBreak イベントを追加
+ A guild_db_final()
+ A castle_db_final()
+ A guild_expcache_db_final()
+ A guild_infoevent_db_final()
+ A do_final_guild()
+ 終了時にメモリを開放するようにした
+ C guild.h
+ C guild_skillup()
+ 定義を変更
+ A do_final_guild()
+ 定義を追加
+ C intif.c
+ atcommand.h をinclude
+ packet_len_table[] 拡張
+ C intif_guild_skillup()
+ 引数 flag 追加
+ A intif_charposreq()
+ キャラの場所要求パケットを送信
+ flag=1 @jumpto
+ flag=0 @where
+ A intif_jumpto()
+ 他map-serverのキャラに @jumpto 出来るようにした
+ A intif_where()
+ 他map-serverのキャラに @where 出来るようにした
+ A intif_charmovereq()
+ キャラを呼び寄せる
+ flag=1 @recall
+ flag=0 あなたに逢いたい
+ A intif_displaymessage()
+ 他map-serverのキャラにメッセージを送れるようにした
+ (Wisではなくて送りっぱなし。@recall 成功時用)
+ C intif_parse_WisMessage()
+ Wis拒否の判定をするようにした
+ A intif_parse_CharPosReq()
+ キャラの居場所をInterへ返答
+ A intif_parse_CharPos()
+ キャラの居場所がInterから送られてきたので
+ flag=1 キャラの場所へ移動(@jumpto)
+ flag=0 キャラの場所を表示(@where)
+ A intif_parse_CharMoveReq()
+ キャラがいたら指定位置に移動させる
+ flag=1 @recall なのでGMレベルを比較、メッセージを表示
+ A intif_parse_DisplayMessage()
+ 指定キャラにメッセージを送信
+ C intif_parse()
+ 新パケットを追加
+ C intif.h
+ C intif_guild_skillup()
+ 定義変更
+ A intif_jumpto()
+ A intif_where()
+ A intif_charmovereq()
+ A intif_displaymessage()
+ 定義の追加
+ C itemdb.c
+ A itemdb_isdropable()
+ アイテムが捨てられるかどうかの判定をする
+ A itemdb_read_cardillustnametable()
+ grfファイルから num2cardillustnametable.txt を読み込む
+ cutincard命令で使用
+ C do_init_itemdb()
+ itemdb_read_cardillustnametable() を追加
+ C itemdb.h
+ C struct item_data
+ char cardillustname[64] 追加
+ A itemdb_isdropable()
+ 定義の追加
+ C Makefile
+ A malloc.o malloc.h を追加
+ C map.c
+ C struct charid2nick
+ @whoで他map-serverのキャラも表示できるように account_id ip port を追加
+ C map_freeblock()
+ C map_freeblock_unlock()
+ 二重free()対策でNULLを代入するようにした
+ C map_delblock()
+ 見やすいように繰り返し使用される変数をまとめた
+ C map_addchariddb()
+ charid2nick の拡張にあわせて引数を増やした
+ A map_delchariddb()
+ charid_db からキャラを削除(実際にはip portを0に)する
+ C map_quit()
+ 結婚状態中はログアウトしても1時間は状態が続くようにPCグローバル変数 PC_WEDDING_TIME に開始時間を記録するようにした
+ C map_id2bl()
+ 見やすいように書き換え
+ A map_eraseipport()
+ 他map-server管理のマップを map_db から削除する
+ A map_who_sub()
+ A map_who()
+ 他map-serverにいるキャラも @who で表示されるようにした
+ 表示上キャラが残ることがあるのは調査中
+ A id_db_final()
+ A map_db_final()
+ A nick_db_final()
+ A charid_db_final()
+ C do_final()
+ 終了時にメモリを開放するように変更
+ C map.h
+ A MAX_WIS_REFUSAL
+ Wis拒否リストの保存最大値
+ C struct map_session_data
+ C special_state
+ A unbreakable_weapon
+ 武器が絶対に壊れない
+ A unbreakable_armor
+ 鎧が絶対に壊れない
+ A opt3
+ 画面外から入ってきたキャラの状態
+ A areanpc_id
+ OnTouchイベントを実行したNPCのID
+ A wis_refusal[][]
+ Wis拒否リスト
+ A wis_all
+ Wis全拒否フラグ
+ A break_weapon_rate
+ 武器破壊率
+ A break_armor_rate
+ 鎧破壊率
+ A add_steal_rate
+ 追加スティール率
+ C struct npc_data
+ A opt1,opt2,opt3,option
+ PCと同じ
+ C u.scr
+ A src_id
+ 終了時のメモリ開放用
+ C struct mob_data
+ A opt3
+ PCと同じ
+ A guild_id
+ ガーディアンなどで使用
+ D exclusion_*
+ 関連関数を消したので削除した
+ C struct map_data
+ C flag
+ A notrade
+ 取引禁止マップフラグ
+ A noskill
+ スキル使用禁止マップフラグ
+ 定数の追加
+ 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()
+ 定義変更
+ A map_delchariddb()
+ A map_eraseipport()
+ A map_who()
+ 定義追加
+ C mob.c
+ D mob_exclusion_add()
+ D mob_exclusion_check()
+ 意味がある使用をされていないのとbattle_check_target()で代用できるので削除した
+ C mob_stop_walking()
+ type&4で目的の場所まで距離があれば1歩進んで止まるようにした
+ C mob_attack()
+ MobがMobを攻撃できるようにした
+ 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も索敵するようにした
+ ルートモンスターが目標のアイテムを見失った時は目的の場所まで歩かないようにした
+ C mob_damage()
+ スフィアマインが殴られた時に自爆しなかったのを修正した
+ スフィアマインが殴られて自爆する時に移動するようにした
+ srcがMobの時はsrcのターゲットを外すようにした
+ C mob_skillid2skillidx()
+ インデックスが0から始まるのにエラーも0を返すしていたのを修正した
+ スフィアマインが殴られても自爆しない原因はこれ
+ C mobskill_use()
+ 自爆状態ではスキルを使用できないようにした
+ C mob_spawn()
+ ガーディアンとエンペリウムが砦で発生した場合は guild_id を設定
+ opt3 を 0 で初期化
+ C mob_can_reach()
+ GvG以外ではガーディアンは何もしないようにした
+ C mob_catch_delete()
+ Mobが消えるときのエフェクトを type で指定できるようにした
+ C mob_timer_delete()
+ スフィアマインとバイオプラントが消えるときはテレポエフェクトで消えるようにした
+ C mob_deleteslave_sub()
+ nullチェック前に代入している部分を修正
+ C mob_class_change()
+ clif_class_change() の変更に対応
+ C mob.h
+ C mob_catch_delete()
+ 定義変更
+ D mob_exclusion_add()
+ D mob_exclusion_check()
+ 定義削除
+ C npc.c
+ C struct npc_src_list
+ A prev
+ 終了時のメモリ開放用に追加
+ C npc_checknear()
+ イベントPCの場合に常にOKを返していなかったのを修正
+ A npc_enable_sub()
+ npc_enable() から呼ばれて周囲のPCにOnTouchイベントを実行する
+ C npc_enable()
+ flag による挙動を追加
+ flag=2 NPCのHide状態を解除する
+ flag=4 NPCをHide状態にする
+ HideしているNPCは無効になります
+ 有効にした時に npc_enable_sub() を呼ぶようにした
+ C npc_event()
+ エラー時は1を返すように変更
+ OnTouchイベントから呼ばれたときはイベントが見つからないエラーを返さないようにした
+ C npc_touch_areanpc()
+ PCがエリア内を通った時に何度も実行されるのを修正
+ NPCにOnTouchイベントがあった場合には実行するようにした
+ 互換性を保つためにOnTouchイベントが無い場合は今までと同じように動きます
+ C npc_parse_warp()
+ option,opt1,opt2,opt3 を 0 で初期化
+ C npc_parse_warp()
+ C npc_parse_shop()
+ IDをnpc_get_new_npc_id()で取得するようにした
+ option,opt1,opt2,opt3 を 0 で初期化
+ C npc_convertlabel_db()
+ メモリ確保後にnullかどうか確認していないのを修正
+ C npc_parse_script()
+ bad duplicate name!エラー表示が改行されていなかったのを修正
+ 終了時メモリ開放用にduplicateで src_id を挿入
+ IDをnpc_get_new_npc_id()で取得するようにした
+ option,opt1,opt2,opt3 を 0 で初期化
+ C npc_parse_mob()
+ memwatch対策でメモリを一括確保しないようにした
+ モンスター名に --ja-- --en-- を指定するとmob_dbの名前を使うようにした
+ IDをnpc_get_new_npc_id()で取得するようにした
+ C npc_parse_mapflag()
+ notrade noskill を読み込むようにした
+ A ev_db_final()
+ A npcname_db_final()
+ A do_final_npc()
+ 終了時にメモリを開放するようにした
+ C do_init_npc()
+ メモリを開放するようにした
+ C npc.h
+ A do_final_npc()
+ 定義の追加
+ C party.c
+ A party_db_final()
+ A do_final_party()
+ 終了時にメモリを開放するようにした
+ C party.h
+ A do_final_party()
+ 定義の追加
+ C pc.c
+ A pc_numisGM()
+ account_idでGMかどうか判断する
+ A pc_isquitable()
+ PCが終了できる状態にあるかどうか判断する
+ 1を返すときは終了できない
+ C pc_counttargeted_sub()
+ Mob状態によって値を正しく返さないような気がするので条件を仮変更
+ C pc_makesavestatus()
+ マナーポイントが正数の場合は 0 にする
+ C pc_authok()
+ wis_all を 0 で初期化
+ map_addchariddb() の変更に対応と常に実行するようにした
+ C pc_calcstatus()
+ break_weapon_rate break_armor_rate add_steal_rate を 0 で初期化
+ 結婚状態では歩く速度が半分になるようにした
+ C pc_bonus()
+ SP_UNBREAKABLE_WEAPON SP_UNBREAKABLE_ARMOR SP_BREAK_WEAPON_RATE SP_BREAK_ARMOR_RATE SP_ADD_STEAL_RATE
+ 処理を追加
+ C pc_dropitem()
+ アイテムを捨てられるかどうか判定するようにした
+ C pc_putitemtocart()
+ アイテムをカートに移動できるか判定するようにした
+ C pc_steal_item()
+ スティール率に add_steal_rate を加算するようにした
+ C pc_walk()
+ C pc_movepos()
+ 範囲NPCがいないときには areanpc_id=0 にした
+ C pc_checkbaselevelup()
+ スパノビがレベルアップした時にかかるスキルのレベルを本鯖にあわせた
+ C pc_skillup()
+ guild_skillup() の変更に対応
+ C pc_damage()
+ スパノビがExp99%でHPが0になるとHPが回復して金剛状態になるようにした
+ C pc_readparam()
+ nullチェック前にsdを使っていたのを修正
+ A SP_PARTNER
+ 結婚相手のchar_id
+ A SP_CART
+ カートを引いている場合は0以上が返る
+ C pc_jobchange()
+ マナーポイントが負数の場合は赤エモ表示するようにした
+ A pc_break_weapon()
+ 武器破壊をする
+ A pc_break_armor()
+ 鎧破壊をする
+ C pc_natural_heal_sp()
+ スパノビは爆裂状態でもSPが自然回復するようにした
+ A gm_account_db_final()
+ A do_final_pc()
+ 終了時にメモリ開放するようにした
+ C pc.h
+ A pc_numisGM()
+ A pc_isquitable()
+ A pc_break_weapon()
+ A pc_break_armor()
+ A do_final_pc()
+ 定義追加
+ C pet.c
+ C pet_data_init()
+ C pet_lootitem_drop()
+ メモリ確保できたかどうか確認していなかったので修正
+ C pet_catch_process2()
+ mob_catch_delete() の変更に対応
+ C script.c
+ 追加した関数のプロトタイプを先頭に追加
+ buildin_func[]に追加した命令や関数を追加
+ 演算子に C_R_SHIFT C_L_SHIFT を追加
+ C parse_subexpr()
+ 演算子 >> << 追加
+ C get_val()
+ PC主体の変数でPCがアタッチされていなかったらエラーを出すようにした
+ PC主体の変数でsd=NULLだった場合にはpc_read*で取得に行かないようにした
+ A buildin_close2()
+ スクリプトを中断してCloseボタンを表示します
+ C buildin_areawarp_sub()
+ RandomだけでなくSavePointにも飛ばせるようにした
+ A buildin_cutincard()
+ カードのアイテムIDを指定することでカード画像を表示します
+ C buildin_getitem()
+ 引数を変更して鑑定した状態で渡すかどうかを指定できるようにした
+ account_idを指定することで、そのPCにアイテムを渡せるようにした(結婚用拡張)
+ C buildin_getitem2()
+ account_idを指定することで、そのPCにアイテムを渡せるようにした(結婚用拡張)
+ C buildin_readparam()
+ キャラ名を指定することで、そのPCのパラメータを読み取れるようにした
+ C buildin_getcharid()
+ キャラ名を指定することで、そのPCの関係IDを取得できるようにした
+ A buildin_getpartymember()
+ 指定IDのパーティ人数の取得とパーティーメンバーのIDを配列で取得できます
+ A buildin_guildskill()
+ ギルドスキルを覚えることができます
+ C buildin_getgdskilllv()
+ ギルドスキルIDをGD_APPROVALのようなスキル名で指定するようにした
+ A buildin_hideoffnpc()
+ Hide状態のNPCを表示する
+ A buildin_hideonnpc()
+ NPCをHide状態にする
+ C buildin_sc_start()
+ ID指定したキャラを状態異常にできるようにした
+ A buildin_sc_start2()
+ 確率指定でキャラを状態異常にできます(アイス、おもち等で使用)
+ A buildin_getscrate()
+ 状態異常耐性を計算した確率を返す
+ C buildin_changebase()
+ IDで指定したキャラの見た目を変更することができるようにした
+ C buildin_waitingroom()
+ limit=0の時は(1/10)を表示しないようにした
+ C buildin_setmapflag()
+ MF_NOTRADE MF_NOSKILL を追加
+ C buildin_flagemblem()
+ NPCが特定できなかったときにmap-serverが落ちる問題を修正
+ A buildin_getinventorylist()
+ 配列で所持品を返します
+ A buildin_getskilllist()
+ 配列で所有スキルを返します
+ A buildin_clearitem()
+ 所持アイテムを削除します
+ A buildin_getrepairableitemcount()
+ 壊れているアイテムを数えます
+ A buildin_repairitem()
+ 壊れているアイテムをすべて修理します
+ A buildin_classchange()
+ NPCをクラスチェンジします
+ A buildin_misceffect()
+ エフェクトを表示します
+ A buildin_soundeffect()
+ 指定したSEを鳴らします
+ C op_2num()
+ C run_script_main()
+ シフト演算子を追加
+ A mapreg_db_final()
+ A mapregstr_db_final()
+ A scriptlabel_db_final()
+ A userfunc_db_final()
+ C do_final_script()
+ 終了時にメモリを開放するようにした
+ C skill.c
+ <timer.h> intif.h をinclude
+ コメントのスキル名をjRO仕様に書き換え
+ C SkillStatusChangeTable[]
+ ベナムスプラッシャー グラフィティ 自爆 自爆2 を追加
+ C skill_additional_effect()
+ ベナムスプラッシャー追加
+ アンクルスネアを削除
+ C skill_attack()
+ チャット中にスキルが影響しないようにした(チャットキャンセル)
+ ベナムスプラッシャーはSkillLv=-1でclif_skill_damage()するようにした
+ 自爆はダメージ表示しないようにした
+ C skill_castend_damage_id()
+ アシッドテラーで武器破壊をするようにした
+ ベナムスプラッシャーが3*3の範囲攻撃をするようにした
+ 自爆の処理を変更した
+ C skill_castend_nodamage_id()
+ sdとdstsdでPCかどうかを判定するようにした
+ スパノビの嫁がヒールを使うと回復量が2倍になるようにした
+ clif_sitting()の変更に対応
+ 武器修理はパケットが分からないのでコメントアウト
+ ストリップ〜、ケミカル〜をスキルユニットに使用した場合、map-serverが落ちる問題を修正
+ 君だけは護るよ、あなたの為に犠牲になりますの計算をMAX_HPまたはMAX_SPからするようにした
+ あなたに逢いたい を相手の名前を叫ぶ、複数設置できない等、本鯖風にした
+ アンクルスネアでPCが引っかかっている時にリムーブトラップしてもPCが動けるようにならなかったのを修正
+ アンコールを叫ぶようにした
+ ベナムスプラッシャーを実装した
+ 自爆で自爆状態を開始するようにした
+ C skill_castend_pos2()
+ バイオプラント、スフィアマイン
+ パケット順番を変更
+ 指定した場所に設置するようにした
+ 効果時間をskill_cast_db.txtで指定するようにした
+ mob_exclusion_add()を削除
+ グラフィティを実装、1個しか置けません
+ C skill_castend_map()
+ ワープポータルは実際の設置時にブルージェムストーンを消費するようにした
+ C skill_unitsetting()
+ グラフィティのスキルユニットを1個に修正
+ トーキーボックス、グラフィティの文字列は sd->message に格納するようにした
+ C skill_unit_onplace()
+ チャット時はスキルユニットが動作しないようにした(チャットキャンセル)
+ アンクルスネアにかかる処理をskill_additional_effect()から移動
+ ワープポータルに術者が乗ったら消えるようにした
+ デモンストレーションによる武器破壊をするようにした
+ アンクルスネア、スパイダーウェッブでメモリアクセス違反が起きる可能性があったのを修正
+ C skill_unit_onout()
+ アンクルスネアで「}」が足りなかったために近くを通りかかっただけで1秒後罠に戻ってしまったのを修正
+ C skill_unit_onlimit()
+ ワープポータル発動前の処理を削除
+ あなたに逢いたいを他map-serverにいても呼べるようにした
+ A skill_check_condition_mob_master_sub()
+ マップ内で同じPCから出たバイオプラントやスフィアマインの数を数える
+ C skill_check_condition()
+ hp_rateとsp_rateに負数を指定すると消費計算をMax値からするようにした
+ あなたに逢いたいを結婚していない状態で使ったら使用失敗を表示するようにした
+ バイオプラントとスフィアマインの設置数をskill_cast_db.txtで設定できるようにした
+ ファイアーウォールの数制限を skill_use_pos() から移動
+ C skill_use_id()
+ バジリカをGvGでは使用できないようにした
+ ベナムスプラッシャーは対象が毒状態でなければ使用失敗
+ C skill_use_pos()
+ ファイアーウォールの数制限を skill_check_condition() に移動
+ C skill_status_change_end()
+ opt3の処理を追加
+ 結婚状態の終了を追加
+ ベナムスプラッシャーを追加
+ 自爆を追加
+ C skill_status_change_timer()
+ 結婚状態と赤エモ状態のタイマー再設定を追加
+ 自爆状態では1秒ごとに速度が変化するようにした
+ C skill_status_change_start()
+ opt3の処理を追加
+ グラフィティは追加で置いたら前のは消えるようにした
+ 結婚状態と赤エモ状態を追加
+ グラフィティは状態異常開始時にスキルユニットを設置するようにした
+ ベナムスプラッシャーは特に何も追加はなし
+ 自爆は詠唱パケットをここで送るようにした
+ C skill_status_change_clear()
+ opt3の処理を追加
+ C skill_unit_timer_sub()
+ ワープポータル発動前が時間切れになるときに見た目を変更して本鯖のように効果音が出るようにした
+ ブラストマイン以外の罠は時間切れで罠に戻るようにした
+ C skill.h
+ 状態異常にスキル名をいくつかつけたり、新規の状態異常を増やした
+ C storage.c
+ A storage_db_final()
+ A guild_storage_db_final()
+ C do_final_storage()
+ 終了時にメモリを開放するようにした
+ C trade.c
+ C trade_tradeadditem()
+ C trade_tradecommit()
+ itemdb_isdropable()で交換できないアイテムを判定するようにした
+ C vending.c
+ vending_purchasereq()
+ 金額計算をdoubleでするようにしてintで桁あふれしないようにした
+
+--------------------
+//1045 by TEILU
+
+・スティール、スティールコイン、スナッチャーの失敗メッセージが
+ レベルが1〜9の時に変だったので修正。
+ (map/)
+ skill.c
+
+・精錬の可否を情報サイトを元にDBに設定。(頭装備はrusiさん作成分を使用)
+ (db/)
+ item_db.txt
+
+・ファイアーウォールが制限数を超えたときにスキル使用失敗が
+ 出るタイミングを変更。
+ (map/)
+ skill.c
+
+・アブラカタブラ専用スキルをgm_all_skill設定時に表示できるように変更。
+ battle_athena.confのgm_all_skill_add_abraにyesを設定すれば
+ スキルリストに表示されるようになります。
+ (conf/)
+ battle_athena.conf
+ (db/)
+ skill_require_db.txt
+ (map/)
+ battle.c
+ battle.h
+ pc.c
+
+--------------------
+//1044 by TEILU
+
+・1042で@itemidentifyの権限の設定を忘れていたので追加。
+ (conf/)
+ atcommand_athena.conf
+
+・スティール、スティールコイン、スナッチャーの失敗時に
+ 失敗メッセージを表示するように変更。
+ (map/)
+ skill.c
+
+・アイテムDBに精錬可否フラグのカラムを追加
+ 精錬の可否をDBを参照するように修正
+ ※とりあえず中段、下段、中下段の頭装備とアクセサリ以外の
+ 装備品はすべて精錬可の設定でDBを作りました。
+ DBは修正が必要になります。
+ (db/)
+ item_db.txt
+ (map/)
+ itemdb.c
+ itemdb.h
+ script.c
+
+--------------------
+//1043 by dusk
+・docフォルダ・confフォルダ内のhelp.txtに1042(TEILUさん)の説明追加
+ @itemidentifyの説明は72行目の@itemresetの下に。
+
+・Valkyrie Realms 5 (右上)の旗の修正
+ Valkyrie Realms 5 (右上)の旗を見ると未取得状態コメントばっかり出ていたのを
+ ちゃんと確認できるように。
+ ※ Valkyrie Realmsの各砦に戻る旗とは違います。
+ prtg_cas05.txt内のギルドダンジョンに入るレバー以外の
+ getcastledata "prtg_cas05.gat",1,@GIDp5;を
+ set @GIDp5,getcastledata("prtg_cas05.gat",1);に修正。
+
+--------------------
+//1042 by TEILU
+
+・@healコマンドに何も渡さないと完全回復するように変更。
+ (map/)
+ atcommand.c
+
+・@itemitemidentifyコマンドの追加
+ 未鑑定の所持アイテムを全て鑑定します。
+ (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
+ ラウレルさんの台詞、ノビとプリの場合の分追加
+-------------------
+//1040 by 胡蝶蘭
+
+・サーバー間接続のパケット表追加
+ (doc/)
+ serverlink_packet.txt
+ inter<->map 以外のサーバー間接続のパケット表
+
+・仕様スレの Login_ID2 関係でごにょごにょ
+・サーバー間接続のパケット一部変更
+ (login/)
+ login.c
+ auth_fifo に ip メンバ追加
+ パケット変更に伴う変更他
+ (char/)
+ char.c
+ auth_fifo に login_id2, ip メンバ追加
+ パケット変更に伴う変更他
+ (map/)
+ chrif.c
+ chrif_authok()追加
+ パケット変更に伴う変更他
+
+・自動再起動スクリプト start にコメントで簡単な説明追加
+ start
+ コメント追加
+
+--------------------
+//1039 by Ni+S
+ ・ギルド関係のスクリプト
+ 所有者の居ないアジトから、ギルドに所属してないキャラなら
+ ギルドダンジョンに入れてしまうという不具合がありました
+
+ これは、所有者の居ないアジトの値が0であり、
+ getcharid(2)でギルドIDを返すのですが、
+ ギルドに所属していないキャラはgetcharid(2)で0を返す為、
+ 値が一致してしまい起こっていた現象でした
+ 未所属キャラが入れないように修正しました
+
+ ・ファーマシー/ポーション作成DB
+ レッドスリムポーション
+ イエロースリムポーション
+ ホワイトスリムポーション
+ の材料を、空のポーション瓶から試験管に修正
+
+--------------------
+//1038 by Plala
+・転職NPC関連の重大なバグ修正
+ (script/npc/job)
+ npc_job_aco.txt 修正
+ npc_job_merchant.txt 修正
+ npc_job_thief.txt 修正
+
+ ・上記NPCで途中までクエストを進めて他の職に転職すると、
+ 再び転職可能だった点を修正しました
+
+
+--------------------
+//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 !
+
+** 英語圏の開発者の方へ(日本語訳) **
+日本語エンコード(シフトJIS)を使う気が無いならアップロードしないてください!
+なぜ我々(日本人)があなた方のアップロードのたびに文字化けを直さなければならないんですか?
+壊すのは簡単ですが、直すのはとても難しいんです!
+
+・文字化けを根性で修正
+ (map/)
+ script.c
+
+・ladminがPOSIX必須に。Digest::MD5が無くても実行できるように修正
+・serverstatus.cgiで、Net::Pingが無くても実行できるように修正
+ (bin/tool/)
+ ladmin
+ (bin/tool/cgi/)
+ serverstatus.cgi
+
+・script_refで抜けてるものでわかるものを修正
+ 何故かscript_refから抜けてるもの(getargなど)の一部を再び追加
+ ** アップロードするときは最新パッチからの差分をアップロードしましょう **
+ (doc/)
+ script_ref.txt
+
+・account_making.txt修正
+ ladminスクリプトのパス
+ (doc/)
+ accoun_tmaking.txt
+
+--------------------
+//1036 by Michael
+・追加 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(); 追加
+ buildin_gettimetick(); 追加
+ buildin_gettime(); 追加
+ buildin_gettimestr(); 追加
+
+--------------------
+//1035 by Michael
+・追加 GVG Script NPC edit from Aegis NPC(Chinese-big5 version), Please someone translate to Japanese.
+・修正 NPC Script Command - buildin_getgdskilllv()
+ getgdskilllv(Guild_ID, Skill_ID);
+
+ (map/)
+ script.c
+ buildin_getgdskilllv() 修正
+
+--------------------
+//1034 by (Pepermint)
+ FIX NPC Script Command - buildin_getgdskilllv()
+ Add NPC Sctipt Command - buildin_agitcheck()
+ (map/)
+ script.c
+ buildin_getgdskilllv() 修正
+ buildin_agitcheck() 追加
+
+--------------------
+//1033 by Michael
+・追加 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() 追加
+
+--------------------
+//1032 by (凸)
+・1031で何故か削除されていたbuildin_getitemname()を復活
+・バグスレなどに出た修正を反映
+・その他細かい修正
+
+ (map/)
+ clif.c
+ clif_disp_onlyself() NULLチェック追加
+ map.c
+ map_nick2sd() nickがNULLだとすぐNULLを返すように変更
+ mob.c
+ mob_setdelayspawn() NULLチェック変更
+ mob_delete() 修正
+ npc.c
+ npc_parse_warp() 修正
+ script.c
+ buildin_getitemname() 復活
+
+--------------------
+//1031 by huge
+・NPCのscriptに、makepetを追加。
+ makepet 卵ID; で、ペットを作成します。
+・NPCのscriptに、getexpを追加。
+ getexp Base,Job; で、それぞれの経験値を増やします。
+・ペットの卵をNPCのdelitemで消したりshopで売った時、ペットセーブデータから削除するよう修正。
+・ディボーション成功条件修正。(未確認)
+・経験値表示を可能にしてみました。confにて設定してください。
+
+ (conf/)
+ battle_athena.conf 修正
+ (doc/)
+ conf_ref.txt 修正
+ script_ref.txt 修正
+ (map/)
+ battle.c
+ battle.h
+ disp_experience 追加
+ clif.c
+ clif.h
+ clif_disp_onlyself() 追加
+ pc.c
+ pc_gainexp() 修正
+ script.c
+ buildin_delitem() 修正
+ buildin_makepet() 追加
+ buildin_getexp() 追加
+ npc.c
+ #include 修正
+ npc_selllist() 修正
+ skill.c
+ skill_castend_nodamage_id() 修正
+
+
+--------------------
+//1030 by (凸)
+・map_athena.confに新婚島ザワイをコメントアウトして追加
+・クローンスキルで覚えたスキルを自動セーブごとに忘れていたのでとりあえずログオフ時にのみ忘れるように変更したつもり
+・mobskill_castend_posの無害nullpoチェックを変更
+・Emotionの設定がないMobがスキルを使用するときに/!を出していたのを修正
+・バグスレに投げたtrade.cを添付。とりあえず相手が所持できる種類の限界を超えた場合は渡さずに元に戻すように変更
+
+ (conf/)
+ map_athena.conf ザワイ追加
+ (doc/)
+ client_packet.txt パケット長の更新
+ (map/)
+ map.c
+ map_quit() 終了時にクローンスキルで覚えたスキルを忘れるように変更
+ mob.c
+ mobskill_castend_pos() nullpoチェック変更
+ mob_readskilldb() 修正
+ pc.c
+ pc_makesavestatus() クローンスキルを忘れるのをmap_quitに任せた
+ trade.c
+ trade_tradecommit() 所持できる種類以上を取引した場合にアイテムが消えないように
+
+--------------------
+//1029 by (凸)
+・20040619RagexeHC_jp.rgzの0x204と0x20bパケットに対応
+・charとloginも知らないパケットが来たらパケットダンプを出力するようにclif.cからコピペ
+
+ (doc/)
+ client_packet.txt 新パケット追加
+ (char/)
+ char.c
+ parse_char() 0x20b対応
+ (login/)
+ login.c
+ parse_login() 0x204対応
+
+--------------------
+//1028 by (凸)
+・ウンバラ以降、Mobがスキルを使用するときにエモーションを出すようになったので、mob_skill_dbを拡張
+ サンプルでオークウォーリアーが喫煙すると「/…」を出すのとオークレディが速度を使うと「/ちゅ」を出します
+・アイテム682,683を使用すると30秒間ATKやMATKが増えるらしいのでそれっぽく
+・job_db2.txtに謎の行が2行あったのを削除
+・範囲魔法などでスキルユニット相手にステータス変更をかけようとした場合にnullpoが出たのを修正
+
+ (db/)
+ const.txt SC_INCATK SC_INCMATK追加
+ item_db.txt ↑を682,683に追加
+ job_db2.txt 謎の2行を削除
+ mob_skill_db.txt Emotion追加
+ (map/)
+ mob.c
+ mobskill_use() スキル使用時にエモーションを出すように変更
+ mob_readskilldb() Emotionを読み込むように変更
+ mob.h 変更
+ pc.c
+ pc_calcstatus() 変更
+ skill.c
+
+ skill_status_change_end() 変更
+ skill_status_change_start() 変更とNULLチェック修正
+ skill.h 変更
+
+--------------------
+//1027 by Ni+S
+・getitemname関数追加
+・スクリプトにgetitemname関数を追加
+・itemidより、jnameを文字列で返します
+・詳しくはscript_ref.txtで。
+
+ script.c
+ getitemname()追加
+
+--------------------
+//1026 by (凸)
+・1023で入れてなかったclif.hを同梱
+・バイオプラントとスフィアーマインで出したmobを倒すとmob_timer_delete()でnullpoが出る問題を解決したつもり
+・バグ報告スレッド part6 >>63 Destさんのscript.c修正を取り込み
+
+ (map/)
+ clif.h 変更
+ map.h 変更
+ mob.c
+ mob_changestate() 変更
+ skill.c
+ skill_castend_pos2() 変更
+ mob_spawn() 変更
+ do_init_mob() add_timer_func_listにmob_timer_deleteが無かったので追加してみた
+ script.c
+ script_load_mapreg() 変更
+
+------------------------
+//1025 by Sel
+・ロードナイトのジョブ補正が間違っていたのを修正
+・オーラブレード効果時間を修正
+・オーラブレード武器制限を素手以外全てに修正
+・コンセントレーション武器制限を両手槍のみから片手槍+両手槍へ修正
+・トゥルーサイト効果時間を修正
+
+ (db/)
+ job_db2-2.txt 変更
+ skill_cast_db.txt 変更
+ skill_require_db.txt 変更
+--------------------
+//1024 by mare
+・ファーマシー材料の変更、製造可能薬品の追加
+ 6/8日本鯖にきたものと同じにしました
+
+ (db/)
+ produce_db.txt 変更
+
+--------------------
+//1023 by (凸)
+・1022でエンバグしたnpc_parse_script()を戻し
+・スパイラルピアースの重量追加ダメージ計算式をちょっと変更
+・魔法力増幅の計算式をちょっと変更
+・テンションリラックスが座って使うのではなく使うと座るという情報を見かけたので変更
+・↑に伴いskill_requireのsitting条件廃止
+・バーサークをGvGで使用できないように変更
+
+ (db/)
+ skill_cast_db.txt 変更
+ skill_require_db.txt 変更
+ (doc/)
+ db_ref.txt 修正
+ (map/)
+ battle.c
+ battle_calc_pc_weapon_attack() 変更
+ clif.c
+ clif_sitting() 追加
+ clif_parse_ActionRequest() 変更
+ npc.c
+ npc_parse_script() 修正
+ pc.h 変更
+ pc.c
+ pc_calcstatus() 変更
+ pc_natural_heal_hp() 変更
+ pc_setstand() 追加
+ skill.c
+ skill_castend_nodamage_id() テンションリラックスを使うと座るように
+ skill_check_condition() ST_SITTING廃止
+ skill_use_id() バーサークをGvGで使用できないように
+ skill_status_change_timer() テンションリラックスは10秒ごとにSPを12消費
+ skill_status_change_start() テンションリラックス変更
+ skill_readdb() sitting廃止
+ skill.h 変更
+
+--------------------
+//1022 by (凸)
+・NULLチェック変更
+・login,char,map終了時に開放されていなかったメモリを微妙に開放する努力をしてみた
+・スパノビ爆裂波動実装、クリティカル+50
+・スパノビボーナスを変更、最初から一度も死んでないJobLv70にAll+15、BaseLv99にMHP+2000
+
+ (doc/)
+ client_packet.txt S 01ed追加
+ (char/)
+ do_final() 変更
+ do_init() 変更
+ (login/)
+ do_final() 追加
+ do_init() 変更
+ (map/)
+ atcommand.c Destさんの変更を取り込み
+ battle.c 同上
+ chat.c NULLチェック変更
+ chrif.c NULLチェック変更
+ clif.c NULLチェック変更
+ clif_parse() 変更
+ clif_parse_sn_explosionspirits() 追加
+ clif_parse_sn_doridori() 名前変更
+ guild.c NULLチェック変更
+ intif.c NULLチェック変更
+ itemdb.c NULLチェック変更
+ map.c NULLチェック変更
+ do_final() 変更
+ mob.c NULLチェック変更
+ npc.c NULLチェック変更
+ npc_parse_script() buf開放忘れ?を開放
+ party.c NULLチェック変更
+ path.c NULLチェック変更
+ pc.c NULLチェック変更
+ pc_calcstatus() スパノビ変更
+ pet.c NULLチェック変更
+ storage.c NULLチェック変更
+ trade.c NULLチェック変更
+ vending.c NULLチェック変更
+
+--------------------
+//1021 by Kalen
+・プロンテラ冠婚品NPCにてタキシード販売
+・Umbalaのワープ見直し
+ D2Fのワープを本鯖使用に変更。重複ポイント修正
+・UmbalaNPC修正
+ ラベルを使用しなくいい場所は極力削除(-)
+ セーブポイント修正
+ バンジージャンプ台追加
+ 骸骨門追加
+ 分解、合成処理追加
+ カプラ、案内要員をあるべき場所へ移動。
+ ※一部Emoについて、癌呆自身が逆に取り違えているみたいなので独自で変えました。
+ 見てもらえば分かりますが18と28を逆にするとNPCの会話内容に合うEmoが出たので
+ クエストフラグの条件追加
+ これによりすでに終えている場合でも途中になる可能性があります。
+・スパノビ転職NPC追加
+ 凸さんのログを基に作成しました。
+・アルケミストギルドのノビの場合の対応修正(凸さんからのログより)
+・結婚NPC追加
+ ただし、まだテスト段階です。問題点があるため結婚不可能です。
+ (/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(新・テスト)
+ (/job)
+ npc_job_alchemist.txt
+ npc_job_supernovice.txt(新)
+
+--------------------
+//1020 by (凸)
+・nullpoの変更に対応してmap_athena.confの設定削除&skill.c書き換え
+・座っているとHPRとSPRが通常の半分で発動したのを修正
+・スパノビが一定条件(クライアント依存)で/doridoriするとSPR回復量が倍になるように変更
+・結婚式用のエフェクトをスクリプトからwedding命令で発生させることが出来るようした
+・合奏を開始したPCは合奏中に終了できないようにしたつもり(未確認)
+
+ (conf/)
+ map_athena.conf nullpo_check削除
+ (doc/)
+ client_packet.txt 更新
+ conf_ref.txt nullpo_check削除
+ (map/)
+ map.c
+ map_config_read() nullpo_check削除
+ map.h 同上
+ skill.c NULLチェック再度総入れ替え
+ clif.c
+ clif_wedding_effect() 追加
+ clif_parse_QuitGame() 合奏開始者は合奏中に終了できないように変更
+ clif_parse_doridori() 追加
+ clif_parse() doridori追加
+ clif.h 変更
+ pc.c
+ pc_authok() doridori初期化追加
+ pc_natural_heal_hp() 座っているときのHPR時間修正
+ pc_natural_heal_sp() 座っているときのHPR時間修正、doridori追加
+ script.c
+ buildin_wedding_effect() 追加
+
+
+--------------------
+//1019 by Dest
+・nullpoモジュールにコーディングミス発見/修正
+・同、voidな関数から呼ばれた時のnullpo_retv_f()を追加
+・同、条件コンパイルに対応
+
+ (common/)
+ nullpo.c
+ nullpo_info_core() コーディングミス修正
+ nullpo.h
+ NULLPO_CHECKフラグによる条件コンパイル追加
+ nullpo_retv_f() 追加
+
+--------------------
+//1018 by chloe
+・ウンバラモンスターを追加
+
+ (script/mob/)
+ npc_monster.txt 変更
+ 各ウンバラマップにMob配置
+ (db/)
+ mob_db.txt 変更
+ 1495,STONE_SHOOTER,フレイムシューター 修正
+ 1511,AMON_RA,アモンラー 修正
+
+--------------------
+//1017 by (凸)
+・バグ報告スレッド part6 >>46 Destさんのnullpoモジュールを追加&voidな関数から呼ばれた時のnullpo_retv()を追加(とりあえずskill.cのNULLチェックだけ入れ替え)
+・同>>39 Selさんから報告があったコンセントレーションを修正
+・仕様について語り合うスレッド >>33 Kalenさんの情報をclient_packet.txtに反映
+・本鯖相違スレッド part3 >>24 M @zqcM6jBwさんの情報を↑
+・同>>30 はちさんの修正を反映
+
+ (conf/)
+ map_athena.conf nullpo_check追加
+ (db/)
+ item_db.txt 結婚指輪を武器-アクセサリに変更&最新版
+ (doc/)
+ client_packet.txt 更新
+ conf_ref.txt nullpo_check追加
+ (common/)
+ Makefile 変更
+ nullpo.c 追加
+ nullpo.h 追加
+ (map/)
+ Makefile 変更
+ map.c
+ map_config_read() nullpo_check追加
+ map.h 同上
+ skill.c NULLチェック総入れ替え
+ skill_status_change_start() コンセントレーション修正
+ skill_castend_nodamage_id() テレポート修正
+ clif.c
+ clif_skill_setunit() コメント修正
+ pc.c
+ pc_calcstatus() コンセントレーション修正
+
+--------------------
+//1016 by な。
+・Athena雑談スレッドPart4 42 かる氏作のウンバラNPCを追加
+
+ (script/npc/town/)
+ npc_town_umbala.txt追加
+ イベントデバッグ様(230〜256行目)はコメントアウト
+ (conf/)
+ map_athena.conf town に npc: script/npc/town/npc_town_umbala.txt 追加
+
+--------------------
+//1015 by (凸)
+・リムーブトラップを本鯖仕様とAthena仕様で選べるようにした
+・スパノビにAll+10する条件が良く分からなかったけど最初から+10じゃないのは確かなのでとりあえずBase99で一度も死んでなければという条件に変更
+・ダンス中に吹き飛ばされてもエフェクトは移動しないそうなので変更
+・@go 13微調整
+
+
+ (conf/)
+ battle_athena.conf skill_removetrap_type追加
+ (doc/)
+ client_packet.txt 本鯖相違スレッド part3 23 M @zqcM6jBwさんの情報を追加
+ conf_ref.txt skill_removetrap_type追加
+ (map/)
+ atcommand.c
+ atcommand_go() ウンバラの出現位置微調整
+ battle.c
+ battle_config_read() skill_removetrap_type追加
+ battle.h 同上
+ pc.c
+ pc_calcstatus() スパノビAll+10条件変更
+ skill.c
+ skill_blown() ダンス中の吹き飛ばしを元に戻した
+ skill_castend_nodamage_id() リムーブトラップ仕様変更
+
+ --------------------
+//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 (凸)
+・サーバースナップショット
+
+--------------------
+//1012 by (凸)
+・help.txtにある@goの説明から13と14を削除
+ 機能は消えてないので使えることは使えますが、helpに載せるのはjROに来てからということで
+・cast_db.txtをskill_cast_db.txtに改名
+・ついでにmake cleanでGNUmakefileも消してみることにする
+・u-0さんの検証などを総合してダンスユニット関連を変更
+ 演奏・ダンス中のハエはユニット付きで飛ぶそうです
+ 演奏・ダンス中にワープポイントに乗ったら状態が解除されるようです
+ 合奏中に片方がハエ飛びしたらエフェクトは元の場所に残り、飛んだ先では合奏状態が継続して動けない&時間ごとにSP消費するようです
+・PC_DIE_COUNTERがスクリプトから変更された時にすぐに反映されるように変更
+
+ (conf/)
+ help.txt @go説明変更
+ (db/)
+ skill_cast_db.txt 改名
+ (map/)
+ pc.c
+ pc_setpos() ダンス中断のタイミング変更
+ pc_setglobalreg() PC_DIE_COUNTER特別処理追加
+ skill.c
+ skill_castend_id() NULLチェック変更
+ skill_stop_dancing() マップ移動などでの挙動を変更
+ skill_readdb() skill_cast_dbに改名
+ skill_blown() 飛ばされたらダンス移動
+ npc.c
+ npc_touch_areanpc() ワープポイントに乗ったらダンス解除
+
+--------------------
+//1011 by パイン
+・パーティ要請やギルド要請を出しているときに他の要請を拒否る処理を追加
+ battle_athena.confで切り替えが出来るようになっています。
+・make clean で事が足りるので、objectdel.batを消去
+
+ (map)
+ clif.c
+ clif_party_invite()変更(nullpoの文言違ってました)
+ guild.c
+ guild_invite()変更
+ party.c
+ party_invite()変更
+ battle.c
+ battle_config_read()変更
+ battle.h変更
+ trade.c
+ trade_traderequest()変更
+
+--------------------
+//1010 by (凸)
+・gcc 2.95対策
+・スパノビの1度死ぬまでAll+10をスクリプト変数で実装してみる試み
+ PC_DIE_COUNTER 死ぬと+1、転職すると0になります
+ ↑はキャラクタ永続なスクリプト変数なのでNPCで参照&再設定とか比較的楽かも
+
+ (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を追加
+ npc.c
+ npc_click() nullpoメッセージを修正
+ pc.c
+ pc_setrestartvalue() nullpoメッセージを修正
+ pc_authok() die_counter初期化の追加
+ pc_calcstatus() die_counter=0のスパノビは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 ぴざまん
+・ダンス移動軽量化実装
+ battle_athena.confで切り替え可能です。詳しくはconf_refを
+ オリジナルアップデートの為、デフォルトではoffにしています
+ また、この軽量化モードは回線負荷を大幅に削減できる(つもり)ですが、
+ その分サーバー側の処理が重たくなります(といってもある程度のCPUがあれば全然問題にならない程度の負荷ですが)
+・結婚システム/結婚スキル実装
+ 結婚指輪の特別扱いが未実装です(落とせたり取引に出せたりします)
+ 離婚のみ未テストです。
+・結婚用スクリプト(marriage、divorce)追加。
+ ・marriage <partner_name>
+ <partner_name>: 結婚相手の名前
+ 戻り値: 成功:1 失敗:0
+ 結婚処理を行います。対象は話し掛けたプレイヤーと<partner_name>のキャラクターで、どちらかが既婚の場合は失敗します。
+ 1回のmarriageスクリプトで新郎→新婦と新婦→新郎の結婚処理を同時に行います。
+ また、このスクリプトで結婚指輪は与えられません。
+ ・devorce
+ 引数無し
+ 戻り値: 成功:1 失敗:0
+ 離婚処理を行います。対象は話し掛けたプレイヤーで、未婚の場合は失敗します。
+ marriageスクリプトと同様に互いの離婚処理を同時に行います。
+ また、このスクリプトが成功すると自動的に対象キャラクターの結婚指輪は剥奪されます。
+
+ どちらのスクリプトの処理も、2人共ログインしていないと成功しません。
+
+ (map/)
+ pc.c
+ pc_ismarried()、pc_marriage()、pc_divorce()、pc_authok()変更
+ pc_get_partner() 追加
+ map.c
+ map_quit() 変更
+ skill.c
+ skill_use_id()、skill_castend_nodamage_id() 変更
+ skill_unitsetting()、skill_unit_onlimit() 変更
+ script.c
+ buildin_marriage()、buildin_devorce() 追加
+ pc.h 変更
+ battle.h 変更
+
+--------------------
+//1008 by ぴざまん
+・GMセッション隠し実装(未テスト)
+ GMアカウントのキャラクターを@who等で表示するかどうか設定できます。
+ 詳しくはconf_ref.txtを参照してください。
+・結婚システム仮実装
+ char-map間通信のみ実装です。まだ結婚することは出来ません。
+ 尚、このパッチからathena.txtのバージョンが変わります。
+ データの互換性は保ったつもりですが、念の為バックアップを取っておく事を強く推奨します。
+
+ (map/)
+ clif.c
+ clif_countusers() 変更
+ battle.c
+ battle_config_read() 変更
+ atcommand.c
+ atcommand_who() 変更
+ pc.c
+ pc_ismarried()、pc_marriage()、pc_divorce() 追加
+ chrif.c
+ chrif_divorce() 追加
+ chrif_parse() 変更
+ (char/)
+ char.c
+ char_divorce() 追加
+ char_delete()、mmo_char_fromstr()、mmo_char_tostr() 変更
+
+--------------------
+//1007 by (凸)
+・NULLチェックの見直し
+
+ (map/)
+ clif.c
+ clif_send() 変更
+ skill.c
+ skill_delunit() 変更
+
+--------------------
+//1006 by (ruhu)
+・@goに洛陽とニフルヘイム追加
+
+ (conf/)
+ help.txt ニフルヘイム、洛陽追加
+ (map/)
+ atcommand.c
+ atcommand go() ニフルヘイム、洛陽追加
+--------------------
+//1005 by (凸)
+・NULLチェックの見直しと追加、大量に変更したので問題が出る可能性が大です
+・ウンバラ分割パッチが配布されたので@go 12にウンバラを追加
+・ロードナイト バーサークをちょっとそれっぽく(ASPD増加などは未実装)
+・クラウン・ジプシー 月明りの泉に落ちる花びらの使用条件を合奏と同じに変更(効果等は未実装)
+・ブレッシングが本鯖ではステータスアップ→エフェクトだったのでそのように変更
+・本鯖相違スレッド part2 >>145 zzzさんの報告を反映
+・同スレ >>143 plalaさんの報告を反映
+
+ (db/)
+ skill_require_db.txt 変更
+ (conf/)
+ help.txt ウンバラ追加
+ map_athena.conf ウンバラ関連のコメントアウトを解除
+ (map/)
+ atcommand.c NULLチェック強化
+ atcommand() @mapmoveなどで落ちる問題を修正
+ atcommand_go() ウンバラ追加
+ battle.c NULLチェック強化
+ battle_calc_mob_weapon_attack() バーサーク時ダメージ150%
+ battle_calc_pc_weapon_attack() バーサーク時ダメージ150%
+ chat.c NULLチェック強化
+ chrif.c NULLチェック強化
+ clif.c NULLチェック強化
+ clif_parse_ActionRequest() ダンス時の処理を若干変更
+ clif_parse_GlobalMessage() バーサーク時は会話が出来ないように変更
+ clif_parse_Wis() バーサーク時は会話が出来ないように変更
+ clif_parse_PartyMessage() 同上
+ clif_parse_GuildMessage() 同上
+ clif_parse_TakeItem() バーサーク時はアイテムを取れないように変更
+ clif_parse_DropItem() バーサーク時はアイテムを落とせないように変更
+ clif_parse_UseItem() バーサーク時はアイテムを使えないように変更
+ clif_parse_EquipItem() バーサーク時は装備できないように変更
+ clif_parse_UnequipItem() バーサーク時は装備解除できないように変更
+ clif_parse_UseSkillToId() バーサーク時はスキル使用ができないように変更
+ clif_parse_UseSkillToPos() 同上
+ clif_parse_UseSkillMap() 同上
+ guild.c NULLチェック強化
+ intif.c NULLチェック強化
+ itemdb.c NULLチェック強化
+ map.c NULLチェック強化
+ map_quit() バーサーク時にログアウトするとHP 100/SP 0になるように変更
+ mob.c
+ mob_attack() clif_fixmobpos()を送信しないように変更
+ mob_timer() NULLチェック条件を変更
+ mobskill_castend_id() 同上、バーサーク時スキルを使えないように変更
+ mobskill_castend_pos() バーサーク時スキルを使えないように変更
+ mobskill_use_id() 同上
+ mobskill_use_pos() 同上
+ npc.c NULLチェック強化
+ party.c NULLチェック強化
+ path.c NULLチェック強化
+ pc.c NULLチェック強化
+ pc_calcstatus() バーサーク時は速度UP&MHP3倍、メディテイティオのSP回復増加をSPRではなく通常回復にかかるようにした
+ pc_heal() バーサーク時は回復しない
+ pc_jobchange() 転職直後1歩動かないと服の色が反映されなかったのを修正
+ pc_natural_heal_sub() バーサーク中はSPが自然回復しないように変更(HPは良く分からなかったので回復するようにしてある)
+ pet.c NULLチェック強化
+ skill.c
+ skill_castend_nodamage_id() ブレッシング等のパケット順を変更、ストーンカースを不死には無効にした
+ skill_castend_map() しつこいくらいにバーサーク時にスキルを使えないように変更
+ skill_check_condition() 同上
+ skill_use_pos() 同上
+ skill_use_id() 同上&月明りの泉に落ちる花びら追加
+ skill_status_change_end() バーサーク時にはIAアイコンを消去するように変更
+ skill_status_change_timer() NULLチェック条件を変更、月明りの泉に落ちる花びら時SP消費、バーサーク時HP100以上なら10秒あたり1%減らすように変更
+ skill_status_change_start() バーサーク時にはIAアイコンを表示するように変更
+ skill_delunit() NULLチェック条件を変更
+ skill_check_condition_char_sub() 月明りの泉に落ちる花びら追加
+ skill_check_condition_use_sub() 同上
+ skill_is_danceskill() 同上
+ skill_initunitgroup() 同上
+ trade.c NULLチェック強化
+ vending.c NULLチェック強化
+
+--------------------
+//1004 by (凸)
+・NULLチェックでエンバグしていたところをいくつか修正と他のNULLチェック強化
+・skill.cでもnullpoを表示するように変更
+
+ (map/)
+ battle.c
+ battle_damage() NULLチェック強化
+ battle_heal() 同上
+ clif.c
+ clif_damage() 同上
+ map.c
+ map_addflooritem() NULLチェック強化
+ mob.c
+ mob_once_spawn() 余計なNULLチェックを削除
+ mob_once_spawn_area() 同上
+ mob_damage() 同上
+ mob_counttargeted() 同上
+ mobskill_castend_id() 同上
+ mob_summonslave() メッセージ間違いを修正
+ pc.c
+ pc_damage() NULLチェック強化
+ skill.c ほぼ全部 NULL関連修正
+
+--------------------
+//1003 by (凸)
+・jROクライアントで/account使用時に繋がらない原因の0x200パケット問題を修正
+・0x1c9パケットの穴埋めを引き続き継続中
+・一人で聖体や合奏を使用できる設定(player_skill_partner_check)を追加
+ 一人で合奏を実行した場合には通常のダンスと挙動が同じになります
+・プロボックは不死に対して発動しないように変更
+・FWの吹き飛ばし判定を変更
+・デリュージに水場判定を追加、聖水を作れるのを確認
+・ハイディングの有効時間が正しく機能するように修正
+・アスペルシオを不死に使用した場合、聖属性の40ダメージを与えるように変更
+・アスペルシオを不死以外のMOBに使用しても効果が無いように変更
+・合奏、ダンス、演奏中の経過時間によるSP消費を実装
+・報告のあったガーディアンがギルド未加入PCをターゲットしたらmapが落ちる問題の修正(ガーディアン実装当時からずっと落ちてた?)
+・mob.c、storage.cのnullチェックを強化
+ エラーで落ちるべきところを無理やり通常処理に戻しているので他で問題がでるかもしれません
+ その場合、コンソールに「関数名 nullpo」と表示されるので表示された場合は報告をお願いします
+ もしかしたら正常な処理でも表示されるかもしれませんが、その際も報告をお願いします
+ 本来エラー、実は正常、どちらにしてもこれが表示されるのはバグです
+
+ (conf/)
+ battle_athena.conf player_skill_partner_check追加
+ (db/)
+ skill_db.txt アスペルシオの属性を聖に変更
+ (doc/)
+ conf_ref.txt player_skill_partner_check説明追加
+ (login/)
+ login.c
+ parse_login() 0x200パケット対応
+ (map/)
+ mob.c NULLチェックでほぼ全部
+ storage.c NULLチェックでほぼ全部
+ battle.h 変更
+ battle.c
+ battle_calc_magic_attack() アスペルシオを追加、FWを変更
+ battle_config_read() 設定追加
+ clif.c
+ clif_getareachar_skillunit() 調査結果の反映
+ clif_skill_setunit() 同上
+ [1001と1002の間の変更点]
+ skill.c NULLチェックを沢山
+ skill_castend_damage_id() アスペルシオ追加
+ skill_castend_nodamage_id() アスペルシオ、プロボック処理変更
+ skill_castend_id() アスペルシオ処理変更
+ skill_check_condition_char_sub() player_skill_partner_checkに対応
+ skill_check_condition_use_sub() 同上
+ skill_use_id() 同上
+ skill_check_condition() 同上&デリュージ対応
+ skill_status_change_timer() ハイディング修正、ダンス演奏合奏中のSP消費実装
+ skill_initunitgroup() ダンスSP消費用変更
+ skill_status_change_start() 同上&プロボックをボスに効かないように(でもbattle.cで止めてるから通常ここまで来ない)
+
+--------------------
+//1002 by ぴざまん
+・ポータルバグ修正
+・スキル関係のNullチェック強化(by(凸))
+ (map/)
+ skill.c
+ skill_castend_map() 修正
+
+--------------------
+//1001 by (凸)
+・0x1c9でいくつかパケットを見比べて変化のないところを固定値で埋め込み(今後情報が集まると変わる可能性大)
+・ダンス中はSPだけ回復しないように変更
+・聖体で相方のSPが10以下だと使用失敗にして使用したらSPを10減らしてみる(未確認)
+・合奏のスキル使用パケットを若干変更
+
+ (map/)
+ clif.c
+ clif_getareachar_skillunit() 0x1c9の穴埋め開始
+ clif_skill_setunit() 0x1c9の穴埋め開始
+ pc.c
+ pc_natural_heal_sub() ダンス中はSPのみ回復しないように変更
+ skill.c
+ skill_check_condition() 変更
+ skill_check_condition_char_sub() 聖体は相方のSPチェックするように変更
+ skill_check_condition_use_sub() 聖体は相方のSPを減らすように変更
+
+--------------------
+//1000 by ぴざまん
+・0999の変更取り戻し
+・トラップの巻き込み実装
+・イドゥンの林檎でNPCまで回復した(ように見える)問題修正(未テスト)
+・デモンストレーションのエフェクト変更(こちらに明記)
+ (map/)
+ skill.c
+ skill_count_target() 追加
+ skill_unit_onplace()、skill_trap_splash() 変更
+--------------------
+//0999 by eAthena Dev Team (Yor's Fixes)
+(login/)
+ added email for accounts
+(char/)
+ added email for character deletion
+--------------------
+//0998 by (凸)
+・battle.cで引数の存在を確認せずに値を見に行ってる関数をいくつか修正
+・ダンス中は座れないようにした(本鯖相違スレッド part2 >>114 DoTさん)
+・ダンス中はHP、SPが回復しないように変更(同上)
+・ダンス中は通常攻撃できないようにした(本鯖相違スレッド part2 >>116 ・・・さん)
+・合奏中片方が落ちた場合、残ったほうで演奏を継続するようにした(同上)
+・合奏中はアドリブ以外できないように変更(同上)
+・合奏発動条件にダンス中じゃない&座っていないを追加(本鯖相違スレッド part2 >>118 ろろさん)
+・阿修羅使用後にHPも回復しなかったのを修正
+
+ (map/)
+ battle.c
+ battle_counttargeted() 修正
+ battle_get系 たぶん全部修正
+ clif.c
+ clif_parse_WalkToXY() 合奏の判断方法の変更
+ clif_parse_ActionRequest() ダンス中は殴らない座らないように変更
+ map.c
+ map_quit() ダンス中断追加
+ mob.c
+ mob_damage() skill_stop_dancingの引数増加による変更
+ pc.c
+ pc_setpos() 同上
+ pc_damage() 同上
+ pc_equipitem() 同上
+ pc_natural_heal_sub() ダンス中は自然回復しないように&阿修羅時はSPのみ回復しないように
+ skill.c
+ skill_castend_nodamage_id() skill_stop_dancingの引数増加による変更
+ skill_status_change_start() 同上
+ skill_check_condition_char_sub() 相手がダンス中や座っていても合奏できないように変更
+ skill_check_condition_use_sub() 同上
+ skill_use_id() 合奏の判断方法の変更&合奏中はアドリブ以外禁止に
+ skill_status_change_end() 合奏のダンス状態解除は相手のval4を0にするようにした
+ skill_is_danceskill() 戻り値変更
+ skill_stop_dancing() 引数増加、合奏で片方だけ落ちたときの処理追加
+ skill_delunitgroup() 合奏時のステータス変更処理を↑に移した
+ skill_clear_unitgroup() 自分のbl->idとユニットグループのgroup->src_idが違うときは削除しないように変更
+ skill.h 変更
+
+--------------------
+//0997 by (凸)
+・二人で合奏、三人で聖体を実装
+ 合奏 バード・ダンサーが隣接したセルにいて同じスキルを持っている時に発動
+ スキルレベルは両者のスキルレベルの中間
+ 本鯖仕様が分からないけど斜め隣接もOK
+ 聖体 使用者のX軸で-1と+1の場所に一人ずつアコライトかプリーストがいる時に発動すると思う(未テスト)
+ 使用者 ○ アコプリ ●
+ OK ●○●
+
+ NG ●
+ ○●
+・トーキーボックスを使って設置時に座っていた時はスキル使用失敗にしてみた
+
+ (db/)
+ item_db.txt 村正の呪い率を5%に(by e2さん)
+ (map/)
+ skill.c
+ skill_check_condition_char_sub() 追加
+ skill_check_condition_use_sub() 追加
+ skill_check_condition() 変更
+ skill_use_id() 変更
+ skill_initunitgroup() 変更
+ skill_delunitgroup() 変更
+ clif.c
+ clif_parse_UseSkillToPos() 変更
+
+--------------------
+//0996 by (凸)
+・アドリブの5秒制限をcast_db.txtのupkeep_time2で制御できるように変更
+・村正で自分を呪わせるためにbonus2 bAddEff2を追加
+・呪われていて終了できない時にも「今は終了できません」が表示されるようにした
+・ダンスエフェクト等移動時に効果の適用判断が移動前に行われていたのを移動後に変更&使わなくていい変数を廃止
+
+ (db/)
+ cast_db.txt
+ const.txt
+ item_db.txt
+ (doc/)
+ item_bonus.txt
+ (src/)
+ clif.c
+ clif_parse_QuitGame() 変更
+ map.h addeff2,arrow_addeff2 追加
+ pc.c
+ pc_calcstatus() 変更
+ pc_bonus2() 変更
+ skill.c
+ skill_additional_effect() 変更
+ skill_check_condition() 変更
+ skill_unit_move_unit_group() 変更
+
+--------------------
+//0995 by (凸)
+・battle.pet_lootitemのデフォルトがyesになっていたのを修正
+・battle.pet_lootitemの適用をforeach前でやるように修正
+・ペットの初期化でpd->lootitemがある時しか初期化されていなかったのを修正
+・領域が移動して対象が領域から抜けても効果が解除されない問題を修正
+・アドリブはダンス発動から5秒以上経たないと使用できないようにした
+
+ (map/)
+ pet.c
+ pet_data_init() 修正
+ pet_ai_sub_hard() 修正
+ pet_ai_sub_hard_lootsearch() 修正
+ skill.c
+ skill_blown() 変更
+ skill_unit_onlimit() エラーメッセージ修正
+ skill_check_condition() 変更
+ skill_initunitgroup() sd_data[SC_DANCING].val3にgettick()
+ skill_unit_move_unit_group_sub() 追加
+ skill_unit_move_unit_group() 変更
+ skill.h skill_unit_move_unit_group() 引数変更
+ battle.c
+ battle_config_read() pet_lootitem=0に修正
+ pc.c
+ pc_walk() 変更
+
+--------------------
+//0994 by huge
+・battle.pet_lootitemが適応されていなかったのを修正。
+・ペットにパフォーマンスをさせた後、10秒間くらいは拾わせないように。
+
+ (map/)
+ map.h pet_dataにlootitem_timer追加。
+ pet.c
+ pet_ai_sub_hard_lootsearch() 修正。
+ pet_lootitem_drop() 修正。
+
+--------------------
+//0993 by (凸)
+・一人で合奏だけど合奏スキル中は動けないように
+・アンコール実装。直前に使ったダンススキルを半分のSPで使えます
+・ダンス中に移動するとエフェクトも移動するようにした
+・未実装のスキルが使われるとUnknown skillと表示されることがあるかもしれません
+・Sageのキャストキャンセルで実は前のスキルを覚えていなかった問題の修正
+
+ (map/)
+ clif.c
+ clif_parse_WalkToXY() 変更
+ map.h アンコール用変数の追加
+ pc.c
+ pc_walk()
+ skill.c
+ skill_blown
+ skill_castend_nodamage_id
+ skill_unitsetting() 変更
+ skill_unit_onplace() 罠で同じ処理をしているcaseをまとめた
+ skill_unit_onout() 使われてないunit2を削除
+ skill_check_condition() 変更
+ skill_use_id
+ skill_initunitgroup() 使ったダンススキルを変数に入れるようにした
+ skill_unit_move_unit_group() 追加
+ skill.h 変更
+
+--------------------
+//0992 by nokia
+
+map_quitを修正してメモリを釈放する時何度もを釈放するためメモリの間違いが起こる問題を招く
+
+ (map/)
+ map.c
+ map_quit()
+
+--------------------
+//0991 by (凸)
+・トーキーボックスを自分が踏んでも発動しない本鯖仕様に変更
+・スキル詠唱中とディレイ中はクライアントを終了できないようにしたけど、敵に攻撃されているときは終了できます(ごめんなさいっ!!)
+
+ (map/)
+ clif.c
+ clif_parse_QuitGame() 変更
+ skill.c
+ skill_unitsetting() 変更
+
+--------------------
+//0990 by ぴざまん
+・一部のトラップを範囲攻撃に変更(巻き込みは未実装)。
+・mapflagにpvp_nocalcrankとpvp_nightmaredrop追加。
+ ・<gatname><tab>mapflag<tab>pvp_nocalcrank<tab>dummy
+ PvPによるランキング計算をしないようにします。
+ ・<gatname><tab>mapflag<tab>pvp_nightmaredrop<tab><item>,<type>,<per>
+ PvPにて死亡した場合、<per>の確率でアイテムをドロップします。
+ <item>: ドロップするアイテムIDを指定します。randomと記述すると所持品からランダムにドロップします。
+ <type>: ドロップするアイテムのタイプを指定します。inventory:所持品 equip:装備品 all:全部
+ <per>: ドロップする確率です。万分率で指定します。
+ (map/)
+ skill.c
+ skill_unit_onplace() 変更
+ skill_trap_splash() 追加
+ pc.c
+ pc_damage() 変更
+ npc.c
+ npc_parse_mapflag() 変更
+ map.h
+ map_dataにメンバ追加
+ (conf/)
+ mapflag.txt
+ ナイトメアモードにドロップ設定追加
+
+--------------------
+//0989 by (凸)
+・スプリングトラップを某所で見たSSを元に実装してみた。違ったら相違スレへ
+・ディテクティングを某所で見た解説文を元に実装してみた。違ったら相違スレへ
+・キャストキャンセル時のdelete_timerエラーに追加でスキルIDを表示するようにした。あわせて報告するとエラーの原因が分かるかも
+
+ (map/)
+ skill.c
+ skill_castend_nodamage_id() 変更
+ skill_castend_pos2() 変更
+ skill_castcancel() 変更
+
+--------------------
+//0988 by (凸)
+・トーキーボックスは常に足元に置けるように変更とKalenさんに貰った情報等を元にパケットを本鯖にあわせてみた
+・ショックウェーブトラップに効果を追加したつもり(未確認)
+・ブラストマインとクレイモアトラップを殴ると吹き飛ぶようにした
+・リムーブトラップで罠(skill_require_dbで指定したアイテム)を回収できるようにした
+・↑の実装により罠の時間切れで罠が出るオリジナル仕様はコメントアウト
+・ブラストマインの効果時間が長いのを修正
+
+ (db/)
+ cast_db.txt
+ (map/)
+ battle.c
+ battle_check_target() 変更
+ mob.c
+ mobskill_castend_pos() 変更
+ skill.c
+ skill_additional_effect() 変更
+ skill_blown() 変更
+ skill_castend_nodamage_id() 変更
+ skill_castend_pos2() 変更
+ skill_unitsetting() 変更
+ skill_unit_onplace() 変更
+ skill_unit_ondamaged() 変更
+ skill_castend_pos() 変更
+ skill_unit_timer_sub() 変更
+
+--------------------
+//0987 by 胡蝶蘭
+
+・ユーザー定義関数/サブルーティンに引数を指定可能に
+ 詳しくは script_ref.txt を参照
+
+ (map/)
+ scirpt.c
+ buildin_getarg()追加
+ buildin_callsub(),buildin_callfunc(),run_func()修正
+ (doc/)
+ script_ref.txt
+ 引数についての説明追加
+
+・getguildname,getpartyname,getcastlename,strcharinfo修正
+ C_STRで定数文字列(C_CONSTSTR)を返していた問題修正
+ strcharinfoでギルド名などを所得する際、未所属だったときの問題
+
+ (map/)
+ script.c
+ buildin_getguildname(),buildin_getpartyname()
+ buildin_getcastlename(),buildin_strcharinfo()
+
+--------------------
+//0986 by (凸)
+・client_packetの記述から推察してトーキーボックスを実装してみたつもり
+
+ (db/)
+ skill_db.txt
+ (map/)
+ clif.c
+ clif_talkiebox() 追加
+ clif_parse_UseSkillToPos() 変更
+ clif_parse() 変更
+ clif.h 変更
+ map.h 変更
+ skill.c
+ skill_castend_pos2() 変更
+ skill_unitsetting() 変更
+ skill_unit_onplace() 変更
+
+--------------------
+//0985 by (凸)
+・サーバーsnapshot
+・/script/extensionに語り部を追加したり
+・0984でAthena雑談スレッド part3>>92 Michaelさんの修正を取り込んでた
+・バグ報告スレッド part5 >>45に転載されてた あやねさんの修正を取り込み
+・バグ報告スレッド part5 >>54 rariさんのたぬき帽修正を取り込み
+
+ (script/extension/)
+ npc_event_kataribe6.txt 追加
+ npc_event_kataribe7.txt 追加
+ (script/npc/)
+ quest/npc_event_hat.txt 修正
+ job/npc_job_magician.txt 修正
+
+--------------------
+//0984 by (凸)
+・セージのフリーキャストというスキルの存在を知らなかったので0983の変更を一部戻し
+・アイテム更新したけど垂れ猫とインディアンバンダナが装備できない?
+・マップフラグとモンスター配置を最新版に
+
+ (db/)
+ item_db.txt
+ (conf/)
+ mapflag.txt
+ (script/mob/)
+ npc_monster.txt
+ (map/)
+ clif.c
+ clif_parse_WalkToXY() 修正
+
+--------------------
+//0983 by (凸)
+・長い詠唱中に歩きまわれた気がするので修正
+・ペットルーレット回転中に対象が叩き殺されたらmap-serverが困るのを修正
+・プロフェッサー ライフ置き換えの手抜き処理をちょっとマシにした
+
+ (map/)
+ clif.c
+ clif_parse_WalkToXY() 修正
+ pet.c
+ pet_catch_process2() 修正
+ skill.c
+ skill_castend_nodamage_id() 修正
+
+--------------------
+//0982 by (凸)
+・転生スキルの〜
+ ストーカー リジェクトソード 相手がPCの場合は剣じゃなければ跳ね返さない予定
+ プロフェッサー メモライズ 12秒の固定キャストタイム、その後スキル使用のキャストタイムが3回だけ1/3になる
+ プロフェッサー ライフ置き換え HPを10%減らしてSPを増やす。減ったHPのエフェクトは無しにしてみた
+・見切りと回避率増加のFlee上昇がステータス変化時にしか反映されていなかったのを修正
+・0981で自分以外は歩いたら服の色が戻ってしまうのをなんとかしたつもり
+
+ (db/)
+ skill_require_db.txt
+ (map/)
+ battle.c
+ battle_calc_damage() 修正
+ clif.c
+ clif_movechar() 修正
+ clif_getareachar_pc() 修正
+ pc.c
+ pc_calcstatus() 修正
+ skill.c
+ SkillStatusChangeTable 変更
+ skill_castend_nodamage_id() 変更
+ skill_use_id() 変更
+ skill_use_pos() 変更
+ skill_status_change_timer() 変更
+ skill_status_change_start() 変更
+ skill.h 変更
+
+--------------------
+//0981 by (凸)
+・転生スキルの〜
+ ストーカー リジェクトソード 一定確率でダメージを半分にして減らした分を相手に跳ね返すようにした…が、跳ね返したダメージのエフェクト出ません
+・服の色を変更&保存している場合にリログすると元の色に戻ってるように見える問題の修正
+
+ (db/)
+ skill_db.txt
+ (map/)
+ clif.c
+ clif_parse_LoadEndAck() 修正
+ battle.c
+ battle_calc_damage() 修正
+ skill.c
+ skill_status_change_timer() 修正
+ skill_status_change_start() 修正
+
+--------------------
+//0980 by (凸)
+・例によって転生スキルとモンク関連
+ スナイパー シャープシューティング クリティカル率調整?
+ ハイウィザード ソウルドレイン MSP増量とMobを倒したときにSP(mobLv*(65+15*SkillLv)/100)回復。でも本当は範囲攻撃の場合は回復しないらしい?
+ ハイウィザード 魔法力増幅 使ったらMATKがSkillLv%増量。次のスキル使用時に元に戻る
+ モンク 気奪 ちょっと先取りして20%の確率で敵のLv*2のSPを吸収。成功したときはターゲットを取得するようにしてみた
+・アイテム名をjROウンバラに準拠させてみたつもり
+
+ (db/)
+ cast_db.txt
+ item_db.txt
+ (map/)
+ battle.c
+ battle_calc_pc_weapon_attack() 変更
+ mob.c
+ mob_damage() 変更
+ pc.c
+ pc_calcstatus() 変更
+ skill.c
+ skill_castend_nodamage_id() 変更
+ skill_use_id() 変更
+ skill_use_pos() 変更
+ skill_status_change_end() 変更
+ skill_status_change_timer() 変更
+ skill_status_change_start() 変更
+
+--------------------
+//0979 by (凸)
+・転生スキルをちょっと調整
+ ハイウィザード マジッククラッシャー 武器攻撃でBaseATK計算をMATK2でしてみる
+・息吹を本鯖仕様風にHPとSPの回復タイマーを分けて座っていなくても動かなければタイマーが進むようにした
+・阿修羅使用後にHPとSPが5分間自然回復しない本鯖使用風にした(csat_db.txtのupkeep_time2で調整可能)
+・古いgccでskill_unit_timer_sub_onplace()あたりでコンパイルエラーになったのを修正
+
+ (db/)
+ cast_db.txt
+ (map/)
+ battle.c
+ battle_calc_pet_weapon_attack() 変更
+ battle_calc_mob_weapon_attack() 変更
+ battle_calc_pc_weapon_attack() 変更
+ map.h
+ pc.c
+ pc_authok() 変更
+ pc_walk() 変更
+ pc_spirit_heal() 削除
+ pc_spirit_heal_hp() 追加
+ pc_spirit_heal_sp() 追加
+ pc_natural_heal_sub() 変更
+ skill.c
+ skill_additional_effect() 変更
+ skill_castend_damage_id() 変更
+ skill_status_change_start() 変更
+ skill_unit_timer_sub_onplace() 修正
+
+--------------------
+//0978 by (凸)
+・転生スキルを修正したり色々
+ スナイパー ファルコンアサルト とりあえず飛ぶだけだと思ってください
+ スナイパー シャープシューティング ダメージ増加だけど1体だけ
+ クラウン・ジプシー アローバルカン ダメージ増加と9回攻撃
+ ハイウィザード マジッククラッシャー エフェクトだけ
+
+・アイテム交換で重量の計算が違っていたのを修正
+ (doc/)
+ client_packet.txt パケット長テーブル更新
+ (map/)
+ battle.c
+ battle_calc_misc_attack() 変更
+ battle_calc_pet_weapon_attack() 変更
+ battle_calc_mob_weapon_attack() 変更
+ battle_calc_pc_weapon_attack() 変更
+ clif.c パケット長の定義を更新
+ skill.c
+ skill_castend_damage_id() 変更
+ trade.c
+ trade_tradeadditem() 修正
+
+--------------------
+//0977 by (凸)
+・転生スキルを修正したり色々
+ アサシンクロス メテオアサルト エフェクトが違う?
+ ロードナイト プレッシャー 必中ダメージにしてみた
+ ロードナイト オーラブレードの必中damage2が他でも適用されていたのを修正
+ ロードナイト ゴスペル エフェクト出現位置の調整
+ ハイプリースト アシャンプティオ 効果実装
+ ハイプリースト メディテイティオ 効果実装
+ ハイプリースト バジリカ SGみたいにMobが侵入しようとすると吹き飛ばされるようにした
+ ホワイトスミス カートブースト 効果実装
+ ホワイトスミス メルトダウン エフェクトと状態異常時間だけ(実際の状態変化は無し)
+ ホワイトスミス クリエイトコイン 名前入りの金貨とか作れるだけ
+ ストーカー リジェクトソード エフェクトと状態異常時間だけ(実際の状態変化は無し)
+ クラウン・ジプシー マリオネットコントロール エフェクトと状態異常時間だけ(実際の状態変化は無し)
+ プロフェッサー フォグウォール エフェクトと有効時間だけ
+ スナイパー ウインドウォーク 速度上昇とQM、私を忘れないでがかかると解除されるようにした
+ スナイパー トゥルーサイト QM、私を忘れないでで解除されるようにしてみた
+・トゥルーサイトの綴り間違いを修正
+・storage.cでコンパイル警告が出ないようにしたつもり
+
+ (db/)
+ cast_db.txt
+ skill_db.txt
+ skill_require_db.txt
+ produce_db.txt
+ (map/)
+ battle.c
+ battle_get_str() 修正
+ battle_get_agi() 修正
+ battle_get_vit() 修正
+ battle_get_int() 修正
+ battle_get_dex() 修正
+ battle_get_luk() 修正
+ battle_get_flee() 修正
+ battle_get_hit() 修正
+ battle_get_critical() 修正
+ battle_get_baseatk() 修正
+ battle_get_atk() 修正
+ battle_get_atk2() 修正
+ battle_get_def() 修正
+ battle_get_def2() 修正
+ battle_get_speed() 修正
+ battle_calc_damage() 修正
+ battle_calc_pet_weapon_attack() 変更
+ battle_calc_mob_weapon_attack() 変更
+ battle_calc_pc_weapon_attack() 変更
+ pc.c
+ pc_calcstatus() 修正
+ skill.c
+ skill_get_unit_id() 修正
+ skill_additional_effect() 修正
+ skill_castend_nodamage_id() 修正
+ skill_castend_pos2() 修正
+ skill_unit_group() 修正
+ skill_unit_onplace() 修正
+ skill_unit_onout() 修正
+ skill_castend_pos() 修正
+ skill_check_condition() 修正
+ skill_status_change_end() 修正
+ skill_status_change_start() 修正
+ skill_can_produce_mix() 修正
+ skill_produce_mix() 修正
+ skill.h 修正
+ storage.c
+ storage_comp_item() 修正
+ storage.h 修正
+
+--------------------
+//0976 by (凸)
+・転生スキルを修正したり色々
+・準備だけして実装できてないスキルもあります
+ ロードナイト オーラブレード 多分こんな感じ?
+ ロードナイト パリイング 跳ね返すけど攻撃を1回止めるのは未実装
+ ロードナイト コンセントレーション インデュア〜は良く分からないので放置
+ ロードナイト スパイラルピアース 通常ダメージ増加と重量ダメージ増加と一応5回攻撃(なんか違う気がする)
+ ロードナイト ヘッドクラッシュ ダメージ増加とステータス変更?
+ ロードナイト ジョイントビート ダメージ増加とステータス変更?
+ アサシンクロス アドバンスドカタール研究 たぶんこんな感じ?
+ スナイパー トゥルーサイト たぶんこんな感じ?
+ スナイパー ウィンドウォーク たぶんこんな感じ?でも速度上昇とかと競合した時の処理は未実装
+ スパイダーウェッブ とりあえずアンクルスネアと同じような感じ&回避率半減
+ チャンピオン 狂気功 適当に増やしていたのをちゃんと増やすようにした
+・出血状態と骨折状態の取り扱いがよくわかりませんっ!!
+
+ (db/)
+ cast_db.txt
+ skill_db.txt
+ skill_require_db.txt
+ (doc/)
+ db_ref.txt
+ (map/)
+ battle.c
+ battle_get_str() 修正
+ battle_get_agi() 修正
+ battle_get_vit() 修正
+ battle_get_int() 修正
+ battle_get_dex() 修正
+ battle_get_luk() 修正
+ battle_get_flee() 修正
+ battle_get_hit() 修正
+ battle_get_critical() 修正
+ battle_get_baseatk() 修正
+ battle_get_atk() 修正
+ battle_get_atk2() 修正
+ battle_get_def() 修正
+ battle_get_def2() 修正
+ battle_get_speed() 修正
+ battle_calc_damage() 修正
+ clif.c
+ clif_parse_WalkToXY() 修正
+ mob.c
+ mob_can_move() 修正
+ mobskill_castend_pos() 修正
+ pc.c
+ pc_calcstatus() 修正
+ pc_checkallowskill() 修正
+ skill.c
+ skill_get_unit_id() 修正
+ skill_additional_effect() 修正
+ skill_castend_nodamage_id() 修正
+ skill_castend_pos2() 修正
+ skill_unit_group() 修正
+ skill_unit_onplace() 修正
+ skill_unit_onout() 修正
+ skill_castend_pos() 修正
+ skill_check_condition() 修正
+ skill_status_change_end() 修正
+ skill_status_change_start() 修正
+ skill_readdb() 修正
+ skill.h 修正
+--------------------
+//0975 by Sin
+・0973で実装されたスクリプトによるBaseLv, JobLvの変更時に、
+ ステータスポイントやスキルポイントを取得できるように修正。
+ ※質問スレpart5 >>115 悩める人 さんのpc.cを参考にさせて頂きました。多謝。
+
+ (map/)
+ pc.c
+ pc_setparam()
+ case SP_BASELEVEL: 修正
+ case SP_JOBLEVEL: 修正
+--------------------
+//0974 by latte
+・グランドクロスを本鯖に基づき修正
+ アンデッド悪魔強制暗闇付与
+ 反動ダメージ半減、モーションなし
+ MOB(PC)が重なったときのHIT数
+ %UP系武器カード効果なし
+ 属性相性二重計算
+ MOBダメージ表示白
+
+ 後半4項目は設定可
+
+・戦闘基本計算を本鯖に基づき微修正(DEXサイズ補正、弓最低ダメ、PCサイズ補正)
+
+・完全回避
+ スタン等で完全回避が発生しなかったのを修正
+ AGIVITペナルティが完全回避の敵もカウントして計算されていたのを修正 設定可
+ オートカウンターは未修正
+
+・倉庫を閉じるとき、アイテムIDでソートするようにした
+
+・kalenさんのプロ1執事NPCスクリプトを改造して
+ 商業防衛値、投資金額、宝箱の数を本鯖に準拠(商業値は1~100)
+ 全砦に設置
+
+ (/script/npc)
+ aldeg_cas01.txt ... prtg_cas05.txt 修正
+ (/script/npc/gvg)
+ aldeg_cas01.txt ... prtg_cas05.txt 追加
+ tbox.txt 追加
+
+ (/conf)
+ battle_athena.conf
+ 6項目追加
+
+ (/map)
+ mob.c/mob.h
+ mob_attack() 修正
+ mob_counttargeted_sub(),mob_counttargeted() 修正
+ mobskill_use() 修正(↑の引数だけ)
+ pc.c/pc.h
+ pc_counttargeted_sub(),pc_counttargeted() 修正
+ pc_attack_timer() 修正
+ pet.c
+ pet_attack() 修正
+
+ map.h
+ pc_data, mob_data, map_data 変数1つ追加
+ enum1つ追加
+ map.c/map.h
+ map_count_oncell() 追加 skill.cでよかったかも・・・
+
+ skill.c
+ GX関連修正(skill_additional_effect(), skill_attack(), skill_castend_damage_id(), skill_unit_onplace())
+
+ battle.c 修正
+ battle.h 修正
+
+ storage.c/storage.h
+ storage_comp_item() 追加
+ sortage_sortitem(), sortage_gsortitem() 追加
+ storage_storageclose(), storage_guild_storageclose() 修正
+--------------------
+//0973 by 獅子o^.^o
+・スクリプトのBASELEVEL,JOBLEVEL命令追加
+ 例: set BASELEVEL,1;
+ 例: set JOBLEVEL,1;
+ (map/)
+ pc.c
+ pc_setparam()
+ case SP_BASELEVEL: 項目追加
+ case SP_JOBLEVEL: 項目追加
+
+--------------------
+//0972 by (凸)
+・転生スキルをエフェクトだけいくつか追加したり
+・状態変化はそのうち誰かが
+ エフェクト(ステータス変化アイコン含む)のみ
+ SC_AURABLADE: /* オーラブレード */
+ SC_PARRYING: /* パリイング */
+ SC_CONCENTRATION: /* コンセントレーション */
+ SC_TENSIONRELAX: /* テンションリラックス */
+ SC_BERSERK: /* バーサーク */
+ SC_ASSUMPTIO: /* */
+ SC_TURESIGHT: /* トゥルーサイト */
+ SC_CARTBOOST: /* カートブースト */
+ SC_WINDWALK: /* ウインドウォーク */
+
+ (db/)
+ cast_db.txt
+ (map/)
+ skill.h
+ skill.c
+ SkillStatusChangeTable[] 項目追加
+ skill_castend_nodamage_id() 項目追加
+ skill_status_change_end() 項目追加
+ skill_status_change_start() 項目追加
+
+--------------------
+//0971 by (凸)
+・atcommand.hに残っていたjobchange2とかの残骸を削除
+・転生スキルをエフェクトだけいくつか追加したりチャンピオンはそれなりに追加したり
+ エフェクトのみ
+ ハイプリースト バジリカ(HP_BASILICA)
+ ホワイトスミス カートブースト(WS_CARTBOOST)
+ スナイパー トゥルーサイト(SN_SIGHT)
+ ジプシー 月明りの泉に落ちる花びら(CG_MOONLIT)
+ パラディン ゴスペル(PA_GOSPEL)
+ 追加ダメージ等なし
+ ロードナイト ヘッドクラッシュ(LK_HEADCRUSH)
+ ロードナイト ジョイントビート(LK_JOINTBEAT)
+ ロードナイト スパイラルピアース(LK_SPIRALPIERCE)
+ パラディン プレッシャー(PA_PRESSURE)
+ パラディン サクリファイス(PA_SACRIFICE)
+ それなり(コンボは繋がりますがディレイは適当、ダメージ追加はあるけどそれ以外の追加効果は無し)
+ チャンピオン 猛虎硬派山(CH_PALMSTRIKE)
+ チャンピオン 伏虎拳(CH_TIGERFIST)
+ チャンピオン 連柱崩撃(CH_CHAINCRUSH)
+ チャンピオン 狂気功(CH_SOULCOLLECT)
+
+ (db/)
+ cast_db.txt
+ skill_db.txt
+ skill_require_db.txt
+ (map/)
+ atcommand.h ゴミ削除
+ battle.c
+ battle_calc_pet_weapon_attack() 変更
+ battle_calc_mob_weapon_attack() 変更
+ battle_calc_pc_weapon_attack() 変更
+ clif.c
+ clif_parse_UseSkillToId() 変更
+ skill.c
+ skill_get_unit_id() 項目追加
+ skill_attack() チャンピオンコンボ処理追加
+ skill_castend_damage_id() 変更
+ skill_castend_nodamage_id() 変更
+ skill_castend_id() 変更
+ skill_unitsetting() 変更
+ skill_check_condition() 変更
+ skill_use_id() 変更
+
+--------------------
+//0970 by (凸)
+・ドレイクのウォーターボールが異常に痛い(121発食らう)のでLv5以上の場合は25発に制限
+・シグナムクルシスの計算式を14+SkillLvから10+SkillLv*2変更
+・ソースの気が向いたところに落書き
+・DB関係をまとめて同梱
+
+ (map/)
+ battle.c コメント_〆(。。)カキカキ
+ 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 ぴざまん
+
+・白刃取り状態で片方が死亡した場合、片方の白刃取りが解除されない問題修正
+・battle_athena.confに項目追加
+ ペット・プレイヤー・モンスターの無属性通常攻撃を属性無しにするか否かを設定できます
+ 詳しくはconf_refを。
+・@コマンド@idsearch実装
+ ロードしたitem_dbから検索語句にマッチするアイテムとIDを羅列するコマンドです
+ 例えば「@idsearch レイ」と入力した場合、ブレイドやレイドリックカード等が引っかかります
+・アシッドテラーとデモンストレーション実装
+ 装備破壊は未実装です
+・イドゥンの林檎の回復仕様を丸ごと変更。
+ (map/)
+ battle.c
+ battle.h
+ 属性補正の修正やアシッドテラー・デモンストレーションのダメージ算出式追加等。
+ battle_configに項目追加
+ skill.c
+ skill_idun_heal()追加。foreachinareaで処理するように変更
+ アシッドテラーとデモンストレーションの処理追加。
+ atcommand.c
+ atcommand.h
+ @idsearch追加。
+
+--------------------
+//0968 by 胡蝶蘭
+
+・キャラクターIDが使いまわされないように修正
+・キャラクター削除時、パーティー、ギルドを脱退するように修正
+・アカウント削除時、キャラクターと倉庫を削除するように修正
+・倉庫/ギルド倉庫削除時、倉庫内のペットを削除するように修正
+ ・注意:ログインしているアカウントを削除した場合の動作は不明
+
+ (char/)
+ char.c
+ パケット2730の処理、char_delete()追加、削除処理修正など
+ int_storage.c/int_party.c/int_guild.c/int_party.h/int_guild.h
+ inter_party_leave(),inter_guild_leave()追加、
+ inter_storage_delete(),inter_guild_storage_delete()修正など
+ (login/)
+ login.c
+ parse_admin()をアカウント削除時にパケット2730を送るように修正
+
+・athena-start stop で停止させた場合、データが保存されない問題を修正
+ killで送るシグナルをSIGKILLからSIGTERMに変更。
+ どうしてもSIGKILLを送りたい場合は athena-start kill を使ってください。
+
+ athena-start
+ stop修正、kill追加
+
+--------------------
+//0967 by Asong
+・モンスターの残影を実装。
+ 通常モンスターはスキルによるフィルターがかからないので残像が出ません。
+ PC型モンスターには残像が出ます。
+・モンスタースキル使用対象を追加。
+ around5〜around8はターゲットの周辺セルを対象にします。
+
+ (map)
+ mob.c
+ mobskill_use() 修正
+ mob_readskill() 修正
+ mob.h 修正
+ skill.c
+ skill_castend_pos2() 修正
+
+--------------------
+//0966 by (凸)
+・サーバーsnapshot
+・ディレクトリ構造を変更(common,login,char,mapは/src以下に移転)
+ それに伴うMakefile等のパス書き換え
+・npc_turtle.txtをnpc_town_alberta.txtに統合
+・モンクのコンボに関するディレイを変更
+・battle_config.enemy_criticalのデフォルトをnoに変更
+・転生職等を無効にするenable_upper_classの追加
+・@joblvup,@charjlvlでJobレベルが最高のときに負数を指定してもレベルを下げられなかった問題を修正
+
+ (conf)
+ battle_athena.conf 修正
+ (doc)
+ conf_ref.txt 修正
+ (map)
+ atcommand.c
+ atcommand_joblevelup() 修正
+ atcommand_character_joblevel() 修正
+ battle.c
+ battle_calc_attack() 修正
+ battle_config_read() 修正
+ battle.h 修正
+ pc.c
+ pc_calc_skilltree() 修正
+ pc_calc_base_job() 修正
+ pc_jobchange() 修正
+ pc_readdb() 修正
+ skill.c
+ skill_attack() 修正
+--------------------
+//0965 by ぴざまん
+・@mapexit実行時全セッションをkickするように変更。
+・白刃取り時に片方が倒れても、もう片方の白刃が解除されない問題修正。(未テスト)
+・スティール情報公開機能実装。(未テスト)
+ スティールに成功すると、何をスティールしたのか
+ 画面内のPTメンバー全員に知らせる機能です。
+ battle_athena.confのshow_steal_in_same_partyで設定できます。
+ オリジナルアップデートの為、デフォルトはnoにしています。
+・イドゥンの林檎の回復効果実装。
+
+ (conf/)
+ battle_athena.confに項目追加。
+ (map/)
+ atcommand.c
+ atcommand_mapexit() 修正。
+ pc.c
+ pc_steal_item() 修正。
+ pc_show_steal() 追加。
+ skill.c
+ skill_unitsetting()、skill_unit_onplace() 修正。
+ battle.c
+ battle_config_read() 修正。
+ battle.h 修正。
+ (doc/)
+ conf_ref.txt 抜けてたのを色々追加。
+
+--------------------
+//0964 by (凸)
+
+・この前追加したskill_tree2.txtを廃止したので削除してください
+・skill_tree.txtのフォーマットを変更&Kalenさんなどの情報を元に転生ツリーの見直し
+・それにともなってpc.cのファイル読み出し部分などを変更
+・Athena雑談スレッド part3 >>14 miyaさんの指摘があるまですっかり忘れていたatcommand_athena.confの修正を同梱
+
+ (conf/)
+ atcommand_athena.conf 修正
+ (db/)
+ skill_tree.txt 修正
+ skill_tree2.txt 廃止
+ (map/)
+ map.h PC_CLASS_BASE等追加
+ pc.c
+ pc_calc_skilltree() 修正
+ pc_allskillup() 修正
+ pc_readdb() 修正
+
+--------------------
+//0963 by (凸)
+
+・@jobchange2, @jobchange3廃止 @jobchangeに引数追加 @help参照
+ 例: @jobchange2 10 → @jobchange 10 1
+・同様に@charjob2, @charjob3廃止 @charjobに引数追加 @help参照
+ 例: @charjob2 10 ほげほげ → @charjob 10 1 ほげほげ
+・同様にスクリプトのjobchange2, jobchange3命令廃止 jobchangeに引数追加 script_ref.txt参照
+ 例: jobchange2 10; → jobchange 10,1;
+・↑どれも追加された引数は省略可能です。なので、転生ノービスは現状のスクリプトで転生一次職に転職できます。
+ 例: Novice High → @jobchange 10 → Whitesmith
+ Novice → @jobchange 10 → Blacksmith
+・スクリプトから転生しているか判定するためにUpperを追加しました。Upper 0=通常, 1=転生, 2=養子
+ Upper=0の時にBaseLevel=99なら転生させる〜とかそういうスクリプト誰か書いてください
+ その時に元の職業は記憶していないので永続変数とかで覚えさせて判定させないと転生後何にでも転職できちゃう?
+・バイオプラントとスフィアマインで呼び出されるMobの名前を--ja--にしてmob_db.txtから読むようにした
+
+ (conf/)
+ help.txt 修正
+ (db/)
+ const.txt
+ (doc/)
+ help.txt 修正
+ script_ref.txt 修正
+ (map/)
+ atcommand.c
+ atcommand_jobchange() 修正
+ atcommand_jobchange2() 削除
+ atcommand_jobchange3() 削除
+ atcommand_character_job() 修正
+ atcommand_character_job2() 削除
+ atcommand_character_job3() 削除
+ map.h 修正
+ pc.c
+ pc_readparam() 修正
+ pc_jobchange() 修正
+ pc.h 修正
+ script.c
+ buildin_jobchange() 修正
+ buildin_jobchange2() 削除
+ buildin_jobchange3() 削除
+ skill.c
+ skill_castend_pos2() 修正
+
+--------------------
+//0962 by (凸)
+
+・職業は0〜23で処理したいので転生職用のスキルツリー追加、eAthenaを参考に拡張
+ っていうか韓国本サーバでの実装の資料が見当たらないので適当
+・sakexe.exeを解析してskill_db.txt変更、これもeAthenaを参考に拡張
+ どれが本サーバで実装されているスキルか分かりませんっ!!
+※スキルツリーが表示されたからといって使えるわけじゃありませんっ!!
+
+ (common/)
+ mmo.h 定数修正
+ (db/)
+ skill_db.txt 変更
+ skill_require_db.txt 変更
+ skill_tree2.txt 追加
+ (map/)
+ skill.h 定数修正
+ pc.c
+ pc_calcstatus() 修正
+ pc_allskillup() 修正
+ pc_calc_skilltree() 修正
+ pc_readdb() 修正
+
+--------------------
+//0961 by 胡蝶蘭
+
+・スクリプトにサブルーチン/ユーザー定義関数機能追加
+ 詳しくはサンプルとscript_ref.txtを読んでください。
+ 地味に大改造なので、スクリプト関係でバグがあるかもしれません。
+
+ (map/)
+ map.h/map.c
+ struct map_session_data にスクリプト情報退避用のメンバ追加
+ map_quit()修正
+ script.h/script.c
+ 色々修正(run_script(),run_func()が主)
+ npc.c
+ npc_parse_function()追加他
+ (conf/sample)
+ npc_test_func.txt
+ ユーザー定義関数/サブルーティンのテストスクリプト
+ (doc/)
+ script_ref.txt
+ サブルーティンなどの説明追加
+
+--------------------
+//0960 by (凸)
+・本鯖相違スレッド part2 >>62 KKさんのアンクルスネア修正を同梱
+・バグ報告スレッド part5 >>14-16 rbさんのバグ修正を同梱
+・For English User Forum >>15 Mugendaiさんの指摘で0x1d7を使うのはVal>255に修正(0xc3のValは1バイトだから0x1d7を使うのかと納得)
+・pc_calc_base_job()を変更して元jobだけでなくノビか一次職か二次職(type)、通常か転生か養子(upper)を返すようにした
+
+ (map/)
+ atcommand.c
+ atcommand_joblevelup() 修正
+ atcommand_character_joblevel() 修正
+ clif.c
+ clif_changelook() 修正
+ pc.h 修正
+ pc.c
+ pc_setrestartvalue() 修正
+ pc_equippoint() 修正
+ pc_isequip() 修正
+ pc_calc_skilltree() 修正
+ pc_calcstatus() 修正
+ pc_isUseitem() 修正
+ pc_calc_base_job() 修正
+ pc_allskillup() 修正
+ pc_damage() 修正
+ pc_jobchange() 修正
+ pc_equipitem() 修正
+ script.c
+ buildin_changesex() 修正
+ skill.c
+ skill_castend_nodamage_id() 修正
+ skill_unit_onplace() 修正
+
+--------------------
+//0959 by (凸)
+・help.txtがdocじゃなくてconfのが読み出されてた_| ̄|○
+・gamejokeを参考に転生二次職のステータス加重値をjob_db2-2.txtに記述
+・スクリプトにjobchange2とjobchange3を追加それぞれ転生職と養子職へ転職させる命令です
+
+ (conf/)
+ help.txt 修正
+ (db/)
+ job_db2.txt 修正
+ job_db2-2.txt 追加
+ (doc/)
+ help.txt 修正
+ script_ref.txt 修正
+ (map/)
+ pc.c
+ pc_calcstatus() 修正
+ pc_readdb() 修正
+ script.c
+ buildin_jobchange() 修正
+ buildin_jobchange2() 追加
+ buildin_jobchange3() 追加
+
+--------------------
+//0958 by (凸)
+・転生職方面の実装を色々
+・重量制限は良く分からないので元の職業の値をそのまま使っています(モンク=チャンピオン等)
+・装備品も同上、HPやSPのテーブルも同上なので、転生してもHPなどが増えないガッカリ仕様です
+
+ (map/)
+ atcommand.c
+ atcommand_joblevelup() 修正
+ atcommand_character_joblevel() 修正
+ pc.c
+ pc_setrestartvalue() 修正
+ pc_equippoint() 修正
+ pc_isequip() 修正
+ pc_calcstatus() 修正
+ pc_isUseitem() 修正
+ pc_calc_base_job() 追加
+ pc_damage() 修正
+ pc_jobchange() 修正
+ pc_equipitem() 修正
+ pc.h 修正
+ script.c
+ buildin_changesex() 修正
+ skill.c
+ skill_castend_nodamage_id() 修正
+
+--------------------
+//0957 by (凸)
+・@charjob2と@charjob3を追加、関係としては@charjob⇔@jobchange、@charjob2⇔@jobchange2、(ry
+・@mapexitを追加、map-serverを落とすコマンドですatcommand_athena.confでは99設定にされてますので使用には十分注意してください。
+
+ (map/)
+ atcommand.c
+ atcommand_character_job2() 追加
+ atcommand_character_job3() 追加
+ atcommand.h 修正
+ (conf/)
+ atcommand_athena.conf 修正
+ (doc/)
+ help.txt 修正
+
+--------------------
+//0956 by (凸)
+・転生職仮実装(@jobchange2)、見た目と経験値テーブルだけです
+・養子職仮実装(@jobchange3)、見た目だけです現状では経験値は転生二次職と同じというマゾ仕様
+※上記2点は転生職が実装されているクライアントでなければ実行するとエラー落ちするので注意!!
+ その後直接セーブデータを弄らないとキャラセレにも行けなくなります!!
+・Athena雑談スレッド part2 >>149 稀枝さんの報告を元にガーディアンを修正
+・砦以外でガーディアンとかエンペリウムを殴るとmap-serverが落ちていたのも修正(未確認)
+・スパノビのJobテーブルはFor English User Forum >>13 kingboさんのデータを元に修正
+・転生職の経験値テーブルはOWNを参照してBase99の経験値は不明だったので適当に設定
+
+ (map/)
+ atcommand.c
+ atcommand_jobchange() 修正
+ atcommand_jobchange2() 追加
+ atcommand_jobchange3() 追加
+ atcommand.h 修正
+ clif.c
+ clif_changelook() 修正
+ pc.c
+ pc_nextbaseexp() 修正
+ pc_nextjobexp() 修正
+ pc_jobchange() 修正
+ pc_readdb() 修正
+ battle.c
+ battle_calc_damage() 修正
+ mob_can_reach() 修正
+
+--------------------
+//0955 by huge
+・ペットのルート機能。
+ ・仕様はmobのルートに近い感じですが、射程を短くしてます。
+ ・拾ったアイテムは、パフォーマンスをすると床に落とします。
+ ・卵に戻したり、ログオフしたときはPCの手元に入るようにしました。(重量超過はドロップ)
+ ・拾える個数はルートmob同様の10個ですが、11個目は拾いに行きません。
+ ・ルート権の問題から、アイテムにfirst_idが入っていて、それが飼い主以外だったら、何秒経とうと拾いません。(未確認)
+ ・それと、荷物持ちにされると可哀想なので、重量制限もつけました。これはconfで設定可能です。
+・atcommandで、@whereがうまく働いてなかったので修正(またウチだけかなぁ・・・)
+・@memoでmemoする時は、mapflagを無視するように。
+・スフィアマインの名前だけ修正。
+
+ (conf/)
+ battle_athena.conf
+ pet_lootitem,pet_weight 追加
+ (doc/)
+ conf_ref.txt 修正
+ (map/)
+ atcommand.c
+ atcommand_memo() 修正
+ atcommand_where() 修正
+ battle.c
+ battle_config_read() 修正
+ battle.h 修正
+ map.c
+ map_quit() 修正
+ map.h
+ pet_data{} 修正
+ pc.c
+ pc_memo() 修正
+ pet.c
+ pet_performance() 修正
+ pet_return_egg() 修正
+ pet_data_init() 修正
+ pet_ai_sub_hard() 修正
+ pet_lootitem_drop() 追加
+ pet_delay_item_drop2() 追加
+ pet_ai_sub_hard_lootsearch() 追加
+ pet.h 修正
+ skill.c
+ skill_castend_pos2() 修正
+
+--------------------
+//0954 by (凸)
+・object_del.batで各server.exeも削除するようにした
+・For English User Forum >>11 kingboさんの修正を取り込み
+・バグ報告スレッド part5 >>10 Sinさんの修正を取り込み
+・ついでに見かけたatcommand_character_joblevelの不具合を修正
+・@コマンドでジョブレベルを上げるときにスパノビはJob70まで対応(未確認)
+
+ (/)
+ object_del.bat 修正
+ (map/)
+ atcommand.c
+ atcommand_joblevelup() 修正
+ atcommand_character_joblevel() 修正
+ atcommand_character_baselevel() 修正
+
+ 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 (凸)
+・mob_skill_db.txtの条件値に0以外入っていなかったのを訂正
+・gcc 2.95でコンパイルできるように訂正(by バグスレpart5 >>2 茜さん)
+・↑やLinuxなどを考慮してstartやMakefileなどの改行をLFに変更
+・0952で出たコンパイル警告を出ないように修正
+・0952で更新されなかったconf_ref.txtを修正
+
+ (/)
+ start 改行コード変更
+ athena-start 改行コード変更
+ (db/)
+ mob_skill_db.txt 修正
+ (doc/)
+ conf_ref.txt 修正
+ (login/)
+ Makefile 改行コード変更
+ (map/)
+ Makefile 改行コード変更
+ atcommand.c
+ atcommand() 宣言位置修正
+ atcommand_where() 宣言位置修正
+ battle.c
+ battle_calc_pet_weapon_attack() 修正
+ battle_calc_mob_weapon_attack() 修正
+ battle_calc_pc_weapon_attack() 修正
+ battle_calc_magic_attack() 修正
+ clif.c
+ clif_skill_fail() 宣言位置修正
+ guild.c
+ guild_gvg_eliminate_timer() 宣言位置修正
+ mob.c
+ mob_damage() 宣言位置修正
+ script.c
+ buildin_deletearray() 宣言位置修正
+ buildin_getequipcardcnt() 宣言位置修正
+ buildin_successremovecards() 宣言位置修正
+
+--------------------
+//0952 by CG
+・confでDEFとMDEFの計算方法を選択できるように。
+
+ (conf/)
+ battle_athena.conf 変更
+ (map/)
+ battle.c
+ battle_calc_pet_weapon_attack() 修正
+ battle_calc_mob_weapon_attack() 修正
+ battle_calc_pc_weapon_attack() 修正
+ battle_calc_magic_attack() 修正
+ battle.h 修正
+
+--------------------
+//0951 by (凸)
+・サーバーsnapshot
+・バグ報告スレッド part4 >>95 KAJIKENさんの修正を同梱
+・同 >>138 バグかな?さんの修正を同梱
+・Athena雑談スレッド part2 >>112 名無しさんのPVPナイトメアモードのアンダークロスマップワープポイントを同梱
+・同 >>96 稀枝さんのnpc_gldcheck.txtを同梱
+・スナップショットにsave/を入れるのをやめました。無い場合はathena-startが作ってくれます
+・athena-startでlog/が無い場合に作るように変更
+・その他?
+
+ (/)
+ athena-start 変更
+ (db/)
+ mob_db.txt 変更
+ (conf/)
+ map_athena.conf 変更
+ (conf/extension/)
+ npc_gldcheck.txt 追加
+ (conf/npc/)
+ npc_event_ice.txt 変更
+ npc_job_alchemist.txt 変更
+ npc_event_valentine.txt 変更
+ npc_town_geffen.txt 変更
+ npc_event_whiteday.txt 変更
+ npc_event_potion.txt 変更
+ npc_town_comodo.txt 変更
+ (conf/warp/)
+ npc_warp_pvp.txt 追加
+
+--------------------
+//0950 by (凸)
+・mob_dbのModeフラグに以下の物を追加
+ 0x40(64) ダメージを1に固定(草やクリスタルなど)
+ 0x80(128) 攻撃を受けたときに反撃をする
+・上記の変更のためmob_db.txtほぼ全部変更、mob_db2.txtを作っている人は
+ 草など1ダメ固定にはModeに64を足さないと普通にダメージ
+ その他MobはModeに128を足さないと反撃してこなくなるので注意
+
+ (db/)
+ mob_db.txt 修正
+ (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 ぴざまん
+
+・ステータス異常耐性全面修正。
+ 耐性算出式全面修正。
+ ステータス異常耐性100%のキャラクターには状態異常を行わないように修正。
+・ディスペルの仕様変更。
+ 解除したらシステム上問題のあるステータス変化以外片っ端から解除するように修正。
+・フロストダイバーの仕様変更。
+ 凍結率修正(マジスレテンプレ準拠)。
+・リカバリーの仕様変更。
+ ノンアクティブモンスターに使用するとターゲットがリセットされるように修正。
+・クァグマイアの仕様がアレだったので修正。
+ 演奏や属性場と同様にrangeで処理するように修正。
+ DEX/AGI半減の影響が詠唱以外にも及ぶ様に修正。
+・スキルターゲット中に死んだ振りを使用してもスキルが回避できない問題修正。
+・白刃取りが動作しない問題修正(cast_dbが抜けてました)。
+ (map/)
+ pc.c
+ pc_calcstatus()修正
+ skill.c
+ skill_additional_effect()、skill_attack() 修正
+ skill_status_change_start()、skill_unitsetting() 修正
+ (db/)
+ cast_db.txt 修正。
+
+--------------------
+//0948 by 胡蝶蘭
+
+・warpwaitingpcが正しくPCを転送できない問題を修正
+・スクリプトの読み込み時にエラーまたは警告が出る場合、警告音を鳴らすように。
+ (流れたログを見ない人対策です)
+
+ (map/)
+ script.c
+ buildin_warpwaitingpc()修正
+ disp_error_message()修正
+
+・atcommand.c修正
+ ・atcommand_athena.confのmapmoveを読むように
+ ・@strなどの省略時の必須レベルを0に。
+ ・@paramは使わないのでコメント化
+
+ (map/)
+ atcommand.c
+ 該当個所修正
+
+・mobが最大15秒ほど移動しない場合がある問題修正
+ ・手抜きでないmob処理で、移動しない時間が7秒以上続かないように修正
+
+ (map/)
+ mob.c
+ mob_ai_sub_hard()修正
+
+・快速船員の伊豆港行きの判別式修正 (by ID:F8nKKuY)
+ (conf/npc/)
+ npc_town_comodo.txt
+
+--------------------
+//0947 by (凸)
+・取り巻きは取り巻きを召喚しないように修正
+・露天の販売価格の上限をbattle_athena.confで設定できるように修正
+
+ (conf/)
+ battle_athena.conf
+ vending_max_value追加
+ (doc/)
+ conf_ref.txt 修正
+ (map/)
+ skill.c
+ skill_castend_nodamage_id() 修正
+ battle.c
+ battle_config_read() 修正
+ battle.h 修正。
+ vending.c
+ vending_openvending() 修正。
+
+--------------------
+//0946 by Kalen
+・プロ北Warp見直し
+参考:本鯖(1F,2F)らぐなの何か(3F)
+ (conf/warp/)
+ npc_warp.txt
+
+・語り部の2週3週追加(どうせ見ないと思いますが…)
+ (conf/npc/)
+ npc_event_kataribe.txt
+
+--------------------
+//0945 by 胡蝶蘭
+
+・NPCタイマーラベルデータが正しくインポートされない問題を修正
+・NPCタイマー初期値やタイマーIDが正しく初期化されない問題を修正
+・NPCのduplicateを行うとアクセス違反が起こる場合がある問題を修正
+
+ (map/)
+ npc.c
+ npc_parse_script修正
+
+・パッチアップスレ4の87のpc.cとりこみ
+ (map/)
+ pc.c
+ カード重量制限を元に戻したもの
+
+--------------------
+//0944 by huge
+・ギルドの上納経験値の上限を、confで制限できるように。
+・露店の販売価格を10Mまでに制限。
+・カートの重量制限が一桁下がってたんですが、ウチだけですか?修正してみましたが。
+
+ (conf/)
+ battle_athena.conf
+ guild_exp_limit追加
+ (doc/)
+ conf_ref.txt 修正
+ (map/)
+ atcommand.c
+ 蘇生時のSP回復で、細かい修正。
+ battle.c
+ battle_config_read() 修正
+ battle.h 修正。
+ guild.c
+ guild_change_position() 修正。
+ pc.c
+ pc_calcstatus() 修正。
+ vending.c
+ vending_openvending() 修正。
+
+--------------------
+//0943 by (凸)
+・battle_athena.confでdead_branch_activeをyesにすると古木の枝で召喚されるモンスターがアクティブになるように変更
+・微妙に変更したclient_packet.txtを同梱
+
+ (conf/)
+ battle_athena.conf
+ dead_branch_active追加
+ (doc/)
+ client_packet.txt 修正
+ conf_ref.txt 修正
+ (map/)
+ battle.c
+ battle_config_read() 修正
+ battle.h 修正
+ map.h 修正
+ mob.c
+ mob_once_spawn() 修正
+ mob_attack() 修正
+ mob_target() 修正
+ mob_ai_sub_hard_lootsearch() 修正
+ mob_ai_sub_hard() 修正
+
+・英語スレのkingboさんの変更を同梱
+ 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 胡蝶蘭
+
+・アクセスコントロールで不正なメモリにアクセスする場合があるバグを修正
+ (login/)
+ login.c
+ check_ipmask()修正
+
+・スクリプトリファレンス少し追加と修正
+ (doc/)
+ script_ref.txt
+ 修正
+
+--------------------
+//0941 by (凸)
+
+・e2さんの報告を元に召喚された手下のスピードを召喚主と同じにしてみる
+
+ (map/)
+ battle.c
+ battle_get_speed() 修正
+ mob.c
+ mob_spawn() 修正
+ mob_summonslave() 修正
+
+--------------------
+//0940 by End_of_exam
+
+・ヒールやポーションピッチャーを使用しても回復しないバグを修正(0938〜)。
+
+ Thanks for Pepermint, reporting the bug that using PotionPitcher with
+ BluePotion was no effective.
+ (=ポーションピッチャー+青Pで効果がない事を報告してくれたPepermint氏に感謝)
+
+ (map/)
+ battle.c
+ battle_heal() 修正
+
+--------------------
+//0939 by (凸)
+・cutinパケットを0x145(ファイル名16文字)から0x1b3(64文字)に変更
+・ついでに雑談スレに上げたathena-startを同梱
+
+ (/)
+ athena-start saveファイルが無いときに作るように
+ (map/)
+ clif.c
+ clif_cutin() 本鯖パケット準拠に変更
+ (doc/)
+ client_packet.txt 修正
+
+--------------------
+//0938 by ぴざまん
+
+・ポーションピッチャーで青ポを投げてもエフェクトだけだったバグ修正。
+・露店開設が特定のアイテム配置で失敗するバグ修正。
+・スクリプト関数getareadropitem実装。
+ 指定エリア内のドロップアイテムをカウントする関数です
+
+ 書式:getareadropitem <mapname>,<x0>,<y0>,<x1>,<y1>,<item>;
+ mapname:対象マップ名(例:prontera.gat)
+ x0とx1:対象X座標範囲
+ y0とy1:対象Y座標範囲
+ item:カウントする対象アイテム
+
+ 戻り値:mapname内座標(x0,y0)-(x1,y1)の範囲内に落ちているitemの総個数
+ 取得失敗時には-1を返します。
+ ・itemの値はIDでもアイテム名("Red_Jemstone"とか)でもいいです。
+
+ (map/)
+ battle.c
+ battle_heal() 修正。
+ vending.c
+ vending_openvending() 修正。
+ script.c
+ ローカルプロトタイプ宣言修正。
+ struct buildin_func[] 修正。
+ buildin_getareadropitem()、buildin_getareadropitem_sub() 追加。
+
+--------------------
+//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 胡蝶蘭
+
+・内容の同じスクリプトNPCを何度も記述しなくても言いように修正
+ ・NPC定義の"script"と書く部分を"duplicate(NPC名)"とすると、
+ 該当のNPCとスクリプトを共有するように。NPC名は表示名ではなく
+ エクスポートされる名前を指定します。
+ <例>
+prontera.gat,165,195,1 duplicate(カプラ職員) カプラ職員2 112
+
+ ・共有元のNPCは同じマップサーバーに存在する必要があるため、
+ 同じマップでない場合はduplicateすべきではない。
+ ただし、NPCの位置を"-"にすることで、マップ上には存在しないが、
+ マップサーバー内には存在するNPCを作成できるので、
+ そのNPCを共有元にするのであればどのマップへも共有できる。
+ <例>
+
+- script テスト::test1 112,{ // このNPCグラフィックIDは使用しない
+// (略)
+}
+prontera.gat,165,195,1 duplicate(test1) テスト2 112
+geffen.gat,99,99,1 duplicate(test1) テスト3 112
+
+ ・上のマップに存在しないNPCはイベントにもすることができる。
+ (どのマップサーバーからでも必ず呼び出せるイベントになる)
+
+ (map/)
+ map.h
+ struct npc_label_list追加,struct npc_data修正
+ npc.c
+ npc_parse_script()修正
+ 不要になったラベルデータベース関連の関数を削除
+
+--------------------
+//0934 by ぴざまん
+
+・MOBの状態異常耐性がやたら高かったのを修正。
+・速度減少の仕様変更(成功率計算式変更・失敗時にはエフェクト無し)。
+・何時の間にか状態異常の継ぎ足し禁止がコメントアウトされていたので戻し。
+・ポイズンリアクトのアイコン表示が無くなっていたので修正(でも出るだけ…)
+・白刃取り実装。
+
+ (map/)
+ battle.c
+ battle_weapon_attack() 修正。
+ clif.c
+ clif_parse_WalkToXY()、clif_parse_ActionRequest() 修正。
+ clif_parse_TakeItem()、clif_parse_UseItem() 修正。
+ clif_parse_DropItem()、clif_parse_EquipItem() 修正。
+ clif_parse_UnequipItem() 修正。
+ mob.c
+ mob_can_move()、mob_attack()、mob_ai_sub_hard() 修正。
+ mobskill_use_id()、mobskill_use_pos() 修正。
+ mobskill_castend_id()、mobskill_castend_pos() 修正。
+ pc.c
+ pc_attack_timer()、pc_setpos() 修正。
+ skill.c
+ SkillStatusChangeTable[] 修正。
+ skill_additional_effect()、skill_castend_damage_id() 修正。
+ skill_castend_nodamage_id()、skill_check_condition() 修正。
+ skill_status_change_start()、skill_status_change_end() 修正。
+ skill_use_id() 修正。
+ skill.h 修正。
+ (db/)
+ cast_db.txt 修正。
+
+--------------------
+//0933 by 胡蝶蘭
+
+・ウィザード転職所NPC仮実装
+ ・eathenaのデータの翻訳、および某所の昔のデータを元に作ったので
+ 癌鯖とは微妙に異なってると思います。
+ 「古い巻物」とか使えませんし。
+ ・現行のjob_2nd.txtと一緒に読み込むと、NPCが重なるので、
+ job_2nd.txtの該当スクリプトをコメント化してください。
+ ただし、その場合はセージに転職させてもらえないので注意してください。
+
+ (conf/npc/)
+ npc_job_wizard.txt
+ 追加
+ (conf/warp/)
+ npc_warp_job.txt
+ ウィザード転職所のワープをコメント化
+
+・バグ修正
+ ・gotoやmenuでラベルが見つからないときスクリプトの実行を中断するように.
+ ・1回のスクリプトの実行において、実行命令数が約8000を超えるか、
+ gotoやmenuの実行回数が約500回を超えると実行を中断するように。
+ ・関数/命令実行時にもエラーチェックを入れた
+ ・ギルド/パーティ/ペットの名前に日本語が使えない問題修正
+
+
+ (char/)
+ int_guild.c/int_party.c
+ 名前問題修正
+ (map/)
+ pet.c
+ 名前問題修正
+ script.c
+ 修正
+
+--------------------
+//0932 by End_of_exam
+
+・0930でギルド倉庫の中身が消えるバグを修正。
+
+ (char/)
+ int_storage.c guild_storage_tostr() 修正。
+
+--------------------
+//0931 by (凸)
+・サーバーsnapshot
+・AthenaDB計画から更新のあった物を反映
+・atcommand_athena.confにstr等を追加
+・ワープポータルの本鯖相違点を修正
+・霧さんのaldeg_cas03〜05を同梱
+・pさんのnpc_event_kataribe.txt同梱
+・KAJIKENさんのnpc_warp_louyang.txt同梱
+
+ (db/)
+ item_db.txt 変更
+ (conf/)
+ atcommand_athena.conf 変更
+ map_athena.conf 変更
+ (conf/gvg/)
+ aldeg_cas03.txt 変更
+ aldeg_cas04.txt 変更
+ aldeg_cas05.txt 変更
+ (conf/mob/)
+ npc_monster.txt 変更
+ (conf/npc/)
+ npc_event_kataribe.txt 追加
+ (conf/warp/)
+ npc_warp_louyang.txt 追加
+ (map/)
+ pc.c pc_memo() 変更
+
+--------------------
+//0930 by 胡蝶蘭
+
+ 既存の char/ にあるlock.cとlock.hは削除してください。
+ これらは common/ に移動されます。
+
+・スクリプト追加修正
+ ・setarray(配列へリスト代入)追加
+ ・cleararray(配列を指定値でクリア)追加
+ ・copyarray(配列をコピー)追加
+ ・getarraysize(配列の有効な要素数を求める)追加
+ ・deletearray(配列の要素を削除してつめる)追加
+ ・warpwaitingpc:人数やアカウントIDをマップ変数にセットするように修正
+
+ (map/)
+ script.c
+ 色々
+ (doc/)
+ script_ref.txt
+ 命令追加など
+ (npc/sample/)
+ npc_test_array.txt
+ 配列系テスト用NPCスクリプト
+
+・バグ修正など
+ ・キャラクター名/アカウント名/パーティ名/ギルド名/ペット名に
+ コントロールコードを使えないように修正。
+ ・char.cなどの保存の効率を更にアップ。
+ ・倉庫ファイル/ギルド倉庫ファイルに空行が残らないように修正
+ ・lock.*をcommon/に移動、ファイルが保存できなくなるバグ修正、
+ アカウントとマップ変数の保存にもlock_fopenを使うように。
+
+ (common/)
+ lock.c/lock.h
+ フォルダ移動、lock_fopen修正
+ (login/)
+ login.c
+ mmo_auth_new()修正
+ (char/)
+ char.c
+ mmo_char_tostr(),make_new_char()修正
+ int_storage.c
+ storage_tostr(),guild_storage_tostr(),
+ inter_storage_save_sub(),inter_guild_storage_save_sub()修正
+ int_party.c
+ int_guild.c
+ 名前問題修正
+ (map/)
+ pet.c
+ 名前問題修正
+
+--------------------
+//0929 by ぴざまん
+
+・ランドプロテクター完全実装。
+・プロボックのスキル仕様変更(詠唱妨害・凍結、石化、睡眠解除)。
+・リカバリーのスキル仕様変更(アンデッドに使用すると一定確率で暗闇効果)。
+・状態異常中でも装備の切り替えが出来るように変更。
+・アイテム自動取得中に@killmonsterを使用すると落ちるバグ修正。
+・胡蝶蘭さんが上げていたnpc.cを同梱しました。
+・skill_dbで気になってたとこをちょこっと修正。
+
+ (map/)
+ clif.c
+ clif_parse_EquipItem() 修正。
+ skill.c
+ skill_castend_nodamage_id() 修正。
+ skill_unitsetting()、skill_unit_onplace() 修正。
+ skill_landprotector() 追加。
+ mob.c
+ mob_delay_item_drop()、mob_delay_item_drop2() 修正。
+ npc.c 修正
+
+ (db/)
+ skill_db.txt 修正。
+
+--------------------
+//0928 by End_of_exam
+
+・キャラや倉庫内アイテムが消える問題に暫定対処(キャラ鯖の改良)。
+
+ 1.キャラデータ・倉庫データのデータ変換処理を改良。
+ (char/char.c , char/int_storage.c)
+
+ 2.ファイル書き出しが終わるまで、旧ファイルを残すように修正。
+ (char/lock.c, char/lock.h の追加。メイクファイルの修正。
+ char/int_storage.c,int_guild.c,int_party.c,int_pet.c,char.c,inter.c
+ 内にある、データ書き出し処理を変更。)
+
+--------------------
+//0927 by ぴざまん
+
+・武器攻撃以外に種族補正が入っていなかったのを修正。
+・演奏中に楽器・鞭以外の武器に持ち変えると演奏が止まる様に修正。
+・演奏の効果が演奏者自身にはかからないように修正。
+・アイテム自動取得機能実装
+ 敵を倒した時に、アイテムがドロップされるのではなく、その敵に一番多くのダメージを
+ 与えた人(ルート権1位の人)にドロップアイテムが自動で与えられる機能です。
+ battle_athena.confのitem_auto_getで設定できます。
+ オリジナルアップデートの為、battle_athena.confでのデフォルトではnoにしています。
+・属性場(デリュージ・バイオレントゲイル・ボルケーノ・ランドプロテクター)仮実装
+ 一部の機能が未実装です
+ デリュージ:水場を用いたウォーターボール
+ バイオレントゲイル:ファイアーウォールの持続時間補正
+ ボルケーノ:アイスウォール禁止
+ ランドプロテクター:オブジェクト設置系スキル禁止(つまり出るだけのLPです)
+
+ (map/)
+ battle.c
+ battle_calc_damage()、battle_calc_magic_attack() 修正。
+ battle_calc_misc_attack()、battle_config_read() 修正。
+ mob.c
+ mob_delay_item_drop()、mob_delay_item_drop2() 修正。
+ pc.c
+ pc_calcstatus()、pc_equipitem() 修正。
+ skill.c
+ ローカルプロトタイプ宣言修正。
+ SkillStatusChangeTable[] 修正。
+ skill_castend_nodamage_id()、skill_castend_pos2() 修正。
+ skill_unitsetting()、skill_unit_onplace() 修正。
+ skill_unit_onout()、skill_unit_ondelete() 修正。
+ skill_status_change_start()、skill_status_change_end() 修正。
+ skill_clear_element_field() 追加。
+ battle.h 修正。
+ skill.h 修正。
+ (conf/)
+ battle_athena.conf
+ item_auto_get項目を追加。
+ (db/)
+ cast_db.txt 修正。
+
+--------------------
+//0926 by 胡蝶蘭
+
+・ギルド城の初期化方法変更
+ ・全てのギルド城(+占拠ギルド情報)を所得したときにOnAgitInitが
+ よばれるように。GetCastleDataやRequestGuildInfoの必要がなくなります。
+ 従って、現在のgvgスクリプトのOnInterIfInitやOnRecvCastleXXXは
+ 必要なくなります。(おそらく現行のスクリプトも動作は可能です)
+ 初期化が必要なNPCは変わりにOnAgitInitを使ってください。
+ なお、不要になった命令などを削除する予定はありません。
+
+ (char/)
+ inter.c/inter.h/char.c/int_guild.c/int_guild.h
+ マップサーバー接続時に処理を行えるように修正
+ 接続時にギルド城データを送信するように
+ (map/)
+ intif.c/guild.c/guild.h
+ 接続時のギルド城データ一括受信処理&ギルド情報要求、
+ OnAgitInitの呼び出しなど
+ chrif.c
+ 旧OnAgitInitの呼び出し削除
+ (doc/)
+ inter_server_packet.txt
+ ギルド城データ一括送信パケット0x3842追加
+
+・スクリプトにNPC主体イベント実行命令追加
+ ・donpcevent(NPC主体イベント実行)追加
+ こちらはdoeventと違いブロードキャスト可能です。詳細はscript_ref。
+ ・isloggedinのコンパイル警告がでないように修正
+ (map/)
+ script.c
+ buildin_donpcevent()追加など
+ (doc/)
+ script_ref.txt
+ doevent,donpcevent,OnAgitInit追加など
+
+・その他修正
+ (map/)
+ clif.c
+ clif_parse_GMReqNoChat()追加
+
+
+--------------------
+//0925 by 胡蝶蘭
+
+・スクリプトのバグ修正
+ ・monster,areamonsterの問題修正
+ これらはscript_rid2sdを使用しないようにしました。
+ sdがNULLのとき、レベルチェックを行わないようにしました。
+
+ (map/)
+ script.c/mob.c
+ buildin_monster(),buildin_areamonster(),mob_once_spawn()他
+
+・スクリプトの機能追加
+ ・detachrid命令(プレイヤーのデタッチ)追加
+ ・isloggedin関数(プレイヤーのログインチェック)追加
+ ・getitem,getitem2命令,countitem,checkweight関数で
+ nameidにアイテムの名前を指定可能に。
+ (item_dbなどに依存するため、使用すべきではありませんが、一応)
+
+ (map/)
+ script.c
+ 色々
+ (doc/)
+ script_ref.txt
+ 変更部分とエラー説明修正
+
+・athena-startとstartを修正
+ ・athena-start stopでプロセスが終了するまで待つように
+ ・startで再起動させるときathena-start restartを呼ぶように。
+
+--------------------
+//0924 by (凸)
+
+・バグ報告スレッド part4 >>66のnpcを取り込み
+・同 >>51のguild.cを反映
+・同 >>38のatcommand_athena.confへの変更を取り込み
+・なぜかnpcフォルダにあってmap_athena.confないファイルを一覧に追加。ついでにギルドフラッグのコメントアウトを解除
+・conf/npc/npc_job_1st.txt npc_script2.txt npc_shop3.txtはスナップショットから削除してください
+
+ (map/)
+ guild.c 修正
+ (conf/)
+ map_athena.conf 修正
+ atcommand_athena.conf 修正
+ (conf/npc/)
+ npc_event_hat.txt 修正
+ npc_event_oni.txt 修正
+ npc_job_1st.txt 削除
+ npc_script2.txt 削除
+ npc_shop3.txt 削除
+
+--------------------
+//0923 by 胡蝶蘭
+
+・スクリプトのバグ修正
+・script_rid2sdが失敗してもサーバーを終了しないように変更
+ ・monster,areamonsterなどが実行できない問題修正
+
+ (map/)
+ script.c/mob.c
+ buildin_monster()など修正
+
+ (doc/)
+ script_ref.txt
+ ラベルとエラーの説明修正
+
+--------------------
+//0922 by 胡蝶蘭
+
+・スクリプトエラーの行番号が正しく表示されるように
+
+ (map/)
+ itemdb.c / npc.c
+ itemdb_readdb(),npc_parse_script()修正
+
+・キャラクター情報にアクセスできない状態でアクセスするとエラーを出すように修正
+・goto/menuでラベルが指定される場所にラベル以外が指定されると警告を出すように
+・script_refにエラーメッセージの説明追加
+・イベント起動されたスクリプトでキャラクターを使用できるようにする関数追加
+ ・attachrid(指定したIDの情報を使用できるようにする)追加
+ ・getcharid(3でアカウントIDを所得できるように)修正
+ (map/)
+ script.c
+ script_rid2sd(),buildin_attachrid()追加
+ 多々修正。
+ (doc/)
+ script_ref.txt
+ エラーメッセージの説明追加、変数/ラベルの説明修正
+ 他修正
+
+--------------------
+//0921 by RR
+・スクリプトバグ修正(ご迷惑をおかけしました)
+ (conf/npc/)
+ npc_event_tougijou.txt
+
+・steal率修正(自DEX - 敵DEX + SLv*3 +10の部分で一度判定をしていたので)
+・0918で0914以前に巻き戻ってしまっていた部分を元に戻した
+ (map/)
+ pc.c
+ pc_steal_item() 修正
+ itemdb.c
+ pet.c
+ skill.c 修正
+
+--------------------
+//0920 by 獅子o^.^o
+・ Steal率 = Drop率 * (自DEX - 敵DEX + SLv*3 +10) /100
+ (map/)
+ pc.c
+ int pc_steal_item()修正
+
+--------------------
+//0919 by RR
+・atcommandのlvupを使うと取得ステータスポイントがおかしい問題の修正
+・バグ修正(バグ報告スレで修正の出たものの取り込み 胡蝶蘭さん、pさん、共にお疲れ様です)
+ (map/)
+ atcommand.c
+ atcommand_baselevelup()修正
+ guild.c
+ guild_gvg_eliminate_timer()修正
+ pc.c
+ pc_setreg(),pc_setregstr()修正
+ (login/)
+ login.c
+ parse_login()修正
+--------------------
+//0918 by 聖
+・item_db自体がオーバーライド可能になったので、class_equip_db.txtの廃止。
+・pet_db.txt、produce_db.txtもオーバーライド可能に修正。
+ (map/)
+ itemdb.c
+ do_init_itemdb() 修正。
+ pet.c
+ read_petdb() 修正。
+ skill.c
+ skill_readdb() 修正。
+
+--------------------
+//0917 by RR
+・スクリプト修正
+ 桃太郎イベントと闘技場イベントをNPCタイマーに変更
+ (conf/npc/)
+ npc_event_momotarou.txt
+ npc_event_tougijou.txt 修正
+・スキルツリー修正(バグ報告スレ25より)
+ (db/)
+ skill_db.txt 修正
+
+--------------------
+//0916 by (凸)
+・npc_monsterにnpc_mob_jobを統合。npc_mob_job.txtは削除してかまいません
+
+ (conf/)
+ map_athena.conf npc_mob_jobを削除
+ (conf/mob/)
+ npc_monster.txt 更新
+
+--------------------
+//0915 by 胡蝶蘭
+
+・NPCタイマー関係の命令追加&修正他
+ ・delwaitingroom(NPCチャット終了)引数を見てなかったので修正
+ ・initnpctimer(NPCタイマー初期化)追加
+ ・stopnpctimer(NPCタイマー停止)追加
+ ・startnpctimer(NPCタイマー開始)追加
+ ・getnpctimer(NPCタイマー情報所得)追加
+ ・setnpctimer(NPCタイマー値設定)追加
+
+ 既存のaddtimerなどはプレイヤー単位のため、NPC単位のタイマーを作りました。
+ こちらは、addtimerなどとは違い、OnTimerXXXという風にラベルを指定します。
+ 詳しくはサンプルとscrit_ref.txtを参照。
+
+ (map/)
+ map.h
+ struct npc_data 修正、struct npc_timerevent_list追加
+ npc.c / npc.h
+ npc_timerevent(),npc_timerevent_start(),npc_timerevent_stop(),
+ npc_gettimerevent_tick(),npc_settimerevent_tick()追加
+ npc_parse_script()修正
+ script.c
+ buildin_*npctimer()追加など
+ (conf/sample/)
+ npc_test_npctimer.txt
+ NPCタイマー使用サンプル
+ (doc/)
+ script_ref.txt
+ NPCタイマー関係の命令/関数追加、定数ラベルの説明修正
+
+・Sageのアーススパイクの所得条件修正
+ (db/)
+ skill_tree.txt
+ アーススパイクの行(サイズミックウェポンをLv1に)
+
+--------------------
+//0914 by p
+・範囲スキル使用時に解放済みメモリを参照していた問題に対応
+・メモリを初期化せずに使用していた領域を、初期化してから使用するように変更
+ (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
+
+・GVGScriptの修正
+ 911対応
+ フラグからアジトへ戻る機能追加
+ 戻るときに聞かれるように修正(TESTscript)
+ 砦取得時::OnRecvCastleXXXを発動するように修正
+ (conf/gvg/)
+ ほとんど.txt
+
+--------------------
+//0912 by (凸)
+・このファイルの文字化けとTEST_prtg_cas01_AbraiJの文字化けを修正
+・バグ報告スレの>>19-20を取り込み
+・昔やっちまったbattle_athena.confの誤字の訂正
+
+ (common)
+ mmo.h
+ #define MAX_STAR 3に修正
+ (conf)
+ battle_athena.conf
+ (conf/gvg/)
+ TEST_prtg_cas01_AbraiJ.txt
+ (map)
+ atcommand.c
+ get_atcommandinfo_byname() 修正
+
+
+--------------------
+//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
+・スクリプトの間違いを修正
+(conf/gvg/)
+ ev_agit_payg.txt
+ ev_agit_gefg.txt
+
+・ひな祭りに一度入ったらマップ変数が残ったままになるので、マップ変数を使わないよう変更
+(一時的マップ変数にすれば問題ないとも言えますが、
+town_guideとtown_kafraに時期限定の物が常駐してしまうのが気になったので、
+それらをevent_hinamatsuriへ移動し、普段のをdisableしています)
+ (conf/npc/)
+ npc_event_hinamatsuri
+ npc_town_guide
+ npc_town_kafra
+
+・スキルリセット時のスキル取得制限判定をスキルポイント48以上消費から、
+ スキルポイント58以上消費か残りスキルポイントがJOBLEVELより小さくなったときに変更
+・@model時の服色染色制限を緩和(男アサ、ローグのみへ)
+ (map/)
+ pc.c pc_calc_skilltree()
+ atcommand.c atcommand_model()
+
+
+--------------------
+//0909 by 胡蝶蘭
+
+・NPCチャット関係の命令追加
+ ・waitingroom(NPCチャット作成)修正(イベントを起こす人数を指定可能)
+ ・delwaitingroom(NPCチャット終了)追加
+ ・enablewaitingroomevent(NPCチャットイベント有効化)追加
+ ・disablewaitingroomevent(NPCチャットイベント無効化)追加
+ ・getwaitingroomstate(NPCチャット状態所得)追加
+ ・warpwaitingpc(NPCチャットメンバーワープ)修正
+ 詳しくはscript_ref.txtを参照
+
+ (map/)
+ script.c/npc.c/npc.h/chat.c/chat.h/clif.c
+ 多々修正
+ (doc/)
+ script_ref.txt
+ 修正
+ (conf/sample/)
+ npc_test_chat.txt
+ 追加命令のテストスクリプト
+
+・スクリプトの間違いを修正
+ (conf/npc/)
+ npc_event_skillget.txt
+ npc_event_yuno.txt
+ npc_town_lutie.txt
+ npc_turtle.txt
+ 謎命令additemをgetitemに置換
+ npc_town_guide.txt
+ 謎命令scriptlabelをコメント化
+ npc_event_momotaro.txt
+ npc_job_swordman.txt
+ npc_job_magician.txt
+ ';'付け忘れ修正
+ (conf/gvg/)
+ ev_agit_aldeg.txt
+ @GID4を@GIDa4に置換
+ ev_agit_gefg.txt
+ ev_agit_payg.txt
+ Annouceに色指定と';'の付け忘れを習性
+
+
+・AthenaDB計画のデータとりこみ、その他修正
+ 安定しているデータかどうかわかりませんが。
+
+ (db/)
+ item_db.txt/mob_db.txt/mob_skill_db.txt
+ AthenaDB計画のデータとりこみ
+ mob_skill_db.txt.orig
+ 以前のデータ(コメント部分などの参考に)
+ (conf/)
+ water_height.txt/mapflag.txt
+ AthenaDB計画のデータとりこみ
+ map_athena.conf
+ npc_monster3*.txtを削除
+ 追加マップデータ (by ID:UVsq5AE)
+ (conf/mob/)
+ npc_monster.txt
+ AthenaDB計画のデータとりこみ
+
+--------------------
+//0908 by 胡蝶蘭
+
+・スクリプトのエラーチェック処理を増やした
+ ・文字列の途中で改行があるとエラーを出すように。
+ ・関数呼び出し演算子'('の直前に関数名以外があるとエラーを出すように。
+ ・命令があるべきところに関数名以外があるとエラーを出すように。
+ ・命令および関数の引数区切りの','を省略すると警告を出すように。
+ ・命令および関数の引数の数が異なると警告を出すように。
+
+ (map/)
+ script.c
+ 色々修正
+
+・NPCスクリプト修正
+ (conf/npc/)
+ npc_town_guide.txt
+ 4行目はいらないようなのでエラーが出ないようにコメント化
+ npc_event_hat.txt
+ コモドの仮面職人とフェイヨンの青年 (by ID:dS8kRnc)
+ (conf/sample/)
+ npc_card_remover.txt
+ @menuを使って短くした&文章少し修正
+
+・その他
+ (db/)
+ skill_tree.txt
+ Sage応急手当
+
+--------------------
+//0907 by p
+・atcommand() の肥大化がひどいのでリファクタリング
+ @ コマンドを追加する場合は、atcommand.h 内で定数を、atcommand.c 内で
+ 関数定義マクロとマッピングテーブル、処理用の関数を記述してください。
+・global 変数の atcommand_config を消去。
+ @ コマンド毎のレベルは get_atcommand_level() で取得してください。
+・一部のキャラ名を取る @ コマンドで、半角スペースを含む名前のキャラを
+ 正常に処理できていなかった問題を修正。
+ この影響により、@rura+ など、キャラ名がパラメータの途中にあったものは
+ 全て最後に回されています。
+・@ コマンドの文字列を正常に取得できなかった場合に、バッファの内容を
+ チェックせずに処理を行おうとしていた部分を修正しました。
+
+ (common/)
+ mmo.h
+ (map/)
+ atcommand.h
+ atcommand.c
+ clif.h
+ clif.c
+
+--------------------
+//0906 by Selena
+・胡蝶蘭さんの修正にあわせて、バルキリーレルム1以外のスクリプトの修正。
+・@コマンド入力ミスの際にエラーメッセージを表示。
+ (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 管理人
+
+・サーバーsnapshot
+・前スレのファイル取り忘れた人がいるかもしれないので
+
+--------------------
+//0904 by 胡蝶蘭
+
+・スクリプト処理修正
+ ・char/interサーバーに接続した時にOnCharIfInit/OnInterIfInitイベントが
+ 呼ばれるようになりました。
+ OnAgitInitはOnInterIfInitに変更すべきです。
+ ・getcastledata命令で第2パラメータが0のとき、第3パラメータに
+ イベント名を設定できます。このイベントはギルド城のデータを
+ Interサーバーから所得完了したときに実行されます。
+ ・起こすNPCイベント名を"::"で始めると、同名ラベルを持つ全NPCのイベント
+ を実行できます。
+ たとえば、getcastledata "prtg_cas01.gat",0,"::OnRecvCastleP01";
+ とすると全てのNPCの OnRecvCastleP01ラベルが実行されます。
+ ・requestguildinfo命令追加。特定ギルドの情報をInterサーバーに
+ 要求できます。第1パラメータはギルドID、第2パラメータはイベント名で
+ このイベントはギルド情報をInterサーバーから所得完了したときに
+ 実行されます。
+
+ (map/)
+ guild.c/guild.h/npc.c/npc.h/script.c/intif.c/chrif.c
+ 色々修正
+
+・ギルド城関連NPC修正
+ (バルキリーレルム1のみ修正。他の城のスクリプトは各自で弄ってください。
+ というか、むしろ弄ったらあっぷしましょう)
+ ・初期化処理をOnAgitInitでなくOnInterIfInitに変更。
+ ・城データ所得完了処理としてOnRecvCastleP01を追加。
+ ・鯖再起動時、ギルド専属カプラが正しく表示されるように。
+ ・ギルド専属カプラの名前を"カプラ職員::kapra_prtg01"に変更。
+ ("::"以降はエクスポートされる名前で、"::"以前が表示名)
+ "カプラ職員#prt"より名前を長くして競合しにくくするためです。
+ この関係で、disablenpcなどのパラメータを"kapra_prtg01"に修正。
+ (conf/gvg/)
+ prtg_cas01.txt
+ ギルド専属カプラ修正
+ ev_agit_prtg.txt
+ 初期化処理修正(バルキリーレルム1のみ)
+ TEST_prtg_cas01_AbraiJ.txt
+ ギルド専属カプラ雇用/城破棄修正
+
+・NPCの修正
+ (conf/npc/)
+ npc_job_swordman.txt
+ npc_event_hat.txt
+ 修正
+
+・アカウントを削除してもアカウントIDを再利用しないように修正
+・ギルド/パーティについても一応同等の処理追加(コメント化されています。
+ ギルドやパーティはIDを再利用してもおそらく問題ないため)
+
+ (login/)
+ login.c
+ 読み込み/保存処理修正
+ (char/)
+ int_guild.c/int_party.c
+ 読み込み/保存処理修正
+
+--------------------
+//0903 by 胡蝶蘭
+
+・l14/l15およびプレフィックスlを"推奨されない(deprecated)"機能としました。
+ ・まだ使用できますが、今後の動作が保障されないので、速やかに代替機能を
+ 使用するように移行してください。
+ ・プレフィックス'l'は代替機能のプレフィックス'@'を使用してください。
+ ・l15は代替機能の@menuを使用してください。
+ ・l14は代替機能はありません。input命令の引数を省略しないで下さい。
+ ・これらの推奨されない機能を使用すると警告メッセージがでます。
+
+ (map/)
+ script.c
+ parse_simpleexpr()修正
+ (conf/warp/)
+ npc_warp.txt/npc_warp25.txt/npc_warp30.txt
+ 変数名l0を@warp0に修正
+ (conf/npc/)
+ npc_event_hat.txt
+ 変数名l15を@menuに修正
+ (doc/)
+ script_ref.txt
+ 配列変数の説明追加
+ 変数のプレフィックス'l'、input命令のl14、menu命令のl15の
+ 説明を修正
+
+--------------------
+//0902 by 胡蝶蘭
+
+・スクリプトが配列変数に対応。
+ ・array[number]のように使います。数値型、文字列型両方使えます。
+ ・使えるプレフィックスは @, $, $@ です。
+ (一時的キャラクター変数、一時的/永続的マップサーバー変数)
+ ・number==0は配列じゃない変数と値を共有します。
+ (@hoge[0]と@hogeは同じ変数を表す)
+ ・まだ仮実装段階なのでバグ報告よろしくお願いします。
+・マップサーバー変数の読込中にCtrl+Cをするとデータ破損の可能性がある問題を修正.
+・マップファイル読み込み画面がさびしいのでせめてファイル名を表示するように。
+
+ (conf/sample/)
+ npc_test_array.txt
+ 配列変数テストスクリプト
+ (map/)
+ script.c
+ buildin_set(),buildin_input(),get_val(),
+ parse_simpleexpr()修正
+ buildin_getelementofarray()追加
+ do_final_script()修正など
+ map.c
+ map_readmap(),map_readallmap()修正
+
+--------------------
+//0901 by ぴざまん
+
+・露店バグの修正
+
+ (map/)
+ pc.c
+ pc_cartitem_amount() 追加。
+ vending.c
+ vending_openvending() 修正。
+ clif.c
+ clif_parse_NpcClicked() 修正。
+ pc.h 修正。
+
+--------------------
+//0900 by ぴざまん
+
+・アブラカダブラのランダムスキル発動率をabra_db.txtで設定できるように。
+・スフィアーマインとバイオプラントの微修正。
+・Noreturnマップで蝶が消費だけされるバグ修正。
+・一部のアブラ固有スキルが正しく動作しなかったバグ修正。
+ (map/)
+ mob.c
+ mob_damage()、mobskill_use() 修正。
+ mob_skillid2skillidx() 追加。
+ skill.c
+ skill_readdb()、skill_abra_dataset() 修正。
+ skill_castend_nodamage_id()、skill_castend_pos2() 修正。
+ script.c
+ buildin_warp() 修正。
+
+ skill.h 修正。
+ map.h 修正。
+ (db/)
+ abra_db.txt 追加。
+ skill_db.txt 修正。
+
+--------------------
+//0899 by 胡蝶蘭
+
+・取り巻きMOBの処理修正
+ ・取り巻き召喚でコアを吐くバグ修正
+ ・主が別マップに飛ぶと、テレポートで追いかけるように修正
+ ・取り巻き処理をより軽く変更
+
+ (map/)
+ mob.c
+ mob_ai_sub_hard_mastersearch()をmob_ai_sub_hard_slavemob()
+ に名前を変えて処理修正。
+ mob_summonslave()修正
+
+--------------------
+//0898 by 胡蝶蘭
+
+・eathenaからCardRemoverNPCの取り込み
+ NPCデータも日本語訳してますが、かなり適当です。
+
+ (map/)
+ script.c
+ buildin_getequipcardcnt(),buildin_successremovecards()
+ buildin_failedremovecards()追加
+ (conf/sample/)
+ npc_card_remover.txt
+ カード取り外しNPCの日本語訳
+ プロンテラの精錬所の中の左下の部屋にいます
+
+・ポータルで別マップに飛ばしたMOBがそのマップに沸き直すバグ修正
+ (map/)
+ map.h
+ struct mob_dataにmメンバ追加
+ mob.c
+ mob_spawn(),mob_once_spawn()修正
+ npc.c
+ npc_parse_mob()修正
+
+
+--------------------
+//0897 by ぴざまん
+
+・細かい調整
+・ストリップ系とケミカルプロテクション系スキルの全実装
+ 本鯖での細かい仕様が分ったので実装しました。
+ 確率は暫定です。
+
+ (map/)
+ pc.c
+ pc_isequip() 修正
+ skill.c
+ skill_status_change_start()、skill_castend_nodamage_id() 修正。
+ skill_abra_dataset() 修正。
+ battle.c
+ battle_get_def()、battle_get_atk2() 修正。
+ battle_get_vit()、battle_get_int() 修正。
+ (db/)
+ const.txt 修正。
+ skill_db.txt 修正。
+ cast_db.txt 修正。
+
+--------------------
+//0896 by 胡蝶蘭
+
+・永続的マップ変数機能追加
+・マップ変数を文字列型変数としても使用できるようにした
+ ・今までのプレフィックス $ は永続的になります。
+ 一時的マップ変数を使用する場合はプレフィックス $@ を指定してください.
+
+ ・永続的/一時的ともに文字列型に対応しています。
+ 文字列型のポストフィックスは$です。
+
+ <例> $@hoge 数値型一時マップ変数、$hoge$ 文字列型永続マップ変数
+ ・永続マップ変数はデフォルトでは save/mapreg.txt に保存されます。
+ これはmap_athena.confのmapreg_txtで設定できます。
+
+・str_dataが再割り当てされるとマップ変数が正常に使用できないバグ修正
+ ・strdbからnumdbにして、変数名はstr_bufに入れるように。
+
+・map_athena.confのdelnpc,npc:clearが正しく働かないバグ修正
+
+ (map/)
+ npc.c
+ npc_delsrcfile(),npc_clearsrcfile()修正
+ script.c / script.h
+ マップ変数系かなり修正
+ map.c
+ map_read_config()修正など
+ (conf/)
+ map_athena.conf
+ mapreg_txt追加
+ (doc/)
+ conf_ref.txt
+ mapreg_txt,help_txt,motd_txt追加
+ script_ref.txt
+ 文字列型変数の説明修正
+
+--------------------
+//0895 by Selena
+
+・mapflagにnozenypenaltyを追加。
+ GVGや街中のテロなどで死亡した際に、Zenyペナルティー発生を外す用。
+
+ (map/)
+ pc.c
+ pc_setrestartvalue() 修正
+ script.c
+ buildin_setmapflag()、buildin_removemapflag() 修正
+ npc.c
+ npc_parse_mapflag() 修正
+ map.h
+ map_data() 修正
+ (db/)
+ const.txt 修正。
+
+--------------------
+//0894 by ぴざまん
+
+・コーマ以外のアブラカダブラ固有スキル全実装。
+ オートスペルにはレベルアップ以外多分全部乗せれます。(オートスペルレベルアップは未テスト)
+・アブラカダブラ仮実装
+ 発動スキルがレベル依存じゃありません。
+ 全ての発動率が理論上均一です。
+ アイテムスキルを使って実装しているので一部の使用条件を無視します(ジェム罠気球等)
+・アイテムスキルがキャスト・ディレイ無しだったのを修正。
+
+ (map/)
+ skill.c
+ skill_castend_nodamage_id()、skill_use_id()、skill_use_pos() 修正。
+ skill_abra_dataset() 追加。
+ (db/)
+ skill_db.txt 修正。
+
+--------------------
+//0893 by 胡蝶蘭
+
+・他マップからポータルの上にワープしてきたPCがワープしない問題を修正
+・チャット中のPCをワープポータルで飛ばすかどうか設定可能に
+・MOBをワープポータルで飛ばすかどうか設定可能に
+ MOBのワープポータルを許可すると、テロが簡単にできるので注意。
+
+・アカウント変数変更と同時にファイルに書き出すように修正
+・マップデータのロード部分のログ表示はあまり重要じゃないと思うので変更。
+
+ (char/)
+ inter.c
+ mapif_parse_AccReg()でinter_accreg_save()を呼ぶように修正
+ (map/)
+ mob.c/mob.h
+ mob_warp()の引数変更と修正
+ battle.c/battle.h
+ mob_warp()呼び出しの引数修正
+ battle_config関連
+ map.c
+ map_readallmap(),map_readmap()修正
+ pc.c
+ pc_setpos()修正
+ skill.c
+ mob_warp()呼び出しの引数修正
+ skill_unit_onplace()修正
+ (conf/)
+ battle_athena.conf
+ chat_warpportal,mob_warpportalの追加
+ (doc/)
+ conf_ref.txt
+ chat_warpportal,mob_warpportalの追加
+
+--------------------
+//0892 by 胡蝶蘭
+
+・各種confファイルで別ファイルをインポートできるようにした
+ ・自分のサーバー用の設定を別ファイルに記述できるようになります。
+ ・全て「import: ファイル名」形式で記述します。
+ ・各種confファイル(login,char,map,inter,atcommand,battle)の最後に
+ conf/import/*_conf を読むように指定したので、そこに自分用の設定を
+ 書いておけば、変更部分のみオーバーライドします。
+ msg,scriptのconfについては、この限りではありませんが、import命令の
+ 処理は追加されているので、自分でimport命令を書けば動きます。
+ ・新しいスナップショットが出た場合などに、このconf/importフォルダを
+ 昔のAthenaからコピーするだけで自分用の設定を適用できるようになります.
+
+・map_athena.confのmapとnpcで追加したファイルを削除できるようにした
+ ・上に関連する変更です。
+ ・delmap,delnpc命令を使用すれば、map,npc命令で追加したファイルを
+ 読み込まないように指定できます。ここでファイル名ではなく、
+ all と指定するとそれまでに指定されたファイルを全て読み込まなくします.
+ ・map,npc命令で、ファイル名にclearを指定すると、
+ delmap,delnpcのallと同等の動作をするようになりました。
+
+・login_athena.confのallowとdenyをクリアできるようにsた
+ ・allowおよびdeny命令でclearを指定すると以前のホスト情報を全削除します.
+
+ (conf/)
+ 各種confファイルの最後にimport命令追加
+ (conf/import)
+ *.txt
+ インポートされるファイル。これらに自分用の設定を書くとよい。
+ (login/)
+ login.c
+ login_read_config()修正
+ (char/)
+ char.c/inter.c
+ char_read_config(),inter_read_config()修正
+ (map/)
+ map.c
+ map_read_config(),map_addmap()修正、map_delmap()追加
+ npc.c
+ npc_addsrcfile()修正,npc_delsrcfile(),npc_clearsrcfile()追加
+ battle.c/atcommand.c/script.c
+ battle_read_config(),atcommand_read_config(),
+ msg_read_config(),script_read_config()修正
+ (doc/)
+ conf_ref.txt
+ 修正
+
+--------------------
+//0891 by (凸)
+
+・「スキル使用の後は、しばらくお待ちください」を表示するかどうか設定できるようにした。
+ ・本鯖相違スレッド 其のU>>5さんのコードをパクリました。
+ (doc/)
+ conf_ref.txt 修正。
+ (conf/)
+ battle_athena.conf 修正。
+ (map/)
+ battle.h 修正。
+ battle.c
+ battle_config_read() 修正。
+ clif.c
+ clif_skill_fail() 修正。
+
+--------------------
+//0890 by 死神
+
+・ギルド倉庫を一度に一人だけが使用するように変更。(未テスト)
+・battle_athena.confからplayer_undead_nofreeze 削除。
+・@コマンド@gstorage 追加。
+・スクリプトguildstorageをguildopenstorageに変更。
+・その他細かいバグ修正。
+ (doc/)
+ conf_ref.txt 修正。
+ script_ref.txt 修正。
+ (conf/)
+ atcommand_athena.conf 修正。
+ battle_athena.conf 修正。
+ help.txt 修正。
+ (conf/sample/)
+ gstorage_test.txt 追加。
+ (char/)
+ makefile 修正。
+ int_storage.h 修正。
+ int_storage.c
+ inter_storage_delete()、inter_guild_storage_delete() 追加。
+ int_guild.c
+ guild_check_empty()、mapif_parse_BreakGuild() 修正。
+ (map/)
+ makefile 修正。
+ battle.h 修正。
+ battle.c
+ battle_config_read() 修正。
+ guild.c
+ guild_broken() 修正。
+ storage.h 修正。
+ storage.c
+ storage_guild_storageopen() 修正。
+ storage_delete()、guild_storage_delete() 追加。
+ script.c
+ buildin_guildstorage() を buildin_guildopenstorage()に変更。
+ intif.c
+ intif_parse_LoadGuildStorage() 修正。
+ mob.c
+ mob_summonslave()、mob_damage()、mob_delete() 修正。
+ mob_catch_delete()、mob_readdb() 修正。
+ skill.c
+ skill_castend_nodamage_id()、skill_status_change_start() 修正。
+ clif.c
+ clif_parse_ActionRequest() 修正。
+ atcommand.h 修正。
+ atcommand.c
+ atcommand() 修正。
+
+--------------------
+//0889 by 胡蝶蘭
+
+・文字列型一時的キャラクター変数機能追加。
+ ・プレフィックス@,ポストフィックス$を使用します。(@hoge$など)
+ ・inputで文字列変数を指定すると文字列入力になります。
+ ・関係演算子(比較演算子)で文字列どうしを指定すると文字列の比較が
+ できます。数値と文字列を混ぜて比較することはできません。
+ ・とりあえずサンプル付けてます。
+
+ (map/)
+ map.h
+ struct map_session_dataにnpc_str,regstr,regstr_numメンバ追加
+ script.c
+ buildin_set(),get_val(),buildin_input(),op_2num()など修正
+ op_2str(),op_2()追加
+ clif.c / clif.h
+ 01d5パケット長修正
+ clif_parse_NpcStringInput(),clif_scriptinputstr()追加
+ pc.c / pc.h
+ pc_readregstr(),pc_setregstr()追加
+ (doc/)
+ script_ref.txt
+ 演算子の説明追加、変数の説明修正、input,menu修正
+ (conf/sample/)
+ npc_test_str.txt
+ 文字列変数を使用したスクリプトの例。
+ 文字列の代入、結合、比較、入力などのテストを行うもの。
+
+--------------------
+//0888 by 死神
+
+・設計から間違っていたギルド倉庫修正。(ただ複数人の使用によるバグがある可能性はまだあります。)
+・細かいバグ修正。
+ (doc/)
+ inter_server_packet.txt 修正。
+ conf_ref.txt 修正。
+ (conf/)
+ inter_athena.conf 修正。
+ help.txt 修正。
+ (common/)
+ mmo.h 修正。
+ (char/)
+ makefile 修正。
+ int_storage.h 修正。
+ int_storage.c
+ account2storage()、inter_storage_init()、storage_fromstr() 修正。
+ inter_storage_save()、mapif_load_storage() 修正。
+ mapif_parse_SaveStorage() 修正。
+ guild_storage_fromstr()、guild_storage_tostr() 追加。
+ inter_storage_save_sub()、inter_guild_storage_save_sub() 追加。
+ inter_guild_storage_save()、mapif_parse_LoadGuildStorage() 追加。
+ mapif_parse_SaveGuildStorage()、mapif_load_guild_storage() 追加。
+ mapif_save_guild_storage_ack()、guild2storage() 追加。
+ int_party.c
+ inter_party_init() 修正。
+ int_guild.h 修正。
+ int_guild.c
+ inter_guild_init() 修正。
+ inter_guild_search() 追加。
+ int_pet.c
+ inter_pet_init() 修正。
+ inter.c
+ inter_init()、inter_save()、inter_config_read() 修正。
+ (map/)
+ makefile 修正。
+ map.h 修正。
+ map.c
+ map_quit()、do_init() 修正。
+ pc.c
+ pc_setpos() 修正。
+ storage.h 修正。
+ storage.c
+ do_init_storage()、do_final_storage()、account2storage() 修正。
+ storage_storageopen()、storage_storageadd()、storage_storageget() 修正。
+ storage_storageaddfromcart()、storage_storagegettocart() 修正。
+ storage_storageclose()、storage_storage_quit() 修正。
+ storage_storage_save() 修正。
+ guild2storage()、storage_guild_storageopen() 追加。
+ guild_storage_additem() 、guild_storage_delitem() 追加。
+ storage_guild_storageadd()、storage_guild_storageget() 追加。
+ storage_guild_storageaddfromcart()、storage_guild_storagegettocart() 追加。
+ storage_guild_storageclose()、storage_guild_storage_quit() 追加。
+ intif.h 修正。
+ intif.c
+ intif_send_storage()、intif_parse_LoadStorage()、intif_parse() 修正。
+ intif_request_guild_storage()、intif_send_guild_storage() 追加。
+ intif_parse_SaveGuildStorage()、intif_parse_LoadGuildStorage() 追加。
+ clif.h 修正。
+ clif.c
+ clif_additem()、clif_parse_MoveToKafra() 修正。
+ clif_parse_MoveFromKafra()、clif_parse_MoveToKafraFromCart() 修正。
+ clif_parse_MoveFromKafraToCart()、clif_parse_CloseKafra() 修正。
+ clif_parse_LoadEndAck() 修正。
+ clif_guildstorageitemlist()、clif_guildstorageequiplist() 追加。
+ clif_updateguildstorageamount()、clif_guildstorageitemadded() 追加。
+ guild.c
+ guild_broken() 修正。
+ script.c
+ buildin_openstorage()、buildin_guildstorage() 修正。
+ skill.c
+ skill_castend_nodamage_id() 修正。
+ mob.c
+ mob_summonslave()、mob_damage() 修正。
+ atcommand.c
+ atkillmonster_sub()、atcommand() 修正。
+
+--------------------
+//0887 by 獅子o^.^o
+
+・(db/)
+ skill_tree.txt 修正
+
+--------------------
+//0886 by ぴざまん
+
+・サーバーsnapshot
+・ファイル調整
+
+--------------------
+//0885 by huge
+
+・ギルド共有倉庫の実装。guildstorageで開けます。
+ 自分の鯖で実験はしてみましたが、過疎地なので多人数ギルドになるとどう動くか分かりません。
+ (念のためバックアップは必ず取っておいて下さい)
+・areawarpで、対象マップ名を"Random"にすると、同マップ内でランダムに飛ぶように修正。
+・GMコマンドで生き返したときにSPも全回復するように修正。
+・ディボーションの条件をちょっと修正。
+
+ (char/)
+ int_storage.c
+ mapif_load_storage() 修正。
+ mapif_parse_SaveStorage() 修正。
+ inter.c
+ inter_send_packet_length[] 修正。
+ inter_recv_packet_length[] 修正。
+ (map/)
+ atcommand.c
+ @alive,@raise,@raisemap 修正。
+ intif.c
+ packet_len_table[] 修正。
+ intif_request_storage() 修正。
+ intif_send_storage() 修正。
+ intif_parse_LoadStorage() 修正。
+
+ map.h
+ map_session_data stateにstorage_flag 追加。
+ script.c
+ buildin_areawarp_sub() 修正。
+ buildin_openstorage() 修正。
+ buildin_guildstorage() 追加。
+ skill.c
+ skill_castend_nodamage_id() 修正。
+ storage.c
+ account2storage() 修正。
+ storage_storageopen() 修正。
+ storage_storage_save() 修正。
+
+--------------------
+//0884 by 死神
+
+・細かいバグ修正。
+・battle_athena.confにpet_str、zeny_penalty、resurrection_exp 追加。
+・0878の銀行関係のコードはもういらないので全て削除。
+・zeny_penaltyを設定して使う場合は手数料はなくした方がいいかも。
+・ポーションピッチャーでpercenthealにもPPとLPによる回復ボーナスが付くように変更。(ただvitやint、HPR、MPRによる回復ボーナスが付きません。)
+・ほとんど未テスト。
+ (common/)
+ mmo.h 修正。
+ (conf/)
+ battle_athena.conf 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ (map/)
+ map.c
+ do_init()、do_final() 修正。
+ script.c
+ buildin_openbank() 削除。
+ buildin_failedrefitem() 修正。
+ storage.h 修正。
+ storage.c
+ do_init_bank()、do_final_bank()、account2bank() 削除。
+ storage_bank()、storage_readbank() 削除。
+ skill.c
+ skill_castend_nodamage_id()、skill_attack() 修正。
+ battle.h 修正。
+ battle.c
+ battle_calc_pet_weapon_attack()、battle_config_read() 修正。
+ pc.c
+ pc_setrestartvalue() 修正。
+ clif.c
+ clif_skill_nodamage()、clif_refine() 修正。
+ itemdb.c
+ itemdb_isequip3() 修正。
+ atcommand.c
+ atcommand() 修正。
+
+--------------------
+//0883 by Kalen
+
+・Warp色々修正
+ ・アサシンギルド周り修正(昔のままのリンクだったので現在の状態に修正。)
+ ・YunoのWarp全面見直し(YumilLoop修正、SageCastleRandomWarp追加、女医さんの家追加)
+ ・モンクギルド周り追加
+・NPC色々修正
+ ・帽子作成NPCを別ファイルへ。一部追加(ep2.5追加分)
+ 参考Data(R.O.M776): ttp://green.sakura.ne.jp/~youc/ro/data/itemmaking.html#04
+ ・アサシンギルド修正
+ ・二次職転職関係NPC一部追加(これでコモド小劇場へ行けます)
+ ・マスターアルケミストの台詞修正
+ ・アルデバランの案内要員を移動&台詞修正&イメージ追加
+ ・BBSにあがっていたコモドスクリプト追加(event_hat等へ分散)
+ ・コンロンクエスト関係NPC一部追加(女医[yuno]、ネル[prontera])
+ (conf/warp/)
+ npc_warp.txt
+ npc_warp30.txt
+ npc_warp_job.txt
+ (conf/npc/)
+ npc_event_hat.txt(新規)
+ 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 胡蝶蘭
+
+・スクリプトに0881相当のアカウント共有変数機能のプレフィックス変更
+ ・0881のアカウント変数はプレフィックス##になりました。
+ ・0881のアカウント変数は全ワールドで共有されます。
+ ・変数の個数はmmo.hのACCOUNT_REG2_NUMで定義されています(16)。
+・ワールド内のアカウント共有変数機能追加
+ ・変数名のプレフィックスは#です。
+ ・変数の個数はmmo.hのACCOUNT_REG_NUMで定義されています(16)。
+ ・0881の銀行スクリプトはこちらを使用するようになります。
+ よって以前のデータがつかえないのであらかじめ引き出しておいてください.
+ ・変数データは save/accreg.txt に保存されます。
+ このファイル名は inter_athena.conf で変更可能です。conf_ref.txt参照。
+
+ (common/)
+ mmo.h
+ ACCOUNT_REG_NUMを16に、ACCOUNT_REG_NUM2追加
+ struct mmo_charstatusにaccount_reg2_num,account_reg2メンバ追加
+ (login/)
+ login.c
+ account_regを全てaccount_reg2に置き換え
+ (char/)
+ char.c
+ account_regを全てaccount_reg2に置き換え
+ inter.c
+ ワールド内アカウント変数機能追加。
+ inter_accreg*()追加、accreg_db追加など。
+ (map/)
+ chrif.c/chrif.h
+ account_regを全てaccount_reg2に置き換え
+ 0881でのバグを修正
+ intif.c/intif.h
+ ワールド内アカウント変数機能追加。
+ pc.c/pc.h
+ pc_*accountreg()=>pc_*accountreg2()に。
+ pc_setaccountreg(),pc_readaccountreg()追加。
+ script.c
+ buildin_set(),buildin_get_val(),buildin_input()修正
+ (doc/)
+ inter_server_packet.txt
+ ワールド内アカウント変数関係
+ conf_ref.txt
+ accreg_txt追加
+
+--------------------
+//0881 by 胡蝶蘭
+
+・スクリプトにアカウント共有変数機能追加
+ ・変数名にプレフィックス#を付けることでアカウント共有変数になります。
+ ・アカウント変数は変更した時点で全サーバーにポストされるので
+ 頻繁に書き換えるとサーバー間通信が肥大化します。
+ ・アカウント変数は変更した時点(そしてそれがlogin鯖に届いた時点)で
+ account.txtに書き出されます。
+ ・グローバル変数(永続変数)の個数を96に減らし、減った32個分を
+ アカウント変数にしていますが、mmo_charstatusのサイズが
+ 16000byteを超えない限り増やすことができます。<0879の変更を参照
+ 変数の個数はmmo.hのACCOUNT_REG_NUMで定義されています。
+ ・0878の銀行をアカウント変数を使用するように修正
+ bank.txtのデータが使えなくなるのであらかじめ引き出しておいて下さい。
+
+ (common/)
+ mmo.h
+ GLOBAL_REG_NUMを96に、ACCOUNT_REG_NUMを追加
+ struct mmo_charstatusにaccount_reg_num,account_regメンバ追加
+ (login/)
+ login.c
+ パケット2728処理追加
+ (char/)
+ char.c
+ パケット2729,2b10処理追加
+ (map/)
+ chrif.c
+ chrif_saveaccountreg(),chrif_accountreg()
+ (パケット2b10,2b11処理)追加。
+ pc.c/pc.h
+ pc_readaccountreg(),pc_setaccountreg()追加
+ script.c
+ buildin_set(),buildin_get_val(),buildin_input()修正
+ (conf/sample/)
+ bank_test.txt
+ アカウント変数使用版の銀行スクリプト
+
+--------------------
+//0880 by 死神
+
+・ポーションピッチャーを正しく実装とちょっと機能拡張。
+・ポーションピッチャーでレベル別に使えるアイテムをskill_require_db.txtに設定できるようにしました。ただポーションピッチャーで使えるアイテムはitemheal、percentheal、sc_start、sc_end以外の物が入っていると正しく動作しません。
+レベル5までは本鯖に合わせていますが最大レベルを10まで拡張するとレベル6 - マステラの実、7 - ローヤルゼリー、8 - イグドラシルの種、9 - イグドラシルの実、10 - バーサークポーションに設定しています。skill_db.txtを修正すればこれが有効になります。(どこを修正するかもわからない人は諦めることです。) ポーションピッチャーによるアイテム使用は使用条件を無視します。少しはアルケミストに希望ができたかも...(多分無理...)
+・battle_athane.confにproduce_item_name_input、produce_potion_name_input、making_arrow_name_input、holywater_name_input 追加。
+・パーティ員にだけ使うスキルとギルド員にだけ使うスキルを設定できるように修正。
+・その他細かい修正。
+ (conf/)
+ battle_athane.conf 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ db_ref.txt 修正。
+ (db/)
+ skill_db.txt 修正。
+ skill_require_db.txt 修正。
+ (map/)
+ map.h 修正。
+ skill.h 修正。
+ skill.c
+ skill_status_change_timer()、skill_attack()、skill_use_id() 修正。
+ skill_castend_nodamage_id()、skill_castend_damage_id() 修正。
+ skill_castend_id()、skill_castend_pos()、skill_produce_mix() 修正。
+ skill_arrow_create()、skill_check_condition() 修正。
+ skill_status_change_clear()、skill_readdb() 修正。
+ mob.c
+ mobskill_use_id()、mob_changestate() 修正。
+ pc.c
+ pc_itemheal()、pc_percentheal()、pc_calcstatus() 修正。
+ battle.h 修正。
+ battle.c
+ battle_delay_damage()、battle_damage()、battle_heal() 修正。
+ battle_get_adelay()、battle_get_amotion() 修正。
+ battle_calc_mob_weapon_attack()、battle_calc_pc_weapon_attack() 修正。
+ battle_weapon_attack()、battle_config_read() 修正。
+ clif.c
+ clif_skill_fail() 修正。
+ script.c
+ buildin_sc_start()、buildin_sc_end() 修正。
+ makefile 修正。
+
+--------------------
+//0879 by 胡蝶蘭
+
+・送信FIFOのバッファオーバーフローの脆弱性の修正
+ ・2048バイト以上のパケットを送るとき、FIFOが満杯に近ければ
+ バッファオーバーフローによる不正アクセスが起こっていた問題修正。
+ ・FIFOが満杯に近いときWFIFOSETされたパケットが捨てられていた問題修正。
+ ・FIFOがオーバーフローする場合、自動的にFIFOを拡張するようにした。
+ (ただし、一度にWFIFOSETするパケットが16384バイト以下と仮定している)
+ ・「socket: ? wdata expanded to ???? bytes」はFIFOが拡張されたときに
+ でるログだが、エラーではなく、パケットは正しく送信される。
+ ・「socket: ? wdata lost !!」はパケットが喪失したことを表すログで、
+ エラーであるが64KBを超える超巨大なパケットをWFIFOSETしないと出ない。
+ ・16384バイトを超えるパケットをWFIFOSETするとエラーメッセージなしに、
+ 不正アクセスが起こる可能性があるので、超えないようにすること。
+
+ (common/)
+ socket.c /socket.h
+ WFIFOSET()をマクロから関数に変更
+ realloc_fifo()追加
+
+・サーバー間通信FIFOのバッファサイズを大きくした
+ ・大量のデータが通信されたときにデータ処理遅延が起きにくくするため。
+ ・メモリ使用量が増えた。(ぎりぎりの人は65536に設定すると元通りになる)
+ ・サーバー間通信のFIFOサイズは mmo.h で定義されている。
+ 変更する場合は64KB(65536)以上の値にすること。
+ 大きくすると巨大データ受信時の遅延が減るがメモリを多く使う。
+ ・@kickall時などにデータ送信が激しくなるので変更したが、
+ 同時ログイン人数が少ないと増やしても意味は無い。
+
+ (common/)
+ mmo.h
+ FIFOSIZE_SERVERLINKマクロ追加。
+ (login/)
+ login.c
+ 2710パケットでrealloc_fifo()を呼ぶように
+ (char/)
+ char.c
+ 2af8パケットでrealloc_fifo()を呼ぶように
+ check_connect_login_server()でrealloc_fifo()を呼ぶように
+ (map/)
+ chrif.c
+ check_connect_char_server()でrealloc_fifo()を呼ぶように
+
+--------------------
+//0878 by huge
+
+・カプラ銀行サービス。
+ 自分の鯖で実装してたんですが、意外と好感触だったので出してみます。
+ NPCscriptで、openbank(0);で預金額を返して、中に数字を入れると出し入れします。
+ 詳しくはサンプルを同封したので、それを参照。
+
+ (common/)
+ mmo.h
+ struct bank 追加。
+ (map/)
+ map.c
+ do_final(),do_init() 修正。
+ script.c
+ buildin_openbank() 追加。
+ storage.c
+ storage.h
+ グローバル変数追加。
+ do_init_bank(),do_final_bank(),account2bank() 追加。
+ storage_bank(),storage_readbank() 追加。
+
+--------------------
+//0877 by 胡蝶蘭
+
+・login鯖のアクセスコントロールがネットマスク表記に対応
+ 192.168.0.0/24 や 192.168.0.0/255.255.0.0 といった表記に対応。
+・battle_athena.confにGMが無条件で装備品を装備できる&
+ 無条件でスキルを使用できる設定追加
+ これらはデバグ用なので動作に不都合があるかもしれません。
+
+ (login/)
+ login.c
+ check_ip()修正,check_ipmask()追加
+ (map/)
+ battle.c/battle.h
+ battle_configにgm_allequip,gm_skilluncond追加
+ battle_config_read()修正更
+ skill.c
+ skill_check_conditio()修正
+ pc.c
+ pc_isequp()修正
+ (doc/)
+ conf_ref.txt
+ allow変更、gm_all_equipment、gm_skill_unconditional追加
+
+--------------------
+//0876 by 死神
+
+・細かいバグ修正。
+・@コマンドにテストの為に入れていた物が入っていたので修正。
+・ハンマーフォールの射程を5から4に修正(本鯖射程は不明)とリザレクションが無属性だったのを聖属性に修正。
+ (db/)
+ skill_db.txt 修正。
+ (map/)
+ mob.c
+ mob_catch_delete()、mob_stop_walking() 修正。
+ storage.c
+ storage_additem() 修正。
+ pc.c
+ pc_damage()、pc_stop_walking() 修正。
+ clif.c
+ clif_parse_UseSkillToId()、clif_parse_UseSkillToPos() 修正。
+ battle.c
+ battle_calc_magic_attack() 修正。
+ skill.c
+ skill_check_condition() 修正。
+ atcommand.c 修正。
+
+--------------------
+//0875 by 胡蝶蘭
+
+・party_share_levelをinter_athena.confに移した
+ (パーティ関連の処理の管轄がinter鯖のため)
+・inter_athena.confにinter_log_file項目追加
+・ギルド作成/解散/城占領/城破棄がログに残るように
+・ギルド解散時にメモリリークしていた問題を修正
+ (char/)
+ char.c/char.h
+ party_share_level関連
+ (inter/)
+ inter.c/inter.h
+ party_share_level / inter_log_file 関連
+ ログ出力用にinter_log()追加
+ int_guild.c
+ 作成/解散/城占領/城破棄をログに出力
+ メモリリーク修正
+ (doc/)
+ conf_ref.txt
+ 修正
+
+・サーバー状態確認用CGIスクリプト添付など
+ ・自己責任&詳細な解説無し、質問されてもスルーする可能性有り
+ ・エディタで開いたら少し説明有り
+ ・CGI設置の基本さえわかれば問題ないはず
+
+ (tool/cgi/)
+ serverstatus.cgi
+ サーバー状態確認用CGIスクリプト
+ addaccount.cgi
+ 説明修正
+
+--------------------
+//0874 by Kalen
+・WhiteDayイベント追加
+ conf/npc/npc_event_whiteday.txt(新規)
+ ただ、お菓子売ってるだけみたい…GMがなにやるのかは知りませんが。
+ sakROのほうではホワイトチョコらしきものが追加されたのに
+ jROで追加されたのは雛壇撤去パッチのみ(*´д`;)…
+
+・Alchemistギルドで乳鉢、製造書を変えるように
+ conf/npc/npc_job_alchemist.txt(新規)
+ 転職クエストが分からなかったので温めていましたが
+ 買えないと不便と聞いたので、追加
+
+・染色NPC実装
+ conf/npc/npc_event_dye.txt(更新)
+ 髪型変更がsakROに来たらしいので
+ なんとなーく更新
+
+--------------------
+//0873 by 死神
+
+・@コマンドitem2とkillmonster 追加。
+・スクリプトgetitem2とkillmonsterall 追加。
+・矢作成で作られた矢も製造者の名前が付くように修正。
+・battle_athena.confにmonster_class_change_full_recover追加。
+・装備スクリプトにbWeaponComaEleとbWeaponComaRace 追加。
+・少し間違いがあったダメージ計算式修正。
+・bInfiniteEndureの処理をインデュア表示なしで内部処理するように変更。
+・オートスペルでcastend_nodamage_id()を呼ぶスキルも使用できるように修正。
+・その他細かい修正とバグ修正。
+・ほとんど未テストなのでバグがあったら報告お願いします。
+ (conf/)
+ help.txt 修正。
+ atcommand_athena.conf 修正。
+ battle_athena.conf 修正。
+ char_athena.conf 修正。
+ (db/)
+ const.txt 修正。
+ item_db.txt 修正。
+ (doc/)
+ item_bonus.txt 修正。
+ script_ref.txt 修正。
+ conf_ref.txt 修正。
+ (map/)
+ map.h 修正。
+ map.c
+ map_quit() 修正。
+ skill.h 修正。
+ skill.c
+ skill_castend_nodamage_id()、skill_status_change_clear() 修正。
+ skill_castend_id()、skill_castend_pos()、skill_arrow_create() 修正。
+ skill_status_change_timer() 修正。
+ pc.c
+ pc_calcstatus()、pc_bonus2()、pc_equipitem() 修正。
+ pc_unequipitem()、pc_damage() 修正。
+ battle.h 修正。
+ battle.c
+ battle_get_dmotion()、battle_weapon_attack() 修正。
+ battle_calc_mob_weapon_attack()、battle_calc_pc_weapon_attack() 修正。
+ battle_calc_magic_attack()、battle_config_read() 修正。
+ clif.c
+ clif_parse_LoadEndAck()、clif_damage()、clif_skill_damage() 修正。
+ clif_skill_damage2() 修正。
+ itemdb.h 修正。
+ itemdb.c
+ itemdb_isequip3() 追加。
+ mob.h 修正。
+ mob.c
+ mob_delay_item_drop()、mob_damage()、mob_changestate() 修正。
+ mob_class_change()、mob_delete()、mob_catch_delete() 修正。
+ script.c
+ buildin_getitem() 修正。
+ buildin_killmonsterall_sub()、buildin_killmonsterall() 追加。
+ atcommand.h 修正。
+ atcommand.c
+ atcommand() 修正。
+ atkillmonster_sub() 追加。
+
+--------------------
+//0872 by ElFinLazz
+
+・スキルポーションピッチャー修正
+・スキルギムソバングドンボルオッネ具現
+・スキルアブラカダブなら義コーマ具現
+・コーマの武器オプション追加(種族, 千分率)
+・オプション説明追加
+ (db/)
+ const.txt 修正.
+ (doc/)
+ item_bonus.txt 修正.
+ (map/)
+ map.h 修正.
+ skill.c
+ skill_castend_nodamage_id(), skill_unit_group(), skill_status_change_start() 修正.
+ pc.c
+ pc_calcstatus(), pc_bonus2(), pc_gainexp() 修正.
+ battle.c
+ battle_weapon_attack() 修正.
+
+--------------------
+//0871 by 死神
+
+・0869のバグ修正。
+・char_athena.confとlogin_athena.confに項目追加。(キャラ鯖とログイン鯖のログファイルを変えることができるようにしました。デフォルトでlog/フォルダーに入るのでlogフォルダーを作る必要があります。)
+・エナジーコートの処理を少し修正。モンスターが使った場合はスキルレベル*6%の物理ダメージを減らすように変更。
+・武器以外の物でも製造者の名前を表示するように変更。(本鯖ではプレゼントボックスと手作りチョコレット以外は表示されませんがパケットはあることだし入れてみました。)
+・その他スキル関係の細かい修正。
+・@コマンド一つとスクリプト一つを追加しましたが説明は後のパッチで書きます。
+ (conf/)
+ char_athena.conf 修正。
+ login_athena.conf 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ (login/)
+ login.c
+ parse_login()、login_config_read()、login_log() 修正。
+ (char/)
+ char.h 修正。
+ char.c
+ char_config_read()、make_new_char()、parse_char() 修正。
+ int_party.c 修正。
+ int_storage.c 修正。
+ int_guild.c 修正。
+ int_pet.c 修正。
+ (map/)
+ map.h 修正。
+ skill.c
+ skill_status_change_start()、skill_additional_effect() 修正。
+ skill_castend_nodamage_id()、skill_check_condition() 修正。
+ skill_status_change_clear()、skill_produce_mix() 修正。
+ skill_status_change_timer() 修正。
+ pc.c
+ pc_calcstatus()、pc_insert_card()、pc_additem()、pc_cart_additem() 修正。
+ storage.c
+ storage_additem() 修正。
+ battle.c
+ battle_get_adelay()、battle_get_amotion()、battle_calc_damage() 修正。
+ clif.c
+ clif_additem()、clif_equiplist()、clif_storageequiplist() 修正。
+ clif_tradeadditem()、clif_storageitemadded()、clif_use_card() 修正。
+ clif_cart_additem()、clif_cart_equiplist()、clif_vendinglist() 修正。
+ clif_openvending()、clif_arrow_create_list() 修正。
+ clif_skill_produce_mix_list()、clif_parse_SelectArrow() 修正。
+ clif_parse_ProduceMix() 修正。
+ script.c
+ buildin_produce() 修正。
+ buildin_getitem2() 追加。
+ atcommand.c
+ atcommand() 修正。
+
+--------------------
+//0870 by shuto
+
+・mapflagの攻城戦MAPにnomemo追加
+・ギルド宝箱で、宝箱出現と同時にMAP鯖が落ちる問題修正(by ぴざまん)
+
+--------------------
+//0869 by 死神
+
+・battle_athena.confにplayer_land_skill_limit、monster_land_skill_limit、party_skill_penaly 追加。
+・char_athena.confにparty_share_level 追加。
+・その他細かい修正。
+ (conf/)
+ char_athena.conf 修正。
+ battle_athena.conf 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ (char/)
+ char.h 修正。
+ char.c
+ char_config_read() 修正。
+ int_party.c
+ party_check_exp_share() 修正。
+ (map/)
+ map.h 修正。
+ skill.c
+ skill_attack()、skill_castend_damage_id() 修正。
+ skill_castend_nodamage_id()、skill_status_change_start() 修正。
+ skill_castend_pos() 修正。
+ pc.c
+ pc_calcstatus() 修正。
+ mob.c
+ mobskill_castend_pos() 修正。
+ battle.h
+ battle.c
+ battle_get_adelay()、battle_get_amotion()、battle_calc_damage() 修正。
+ battle_config_read() 修正。
+ pet.c
+ pet_data_init() 修正。
+
+--------------------
+//0868 by 死神
+
+・マジックロッド実装とスペルブレイカー修正。
+・マジックロッドの場合本鯖で使ってもなんの表示もなく発動の前には使ったかどうかの確認ができないのでスキル詠唱パケット(0x13e)を利用して使用する時スキル名が出るようにしています。(本鯖と違うぞとかで文句がこないように)
+・スペルブレイカー詠唱キャンセルに関係なくskill_db.txtに設定されてるskill_typeがmagicのスキルのみ破ることができます。(ラグナゲートの説明を適用)
+・skill_db.txtの書式が変わったので注意してください。ノックバック距離の設定もできますが念の為にいっておきますがA鯖でのテストでFWのノックバック距離は2でサンクも2であることを確認しています。韓国の2003年11月19日パッチ前の鯖ではありますが2-2は適用されている所なので本鯖の違いはないと思います。
+・その他スキル関係の細かい修正。
+・0867で書き忘れ。モンスターのヒールでアンデッドモンスターが攻撃されて自滅するのでヒールやリザの場合mob_skill_db.txtのval1(値1)に1を入れるとアンデッドモンスターも攻撃を受けず回復するようになります。本鯖ではモンスターのヒールはアンデッドに関係なく回復するようです。ただ個人的にはゾンビがヒールして自滅する方が正しいと思うのでmob_skill_db.txtで設定できるようにしております。
+ (doc/)
+ db_ref.txt 修正。
+ (db/)
+ cast_db.txt 修正。
+ skill_db.txt 修正。
+ (map/)
+ skill.h 修正。
+ skill.c
+ skill_status_change_start()、skill_status_change_end() 修正。
+ skill_castend_damage_id()、skill_castend_nodamage_id() 修正。
+ skill_attack()、skill_status_change_timer()、skill_castcancel() 修正。
+ skill_unit_onplace()、skill_use_id()、skill_castend_id() 修正。
+ skill_readdb() 修正。
+ skill_get_blewcount() 追加。
+ mob.c
+ mobskill_use_id()、mob_spawn()、mob_attack() 修正。
+ battle.c
+ battle_calc_pet_weapon_attack()、battle_calc_mob_weapon_attack() 修正。
+ battle_calc_pc_weapon_attack()、battle_calc_magic_attack() 修正。
+ battle_calc_misc_attack()、battle_weapon_attack() 修正。
+ clif.c
+ clif_damage() 修正。
+ pet.c
+ pet_attack() 修正。
+ pc.c
+ pc_attack_timer()、pc_authok() 修正。
+ pc_spirit_heal()、pc_natural_heal_sub() 修正。
+
+--------------------
+//0867 by 死神
+
+・スキル関係の細かい修正。
+・battle_athena.confにplayer_undead_nofreeze追加。
+・新しいアイテムパケットに対応。(PACKETVERを5以上にする必要があります。)
+・mob_avail.txtでプレイヤーの姿を指定した時ペコペコや鷹を付けることができるように変更。頭下段次にオプションを設定できます。(ただハイディングとクローキングは指定できないようになっています。)
+ makefile 修正。
+ (conf/)
+ battle_athena.conf 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ client_packet.txt 修正。
+ (map/)
+ battle.h 修正。
+ battle.c
+ battle_calc_pet_weapon_attack()、battle_calc_mob_weapon_attack() 修正。
+ battle_calc_pc_weapon_attack()、battle_config_read() 修正。
+ clif.c
+ clif_mob_class_change()、clif_spawnmob()、clif_spawnpet() 修正。
+ clif_damage()、clif_skill_damage()、clif_skill_damage2() 修正。
+ clif_itemlist()、clif_cart_itemlist()、clif_storageitemlist() 修正。
+ clif_mob0078()、clif_mob007b()、clif_pet0078()、clif_pet007b() 修正。
+ pc.c
+ pc_attack_timer() 修正。
+ skill.c
+ skill_castend_nodamage_id()、skill_additional_effect() 修正。
+ skill_status_change_start() 修正。
+ mob.h 修正。
+ mob.c
+ mobskill_castend_id()、mob_getfriendstatus_sub() 修正。
+ mob_readdb_mobavail() 修正。
+
+--------------------
+//0866 by ぴざまん
+
+・MOTDのメッセージを全て編集できるように変更。
+・クローンスキル実装。
+ ドル服のヒールアタックによるヒール習得は未テストです。
+・ギルド宝箱仮実装。
+ ヴァルキリー1のみです。
+ 商業投資による宝箱個数の算出式は適当です(初期個数4個としか知らないので)。
+ Onclockイベントで動作させています。任意の時刻に変更してください。
+・AthenaDB計画のmob_db.txtとmapflag.txtを入れておきました。
+
+ (map/)
+ pc.c
+ pc_makesavestatus()、pc_calc_skilltree() 修正。
+ pc_allskillup()、pc_calc_skillpoint() 修正。
+ pc_resetskill()、pc_authok() 修正。
+ skill.c
+ skill_attack() 修正。
+ map.h 修正。
+ (conf/)
+ gvg/TEST_prtg_cas01_AbraiJ.txt 修正。
+ motd.txt 修正。
+ mapflag.txt 修正。
+ (db/)
+ mob_db.txt 修正。
+
+--------------------
+//0865 by ぴざまん
+
+・自分が占領しているアジトのエンペリウムを攻撃できたバグ修正。
+・アブライが占領ギルドメンバー全員をマスターとみなしていたバグ修正。
+ この修正に伴ってスクリプトリファレンスに改変があります。
+ ・getcharid(0)で、自分のcharIDを返すように。
+ ・getguildmasterid(<n>)追加。
+ <n>=ギルドID
+ 該当ギルドのマスターのcharIDを返します。
+
+ (map/)
+ guild.c
+ guild_mapname2gc() 追加。
+ battle.c
+ battle_calc_damage() 修正。
+ script.c
+ buildin_getcharid() 修正。
+ buildin_getguildmasterid() 追加。
+ ローカルプロトタイプ宣言の一部を修正、追加。
+ guild.h 修正。
+
+--------------------
+//0864 by 胡蝶蘭
+
+・inter鯖のwisの処理変更
+ ・自前リンクリストからdb.hで提供されているデータベースを使用するように
+ ・WISのIDを16ビットから32ビットに増やした(パケットも修正)
+ ・メッセージのサイズチェックを入れた
+ ・パケットスキップが二回行われる可能性があるバグ修正
+
+ (char/)
+ inter.c
+ wis関係大幅変更
+ (map/)
+ intif.c
+ wis関係の修正。主にパケット処理。
+ (doc/)
+ inter_server_packet.txt
+ パケット3002,3801を変更
+
+--------------------
+//0863 by 死神
+
+・細かい修正。
+・battle_athena.confにplayer_attack_direction_change追加。
+・mob_skill_db.txtを修正する時挑発の修正を間違って修正。
+・モンスターのスキル自爆問題修正。(未テスト)
+ (conf/)
+ battle_athena.conf 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ (db/)
+ mob_skill_db.txt 修正。
+ (map/)
+ mob.c
+ mobskill_use_id()、mobskill_use()、mobskill_castend_id() 修正。
+ pc.c
+ pc_skill()、pc_attack_timer() 修正。
+ skill.c
+ skill_castend_damage_id() 修正。
+ battle.h 修正。
+ battle.c
+ battle_weapon_attack()、battle_config_read() 修正。
+
+--------------------
+//0862 by 胡蝶蘭
+
+・mobスキル使用条件追加
+ ・friendhpltmaxrate : 味方のHPが指定%未満のとき(テスト済み)
+ ・friendstatuson : 味方が指定したステータス異常になっているとき
+ ・friendstatusoff : 味方が指定したステータス異常になっていないとき
+ ・mystatuson : 自分が指定したステータス異常になっているとき
+ ・mystatusoff : 自分が指定したステータス異常になっていないとき
+ ステータス系は未テストです。mob_skill_db.txtに指定方法を書いています。
+ たとえば自分が毒かどうかは mystatus,poison で、
+ ハイディング中かどうかは mystatuson,hiding で指定します。
+・mobスキル使用ターゲット追加
+ ・friend : 味方
+ ・around : 自分の周囲(現在の仕様では周囲81マス)のどれか
+ ・around1〜around4 : 自分の周囲9,25,49,81マスのどれか(範囲を明示)
+ friendは条件がfriend系(friendhpltmaxrateなど)のときに使用可能。
+ around系は場所指定スキルで使用可能。
+
+ (map/)
+ mob.c / mob.h
+ mob_getfriend*()追加、mobskill_use()修正など
+ (db/)
+ mob_skill_db.txt
+ 最初の説明のみ修正。データは修正していません。
+
+--------------------
+//0861 by いど
+
+・サーバーsnapshot
+
+--------------------
+//0860 by J
+
+・死神さんの手下召喚の修正に合わせてMOBスキルDBを修正
+(/conf)
+ mob_skill_db.txt 修正。
+
+--------------------
+//0859 by 獅子o^.^o
+Alchemist warp 修正(Aegis参考)
+(/conf)
+ (/warp)
+ npc_warp_job.txt 修正
+
+--------------------
+//0858 by 死神
+
+・細かい修正。
+・MAX_MOBSKILLを24から32に変更。(ただ少しですがまたメモリー使用量が増えます。)
+・プロボケーションで取る行動をmob_skill_db.txtのval1(値1)で設定できるように修正。
+・手下召喚で複数の種類を設定出切るように修正。(最大5つまで)
+・メタモルフォーシスとトランスフォーメーションも複数の種類を設定できるように修正。
+ (db/)
+ skill_db.txt 修正。
+ mob_skill_db.txt 修正。
+ (map/)
+ skill.c
+ skill_castend_damage_id()、skill_castend_nodamage_id() 修正。
+ map.h 修正。
+ mob.h 修正。
+ mob.c
+ mob_readskilldb()、mob_summonslave()、mob_class_change() 修正。
+
+--------------------
+//0857 by J
+
+・OWN Ragnarokにのっていた情報を元にMOBスキルを修正。
+・chase(突撃)が実装されているとのことなので突撃(?)をchaseにかえて
+コメントアウトをはずしました。
+・死神さんが実装したMOBスキルを使用するモンスターを狩場情報に載ってる情報を元に実装。
+ (/conf)
+ mob_skill_db.txt
+
+--------------------
+//0856 by 死神
+
+・バグ修正と細かい修正。
+・battle_athena.confにmonster_attack_direction_change追加。
+・battle_athena.confのbasic_skill_checkとカプラの倉庫利用を合わせていましたがいつのまにかなくなったので取り戻し。(basic_skill_checkがnoなら基本機能スキルレベルに関係なく倉庫を使えます。)
+・ピアーシングアタックの射程を3セルに変更して近接攻撃として認識するように修正。
+・A鯖でのテストでアンデッドの認識を属性によってすることがわかったのでundead_detect_typeのデフォルトを0に変更。
+・メタモルフォーシスやトランスフォーメーションで見た目がプレイヤーなら0x1b0パケットを送らないように変更。
+・ニューマバグは修正してみましたがスキルユニットの時間による作動仕様はまだ分析が完全じゃないので他の不具合が出てくるかも...
+ (conf/)
+ battle_athena.conf 修正。
+ mapflag.txt 修正。(普通のダンジョンがシーズモードであるはずがないので)
+ (conf/npc/)
+ npc_town_kafra.txt 修正。
+ (db/)
+ skill_db.txt 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ script_ref.txt 修正。
+ (map/)
+ pc.c
+ pc_modifybuyvalue()、pc_modifysellvalue() 修正。
+ battle.h
+ battle.c
+ battle_calc_pet_weapon_attack()、battle_calc_mob_weapon_attack() 修正。
+ battle_calc_pc_weapon_attack()、battle_weapon_attack() 修正。
+ battle_config_read() 修正。
+ skill.c
+ skill_unitsetting()、skill_castend_damage_id() 修正。
+ skill_castend_nodamage_id() 修正。
+ mob.c
+ mob_attack() 修正。
+ pet.c
+ pet_attack() 修正。
+ clif.c
+ mob_class_change() 修正。
+
+--------------------
+//0855 by asong
+
+・メタモルフォーシスでPCとして表示するMOBを指定した場合倉落ちするバグを「暫定」修正。
+・0x1b0パケでは無く0x7bを使うことで何とかしています。
+・使い分けをしたいところですが当方Cの知識が無く条件分岐が上手くいきませんでした。
+・もしかしたらプパの孵化(羽化?)がおかしくなってるかもしれません。
+ (/map)
+ clif.c
+ mob_class_change() 修正。
+
+--------------------
+//0854 by Kalen
+
+・不足していた一次職転職クエスト追加及び、それに伴うWarp、Mob修正)
+ (/conf)
+ (/npc)
+ npc_job_archer.txt
+ npc_job_swordman.txt
+ npc_job_thief.txt(台詞修正、点数処理変更)
+ npc_job_magician.txt
+ (/warp)
+ npc_warp25.txt(一部移動)
+ npc_warp.txt(一部移動)
+ npc_warp_job.txt(新設)
+ (/mob)
+ npc_mob_job.txt
+・雛祭りQuest追加及び、それに伴うNPC修正。アマツ行き船で料金を取らなかった問題修正
+ (/conf)
+ npc_event_hinamatsuri.txt
+ npc_town_amatsu.txt
+ npc_town_guide.txt
+ npc_town_kafra.txt
+ 雛祭りを有効にするとアマツカプラをWに、
+ アルベルタ南カプラを削除にするようにしています。
+
+--------------------
+//0853 by 死神
+
+・バグ修正とNPCスキル関係の修正。
+・ダークブレスをMISC攻撃に変更。(ただ命中判定有り)
+・クリティカルスラッシュ、コンボアタック、ガイデッドアタック、スプラッシュアタック、ブラインドアタック、カースアタック、ペトリファイアタック、ポイズンアタック、サイレンスアタック、スリープアタック、スタンアタック、ランダムアタック、ダークネスアタック、ファイアアタック、グラウンドアタック、ホーリーアタック、ポイズンアタック、テレキネスアタック、ウォーターアタック、ウィンドアタック、マジカルアタック、ブラッドドレイン、メンタルブレイカーはモンスターの武器射程に変更。そしてこれらのスキルをモンスターの攻撃射程によって遠距離攻撃と近距離攻撃になるように変更。
+・ピアーシングアタックは武器射程+2に変更。
+・エナジードレイン、ハルシネーションは魔法射程に変更。
+・ダークブレッシングの射程を4に変更とかかる確率を50+スキルレベル*5%に変更。(一応これも魔法なので少し射程を広くしました。基本魔法射程である8に変えるべきなのかどうかは微妙...)
+・ガイデッドアタックはセイフティウォールとニューマを無効にする報告がありましたのでセイフティウォールとニューマが効かないように修正。
+・ディフェンダーはエフェクトだけ出るように修正。(スキルの仕様等をわかる方は情報をお願いします。)
+・トランスフォーメーション実装。(メタモーフォシスと同じ物だそうです。ただこれは全然関係ない別のモンスターになる物らしいです。ニフルヘイムに使うやつがいるみたいです。)
+・Athena雑談スレッド 其の弐の80をscript_ref.txtとして追加とちょっと修正。
+ (db/)
+ skill_db.txt 修正。
+ (doc/)
+ script_ref.txt 追加。
+ (map/)
+ battle.c
+ battle_calc_damage()、battle_calc_pet_weapon_attack() 修正。
+ battle_calc_mob_weapon_attack()、battle_calc_pc_weapon_attack() 修正。
+ battle_calc_magic_attack()、battle_calc_misc_attack() 修正。
+ skill.c
+ castend_damage_id()、castend_nodamage_id()、skill_use_pos() 修正。
+ clif.c
+ clif_spawnnpc()、clif_parse_Restart()、clif_parse_QuitGame() 修正。
+ mob.c
+ mobskill_castend_id()、mobskill_castend_pos() 修正。
+ mobskill_use_id()、mobskill_use_pos() 修正。
+
+--------------------
+//0852 by ぴざまん
+
+・亀島4F・蟻D2F・アマツD1Fをテレポ不可、シーズモードに変更。
+・nosaveの引数にSavePointが指定できてなかったので追加。
+・PVPのmapflagをmapflag.txtに統合。
+ (map/)
+ npc.c
+ npc_parse_mapflag() 修正。
+ (conf/)
+ mapflag.txt 修正。
+ npc/npc_pvp.txt 修正。
+
+--------------------
+//0851 by 胡蝶蘭
+
+・ログイン時の暗号化keyが常に同じという大きな問題があったので修正
+・ログイン管理者ログイン(ladminで使用)でパスワードの暗号化に対応
+ (login/)
+ login.c
+ login_session_data作成、暗号化keyをクライアントごとに作成など
+ (tool/)
+ ladmin
+ ver.1.05に。デフォルトでパスワードを暗号化するように。
+ 暗号化のためにDigest::MD5モジュールを使用します。
+ Digest::MD5が無い場合はパスワードの暗号化を行いません。
+ (doc/)
+ admin_packet.txt
+ ログインサーバー管理ログイン部分変更
+
+--------------------
+//0850 by 死神
+
+・NPCスキル実装。(ハルシネーション、キーピング、リック、メンタルブレイカー、プロボケーション、バリヤー、ダークブレッシング、ダークブレス)
+・スキル自爆の制限はmob_skill_db.txtでやればいいものなので取り戻し。
+・battle_athena.confにpet_hungry_friendly_decrease追加。
+・ペットの腹が完全に減ると支援攻撃を中止するように変更。
+・属性変更スキルが作動しなかった問題修正。
+・メンタルブレイカーは10+スキルレベル*5%のSPを減らす。(攻撃は通常武器スキル攻撃)
+・リックは必中でSP-100、スタン確率スキルレベル*5%。(ダメージは無し、bNoWeaponDamageで無効)
+・プロボケーションはモーションが準備されてないモンスターは入れてもなんの効果もなし。
+・ダークブレッシングはかかるとHPが1になる。耐性は魔法防御で適用。
+・ダークブレスは500+(スキルレベル-1)*1000+rand(0,1000)のダメージ。回避できるが防御無視で近距離物理攻撃だがセイフティウォールは無視して闇属性攻撃。(本鯖の計算式にあっている可能性はないかも。ただダメージ量と命中補正以外は本鯖合わせ)
+・NPCスキルの維持時間は適度に設定。
+・モンスターの属性攻撃とガイデッドアタックがセイフティウォールを無視するとの報告を受けたのですが修正するかどうかはちょっと微妙。(スプラッシュアタックもセイフティウォール無視かも)
+ (conf/)
+ battle_athena.conf 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ (db/)
+ cast_db.txt 修正。
+ skill_db.txt 修正。
+ (map/)
+ mob.c
+ mob_damage() 修正。
+ clif.h 修正。
+ clif.c
+ clif_skill_estimation()、clif_damage()、clif_skill_damage() 修正。
+ clif_skill_damage2()、clif_pet_performance() 修正。
+ pet.c
+ pet_performance()、pet_target_check()、pet_hungry() 修正。
+ skill.h 修正。
+ skill.c
+ skill_additional_effect()、skill_castend_damage_id() 修正。
+ skill_castend_nodamage_id()、skill_status_change_start() 修正。
+ battle.h 修正。
+ battle.c
+ battle_get_def()、battle_get_mdef()、battle_calc_damage() 修正。
+ battle_calc_pet_weapon_attack()、battle_calc_mob_weapon_attack() 修正。
+ battle_calc_pc_weapon_attack()、battle_config_read() 修正。
+
+--------------------
+//0849 by lapis
+
+・街中のテストギルドフラグの表示がおかしかったのを修正。
+・ギルドメンバーは旗からアジトに飛べるように修正。
+ (conf/gvg)
+ TEST_prtg_cas01_AbraiJ.txt 修正。
+
+--------------------
+//0848 by huge
+
+・スキル自爆を、HPが全回復している時は使えないよう修正。
+・スフィアマイン・バイオプラント・・・ターゲット変更できない...。
+・mobにターゲット無視IDを設定できるようにしました。(Gv用mobに使える?)
+ (map/)
+ map.h 修正。
+ mob_dataに int exclusion_src,exclusion_party,exclusion_guild 追加。
+ mob.h 修正。
+ mob.c
+ mob_exclusion_add() 追加。
+ mob_exclusion_check() 追加。
+ mob_timer_delete() 追加。
+ mob_attack() 修正。
+ mob_target() 修正。
+ mob_ai_sub_hard_activesearch() 修正。
+ mob_ai_sub_hard_mastersearch() 修正。
+ mob_ai_sub_hard() 修正。
+ skill.c
+ skill_castend_damage_id() 修正。
+ skill_castend_pos2() 修正。
+
+--------------------
+//0847 by 死神
+
+・露店バグ修正。
+ (map/)
+ clif.c
+ clif_vendinglist()、clif_openvending() 修正。
+ vending.c
+ vending_openvending() 修正。
+ skill.c
+ skill_castend_nodamage_id() 修正。
+
+--------------------
+//0846 by 死神
+
+・バグ修正と細かい修正。
+・battle_athena.confのenemy_strがペットにも適用するように変更。
+・bHPDrainRateとbSPDrainRateでxがマイナスでも作動するように変更。
+・PCやNPCの姿をしたモンスターも死ぬと5秒後マップから消えるように変更。
+ (map/)
+ battle.c
+ battle_calc_pet_weapon_attack()、battle_weapon_attack() 修正。
+ skill.c
+ skill_attack()、skill_castend_damage_id() 修正。
+ pc.c
+ pc_allskillup() 修正。
+ clif.h 修正。
+ clif.c
+ clif_openvending()、do_init_clif() 修正。
+ clif_clearchar_delay()、clif_clearchar_delay_sub() 追加。
+ mob.c
+ mob_damage() 修正。
+
+--------------------
+//0845 by ぽぽぽ
+
+・mob_avail.txtでPCグラフィック(0〜23)を指定したペットが出現したときクライアントエラーがでるのを暫定修正。
+・mob_avail.txtでペットにもPCキャラの性別・髪型&色・武器・盾・頭装備を指定できるようにしました。
+・MOBのATK計算にSTRを適用するかどうか設定可能にした。
+ (map/)
+ clif.c
+ clif_pet0078()、clif_pet007b()、clif_spawnpet()修正。
+ battle.h修正。
+ battle.c
+ battle_config_read()、battle_calc_mob_weapon_attack()修正。
+
+--------------------
+//0844 by ぽぽぽ
+
+・mob_avail.txtでPCグラフィック(0〜23)を指定したMOBが出現したときクライアントエラーがでるのを暫定修正。
+・mob_avail.txtでPCキャラの性別・髪型&色・武器・盾・頭装備を指定できるようにしました。
+ グラフィックすり替え先IDが0〜23の時だけ有効で、指定方法は
+ MOB-ID,グラフィックすり替え先ID,性別(0=female,1=male),髪型,髪色,武器,盾,上段頭装備,中段頭装備,下段頭装備
+ となります。装備はitem_dbのView欄参照のこと。
+ (map/)
+ clif.c
+ clif_mob_0078()、clif_mob007b()、clif_spawnmob()修正。
+ mob.h修正。
+ mob.c
+ mob_get_sex()、mob_get_hair()、mob_get_hair_color()、ob_get_weapon()、
+ mob_get_shield()、mob_get_head_top()、mob_get_head_mid()、mob_get_head_buttom()追加。
+ mob_readdb()、mob_readdb_mobavail()修正。
+
+--------------------
+//0843 by 死神
+
+・リフレクトシールド実装。
+・アイテムスクリプトにbShortWeaponDamageReturnと
+bLongWeaponDamageReturn 追加。
+・その他スキル関係や他の所修正。
+ (db/)
+ item_db.txt 修正。
+ skill_db.txt 修正。
+ cast_db.txt 修正。
+ const.txt 修正。
+ (doc/)
+ item_bonus.txt 修正。
+ (map/)
+ map.h 修正。
+ battle.c
+ battle_get_def()、battle_get_def2()、battle_calc_pet_weapon_attack() 修正。
+ battle_calc_mob_weapon_attack()、battle_calc_pc_weapon_attack() 修正。
+ battle_weapon_attack()、battle_calc_magic_attack() 修正。
+ pc.c
+ pc_calcstatus()、pc_bonus()、pc_bonus2()、pc_equipitem() 修正。
+ pc_unequipitem()、pc_checkallowskill() 修正。
+ skill.c
+ skill_attack()、skill_unit_onplace()、skill_status_change_start() 修正。
+ skill_status_change_end()、skill_status_change_timer() 修正。
+ skill_castend_nodamage_id() 修正。
+ clif.c
+ clif_additem()、clif_equiplist()、clif_storageequiplist() 修正。
+ clif_tradeadditem()、clif_storageitemadded()、clif_cart_additem() 修正。
+ clif_cart_equiplist()、clif_vendinglist()、clif_openvending() 修正。
+ clif_damage()、clif_skill_damage()、clif_parse_LoadEndAck() 修正。
+
+--------------------
+//0842 by 死神
+
+・スキル関係の修正と細かい修正。
+・aegis鯖で色々と検証した物を適用。
+・メテオの範囲を7*7、LoV13*13、SG11*11、FN5*5に修正。
+・シグナム実装。(ただPVPでプレイヤーにかかるかどうかがわからなかったので
+かかる方向で実装。)これで1次職業のスキルはクリアかも...
+・装備スクリプトにbHPDrainRateとbSPDrainRate追加。
+・その他細かい修正少し。
+ (doc/)
+ item_bonus.txt 修正。
+ (db/)
+ cast_db.txt 修正。
+ item_db.txt 修正。
+ const.txt 修正。
+ (map/)
+ map.h 修正。
+ skill.c
+ skill_castend_damage_id()、skill_castend_nodamage_id() 修正。
+ skill_unitsetting()、skill_castend_pos2()、skill_castend_id() 修正。
+ skill_status_change_start()、skill_status_change_timer() 修正。
+ skill_status_change_end()、skill_unit_onplace() 修正。
+ skill_frostjoke_scream()、skill_attack() 修正。
+ skill_attack_area() 追加。
+ battle.c
+ battle_calc_magic_attack()、battle_get_element()、battle_get_def() 修正。
+ battle_get_def2()、battle_get_mdef()、battle_damage() 修正。
+ battle_calc_damage()、battle_calc_pet_weapon_attack() 修正。
+ battle_calc_mob_weapon_attack()、battle_calc_pc_weapon_attack() 修正。
+ battle_weapon_attack() 修正。
+ mob.c
+ mobskill_castend_id() 修正。
+ pc.c
+ pc_calcstatus()、pc_bonus2()、pc_attack_timer() 修正。
+ clif.c
+ clif_spawnmob()、clif_spawnpet()、clif_spawnnpc() 修正。
+ clif_parse_ActionRequest() 修正。
+
+--------------------
+//0841 by Kalen
+
+・水溶液が作れなかったので追加
+ conf/npc/npc_job_magician.txt
+
+--------------------
+//0840 by Kalen
+
+・鬼イベント追加
+ conf/npc/npc_event_oni.txt
+
+・map_athena.conf修正(バレンタインコメントアウト。鬼追加)
+ conf/map_athena.conf
+
+--------------------
+//0839 by shuto
+
+・コンロンNPC追加(カン ソンソンが抜けてた)
+
+--------------------
+//0838 by 死神
+
+・スキルサイトラッシャー実装。
+・モンスターのクローキングとマキシマイズパワーは持続時間をレベル*5秒に変更。
+・その他細かいバグ修正。
+ (db/)
+ skill_db.txt 修正。
+ (map/)
+ skill.c
+ skill_castend_damage_id()、skill_castend_nodamage_id() 修正。
+ skill_castend_pos2()、skill_unitsetting()、skill_get_unit_id() 修正。
+ skill_status_change_start() 修正。
+ battle.c
+ battle_calc_magic_attack() 修正。
+
+--------------------
+//0837 by 死神
+
+・スキル関係の細かい修正。
+・フロストノヴァをユニット設置式に変更。
+・ロードオブヴァーミリオンの範囲を11*11に修正と40ヒットするように変更。(ラグナゲートの情報。
+13*13説もありますが...)
+・ユピテルサンダーのノックバックを2~7に変更。
+・ストームガストの攻撃回数をレベル依存から10回に固定。
+・サンクチュアリのノックバックを3から2に変更。(aegis鯖でノックバックがあることは確認しましたがどれぐらいなのかが不明だったので少し減らしてみました。)
+・モンスターの詠唱時間が早くなっていた問題修正。(dex補正が入ってしまったせいです。)
+・その他オートスペル当たりの細かい修正。
+ (db/)
+ skill_db.txt 修正。
+ (map/)
+ skill.c
+ skill_castfix()、skill_delayfix()、skill_timerskill() 修正。
+ skill_castend_pos2()、skill_unitsetting()、skill_castend_damage_id() 修正。
+ skill_castend_nodamage_id()、skill_get_unit_id()、skill_attack() 修正。
+ battle.c
+ battle_calc_magic_attack()、battle_weapon_attack() 修正。
+
+--------------------
+//0836 by 釈尊
+
+・モンスターの取り巻き召還の間隔を中ボス以外完全修正。
+ (db/)
+ mob_skill_db.txt 修正。
+
+--------------------
+//0835 by (凸)
+
+・白刃取りでポーズをとるようにした。
+(ポーズだけなので、実際に攻撃を受け止めたりはできません)
+clif_bladestop()を呼ぶことで白刃取り状態のON、OFFのパケットが送れます。
+
+ (map/)
+ clif.h 修正。
+ clif,c
+ clif_bladestop() 追加
+ skill.c
+ skill_castend_nodamage_id() 修正。
+
+--------------------
+//0834 by 釈尊
+
+・モンスター取り巻き召還の間隔が短すぎるとの事で応急処置。(今回は黄金蟲のみ)
+ (db/)
+ mob_skill_db.txt 修正。
+
+--------------------
+//0833 by (凸)
+
+・memo禁止地域で/memo時の修正。
+・ついでにitem_dbを更新。
+
+ (doc/)
+ client_packet.txt
+ R 0189 更新。
+ (db/)
+ item_db.txt 最新版へ更新。
+ (map/)
+ pc.c
+ pc_memo() 修正。
+
+--------------------
+//0832 by 死神
+
+・コード最適化と細かい修正。
+・オートスペルを地面魔法に対応。
+・サンダーストームとヘヴンズドライブをユニット設置式に変更。
+・ディフェンダーの攻撃速度低下を本鯖にあわせ。
+・その他細かい修正。
+ (doc/)
+ item_bonus.txt 修正。
+ (db/)
+ skill_require_db.txt 修正。
+ cast_db.txt 修正。
+ (map/)
+ map.h 修正。
+ path.c
+ calc_index()、path_search() 修正。
+ skill.c
+ skill_unitsetting()、skill_castend_pos2()、skill_get_unit_id() 修正。
+ skill_status_change_timer_sub()、skill_castend_nodamage_id() 修正。
+ skill_additional_effect()、skill_frostjoke_scream() 修正。
+ pc.c
+ pc_calcstatus()、pc_skill()、pc_allskillup() 修正。
+ battle.c
+ battle_get_speed()、battle_get_adelay()、battle_get_amotion() 修正。
+ battle_weapon_attack() 修正。
+
+--------------------
+//0831 by 死神
+
+・少し修正。
+・オートスペル修正。装備による物とスキルによる物を別々に適用、発動確率修正。
+・装備によるオートスペルは指定したレベルより2つ下まで判定をします。つまりレベル5を設定するとレベル3から5まで発動します。
+・battle_athana.confのplayer_cloak_check_wall、monster_cloak_check_wallをplayer_cloak_check_type、monster_cloak_check_typeに変更。
+・アイテムルート権限時間を本鯖に合わせて修正。
+・その他スキル関係の細かい修正。
+ (doc/)
+ conf_ref.txt 修正。
+ db_ref.txt 修正。
+ item_bonus.txt 修正。
+ (conf/)
+ battle_athana.conf 修正。
+ (db/)
+ item_db.txt 修正。
+ (map/)
+ map.h
+ map.c
+ block_free_max、BL_LIST_MAX 修正。
+ skill.h 修正。
+ skill.c
+ skill_additional_effect()、skill_attack()、skill_castend_damage_id() 修正。
+ skill_castend_nodamage_id()、skill_unit_onplace() 修正。
+ skill_status_change_end()、skill_status_change_start() 修正。
+ skill_initunitgroup()、skill_unitsetting()、skill_castfix() 修正。
+ skill_delayfix()、skill_autospell()、skill_use_id()、skill_use_pos() 修正。
+ skill_check_cloaking()、skill_unit_timer_sub()、skill_check_condition() 修正。
+ battle.h 修正。
+ battle.c
+ battle_damage()、battle_get_agi()、battle_get_speed() 修正。
+ battle_get_adelay()、battle_get_amotion()、battle_get_flee() 修正。
+ battle_weapon_attack()、battle_calc_magic_attack() 修正。
+ battle_config_read() 修正。
+ mob.c
+ mob_attack()、mob_damage()、mobskill_use_id() 修正。
+ mobskill_use_pos()、mob_spawn()、mob_class_change() 修正。
+ mob_can_move() 修正。
+ pc.c
+ pc_attack_timer()、pc_checkweighticon()、pc_calcstatus() 修正。
+ pc_damage()、pc_equipitem()、pc_unequipitem() 修正。
+ pc_bonus2()、pc_bonus3()、pc_memo()、pc_authok() 修正。
+ pc_isUseitem() 修正。
+ clif.h 修正。
+ clif.c
+ clif_changeoption()、clif_parse_LoadEndAck()、clif_autospell() 修正。
+ clif_skill_memo() 修正。
+ clif_skill_teleportmessage() 追加。
+ script.c
+ buildin_sc_start() 修正。
+ atcommnad.c
+ atcommand() 修正。
+
+--------------------
+//0830 by huge
+
+・オートスペルで、自分の習得してるレベルよりも高いレベルで
+ 魔法が発動していたであろう問題を修正。
+・オートスペルでも、ちゃんとSPが減るように修正(ど忘れ)
+ (map/)
+ battle.c
+ battle_weapon_attack() 修正。
+ skill.c
+ skill_autospell() 修正。
+
+--------------------
+//0829 by Kalen
+
+・mob_db修正
+ 自鯖用のと間違ってUPしてしまったようです。
+ 本来のものに直しました。
+
+--------------------
+//0828 by 聖
+
+・サーバのSnapshot
+・MVPボス系からバカンスチケットが大量に出ていた問題を修正。
+ (common/)
+ version.h 修正。
+ (db/)
+ mob_db.txt 修正。
+
+--------------------
+//0827 by J
+
+・固定MOBのはずのメガリスと人面桃樹が歩いていたのを修正。
+・闘技場のMOBにスキルを実装。
+・パサナとファラオがスキルが設定されていなかったのを実装。
+ (db/)
+ mob_db.txt 修正。
+ mob_skill_db.txt 修正。
+
+--------------------
+//0826 by ぴざまん
+
+・一部の演奏スキルを使うと鯖が落ちるバグ修正。
+・クローキング中にスキルを使用でき、
+ 使用するとクローキングが解除されるように修正。
+・Kalenさんのmob_db.txtをまとめました。
+ (map/)
+ skill.c
+ skill_unit_onplace()、skill_unit_onout() 修正。
+ skill_status_change_start()、skill_status_change_timer() 修正。
+ skill_use_id()、skill_use_pos() 修正。
+ (db/)
+ mob_db.txt 修正。
+
+--------------------
+//0825 by 死神
+
+・細かい修正。(細かいことのわりには修正した所が多いけど...)
+・ワープポータルの中に止まった時以外はワープしないように修正。
+・battle_athena.confにplayer_skill_nofootset、monster_skill_nofootset 追加。
+・NPCをクリックした後露店をクリックして露店を閉じると動けなくなるバグ修正。
+ただ露店を閉じる時何のパケットも転送してこないので露店をクリックするとNPCの処理から抜けるようにしました。(本鯖ではNPCの処理が抜けないらしいですがそれ以外方法がなかったのっで。)
+・killmonsterのAllで召喚されたモンスターだけ消すように変更。
+・ソース最適化やスキル関係の細かい修正多数。
+ (doc/)
+ conf_ref.txt 修正。
+ db_ref.txt 修正。
+ (conf/)
+ battle_athana.conf 修正。
+ atcommnad_athena.conf 修正。
+ (db/)
+ item_db.txt 修正。
+ skill_db.txt 修正。
+ (login/)
+ parse_fromchar() 修正。
+ (map/)
+ map.h 修正。
+ clif.c
+ clif_closevendingboard()、clif_parse_VendingListReq() 修正。
+ clif_mob0078()、clif_mob007b()、clif_pet0078()、clif_pet007b() 修正。
+ skill.h 修正。
+ skill.c
+ skill_check_condition()、skill_castend_pos2() 修正。
+ skill_castend_damage_id()、skill_castend_nodamage_id() 修正。
+ skill_castend_id()、skill_status_change_start()、skill_castfix() 修正。
+ skill_delayfix()、skill_check_unit_range_sub() 修正。
+ skill_check_unit_range()、skill_castend_pos()、skill_stop_dancing() 修正。
+ skill_unit_onplace()、skill_readdb()、skill_timerskill()、skill_blown() 修正。
+ skill_check_unit_range2_sub()、skill_check_unit_range2() 追加。
+ skill_get_maxcount() 追加。
+ mob.c
+ mobskill_castend_id()、mobskill_castend_pos()、mob_deleteslave() 修正。
+ mob_stop_walking()、mob_walk()、mob_damage() 修正。
+ pc.c
+ pc_calcstatus()、pc_checkskill()、pc_stop_walking() 修正。
+ pc_walk()、pc_damage() 修正。
+ npc.c
+ npc_touch_areanpc() 修正。
+ pet.c
+ pet_stop_walking() 修正。
+ script.c
+ buildin_killmonster()、buildin_killmonster_sub() 修正。
+ battle.h
+ battle.c
+ battle_calc_magic_attack()、battle_get_flee()、battle_get_flee2() 修正。
+ battle_get_adelay()、battle_get_amotion()、battle_get_max_hp() 修正。
+ battle_get_hit()、battle_get_critical()、battle_get_atk2() 修正。
+ battle_damage()、battle_config_read() 修正。
+ atcommand.h 修正。
+ atcommand.c 修正。
+
+--------------------
+//0824 by ぴざまん
+
+・セイフティウォール・ニューマの足元置きができなかった問題修正。
+・エンペリウムにヒール等の支援スキルが効いていた問題修正。
+・闘技場でモンスターリセットができなかった問題修正。
+ killmonsterは"killmonster <mapname>,<eventname>"と記述して
+ 該当eventnameを持つモンスターを削除しますが
+ eventnameにAllと入れると該当MAPの全モンスターを消去するようにしました。
+
+ (map/)
+ skill.c
+ skill_check_unit_range_sub()、skill_castend_nodamage_id() 修正。
+ script.c
+ buildin_killmonster()、buildin_killmonster_sub() 修正。
+ (conf/npc/)
+ npc_event_tougijou.txt 修正。
+
+--------------------
+//0823 by Kalen
+
+・闘技場データ揃ったので、完成
+ conf/npc/npc_event_tougijou.txt
+ ただし、こちらでチェックしたところkillmonsterがうまくいかず、
+ 失敗、時間切れした場合モンスターリセットが出来ません。
+ イベントが設定されているモンスターは処理できないのかと思いましたが
+ AgitのほうのエンペのKillmonsterはちゃんと動いてますし…
+ 原因分かる方お願いします<(_ _)>
+
+・gon_testのmapflag追加
+ conf/mapflag.txt
+
+・mob_db更新
+ 1419〜1491が既存のMobの定義ばかりなので追加しませんでしたが、
+ 調べた所闘技場のMobのデータであることが分かりました(Dropを弄ったもの)
+ 本鯖では闇りんごが報告されています。が、こちらはDrop空白で処理しました。
+ クライアント上では同名でしたが、区別のため接頭にG_をつけて区別してます。
+ mob_skill_dbありがとうございました↓
+
+--------------------
+//0822 by ぴざまん
+
+・演奏スキルでの補正をダンサーにも適用。
+・サンクチュアリバグ修正。
+・KalenさんのMOBスキルデータベースをまとめときました。
+
+ (map/)
+ skill.c
+ skill_status_change_start()、skill_unit_onplace() 修正。
+ battle.c
+ battle_get_critical()、battle_get_hit() 修正。
+ pc.c
+ pc_calcstatus() 修正。
+
+--------------------
+//0821 by huge
+
+・オートスペル仮実装。
+・timerで判定しようかとも思いましたが、装備の無限オートスペルの為にsc_[].val1で見てマス。
+・bonus2 bAutoSpell追加。一応どんなスキルでも指定できるようにしてますが(番号はskill_tree参照)
+ skill_castend_damage_idのタイプ以外のスキルを指定しないでください。
+ 発動確率は、Lv1:50%、Lv2:35%、Lv3:15%、それ以上は 5%固定です。
+ あと、スキルレベルも指定できますが、限界を超えた数字を入れると墜ちるかもしれません。
+■書き方例:(ファイアボルトLv3の時)bonus2 bAutoSpell 19,3;
+
+ (db/)
+ const.txt 修正。
+ (map/)
+ battle.c
+ battle_weapon_attack() 修正。
+ clif.h
+ clif.c
+ packet_len_table 修正。
+ clif_autospell() 追加。
+ clif_parse_AutoSpell() 追加。
+ map.h 修正。
+ pc.c
+ pc_bonus2() 修正。
+ pc_equipitem() 修正。
+ pc_unequipitem() 修正。
+ skill.h
+ skill.c
+ skill_castend_nodamage_id() 修正。
+ skill_autospell() 追加。
+ skill_status_change_end() 修正。
+ skill_status_change_start() 修正。
+ status_changeの番号テーブル修正。
+
+--------------------
+//0820 by ぴざまん
+
+・アドリブのメッセージが入ってなかったので修正
+・バードの演奏スキルで楽器の練習や自ステータスの補正が入ってなかったのを修正。
+ struct status_changeのvalが3つ必要だったので(val4は予約されてたっぽいので)val5を追加しました
+ (map/)
+ map.h 修正。
+ skill.c
+ skill_status_change_start()、skill_castend_nodamage_id() 修正。
+ skill_castfix()、skill_delayfix() 修正。
+ battle.c
+ battle_get_flee()、battle_get_max_hp() 修正。
+ battle_get_adelay()、battle_get_amotion() 修正。
+ battle_calc_misc_attack() 修正。
+ pc.c
+ pc_calcstatus() 修正。
+
+--------------------
+//0819 by Kalen
+
+・コンロン(NPC、Warp)修正
+ conf/npc/npc_town_gonryun.txt(案内員補充)
+ conf/npc/npc_event_tougijou.txt
+ conf/warp/npc_warp_gonryun.txt(宿2FとD2Fなど)
+
+・MOB修正
+ conf/mob/npc_monster30.txt(一反木綿不足追加)
+ conf/mob/npc_monster35.txt(コンロンMob追加)
+
+・DB修正
+ db/mob_db.txt(コンロン[全て]+ウンバラ[定義]追加。Aspeed等適当です。まぁ無いよりましということで)
+ db/mob_skill_db.txt(情報を元にコンロンのMob分追加)
+ db/item_db.txt(Athena DB Project 2/19 21:10DL分)
+
+--------------------
+//0818 by あゆみ
+
+・テレポートスキルLv1で、選択ウインドウが出てこないバグを修正。
+・重量が90%以上の場合でも、一部のスキルが使用可能だったバグを修正。
+・@allskillコマンドの修正とか。
+
+ (conf/)
+ msg_athena.conf 修正。
+ (map/)
+ atcommand.c
+ atcommand() 修正。
+ pc.c
+ pc_allskillup() 修正。
+ skill.c
+ skill_castend_nodamage_id() 修正。
+ skill_check_condition() 修正。
+
+--------------------
+//0817 by huge
+
+・ディボーションの処理修正
+ ・糸の出し方はパケを貰ったのでできましたが、アイコンの方はまだ分からないです。
+ ・あと、自分の環境で2人以上に同時に掛けれなかったので、複数人にかけた場合
+ 多分0の羅列の所に2人目、3人目・・・のIDが入るんじゃないかなぁという予測でやってます。
+・ハイディング中、及びクローキング中にダメージを受けると解けるよう修正。
+
+ (map/)
+ battle.c
+ battle_damage() 修正。
+ clif.c
+ clif_devotion() 修正。
+ pc.c
+ pc_walk() 修正。
+ skill.c
+ skill.h
+ skill_castend_nodamage_id() 修正。
+ skill_devotion() skill_devotion2() 修正。
+ skill_devotion3()skill_devotion_end() 修正。
+
+--------------------
+//0816 by ぴざまん
+・ファイアーウォール3枚制限実装。
+・重ね置き禁止をプレイヤー・モンスターにも適用するように修正。
+・寒いジョーク・スクリームのPvP・GvGで、効果が自分にも及ぶバグ修正。
+ ついでにPTメンバーには低確率でかかるのも実装。
+・寒いジョーク・スクリーム・スピアブーメランのディレイ修正。
+ ミュージカルストライク・矢撃ちの詠唱時間修正。
+ (map/)
+ skill.c
+ skill_check_condition()、skill_check_unit_range_sub() 修正。
+ skill_check_unit_range()、skill_delunitgroup() 修正。
+ skill_castend_pos2()、skill_frostjoke_scream() 修正。
+ map.h 修正。
+ (db/)
+ cast_db.txt 修正。
+
+--------------------
+//0815 by 死神
+
+・0814のバグ修正と細かい修正。
+・mapflag monster_noteleport、noreturn追加とnoteleportの仕様変更。
+noteleportはプレイヤーのハエとテレポート、ワープスキルの制限をするが蝶は制限しないように変更、monster_noteleportはモンスターのテレポートを制限する物でnoreturnは蝶の使用を制限する物です。ただmapflag.txtは修正していません。(noreturnを設定する必要があります。)
+・battle_athena.confのplayer_auto_counter_typeとmonster_auto_counter_typeが説明通りに機能しなかった問題修正。
+・battle_athena.confにplayer_cloak_check_wall とmonster_cloak_check_wall 追加。
+・ボスモンスターの認識をMVP経験とmodeの0x20で行なっていた物をmodeだけにするように変更。(本鯖のイベントモンスターでMVP経験をくれるが状態異常に掛かるやつがあったらしく修正。HPが1億もあって毒じゃないと倒せなかったらしいので...) つまりMVP経験があってもボス扱いではないモンスターを作ることも可能です。
+・状態異常に掛かった状態で接続切断ができないように修正。(ただタイマーチェックではなくopt1とopt2をチェックするだけなので見た目が変わる状態異常だけに適用されます。)
+・今さらですが昔のyareCVS(2003年9月バージョン)で適用されていたラグを減らす為の処理を入れてみました。どんな効果があるかは自分でもわかりません。(ただ入れてみただけ...)
+・シーズモードとPVPで禁止装備が外されても効果が消えないバグ修正。
+・その他細かい修正。
+・未テストの物もかなりあります。
+ (common/)
+ socket.c
+ connect_client()、make_listen_port()、make_connection() 修正。
+ (conf/)
+ battle_athena.conf 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ (map/)
+ battle.h 修正。
+ battle.c
+ battle_calc_mob_weapon_attack()、battle_calc_pc_weapon_attack() 修正。
+ battle_calc_magic_attack()、battle_config_read() 修正。
+ skill.c
+ skill_unit_onplace()、skill_status_change_timer() 修正。
+ skill_castend_nodamage_id()、skill_use_id() 修正。
+ skill_check_unit_range_sub()、skill_timerskill() 修正。
+ skill_additional_effect()、skill_attack()、skill_status_change_start() 修正。
+ skill_check_cloaking() 修正。
+ clif.c
+ clif_item_identify_list()、clif_parse_QuitGame()、clif_GM_kick() 修正。
+ pc.c
+ pc_attack_timer()、pc_isUseitem()、pc_checkitem 修正。
+ mob.c
+ mob_warp()、mob_walk()、mob_attack()、mob_target() 修正。
+ mob_ai_sub_hard_activesearch()、mob_ai_sub_hard_mastersearch() 修正。
+ mob_ai_sub_lazy()、mob_damage() 修正。
+ npc.c
+ npc_parse_mapflag() 修正。
+ map.h 修正。
+
+--------------------
+//0814 by 死神
+
+・バグ修正と細かい修正。
+・battle_athena.confのplayer_auto_counter_typeとmonster_auto_counter_typeの仕様を変更。(本鯖ではスキル反撃はできないみたいなので設定できるように変更。)
+・毒と石化によるHP減少を本鯖に合わせて修正と完全石化の前では動けるように変更。(毒は1秒に3+最大HPの1.5%(モンスターは0.5%)、石化は5秒に1%) 未テスト
+・MVP経験値は本鯖でいつも入るようになったので修正。
+・スティールの確率を少し下げ。
+・モンスターのハイディング、クローキング、マキシマイズパワーがすぐに解除される問題修正。(モンスターにはSPがないせいです。取り敢えずクローキングはハイディングの時間を適用してマキシマイズパワーはウエポンパーフェクションの時間を適用します。) 未テスト
+・サンクチュアリを人数から回数に変更。
+・PVPで自分のトラップに攻撃対象になるように変更。
+・vitペナルティの適用で乗算防御も減るように変更。(未テスト)
+・その他細かいバグ修正。
+ (conf/)
+ battle_athena.conf
+ (doc/)
+ conf_ref.txt
+ (db/)
+ skill_db.txt
+ (map/)
+ map.h 修正。
+ script.c
+ buildin_itemskill() 修正。
+ mob.c
+ mob_can_move()、mob_ai_sub_hard()、mob_damage() 修正。
+ skill.c
+ skill_unitsetting()、skill_unit_onplace()、skill_castend_nodamage_id() 修正。
+ skill_attack()、skill_status_change_start() 修正。
+ skill_status_change_timer()、skill_status_change_timer_sub() 修正。
+ skill_addtimerskill()、skill_cleartimerskill() 修正。
+ skill_check_unit_range_sub() 修正。
+ battle.c
+ battle_calc_damage()、battle_check_target() 修正。
+ battle_calc_pet_weapon_attack()、battle_calc_mob_weapon_attack() 修正。
+ battle_calc_pc_weapon_attack() 修正。
+ pc.c
+ pc_steal_item() 修正。
+ clif.c
+ clif_parse_WalkToXY()、clif_closevendingboard() 修正。
+
+--------------------
+//0813 by Kalen
+・コンロンNPC追加
+ conf/npc/npc_town_gonryun.txt(クエストは不明
+ conf/npc/npc_town_kafra.txt
+ conf/npc/npc_town_guide.txt
+ (conf/npc/npc_event_tougijou.txt)データ不足
+
+・全GvGMAPのMobデータ追加
+ conf/mob/npc_monster_gvg.txt
+
+・TESTmobからテストギルドフラグ移動
+ conf/gvg/TEST_prtg_cas01_AbraiJ.txt
+
+--------------------
+//0812 by huge
+
+・ディボーションの仮実装
+ ・パケットが全然分かりませんでしたので、
+ 青い糸も出ないし、アイコンすら表示できません。
+ ・ダメ移動だけで、ノックバック・オートガードは適応されません。
+
+ (map/)
+ clif.c
+ clif.h
+ clif_devotion() 追加。
+ skill.c
+ skill_castend_nodamage_id() 修正。
+ skill_devotion() skill_devotion2() 追加。
+ skill_devotion3() skill_devotion_end() 追加。
+ skill_status_change_end() 修正。
+ skill_status_change_start() 修正。
+ skill_brandishspear_first() 修正。
+ skill_brandishspear_dir() 修正。
+ pc.c
+ pc_authok() 修正。
+ pc_walk() 修正。
+ pc_damage() 修正。
+ battle.c
+ battle_damage() 修正。
+ map.h
+ map_session_data{}
+ struct square dev 追加。
+ skill.h のbrandishをsquareに改名し、
+ (common/) mmo.h に移動
+
+--------------------
+//0811 by ぴざまん
+
+・攻城中は蝶が使えるように修正
+・寒いジョーク・スクリーム実装(PTメンバーに低確率で云々は未実装です)
+・GVGスクリプトを修正(試行錯誤しすぎてどこをどうしたか覚えてません…)
+ GVGスクリプトに関してですが、既知のバグがあります
+ それは、占領ギルドマスター以外のPCが、占領ギルドマスターより先にNPCに話し掛けると
+ マップサーバが落ちるというものです。
+ これは、getguildmaster・getguildnameを使用しているスクリプトすべてに起こり得ることであり
+ 先に占領ギルドマスター以外で話し掛けると、guild_searchが何故か(該当IDのギルドがあるにも関わらず)
+ NULLを返す事に起因します。
+ 正直スクリプト関係はよくわかっていないので、これは私の技術では修正のしようがありません。
+ 暫定的な対処としてNULLを返してMAP鯖が落ちるくらいなら文字列「null」を返すようにしました。
+
+ (map/)
+ skill.c
+ skill_frostjoke_scream() 追加。
+ skill_additional_effect()、skill_timerskill() 修正。
+ skill_castend_nodamage_id() 修正。
+ pc.c
+ pc_isUseitem() 修正。
+ script.c
+ buildin_getpartyname()、buildin_getguildname() 修正。
+ buildin_getguildmaster() 修正。
+ (db/)
+ cast_db.txt 修正。
+ (conf/gvg/)
+ ev_*.txt以外のtxt全てを修正。
+
+--------------------
+//0810 by 聖
+
+・MVPの処理を変更。(確率で10000があっても、他のアイテムも出るようにしました)
+・MVPで装備を入手した場合、鑑定済みで入手していた問題を修正。
+・スキル詠唱中にイグ葉や拡大鏡を使うとプレーヤーの使用可能な
+ 全スキルのLVが1に固定されてしまう問題を修正。
+・オークアーチャー等、モンスターによる罠スキルの有効期限が切れたときに、
+ 設置用トラップが出る問題を修正。
+・ログインエラー(パスワード入力ミスやBAN等)のエラーメッセージが
+ 正しくクライアントに通知されない問題を修正。
+・その他細かな修正。
+ (common/)
+ version.h 修正。
+ (login/)
+ login.c
+ parse_login() 修正。
+ parse_fromchar() 修正。
+ (char/)
+ int_guild.c
+ mapif_parse_GuildLeave() 修正。
+ (map/)
+ itemdb.c
+ itemdb_read_itemnametable() 修正。
+ atcommand.c
+ atcommand() 修正。
+ skill.c
+ skill_unit_timer_sub() 修正。
+ script.c
+ buildin_itemskill() 修正。
+ mob.c
+ mob_damage() 修正。
+
+--------------------
+//0809 by Kalen
+
+・東湖城ワープポイント修正
+・アマツ寿司屋修正
+・バグスレ129の問題修正?
+
+
+--------------------
+//0808 by ぴざまん
+
+・装備制限が上手く動作していなかったのを修正。
+・モンハウギルドはGvG開始時に作られるように変更。
+・GvG開始時に該当マップにいる全PC(占領ギルド員以外)をセーブポイントに戻すように修正。
+・モンハウギルドアジトでエンペを壊すと、モンハウが消えるように修正。
+ この修正に伴ってmaprespawnguildidの引数のflagの仕様を変更しました
+ flagはビットフラグになり、
+ 1ビット目:占領ギルド員をセーブポイントに戻すか
+ 2ビット目:占領ギルド員以外をセーブポイントに戻すか
+ 3ビット目:エンペ・ガーディアン以外のMOBを消すか
+ いずれも、0=NO、1=YESになります
+
+ (conf/gvg/)
+ ev_agit_aldeg.txt 修正。
+ ev_agit_gefg.txt 修正。
+ ev_agit_payg.txt 修正。
+ ev_agit_prtg.txt 修正。
+ TEST_prtg_cas01_AbraiJ.txt 修正。
+ TEST_prtg_cas01_mob.txt 修正。
+ (map/)
+ pc.c
+ pc_checkitem() 修正。
+ script.c
+ buildin_maprespawnguildid_sub() 修正。
+ buildin_maprespawnguildid() 修正。
+
+--------------------
+//0807 by 死神
+
+・0805でFD_SETSIZEを修正する所を間違ったので修正しました。56名止まりが治ると言う保証はありませんが...
+・一度に転送するパケットの長さを32768bytesから65536bytesに変更。
+ (common/)
+ mmo.h 修正。
+ socket.h 修正。
+ socket.c 修正。
+
+--------------------
+//0806 by Kalen
+
+・agitフォルダ→gvgフォルダへ移行
+ 諸意見あると思いますが、jROでは攻城戦をgvgと呼ぶことが一般的なのでこちらに統合します。
+ conf/gvg/
+ ###agitフォルダを削除してください### (Please delete the "agit" folder.)
+ getmaster対応
+
+・アマツの寿司屋バグ修正と項目追加(thx 114
+ conf/npc/npc_town_amatsu.txt
+
+・map_flag再修正
+ conf/map_flag.txt
+ [GVGMAP]確かに常にシーズモードなら問題ないですが、削除されましたので
+ 常にシーズモードではありません。従って解除時(時間外)には枝、テレポが使えます
+ 時間前に枝撒き、まだ実装してませんが宝箱奪取も可能になるので枝、テレポは常に使用不可で問題ないと思います。
+
+後前回書き忘れましたが、momotaroイベントですが、ちょっと不安定な可能性があります。
+原因がわからないのですが、ループしてるかもしれません。一応コメントアウトしてあります
+
+--------------------
+//0805 by 死神
+
+・文字化け修正。
+・シーズモードでのテレポート禁止や古木の枝使用禁止はソースレベルで
+処理しているのでmapflag.txtから削除。(因みにnopenaltyもソースレベルで
+処理しています。)
+・battle_athena.confのagit_eliminate_timeをgvg_eliminate_timeに変更。
+・@コマンド@GM削除。
+・FD_SETSIZEかcygwinで64に設定されていたのせいで最大接続人数が56名を
+越えるとマップ鯖が無限ループする問題修正。(ただテストができなかった物なので本当に大丈夫になったかどうかは不明です。あくまでも自分の予測にすぎない物ですが...)
+・文字化けのせいでどこをどう修正したか覚えてないので修正したファイルだけ。
+ (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 釈尊
+
+・アルベルタのぬいぐるみイベントでうさぎのぬいぐるみをあげるとサーバーが落ちるバグ修正
+
+ (conf/npc/)
+ npc_event_doll.txt 修正。
+
+--------------------
+//0803 by ぴざまん
+
+ GvGでエンペリウム崩壊時gvg_eliminate_timeの値に関わらず即座に退去させられていたバグ修正
+ GvGのセリフを一部修正
+ inter鯖でcastle.txtがないと起こる色々なエラーを修正
+ help.txtを修正(@gvgstart→@agitstart云々)
+
+ (conf/)
+ gvg/TEST_prtg_cas01_AbraiJ.txt 修正。
+ agit/ev_agit_prtgJ.txt 修正。
+ help.txt 修正。
+ (map/)
+ int_guild.c
+ inter_guild_init() 修正。
+
+--------------------
+//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
+・アマツ修正
+ 実装前のデータ、抜けてるデータなどを調査し修正
+ 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
+・map_flag修正
+ [GVGMAP]枝、テレポは常に使用不可
+・GVG関係
+ 0800のコマンドに対応
+
+--------------------
+//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 ぴざまん
+
+・GvG実装の為にinter-map間の通信仕様変更
+・0798のコンパイルエラー修正(byバグ報告スレ82氏)
+ (login/)
+ login.c
+ parse_login() 修正。
+ (map/)
+ intif.c
+ packet_len_table[] 修正。
+ intif_parse_GuildCastleInfo() 修正。
+ intif_parse_GuildCastleChange()をintif_parse_GuildCastleChangeErr()に改名・修正。
+ intif_parse() 修正。
+ guild.c
+ guild_read_castledb() 修正。
+
+ (char/)
+ inter.c
+ inter_send_packet_length[] 修正。
+ int_guild.c
+ inter_guildcastle_tostr() 修正。
+ inter_guildcastle_fromstr() 修正。
+ mapif_parse_GuildChangeCastle() 修正。
+ mapif_parse_GuildCastleInfo() 修正。
+ mapif_guild_castle_info() 修正。
+ mapif_guild_change_castle()をmapif_guild_change_castle_err()に改名・修正。
+ (common/)
+ mmo.h 修正。
+ version.h 修正。
+
+--------------------
+//0798 by 胡蝶蘭
+
+・login-serverのログイン失敗パケットの長さがおかしかったのを修正
+・login-serverにアクセスコントロール機能追加
+ ・login_athena.cnfにorder,allow,denyを記述することで、
+ IP単位(前方一致)でアクセスを禁止する機能。
+ ・指定方法は doc/conf_ref.txt を参照
+
+ (doc/)
+ conf_ref.txt
+ login_athena.cnfの部分修正
+ (login/)
+ login.c
+ グローバル変数 access_* 追加
+ parse_login()修正,check_ip()追加
+
+・アカウント作成用CGIスクリプト追加
+ ・自己責任&詳細な解説無し、質問されてもスルーする可能性有り
+ ・エディタで開いたら少し説明有り
+ ・CGI設置の基本さえわかれば問題ないはず
+ ・メッセージは英語、日本語両対応
+ (Accept-Languageがjaなら日本語に変換します)
+ ・管理者パスワードなしで動くのでセキュリティには注意(.htaccessなど推奨)
+
+ (tool/cgi/)
+ addaccount.cgi
+ アカウント作成用CGI。
+
+・その他
+ (tool/)
+ backup
+ castle.txtもバックアップするように
+
+--------------------
+//0797 by 死神
+
+・少し修正。
+・battle_athena.confの項目変更。(lootitem_time 削除、item_first_get_time、
+item_second_get_time、item_third_get_time、mvp_item_first_get_time、
+mvp_item_second_get_time、mvp_item_third_get_time 追加。)
+・アイテムルート権限を正しく実装。最初攻撃ではなく与えたダメージの
+量によって収得権限を与えるように変更。(最初収得権限のみテスト)
+パーティの場合パーティの設定に合わせる必要がありますがまだパケットが
+不明な所がある為同じパーティなら収得できるようになっています。
+・ボウリングバッシュのバグ修正。(多分修正されたはず...)
+・装備スクリプトbonusにbSplashRangeとbSplashAddRange追加。
+bSplashRangeとbSplashAddRangeは武器でダメージを与えた時のみ発動、通常の武器攻撃扱いなので避けられるが(Flee2による完全回避は不可能)クリは出ないようになっていて武器による状態異常は発生しません。本鯖仕様なんて知りません。
+・スキルの重ね置き処理を本鯖に合わせて修正。
+・mapflagのgvgはいつもなっているわけじゃないので削除。
+・その他細かい修正。
+ athena-start 修正。
+ (common/)
+ mmo.h 修正。
+ (conf/)
+ mapflag.txt 修正。
+ battle_athena.conf 修正。
+ (db/)
+ const.txt 修正。
+ item_db.txt 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ item_bonus.txt 修正。
+ (map/)
+ mob.c
+ mob_spawn()、mob_damage()、mob_class_change()、mob_warp() 修正。
+ mob_delay_item_drop()、mob_delay_item_drop2() 修正。
+ mobskill_castend_pos() 修正。
+ pc.c
+ pc_takeitem()、pc_dropitem()、pc_equipitem() 修正。
+ pc_calcstatus()、pc_bonus() 修正。
+ skill.c
+ skill_attack()、skill_additional_effect()、skill_castend_damage_id() 修正。
+ skill_castend_nodamage_id()、skill_produce_mix() 修正。
+ skill_arrow_create()、skill_unit_timer_sub()、skill_castend_pos() 修正。
+ map.h 修正。
+ map.c
+ map_addflooritem() 修正。
+ script.c
+ buildin_getitem() 修正。
+ pet.c
+ pet_return_egg()、pet_get_egg()、pet_unequipitem() 修正。
+ battle.h 修正。
+ battle.c
+ battle_calc_pet_weapon_attack()、battle_calc_mob_weapon_attack() 修正。
+ battle_calc_pc_weapon_attack() 修正。
+ battle_weapon_attack()、battle_config_read() 修正。
+
+--------------------
+//0796 by huge
+
+・細かい修正
+ (conf/npc/)
+ npc_event_valentine.txt 修正。
+
+ (map/)
+ pc.c
+ pc_takeitem() 修正。
+ skill.c
+ skill_unit_timer_sub() 修正。
+
+--------------------
+//0795 by Kalen
+
+・雑談341のnpc_warp_niflheim.txt追加
+ conf/warp/npc_warp_niflheim.txt
+
+・mapflag.txt修正(GVGMAP設定)
+ nosaveはしていません
+
+・map_athena.confの修正
+ umbala niflheim等の追加
+ コメントアウトしてあります。
+
+・バレンタインスクリプト追加
+ conf/npc/npc_event_valentine.txt
+ チョコ達のDropは弄っていません。お好みでどうぞ
+ 尚、手作りチョコを食べたときのエフェクトは
+ 最新クライアントにすれば見えます。
+
+・GVGScript追加
+ conf/gvg/以下
+ Weiss時代に作成したものをAthena用にコンバート&台詞修正
+ prtg_cas01以外は旗のみです。
+ GVGDATAは鯖再起動で消滅します。
+ エラーが出るようならコメントアウトしてください。
+ MobData、執事Scriptもprtg_cas01のみです。(TestScript)
+ あくまでテストスクリプトです。GVG実装の参考にどうぞ
+
+--------------------
+//0794 by DRG
+
+・skillusedで指定したIW,QMなどにのってる間MOBスキルを使用するように変更
+・アップスレ3の7のathena-startを一応含めときました
+
+ athena-start
+ (map/)
+ skill.c
+ skill_unit_onplace() 修正。
+
+--------------------
+//0793 by huge
+
+・サーバーsnapshot
+・サーバーがクラッシュするバグを修正
+・発動せずに罠が消えたら、設置用トラップが返ってくるように修正。
+・ルート権限で、同じパーティーのキャラはすぐ拾えるように修正。
+・バグ報告スレ3 >>54 のバグ修正。
+・ログイン時にサーバー側にIDを表示するようにしました。
+ (login/)
+ login.c
+ parse_login() 修正。
+ (conf/npc/)
+ npc_event_doll.txt 修正。
+ (map/)
+ skill.c
+ skill_unit_timer_sub() 修正。
+ mob.c
+ mob_spawn_dataset() 修正。
+ mob_damage() 修正。
+ pc.c
+ pc_additem() 修正。
+
+--------------------
+//0791 by 聖
+
+・マップサーバがクラッシュするバグ修正。
+・イグ葉を使ってもジェムが必要になる問題を修正。
+・PvP強制送還実装。
+・PvPでリザレクションが出来なかった問題を修正。
+・その他細かな修正。
+ (map/)
+ guild.c
+ mob.c
+ pc.c
+ skill.c
+
+--------------------
+//0790 by 死神
+
+・バグ修正。
+ (conf/)
+ battle_athena.conf 誤字修正。
+ (doc/)
+ conf_ref.txt 誤字修正。
+ (common/)
+ mmo.h 修正。
+ (map/)
+ itemdb.h 修正。
+ map.h 修正。
+ skill.c
+ skill_check_condition()、skill_use_pos()、skill_unit_onplace() 修正。
+
+--------------------
+//0789 by huge
+
+・ドロップアイテムにルート権限を実装。
+・最初に攻撃した人以外がドロップアイテムを拾えるまでの時間を設定できるように。
+ (/conf)
+ battle_athena.conf 項目追加。
+
+ (/doc)
+ conf_doc.txt 説明追加。
+
+ (/map)
+ battle.h
+ Battle_Config{} 修正。
+ battle.c
+ battle_config_read() 修正。
+ itemdb.h
+ item_data {} 修正。
+ map.h
+ flooritem_data {} 修正。
+ mob_data {} 修正。
+ map.c
+ map_addflooritem() 修正。
+ mob.c
+ delay_item_drop{} 修正。
+ mob_spawn() 修正。
+ mob_damage() 修正。
+ mob_delay_item_drop() 修正。
+ mob_warp() 修正。
+ pc.c
+ pc_takeitem() 修正。
+
+--------------------
+//0788 by あゆみ
+
+・cardスキルの処理?を修正。
+・@allskillコマンドの再修正。
+
+ (map/)
+ pc.c
+ pc_skill() 修正。
+ pc_allskillup() 修正。
+
+--------------------
+//0787 by ぽぽぽ
+
+・ペットにもmob_avail.txtの設定を適用するようにした。
+・MOBスキルのskillusedでval1に0を入れるとあらゆるスキルに対して発動するようにした。
+・skillusedで発動したスキルの対象を、発動させたPCにするかどうか設定できるようにした(対IWハメなど?)。
+ (/map)
+ clif.c
+ clif_pet0078()、clif_pet007b()修正。
+ mob.c
+ mobskill_use()修正。
+ skill.c
+ skill_attack() 、skill_castend_damage_id()修正。
+ battle.h
+ battle.c
+ battle_config_read()修正。
+
+--------------------
+//0786 by huge
+
+・BDS修正
+ 前から吹き飛ばして行くと良くないかもしれないので、後ろから処理
+ 有効範囲の修正
+
+ (/map)
+
+ skill.h
+ skill.c
+ skill_castend_damage_id() 修正。
+ skill_castend_nodamage_id() 修正。
+ skill_brandishspear_first() 修正。
+ skill_brandishspear_dir() 修正。
+
+--------------------
+//0785 by 死神
+
+・本鯖に合わせて修正。(韓国鞍のパッチnoticeを参考して修正しました。)
+・BBとBSのキャスティング時間を0.7秒にしてディレイは0に変更。
+・ghostの変わりにマップ移動後の無敵時間を設定。この時間の間はどんな攻撃も受けないが移動や攻撃、スキル使用、アイテム使用でこの時間はなくなります。シーズモードではこの無敵時間を2倍として適用。
+・シーズモードで死んでも経験が減らないように修正。(mapflagのnopenaltyを設定する必要はありません。)
+・スキッドで滑べる距離増加。
+・既に沈黙にかかってる対象にレックスディビーナを使うと沈黙が解除されるように変更。
+・呪いにかかると移動速度も減るように修正。
+・battle_athena.confに項目変更。
+・スキルの重ね置きを判断処理を少し変更。
+・HPの自然回復時間が4秒ではなく6秒だとわかったのでデフォルト修正とbattle_athena.conf修正。
+・その他細かい修正やバグ修正。
+・殆どテストしてません。
+ (conf/)
+ atcommand_athena.conf 修正。
+ battle_athena.conf 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ (db/)
+ cast_db.txt 修正。
+ (map/)
+ atcommand.c 修正。
+ clif.c
+ clif_mob0078()、clif_mob007b()、clif_skill_estimation() 修正。
+ clif_mob_class_change()、clif_parse_WalkToXY() 修正。
+ clif_parse_ActionRequest()、clif_parse_LoadEndAck() 修正。
+ clif_parse_UseItem()、clif_parse_UseSkillToId() 修正。
+ clif_parse_UseSkillToPos()、clif_parse_UseSkillMap() 修正。
+ mob.h 修正。
+ mob.c
+ mob_get_viewclass()、mob_attack()、mob_target() 修正。
+ mob_ai_sub_hard_activesearch()、mob_ai_sub_hard() 修正。
+ mobskill_castend_id()、mobskill_castend_pos() 修正。
+ skill.h 修正。
+ skill.c
+ skill_can_produce_mix()、skill_castend_damage_id() 修正。
+ skill_castend_nodamage_id()、skill_castend_id() 修正。
+ skill_castend_pos()、skill_use_id()、skill_readdb() 修正。
+ skill_check_condition()、skill_unit_onplace()、skill_unitsetting() 修正。
+ skill_additional_effect()、skill_check_unit_range() 修正。
+ skill_check_unit_range_sub()、skill_status_change_end() 修正。
+ skill_status_change_start() 修正。
+ pc.h
+ pc.c
+ pc_ghost_timer()、pc_setghosttimer()、pc_delghosttimer() 削除。
+ pc_gvg_invincible_timer() -> pc_invincible_timer()に変更。
+ pc_setgvginvincibletimer() -> pc_setinvincibletimer()に変更。
+ pc_delgvginvincibletimer() -> pc_delinvincibletimer()に変更。
+ pc_authok()、pc_attack_timer()、pc_calcstatus() 修正。
+ pc_setrestartvalue()、pc_damage()、pc_allskillup() 修正。
+ do_init_pc() 修正。
+ battle.h 修正。
+ battle.c
+ battle_config_read()、battle_weapon_attack()、battle_check_target() 修正。
+ battle_calc_pet_weapon_attack()、battle_calc_mob_weapon_attack() 修正。
+ battle_calc_pc_weapon_attack()、battle_get_speed() 修正。
+ map.h 修正。
+ map.c
+ map_quit() 修正。
+
+--------------------
+//0784 by あゆみ
+
+・カードスキルを覚えている状態で@allskillコマンドを使用するとmap-serverが暴走する問題を修正。
+
+ (map/)
+ pc.c
+ pc_allskillup() 修正。
+
+--------------------
+//0783 by huge
+
+・ブランディッシュスピアの修正
+ 範囲指定、斜めの際の格子範囲、攻撃力計算
+ 多分合ってると思うんですけど、イマイチ自信が持てない・・・
+ (参考)みすとれ巣 -スキル関連豆情報
+・スペルブレイカーをちょっと修正
+・プロボックをMVPmobに効かないよう修正
+・バグ報告スレ3 >>8 で報告されたものの取り込み
+
+ (/db)
+ create_arrow.txt 修正。
+ skill_db.txt 修正。
+
+ (/map)
+ battle.c
+ battle_calc_pet_weapon_attack() 修正。
+ battle_calc_mob_weapon_attack() 修正。
+ battle_calc_pc_weapon_attack() 修正。
+
+ skill.h
+ skill.c
+ skill_brandishspear_first() 追加。
+ skill_brandishspear_dir() 追加。
+ skill_castend_nodamage_id() 修正。
+ skill_castend_damage_id() 修正。
+ skill_unit_group() 修正。
+
+--------------------
+//0782 by ぴざまん
+・@allskillコマンドの使用条件が参照されていなかったバグ修正
+ (/map)
+ atcommand.c
+ atcommand() 修正。
+
+--------------------
+//0781 by Chunglyeng
+・バド, ダンサー音楽具現
+ (/map)
+ skill.c 修正。
+
+--------------------
+//0780 by reia
+・ペコペコの卵などが孵化するとノビになってしまう問題修正。
+・GMコマンド「@kickall」が何時の間にか無効になっていたので修正。
+
+ (/conf)
+ atcommand_athena.conf 修正。
+ (db/)
+ mob_skill_db.txt 修正。
+ (map/)
+ atcommand.c
+ atcommand_config_read() 修正。
+
+--------------------
+//0779 by あゆみ
+
+・全スキル取得コマンドの追加。
+ ・GMで全スキルを覚えられるようにしている場合や、スキルの数が多い職業は一部のスキル表示がおかしくなります。その場合はリログして下さい。
+ @allskill : 現在の職業で取得可能な全スキルを取得する。(クエストスキル含む)
+
+ (conf/)
+ battle_athena.conf 修正。
+ help.txt 修正。
+ (map/)
+ atcommand.h 修正。
+ atcommand.c
+ atcommand() 修正。
+ pc.h 修正。
+ pc.c
+ pc_allskillup() 追加。
+ (doc/)
+ conf_ref.txt 修正。
+ help.txt 修正。
+
+--------------------
+//0778 by huge
+
+・スペルブレイカーの修正
+ ・キャスティングタイムの無いスキルには効かないように修正。
+ ・使用された相手の消費SPの修正。
+
+ (map/)
+ skill.c
+ skill_castend_nodamage_id() 修正。
+
+--------------------
+//0777 by ぴざまん
+
+・ギルド攻城戦仮実装
+ ・基本的な部分だけしか実装してない上、いくつかの点で本鯖と相違があります。
+ ・攻城戦開始と終了は@コマンドで行います
+ @gvgstart : 攻城戦開始
+ @gvgend : 攻城戦終了
+ ・battle_athena.confに項目追加。
+ (char/)
+ int_guild.c
+ inter_guild_init()、inter_guild_readdb()、inter_guild_save() 修正。
+ inter_castle_save_sub()、mapif_guild_castle_info() 追加。
+ mapif_guild_change_castle()、mapif_parse_GuildCastleInfo() 追加。
+ mapif_parse_GuildChangeCastle() 追加。
+ inter.c
+ inter_config_read() 修正。
+ inter_send_packet_length[]、inter_recv_packet_length[] 修正。
+ int_guild.h 修正。
+ (map/)
+ atcommand.c
+ atcommand()、atcommand_config_read() 修正。
+ battle.c
+ battle_config_read() 修正。
+ guild.c
+ guild_castle_search()、guild_read_castledb()追加。
+ do_init_guild() 修正。
+ guild_gvg_init()、guild_gvg_final()、guild_gvg_final_sub() 追加。
+ guild_gvg_eliminate()、guild_gvg_eliminate_sub() 追加。
+ guild_gvg_eliminate_timer()、guild_gvg_empelium_pos() 追加。
+ guild_gvg_break_empelium() 追加。
+ intif.c
+ intif_parse()、packet_len_table[] 修正。
+ intif_parse_GuildCastleInfo()、intif_parse_GuildCastleChange() 追加。
+ intif_guild_castle_info()、intif_guild_castle_change() 追加。
+ mob.c
+ mob_damage() 修正。
+ atcommand.h 修正。
+ battle.h 修正。
+ guild.h 修正。
+ intif.h 修正。
+ mob.h 修正。
+ (common/)
+ mmo.h 修正。
+ (conf/)
+ battle_athena.conf 修正。
+ inter_athena.conf 修正。
+ msg_athena.conf 修正。
+ atcommand_athena.conf 修正。
+ (db/)
+ castle_db.txt 追加。
+--------------------
+//0776 by 死神
+
+・NPCスキル孵化実装。(mob_skill_db.txtのval1を使います。)
+・mob_skill_db.txtの確率を千分率から万分率に変更。(ただmob_skill_db.txtの修正はしてません。)
+・モンスターがダブルアタックする問題修正。(修正されたかどうかの自信はありませんが...)
+・その他細かい修正。
+ (db/)
+ mob_skill_db.txt 修正。
+ skill_db.txt 修正。
+ (map/)
+ map.h 修正。
+ mob.h 修正。
+ mob.c
+ mob_spawn_dataset()、mob_spawn() 修正。
+ mob_changestate()、mobskill_use() 修正。
+ mob_class_change() 追加。
+ npc.c
+ npc_parse_mob() 修正。
+ battle.c
+ battle_check_target() 修正。
+ clif.h 修正。
+ clif.c
+ clif_mob_class_change() 追加。
+ skill.c
+ skill_castend_nodamage_id() 修正。
+
+--------------------
+//0775 by 死神
+
+・シーズモードの処理修正。
+・シーズモードの無敵時間の間はどんな攻撃も受けないように修正。
+・シーズモードの無敵時間が時間切れになる前には解除されないように修正。
+・battle_athena.confに項目追加。
+・@hideや/hideによるGMハイディング中は自分に自動使用されるスキル以外のスキル使用や攻撃を受けないように修正。
+・ハイディング中地属性スキル以外の攻撃を受けないように修正。(トラップやクァグマイア等のスキルは影響を受けるかどうか不明なので今までと同じように影響を受けるように処理。)
+・トンネルドライブの移動速度を本鯖に合わせました。
+・その他バグ修正や細かい修正。(殆ど未テスト)
+ (conf/)
+ battle_athena.conf 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ (map/)
+ battle.h 修正。
+ battle.c
+ battle_check_target()、battle_calc_damage() 修正。
+ battle_calc_pet_weapon_attack()、battle_calc_mob_weapon_attack() 修正。
+ battle_calc_pc_weapon_attack()、battle_calc_magic_attack() 修正。
+ battle_calc_misc_attack() 修正。
+ battle_config_read()、battle_weapon_attack() 修正。
+ pc.h 修正。
+ pc.c
+ do_init_pc()、pc_authok() 修正。
+ pc_attack()、pc_attack_timer() 修正。
+ pc_setgvg_ghosttimer()、pc_delgvg_ghosttimer()を
+ pc_setgvginvincibletimer()、pc_delgvginvincibletimer()に修正。
+ pc_gvg_invincible_timer() 追加。
+ pc_attack_timer()、pc_steal_item()、pc_calcstatus() 修正。
+ clif.c
+ clif_parse_ActionRequest()、clif_parse_UseItem() 修正。
+ clif_parse_UseSkillToId()、clif_parse_UseSkillToPos() 修正。
+ clif_parse_UseSkillMap()、clif_parse_WalkToXY() 修正。
+ map.h 修正。
+ map.c
+ map_quit() 修正。
+ mob.c
+ mob_attack()、mob_target()、mob_ai_sub_hard_activesearch() 修正。
+ mob_ai_sub_hard_mastersearch()、mob_ai_sub_hard() 修正。
+ mob_damage()、mobskill_castend_id()、mobskill_castend_pos() 修正。
+ skill.c
+ skill_castend_damage_id()、skill_attack() 修正。
+ skill_castend_id()、skill_castend_pos()、skill_castend_map() 修正。
+
+--------------------
+//0774 by 獅子o^.^o
+・Monk job bouns 修正
+・ドケビ 修正
+(db/)
+ job_db2.txt 修正
+ pet_db.txt 修正
+
+--------------------
+//0773 by 聖
+
+・細かいバグ修正
+ (map/)
+ skill.c 修正。
+ battle.c 修正。
+
+--------------------
+//0772 by ぴざまん
+
+・シーズモード下で以下の点を修正
+ ・連続して攻撃できなくなっていたバグ修正
+ ・ダメージ軽減率が正しく設定できなかったバグ修正
+ ・無敵時間実装。battle_athena.confのgvg_ghost_timeで設定できます
+
+・ハイディングで魔法攻撃等を回避できなかったバグ修正
+
+ (map/)
+ skill.c
+ skill_attack()、skill_unit_onplace()、skill_check_condition() 修正。
+ clif.c
+ clif_parse_ActionRequest()、clif_parse_UseItem() 修正。
+ clif_parse_UseSkillToId()、clif_parse_UseSkillToPos() 修正。
+ clif_parse_UseSkillMap()、clif_parse_WalkToXY() 修正。
+ pc.c
+ do_init_pc()、pc_authok() 修正。
+ pc_attack()、pc_attack_timer() 修正。
+ pc_setgvg_ghosttimer()、pc_delgvg_ghosttimer() 追加。
+ pc_gvg_ghost_timer() 追加。
+ map.c
+ map_quit() 修正
+ battle.c
+ battle_config_read()、battle_weapon_attack() 修正。
+ battle.h 修正。
+ pc.h 修正。
+
+--------------------
+//0771 by huge
+
+・スペルブレイカー実装
+ (map/)
+ skill.c
+ skill_castend_nodamage_id() 修正。
+ (db/)
+ skill_db.txt 修正。
+
+--------------------
+//0770 by 聖
+
+・青箱系の処理変更
+・その他バグ修正
+ (map/)
+ battle.c 修正。
+ itemdb.c 修正。
+ mob.c 修正。
+ script.c 修正。
+
+--------------------
+//0769 by 死神
+
+・シーズモード修正。
+・無敵時間の方はghost_timer以外の方法で実装するつもりなので今は削除しています。
+・スクリプトviewpointが正しく動作しない問題修正。
+・produce_db.txtを修正。(乳鉢はskill_require_db.txtで処理しています。そしてアイテムの数を0にすれば消耗はされないけど作る時必要なアイテムになります。)
+・その他細かい修正。
+ (conf/)
+ battle_athena.conf 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ (db/)
+ produce_db.txt 修正。
+ (map/)
+ battle.h 修正。
+ battle.c
+ battle_calc_damage()、battle_calc_weapon_attack() 修正。
+ battle_calc_pet_weapon_attack()、battle_calc_mob_weapon_attack() 修正。
+ battle_calc_pc_weapon_attack()、battle_calc_magic_attack() 修正。
+ battle_calc_misc_attack()、battle_check_target()、battle_config_read() 修正。
+ skill.c
+ skill_unit_onplace()、skill_castend_damage_id()、skill_castend_id() 修正。
+ skill_use_id()、skill_use_pos()、skill_check_condition() 修正。
+ skill_can_produce_mix() 修正。
+ pc.c
+ pc_attack_timer()、pc_attack()、pc_isUseitem()、pc_delitem() 修正。
+ pc_damage() 修正。
+ mob.c
+ mob_damage()、mobskill_use_id()、mobskill_use_pos() 修正。
+ script.c
+ buildin_viewpoint()、buildin_emotion() 修正。
+ makefile 修正。
+
+--------------------
+//0768 by ぴざまん
+
+・シーズモード下で、以下の点を修正
+ ・死亡したらセーブポイントに強制送還するように修正
+ ・特定のアイテムが使用できないように修正(アンティペインメント・ハエの羽)
+ ・特定のスキルが使用できないように修正(ワープポータル・バックステップ・インティミデイト・テレポート・インデュア)
+ ・同盟ギルドには無条件で攻撃できないように修正
+ ・敵対ギルドには無条件で攻撃できるように修正
+ ・無敵時間中は両者とも攻撃できないように修正
+
+ソースレベルでテレポ、ハエの使用を禁じているため攻城戦MAPのmapflagにnoteleportは必要ありません
+また、無敵時間はghost_timer依存です。つまりbattle_athena.conf内のghost_timeが無敵時間になります
+
+ (map/)
+ skill.c
+ skill_castend_damage_id()、skill_castend_id() 修正
+ skill_check_condition() 修正
+ pc.c
+ pc_damage() 修正
+ battle.c
+ battle_weapon_attack() 修正
+
+--------------------
+//0767 by huge
+
+・ファーマシーで、製造の書が減る問題を修正
+・武器製造DBで、いくつか抜けていたのを修正
+
+ (map/)
+ skill.c 修正。
+ (db/)
+ produce_db.txt 修正。
+
+--------------------
+//0766 by ぴざまん
+
+・シーズモード下で、以下の点を修正
+ ・正規ギルド承認がないとエンペリウムに攻撃が効かないように修正
+ ・エンペリウムに対するスキル攻撃が効かないように修正
+ ・魔法攻撃、遠距離攻撃、罠のダメージ補正を実装
+ 魔法攻撃:50% 遠距離攻撃:75% 罠:60%
+ これは人にもエンペリウムにも適用されます
+ (map/)
+ battle.c
+ #include "guild.h" 追加
+ battle_calc_damage()、battle_calc_weapon_attack() 修正
+
+--------------------
+//0765 by ぴざまん
+
+・装備制限実装
+・装備制限がかかった装備品は該当マップに移動した際に自動的に装備が外れ、
+ 再装備もできなくなります
+・制限できるのは装備品のみです。カード類は制限できません
+ (db/)
+ item_noequip.txt 追加
+ (map/)
+ itemdb.h 修正
+ itemdb.c
+ do_init_itemdb()、itemdb_search() 修正
+ itemdb_read_noequip 追加
+ pc.c
+ pc_checkitem()、pc_isequip() 修正
+
+--------------------
+//0764 by 死神
+
+・全てのダメージが1になる防御を10000から1000000に変更。
+・battle_athena.confに項目追加。
+・モンスターから経験値を貰う処理を本鯖のように修正。
+・スキルスローポイズン実装。
+・交換バグ修正。
+・その他細かい修正。
+・テストは殆どしてません。
+ (db/)
+ mob_db.txt 修正。
+ skill_db.txt 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ db_ref.txt 修正。
+ (conf/)
+ battle_athena.conf 修正。
+ (map/)
+ makefile 修正。
+ battle.h 修正。
+ battle.c
+ battle_get_def()、battle_get_mdef() 修正。
+ battle_calc_pet_weapon_attack()、battle_calc_mob_weapon_attack() 修正。
+ battle_calc_pc_weapon_attack()、battle_calc_magic_attack() 修正。
+ battle_calc_misc_attack()、battle_config_read() 修正。
+ skill.h 修正。
+ skill.c
+ skill_castend_nodamage_id()、skill_castend_damage_id() 修正。
+ skill_check_condition()、skill_status_change_timer() 修正。
+ skill_status_change_end()、skill_status_change_start() 修正。
+ skill_additional_effect()、skill_produce_mix()、skill_unit_timer_sub() 修正。
+ skill_check_unit_sub()を skill_check_unit_range_sub()に変更。
+ skill_check_unit_range() 追加。
+ skill_castend_pos()、skill_area_sub_count() 修正。
+ mob.c
+ mobskill_castend_pos()、mob_damage() 修正。
+ clif.c
+ clif_parse_TradeRequest()、clif_parse_TradeAck() 修正。
+ clif_parse_TradeAddItem()、clif_parse_TradeOk() 修正。
+ clif_parse_TradeCansel()、clif_parse_TradeCommit() 修正。
+ map.h 修正。
+ map.c
+ do_init() 修正。
+ pc.c
+ pc_calc_skilltree()、pc_calcstatus() 修正。
+ tarde.c
+ trade_tradeack() 修正。
+
+--------------------
+//0763 by 胡蝶蘭
+
+・サーバーsnapshot
+ フォルダを整理したので注意してください。
+ 以前のセーブデータ(account.txtなど)はsaveフォルダに置いてください
+ cnfファイルは各種ファイルのパスが変わってるので、
+ この古いものをコピーではなく、新しく書き換えなおしてください。
+
+・フォルダ整理
+ confフォルダ
+ NPC関連をconf/npc/、MOB配置関連をconf/mob/、WARP関連をconf/warp/
+ テストやサンプルをconf/sample/に移動しました。
+ dbフォルダ
+ sampleフォルダのうちdb関係を db/sampleに移動しました。
+ help.txt/motd.txt
+ confフォルダに移動しました
+ account.txt/athena.txt/guild.txt/party.txt/pet.txt/storage.txt
+ saveフォルダに移動しました
+ tool/backup
+ パス修正
+
+・motd.txt/help.txtのパスをmap_athena.cnfで指定できるように
+ map.h/map.c/atcommand.c/atcommand.h修正
+
+・athena-startにrestartオプション追加
+ ./athena-start restartでAthenaを再起動します
+
+--------------
+//0761 by ぽぽぽ
+
+・MOBのMDEFに10000以上指定してもファイアピラーで普通にダメージを与えてしまうのを修正。
+ (map/)
+ battle.c
+
+--------------
+//0760 by ll3y
+
+・文字化け修正
+ (map/)
+ script.c
+
+--------------
+//0759 by 獅子o^.^o
+・スピアクイッケン 修正
+・Dancer skill tree 修正
+(db/)
+ cast_db.txt 修正
+ skill_tree.txt 修正
+
+--------------
+//0758 by hack
+・Put 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
+
+・Interix(Windows Services for Unix 3.5)でコンパイルが通るように修正
+ Interop Systems(http://www.interopsystems.com/)よりgmakeとzlibを取ってくるか、
+ 自前でInterix用を用意する必要があります。
+ (common/)
+ socket.h 修正。
+
+--------------
+//0755 by 死神
+
+・バグ修正と説明追加。(報告されたのは多分全て修正されたのかと...)
+・0751でスキルの最大レベルを100まで設定できるようにしました。
+・cast_db.txtに入っている状態異常の維持時間は自分が適度に入れた物です。本鯖の仕様なんて知りませんので。
+ (doc/)
+ db_ref.txt 修正。
+ (db/)
+ cast_db.txt 修正。
+ skill_db.txt 修正。
+ (map/)
+ skill.h 修正。
+ skill.c
+ skill_check_unit_sub()、skill_castend_id()、skill_use_id() 修正。
+ skill_status_change_end()、skill_status_change_start() 修正。
+ skill_castend_map() 修正。
+ mob.c
+ mobskill_castend_id()、mobskill_castend_pos() 修正。
+ pc.c
+ pc_calcstatus() 修正。
+ battle.c
+ battle_calc_pc_weapon_attack()
+ battle_calc_mob_weapon_attack()
+ battle_calc_magic_attack()
+
+--------------
+//0754 by 獅子o^.^o
+(db/)
+ cast_db.txt 修正
+
+--------------
+//0753 by 聖
+
+・IWの発生ポイントを指定するとメテオのエフェクトが一切出なくなる
+ 問題が復活していたので修正。
+・warningを出ないようにコード修正。
+ (map/)
+ skill.c
+ skill_castend_pos2() 修正。
+ chrif.h
+
+--------------
+//0752 by ぴざまん
+
+・changesexスクリプト実装。性別を反転させることができます
+ 性別反転成功後は、そのプレイヤーは強制的に接続を切断されます
+ また、ダンサー・バードの互換性はかなり怪しいです
+ ダンサー・バードがスロット内どこかに居るアカウントでの反転は、以下の点に注意して下さい
+ ・必ず反転させる前にそのキャラクターをスキルリセットしてください
+ そのまま反転させると、共通するスキル(楽器の練習等)しか残らなくなってしまいます
+ ・ダンサー・バード専用武器を装備している場合は、外してから反転させてください
+ そのまま反転させると、そのキャラクターの開始時に
+ クライアントエラーが出ます(出るだけで、落ちることはないのですが…)
+・データベース修正 by 獅子o^.^o
+ (map/)
+ chrif.c
+ packet_len_table[]、chrif_parse()修正
+ chrif_changesex()、chrif_changedsex()追加
+ chrif.h 修正
+ (char/)
+ char.c
+ parse_frommap()、parse_tologin()修正
+ (login/)
+ login.c
+ parse_fromchar()修正
+ (db/)
+ cast_db.txt 修正
+ skill_require_db.txt 修正
+
+--------------
+//0751 by 死神
+
+・skill_db.txtとcast_db.txtの変更とskill_require_db.txtの追加。
+・毒にかかるとHPが減るように変更。HPは1秒に最大HPの1%減ります。(未テスト)
+・石化を進行中の物と完全な物に分けてHPが減るように変更。(1秒に最大HPの1%)ブレッシングで完全石化だけ治せるように修正。(未テスト)
+・ハンターのトラップにエフェクト実装。ただランドマインとショックウェーブは爆発エフェクトが出ないようです。ランドマインはファイアピラーの爆発エフェクトが出るように変えています。
+・オートカウンターの方向チェックをするように変更と本鯖仕様に合わせました。
+・バックスタブも方向チェックをするように変更。
+・インティミデイトの処理変更。
+・ディフェンダーの移動速度減少を本鯖に合わせました。ASPDは勝手ながら
+(30 - (skilllv*5))%が減るようにしましたが本鯖でいくら程減るのかの情報をお願いします。
+・トンネルドライブLV1で移動速度が150から312になるのが確認されて計算を変更しましたがレベルによってどれぐらい増加するかは不明です。情報を求めます。(今の計算式は適度に作った物です。)
+・ポーション製造の計算式変更とちょっと修正。
+・一部地面スキルの重ね置きを禁止。
+・bNoMagicDamageで魔法による異常やステータスアップ効果が出ないように修正。(リザレクション以外の魔法は無効になります。)
+・battle_athena.confに項目追加。
+・その他色々と修正。
+・変更されたskill_db.txt、castdb.txtと追加されたskill_require_db.txtの構造は今の所自分しか知らないのでdb_ref.txtに説明を追加する予定なのでそれまではこれらの変更は控えてください。
+ (char/)
+ int_guild.c 修正。
+ (conf/)
+ battle_athena.conf 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ (db/)
+ skill_db.txt 修正。
+ skill_require_db.txt 修正。
+ cast_db.txt 修正。
+ (map/)
+ battle.h 修正。
+ battle.c
+ battle_counttargeted()、battle_calc_pet_weapon_attack() 修正。
+ battle_calc_mob_weapon_attack()、battle_calc_pc_weapon_attack() 修正。
+ battle_weapon_attack()、battle_config_read() 修正。
+ skill.h 修正。
+ skill.c
+ skill_attack()、skill_castend_damage_id() 修正。
+ skill_castend_nodamage_id()、skill_status_change_start() 修正。
+ skill_check_condition()、skill_castend_pos() 修正。
+ skill_use_id()、skill_use_pos() 修正。
+ skill_status_change_timer()、skill_status_change_start() 修正。
+ skill_check_unit_sub() 追加。
+ pc.h 修正。
+ pc.c
+ pc_damage()、pc_counttargeted()、pc_counttargeted_sub() 修正。
+ mob.h 修正。
+ mob.c
+ mob_countslave()、mob_counttargeted()、mob_counttargeted_sub() 修正。
+ mobskill_use()、mob_can_move()、mob_damage() 修正。
+ mobskill_use_id()、mobskill_use_pos()、mobskill_castend_id() 修正。
+ mobskill_castend_pos() 修正。
+ map.c
+ map_quit() 修正。
+
+--------------
+//0750 by CHRIS
+
+・スキル関係のDBを調整
+ (db/)
+ skill_db.txt
+ cast_db.txt
+ skill_require_db.txt
+
+--------------
+//0749 by 死神
+
+・色々と変更と修正。
+・スキルの仕様変更や実装、状態異常の仕様変更や実装。
+・スキルの使用条件をdbに設定できるように変更。
+・skill_db.txtとcast_db.txtの仕様変更。
+・マップ鯖の無限ループ可能性がある部分を修正。(あくまでも可能性が
+あっただけの物です。無限ループの原因とは断言できません。)
+・トラップの発動実装。(ただ実際に動作はまだ修正していません。
+見た目が変わっただけです。)
+・battle_athena.confに項目追加を削除。
+・0748の修正削除と文字化け修正。
+・skill_db.txt、cast_db.txt、skill_require_db.txtの方がまだ完成されていないので
+かなりの量のスキルが正しく動作しません。(db_ref.txtに設定方法を入れないと
+ けないのですが時間がなかったので...) そして修正はしましたがテストは
+殆んどしてませんので注意してください。
+ (char/)
+ char.c 修正。
+ int_party.h 修正。
+ int_party.c 修正。
+ int_guild.h 修正。
+ int_guild.c 修正。
+ int_pet.h 修正。
+ int_pet.c 修正。
+ int_storage.h 修正。
+ int_storage.c 修正。
+ charの方は大した修正はしてません。
+ (conf/)
+ battle_athena.conf 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ (db/)
+ skill_db.txt 修正。
+ cast_db.txt 修正。
+ skill_require_db.txt 追加。
+ produce_db.txt 修正。
+ (map/)
+ map.h 修正。
+ map.c
+ map_check_dir() 追加。
+ map_readmap()、map_addblock()、map_delblock() 修正。
+ map_foreachinarea()、map_foreachinmovearea() 修正。
+ map_addflooritem() 修正。
+ pc.h 修正。
+ pc.c
+ pc_spiritball_timer()、pc_addspiritball()、pc_delspiritball() 修正。
+ pc_steal_item()、pc_steal_coin()、pc_calcstatus() 修正。
+ pc_checkallowskill()、pc_jobchange()、pc_checkweighticon() 修正。
+ pc_damage()、pc_equipitem()、pc_walk()、pc_stop_walking() 修正。
+ pc_authok()、pc_counttargeted()、pc_counttargeted_sub() 修正。
+ pc_damage()、pc_setpos() 修正。
+ skill.h 修正。
+ skill.c
+ skill_get_range()、skill_get_sp()、skill_get_num() 修正。
+ skill_get_cast()、skill_get_delay() 修正。
+ skill_get_hp()、skill_get_zeny()、skill_get_time() 追加。
+ skill_get_time2()、skill_get_weapontype() 追加。
+ skill_get_unit_id()、skill_blown()、skill_additional_effect() 修正。
+ skill_attack()、skill_castend_damage_id() 修正。
+ skill_castend_nodamage_id()、skill_castend_id() 修正。
+ skill_castend_pos()、skill_unit_onplace() 修正。
+ skill_unit_timer_sub_onplace()、skill_unitsetting() 修正。
+ skill_use_id()、skill_use_pos()、skill_check_condition() 修正。
+ skill_status_change_end()、skill_status_change_timer() 修正。
+ skill_status_change_start()、skill_can_produce_mix() 修正。
+ skill_produce_mix()、skill_gangsterparadise() 修正。
+ skill_gangster_out()、skill_gangster_in() 修正。
+ skill_gangster_count() 追加。
+ skill_readdb() 修正。
+ battle.h 修正。
+ battle.c
+ distance()、battle_counttargeted()、battle_get_range() 追加。
+ battle_get_dir() 追加。
+ battle_get_maxhp()、battle_get_str()、battle_get_agi() 修正。
+ battle_get_vit()、battle_get_dex()、battle_get_int() 修正。
+ battle_get_luk()、battle_get_flee()、battle_get_hit() 修正。
+ battle_get_flee2()、battle_get_critical()、battle_get_baseatk() 修正。
+ battle_get_atk()、battle_get_atk2()、battle_get_def() 修正。
+ battle_get_def2()、battle_get_mdef()、battle_get_speed() 修正。
+ battle_get_adelay()、battle_get_amotion()、battle_get_party_id() 修正。
+ battle_get_guild_id()、battle_get_size() 修正。
+ battle_check_undead() 追加。
+ battle_check_target()、battle_addmastery() 修正。
+ battle_calc_pet_weapon_attack()、battle_calc_mob_weapon_attack() 修正。
+ battle_calc_pc_weapon_attack()、battle_weapon_attack() 修正。
+ clif.h 修正。
+ clif.c
+ clif_skillinfo()、clif_skillinfoblock()、clif_skillup() 修正。
+ clif_item_skill()、clif_changeoption()、clif_parse_LoadEndAck() 修正。
+ clif_01ac() 追加。
+ clif_parse_WalkToXY()、clif_parse_ActionRequest() 修正。
+ clif_parse_TakeItem()、clif_parse_DropItem() 修正。
+ mob.h 修正。
+ mob.c
+ mobskill_castend_id()、mobskill_castend_pos() 修正。
+ mobskill_use_id()、mobskill_use_pos()、mob_heal() 修正。
+ mob_spawn()、mob_damage()、mob_walk() 修正。
+ mob_stop_walking()、mob_warp()、mob_counttargeted() 修正。
+ mob_counttargeted_sub()、mob_countslave() 修正。
+ mob_attack()、mob_target()、mob_ai_sub_hard_activesearch() 修正。
+ mob_ai_sub_hard_mastersearch()、mob_ai_sub_hard() 修正。
+ script.c
+ buildin_sc_start() 修正。
+ path.c
+ can_move() 修正。
+ pet.c
+ pet_data_init()、pet_stop_walking() 修正。
+ npc.c
+ npc_parse_warp()、npc_parse_shop()、npc_parse_script() 修正。
+
+--------------
+//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 聖
+・ペットがエモを出すとmap-serverが落ちることがあった問題を修正。
+ (map/)
+ clif_parse_SendEmotion() 修正。
+
+--------------
+//0746 by Michael
+ (map/)
+ script.c
+ Add Script command - checkoption(type);
+ Attach a npc_testchkoption.txt npc script!
+
+--------------
+//0745 by ぴざまん
+・ギャングスターパラダイス実装
+・PvPエリアのmapflagを修正(同士討ちが無くなったかと思います)
+・シーズモードでノックバックがあったバグを修正
+・インティミの遅延時間を少し調整
+ (map/)
+ skill.c
+ skill_attack()、skill_additional_effect()修正
+ skill_gangsterparadise()、skill_gangster_in()、skill_gangster_out()追加
+ clif.c
+ clif_parse_ActionRequest()修正
+ mob.c
+ mob_target()、mob_attack()修正
+ mob_ai_sub_hard()、mob_ai_sub_hard_mastersearch()修正
+ mob_ai_sub_hard_activesearch()修正
+ map.h 修正
+ skill.h 修正
+ (conf/)
+ npc_pvp.txt 修正
+
+--------------
+//0744 by 聖
+
+・アイスウォール、メテオストームのコンボでメテオストームのエフェクトが表示されなくなる問題を修正。
+・HP吸収スキルのエフェクト修正。
+・battle_athena.confに項目追加。
+・パケ周りの細かい修正。
+ (conf/)
+ battle_athena.conf
+ (doc/)
+ conf_ref.txt
+ (map/)
+ battle.c
+ battle.h
+ clif.c
+ pc.c
+ pet.c
+ skill.c
+
+--------------
+//0743 by J
+
+・取り巻き召喚などを本鯖に似せる為の修正。
+ あと本鯖相違スレにあったゴスリンの取り巻きを修正。
+ デリーターの空と地のスキルが逆になっていたのを修正。
+ (db/)
+ mob_skill_db.txt 修正
+
+--------------
+//0742 by ぴざまん
+
+・インティミデイトを実装
+ 攻撃とワープの分別がうまくいかなかったので
+ SC_INTIMIDATEを使って遅延処理をしました
+・skill_dbの誤字等を修正
+ (map/)
+ skill.c
+ skill_additional_effect()、skill_castend_map()修正
+ skill_castend_nodamage_id()、修正
+ skill_status_change_start()、skill_status_change_end()修正
+ map.h 修正
+ skill.h 修正
+ (db/)
+ skill_db.txt 修正
+
+--------------------
+//0741 by whitedog
+
+snapshot
+
+--------------
+//0740 by ぽぽぽ
+・PCがMOBにタゲられたとき3匹目から防御と回避が減るようにした。
+ 1匹につき回避は10%、防御は5%減ります。
+ (map/)
+ pc.h
+ pc.c
+ pc_counttargeted()、pc_counttargeted_sub()追加
+ battle.c
+ battle_get_flee()、battle_get_def()、battle_get_def2()修正。
+
+--------------
+//0739 by 聖
+・ファイアーウォール等の設置系スキルが正しく表示されない問題を修正。
+・マリンスフィアが自爆するとサンダーストーム等のダメージが表示されなくなる問題を修正。
+・HP吸収系スキルで敵が回復してるエフェクトが出るよう修正。
+ (map/)
+ skill.c
+ skill_castend_damage_id() 修正。
+ battle.c
+ battle_calc_misc_attack() 修正。
+ clif.c
+ clif_getareachar_skillunit() 修正。
+ clif_skill_setunit() 修正。
+
+--------------
+//0738 by ぴざまん
+・ストームガストを完全に本鯖仕様に修正(3回で絶対凍結&凍結状態の敵はSGをくらわない)
+・サフラギウムが自分にかけられるバグ修正
+ (map/)
+ skill.c
+ skill_additional_effect()、skill_attack()修正
+ skill_castend_nodamage_id()修正
+ map.h 修正
+
+--------------
+//0737 by ぽぽぽ
+・アンクルが歩いている敵に効かない&複数の敵に効くのを修正。
+ (map/)
+ skill.c
+ skill_unit_onplace()、skill_unit_onout()修正
+ mob.c
+ mob_stop_walking()修正
+
+--------------
+//0736 by ぴざまん
+・状態異常耐性が効果時間にも及ぶ様に修正。発動率と同率で効果時間が割り引かれます
+・ストーンカースの効果時間を永久からマジスレテンプレ準拠に
+・攻撃を受けた時にペットの支援攻撃を受けられないよう修正(コメントアウトしただけ)
+ これはVIT型にペットを付けて放置するだけで自動でレベル上げができるのを
+ 防ぐための暫定的な処置です
+ (map/)
+ skill.c
+ skill_castend_nodamage_id()、skill_addisional_effect()修正
+ skill_status_change_start()修正
+ pc.c
+ pc_damage() 修正
+
+--------------
+//0735 by ぽぽぽ
+
+・敵を倒してレベルが上がったときPT公平範囲のチェックをするようにした。
+・オートカウンター仮実装。
+ 向きや射程チェックはしていません。またタイミングがおかしいかもしれません。
+ MOBスキルとして使うときはターゲットをselfにしてください。
+ (conf/)
+ battle_athena.conf項目追加
+ (doc/)
+ conf_ref修正
+ (map/)
+ battle.h
+ battle.c
+ battle_calc_mob_weapon_attack()、battle_calc_pc_weapon_attack()
+ battle_config_read()修正
+ pc.c
+ pc_checkbaselevelup()、pc_attack_timer()修正
+ skill.c
+ skill_castend_nodamage_id()、skill_status_change_start()修正
+ clif.c
+ clif_parse_WalkToXY()修正
+ mob.c
+ mob_attack()修正
+
+--------------
+//0734 by 死神
+
+・player_skillup_limitの処理修正と細かい修正。
+・player_skillup_limitがyesの場合skill_tree.txtで設定されてるその下位職業の
+スキルツリーを使いますのでその職業では無くなるはずのスキルが出ることが
+ありますがこれは仕様でありバグではありません。バグ報告されても無視します。
+ (doc/)
+ conf_ref.txt 修正。
+ (char/)
+ char.c
+ mmo_char_sync_timer()、do_init() 修正。
+ inter.c
+ inter_init() 修正。
+ inter_save_timer() 削除。
+ (map/)
+ pc.c
+ pc_calc_skilltree() 修正。
+ pc_resetskill() 修正。
+
+--------------
+//0733 by 死神
+
+・バグ修正と細かい修正。
+・死んだ後にすぐにセーブポイントに戻らずにしばらく放置してると、
+放置してる時間によって経験値が減少するバグ修正。(未テスト)
+・mob_availe.txtで設定したモンスターにモンスター情報を使うち鞍落ちする問題修正。
+・battle_athena.confに項目追加。
+・その他細かい修正。
+ (conf/)
+ battle_athena.conf 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ (map/)
+ clif.c
+ clif_skill_estimation()、clif_parse_Restart() 修正。
+ pc.c
+ pc_setrestartvalue()、pc_makesavestatus() 修正。
+ pc_read_gm_account()、pc_calc_skilltree() 修正。
+ pc_calc_skillpoint() 追加。
+ map.c
+ map_quit() 修正。
+ mob.c
+ mob_damage() 修正。
+ skill.c
+ skill_unit_timer_sub()、skill_unit_timer() 修正。
+ battle.h 修正。
+ battle.c
+ battle_config_read() 修正。
+
+--------------
+//0732 by Kalen
+
+・npc_town_kafra.txtの全面見直し
+ カプラ利用券の廃止
+ 倉庫利用料を本鯖(jRO)と同一価格に調整
+ カート使用料を本鯖(jRO)と同一価格に調整
+ ポイント参照変更
+ ジュノーのセーブポイント修正
+ アマツのセーブポイント修正
+
+--------------
+//0731 by ぽぽぽ
+
+・服の色を保存するかbattle_athena.confで選択できるように。
+ 弊害があるので保存しないようにと書いてあったのでデフォルトでは保存しません。
+・スクリプト追加
+ strcharinfo(1) 自分のパーティー名を取得します。
+ strcharinfo(2) 自分のギルド名を取得します。
+ getcharid(1) 自分のパーティーIDを取得します。
+ getcharid(2) 自分のギルドIDを取得します。
+ getpartyname(ID) IDで指定したパーティーの名前を取得します。
+ getguildname(ID) IDで指定したギルドの名前を取得します。
+ (map/)
+ battle.h
+ battle.c
+ battle_config_read()修正
+ pc.c
+ pc_makesavestatus()修正
+ script.c
+ buildin_strcharinfo()修正
+ buildin_getcharid()、buildin_getpartyname()、buildin_getpartyname_sub()
+ buildin_getguildname()、buildin_getguildname_sub()追加
+
+--------------
+//0730 by ぴざまん
+
+・ストームガストの凍結時間を本鯖にあわせて修正(スキルレベルに関係なく一定の凍結時間(10秒)になります)
+・スタン、暗闇、沈黙、毒の状態異常時間の「継ぎ足し」ができないように修正
+・状態異常が掛かりにくすぎてたのでMOBの状態異常耐性を緩和(また調整するかも)
+ (map/)
+ skill.c
+ skill_castend_nodamage_id()、skill_addisional_effect()修正
+ skill_status_change_start()修正
+
+--------------
+//0729 by DRG
+
+・カートレボリューションがカートなしで使えた不具合の修正
+・カートレボリューションがJOBLV30で覚えれたのを修正
+ (conf/)
+ npc_event_skillget.txt
+ カートレボリューション項修正
+ (map/)
+ skill.c
+ skill_check_condition()修正
+
+--------------
+//0728 by ぽぽぽ
+
+・職が変わってもギルドの職業欄が更新されない不具合の修正。
+
+ (char/)
+ inter.c
+ パケット長リスト修正。
+ int_guild.c
+ mapif_guild_memberinfoshort()、mapif_parse_GuildChangeMemberInfoShort()、
+ inter_guild_parse_frommap()修正
+ (map/)
+ intif.h
+ intif.c
+ intif_guild_memberinfoshort()、intif_parse_GuildMemberInfoShort()
+ intif_parse()修正
+ guild.h
+ guild_send_memberinfoshort()、guild_recv_memberinfoshort()修正
+
+
+--------------
+//0727 by 聖
+
+・武器研究スキルによってホルグレンなどの精錬NPCが
+ 正常に動作しない問題を修正。
+
+ (map/)
+ pc.c
+ pc_percentrefinery() 修正。
+
+--------------
+//0726 by 胡蝶蘭
+
+・mob_skill_db2.txtがあればmob_skill_db.txtをオーバーライドするように修正
+ オリジナルのMOB使用時や、現行MOBの使用スキルを変更したい場合に。
+
+・mob_skill_db.txtでmob_idの次のダミー文字列が"clear"だった場合、
+ そのMOBのスキルを初期化する機能追加。
+ ・mob_skill_db2.txtであるMOBのスキルを完全に書き換えるときに使用して
+ ください。
+ ・clearしなかった場合はmob_skill_db.txtのものに追加されます。
+
+ mob.c
+ mob_readskilldb()修正
+
+
+・アイテム名/MOB名が全角12文字(24バイト)あるアイテム/MOBが、
+ @コマンドで取り寄せ/召喚できない問題修正。
+ mob.c
+ mobdb_searchname()修正
+ itemdb.c
+ itemdb_searchname_sub()修正
+
+・現在時刻でイベントを起こす「時計イベント」機能を追加
+ ・OnInitと同じようにそれぞれのNPCで、On〜で始まるラベルを定義します。
+ OnMinute?? :毎時、??分にイベントを起こします。(0-59)
+ OnHour?? :毎日、??時にイベントを起こします。(0-23)
+ OnClock???? :毎日、??時??分にイベントを起こします。
+ OnDate???? :毎年、??月??日にイベントを起こします。
+ ・詳しくは npc_test_ev.txt を参照
+
+ (conf/)
+ npc_test_ev.txt
+ 内容追加
+ (map/)
+ npc.c
+ 色々修正
+
+・その他
+ clif.c
+ コンパイル警告が出ないように修正
+
+--------------
+//0725 by 死神
+
+・鯖落ちバグ修正。
+・モンスターにイベントが設定されていて自殺やなにかでダメージを与えた
+物がない場合鯖落ち確定なのでそのマップにあるプレイヤーを利用して
+イベントスクリプトを実行するように変更。
+ (map/)
+ makefile 修正。
+ mob.c
+ mob_timer()、mob_damage() 修正。
+
+--------------
+//0724 by 死神
+
+・バグ修正と安定化の為の修正。
+・ペットの攻撃でイベントが処理されず鯖落ちになる問題修正。(未テスト)
+・モンスターの大量発生で鯖が落ちる問題修正。(モンスターを10000匹を呼んで
+魔法で倒すことを5回程テスト。ただ動かないやつのみ。)
+・取り巻きがボスと一緒に死ぬ時アイテムを落とさないように変更。(未テスト)
+・battle_athena.confのpc_skillfleeをplayer_skillfreeに変更して処理を変更。
+・アイスウォールにskill_unit_settingを使うスキルで攻撃できないように修正。
+・その他細かい修正少し。安定化されたかどうかはまだわかりませんがXP1800+、512M、モンスター配置50%で10000匹召喚して異常なかったので大丈夫になったと思います。大丈夫じゃなくても責任はとれませんが...
+ (conf/)
+ battle_athena.conf 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ (map/)
+ mob.h 修正。
+ mob.c
+ mob_timer()、mob_deleteslave_sub()、mob_damage() 修正。
+ npc.c
+ npc_event() 修正。
+ skill.c
+ skill_area_sub()、skill_unit_onplace()、skill_castend_nodamage_id() 修正。
+ clif.c
+ clif_parse_GMKick() 修正。
+ battle.h
+ battle.c
+ battle_damage()、battle_check_target()、battle_config_read() 修正。
+ pc.c
+ pc_calc_skilltree()、pc_checkskill() 修正。
+ map.h 修正。
+ map.c
+ map_foreachinarea()、map_foreachinmovearea() 修正。
+ map_foreachobject() 修正。
+
+--------------
+//0723 by DRG
+
+・0719の修正
+ (map/)
+ pc.c pc_calc_skilltree()修正
+
+--------------
+//0722 by パイン
+
+・gcc 2.29系列でもコンパイルが通るように修正。
+ これは以前にも直したはずなのですが、なぜか元に戻っていましたので
+ 皆さん注意をお願いします。
+ あと、gcc3系列なら定数はどこに書いても問題ないのですが、
+ gcc2.29系列では「必ずブロック要素の一番最初」に書かないとコンパイルが
+ 通りませんのでこちらもご注意願います。
+
+コンパイルが通る例
+void hoge() {
+ const char booboo = 1;
+ …
+
+コンパイルが通らない例
+void hoge() {
+ …
+ const char booboo = 1;
+ …
+
+ (map/)
+ skill.h マクロを修正
+ skill.c skill_addisional_effect()修正
+
+--------------
+//0721 by 聖
+
+・ボスにレックスデビーナが効いた問題を修正。
+・ボスにカードによる状態異常が効かなかった問題を修正。
+ 本鯖ではマリナカード等でオークヒーローなどを殴ると時々凍結します。
+ (結構微妙な実装方法なので、何か問題があった場合
+ その辺詳しい方おりましたら修正してやってください(^^; ))
+
+--------------
+//0720 by 胡蝶蘭
+
+・PCにIWを重ねるとMOBが攻撃してこない問題を修正
+ ・IWに重なっていても、隣接可能ならMOBが近寄ってきます
+ ・どんな地形にいても、隣接しているなら攻撃可能になります
+ ・ただし、MOBが遠距離攻撃可能で、攻撃範囲内にPCがいても、
+ 隣接不可能なら攻撃してきません。これの解決はかなり面倒なので。
+
+ mob.c
+ mob_can_reach()修正
+ battle.c
+ battle_check_range()修正
+
+--------------
+//0719 by DRG
+
+・下位スキルがない場合は上位スキルがふれないようにしました。
+ battle_athena.confのskillfleeで設定可能です。
+ 下位スキルがないまま上位スキルをふった状態で、このオプションを使う場合はスキルリセットする必要があります。
+ 一般アカにスキルリセットを解放したいときに使ってやって下さい。
+ (conf/)
+ battle_athena.conf
+ (map/)
+ battle.c
+ battle.h
+ pc.c pc_calc_skilltree(),pc_checkskill()修正
+
+--------------
+//0718 by 死神
+
+・色々と修正。
+・毒によって防御が減るように変更。(HPはまだ減りません。)
+・アイスウォールに攻撃できるように変更。(今は全ての攻撃に当たります。)
+ただ鞍のバグらしくアイスウォールをクリックすると鞍から0x89パケットが30回以上連続で送ってくることが起こりますが原因は不明です。多分鞍のバグだと思いますが...)
+・戦闘に関わる計算等を修正。
+・ゼニが増えるバグ修正。(多分これでこのバグはなくなると思いますがどうなのか報告をお願いします。)
+・二刀流の左手武器の種族、属性、Sizeのダメージ補正を右手武器に適用するかどうかを設定できるように変更。
+・その他修正はしたはずですが覚えてません。(修正してない物もありますがdiff当ての途中でどれを作業したのかを忘れたので...)
+ (common/)
+ mmo.h 修正。
+ (conf/)
+ battle_athena.conf 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ (map/)
+ battle.h 修正。
+ battle.c
+ battle_get_baseatk()、battle_get_speed()、battle_get_adelay() 追加。
+ battle_get_amotion() 、battle_calc_pet_weapon_attack() 修正。
+ battle_calc_mob_weapon_attack()、battle_calc_pc_weapon_attack() 修正。
+ battle_get_atk()、battle_get_atk_()、battle_get_atk2() 修正。
+ battle_get_attack_element()、battle_get_attack_element2() 修正。
+ battle_get_str()、battle_get_agi()、battle_get_vit()、battle_get_int() 修正。
+ battle_get_dex()、battle_get_luk()、battle_get_flee() 修正。
+ battle_get_flee2()、battle_get_hit()、battle_get_critical() 修正。
+ battle_get_def()、battle_get_def2()、battle_get_mdef() 修正。
+ battle_get_element()、battle_check_target()、battle_check_range() 修正。
+ battle_weapon_attack()、battle_config_read() 修正。
+ clif.c
+ clif_skill_estimation()、clif_mob0078()、clif_mob007b() 修正。
+ pc.c
+ pc_attack_timer()、pc_attack()、pc_calcstatus()、pc_payzeny() 修正。
+ pc_getzeny() 修正。
+ npc.c
+ npc_buylist()、npc_selllist() 修正。
+ pet.c
+ pet_attack()、pet_randomwalk()、pet_ai_sub_hard() 修正。
+ mob.h 修正。
+ mob.c
+ calc_next_walk_step()、mob_attack()、mobskill_castend_id() 修正。
+ mobskill_use_id()、mobskill_use_pos()、mob_ai_sub_hard() 修正。
+ mob_damage()、mob_changestate() 修正。
+ mob_get_adelay()、mob_get_speed() 削除。
+ skill.h 修正。
+ skill.c
+ skill_unitsetting()、skill_unit_ondamaged()、skill_unit_timer_sub() 修正。
+ skill_unit_timer()、skill_area_sub()、skill_unit_onplace() 修正。
+ skill_status_change_start() 修正。
+ chat.c 修正。
+ makefile 修正。
+ chrif.c 修正。
+ guild.c 修正。
+ itemdb.c 修正。
+ map.c 修正。
+ party.c 修正。
+ script.c 修正。
+ path.c 修正。
+
+--------------
+//0717 by 聖
+
+・大量にモンスターを召還して一度に倒すとmap-serverが落ちる問題を修正。
+ (カホを100体ずつ召還して50回テストをしたので恐らく大丈夫だと思います。)
+・その他結構細かい修正
+ (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 聖
+
+・精錬成功率に対してBSの武器研究が正しく適用されていなかった問題を修正。
+ (map/)
+ pc.c
+ pc_percentrefinery() 修正。
+
+--------------
+//0715 by 死神
+
+・マップサーバーから表示される物を表示するかどうかの設定ができるようにしました。スキル表示だけでもなくしてやるとサーバーがかなり楽になったりもします。
+開発やバグトレースの時は表示することをお勧めします。
+・その他細かい修正。
+・修正した所を全て書けないのでファイルだけ。
+ (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 死神
+
+・細かい修正。
+・シールドブーメランで盾の重量と精錬によってダメージが増えるように修正。精錬ダメージを足す時適用でダメージ+重量+盾精錬*4(この4はrefine_db.txtの防具の過剰精錬ボーナスを使ってるので変更可能です。)になります。
+・スキルによる吹き飛ばし処理で0x88パケットを使っていましたがそのパケットの優先順位がかなり低いらしく後で来るパケットによって無視されることもあるようなのでプレイヤーだけに適用してモンスターには0x78を使うように変更しました。
+でも位置ずれは完全になくならないようです。(恐らく鞍のバグだと思います。鯖の
+座標を確認してみましたが鯖の方は問題がありませんでした。)
+プレイヤーの場合0x78(PACKETVERが4以上なら0x1d8)が使えません。分身を作ってしまうので...
+・バグ報告スレッド2 の47を取り込みました。
+・その他修正した所少しあり。
+ (db/)
+ refine_db.txt 修正。
+ item_db.txt 修正。
+ (map/)
+ battle.c
+ battle_stopattack()、battle_stopwalking() 修正。
+ battle_get_attack_element2()、battle_calc_pc_weapon_attack() 修正。
+ battle_weapon_attack() 修正。
+ path.c
+ path_blownpos() 修正。
+ pc.h 修正。
+ pc.c
+ pc_stop_walking()、pc_damage() 修正。
+ pc_getrefinebonus() 追加。
+ mob.c
+ mob_damage() 修正。
+ pet.c
+ pet_target_check()、pet_stop_walking()、pet_performance() 修正。
+ skill.c
+ skill_attack()、skill_blown()、skill_status_change_start() 修正。
+ skill_castend_damage_id() 修正。
+ makefile 修正。
+
+--------------
+//0713 by ぽぽぽ
+
+・mob_avail.txt追加。item_avail.txtと同様の指定でモンスターの見た目を他のIDのものに変更します。
+ モンスターのID以外を指定したりするとPCやNPCの姿をしたMOBに一方的に攻撃される場合があるので注意。
+ (db/)
+ mob_avail.txt 追加。
+ (map/)
+ clif.c
+ clif_mob0078()、clif_mob007b() 修正。
+ mob.h 修正。
+ mob.c
+ mob_readdb_mobavail()、mob_get_viewclass()追加。
+ do_init_mob()、mob_readdb() 修正。
+
+--------------
+//0712 by 死神
+
+・シールドチャージ、シールドブーメラン実装。
+・オートガードはとりあえずエフェクトが出るように変更しました。
+・0708で書き忘れ。ディフェンダーを使った時ASPDと移動速度は20%低下します。
+本鯖で低下するのは確かのようですがどれぐらい下がるのかはさっぱりわかりまんので...
+・その他細かい修正。
+ (db/)
+ cast_db.txt 修正。
+ skill_db.txt 修正。
+ (map/)
+ battle.h 修正。
+ battle.c
+ battle_calc_damage()、battle_calc_pet_weapon_attack() 修正。
+ battle_calc_mob_weapon_attack()、battle_calc_pc_weapon_attack() 修正。
+ battle_calc_magic_attack()、battle_calc_misc_attack() 修正。
+ skill.c
+ skill_additional_effect()、skill_attack()、skill_castend_nodamage_id() 修正。
+ skill_check_condition()、skill_status_change_start() 修正。
+ skill_castend_damage_id() 修正。
+ pc.h 修正。
+ pc.c
+ pc_calcstatus()、pc_checkallowskill()、pc_unequipitem() 修正。
+
+--------------
+//0711 by npc
+
+・鉱石製造エフェクトの修正
+・スクリプト埋め込み変数にHp,MaxHp,Sp,MaxSpを追加(読み込みのみ)
+ (map/)
+ skill.c
+ skill_produce_mix()修正。
+ pc.c
+ pc_readparam()修正。
+ (db/)
+ const.txt 修正。
+
+--------------
+//0710 by 胡蝶蘭
+
+・名前に半角スペースが入ったパーティーを作成したとき、および、
+ 半角スペースが入った名前のPCをパーティメンバにしたとき、
+ party.txtが正しく読み込めなくなる問題を修正
+
+ (char/)
+ int_party.c
+ inter_party_fromstr()修正
+
+・Message of the Day 機能追加
+ ・ログインしたユーザーにMOTDを表示させることが出来ます。
+ ・map-server.exe実行時のカレントディレクトリ(help.txtと同じ
+ ディレクトリ)にmotd.txtを作ると表示します。
+ ・MOTDが表示されるタイミングは、
+ 「マップサーバーにログインした直後の、マップロード完了時」です。
+ つまり、ログイン直後、キャラセレ直後および、
+ マップサーバー間移動の時(マップサーバーの分散を行っている場合のみ)
+ のマップロードが終わった時に表示されます。
+ ・表示方法はhelp.txtと同じで普通のメッセージとして送信します。
+ (ギルド告知メッセージは文字数制限があり、GMアナウンスは長時間
+ 画面の上部に表示されてしまうため)
+ ・会話と区別がつくように、"< Message of the Day >"、"< End of MOTD >"
+ の文で上下を囲います。
+
+ (map/)
+ pc.c
+ pc_authok()修正
+
+
+--------------
+//0709 by ぽぽぽ
+
+・スクリプトにemotion追加
+ emotion n;と使うとNPCがエモを出します。nは0〜33が使用可能。
+・精錬と街ガイドのNPCを本鯖の台詞に合わせて修正。
+ (conf/)
+ npc_town_refine.txt、npc_town_guide.txt 修正。
+ (map/)
+ script.c
+ buildin_emotion() 追加。
+
+--------------
+//0708 by 死神
+
+・スキルキャストキャンセル、ディフェンダー、オートガード実装。
+・オートガードの場合ガードしてもエフェクトは出ません。ミスになるだけです。本鯖の方は表示されるかどうかもわからないしパケット情報もないので...
+・ディフェンダーは未テスト。bLongAtkDefを使ってるのでホルンカードのようにbLongAtkDefを上げる物を装備して使うと遠距離物理攻撃を全て無効にできます。(これも本鯖の仕様がどうなのかはわかりません。)
+・その他細かい修正。
+ (db/)
+ cast_db.txt 修正。
+ (map/)
+ map.h 修正。
+ map.c
+ map_quit() 修正。
+ skill.h 修正。
+ skill.c
+ skill_castend_nodamage_id()、skill_use_id()、skill_check_condition() 修正。
+ skill_castend_id()、skill_castend_nodamage_id()、skill_castcancel() 修正。
+ pc.c
+ pc_calcstatus()、pc_setpos()、pc_damage() 修正。
+ battle.c
+ battle_calc_damage()、battle_damage() 修正。
+ clif.c
+ clif_parse_UseSkillToId()、clif_parse_UseSkillToPos() 修正。
+ mob.c
+ mob_damage() 修正。
+ itemdb.c
+ itemdb_searchrandomid() 修正。
+
+--------------
+//0707 by 死神
+
+・0705の阿修羅覇鳳拳のバグ修正。
+ (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
+・修正
+ conf/npc_warp_umbala.txt
+
+--------------
+//0705 by 死神
+
+・色々と修正。
+・プレイヤーのクリティカル計算にバグがあったので修正。
+・爆裂波動の処理修正。
+・モンクのコンボを修正。
+・阿修羅覇鳳拳の使用によってマップ鯖の無限ループバグ修正。(これかなり致命的な物だったようです。)
+・コンボで使う阿修羅覇鳳拳は敵をクリックする必要がないように修正。
+・猛龍拳で敵を吹き飛ばす距離を5セルに変更。よってコンボで使う阿修羅覇鳳拳は距離チェックをしません。5セル飛ばされた敵は阿修羅覇鳳拳の射程から離れたわけなので距離チェックなしで発動します。(本鯖の仕様なんて知りません。)
+・マップの名前を16byteから24bytesに変更。(大した意味はありませんが安全の為の物です。)
+・ウェディングキャラによる鞍落ちを防ぐ為に修正。
+・その他少し修正。(テストは殆んどしてません。)
+ (conf/)
+ battle_athena.conf 修正。
+ (db/)
+ skill_db.txt 修正。
+ (common/)
+ mmo.h 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ item_bonus.txt 修正。
+ (map/)
+ battle.h 修正。
+ battle.c
+ battle_get_flee2()、battle_calc_pet_weapon_attack() 修正。
+ battle_calc_mob_weapon_attack()、battle_calc_pc_weapon_attack() 修正。
+ battle_weapon_attack()、battle_calc_magic_attack() 修正。
+ battle_config_read() 修正。
+ skill.h 修正。
+ skill.c
+ skill_status_change_start()、skill_castend_damage_id() 修正。
+ skill_check_condition()、skill_use_id()、skill_blown() 修正。
+ skill_castend_map()、skill_unit_onlimit()、skill_attack() 修正。
+ pc.c
+ pc_attack_timer()、pc_setpos()、pc_setsavepoint() 修正。
+ pc_movepos()、pc_calcstatus()、pc_bonus() 修正。
+ clif.h 修正。
+ clif.c
+ clif_set0078()、clif_set007b() 修正。
+ clif_updatestatus()、clif_initialstatus()、clif_parse_UseSkillToId() 修正。
+ clif_skillinfo() 追加。
+ map.h 修正。
+ map.c
+ map_setipport()、map_addmap() 修正。
+ その他抜けた所少しあり。
+
+--------------------
+//0704 by kalen
+
+・Umbala Warp追加
+ conf/npc_warp_umbala.txt
+
+--------------------
+//0703 by いど
+
+・サーバーsnapshot
+
+--------------
+//0702 by ぽぽぽ
+
+・ファーマシーのエフェクトを本来のものに変更
+・スクリプトでの埋め込み変数にBaseExp,JobExp,NextBaseExp,NextJobExp追加
+ (map/)
+ skill.c
+ skill_produce_mix() 修正。
+ pc.c
+ pc_readparam()、pc_setparam() 修正。
+ (db/)
+ const.txt 修正。
+
+--------------
+//0701 by ぴざまん
+
+・ステータス異常判別式導入。各ステータス異常の発動率がVIT/INT/MDEFに影響するようになります。持続時間短縮はまた今度で_| ̄|○
+・不死に凍結が効いたバグ修正。
+ (map/)
+ skill.c
+ skill_additional_effect()、skill_castend_nodamage_id() 修正。
+
+--------------
+//0700 by 南
+
+・697のバグ修正。
+ (db/)
+ mob_db.txt
+
+--------------
+//0699 by 死神
+
+・装備のボーナスクリティカルは自分の間違いだったのでbCriticalRateをbCriticalに変更。それと0695で書き忘れですがASPDを上げるカードや装備の一部をbAspdAddRateからbAspdRateに変更しました。みすとれ巣のシミュレーターによるとドッペルカードは複数でも一つしか適用されないみたいだったので。
+ (db/)
+ item_db.txt
+
+--------------
+//0698 by 死神
+
+・一部のキャラに重量が0になってカプラなど何もPC,NCPが表示されなくなるバグ修正。(それだけ)
+ (common/)
+ mmo.h 修正。
+ (map/)
+ clif.c
+ clif_updatestatus() 修正。
+ pc.c
+ pc_calcstatus() 修正。
+
+--------------
+//0697 by 南
+
+・mob_db修正
+ ドロップを中心に修正。
+ (db/)
+ mob_db.txt
+
+--------------
+//0696 by 死神
+
+・バグ修正。
+・テレポートやワープ等の時スキルユニットから抜ける処理が入って
+なかったのでSAFETYWALL等によって鯖落ちが起こったようです。(確か報告も
+あったと思いますが...) よって修正はしましたが確認はしてません。報告を
+お願いします。
+・スキルによる吹き飛ばし処理をちょっと修正とモンスターのコードを少し修正。
+多分変になったことはないと思いますが変だったら報告してください。
+・その他細かい修正。
+ (map/)
+ skill.h 修正。
+ skill.c
+ skill_blown()、skill_attack()、skill_unit_move() 修正。
+ skill_castend_nodamage_id()、skill_castend_damage_id() 修正。
+ skill_unit_out_all()、skill_unit_out_all_sub() 追加。
+ mob.c
+ mob_stop_walking()、mob_spawn()、mob_warp() 修正。
+ mob_can_move()、mob_changestate() 修正。
+ map.h 修正。
+ pc.c
+ pc_setpos() 修正。
+ battle.c
+ battle_calc_pet_weapon_attack()、battle_calc_mob_weapon_attack() 修正。
+ battle_calc_pc_weapon_attack() 修正。
+
+--------------
+//0695 by 死神
+
+・少し修正。
+・プレイヤーの基本パラメータを2byteに拡張。
+・item_db.txtをラグナゲートの説明に合わせて修正。
+・bAddEffとbResEffの確率を百分率から万分率に変更。
+・スクリプトstatusupとstatusup2追加。
+statusup bStr; のように使って機能はステータスポイントを減らして
+基本パラメータを1上げる。
+statusup2 bInt,n; のように使って機能はステータスポイントを減らさずに
+基本パラメータをn上げる。
+・その他細かい修正。
+ (conf/)
+ battle_athena.conf 修正。
+ (db/)
+ item_db.txt 修正。
+ const.txt 修正。
+ (doc/)
+ item_bonus.txt 修正。
+ conf_ref.txt 修正。
+ (common/)
+ mmo.h 修正。
+ (char/)
+ char.c
+ mmo_char_send006b()、parse_char() 修正。
+ (map/)
+ map.h 修正。
+ clif.h 修正。
+ clif.c
+ clif_initialstatus()、clif_updatestatus() 修正。
+ pc.h 修正。
+ pc.c
+ pc_bonus()、pc_calcstatus()、pc_equippoint()、pc_equipitem() 修正。
+ pc_jobchange()、pc_checkbaselevelup()、pc_statusup() 修正。
+ pc_statusup2() 追加。
+ battle.h 修正。
+ battle.c
+ battle_calc_pet_weapon_attack()、battle_calc_mob_weapon_attack() 修正。
+ battle_calc_pc_weapon_attack()、battle_config_read() 修正。
+ skill.c
+ skill_additional_effect()、skill_status_change_start() 修正。
+ script.c
+ buildin_statusup()、buildin_statusup2() 追加。
+ atcommnad.c 修正。
+
+--------------
+//0694 by 死神
+
+・バグ修正と細かい修正。
+・bCriticalRateが正しく適用されなかった問題修正。
+・ペットによるステータスボーナス追加。ステータスボーナスは装備の
+スクリプトによって設定します。ただペットによるボーナスはカードによる物と同じ扱いをします。そして属性の適用は一番優先順位低いです。今は何も入ってませんが...
+ (conf/)
+ battle_athena.conf 修正。
+ (db/)
+ const.txt 修正。
+ pet_db.txt 修正。
+ (doc/)
+ item_bonus.txt 修正。
+ conf_ref.txt 修正。
+ db_ref.txt 修正。
+ (map/)
+ map.h 修正。
+ map.c
+ map_quit() 修正。
+ battle.h 修正。
+ battle.c
+ battle_calc_pc_weapon_attack()、battle_weapon_attack() 修正。
+ battle_calc_magic_attack()、battle_calc_misc_attack() 修正。
+ battle_config_read() 修正。
+ pc.c
+ pc_calcstatus()、pc_bonus()、pc_setpos()、pc_authok() 修正。
+ pc_damage()、pc_autosave_sub() 修正。
+ pet.h 修正。
+ pet.c
+ pet_hungry()、pet_birth_process()、pet_recv_petdata()、pet_food() 修正。
+ pet_return_egg()、pet_ai_sub_hard()、read_petdb() 修正。
+ clif.c
+ clif_sendegg()、clif_parse_LoadEndAck() 修正。
+ atcommand.c 修正。
+ makefile 修正。
+
+--------------
+//0693 by 胡蝶蘭
+
+・SC_*の列挙表をリナンバリング
+ クライアントに通知するのを64未満から128未満に増やした
+ パケット情報に合うようにリナンバー
+ StatusChangeの配列を128から192に増やしたのでメモリ使用量が増えます。
+
+ (db/)
+ const.txt
+ SC_* の数値を変更
+ (map/)
+ skill.h
+ SC_* の列挙の数値を変更
+ map.h
+ MAX_STATUSCHANGEを128から192に増やした
+ skill.c
+ skill_status_change_start(),skill_status_change_end(),
+ skill_status_change_clear()の通知処理を変更
+
+・演奏/ダンスの処理を変更
+ 演奏/ダンス中かどうかをSC_DANCINGで判定するように変更
+ (判定処理が多少高速化されたはず)
+ ワープ(マップ移動や蝿など)すると演奏/ダンスを中断するように変更
+
+ skill.h/skill.c
+ skill_check_dancing()削除、skill_stop_dancing()追加
+ skill_delunitgroup(),skill_initunitgroup()変更
+ skill_status_change_start()変更
+ skill_castend_nodamage_id()変更
+ 書き損じがあるかも・・
+ pc.c
+ pc_calcstatus(),pc_setpos(),pc_damage()変更
+
+・不協和音スキルの修正
+ (db/)
+ skill_db.txt
+ 不協和音スキルのHIT数修正
+ (map/)
+ skill.c
+ skill_status_change_timer()変更
+ battle.c
+ battle_calc_misc_attack()修正
+
+--------------
+//0692 by 胡蝶蘭
+
+・アドリブスキルが使用できない問題修正(skill_dbの添付し忘れ)
+ (db/)
+ skill_db.txt
+ アドリブの消費SPを1に修正
+
+・mob_db2.txtがあればmob_db.txtにオーバーライドするように
+ オリジナルmobを作ってる人は使うと便利かもしれません。
+
+ mob.c
+ mob_readdb()
+
+・鯖落ちバグ報告時のためのスタックバックトレースログ所得方法を紹介
+ 鯖落ちバグの報告時に、この情報をコピペすると開発者が喜びます。
+ Cygwinでcoreの吐かせる方法も紹介してます。
+
+ (doc/)
+ coredump_report.txt
+
+--------------
+//0691 by 胡蝶蘭
+
+・item_db2.txtがあればitem_db.txtにオーバーライドするように
+ オリジナルアイテムを作ってる人は使うと便利かもしれません。
+
+ itemdb.c
+ itemdb_readdb()修正
+
+・演奏/ダンス系スキル仮実装
+ ・演奏/ダンス中は移動が遅く、スキルも使えないようになりました
+ ・アドリブスキルで演奏/ダンスを中断できるようになりました
+ ・演奏/ダンスは石化などの異常、MHPの1/4以上のダメージで中断します
+ ・キャラクターグラフィックは演奏/ダンスしません
+ ・演奏/ダンス中のSP消費は未実装です
+ ・移動しても効果範囲はついてきません
+ ・重複しても不協和音などに変化しません
+ ・エフェクトが出ても効果は未実装のものがあります
+ ・ほとんど未テストなので多数の不都合があると思います
+
+ skill.h
+ SC_* の列挙表を修正
+ skill.c
+ skill_check_dancing()追加
+ SkillStatusChangeTable[]修正
+ 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()修正
+ その他は忘れました
+ pc.c
+ pc_calcstatus(),pc_damage()修正
+
+--------------
+//0690 by 波浪
+
+・細かい修正
+ (db/)
+ item_db.txt 錐とメギンギョルドのbonusを修正。
+ (doc/)
+ item_bonus.txt 修正。
+
+--------------
+//0689 by 死神
+
+・倉庫バグ修正と細かい修正。
+ (map/)
+ pc.c
+ pc_modifybuyvalue()、pc_modifysellvalue() 修正。
+ storage.c
+ storage_storageopen() 修正。
+ storage_storage_quit()、storage_storage_save() 修正。
+
+--------------
+//0688 by 聖
+
+・ディスカウント、コムパルションディスカウント、オーバーチャージが適用されなかった問題を修正。
+ (map/)
+ pc.c
+ pc_modifybuyvalue() 修正。
+ pc_modifysellvalue() 修正。
+
+--------------
+//0687 by 死神
+
+・少し修正。
+・battle_athena.confに項目追加。(詳しいことはconf_ref.txtで)
+・item_avail.txtの処理を変更。アイテムIDの後に0を入れると今まで通りに使用不可能になるが0以外の数値を入れると使用不可能ではなくその数値をアイテムのIDとして見た目だけをそれに変更します。よって鞍落ちアイテムを別の物に表示して鞍落ちを防ぐことができます。(表示だけ変えて鯖の処理は本当のアイテムIDの物として認識します。修正は全てしたと思いますが抜けた所があるかも知りませので見た目変更したアイテムで鞍落ちが起こったら報告してください。) 鯖の処理はこれが限界です。(少なくとも自分には) アイテムが同じ物が二つ表示されて間違い安いとかどうこうとかの文句を言いたい人は鞍作れよ。以上。
+・ジルタスとアリスのコマントアウト解除。item_avail.txtで卵をルビーとアクアマリンで表示して捕獲アイテムも他の物に表示するように変更しています。
+・ダメージ計算のバグ修正。(大した物じゃありませんが弓だけちょっと問題があったようです。)
+・青箱等のアイテムで得た装備品は未鑑定になるように変更。
+・装備ボーナスの内部処理修正と少し変更。(詳しいことはitem_bonus.txtで)
+・キャラ鯖にテータを送る時キャラ、倉庫、ペットのテータを同時に送るように変更。(キャラ鯖とマップ鯖の間の転送量が増えるかも知りれませんがデータを同期化の為です。)
+・FWの動作間隔を0.25秒から0.1秒に変更。(これで摺り抜は少し減るはずです。)
+・カートレボリュションでどんな状態異常もかからないように変更。
+ (conf/)
+ battle_athena.conf 修正。
+ (db/)
+ const.txt 修正。
+ item_avail.txt 修正。
+ pet_db.txt 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ item_bonus.txt 修正。
+ (map/)
+ map.h 修正。
+ map.c
+ map_quit() 修正。
+ battle.h 修正。
+ battle.c
+ battle_calc_pc_weapon_attack()、battle_calc_mob_weapon_attack() 修正。
+ battle_calc_pet_weapon_attack()、battle_calc_magic_attack() 修正。
+ battle_get_dmotion()、battle_config_read() 修正。
+ pc.c
+ pc_calcstatus()、pc_bonus()、pc_bonus3()、pc_setpos() 修正。
+ pc_makesavestatus()、pc_autosave_sub()、pc_modifybuyvalue() 修正。
+ pc_modifysellvalue()、pc_stop_walking() 修正。
+ skill.c
+ skill_additional_effect()、skill_unitsetting() 修正。
+ clif.c
+ clif_buylist()、clif_selllist()、clif_set009e()、clif_set0078() 修正。
+ clif_set007b()、clif_additem()、clif_itemlist()、clif_equiplist() 修正。
+ clif_storageitemlist()、clif_storageequiplist()、clif_changelook() 修正。
+ clif_arrow_create_list()、clif_useitemack()、clif_tradeadditem() 修正。
+ clif_storageitemadded()、clif_getareachar_item() 修正。
+ clif_skill_produce_mix_list()、clif_cart_additem()、clif_cart_itemlist() 修正。
+ clif_cart_equiplist()、clif_vendinglist()、clif_openvending() 修正。
+ clif_produceeffect()、clif_sendegg()、clif_pet_equip()、clif_mvp_item() 修正。
+ clif_pet0078()、clif_pet007b() 修正。
+ itemdb.h 修正。
+ itemdb.c
+ itemdb_searchrandomid()、itemdb_search()、itemdb_readdb() 修正。
+ itemdb_read_itemavail()、itemdb_read_itemvaluedb() 修正。
+ itemdb_equippoint() 削除。
+ storage.h 修正。
+ storage.c
+ storage_storage_quitsave() ->storage_storage_quit()に変更と修正。
+ storage_storageclose() 修正。
+ atcommand.c 修正。
+ pet.c
+ pet_change_name()、pet_equipitem()、pet_unequipitem() 修正。
+ pet_birth_process()、pet_return_egg() 修正。
+ script.c
+ buildin_getitem() 修正。
+ mob.c
+ mob_stop_walking() 修正。
+ makefile 修正。
+
+--------------
+//0686 by 聖
+
+・細かい修正。
+ (map/)
+ pc.h 修正。
+
+--------------
+//0685 by 波浪
+
+・0683、0684でのbonusの追加にともなってitem_db.txtを修正
+・他色々修正
+ (db/)
+ item_db.txt 修正。
+ (doc/)
+ item_bonus.txt 修正。
+
+--------------
+//0684 by 死神
+
+・細かい修正。
+・死んだふりの時スキルとアイテムが使えないように変更。
+・bInfiniteEndure追加。機能は無限インデュア。
+・ダメージ表示の処理少し変更。
+ (db/)
+ const.txt 修正。
+ (doc/)
+ item_bonus.txt 修正。
+ (map/)
+ map.h 修正。
+ pc.c
+ pc_calcstatus() 修正。
+ pc_equipitem()、pc_unequipitem() 修正。
+ clif.c
+ clif_parse_UseItem()、clif_parse_UseSkillToId() 修正。
+ clif_parse_UseSkillToPos()、clif_parse_UseSkillMap() 修正。
+ clif_damage()、clif_skill_damage()、clif_skill_damage2() 修正。
+ clif_parse_LoadEndAck() 修正。
+ skill.c
+ skill_status_change_timer() 修正。
+
+--------------
+//0683 by 死神
+
+・バグ修正とbonus追加。
+・倉庫バグ、属性バグ修正とその他のバグ修正。
+・スクリプトbonus3追加。今はbAddMonsterDropItemだけが対応になっています。
+・bonus bRestartFullRecover;n;等でnは無意味だけど消すのはちょっとまずいですので0にして入れた方がいいです。bonusは2つの数値が必要なスクリプトなので。
+・bDefRatioAtkを防御無視に変更。
+・0677で書き忘れ。
+・武器の属性適用優先順位を製造>カード>武器に変更。製造が最優先です。(属性がある時に話です。属性がない場合属性ある物に上書きされたりはしません。)
+・装備で適用される効果の優先順位を右手>左手>体>頭上>頭中>頭下>ローブ>靴>アクセサリー1>アクセサリー2>矢に設定。(本鯖仕様がどうなのか分かることができそうな物でもないのでアテナの仕様と言うことで。) 右手が最優先です。
+・武器の射程を右手と左手の武器の中で長い物を適用するように変更。
+ (db/)
+ const.txt 修正。
+ (doc/)
+ item_bonus.txt 修正。
+ (map/)
+ map.h 修正。
+ battle.c
+ battle_calc_pc_weapon_attack()、battle_calc_mob_weapon_attack() 修正。
+ battle_calc_pet_weapon_attack()、battle_calc_magic_attack() 修正。
+ battle_damage() 修正。
+ pc.c
+ pc_autosave_sub()、pc_calcstatus() 修正。
+ pc_bonus()、pc_bonus2() 修正。
+ pc_bonus3() 追加。
+ script.c
+ buildin_bonus3() 追加。
+ mob.c
+ mob_once_spawn()、mob_damage() 修正。
+ storage.h 修正。
+ storage.c
+ storage_storage_save() 追加
+ atcommand.c 修正。
+
+--------------
+//0682 by 聖
+
+・スピードアップポーション系のバグ修正
+ (map/)
+ pc.c
+ pc_calcstatus() 修正。
+
+--------------
+//0681 by 死神
+
+・装備バグ修正。
+ (map/)
+ pc.c
+ pc_equipitem() 修正。
+
+--------------
+//0680 by 聖
+
+・細かい修正。
+・「@monster」コマンドでモンスターIDの指定に「-1」、「-2」等を指定すると
+ モンスターをランダムで召還できる機能を追加。
+ (map/)
+ mob.c
+ atcommand.c
+
+--------------
+//0679 by 波浪
+
+・0676で新しいアイテム効果が実装されたので、item_db.txtを修正(bonus bAddMonsterDropItem,n,x; は、種族判定ができないのでとりあえず保留しました。)
+・他色々修正
+ (db/)
+ item_db.txt
+ job_db1.txt
+ (doc/)
+ item_bonus.txt
+
+--------------
+//0678 by 聖
+
+・召還関連の細かい修正。
+ (map/)
+ mob.c
+ mob_once_spawn_area() 修正。
+
+--------------
+//0677 by 死神
+
+・細かい修正。
+・アイテム売買によって得られる経験値をカードによるスキルでは得られないように修正。
+・毒に掛かると自然回復できないように修正。
+・0676で書き忘れ。製造武器の場合製造によって与えた属性が武器の属性より優先して適用されるように変更。(製造武器が無属性の場合は適用されません。)
+ (doc/)
+ item_bonus.txt 誤字修正。
+ (map/)
+ npc.c
+ npc_buylist()、npc_selllist() 修正。
+ pc.c
+ pc_calcstatus()、pc_natural_heal_sub() 修正。
+
+--------------
+//0676 by 死神
+
+・色々と修正。
+・battle_athena.confに項目追加。(詳しいことはconf_ref.txtで)
+・みすとれ巣を参考してダメージ計算を少し修正。
+・装備bonusに色々と追加。(詳しいことはitem_bonus.txtで)
+・自動セーブする時(キャラ鯖にデータを送る時)倉庫のデータも送るように変更。
+・0667で言い忘れ。カートを外してもアイテムが消えないように変更。(本鯖で消えるのが仕様だと思っていたけど修正されたみたいなので。)
+・取引要請を受ける側は基本スキルをチェックしないように修正。(受ける側の基本スキルチェックは自分が入れた物ではないです。いつの間にか入っていたので削除しました。)
+・防具の精錬ボーナスを端数無視に変更。(これが本鯖の仕様みたいなので)
+・アンクルの処理少し変更。(かからないと言う報告がありましたので...)
+・プレイヤーのステータス計算で問題ありそうな所修正。
+・カードのIDで機能が決まっていたカードもスクリプトによって変えることができるように変更。(詳しいことはitem_bonus.txtで)
+・aspd計算方法少し変更。
+・矢にbCritical、bAtkEle、bHit、bAddEle、bAddRace、bAddSize、bAddEffを適用できるように変更。矢を使うスキルや弓による攻撃だけに矢のbCritical、bAtkEle、bHit、bAddEle、bAddRace、bAddSize、bAddEffが適用されるように修正。
+・キリの実装に為に修正はしましたがキリが防御無視なのかどうかがわからなかったので防御無視はしないようになっています。
+・テストした物はbAddMonsterDropItemとbGetZenyNumだけなので正常に動作するかどうかの報告が欲しい所です。(ついでにitem_dbの修正も...これで吸収系とオートスペル系以外は殆ど実装できるはずです。多分...)
+・その他は覚えてないけど修正した所が少しあるかも...
+ (conf/)
+ battle_athena.conf 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ item_bonus.txt 修正。
+ (db/)
+ const.txt 修正。
+ (char/)
+ inter.c
+ inter_init() 修正。
+ int_storage.c
+ mapif_parse_SaveStorage() 修正。
+ (map/)
+ trade.c
+ trade_traderequest() 修正。
+ pc.h 修正。
+ pc.c
+ pc_autosave_sub()、pc_calcstatus() 修正。
+ pc_bonus()、pc_bonus2() 修正。
+ pc_setrestartvalue()、pc_setequipindex() 修正。
+ pc_check_equip_wcard()、pc_check_equip_dcard()、pc_check_equip_card() 削除
+ その他修正。
+ skill.h 修正。
+ skill.c 修正。
+ skill_castend_nodamage_id()、skill_unit_onplace() 修正。
+ skill_check_condition()、skill_additional_effect() 修正。
+ skill_attack()、skill_status_change_start() 修正。
+ map.h 修正。
+ battle.h 修正。
+ battle.c
+ battle_get_def()、battle_get_mdef2() 修正。
+ battle_weapon_attack()、battle_damage() 修正。
+ battle_calc_magic_attack()、battle_calc_pc_weapon_attack() 修正。
+ battle_calc_mob_weapon_attack()、battle_calc_pet_weapon_attack() 修正。
+ battle_calc_misc_attack()、battle_config_read() 修正。
+ mob.c
+ mob_damage() 修正。
+ pet.c
+ pet_target_check() 修正。
+ clif.c
+ clif_set0078()、clif_set007b()、clif_changelook() 修正。
+ atcommand.c 修正。
+
+--------------
+//0675 by 波浪
+
+・韓鯖で村正の効果が変更されたので報告を元にitem_db.txtを修正
+・job_db1.txtを修正
+ (db/)
+ item_db.txt
+ job_db1.txt
+
+--------------
+//0674 by npc
+
+・ファーマシーの仮実装。
+ (db/)
+ produce_db.txt
+ (map/)
+ skill.c
+
+--------------
+//0673 by 南
+
+・集中力向上に装備品の補正が入っていなかったのを修正。
+ (map/)
+ pc.c
+
+--------------
+//0672 by 南
+
+・集中力向上に装備品の補正が入っていなかったのを修正。
+ (map/)
+ pc.c
+
+--------------
+//0672 by 聖
+
+・モンスター系のバグ修正(すみません、まだ残ってました(^^; )
+ (map/)
+ mob.c
+
+--------------
+//0671 by 聖
+
+・IDチェック範囲の修正他。
+・@monsterで数を指定しなくても召還できるように修正。
+ (map/)
+ atcommand.c
+ battle.c
+ battle.h
+ mob.c
+ pet.c
+ (conf/)
+ battle_athena.conf
+ (doc/)
+ conf_ref.txt
+
+--------------
+//0670 by RR
+
+・モンスタードロップ率を修正(本鯖準拠、DBでの設定+1/10000)。
+・落下率0に設定したアイテムを落とすかどうかをbattle_athena.confで設定可能に。
+ (map/)
+ mob.c
+ mob_damage() 修正。
+ battle.c
+ battle.h
+ (conf/)
+ battle_athena.conf
+
+--------------
+//0669 by 聖
+
+・モンスタードロップの修正。
+ (map/)
+ mob.c
+ mob_damage() 修正。
+
+--------------
+//0668 by 聖
+
+・モンスターIDの範囲チェックを修正。
+ (map/)
+ mob.c
+ mob_db、mob_once_spawn()、mob_once_spawn_area()、
+ mob_summonslave()、mob_read_randommonster()、mob_readdb() 修正。
+
+--------------
+//0667 by 死神
+
+・最大HP計算式をミストレ巣を参考して修正。(多分これで本鯖にあっていると思います。)
+・防具の精錬ボーナスを0.7に変更。(今は端数を四捨五入していますが本鯖が端数無視なら修正しておきます。)
+・@refineコマンドで装備場所IDに0を入れると装備している全ての装備を精錬するように変更。
+・その他細かい修正。
+ (db/)
+ item_db.txt
+ 7140、7142を元に戻して0666の物はコマントアウトしました。
+ job_db1.txt 修正。
+ refine_db.txt 修正。
+ (map/)
+ mob.c
+ mob_once_spawn() 修正。
+ itemdb.c
+ itemdb_read_randomitem() 修正。
+ pet.c
+ pet_food() 修正。
+ pc.c
+ pc_readdb()、do_init_pc()、pc_calcstatus()、pc_setoption() 修正。
+ pc_calc_sigma() 追加。
+ その他修正。
+ map.h 修正。
+ battle.c
+ battle_calc_magic_attack()、battle_calc_misc_attack() 修正。
+ atcommand.c 修正。
+
+--------------
+//0666 by 聖
+
+・ランダムアイテムの細かい修正。
+・battle_athena.confの項目追加。
+・古木の枝で召還するモンスターの確率を設定出来るようにしました。
+・モンスター召還アイテムを複数作る事が出来るようにしました。
+・召還アイテムのサンプルとして
+ 生命の種子をポリン系召還、
+ エンブリオをMVPボス系召還にしてみました。
+ あまりいいサンプルを思いつかなかったので、
+ 何かいい案を思いついた人は書き換えてやってください(^^;
+ (conf/)
+ battle_athena.conf
+ (doc/)
+ conf_ref.txt
+ (map/)
+ mob.h
+ mob_db 修正。
+ mob.c
+ mob_once_spawn()、mob_makedummymobdb()、mob_readdb() 修正。
+ mob_readbranch() -> mob_read_randommonster()に変更。
+ battle.h
+ battle_config 修正。
+ battle.c
+ battle_config_read() 修正。
+ itemdb.c
+ itemdb_read_randomitem() 修正。
+ (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 追加。
+ mob_boss.txt 追加。
+
+--------------
+//0665 by J
+
+・怨霊武士の取り巻きがカブキ忍者になっていたのを酒天狗に修正。
+・オットーにフェイクエンジェルが出すはずの取り巻きがついてたのを修正。
+ (db/)
+ mob_skill_db.txt
+
+--------------
+//0664 by 聖
+
+・精錬失敗時他のプレーヤーにもエフェクトが表示されるように修正。
+ (map/)
+ script.c
+ buildin_failedrefitem() 修正。
+
+--------------
+//0663 by lide
+
+・ブランディッシュスピア修正
+ (map/)
+ battle.c
+ skill.c
+
+--------------
+//0662 by 死神
+
+・細かい修正とバグ修正。
+・プロボックによってモンスターは乗算防御と減算防御が減るように修正してプレイヤーは減算防御だけ減るように修正。
+・スクリプトgetgmlevel追加。機能はそのNPCと話しているプレイヤーのGMレベルを返します。
+・0659の書き忘れですがペットのパフォマンスの種類が親密度によって増えるように変更しました。
+ (map/)
+ clif.c
+ pc.c
+ script.c
+
+--------------
+//0661 by 死神
+
+・細かい修正。
+・接続した時のペットのメッセージを親密度がきわめて親しいの時のみに出るように変更。
+・0659で書き忘れですがペットの支援攻撃は親密度がきわめて親しいの時のみに発生します。(それと親密度によって支援攻撃確率が少し変化します。)
+・ジルタスとアリスの卵のIDをitem_db.txtに合わせました。(自分が作ったpet_db.txtの方が自分勝手に設定していた物でしたので。て言うか未実装アイテムだから番号がわからなかっただけですが...)
+・pet_db.txtのattack_rateが正しく適用されなかったバグ修正。
+ (db/)
+ pet_db.txt
+ (map/)
+ clif.c
+ clif_parse_LoadEndAck() 修正。
+ pc.c
+ pc_attack_timer() 修正。
+
+--------------------
+//0660 by いど
+
+・サーバーsnapshot
+
+--------------
+//0659 by 死神
+
+・ペットを色々と修正。(ペットのコードをほとんど変えました。)
+・手動的だったペットの動きをモンスターのようにAIとして処理。
+・接続した時のペットのメッセージ実装。(本鯖はどうなのかわかりませんが
+Athenaは接続すると100%話すようになっています。)
+・ペットのスペシャルパフォマンス実装。(ただ台詞がちょっと変です。いくら探しても該当するパケットが見つからなかったので。)
+・ペットの台詞を他のペットの物に変更する機能追加。(詳しいことはdb_ref.txtとpet_db.txtで。)
+・ペットによる支援攻撃変更。pet_db.txtで攻撃する時と攻撃を受けた時の支援攻撃
+確率を別々に設定できます。攻撃する時の場合攻撃する度にチェックをしますので
+攻撃速度が速いと支援攻撃を受けやすくなります。攻撃を受けた時も同じです。(こちらはダメージを喰らう度になりますが。) 支援攻撃確率はソヒー、ジルタス、アリスだけ自分勝手に設定しています。(他のは全部1%に。ペットの支援攻撃は同じモンスターにはできないようになっています。そしてペットの戦闘能力はモンスターと同じです。)
+・/hideコマンド実装。
+・プロボックによって乗算防御も減るように修正。
+・フリーキャストのバグ修正。
+・ノービスのステータスボーナス削除。
+・battle_athena.confの項目追加と削除。
+・修正したファイルだけ。未テストした物もかなりありますので問題があったら報告をお願いします。
+ (conf/)
+ battle_athena.conf
+ (doc/)
+ conf_ref.txt
+ db_ref.txt 追加。(今説明が入っているのはpet_db.txtのみです。 )
+ 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
+
+・ペットがとどめをさすと、飼い主に経験値が入るようにしました。
+・固定値ダメージじゃ味が無いのでATK1〜ATK2の間で乱数を取るようにしました。
+・あと、ペットがとどめをさすかどうかの設定を、battle_athena.confに加えました。
+
+ (conf/)
+ battle_athena.conf pet_finish追加。
+ (map/)
+ battle.c
+ battle_config_read() 修正。
+ battle.h 修正。
+ pet.c
+ pet_attack() 修正。
+ (doc/)
+ conf_ref.txt 説明追記。
+
+--------------
+//0657 by huge
+
+・ペットによる攻撃を実装。
+・ペットを持っていて、ペットが装備品をつけてて、さらにランダムによる判定で発動します。
+・ただの遊び心ですw
+・battle_athena.confで頻度を設定できます。詳細はdocで。
+
+ (conf/)
+ battle_athena.conf pet_attack追加。
+
+ (map/)
+ battle.c
+ battle_config_read() 修正。
+ battle.h 修正。
+ pc.c
+ pc_attack_timer() 修正。
+ pet.c
+ pet.h
+ pet_attack() 追加。
+ (doc/)
+ conf_ref.txt 説明追記。
+
+ とりあえず、ペットが動いてるなぁって感じと、ダメ回数を増やした程度です。
+
+--------------
+//0656 by 死神
+
+・グランドクロスの修正。(おいおい何度目だ...)
+・グランドクロス計算式間違いで修正。(÷3がまずかったみたいです。)
+でもまだ反射ダメージがみすとれ巣よりちょっと高いです。(10ぐらいだから
+関係ないかも)
+・モンクの気球を必中に修正。(自分の間違いのようですので...)
+ (map/)
+ skill.c 修正。
+ battle.c 修正。
+
+--------------
+//0655 by 死神
+
+・グランドクロスの修正。
+・自分なりに情報を収集してみた結果グランドクロス反射ダメージは
+プレイヤーキャラがそのキャラ自身にグランドクロスを使った時の
+ダメージだそうなので修正しました。(みすとれ巣の計算とはかなり違うような
+気もしますが...)
+・魔法とトラップ、鷹の攻撃にも属性耐性と種族耐性を適用するように修正。
+(本鯖の仕様にあっているかどうかは不明ですが適用した方が正しいと思ったので
+修正しました。)
+ (map/)
+ skill.c 修正。
+ map.h 修正。
+ battle.c 修正。
+
+--------------
+//0654 by 死神
+
+・グランドクロスの修正と細かい修正。(計算式間違いで修正。)
+・0653で書き忘れ。気功による追加ダメージは必中ではないらしいので
+修練の加算と同じ所に計算するように変更しました。
+・カートにバグがありそうだったのでちょっと修正。
+・ダメージ計算をほんの少し修正。(ダメージ量が変わったりはしません。)
+ (map/)
+ battle.c
+ battle_calc_magic_attack() 修正。
+ battle_calc_mob_weapon_attack()、battle_calc_pc_weapon_attack() 修正。
+ skill.c
+ pc_damage_feedback() -> skill_damage_feedback()に変更。
+ skill_unit_timer() 修正。
+ pc.c
+ pc_setoption() 修正。
+ atcommand.c 修正。
+
+--------------
+//0653 by 死神
+
+・0652の修正と細かい修正。今まで通り未テストも多いです。
+・グランドクロスの処理修正。(本鯖にあっているかどうかの自身はありません。)
+ラグナーゲートの説明によると始めに現在HPの20%が消耗されてその後敵に与えた
+ダメージの中で一番高い物が戻ってくるようです。そしてその戻ってきた
+ダメージは聖の属性を持ちトラストによって聖の耐性が50%になっているので
+半分を喰らうことになるようです。(聖の耐性上がる装備をしていれば戻ってくる
+ダメージは受けないようです。)
+問題なのはプレイヤーの防御属性を計算するかどうかです。今は防御属性計算の
+後で聖の属性を計算しています。そして戻ってくるダメージはHPバーは減るけど
+表示はされません。本鯖の方がどうなのか不明なので...
+それと一応モンスターもグランドクロスの使用が可能です。ただモンスターの場合
+現在HPの20%消耗の後のダメージは受けません。(モンスターが使う
+グランドクロスのテストはしてません。)
+・ダメージによるディレイ中にまたディレイがかからないように修正。(大した意味はないかも...)
+・値段がゼロのアイテムも売れるように変更。
+・@コマンドhealの処理少し修正。
+・移動コード少し修正。
+ (map/)
+ clif.c
+ clif_selllist() 修正。
+ battle.c
+ battle_calc_mob_weapon_attack()、battle_calc_pc_weapon_attack() 修正。
+ battle_calc_magic_attack()、battle_calc_misc_attack() 修正。
+ skill.c
+ skill_additional_effect()、skill_unit_onplace() 修正。
+ skill_status_change_start()、skill_unit_onplace() 修正。
+ skill_castend_damage_id()、skill_castend_id()、skill_attack() 修正。
+ skill_unitsetting()、skill_check_condition() 修正。
+ skill_use_id()、skill_use_pos() 修正。
+ npc.c
+ npc_parse_script() 修正。
+ pc.h 修正。
+ pc.c
+ pc_walk()、pc_walktoxy_sub()、pc_stop_walking() 修正。
+ map.h 修正。
+ mob.h 修正。
+ mob.c
+ mob_stop_walking()、mob_changestate()、mob_walk() 修正。
+ pet.c
+ pet_changestate() 修正。
+ atcommand.c 修正。
+ (db/)
+ skill_db.txt グランドクロス修正。
+ cast_db.txt グランドクロス修正。
+
+--------------
+//0652 by 月詠み
+
+・グランドクロスを仮実装
+ (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 波浪
+
+・item_db.txtを修正
+ (db/)
+ item_db.txt
+ 装備品のアイテム効果を修正
+
+--------------
+//0650 by 死神
+
+・三段掌の発動条件を弓と二刀流以外に変更。
+・表示をせずに内部で処理だけするNPCのCLASSを111から32767に変更。
+・細かい修正。
+ (map/)
+ clif.c
+ clif_getareachar_npc()、clif_spawnnpc()、clif_pcoutsight() 修正。
+ npc.h 修正。
+ battle.c
+ battle_calc_pc_weapon_attack()、battle_calc_mob_weapon_attack() 修正。
+
+--------------
+//0649 by 波浪
+
+・DBとDOC修正
+ (db/)
+ item_db.txt
+ グングニールはLV4武器なので、韓国のデータにあわせて風属性ではなくします。
+ mob_db.txt
+ size_fix.txt
+ 楽器は大型に対して75%だそうです。
+ (doc/)
+ item_bonus.txt
+
+--------------
+//0648 by 死神
+
+・ショップの値段に-を入れると鯖が落ちる問題修正。(itemdbの初期化をnpcより
+先にするように変更。) それだけです。
+ (map/)
+ map.c
+ do_init()
+
+--------------
+//0647 by nini
+
+・item_db修正
+・スナッチャー仕様変更。弓以外のすべての武器で出るようになってます。
+ (/map/)
+ battle.c
+ 三段掌の発動条件追加
+ skill.c
+ スナッチャーの発動条件追加
+ (/db/)
+ item_db.txt
+ シルクハットにSP上昇追加
+
+--------------
+//0646 by last
+
+・item_db.txtの修正(属性関連)
+ (/db/)
+ item_db.txt
+
+--------------
+//0645 by るるる(&ree_ron)
+
+・item_value_db.txtにディスカウント&オーバーチャージ等のスキルによる価格変動を受けるかどうかのフラグメントを追加。
+ 実際の形式はサンプルとして用意したitem_value_db.sample.txtを見てください。(設定価格は完全に独断と偏見です)
+ 同様のサンプルとしてNPC設置スクリプトも添付しておきます。
+・item_value_db.txtのアイテム価格設定で、売値と買値の設定を独立。(item_db.txtは従来どおり買値は売値の半額として自動処理)
+・NPCショップにて、1NPCで扱えるアイテム数を最大64から最大100に変更。(クラ自体は120ぐらいまで可能ですが)
+ (/db)
+ item_value_db.txt
+ カラム数を整理しただけです。内容はまったく変更していません。
+ (/map/)
+ clif.c
+ clif_buylist() clif_selllist() 変更
+ itemdb.h
+ item_data 構造体変更
+ itemdb_value_buy() itemdb_value_sell() itemdb_value_notdc() itemdb_value_notoc() マクロ追加
+ itemdb.c
+ itemdb_search() itemdb_readdb() itemdb_read_itemvaluedb() 変更
+ itemdb_sellvalue() 削除
+ npc.c
+ npc_buylist() npc_selllist() npc_parse_shop() 変更
+ (/sample/)
+ オマケです。次回SnapShotには含まないで宜しいです。
+
+コメント
+原型は私の友人ree_ronが行い、私が更に細かいミスを直しただけですが、テストはしましたので大丈夫でしょう。
+元々この処理を導入する理由として、特定アイテムの売値が1z固定にできないものか、という点だったからです。
+そしてやっていくうちに、NPCショップを利用したレアアイテムの販売とかで本鯖露店に近いことが出来るのではないか、
+ということが判ってきたわけです。
+それで一応はデータを用意しましたが、あくまでもサンプルとして利用してください。もし可能ならば、
+さらに修正を加えてアテナ独自として本採用としたデータをパッチアップしてくれればとも思いますがw
+
+
+--------------
+//0644 by nini
+
+・DBの間違い、643で追加されたスクリプト追加。
+ (/db/)
+ item_db.txt
+ cast_db.txt
+ チャージアローのキャスト追加。
+ exp_guild.txt
+ 46-50までのexp抜けに追加。
+ size_fix.txt
+ 楽器、鞭、ナックルのサイズ補正修正。
+
+--------------
+//0643 by 死神
+
+・色々と修正。
+・bMVPaddAtkRate削除。bAddRaceで処理するように変更。
+・bIgnoreDefEleとbIgnoreDefRace追加。
+bonus bIgnoreDefEle,n; n属性の敵の防御無視
+bonus bIgnoreDefRace,n; n種族の敵の防御無視
+・bMatkRate追加。魔法攻撃力を+n%上げます。よってbattle.cで計算していたロッドによる魔法攻撃力増幅の計算はなくしました。ステータス画面に上がった数値は表示されません。ダメージ計算の時に適用しています。
+・bCriticalDefに-を入れるとクリティカルを喰らう確率が上がるように変更。
+・NPC番号111は透明NPCですが落とし穴等のことを考えて表示を一切せずに
+内部で処理だけするように変更。(flagを使うと何とかなりそうですがその
+処理が全然わからなかったので透明NPCにクリックや名前の表示もできないように変更しました。)
+・ショップの値段に-を入れるとitem_db.txtもしくはitem_value_db.txtの物を使うように変更。
+・スキルルアフのエフェクトがサイトと同じだったので修正。ついでにルアフの
+ダメージも修正。
+・みすとれ巣によるとモンスター情報で表示される防御と魔法防御は乗算ではなく減算みたいなので修正。
+・他力本願ですがitem_db.txtの修正をお願いします。(全てのロッドにbonus bMatkRate,15; を入れる必要があります。その他の修正も必要です。)
+・テストしていない物もかなりありますので問題があったら報告してください。
+ (map/)
+ map.h 修正。
+ map.c
+ map_quit() 修正。
+ pc.h 修正。
+ pc.c
+ pc_walk()、pc_stop_walking()、pc_setpos()、pc_authok() 修正。
+ pc_calcstatus()、pc_bonus()、pc_natural_heal_sub() 修正。
+ npc.h 修正。
+ npc.c
+ npc_touch_areanpc()、npc_parse_shop() 修正。
+ clif.c
+ clif_quitsave()、clif_getareachar_npc()、clif_spawnnpc() 修正。
+ clif_skill_estimation() 修正。
+ battle.c
+ battle_calc_magic_attack()、battle_calc_pc_weapon_attack() 修正。
+ battle_calc_mob_weapon_attack() 修正。
+ mob.c
+ mobskill_use() 修正。
+ skill.c
+ skill_status_change_end()、skill_status_change_timer() 修正。
+ skill_status_change_start() 修正。
+ (db/)
+ const.txt 修正。
+ (doc/)
+ item_bonus.txt 修正。
+
+--------------
+//0642 by 死神
+
+・装備バグ修正。(それだけ)
+ (map/)
+ pc.c
+ pc_authok()、pc_checkitem() 修正。
+
+--------------
+//0641 by 死神
+
+・bAspdRateとbSpeedRateのバグ修正。(それだけ)0640で計算をちょっと変えて見ましたがそれがまずかったみたいです。今度も計算式を変えましたがもう大丈夫だと思います。(多分)
+ (map/)
+ pc.c
+ pc_calcstatus()、pc_bonus()、pc_delitem()
+
+--------------
+//0640 by 死神
+
+・バグ修正と少し修正。
+・みすとれ巣を参考してダメージ計算を少し修正。
+・battle_athena.confに項目追加。(詳しいことはconf_ref.txtで)
+・キャラのHPとSPを2byteから4byteに変更。(テストはしていますがバグが出る
+可能性もかなりあります。ただキャラセレクト画面でHPやSPが32768を越える時
+表示は32768になるけど内部の処理は正常に動きますのでそれはバグではありません。
+パケットの長さのせいでそれ以外手段がなかったので...)
+・bCriticalDef(クリティカルを喰らわない確率+n%)の処理変更。100にすれば
+クリティカルを喰らわないようになります。)
+・bInnerAtkをbBaseAtkに変更。みすとれ巣でカードの攻撃は基本攻撃力の方に足されるとありましたので変更しました。今度は上がった攻撃力が表示されます。
+・bDoubleRateの処理変更。確率を足さずに一番高い物だけ適用します。それと左手
+装備の場合無視するように変更しまた。(左手はダブルが適用されませんので)
+・bDoubleAddRate追加。機能はダブルアタック確率+n%(武器無視)です。
+左手装備は無視されます。
+・0635で攻撃力表示を本鯖にあわせました。そして今度は弓だけではなく
+楽器とムチもdexによって攻撃力が上がるように変更しました。
+・装備した武器が消えるバグ修正の為に少し修正はしましたが本当に
+大丈夫なのかは不明です。報告をお願いします。
+ (conf/)
+ battle_athena.conf 修正。
+ (db/)
+ const.txt 修正。
+ item_db.txt 修正。
+ (doc/)
+ item_bonus.txt 修正。
+ conf_ref.txt 修正。
+ (map/)
+ map.h 修正。
+ pc.c
+ pc_calcstatus()、pc_bonus()、pc_equipitem() 修正。
+ battle.h 修正。
+ battle.c
+ battle_calc_mob_weapon_attack()、battle_calc_pc_weapon_attack() 修正。
+ battle_config_read() 修正。
+ clif.c
+ clif_updatestatus()、clif_parse_LoadEndAck()、clif_party_hp() 修正。
+ (common/)
+ mmo.h 修正。
+ (char/)
+ char.c
+ mmo_char_send006b()、parse_char() 修正。
+
+--------------
+//0639 by 胡蝶蘭
+
+・ladminの修正など
+ ・プロンプトの入力にTerm::ReadLineを使うようにした
+ (入力履歴やコマンドラインの編集が可能に)
+ ・POSIX関係の処理の例外エラーをトラップするようにしました
+ (POSIXが全く使えない環境でも最低限、動くようになったかもしれない)
+ ・細部修正
+
+ (tool/)
+ ladmin
+ Ver.1.04に。
+
+・MODバージョンがおかしい問題を修正
+ (common/)
+ version.h
+ ATHENA_MOD_VERSIONが8進数で記述されている問題を修正
+ 数字の頭に0をつけると8進数になるので注意してください
+
+--------------
+//0638 by 波浪
+
+・0635・0637で新しくアイテム効果が実装されたので、それに伴ってitem_db.txtを修正
+・item_bonus.txtを修正
+ (db/)
+ item_db.txt 修正
+ (doc/)
+ item_bonus.txt 修正
+
+--------------
+//0637 by 死神
+
+・0635のバグ修正。
+・battle_athena.confに項目追加。(詳しいことはconf_ref.txtを見てください。)
+・時間が遅すぎて0635で説明してなかったです。(寝不足だったので...)
+まず仕様が変わったのは二刀流のダメージを武器別に完全に分けて行うように
+変更とアサシンじゃなくても左手修練を覚えていれば二刀流を使えるように
+変更しました。それとダメージの計算をちょっと修正。
+そしてbonusに追加されたのは
+bonus bInnerAtk,n; 内部攻撃力+n
+カードの引き上げダメージ用です。表示はされないけどダメージに計算されます。
+bonus bSpeed,n; 移動速度+n
+移動速度をn上げます。
+bonus bAspd,n; 攻撃速度+n
+攻撃速度をn上げます。
+bonus bSpeedRate,n; 移動速度+n%
+移動速度をn%上げます。
+bonus bAspdRate,n; 攻撃速度+n%
+攻撃速度をn%上げます。
+bonus bHPrecovRate,n; HP自動回復率+n%
+自動回復するHPの量をn%上げます。スキルによる回復には影響がありません。本鯖の仕様とあっているかは不明です。
+bonus bSPrecovRate,n; SP自動回復率+n%
+自動回復するSPの量をn%上げます。スキルによる回復には影響がありません。本鯖の仕様とあっているかは不明です。
+bonus bCriticalDef,n; クリティカルを喰らわない確率+n%
+クリティカルの耐性をn上げます。10000以上にするとクリティカルを喰らいません。
+bonus bMVPaddAtkRate,n; MVPモンスターにn%の追加ダメージ
+ボスモンスターにn%の追加ダメージを与えます。深淵の騎士カード用。
+bonus bNearAtkDef,n; 近距離攻撃のダメージをn%の減らす
+全て近距離攻撃のダメージをn%の減らします。(魔法とトラップ、鷹を除く)
+bonus bLongAtkDef,n; 遠距離攻撃のダメージをn%の減らす
+全て遠距離攻撃のダメージをn%の減らします。(魔法とトラップ、鷹を除く)
+bonus bDoubleRate,n; ダブルアタック確率+n%(武器無視)
+武器に関係なく発動するダブルアタック確率をn%上げます。
+ダブルアタックスキルと別の判定を行う為ダブルアタックスキルが
+あってもスキルによるダブルアタック確率が上がるわけではありません。
+サイドワインダーカード用。
+ (map/)
+ pc.c
+ pc_bonus()、pc_calcstatus() 修正。
+ pc_natural_heal_sub() 修正。
+ battle.h
+ struct Battle_Config {} 修正。
+ battle.c
+ battle_calc_pc_weapon_attack()、battle_calc_mob_weapon_attack() 修正。
+ battle_config_read() 修正。
+ (db/)
+ skill_db.txt
+ スティールのSPを10に修正。
+ (conf/)
+ battle_athena.conf 修正。
+ (doc/)
+ conf_ref.txt 修正。
+
+--------------
+//0636 by Sin
+
+・デバッグ用ポタ子さんスクリプト(npc_pota.txt)のアマツ・コンロンへの対応。
+ すでに自力実装されていらっしゃる方々も多いかと思いますが…。
+ コンロンダンジョンの名前がわからないため「崑崙D1」などとさせていただいています。
+ (conf/) npc_pota.txt
+
+--------------
+//0635 by 死神
+
+・battle_athena.confに項目追加。(詳しいことはconf_ref.txtを見てください。)
+・bonusにbInnerAtk(カード等で表示はされないけど実際には攻撃力に反映される物用です。)等を追加。他のはitem_bonus.txtを見てください。(追加はしたけどitem_db.txtは殆んど修正してません。)
+・その他バグ修正や仕様変更もやりましたが一々書く時間がないので...
+ (map/)
+ makeile 修正。
+ pc.c 修正。
+ map.h 修正。
+ clif.c 修正。
+ battle.h 修正。
+ battle.c 修正。
+ itemdb.c 修正。
+ (conf/)
+ battle_athena.conf 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ item_bonus.txt 修正。
+ (db/)
+ const.txt 修正。
+ item_db.txt 修正。
+
+--------------
+//0634 by 死神
+
+・weddingクラスには転職できないように修正。
+・スーパーノービスの為にexpテーブルをbase 4つjob 4つに拡張。
+exp.txtが変わりスーパーノービスだけの経験値を設定できます。(exp.txtの
+4つ目がスーパーノービスのbase expで8つ目がjob expです。今は2次職業の物を
+コピーした物に過ぎませんが。) exp.txtの設定方法も知らない方はいないと
+思いますので説明は省略します。
+・スーパーノービスは転生のテストの為に韓国サクライだけ実装している物と
+思われますが(転生が実装されればなくなると予測しています。)それを
+実装していいのかと思ったりもしますが...
+・結婚衣裳は既に0629で実装しているのにまたパッチとして
+アップされるのもちょっと変(?)ですね。そういえば説明してなかったんですね。
+・装備専用スクリプトであるchangebaseの追加によってタキシードと
+ウェディングドレスが実装しています。これは職業を変更せずに見た目だけ
+変える物です。weddingクラス以外の適用も可能で変装セットとかも作れる
+わけですが内部処理は変更せずに見た目だけ変えているので0631で説明したように
+装備できない物を装備している場合鞍落ちが起こる可能性がありますので
+他の職業で使うのはお勧めしません。仮実装なのは今の仕様はタキシードと
+ウェディングドレスを装備するだけで見た目が変わるからです。韓国サクライの
+方では何かの条件が必要だと思っているのでその条件がまだ実装されいないから
+仮実装です。それにweddingクラスを職業にしてしまうと結婚するとスキル等が
+リセットされるか変になるかのどちらなので変だと思ってなかったのでしょうか?
+ help.txt 修正。
+ (db/)
+ job_db1.txt 修正。
+ exp.txt 修正。
+ (map/)
+ pc.c
+ pc_jobchange()、pc_readdb() 修正。
+ pc_nextbaseexp()、pc_nextjobexp() 修正。
+
+--------------
+//0633 by 波浪
+
+・装備の設定修正。結婚衣裳の職は、実際に転職するのではなくペコナイト(13)、ペコクルセ(21)のように画像を使うだけだと思うので
+ 何も装備できない設定にしました。スパノビはノビが装備できるものだけ設定しました。
+・古木の枝の出現モンスターを追加
+・アマツのモンスの沸き具合を本鯖に近くなるように修正(まだまだ違いますが・・・)
+ (conf/)
+ npc_monster.txt モンス名修正
+ npc_monster_amatsu.txt 修正
+ (db/)
+ item_avail.txt 鞍落ちアイテム追加
+ item_db.txt 装備設定を修正、他多数
+ mob_branch.txt 修正
+ mob_db.txt モンス名修正
+ skill_tree.txt 修正
+
+--------------
+//0632 by nini
+
+・@jobchangeで結婚衣裳とスーパーノービスになれるように。(注意:韓国桜井クライアントのみ)
+・Sノビのステ、スキルなども暫定追加。(ノービスのコピーですが)
+ とりあえず見た目だけということで、結婚衣裳でも攻撃できますが(ただしノーモーション)、本来はできません。
+・上にあわせてitem_db編集。
+ 結婚衣裳で武器もつとact、sprエラー出すので、結婚衣裳では武器を持てないようにした(はず)。
+ (db/)
+ job_db1.txt
+ job_db2.txt
+ item_db.txt
+ 結婚衣裳、Sノビのデータ
+ skill_tree.txt
+ Sノビのスキル
+ (map/)
+ map.h
+ MAX_PC_CLASSに追加
+
+--------------
+//0631 by 死神
+
+・細かい修正。
+・タキシードとウェディングドレスの表示をbattle_athena.confで設定できる
+ように変更。
+・武器グラパッチについてですがパッチ前は使えない職業が装備をしても表示は
+されないだけで鞍落ちまでは起こらなかったけど武器グラパッチの後はその武器を
+装備することができない職業(本鯖で)が装備してしまった場合鞍落ちが起こる
+ことがありますので注意してください。
+ (db/)
+ item_db.txt
+ 1161、2338、7170 修正。
+ (conf/)
+ battle_athena.conf 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ (map/)
+ battle.h
+ struct Battle_Configにwedding_modifydisplay 追加。
+ battle.c
+ battle_config_read() 修正。
+ pc.h
+ pc_cart_delitem() 修正。
+ pc.c
+ pc_jobchange()、pc_additem()、pc_delitem()、pc_cart_delitem() 修正。
+ pc_checkitem()、pc_getitemfromcart() 修正。
+ clif.c
+ clif_changelook()、clif_send()、clif_parse_GlobalMessage() 修正。
+ script.c
+ buildin_changebase() 修正。
+ storage.c
+ storage_storageaddfromcart() 修正。
+ vending.c
+ vending_purchasereq() 修正。
+
+--------------
+//0630 by 引退人
+
+・ギルド脱退時にcharサーバが落ちることがあるのを修正
+・water_height.txtを更新
+・0627に関連してmodifydisplay関連を削除
+ (char/)
+ int_guild.c
+ mapif_guild_leaved()のバッファ容量が足りなかったので、
+ unsigned char buf[64]; -> unsigned char buf[128];
+ と修正。
+ (conf/)
+ battle_athena.conf
+ equip_modifydisplayを削除
+ water_height.txt
+ prt_fild04.gatとmoc_fild01.gatの分を追加
+ (doc/)
+ conf_ref.txt
+ equip_modifydisplayの説明を削除
+ (map/)
+ battle.h
+ struct Battle_Config からequip_modifydisplayを削除
+
+--------------
+//0629 by 死神
+
+・0627のバグ一部修正と新しい移動パケットに対応。(自分の間違いでした。
+モンスターやNPCも新しい移動パケットを使うと思っていたのですが
+新しい移動パケットはプレイヤーのみのようです。)
+・タキシードとウェディングドレス仮実装。(韓国のサクライ鞍じゃないと
+鞍落ちされます。使用する時はitem_db.txtのコマントアウトされている
+2338と7170を解除して使ってください。)
+・SP回復アイテムもintによって効果が増えるように変更。
+・0627で書き忘れですがカートのアイテム計算とitemdb_を呼ぶのを最小化する
+処理を入ってるせいでpc_additem()、pc_delitem()、pc_cart_additem()、pc_cart_delitem()以外の方法でカートアイテムやアイテムに変動がある場合
+正常に動作する保証がないので修正のさいには注意してください。
+ readme0754をreadme0574に修正。
+ makefile 修正。
+ (map/)
+ map.h 修正。
+ clif.c 修正。
+ pc.c 修正。
+ battle.c 修正。
+ mob.c 修正。
+ script.c 修正。
+ (db/)
+ item_db.txt 修正。
+ class_equip_db.txt 修正。
+ skill_db.txt 修正。(誤字を治しただけです。)
+ (conf/)
+ npc_event_doll.txt 修正。(流浪人さんありがとうございます。)
+
+--------------
+//0628 by NOCTURNE
+
+・snapshot
+・snapshotからsnapshotまでのReadme分割
+・要望が多かったのでsnap作成(プログラム的な変更点は無し
+
+--------------
+//0627 by 死神
+
+・コードの最適化と少し修正。(少しは軽くなると思います。)
+・ @modifydisplayコマンド削除。
+・新しい移動パケットに対応だと思ったら0x1d8、0x1d9、0x1daパケットの一部が
+0x78、0x79、0x7bと変わってるみたいです。つまり今のままでは対応できません。
+X,Yの座標の部分の書式が変わったのかと予測はしていますが...
+情報を求みます。(makefileのDPACKETVERを4にすれば0x1d8、0x1d9、0x1daを
+使いますが座標がずれたらしく何も標示されません。)
+・100000からだったchar_idを150000からに変更。(ペットの卵の問題で武器の名前がちょっと変になったので修正しました。)
+・ペットのコード少し修正。(pet_idをcard[2]とcard[3]からcard[1]とcard[2]に変更しました。よって前に作った卵は使えません。鞍でcard[3]の機能が変わったので
+仕方なく修正しました。今度はconvertツールがありません。作る時間がなかったので...)
+・最適化の為に修正した所が多いですが全て正常動作する保証はありません。
+鯖落ちバグが発生したら報告お願いします。(batte.cはまだ最適化してません。)
+カートのアイテム計算やアイテムの重量の計算を最初にだけするようにしているので表示に少し問題があるかも...
+・修正したファイルだけ書いておきます。
+ 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 引退人
+
+・パケット長テーブル(新移動パケットなど)修正
+ (doc/)
+ client_packet.txt パケット解析スレ Mさんの情報を反映
+ conf_ref.txt 0624に合わせて修正
+ (map/)
+ clif.c
+ packet_len_table[] client_packet.txtに合わせて修正
+
+--------------
+//0625 by 引退人
+
+・@hide透明化をBOSSなどに見破られないように修正
+ (map/)
+ pc.h
+ #define pc_iscarton(sd) 修正
+ #define pc_isinvisible(sd) 追加
+ mob.c
+ mob_attack()
+ mob_target()
+ mob_ai_sub_hard_activesearch()
+ mob_ai_sub_hard_mastersearch()
+ mob_ai_sub_hard()
+ 透明(pc_isinvisible(sd)!=0)で死人と同様に判定されるように修正
+ (conf/)
+ npc_cTower.txt 修正(thx to holyzardさん)
+
+--------------
+//0624 by るるる
+
+・武器画像表示処理の一新(新移動パケット使用)
+・上と関連して、@modifydisplayコマンドを設けた
+ 機能としては、現在のアサシン武器などのがおかしい場合に、または気に入らないとかで、
+ キャラ毎に旧パケを使用するようにしている。
+
+ (map/)
+ atcommand.c
+ atcommand() @modifydisplayコマンドを追加
+ atcommand.h
+ struct Atcommand_Config {
+'7d 変更
+ clif.c
+ clif_set0078_and01d8() , clif_set007b_and01da() 関数名&処理の変更
+ clif_spawnpc() , clif_movechar() , clif_changelook() , clif_getareachar_pc() ,
+ clif_fixpcpos() , clif_parse_LoadEndAck() 変更
+ map.h
+ struct map_session_data ・b} 変更
+ pc.c
+ pc_setnewpc() , pc_calcstatus() , pc_equiplookall() , pc_changelook() 変更
+
+ (conf/)
+ atcommand_athena.conf
+ equip_modifydisplay 追加
+
+ 変更箇所は全てキーワード「modifydisplay」でサーチすればほぼわかるかと。
+
+コメント:もうこれで問題は無いはず。実は大いなる勘違いをしてた個所があったのは内緒(マテw
+
+--------------
+//0623 by 引退人
+
+・@hideで透明化(見られない&MOBにタゲられない)するように修正など
+ (map/)
+ atcommand.c
+ @hideのoption設定を0x04から0x40に変更
+ mob.c
+ mob_attack()
+ mob_target()
+ mob_ai_sub_hard_activesearch()
+ mob_ai_sub_hard_mastersearch()
+ mob_ai_sub_hard()
+ option判定を0x06から0x46に修正
+ (conf/)
+ npc_event_potion.txt MORISON_MEAT修正(thx to holyzardさん)
+
+--------------
+//0622 by 引退人
+
+・mobがスキル使用に失敗した場合、通常攻撃するように
+ (map/)
+ mob.c
+ mobskill_use_id() スキル使用失敗で0、成功で1を返すように修正
+ mobskill_use_pos() スキル使用失敗で0、成功で1を返すように修正
+ mobskill_use() 上記を反映して失敗時には0を返すように修正
+
+--------------
+//0621 by 胡蝶蘭
+
+・アイテムチェックを行うかどうかconf/battle_athena.cnfに書けるように
+・アイテムチェックで不正と判断するかどうかをdb/item_avail.txtに書けるように
+・@itemcheckで明示的にアイテムチェックできるように
+
+ デバグやテストなどで色々なアイテムIDを使用したい場合は
+ アイテムチェックを無効にして下さい。(item_check: off)
+ 無効にした場合でも@itemcheckコマンドでチェックすることが出来ます。
+ cnfファイルは用意してないので必要なら各自適当に書き換えてください。
+
+ (db/)
+ item_avail.txt
+ 新規追加。不正アイテムの列挙に使用。未完成。他力本願。
+ item_db.txtに定義されてるが実際には使用できないアイテムを書く。
+ (doc/)
+ conf_ref.txt
+ battle_athena.cnfとatcommand_athena.cnfの説明修正
+ (map/)
+ itemdb.c/itemdb.h
+ itemdb_availableマクロ追加
+ itemdb_read_itemavail()追加
+ itemdb_readdb()でavailable=1にするように
+ itemdb_search()で存在しないIDはavailable=0でデータを作るように
+ do_init_itemdb()でitemdb_read_itemavail()を呼ぶように
+ pc.c/pc.h
+ pc_checkitem()をエクスポート
+ pc_checkitem()でavailableとbattleconfigをチェックするように
+ atcommand.c/atcommand.h
+ @itemでbattleconfigをチェックするように
+ @itemcheckコマンド追加
+ atcommandconfigにitemcheckメンバ追加
+ battle.c/battle.h
+ battle_configにitem_checkメンバ追加
+
+・ladminの修正など
+ アカウント追加、パスワード変更の際にパスワードを省略すると、
+ パスワード用のエコーしない専用プロンプトで入力できます(&入力確認)。
+ 追加の際にパスワードが表示されたら困る場合などに。
+ パスワード入力中はCtrl+Cが効かないので注意してください。
+
+ パスワードの不正文字の表示が、何文字目かで表示するようになりました。
+ その他微妙にチェック追加など。
+
+ Cygwinでしか動作確認していません。POSIXモジュールを使っているので、
+ POSIXでない(&エミュレーションもできない)プラットフォームだと
+ 動かないかもしれません。
+ UNIX系ではnkfなどで改行コードを変換しないとだめかも?
+
+ (tool/)
+ ladmin
+ Ver.1.03に。
+
+-------------
+//0620 by 月詠み
+
+・ホーリークロス実装
+
+ (db)
+ skill_db.txt 修正
+ (map)
+ skill.c
+ skill_additional_effect()修正(コメントのみ)
+ battle.c
+ Damage battle_calc_weapon_attack()修正
+
+-------------
+//0619 by るるる
+
+・パッチ0617のでやり忘れと微妙な修正
+
+ clif.c
+ clif_movechar(),clif_parse_LoadEndAck() 修正
+
+--------------
+//0618 by nini
+
+・リザレクションの詠唱、ディレイ追加。回復量修正。
+・消費SP修正
+・アローシャワーの範囲を5*5にして2セル吹き飛ばし。
+・チャージアローの使用武器条件無し。
+・スピアスタブの飛距離を6セルに。
+ (/db)
+ cast_db.txt 修正
+ skill_db.txt 修正
+ (/map)
+ battle.c
+ battle_calc_weapon_attack() 修正
+ skill.c
+ skill_castend_damage_id() 修正
+ skill_check_condition() 修正
+ skill_castend_nodamage_id() 修正
+
+--------------
+//0617 by るるる
+
+・武器画像表示で他キャラが表示されないのを「とりあえず」修正
+・靴表示のパケットを送信停止(現時点ではムダ。コメントしただけですが)
+ clif.c
+ clif_spawnpc(),clif_getareachar_pc(),clif_fixpcpos(),clif_changelook()修正
+ pc.c
+ clif_changelook()がある部分を修正(武器ー>盾と順になるように処理の入れ替え)
+
+コメント。
+新マップ移動パケ(0x1d8〜0x1da)を色々とやったが、そのパケ1つで武器表示が新式のに対応してる
+というわけではないっぽい。旧移動パケだと自分以外のキャラが移動すると旧式表示になってしなう。
+更に、新武器表示パケは武器と盾の同時処理が出来てない。おそらくクライアントの問題だと思う。
+とりあえず、キャラが動くたびに新武器パケ=>旧盾パケの2つの装備パケを送ることで解決させている。
+本鯖ではどうなのかの実際のところのデータが無いため、これ以上のことはムリ。
+
+--------------
+//0616 by 胡蝶蘭
+
+・water_height.txtを読んでいないとサーバーが落ちるバグ修正
+ map.c
+ map_waterheight()修正
+
+・PCのマップ移動時のアイテムチェックでアイテムIDの存在をチェックするように修正
+・一部の@コマンドでアイテムIDの存在をチェックするように修正
+ pc.c
+ pc_checkitem()修正
+ pc_authok()修正 pc_checkitem()追加
+ clif.c
+ clif_parse_LoadEndAck()修正
+ itemdb.c
+ itemdb_exists()追加(itemdb_searchと同じだが、dbに存在しない
+ 場合は新しいデータを作らずにNULLを返す)
+ itemdb_read_classequipdb()修正 itemdb_search=>itemdb_exists
+ itemdb_read_itemnametable()修正 itemdb_search=>itemdb_exists
+ itemdb_read_itemvaluedb()修正 itemdb_search=>itemdb_exists
+ atcommand.c
+ @item修正 itemdb_search=>itemdb_exists
+ @produce修正 itemdb_existsでチェックするように
+
+--------------
+//0615 by 波浪
+
+・アイテムDATA大幅修正
+ 主な修正箇所は、回復アイテムの回復量の修正、消費アイテムをclass_equip_db.txt無しでも使用できる様に修正、
+ 装備品の装備可能職を全て修正、カード効果を修正、etc・・・です。
+
+--------------
+//0614 by Nikita
+
+・アイテムDATAの修正(主に回復量)
+・スキル解毒の射程修正
+・0612の細かい修正
+ (conf/)
+ npc_town_prontera.txt 修正
+ (db/)
+ item_db.txt 修正
+ skill_db.txt 修正
+
+--------------
+//0613 by 引退人
+・checkweight修正
+ (conf/)
+ npc_event_making.txt checkweight部分を修正
+ npc_event_potion.txt ポーション、ジュースNPCのcheckweight修正
+
+--------------
+//0612 by nini
+
+・アイテムDATA修正
+ (db/)
+ item_db.txt 修正
+ (conf/)
+ npc_town_***.txt 修正
+ R.O.M776さんを参照しました。
+
+--------------
+//0611 by 死神
+
+・アイテム使用条件があわない時0xa8パケットを送るように変更。(バグ報告スレッド 243のno nameさん情報提供ありがとうございます。)
+・QMで集中力向上と速度上昇、アドレナリンラッシュ、ラウドボイス、スピアクイッケン、ツーハンドクイッケンを解除するように修正。
+・速度上昇と速度減少で逆のスキルが解除されるように修正。
+・0609で書き忘れ。モンスターがQMの範囲から抜けても効果が維持するように
+変更とブレッシングで呪いと石化が解除されるように修正。
+ clif.c
+ clif_useitemack() 修正。
+ skill.c
+ skill_status_change_start() 修正。
+ pc.c
+ pc_insert_card() 修正。(これはカードバグとは関係ない修正です。そのバグの修正は自分が05xx当たりで修正しましたので。)
+
+--------------
+//0610 by 波浪
+
+・アイテムDATA修正
+ (db/)
+ item_db.txt 修正
+
+--------------
+//0609 by 死神
+
+・色々と修正。
+・モンスターが止まるように動く問題修正。
+・指弾のディレイ修正。
+・矢作成のコード片付け。
+・敵がスキル範囲から逃げた場合スキルが失敗するように変更。
+・class_equip_db.txtの仕様変更。
+ 性別と装備レベルも設定可能に変更と使用アイテムの使用職業、性別と使用
+ レベルの設定ができるように変更。(ただデータが多いせいで修正した
+ class_equip_db.txtはサンプル程度の物です。埋めてください。他力本願ですが...)
+ それとアイテム使用条件があわないとアイテムが使わないようにしては
+ いますが01c8パケットの<type>を0にしてもアイテムを使用した時と同じ
+ エフェクトが出ます。本鯖のアイテム使用パケットが分からないままじゃ
+ こうするしかなかったのですが...
+・battle_athena.confに項目追加。
+・その他スキル少し修正と細かい修正。
+・修正した所を全て覚えてませんのでファイルだけ。
+ (map/)
+ clif.c 修正。
+ mob.c 修正。
+ mob.h 修正。
+ pc.c 修正。
+ map.h 修正。
+ skill.c 修正。
+ skill.h 修正。
+ itemdb.c 修正。
+ battle.c 修正。
+ battle.h 修正。
+ (conf/)
+ battle_athena.conf 修正。
+ (db/)
+ cast_db.txt 修正。
+ skill_db.txt 修正。
+ create_arrow_db.txt 修正。
+ class_equip_db.txt 修正。
+ item_db.txt 修正。
+ (doc/)
+ client_packet.txt 修正。
+ conf_ref.txt 修正。
+
+--------------
+//0608 by sk
+・アマツNPC追加
+ (conf/)
+ npc_town_amatsu.txt 城内NPC追加
+ npc_warp_amatsu.txt 城内ワープポイント追加
+
+--------------
+//0607 by J
+・アサルトタートルの手下召喚のバグ修正(報告ありがとうございます るるるさん)
+ (db/)
+ mob_skill_db.txt アサルトの修正ついでにテレポを使うMOBのスキルディレイも修正
+
+--------------
+//0606 by 引退人
+・スキルレベル最大値以上にクリックした時点で他スキルが上げられなくなるバグを修正(Thanx to 227さん)
+ (map/)
+ clif.c
+ clif_skillup()
+ スキルレベルが最大値のとき、パケット末尾を0にするように修正
+
+--------------
+//0605 by るるる
+
+・武器属性付与スキルの不都合修正
+ 武器を持ち替えたり外したりした場合も、属性付与を解除するようにしました。
+ 但し、素手=>武器装備のみ状態維持します。
+・スピアクイッケンのステータスアイコンを正しく表示
+・2HQ、スピアクイッケン、アドレナリンラッシュで該当以外の武器持ち替えで状態消滅
+ スピアクイッケンは未確認ですが、2HQは確実なので2HQと不公平な仕様とは
+ 考えにくいので同様なパターンとしました。本鯖と相違がある場合は報告願います。
+・敵のQMで集中力向上と速度上昇を解除
+ QMで影響するスキルはこれ2つだけかな? 私の記憶と掲示板での報告とで
+ 判断したのですが、もし相違がありましたら報告願います。
+
+ (map/)
+ clif.c
+ clif_parse_UnequipItem() 修正
+ pc.c
+ pc_checkallowskill() pc_equipitem() 修正
+ skill.h
+ skill_encchant_eremental_end() 追加
+ skill.c
+ skill_status_change_start() skill_status_change_end()
+ skill_status_change_clear() skill_encchant_eremental_end() 修正
+ その他細かいところ少々
+
+--------------
+//0604 by J
+・MOBスキル再修正
+・MOBDB修正
+ (db/)
+ mob_skill_db.txt
+ アークエンジェリングとタートルジェネラルが1回に2種類までしか
+ MOBを出さなかったのを修正
+ mob_db.txt
+ ロードオブデスのドロップでエラーが出るのを修正(未確認)
+ 怨霊武士のドロップとMVPを追加(未確認)
+--------------
+//0603 by 引退人
+・新規アイテム時にも所持可能個数チェックをするように修正
+ (map/)
+ pc.c
+ pc_checkadditem()
+ 新規アイテム時にMAX_AMOUNTを超えていたら
+ ADDITEM_OVERAMOUNTを返すように修正
+
+--------------
+//0602 by 引退人
+・Geffen鍛冶屋で落ちる問題を修正
+ (conf/)
+ npc_town_geffen.txt if (!checkweight(,)) から if (!(checkweight(,))) に修正
+
+--------------
+//0601 by J
+・MOBスキルの危ない所をいくらか修正
+・覚醒と狂気の使える職を修正
+・ゲフェニアダンジョンの配置をカボチャイベントで入れたときの配置に修正
+ ただしボスがDOP2体ではなくドラキュラにしています。
+ (conf/)
+ npc_monster.txt モンスター配置微変更
+ (db/)
+ mob_skill_db.txt 怪しい設定などの修正
+ item_db.txt 増速POTの修正
+
+--------------
+//0600 by 引退人
+・プロンテラ精錬所の横のファンに話し掛けると固まる問題を修正
+・MOBスキル取り込み(Thanx to Jさん)
+ (conf/)
+ npc_event_skillget.txt ファンのLabelを修正
+ npc_town_prontera.txt ファンが重複していたので削除
+ (db/)
+ mob_skill_db.txt ジュノー以降のMOBスキル追加
+
+--------------
+//0599 by るるる
+
+・セージの武器属性付与スキルの不都合修正とステータスアイコン表示
+ アスペルシオとエンチャントポイズンとで多重にかかってしまってたので、
+ 最後に付与したもの1つになるようにしました。
+ そのついでにステータスアイコンも表示するようにもしました。
+ (未テストですが、アイコン出なかったスピアクイッケンもでるはずです。)
+・アイテムDBにて、増速ポーションの使用制限を追加
+ Jazzさん提供です。
+ それと私の趣味でラグナロクTシャツをアレナニしましたがw 気に入らなければ
+ 消すなり元通りに修正するなりしてしちゃってくださいませ〜。
+
+ (conf/)
+ battle_athena.conf 598での入れ忘れ
+ (map/)
+ skill_encchant_eremental_end() 追加
+ skill_status_change_end() skill_status_change_start() skill_status_change_clear() 修正
+ (db/)
+ iten_db.txt 修正
+
+--------------
+//0598 by るるる
+
+・装備武器の画像変更に対応
+ 一応ながらクルセイダーの両手槍とかプリーストの鈍器とかはテストしましたが、
+ 全ての職をチェックはいません。またこの時点ではクライアント自体の表示データに
+ 問題の有るのが多いのも付け加えておきます。
+ あと、靴も一応は対応しました。但しこれは現時点では本鯖すらも未対応なのですが。
+ 表示が化けて嫌だという場合は従来のやり方も出来ます。
+
+ (conf/)
+ battle_athena.conf
+ オプション equip_modifydisplay を追加
+ (map/)
+ battle.h
+ Battle_Config 修正
+ battle.c
+ battle_config_read() 修正
+ clif.c
+ packet_len_table[] clif_changelook() 修正
+ map.h
+ enum {} 修正
+ pc.c
+ pc_calcstatus() pc_equiplookall() pc_changelook() 修正
+ (common/)
+ mmo.h
+ mmo_charstatus {} 修正
+
+--------------
+//0597 by 波浪
+
+・アマツに関する修正&微修正
+ (conf/)
+ npc_mob_job.txt
+ npc_monster.txt
+ npc_monster30.txt
+ モンス名修正
+ npc_monster_amatsu.txt
+ 追加(モンス数がかなり手抜きです・・・
+ npc_town_amatsu.txt
+ ショップNPCを統合(npc_shop3.txtを消してもOKです
+ (db/)
+ mob_db.txt
+ アマツのモンスデータを現在分かる範囲で修正&草ときのこのdef,mdefを修正
+
+--------------
+//0596 by 死神
+
+・0595の修正と細かい修正。
+・フリーキャストでキャストしている間は攻撃可能ですがキャストした後の
+ディレイタイムでは攻撃できないようになっています。本鯖の仕様がどうなのかは
+わかりません。
+・動いているPCにモンスターが攻撃できない問題修正。(テストしてませんが
+多分これで大丈夫かと。)
+ (map/)
+ skill.h
+ SC_FREECAST 削除。
+ skill.c
+ skill_use_id()、skill_use_pos() 修正。
+ skill_castend_id()、skill_castend_pos() 修正。
+ その他少し修正。
+ pc.c
+ calc_next_walk_step()、pc_attack_timer()、pc_calcstatus() 修正。
+ clif.c
+ clif_parse_ActionRequest()、clif_parse() 修正。
+ map.h
+ struct map_session_dataにprev_speed追加。
+ mob.c
+ mob_ai_sub_hard()、mob_changestate()、mob_attack() 修正。
+
+--------------
+//0595 by PRevEv
+・フリーキャスト修正、実装(キャスティング中攻撃もできます。)
+ (/map)
+ pc.c
+ pc_calcstatus() 修正。
+ calc_next_walk_step() 修正。
+ pc_attack_timer() 修正。
+ skill.c
+ skill_castend_id()、skill_castend_pos()、skill_use_id()、skill_use_pos() 修正。
+
+--------------
+//0594 by 死神
+
+・韓国鞍のパーティ問題修正と細かい修正。
+・@partyコマンド修正と@guildコマンド追加。
+・battle_athena.confにguild_emperium_check追加。
+・スキル使用が失敗してもディレイがかかる問題修正。
+ help.txt 修正。
+ (map/)
+ clif.c
+ clif_parse_CreateParty2() 追加。
+ clif_parse_ItemIdentify() 修正。
+ その他少し修正。
+ atcommand.h、atcommand.c 修正。
+ battle.h
+ struct Battle_Configにguild_emperium_check追加。
+ battle.c
+ battle_config_read() 修正。
+ guild.c
+ guild_create()、guild_created() 修正。
+ skill.c
+ skill_castend_id()、skill_castend_pos() 修正。
+ Makefile 修正。
+ (doc/)
+ client_packet.txt
+ パケット0x01e8 追加。
+ conf_ref.txt 修正。
+ (conf/)
+ atcommand_athena.conf 修正。
+ battle_athena.conf 修正。
+
+--------------
+//0593 by 死神
+
+・メテオとバミリオンのダメージ修正と細かい修正。
+・メテオの隕石が落ちてくる範囲を7*7から5*5に変更。(これで中央は全ての隕石の
+ダメージを受けることになります。)
+・自動回復計算式変更。
+ スキルレベル*5 + (max_hp/50)から
+ スキルレベル*5 + (max_hp*スキルレベル/500)に変更。(SPと息吹も同じように変更。)
+・GM右クリック命令「使用者強制終了」でatcommand_athena.confのkickの
+レベルをチェックするように変更。
+ (db/)
+ skill_db.txt
+ スキル気功のspを10から8に修正。
+ (map/)
+ map.c
+ NO_WATERを100から1000000に変更。
+ battle.c
+ battle_calc_magic_attack() 修正。
+ skill.c
+ skill_castend_pos2() 修正。
+ pc.c
+ pc_natural_heal_hp()、pc_natural_heal_sp()、pc_spirit_heal() 修正。
+ clif.c
+ clif_parse_GMKick() 修正。
+ (doc/)
+ conf_ref.txt 修正。
+
+--------------
+//0592 by 引退人
+
+・水場の有り無しをwater_height.txtだけで決めるように変更。npc_water.txtは不要に。
+・カードスキルではレベル上げできないようになったため不要になった処理を削除。
+ (conf/)
+ map_athena.conf
+ npc: conf/npc_water.txt 消去
+ water_height.txt
+ デフォルト高さ3のマップ分を追加&all_waterを高さ-100としてコメントで追加
+ (map/)
+ map.c
+ waterlistはmap_readwater()内でメモリ確保
+ gat設定後は不要なのでmap_readallmap()でメモリ開放しています
+ map.h
+ struct map_dataのflagからwater_flagを消去
+ npc.c
+ npc_parse_mapflag()
+ マップフラグwaterとall_waterを消去
+ pc.c
+ pc_skillup()
+ 裏でスキルLvUPできなくなったのでskill[id].flagの分は消去
+ skill.c
+ skill_check_condition()
+ map_getcellで水場判定するように修正
+
+--------------
+//0591 by CHRIS
+
+・モンクが氣弾をもっているとき、氣弾*3の必中ダメージが入る様になりました。─ battle.c修正
+・モンクスキル「指弾」と「発勁」と「気孔」の詠唱時間が正しく修正されました。─ cast_db.txt修正
+
+--------------
+//0590 by 死神
+
+・grf-files.txtやconfファイル、account.txtファイルの名前と位置を変えるように変更。
+・マップ移動による鯖落ちを防ぐ為に修正。(マップが二度ロードされて鯖落ちが
+起こったとの報告を受けたので。)
+・0586をちょっと修正。装備によるスキルの場合レベル上げができないように修正。
+ただ装備によるスキルをスキルポイントを使って上げる時は装備を外す必要が
+あります。
+・@partyちょっと修正。(名前に空白があっても大丈夫なように。)
+・水場の高さをwater_height.txtで読み込むように変更。
+・confファイルで設定する物をファイルのパスに空白があっても大丈夫な
+ように変更。
+・GM右クリック命令「使用者強制終了」でモンスターを倒せるように変更。
+(原因は不明ですがこれでモンスターを殺すと鯖がめちゃくちゃに遅くなることが
+あります。)
+・その他少し修正。
+・テストは殆んどしてませんので注意してください。
+ athena-start 修正。
+ (map/)
+ pc.c
+ pc_skill()、pc_resetskill()、pc_setpos()、pc_read_gm_account() 修正。
+ pc_set_gm_account_fname() 追加。
+ pc.h
+ pc_set_gm_account_fname() 追加。
+ clif.c
+ clif_skillinfoblock()、clif_parse_LoadEndAck()、clif_parse_GMKick() 修正。
+ clif_changemap() 修正。
+ atcommand.c
+ @partty 修正。
+ skill.c
+ skill_castend_nodamage_id() 修正。
+ map.c
+ map_config_read()、map_readwater() 修正。
+ script.c
+ script_config_read()、do_init_script() 修正。
+ script.h
+ script_config_read() 追加。
+ (common/)
+ version.h 修正。
+ grfio.h
+ grfio.c
+ grfio_init() 修正。
+ mmo.h
+ GRF_PATH_FILENAME 追加。
+ (conf/)
+ map_athena.conf 修正。
+ npc_water.txt 修正。
+ water_height.txt 追加。
+ login_athena.conf 修正。
+ (login/)
+ login.c
+ login_config_read()、read_gm_account() 修正。
+ (char/)
+ char.c
+ do_init() 修正。
+ char_config_read() 追加。
+ inter.c
+ inter_config_read() 修正。
+ (doc/)
+ conf_ref.txt 修正。
+
+--------------
+//0589 by 胡蝶蘭
+
+・GMの右クリックで切断される問題を修正
+ とりあえず01dfパケットを無視するようにしました。
+ なんとなくこのパケットはチャット禁止回数とは関係無いような気も……
+
+ clif.c
+ clif_parse_GMReqNoChatCount()追加
+
+・startをathena.shでなくathena-startを使うように変更
+ start
+ athena.sh => athena-start startに置き換えしただけ
+
+--------------
+//0588 by Kalen
+
+・AmatsuNPC追加
+
+--------------
+//0587 by 胡蝶蘭
+
+・loginサーバーの管理パケットの仕様を変更(0579のログイン拒否情報に対応)
+ (login/)
+ login.c
+ アカウントバン状態変更パケット追加(7936,7937)
+ アカウントリスト所得パケット修正(7921)
+ (doc/)
+ admin_packet.txt
+
+・ladminの機能追加
+ ・バン状態を変更するコマンド追加
+ ・リスト表示と検索でバン状態も表示されるようになった
+ ・"?"でもヘルプが出るように修正
+ ・シンボリックリンクにstateaccountが追加されました。
+ 使う人はladminの--makesymlinkをもう一度実行してください
+
+ (tool/)
+ ladmin
+ 機能追加
+
+--------------
+//0586 by 引退人
+・カードスキルを修正
+ (/map)
+ pc.c
+ pc_calc_skilltree()
+ pc_skill()
+ 覚えられないスキルならskill[id].flag=1とする
+ またはskill[id].flagに本来のlvを+2して記憶
+ pc_skillup()
+ skill[id].flagも増やす
+ clif.c
+ clif_skillinfoblock()
+ skill[id].flag==1なら覚えられないスキル
+ (/char)
+ char.c
+ mmo_char_tostr()
+ skill[id].flagから本来のlv値を保存する
+
+--------------
+//0585 by kalen
+・script修正
+ npc_town_guid.txt 外見変更
+
+--------------
+//0584 by 引退人
+・カードスキルを修正
+ (/map)
+ pc.c
+ pc_calc_skilltree() cardスキルを忘れさせる処理を追加
+ pc_skill() 整理
+
+--------------
+//0583 by kalen
+・script修正
+ npc_event_doll.txt 抜けていた部分の会話追加
+ npc_town_guid.txt 町の案内要員の画像を表示できるように修正
+ 基本的に最新jROで問題なしです。
+
+--------------
+//0582 by PRevEv
+・580のバグ修正。
+ (/map)
+ skill.c
+ skill_use_pos() 修正。
+--------------
+//0581 by 引退人
+・水場高さ設定関連を少し修正
+ (/map)
+ map.c
+ map_waterheight()
+ map_readwater()
+ map_readmap()
+ waterlist[512] -> *waterlistにして、mallocでメモリ確保するように修正。
+ map_readallmap()
+ free(waterlist);追加
+
+・バグ報告スレッドの修正パッチを取り込み
+ (conf/)
+ npc_town_refine.txt セミコロン抜け修正
+ (db/)
+ item_db.txt 1161,バルムン修正
+
+--------------
+//0580 by PRevEv
+・フリーキャスト仮実装(キャスティング中攻撃は不可能)
+ (/map)
+ clif.c
+ clif_parse_WalkToXY() 修正。
+ pc.c
+ pc_calcstatus() 修正。
+ skill.c
+ skill_castend_id()、skill_castend_pos()、skill_use_id()、skill_use_pos() 修正。
+--------------
+//0579 by Aの人
+・ログインを弾く処理を仮実装
+ conf/login.c
+ auth_dat構造体にstateを追加
+ mmo_auth関数修正
+ mmo_auth_new関数修正
+ mmo_auth_sync関数修正
+ mmo_auth_init関数修正
+
+ この値を変更するツール、改善策。他力本願です(><;
+--------------
+//0578 by 引退人
+・バグ報告スレッドの修正パッチを取り込みなど(thanx to るるるさん,Athefansさん,sageさん,zupportさん)
+ help.txt @goの説明ちょっと修正
+ (conf/)
+ npc_mob_job.txt 第4列目をTab区切りに修正
+ npc_water.txt 水場高さ修正
+ (db/)
+ item_db.txt 640,...,{ pet 1155; },{},,に修正
+ mob_db.txt 1162,RAFFLESIA,ラフレシア...修正
+
+--------------
+//0577 by るるる
+・@コマンドを追加&修正
+ atcommand.c
+ atcommand() @itemresetコマンド追加 @goコマンド修正(アマツ・コンロンを追加)
+ atcommand_config_read() 上に合わせてitemreset使用レベル指定を追加
+
+ doc/conf_ref.txt
+ conf/atcommand_athena.conf itemreset使用レベル指定を追加
+ help.txt @itemresetの説明追加と@goの説明修正
+
+-------------
+//0576 by V&S
+・ゴーストリングカードとバースリーカードの効果が逆になっていたのを修正
+ { bonus bDefEle,7; }→ゴーストリングカード(念)
+ { bonus bDefEle,8; }→バースリーカード(闇)
+ ↑だったのを↓に修正
+ { bonus bDefEle,7; }→バースリーカード(闇)
+ { bonus bDefEle,8; }→ゴーストリングカード(念)
+
+ 鋼鉄の重量を修正
+
+--------------
+//0575 by 引退人
+・水場ファイルが"conf/npc_water.txt"固定だったのを修正
+(conf/map_athena.confのnpc:に書かれているファイルをみて水場高さ設定するように)
+ map.c
+ struct waterlist[512]; 新規追加。マップファイル名と水場高さを記憶。
+ map_waterheight() 新規追加。水場の高さを返す。
+ map_readwater() 水場ファイルをみてwaterlistを設定するように修正。
+ map_readmap() map_waterheight()を呼ぶように修正。
+ map_config_read() "npc"でmap_readwater(w2);追加。
+
+--------------
+//0574 by いど
+
+・サーバーSnapshot
+・conf/shop_*.txtの内容をconf/npc_town_*.txtに統合
+
+--------------
+//0573 by Jazz
+
+・mapの penalty, nomemo, noteleport, nobranchの optionを設定。
+・map サーバーが cpuを無限占有することを検査するための script 添付. cygwin環境で作成と実験をしました.
+ (/conf)
+ mapflag.txt 追加。
+ (/tool)
+ mapcheck.sh 追加。
+
+--------------
+//0572 by 引退人
+・"conf/npc_water.txt"の第4列で水場高さ設定
+ (ちゃんとした水場判定が実装されるまでのつなぎとして・・・)
+ (/conf)
+ npc_water.txt サンプル修正。
+ ・第4列で水場の高さを設定します。
+ ・高さを書かなかった場合のデフォルト値は3になります。
+ (/map)
+ map.c
+ ・水場高さ設定関数 map_readwater() 追加。
+
+--------------
+//0571 by code
+天津フィールドのMOBの配置とワープポイントの設定の修正
+天津パッチに崑崙が含まれているのを確認したので崑崙のワープとmobを配置
+
+conf/npc_monster35.txt
+ mobの配置
+
+conf/npc_warp_amatsu.txt
+ 天津warp pointの設置
+
+conf/npc_warp_gonryun.txt
+ 崑崙warp pointの設置
+
+conf/npc_town_amatsu.txt
+ 暫定的にプロンテラ噴水前←→天津港/プロンテラ噴水前←→崑崙の接続NPC
+
+--------------
+//0570 by code
+天津フィールドのMOBの配置とワープポイントの設定です。
+conf/npc_monster35.txt
+ mobの配置
+
+conf/npc_warp_amatsu.txt
+ warp pointの設置
+
+conf/npc_town_amatsu.txt
+ 暫定的にプロンテラ噴水前←→天津港の接続NPC
+
+--------------
+//0569 by 死神
+
+・0561の@jobcange での♀バード&♂ダンサーによる鞍落ち防止をpc_jobchange()でするように変更。
+・@コマンド@party追加。パーティを作る命令です。韓国鞍を使うとパーティを作る時止まるので臨時的にこれを使ってパーティを作ってください。
+・水の判断処理修正。
+・マップフラグにwaterとall_water追加。詳しくはnpc_water.txtを参考してください。
+iz_dun0xだけ入力していますので他のは埋めてください。マップフラグwaterかall_waterが入ってないとセルのtypeが3でも水として認識しません。そして水だらけのiz_dun02から04までは全て水として認識するようにall_waterを入れています。(これ以外は方法がなかったので...)
+・battle_athena.confに項目追加。一部はWeissを参考して作った物です。
+・テストしてない物も少しあります。
+ (/conf)
+ atcommand_athena.conf 修正。
+ battle_athena.conf 修正。
+ map_athena.conf 修正。
+ npc_water.txt 追加。
+ (/doc)
+ conf_ref.txt 修正。
+ (/map)
+ atcommand.h、atcommand.c 修正。
+ battle.h 修正。
+ battle.c
+ battle_config_read() 修正。
+ pc.c
+ pc_jobchange()、pc_stop_walking() 修正。
+ npc.c
+ npc_parse_warp()、do_init_npc()、npc_parse_mapflag() 修正。
+ mob.c
+ mob_ai_sub_hard() 修正。
+ pet.c
+ pet_food() 修正。
+ skill.c
+ skill_check_condition() 修正。
+ map.h
+ struct map_data 修正。
+
+--------------
+//0568 by 引退人
+
+・アクアベネディクタ水場判定など
+・ウォーターボール水場判定(read_gat(m,x,y)==3で水場と判定)
+ skill.c
+ skill_castend_nodamage_id()
+ case AL_HOLYWATER: アクアベネディクタ(聖水取得)
+ skill_check_condition()
+ case AL_HOLYWATER: アクアベネディクタ(水場判定)
+ case WZ_WATERBALL: ウォーターボール(水場判定)
+
+--------------
+//0567 by るるる
+
+・アコライトのアクアベネディクタを仮実装(水場限定使用のみ未実装)
+・プリーストのアスペルシオ、セージのフレイムランチャーでスキル使用時にアイテム消費
+・ミストレスカード装備時にセージの属性原石&ハンターの罠が消費されないバグを修正
+
+ (/map)
+ skill.c
+ skill_check_condition() 修正
+
+--------------
+//0566 by パイン
+
+・0563のスキル解除条件が間違っていたので修正。武器をはずす&武器を変えた場合は
+ 無条件で解除するようにした。
+
+# pc_checkallowskill について(前回説明書くのを忘れていたので…)
+ 一応今後の含みとしてreturnを返すようにしていますが、現在は(戻り先では)使っていません。
+ 今現在は騎士・クルセイダーくらいしかスキル使用時の武器制限がありませんが、今後出てこない
+ とも限らないので、もし(2次上位か3次?)出てきたらここでチェックしてください。
+
+ (/map)
+ pc.c
+ pc_checkallowskill() 修正
+
+--------------
+//0565 by 引退人
+
+・マップ移動時に矢装備が外れないように修正
+・ログイン時に矢装備が表示されるように修正
+ (/common)
+ mmo.h
+ (矢装備は0x8000なので)shortだとintへのキャスト時などに
+ 負値となってしまうためunsigned shortに修正
+ struct item
+ short equip; -> unsigned short equip;
+ (/map)
+ clif.c
+ clif_itemlist() アイテムリストの矢のついでに矢装備もチェック
+ clif_arrowequip() シンプル化
+ pc.c
+ pc_equipitem() 修正
+
+--------------
+//0564 by 紅葉
+
+・@modelの服染め不可能判定修正。
+・@modelで、選べるハズの髪形に変更出来なかった部分を修正。
+ 上記変更点に合わせてhelp.txtの修正。
+
+--------------
+//0563 by パイン
+
+・MOBの暗闇スキルを食らった後に回復しないのを修正。…なんだけど、適正な値が分からないので
+ 毒や沈黙と同じ時間にしてあります
+ 今後、また手を加えるかもしれません。
+・2HQとスピアクイッケンを使用中に武器を変えた場合は解除するように変更。
+
+ (/map)
+ skill.c
+ skill_castend_damage_id() 修正。
+ skill_status_change_timer() 修正。
+ pc.c
+ pc_checkallowskill() 新設。
+ pc_equipitem() 修正。
+ pc.h
+ pc_checkallowskill() 新設。
+
+--------------
+//0562 by huge
+
+・矢を弓装備時以外でも装備できるように戻しました。
+・矢の属性を適用するのを弓装備時のみに修正。
+
+ pc.c
+ pc_equipitem() 修正。
+ pc_calcstatus() 修正。
+
+--------------
+//0561 by 引退人
+
+・Linuxでもコンパイルできるように
+ (/map)
+ skill.c
+ skill_castend_damage_id() 変数dx,dyの宣言位置変更
+ Makefile
+ LIBS に -lm 追加
+
+・@jobcange での♀バード&♂ダンサーによる鞍落ち防止。 by (no name)さん
+ atcommand.c
+ @jobchange,@charjobに性別チェック追加
+
+// ナナスさん修正
+・clif.c内でatcommand.hを2度includeしていたので一つ削除。
+・パーティー会話、ギルド会話でも@コマンドをチェックするように修正。
+ (/map)
+ clif.c
+ clif_parse_PartyMessage()、clif_parse_GuildMessage 修正。
+
+--------------
+//0560 by パイン
+
+・0559 の athena-start を Unix Like OS でも動くようにリファイン。
+
+--------------
+//0559 by rowla
+
+・athena.shを全面的に書き直し、athena-startに。athena-start startで開始、athena-start stopでサーバー停止。cygwinでテスト、*BSD|Linuxでは未テスト(環境がないため)。
+
+--------------
+//0558 by 死神
+
+・ブリッツビートを自動だけ弓を装備していないと発動できないように変更。(手動は武器に関係なく使えます。) 未テスト。
+・トラップの重さ修正。(何故かは知らないけど100になっていたのを10に修正。因みに倉の表示は100が10で10が1です。)
+・弓で使うスキルの場合矢が減らないのが仕様だったと覚えているので矢をチェックしないように修正。
+・モンクスキル三段掌の表示をパッシブに変更。
+・マップフラグをセットする時dummyがなくてもセットできるように修正。
+(mapflag nomomo dummyからmapflag nomemoでも大丈夫なように変更。)
+未テスト。
+ (/db)
+ item_db.txt 修正。
+ skill_db.txt 修正。
+ (/map)
+ skill.c
+ skill_check_condition()、skill_additional_effect() 修正。
+ skill_status_change_start() 修正。
+ npc.c
+ do_init_npc() 修正。
+
+--------------
+//0557 by huge
+
+・矢を、弓装備時のみ装備できるように修正。
+・弓を装備から外したら、矢も外れるように修正。
+・矢を消費するスキルをいくつか修正。
+・鷹を、弓を装備しているときのみ発動するように修正。(未テスト)
+
+ pc.c
+ pc_equipitem() 修正。
+ pc_unequipitem() 修正。
+ skill.c
+ skill_additional_effect() 修正。
+ skill_check_condition() 修正。
+
+--------------
+//0555 by 死神
+
+・細かい修正とプレゼントボックス、古い巻物のバグ修正。
+・@コマンド@refine、@produce少し修正。
+・サーバーのIPにDNS名を使えるように変更。(今さらですがYareから
+持ってきた物です。)
+・スティール計算式変更とMVPアイテム処理変更。
+・店NPCを利用によるジョブ経験値獲得計算式変更。
+ 獲得ジョブ経験値 = ln(金*スキルレベル) * shop_exp / 100
+・ほとんどテストしてないのでバグの可能性があります。
+ help.txt 修正。
+ (/conf)
+ atcommand_athena.conf 修正。
+ battle_athena.conf 修正。
+ (/db)
+ item_db.txt 修正。
+ (/doc)
+ conf_ref.txt 修正。
+ (/char)
+ char.c
+ do_init()、check_connect_login_server() 修正と少し修正。
+ (/map)
+ mob.c
+ mob_damage() 修正。
+ pc.c
+ pc_getitemfromcart()、pc_steal_item() 修正。
+ pet.c
+ pet_return_egg()、pet_get_egg()、pet_unequipitem() 修正。
+ script.c
+ buildin_getitem() 修正。
+ skill.c
+ skill_produce_mix() 修正。
+ storage.c
+ storage_storageget() 修正。
+ atcommand.c 修正。
+ map.c
+ map_config_read() 修正と少し修正。
+ chrif.c
+ check_connect_char_server()、do_init_chrif()、chrif_setip() 修正と少し修正。
+ npc.c
+ npc_buylist()、npc_selllist() 修正。
+
+--------------
+//0554 by NOCTURNE
+・サーバーSnapShot
+・too/addaccountの削除
+・help.txtの更新
+
+--------------
+//0553 by 胡蝶蘭
+
+・ladminのバグ修正と機能追加
+ ・キーワードによるアカウント検索機能追加
+ ・シェルコマンドとして使用できるようにプロンプトを使わないモード追加
+ ・追加機能についてはladminを見てください
+ ・ ladminの--makesymlinkにより、シンボリックリンクとしてaddaccountを
+ 作成するため、以前のaddaccountは削除する必要があります。
+ これらのシンボリックリンク(Cygwinではショートカット)と、
+ 古いaddaccountは鯖snapshotには含まないで下さい。
+
+ (tool/)
+ ladmin
+ 機能追加と修正
+
+・女性アカウントしか作成できないバグ修正
+・ladmin、checkversion使用時loginサーバーが暴走するバグ修正
+・GMアカウント周辺のIDを避けるためにSTART_ACCOUNT_NUMを変更
+ (既にGMアカウントは避ける仕様になっていますが、混乱防止のため)
+
+ (login/)
+ login.h
+ START_ACCOUNT_NUMを500000から2000000に変更
+ login.c
+ 7532(切断)パケットの処理修正
+ mmo_auth_new()修正
+
+・backupがバックアップするファイルにpet.txtを追加
+ (tool/)
+ backup
+ ファイル追加修正
+
+--------------
+//0552 by 死神
+
+・安定性を上げる為の修正ですが本当に安定性上がったか
+どうかは不明です。
+・PVPによりクライアントが落ちる問題修正。
+ atcommand.c
+ @pvpoff、@pvpon、@gvgon、@gvgoff 修正。
+ script.c
+ buildin_pvpon()、buildin_pvpoff()、buildin_gvgon()、buildin_gvgoff() 修正。
+ clif.c
+ clif_pvpset() 修正。
+ skill.c
+ skill_attack()、skill_unit_onplace()、skill_unit_onout() 修正。
+ skill_unit_ondelete() 修正。
+
+--------------
+//0551 by Kalen
+・DB修正
+ db/create_arrow_db.txt 完成
+ SourceID順にソートしました。
+
+--------------
+//0550 by huge
+
+・矢作成スキル実装
+
+ clif.c
+ clif.h
+ clif_arrow_create_list() 追加
+ clif_arrow_created() 追加
+ clif_parse() 修正
+
+ pc.c
+ pc_search_inventory() 修正
+
+ skill.c
+ skill.h
+ skill_arrow_db() 追加
+ skill_readdb() 修正
+ skill_castend_damage_id() 修正
+
+ db/create_arrow_db.txt 追加
+ db/skill_db.txt 修正
+
+ まだdbは未完成です。
+
+--------------
+//0549 by Kalen
+
+・map_athena.conf
+ オリジナルスクリプト、季節限定スクリプトを整頓
+ shop3.txt追加
+
+・各種NPC追加&修正
+ npc_event_yuno.txt [追加]ジュノーイベント(青石5個GET)
+ npc_cTower.txt [追加]地上地下の鍵NPC
+ npc_town_yuno.txt [修正]台詞修正
+
+ npc_event_carnival.txt [追加]旧鯖カーニバルイベント時のNPC
+
+--------------
+//0548 by huge
+
+・矢を装備した時の表示バグ問題を修正。
+ clif.c
+ clif_arrowequip() 修正。
+ pc.c
+ pc_equipitem() 修正。
+
+あとは、マップを移動するたびに装備が外れちゃう点ですね・・・。
+
+--------------
+//0547 by 死神
+
+・安定性を上げる為の修正と細かい修正。
+・スキルユニットの判定をしている間メモリーを解除できないように変更。
+ map.c
+ map_foreachinarea()、map_foreachinmovearea() 修正。
+ map_foreachobject() 修正。
+ block_free_maxを32000から50000に変更。
+ pc.c
+ pc_calcstatus() 修正。
+ skill.c
+ do_init_skill()、skill_unit_timer()、skill_status_change_clear() 修正。
+ skill.c、battle.c、battle.h
+ struct battle_configのsanctury_typeをsanctuary_typeに変更。
+ (英語スペル間違いで修正。)
+ battle_athena.conf
+ sanctury_typeをsanctuary_typeに変更。
+ conf_ref.txt
+ sanctury_typeをsanctuary_typeに変更。
+
+--------------
+//0546 by 獅子o^.^o
+
+conf/npc_shop2.txt
+.バ一ド、ダンサ一用の武器。コモドの武器屋で販売している。
+.モンク用の武器。カピト一リナ修道院で販売している。
+
+--------------
+//0545 by 死神
+
+・ブリッツのダメージを自動で分散、手動で普通になるように変更。
+・オートブリッツバグ修正。(これで大丈夫だといいけど...)
+ map.c
+ block_free_maxを16000から32000に修正。
+ block_list_maxを4096から5120に修正。
+ battle.c
+ battle_weapon_attack() 修正。
+ skill.c
+ skill_attack()、skill_castend_damage_id() 修正。
+
+--------------
+//0544 by Diex
+・猛龍拳から阿修羅覇凰拳へのコンボ実装。
+・阿修羅覇凰拳発動後、敵の背後に移動するよう、修正。
+・三段掌のダメージ修正。
+ (/map)
+ skill.c
+ skill_castend_damage_id() 修正。
+ skill_check_condition() 修正。
+ skill_use_id() 修正。
+ pc.c
+ pc_attack_timer() 修正。
+ pc_authok() 修正。
+ battle.c
+ battle_calc_weapon_attack() 修正。
+ battle.h
+ struct Battle_Config 修正。
+ map.h
+ struct map_session_data 修正。
+ (/conf)
+ battle_athena.conf 修正。
+
+はっきりいってコンボ繋げづらいです。そのため阿修羅へのコンボはかなり甘い判定に
+してます(一時的にですが)。繋げづらければbattle_athena.confのほうでデュレイ時
+間を大きくしてみてください。
+ 動画見てて気づいたのですが、阿修羅覇凰拳は猛龍拳が発動した後、即時発動のスキ
+ルに変わってるようなのです。他力本願ですが、阿修羅までのコンボのパケを記録した
+物をどなたかアップしてもらえないでしょうか?詳細がわかり次第、修正します。
+
+--------------
+//0543 by 死神
+
+・ブリッツのダメージを分散されるように変更。
+・普通のアカウント作りではGMアカウントを作れないように変更。
+(前に自分が入れた物がなくなったので戻しただけですが...)
+・取り巻きが主と一緒に死ぬように変更。(ただちょっと重くなる
+可能性があります。) 未テスト。
+・MVP経験値が表示だけされて実際には入ってない問題修正。
+ (/login)
+ login.c
+ mmo_auth_new() 修正。
+ (/map)
+ skill.c
+ skill_castend_damage_id() 修正。
+ battle.c
+ battle_calc_misc_attack() 修正。
+ mob.c
+ mob_damage() 修正。
+ mob_deleteslave()、mob_deleteslave_sub() 追加。
+
+--------------
+//0542 by 死神
+
+・オートブリッツバグ修正。(今度こそ大丈夫のはず...)
+・自分に使ったヒールでは経験が入らないように変更。
+・店NPCを利用によるジョブ経験値獲得計算式変更。
+ 獲得ジョブ経験値 = ln(金) * shop_exp / 100
+になります。
+logを使うことで金が多くても入る経験値が多く入らないように変更しました。
+ (/map)
+ battle.c
+ battle_damage() 修正。
+ skill.c
+ skill_attack()、skill_castend_damage_id() 修正。
+ skill_castend_nodamage_id 修正。
+ npc.c
+ npc_buylist()、npc_selllist() 修正。
+ map.c
+ map_foreachinarea()、map_foreachinmovearea()、map_foreachobject()
+ 修正。(大した修正ではないです。)
+ (/conf)
+ battle_athena.conf 修正。
+ (/doc)
+ conf_ref.txt 修正。
+
+--------------
+//0541 by huge
+
+・矢をまとめて持てるように修正。
+・弓で攻撃したときに、装備している矢を消費するように修正。
+
+ itemdb.c
+ itemdb_search() 修正
+ itemdb_isequip() 修正
+
+ battle.c
+ battle_weapon_attack() 修正
+ battle_calc_weapon_attack() 修正
+
+ clif.c
+ clif.h
+ clif_arrow_fail() 追加
+ clif_parse_EquipItem() 修正
+
+--------------
+//0540 by 死神
+
+・バグ修正と問題ありそうな所修正。(これでWZ_FIREPILLARとブリッツに
+よる鯖ダウンはなくなるはず...)
+ map.c
+ map_foreachinarea()、map_foreachinmovearea() 修正。
+ skill.c
+ skill_unitsetting()、skill_delunitgroup() 修正。
+ pc.c
+ pc_damage() 修正。
+ battle.c
+ battle_damage() 修正。
+ npc.c
+ npc_parse_mob() 修正。
+ mob.c
+ mob_spawn_dataset() 修正。
+
+--------------
+//0539 by 死神
+
+・clif_pvpset()をマップからAREAかマップかを設定できるように変更。(pvpの時の処理は0535以前の物に戻そました。自分だけに転送してもいいような気もしますが...)
+ clif.h、clif.c
+ clif_pvpset() 修正。
+ clif_parse_LoadEndAck() 修正。
+ script.c
+ buildin_pvpoff() 修正。
+ buildin_pvpon() 修正。
+ atcommand.c 修正。
+・攻撃途中でアイテムを拾うと攻撃が止まるように修正。
+ pc.c
+ pc_takeitem() 修正。
+・0535説明が爆裂波動になっているがそれは金剛に間違いです。
+・0537で説明を忘れましたがモンスターのdefとmdefを10000以上に設定すれば全ての攻撃に1ダメージになるモンスターになります。そしてモンスター情報でdefと
+mdefが10000以上の場合def 100、mdef 99に表示するように変更。本鯖仕様に
+するにはmob_db.txtを修正してください。
+
+--------------
+//0538 by huge
+
+・グリムトゥースを範囲攻撃に修正
+・サプライズアタック実装 (有効範囲って、これであってるのかな?)
+・バックスタブの仮実装
+ 本鯖でやってる人から話を聞いて、場所指定じゃなくて
+ タゲ取っても良さそうだったので変更しました。(やりやすかったので (^^;
+ まだ、mobの後ろに居るかどうかの判定は入ってません。
+
+・battle.c
+ battle_calc_weapon_attack() 修正
+
+・skill.c
+ skill_additional_effect() 修正
+ skill_castend_damage_id() 修正
+ skill_check_condition() 修正
+ skill_use_id() 修正
+ skill_castend_nodamage_id() 修正
+
+・skilldb.txt
+ バックスタブの種類を[場所]から[敵]へ変更
+
+--------------
+//0537 by 死神
+
+・スティールバグ修正とbattle_athena.confの項目追加、仕様変更と細かい修正です。
+(スティールは計算式に問題があったので修正して確率を更に落としました。)
+ battle.h
+ finger_offencive_typeをfinger_offensive_typeに修正。(英語スペル間違いで修正しました。)
+ struct battle_configにrestart_hp_rate、restart_sp_rate 追加。
+ battle.c
+ battle_calc_weapon_attack()、battle_calc_magic_attack() 修正。
+ skill.c
+ skill_attack() 修正。
+ clif_skill_nodamage()にスキルレベルを送るように変更。(Mさんの指摘により修正。)
+ clif.c
+ clif_skill_estimation() 修正。
+ conf_ref.txt
+ finger_offencive_typeをfinger_offensive_typeに修正と少し追加。
+ mob.c
+ mob_ai_sub_hard()、mob_target()、mob_damage() 修正。
+ pc.c
+ pc_steal_item() 修正。
+ atcommnad.c、atcommnd.h
+ @コマンド@gvgon , @gvgoff 追加。
+ battle_athena.conf
+ finger_offencive_typeをfinger_offensive_typeに修正と少し追加。
+
+--------------
+//0536 by hogefuga3 (Athena staff)
+
+・新GRFファイルフォーマット対応
+ - Athena staff 様の作成されたパッチを適用しました。
+ 更新履歴の部分はパッチミスになったので手動で組み込み。
+
+(変更)
+ common/
+ grfio.c
+
+--------------
+//0535 by 死神
+
+・0533の問題がありそうな部分全て修正。修正した所を全部チェックしてなかったので修正したファイルだけ...
+・スクリプトsetmapflagnosave 追加。
+ setmapflagnosave マップ名、セーブするマップ名、座標(X、Y)
+ nosaveフラグをonにします。
+・battle_athena.confに追加と一部仕様変更。(詳しくはconf_ref.txtを参考してください。)
+・モンスターのdefとmdefが10000以上の場合全ての攻撃(クリティカル含めて)が1ダメージになるように変更。(トラップやブリッツの場合両方が10000以上の場合のみ1になります。) 草とキノコに1ダメージ固定は削除しました。(元々本鯖でも1固定ではないです。精練等による引き上げダメージはそのまま出ますので... 固定したいのならdefとmdefを10000にしてください。実はこれはクリスタルに為に作ろうとした物ですが...)
+・爆裂波動の時アイテムによるスキルは使用できるように修正。
+・その他少し修正。(修正の物の中にテストしてない物もあります。)
+ (/doc)
+ conf_ref.txt 修正。
+ (/conf)
+ battle_athena.conf 修正。
+ (/map)
+ battle.h 修正。
+ battle.c 修正。
+ mob.h 修正。
+ mob.c 修正。
+ skill.c 修正。
+ npc.c 修正。
+ pc.c 修正。
+ script.c 修正。
+ clif.c 修正。
+ chrif.c 修正。
+
+--------------
+//0534 by Diex
+
+・コンボシステム仮実装
+ map/
+ battle.c
+ battle_weapon_attack() 修正。
+ clif.c
+ clif.h
+ clif_combo_delay() 関数追加。
+ map.h
+ map_session_data 変数追加。
+ pc.c
+ pc_authok() 変数追加。
+ pc_attack_timer() 修正。
+ skill.c
+ skill_castend_damage_id() 修正。
+ skill_check_condition 修正。
+ skill_use_id 修正。
+ db/
+ skill_db.txt 修正。
+
+注)猛龍拳から阿修羅覇鳳拳にはまだつなげません。
+ 阿修羅覇鳳拳を放った後、PCはMOBの背後(?)に移動してるっぽいのですが、
+ そこらへんの情報が足りません。情報提供お願いします。
+
+--------------
+//0533 by るるる
+
+・草とキノコに1ダメージ固定
+battle.c の battle_weapon_attack() と battle_calc_attack() を修正
+battle.c の battle_get_mobid() を追加
+mob.c の mob_makedummymobdb() と mob_readdb() を修正
+
+・スキルログにモブの固有番号&PCのID番号を表示
+(battle.c の battle_get_mobid() を追加したのでそのついでに)
+mob.c skill.c の変更箇所多数(汗
+("MOB %d" もしくは "PC %d" で検索すれば変更箇所がわかるかと)
+
+・ハンターの罠を使ったスキルで罠を消費するようにした
+batttle.c の skill_check_condition() を修正
+(ジェム消費処理の流用っぽいことをやってるんだけど処理中身は理解してないw)
+
+・サンクチュアリ&マグヌスのダメージ判定を不死属性&悪魔種族に再度修正
+0532で再び元に戻ってしまったのをなおしました。
+ただし、回数&人数判定には手を加えていません(ってか自分にはまだムリ)
+
+以上。
+切った貼ったの見様見真似でやったので言語的に果たしてこれでよいのか。。。
+もし処理方法に問題有りだったら修正なりをしていただけると嬉しいです。
+
+--------------
+//0532 by 死神
+
+・修正した所を全然チェックしてなかったので修正したファイルだけ...汗
+・mapflagにnopenalty追加。使用方法は
+ mapflag nopenalty dummy
+です。機能はそのマップで死んだ時経験が減らないようにします。
+・mapflagにpvp_noparty、pvp_noguild、gvg、gvg_noparty追加。
+pvp_nopartyはPVPモードで同じパーティに攻撃が当たらない、pvp_noguildはPVPモードで同じギルドに攻撃が当たらない、gvgはシーズモードに、gvg_nopartyはシーズモードで同じパーティに攻撃が当たらない物です。
+・可動してないタイマーは全て-1になるように変更。
+・吹き飛ばし処理修正。
+・マップロード直後気功が見えない問題修正。
+・残影の処理修正。
+・マップをロードすると死んだふりが解除されるように変更。
+・PVPを少し変更。
+・古木の枝で出るモンスターを自分のレベルより高い物は出ないように変更。
+・加速ポーションのsc_start SC_SpeedPot0,1,0;をsc_start SC_SpeedPot0,1800,0;のように変更。SC_SpeedPot?の後の数値は持続時間です。(単位は秒)
+・@コマンド@pvpを@pvponに変更と@pvponと@pvpoff、@gatの機能変更。
+・battle_athena.confのpvp削除。
+・battle_athena.confにdeath_penalty_type追加。
+・ペナルティの適用を死んだ時から死んだ後リスタートした時に変更。(リザで復活すると経験が減りません。本鯖の仕様がかなり気にいらなかったので変更しました。)
+・スクリプトsetmapflag、removemapflag、pvpon、pvpoff、gvgon、gvgoff追加。
+ setmapflag マップ名、マップフラグタイプ
+ 指定したマップフラグをonします。(ただpvp、gvgはpvpon、gvgonでできるので指定しても動作しません。あとnosaveの場合処理がちょっと複雑になるので対応してません。)
+ removemapflag マップ名、マップフラグタイプ
+ 指定したマップフラグをoffします。(ただpvp、gvgはpvpoff、gvgoffでできるので指定しても動作しません。こちらはnosaveも可能です。)
+ pvpon マップ名
+ 指定したマップをPVPモードにします。
+ pvpoff マップ名
+ 指定したマップのPVPモードを解除します。
+ gvgon マップ名
+ 指定したマップをシーズモードにします。
+ gvgoff マップ名
+ 指定したマップのシーズモードを解除します。
+ただ全てのスクリプトの動作は確認してませんので注意してください。
+・サンクチュアリ、マグヌスエクソシズムの処理を0529に戻しました。
+自分の調査ではサンクチュアリは人数の制限があります。(レベル1で4名で
+1レベルに一人ずつ増えます。)
+・その後少し修正。(したはず...)
+ (db/)
+ const.txt 修正。
+ item_db.txt 修正。
+ (conf/)
+ battle_athena.conf 修正。
+ (doc/)
+ conf_ref.txt 修正。
+ (map/)
+ clif.h、clif.c 修正。
+ mob.c 修正。
+ pc.h、pc.c 修正。
+ skill.c 修正。
+ pet.c 修正。
+ npc.c 修正。
+ map.h、map.c 修正。
+ battle.h、battle.c 修正。
+ atcommand.h、atcommand.c 修正。
+ script.c 修正。
+ makefile 修正。
+
+--------------
+//0531 by 獅子o^.^o
+
+conf/npc_turtle.txt
+.タートルアイランドに行く時、サ一バ一を落って問題修正
+.npc_turtle.txtの508行目
+set Zeny - 10000,0; --> set Zeny,Zeny-10000; 修正
+
+--------------
+//0530 by RR
+・スキル「サンクチュアリ」で攻撃対象をアンデット/悪魔種族から不死属性/悪魔種族に変更
+・スキル「マグヌスエクソシズム」で攻撃対象をアンデット/悪魔種族から不死属性/悪魔種族に変更
+・スキル「サンクチュアリ」の回復回数を人数からカウントに変更
+ skill.c
+ skill_unit_onplace()修正
+ skill_unit_onout()修正
+
+多分この仕様で合ってるはずです…。
+
+--------------
+//0529 by 胡蝶蘭
+
+・MOBがスキル「ヒール」を使用するとサーバーが落ちる場合があった問題を修正
+・スキル「サンクチュアリ」で攻撃対象を不死属性からアンデット/悪魔種族に変更
+
+ skill.c
+ skill_unit_onplace()修正
+ skill_castend_nodamage_id()修正
+
+・ログインサーバーのアカウントデータベース保守ツールを添付
+ Perl製なので実行にはPerlが必要です。
+ 使用方法などはエディタで開いて見てください。
+ 使い方が良くわからない人は手を出さないほうがいいです。
+
+ 特に理由が無い限りアカウント作成もこちらのツールを使ってください。
+ addaccountはパケットの都合上パスワード文字数の制限がきついので。
+
+ アカウントを削除してもキャラクターデータ、倉庫データ、
+ その他のアカウント以外のデータは消えません。相手がログイン中だった場合
+ 強制切断はされませんが、次回からはログインできないはずです。
+ (つまりは、単にlogin-server上のアカウントを消しているだけです)
+
+ (login/)
+ login.c
+ parse_admin()追加、parse_login()修正
+ (doc/)
+ admin_packet.txt
+ 新規追加。管理パケット情報
+ (tool/)
+ ladmin
+ login-server administration toolのPerlスクリプト
+
+
+--------------
+//0528 by RR
+・スキル「ヒール」を使用した際に回復量に比例した分だけジョブ経験値が獲得できるように変更
+・商人系職業が店NPCを利用した際にジョブ経験値が獲得できるように変更
+・両方ともbattle_athena.confで調整可能にしました。初期設定は0倍(非適用)
+・map_athena.confにてかぼちゃクエストのものが入ってなかったのでコメントアウトしながら追加。
+
+ map_athena.conf
+
+ battle.c battle_config_read()
+ battle.h Battle_Config
+ battle_athena.conf
+ 以上、battle_athena.conf利用ために変更
+
+ pc.c pc_heal()
+ 戻り値をhp+spに。戻り値を利用してる部分がなさそうだったので使わせて貰いました。バグが起きたらすみません。
+
+ skill.c skill_casted_nodamage_id()のヒール部にてジョブ経験値獲得するよう変更
+
+ npc.c npc_buylist()
+ npc_selllist() 変更
+ これらとの兼ね合いでskill.hをinclude。
+
+
+商人の店利用ジョブ経験値獲得ですが、計算式はまだ考え中なので仮で。
+計算式はアイテム購入が 代金 * スキルレベル(ディスカウント)/ ((1+300/アイテム個数) * 4000)
+アイテム売却が 代金 * スキルレベル(オーバーチャージ) / ((1+500/アイテム個数) * 4000)です。
+常に矢をたくさん一緒に購入することで経験値を多量に稼ぐことが可能ですね…。
+どなたかいい式を思いついたら変更お願いします。
+
+ところで転職NPCが一部かぶってるんですが修正しないでいいんでしょうか?
+
+--------------
+//0527 by 死神
+
+・0526のバグ修正。(テストの為に変えていた物を入れたままアップしてしまったのが原因でした。)
+ skill.c 修正。
+ pc.c 修正。
+ mob.c 修正。
+ clif.c 修正。
+
+--------------
+//0526 by 死神
+
+・0525のリザレクションを死んだキャラに使えないバグ修正。(テストはしてませんが治ったはずです。多分...)
+ skill.c 修正。
+ clif.c 修正。
+
+--------------
+//0525 by 死神
+
+・dmotionの間はキャラが動かないように変更。(テストしてません。)
+・メテオのダメージ表示タイミング修正。(少し遅い気もしますが...)
+・バックスライディングの時にモーションが出るように変更。(スキル使用後
+0.2秒後にスキル使用パケットを送るように変更しました。ラグ等によって変な動作をする可能性もあります。)
+・0524の修正。
+・ハイディングしている時自然回復しないように変更。
+・0519で間違ったconfの修正と細かい所修正。
+ map.h
+ struct map_session_dataのcanmove_tickをcanact_tickに変更。
+ skillcanmove_tickをcanmove_tickに変更。
+ skill.c 修正。
+ pc.c 修正。
+ pc.h 修正。
+ clif.c 修正。
+ battle.c 修正。
+ battle.h 修正。
+ mob.c 修正。
+ mob.h 修正。
+ char_athena.conf 修正。
+ map_athena.conf 修正。
+
+--------------
+//0524 by huge
+
+・ローグ トンネルドライブ実装
+ clif.c
+ clif_parse_WalkToXY()
+ pc.c
+ pc_calcstatus()
+
+ どのくらい速度減少するのか分からなかったので、暫定的に
+ speed += speed * (20-スキルレベル)/40
+ と、しました。本鯖仕様が分かる方居ましたら修正お願いします。
+
+--------------
+//0523 by NOCTURNE
+
+・npc_event_rental.txtにクルセイダー用のペコペコ管理兵を追加
+--------------
+//0522 by 波浪
+
+・mob_db.txtをジュノー後のデータに修正
+
+--------------
+//0521 by 胡蝶蘭
+
+・mapサーバーに繋がらない問題を修正
+ clif.c
+ clif_parse()の修正
+
+--------------
+//0520 by 胡蝶蘭
+
+・charサーバーログの「set map X.Y HOGE.gat」が表示されなくなりました
+ 変わりに、「set map M from XX.YY.ZZ.WW:PP (CC maps)」
+ というふうに何個のマップをセットしたかだけを表示するようになります。
+
+ char/char.c
+ parse_frommap修正
+
+・複数mapサーバーに仮対応
+ ・NPCのマップサーバー変数は鯖間では共有されません。共有すべき変数を
+ 持つNPCがいるマップ同士は同じmapサーバーで動かすべきです。
+ おそらくPCのグローバル変数は共有できると思います(未テスト)
+ ・暫定的に動くようにしただけなので、不都合があるかもしれません。
+ 特に、パーティ/ギルド/倉庫/ペット/Wisなどのinterサーバーを使う機能が
+ 正しく作動するか全くチェックしていません。
+ ・「recv map on XX.YY.ZZ.WW:PP (CC maps)」というログが表示されます。
+ これは他のmapサーバーが担当するマップのリストが、このmapサーバーに
+ 正常に受信されたという意味です。
+
+ (char/)
+ char.c/char.h
+ parse_frommap()修正
+ mapif_sendallwos()追加
+ (map/)
+ map.c/map.h
+ map_setipport()を修正
+ struct map_session_dataのstateメンバにwaitingdisconnect追加
+ chrif.c/chrif.h
+ 色々追加
+ clif.c
+ waitingdisconnectが1ならパケットを無視するようにした
+ pc.c
+ pc_setpos()修正(マップサーバー変更処理など)
+ pc_setnewpc()修正
+
+--------------
+//0519 by 死神
+
+・サーバーsnapshotと色々修正。
+・死んだキャラに攻撃が当たるバグ修正。(テストしてません。本当に治ったかどうか報告お願いします。)
+・0517のアイスウォールの処理を少し変更。
+・メテオをモンスターも使えるように変更。(テストしてません。報告お願いします。) でもちょっとメモリーの使用量が増えました。(約10M程上がるようです。)
+・ボスの取り巻きがボスと一緒に行動するように変更。(テストしてませんのでどんな動きをするかは確認してません。攻撃も受けてないのにボスの隣から勝手に離れるかどうかの確認をお願いします。)
+・その他細かい物修正。
+ client-packet.txt 修正。
+ map.h
+ AREA_SIZEを15から20に変更。
+ struct map_session_data、struct mob_data、struct skill_timerskill 修正。
+ map.c
+ map_quit() 修正。
+ clif.h
+ clif_changemapcell() 修正。
+ clif.c
+ clif_getareachar_skillunit()、clif_clearchar_skillunit()、clif_changemapcell() 修正。
+ skill.c
+ skill_unitsetting()、skill_unit_onlimit()、skill_castend_pos2() 修正。
+ skill_castend_nodamage_id()、skill_check_condition()、skill_attack() 修正。
+ skill_timerskill()、skill_addtimerskill()、skill_cleartimerskill() 修正。
+ その他少し修正。
+ skill.h
+ skill_addtimerskill()、skill_cleartimerskill() 修正。
+ pc.c
+ pc_movepos()、pc_walk()、pc_authok() 修正。
+ mob.c
+ mob_spawn_dataset()、mob_spawn() 修正。
+ mob_changestate()、mob_damage() 修正。
+ mob_ai_sub_hard_mastersearch()、mob_ai_sub_hard() 修正。
+ その他少し修正。
+ battle.c
+ battle_calc_weapon_attack()、battle_weapon_attack() 修正。
+ その他少し修正。
+
+--------------
+//0518 by Kalen
+・Event_pumpkin関連のフラグ不具合修正
+
+--------------
+//0517 by 死神
+
+・アイスウォールで摺り抜る問題修正と少し修正。(Mさんパケットの提供ありがとうございます。)
+ clif.h
+ clif_changemapcell() 追加。
+ clif.c
+ clif_changemapcell() 追加。
+ skill.h
+ SC_STEELBODYを84から87に変更。
+ skill.c
+ skill_unitsetting()、skill_unit_onlimit() 修正。
+ skill_status_change_end()、skill_status_change_start() 修正。
+ client_packet.txt 修正。
+
+--------------
+//0516 by 死神
+
+・モンスターのメテオによる鯖ダウンを臨時に防いで置きました。(テストはしてません。) モンスターのスキルについてちょっと分析不足ですので分析した後に修正して置きます。
+・スキル指弾の仕様をbattle_athena.confで決めるように変更。(0515の物がちょっともったいなかったので...)
+ skill.c
+ skill_castend_pos2() 修正。
+ battlc.h、battle.c
+ battle_configにfinger_offencive_type 追加。
+ battle_calc_weapon_attack() 修正。
+ battle_athena.conf 修正。
+ conf_ref.txt 修正。
+
+--------------
+//0515 by 死神
+
+・スキルメテオと指弾修正とパケット修正、0512の落とし物修正と少しだけの仕様変更です。
+・指弾の場合説明を見てこんな感じかなと思って作った物です。以前の物が本鯖にあっているなら元に戻します。
+・メテオの1発の範囲は5*5セル(range = 2)です。
+・アイテム使用パケットを新しい物に変更したがエフェクトが出ない物は出ないようです。(色々エフェクトが入っているみたいだから後は使って確認ですけどね。)
+・0512でhitrateが10000以上で必中ではなく100000以上で必中ですのでコードの修正のさいには気をっつけてください。
+・battle_athenaに設定されている武器の製造率とペットの捕獲確率の計算方法を少し変えました。(気にする必要もない物ですけどね。)
+ skill.h
+ skill_addtimerskill()、skill_cleartimerskill 追加。
+ skill.c
+ skill_attack() fix、skill_use_id()、skill_use_pos() 修正。
+ skill_castend_damage_id()、skill_castend_nodamage_id() 修正。
+ skill_timerskill()、skill_addtimerskill()、skill_cleartimerskill 追加。
+ skill_castcancel()、skill_castend_pos2()、skill_unitsetting() 修正。
+ skill_produce_mix()、do_init_skill() 修正。
+ mob.c
+ mob_damage() 修正。
+ battle.c
+ battle_calc_weapon_attack() 修正。
+ map.h
+ struct skill_timerskill 追加。
+ struct map_session_data 修正。
+ map.c
+ map_quit() 修正。
+ pc.c
+ pc_authok() 修正。
+ pc_damage() 修正。
+ clif.c
+ clif_parse_WalkToXY() 修正。
+ clif_useitemack() 修正。(資料提供: Kalenさん)
+ pet.c
+ pet_catch_process2() 修正。
+ skill_db.txt
+ 気功のSPを10に変更。(ネットの検索では10だったので変更しました。韓国蔵では15と表示されますが...)
+ client_packet.txt
+ 01c8の変更です。Kalenさん情報提供ありがとうございます。
+
+--------------
+//0514 by Kalen
+
+・script修正+追加
+
+ conf/npc_event_pumpkin.txt (新規)カボチャイベント
+ conf/npc_town_guide.txt (修正)Junoの「+」アイコンカラー修正
+ conf/npc_town_lutie.txt (一部追加)カボチャイベントに影響するNPCの会話追加
+
+--------------
+//0513 by RR
+
+・転職時に装備が全て外れるようにしました。関数位置の変更してないので、ひょっとしたらおかしくなってるかもしれません。うちの環境(win2k cygwin)では平気でしたのでそのままにしてあります。。
+・ノービス時の死亡では、最大HPの2分の1で復活できるよう修正。(スキルによる復活は未確認)
+・デスペナルティによる経験値減少を追加。battle_athena.confにて、減少率を変更できるように設定。減る経験値は小数点以下切り捨てなので、必要経験値が低いうちにはちょうどその%分引かれるという風にはなりません。
+ battle.h
+ Battle_Configにdeath_penalty_baseとdeath_penalty_jobを追加。
+ battle.c
+ battle_config_readでdeath_penalty_baseとdeath_penalty_jobを読むように修正。
+ pc.c
+ pc_makesavestatus() 修正。
+ pc_damege() 修正。
+ pc_jobchange() 修正。
+ battle_athena.conf
+ death_penalty_base,death_penalty_job追加。
+
+--------------
+//0512 by 死神
+
+・問題になりそうな部分の修正と新しいパケットの対応がメインです。後バグも少し治しました。(動けない状態異常になっても動く問題の修正等です。)
+ athena.sh 修正。(いつも鯖を個別に実行していたので気がつきませんでした。)
+ makefile
+ DPACKETVERを2から3 に修正。ジューノ以後の蔵を使うのなら3にして使ってください。(その以前なら2か1)
+ clif.c
+ DPACKETVER=3に対応(今の所0x114を0x1deに変換と0x11fを01c9に変換するのみ対応)
+ clif_skill_damage3() 削除。
+ clif_skillcastcancel() 追加。
+ clif_skill_damage()、clif_getareachar_skillunit()、clif_skill_setunit() 修正。
+ clif_fixmobpos()、clif_fixpetpos()、clif_fixpcpos() 修正。
+ 他に少し修正。
+ clif.h
+ clif_skill_damage3() 削除。
+ clif_skillcastcancel() 追加。
+ battle.c
+ battle_calc_weapon_attack() 修正。
+ hitrateを10000以上にすれば必中になるように変更。(今の仕様ではモンスターの必中攻撃以外は必中になりません。)
+ 他に少し修正。
+ client_packet.txt
+ 新しいパケット情報追加。
+ pc.c
+ pc_spiritball_timer()、pc_delspiritball() 修正。
+ pc_damage()、pc_skill() 修正。
+ skill.h
+ SC_EXPLOSIONSPIRITSを89から86に変更。(86 = 0x56)
+ SC_DELUGEを86から89に変更。
+ skill.c
+ skill_castcancel()、skill_use_id()、skill_use_pos() 修正。
+ skill_check_condition() 修正。
+ skill_castend_damage_id()、skill_castend_nodamage_id 修正。
+ skill_status_change_end()、skill_status_change_start() 修正。
+ skill_db.txt
+ 気功の消費SPを修正。(前の15が本鯖にあっているみたいですので...)
+ mob.c
+ mobskill_use_id()、mobskill_use_pos() 修正。
+ map.c
+ map_quit() 修正。
+ atcommand.h
+ atcommand.c
+ @コマンド@spiritball追加。(機能は使えばわかります。ただ1000以上は入れない方がいいです。蔵がパンクしますので...)
+ atcommand_athena.conf
+ 修正。
+ conf_ref.txt
+ 修正。
+・0x196パケットに新しい物が追加されているので状態変化に直接に関係ないSC_xxxxの番号を調整する必要があります。(今はSC_EXPLOSIONSPIRITSにだけ対応しました。) それとskill_status_change_end()、skill_status_change_start()でclif_status_change()を呼ぶtypeの範囲が64(0x40)未満になっているがそれも追加されている物に合わせて修正する必要がありますが追加されている物が全てわかったわけでもないのでSC_EXPLOSIONSPIRITSにだけ対応しました。今度からは爆裂波動の解除が正確に見えます。金剛はデータを見つけられませんでした。
+※新しいパケットに対応する作業をしていますが情報が不足です。
+イグドラシルの実やイグドラシルの種のエフェクトが出るようにする為に01c8を使ってみましたが駄目でした。client_packet.txtのデータでは何も起こらないので何方が本鯖でイグドラシルの実やイグドラシルの種を使った時のパケットを提供してくれませんか?S 00a7の後00a8が来るのかそれとも01c8が来るのかの確認と00a8の後に01c8が来るのかの確認ができれば何とかなると思いますが...
+それと01c9の後に来る?.81bがわかればアイスウォールを摺り抜る問題も解決できると思いますが...
+情報提供をお願いします。
+
+--------------
+//0511 by Diex
+
+・指弾の攻撃回数修正。
+・阿修羅覇鳳拳、発勁が修練を無視し、無属性になるように修正。
+・金剛使用時、MDEFが正しく表示されてなかったバグを修正。
+・気功の消費SPを修正。
+ pc.c
+ pc_calcstatus() 修正。
+ battle.c
+ battle_calc_weapon_attack() 修正。
+ skill.c
+ skill_check_condition() 修正。
+
+ skill_db.txt 修正。
+
+--------------
+//0510 by Diex
+
+・三段掌の表示バグ修正
+・指弾が気弾が無くても撃てるバグを修正
+ map.h
+ struct map_session_dataにspiritball_old変数追加。
+ skill.c
+ skill_check_condition() 修正。
+ clif.c
+ clif_skill_damage3() 修正。
+ battle.c
+ battle_weapon_attack()、battle_calc_weapon_attack 修正。
+
+--------------
+//0509 by
+
+・npc_warp.txt
+ プロ城→プロフィールドになっていたのを、
+ プロ城→ヴァルキリーレルムに修正。
+ プロフィールド→プロ城になっていたのをプロフィールド→ヴァルキリーレルムに修正
+
+--------------
+//0508 by 死神
+
+・バグ修正と息吹、気功、気奪の修正がメインです。(今度からは他の人にも気がちゃんと見えます。)
+・死んだキャラに経験値が入る問題修正。(テストはしてません。どうなのか報告をお願いします。)
+ pc.h
+ pc_addspiritball()、pc_delspiritball() 追加。
+ pc_is50overweight() 修正。
+ pc.c
+ pc_gainexp() 修正。
+ pc_insert_card()、pc_item_identify() 修正。(大した修正じゃありませんが...)
+ pc_authok() 修正。
+ pc_addspiritball()、pc_delspiritball() 追加。
+ pc_spiritball_timer() 追加。
+ do_init_pc()、pc_calcstatus()修正。
+ pc_spirit_heal() 追加。
+ pc_natural_heal()に関わる物の修正。
+ map.h
+ struct map_session_data 修正。
+ map.c
+ map_quit() 修正。
+ map_addflooritem() 修正。
+ clif.h
+ clif_spiritball_int()をclif_spiritball()に変更。
+ clif_spiritball_ext() 削除。
+ clif.c
+ clif_spiritball_int() をclif_spiritball()に変えて修正。
+ clif_spiritball_ext() 削除。
+ clif_set01e1() 追加。
+ clif_getareachar_pc() 修正。
+ skill.h
+ SC_CALLSPIRITS 削除。
+ skill.c
+ SC_CALLSPIRITS 削除。
+ skill_castend_nodamage_id()、skill_check_condition() 修正。
+ skill_status_change_start() 修正。
+・床に落ちたアイテムが消えるまでの時間を設定できるように変更。
+ battle.h、battle.c
+ battle_config_read() 修正。
+ conf_ref.txt 修正。
+ battle_athena.conf 修正。
+
+--------------
+//0507 by Diex
+0505の修正
+・三段掌のエフェクト実装
+
+--------------
+//0506 by hoenny
+全体的に少し式修正
+セイジのスキルがアイテムを消耗するように修正
+(スキルのDBに zeny, spiritball, item, equipを入れたいが時間がなくて臨時的に ...)
+
+--------------
+//0505 by Diex
+
+・阿修羅覇鳳拳のダメージ修正
+・猛龍拳のダメージ修正
+・指弾実装
+・発勁実装
+・金剛が減算DEFと減算MDEFが90に固定されていたのを乗算DEFと乗算MDEFが90になるように修正
+・三段掌実装(ただしコンボは未実装)
+ map/clif.c
+ map/clif.h
+ clif_skill_damage3()追加
+ map/pc.c
+ map/skill.c
+ map/battle.c
+ 修正・及び追加
+(計算式は+ Acolyte Maniax +を参考にしました。)
+
+--------------
+//0504 by 死神
+
+・atcommand.c 修正。(たった2文字を追加しただけです。)
+atcommnad_gm_onlyがnoじゃなくても使用レベル設定を0にしたコマンドはGMじゃないキャラでも使えます。テストはしてません。
+
+--------------
+//0503 by nabe
+
+・精錬修正とLinux用にちょっと変更など
+ conf/map_athena.conf
+ npc_event_doll.txt,
+ npc_turtle.txt,
+ //npc_pota.txt項目追加
+ conf/npc_pota.txt追加(socieさん作のダンジョンポタ子さん)
+ conf/npc_shop.txt
+ イズルード武器商人の価格修正
+ conf/script_athena.conf
+ 0499での文字化け?修正
+ login/login.c
+ #include <time.h>追加
+ map/script.c
+ buildin_getequipname()
+ 精錬メニューのmallocを修正
+ buildin_getequipisenableref()
+ 精錬可能条件修正(Athefansさんの条件文にしてみました)
+ map/skill.c
+ skill_check_condition()変数宣言位置の変更のみ
+
+--------------
+//0502 by 死神
+
+・カプラの倉庫もbattle_athena.confのbasic_skill_checkによって基本スキルが足りなくても使用することができるように修正しました。(プロンテラ中央のカプラのみ確認。)
+・クェストスキルの取得は0492のせいです。0481にskillの最後が,2じゃなく,0だと書いたのですが何故か0492で,2になっていたので,0に修正しました。
+・スクリプトgetbaseskillcheckをbaseskillcheckに変更と自分で修正しましたが命令の後になんの数値も入らない場合はスクリプトが正しく作動しなかったので使用する場合はbaseskillcheck(0)にして使わないと正しい結果を得ることができません。
+(詳しくはnpc_town_kafra.txt参照。)
+ npc_event_skillget.txt 修正。
+ npc_town_kafra.txt 修正。
+ script.c 修正。
+・GM_account.txtに自分がテストの為に使っていた500000が入っていたので削除しました。(GM_account.txt作った理由は自分勝手にアカウントをGMにすることができるようにする為です。つまりGMとして表示されなくてもGMとして色んな権限を使うことができます。さすがにGM専用の右クリックコマンドは使えませんが... でもこれを活用している方はいないみたいなんですね...)
+
+--------------
+//0501 by hoenny
+
+・500の問題点修正
+-HP回復力向上,SP回復力向上
+ map/pc.c
+ pc_natural_heal_hp()修正
+ pc_natural_heal_sp()修正
+
+500SP回復力向上
+--------------
+//0500 by hoenny
+
+・修道僧の息吹実装
+-基本的に座った時 10秒ごとに回復します.
+-所持量が 50%をオーバーした場合 20秒ごとに回復します.
+・修道僧の気奪実装
+-他の修道僧の氣球も吸収が可能です.
+・修道僧の金剛実装
+-金剛状態ではすべてのアクティブスキルを使うことができないです.
+ db/skill_db.txt
+ 気奪修正
+ 金剛修正
+ map/pc.h
+ pc_is50overweight()追加
+ pc_is90overweight()追加
+ map/pc.c
+ pc_calcstatus()修正
+ pc_spheal()修正
+ pc_hpheal()修正
+ pc_natural_heal_hp()修正
+ pc_natural_heal_sp()修正
+ pc_natural_heal_sub()修正
+ map/skill.c
+ skill_check_condition()修正
+ skill_castend_nodamage_id()修正
+ skill_status_change_start()修正
+
+--------------
+//0499 by 死神
+
+・サーバーsnapshotとバグ修正。
+・スティールコインのゼニ量をモンスターレベル*10 + rand(100)に変更。
+・キャスティングタイムがないスキルはタイマーを使わないように変更。
+・カードの使用によるマップ鯖ダウンを防ぐ為に修正。(今度こそ治ったはず...) そして拡大鏡も同じようなことができるので修正。(これは鯖ダウンまでは起こさないようですが...)
+・キャラにマップのロードが終わるまでペットのデータが来ないとマップ鯖が落ちる問題修正。(滅多なことがない限り起こらないですけどね。)
+・オートバーサーク、重さのアイコンとチェックが正しく適用されるように修正。
+・増速ポーションの適用順番変更。今まではスピードアップポーションが最優先で次がハイスピードポーション、最後がバーサークポーションだったのですが順番を逆に変更しました。
+・アイテムで使うスキルはキャスティングタイムとディレイが0になるように変更。
+・アイテムで使うスキルのレベルがitem_dbに設定しているレベルより高くなるバグ修正。
+ pc.h
+ pc_move()をpc_movepos()に変更。
+ pc.c
+ pc_steal_coin()、pc_insert_card()、pc_item_identify()、pc_authok()、
+ pc_calcstatus()、pc_checkweighticon()、pc_damage() 修正。
+ skill.c
+ skill_castend_pos2()、skill_check_condition()、skill_use_id()、
+ skill_use_pos() 修正。
+ pet.c
+ pet_recv_petdata()、pet_change_name() 修正。
+ map.h
+ struct map_session_dataにskillitemlv 追加。
+ script.c
+ buildin_itemskill() 修正。
+ clif.c
+ clif_parse_UseSkillToId()、clif_parse_UseSkillToPos()、
+ clif_parse_LoadEndAck() 修正。
+ mob.c
+ mobskill_use_id()、mobskill_use_pos() 修正。
+
+--------------
+//0498 by hoenny
+
+.氣球がすっかり見えるように修正(消耗スキル使用の時消耗するように修正)
+.スキル残影を使用の時氣球を消耗するように修正
+ doc/client_packet.txt
+ 0x1d0追加
+ map/map.h
+ sdのstructureに spiritball追加
+ map/clif.h
+ clif_spiritball_del() -> clif_spiritball_int()修正
+ clif_spiritball_cre() -> clif_spiritball_ext()修正
+ map/clif.c
+ packet_len_table[]修正
+ clif_spiritball_del() -> clif_spiritball_int()修正
+ clif_spiritball_cre() -> clif_spiritball_ext()修正
+ map/pc.h
+ pc_item_steal() -> pc_steal_item()修正
+ pc_coin_steal() -> pc_steal_coin()修正
+ map/pc.c
+ pc_item_steal() -> pc_steal_item()修正
+ pc_coin_steal() -> pc_steal_coin()修正
+ pc_calcstatus()修正
+ map/skill.c
+ skill_check_conditon()修正
+
+--------------
+//0497 by 死神
+
+・0491のスキル残影のバグ修正とスティールとスティールコイン、スナッチャーの修正、mob_targetのバグ修正。
+・交換、座り、パーティ結成等の時に基本スキルをチェックするように修正。(battle_athena.confでチェックするかどうかを決めることができます。)
+ただカプラの倉庫はスクリプトで制限をかけるしかありません。
+・スクリプトgetbasicskillcheck追加。
+ 使用方法> getbasicskillcheck
+ 戻り値はbattle_athena.confのbasic_skill_checkです。0の場合は基本スキルのチェックなしで1の場合は基本スキルをチェックするのを意味します。
+ skill.c
+ skill_castend_pos2() 修正。
+ skill_additional_effect() 修正。
+ pc.c
+ pc_move() 追加。
+ pc_item_steal()、pc_coin_steal() 修正。
+ pc.h
+ pc_move() 追加。
+ map.h
+ struct mob_data 修正。
+ mob.c
+ mob_spawn() 修正。
+ mob_target() 修正。
+ clif.c
+ clif_pcinsight()、clif_pcoutsight() 修正。
+ clif_parse_ActionRequest()、clif_parse_Emotion()、
+ clif_parse_TradeRequest()、clif_parse_CreateParty()、
+ clif_parse_ReplyPartyInvite() 修正。
+ battle_athena.conf 修正。
+ conf_ref.txt 修正。
+ skill_db.txt
+ スティールの射程を3から1に修正。
+ battle.h、battle.c
+ battle_configにbasic_skill_check 追加。
+ battle_config_read() 修正。
+ trade.c
+ trade_traderequest() 修正。
+ script.c
+ buildin_getbasicskillcheck() 追加。
+ map/makefile 修正。
+※スティールとスティールコインの計算式は適当に作った物です。本鯖の方がどうなのか全然わからないので...
+
+ スティール率 = (モンスターのアイテムdrop率 * (キャラレベル*0.5 + dex*0.4 +スキルレベル*5))%
+ スティールコイン率 = (スキルレベル + (キャラレベル - モンスターのレベル)*0.3 + dex*0.2 + luk*0.2)%
+ スナッチャー発動率 = (5.5 + スキルレベル*1.5 +スティールのスキルレベル)%
+
+本鯖の計算式がわかる方は情報提供をお願いします。
+スティールコインのゼニの量はモンスターのレベル*100になっています。これについても情報提供をお願いします。
+※残影の場合使った後普通に歩く前にはペットの装備が見えないバグがありますが原因がわからないので放置することにしました。
+※基本スキルが足りない時出るメッセージは殆ど合わせていますがパーティに入る時に基本レベルが足りない時に合う物がなかったのでパーティを作れない(基本スキルレベル7の物)と表示して勧誘した方には拒絶されたと表示されます。
+
+--------------
+//0496 by hoenny
+
+.WZのメテオストーム実装
+.スティールコイン修正
+ db/skill_db.txt
+ メテオストーム修正
+ map/pc.c
+ pc_coin_steal()修正
+ map/skill.c
+ skill_castend_pos2()修正
+
+--------------
+//495 by nini
+
+・ARが片手斧、両手斧でしか発動しなかったところ修正→片手斧、両手斧、鈍器
+ map/skill.c
+ skill_check_condition() 修正
+
+前回修正のとき鈍器入れ忘れてたようです。
+
+--------------
+//0494 by 獅子o^.^o
+
+conf/mpc_warp.txt
+.ハンタ一転職地出ていない修正
+
+--------------
+//0493 by 波浪
+
+・script修正
+ npc_town_comodo.txt コモド案内要員部分を削除(npc_town_guide.txtと重複していたので)
+ npc_town_guide.txt ジュノー案内要員を追加(viewpointの色が…)
+ npc_town_kafra.txt ジュノーカプラ部分をnpc_town_yuno.txtから移動
+ npc_town_refine.txt ジュノー精錬所部分をnpc_town_yuno.txtから移動
+ npc_town_yuno.txt 案内要員とカプラと精錬所部分を削除
+ npc_turtle.txt 会話を微修正
+
+--------------
+//0492 by Kalen
+
+・script修正+追加
+
+ conf/npc_event_doll.txt (新規)
+ conf/npc_turtle.txt (新規)亀島関連NPC+亀島クエスト(航海日誌)追加
+
+ conf/npc_event_skillget.txt (修正)応急処置の不具合+へんなtab削除etc..
+ conf/npc_town_alberta.txt (修正)Turtle分離、ちびっ子削除(Event_dollへ移動)
+ conf/npc_town_guide.txt (修正)台詞がかなり変更されていたので、修正
+
+
+--------------
+//0491 by 死神
+
+・スキル残影(韓国クライアントでは弓身彈影)実装。(ただ気弾のチェックはしてません。)
+ pc.h
+ pc.c
+ pc_can_reach() 追加。
+ skill.c
+ skill_check_condition()、skill_castend_pos2() 修正。
+ skill_db.txt
+ 残影修正。
+・script.c
+ set_posword() 修正。
+※一人でテストは済んでいますが他の人に正しく見えるかどうかは未確認です。
+変なのかどうか報告をお願いします。
+
+--------------
+//0490 by nabe
+
+・場所スキルエフェクトでマップ鯖が落ちることがあったのを修正。
+ clif.c
+ clif_skill_poseffect()の
+ unsigned char buf[16];を、unsigned char buf[32];に修正。
+
+--------------
+//0489 by 死神
+
+・0483のバグ修正。battle_athena.confのquest_skill_learnが正しく適用されるように変更と問題があった部分の修正。(テスト済み)
+ pc.c
+ pc_calc_skilltree()、pc_skill() 修正。
+ atcommand.c
+ @lostskill 少し修正。
+・カードの使用によるマップ鯖ダウンを防ぐために少し修正。(ただカードの使用によるマップ鯖ダウンを再現できなかったので本当に治ったかどうかは不明...汗)
+ pc.c
+ pc_insert_card() 修正。
+・pc.h
+ pc_ishiding() 修正。
+
+--------------
+//0488 by hoenny
+
+・RGのスティールコイン実装
+・スティール修正
+(二スキル皆一度スチールした場合またスチールすることができない.そしてスキル成功の時モンスターは攻撃するように修正した.エフェクトは成功の時だけ出るように修正した.)
+ db/skill_db.txt
+ スティールコイン修正
+ map/pc.h
+ pc_coin_steal()追加
+ map/pc.c
+ pc_coin_steal()追加
+ pc_item_steal()修正
+ map/skill.c
+ skill_castend_nodamage_id()修正
+
+--------------
+//0487 by hoenny
+
+・485の問題点ちょっと修正
+ map/pc.c
+ pc_item_steal()修正
+ map/skill.c
+ skill_castend_nodamage_id()修正
+
+--------------
+//0486 by 獅子o^.^o
+
+db/class_equip_db.txt修正
+裂けた大地の書、燃える太陽の書、乾いてる風の書、默示録、プリーストは装備することができない問題修正
+
+--------------
+//0485 by hoenny
+
+・ RGのスナッチャー実装
+・ スティール修正
+・ 露店開設の時 skill_check_conditionで状態をチェクするように修正
+ map/pc.h
+ pc_ishiding()追加
+ pc_item_steal()追加
+ map/pc.c
+ pc_item_steal()追加
+ map/skill.c
+ skill_castend_nodamage_id()修正
+ skill_additional_effect()修正
+ skill_check_condition()修正
+
+--------------
+//0484 by 胡蝶蘭
+
+・覚えてないクエストスキルにスキルポイントを振れる問題修正
+ pc.c
+ pc_calc_skilltree()でクエストスキルのチェック追加
+ skill.c
+ skill_readdb()でinf2を読むように修正
+
+・ペコペコ騎乗、ファルコンのアイコンがログイン直後には表示されない問題修正
+ clif.c
+ clif_parse_LoadEndAck()修正
+
+--------------
+//0483 by 死神
+
+・0482の適用。
+ npc_event_skillget.txt 修正。
+ script.c 修正。
+ skill.c 修正。
+ pc.c 修正。
+
+--------------
+//0482 by 胡蝶蘭
+
+・クエストスキルのスクリプト少し修正
+・スクリプトgetskilllvを呼ぶとマップサーバーが落ちるバグ修正
+ (conf/)
+ npc_event_skillget.txt
+ 出来るだけ変数を使わないように修正(未テスト)
+ (map/)
+ script.c
+ buildin_getskilllv()修正
+
+・スティールで失敗時のエフェクト変更
+・同じMOBには1回しかスティールできないように修正
+ (map/)
+ skill.c
+ skill_castend_nodamage_id()修正
+ map.h
+ struct mob_dataにsteal_countメンバ追加
+ mob.c
+ mob_spawn()修正、steal_countを0に初期化するように
+
+・イドゥンの林檎でHPが32767を超えるとサーバーが落ちるバグ修正(未テスト)
+ (map/)
+ pc.c
+ pc_calcstatus()修正
+
+--------------
+//0481 by 死神
+
+・これの適用には気をつけてください。0478の胡蝶蘭さんの物を Athena.txtのデータ形式変更せずにクェストスキルを覚えるように作った物です。自分が作ってる最中に胡蝶蘭さんが同じ物をアップしてくれたのですがデータは変えない方がいいと思って自分の物もアップしました。注意することは0478のathena.txtは使えないと言うことです。0478前の物を使ってください。
+・skill_db.txtにinf2を追加してこれを使ってクェストスキルかどうかを判断する仕組みです。
+ skill.h 修正。
+ skill.c
+ skill_readdb()修正と少し修正。
+ skill_get_inf2() 追加。
+ skill_db.txt 修正。
+ skill_tree.txt 修正。(0478前の物)
+ clif.c
+ clif_skillinfoblock() 修正。
+ char.c 修正。(0478前の物)
+・battle_athena.confにquest_skill_learn追加。
+ battle.h 修正。
+ battle.c
+ battle_config_read() 修正。
+ battle_athena.conf 修正。
+・/resetskillをbattle_athena.confにquest_skill_learnの設定に合わせてquest_skill_learnがyesの場合はスキルポイントに加算してquest_skill_learnがnoならリセットはされるがスキルポイントに加算されません。
+ pc.c
+ pc_skill()、pc_resetskill() 修正と少し修正。
+ pc.h 修正。
+ atcommand.c 修正。
+ atcommnad_athena.conf 修正。
+・スクリプトのskillコマンドでクエストスキルを覚えられるのは同じですが最後のフラグが2から0に変わってますので注意してください。
+ npc_test_skill.txt 修正。
+ npc_event_skillget.txt 修正。
+ conf_ref.txt 修正。
+ client_packet.txt 修正。
+
+--------------
+//0480 by Kalen
+
+・Eventskill追加
+ conf/npc_event_skillget.txt
+
+・map_athena.conf変更
+ warp.txtの読み込み優先度を変更
+ prt_castle等、旧EPのワープと異なる場所に変更された場合
+ 先に読み込んだ方が優先されるので、EPの高い順のがよろしいかと
+ conf/map_athena.conf
+
+--------------
+//0478 by 胡蝶蘭
+
+***
+ Athena.txtのデータ形式変更!! (自動的に変換されます)
+ バックアップを忘れずに!
+ Data format of athena.txt is changed!! (convert automatically)
+ DONT FORGET BACKUP!!
+***
+
+・クエストスキル実装
+・スクリプトでスキルレベルをチェックできるように
+ ・スクリプトのskillコマンドでクエストスキルを覚えられます。
+ 使用方法> skill スキルID,スキルLV[,フラグ]
+ フラグは省略可能で、省略すると1を指定したことになります。
+ 1で装備品による一時的な習得、2でクエストによる恒久的な習得です。
+ 恒久的な習得の場合、skill_tree.txtに依存します
+ ・getskilllvコマンド追加
+ 使用方法> getskilllv(スキルID) 戻り値はレベルです。0で未習得。
+
+ (conf/)
+ npc_test_skill.txt
+ サンプル
+ (db/)
+ skill_tree.txt
+ クエストスキルとして必要スキルIDに-1を設定。
+ (char/)
+ char.c
+ フラグもathena.txtに保存するように。
+ 以前の形式のデータも読み込めます。
+ (map/)
+ pc.c/pc.h
+ pc_skill(),pc_calc_skilltree()など修正
+ script.c
+ buildin_skill(),buildin_getskillid()など修正
+
+・@questskill,@lostskill追加
+ ・@questskill スキルID でクエストスキルを覚えます。(クエストスキルのみ)
+ ・@lostskill スキルID でスキルを忘れます。(クエストスキル以外もOK)
+
+ atcommand.c/atcommand.h
+ struct Atcommand_Configにlostskill,questskillメンバ追加
+ @questskill,@lostskill処理追加
+
+--------------
+//0477 by nabe
+
+・一部変数の宣言位置の変更のみ(Linux等でコンパイルしやすいように)。
+ atcommand.c,battle.c,clif.c,mob.c,npc.c,skill.c
+
+--------------
+//0476 by nabe
+
+・conf/ ちょっと整理
+ conf/map_athena.conf修正。
+ tortoise.txtをnpc_town_alberta.txt中に移動。
+ npc_script2.txtのコモドガイドをnpc_town_comodo.txt中に移動。
+
+・npcがキャラ名を喋るときのバグ修正
+ map/script.c
+ buildin_strcharinfo()でキャラ名用のメモリを
+ staticに確保してしまっていたのを、mallocに修正。
+
+--------------
+//0475 by hoenny
+
+泥棒のスティール実装。
+ギルド生成の時エンペリウム消耗するように修正。
+ map/guild.c
+ guild_create()修正。
+ guild_created()修正。
+ map/skill.c
+ skill_castend_nodamage_id()修正。
+
+--------------
+//0474 by 死神
+
+・0471の精練の時表示される文字の設定をmap_athena.confからscript_athena.confに変更。
+ script.c
+ do_init_script() 修正と少し修正。
+ script.h 修正。
+ script_athena.conf 追加。
+ map_athena.conf 修正。
+ map.c
+ map_config_read() 修正。
+・古い巻物、プレゼントボックス実装と少し仕様変更。
+ランダムでアイテムを得る物にデフォルトで出るアイテムを設定できるように変更。今の仕様では1000回までアイテムが選択されなかったらデフォルトアイテムが出るようになっています。デフォルトアイテムが0の場合はアイテムを得られません。
+設定する確率を*1000から*10000に変更。ただitem_~.txtの修正はやっていません。誰かやってください。(他力本願)
+ itemdb.c
+ temdb_read_randomitem() 修正。
+ itemdb_searchrandomid() 修正。
+ item_purplebox.txt から item_violetbox.txt に修正。
+ item_giftbox.txt、item_scroll.txt 追加。(moveさんありがとう。)
+ item_db.txt
+ 古い巻物、プレゼントボックス 修正。
+・trade.c
+ trade_tradecommit() 修正。pc_delitem()を使うように変更。
+※テストはやっていませんので問題があったら報告してください。
+
+--------------
+//0473 by Kuro
+
+・class_equip_dbを一部修正
+ db/class_equip_db.txt
+
+--------------
+//0471 by hoenny
+
+製錬の時出る文を変えることができるようにしました.(map_athena.confで調節可能)
+気功の数字が市廛の時実際水路表示図緑修正
+ conf/map_athena.conf
+ refine_posword:追加。
+ map/map.c
+ map_config_read()修正。
+ map/script.h
+ do_set_posword()追加。
+ map/script.c
+ do_set_posword()追加。
+ buildin_getequipname()修正。
+ map/skill.c
+ skill_status_change_start()修正。
+
+--------------
+//0470 by 死神
+
+・製造の時属性石が二度減る問題修正。(実は二度減るように見えるだけでマップを移動すると正しく表示されますが...)
+ pc.h、pc.c
+ pc_delitem() 修正。
+ npc.c、script.c、storage.c、pet.c
+ pc_delitem()を全て修正。
+ skill.c
+ skill_produce_mix() 修正。
+
+--------------
+//469 by 波浪
+
+・npc_mob_job.txt、npc_monster.txt、npc_monster30.txt、mob_db.txtのモンス名を修正
+・item_db.txtの回復アイテムの回復量をジュノー後のものに修正
+
+--------------
+//468 by Kuro
+
+・魔剣製作クエスト追加
+ conf/npc_event_ma_sword.txt
+
+--------------
+//467 by nini
+
+・BBが両手剣でしか発動しなかったところ修正→すべての武器で
+・ARが両手斧でしか発動しなかったところ修正→片手斧、両手斧、鈍器
+・スピアクイッケン発動を槍だけに
+・キャストキャンセルされないものにグランドクロス、ローグのストリップシリーズ追加
+・ブリッツビートがキャストキャンセルされなくなってた点修正
+ map/skill.c
+ skill_use_id() 修正
+ skill_check_condition() 修正
+・2-2職スキルのキャスト・ディレイ追加
+ db/cast_db.txt
+
+
+--------------
+//466 by hoenny
+
+・阿修羅覇鳳拳修正(公式修正及び sp消耗がすぐ見えるように)
+・蓄気の時気弾が見えるように修正(Mr.NO NAME様のパケ情報ありがとうございます.気弾が消えるパケ情報が不足です.)
+・パリの羽やテレポート1を連続使用の時,鯖オーバーが発生しないように仮初めで修正
+ doc/client_packet.txt
+ 0x1e1パケ情報追加
+ map/battle.c
+ battle_calc_weapon_attack()修正
+ map/clif.h
+ clif_spiritball_cre()追加
+ clif_spiritball_del()追加
+ map/clif.c
+ packet_len_table[]修正
+ clif_spiritball_cre()追加
+ clif_spiritball_del()追加
+ clif_changemap()修正
+ map/skill.c
+ skill_castend_nodamage_id()修正
+ skill_check_condition()修正
+
+--------------
+//0465 by 死神
+
+・リザレクションとハイディング、ブリッツビートのバグ修正。(ブリッツビートは報告はなかったのですが分析したら問題があったので修正。)
+ skill.c
+ skill_use_id() 修正。
+ skill_castend_nodamage_id() 修正。
+・0455のNPCを元に戻しました。
+ npc_event_ice.txt 修正。
+ npc_event_potion.txt 修正。
+ npc_town_geffen.txt 修正。(454の物に戻しました。)
+・0451のαマップをコマントアウトしました。必要な方はコマントアウトをなくして使ってください。
+ map_athena.conf 修正。
+・リザレクションは0442の問題でハイディング、ブリッツビートは0445の問題でした。それと0445の修正でスキル番号をenumで宣言した文字に変えていますがそれに落としがあるようです。(ハイディング、ブリッツビートはそのせいでした。)前の番号ソースと比べて問題がある部分は修正する必要があります。ちょっと面倒ですが...
+
+--------------
+//464 by 波浪
+
+・モンクスキルの部分について修正(未実装スレに書かれていたものを追加しただけです。
+ skill.c
+ skill_use_id()修正
+ cast_db.txt
+ モンクスキル追加
+
+--------------
+//463 by 胡蝶蘭
+
+・462のバグ修正
+ ・NPCのSHOPの不都合修正
+ ・READMEの間違い修正(warpwaitingpcがwarpwaitingroomになっていた)
+
+ map.h
+ struct npc_dataのchat_idの位置を修正
+
+--------------
+//462 by 胡蝶蘭
+
+・NPCチャット作成
+ ・waitingroom命令でNPCチャットを作成します。
+ 引数は waitingroom "チャット名",制限人数,イベント名 です。
+ イベント名は人数が最大になったときに起こすイベント名で、省略可能。
+ ・warpwaitingpc命令で、チャット内にいるPC全員をワープできます。
+ 引数はwarpと同じで、warpwaitingpc "マップ名",x,y です。
+
+ map.h
+ struct npc_dataとchat_dataを修正
+ script.c
+ buildin_waitingroom(),buildin_warpwaitingpc()追加
+ chat.c/chat.h
+ 色々修正
+ clif.c
+ clif_getareachar_npc()、clif_joinchatok()など修正
+
+・NPCのOnInitイベントをサーバー起動時に呼ぶように。
+・エクスポートするときのNPC名と表示上のNPC名を別々に設定可能に。
+ ・同じNPC名のイベントは重複できないため、エクスポート用NPC名を使い、
+ 同じNPC名でも別のNPCとして識別できるようにしなければなりません。
+ (もちろん、イベント処理を行わない場合はその必要はありません。)
+ ・npc_*.txtのscript命令でNPCの名前を設定するとき、
+ 「表示名::エクスポート名」とすると、表示する名前と、イベント用に
+ エクスポートする名前を別々に指定できます。
+ 表示名が全く同じ別々のNPCでイベントを動作させるときに使用します。
+ ・ややこしいのでPVPのnpcスクリプトを見てイメージを掴んでください。
+
+ npc.c/npc.h
+ npc_parse_*()の修正
+ npc_event_do_oninit(),npc_event_do_oninit_sub()など追加
+ map.c/map.h
+ do_init()でnpc_event_do_oninit()を呼ぶように
+ struct npc_data修正
+
+・スクリプトgetmapusers、getareausersの致命的なバグ修正
+ ・該当マップが存在しない場合、マップサーバーが落ちるのを修正。
+ ・マップが存在しないと、-1を返すようにした。
+
+ script.c
+ buildin_getmapusers(),buildin_getareausers()修正
+
+・pvpのスクリプト修正
+ ・チャットルームを作るようにした
+
+ (conf/)
+ npc_pvproom.txt
+ 全てのNPCのエクスポート名(pvp??r)設定
+ OnInit:でwaitingroomを実行するように
+
+--------------
+//461 by Kuro
+・アコライト転職クエスト一部修正
+ conf/npc_job_aco.txt
+
+--------------
+//460 by sagitarius
+・item_dbの間違い修正
+ 4032,Ambernite_Card,アンバーナイトカード,6,20,,10,,2,,,,,32,,,,{},{},,修正
+
+--------------
+//459 by hoenny
+・アドレナリンラッシュ使用の時斧チェック(自分だけ)
+・Old_Blue_Boxの確率が高いという報告によって修正
+・Script.cは0455以前ことで引換(NPCをここに合わせて修正してください)
+・阿修羅覇鳳拳修正(公式を修正したんですが, 正確かはよく分からないですね.)
+・修道僧の蓄気,爆期の仮実装.(阿修羅覇鳳拳使用の時蓄気,爆期状態をチェックします. )
+・ペコペコに乗った後に、ADPDが間違ったこと修正(バグを直してあげたが, 直す前ことに変わるせいでまた修正)
+その外にも修正をしたようなのに覚えないですね.そして誤った部分があれば指摘してください.
+ conf/npc_event_ice.txt
+ checkweight修正
+ conf/npc_town_geffen.txt
+ checkweight修正
+ db/item_purplebox.txt
+ Old_Blue_Box修正
+ map/battle.c
+ battle_calc_weapon_attack()修正
+ map/pc.c
+ pc_spheal()修正
+ pc_calcstatus()修正
+ map/script.c
+ buildin_checkweight()修正
+ map/skill.h
+ SC_ EXPLOSIONSPIRITS追加
+ map/skill.c
+ SkillStatusChangeTable[]修正
+ skill_castend_nodamage_id()修正
+ skill_check_condition()修正
+
+--------------
+//458 by Kuro
+・アコライト転職クエスト追加
+ conf/npc_job_aco.txt
+ 会話文が分からなかったので適当にしてあります。また、NPCの外見の変え方が分からなかったので適当にしてあります。
+ 分かる方は修正しておいて下さい。
+
+--------------
+//0457 by Kalen
+
+・PVP関連のNPC追加
+ conf/npc_pvp.txt
+ conf/npc_pvproom.txt
+
+--------------
+//0456 by 死神
+
+・モンスターの最初攻撃時間が長すぎる問題修正。
+モンスターの最初攻撃時間を今まではmob_dbのaDelayを使っていましたがこれをaMotionに変更しました。今まではmob_dbのaMotionはゴミでしたが今度からはゴミではありません。aMotionさえ正しければモンスターの攻撃のモーションの前にダメージが出てくる問題もなくなるはずです。
+ mob.c
+ mob_changestate() 修正。
+・アイテムを入手できない時その理由に当たるメッセージが出るように変更。
+ pc.c
+ pc_additem() 修正。
+・job_db1.txtので問題になった.を,に修正。
+
+--------------
+//455 by Mr.NO NAME
+・NPCとのアイテム交換や買い物関係のScriptが出来上がった当初の
+ NPCデータ(npc_event_making.txt、npc_town_geffen.txt等)に乗っ取り、以下を修正。
+ conf/npc_event_ice.txt
+ npc_event_potion.txt
+ npc_town_geffen.txt(454以前の物に戻しました。)
+ map/script.c
+ buildin_checkweight()を修正。
+
+--------------
+//454 by Kuro
+・ゲッフェン鍛冶屋で買い物が出来るように修正
+ conf/npc_town_geffen.txt
+
+--------------
+//0451 by code
+・ 今更ですがαクライアントに対応(αクライアントのdata.grfをadata.grfとしてgrf-files.txtのadataのところに書いてください)
+ common/grfio.c
+ grfio_setadatafile()追加
+ /grfio.h
+ grfio_setadatafile()追加
+ conf/map_athena.conf
+ αクライアントのマップを読み込むように変更
+ /npc_warp_a.txt
+ αマップのワープポイントの設定(ちょっとずれてるかも)
+ /grf-files.txt
+ αクライアントのdata.grfをadata.grfとして読み込むように設定
+ adata: に記述
+※αクライアントは
+ ttp://www.castledragmire.com/ragnarok/
+ あたりから入手してください。
+
+--------------
+//0450 by hoenny
+・ 騎兵修練実装
+・ コムパルションディスカウント実装
+・ ディスカウント・オーバーチャージ修正(数が高い場合計算法が間違ったことを直しました.)
+・ 鉄拳修正(素手な時も適用されるように)
+・ 斧修練修正(片手斧な時も適用されるように)
+・ ボンゴンが攻撃するように修正
+ map/pc.c
+ pc_calcstatus()修正
+ pc_modifybuyvalue()修正
+ pc_modifysellvalue()修正
+ map/battle.c
+ battle_addmastery()修正
+ db/mob_db.txt
+ ボンゴン修正
+
+--------------
+//0449 by 死神
+
+・変になった所修正。
+ const.txt
+ bAtkとbDef 追加。
+ battle.c
+ battle_calc_weapon_attack()を元に戻しました。(0445の物)
+ map.h
+ map_session_dataを元に戻しました。(0445の物)
+ pc.c
+ pc_calcstatus() 修正。
+ pc_bonus() 修正。
+ item_db.txtを元に戻しました。(0446の物)
+
+--------------
+//0448 by hoenny
+・増速修正(pc_walk()から pc_calcstatus()に移動)
+・最大所持量修正
+ map/pc.c
+ pc_calcstatus()修正。
+
+--------------
+//0447 by ゆう
+・二刀流・矢の属性を正しく適応
+・ATKの上がるカードの効果を武器サイズ修正なしの底上げに変更
+・ATK・DEFの上がるカードの効果の適応の仕方を変更
+
+map.h
+ map_session_dataにcatk(カードATK)を追加
+
+pc.c
+ pc_calcstatus()
+ アサシンの二刀流の攻撃速度を修正した
+ スクリプトによる属性を左右正しく適応するようにした
+ 矢の属性を正しく適応するようにした(弓の属性優先)
+ ただし、矢がすべての攻撃に適応されます
+ カードATKの処理を追加した
+
+battle.c
+ battle_calc_weapon_attack()
+ カートATKを底上げダメージとして計算するようにした
+
+item_db.txt
+ カードの bonus bAtk、bDef を削除
+ かわりに、装備と同様にATKとDEFを設定
+ (変更前をitem_db2.txtとしているので、不具合があれば戻してください)
+
+
+--------------
+//0446 by hoenny
+・ミストレスカード実装。
+・スキル使用の時ジェムストーン消費。
+・スキル使用の時装備チェック。(ハンマーフォールだけ修正しようとしたが...)
+・ハンマーフォールの範囲を 半径5セル(全25セル)ロ修正
+ map/skill.c
+ skill_check_condition()修正。
+ skill_castend_pos2()修正。
+
+・ミストレスカード修正。
+ db/item_db.txt
+
+--------------
+//0445 by Aya
+
+・基本ASPDと計算処理を修正。
+ db/job_db1.txt
+ map/pc.c
+・SP係数と計算処理を修正。
+ db/job_db1.txt
+ map/pc.c
+・スキル名をenumで宣言し、それを使うように変更。
+ map/skill.h
+ map/battle.c
+ map/pc.c
+ map/skill.c
+・リカバリーのスキルIDがスローポイズンになっていたのを修正。
+ map/skill.c
+・集中力向上にカード効果が適用されていた問題の修正。
+ map/pc.c
+・リムーブトラップ、スプリングトラップ、ポイズンリアクトのターゲットを修正。
+ db/skill_db.txt
+・GMアカウントをjROのclientinfo.xmlから追加。
+ conf/GM_account.txt
+・warning修正。
+ map/party.c
+・キャラセレ認証時にlogin_id2はチェックしないように変更。
+ login/login.c
+・object_def.bat以外全ファイルの改行コードをLFに変更。
+・*.cnfファイルを*.confファイルに名前変更。
+
+--------------
+//0444 by 死神
+
+・GMコマンドや@コマンドにコマンド別に使用レベルを設定できるように変更と@コマンド少し修正。(@whereと@day、@nightの修正と他のキャラに使うコマンドの場合GMレベルが自分以上の場合使えないように修正。)
+ atcommand.h 修正。
+ atcommand.c 修正。
+ clif.c 修正。
+ map/makefile 修正。
+ map.c
+ do_init() 修正。
+ conf/atcommand_athena.cnf 追加。
+・細かい修正。
+ pc.c
+ pc_setghosttimer()、pc_skill() 修正。
+ script.c
+ buildin_skill() 修正。
+・conf_ref.txt 修正。
+・item_db.txt
+ 彼女の想い修正。
+
+--------------
+//0442 by 胡蝶蘭
+
+・増速ポーション実装
+ ・Lvや職業判定は行いません
+
+ (db/)
+ const.txt
+ SC_SpeedPot0,SC_SpeedPot1,SC_SpeedPot2追加
+ item_db.txt
+ 増速ポーションのスクリプト追加
+ (map/)
+ skill.c
+ skill_status_change_start()修正
+ pc.c
+ pc_calcstatus()修正
+
+・PvPシステムの仮実装
+ ・pvpマップでは自動的に、PCのpvpフラグon、順位通知などを行います。
+ ・マップにpvpフラグをつけるサンプルをnpc_pvp.txtとして添付しています。
+ ・pvpの詳しいルールがよくわからなかったので、次のようにしています。
+ ・最初の持ち点は5点、倒すと1点、倒されると-5点。
+ ・0点以下のPCはリザレクションが掛からない
+ ・GMはpvpマップにいても足元にサークルが出現しないようです。
+ (クライアントの仕様?)
+ ・pvpマップで@pvpoff/@pvpすると休憩したり、休憩をやめたりできますが、
+ 使用するべきではありません。
+
+ (conf/)
+ npc_pvp.txt
+ pvpフラグを入れるサンプル。
+ nosaveフラグや受け付けnpcなどを追加するとよいと思われる。
+ (map/)
+ clif.c
+ clif_parse_LoadEndAck()修正
+ npc.c
+ npc_parse_mapflag()修正
+ skill.c
+ skill_castend_nodamage_id()修正
+ pc.c
+ pc_damage()引数修正
+ atcommand.c
+ pc_damage()引数修正に伴う修正
+ battle.c
+
+・その他修正
+ ・@pvpoff/@pvpで順位やサークルの表示をやめた
+ ・@jumptoでスペースの入ったキャラクターも指定できるように
+ ・@kamibコマンド復活(青文字天の声)
+ ・非PVPのときに、対象が敵のスキル使用時、敵味方判定を行うように
+
+ skill.c
+ skill_castend_id()で敵味方判定
+ atcommand.c
+ 各コマンド修正
+
+--------------
+//0440 by 中の人
+
+・本家を再現する方向なら意味はないかもしれませんが
+ pc.c「スクリプトによるスキル所得」を若干変更して
+ カードによるスキル一時習得の際でも1レベル以上を設定できるように致しました。
+
+ 単純に符号を変えてごまかしただけですので
+ 必要にあわせて修正をして下さい。
+
+--------------
+//0439 by hoenny
+・阿修羅覇鳳拳の修正。
+ db/skill_db.txt
+・モンスター情報の修正。
+ map/clif.c
+・見切りの実装。
+ map/pc.c
+
+--------------
+//0438 by Aの人
+・古木の枝が使える場所をNPCスクリプトから制御可能
+ mapflagにnobranchとすればそのマップは古木の枝使用不可になります。
+ map.h
+ enumにMF_NOBRANCH 追加。
+ npc.c
+ npc_parse_mapflag() 修正。
+ pc.c
+ pc_useitem() 修正。
+ソース汚くしてしまったかも・・・.
+勉強不足です
+
+--------------
+//0437 by 波浪
+・item_db.txtの英名を大幅修正。(s付きとそうでない武器の英名がいつの間にやら
+ 同じになっていたのでそれを直すついでに他の部分も修正しました。
+ まったく違う名前になってるものもありますが、こっちの方が正しいと思います。
+・item_purplebox.txtを本家仕様っぽく作成(大体こんな感じかと
+・アルベルタとイズルードNPCを修正
+
+--------------
+//0436 by hoenny
+・morocc 宝石商人の修正
+ conf/npc_shop.txt
+・ハンマーフォールの実装(Alchemist氏ソースを参照ありがとう!)
+ map/skill.c
+以前に文字化けは低のせい!
+次から気を付けます.
+
+--------------
+//0434 by Avethes
+
+・タートルアイランドへ行くNPC修正
+・ユノーNPC修正
+(前回のバグはすみませんでした)
+
+--------------
+//0433 by 死神
+
+・製造バグ修正。
+ 何故かはわからないがskill.cのskill_readdb()が変になっていたので修正。(自分がやった修正ではありませんが...)
+ skill.c
+ skill_readdb() 修正。
+
+--------------
+//0432 by 死神
+
+・0429で一部のアイテムのスキルが出ない問題修正。
+ clif.c
+ clif_parse_UseSkillToId()、clif_parse_UseSkillToPos() 修正。
+・skill.c
+ skill_use_id() 修正。(大した修正ではないです。)
+・item_db.txtの文字化け修正。言語設定が日本語ではない場合保存する時には気をつけましょう。
+・攻撃されたモンスターの反撃が早すぎる問題修正。始めての攻撃がモンスターの攻撃ディレイに関係なく100ms後になっていたので攻撃ディレイに合わせるように変更。(ただ少し反撃が遅いと思われたりもしますが...)
+ mob.c
+ mob_changestate() 修正。
+・鯖に接続する最大人数を決めるように変更。
+ char.c 修正。
+ conf_ref.txt 修正。
+ char_athena.cnf 修正。
+
+--------------
+//0430 by Avethes
+
+・NPC関係。ほとんどテスト。
+本家会話情報が揃えば修正。
+
+--------------
+//0429 by 死神
+
+・ギルドのレベルアップをキャラのレベルアップのように変更。
+ int_guild.c
+ guild_calcinfo() 修正。
+ guild_next_exp() 追加。
+ exp_guild.txt 修正。(レベルが上がらないようにしたいレベルのexpに0を入れればそれ以上にレベルが上がらなくなります。)
+・スクリプトresetstatus、resetskill 追加。
+ pc.c
+ pc_resetskill() 修正。
+ script.c
+ buildin_resetstatus()、buildin_resetskill() 追加。
+・0425の続きで少し修正。
+ clif.c
+ clif_parse_ を少し修正。
+・ショートカットに覚えているスキルレベル以上のスキルが登録されていても覚えているスキルレベルまでのスキルを使うように変更。
+ clif.c
+ clif_parse_UseSkillToId()、clif_parse_UseSkillToPos() 修正。
+・メモの最大数を10個に変更。(あくまでも拡張の為の物です。まだ機能はしません。)
+ mmo.h
+ struct mmo_charstatusのmemo_pointを3から10に変更。
+ char.c
+ mmo_char_tostr() 修正。
+・mob,c
+ mob_once_spawn()、mob_summonslave() 修正。(別に意味がある修正じゃありませんが...)
+・@monster コマンドで座標を指定しない時モンスターが一か所に集中して出るのをキャラの10*10マス以内にランダムで現れるように変更。
+ atcomand.c 修正。
+
+--------------
+//0428 by Avethes
+
+・conf/npc_smilegirl.txt
+ スマイルマスクガールスクリプト。
+ 0427のおかしい部分とか修正。
+ 提供された各都市の座標に配置。(NONAMEさん提供ありがとう!)
+
+--------------
+//0426 by 胡蝶蘭
+
+・アイテムの名前をdata.grfから読み込むようにした
+ itemdb.cのITEMDB_OVERRIDE_NAMEを定義しなければ読み込みません。
+ ITEMDB_OVERRIDE_NAME_VERBOSEはitemdb.txtのデバグ用にどうぞ。
+ 普通は変える必要はないと思うのでbattle_configには入れていません。
+
+ itemdb.c
+ itemdb_read_itemnametable()追加
+ do_init_itemdb()修正
+
+・データベース読み込み部の不安定性の修正(結構致命的だったみたいです)
+ なくても問題ないDB(item_value_db.txtなど)のファイルがない場合に
+ 鯖が落ちたりする現象が発生していた場合はこれで直っているかもしれません.
+
+ skill.c
+ skill_readdb()でNULLポインタチェックを追加
+ itemdb.c
+ item_readdb()を複数に分けた。
+ ランダムアイテムデータベースの読み込み部を1つに纏めた。
+ do_init_itemdb()修正
+
+・細かいバグ修正
+ ・ワープポータルの開くまでの秒数調整
+
+ skill.c
+ skill_unitsetting()修正
+
+・その他修正(by 某M氏)
+ db/job_db1.txt
+ ちょこっと修正
+ db/job_db2.txt
+ 2-2次職の足りないJobボーナスを追加(参考:R.O.M 776)
+ conf/npc_town_kafra.txt
+ オークD前と炭鉱前にカプラ配置(動作未確認)
+ conf/npc_shop3.txt
+ ジューノ販売NPC(拾い物)
+ conf/npc_town_yuno.txt
+ ジューノNPC(拾い物を改良。動作未確認)
+
+--------------
+//0425 by 死神
+
+・0419で書き忘れた物ですがスキルラーニングポーションがSP回復アイテムにも効果があるように変更。
+・今度はバグ修正がメインです。鯖落ちがなりそうな所の修正とテレポートの時死んだまま移動できる問題と0419でアクティブモンスターの先攻問題修正、死んでいるのに他の人には死んだように見えない問題の修正です。少しテストはしましたが本当に治ったかどうかは不明です。報告をお願いします。
+ pc.c
+ pc_attack_timer()、pc_damage()、pc_walk() 修正。
+ map.c
+ map_quit() 修正。
+ mob_db.txt
+ ビッグフットのmodeを修正(アクティブになっていた為)
+ clif.c
+ clif_parse_WalkToXY()、clif_pcoutsight()、clif_pcinsight()、
+ clif_getareachar_pc()、clif_getareachar_mob()、clif_getareachar_pet() 修正。
+ mob.c
+ mob_ai_sub_hard_activesearch()、mob_ai_sub_hard_mastersearch()、
+ mob_walk() 修正。
+ pet.c
+ pet_walk() 修正。
+
+--------------
+//0424 by hoenny
+
+・クリップボーナス SP 10追加
+ db/item_db.txt
+・warp_test_yuno.txtを npc_warp30.txtに含んで, ちょっと修正
+ conf/npc_warp30.txt
+・他のサーバーが落ちても復旧されるように修正
+ /startクリップ
+
+--------------
+//0420 by 紅葉
+
+・EP 3.0でのカード効果変更に解る範囲で対応。
+ ほぼ全ての変更点について、出来る限り修正してあります。
+ ATK修正が正しく適用されているようなので追加してあります。(アンドレCなど)
+
+--------------
+//0419 by 死神
+
+・0414で書き忘れた物ですが MOBのmodeで0x20(32)を復活させました。ボスじゃなくてもmodeに0x20が入っている場合普通のMOBでも死んだふりを破れます。
+(今の所機能はそれだけです。本鯖はAI強化みたいですが...) ただゴーストはボスでも破ることはできません。
+それと取り巻きのAIで取り巻きがターゲットした時主がターゲットしてないと主が取り巻きのターゲットをターゲットする部分をコマントアウトしました。(これが本鯖にあっていると思いましたので...)
+・古い青い箱、古い紫色の箱、古いカード帖で出るアイテムをファイルで設定できるように変更。
+ script.c
+ buildin_getitem() 修正。
+ item_db.txt
+ 古い青い箱、古い紫色の箱、古いカード帖修正。
+ item_bluebox.txt、item_purplebox.txt、item_cardalbum.txt 追加。(使用例程度の物です。どのアイテムが出るようにするかは自分で設定して使ってください。ただクライアントを落とすアイテムは出ないように設定してください。)
+ itemdb.h
+ struct random_item_data 追加。
+ itemdb.c
+ itemdb_searchrandomid()、itemdb_readdb() 修正。
+・mob.c
+ mob_target()、mob_ai_sub_hard() 修正。(問題がありそうな部分だけ修正。)
+・pc.c
+ pc_itemheal()、pc_walktoxy_sub() 修正。
+・ペットの出現をMOBと同じように変更。
+ clif.c
+ clif_spawnpet() 修正。
+ pet.c
+ pet_change_name() 修正。
+・0418を少し修正。(if文の条件を少し修正しただけです。)
+
+--------------
+
+//0418 by hoenny
+・ /mm(/mapmove) /nb /b /bb /resetskill /resetstate GM 命令語使用の制限
+clif_parse_MapMove ,clif_parse_ResetChar ,clif_parse_GMmessage 修正
+ map/clif.c
+
+--------------
+//0417 by れあ
+
+・0412でitem_db.txtがおかしくなっていたのを修正
+
+--------------
+//0416 by 紅葉
+
+・ジュノー周辺のワープ定義と敵の配置。
+ ワープ定義はnpc_warp30.txtとし、追加する形にしてあります。
+ 敵の配置についてもnpc_monster.txtとは統合せず、npc_monster30.txtとしてあります。
+ 問題が無いようであれば統合して下さい。
+・上記定義ファイル追加に従いmap_athena.cnfを変更。
+・@goコマンドへジュノー追加。
+ 要望があったようなので追加しました。
+
+--------------
+//0415 by 中の人
+
+・今は亡き旧ROエミュ鯖開発スレッド Lv02での死神氏の説明に従って
+ モンスター定義データを若干変更させて頂きました。
+ ・過去のnpc_monster.txtから通常マップ上(ルティエ等除く)にいるサンタポリン、アンソニを抽出し
+ 新たに作った「npc_x-masmonster.txt」に移転
+ ・上記の修正にあわせてmap_athena.cnfを修正。
+ map_athenaにコメントアウト状態で「npc: conf/npc_x-masmonster.txt」を追加しました。
+ 必要にあわせてコメントアウトをして下さい。
+
+--------------
+//0414 by 死神
+
+・strcasecmpをstrcmpiに変更。
+・dbや設定ファイルを読む時// をコマントアウトとして認識するように修正。
+・ペットと離れすぎるとペットが早く動くように変更。(キャラの2倍の速度で動きます。)
+・ルートモンスターがアイテムをターゲットした時攻撃を受けても攻撃してこない問題修正。
+・同族モンスターのAIを変更。今まではtraget_idを使うせいでモンスターが攻撃した相手を攻撃する仕組みだったが今度はattacked_idを使う為攻撃してきた相手を攻撃するように変更。
+ただ今の仕様だと同族モンスターを攻撃して逃げる場合攻撃を受けた時その場になかったモンスターはついて来なくなっています。本鯖の仕様にあってるかどうかは不明ですので情報提供をお願いします。(attacked_idはいつもリセットされる為です。対策がいないわけでもないですが本鯖の仕様を知らないので...)
+・メモリーの使用量を減らす為struct mob_dataとstruct npc_dataを変更。(0412で
+map-serverのメモリーの使用量が164???KBytesだったが0414では152???KBytesになりました。ほんの少し減っただけですが増えるよりはましだと思いますので...)
+・ゴーストタイム実装。
+ マップ移動やテレポート、復活した時に敵に狙われない時間を重力ではゴーストタイム呼んでいます。そのゴーストタイムの実装です。
+battle_athena.cnfで時間を設定できます。時間を0にするとゴーストタイムは作動しません。ただこのゴーストタイムは攻撃行動、スキル使用、アイテム使用をするとなくなります。
+ 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 を修正。(db/mob_db.txtは//を入れただけですが...)
+ 修正した所を全て覚えてませんのでファイルだけ知らせます。
+
+--------------
+//0412 by いど
+
+・モンスター定義データ(日本語)の再整理
+ 旧掲示板で指摘のあった事項について大体の範囲で修正
+ snapshot387のバージョンをベースに修正しました。
+ conf/npc_monster.txt
+
+・アイテム名の定義を大幅修正
+ (root)
+ item.list
+ (db/)
+ item_db.txt
+ item_value_db.txt
+
+・マップデータの定義でコメントアウトしていたジュノー関連マップのコメントアウトを解除
+ conf/map_athena.cnf
+
+--------------
+//0411 by 死神
+
+・鯖snapshotです。それとlogin_port、char_port、map_portの設定がなくても
+デフォルトで6900、6121、5121を使うように変更。
+・login.c、char.c、chrif.c、clif.c 少し修正。
+・conf_ref.txt 修正。
+・login_portを6900から他の物に変えた場合はclientinfo.xmlを変える必要があります。
+
+--------------
+//0410 by 死神
+
+GM用右クリックメニュー「(name)使用者強制終了」実装。(テストはしてません。@コマンドはテスト済みですが...)
+0407のEXPに関する修正に問題があるらしいので修正しました。今度はテスト済みです。
+GMのアカウントIDを設定できるように変更とGMをレベル別に分けるように変更。
+(GMのレベルによる@コマンド等に制限をかけるつもりですが今制限がかけている物は@kick、@kickallのみになっています。)
+・pc.c
+ pc_readdb()、pc_gainexp()、pc_nextbaseexp()、pc_nextjobexp()、
+ pc_checkbaselevelup()、pc_checkjoblevelup() 修正。
+ pc_isGM()、pc_read_gm_account() 追加。
+・pc.h
+ pc_isGM() 修正。
+ pc_read_gm_account() 追加。
+・exp.txt
+ レベルが上がらない数値を999999999から0以下に変更。
+ レベルを上げる為に必要なEXPを999999999以上にすることも可能。
+・clif.c
+ clif_GM_kickack()、clif_GM_kick()、clif_parse_GMKick() 追加。
+・clif.h
+ clif_GM_kickack()、clif_GM_kick() 追加。
+・atcomand.c
+ strncmpiをstrcmpiに変更。
+ @kick、@kickall コマンド追加。
+ @kick <キャラ名>
+ 自分以外のキャラの接続を強制終了させる。(自分よりGMレベルが
+ 低いキャラにしか使えない。GMではないキャラのGMレベルは0)
+ @kickall
+ 鯖に接続している全てのキャラの接続を強制終了させる。(自分と
+ GMを含めて) 鯖ダウン用のコマンドです。GMレベルが99じゃないと
+ 使えない。
+・conf/GM_account.txt 追加。
+ GMとして認識するアカウントIDを設定するファイルです。
+・mmo.h
+ DEFAULT_WALK_SPEEDを140から150に変更。(これが本鯖にあってる数値
+ みたいですので...)
+ struct gm_account 追加。
+・client_packet.txt
+ パケット0x00cd 追加。
+・login_portをcnfで読むように変更。(ただ6900からポートを変えるとクライアントが認識できない模様なので無駄なことだったりもしますが...)
+ char.c、login.c、char_athena.cnf、login_athena.cnf 修正。
+・普通のアカウント作成ではGMになれないようにlogin.cを変更。
+・login/makefile、map/makefile 修正。
+
+--------------
+//0408 by 胡蝶蘭
+
+・405の新しい@コマンドを以前のatcommand.cに取り込みました。
+ ・@kamiを修正
+ ・@kill,@recall,@charjob,@revive,@charstats,@charoption,@charsave,
+ @night,@day,@doom,@doommap,@raise,@raisemap,@charbaselvl,@charjlvl
+ を追加&メッセージを日本語に変更&少し修正
+
+ atcommand.c
+ 追加と修正
+
+・一部のスキルの効果実装
+ ・不死身のジークフリード、イドゥンの林檎、幸運のキス、
+ フレイムランチャー、フロストウェポン、ライトニングローダー、
+ サイズミックウェポン
+
+ map.h
+ struct skill_unitにrangeを追加。
+ skill.c
+ 色々修正
+ skill.h
+ enumの修正など
+--------------
+//0407 by 死神
+
+・ペットのバグ修正。(ただ自分で再現できなかったので問題になりそうな所だけ修正しました。)
+・ペットの移動速度をpet_dbに追加。
+ pet.h
+ struct pet_dbにspeed追加。
+ pet.c
+ pet_catch_process2()、read_petdb() 修正。
+ pet_db.txt
+ 移動速度追加。
+ (コマントアウトしているのはジルタスとアリスです。捕獲用の
+ アイテムが存在することとパフォーマンスをすることから考えて
+ 追加される予定の物と考えられます。ただその捕獲用のアイテムが
+ あるとクライアントを落ちますので注意してください。追加しても
+ 台詞はポリンの物ですので... 捕獲用のアイテム以外は適当に入れた
+ 物です。)
+・pc.c、clif.c
+ pc_equipitem() 修正。
+ clif_parse_EquipItem() 修正。
+ pc_equipitem()の未鑑定アイテムのチェックをclif_parse_EquipItem()に
+ 移動しました。(ペットの装備もありますので...)
+・レベルを99以上にあげるように変更と職業別にベースレベルの限界レベルを設定できるように修正。
+ map.h
+ MAX_LEVEL追加。
+ pc.c
+ pc_nextbaseexp(), pc_nextjobexp() 修正。
+ pc_readdb() 修正。
+・exp.txt 修正。職業レベルと同じようにベースレベルもEXPテーブルを3つ作りました。レベルアップを止めたいレベルのexpを999999999にすればそれ以上レベルが上がりません。つまりnovice、1次職業と2次職業のベースレベルの限界を違うように設定できます。そしてベースレベル99以上に上がるようにすることもできます。(exp.txtの修正が必要ですが本鯖と違うように設定したい場合に修正して使ってください。)
+・属性による回復をbattle_athena.cnfで設定できるように変更。
+ attr_fix.txt 修正。
+ battle.h
+ struct Battle_Configにattr_recover 追加。
+ battle.c
+ battle_config_read() 修正。
+ battle_athena.cnf 修正。
+・conf_ref.txt 修正。
+・client_packet.txt 修正。ペットパケット追加と少し修正。
+
+--------------
+//0402 by 胡蝶蘭
+
+・400のバグを一部修正
+ ・掛かってないスキル効果によるステータス計算が行われてしまうバグ修正
+ ・効果修正:あくまで効果の計算の修正で、使えないスキルは使えません。
+ スピアクィッケン、プロヴィデンス、戦太鼓の響き、
+ 夕陽のアサシンクロス、口笛、不死身のジークフリード、
+ イドゥンの林檎、サービスフォーユー、幸運のキス
+ ・効果追加:あくまで効果の計算の追加で、使えないスキルは使えません。
+ ハミング、私を忘れないで…、ニーベルングの指輪(武器レベル無視)、
+ エターナルカオス、ドラゴノロジー
+ ・効果付加系はちょっとでも怪しいスキルは全て使用できないように修正
+ ・攻撃系スキルはほとんど見てないのでたぶんバグ多いです。
+ ・全て未テストです。怪しすぎる部分を修正しただけです。
+
+ map.h
+ MAX_STATUSCHANGEを128に修正
+ pc.c
+ pc_calcstatus()修正
+ skill.c/skill.h
+ enumを修正
+ skill_status_change_start()修正
+ battle.c
+ battle_calc_weapon_attack()など修正
+
+--------------
+//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
+
+* 適当な和訳 *
+2-2次職スキルを追加しました
+全ての修練スキル、スピアクイッケン、プロヴィデンス、
+夕陽のアサシンクロス(未テスト)、寒いジョーク、イドゥンの林檎、
+サービスフォーユー、メテオストライク(少し違う)、
+ミュージカルストライク、矢撃ち、フロストウェポン(属性が問題あり?)
+フレームランチャー(〃)、サイズミックウェポン(〃)、ライトニングローダー(〃)
+息吹、ポーションピッチャー
+完全には働かないスキル:
+猛龍拳、漣環全身掌、三段掌
+(skills in skill.c) (完了される必要がある)
+ケミカルアーマーチャージ、ケミカルヘルムチャージ、
+ケミカルシールドチャージ、ケミカルウェポンチャージ、
+ストリップヘルム、ストリップウェポン
+ストリップシールド、ストリップアーマー
+
+*注意 !! CAUTION !! by 胡蝶蘭*
+この400にはバグが大量に含まれています。注意してください。
+there are many many BUGS in this update(400) !! Be careful !!
+
+--------------
+//0399 by 胡蝶蘭
+
+・MOBスキル使用条件や行動を修正
+ ・無行動MOBが待機時のスキルを使用できない問題を修正
+ ・条件スキル反応(skillused)がどのスキルにも反応していたバグ修正
+ ・非移動MOBが追撃してくる問題を修正
+
+ mob.c
+ mob_ai_sub_hard()修正
+ mobskill_event()修正
+ mobskill_use()修正
+ skill.c
+ skill_attack()修正
+
+・MOBスキル一部実装
+ ・自決(エフェクト無し?)、自爆、タバコを吸う、範囲攻撃
+ HP吸収2つ(通常/魔法)(回復エフェクト無し?)実装
+
+ (db)
+ skill_db.txt
+ スモーキングなどを修正
+ (map/)
+ skill.c
+ skill_castend_damage_id(),skill_castend_nodamage_id()修正
+ battle.c
+ battle_calc_misc_damage()修正
+
+・未鑑定アイテムが装備できなくなりました
+・未鑑定アイテムにカードがさせなくなりました
+
+ pc.c
+ pc_equipitem(),pc_insert_card()修正
+ clif.c
+ clif_use_card()修正
+
+・battle_athena.cnfにMOBの配置割合を定義できるようになりました
+ ・配置数が1のMOBについては適用されません
+ ・計算後の配置数が1未満の場合1に修正されます。
+
+ (conf/)
+ battle_athena.cnf
+ mob_count_rate追加
+ (doc/)
+ conf_ref.txt
+ 修正
+ (map/)
+ battle.c/battle.h
+ struct BattleConfig に mob_count_rate メンバ追加
+ npc.c
+ npc_parse_mob()の修正
+
+・ボーリングバッシュが相手が1匹でもとりあえず当たるようになった。
+
+ skill.c
+ skill_castend_damage_id()修正
+
+・学生帽作成イベントの修正
+
+ (conf/)
+ npc_event_making.txt
+ アロエベラ(606)をアロエ(704)に。
+
+・パケット情報修正
+
+ (doc/)
+ client_packet.txt
+ 0199パケット修正
+
+--------------
+//0397 by いど
+
+・モンスター定義データ(日本語)の整理
+ ・npc_monster25.txtをnpc_monster.txtにリネームし、内容を整理(現在mob数:13450)
+ ・その軽量版としてnpc_monster_lite.txtを作成(現在mob数:11959)
+ ・上記の修正にあわせてmap_athena.cnfを修正
+
+--------------
+//0395 by 胡蝶蘭
+
+・取り巻きMOBの行動修正
+ ・アンクルなどで移動できない場合主に近づかないように修正
+ ・ロックしていると主に近寄る処理をしないように修正
+ ・主がテレポートすると追いかけるように修正(付近10x10マス程度)
+ ・主のそばにいるときはランダム歩行をしないように修正
+
+ mob.c
+ mob_ai_sub_hard_mastersearch()修正
+ mob_can_move()追加
+ mob_ai_sub_hard()修正
+
+・MOBの行動修正
+ ・スキル使用ディレイ処理がおかしかったのを修正
+ ・詠唱のないスキルはtimerを使わないように修正(死亡時処理対策)
+
+ mob.c
+ mobskill_use(),mobskill_use_id()修正
+
+・MOBエモーションの実装
+ ・エモーションの種類がわからないものは全て「!」になります。
+ 抜けているデータを埋めてくれるとうれしいです。
+
+ (db/)
+ mob_skill_db.txt
+ いくつかのMOBのエモーションの項目の値1に種類を入れた。
+
+ (map/)
+ skill.c
+ skill_castend_nodamage_id()修正
+ clif.c/clif.h
+ clif_emotion()追加
+
+・パケット解析.txtをclient_packet.txtに改名&修正
+
+ (doc/)
+ client_packet.txt
+ エモーションの説明追加
+
+・どうやら取り巻きMOBの種類は古いデータだったっぽいです。
+ しかもMOB召喚では手下召喚と違うMOBを召喚するみたいですね。
+ 詳しい人はmob_skill_db.txtを直してくれると。
+
+--------------
+//0393 by いど
+
+・char鯖でのlogin鯖のポート設定を6900に固定し、変更できないようにした
+ (login側でポート6900固定になっていたのでchar側もそれに合わせました。)
+ char/char.c
+ conf/char_athena.cnf
+ doc/conf_ref.txt
+
+--------------
+//0392 by 胡蝶蘭
+
+・MOBの行動修正
+ ・何故かlast_thinktickが初期化されていない問題修正
+ ・上に関連してPCが近くにいても手抜き処理が行われる問題修正
+ (どうやら初期からのバグだった模様? このバグと、
+ 新しい手抜き処理の仕様がタッグを組んで残像を作っていた模様)
+ ・取り巻きMOB用のAI処理追加(まだ怪しいです)
+ ・MOBのスキルディレイをスキル項目ごとに持つように変更
+ ・スキルディレイが大きな項目ではオーバーフローしていた問題を修正
+
+ map.h
+ struct mob_dataの skilldelayを配列にしてunsigned intに変更
+ mob.h
+ struct mob_skillのcasttime,delayをintに変更
+ mob.c
+ mob_ai_sub_hard_mastersearch()追加
+ 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()など修正
+
+・MOBスキルの手下召喚とモンスター召喚実装
+ ・mob_skill_db.txtの書式変更(最後に値を1つ追加、取り巻きMOBのID)
+ ・取り巻きMOBがわからなかったものはコメント化しています
+ わかる人は入力よろしくお願いします。
+ ・現在は取り巻きは一度倒したら沸きなおしません。
+ ・ボスがテレポートしても取り巻きは追いかけません。
+ ・本鯖でどうなってるのか知らないので、間違ってる場合は教えてください。
+
+ (db/)
+ mob_skill_db.txt
+ 手下召喚などのデータ修正
+
+ (map/)
+ skill.c
+ skill_castend_nodamage_id()修正
+
+--------------
+//0391 by 死神
+
+・ペットの移動中にパフォーマンスをするとペットが停止するように変更。
+ (ペットの位置がずれるため修正しました。)
+ pet.c
+ pet_performance() 修正。
+・死んだモンスターはどんな行動もとれないように変更。(これで無敵
+ モンスターがいなくなるといいですが...)
+ mob.c
+ mob_changestate(),mob_delete(),mob_catch_delete(),mob_damage(),
+ mob_ai_sub_hard(),mob_ai_sub_lazy() 修正。
+・PC、NPC、床アイテムが使うIDの範囲を調整。
+ 床アイテムは0から500000まででPCは500000から100000000、NPC
+ (モンスターを含めて)は110000000から約21億までになります。
+ (-を含めるともっと範囲が広くなりますがさすがにそこまでは必要ないと
+ 思いますので...)
+ map.h
+ MAX_FLOORITEM 追加(これを変えると床アイテムの最大数を変える
+ ことができます。今は100000になっています。ただこれは必ず
+ 500000以下にしてください。そうしないと正しく動くかどうか
+ 保証できません。)
+ map.c
+ map.hに合わせて少し修正。
+ npc.h
+ START_NPC_NUM 追加。
+ npc.c
+ npc.hに合わせて少し修正。
+ login.h
+ START_ACCOUNT_NUMとEND_ACCOUNT_NUM 追加。
+ login.c
+ login.hに合わせて修正。END_ACCOUNT_NUM以上にaccountを
+ 作れないように変更。
+・カートレボリューションに武器研究を2回適用するように変更。
+ (結局は元に戻すことになりました...^^;)
+ battle.c
+ Damage battle_calc_weapon_attack() 修正。
+・mobのスキル使用をbattle_athena.cnfで決めるように変更。
+ mob.c
+ mobskill_use() 修正。
+ battle.h
+ battle.c
+ struct Battle_Configにmob_skill_use追加。
+ battle_athena.cnf
+ mob_skill_use追加。(設定しないとnoです。)
+・battle_athena.cnf
+ mobを二重で読めないようにnpc: conf/npc_monster.txtを削除。
+ (最新はnpc_monster25.txtなので...)
+
+--------------
+//390 by 胡蝶蘭
+
+・バージョン情報所得部分を少し変更
+ ・MODバージョンを定義できるようになりました。詳細はversion.hを。
+ 気が向いたときか、大きな更新があるときなどに変更してください。
+ ・バージョンcheck時のset eofログが出ないようにパケット7532追加。
+
+ (common/)
+ version.h
+ MODバージョンを定義できるように。
+ (tool/)
+ checkversion
+ MODバージョンを表示するように。
+ (login/char/map)
+ login.c/char.c/clif.c
+ MODバージョンの処理追加、
+ パケット7532(切断)処理追加。
+
+・その他色々修正
+ ・こまごました修正ばかりですが、あまり覚えていません。
+ ・MOBスキル条件でslavelt,attackpcgt処理実装(未テスト)。
+ ・MOBの手下召喚のための機構追加(まだ召喚できません)。
+ ・範囲スキル効果範囲に死亡PCがいると鯖が落ちるバグ修正。
+ ・MOB残像が出なく…なってたらいいな。
+
+ (map/)
+ mob.c/mob.h/map.h/battle.c
+ 色々追加
+
+ (db/)
+ mob_skill_db.txt
+ ルート時処理と、属性変更スキルのコメントを外した。
+ (属性変更は本鯖で動いてないらしいものもコメントを外してます。
+ 問題がある場合は再びコメント化してください)
+
+--------------
+//389 by いど
+
+・388の変更
+ バージョン情報をcommon/version.h内の定数を使用するように変更
+
+--------------
+//388 by 胡蝶蘭
+
+・バージョン情報所得ツール添付
+ Perl製なので実行にはPerlが必要です。
+ 使用方法などはエディタで開いて見てください。
+ 使い方が良くわからない人は手を出さないほうがいいです。
+
+ バージョンを確認する用途よりは、サーバーの生存確認用といったかんじです
+ パケット7530/7531の詳細はソースを見てください。
+
+ (tool/)
+ checkversion
+ バージョン確認ツールPerlスクリプト
+
+ (login/)
+ login.c
+ パケット7530/7531の処理追加
+ (char/)
+ char.c
+ パケット7530/7531の処理追加
+ (map/)
+ clif.c
+ パケット7530/7531の処理追加
+
+・384以前のathena.txtも読み込めるようにしました
+ ・convertが面倒な人向け。
+ ・正しく読み込める保証無し。バックアップを忘れずに。
+
+ (char/)
+ char.c
+ 384の方式で読み込めないデータは384以前の方式も試すように。
+
+・conf_ref.txt/help.txt/getaccount修正
+ help.txt
+ petコマンドの説明追加
+ (doc/)
+ conf_ref.txt
+ pet関連の設定の説明追加
+ (tool/)
+ getlogincount
+ 表示の修正
+
+--------------
+//387 by いど
+・confフォルダ内のNPC定義データの整理
+ 以下のファイルを削除しました
+ npc_kafraJ.txt
+ npc_mind_prtmons.txt
+ npc_script2J.txt(npc_event_mobtim.txtに同じものがあったため)
+ npc_testJ.txt(ほぼ同じことが@コマンドで出来るため)
+ npc_warp25.txt(npc_warp.txtに統合)
+
+ 以下のファイルの名前を変更しました
+ 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
+
+・マップ定義の追加
+ ジュノーアップデートで追加されるマップと、韓鯖独自(?)のクイズゾーン
+ (コモドアップデート)と天津アップデートのマップ定義を追加
+ 現在、日鞍に無いものに関してはコメントアウトしていま。
+ conf/map_athena.cnf
+
+--------------
+//385 by 胡蝶蘭
+
+・MOBの行動修正
+ ・手抜き処理で移動しないモードのMOBも歩く問題修正
+ ・MOBを倒したとき、再spawn時刻がおかしな値になる場合がある問題修正
+ (MOBが沸かなくなる問題が修正されたはず)
+ ・MOBのワープで場所検索に1000回失敗したら元の場所に出るように修正
+ ・MOBを詠唱中に倒すと、タイマーを削除するように修正
+
+ mob.c
+ mob_delete(),mob_catch(),mob_damage(),
+ mob_ai_sub_lazy(),mob_ai_sub_hard()など修正
+ mobskill_deltimer()追加
+
+--------------
+//0384 by 死神
+
+・ペット実装。
+思ったより長くかかりました。一周もかかったせいで何処を修正したか
+覚えてない問題がありますが... それで念の為にmapとcharのファイルは全て
+含めてアップします。
+それとmakefileとathena.shは自分が使ている物です。
+Yare-launcherは使てませんがいつも鯖の実行ファイルで実行していますので...
+ char/char.c、char/char.h、char/inter.c、char/makefile 修正。
+ char/int_pet.c、char/int_pet.h 追加。
+ map/makefile 修正。
+ map/intif.c、map/intif.h、map/map.c、map/map.h、map/mob.c、map/mob.h、
+ map/npc.c、map/npc.h、map/battle.c、map/battle.h、atcomand.c、map/pc.c、
+ map/clif.c、map/clif.h、map/script.c 色々修正。
+ map/pet.c、map/pet.h は殆どを自分の物に書き換えました。
+ common/mmo.h 修正。
+ db/pet_db.txt 修正。
+ db/item_db.txt 修正。(携帯卵孵化機のbpet スクリプトが抜けていたので
+ 入れただけですが...)
+ doc/INTER鯖パケット.txtの名前をinter_server_packet.txtに変更とペットの
+ 保存等に使うパケットを追加。
+* 今度のペット実装によりキャラファイルの構造が変わり以前の物と互換できない
+ ので tool/convert.c を追加しました。
+ 単独でコンパイルできますのでコンパイルしたあと実行してキャラ
+ ファイルを変換してください。そうしないとキャラが全部飛びますので...
+* ペットの親密度が0になるとペットはその場で動けなくなりその状態で他の
+ マップに移動するか終了するとペットは消滅します。一応ペットの逃走を
+ 実装するつもりで作ったのですが本鯖にあってるかどうかはわかりません。
+* 移動速度が遅いペットの場合離れ過ぎるとついて来れなくなります。でも
+ この場合マップを移動してもちゃんとついて来ます。
+ 消滅したりはしません。
+* 移動速度が速いペットはキャラより先に移動します。本鯖の方がどうなのか
+ わからないのでペットの移動はモンスターの移動速度で移動する
+ ようにしました。
+・battle_athena.cnf
+pet_catch_rate 追加。
+ ペットの捕獲倍率を設定します。(設定しないと100)
+ 基本的にペットの捕獲に使ってる公式は
+ (pet_db.txtの捕獲率 + (キャラレベル - モンスターレベル)*0.3 + luk *0.2)
+ * (2 - モンスターの現在HP/モンスターの最大HP)
+ になります。自分なりに作った物ですので本鯖とはかなりの
+ 違いがあるかも知れません。(モンスターのHPを減らせば減らす程捕獲率が
+ 上がる仕組みですが...)
+pet_rename 追加。
+ ペットの名前を変更するかどうかを決めます。(設定しないとno)
+ yesは何度でも名前の変更が可能。
+ noは一度変更するともう変更不可能になる
+pet_hungry_delay_rate 追加。
+ ペットの腹が減る時間の倍率です。(設定しないと100)
+ 倍率が高いと腹が減り難くなります
+mvp_exp_rate 変更。
+ すでにstruct mob_dbのmexpperはゴミになっているので(MVP EXPは
+ MVPアイテムが取れなかった場合入るので意味がありません。)
+ MVP EXPの量の倍率になるように変更。(mob.cを修正)
+・char_athena.cnf
+autosave_time 追加。
+ 自動保存する時間を決めます。(設定しないと300)
+ 單位は秒です。(ファイルに保存する時間の間隔です。)
+・map_athena.cnf
+autosave_time 追加。
+ 自動保存する時間を決めます。(設定しないと60)
+ 單位は秒です。(キャラ鯖にデータを送る時間の間隔です。これは
+ ファイルに保存する時間の間隔じゃありません。)
+・inter_athena.cnf
+pet_txt 追加。
+ ペットのデータを保存するファイルを決めます。(設定しないとpet.txt)
+・@makepet コマンド追加。
+ ペットの実装によって@itemで作った卵は使っても無駄になりますので
+ これを使って卵を作ってください。
+ @makepet <モンスターのID or 卵のID>
+・@petfriendly コマンド追加。
+ @petfriendly <数字>
+ ペットを連れている時にペットの親密度を変更。(0~1000)
+・@pethungry コマンド追加。
+ @pethungry <数字>
+ ペットを連れている時にペットの満腹度を変更。(0~100)
+・@petrename コマンド追加。
+ @petrename
+ ペットを連れている時にペットの名前を変更できるように変更。
+・int_guild.c、int_party.c 読み込むファイルにエラーがあってもプログラムを
+ 終了せずに進むように変更。
+・pc_walk 123 != 1234 等のエラーが出ないように
+ 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);
+ のように変更しました。
+ tickが同じ数値になるのを防いたのですがこれでどんな影響が出るかは
+ さっぱりわかりません。
+ pc.c、mob.cを修正。
+ でもこの修正をしても連続でクリックしたりするとキャラがしばらく
+ 止まるようです。(ペットのせいと思いましたがペットがなくても
+ 同じだったので他の原因かと...)
+* doc/code_ref.txtとhelp.txtは面倒くさいので修正してません。
+・gm_all_skill: yesで2-2のスキルも表示されるように変更。(試いせはいませんが...)
+ pc.c
+ pc_calc_skilltre() 修正。
+・カートレボリューションのダメージ計算を修正。
+ 武器研究を二重計算していたので修正。
+ battle.c
+ Damage battle_calc_weapon_attack() 修正。
+
+--------------
+//381 by 胡蝶蘭
+
+・MOBの行動修正
+ ・PCのいないマップのMOBは時々ワープするようになりました
+ ・PCのいるマップのMOBは歩く以外に、時々沸き直すようになりました
+ (これまたパフォーマンスに影響があるかもしれません:少し重くなるかも)
+ ・手抜き処理でブロックの有効判定を行うようにしました
+ (HP無限MOB問題修正?)
+ ・ルート時スキル使用機構実装
+
+ mob.c/mob.h
+ mob_ai_sub_lazy(),mob_ai_sub_hard()修正
+ MSS_LOOT追加,mob_readskilldb()修正
+
+・MOBスキルの属性変更を実装しました。
+
+ map.h
+ struct mob_dataに def_eleメンバ追加
+ mob.c
+ mob_spawn()でdef_eleをセットするように変更
+ battle.c
+ battle_get_element()でdef_eleを読むように変更
+ skill.c
+ skill_castend_nodamage_id()修正
+
+・クァグマイアの効果範囲から出ると効果が切れるようになりました
+
+ skill.c
+ ユニット系処理修正
+
+--------------
+//380 by Aの人
+
+・カートレヴォリューションのダメージ計算実装
+ battle.cを変更。
+
+CHRISさん、ありがとう御座います。
+ノックバック実装できなくて、困ってました(><;
+
+--------------
+//379 by CHRIS
+
+・カートレヴォリューションの実装
+ skill.cとbattle.cを変更。
+
+・マグナムブレイクにノックバックを追加。
+ battle.cを変更。
+
+(ソースを弄ったのは初めてなので、有ってるかどうか分かりませんが、自分では出来ました。)
+(プログラム関係の書籍を買って勉強して初めて弄ったのです・・・。ガンバリマス!。)
+
+--------------
+//377 by 胡蝶蘭
+
+・MOBの行動修正
+ ・近くにPCのいないMOBが時々ワープする仕様を止めました。
+ ・PCのいないマップのMOBは全く動かなくなりました。
+ ・PCのいるマップで、近くにPCのいないMOBは時々歩くようになりました。
+ ・その他細かいところ修正
+ (パフォーマンスに影響があるかもしれません:少し重くなるかも)
+
+ mob.c
+ mob_randomwalk()追加
+ mob_ai_sub_lazy(),mob_ai_sub_hard()修正など
+
+・スキル修正
+ ・MOBがテレポートできるようになりました
+
+ mob.c
+ mob_warp()追加
+ skill.c
+ skill_castend_nodamage_id()修正
+
+・ステータス異常の一部を実装/修正
+ ・PC/MOBともに速度減少の効果が現れるように(AGIの表示は変わらず)
+ ・PCのエンジェラス、インポシティオマヌス、速度上昇の効果を修正
+ ・MOBの2HQ、アドレナリンラッシュ、エンジェラス、インポシティオマヌス、
+ 速度上昇/減少、グロリア、ブレッシングなどの効果実装
+ ・睡眠、凍結、スタンの必中効果実装
+ ・睡眠のクリティカル倍効果実装
+ ・暗黒の命中率、回避率減少効果実装
+ ・呪いのATK減少効果、LUK減少効果実装
+
+ battle.c
+ battle_get_*()修正
+ battle_calc_weapon_damage()修正
+ mob.c
+ mob_get_speed(),mob_get_adelay()追加
+ pc.c
+ pc_calcstatus()修正
+
+・item_value_db.txtでアイテムの価格を設定できるようになりました
+ ・価格データをオーバーライドできるようにしました。
+ ・これでitem_db2.txtを用意する必要がありません。
+
+ (db/)
+ item_value_db2.txt
+ item_db2.txtの価格データ。
+ item_value_db.txtにリネームすると読み込みます。
+ (map/)
+ itemdb.c
+ itemdb_readdb()修正
+
+・古木の枝を使うとMOBの名前が 0 になる問題の修正
+
+ (db/)
+ item_db.txt
+ 古木の枝のデータ修正
+
+--------------
+//375 by 胡蝶蘭
+
+・MOB専用スキルの効果をいくつか実装
+ 多段攻撃、毒などの追加効果付与攻撃、属性付き攻撃、魔法打撃攻撃
+ 必中攻撃、防御無視攻撃、ランダムATK攻撃など。
+ ただし、**全くテストしてません**。
+
+ (db/)
+ skill_db.txt
+ MOB用スキルのデータを修正
+ mob_skill_db.txt
+ 少し追加
+ (map/)
+ skill.c
+ skill_castend_damage_id()修正
+ skill_status_change_start()修正
+ skill_additional_effect()修正
+ battle.c
+ battle_calc_weapon_attack()修正
+
+・スキルを少し修正
+ ・ウォーターボールで敵が死んでいても撃つモーションをする問題修正
+
+ skill.c
+ skill_status_change_timer()修正
+
+・MOBデータが変なので某Wのデータベースを流用してみる
+ ・データの並び順とか全く同じなんですね
+
+ (db/)
+ mob_db.txt
+ 某Wのmob_db.txt
+
+・各種confのリファレンスを添付
+ あくまでリファレンスなので、HowToなんかは書いてません。
+
+ (doc/)
+ conf_ref.txt
+ confのリファレンス+α
+
+
+--------------
+//373 by 胡蝶蘭
+
+・MOBスキル使用機構仮実装
+ ・スキル使用時の処理はプレイヤーと共用(skill.c)です。
+ ・不都合が多いと思うので報告お願いします。
+ ・mob_skill_db.txtを埋めてくれる人も募集。
+ このデータは「ラグナロクのたまご」を参考にしています。
+
+ (db/)
+ mob_skill_db.txt
+ MOBスキルデータベース(未完成)
+ テスト用のデータしか入ってません。
+ (map/)
+ mob.c/mob.h
+ mobskill_*追加、その他多数修正
+ map.h
+ struct mob_data に skill* 追加
+ skill.c/skill.h
+ skill_castcancel()やスキルユニット処理をMOBに対応させた
+ battle.c
+ battle_calc_damage()など修正
+
+・ギルドのスキルが触れない問題修正
+ ・いつのまにかpc_skillupが古いものに変わっていたので修正
+
+ pc.c
+ pc_skillup(),pc_checkskill()修正
+
+--------------
+//368 by 胡蝶蘭
+
+・MOB系の修正など
+ ・MOBが策敵範囲内のPC/アイテムを等確率でロックするようになりました
+ (アクティブ、ルート:いままでは該当ブロックのリンクリストの順などに
+ 依存していた)
+ ・射程範囲内かつ、到達不可能地帯のPCをMOBがロックすると、
+ MOBが停止したり、その場で暴れだしたりする問題の修正
+ ・MOBロック中にIWなどで到達不可能になった場合、ロックを解除するように。
+ ・AEGIS方式で敵の移動を計算して移動不可能なら、Athena式で計算するように
+ ・ロックが解除されるときに数秒その場で停止するようにした
+ ・歩行が遅いMOBがとまらない/次の歩行開始が早すぎる問題を修正しました
+ ・ルート関連処理を少し修正
+
+ mob.c
+ mob_ai_sub_hard*()修正
+ mob_can_reach()追加
+
+・スキル使用時にターゲットブロックの有効性判定を行うように修正
+・ルアフのダメージが武器計算になっているのバグを魔法計算に修正
+
+ skill.c
+ skill_castend_id()修正
+ skill_status_change_timer_sub()修正
+
+
+----------
+//364 by いど
+・以下のパケットの説明を変更
+ doc/パケット解析.txt
+ R 006a <error No>.B
+ R 0081 <type>.B
+
+・363でビルド時にwarningが出る不具合を修正
+ map/guild.h
+
+--------------
+//363 by 胡蝶蘭
+
+・ギルドの修正
+ ・ログインしていないPCを追放するとマップ鯖が落ちるバグ修正
+ ・メンバー追加直後に追加されたPCがギルド表示に追加されない問題修正
+ ・同じギルドに同垢別キャラが要るPCが脱退する/追放されると別キャラが
+ 脱退してしまう場合があるバグ修正
+ ・メンバーがいるのに解散しようとするとマップ鯖が落ちるバグ修正
+
+ (char/)
+ int_guild.c
+ guild_calcinfo(),mapif_parse_GuildAddMember()修正
+ (map/)
+ guild.c
+ guild_member_leaved(),guild_member_added()
+ guild_recv_info(),guild_break()修正
+
+--------------
+//362 by 胡蝶蘭
+
+・ギルド解散実装
+
+ (char/)
+ int_guild.c
+ 解散処理を追加
+ (map/)
+ guild.c/guild.h
+ guild_break(),guild_broken(),guild_broken_sub()など追加
+ clif.c/clif.h
+ clif_guild_broken(),clif_parse_GuildBreak()追加
+ intif.c/intif.h
+ intif_parse_GuildBroken()追加
+
+--------------
+//361 by いど
+
+・360での@healの変更間違いを訂正
+ map/atcommand.c
+
+--------------
+//360 by いど
+
+・353の修正を削除
+・@healで変更後の値がマイナスにならないように修正
+
+--------------
+//359 by いど
+
+・class_equip_db.txtの文字化け修正
+
+--------------
+//358 by 胡蝶蘭
+
+・ログイン時のdelete_timerのエラーを出ないようにした
+ pc.c
+ pc_authok()の修正
+
+・ギルド関係の修正
+ ・メンバ勧誘時に最大人数の確認を行うように
+ ・データ通知処理をいくつか修正
+
+ (char/)
+ int_guild.c
+ 色々修正
+ (map/)
+ clif.c/clif.h
+ clif_guild_inviting_refused()をclif_guild_inviteack()に改名
+ guild.c/intif.c
+ 色々修正
+
+・@guildlvupコマンド作成。ギルドレベルが調整できます。
+
+ (char/)
+ int_guild.c
+ 色々修正
+ (map/)
+ atcommand.c
+ @guildlvup処理追加
+
+・Makefikeのclean部分を修正
+
+ (char/ map/ login/)
+ Makefile
+ ・削除する実行ファイルのパスを ../athena/ から ../ に修正
+
+--------------
+//357 by 胡蝶蘭
+
+・pc.cの文字化け修正
+ 文字化けしたファイルをアップするのも、それを改造するのも禁止しませんか?
+ 直すの面倒くさすぎます。
+
+ pc.c
+ 文字化けの修正
+
+・パーティやギルドに勧誘された状態でマップ移動やログアウトすると、
+ 勧誘を拒否するように修正
+
+ pc.c
+ pc_setpos()修正
+ map.c
+ map_quit()修正
+
+・I-Athena自動復旧システム(B-NSJ氏作)をAthena用に改造して添付しました
+ プログラムの性質上./toolフォルダではなく./にあります。
+ athena.shの変わりにstartで起動するとmap鯖が落ちても10秒程度で復旧します
+ プロセスは「map」で調べてますが他のプロセスに反応するときは
+ 「map-server」などに変えてみてください。
+
+ start
+ map鯖自動復旧システムのシェルスクリプト
+
+
+--------------
+//0356 by 死神
+
+・athena.shを使わなくてもYare-launcherを使えるように変更。(自分試してましたが
+一応動きました。でも窓の場合login-server.exeがlogin-server.exに登録されてしまい
+Yare-launcherがlogin-server.exe続けて実行する問題があります。これはathenaの
+問題ではありませんが...)
+ comm/makefile以外のmakefile全てを修正。
+ athena.sh修正。
+ 実行ファイルは.,/athena フォルダーじゃなく./ フォルダーに作られます。
+・ 新規accountの許容するかどうかをlogin_athena.cnfで決めるように変更。(これは
+ YareCVSを参考した物です。)
+ login.c
+ int mmo_auth() 修正。
+ login_athena.cnf
+ new_account 追加。
+・char.c、login.c、inter.c、map.c、battle.cで一部のstrcmpをstrcmpiに変更。
+
+--------------
+//355 by ゆう
+
+・左手装備も考慮した二刀流に修正
+ (ダメージ計算のみで見た目等は変更なし)
+
+map.h
+ map_session_dataに左手用の変数を追加
+
+battle.h
+ battle_get_attack_element2()追加
+
+battle.c
+ battle_get_attack_element2()追加
+ battle_calc_weapon_attack()に
+ 二刀流の処理を追加修正
+ クリティカルよりダブルアタックを先に判定するように修正
+ 過剰精錬の追加ダメージを精錬ダメージの次に処理するように修正
+ (これらは独自に調べたもので間違っている可能性あり)
+
+pc.c
+ pc_calcstatus()に左手用の変数に値を入れる処理を追加
+ pc_equipitem()の二刀流装備の場所がおかしかったのを修正
+
+--------------
+//353 by いど
+
+・Yare-launcherを使うことが出来るようにMakefileとathena.shを変更
+
+--------------
+//352 by 胡蝶蘭
+
+・詠唱中にクライアントを終了するとmap鯖が落ちる問題の修正
+ skill.c
+ skill_castend_id(),skill_castend_pos(),skill_castend_map()修正
+ map.c
+ map_quit()修正
+
+
+・データバックアップ用のツール添付
+ Perl製なので実行にはPerlが必要です。
+ 使用方法などはエディタで開いて見てください。
+ 使い方が良くわからない人は手を出さないほうがいいです。
+ データが消えても責任は持ちません
+
+ (tool/)
+ backup
+ データバックアップ用Perlスクリプト
+
+--------------
+//0351 by 死神
+skill.c
+ skill_use_id()に詠唱反応モンスターの処理を変更。(攻撃状態以外の場合
+ 詠唱反応を最優先にします。)
+mob.c
+ mob_ai_sub_hard_castsearch() 詠唱反応モンスターを二重処理して
+ いたので削除。
+ mob_ai_sub_hard() 詠唱反応モンスターを二重処理しないように変更。
+pet.c - 0344に戻しました。(修正は少し分析をしてからにします。)
+pet.h - 0344に戻しました。
+char.h
+ CHAR_CONF_NAME 追加。
+char.c
+ do_init() 実行する時ファイル名が入力されていないとCHAR_CONF_NAMEを
+ 使うように変更。
+map.h
+ MAP_CONF_NAME 追加。
+map.c
+ do_init() 実行する時ファイル名が入力されていないとMAP_CONF_NAMEを
+ 使うように変更。
+これでlogin.exe、char.exe、map.exeをathenaフォルダーにコピーした後名前を
+login-server.exe、char-server.exe、map-server.exeに変更するとYare-launcherを使う
+ことができます。これを使うと鯖が落ちる度に自動的に再実行してくれます。
+
+--------------
+//0345 by 死神
+・キャスティング探知実装。
+ mob.c
+ mob_ai_sub_hard_lootsearch() 修正。
+ mob_ai_sub_hard() 修正。
+ mob_ai_sub_hard_castsearch() 追加。
+ mob_target(), mob_ai_sub_hard_activesearch() ボスモンスターを
+ mvp経験値によって認識するように変更。
+ mob_ai_sub_hard_linksearch() 修正。
+ mob_attack() 死んだふり、ハイディングをチェックするように変更。
+ mob_readdb() 修正。
+・pet.h
+ MAX_PET_DBを100に変更。
+・pet.c
+ read_petdb() 修正。
+
+--------------
+//0344 by 過去の人i1
+・ ペット腹減り実装およびそのほか色々修正
+・ ペット餌やり実装
+
+ pet.c
+ pet_calcrate(struct map_session_data *sd);
+ ペットの獲得確率計算
+ pet_food(struct map_session_data *sd);
+ ペット餌やりシステム
+ pet_hungry_change( int tid, unsigned int tick, int id,int data );
+ ペットが腹を減るロジック
+ pet_status_int(struct map_session_data *sd);
+ 親密度計算
+ pet_status_hungry(struct map_session_data *sd);
+ 満腹度計算
+ pet_status_1a3(struct map_session_data *sd);
+ パケット1a3設定関数
+ pet_initstate(struct map_session_data *sd);
+ ペットが初めて生まれたときの初期ステータス設定
+ 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);
+ を追加
+ clif.c
+ clif_pet_emotion(int fd,struct map_session_data *sd)
+ 餌をあげたときにエモーションを行う
+ clif.h
+ clif_pet_emotion(int fd,struct map_session_data *sd);
+
+--------------
+//0341 by 死神
+・ルートモンスター実装。
+ map.h
+ LOOTITEM_SIZEを20に修正。
+ struct mob_dataにint lootitem_count 追加。
+ mob.c
+ mob_spawn() 少し修正。
+ mob_ai_sub_hard_lootsearch() 追加。
+ mob_ai_sub_hard() 修正。
+ struct delay_item_drop2 追加。
+ mob_delay_item_drop2() 追加。
+ mob_damage() 修正。
+ battle.h
+ struct Battle_Configにint monster_loot_type 追加。
+ battle.c
+ battle_config_read() 修正。
+ battle_athena.cnf
+ monster_loot_type: 0 追加。(基本的に0になっています。
+ 0の場合はLOOTITEM_SIZEまでアイテムを食べても
+ またアイテムを食べて前のアイテムが消える仕様です。
+ 1の場合はLOOTITEM_SIZEまでアイテムを食べると
+ もうアイテムを食べなくなります。
+
+--------------
+//0340 by 死神
+・mvpバグ修正。
+ mob.c
+ mob_damage()でjに変えたはずの物に見落としありましたので
+ 修正しました。これでmvpアイテムで変な物が出なくなるはずです。
+・class_equip_db.txt
+ EUC-JISをS-JISに変更。(意味はありませんが他のファイルは
+ 全部S-JISだったので...単なるミスですが...)
+
+----------
+//339 by いど
+
+・338を適用した状態でビルドエラーが発生する不具合を修正
+
+----------
+//338 by 過去の人i1
+
+・ pet_db.txtに対応しました。
+・ pet_dbをつかったプログラムの書き方に修正しました。
+・ ペットの名前を変更する事が出来ます
+・ ペットにアクセサリーをつける事が出来ます。
+・ 現在ペット餌やり進行中
+
+ (map/)
+ clif.c/clif.h
+ ・ pet関連の関数をほぼ修正及び追加いたしました。
+ ・ clif_parse_EquipItem()内部でペット用装備であるかどうかの判定を行ってます
+ ・ clif_parse()を修正しました。
+
+ battle.h/battle.c
+ ・ battle_config.pet_rate変数を増やしました。mobに対する卵の獲得率
+ を設定する事が可能となります
+
+ pet.c/pet.h
+ ・ pet_initstate(struct map_session_data *sd);
+ 初期のペットステータスを設定する関数です
+ ・ pet_npcid(struct map_session_data *sd,int egg_name_id);
+ ペットに割り当てられたnpc_idを返します
+ ・ pet_itemid(struct map_session_data *sd,int mob_id);
+ モンスターIDから卵のIDを割り出します
+ ・ pet_equip(struct map_session_data *sd,int equip_id);
+ ペットのアクセサリー装備です
+ ・ pet_unequip(struct map_session_data *sd);
+ ペットのアクセサリー解除です
+ ・ pet_calcrate(struct map_session_data *sd);
+ 卵獲得確率計算を行い1or0を返します。
+ ・ pet_food(struct map_session_data *sd);
+ ペット餌やり考案です。まだ正常に動作しません。
+ ・ read_petdb()
+ pet_db.txtを読み込みpet_db[]に値を入れる関数です
+
+ ・ do_init_pet()
+ map鯖初期化でよびだしpet_db[]を使えるようにする為の
+ ペット情報初期化関数です。
+
+ map.c/map.h
+ ・ BL_PET変数を加えました
+ ・ map鯖初期化の時にdo_init_pet()を呼び出します。
+
+ mmo.h
+ ・ s_pet構造体に変数追加。キャラクターがペットのデータを保持する為のシステム
+ の為今後も変数はそのつど増加する予定
+
+ npc.c
+ 改善しました。
+
+ (conf/)
+ battle_athena.cnfに卵の獲得確率pet_rateを加えました。
+
+----------
+//337 by 胡蝶蘭
+
+・ギルドの追加と修正
+ ・ギルドに経験値を上納すると、上納されるEXPが異常な値になるバグ修正
+ ・ギルドの敵対関係の追加
+
+ guild.c/guild.h
+ guild_payexp()の修正(上納EXP処理)
+ guild_opposition()追加
+ guild_allianceack(),guild_reqalliance(),
+ guild_reply_reqalliance()の修正
+ clif.c/clif.h
+ clif_guild_oppositionack(),clif_parse_GuildOpposition追加
+
+・ディレイ時間がdexの影響を受けるかどうかをbattle_athena.cnfに書けるように
+
+ (conf/)
+ battle_athena.conf
+ delay_dependon_dex を追加
+ (map/)
+ skill.c
+ skill_delay_fix()の修正
+ battle.c/battle.h
+ struct Battle_Configにdelay_dependon_dex追加
+ battle_config_read()の修正(読み込み処理も変えてます)
+
+--------------
+//0336 by 死神
+・スキルインデュアを少し修正。
+・clif.c
+ clif_skill_damage()、clif_skill_damage2() インデュア合わせて修正。
+ (ただスキルや魔法になるとモーションが出ないパケットを
+ 見つけなかったので完全じゃありません。)
+ clif_parse_ActionRequest()、clif_parse_UseSkillToId()、clif_parse_UseSkillToPos()
+ スキルディレイの時にメッセージが出るように修正。
+・バックステップ実装、オリデオコン研究実装。
+・skill.c
+ skill_castend_damage_id()にあったスキルバックステップの処理を
+ skill_castend_nodamage_id()に移動しました。
+ スキルバックステップの処理でclif_skill_damage2()を呼ぶのをclif_fixpos()を
+ 呼ぶように変更。(これでダメージのモーションが出ずに
+ 移動できます。)
+ バックステップと叫ぶように変更。
+ skill_produce_mix() オリデオコン研究適用。武器レベルが3以上の時に
+ スキルレベル*1%がボーナスとして製造確率に付きます。
+ エルニウムの確率判定追加。
+・skill_db.txt - バックステップのnkを0から1に変更。(スキル番号150の物です。)
+・produce_db.txt オリデオコン,エルニウムを追加。(これは本鯖にはない物です。
+ よってクライアントには必要なアイテムが表示されません。)
+ オリデオコン研究を少し使える物にするために追加しました。
+ オリデオコンの場合はオリデオコン原石3つと石炭1つが必要で
+ エルニウムはエルニウム原石3つと石炭1つが必要です。
+・pc.c 少し修正。
+ pc_heal()pc_percentheal() 少しだけ修正。
+ pc_gainexp() ギルドにexpを上納する時にexpがマイナスにならないように
+ 修正。同時に2つ以上のレベルが上がるように変更。
+ 最大レベル以上にレベルが上がらないように修正。
+ pc_checkbaselevelup()、pc_checkjoblevelup() 追加。レベルアップを
+ チェックします。
+ pc_itemheal() 追加。アイテムを使う時にVITとスキルによってボーナスが
+ 付く物です。スキルラーニングポーション実装。
+・pc.h
+ pc_checkbaselevelup(),pc_checkjoblevelup() 追加。
+ pc_itemheal() 追加。
+・script.c - スクリプトfixhealを除去。itemhealを追加。healがfixhealの機能をする
+ ように変更。
+ buildin_fixheal() を消しbuildin_heal()を元の物に戻しました。(つまり
+ buildin_heal()がbuildin_fixheal()になりました。)
+ buildin_itemheal() 追加。アイテムによる回復はこれを呼ぶようにして
+ ください。
+ buildin_heal()からボーナスの計算を除去。
+・item_db.txt、 item_db2.txt - healをitemhealに変更。
+・mob.c
+ mob_damage() 0335でmvpに少し間違いがありましたので修正しました。
+・skill.h
+ MAX_SKILL_PRODUCE_DBを64から100に変更。
+
+
+//0335 by 死神
+・char/char2.cの一部にRETCODEが適用されてなかったのでそれを修正。
+・char/char2.cのparse_char()でキャラを消す時に問題がありそうな所を修正。
+・char/cha2.c,login/ login2.cをchar/cha.c, login/login.cに変更。
+・char/makefile,login/makefileを変更。
+・makefileとcommon/mmo.hを変更してOSを自動認識してRETCODEを自動に
+ 適用するように変更。
+・common/grfio.cのgrfio_init()を修正。(コードをちょっときれい(?)に
+ しただけですが,,,)
+・インデュア実装。よってアンティペインメントも実装。
+・map/clif.c
+ clif_parse_LoadEndAck() 韓国クライアントのパッチに合わせて少し変更。
+ (マップが変わる度に武器とシールドが見えなくなるためです。まだ
+ 日本クラとは関係ありませんが...)
+ clif_skillinfoblock() upはいらないと思うので消しました。スキルポイントが
+ 256、512等の時スキルツリーが正しく表示されないことは
+ もうありません。
+ clif_guild_skillinfo() 同じようにupを消しました。
+ clif_birthpet() pc_delitem() 呼ぶように変更。
+ clif_damage() インデュアに対応するように変更。
+・map/pc.c
+ pc_percentheal() マイナスを入れても動くように変更。少し修正。
+ pc_heal() 少し修正。
+ natual_heal() 少し修正。
+ do_init_pc() natual_healの修正に合わせて変更。
+ pc_calcstatus() 弓を装備してないとワシの目が適用されないように変更。
+ トラスト実装。
+ pc_damage() インデュアに対応するように変更。
+・map/pc.h
+ pc_checkoverhp(), pc_checkoversp()を追加。
+・map/map.h
+ MAX_PC_CLASSを+1に。
+・map/atcomand.c
+ comandをcommandに変更。
+ strncmpをstrcmpiに変更。よってコマンドが大文字、小文字を区別する
+ 必要がなくなりました。
+・map/npc.h
+ npc_parse_mob()を追加。(意味はありませんが...)
+・map/temdb.c
+ itemdb_readdb()でclass_equip_db.txtを読むように変更。
+・db/class_equip_db.txt を追加。ここで装備するクラスを指定します。ない場合は
+ item_db.txtにあるjobを使います。含まれてる物は完全な物ではなく
+ 使用例程の物です。
+・map/skill.c - skill_status_change_start() インデュアの時間を正しく変更。
+・map/battle.h
+ battle_configのexp_rateをbase_exp_rateに変更。,job_exp_rateを追加。
+ battle_get_mexp()を追加。
+・map/battle.c
+ battle_configのexp_rateをbase_exp_rateに変更。,job_exp_rateを追加。
+ battle_get_mexp()を追加。
+ battle_calc_magic_attack()を変更。ダーンアンデッドでボスの認識をmvp
+ expでするように変更。
+・map/mob.c
+ mob_readdb() base_exp_rate,job_exp_rateに対応。
+ mob_readdb() ボスの認識をmvp経験値でするように変更。
+ mob_damage() mvpを取る時の処理を変更。重さが50%を越えると床に
+ 落ちるように変更と色々。
+・conf/battle_athena.cnf
+ base_exp_rate、,job_exp_rateを追加。
+・0308で忘れた物
+ 古く青い箱、古いカード帖、古い紫色の箱の使用で得られたアイテムを
+ 持ってなくなったらアイテムを床に落とすように変更。
+ 製造はすでに0302で適用。
+
+----------
+//334 by C}{RIS
+
+・あぷろだの332.txtをpet_db.txtとして同梱。
+
+・各種テキストファイルのミスを修正
+ ・attr_fix.txt 属性修正がマイナスに働いて敵が回復する問題を修正。
+ >元の回復仕様に戻したい場合attr_fix.txtをリネームし、attr_fix_old.txtをattr_fix.txtにリネームして下さい。
+ ・mob_db.txt モンスターの日本語名を本鯖と統一。
+ ・cast_db.txt 詠唱時間、ディレイを本鯖と統一。
+
+----------
+//333 by 胡蝶蘭
+
+・ギルド機能追加
+ ・ギルドの同盟と同盟解消
+
+ (char/)
+ inter.c/int_guild.c
+ パケット長/ギルド処理追加
+ (map/)
+ clif.c/clif.h
+ clif_guild_reqalliance,clif_guild_allianceack,
+ clif_guild_delalliance,clif_parse_GuildRequestAlliance,
+ lif_parse_GuildReplyAlliance,clif_parse_GuildDelAlliance追加
+ (ギルド同盟関係のパケット処理)
+ intif.c/intif.h
+ ギルド同盟関係のパケット処理追加
+ guild.c/guild.h
+ ギルド同盟関係の処理追加
+ map.h
+ struct map_session_dataにguild_alliance,guild_alliance_account追加
+
+・ギルドエンブレムの変更がマップ鯖を再起動しないと有効にならないバグ修正
+
+ guild.c/guild.h
+ guild_emblem_changedの修正
+
+----------
+//331 by 過去の人i1
+
+・ペットシステム修正(完成度25%)
+
+ ・各種捕獲用アイテムをそれぞれ対応する敵に対して使用することで
+ 正しく卵が手に入るようになりました。
+ ・各種捕獲用アイテムを対応しない敵に使用した場合はルーレットが必ず失敗します。
+ ・ペットが瞬時に表示されるようになりました。
+ ・ペットを右クリックするとメニューが出るようになりました
+ ・他色々危険な要素を修正しました。(アイテムの数の減少等のバグを直しました)
+
+ (db/)
+ item_db.txt
+ 各種捕獲用アイテムに対応するようpetコマンドを正しく書きました。
+
+ (common/)
+ mmo.h
+ s_pet ペット構造体にpet_item_idを追加
+
+ (map/)
+ clif.c
+ clif_birthpet()を修正。正しく卵が減る、正しい卵のIDを取得するよう修正
+ これによって、正しくnpc_pet関数が動きます。
+
+ clif_spawnnpc()を修正(WBUFPOS(buf,36,nd->bl.x,nd->bl.y)と、数値を26から36へ変更しました)
+ これによってペットが瞬時に表示されるようになりました。
+
+ npc.c
+ npc_pet()を修正。
+
+ pet.c/pet.h
+ ペット関連の細かな関数をこちらにまとめる為、追加しました。
+ 現在はペットの判定関係をまとめてあります。
+
+ script.c
+ 特に大きな修正はありません。
+----------
+//330 by 過去の人i1
+
+・ペットシステム導入(完成度20%)
+ ・敵に対して捕獲用アイテムを使用する事が可能となりました。
+ (まだ熟していないリンゴのみ使用可能、敵につかってもポリンの卵が手に入ります。)
+ ・各種卵に対してペットを表示する事ができます、ただしなぜか一度画面外に
+ でないとペットが表示されません。
+ (恐らくペット表示の際に行っているNPCステータスが正しく入っていない)
+ ・表示されたペットがパフォーマンスを行います。
+
+ (db/)
+ item_db.txt
+ 携帯卵孵化機を使用可能に bpetコマンド(携帯卵孵化機使用)
+ 「まだ熟してないリンゴ」を使用可能に petコマンド(あるmobに対して使用可能にする)
+ (common/)
+ mmo.h
+ s_pet ペット構造体追加
+ mmo_charstatus ペット構造体宣言変数追加(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);
+
+ 以上の関数を追加しペットに関する処理を行っております。
+ (ルーレット、卵選択窓、パフォーマンス、そのほか色々)
+
+ npc.c/npc.h
+ int npc_pet(struct map_session_data *sd,int name_id);
+ ペット表示の為の関数を追加
+ (この関数内部でペットの表示処理を行っています。適切に修正してください)
+
+ script.c
+ int buildin_catchpet(struct script_state *st);
+ int buildin_birthpet(struct script_state *st);
+ を追加しました。スクリプトにpet,bpetを追加しました。
+----------
+//329 by 胡蝶蘭
+
+・ギルド機能追加
+ ・ギルドへのEXPの上納
+ ・ギルドレベルアップ
+ ・ギルドスキルの割り振り
+
+ (db/)
+ exp_guild.txt
+ ギルドレベルの経験値データベース
+ (common/)
+ mmo.h
+ GBI_*,GMI_*の定義の追加など
+ (char/)
+ int_guild.c
+ EXPやレベルアップ、スキルアップ処理追加など
+ inter.c
+ パケット長追加
+ (map/)
+ guild.c/guild.h
+ ギルド処理追加
+ intif.c/intif.h
+ ギルドパケット処理追加
+ clif.c
+ clif_guild_skillinfo()修正
+ clif_guild_skillup()追加
+ pc.c
+ pc_skillup()でギルドスキルの場合はguild_skillup()を呼ぶように
+ pc_gainexp()で上納EXPのためにguild_payexp()を呼ぶように
+
+・ギルド機能修正
+ ・ギルドメンバーがログインやログアウトすると、
+ ログイン中のギルドメンバーにギルド系パケットが送られなくなる問題修正
+
+ guild.c
+ guild_recv_memberinfoshort()の修正
+
+----------
+//328 by 胡蝶蘭
+
+・ギルド機能の追加など
+ ・追放機能仮実装(追放したキャラも再加入可能&一部情報がダミー)
+ ・スキルの表示(表示だけです。上げたりは出来ません)
+
+ (common/)
+ mmo.h
+ struct guild_explusionの変更
+ (char/)
+ int_guild.c
+ 追放処理追加
+ 空ギルドチェックなど追加
+ (map/)
+ guild.c/guild.h
+ ギルドスキル関係のアクセサなど追加
+ clif.c
+ clif_guild_skillinfo()の修正
+ clif_guild_explusionlist()追加
+
+・ターンアンデッドがボス系アンデッドでMISSになるバグ修正
+ ・ターンアンデッド失敗時のダメージが使われます
+
+ battle.c
+ battle_calc_magic_damage()の修正
+
+----------
+//327 by いど
+・経験値テーブルに1箇所間違いがあったので修正
+ db/exp.txt
+
+----------
+//326 by いど
+・char鯖の新鯖,メンテナンス中のフラグ情報を設定できるようにした
+・char鯖の鯖名の長さが16バイトになっていた部分を20バイトに修正
+
+ (login/)
+ login2.c
+ parse_login()の修正
+ login.h
+ struct mmo_char_serverの修正
+ (char/)
+ char2.c
+ check_connect_login_server(),do_init()の修正
+ (conf/)
+ char_athena.cnf
+ ・char_maintenanceを1にするとログイン人数の後ろに(点検中)がつく
+ ・char_newを1にすると鯖名の前に[新]がつく
+ (doc/)
+ パケット解析.txt
+ ・今回の変更に伴う一部修正
+
+----------
+//325 by Mind Twist(224&0293)
+・敵(NPC)スキルの追加(ツリーに追加のみ)
+ db/skill_db.txt
+ ・ギルドスキル相変わらず不明…この形式じゃないのかな?
+
+----------
+//324 by non
+
+・mobのターゲット後移動を修正
+・mobの移動速度をDBから反映させるように
+
+ (map/)
+ mob.c
+ mob_ai_sub_hard()の修正
+
+・斜め判定を修正
+ ・FW等での斜め範囲を本鯖仕様に
+
+ (map/)
+ map.c
+ map_calc_dir()の修正
+
+----------
+//322 by 胡蝶蘭
+
+・ログイン時に必ずパーティーから除名されるバグ修正
+ ・0318の「パーティを除名されたのに〜」での修正ミス
+
+ (char/)
+ int_party.c
+ パーティー競合時のメッセージに改行追加
+ (map/)
+ party.c
+ party_check_member()の修正
+
+・ギルド会話実装&修正など
+ (char/)
+ int_guild.c
+ ギルド競合時のメッセージに改行追加
+ (map/)
+ guild.c/guild.c
+ guild_send_message(),guild_recv_message()など追加
+ intif.c/intif.h
+ intif_parse_GuildMessage()など追加
+ clif.c/clif.h
+ clif_guild_message(),clif_parse_GuildMessage()など追加
+ clif_guild_basicinfo()のパケットを0150から01b6に変更
+
+・バックステップがものすごく怪しいけど仮実装
+ ・使うとダメージを1喰らったように見えます。(実際はダメージ0です)
+
+ skill.c
+ skill_castend_damage_id()修正
+
+------------------
+//321 by 過去の人i
+・弓矢装備効果のみ実装(多々おかしい点は存在するが装備が出来、矢の効果が出る)
+ map/clif.c map/clif.h
+ clif_itemlist()追加
+ 持ち物の中で弓矢に割り当てるパケット番号を0x8000とする処理追加
+
+ clif_arrowequip(struct map_session_data *sd,int val); //self
+ を追加。この中で弓矢装備パケット処理を行ってます
+ map/pc.c
+ pc_equipitem() 弓矢装備追加
+
+ 残された問題点:
+ ・ 矢が減らない
+ ・ リログすると矢が1になる
+ ・ 装備している矢が表示されない(←多分装備posの設定をしていない為かと)
+ ・ 矢を装備解除できない(他の矢を装備しなおせば装備した矢の効果になります
+
+----------
+//320 by いど
+・以下のパケットのエラーコードの説明を追加
+ doc/パケット解析.txt
+ R 006a <error No>.B
+ R 0070 <error No>.B
+ R 0081 <type>.B
+
+----------
+//319 by mk
+・NPCとの会話中に装備変更、アイテム、スキルを使用できないようにしました
+ map/clif.c
+ 各所でsd->npc_idをチェックしてます
+
+・一部の被り物でも精錬後に装備箇所がおかしくなるバグを修正
+ map/script.c
+ buildin_successrefitem のコードを修正
+
+・カードによる追加効果および異常耐性発動処理の修正
+ map/skill.c
+ インデックス初期値が間違っていると思われるので修正(SC_POISON -> SC_STONE)
+
+・ボウリングバッシュの仮実装、グリムトゥースの使用条件追加
+ ・ボウリングバッシュを仮実装。吹き飛ばし処理やってるので
+ battle.c のblewcountをコメントアウトしました
+ ・グリムトゥースの使用条件(ハイディング&カタール装備)チェック追加
+ こんな感じで他のスキル使用条件も追加してもよいのかな?
+ ・skill_blown の吹き飛ばし方向をターゲットとの位置が重なっているときは
+ ランダムではなくキャラクターを後ろへ吹き飛ばすように変更しました
+ map/skill.c
+ skill_castend_damage_id()変更
+ skill_check_condition()変更
+ skill_blown()変更
+
+・アサシン二刀流処理に関する修正?
+ ・装備一覧へdrag&drop時に両手が赤くマーキングされるように修正
+ アサシンでは武器装備箇所が両手になるようitem_equippointを変更
+ それに伴いpc.cのpc_equipitemを修正
+ ・逆手ダメージを表示してみました
+ まともにダメージ計算やってないので攻撃回数の確認だけです
+ ・カタール追撃と左手攻撃のMISSを無理やり表示
+ (map/)
+ itemdb.c (itemdb.h、clif.c、pc.c)
+ itemdb_equippoint() を変更 (二刀流を考慮)
+ 引数を(int nameid) -> (struct map_session_data *sd,int nameid)に
+ 引数変更に伴い宣言(itemdb.h)と呼び出し側(clif.c ,pc.c)も変更
+ pc.c
+ pc_equipitem(), pc_checkitem()装備チェックを修正
+ battle.c
+ battle_calc_weapon_attack(),battle_weapon_attack()
+ 上にも書きましたが左手のダメージ計算は行ってません
+ (カード、属性等も未適用)右手と同じダメージ入れて左右修練適用してます
+ カタール追撃と左手ダメージをミスさせる方法(パケット?)がわからないので
+ 計算後のダメージが-1の場合、damage=0を送るようにしています
+ もっとよい方法があるのでしたら修正お願いします
+
+・完全回避の計算をLukではなくFlee2で判断するように修正
+ map/battle.c
+ battle_calc_weapon_attack()
+
+ (db)
+ item_db.txt、item_db2.txt
+ 装備品の一部ボーナス効果を追加
+ mob_db.txt
+ 某所でうpされていたものを少し修正
+ まだModeやDropに問題点があるかもしれません
+
+----------
+//0318 by 胡蝶蘭
+
+・ある公平分配PTとそのPTに属さないPCが共闘すると鯖が暴走するバグ修正
+
+ mob.c
+ mob_damage()のEXP分配処理修正
+
+・パーティを除名されたのに所属しているように見えるバグ修正
+ ・該当キャラがログアウト状態の時に除名され、その後、同垢別キャラが
+ 同パーティに所属しなおし、さらに元のキャラでログインすると、
+ 除名判定に失敗してパーティに所属したままであるとされてしまう問題修正
+
+ party.c
+ party_check_member()の修正
+
+
+----------
+//0317 by nabe
+
+・「〜さんから取引を要請されました。」が自分の名前になっていたのを修正
+ trade.c/clif.c/clif.h
+ clif_traderequest()で取引相手のキャラ名を渡すように変更
+
+----------
+//0316 by nabe
+
+・両手武器を精錬すると片手装備になるバグを修正
+ script.c
+ buildin_successrefitem()で、両手武器の場合等に装備箇所チェック
+
+----------
+//0315 by 胡蝶蘭
+
+・PCのSPAWNタイミングを変更
+ ・マップ移動(ログイン)時、ローディング終了後にSPAWNするように。
+ ・ロード中に攻撃されたりしなくなります。
+ ・ギルド/パーティ情報読み込み前に名前解決パケットが来る問題も
+ 修正されるはずです。
+
+ pc.c
+ pc_setpos()でmap_addblock,clif_spawnpcの呼び出しを止めた。
+ clif.c
+ clif_parse_LoadEndAckでmap_addblock,clif_spawnpcを呼ぶように。
+
+・inter鯖パケット処理の重大な問題を修正
+ ・一度にパケットを送信できなかった場合、無限ループに陥る問題修正
+
+ (char/)
+ char2.c
+ parse_frommap()修正
+ inter.c
+ inter_parse_frommap()修正
+ (map/)
+ chrif.c
+ chrif_parse()修正
+ intif.c
+ intif_parse()修正
+
+・ギルドの機能追加
+ ・他人のエンブレムが見えるように。
+ ・ログイン直後の自分のエンブレムが見えるように。
+ ・脱退できるように。(追放はまだです)
+
+ <パケット情報引き続き模集>
+ ・016c,016d,0163,015cなどの詳細な情報
+ ・ギルドスキルのIDがわかる人、教えてほしいです。
+ 158,205,331あたり調べましたがダメな模様。
+
+ (common/)
+ mmo.h
+ MAX_GUILDを36に。
+ (char/)
+ int_guild.c
+ 脱退のパケット変更
+ inter.c
+ パケット長修正
+ (map/)
+ clif.c/clif.h
+ clif_set0078,clif_set007bの修正
+ clif_guild_belonginfoの修正
+ clif_guild_skillinfo追加
+ guild.c/guild.h
+ 脱退などの処理追加
+ intif.c/intif.h
+ 脱退などの処理追加など
+
+
+----------
+//0314 by いど
+
+・char鯖とmap鯖の鯖数上限を30に引き上げ
+ login/login.h
+ char/char.h
+
+・map_athena1.cnfをmap_athena.cnfにリネーム
+ それに伴い、athena.shを変更
+
+・パケット解析資料をdoc/に移動
+
+
+----------
+//0313 by 胡蝶蘭
+
+・ギルドの機能追加
+ ・ギルド勧誘/役職内容変更/メンバーの役職変更など
+ ・guild.txtの書式がまた変わりましたが、前のデータも読み込めるはずです。
+
+ <パケット情報引き続き模集>
+ ・016c,016d,0163,015cなどの詳細な情報
+ ・自分以外のPCの所属ギルドIDを通知するパケット
+
+ (common/)
+ mmo.h
+ struct guild を変更
+ (char/)
+ int_guild.c/inter.c
+ 処理追加/パケット長追加
+ (map/)
+ guild.c/guild.h/intif.c/intif.h
+ 処理追加
+ clif.c/clif.h
+ ギルド関係のパケット処理追加
+
+・help.txtを修正
+ help.txt
+
+・0311による文字化けを修正
+ README
+ map/pc.c
+
+----------
+//0312 by いど
+
+・@hコマンドを@helpに変更
+・読み込むマップデータの定義部分を変更
+
+----------
+//0311 by tk44
+・Assassin 二刀流装備、ASPD問題修正
+ - map\pc.c
+ pc_equipitem(), pc_calcstatus(), pc_checkitem()
+
+・二刀流傷害計算修正まだ処理中
+
+----------
+//0310 by 胡蝶蘭
+
+・ログやデータに使う改行コードをmmo.hで設定可能に
+ (common/)
+ mmo.h
+ RETCODEで改行コードを文字列で定義します。
+ Windows系だとCR/LFなので"\r\n",UNIX系だと"\n"です。
+ 別に正しく指定しなくてもAthena自体は問題なく動作するはずです。
+ (login/)
+ login2.c
+ (char/)
+ char2.c/int_storage.c/int_party.c/int_guild.c
+ 保存する改行コードをRETCODE依存に変更。
+ 改行コードに依存せずに読めるように修正。
+
+・クライアントから不明なパケットが来たらダンプするように
+ ・#define DUMP_UNKNOWN_PACKET 1 をコメント化すればダンプしません。
+
+ clif.c
+ 不明パケットの処理でダンプ処理を追加。
+
+・ギルド機能の追加
+ ・エンブレム変更/告知変更実装
+ ・guild.txtの書式が変わりましたが、前のデータも読み込めるはずです
+
+ (char/)
+ int_guild.c/inter.c
+ ギルドパケット処理、パケット長
+ (map/)
+ guild.c/guild.h
+ 機能追加
+ intif.c/intif.h
+ ギルド関係パケット追加
+ clif.c/clif.h
+ ギルド関係パケット追加
+
+----------
+//0309 by C}{RIS
+
+・ボウリングバッシュを範囲攻撃化しました。
+・プロンテラに装備品販売NPCを追加しました。
+ map_athena1.cnfの
+ npc_shop1J.txtをコメントアウトすれば無効に出来ます。
+・アイテムの名前とIDを書いたテキストファイルを添付。(item.list)
+
+----------
+//0308 by 死神
+・自然回復のプログラムを修正しました。
+ これで大丈夫だといいですが...
+ pc.c
+ pc_natural_heal()等を修正。
+ pc_percentheal()を少し修正。
+ pc_checkskill()を少し修正。スキルがない場合0を返すように
+ 変更しました。他の.cファイルも修正する必要がありましたので
+ 修正しました。
+・4人目と5人目のキャラを消せない問題を修正。
+・始めからナイフとコットンシャツを持つように変更。
+・LOOK_SHEILDをLOOK_SHIELDに修正。
+・mmo_charstatusのsheildをshieldに修正。
+・.logファイルやaccount.txtファイルをnotepadで開くと列が全部繋いでいる
+ 問題を修正。
+・乱数を時間によって初期化するように変更。
+ map.c
+ do_init()を少し修正。
+
+他に変更したファイルもありますが全部覚えてませんので...
+
+----------
+//0307 by 胡蝶蘭
+
+・新規PCの初期位置をchar_athena.cnfに書けるようにした
+ start_point: マップ名,x,y のように指定します。
+ <例> start_point: new_1-1.gat,53,111
+
+ (char/)
+ char2.c
+
+・ギルドの一部機能
+ ・ギルド作成くらいしか動きません
+ ・勧誘/脱退/解散/情報の変更/エンブレム/告知などはすべて未実装です
+
+ <切実な要望>
+ ギルド関係のパケット情報が全然足りません。わかる人は教えてください。
+ 現在のままではエンブレムと告知くらいしか実装できない可能性が…。
+
+ (common/)
+ mmo.h
+ ギルド関係の構造体と定数追加
+ (char/)
+ inter.c
+ パケット長情報追加
+ int_guild.c/int_guild.h
+ 実際の処理追加
+ (map/)
+ map.h
+ struct map_session_dataにギルド関係のメンバ追加
+ guild.c/guild.h
+ 新規追加。ギルド機能用
+ pc.c
+ pc_authok()でギルド所属時、guild_request_info()を呼ぶように。
+ clif.c/clif.h
+ ギルドパケット追加
+ intif.c/intif.h
+ ギルドパケット追加
+
+・0303での修正「MAXHPなどがサーバーとクライアントで〜」を元に戻した
+ ・新PCを作るときに正しくHPなどを計算してくれるようになったので
+ 戻しても平気だろうと予測。
+ ・ログイン直後に重量警告が出てしまうため。
+
+ pc.c
+ pc_authok()の修正
+
+・範囲指定沸きの処理修正
+ ・できるだけ指定した数と同じだけ沸くように
+ (障害物などによる沸き妨害の回避失敗時、前の回避結果を使う)
+
+ mob.c
+ mob_once_spawn_area()の修正
+
+----------
+//0305 by いど
+・新規PCの位置を初心者修練場に変更。
+・map鯖がchar鯖に接続できない不具合の修正。
+
+----------
+//0304 by 死神
+・自然回復の量と時間を変更。韓国鯖に適用されてる物ですが日本にも
+ 適用されてるはずです。(多分... やってませんのでわかりません。汗)
+ HPは毎4秒に 1 + vit/6 + max_hp/200 を回復、
+ SPは毎8秒に 1 + int/6 + max_sp/100 を回復します。
+・スキルHP回復力向上による回復を
+ スキルレベル*5 + max_hp/50に変更。
+・スキルSP回復力向上による回復を
+ スキルレベル*3 + max_sp/50に変更。
+・スキル移動時HP回復実装。
+ 今の所止まってるのと比べて1/4の量を回復します。(時間は同じです。)
+・vitとintによって回復時間が短くなるのではなく回復量が増えます。
+・最大HPと最大SPの計算公式を変更。
+ map.h
+ int inchealtickの変わりにint inchealhptick;と int inchealsptick;を追加。
+ int parame[6] を追加。最大SPの計算の為の物で装備によって上がった
+ パラメータを持っつ。
+ pc.c
+ pc_hpheal(),pc_spheal(),pc_natural_heal_sub(),pc_natural_heal()を
+ 自分のコードに書き換えましたが一応正常に動きますが
+ 他のコードに影響がないかどうかはわかりません。
+ pc_additem()を少しだけ修正。
+ hp_coefficientをintからdoubleに変更。
+ pc_calcstatus()とpc_readdb()を修正。
+ job_db1.txt
+ 職業の計数を変更しました。(クルセイダー等のデータは
+ 完全な物じゃありません。)
+
+・char2.cを少しだけ変更。
+ char2.c
+ make_new_char()を少しだけ変更。(作った直後にHPとSPが完全に
+ 回復してるように変えました。)
+ parse_char()を少しだけ修正。韓国のクライアントで繋いても
+ 異常がないようにしました。(0x187パケットの処理を入れただけ
+ ですが... これはYareから持ってきた物です。)
+・strcmpi等のdefineをatcomand.hからmmo.hに移動しました。
+ atcomand.h, mmo.h 修正。
+・回復アイテムを使用する時vitとスキルHP回復力向上によるボーナスが付く
+ ように変更。ボーナスは
+ 回復量 *(1 + HP回復力向上スキルレベル*0.1 + vit/100)
+ になります。
+・イグドラシルの実とイグドラシルの種を仮実装。(回復はしますがエフェクトが
+ 出ません。item_dbでタイプを変えても駄目でした。)
+ script.c
+ buildin_fixheal()とbuildin_percentheal()を追加。
+ buildin_fixheal()はbuildin_heal()がスキルとvitによって回復量が変わる
+ 仕様になったので元のbuildin_heal()の名前だけを変えた物です。
+ buildin_percentheal()は入力された数字を%としてHPとSPを最大HPと
+ 最大SPを %比率に回復します。
+ スクリプトfixheal 、 percentheal 追加。使用方法はhealと同じです。
+ fixhealはvitとスキルHP回復力向上によるボーナスがない物で
+ percentheal は後の数字を %に認識します。
+ pc.h
+ pc.c
+ pc_percentheal()を追加。
+ item_db.txt、item_db2.txt
+ イグドラシルの実とイグドラシルの種を変更。
+
+----------
+//0303 by 胡蝶蘭
+
+・*.grfのパスをmap_athena.cnfにも書けるようにした。
+ ・map_athena.cnfに「data_grf: ../data/data.grf」や
+ 「sdata_grf: ../sakurai/sdata.grf」のようにパス指定できます。
+ ・grf-files.txtがある場合そちらの設定が優先されます
+
+ (common/)
+ grfio.c/grfio.h
+ grfio_setdatafile(),grfio_setsdatafile()追加。
+ data_file,sdata_fileをファイルローカルなグローバル変数に変更。
+
+・@stpoint,@skpointに負値指定の範囲チェックを追加
+・@zenyコマンド追加(ゼニーの調整)
+・@str,@agi,@vit,@int,@dex,@lukコマンド追加(基本パラメータ調整)
+
+ atcommand.c
+ @stpoint,@skpoint修正
+ @zeny,@str,@agi,@vit,@int,@dex,@luk追加
+
+・メマーナイトを使うとぼったくられていた問題を修正
+・武器製造部分のコードを多少変更
+ ・材料消費処理をアイテムが複数インデックスに分かれている場合に対応させた
+ (3万個限界を超えると別インデックスを使う仕様だった気がするので)
+ ・失敗時にも周りに通知するようにした
+
+ skill.c
+ skill_check_condition()の修正
+ skill_produce_mix()の修正
+
+・武器製造確率をconfファイルで倍率指定できるように修正
+
+ (conf/)
+ battle_athena.cnf
+ weapon_produce_rate追加
+ (map/)
+ skill.c
+ skill_produce_mix()の修正
+
+・武器ATKサイズ補正テーブルを外部から読み込むようにした
+・精錬成功確率/精錬ボーナスなどを外部から読み込むようにした
+・過剰精錬ボーナスによる追加ダメージ実装
+
+ (db/)
+ size_fix.txt
+ サイズ補正テーブル
+ refine_db.txt
+ 精錬関係データ
+ (map/)
+ pc.c
+ pc_readdb()で読み込み
+ battle.c
+ battle_calc_weapon_attack()に過剰精錬ボーナス処理追加
+
+・MAXHPなどがサーバーとクライアントで違う値に見えるバグ修正
+ ログイン直後のステータス計算の結果を直ちに送信するようにした
+
+ (map/)
+ pc.c
+ pc_authok()でのpc_calcstatus()のフラグを0にした
+ これでpc_calcstatus()のフラグパラメータは未使用?
+
+・item_dbの「忍者ス−ツ」を「忍者スーツ」に修正
+ (db/)
+ item_db.txt/item_db2.txt
+ 忍者スーツの名称変更
+
+・ログイン人数を調べるツールを添付
+ Perl製なので実行にはPerlが必要です。
+ 使用方法などはエディタで開いて見てください。
+ 使い方が良くわからない人は手を出さないほうがいいです。
+
+ (tool/)
+ getlogincount
+ ログイン人数所得Perlスクリプト
+
+----------
+//0302 by 死神
+・アイテム製造 確率判定実装。
+ 鉄の場合成功率は
+ (20 + base_level*0.3 + DEX*0.2 + LUK*0.1 + 要求スキルレベル*6)%
+ 鋼鉄と属性石、星のかけらの場合
+ (10 + base_level*0.3 + DEX*0.2 + LUK*0.1 + 要求スキルレベル*5)%
+ 武器は
+ ((2.5 + base_level*0.15 + DEX*0.1 + LUK*0.05 + 要求スキルレベル*5 +
+ 金敷 - 属性石と星のかけら) * (1 - (武器レベル - 1)*0.2) +
+ スキル武器研究レベル*1)%
+ 金敷: ない場合 -5%で金敷は 0%、オリデオコンの金敷は
+ 2.5%、黄金の金敷は 5%、エンペリウムの金敷は 7.5%
+ 属性石と星のかけら: 属性石がある場合 5%で更に
+ 星のかけらの数 * 5%を足します。
+ になりますがちょっと確率が低すぎる気もしますので
+ 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
+ 程度に変えた方がいいかも知りません。
+ skill.c
+ skill_can_produce_mix() と skill_produce_mix() を修正。
+ produce_db.txt
+ 星のかけらをスキル属性石製造が必要に変更。
+・*.grf等を設置せずディレクトリからの読み込むように修正。(これはYareから
+ 持ち込んだ物ですが...)
+ grfio.c
+ grfio_init()を修正。
+ grf-file.txt
+ 新規追加。grfファイルがあるディレクトリ設定用。
+・読み込むマップの最大数を512に修正。
+ mmo.h
+ MAX_MAP_PER_SERVERを384から512に修正。
+・pc.cにpc_search_inventory()を追加。
+ 機能はitem_idのアイテムを持ってるかどうかを確認して
+ 持ってる場合そのindexを返す。
+ item_idが0の場合は空けてる所のindexを返す。
+ pc_additem()とpc_takeitem()だけを少し修正。
+・GMコマンドに@stpointと@skpointを追加。
+ @stpoint 数字 - ステータスポイントを上げる。
+ @skpoint 数字 - スキルポイントを上げる。
+ atcomand.c
+ 修正。
+ atcomand.h
+ strcmpi等をLinuxでも使えるように修正。
+
+----------
+//0301 by 胡蝶蘭
+
+・最大HPが32767を超えると異常な値になる問題の修正
+・Lvが99を超えるときもエフェクトを出すようにした(自分には見えない模様)
+・配置MOBによるイベントでイベント名が4バイト以上という制限をつけた
+・teleport時に取引中断、チャット退室、倉庫保存処理をするようにした
+
+ pc.c
+ pc_calcstatus()の修正(HP計算)
+ pc_setpos()の修正(取引中断など)
+ clif.c
+ clif_set0078(),clif_set007b(),clif_spawnpc()の修正(Lv99エフェクト)
+ npc.c
+ npc_parse_mob()の修正
+
+・@hでhelp.txtが読めないときに落ちるバグ修正
+・@lvup/@joblvupで負値を入れるとLvダウンが可能になった
+
+ atcommand.c
+ @h,@lvup,@joblvup処理の修正
+
+・テレポートなどの消滅エフェクトの修正
+
+ skill.c
+ テレポの消滅エフェクトを変更
+
+・状態異常に関するスクリプト実装 [sc_start]と[sc_end]。
+・緑POT、緑ハーブなど実装
+・装備ボーナスデータ追加
+
+ (db/)
+ item_db.txt/item_db2.txt
+ 装備ボーナスデータを追加
+ 緑POT、緑ハーブなどのスクリプト追加
+ (map/)
+ script.c
+ buildin_warp()で消滅エフェクトを変更
+ buildin_sc_start(),buildin_sc_end()追加
+
+----------
+//0299 by 胡蝶蘭
+
+・NPCイベントでエクスポートされたラベルを指定できるようにした
+ NPCスクリプトでOn〜で始まるラベルを定義すると、エクスポートします。
+ NPCイベントで"NPC名(orイベント名)::ラベル名"とすると、
+ 指定したラベルから実行できます。
+ ラベル名は24バイト以内にして下さい。
+ あとプログラム的にメモリ効率悪いです。後日修正予定
+ <例>
+ NPC「test」のスクリプト内で OnEvent: とラベル定義した場合、
+ NPCイベント「test::OnEvent」で指定位置から実行できます。
+
+ (conf/)
+ npc_test_ev.txt
+ ラベル指定のサンプルもちょこっと追加
+ (map/)
+ script.c/script.h
+ script_get_label_db()などの追加。
+ parse_scriptでscriptlabel_dbにラベルデータを追加する
+ npc.c/npc.h
+ npc_event_export()など追加
+ npc_parse_scriptでラベルデータをエクスポートする
+ map.h
+ struct map_session_data のeventqueueのイベント名のサイズを
+ 50バイトにした。
+
+・AGIとDEXによるASPD計算の最大値を180から190に変更
+ pc.c
+ pc_calcstatus()のASPD計算修正
+
+・skill_db.txt/cast_db.txtの読み込みをskill.cに変更
+
+ pc.c
+ pc_readdb()の修正
+ skill.c
+ skill_readdb()の追加
+
+・アイテム製造仮実装
+ 確率判定が未実装です。必ず成功します。
+
+ (db/)
+ item_db.txt/item_db2.txt
+ アイテム製造に対応(携帯用溶鉱炉、金槌など)
+ produce_db.txt
+ 新規追加。製造リスト。
+ (map/)
+ skill.c/skill.h
+ struct skill_produce_db追加
+ skill_readdb()でproduce_db.txtを読むように
+ clif.c/clif.h
+ clif_skill_produce_mix_list(),clif_parse_ProduceMix()追加
+ script.c/script.h
+ 製造用コマンド[produce]作成。
+ 引数は製造用数値で、1-4が武器製造(Lv)、16が鉱石
+
+
+----------
+//0298 by 胡蝶蘭
+
+・Login鯖のパスワード暗号化タイプを自動認識できるように変更
+ login.hのPASSWORDENCを3にすると自動認識します。
+ 最初にpasswordencryptでチェックし、失敗すれば
+ passwordencrypt2でチェックします。
+
+ (login/)
+ login2.c/login.h
+ 暗号化パスワードの照合部分を修正
+
+・アカウント作成ツールを添付
+ Perl製なので実行にはPerlが必要です。
+ 使用方法などはエディタで開いて見てください。
+ 使い方が良くわからない人は手を出さないほうがいいです。
+
+ (tool/)
+ addaccount
+ アカウント作成ツールPerlスクリプト
+
+・スキルの追加修正
+ ・ファイヤーウォールの回数制限をグループ毎からユニット毎に修正
+ ・クァグマイア仮実装 (敵の移動速度、キャラの表示数値は変化せず)
+ ・ウォーターボール仮実装(動作が正しいのか不明)
+ ・フロストノヴァ仮実装(エフェクトが良くわからないので適当)
+ ・ベノムダスト仮実装(範囲とかが正しいかどうか不安)
+ ・プロボック、オートバーサーク、聖体降福、砂まき、石投げの実装
+ ・エンチャントポイズンの毒付与実装
+
+ *注意* 毒状態は見た目だけで効果は未実装
+
+ (db/)
+ skill_db.txt
+ 砂まき/石投げ/ウォーターボールなど修正
+ (map/)
+ skill.c/skill.h
+ 色々修正
+ mob.c/mob.h
+ mob_target()追加。MOBのタゲ用
+ battle.c
+ battle_get_*()系修正など
+ pc.c
+ pc_calcstatus()修正
+
+----------
+//0297 by 胡蝶蘭
+
+・Login鯖がパスワード暗号化に対応
+ 暗号化keyは鯖起動時に一度だけ作成します。
+
+ **注意**
+ 暗号化パスワードを使っている場合は、アカウントを作成できません。
+ アカウントを作る場合はclientinfo.xmlを編集するなどして、
+ パスワードを暗号化しないクライアントを使う必要があります。
+
+ (login/)
+ login2.c/login.h
+ 暗号化パスワードのパケット処理追加
+ 暗号化keyの生成処理追加
+ md5calc.c/md5calc.h
+ 新規追加。md5計算用
+
+
+・スキル使用ディレイにDEXが反映されないように修正
+ skill.c
+ skill_delay_fix()の修正
+
+・死亡後も一部の状態異常の効果が持続する問題を修正
+ pc.c
+ pc_damage()で死亡時にpc_calcstatus()を呼ぶように修正
+ atcommand.c
+ 死亡時処理を一本化するため@dieではpc_damageを呼ぶように修正
+
+
+----------
+//0295 by 胡蝶蘭
+
+・クレイモアートラップなどにスキルを使うとマップ鯖が落ちる問題の修正
+
+ battle.c
+ battle_get_*()などでBL_PC,BL_MOBじゃないときの処理を追加
+ skill.c/skill.h
+ skill_unit_ondamage()追加
+
+・約21Mzを超えるアイテムをNPCで扱うときOC,DC計算で値段がおかしくなるバグ修正
+ DCでは20Mz、OCでは70Mzを超えるアイテムはdouble型にして計算します
+
+ pc.c
+ pc_modifysellvalue(),pc_modifysellvalue()の修正
+
+----------
+//0294 by 胡蝶蘭
+
+・スクリプトコマンドでエリア指定のMOB沸き命令を作成
+ areamonster "マップ名",x0,y0,x1,y1,"MOB表示名",MOBのclass,数,"イベント名"
+ 座標指定が(x0,y0)-(x1,y1)の任意ポイントになるだけで他はmonster命令と同じです
+
+ script.c
+ buildin_areamonster()追加
+ mob.c/mob.h
+ mob_once_spawn_area()追加
+
+・アイスウォールの鯖側処理仮実装
+ 攻撃できないなどの問題はあるものの、鯖側ではとりあえず動きます。
+ ただ、クライアントに進入不可能エリアを教えるパケットがわからないので、
+ 鯖側ではIWの回り込みを行う場合でも、クライアント側ではすり抜けている
+ ように見えます。
+
+ skill.c
+ 該当処理追加など
+
+----------
+//0293
+・2-2次職のスキルコメントの修正(一部追加)
+ (db/)
+ skill_db.txt
+ skill_tree.txt
+
+
+----------
+//0292 by 胡蝶蘭
+
+・SHOP NPCに話し掛けるとNPCが反応しなくなる問題のまともな?修正Part2
+ ・売買できなかった問題修正
+
+ map.h
+ struct map_session_data にnpc_shopidメンバ追加
+ npc.c
+ npc_click()など修正
+
+・スクリプト命令追加
+ ・指定エリアのユーザー数の所得
+ getareausers("マップ名",x0,y0,x1,y1)
+ 指定マップの(x0,y0)-(x1,y1)にいるPCの数を計算
+ ・指定エリアのユーザーのワープ
+ areawarp "転送元マップ名",x0,y0,x1,y1,"転送先マップ名",x,y;
+ 指定マップの(x0,y0)-(x1,y1)にいる全PCを指定マップの(x,y)に転送。
+
+ script.c
+ buildin_areawarp(),buildin_getareausers()追加
+
+・スキル修正
+ ・テレポート使用時に「テレポート!!」と叫ぶように。
+ ・ストーンカースの成功率が低いのを修正
+
+ skill.c
+ skill_castend_nodamage_id()修正
+
+----------
+//0291 by 胡蝶蘭
+
+・スクリプト命令追加
+ ・NPCの有効無効が切り替えられるようになりました
+ disablenpc "NPC名"で無効化、enablenpc "NPC名"で有効化。
+ NPC名が重複しているときの動作は不定です。
+ 主にワープポイントを無効化するときに使います。
+
+ ・タイマーのカウントを変更するスクリプト命令追加
+ addtimercount "イベント名",ミリ秒
+ で、タイマの期限を延ばせます(負値を指定して減らすことも出来ます)
+
+ ・アナウンスの拡張
+ mapannounce "マップ名","アナウンス文字列",フラグ
+ で指定マップにアナウンスを流します。フラグは0で黄色、16で青です。
+ areaannounce "マップ",x0,y0,x1,y1,"文字列",フラグ
+ で指定マップの(x0,y0)-(x1,y1)のエリアにアナウンスを流します。
+ フラグはmapannounceと同じで、0で黄色、0x10で青です。
+
+ (conf/)
+ npc_test_arena.txt
+ サンプルの修正
+ (map/)
+ script.c
+ buildin_disablenpc(),buildin_enablenpc(),
+ buildin_mapannounce(),buildin_areaannounce(),
+ buildin_addtimercount()の追加
+ npc.c/npc.h
+ NPCの有効無効処理追加
+ map.h
+ struct npc_dataにflagメンバ追加(1ビット目が無効フラグ)
+ clif.c
+ clif_getareachar_npc()の修正
+ pc.c/pc.h
+ pc_addeventtimercount()追加
+
+・SHOP NPCに話し掛けるとNPCが反応しなくなる問題のまともな?修正
+ SHOP NPCと取引中でもイベントが起こるようになります。
+ これはROの仕様上避けるのが難しいためこのような結果で落ち着きました。
+
+ npc.c
+ npc_click()等の修正
+
+・スキッドトラップで残像が残る問題修正
+ skill.c
+ skill_blown()でclif_walkok()などを呼ぶように。
+ skill_unit_onplace()のclif_fix*pos()を削除。
+
+----------
+//0290 by 胡蝶蘭
+
+・スクリプトでMAP鯖内共有変数が使えるようになりました。
+ 変数名を$で開始すると、MAP鯖内の全員で共有する変数になります。
+
+ 言葉の問題ですが、PCのglobalregは「大域的」というより「永続性のある」
+ 変数であって、MAP鯖内共有変数のほうが大域的ってイメージが強いんですが…
+
+ script.c
+ mapval_db定義
+ buildin_set(),buildin_input()の修正
+ do_init_script()追加
+ map.c
+ do_init()でdo_init_script()を呼ぶように。
+
+・イベントキューが実装されました
+ ・キューサイズは2です。必要なら増やしますが。
+
+ サンプルの[ev_doテスト]がちゃんと動くようになったと思います。
+
+ map.h
+ struct map_session_dataにeventqueueメンバ追加
+ npc.c
+ npc_event_timer()追加
+ script.c
+ run_script()でEND処理でキューの処理追加
+
+・スクリプトでタイマーが使用できるようになりました
+ 使用方法は、addtimer ミリ秒,"イベント名" でタイマー追加、
+ deltimer "イベント名" でタイマー削除。
+
+ (common/)
+ timer.c/timer.h
+ get_timer(),addtick_timer()追加
+ (map/)
+ map.c/map.h
+ struct map_session_dataにeventtimerメンバ追加
+ map_quit()でpc_cleareventtimer()を呼ぶように。
+ pc.c
+ pc_addeventtimer(),pc_deleventtimer(),pc_eventtimer(),
+ pc_cleaereventtimer()追加
+ pc_authok()でeventimerの初期化
+ script.c
+ buildin_addtimer(),buildin_deltimer()追加
+
+・スクリプトの追加
+ ・getusers,getmapusers,killmonsterの追加
+ getusers(x)はユーザー数所得、x=0でPCのMAP,1=全MAP,8=NPCのMAP。
+ getmapusers("マップ名")は指定マップのユーザー数を所得する。
+ killmonster "マップ名","イベント名"で該当のマップにいる、
+ 該当のイベント駆動指定モンスターを全て削除。
+ ・announceコマンド拡張
+ フラグの0x08ビットが1ならマップやエリア計算にPCでなくNPCを使う
+
+ mob.c/mob.h
+ mob_delete()追加
+ script.c
+ buildin_getusers(),buildin_getmapusers(),
+ buildin_killmonster()追加
+ clif.c/clif.h
+ clif_GMmessage()の引数変更
+
+・イベントサンプル追加
+ 簡単なアリーナのサンプルを追加。
+
+ (conf/)
+ npc_test_ev.txt
+ 従来のサンプルの修正
+ npc_test_arena.txt
+ 簡単なアリーナのサンプル
+ ワープポイントの無効化コマンドなどが必要と思われる。
+
+・SHOP NPCに話し掛けるとNPCが反応しなくなる問題修正
+
+ npc.c
+ npc_buylist(),npc_selllist()修正
+
+----------
+//0289 by 胡蝶蘭
+
+・イベント駆動型スクリプトの修正など
+ ・他のNPCに話し掛けているときはイベントが無視されるようになりました
+ =>キューに入れるなどの処理がいると思われる。
+
+ この関係で、サンプルの[ev_doテスト]NPCをクリックしても
+ IDエラーが出て何も起きません。イベントキューを作れば直るはず。
+
+ npc.c
+ npc_event(),npc_click()にnpc_idチェックを追加
+ script.c
+ 終了時にnpc_idをクリアするように
+
+・スクリプトコマンド[announce]の追加
+ ・GMメッセージによるannounce。
+ 第1引数は文字列、第2引数はフラグで、
+ フラグの下位4ビットが0=全て、1=同じマップ、
+ 2=画面内、3=自分のみ、4=同じマップ鯖に送信。
+ フラグの4ビット目は色フラグで、0x10=青、0x00=黄色
+
+ script.c
+ buildin_announce()の追加
+ clif.c
+ clif_send()でSELFの処理追加
+ clif_GMmessage()の引数変更
+ intif.c
+ intif_GMmessage()の引数変更
+
+・メモ禁止、テレポ禁止、セーブ禁止マップが指定できるようになりました。
+ ・NPCで、mapflagというタイプで、名前を nomemo 、 noteleportで
+ メモとテレポ禁止。nosave で、引数にセーブするマップ名と座標を指定。
+
+ 詳しくは同梱のconf/npc_test_ev.txtを参照。
+
+ (conf/)
+ npc_test_ev.txt
+ 修正
+ (map/)
+ map.h
+ struct map_data にflag,savemap,savex,saveyメンバ追加
+ npc.c
+ npc_parse_mapflag()追加
+ do_init_npc()の修正
+ pc.c
+ pc_memo()でメモ禁止かどうかを確認
+ pc_makesavestatus()でセーブ禁止ならマップを変更
+ pc_randomwarp()でテレポ禁止かどうか確認
+ skill.c
+ テレポとポタでテレポ禁止か確認
+
+
+・ファイヤーウォールで落ちる問題修正…だといいな
+
+ skill.c
+ さらにチェックを追加
+ skill_blown()に落ちる原因っぽいもの発見したので修正
+
+----------
+//0288 by 胡蝶蘭
+
+・自動鷹発動時に「ブリッツビート!!」と叫ばなくなりました
+ skill.c
+ skill_attack(),skill_additional_effect(),
+ skill_castend_damage_id()の修正
+
+・イベント駆動型スクリプトが記述できるようになりました
+・モンスターを倒したときにイベントスクリプトを動かせるようになりました
+
+ NPC定義のscriptで表示クラスを-1にするとイベント扱いになります。
+ NPC定義のmonsterにイベント名を設定できます。
+ スクリプトのmonsterコマンドにイベントを起こす引数追加。
+ 詳しくはサンプルを見てください。
+ 今後タイマーでイベントを起こせるようにしようと思っています。
+
+ 現状では、NPCウィンドウ操作中にイベントがおきて、
+ そのイベントのスクリプトでNPCウィンドウを出すと問題が起きます。
+ この辺は今後の課題ということで。
+
+ (db/)
+ item_db.txt/item_db2.txt
+ monsterコマンドの変更による修正(古木の枝)。
+ (conf/)
+ npc_test_ev.txt
+ サンプル
+ (map/)
+ npc.c
+ npc_event()追加
+ npc_parse_script()修正
+ npc_checknear()修正
+ clif.c
+ clif_getareachar_npc()修正
+ map.h
+ struct mob_dataにnpc_eventメンバ追加
+ mob.c/mob.h
+ mob_once_spawn()の引数変更
+ mob_damage()で死亡時にイベントを起こすように
+ atcommand.h
+ mob_once_spawn()の引数変更
+ script.c
+ buildin_monster()の修正
+
+----------
+//0287 by 胡蝶蘭
+
+・モンスター情報スキルでHPが65535を越えていると正常な値が見れないバグ修正
+
+ clif.c
+ clif_skill_estimation()の修正
+
+・古木の枝アイテムでクライアントがリソースエラーを出す問題が修正されました
+・古木の枝アイテムで召喚できる敵が指定できるようになりました
+
+ (db/)
+ mob_branch.txt
+ 召喚可能な敵のリスト
+ (map/)
+ mob.c/mob.h
+ struct mob_dataにsummonflagメンバ追加。召喚可能性。
+ mob_once_spawn()の修正
+ mob_readbranch()の追加
+ do_init_mob()でmob_readbranch()を呼ぶように。
+
+・古く青い箱、古い紫色の箱が実装されました。
+ 一部の未実装アイテムも出ます。item_db.txtにあるデータを検索しています。
+ スクリプトgetitemで負の値を指定すると、その絶対値をフラグとして
+ ランダムにアイテムを選択します。
+
+ (db/)
+ item_db.txt/item_db2.txt
+ 該当部分のスクリプト修正
+ (map/)
+ script.c
+ buildin_getitem()の修正
+ itemdb.c/itemdb.h
+ itemdb_searchrandomid(),itemdb_searchrandomid_sub()追加
+
+・詠唱データの一部修正
+ (db/)
+ cast_db.txt
+ 速度上昇などの修正
+
+・NPCの向き修正など
+ (conf/)
+ npc_*.txt
+
+----------
+//0286 by 胡蝶蘭
+
+・モンスター情報スキルでクライアントが落ちるバグ修正
+ clif.c
+ clif_skill_estimation()の修正
+
+・詠唱反応モンスターが反応しないことがある問題を修正
+ skill.c
+ skill_use_id(),詠唱反応時、最低追跡距離を13に設定するように。
+
+・スクリプトコマンド[warp]でセーブポイント移動やランダム移動が可能になりました
+・ハエの羽、蝶の羽アイテムが実装されました
+ スクリプトwarpでマップ名に"SavePoint"や"Random"が指定できます。
+
+ (db/)
+ item_db.txt/item_db2.txt
+ ハエの羽、蝶の羽のスクリプト修正
+ script.c
+ buildin_warp()の修正
+
+・@monsterコマンドによるMOBが復活しないようになりました
+・スクリプトコマンド[monster]でMOBを発生させることができるようになりました
+・古木の枝アイテムが実装されました
+
+ スクリプト引数は monster マップ名,x,y,MOB名,MOBのID,数 です。
+ マップ名が"this"の場合、スクリプトを実行したプレイヤーのいるマップ、
+ x,yが-1ならプレイヤーの座標(どちらか一方のみそろえることも可能)、
+ MOB名が"--en--"の場合、本来の英語名になり、"--ja--"の場合、
+ 本来の日本語名になります。MOBのIDが-1の場合、適当なIDになります。
+
+ (db/)
+ item_db.txt/item_db2.txt
+ 古木の枝のスクリプト修正
+ (map/)
+ mob.c/mob.h
+ mob_once_spawn()追加
+ mob_setdelayspwan()で復活禁止処理追加。
+ npc.c/npc.h
+ npc_get_new_npc_id()追加
+ script.c
+ buildin_monster()追加
+ atcommand.c
+ @monsterの修正
+
+・@itemコマンドの修正(装備品などの問題)
+
+ atcommand.c
+ @itemの修正
+
+----------
+//0284 by 胡蝶蘭
+
+・障害物があると遠距離攻撃ができなくなりました
+・対地スキルが障害物上に使用できなくなりました
+
+ path.c
+ path_search(),can_move()の修正、can_place()の追加
+ battle.c/battle.h
+ battle_check_range()追加、射程と障害物判定。
+ battle_weapon_attack()でbattle_check_range()を呼ぶ。
+ skill.c
+ skill_use_id()、skill_use_pos()でbattle_check_range()を呼ぶ。
+ mob.c
+ mob_ai_sub_hard()の処理を修正
+
+・詠唱反応/リンクモンスターが実装されました
+ skill.c
+ skill_use_id()に詠唱反応モンスの処理追加
+ mob.c
+ mob_ai_sub_hard_linksearch()の追加
+ mob_ai_sub_hard()にリンク処理を修正
+
+----------
+//0283 by れあ
+・リザレクションの修正
+ 0282で生きてるPCにリザがかけれるのに、
+ 死んでるPCにはリザがかからなくなって
+ いたのを修正しました。
+
+----------
+//0282 by 胡蝶蘭
+
+・スキルの修正と追加実装
+ ・キリエエレイソンのエフェクトの問題修正。
+ ・リザレクションが生きているPCには掛けられないようになりました
+ ・ターンアンデッド/攻撃リザレクションがBOSSには効かないようになりました
+ ・ファイヤーウォールのヒット数制限を実装
+ ・ストームガストの実装
+ ただし、本鯖と違い凍結は確率のみで、最大ヒット数などが変です。
+
+ skill.c
+ skill_castend_nodamage_id()の修正
+ ストームガストの処理追加
+
+・スキルユニット処理に意地になって安全性チェックを追加。
+ (落ちなくなる日は遠い??)
+
+ map.h
+ MAX_SKILLUNITGROUPを32に増やした
+ skill.c
+ skill_status_change_*()にNULLチェック追加
+ battle.c
+ battle_calc_damage()に生存チェック追加
+ map.c
+ map_freeblock_unlock()にロック数チェックを追加
+
+・その他修正
+ ・PCの最大HPが30000に制限されました。
+ ・PCの回復処理が修正されました
+ ・吹き飛ばし処理の修正
+ ・0281のitem_db.txtの変更をitem_db2.txtにも適用
+
+ (map/)
+ pc.c
+ pc_heal(),pc_calcstatus()の修正
+ path.c
+ path_blownpos()の修正
+ (db/)
+ item_db2.txt
+ 0281の名前修正などを適用
+
+----------
+//0280 by 胡蝶蘭
+
+・管理者のシステムを作成
+ "conf/login_athena.cnf"の作成、管理者パス、GMパスの設定。
+ アカウントを作るとき、
+ <例> ID: hoge_M Pass: foobar@admin
+ のように、パスワードの後ろに「@管理者パス」が必要に。
+ login_athena.cnfのadmin_passの欄を消せば、今までのようにもつかえます。
+ (その場合、admin_passの後ろだけでなく、行ごと消してください)
+
+ (login/)
+ login.h
+ 設定ファイルのデフォルト名追加
+ login2.c
+ アカウント作成のところを修正
+ 設定ファイルの読み込み追加
+
+・@GMコマンド復活
+ ただし、「@gm GMパス」として使います。
+ GMパスはlogin_athena.cnfのものです。
+ 鯖の再起動の必要はありませんが、
+ クライアントはリログする必要があります。
+
+ <注意>
+ 同じアカウントの全てのキャラはPTから抜けて置いてください。
+ また、倉庫のアイテムは全部引き出して置いてください。
+ そうしないとゴミデータが残ります。
+
+ (login/)
+ login2.c
+ アカウントID変更処理追加
+ (char/)
+ char2.c
+ アカウントID変更処理追加
+ (map/)
+ chrif.c/chrif.h
+ chrif_changegm(),chrif_changedgm()追加
+
+・@pvpoffコマンド復活
+ clif.c/clif.h
+ clif_pvpoff()追加
+ atcommand.c
+ @pvpoffの処理追加
+
+・空の倉庫データは保存されないように変更
+ (char/)
+ int_storage.c
+ inter_storage_save()、storage_tostr()を修正
+
+・@memoコマンド追加。
+ 任意の記憶域にメモを取れるようになりました。
+
+ atcommand.c
+ @memoの処理追加
+
+
+----------
+//0279 by 胡蝶蘭
+
+・スキルユニット処理の問題対策
+ とりあえずひたすらチェックを入れました。
+
+ skill.c
+ skill_unit_timer_sub(),skill_unit_move_sub(),
+ skill_delunit()にユニットの生存判定を追加。
+ skill_unitgrouptickset_search(),skill_unitgrouptickset_delete()
+ skill_delunitgroup()にNULLポインタチェックを追加。
+
+・スキルの追加実装と修正
+ テレポート、ワープポータルの実装
+ キリエエレイソンをMOBに掛けると落ちるバグ修正
+
+ (db/)
+ cast_db.txt
+ ワープポータルの詠唱時間設定
+ (map/)
+ map.h
+ struct skill_unit_groupのvalstrをポインタに変更
+ clif.c/clif.h
+ clif_parse_UseSkillMap(),clif_skill_warppoint()、
+ clif_parse_Memo(),clif_skill_memo()追加
+ skill.c/skill.h
+ skill_castend_map(),skill_unit_onlimit()の追加
+ skill_unit_*系の処理いろいろ追加。
+ skill_status_change_start()のキリエの処理修正
+ pc.c/pc.h
+ pc_randomwarp(),pc_memo()追加
+
+----------
+//0278 by nabe
+
+・スキルポイントを振ったときにステータスを更新
+ pc.c
+ pc_skillup()でpc_calc_skilltree()の代わりにpc_calcstatus()
+・所持量増加を修正
+ pc.c
+ pc_calcstatus()の所持量増加によるmax_weight増分をskill*1000に
+
+----------
+//0277 by nabe
+
+・付属品(カート、鷹、ペコ)の付け外しを改良
+ (conf/)
+ npc_event_rental.txt
+ 鷹、ペコを付けるスクリプトコマンドを変更
+ (map/)
+ battle.c
+ battle_addmastery(),battle_calc_weapon_attack()で
+ ペコペコ騎乗時の槍攻撃力補正を実装
+ clif.c
+ clif_parse_CartOffをclif_parse_RemoveOptionに変更
+ pc.c/pc.h
+ pc_calcstatus()でカート、ペコペコ乗りによる速度変化を計算
+ pc_setoption(),pc_setcart()改良
+ pc_setfalcon(),pc_setriding()追加
+ pc.hにpc_isfalcon(),pc_isriding()マクロ追加
+ script.c
+ buildin_setfalcon() 鷹付加
+ buildin_setriding() ペコペコ乗り
+
+----------
+//0276 by nabe
+
+・精錬NPC実装
+ (conf/)
+ npc_town_refine.txt
+ 精錬NPCスクリプトファイル新規追加
+ (map/)
+ pc.c/pc.h
+ 精錬成功率の表percentrefinery[5][10]を追加
+ script.cから呼ばれる関数
+ pc_percentrefinery() 精錬成功率
+ pc_equipitemindex() 装備品インデックス
+ を追加
+ script.c
+ buildin_getequipname() 装備名文字列(精錬メニュー用)
+ buildin_getequipisequiped() 装備チェック
+ buildin_getequipisenableref() 装備品精錬可能チェック
+ buildin_getequipisidentify() 装備品鑑定チェック
+ buildin_getequiprefinerycnt() 装備品精錬度
+ buildin_getequipweaponlv() 装備品武器LV
+ buildin_getequippercentrefinery() 装備品精錬成功率
+ buildin_successrefitem() 精錬成功
+ buildin_failedrefitem() 精錬失敗
+ を追加
+
+・スクリプトにWeight,MaxWeightパラメータを追加
+ const.txt
+ Weight,MaxWeightを追加
+
+・スクリプトでのキャラ名表示方式を変更
+ (conf/)
+ npc_job_merchant.txt/npc_job_thief.txt/npc_town_kafra.txt
+ mes "$charaname"; を mes strcharinfo(0); に変更
+ (map/)
+ script.c
+ buildin_strcharinfo()を追加
+
+----------
+//0275 by 胡蝶蘭
+
+・MVPの実装
+ MVPの判定にはdmglogを使ってます。すなわち与ダメだけが計算対象です。
+ 被ダメは考慮されてません。
+ 経験値は無条件で入り、確率でさらにアイテムが入ります。
+ アイテムは複数手に入ることもあります。
+
+ clif.c/clif.h
+ clif_mvp_effect(),clif_mvp_item(),clif_mvp_exp()追加
+ mob.c
+ mob_damage()にMVP処理追加
+
+・スキルの追加実装と修正
+ ・マグナムブレイク、アローシャワー実装
+ ・吹き飛ばし系スキルが一部使用されないバグ修正
+ ・ダブルストレイフィングのダメージ計算式修正
+ ・武器攻撃系属性付きスキルで属性が反映されない問題修正
+ ・場所指定スキルが攻撃しながら詠唱できた問題を修正
+
+ battle.c
+ battle_calc_weapon_attack()の該当個所修正&追加
+ skill.c
+ skill_castend_damage_id()に処理追加
+ skill_use_pos()に攻撃停止処理追加
+
+・カードスキルがカードを外しても使用可能な問題を修正
+ pc.c
+ pc_calc_skilltree()を修正
+
+・アイテムドロップ率、exp所得倍率などの調整機能追加
+ battle_athena.cnfで調整できる項目が増えました。
+ 詳しくはそちらを参照してください。
+
+ (conf/)
+ battle_athena.cnf
+ mvp_hp_rate,item_rate,exp_rate,mvp_item_rate,mvp_exp_rate追加
+ (map/)
+ battle.c/battle.h
+ 増えた項目を読み込むように処理追加
+ mob.c
+ mob_db.txt読み込み時、データを調整する処理追加
+
+----------
+//0274 by 胡蝶蘭
+
+・スキルの追加実装
+ スキッドトラップ、ランドマイン、ブラストマイン、クレイモアートラップ、
+ フリージングトラップ、サンドマン、アンクルスネア
+
+ 睡眠や凍結などの確率は適当です。
+ 罠発動時のエフェクトが出ません。ていうか出し方がわかりません。
+ わかる人は教えてください。もしくは本鯖で罠発動時の複合化済みの
+ 生パケットデータでもいいので教えてください。
+
+ (db/)
+ skill_db.txt
+ 属性の修正
+ (map/)
+ skill.c
+ 該当個所
+ battle.c/battle.h
+ battle_calc_misc_damage()の該当個所
+ battle_stopwalking()追加
+ clif.c/clif.h
+ clif_fixpcpos()追加
+ clif_parse_WalkToXY()にアンクルで動けなくする処理追加
+ mob.c
+ mob_ai_sub_hard()にアンクルで動けなくする処理追加
+
+・装備などのクリティカルボーナスが1/10になっているバグが修正されました
+ battle.c
+ battle_calc_weapon_attack()に追加分を計算する処理修正
+
+・ブリッツビートの計算式が全然違うバグが修正されました
+ battle.c
+ battle_calc_attack()のBF_MISCの処置が間違っていたのを修正
+
+・SWとニューマが武器攻撃ならどんなレンジの攻撃でも防いでいた問題を修正
+ battle.c
+ battle_calc_damage()のレンジ判定を修正
+
+・オーバートラストとウェポンパーフェクションがPTメンバにもかかるように修正。
+ 効果は使用者とPTメンバで違いはありません。
+
+ skill.c
+ skill_castend_nodamage_id()の修正。
+
+----------
+//0273 by 胡蝶蘭
+
+・キャラクターが消失したり幻影が出る問題が修正されました
+ ・吹き飛ばしスキルを受けると発生していた
+ ・斜め以外の歩行で発生していた
+
+ map.c
+ map_foreachinmovearea()の修正。
+ skill.c
+ skill_blown()に表示範囲更新処理を追加。
+ mob.c
+ mob_walk()で歩き終わったときに位置を再送信するように修正
+ pc.c
+ pc_walk()で歩き終わったときに位置を再送信するように修正
+
+・スキルの追加実装と修正
+ ファイヤーウォール、ファイヤーピラーの実装
+ サンクチュアリでのノックバック方向を修正
+
+ (db/)
+ skill_db.txt
+ ファイヤーピラー、ブリッツビートのヒット数修正
+ (map/)
+ skill.c
+ skill_blown()に対象の向きによるノックバック処理追加
+ その他必要な場所修正
+ mob.c
+ mob_walk(),mob_attack()で向きを保存
+ pc.c
+ pc_walk(),pc_attck()で向きを保存
+ map.c
+ map_calc_dir()追加。相対的な方向を求める
+
+
+・クリティカル増加装備が戦闘時に計算されてないバグが修正されました
+ battle.c
+ battle_calc_weapon_attack()に追加分を計算する処理追加
+
+
+・防御ユニット(SW/ニューマ)が敵に影響を及ぼすかどうかを
+ battle_athena.cnfで制御できるようになりました
+ デフォルトは「及ぼさない」です。
+
+ (conf/)
+ battle_athena.cnf
+ 項目defunit_not_enemyを追加
+ (map/)
+ battle.c/battle.h
+ struct Battle_Config に defnotenemyメンバ追加。
+ battle_read_config()の処理を修正。
+ skill.c
+ skill_unitsetting()でSW/ニューマの処理を修正
+
+・フェンカード装備時、死んでも詠唱が続くバグを修正
+ (詠唱終了前に復活すれば魔法が発動する問題も修正になります)
+
+ pc.c
+ pc_damage()で死亡時skill_castcancel()を呼ぶように修正
+
+・敵味方判定処理にバグがあったのを修正
+ battle.c
+ battle_check_target()の修正
+
+----------
+//0272 by 胡蝶蘭
+
+・スキルの追加実装と修正
+ ・セイフティウォール、ニューマが実装されました。
+ ・ロードオブバーミリオン発動中に効果範囲外から範囲内に入ってきたとき、
+ 敵味方の区別無く攻撃が当たる問題が修正されました。
+ ・サンクチュアリの射程が修正されました。
+ ・範囲魔法で倒した敵がHP0で残る場合がある問題が修正されました。
+
+ (db/)
+ skill_db.txt
+ セイフティウォールとサンクチュアリの射程を8に変更
+ (map/)
+ skill.c
+ skill_unit_onplace(),~ondelete(),~onout()などに、
+ セイフティウォールとニューマの処理追加。
+ skill_unit_move()にターゲットの敵味方判定を追加。
+ skill_unit_timer_onplace(),~ondelete()にユニット生存判定を追加.
+ skill_clear_unitgroup()追加。ユニットグループの全削除をする。
+ battle.c
+ battle_calc_damage()にセイフティウォールとニューマの処理追加。
+ map_foreachinarea()など修正
+ map.c
+ map_quit()でskill_clear_unitgroup()を呼ぶように。
+
+・スキルの吹き飛ばし処理を実装
+ ユピテルサンダー、サンクチュアリ、スピアスタブ、
+ ボーリングバッシュ、チャージアローの吹き飛ばし処理実装
+
+ path.c/map.h
+ path_blownpos()追加
+ battle.c/battle.h
+ struct Damageにblewcountメンバ追加
+ battle_calc_*_damage()でblewcountをセットするように。
+ skill.c/skill.h
+ skill_blown()追加。吹き飛ばし処理。
+ skill_attack()でskill_blown()を呼ぶように。
+ skill_attack()のflagの吹き飛ばしビットは未使用に。
+
+・歩行中のモンスターに攻撃したとき、モンスターにディレイが入るようになりました
+ (攻撃のモーションの遅延を考えてないのであんまり意味がないかも?)
+
+ (map/)
+ mob.c/mob.h
+ stateにMS_DELAYを追加。
+ mob_damage(),mob_timer()などの修正
+
+・歩行中のモンスターに攻撃したとき、位置がずれる問題の応急処置
+ (まだ位置はずれるようです)
+
+ clif.c/clif.h
+ clif_fixmobpos()を追加
+ mob.c
+ mob_attack()でclif_fixmobpos()を呼ぶように。
+
+・その他修正
+ pc.c
+ pc_stop_walking()でpath_lenを初期化するように。
+
+----------
+//0271 by れあ
+
+・PTに関して少しだけ修正
+ 公平にしてからキャラを加入させると公平が解除されないバグを修正
+
+----------
+//0270 by 胡蝶蘭
+
+・スキルの追加実装と修正
+ ロードオブバーミリオン、サンクチュアリ、マグヌスエクソシズム
+
+ (db/)
+ skill_db.txt
+ マグヌスのヒット数、属性調整
+ サンクチュアリの属性調整
+ (map/)
+ map.h
+ struct map_session_dataの修正
+ clif.c/clif.h
+ clif_skill_setunit(),clif_skill_delunit()、
+ clif_getareachar_skillunit(),clif_clearchar_skillunit()追加
+ clif_pcoutsight(),clif_pcinsight(),clif_getareachar()修正
+ skill.c/skill.h
+ 忘れるほど多数変更。主にスキルユニット関連部分。
+ pc.c
+ pc_authok()でskillunit,skillunittickを初期化するように。
+ pc_walk()でskill_unit_move()を呼ぶように。
+ mob.c
+ mob_spwan()でskillunittickを初期化するように。
+ mob_walk()でskill_unit_move()を呼ぶように。
+ battle.c/battle.h
+ battle_calc_magic_attack()修正
+ battle_check_target()修正
+ map.c
+ map_foreachobject()など修正
+
+・こまかいバグ修正など
+ ・mobが回復しない問題修正
+
+ battle.c
+ battle_damage()修正
+
+----------
+//0266 by 胡蝶蘭
+
+・魔法計算式の修正
+ 魔法倍率をダメージに掛けていたのをMATKにかけるようにしました。
+ …こっちが正しいとしていいのかな?違うなら教えてください。
+
+ battle.c
+ battle_calc_magic_attack()の修正
+
+・スキルの追加実装
+ サイト、ルアフ、ロードオブヴァーミリオン
+
+ ロードオブバーミリオンは3回の判定時に詠唱音が鳴ります…。
+ clif_skill_damage()のtypeを色々変えてみましたがどうもうまくいきません。
+ 直せる人は直してくれるとうれしいです。
+ (うーん、ひょっとしたら本来はグラフィックのないスキルユニットを
+ 設置して、そのユニットのIDでダメージを与えるのかも??)
+
+ (db/)
+ skill_db.txt
+ ロードオブバーミリオンのヒット数を3から10に変更。
+ (map/)
+ skill.c
+ skill_status_change_timer_sub()追加。
+ skill_status_change_*()に処理追加。
+
+・blockのメモリ解放の安全性の向上
+ map_foreachinarea,party_foreachsamemapで回っているときに
+ blockをチェインから削除すると、うまく回らない可能性がある問題修正。
+ さらに、blockをメモリから解放すると危険な問題も修正。
+
+ ・foreach内で関数を呼ぶ前にblockがチェインから外れてないかチェック。
+ ・foreachに入ったときにロックしてメモリから解放されないようにする。
+ これはユーザーがfreeじゃなくmap_freeblockによって解放するように
+ プログラムする必要がある。(ループから呼ばれる可能性のある関数を作る
+ 場合のことで、普通はfreeでもいちおう動く。)
+ ・map_foreachinmoveareaについては改良していないが、
+ このループでblockを削除することはありえない気がするのでいいとする。
+
+ これは今後を見越した改良であって、現在の不安定さを直すものではない。
+ (現在はforeach内でメモリを解放していない…はずなので。
+ ただ、スキルユニットなど一時オブジェクトを多用し始めると効果がある)
+
+ map.c
+ map_freeblock(),map_freeblock_lock(),~_unlock()追加。
+ map_delobject()のfree()をmap_freeblock()に置換。
+ map_foreachinareaでロックと安全性チェック。
+ party.c
+ party_foreachsamemap()でロックと安全性チェック
+
+
+・スキルユニット機構実装
+ 設置系のスキルのための機構実装。実際のスキルの実装はまだです。
+
+ skill.c
+ なんかもう色々追加しました。
+ map.c
+ do_init()でdo_skill_init()を呼ぶように。
+ map.h
+ struct skill_unit,skill_unit_groupなど追加。
+ map_session_dataの書き換えなど。
+
+・その他細かいところを修正したと思うけど忘れました。
+
+----------
+//0264 by nabe
+
+・$charanameを喋るNPCと話した時、map鯖が落ちることがあるバグを修正しました。
+ script.c
+ replacestr()がおかしかったのを手直ししました。
+
+----------
+//0263 by nabe
+
+・露店開設中にカートアイテムを出し入れできないよう修正
+ pc.c
+ pc_putitemtocart(),pc_getitemfromcart()に、露店判定を追加
+
+・露店アイテム購入のチェックを追加
+ vending.c
+ vending_purchasereq()で諸々の条件判定を追加
+
+----------
+//0261 by 胡蝶蘭
+
+・拡大鏡、イグドラシルの葉が実装されました
+ スクリプトにitemskillコマンド作成。一時的にスキルが使用できます。
+
+ (map/)
+ script.c
+ buildin_itemskill()の追加など。
+ skill.c
+ アイテムスキルならSPなどを検査&消費しないように修正
+ clif.c/clif.h
+ clif_item_skill()の追加。
+ (db/)
+ item_db.txt/item_db2.txt
+ スキル使用アイテムのスクリプト修正
+
+・パーティスキルの実装
+ アンゼルス、マグニフィカート、グロリア、アドレナリンラッシュが
+ 画面内のパーティ全員に効果を及ぼすようになりました。
+
+ skill.c
+ skill_castend_nodamage_id()の該当個所の修正
+ party.c
+ party_foreachsamemap()の修正
+
+・スキル関係の修正
+ キリエエレイソンが即時発動になっているのを修正。
+ ストーンカースでエフェクトが存在しないバグ修正。
+
+ (db/)
+ skill_db.txt
+ キリエエレイソイン修正
+ (map/)
+ skill.c/skill.h
+ skill_check_condition()追加。スキル使用条件検査の一本化。
+ skill_castend_nodamage_id()でストーンカース修正
+
+・スクリプトのコードを整理
+ get_val()でconst.txtの定数を所得できるように修正。
+
+ (map/)
+ script.c
+ get_val()の修正(const.txtのtype==0の値が所得可能に)
+ bonus(),bonus2()などの修正。
+ (db/)
+ const.txt
+ type=1である必要が無いものを0に。
+ item_db.txt/item_db.txt
+ const.txtの変更に伴う修正。
+
+----------
+//0260 by 胡蝶蘭
+
+・戦闘関係の設定がファイルに書けるになりました
+ map鯖の第2引数にファイル名が設定されていると、それを使い、
+ 設定されてない場合は "conf/battle_athena.cnf"を使います。
+
+ あと、一応範囲攻撃スキルについて説明。
+ 鯖が常にPVPに設定されている場合、パーティメンバじゃないPCにも範囲攻撃が
+ あたります。嫌な場合はパーティを組むか、常にPVPをoffにして下さい。
+ 常にPVPがoffでも、@pvpでpvpフラグを入れた人の間では攻撃が当たります。
+ ただし、一度pvpをonにすると、リログするまでonのままなので注意。
+
+ (conf/)
+ battle_athena.cnf
+ 中に説明書いてるので各自好きなように書き換えてください。
+
+ (map/)
+ battle.c/battle.h
+ struct Battle_Configの定義。
+ battle_config_read()など追加。
+ skill.c
+ CASTFIX,DELAYFIXの廃止とBattle_Configによる修正の追加。
+ atcommand.c
+ @pvpコマンドでpvpフラグをセットするように。
+ (鯖設定の常にPVPがoffの時、両人がpvpをonにしてたら戦闘可能)
+ map.c/map.h
+ struct map_session_dataにpvp_flagを追加
+ do_init()でbattle_config_read()を読むように。
+
+・戦闘関係のコードが少し整理されました
+ battle.c/battle.h
+ battle_weapon_attack()追加。
+ battle_calc_weapon_attack()の引数変更
+ battle_calc_attack()を追加してbattle_calc_*_attack()を一本化。
+ skill.c/skill.h
+ skill_weapon_attack(),~_magic_~(),~_misc_~()の廃止、
+ skill_attack()に一本化。
+ pc.c/mob.c
+ 攻撃処理をbattle_weapon_attack()に一本化。
+
+・アイテム鑑定スキルを実装
+ 商人のスキルの方です。虫眼鏡はまだです。
+
+ skill.c
+ スキル処理追加
+ pc.c/pc.h
+ pc_item_identify()追加
+ clif.c/clif.h
+ clif_item_identify_list(),clif_item_identified()追加
+ clif_parse_ItemIdentify()追加
+
+・スキルデータベースのコメント修正
+ (db/)
+ skill_db.txt
+ 商人のスキルのコメントがずれていたのを修正
+
+----------
+//0259 by れあ
+・mob_db.txtの修正
+ 亀島モンスターやBOSSのステータス調整
+ 亀島モンスに適当にドロップを付けました。
+ 本鯖と異なる物を落とす場合もあります。
+
+----------
+//0258 by 胡蝶蘭
+
+・パーティで一度公平にしたら各自所得に戻せないバグ修正
+ (char/)
+ int_party.c
+ mapif_parse_PartyChangeOption()の判定修正
+
+・スキルの追加実装(主に範囲攻撃系)
+ ナパームビート(分散対応)、ファイヤーボール、
+ サンダーストーム、ヘブンズドライブ、
+ ブリッツビート(自動鷹込み)、スチールクロウ
+ スキンテンパリング
+
+ (db/)
+ skill_db.txt/skill_tree.txt
+ 一部修正
+ (map/)
+ battle.c/battle.h
+ battle_check_target()を追加。対象になるかを検討する。
+ battle_calc_magic_damage()の引数変更。ダメージ分散処理追加。
+ battle_calc_misc_damage()追加。
+ battle_calc_weapon_damage()修正。
+ clif.c/clif.h
+ clif_skill_damage(),clif_skill_damage2()の引数変更。
+ clif_skill_poseffect()追加。
+ skill.c/skill.h
+ skill_weapon_attack(),skill_magic_attack()に微妙に処理を纏めた.
+ skill_area_sub()追加。範囲スキル用。
+ skill_area_sub_count()追加。skill_area_sub()用、敵カウント。
+ skill_castend_damage_id()修正。引数と処理を追加。
+ skill_castend_nodamage_id()修正。引数と処理を追加。
+ skill_misc_attack()追加。
+ skill_additional_effect()修正(自動鷹)
+ skill_castend_pos()修正。
+ skill_castend_pos2()追加。
+
+・弓で攻撃したとき計算にDEXでなくSTRが使われる問題を修正。
+ battle.c
+ battle_calc_weapon_damage()修正。
+
+----------
+//0257 by 胡蝶蘭
+
+・item_db.txtの職業フラグと、カードの装備個所フラグを修正
+ 装備品はI-Athenaのデータを参考にして機械的にコンバートさせました。
+ I-Athena側にない装備品は、あきらかに変なのは修正しましたが、
+ 知らないものが多すぎて、ほとんど放置です。
+ カードは、武器用カードの装備個所が0になってるのを2(左手)に修正。
+ 両手武器の場合は別に判定してるので両手武器も問題ないはず。
+
+ (db/)
+ item_db.txt/item_db2.txt
+ 該当個所修正
+
+・カード追加実装
+ スタンなどの追加効果、それらへの耐性系統、オークヒーローカード実装
+
+ (db/)
+ item_db.txt/item_db2.txt
+ スクリプトの修正
+ (map/)
+ map.h
+ struct map_session_dataにaddeffなどのメンバを追加
+ pc.c
+ pc_calcstatus()、pc_bonus2()の修正
+ pc_attack()でskill_additional_effct()を呼ぶように。
+ skill.c/skill.h
+ skill_additional_effect()でカードによる判定追加
+ skill_status_change_start()で耐性を付けた。
+ battle.c
+ battle_calc_weapon_attack()でオークヒーローカード
+ (クリティカル耐性)の処理を追加
+
+・回避判定の修正
+ 攻撃者がPCの場合、最大命中率95%制限をなしにしました。
+ battle.c
+ battle_calc_weapon_attack()を修正
+
+
+・完全回避を実装
+ へんてこな処理してます&計算式適当です。
+
+ battle.c
+ battle_calc_weapon_attack()に処理追加。
+
+・倉庫を開いたままログアウトしたときmap鯖内では開きっぱなしになってる問題を修正
+ storage.c
+ storage_storage_quitsave()を修正
+
+・@item,@monster,@produceで名前指定できるように変更
+ 英語名、日本語名どちらでもOK。英語の場合は大文字小文字区別しません。
+
+ atcommand.c
+ 該当個所修正
+ itemdb.c/itemdb.h
+ itemdb_searchname(),itemdb_searchname_sub()追加
+ mob.c/mob.h
+ mobdb_searchname()追加
+
+・@refineで上げる数値を指定できるように変更
+ atcommand.c
+ 該当個所修正
+
+・@produceによる製造時のエフェクトを正しいものに修正
+ clif.c/clif.h
+ clif_produceeffect()追加
+ atcommand.c
+ 該当個所修正
+
+・露店スキル使用時の処理を少し修正
+ skill.c
+ skill_castend_id()でなく、skill_castend_nodamage_id()で
+ 露店開設を呼ぶようにした。
+
+・stricmpの変わりにstrcasecmpを使うようにした
+ (_WIN32か__EMX__が定義されているとstricmpを使います)
+
+ (char/)
+ int_party.c
+ (map/)
+ itemdb.c/mob.c
+ マクロ定義の修正など
+
+・スキルを少し修正
+ グリムトゥースがハイディングで使えない問題修正
+ 武器研究の命中修正を実装
+
+ skill.c
+ skill_use_id()の修正
+ pc.c
+ pc_calcstatus()で武器研究に従って命中修正
+
+----------
+//0256 by nabe
+
+・露店アイテム購入のバグ修正
+ clif.c
+ clif_vendinglist()で売り切れたアイテムは表示しないように
+
+----------
+//0255 by nabe
+
+・露店アイテム購入のバグ修正
+ vending.c
+ vending_purchasereq()でzeny,weight部分修正
+
+----------
+//0254 by nabe
+
+・露店を実装
+ vending.c/vending.h
+ 新規追加。露店メイン処理
+ skill.c
+ skill_castend_id()に露店開設スキル処理を追加
+ clif.h/clif.h
+ 露店関連パケット処理を追加
+ map.h
+ struct map_session_dataに、
+ int vender_id;
+ int vend_num;
+ char message[80];
+ struct vending vending[12];
+ を追加
+
+----------
+//0253 by 胡蝶蘭
+
+・stricmp未定義エラーがでる環境用の修正
+ エラーが出た場合、int_party.cの最初のマクロ定義のコメント化のうち、
+ どちらかを外してやり直してみると、うまくいくかも。
+ 最悪、下を有効にしたらうまくいくはず。(大文字小文字を区別するようになります)
+
+ (char/)
+ int_party.c
+ コメント化済みのマクロ定義追加
+
+----------
+//0252 by 胡蝶蘭
+
+・カードの一部実装
+ (ステータス変化全般、武器属性、スキルはすでに実装済み)
+ 防具属性、詠唱時間変化、属性攻撃耐性、種族耐性、種族追加ダメージ、
+ 属性追加ダメージ、サイズ追加ダメージ、MAXHP、MAXSP増減、使用SP変化系、
+ フェン、ドレイク、ホルン、深淵の騎士、黄金蟲、オシリスカードを実装
+
+ (db/)
+ const.txt
+ bonus用の定数追加、bonus2の定数も追加
+ item_db.txt/item_db2.txt
+ カードのスクリプト追加
+ (map/)
+ map.h
+ struct map_session_dataにhprateなど多数メンバ追加
+ script.c
+ bonus2コマンド追加
+ buildin_bonus2()追加
+ pc.c/pc.h
+ pc_bonus2()追加
+ pc_bonus()の処理追加
+ pc_calcstatus()で各種追加メンバの初期化を行うようにし、
+ hprateやsprateに従いmax_hp,max_spの調整もするように変更。
+ pc_makesavestatus()でオシリスカード修正
+ skill.c
+ skill_castfix()でcastrateに従い、詠唱時間を調整。
+ skill_castend_id()でdsprateに従い、使用SPを調整。
+ skill_castend_nodamage_id()でカード修正を追加
+ battle.c
+ battle_calc_weapon_attack()でカード修正を追加
+ battle_calc_magic_attack()でカード修正を追加
+ battle_damage()でフェンカード修正を追加
+
+・ステータス割り振りの表示上の問題修正
+ STRを上げてもATKが変わらない問題、INTを上げてもMATKが変わらない問題修正
+
+ map.h
+ struct map_session_dataにmatk1,matk2メンバ追加
+ pc.c
+ pc_calcstatus()の修正
+ clif.c
+ clif_initialstatus()の修正
+ battle.c
+ battle_calc_magic_attack()の修正
+
+
+----------
+//0251 by nabe
+
+・0250のバグ修正など
+ カートを付けずにログインまたはマップ移動した後にカートを付けると、
+ カートの中身が2倍の量に表示されてしまっていたのを修正。
+ カートのアイテム数を更新するように修正。
+ pc.h/pc.c
+ pc_iscarton()マクロを追加
+ pc_cart_additem(),pc_cart_delitem()にそれぞれ
+ sd->cart_num++;とsd->cart_num--;処理を追加
+ clif.c
+ clif_parse_LoadEndAck()で、
+ カートを付けているときのみカート情報を送信するようにした
+
+----------
+//0250 by nabe
+
+・カートOFF、チェンジカート実装。
+ (map/)
+ pc.c/pc.h
+ pc_setcart()を追加
+ script.c
+ buildin_setcart()を追加
+ スクリプトコマンド「setcart;」でカートがつく
+ clif.c/clif.h
+ clif_parse_CartOff()追加。(カートをはずす)
+ clif_parse_ChangeCart()追加。(チェンジカートのカート選択)
+ (conf/)
+ npc_town_kafra.txt
+ カートサービスを「setcart;」に置換
+
+
+----------
+//0249 by 胡蝶蘭
+
+・パーティのデータベースの矛盾を出来るだけ抑えるように。
+ 複数パーティに所属してるデータの検査、追加に失敗したときに脱退など。
+
+ (char/)
+ int_party.c
+ party_check_conflict(),party_check_conflict_sub(),
+ mapif_parse_PartyCheck()追加
+ inter.c
+ パケット長リストに0x3028追加
+ INTER鯖パケット.txt
+ パケット0x3028追加
+ (map/)
+ party.c/party.h
+ party_check_conflict()追加。
+ party_invite()で同アカウント所属チェックを行うように。
+ party_member_added(),party_send_movemap()で
+ party_check_conflict()を呼ぶように。
+ intif.c/intif.h
+ intif_party_checkconflict()追加
+
+・パーティの座標、HP通知を実装
+ 変化があれば1秒に一回送信。
+
+ map.h
+ struct map_session_dataにparty_x,~_y,~_hpの3メンバ追加
+ party.c/party.h
+ party_send_xyhp_timer_sub(),party_send_xyhp_timer(),
+ party_send_xy_clear(),party_send_hp_check()追加。
+ party_recv_movemap()でsd->party_*を初期化するように。
+ clif.c/clif.h
+ clif_sendのPARTY*フラグを有効に。
+ (PARTY,PARTY_SAMEMAP,PARTY_AREA,PARTY*_WOSの6種)
+ clif_party_xy(),clif_party_hp()追加。
+ pc.c/pc.h
+ pc_authok()でsd->party_*を初期化するように。
+ pc_walk()でパーティメンバが視界内に入ってきたときに
+ party_hpを初期化するように。
+
+・パーティのexp公平分配を実装
+ party.c/party.h
+ party_share_exp()追加
+ mob.c/mob.h
+ mob_damage()で公平分配処理追加
+
+・スキルの修正と追加実装
+ バッシュ、ピアースの命中率修正実装
+ ピアースのサイズによる回数変動実装(プレイヤーは中型と仮定)
+ バッシュ、ソニックブロウのスタン効果実装
+ ストーンカース、フロストダイバ、インベナム、
+ アスペルシオ、エンチャントポイズン、レックスデビーナ実装
+
+ skill.c
+ skill_additional_effect()追加
+ skill_castend_damage_id()該当個所修正
+ skill_castend_nodamage_id()該当個所修正
+ skill_use_id(),skill_use_pos()でスキルが使用できないときは
+ 何もしないように修正。
+ battle.c
+ battle_calc_weapon_attack()の該当個所修正
+ battle_get_dmotion(),battle_get_attack_element()修正
+ clif.c
+ clif_mob007b(),clif_mob0078でoptionなどを送るように修正
+ pc.c
+ pc_attack(),pc_walktoxy()で行動不可能なときは何もしないように。
+ mob.c
+ mob_stopattack()修正
+ mob_ai_sub_hard()で行動不能なときは何もしないように。
+
+・攻撃射程の判定追加
+ 相手が移動して届かないときは、移動パケットを送信
+
+ clif.c/clif.h
+ clif_movetoattack()追加
+ pc.c
+ pc_attack()で射程判定、届かないならclif_movetoattack()を呼ぶ。
+
+----------
+//0248 by nabe
+
+・パーティ作成時に既にパーティに所属していた場合の処理を追加
+ party.c
+ party_create()に、既にパーティに所属していた場合
+ clif_party_created(sd,2)を追加
+
+・ディスカウント、オーバーチャージを計算
+ pc.c
+ pc_modifybuyvalue()、pc_modifysellvalue()で値段を計算
+
+
+----------
+//0247 by 胡蝶蘭
+
+・パーティ実装
+ 公平分配は設定しても実際には公平分配されてない。
+ パーティスキルはまだ自分にしかかからない
+
+ (char/)
+ int_party.c/int_party.h
+ まともに実装
+ inter.c
+ パケット長リスト追加
+ INTER鯖パケット.txt
+ パーティのパケット追加
+ (map/)
+ party.c/party.h
+ 新規追加
+ map.c/map.h
+ struct map_session_dataにparty_sendedメンバ追加
+ do_init()でdo_party_init()を呼ぶ
+ map_quit()でparty_send_logout()を呼ぶ
+ intif.c/intif.h
+ パーティ関連の部分追加
+ clif.c/clif.h
+ パーティ関連の部分追加
+ clif_parse_LoadEndAck()でparty_send_movemap()を呼び出す
+ pc.c
+ pc_authok()でparty_request_info()を呼ぶようにし、
+ party_sendedを初期化するように。
+
+・詠唱妨害されたとき画面上で詠唱をやめるように修正
+ (map/)
+ skill.c
+ skill_castcancel()で詠唱中止パケ(合ってるのかな?)を送信
+
+・超遠距離攻撃だと敵が反撃してこない問題を修正
+ (map/)
+ map.h
+ struct mob_dataにmin_chaseメンバ追加(最低追跡距離)
+ mob.c
+ mob_attack()でmin_chaseを13に初期化する
+ mob_walk()でmin_chaseが13より大きいなら少しずつ引いていく
+ mob_ai_sub_hard()でmin_chaseにより追跡を判断、
+ 攻撃を受けた時にmin_chaseを彼我距離+13に設定
+
+----------
+//0246 by 胡蝶蘭
+
+・カート実装
+ map.h
+ struct map_session_dataにcart_weightなど4つメンバ追加
+ pc.c/pc.h
+ pc_cart_additem(),pc_cart_delitem(),
+ pc_cart_putitemtocart(),pc_cart_getitemfromcart()追加
+ pc_calcstatus()でカート重量や個数などの情報を計算
+ clif.c/clif.h
+ clif_cart_itemlist(),clif_cart_equiplist(),
+ clif_cart_additem(),clif_cart_delitem(),
+ clif_parse_PutItemToCart(),clif_parse_GetItemFromCart()追加
+ clif_parse_LoadEndAck()でカート情報、内容送信
+ clif_updatestatus()でSP_CARTINFOでカート情報を送れるように
+ clif_parse_MoveFromKafraToCart(),~ToKafraFromCart()追加
+ storage.c/storage.h
+ storage_additem(),storage_delitem()追加
+ storage_storageadditemfromcart,~getitemtocart()追加
+ storage_storageadd(),storage_storageget()で、
+ storage_additem(),storage_delitem()を呼ぶように変更
+
+・スキル詠唱ディレイなど実装
+ clif.c
+ clif_parse_WalkToXY()にskilltimerによる移動可否を追加
+ clif_parse_UseSkillToId(),clif_parse_UseSkillToPos()に
+ canmove_tickによる攻撃可否追加
+ skill.c/skill.h
+ skill_castcancel()を追加
+ skill_use_id(),skill_use_pos()でディレイ時間計算および、
+ canmove_tickの設定
+ battle.c
+ battle_damage()でskill_castcancel()の呼び出し追加
+
+・0245のアイテムデータベース修正の通常価格版用意
+ (db/)
+ item_db.txt
+ item_db2.txtに前のitem_db.txtの価格情報をマージしただけです。
+
+----------
+//0245 by れあ
+ また例によって、相場修正版のみです。
+・item_db2.txtの修正
+ 亀島新装備の効果を実装しました。
+ ウィザードが杖を装備できないのを修正
+ ウィザードがマジシャンハット、とんがり帽を
+ 装備できないのを修正
+----------
+//0244 by れあ
+・mob_db.txtの修正
+ 亀島モンスターのデータをいれました。
+ ただ、間違ってる部分がかなりあります。
+ Speed,Delayは適当です。
+ また、わからないのは韓国版のデータなので
+ Mdefとか異常に高い気も。
+----------
+//0242 by 胡蝶蘭
+
+・取引関連の変更と修正
+ 取引に使う変数をmmo_charstatusからmap_session_dataに移動しました
+
+ (common/)
+ mmo.h
+ struct mmo_charstatusから取引関係のメンバ削除
+ (map/)
+ map.h
+ struct map_session_dataに取引関係のメンバ追加
+ trade.c
+ 構造体の変更にあわせて修正
+ map.c
+ map_quit()で取引中ならキャンセルするようにした
+
+・カードの組み合わせ実装
+ pc.c/pc.h
+ pc_insert_card()でカードを実際に挿入する
+ clif.c/clif.h
+ clif_parse_UseCard(),clif_parse_InsertCard()追加
+ clif_use_card(),clif_insert_card()追加
+
+・一部のカード効果実装
+ スキル習得カード、ステータスボーナスカードなど。
+
+ (map/)
+ map.h
+ struct map_session_dataに装備カード検索用の変数追加
+ pc.c/pc.h
+ pc_calcstatus()でカードの処理追加
+ あるIDのカードが装備済みか検索するための関数、
+ pc_equip_card(),pc_equip_wcard(),pc_equip_dcard()を用意
+
+・重量オーバー/鷹/騎乗アイコンの表示
+ (map/)
+ pc.c/pc.h
+ pc_checkweighticon()追加、重量のアイコン処理
+ clif.c
+ clif_updatestatus()で重量送信時にpc_checkweighticon()の実行
+ clif_changeoption()で鷹と騎乗のアイコン処理
+
+・0241のアイテムデータベース修正の通常価格版用意
+ (db/)
+ item_db.txt
+ item_db2.txtに前のitem_db.txtの価格情報をマージしただけです。
+
+
+----------
+//0241 by れあ
+・アイテムデータベースの修正
+ 新頭装備のグラフィックが異なるのを修正
+ 装備の効果の実装
+ 上段・中段が間違ってたのを少し修正
+ 速報版ってことで間違え多いかも。
+ テストもあまりしてません。
+ あと、相場調整版しか用意してません。
+
+ item_db2.txt
+ 亀島にあわせて調整
+
+----------
+//0240 by nabe
+
+・取引を実装しました。
+ (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;
+ を追加
+ (map/)
+ clif.c,clif.h
+ clif_traderequest() : 0xe5(取り引き要請受け)
+ clif_tradestart() : 0xe7(取り引き要求応答)
+ clif_tradeadditem() : 0xe9(相手方からのアイテム追加)
+ clif_tradeitemok() : 0xea(アイテム追加成功)
+ clif_tradedeal_lock() : 0xec(ok押し)
+ clif_tradecancelled() : 0xee(取り引きキャンセル)
+ clif_tradecompleted() : 0xf0(取り引き完了)
+ を追加。
+ trade.c,trade.h
+ trade_traderequest() : 取引要請を相手に送る
+ trade_tradeack() : 取引要請
+ trade_tradeadditem() : アイテム追加
+ trade_tradeok() : アイテム追加完了(ok押し)
+ trade_tradecancel() : 取引キャンセル
+ trade_tradecommit() : 取引許諾(trade押し)
+ を実装。それぞれclif.c::clif_parse_Trade*から呼ばれる。
+
+
+----------
+//0238 by れあ
+
+・速度変更に関して少し修正
+ atcommand.c
+ 速度変更の部分を少し修正
+ これで一応動くみたい?
+ pc.c
+ ついでにですが
+ 速度上昇で歩行速度が上がるようにした。
+ 一応動くみたいですが適当なので
+ おかしなところがあればお願いします。
+
+----------
+//0236 by nabe
+
+・スクリプトでmenuで飛んだ先で直ぐmenuを書くと誤動作するバグを修正しました。
+ script.c
+ goto動作の後のRERUNLINEに対処するため、
+ goto,menuで飛んだ後には、st.state==GOTOでrerun_posを更新。
+
+
+----------
+//0233 by nabe
+
+・アイテムを装備する際の装備判定を追加しました。
+ pc.c
+ pc_equipitem()に装備判定(性別判定、装備LV判定、職業判定)追加
+
+・重量判定スクリプトコマンドを追加しました。
+ if (checkweight(アイテムID,アイテム数量))
+ でそのアイテム×数量を取得できるかどうか判定できます。
+ script.c
+ buildin_checkweight()を追加
+
+・スクリプト詰め合わせをathena dev-2.1.1用に移植しました。
+ map_athena1.cnf
+ npc_event_*.txt イベントNPC
+ npc_job_*.txt 転職NPC
+ npc_mob_job.txt 転職用モンスター
+ npc_town_*.txt 町NPC
+
+
+----------
+//0232 by 胡蝶蘭
+
+・装備ボーナスが実装されました
+ ボーナスに使うスクリプト(bonus,skill)を実装
+ スクリプトはI-Athenaのデータを使ってコンバートしました。
+ (まだカードには対応していません)
+
+ (common/)
+ mmo.h
+ struct skillにflagメンバ追加(カードスキルかどうか)
+ (map/)
+ map.h
+ struct map_session_dataにatk_eleなどのメンバ追加
+ enumでSP_ATKELEMENTなど追加
+ pc.c
+ pc_bonus()の実装、pc_skill()追加
+ script.c
+ buildin_skill()の追加
+ buildin_bonus()の修正(const.txtの定数が使えるように)
+ clif.c
+ clif_skillinfoblock()の修正(カードスキルは上げられない)
+ (db/)
+ const.txt
+ bonusに使うための定数追加
+ item_db.txt
+ 標準のデータに装備スクリプトを追加したもの
+ item_db2.txt
+ 0213で相場調整されたデータに装備スクリプトを追加したもの
+
+・詠唱関係のバグが修正されました
+ (map/)
+ skill.c
+ skill_use_id(),skill_use_pos()を修正
+ (db/)
+ cast_db.txt
+ 少し追加(ブリッツビートなど)
+
+・攻撃属性が適用されるようになりました
+・星のかけらの修正が適用されるようになりました
+ map.h
+ struct map_session_dataにstarメンバ追加
+ pc.c
+ pc_calcstatus()で属性初期化
+ battle.c
+ battle_get_element(),battle_get_attack_element()修正
+ battle_calc_weapon_damage()の該当個所修正
+
+・杖装備時にMATK+15%が適用されるようになりました
+ battle.c
+ battle_calc_magic_damage()の該当個所修正
+
+・製造武器のキャラクター名が正しく表示されるようになりました
+
+ 原理としては、map鯖内のキャラクタ名データベースを検索して、
+ 存在すれば即返信、存在しなければchar鯖に解決要求を出す。
+ このとき、名前を要求してきたクライアントのIDをデータベースに登録する。
+ char鯖から名前データがくると、対応するデータベースに名前をセットし、
+ 要求してきたクライアントに名前を返信する。
+ 未解決の同じキャラID解決を複数のクライアントが要求してきた場合、
+ 最後に要求してきたクライアントにしか返信しないが、
+ 返信されなかったクライアントは数秒後に再び解決要求を送ってくる
+ (そしてそのときはmap鯖から即返信される)ので大きな問題はない。
+
+ パケット0x2b08,0x2b09でmap鯖とchar鯖が通信してます。
+
+ (char/)
+ char.h
+ UNKNOWN_CHAR_NAME定義(キャラデータが無いときに返される名前)
+ char2.c
+ parse_frommap()にパケット0x2b08の処理を追加
+
+ (map/)
+ chrif.c/chif.h
+ chrif_searchcharid()追加
+ chrif_parse()で0x2b09の処理追加
+ map.c
+ データベース charid_db 宣言
+ struct charid2nick宣言。nickは名前、
+ req_idは0で名前解決済み、0以外で未解決で解決待ちのブロックID
+ map_addchariddb()追加。データベースへ名前登録、要求に返信。
+ map_reqchariddb()追加。要求があったことをデータベースへ追加。
+ map_charid2nick()でデータベースの検索
+ do_init()で charid_db の初期化を追加
+ clif.c/clif.h
+ clif_parse_SolveCharName(),clif_solved_charname()追加
+
+
+----------
+//0231 by nabe
+
+・スクリプトで mes "$charaname"; 等と書くとキャラの名前をしゃべる機能を追加。
+ script.c
+ buildin_mes()内で
+ mes内部の$charanameをキャラの名前に置換する処理を追加。
+ #同様にして変数の値などをmes内部で表示するようにすることも
+ #できますが、これについては未実装です・・・。
+ #とりあえず
+ # mes Global_Val;
+ #のように直接書くことで対処してください。
+
+・敵に攻撃されたときにmap鯖が落ちることがあるのを修正。
+ battle.c
+ battle_calc_weapon_attack()の
+ ディバインプロテクションのスキルチェック部分、
+ pc_checkskill(sd,22)を、
+ pc_checkskill(tsd,22)に。
+
+----------
+//0230 by nabe
+
+・回避率増加スキルをステータスに反映。
+ pc.c
+ 0228でのpc_calcstatus()の回避率増加分を元に戻しfleeを増加。
+ battle.c
+ battle_calc_weapon_attack()のhitrate計算で回避率保証を計算。
+・グローバル変数を実装。
+ '@'もしくは'l'で始まらない変数名は、全てグローバル変数とみなされます。
+ mmo.h
+ struct mmo_charstatus に
+ int global_reg_num;
+ struct global_reg global_reg[GLOBAL_REG_NUM];
+ を追加。
+ pc.c
+ pc_readglobalreg(),pc_setglobalreg()を追加。
+ script.c
+ get_val(),buildin_input(),buildin_set()に
+ グローバル変数のための処理を追加。
+ char2.c
+ mmo_char_tostr(),mmo_char_fromstr()に
+ グローバル変数のための処理を追加。
+
+----------
+//0229 by 胡蝶蘭
+
+・一部スキルの実装/修正
+ ディバインプロテクション、デーモンベイン、ビーストベイン実装
+ エナジーコート修正(魔法による攻撃にはスキルが働かないように修正)
+ 武器攻撃系スキル修正(エフェクトを通常攻撃からスキルに変更)
+
+ battle.c
+ battle_addmastery()でベイン系追加
+ battle_calc_damage()でエナジーコート修正
+ skill.c
+ skill_castend_damage_id()の武器攻撃系スキルの部分を修正
+
+・敵攻撃計算をPCのものと一本化
+ これでPCvsPC、PCvsMOB、MOBvsPC、MOBvsMOB(!?)を1つの関数で計算できます
+
+ battle.c/battle.h
+ battle_calc_weapon_attack()を修正
+ battle_calc_weapon_attack_pc(),~mob()を削除
+ mob.c
+ mob_attack()で計算にbattle_calc_weapon_attack()を使うように修正
+
+・詠唱時間データがない場合のデフォルトの詠唱時間を0に変更
+ 今までは1秒にしてましたが、バッシュとかがおかしくなるので。
+ (バッシュとかのデータを用意すればこうしなくても直るんですが)
+
+ pc.c
+ pc_readdb()で1000msをセットするのを止めた
+
+・遠距離攻撃してこないバグ、その他を修正
+ mob.c
+ mob_attack()の射程を修正し忘れていた
+ mob_ai_sub_hard()で射程距離外の時、無移動の敵は
+ ターゲットを外すようにした
+
+
+----------
+//0228 by nabe
+
+・ダブルアタックのSkillIDを修正。
+ battle.c
+ battle_calc_weapon_attack_pc()で
+ pc_checkskill(sd,49) -> pc_checkskill(sd,48)に。
+・回避率向上を陽に表さない
+ pc.c
+ pc_calcstatus()でのfleeの回避率向上分を削除し、
+ mob.c
+ mob_attack()のhitrate計算で回避率向上を計算。
+・盗蟲、盗蟲雌、盗蟲雄を正常化。
+ npc_monster3J.txt
+ mob_db.txtに合わせて、たぶん正しいと思われるIDに修正。
+ 盗蟲 1006 -> 1051
+ 盗蟲雌 1017 -> 1053
+ 盗蟲雄 1021 -> 1054
+・デバッグメッセージの消し忘れ(?)を削除。
+ pc.c
+ printf("pc.c 63 clif_clearchar_area\n");をコメントアウト
+
+----------
+//0227 by 胡蝶蘭
+
+・一部のスキル効果が実装されました
+ HP回復向上、SP回復向上、マグニフィカート、
+ ハイディング、クローキング、死んだふり、応急手当
+
+ map.h
+ struct map_session_data に inchealtick メンバ追加
+ pc.c
+ pc_spheal()でマグニフィカート処理追加
+ pc_natual_heal_sub()で回復向上スキル処理追加
+ pc_authok()でinchealtickを初期化するように変更
+ pc_walk()でincheaktickを再設定するように変更
+ pc_walk()でクローキングの終了条件を調査するように変更
+ pc_walktoxy()で状態によって移動不可能にした
+ skill.c/skill.h
+ skill_status_change_start(),~timer(),~end()に処理追加
+ skill_check_cloaking()追加、クローキングの終了条件を検査
+ battle.c/battle.h
+ battle_stopattack()追加
+ battle_calc_weapon_attack()で攻撃を止める処理追加
+ mob.c
+ mob_ai_sub_hard()で攻撃を止める処理追加
+
+・通常攻撃処理、対MOB、対PCを共用に。
+ pc.c
+ pc_attack_mob(),pc_attack_pc()削除
+ pc_attack()に攻撃処理追加
+
+・モンスターの行動の一部実装
+ アクティヴ、無反応、移動しない、遠距離攻撃一部
+
+ mob.c
+ mob_ai_sub_hard()に行動追加
+ mob_ai_sub_hard_activesearch()追加、近くのPCへの策敵
+
+・オーバートラストの増加倍率が100倍になっているバグが修正されました
+ battle.c
+ battle_calc_weapon_attack()で、該当個所を修正
+
+
+----------
+//0226 by 胡蝶蘭
+
+やっぱりテストはあんまりしていません
+
+・一部のスキル効果が実装されました
+ 速度増加、エンジェラス、キュアー
+ インポシティオマヌス、サフラギウム、リカバリー、グロリア
+ ふくろうの目、ワシの目、集中力向上、回避率向上、解毒
+ 所持量増加、ラウドボイス、アドレナリンラッシュ、オーバートラスト
+ ウェポンパーフェクション、マキシマイズパワー、2HQ
+
+ (map/)
+ map.h
+ struct map_session_dataにwatk2,def2など追加
+ pc.c
+ pc_calcstatus()にスキル修正追加
+ atk2なども送信するように変更
+ battle.c/battle.h
+ battle_get_def2()など多数追加
+ battle_calc_weapon_damage()で敵減算防御の所得を
+ battle_get_def2()に変更
+ battle_calc_magic_damage()で敵減算魔法防御の所得を
+ battle_get_mdef2()に変更
+ battle_calc_weapon_damage()でスキル修正を追加
+ skill.c/skill.h
+ skill_use_nodamage_id()の該当個所追加
+ skill_status_change_start()の該当個所追加
+ clif.c
+ clif_updatestatus()のatk2などの処理追加
+ clif_initialstatus()でatk2などの扱い変更、aspdなど送信追加
+
+・精錬ダメージ修正/精錬防御修正が適用されました
+ (map/)
+ pc.c
+ pc_calcstatus()でwatk2とdefの追加計算追加
+ battle.c
+ battle_calc_weapon_damage()でwatk2をダメージに追加
+
+・inter鯖のパケット解析部の致命的な問題が修正されました
+ TCP/IPプログラムでやってはいけないことをそのままやってました(汗
+ inter鯖のパケット長データをinter.cに持つように修正されました。
+
+ (char/)
+ inter.c/inter.h
+ パケット長データ inter_*_packet_length[] を追加
+ パケット長チェック inter_check_length() を追加
+ mapif_parse_*()でRFIFOSKIPをなしに変更
+ int_storage.c/int_storage.h
+ mapif_parse_*()でRFIFOSKIPをなしに変更
+ int_party.c/int_guild.c
+ 仕様変更に対応させた変更
+ INTER鯖パケット.txt
+ パケット長リスト追加
+
+・ちょっとした修正
+ (char/)
+ inter.h
+ inter_cfgNameを"conf/inter_athena.cnf"に修正
+ char2.c
+ char.exe第2引数省略時、inter_cfgNameを使うように修正
+ (db/)
+ cast_db.txt
+ ホーリーライトの詠唱時間追加(ディレイは適当)
+ 詳しい人追加求む
+
+----------
+//0225 by 胡蝶蘭
+
+なんかかなり弄りましたが相変わらずテストはあんまりしてません。
+
+・スキル使用時の変数を変更
+ よく見たら最初から用意されてましたね。
+
+ map.h
+ struct map_session_dataのcast_*を削除
+ skill.c
+ cast_*の変数をskill*に変更。
+
+・ステータス異常スキルの処理を追加(効果は未実装)
+ 見かけ上、ステータス異常に掛かったりとかだけ。
+ 効果はまだなし。
+
+ skill.c/skill.h
+ skill_status_change_start(),~end(),~timer(),~clear()追加。
+ それぞれステータス異常の開始、終了、タイマ処理、全消去。
+ map.c/map.h
+ map_quit()でskill_status_change_clear()を呼ぶようにした。
+ struct map_session_dataにsc_data,sc_count追加。
+ struct mob_dataにsc_data,sc_count,option,opt1,opt2追加。
+ pc.c
+ pc_authok()でsc_data,sc_countを初期化するようにした。
+ pc_setoptionでclif_changeoption()の引数変更。
+ pc_damage()で死亡時にskill_status_change_clear()を呼ぶように。
+ mob.c
+ mob_spawn()でsc_data,sc_countを初期化するようにした。
+ mob_attack()でbattle_calc_damage()を呼ぶようにした。
+ mob_damage()で死亡時にskill_status_change_clear()を呼ぶように。
+ battle.c/battle.h
+ battle_get_*()たくさん追加。
+ battle_calc_damage()追加。最終的なダメージ計算用。
+ battle_calc_magic_attack(),battle_calc_weapon_attack()で
+ battle_calc_damage()を呼ぶようにした。
+ clif.h/clif.c
+ clif_status_change()追加。ステータス異常アイコン表示用。
+ clif_changeoption()の引数変更。
+ atcommand.c
+ clif_changeoption()を呼んでいる2ヶ所で引数変更。
+ @dieでskill_status_change_clear()を呼ぶように。
+
+・マグヌスエクソシズムの習得条件が間違っているのを修正。
+ db/skill_tree.txt
+ 該当個所修正。(レックスエーテルナの必要Lvを1に)
+
+・アクティブな敵は攻撃するとき時々ターゲットが変わるようになりました
+ mob.c
+ mob_ai_sub_hard()の攻撃されたか確認する部分に
+ アクティブなら25%の確率でターゲットが変わるように変更。
+
+・一部のスキル効果が実装されました
+ キリエエレイソン、エナジーコート、レックスエーテルナ、
+ ホーリーライト、リザレクション、ターンアンデッド、モンスター情報
+
+ skill.c/skill.h
+ skill_castend_nodamage_id()にスキルの処理を追加。
+ skill_castend_*_id()の引数を変更
+ battle.c
+ battle_calc_damage()にスキルの処理を追加。
+ battle_damage(),battle_heal()の引数変更
+ battle_calc_weapon_damage(),battle_calc_magic_damage()引数変更
+ clif.c/clif.h
+ clif_skill_estimation()追加。モンスター情報送信用
+ pc.c
+ battle_calc_weapon_damage()呼び出しの引数変更
+
+・storage.txtが無い場合inter鯖が強制終了する仕様を変更しました
+ (char/)
+ int_storage.c
+ inter_storage_init()でファイルが読めないとexitしてたのを修正
+
+
+----------
+//0224
+・2-2次職のスキルをツリーに追加しました(実装はまだです)
+ (db/)
+ skill_db.txt
+ skill_tree.txt
+
+
+----------
+//0223 by 胡蝶蘭
+・カプラ倉庫をinter鯖に対応させました
+ いままでのstorage.txtはそのまま使えます。
+ inter鯖用の設定ファイルとしてconf/inter_athena.cnfを使います。
+ (設定ファイルはchar.exeの第2引数で他のファイルを指定できます)
+
+ カプラ倉庫のinter鯖実装の概要
+
+ inter鯖はstorage.txtの全データを持つ。map鯖はアカウントが要求するまで
+ そのアカウントの倉庫データを持たない。クライアントから倉庫を開く要求が
+ あったとき、map鯖は対応するアカウントの倉庫データをinter鯖に要求する。
+ inter鯖からデータが届くとクライアントに倉庫データを送る。
+ 倉庫の出し入れはクライアントとmap鯖間の通信だけで行われる。
+ クライアントが倉庫を閉じるか終了すると、map鯖は該当アカウントの
+ 倉庫データをinter鯖に送る。このときinter鯖の応答を待たずにクライアントに
+ 倉庫クローズを送る。inter鯖は倉庫データを受け取ると、
+ 全員分のデータをファイルに保存して、map鯖に成功ステータスを返す。
+ map鯖は成功ステータスを無視する。(デバッグ用に画面に出力するだけ)
+ inter鯖終了時にも倉庫データをファイルに保存する。
+
+ map鯖でaccount2storageで新しい倉庫データを作るとき、
+ すでに閉じられている倉庫データのメモリを使いまわしたほうがメモリが
+ 節約できるかも?(これは実装していません)
+
+ (common/)
+ mmo.h
+ struct storage を map/storage.h から移動。
+ inter鯖とmap鯖両方で使用するため。
+ (char/)
+ char2.c
+ do_final()を作成、終了時にmmo_char_sync()以外にinter_save()を
+ 呼ぶようにした(これでinter_*_save()は全部呼ばれます)
+ inter_init()をchar.exeの第2引数もしくは"conf/inter.cnf"で
+ 呼ぶようにした(athena.shにinter鯖コンフィグファイルを指定できます)
+ inter.c/inter.h
+ inter_storage_init(),inter_storage_save(),
+ inter_storage_parse_frommap()を呼ぶように。
+ inter_init()にコンフィグファイル名の引数を付けた。
+ inter_config_read()追加、コンフィグファイルから
+ 倉庫とパーティー、ギルドのファイル名を読み込みます。
+ int_storage.c/int_storage.h
+ 新規追加。倉庫部分のinter鯖機能。
+ int_party.h/int_party.c/int_guild.h/int_guild.c/
+ ファイル名変数の宣言追加
+ INTER鯖パケット.txt
+ 倉庫パケットの解説追加
+
+ (map/)
+ storage.h/storage.c
+ storage_fromstr(),storage_tostr()をchar/int_storage.cに移動。
+ 同じくdo_init,do_finalでのファイル処理も移動。
+ do_final()は処理なし、do_init()は変数初期化のみに変更。
+ storage_storageopen()では単にintif_request_storage()を呼ぶだけに。
+ storage_storageclose()にintif_send_storage()を追加
+ storage_storage_quitsave()追加。クライアント終了時に
+ カプラ倉庫が開いていればintif_send_storage()を呼ぶ関数。
+ intif.h/intif.c
+ intif_parse_LoadStorage(),intif_parse_SaveStorage(),
+ intif_send_storage(),intif_request_storage()追加
+ map.c
+ map_quit()でstorage_storage_quitsave()を呼ぶように。
+
+ (conf/)
+ inter_athena.cnf
+ 新規追加。inter鯖用のコンフィグレーションファイル
+
+
+----------
+//0221 by 胡蝶蘭
+
+・スキルターゲットのIDが正しく所得できない問題修正
+ clif.c
+ clif_parse_UseSkillToId()でIDをWORDとして扱ってたのをLONGに修正
+
+・スキル詠唱時間と属性表、および魔法系スキルの属性修正実装
+ 属性ダメージ修正は battle_attr_fix() で計算します。
+ atk_elemは属性そのまま、def_elemは(属性lv*20+属性)です。
+ 詠唱時間はskill.cのCASTFIXの値を変えることで倍率を調整できます
+
+ pc.c
+ pc_readdb()でcast_db.txtとattr_fix.txtの読み込み追加
+ skill.c/skill.h
+ struct skill_db にcast,delay追加、それらのアクセサも追加
+ スキル詠唱時間を skill_get_cast() で所得するようにした
+ battle.c/battle.h
+ attr_fix_table定義
+ battle_attr_fix()追加、属性修正を計算する
+ 属性系アクセサ(battle_get_element()など)を追加
+ battle_calc_magic_damage()に属性修正を追加
+ cast_db.txt
+ 新規追加。詠唱時間とディレイのデータベース
+ 全然足りないので、誰か追加希望。
+ attr_fix.txt
+ 新規追加。属性修正テーブル
+
+・ヒールの実装
+ clif.c/clif.h
+ clif_skill_nodamage()追加、支援系や回復のエフェクト
+ skill.c/skill.h
+ skill_castend_damage_id()、skill_castend_nodamage_id()追加、
+ 攻撃系と支援/回復系で関数を分けた
+ ヒール計算マクロ skill_calc_heal() 追加
+ battle.c
+ battle_calc_magic_damage()でヒールのダメージ計算追加
+
+
+----------
+//0220 by れあ
+
+0216の修正
+HITの計算がおかしかったので修正してみました。
+間違ってたらごめんなさい。
+
+・battle.c
+ 256行目の
+ hitrate=battle_get_hit(&sd->bl) - battle_get_flee(&sd->bl) + 80;
+ がたぶん、自分のHITと自分のFLEEで計算してる気がするので
+ hitrate=battle_get_hit(&sd->bl) - battle_get_flee(target) + 80;
+ に修正しました。
+
+
+----------
+//0218 by 胡蝶蘭
+
+実際に分散させてテストしていなかったり。
+
+・map鯖分散処理用にinter鯖機能をつけてみる(今後のための拡張)
+ char鯖にinter鯖を寄生させました。複数のmap鯖間の通信に利用します。
+ map鯖を分散して処理できるようにするための機能です。
+ 今後partyやguild実装時にきっと役にたってくれるかと。
+
+ 倉庫の実装もinter鯖に移動すべきかもしれません。
+ どのキャラクターがどのmap鯖にいるか検索する機能もいるかも。
+
+ 使うパケットのIDは以下のようになります
+ map鯖=>inter鯖はパケット0x3000〜
+ inter鯖=>map鯖はパケット0x3800〜
+ パケットを作った場合は、INTER鯖パケット.txtに書いてください
+
+ この機能によるメリット
+ map鯖分散にも対応できる
+ この機能によるデメリット
+ inter鯖経由の全ての命令の動作速度が落ちる
+ (一回inter鯖まで渡すため)
+ 鯖とクライアントを同じPCで使っているとつらいかも
+
+ (char/)
+ char2.c/char.h
+ mapif_sendall()追加(全MAP鯖にパケットを送る)
+ mapif_send()追加(特定MAP鯖に送る:生存判定付き)
+ parse_frommap()でinter_parse_frommap()を呼ぶようにした
+ (inter鯖のmap鯖解析部をchar鯖に寄生させたことになる)
+ inter.h/inter.c
+ 新規追加。inter鯖の中核。
+ inter_parse_frommapでMAP鯖からのパケットを解析します。
+ int_party.h/int_party.c/int_guild.h/int_guild.c
+ 新規追加。今後のための予約。パーティやギルド機能用
+ initでデータを読んで、saveで保存すべき?
+ saveはまだ呼ばれない。parseでパケット解析。
+ common/mmo.hあたりでパーティーやギルドの構造体を
+ 定義する必要があると思われる。
+ INTER鯖パケット.txt
+ パケットのリスト
+
+ (map/)
+ intif.h/intif.c
+ inter鯖と通信する部分。
+ inter_parse()でinter鯖からのパケットを解析します。
+ inter鯖へデータを送るときはinter_fdを使います。
+ chrif.h/chrif.c
+ chrif_parse()でinter_parse()を呼ぶようにした
+ (intif.cのinter鯖解析部をchar鯖解析部に寄生させたことになる)
+
+・@kamiコマンドをinter鯖経由に変更
+ 原理としては次のような感じです
+ クライアント=>map鯖=>inter鯖=>全map鯖=>全クライアント
+
+ (char/)
+ inter.c
+ mapif_GMmessage()追加
+ (map/)
+ intif.h/intif.c
+ intif_GMmessage()追加
+ intif_parseでGMメッセージの処理を追加
+ clif.c/clif.h
+ clif_GMmessage()の引数を変更
+ atcommand.c
+ @kami部分でintif_GMmessage()を呼ぶようにした
+
+・Wisをinter鯖経由に変更
+ 原理としては次のような感じです
+
+ 送り主クライアント=>送り主map鯖=>inter鯖=>全マップ鯖=>(分岐A)
+ [分岐A]
+ 1.相手の人いるmap鯖=>相手のクライアント
+ 〃 =>inter鯖=>送り主map鯖=>送り主クライアント
+ 2.相手のいないmap鯖=>inter鯖(分岐B)
+ [分岐B]
+ 1.全map鯖が応答したinter鯖 =>送り主map鯖=>送り主クライアント
+ 2.(全部は応答してないときは、全map鯖の応答を待つ)
+
+ ものすごい複雑になってますね。
+
+ (char/)
+ inter.c
+ struct WisList 定義(Wisデータのリンクリスト)
+ add_wislist(),del_wislist(),search_wislist(),
+ check_ttl_wislist()追加,リンクリストを扱う関数群
+ mapif_wis_message(),mapif_wis_end()追加
+ (map/)
+ intif.h/intif.c
+ intif_wis_message(),intif_wis_end()追加
+ intif_parse_WisMessage()追加,intif_parse()から呼ばれるように
+ clif.c/clif.h
+ clif_wis_message(),clif_wis_end()追加
+ clif_parse_Wis()を変更,intif_wis_message()を呼ぶようにした
+
+・スキル使用時のヒット数/消費SP所得のバグ修正
+ skill.c
+ skill_get_sp(),skill_get_num()で参照する配列インデックスをlv-1にした
+
+
+----------
+//0216 by 胡蝶蘭
+
+いつもどおりテストほとんどしてないので、バグ大量かも。
+
+・0213の修正?のよくわからないところ修正
+ itemdb.c
+ コンパイルが通らないのでitemdb_equipointの引数リスト変更
+
+・Athena dev 2.1.1の適用
+ dev-2.1.1で適用された修正を適用しました
+
+ timer.c
+ 2.1.1のものと差し替え
+ script.c
+ C_NE: の修正の適用
+ README
+ 最後の文章を2.1.1のものに差し替え
+
+・スキルデータベースの修正
+ 一部の消費SPやヒット数などを修正。
+
+ skill_db.txt
+ 該当個所の修正
+
+・スキル攻撃の実装変更&追加実装
+ バッシュ、メマーナイト、ダブルストレイフィング、ピアース
+ スピアブーメラン、スピアスタブ、ボーリングバッシュ
+ ソニックブロー、グリムトゥース などの実装変更
+
+ ナパームビート、ソウルストライク、
+ ファイヤーボルト、コールドボルト、ライトニングボルト、アーススパイク、
+ ユピテルサンダー などを追加実装
+ (全て、範囲攻撃やステータス異常などは未実装)
+
+ pc.c/pc.h
+ 0213の変更をなかったことにした
+ pc_attack_mob()の修正、計算はbattle_calc_weapon_attack()に任せ、
+ その計算結果を適用するだけに変更
+ clif.c/clif.h
+ clif_skill_fail(),clif_skill_damage(),clif_skill_damage2()追加
+ それぞれ使用失敗、使用エフェクト、吹き飛ばし付き使用エフェクト
+ skill.c/skill.h
+ 0213の変更をなかったことにした(ダメージ倍率計算がおかしい)
+ skill_castend_id()にSP/Zeny確認と消費部分を追加、
+ 種類別に処理を追加。
+ battle.c/battle.h
+ 新規追加
+ 武器攻撃計算用にbattle_calc_weapon_attack(),
+ 魔法攻撃計算用にbattle_calc_magic_attack()を用意
+ (双方とも、MOBとPC両方計算可能なはず)
+ ファイル増やしすぎという意見も…(汗)
+
+
+----------
+//0214 by れあ
+・ダブルアタックがおかしかったところを修正。
+・スキルの一部実装
+ バッシュ・メマーナイト・ダブルストレイフィング・ピアース
+ スピアブーメラン・スピアスタブ・ボーリングバッシュ
+ ソニックブロー・グリムトゥースなどです。
+
+ 適当なのでどこか、不具合があるかもしれません。
+ あと、テストもあまりしてませんのでおかしいところがあったら修正をお願いします。
+ 他にも問題があったら手直しをお願いします。
+ 変更内容は以下の通りです。
+
+ clif.c,clif.h
+ clif_skill_damage()を追加しました。
+
+ pc.c,pc.h
+ pc_attack_mob()の引数を一つ追加。
+ ダブルアタックがおかしかったので正常に動作するように修正。
+
+ skill.c
+ 一部スキルの実装をしてみました。
+
+
+----------
+//0213 by れあ
+・0208の@コマンドで少し修正
+ atcommand.c
+ @itemで個数指定が無い場合、入手個数を1個にするようにした。
+ @itemでIDの指定が無い場合、アイテムを入手してたことになって
+ いたのを修正
+ itemdb.c
+ item_db.txtでSellの項目を店売りの値段としてみた。
+ item_db2.txt
+ 試しにカードやレアアイテムの店売り価格を値段を本鯖の相場にし
+ てみたもの。使用する場合はitem_db.txtと差し替えてください。
+
+
+----------
+//0208 by nabe
+
+・@コマンド実装。
+ atcommand.h,atcommand.c
+ ほぼI-Athenaの@コマンド相当ですが、@GMとPVPは未実装です。
+ help.txtも同梱しています。
+ GM(アカウントID=704554〜704583)専用にするには、
+ atcommand.cの該当部分のコメントアウトを解除して下さい。
+ clif.h,clif.c
+ clif_displaymessage()
+ clif_GMmessage()
+ clif_heal()
+ clif_resurrection()
+ clif_pvpon()
+ clif_pvpset()
+ clif_refine()
+ を追加しました。
+ clif_parse_GlobalMessage()内でatcommand()を呼んでいます。
+
+・ちょっとだけ修正。
+ script.c
+ {buildin_openstorage,"openstorage","s"},
+ から
+ {buildin_openstorage,"openstorage",""},
+ に修正しました。
+
+
+----------
+//0206 by 胡蝶蘭
+・スキルツリー/スキル使用機構の実装
+ mmo.h
+ MAX_SKILLを増やした
+ char2.c
+ mmo_char_fromstr()
+ mmo_charstatusのskillのインデックスにスキル番号を使うようにした
+ =>スキルの検索高速化のため(かわりにメモリ使用量が増える)
+ pc.h/pc.c
+ pc_skillup(),pc_calc_skilltree()追加
+ pc_checkskill()変更(インデックスをスキル番号に)
+ 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()を追加
+ clif_parse_SkillUp(),clif_parse_UseSkillToId(),
+ clif_parse_UseSkillToPos()を実装
+ skill.h/skill.c
+ ファイル追加(map/)
+ map.h
+ struct map_session_dataにcast_*を追加
+ skill_db.txt
+ ファイル追加(db/)
+ (I-Athena0200のskill_info2.txtをコンバートしたもの)
+ (スキル使用部分開発者向け情報)
+ スキルの効果を実装する場所はskill.cの
+ skill_castend_id(),skill_castend_pos()です。
+ ターゲットや使用スキルは sd->cast_* から得ます
+ スキルデータベースへは skill_get_* でアクセスしてください
+ 今後、キャスティングタイムもデータベースに入れる予定
+
+----------
+//0205 by nabe
+
+・storage.cのバグフィクス。
+・倉庫データを、マップ鯖起動時に読み、マップ鯖終了時に書くように変更。
+ storage.h,storage.c
+ storage_init()をdo_init_storage()に改名。
+ storage_save()をdo_final_storage()に改名。
+ fcloseを忘れていたのを追加。
+ map.c
+ #include "storage.h"を追加。
+ do_final()にdo_final_storage()を追加。
+ do_init()にdo_init_storage()を追加。
+
+----------
+
+//0203(unofficial) by なみ
+
+item_db.txtの書き換えのみです。
+
+・アイテムの回復量を追加/変更
+ 赤ポーション HP 30- 44
+ 紅ポーション HP 70- 89
+ 黄色いポーション HP 175-234
+ 白いポーション HP 350-429
+ 青いポーション SP 40- 99
+ 赤いハーブ HP 12- 19
+ 黄色いハーブ HP 21- 29
+ 白いハーブ HP 80-111
+ 青いハーブ SP 15- 44
+ リンゴ HP 12- 15
+ バナナ HP 11- 16
+ ブドウ SP 10- 24
+ いも HP 11- 15
+ にく HP 70- 99
+ ハチの蜜 HP 72- 97 / SP 20- 59
+ ミルク HP 25- 34
+ キャンディ HP 31- 74
+ スティックキャンディ HP 46-109
+ リンゴジュース ※ HP 28- 32
+ バナナジュース HP 27- 33
+ ブドウジュース SP 15- 39
+ ニンジンジュース ※ HP 29- 32
+ カボチャ HP 14
+ ペットフード HP 53- 83
+ よく焼いたクッキー HP 80-177
+ ひとくちケーキー HP 251-359
+ ひなあられ HP 175-234
+ 菱餅 HP 350-429
+ レッドスリムポーション ※ HP 30- 44
+ イエロスリムポーション ※ HP 175-234
+ ホワイトスリムポーション ※ HP 350-429
+ 現在のAthenaではVITやスキルによるボーナスは加味されません。
+ (適用する場合はscript.c内のbuildin_heal関数あたりにに手を加える必要あり)
+ なお、※付のアイテムのデータは適当です。
+・古いカード帖を実装(UseScript)
+・その他修正
+ ひなあられ 重量なし→重量0.1に修正
+ 菱餅 重量なし→重量0.1に修正
+ バルムン 重量0.1S4片手剣→重量100S0両手剣に修正
+ なお、Sellの項目はあるだけ無駄っぽいので全部消しました。
+
+----------
+
+//0202 by nabe
+
+・カプラ倉庫の「同一アカウントなのに共有できないバグ」を改良しました。
+ 各キャラに倉庫データを持たせるのは無駄が多い気がするので、
+ アカウントIDで管理するように仕様を変更しました。
+ ついでに、倉庫データは全てstorage.cでまかない、
+ char鯖は関与しないようにしました。
+ これに伴い、char_athena.cnf,mmo.h,char2.cは元に戻しました。
+ また、倉庫ファイル名は“storage.txt”に固定しています。
+
+ 改変、追加したのは次のファイルです。
+ map/storage.h,
+ map/storage.c,
+ map/clif.h,//引数変更だけ
+ map/clif.c,//引数変更だけ
+ conf/char_athena.cnf,//元に戻しただけ
+ common/mmo.h,//元に戻しただけ
+ char/char2.c,//元に戻しただけ
+ map/itemdb.h,//itemdb_equippoint()引数宣言変更だけ
+ map/itemdb.c,//itemdb_equippoint()引数宣言変更だけ
+ map/pc.c,//itemdb_equippoint()引数宣言変更だけ
+
+----------
+
+//0201 by nabe
+
+・カプラ倉庫を実装しました。
+
+ スクリプトから呼び出すには、スクリプト内で
+ openstorage;
+ としてください。
+ サンプルとしてnpc_kafraJ.txtを付けてあります。
+ 併せてnpc_script3J.txtの該当部分も改変しました。
+
+ char_athena.cnfの
+ stor_txt:
+ で倉庫ファイル名を指定しています。
+
+ 改変、追加したのは次のファイルです。
+ map/Makefile,
+ map/storage.c,
+ map/storage.h,
+ map/clif.c,
+ map/clif.h,
+ map/script.c,
+ char/char2.c,
+ common/mmo,h
+ 詳しくは、上記ファイルのコメントなどを参考にしてください。
+
+・カプラ倉庫実装に伴い、map_athena1.cnfを少し書き換えました。
+
+・全てのコメント文をEUCからSJISに変換しました。
+
+----------
+
+ Athena Dev. v2.1.1 Released: Middle July, 2003
+ (c) 2003 Athena Project.
+ http://project-yare.de/
+
+1. Athena(アテナ)について
+2. このリリースについて
+3. 必要な物
+4. 使い方
+5. 現在の仕様
+6. 祝辞
+7. 免責事項
+8. 募集
+9. English
+
+
+1. アテナについて
+ アテナとは2003年1月半ばにでた0052.lzhをベースとして作られているエミュレータの一つです。
+ 基本的なライセンスはオリジナルがGPLの下に配布されている為、
+ これに従いGPLの下配布を許可します。
+ /*
+ 改良版を配布する場合は必ずこのREADMEを書き換えてください。
+ 何処を改良したのか報告(athena@project-yare.deまで)して貰えると助かります。
+ バイナリのみの配布はGPL違反ですので"必ず"ソースも添付してください。
+ */
+ 動作の確認は以下の通りのみ行っています。
+ // ただし完璧に動く事を保証するものでありません
+ 対象CPU: Intel Pentium系 // PentiumII以上で確認.
+ FreeBSD 4.8R, 4.6.2R
+ Linux RedHat 7.3
+ cygwin + gcc 3.2 20020927 (prerelease)
+ 開発元URL: http://project-yare.de/
+
+
+2. このリリースについて
+ 今回のリリースは前回(V2.1)同様開発版のリリースのみです。
+ 2.1に比べ下記の点が修正されています。
+ mapのデフォルト設定が韓国data.grfのみ正常に動作するようになっていた点
+ common/timer.cやmap/script.cの幾つかのバグ
+
+ 迅速にUpdateを強く推奨するものではありませんが各自の判断で行って下さい。
+
+
+3. 必要な物
+ data.grf //sdata.grfは必要に応じて
+ account.txt //存在しない場合athena.shが自動生成します
+ conf/*.cnf //Map用とChar用の二種類あります
+ conf/npc*.txt //npc設定用ファイルです。複数のファイルに分けることが可能です。
+ db/*.txt //アイテム、job情報など
+
+
+4. 使い方
+ > tar xvfz athena-d?.?.tar.gz
+ > cd athena-d?.?.tar.gz
+ > make
+ > vi conf/char_athena.cnf //IP(127.0.0.1)の部分を環境に合わせて変更してください
+ > vi conf/map_athena.cnf //同上、またmap設定などは、このファイルで行います。
+ > ./athena.sh
+ 上記を行えば"たぶん"起動します。
+
+ 補足:
+ conf/npc_sampleJ.txtにはスクリプトの書き方について色々な説明が記載されています。
+ もし、独自のMap設定を行ってみたい人や、スクリプトを弄りたい方は参考にしてください。
+ ただし、開発中のためスクリプトの仕様が変更される可能性が高いです。
+ command.txtには実装済みの特殊コマンドについての説明を記載しています。
+
+
+5. 現在の仕様
+ 本鯖と比べておかしい(例えばプバが歩く、ポリンがアイテムを拾わないなど)点は、
+ 全て現在開発中に因るものです。
+ 現状としてキャラクタ系及びモンスター系のバグ報告は無視される可能性が高いです。
+
+ バグ報告について必ず発生条件をお書き下さい。
+ 下にある報告用テンプレートを使って報告して頂くと助かります。
+ 報告先はエミュ板の開発スレにでも。
+ ---- Athena v 2.0 (stable or develop) ----
+ 【gcc ver】gcc -vを実行時に表示される内容
+ 【動作システム】FreeBSD, Linux(ディストリビュージョンも), cygwinなど
+ 【発生内容】mapが落ちてしまった時の表示されていたデバッグ情報など具体的に書いてください。
+ 【操作内容】具体的にどんな操作を行ったかを書いてください。
+ ------------------ END -------------------
+ 理想はテンプレに加えてmap.coreなどcoreファイルをUploaderにアップして頂くことですが
+ 問題のMapだけの状態にしcoreの吐く容量に注意してください。
+ /*
+ 確認した限りでは324個ほどmapデータを読み込ませると、
+ 40MB近いcoreファイルを吐き出します @FreeBSD
+ cygwinの場合はstackdumpというファイルになるそうです。
+ しかし、coreファイルなどをgzip圧縮などすれば大幅に小さくなります。
+ 大凡30MBのcoreファイルが2.9MBほどになるようです。
+ ですので、もしアップロードする場合はgzip圧縮など各自行ってください。
+ */
+
+ 今回のリリースだけでなくHISTORYを作成すると大量に記述が必要な為省略しています。
+ // 多い日だと本当に結構ありますので‥‥。
+
+
+6. 祝辞
+ 今回このAthena開発版を出すに当たって感謝したい方々(順番不同)
+ Lemming氏 (Project YARE)
+ 0052氏 (Uploader)
+ 35氏 (エミュ開発スレ)
+ Johan Lindh氏(Author of memwatch)
+ YARE forumのNPC情報を作成した方々
+ weiss研究会BBSの様々な情報ファイルを作成した方々
+ 最後に、.coreファイル達
+
+
+7. 免責事項
+ Athena Projectは一切Athenaの動作に関する保証等は行いません。
+ つまり、Athenaは無保証です。
+ athena@project-yare.deに動作・操作等に関する質問などを送られても一切お答えできません。
+ 又Athenaを用いたことにより生じた被害・問題等の責任は一切Athena Projectは負いません。
+
+
+8. 募集
+ athenaの開発に参加したい//興味があるという方ご連絡下さい。
+ 我々は貴方の参加をお待ちしています。
+ // 最新版が欲しいだけで何ら協力して頂けないという方はお断りです;-)
+ [募集要項: プログラマ(2-3人)]
+ 年齢: 不問
+ 性別: 不問
+ 言語: 日本語が理解可能
+ 内容: C言語もしくはC++による開発。(特にネットワークやDBの経験が有る方大募集!)
+ [募集要項: 翻訳(?人)]
+ 年齢: 不問
+ 性別: 不問
+ 言語: 日本語、英語が理解可能
+ 内容: 仏蘭西語、独逸語、西班牙語、伊太利亜語、泰(タイ)語、朝鮮語、中国語へ文献、サイトなどの翻訳
+ 連絡先: athena@project-yare.de 雑務担当まで。
+
+
+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 new file mode 100644 index 000000000..b38f5ee0f --- /dev/null +++ b/doc/notes/SVN-SUPPORT.txt @@ -0,0 +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...
diff --git a/doc/notes/help-old.txt b/doc/notes/help-old.txt new file mode 100644 index 000000000..3af1cc055 --- /dev/null +++ b/doc/notes/help-old.txt @@ -0,0 +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
+
diff --git a/doc/packet_table_en.txt b/doc/packet_table_en.txt new file mode 100644 index 000000000..63f74dc51 --- /dev/null +++ b/doc/packet_table_en.txt @@ -0,0 +1,1336 @@ +here is a translation for "packet_table.txt".
+i leave original japanese sentenses and write translation below that.
+
+
+詳しくは知りませんが、GMはアカウントID=704554付近を指定すると
+クライアントがGMだと認識して表示するみたいです。
+数字が半端なのは気にしないで・・・
+
+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.)
+
+
+パケット長リスト。-1はパケット種別の直後に長さがあるパケット
+
+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 クライアントから見て送信
+S means a packet that will be sent from client.
+
+R クライアントから見て受信
+R means a packet that will be received by client.
+
+B バイト
+B means a byte.
+
+w ワード=2B
+w means word( 2 bytes)
+
+l ロングワード=4B
+l means long word(4bytes)
+
+* 0個以上くりかえし
+* means repeat
+
+
+S 0064 <version>.l <account name>.24B <password>.24B <version2>.B
+ アカウントID&パスワード送信
+ send account id & password
+S 0065 <account ID>.l <login ID1>.l <login ID2>.l ?.2B <sex>.B
+ キャラセレ鯖接続要求
+ request connection to character select server
+S 0066 <charactor number>.B
+ キャラクタ選択要求
+ request to select character
+S 0067 <charactor name>.24B <param etc>.11B
+ キャラクタ作成要求
+ request to create new character
+S 0068 <charactor ID>.l <mail address>.40B
+ キャラクタ削除要求
+ 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成功&鯖情報
+ information about a success of login to login server
+R 006a <error No>.B
+ login失敗
+ fail to login to login server
+R 006b <len>.w <charactor select data>.106B*
+ キャラセレ鯖接続成功&キャラクタデータ
+ 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
+ キャラクタ選択失敗
+ fail to select character
+R 006d <charactor select data>.106B
+ キャラクタ作成成功
+ success to create new character
+R 006e <error No>.B
+ キャラクタ作成失敗
+ fail to create new character
+R 006f
+ キャラクタ削除成功
+ success to delete character
+R 0070 <error No>.B
+ キャラクタ削除失敗
+ fail to delete character
+R 0071 <charactor ID>.l <map name>.16B <ip>.l <port>.w
+ キャラクタ選択成功&マップ名&ゲーム鯖IP/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
+ ゲーム鯖接続要求
+ request connection to game server
+R 0073 <server tick>.l <coordidate>.3B ?.2B
+ ゲーム鯖接続成功&サーバ側1ms時計&出現位置
+ 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
+ マップロード時&移動時用、向き付き用キャラ情報?
+ 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
+ テレポ等の表示範囲内沸きキャラ用、向き付き無しキャラ情報?
+ 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
+ 表示範囲内キャラ移動情報
+ 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用表示範囲内キャラ情報
+ character information for npc in a range the character can see
+S 007d
+ mapロード終り
+ end of load
+S 007e <client tick>.l
+ クライアント側1msタイマ送信
+ send 1ms timer at client
+R 007f <server tick>.l
+ サーバ側1msタイマ送信
+ send 1ms timer at server
+R 0080 <ID>.l <type>.B
+ type=00 キャラ消滅 (画面外移動。死体消滅等?)
+ character disappear( walk out of screen. died and disappear?)
+ type=01 キャラ死亡
+ character died
+ type=02 キャラ消滅 (テレポ,蝿,蝶,logout等?)
+ character disappear( teleport, fly's wing, butterfly's wing, logout?)
+R 0081 <type>.B
+ type=03 speed hack
+ speed hack
+ type=08 2重ログイン
+ duplicated login
+S 0085 <X_Y>.3B
+ 移動要求
+ 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
+ 移動途中停止
+ 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:ダメージ(の合計?) param2:分割数 param3:アサシン2刀流逆手ダメージ
+ param1:damage(of total?) param2:number of division param3:damage of assasin's left hand
+ NPCからの攻撃の場合、param2,param3はゴミデータ
+ if the attack was by npc, param2 and param3 are not used
+ speedはPCの場合内部ASPDと一致
+ speed match the aspd if it's player character
+ type=01 itemを拾う ID*2以外ゴミ
+ pick up item, unused data except ID*2
+ type=02 座る src ID以外ゴミ
+ sit down, unused data except src ID
+ type=03 立つ src ID以外ゴミ
+ stand up, unused data except src ID
+ type=08 複数攻撃
+ multiple attack
+ type=0a クリティカル
+ critical attack
+ type=0b 完全回避
+ perfect evade
+R 008c <len>.w <str>.?B
+ 通常発言送信。チャット中はチャット内発言用になる
+ send normal speech. it become a speech for chat during a chat
+ 先頭の"<nick> : "の部分はクライアント側で付ける事
+ client adds "<nick> : " part.
+R 008d <len>.w <ID>.l <str>.?B
+ IDさんの発言受信。チャット中はチャット内発言用になる
+ receive a speech by ID. it become speech for chat during a chat
+R 008e <len>.w <str>.?B
+ 自分の発言受信。チャット中はチャット内発言用になる
+ receive my character's speech. it become speech for chat during a chat
+S 0090 <ID>.l <type?>.B
+ NPCに話しかける。typeは01しか見た事無し
+ talk to npc. i havent seen type setted to 01.
+R 0091 <map name>.16B <X>.w <Y>.w
+ 鯖内マップ間移動、テレポ,蝿等用
+ 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
+ 鯖間移動
+ map change to the other server
+R 0093
+ 8月中に1回だけ観測。謎
+ this packet observed in august once. i dont know what it is.
+S 0094 <ID>.l
+ IDのキャラ名等要求。0095か0195の返答があるはず
+ request a character name for ID. 0095 or 0195 response is expected.
+R 0095 <ID>.l <nick>.24B
+ NPC,ギルド未所属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 の応答で得てます。
+ get response by <charID>.l <name>.24B
+
+S 0096 <len>.w <nick>.24B <message>.?B
+ wis送信
+ send wisper
+R 0097 <len>.w <nick>.24B <message>.?B
+ wis受信
+ receive wisper
+R 0098 <type>.B
+ type=00 wis送信成功
+ 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からの天の声
+ GM announce
+S 009b <head dir>.w <dir>.B
+ 体&頭の方向変更要求。クライアントへの応答は無い模様
+ request a change of head and body direction. no response to client.
+ dirは00〜07で体の向き。00で北から反時計回りに45°単位で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で頭の向き。00で体と同じ、01が右、02が左
+ 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の体&頭の方向変更
+ 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
+ 移動等で床アイテムが画面内に入ってきた時
+ 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 drop。何故か009dとマス目内位置&個数が入れ変っている
+ item drop. coordinate and amount is different from 009d.
+S 009f <ID>.l
+ IDの床アイテムを拾う
+ 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 取得失敗?
+ fail to pick up?
+ fail=06 ルート権無し。取得失敗
+ no right to pick up. fail to pick up.
+R 00a1 <ID>.l
+ IDの床アイテム消去
+ disappear the floor item
+S 00a2 <index>.w <amount>.w
+ 所有アイテムを落す
+ drop inventory item.
+R 00a3 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B}.10B*
+ 所有消耗品&収集品リスト
+ 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*
+ 所有装備リスト
+ list of equipments that you have
+R 00a5 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B}.10B*
+ カプラさんに預けてある消耗品&収集品リスト
+ 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*
+ カプラさんに預けてある装備リスト
+ list of equipments that you leave with capra.
+S 00a7 <index>.w <ID>.l
+ 所持アイテムindexを使用する。IDは自分のみ?
+ use index item. ID can be only myself?
+R 00a8 <index>.w <amount>.w <type>.B
+ アイテム使用応答。type=00の場合使用失敗? amountもゴミの模様
+ response to use item. type=00 means failed. amount is unused.
+ type=01の場合成功で、amountは使用後の残り個数
+ type=01 means success to use item, amount is a number of rest of the item.
+S 00a9 <index>.w <equip type>.w
+ アイテム装備
+ equip item.
+R 00aa <index>.w <equip point>.w <type>.B
+ アイテム装備応答。type=00の場合装備失敗? equip pointもゴミの模様
+ 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
+ 装備解除応答。type=00の場合失敗? equip pointもゴミの模様
+ response to take off equipment. type=00 means fail? equip point is unused.
+R 00af <index>.w <amount>.w
+ アイテム数減少。amount個だけ減らす
+ decrease number of item by amount.
+R 00b0 <type>.w <val>.l
+ 色々な能力値の更新。以下type:対応する数値を列挙
+ update values of various status.
+ 0000:speed 0003:悪行値 0004:マナーポイント 0005:HP 0006:MaxHP
+ 0000:speed 0003:carma 0004:manner point 0005:HP 0006: MaxHP
+ 0007:SP 0008:MaxSP 0009:ステータスポイント 000b:ベースレベル
+ 0007:SP 0008:MaxSP 0009:status point 000b: base level
+ 000c:スキルポイント 0018:重量(表示されてる数字の10倍)
+ 000c:skil point 0018:weight(this number must be 10 times greater than it's been diplayed.)
+ 0019:最大重量(表示されてる数字の10倍)
+ 0019:max weight(this number must be 10 times greater than it's been diplayed.)
+ 0029:ATK前 002a:ATK後 002b:MATK前 002c:MATK後
+ 0029:attack in front 002a:attack in back 002b:matk in front 002c:matk in back
+ 002d:DEF前 002e:DEF後 002f:MDEF前 0030:MDEF後
+ 002d:deffence in front 002e:deffence in back 002f:mdef in front 0030:mdef in back
+ 0031:HIT 0032:FLEE前 0033:FLEE後 0034:クリティカル
+ 0031:hit 0032:flee in front 0033:flee in back 0034: critical
+ 0035:ASPD(2ms単位の時間?) 0037:ジョブレベル
+ 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
+ 色々な能力値の更新。以下type:対応する数値を列挙
+ update valies of various status. below is the list of corresponding type and value.
+ 0001:ベース側経験値 0002:ジョブ側経験値 0014:zeny
+ 0001:base experience 0002:job experience 0014:zeny
+ 0016:ベース側必要経験値 0017:ジョブ側必要経験値
+ 0016:base experience that needed to level up 0017:job experience that needed to level up
+ β1では00b0はvalがshort、00b1はvalがlongという使い分けがあったんだけど
+ 今となっては差が無くなって、盲腸みたいなもの?
+ 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 死亡時リスタート
+ restart game when character died
+ type=01 キャラセレ要求
+ request character select
+R 00b3 <type>.B
+ type=01 キャラセレ応答
+ response to character select
+R 00b4 <len>.w <ID>.l <str>.?B
+ IDのNPCからのメッセージ
+ message from npc id
+R 00b5 <ID>.l
+ IDのNPCとのメッセージウィンドウに"NEXT"アイコンを出す
+ display the "NEXT" icon to npc message window
+R 00b6 <ID>.l
+ IDのNPCとのメッセージウィンドウに"CLOSE"アイコンを出す
+ display the "CLOSE" icon to npc message window
+R 00b7 <len>.w <ID>.l <str>.?B
+ IDのNPCの会話で選択項目表示。各項目は':'で区切られる
+ display select options in npc message window. each options devided by ":".
+S 00b8 <ID>.l <select>.B
+ IDのNPCの会話の選択。各項目に順に1〜が振られる。ffでキャンセル?
+ select options in ncp message window. number starts from 1 for each options. cancel for ff?
+S 00b9 <ID>.l
+ IDのNPCとの会話。NEXTボタンを押した
+ "NEXT" button clicked in ncp message window.
+S 00bb <type>.w <amount>.B
+ ステータスup要求。typeは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
+ ステータスup応答。fail=01なら成功。typeは00bbと同じ。valは上った後の数字
+ 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.
+ 失敗例は見た事無いので謎。ステータスポイントが足りない状態で
+ 00bbを発行できるクライアントが有れば、fail=00になるのではないかと予想
+ 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
+ まとめてステータス情報を送るパケット
+ packet of information for various status.
+R 00be <type>.w <val>.B
+ 必要ステータスポイント更新パケット。typeは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
+ エモーションを出す。typeは00-0c(,0d)がALT+1〜ALT+9,ALT+0,チョキ,グー,パー(,韓国旗)に対応
+ 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の人がエモーションを出した。typeは00bfと同じ
+ emotion by ID. type is the same as 00bf.
+S 00c1
+ login人数問い合わせ
+ request to ask loged in people.
+R 00c2 <val>.l
+ login人数応答
+ response to asking loged in people.
+R 00c3 <ID>.l <type>.B <val>.B
+ 見た目変更。typeは00で本体(転職時等)、02が武器、03が頭(下)、04が頭(上)、05が頭(中)、08が盾
+ 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
+ 話かけたNPCが商人だったのでbuy/sell選択窓出
+ display "BUY" or "SELL" window by npc ID
+R 00c5 <ID>.l <type>.B
+ buy/sell選択。type=00ならbuy。type=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のお店buy選択時。DCvalueは商人DC後の値段
+ 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のお店sey選択時。OCvalueは商人OC後の値段
+ 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のお店から買う
+ buy item from npc shop.
+S 00c9 <>.w {<index>.w <amount>.w}.4B*
+ NPCのお店に売る
+ sell item to npc shop.
+R 00ca <type>.B
+ NPCから購入終了。type=00成功
+ response for buying item. type=00 meanse successetion.
+R 00cb <type>.B
+ NPCへ売却終了。type=00成功
+ response for selling item. type=00 means success.
+S 00cf <nick>.24B <type>.B
+ type=00 nickからの発言受け付け拒否 (/ex nick)
+ deny speech from nick(/ex nick).
+ type=01 nickからの発言受け付け許可 (/in nick)
+ allow speech from nick(/in nick)
+S 00d0 <type>len.B
+ type=00 全ての発言受け付け拒否 (/exall)
+ deny all speech(/exall)
+ type=01 全ての発言受け付け許可 (/inall)
+ allow all speech(/inall)
+R 00d1 <type>.B <fail>.B
+ fail=00 発言受け付け拒否成功
+ success to deny speech
+ fail=01 発言受け付け拒否失敗
+ fail to deny speech
+R 00d2 <type>.B <fail>.B
+ fail=00 全発言受け付け拒否成功
+ seccess to allow speech
+ fail=01 全発言受け付け拒否失敗
+ fail to alloe speech
+S 00d5 <len>.w <limit>.w <pub>.B <passwd>.8B <title>.?B
+ チャット立て。ここからチャット関係が続くけど調べが甘いので補完よろ
+ create chat room.(from now on, im not sure for packets about chat.)
+R 00d6 <fail>.B
+ チャット立て応答
+ response to create chat room.
+R 00d7 <len>.w <owner ID>.l <chat ID>.l <limit>.w <users>.w <pub>.B <title>.?B
+ 画面内チャット情報
+ information for chat room in the screen.
+R 00d8 <chat ID>.l
+ チャット消去
+ delete chat room.
+S 00d9 <chat ID>.l <passwd>.8B
+ チャット参加要請
+ request to join the chat.
+R 00da <fail>.B
+ チャット参加失敗
+ fail to join the chat.
+R 00db <len>.w <chat ID>.l {<index>.l <nick>.24B}.28B*
+ チャット参加者リスト
+ list of people in the chat room.
+R 00dc <users>.w <nick>.24B
+ チャットへの参加者追加(?)
+ add person to the chat room.
+R 00dd <index>.w <nick>.24B <fail>.B
+ チャットから参加者抜け
+ leave the chat room.
+S 00de <len>.w <limit>.w <pub>.B <passwd>.8B <title>.?B
+ チャットステータス変更
+ change chat room status.
+R 00df <len>.w <owner ID>.l <chat ID>.l <limit>.w <users>.w <pub>.B <title>.?B
+ チャットステータス変更成功
+ success to change chat room status.
+S 00e0 ?.l <nick>.24B
+ チャットルーム所有者変更要求?
+ request to change owner of the chat room?
+R 00e1 <index>.l <nick>.24B
+ チャット参加者番号付け直し?
+ re-number people in the chat room?
+S 00e2 <nick>.24B
+ チャットkick
+ kick nick from chat room.
+S 00e3
+ チャット抜け
+ leave chat room.
+S 00e4 <ID>.l
+ 取り引き要求
+ request trade.
+R 00e5 <nick>.24B
+ 取り引き要請受け
+ recieve a request to trade.
+S 00e6 <type>.B
+ type=03 取り引き要請ok
+ trade ok.
+ type=04 取り引き要請キャンセル
+ trade canceled.
+R 00e7 <fail>.B
+ 取り引き要求応答
+ response to requesting trade.
+ fail=00 距離が遠過ぎ
+ too far.
+ fail=03 要請受けてくれた
+ allowed the trade.
+ fail=04 キャンセルされた?
+ trade canceled?
+S 00e8 <index>.w <amount>.l
+ アイテム追加。index=0でzeny追加。正規クライアントではzenyは00ebの直前のみ
+ 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
+ 相手方からのアイテム追加
+ added item from other character.
+R 00ea <index>.w <fail>.B
+ fail=00 アイテム追加成功
+ success to add item.
+ fail=01 追加失敗。相手側重量オーバ
+ fail to add item. the player was over weighted.
+S 00eb
+ アイテム追加完了(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
+ 取り引きキャンセル
+ trade canceled.
+R 00ee
+ 取り引きがキャンセルされました
+ message of "trade canceled"
+S 00ef
+ 取り引き許諾(trade押し)
+ trade OKed. (cliecked Trade)
+R 00f0
+ 取り引き完了
+ trade completed.
+R 00f2 <num>.w <limit>.w
+ カプラさん許容アイテム個数&現状
+ number of item that capra can stock and number of item that capra stocks now.
+S 00f3 <index>.w <amount>.l
+ カプラさん倉庫にアイテム放り込み
+ put item to capra's warehouse.
+R 00f4 <index>.w <amount>.l <type ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w
+ カプラさん倉庫のアイテム追加
+ add item to capra's warehouse.
+S 00f5 <index>.w <amount>.l
+ カプラさん倉庫からアイテム取り出し
+ take out item from capra's warehouse.
+R 00f6 <index>.w <amount>.l
+ カプラさん倉庫のアイテム削除
+ delete item in the capra's warehouse.
+S 00f7
+ カプラさん倉庫閉じ
+ request to close capra's warehouse.
+R 00f8
+ カプラさん倉庫閉じ応答
+ response to close capra's warehouse.
+S 00f9 <party name>.24B
+ パーティ作成
+ 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*
+ パーティ情報まとめて送り
+ packet for various information about party.
+S 00fc <ID>.l
+ パーティ勧誘する
+ invate player to the party.
+R 00fd <nick>.24B <fail>.B
+ fail=00 相手は既にパーティに入っていた
+ the player is already in other party.
+ fail=01 相手に拒否された
+ invitaion was denied.
+ fail=02 勧誘成功
+ success to invite,
+R 00fe <ID>.l <party name>.24B
+ パーティに誘われた
+ invited to party.
+S 00ff <ID>.l <fail>.l
+ パーティに誘われた時の返答。fail=1 ok返答?
+ response when player was invited to party. fail=1 means OK?
+R 0100
+ ? パーティ関連?
+ unknown. related to party?
+S 0101 <exp>.w <item?>.w
+ パーティ設定変更
+ change party setting.
+R 0102 <exp>.w <item?>.w
+ パーティ設定現状? exp=2の場合は公平配分設定失敗?
+ 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
+ パーティ1人分情報更新
+ information about a one player in th party.
+R 0105 <ID>.l <nick>.24B <fail>.B
+ nickさんがパーティから離脱
+ nick leaves the party.
+R 0106 <ID>,l <HP>.w <MaxHP>.w
+ パーティメンバHP更新
+ update HP of party members.
+R 0107 <ID>.l <X>.w <Y>.w
+ パーティメンバ位置更新
+ update coordinates of party members.
+S 0108 <len>.w <message>.?B
+ パーティ内発言
+ send speech for party memebers.
+R 0109 <len>.w <ID>.l <message>.?B
+ パーティ内発言受信
+ receive speech for party memebers.
+R 010a <type ID>.w
+ MVPアイテム取得
+ get MVP item.
+R 010b <exp>.l
+ MVP経験値取得
+ get MVP experience.
+R 010c <ID>.l
+ MVPキャラ表示
+ display MVP character.
+R 010e <skill ID>.w <lv>.w <sp>.w <range>.w <up>.B
+ スキル情報更新。spは未使用?
+ 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*
+ スキル情報の塊。skill 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-パッシブ、1-敵、2-場所、4-即時発動、16-味方
+ 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の場合はリストに出してない?
+ 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の時にスキル利用失敗?
+ fail to use skill when fail=00?
+ type 00:basic typeの方 01:SP不足 02:HP不足 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:赤ジェム無し 08:青ジェム無し 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:チャット 04:パーティ
+ basic type 00:trade 01:emotion 02:sit down, 03:chat, 04:party
+ 05:shout? 06:PK 07:マナーポイント
+ 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つ分。β2だと未使用?
+ just one skill information. not used in beta2?
+S 0112 <skill ID>.w
+ スキルlvup要求
+ request to skill level up.
+S 0113 <level>.w <skill ID>.w <ID>.l
+ IDをターゲットにskillを使う
+ 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
+ 攻撃系スキルエフェクト@
+ 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 単発もの? param1はダメージ合計、param2はlevel、param3は1固定と予想
+ type=06 skill for just one hit? param1 is total damage, param2 is level, param3 will always stay 1.
+ type=08 連打もの? param1はダメージ合計、param2はlevel、param3は分割数と予想
+ 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
+ 弾き飛ばし有り攻撃系スキルエフェクト
+ blow up type skill effect.
+ type=05 ダメージ&弾き飛ばし。param1はダメージ合計、param2はlevel、param3は分割数と予想
+ type=05 damage and blow up. param1 is total damage, param2 is level, param3 will be a number of hit.
+ type=06 爆心地? 少なくともparam1はゴミの模様
+ type=06 a point of explorsion? param1 is unused at least.
+S 0116 <level>.w <skill ID>.w <X>.w <Y>.w
+ (X,Y)をターゲットにskillを使う
+ use skill at (X,Y).
+R 0117 <skill ID>.w <src ID>.l <val>.w <X>.w <Y>.w <server tick>.l
+ 場所相手のスキルエフェクト表示。valはレベルか、一部固さ?(氷壁)
+ display skill effect at (X,Y). is val level? or how hard it is (like ice wall)?
+S 0118
+ 攻撃キャンセル
+ cancel to attack
+R 0119 <ID>.l <param1>.w <param2>.w <param3>.w ?.B
+ 見た目変更
+ change looks.
+ param1=02 フロストダイバで凍り漬け?
+ param1=02 flozen diva?
+ param2=01 毒?
+ param2=01 poison?
+ param2=20 ANGELUS状態?
+ param2=20 ANGELUS?
+ param3=01 サイトかルワッチ?
+ param3-01 site or ruwatch? (i dont know skill names in english :()
+ param3=0b ハイディング状態?
+ param3=0b hiding?
+ param3=0b クローキング状態?
+ param3-0b cloking?
+ param3=0d カート付き
+ param3=0d with cart
+ param3=0e 鷹付き
+ param3-0e with hawk
+ param3=0f ペコペコ乗り
+ param3=0f with pekopeko
+
+R 011a <skill ID>.w <val>.w <dst ID>.l <src ID>.l <fail>.B
+ 非ダメージ系スキル表示。ヒールの場合valは回復量
+ display no-damage skill effect. val is an amount of HP cured when it's heal.
+ fail=00の場合失敗ぽいが、スチール以外では見た事無し
+ fail=00 must mean fail, but i havent seend it except steal.
+S 011b <skill ID>.w <map name>.16B
+ 011cへの応答。使わない場合"cancel"を送る
+ response to packet number 011c. send "cancel" for no-use.
+R 011c <skill ID>.w <map1>.16B <map2>.16B <map3>.16B <map4>.16B
+ テレポ/ポタの場所選択。
+ select place for teleport or portal warp.
+ テレポの場合、Random/セーブ場所、ポタの場合、セーブ場所/memo1/memo2/memo3となる
+ マップ名のみ送られる
+ 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
+ 現在居る所をメモ要求
+ request to take a memo at this point.
+R 011e <fail>.B
+ fail=00 メモ成功
+ success to take memo.
+ fail=01 メモ失敗
+ fail to take memo.
+R 011f <dst ID>.l <src ID>.l <X>.w <Y>.w <type>.B <fail>.B
+ スキル効能地作成
+ create ground effect for skills like firewall.
+ type 7e:SW 7f:火壁 80:ポタ発動中 81:ポタ発動前 83:サンク 85:フニューマ
+ 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:バーミリオン 8c:トーキーボックス発動時 8d:氷壁 8e:くあぐまいやー 91:あんくるすねあ
+ 86: bermillion, 8c:talky box(invoked), 8d:frost diva, 8e:kuagumire, 91:uncle snear
+ 93:らんどまいん 97:?? 99:トーキーボックス発動前
+ 93:land mine, 97:??, 99:talky box(befor invoked)
+ 他情報求む
+R 0120 <ID>.l
+ スキル効能地消去
+ delete ground effect.
+R 0121 <num>.w <num limit>.w <weight>.l <weight limit>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*
+ カート内アイテム。装備品
+ equipments in cart.
+R 0123 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B}.10B*
+ カート内アイテム。消耗品/収集品
+ cunsumptive and collector items in cart.
+R 0124 <index>.w <amount>.l <item ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w
+ カートにアイテム追加
+ add item to cart.
+R 0125 <index>.w <amount>.l
+ カートからアイテム削除
+ delete item in cart.
+S 0126 <index>.w <amount>.l
+ カートにアイテムを入れる
+ put item to cart.
+S 0127 <index>.w <amount>.l
+ カートからアイテムを取り出す
+ take out item from cart.
+S 0128 <index>.w <amount>.l
+ カプラさんからカートへアイテムを移す
+ move item from capra's warehouse to cart.
+S 0129 <index>.w <amount>.l
+ カートからカプラさんへアイテムを移す
+ move item from cart to capra's warehouse.
+R 012c <fail>.B
+ fail=00 重量制限を越えてカートにアイテムを入れられませんでした?
+ fail=00 over the weight and could not add item to cart.
+R 012d <num>.w
+ 露店開設。アイテムリスト要求。numは置ける最大数
+ create shop (marchant skill). request item list. num is a number of kind of item that can be sell.
+S 012e
+ 露店閉鎖
+ close shop.
+S 012f <len>.w <message>.80B {<index>.w <amount>.w <value>.l}.8B*
+ 露店開設、露店名&アイテム,値段リスト
+ create shop, shop name, item, price list.
+S 0130 <ID>.l
+ 露店アイテムリスト要求
+ request item list for shop( not npc shop).
+R 0131 <ID>.l <message>.80B
+ 露店看板表示
+ display shop name tag.
+R 0132 <ID>.l
+ 露店看板消去
+ 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
+ 露店アイテムリスト
+ item list for shop(not npc shop).
+S 0134 <len>.w <ID>.l {<amount>.w <index>.w}.4B*
+ 露店アイテム購入
+ buy item from shop (not npc).
+R 0135 <index>.w <amount>.w <fail>.B
+ 露店アイテム購入失敗。failは原因
+ 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*
+ 露店開設成功
+ success to create non-npc-shop.
+R 0137 <index>.w <amount>.w
+ 露店アイテム販売報告
+ report of selling item.
+R 0139 <ID>.l <X>.w <Y>.w <X2>.w <Y2>.w <range>.w
+ IDの敵は(X,Y)に居て自分は(X2,Y2)に居るので攻撃が届きませんでした
+ the enemy at(X,Y) was too far to attack from my coordinate (X2,Y2).
+ 攻撃可能距離はrangeなので、近寄って下さい?
+ possible range to attack enemy is "range", so be closer?
+R 013a <val>.w
+ 攻撃射程
+ attack range.
+R 013b <type>.w
+ 各種メッセージ表示。3=矢が装備できました
+ various message. 3="arrow has been equiped"
+R 013c <ID>.w
+ 装備された矢のItemID。0で、未装備状態。
+ item id of equiped arrow. 0 means no arrow is equiped.
+R 013d <type>.w <val>.w
+ HP回復スキル/SP回復スキルによる回復
+ 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
+ スキル詠唱中。PC/NPCが相手の場合は(X,Y)は0。場所がターゲットの場合は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) はスキル属性です(調査済)。
+ offset+16(dword) in packet number 0x013e is skill attribute.
+
+ 00:無 01:水 02:地 03:火 04:風 05:毒 06:聖 07:暗 08:念 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
+ 将来的に、詠唱中のエフェクトが属性で変わるのかと。
+ casting effect might differ by skill attribute in the future.
+
+ waitはms単位かな?
+ wait in mili second?
+R 0141 <type>.l <base>.l <bonus>.l
+ ステータス情報。typeは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
+ 案内員用、マップ上アイコン表示パケット
+ for guid npc, packet for display icon on map.
+ type=1 アイコンを表示
+ display icon.
+ type=2 アイコンを消去
+ delete icon.
+R 0145 <file name>.16B <type>.B
+ (今の所)カプラさんcutin表示
+ display capra picture(at this time).
+ type=02 表示
+ display.
+ type=ff 消去
+ delete.
+S 0146 <ID>.l
+ IDのNPCとの会話。CLOSEボタンを押した。ack無しにNPCメッセージウィンドを同時に閉じる
+ 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
+ アイテム利用の結果一時的に得られたスキル情報
+ effect for skill by using item.
+S 0148 <ID>.l
+ リザレクションの相手決め? @ β1
+ decide target of a skill rezarection? in beta1.
+S 0149 <ID>.l <type>.B
+ IDにマナーポイントを与える。type=00 プラス type=01 マイナス
+ give manner point to ID. type=00 is plus, type=01 is minus.
+R 014a <fail>.l
+ マナーポイントを与えた結果。fail=0 成功 fail=1 失敗
+ result of giving manner point. fail=0 is success, fail=1 is fail.
+R 014b <type>.B <nick>.24B
+ マナーポイントを貰った。type=00 プラス type=01 マイナス
+ get manner point. type=00 is plus, type-01 is minus.
+R 014C <len>.w (<type>.l <guildID>.l <guild name>.24B).*
+ 同盟・敵対ギルド表示
+ display alliance and opposition guild.
+ type=0 同盟
+ alliance.
+ type=1 敵対
+ opposition.
+S 014D
+ ギルド情報表示開始?
+ start of guild information?
+R 014E <type?>.l
+ type=0x57 一般ギルド団員
+ normal guild member.
+ type=0xD7 ギルドマスター
+ guild master.
+S 014F <page>.l
+ ギルド表示タブ送信
+ 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
+ ギルド情報
+ guild info.
+S 0151 <guild ID>.l
+ エンブレム要求
+ request for guild emblem.
+R 0152 <len>.w <guild ID>.l <emblem ID?>.l <emblem data>.?B
+ エンブレムイメージ送付
+ return emblem image.
+R 0154 <len>.w {<accID>.l <charactorID>.l <髪型>.w <髪の色>.w <性別?>.w <job>.w <lvl?>.w <上納経験値>.l <online>.l <Position>.l ?.50B <nick>.24B}*
+ ギルドメンバリスト?
+ guild member list?
+S 0159 <guildID>.l <accID>.l <charID>.l <mess>.40B
+ ギルド脱退送信
+ send packet for leaving guild.
+R 015A <nic>.24B <mess>.40B
+ ギルド脱退(全員)受信
+ receive packet for leaving guild(all members).
+S 015B <guildID>.l <accID>.l <charID>.l <mess>.40B
+ ギルド追放送信
+ send packet for kicking member out of the guild.
+R 015C <nick>.24B <mess>.40B <アカウントID>.24B
+ ギルド追放(全員)受信
+ 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
+ ギルド作成
+ create guild
+R 0166 <len>.w ?.28B*
+ 役職名リスト?
+ list for roll of members?
+R 0167 <type>.b
+ ギルド作成合否
+ response to vreating guild.
+ type = 0 ギルド作成成功
+ success.
+ type = 2 同名のギルドがある
+ there is a guild with the same name.
+S 0168 <TargetAccID>.l <sourceAccID>.l <myCharactorID>.l
+ ギルド勧誘
+ invite to the guild.
+R 0169 <type>.B
+ ギルド勧誘拒否された
+ invitation denied.
+R 016A <guild ID>.l <guild name>.24B
+ ギルド勧誘された
+ invited to the guild.
+S 016B <guild ID>.l <type>.l
+ ギルド勧誘返信
+ response to invitaion for joining to guild.
+ type=0 拒否する
+ deny.
+ type=1 許諾する
+ OK.
+R 016c <guild ID>.l ?.13B <guild name>.24B
+ login時ギルド情報
+ guild information when loged in.
+R 016d <ID>.l <charactor ID>.l <online>.l
+ ギルドメンバがloginした抜けた等
+ information about guild member loged in or loged out etc.
+R 016f <message>.180B
+ ギルドお題目?
+ guild message?
+S 016E <guildID>.l <mess1>.60B <mess2>.120B
+ ギルド告知設定
+ set guild announcement.
+R 016F <mess1>.60B <mess2>.120B
+ ギルド告知
+ guild announcement.
+S 0170 <TargetAccID>.l <sourceAccID>.l <myCharactorID>.l
+ 同盟要請勧誘
+ invite the guild to be alliance.
+R 0171 <SorceAccID>.l <guild name>.24B
+ 同盟要請勧誘された
+ invited to be a alliance.
+S 0172 <SorceAccID>.l <type>.l
+ 同盟要請返信
+ response for invitiation to be alliance.
+ type=0 拒否する
+ deny.
+ type=1 許諾する
+ OK.
+R 0173 <type>.B
+ type = 0 すでに同盟関係
+ 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*
+ 鑑定可能アイテムリスト
+ list of items that need to be judge( i mean unkown items.)
+S 0178 <index>.w
+ アイテム鑑定
+ judge item.
+R 0179 <index>.w <fail>.B
+ アイテム鑑定結果。fail=00で成功。fail=01ってあるのか?
+ response to judging item. fail=00 is success. is there fail=01?
+S 017A <index>.w
+ カードWクリック
+ card is double clicked.
+R 017B <len>.w {<index>.w}*
+ カード挿入できるアイテム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=失敗?
+ response to insert Src to Desc. fail=0 is success, fail=01 is fail?
+S 017e <len>.w <message>.?B
+ ギルド内メッセージ発言
+ send speach for guild members.
+R 017f <len>.w <message>.?B
+ ギルド内メッセージ受信
+ 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
+ alive信号?
+ alive signal?
+R 0188 <fail?>.w <index>.w <val>.w
+ 武器精錬。結果+val武器に
+ weapon refiling. result+val to weapon
+R 0189 ?.w
+ 謎。テレポ失敗?
+ unknown. fail to teleport?
+S 018a ?.w
+ ゲーム終了
+ game quited.
+R 018b <fail>.w
+ ゲーム終了/キャラセレ応答。fail=0成功。fail=1失敗?
+ 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の敵のセンス結果
+ response to sense skill by wizard.
+ 0 小型
+ small
+ 1 中型
+ middle
+ 2 大型
+ big
+R 0191 <ID>.l <message>.80B
+ トーキーボックスのメッセージ
+ message of talky box.
+S 0193 <ID>.l
+ ギルドメンバ名前引き?
+ name search for guild member?
+R 0194 <ID>.l <nick>.24B
+ ギルドメンバ名前引き応答?
+ response to name search for guild member?
+R 0195 <ID>.l <nick>.24B <party name>.24B <guild name>.24B <class name>.24B
+ ギルド所属PCの場合の0094返答
+ response to packet number 0094 that if the player joined guild.
+R 0196 <type>.w <ID>.l
+ 増強系スキル使用時のメッセージ色々。IDはtargetと思われるが自分相手のみしか来ない?
+ various message of skill that effect status. ID must be target, but only m ID and other's ID are sent?
+ type=00 2HQ付与「攻撃速度が増加しました。」
+ 2HQ casted. "attack speed insreased."
+ type=01 2HQ解除「攻撃速度が減少しました。」
+ 2HQ ended. "attack speed decreased."
+ type=02 IMPOSITIO付与「武器の攻撃力が増加しました。」
+ IMPOSITIO casted. "power of the weapon increased."
+ type=03 IMPOSITIO解除「武器の攻撃力が減少しました。」
+ IMPOSITIO ened. "power of the weapon decreased."
+ type=04 「スキル使用ディレイが減少しました。」
+ "casting delay become short"
+ type=05 「スキル使用ディレイが元に戻りました。」
+ "casting delay return to defailt"
+ type=06 「武器に毒属性が付与されました。」
+ "attribute of poison is given to the weapon"
+ type=07 ASPERSIO付与「武器に聖属性が付与されました。」
+ ASPERSIO casted. "attribute of holly is given to the weapon"
+ type=08 ASPERSIO解除「武器の属性が元に戻りました。」
+ ASPERSIO ended. "attribute of weapon return to default"
+ type=09 「防具に聖属性が付与されました。」
+ "armor got holly attribute"
+ type=0a 「防具の属性が元に戻りました。」
+ "armor's attribute return to default"
+ type=0b KYRIE付与「バリア状態になりました。」
+ KYRIE casted. "barrier"
+ type=0c KYRIE解除「バリア状態が解除されました。」
+ KYRIE ended. "barrier end"
+ type=0d 「ウェポンパーフェクションモードになりました。」
+ "became weapon ferfection mode"
+ type=0e 「ウェポンパーフェクションモードが解除されました。」
+ "end weapon perfection mode"
+ type=0f 「オーバートラストモードになりました。」
+ "became over trust mode"
+ type=10 「オーバートラストモードが解除されました。」
+ "end over trust mode"
+ type=11 「マキシマイズパワーモードになりました。」
+ "became maximize power mode"
+ type=12 「マキシマイズパワーモードが解除されました。」
+ "end maximize power mode"
+S 0197 <type>.w
+ type=0 /resetstate
+ type=1 /resetskill
+ 効能は無し?
+ no effect?
+R 019b <ID>.l <type>.l
+ 他人のlvupや武器精錬等の表示?
+ display other's level up effect or weapon refiling?
+ type=0 base lvup?
+ type=1 job lvup?
+ type=3 武器精錬
+ weapon refiling
+R 0199 <type>.w
+ type=1 pvpモード開始?
+ start pvp mode?
+R 019a <ID>.l <rank>.l <num>.l
+ pvp順位 rank/num
+ pvp rank rank/num
+R 019b <ID>.l <type>.l
+ 他人のlvupや武器精錬等の表示?
+ type=0 base lvup?
+ type=1 job lvup?
+ type=2 武器精錬失敗
+ type=3 武器精錬成功
+
+R 019d <?>.4B
+ GMコマンド/hide
+
+S 00CC <ID>.l
+ GM用右クリックメニュー「(name)使用者強制終了」使用
+ use special right click menu for GM "(name) force to quit"
+
+S 0149 <ID>.l <type>.B <time>.w
+ GM用右クリックメニュー「チャット禁止時間を下げる(解ける)」使用 → type=00
+ use special right click menu for GM "decrease prohibited time to create chat room". type=00
+ GM用右クリックメニュー「チャット禁止時間を上げる(掛ける)」使用 → type=01
+ use special right click menu for GM "increase prohibited time to create chat room". type=01
+ timeは分単位です(確か
+ unit is minute (maybe
+
+R 019e
+ 捕獲モンスター決め
+S 019f <ID>.l
+ 捕獲モンスター指定
+R 01a0 <fail>.B
+ 捕獲判定
+ fail=01で成功、00で失敗
+S 01a1 <param>.1B
+ <param>
+ 0x00:ペット状態表示
+ 0x01:餌を与える
+ 0x02:パフォーマンス
+ 0x03:卵に戻す
+ 0x04:アクセサリ解除
+R 01a2 <pet name>.24B <name flag>.B <lv>.w <hungry>.w <friendly>.w <accessory>.w
+ ペットの状態
+ name flag:00=名前未設定 01=名前設定済み(変更不可)
+ lv=ペットのレベル、hungry=満腹度(0~100)、friendly=親密度(初期値250?)、accessory=アクセサリのItemID
+R 01a3 <fail>.B <itemID>.w
+ <fail>
+ 0x00:餌やり失敗
+ 0x01:餌やり成功
+R 01a4 <type>.B <ID>.l <val>.l
+ ペット関連通知
+ type=00,val=00 ペット孵化時に送られてくる。ペット認識用?
+ type=01 親密度変化
+ type=02 満腹度変化
+ type=03 アクセサリ変化(0で未装備)
+ type=04 パフォーマンス 確認されたval=1~3
+ (4はスペシャルパフォーマンス?)
+ type=05 ?確認されたval=0x14
+S 01a5 <pet name>.24B
+ ペットの名前決め
+R 01a6 <len>.w <index>.w*
+ ペットの卵リスト
+S 01a7 <index>.w
+ ペットの卵リストが選択された
+S 01a9 <emotion>.l
+ ペットエモーション送信
+R 01aa <ID>.l <emotion>.l
+ ペットエモーション受信
+ <emotion>
+ 33以下のとき:エモーション
+ 34以上のとき:発言テーブル?
+R 01ac <object id>.l
+ アンクルの発動(≠設置)時のみ毎回出現(機能は謎)
+R 01ad <len>.l <item>.w
+ 矢作りの作成可能ITEM表受信
+S 01ae <itemID>.w
+ 矢作りで使う材料送信
+S 01af <type>.w
+ チェンジカート(カート選択)
+ type=1 ノーマルカート
+R 01b0 <monster id>.l <?>.b <new monster code>.l
+ 油のクラスチェンジ
+ <new monster code>はチェンジ後のコード(1001〜)をdwordで
+S 01b2 <len>.w <message>.80B <flag>.B {<index>.w <amount>.w <value>.l}.8B*
+ 露店開設
+ flag : 0=キャンセル , 1=オープン
+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 <上納ポイント>.l <性向F-V>.l <性向R-W>.l <members>.l <guild name>.24B <guild master>.24B <agit?>.20B
+ ギルド情報
+R 01b9 <ID>.I
+ 被ダメ等によるIDの詠唱中断
+
+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
+ カプラ倉庫アイテム
+R 01c8 <index>.w <item ID>.w <ID>.l <amount left>.w <type>.B
+ アイテム使用応答。(00a8の上位バーション?)
+ type=00の場合使用失敗? amountもゴミの模様
+ type=01の場合成功で、amountは使用後の残り個数
+R 01c9 <dst ID>.l <src ID>.l <X>.w <Y>.w <type>.B <fail>.B ?.81b
+ スキル効能地作成(011fの上位バーション?)
+ type 0x7e:SW、0x7f:火壁、0x80 ポタ開き中、0x81 ポタ開き直前
+ 0x82 聖体、0x83 サンク、0x84 マグヌス、0x85 ニューマ
+ 0x86 0x86 大魔法(SG/MS/LoV/GX)、0x87 ファイヤーピラ待機
+ 0x88 ファイヤーピラ爆発、0x87〜0x8B 表示無し、
+ 0x8c トーキーボックス(発動中)、0x8D アイスウォール
+ 0x8E クワグマイア、0x8f ブラストマイン、0x90 スキッド
+ 0x91 アンクル、0x92 ベノムダスト、0x93 ランドマイン
+ 0x94 ショックウェーブトラップ、0x95 サンドマン
+ 0x96 フラッシャー、0x97 フリージングトラップ
+ 0x98 クレイモアートラップ、0x99 トーキーボックス
+ 0x9A ボルケーノ、0x9B デリュージ、0x9C バイオレントゲイル
+ 0x9D ランドプロテクター、0x9E Zenyマーク、0x9F Zeny袋
+ 0xA0 回る緑の輪、0xA1 ピンクの音符 (二連符有り
+ 0xA2 真ん中に点のある光の玉、0xA3 ピンクのスプリング
+ 0xA4 深淵の中に、0xA5 回る青い輪、0xA6 不協和音
+ 0xA7 口笛、0xA8 夕陽のアサシンクロス、0xA9 ブラギの詩
+ 0xAA イドゥンの林檎、0xAB 自分勝手なダンス、0xAC ハミング
+ 0xAD 私を忘れないで…、0xAE サービスフォーユー
+ 0xAF ピンクのスプリング、0xB0 表示無し
+ 0xB0 グラフィティ,
+ 0xB1 デモンストレーション、0xB2〜0xBF 表示無し
+ 0xB2 ピンクのワープポータル風
+ 0xB3 小さな十字架がふよふよ
+ 0xB4 バジリカ、0xB5 エフェクトなし?
+ 0xB6 黒い×が立体的に浮かび上がる
+ 0xB7 クモの巣、0xB8〜 エフェクトなし?
+
+ 他情報求む
+ ?.81bは謎。
+R 01cd (<sid>.l)x7
+ オートスペル選択肢受信
+ <sid>x7 には NB,CB,FB,LB,SS,FBL,FD の順でスキルコードがdwordで入る
+ まだ選択できないスキルの部分は <sid> = 0x00000000 が入る
+S 01ce <sid>.l
+ オートスペル選択肢送信
+R 01cf <crusader id>.l <target id>.l <?>.18b
+ 献身状態ターゲットON/OFF。献身が切れると <target id> が 0x00000000 になる
+
+R 01d0 <ID>.l <num>.w
+ <num> : 気功の数(非Lv)
+R 01d1 <monk id>.l <target monster id>.l <bool>.l
+ 白羽取り状態ON/OFF。<bool> は白刃取り成立時に 0x00000001 解除時に 0x00000000 が来る
+R 01d2 <id>.l <delay>.l
+ モンクのコンボディレイ(msec)
+ 三段・連打は基本ディレイ1000(+300)、猛龍は基本ディレイ700(+300)
+R 01d4 <ID>.l
+ 文字列入力窓表示(IDはNPCのIDが入る)
+S 01d5 <len>.w <ID>.l <input>.?B 00
+ 文字列入力内容送信(IDはNPCのIDが入る)
+R 01d7 <ID>.l <equip point>.b <item id1>.w <item id2>.w
+ 装備グラフィック <equip point> は 02手と09足のみ確認。id2は左手
+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
+ マップロード時&移動時用、向き付き用キャラ情報?(0078の上位バージョン)
+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
+ テレポ等の表示範囲内沸きキャラ用、向き付き無しキャラ情報?(0079の上位バージョン)
+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
+ 表示範囲内キャラ移動情報(007bの上位バージョン)
+S 01db
+ 暗号化key要求
+R 01dc <len>.w <key>.?B
+ 暗号化key送付
+S 01dd <version>.l <account name>.24B <md5 binary>.16B <version2>.1B
+ id&暗号化済みpass送信
+ 順にクライアントが01dbを送る、
+ 鯖が01dcでkeyを返す、
+ クライアントが"<key><password>"についてmd5計算し
+ <md5 binary>の所を埋めて01ddを送る。
+ <passwordencrypt2>の時は
+ "<key><password>"に対してmd5計算としている所を
+ "<password><key>"と変更する
+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
+ 攻撃系スキルエフェクト@(0114の上位バーション?)
+ type=04 火壁で観測 type=06とほぼ同じ?
+ type=05 NB/FBlの分散したダメージ用?
+ type=06 単発もの? param1はダメージ合計、param2はlevel、param3は1固定と予想
+ type=07 ダメージ表示無し?
+ type=08 連打もの? param1はダメージ合計、param2はlevel、param3は分割数と予想
+ type=09 ダメージモーションなしにダメージだけ表示される物(インデュア)と思ったのだがダメージモーションが出る物。(機能は謎)
+S 01df <ID>.|
+ GM右クリックによるIDのチャット禁止回数参照?
+R 01e1 <ID>.l <num>.w
+ <num> : 気功の数(非Lv) 一度表示したら後どんなnumが来ても無視される。
+R 01e6 <partner name>.24B
+ 結婚スキルあなたに逢いたい使用時の叫び声
+S 01e7
+ スパノビで/doridoriしたら飛んでくる。SPR回復量2倍フラグを立てるパケット
+S 01e8 <party name>.24B <item1>B <item2>B
+ <item1>アイテム収集方法。0で個人別、1でパーティ公有
+ <item2>アイテム分配方法。0で個人別、1でパーティに均等分配
+ (00f9の上位バーション)
+R 01ea <ID>.l
+ 結婚エフェクト(音楽、紙吹雪)
+ IDは新婦のものが入る?
+S 01ed
+ スパノビが爆裂波動になるフラグを立てるパケット
+R 01ee <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B <card>.4w}.18B*
+ 所有消耗品&収集品リスト
+ 矢の場合は?.2Bが0x8000になる
+ 00a3から変更
+R 01ef <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B <card>.4w}.18B*
+ カート内アイテム。消耗品/収集品
+ 0123から変更
+R 01f0 <len>.w {<index>.w <item ID>.w <type>.B <identify flag>.B <amount>.w ?.2B <card>.4w}.18B*
+ カプラさんに預けてある消耗品&収集品リスト
+ 00a5から変更
+R 01f4 <name>.24B <trade id?>.L <LV>.w
+ 先方から取引要請
+ 00e5から変更
+R 01f5 <result>.B <trade id?>.L <LV>.w
+ こちらからの取引要請に対する反応
+ 00e7から変更
+S 0200 <login name>.24B
+ ragexeに/accountオプションをつけて起動するとログイン要求に付加されるパケット
+
+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
+ ログイン要求に付加されるパケット。16バイトは固定?
+S 020B <?>.17B
+ キャラクタサーバ接続要求0065に付加されるパケット。1+0204の16バイトで17バイト?
+
+
+パケット長の追加。019e〜01aaが増えてるので、0190〜を切り抜き
+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 new file mode 100644 index 000000000..8aef5a8f5 --- /dev/null +++ b/doc/pccommand_list.txt @@ -0,0 +1,105 @@ +---> PC Command List
+------> Here's a list of PC commands and what they do.
+
++ PCCommand: PCLoginEvent
++ 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 PCLoginEvent -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) This NPC will only run if its name is 'PCLoginEvent'
+ 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 PCLoginEvent NPC, strange things will happen.
+ 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: PcBaseUpEvent
++ 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 PCBaseUpEvent -1,{
+ mes "zomfg....";
+ close;
+}
+
++ Explaination:
+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.
+
+-----------------------------------------------------------------------------
+
++ PCCommand: NPCKillEvent
++ 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 NPCKillEvent -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: PCLoadMapEvent
++ 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 PCLoadMapEvent 101,{
+ mes "Holy shit";
+ close;
+}
+
+----or--->
+
+OnPCLoadMapEvent:
+ announce " " strcharinfo(0) + " has changed map!", 16;
+ end;
+
+ + Note:
+ 1) The first event command would make the npc trigger if the player goes on the map.
+ 2) The second one would make the trigger work on all maps reguardless of script definations.
+ 3) It is not recommended to use the second one as it is not optimised and will cause
+ unessecery lag.
+ 1) And as usual... 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.
+
+-----------------------------------------------------------------------------
\ No newline at end of file diff --git a/doc/script_commands.txt b/doc/script_commands.txt new file mode 100644 index 000000000..cb3f95b22 --- /dev/null +++ b/doc/script_commands.txt @@ -0,0 +1,4893 @@ +//===== 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.7
+//=========================================================
+//= 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]
+//===== 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>,<x1>,<y1>,<x2>,<y2>%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. x1/y1-y1/y2 is a
+square of map coordinates which will limit where they will initially spawn.
+Putting zeros instead of these coordinates will spawn the monsters randomly.
+It's not certain whether monsters will later be able to venture out of this
+square when randomly moving or not. (Can anyone confirm?)
+
+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 4000 to the monster ID, the monster will be spawned in a 'big
+version', (monster size class will increase) and if you add 2000, the 'tiny
+version' of the monster will be created. This will not, however, make the
+monster spawn with a bigger or smaller sprite, like with
+@monstersmall/@monsterbig GM commands. Monster size class relates only to the
+damage calculation.
+
+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.) If both delay values are -1,
+the monster will never respawn upon death until the server restarts. The times
+are given in 1/1000ths of a second.
+
+Level overrides the monster's level from the monster id database, if it is 0,
+the level from the database is used.
+
+** 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.
+
+PCDieEvent:
+PCKillEvent:
+PCLogoutEvent:
+PCLoginEvent:
+
+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.
+
+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.
+
+---------------------------------------
+
+*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>;
+
+Thank you to HappyDenn for all this information.
+
+This command will finds all members of a specified party and returns their names
+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.
+$@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 'getarraysise()' 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;
+
+---------------------------------------
+
+*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 0.
+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」AI終嫡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.
+
+---------------------------------------
+
+*checkoption(<option number>)
+*checkoption1(<option number>)
+*checkoption2(<option number>)
+*setoption <option number>;
+
+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 version of this command are:
+
+1 - Petrified.
+2 - Frozen.
+3 - Stunned.
+4 - Sleeping.
+32 - Riding a Peco.
+
+'setoption' will set options on the invoking character. There are no second and
+third versions of this command, so you can only change the
+petrified/frozen/stunned/sleeping/riding status in this manner.
+
+Option numbers valid for the second version of this command are:
+
+1 - Poisoned.
+2 - Cursed.
+4 - Silenced.
+8 - Blinded (Notice that unless you specfy variable night darkness in the
+ configuration, all characters will be 'blinded' during the night)
+
+Option numbers valid for the third version of this command are:
+
+1 - Sight in effect.
+2 - Hide in effect.
+4 - Cloaking in effect.
+8 - Falcon present.
+64 - GM Perfect Hide in effect.
+128 - Cart number 2 present.
+256 - Cart number 3 present.
+512 - Cart number 4 present.
+1024 - Cart number 5 present.
+2048 - Orc head present.
+4096 - The character is wearing a wedding sprite.
+8192 - Ruwach is in effect.
+
+Option numbers are bitmasks - add up option numbers to check for all of them
+being present at the same time in one go.
+
+This is definitely not a complete list of available option flag numbers. Ask a
+core developer 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 PCLoginEvent and PCLogoutEvent, 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
+
+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::Label";
+
+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::L_PoringKilled";
+ // 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.
+
+---------------------------------------
+
+*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.
+
+---------------------------------------
+
+*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,0,500,,0,,0,2088958,0,16,,0,0,{(This is for use bonus)},{ 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_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 "<character name>:<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.
+
+Even though the character name and the ':' are not used for anything whatsoever,
+it is required to give them in this command because it is processed exactly as
+if typed from the keyboard, and that is how it will arrive into the processing
+function if it is typed from the keyboard. The character name given must be the
+same length as the name of the invoking character object, although nothing else
+is required of it.
+
+ // This will ask the invoker for a character name and then use the '@nuke'
+ // GM command on them, killing them mercilessly.
+ input @player$;
+ gmcommand strcharinfo(0)+":@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.
+ 4 - Pet friendly level (intimacy score). 1000 is full loyalty.
+ 3 - 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 - Allowed Classes;
+ 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;
+
+---------------------------------------
+
+*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);
+
+---------------------------------------
+
+*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);
+
+Whew.
+What's about all of them. + +--------------------------------------- + +*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);} }"; diff --git a/doc/script_ref.txt b/doc/script_ref.txt new file mode 100644 index 000000000..63fea4ec6 --- /dev/null +++ b/doc/script_ref.txt @@ -0,0 +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.
+
+ 「<gatname>,<x>,<y>,<direction><tab>」の部分を、「-<tab>」とすることで、
+ マップサーバー内には存在していても、実際のマップには配置されないNPCを作成できます。
+ これは後述のデュプリケートスクリプトでコピー元として使用します。
+
+ *デュプリケートスクリプト:既存のNPC(のスクリプト)をコピーします。
+ <gatname>,<x>,<y>,<direction><tab>duplicate(<source>)<tab><displayname><tab><npcid>,<xs><ys>
+
+ source以外のパラメータは通常のスクリプトと同じです。
+ sourceにはコピー元となるNPCの識別名を入力します。
+
+ コピー元のNPCがマップ上に配置されている場合、同じマップである必要があります。
+ マップ上に配置されていない場合は、どのマップへもコピー可能です。
+
+ *ユーザー定義関数スクリプト:スクリプトから呼び出されるユーザー定義関数を作成します。
+ function<tab>script<tab><name><tab>{ <script> ... }
+
+ callfunc命令で呼び出すことの出来る関数を作成します。
+ 関数の最後には必ずreturn命令を入れてください。
+
+ *マップフラグ:MAPのルールを管理します。
+ <gatname><tab>mapflag<tab><const>
+
+ gatname ルールを設定するMAPファイル名を指定します。
+ const ルールの内容を指定します。
+
+ constの一覧。
+ nosave<tab><gatname>,<x>,<y>
+ リログインした際<gatname>の座標<x>,<y>に移動します。
+ nomemo<tab>dummy
+ メモを取ることを禁止します。
+ notereport<tab>dummy
+ SavePointまたはRandomを指定したwarp文、ワープポータル、テレポートを禁止します。
+ nobranch<tab>dummy
+ 古木の枝の使用を禁止します。
+ pvp<tab>dummy
+ PVP可能MAPになります。
+ nopenalty<tab>dummy
+ デスペナルティ無しになります。
+ pvp_noparty<tab>dummy
+ PVPにおいて、同パーティー攻撃不可になります。
+ pvp_noguild<tab>dummy
+ PVPにおいて、同ギルド攻撃不可になります。
+ gvg<tab>dummy
+ シーズモードになります。
+ gvg_noparty<tab>dummy
+ シーズモードにおいて、同パーティー攻撃不可になります。
+
+2.スクリプトの説明と基本的な規則
+ *数字
+ 符号付の整数と16進数表記整数を使用することができます。
+ 符合付整数は半角数字で123456等と記述します。
+ 16進数表記整数は0x12等0xを付けて記述します。
+
+ *文字列
+ "(ダブルクォーテーション)で囲んだ文字は文字列として評価されます。
+ "(ダブルクォーテーション)記号を扱いたい場合は\"と記述します。
+ \記号を扱いたい場合は\\と記述します。
+ なお表示関係の物に関しては^000000等の色変更を使うことができます。
+ 変数 + "文字列"といった文字列結合もできます。
+
+ *単項演算子
+ 以下の数値専用の単項演算子が用意されています。
+ - 符号逆転(2の補数)
+ ~ ビット論理否定(1の補数)
+ ! 論理否定
+
+ *2項演算子
+ 以下2項演算子は数値と文字列で動作が異なります。
+ + 加算/結合
+ 数値どうしの場合は加算します。
+ それ以外の場合は文字列とみなして結合します。
+
+ 以下の2項演算子は数値専用です。
+ - 減算
+ * 乗算
+ / 除算
+ % 剰余
+ & ビット論理積
+ | ビット論理和
+ ^ ビット排他的論理和
+ && 論理積
+ || 論理和
+
+ 以下の2項演算子は数値どうし、または文字列どうしの比較を行います。
+ これらの関係演算子は関係が成り立つと1、成り立たないと0を返します。
+ == 等しい
+ != 等しくない
+ > より大きい
+ >= より大きいか等しい(以上)
+ < より小さい(未満)
+ <= より小さいか等しい(以下)
+
+ *変数
+ 半角英数字を使用することができます。
+ 変数のスコープとライフタイムはプレフィックスにより指定します。
+ 小文字のエルはプレフィックスとして扱われるので注意してください。
+ (小文字のエルは今後の動作を保障されないので使用しないで下さい)
+
+ プレフィックス スコープ ライフタイム
+ (なし) キャラクター 永続的
+ @ キャラクター 一時的
+ l 同上 同上(推奨されない)
+ $ マップサーバー 永続的
+ $@ マップサーバー 一時的
+ # アカウント 永続的
+ ## アカウント(全ワールド) 永続的
+
+ つまり、普通の一時的な変数は@, 保存する必要のある変数は
+ プレフィックスなし、全てのキャラクターで共有すべき変数は $、
+ 同一アカウントで共有すべき変数は # や ## を使用することになります。
+
+ また、変数の型はポストフィックスにより指定します。
+ ただし、文字列型はキャラクター一時変数、および、
+ 永続的/一時的マップサーバー変数でのみ使用できます。
+ (プレフィックス @、$、$@ )
+
+ ポストフィックス 型
+ (なし) 整数
+ $ 文字列
+
+ <例> @hoge$ 文字列型一時的キャラクター変数
+ hoge 数値型永続的キャラクター変数
+ $hoge 数値型永続的全キャラクター共有変数
+
+ 一時的でない変数は多用すべきではありません。
+ 保存する必要のないものは極力一時変数で済ませるべきです。
+ 保存する必要があるのかないのかはよく考慮してください。
+ 特に永続的なキャラクター/アカウント変数は、数に制限があります。
+ 使用が終わって二度と使用することがないとわかっている変数は
+ 値を0に設定することで削除することが出来ます。
+
+ *配列変数
+ 変数名の後に括弧 [ ] で括った式を指定することで配列変数になります。
+ 変数名と"["の間に空白文字を入れることはできません。
+
+ <例> hoge[10] fuga[ @temp ]
+
+ 配列の要素番号は0〜127が指定できますが、番号0は同名の変数と
+ 値を共有します。たとえば、hoge[0] と hoge は同じ変数です。
+
+ 配列変数は一時的キャラクター変数、一時的/永続的マップサーバー変数で使用できます。
+ 変数の型は数値、文字列両方とも利用できます。
+
+ *ラベル
+ 半角英数およびアンダーバーが使用できます。
+ 変数や命令などと区別するため L_ を先頭につけることが推奨されます。
+ L_hoge: といった風に使用します。
+ if文やmenu文のジャンプ先に指定されます。
+
+ *定数
+ athenaはdb/const.txtに準拠した定数を提供します。
+ スクリプト内でのみ使用可能です。
+
+ *埋め込み変数
+ 話かけたプレイヤーのステータスなどを参照できます。
+ db/const.txtに記述されています。
+ スクリプト内でのみ使用可能です。
+ なお、一部を除いて値の代入はできません。
+
+ *式
+ 命令文の引数が数値だった場合、そこで利用することができます。
+ スペースは要らないようですがあった方が見易いです。
+ 比較演算子及び論理演算子は値が真であったとき数値の1、偽であったとき0を返します。
+
+ *イベント
+ 形を持たないスクリプトです。
+ タイムアタックなどの作成に使います。
+ イベント名を記述する部分では、イベント名::ラベル名とすることでそのイベントの指定したラベルから
+ スクリプトを開始させることができます。
+
+ *命令構文
+ 引数は半角スペースを空けて記述してください。
+
+3.命令文及び関数及び定数ラベル
+ *命令文
+ mes命令
+ mes <string>;
+
+ string 文字列
+
+ <string>に記述された文字列をメッセージウィンドウに出力します。
+
+ next命令
+ next;
+
+ メッセージウィンドウにnextボタンを表示し、待機します。
+
+ close命令
+ close;
+
+ メッセージウィンドウにcloseボタンを表示し、スクリプトを終了します。
+
+ menu命令
+ menu <string1>,<label1>[,<stringN>,<labelN>...];
+
+ stringN 文字列
+ labelN ラベル
+
+ メニューを表示します。<stringN>に記述された文字列を選択すると<labelN>からスクリプトを開始します。
+ また、選ばれたラベルの番号は変数@menuに代入されます。
+ (l15にも代入されますが、こちらは今後動作が保障されないのでl15は使用しないで下さい)
+
+ goto命令
+ goto <label>;
+
+ label ラベル
+
+ <label>からスクリプトを開始します。
+
+ cutin命令
+ cutin <filename>,<position>;
+
+ filename 文字列
+ position 数値
+
+ カプラ職員などのカットインを表示します。<filename>は表示したいファイル名、<position>は表示位置を指定します。
+ position:0,左下、1,中央下、2,右下、255,カットイン消去
+
+ jobchange命令
+ jobchange <job>[, <upper>];
+
+ job 数値
+ upper 数値
+
+ 職業を変更します。<job>はdb/const.txtを参照してください。
+ <upper>は0=通常,1=転生,2=養子,-1 or 無し=現在の<upper>になります。
+ jobLvは自動で1になります。
+ バードとダンサーには注意してください。
+
+ input命令
+ input [<variable>];
+
+ variable 変数、省略可
+
+ 入力ウィンドウを開き、入力データを<variable>に代入します。
+ 変数の型が文字列型のときは文字列入力ウィンドウ、整数型のときは数値入力ウィンドウになります。
+ <variable>を省略した場合には数値入力ウィンドウを出し、データは変数l14 (小文字のエル+14)に代入されます。
+ (l14は今後の動作が保障されないので、引数は省略しないで下さい)
+
+ warp命令
+ warp <gatname>,<x>,<y>;
+
+ gatname 文字列
+ x,y 数値
+
+ <gatname>に指定されたMAPの座標<x>,<y>にワープします。
+ <gatname>をSavePointにした場合、セーブポイントに移動します。
+ Randomにした場合、そのMAP内のどこかに移動します。即ち<x><y>は無視。
+
+ setlook命令
+ setlook <n1>,<n2>;
+
+ n1,n2 数値
+
+ 外見を変更します。<n1>は部品を、<n2>は種類を指定します。
+ n1:1,髪型、2,武器、3,頭上段、4,頭中段、5,頭下段、6,髪色、7,服色、8,盾
+ 装備品は変更されません。アサシン男とローグ男に関しては服の色がありません。
+
+
+ set命令
+ set <variable>,<n>;
+
+ variable 変数
+ n 数値/文字列
+
+ <variable>に<n>を代入します。
+ 文字列型を使用するときは変数名にポストフィックスを忘れないで下さい。
+
+ setarray命令
+ setarray <variable>[,<n0>[,<n1>…]];
+
+ variable 変数
+ nx 数値/文字列
+
+ 配列<variable>に値<n0>,<n1>,…のリストを代入します。
+ <variable>は配列名を指定すると最初から、要素番号も指定すれば途中から代入できます。
+ <例> setarray @hoge[2],16,24,32; @hogeの要素2から4までを16,24,32にする。
+
+ cleararray命令
+ cleararray <variable>,<n>,<count>;
+
+ variable 変数
+ n 数値/文字列
+ count 数値
+
+ 配列<variable>に値<n>を<count>個分代入します。
+ <variable>は配列名を指定すると最初から、要素番号も指定すれば途中から代入できます。
+ <例> cleararray @hoge[3],0,6; @hogeの要素3から8までを0にセットする
+
+ copyarray命令
+ copyarray <var1>,<var2>,<n>;
+
+ <var1>,<var2> 変数
+ n 個数
+
+ 配列<var1>に配列<var2>の要素<n>個をコピーします。
+ <var1>,<var2>は配列名を指定すると最初から、要素番号も指定すれば途中からコピーできます。
+
+ deletearray命令
+
+ deletearray <variable>,<n>;
+
+ variable 変数
+ n 数値
+
+ 配列<variable>から<n>個の要素を削除し、後ろの要素を前に詰める
+ <variable>は配列名を指定すると最初から、要素番号も指定すれば途中から削除できます。
+
+ if命令
+ if (<cond>) goto <label>;
+
+ cond 数値
+ label ラベル
+
+ <cond>が0以外の場合、<label>からスクリプトを開始します。
+
+ getitem命令
+ getitem <itemid>,<num>;
+
+ itemid 数値または文字列
+ num 数値
+
+ <itemid>に指定されたアイテムIDを持つアイテムを<num>個分入手します。
+ <itemid>が文字列の場合、その名前(name,jname)を持つアイテムのIDを使用します。
+ ただし、アイテム名はitem_db.txtなどに依存するため、テスト目的以外では使用すべきではありません。
+
+ getitem2命令
+ getitem <itemid>,<num>,<identify>,<refine>,<attribute>,<card1>,
+ <card2>,<card3>,<card4>
+
+ itemid 数値または文字列
+ num,identify,refine,attribute,card1,card2,card3,card4 数値
+
+ <itemid>に指定されたアイテムIDを持つアイテムを<num>個分入手します。
+ <identify> 鑑定状態(0で未鑑定、1で鑑定)
+ <refine> 精錬値
+ <attribute> アイテムの状態
+ <card1> 差さているカード、製造武器なら255で装備以外のアイテムでキャラの名前を入れたい時は254
+ <card2> 差さているカード、製造武器なら属性と星のかけらの数を設定。星のかけらの数(範囲:0~3)*5*256 + 属性(無:0、火:3、水:1、風:4、土:2)
+ <card3> 差さているカード、製造武器やキャラの名前が入るアイテムはキャラIDの下の2バイト
+ <card4> 差さているカード、製造武器やキャラの名前が入るアイテムはキャラIDの上の2バイト
+
+ <itemid>が文字列の場合、その名前(name,jname)を持つアイテムのIDを使用します。
+ ただし、アイテム名はitem_db.txtなどに依存するため、テスト目的以外では使用すべきではありません。
+
+ delitem命令
+ delitem <itemid>,<num>;
+
+ itemid_num 数値
+
+ <itemid>に指定されたアイテムIDを持つアイテムを<num>個分失います。
+
+ getexp命令
+ getexp <base_exp>,<job_exp>;
+
+ base_exp 数値
+ job_exp 数値
+
+ <base_exp>に指定された数だけBaseに経験値が入ります。
+ <job_exp>に指定された数だけJobに経験値が入ります。
+ マイナスの数字は適応されません。
+
+ makepet命令
+ makepet <petid>;
+
+ petid 数値
+
+ <petid>に指定されたアイテムIDを持つペットの卵を作成します。
+
+ viewpoint命令
+ viewpoint <type>,<x>,<y>,<id>,<color>;
+
+ type,x,y,id 数値
+ color 不明
+
+ 資料不足なので詳しい説明はできませんが、ミニMAPに点滅する点を表示、削除します。
+ type:1,表示、2,削除
+
+ heal命令
+ heal <hp>,<sp>;
+
+ hp,sp 数値
+
+ <hp>分HPを、<sp>分SPを回復します。
+
+ itemheal命令
+ itemheal <hp>,<sp>;
+
+ hp,sp 数値
+
+ <hp>分HPを、<sp>分SPを回復します。healとは違い回復するHPとSPの量にVIT(SPの場合INT)とスキルによる補正が付きます。
+
+ end命令
+ end;
+
+ スクリプトの実行を終了します。
+
+ setoption命令
+ setoption <string>;
+
+ string 文字列
+
+ 引用:
+ PCに以下で示す付属品(?)を付けます。
+ 0x0000 - 付属品削除
+ 0x0001 - ?
+ 0x0002 - ハイド(影付き)
+ 0x0004 - ??
+ 0x0008 - カート
+ 0x0010 - 鷹
+ 0x0020 - ペコペコ(ナイト,クルセイダーの時のみ有効)
+ 0x0040 - ハイド(影無し)
+ 0x0080 - カート2
+ 0x0100 - カート3
+ 0x0200 - カート4
+ 0x0400 - カート5
+ 0x0800 - 頭がオーク(Sageのスキル、リバースオーキッシュがかかった状態になる)
+
+ 一端すべて消されてから付け直すので、複数指定したい場合には合計を指定してください。
+
+ savepoint命令
+ savepoint <gatname>,<x>,<y>;
+
+ gatname 文字列
+ x,y 数値
+
+ <gatname>の座標<x>,<y>をセーブポイントに設定します。
+
+ openstorage命令
+ openstorage;
+
+ 倉庫を開きます。
+
+ setcart命令
+ setcart;
+
+ カートを付けます。
+
+ successrefitem命令
+ successrefitem <n>;
+
+ n 数値
+
+ 精錬成功エフェクトを表示します。
+ n:1,頭装備、2,鎧、3,左手、4,右手、5,かけるもの、6,靴、7,アクセ1、8,アクセ2、9,頭中段、10,頭下段
+
+ failedrefitem命令
+ failedrefitem <n>;
+
+ n 数値
+
+ 精錬失敗エフェクトを表示します。
+ n:1,頭装備、2,鎧、3,左手、4,右手、5,かけるもの、6,靴、7,アクセ1、8,アクセ2、9,頭中段、10,頭下段
+
+ setfalcon命令
+ setfalcon;
+
+ 鷹を付けます。
+
+ setriding命令
+ setriding;
+
+ ペコペコに乗ります。
+
+ monster命令
+ monster <gatname>,<x>,<y>,<mobname>,<mobid>,<num>[,<event>];
+
+ gatname,mobname 文字列
+ x,y,mobid,num 数値
+ event 文字列、省略可
+
+ <gatname>の座標<x>,<y>に<mobname>を持つ<mobid>に指定されたIDを持つモンスターを<num>体出現させます。
+ <gatname>がthisの場合スクリプトを実行したプレイヤーがいるMAP、
+ <x><y>が-1の場合、スクリプトを実行したプレイヤーの座標、
+ <mobname>が--en--の場合英語名、--ja--の場合日本語名、<mobid>が-1の場合ランダム。
+ そのモンスターを倒したとき<event>を開始します。
+
+ announce命令
+ announce <string>,<flag>;
+
+ string 文字列
+ flag 数値
+
+ <string>をGMアナウンスで表示します。
+ <flag>は以下に示す通りです。
+ エリアフラグ
+ 0x00 すべてのMAPに送信
+ 0x01 同じMAP
+ 0x02 画面内
+ 0x03 自分のみ
+ 0x04 同じMAP鯖
+ 色フラグ
+ 0x00 黄色
+ 0x10 青色
+ 特殊フラグ
+ 0x00 特に無し
+ 0x08 イベント用
+
+ エリアフラグと色フラグと特殊フラグの合計を指定してください。
+
+ killmonster命令
+ killmonster <gatname>[,<event>];
+
+ gatname 文字列
+ event 文字列、省略可
+
+ <gatname>に存在するモンスターをすべて殺します。
+ <event>によって呼び出されたモンスターのみ殺すことも可能です。<event>をAllにするとそのマップにある一時的に召喚されたモンスターを全て殺します。
+
+ killmonsterall命令
+ killmonsterall <gatname>
+
+ gatname 文字列
+
+ <gatname>に存在するモンスターをすべて殺します。killmonsterとは違ってそのマップに始めから配置されていたモンスターまで全て殺すことができます。
+
+
+ addtimer命令
+ addtimer <ms>,<event>;
+
+ ms 数値
+ event 文字列
+
+ 現在のプレイヤーに、<ms>ミリ秒経過した後<event>を開始するタイマーを作成します。
+ このタイマーによって実行されるイベントは、このプレイヤーの情報にアクセスできます。
+ プレイヤーがログアウトするとタイマーは無効になるため注意してください。
+ アリーナマップなどで使用する場合はこれではなくNPCタイマーを使用してください。
+
+ deltimer命令
+ deltimer <event>;
+
+ event 文字列
+
+ 現在のプレイヤーの<event>を開始するタイマーを消去します。
+
+ addtimercount命令
+ addtimercount <event>,<ms>;
+
+ event 文字列
+ ms 数値
+
+ 現在のプレイヤーの<event>を開始するタイマーの開始までの時間を<ms>ミリ秒追加します。
+
+ initnpctimer命令
+ initnpctimer [<name>];
+
+ <name>で指定されたNPCが持つNPCタイマーの値を0にし、カウントを開始します。
+ nameを省略すると、命令を実行したNPCが対象になります。
+
+ このNPCタイマーはミリ秒単位でOnTimerXXXXというラベルイベントを実行します。
+ <例> OnTimer1000: <= 1秒後, OnTimer30000: <= 30秒後
+
+ stopnpctimer命令
+ stopnpctimer [<name>];
+
+ <name>で指定されたNPCが持つNPCタイマーのカウントを停止します。
+ nameを省略すると、命令を実行したNPCが対象になります。
+
+ startnpctimer命令
+ stopnpctimer [<name>];
+
+ <name>で指定されたNPCが持つNPCタイマーのカウントを再開します。
+ nameを省略すると、命令を実行したNPCが対象になります。
+ こちらはinitnpctimerと違い、カウントを0にリセットしません。
+ stopnpctimerとセットで使用します。
+
+ setnpctimer命令
+ setnpctimer <tick>[,<name>]
+
+ <name>で指定されたNPCが持つNPCタイマーのカウントを変更します。
+ nameを省略すると、命令を実行したNPCが対象になります。
+ getnpctimerを利用すれば、カウントを増減できます。
+
+ disablenpc命令
+ disablenpc <npcname>;
+
+ npcname 文字列
+
+ <npcname>を無効にします。
+
+ enablenpc命令
+ enablenpc <npcname>;
+
+ npcname 文字列
+
+ <npcname>を有効にします。
+
+ mapannounce命令
+ mapannounce <gatname>,<string>,<flag>;
+
+ gatname,string 文字列
+ flag 数値
+
+ <gatname>全体に<string>をGMアナウンスで表示します。
+ flag:0,黄色文字、16,青文字
+
+ areaannounce命令
+ areannounce <gatname>,<x0>,<y0>,<x1>,<y1>,<string>,<flag>;
+
+ gatname,string 文字列
+ x0,y0,x1,y1,flag 数値
+
+ <gatname>の<x0>,<y0>から<x1>,<y1>の範囲内に対し<string>をGMアナウンスで表示します。
+ flag:0,黄色文字、16,青文字
+
+ areawarp命令
+ areawarp <gatname>,<x0>,<y0>,<x1>,<y1>,<gatname2>,<x>,<y>;
+
+ gatname,gatname2 文字列
+ x0,y0,x1,y1,x,y 数値
+
+ <gatname>の<x0>,<y0>から<x1>,<y1>の範囲内にいるPCを<gatname2>の座標<x>,<y>に移動させます。
+
+ areamonster命令
+ areamonster <gatname>,<x0>,<y0>,<x1>,<y1>,<mobname>,<mobid>,<num>[,<event>];
+
+ gatname,mobname 文字列
+ x0,y0,x1,y1,mobid,num 数値
+ event 文字列、省略可
+
+ <gatname>の<x0>,<y0>から<x1>,<y1>の範囲内に<mobname>を持つ<mobid>に指定されたIDを持つモンスターを<num>体出現させます。
+ <gatname>がthisの場合スクリプト実行MAP、<x><y>が-1の場合ランダム座標、
+ <mobname>が--en--の場合英語名、--ja--の場合日本語名、<mobid>が-1の場合ランダム。
+ そのモンスターを倒したとき<event>を開始します。
+
+ percentheal命令
+ percentheal <hp>,<sp>;
+
+ hp,sp 数値
+
+ HPとSPを<hp>%、<sp>%分回復します。
+
+ resetstatus命令
+ resetstatus;
+
+ ステータスポイントをリセットします。
+
+ resetskill命令
+ resetskill;
+
+ スキルポイントをリセットします。
+
+ statusup命令
+ statusup <st>;
+
+ st 数値
+
+ <st>で指定された基本ステータス値を、ステータスポイントを消費して1上げる。
+ <st>は bStr, bVit, bInt, bAgi, bDex, bLuk で指定する。
+
+ statusup2命令
+ statusup2 <st>,<n>;
+
+ st,n 数値
+
+ <st>で指定された基本ステータス値を、ステータスポイントを消費せずに<n>上げる。
+ <st>は bStr, bVit, bInt, bAgi, bDex, bLuk で指定する。
+
+ skill命令
+ skill <skillid>,<skilllv>,<flag>;
+
+ skillid,skilllv,flag 数値
+
+ <skillid>に指定されたIDを持つLV<skilllv>スキルを習得します。
+ flag:0,恒久的なスキル取得(スキルツリーにない物は無効)、1,一時的(範囲は不明)な取得、
+ <skilllv>を0にするとこでそのスキルを忘れさせることも可能です。
+
+ waitingroom命令
+ waitingroom <title>,<limit>[,<event>[,<trigger>]];
+
+ title 文字列
+ limit 数値
+ event 文字列、省略可
+ trigger 数値、省略可
+
+ <title>をタイトルとしてチャットルームを表示させます。
+ <trigger>を満たしたとき、<event>を動作させることが可能です。
+ <trigger>を省略すると<limit>の数値が使用されます。
+
+ delwaitingroom命令
+ delewaitingroom [<name>]
+
+ name 文字列、省略可
+
+ 指定したNPCのチャットルームを閉じます。
+ <name>を省略すると、命令を実行したNPCが対象になります。
+
+ disablewaitingroomevent命令
+ disablewaitingroomevent [<name>]
+
+ name 文字列、省略可
+
+ <name>で指定したNPCのチャットルームのイベントを無効にします。
+ <name>を省略すると、命令を実行したNPCが対象になります。
+
+ enablewaitingroomevent命令
+ enablewaitingroomevent [<name>]
+
+ name 文字列、省略可
+
+ <name>で指定したNPCのチャットルームのイベントを有効にします。
+ <name>を省略すると、命令を実行したNPCが対象になります。
+ また、既にイベントが起こる人数に達している場合、
+ 即座にイベントを実行します。
+
+ warpwaitingnpc命令
+ warpwaitingnpc <gatname>,<x>,<y>[,<num>];
+
+ gatname 文字列
+ x,y,num 数値
+
+ 命令を実行したNPCのチャットルームに入っているPCのうち、
+ <num>で指定した人数を、<gatname>の座標<x>,<y>に移動させます。
+ <num>を省略すると waitingroomの<trigger>で指定した人数を使用します。
+
+ ワープさせた人数を $@warpwaitingpcnum に、ワープさせた人のアカウントIDを
+ 配列 $@warpwaitingpc にセットします(先頭から人数分)。
+
+
+ emotion命令
+ emotion <n>;
+
+ n 数値
+
+ <n>エモーションを出します。
+
+ setmapflag命令
+ setmapflag <gatname>,<flag>;
+
+ gatname 文字列
+ flag 数値
+
+ <gatname>のmapflagを追加します。
+ <flag>はdb/const.txtを参照してください。
+
+ removemapflag命令
+ removemapflag <gatname>,<flag>;
+
+ gatname 文字列
+ flag 数値
+
+ <gatname>のmapflagを消去します。
+ <flag>はdb/const.txtを参照してください。
+
+ pvpon命令
+ pvpon <gatname>;
+
+ gatname 文字列
+
+ <gatname>をPVP可能MAPにします。
+
+ pvpoff命令
+ pvpoff <gatname>;
+
+ gatname 文字列
+
+ <gatname>をPVP不可MAPにします。
+
+ gvgon命令
+ gvgon <gatname>;
+
+ gatname 文字列
+
+ <gatname>をシーズモードにします。
+
+ gvgoff命令
+ gvgoff <gatname>;
+
+ gatname 文字列
+
+ <gatname>を非シーズモードにします。
+
+ setmapflagnosave命令
+ setmapflagnosave <gatname>,<savegatname>,<x>,<y>;
+
+ gatname,nosavegat 文字列
+ x,y 数値
+
+ <gatname>のmapflagにnosave、引数として<savegatname>,<x>,<y>を設定します。
+
+ detachrid命令
+ detachrid;
+
+ NPCにアタッチされているIDをクリアします。
+ 以後、キャラクター情報を必要とする命令が実行できなくなります。
+
+ doevent命令
+ doevent <name>;
+
+ name 文字列
+
+ プレイヤー主体のイベントを起こします。<name>にはイベント名を指定します。
+ プレイヤーが他のNPCと会話中などで実行できない場合、キューに入り、実行可能になるまで待って実行されます。
+ キューのサイズはとても小さいので、連続で起こるとイベントが無視されるかもしれません。
+ ラベル付きイベントも指定できますが、NPC名を省略できないので注意してください。
+
+ donpcevent命令
+ donpcevent <name>;
+
+ name 文字列
+
+ プレイヤーがアタッチされていない(NPC主体の)イベントを起こします。
+ <name>にはイベント名を指定します。イベントは即座に実行されます。
+ ラベル付きイベントも指定でき、NPC名を省略することで、イベントをブロードキャストできます。
+ (複数のNPCの同じ名前のラベルを実行できる。 例>"::OnEvent")
+
+ callsub命令
+ callsub <label>
+
+ label ラベル
+
+ 同一スクリプト内のラベル<label>をサブルーティンとして実行します。
+ サブルーティンから復帰するときはreturn命令を使用してください。
+ この命令はreturn命令の実行状況によっては関数として使用することも出来ます。
+
+ callfunc命令
+ callfunc <func>
+
+ func 文字列
+
+ <func>で定義されたユーザー定義関数を実行します。
+ ユーザー定義関数から復帰するときはreturn命令を使用してください。
+ この命令はreturn命令の実行状況によっては関数として使用することも出来ます。
+
+ return命令
+ return <retval>
+
+ retval 数値または文字列、省略可
+
+ 直ちにサブルーティンもしくはユーザー定義関数を抜け、呼び出し元に戻ります。
+ <retval>は戻り値で、callsubまたはcallfuncが関数として呼び出されているとき、この戻り値が使用されます。
+ callsubまたはfuncが命令として呼ばれているときは、<retval>は省略してください。
+
+ *関数
+ rand関数
+ rand(<n1>[,<n2>])
+
+ n1 数値
+ n2 数値、省略可
+
+ <n1>のみ指定されていた場合、0から<n1>-1までの数値をランダムに選んで返します。
+ <n2>を指定した場合、<n1>から<n2>までの数チをランダムに選んで返します。
+
+ getitemname関数
+ getitemname(<itemid>)
+
+ itemid 数値
+
+ <itemid>に指定されたIDを持つアイテムのjnameを文字列で返します。
+ なお、アイテム名はitem_db.txtを参照します
+
+ countitem関数
+ countitem(<itemid>)
+
+ itemid 数値または文字列
+
+ <itemid>に指定されたIDを持つアイテムの所持数を返します。
+ <itemid>が文字列の場合、その名前(name,jname)を持つアイテムのIDを使用します。
+ ただし、アイテム名はitem_db.txtなどに依存するため、テスト目的以外では使用すべきではありません。
+
+ checkweight関数
+ checkweight(<itemid>,<num>)
+
+ itemid 数値または文字列
+ num 数値
+
+ <itemid>に指定されたIDを持つアイテムを<num>個持つことができるのならば1を、
+ できなければ0を返します。
+ <itemid>が文字列の場合、その名前(name,jname)を持つアイテムのIDを使用します。
+ ただし、アイテム名はitem_db.txtなどに依存するため、テスト目的以外では使用すべきではありません。
+
+ strcharinfo関数
+ strcharinfo(<n>)
+
+ n 数値
+
+ キャラ情報を返します。
+ n:0,キャラ名、1,パーティー名、2,ギルド名
+
+ getequipname関数
+ strcharinfo(<n>)
+
+ n 数値
+
+ 装備品名を返します。
+ n:1,頭装備、2,鎧、3,左手、4,右手、5,かけるもの、6,靴、7,アクセ1、8,アクセ2、9,頭中段、10,頭下段
+
+ getequipisequiped関数
+ getequipisequiped(<n>)
+
+ n 数値
+
+ 装備していたら1、していなかったら0を返します。
+ n:1,頭装備、2,鎧、3,左手、4,右手、5,かけるもの、6,靴、7,アクセ1、8,アクセ2、9,頭中段、10,頭下段
+
+ getequipisenableref関数
+ getequipisenableref(<n>)
+
+ n 数値
+
+ 精錬できる場合は1、できない場合は0を返します。
+ n:1,頭装備、2,鎧、3,左手、4,右手、5,かけるもの、6,靴、7,アクセ1、8,アクセ2、9,頭中段、10,頭下段
+
+ getequipisidentify関数
+ getequipisidentify(<n>)
+
+ n 数値
+
+ 鑑定済みの場合1、未鑑定の場合0を返します。
+ n:1,頭装備、2,鎧、3,左手、4,右手、5,かけるもの、6,靴、7,アクセ1、8,アクセ2、9,頭中段、10,頭下段
+
+ getequiprefinerycnt関数
+ getequiprefinerycnt(<n>)
+
+ n 数値
+
+ 精錬の度合いを返します。
+ n:1,頭装備、2,鎧、3,左手、4,右手、5,かけるもの、6,靴、7,アクセ1、8,アクセ2、9,頭中段、10,頭下段
+
+ getequipweaponlv関数
+ getequipweaponlv(<n>)
+
+ n 数値
+
+ 武器LVを返します。防具の場合には0、あとは武器LVに対応します。
+ n:1,頭装備、2,鎧、3,左手、4,右手、5,かけるもの、6,靴、7,アクセ1、8,アクセ2、9,頭中段、10,頭下段
+
+ getequippercentrefinery関数
+ getequippercentrefinery(<n>)
+
+ n 数値
+
+ 精錬成功率を返します。
+ n:1,頭装備、2,鎧、3,左手、4,右手、5,かけるもの、6,靴、7,アクセ1、8,アクセ2、9,頭中段、10,頭下段
+
+ getusers関数
+ getusers(<n>)
+
+ n 数値
+
+ 人数を返します。
+ n:0,PCのいるMAPの総人数、1,全MAPの総人数(即ちログイン人数)、8,NPCの存在するMAPの総人数
+
+ getmapusers関数
+ getmapusers(<gatname>)
+
+ gatname 文字列
+
+ <gatname>に存在する総人数を返します。
+
+ getareausers関数
+ getareausers(<gatname>,<x0>,<y0>,<x1>,<y1>)
+
+ gatname 文字列
+ x0,y0,x1,y1 数値
+
+ <gatname>の<x0>,<y0>から<x1>,<y1>の範囲内にいる人数を返します。
+
+ getskilllv関数
+ getskilllv(<skillid>)
+
+ skillid 数値
+
+ <skillid>で指定したIDを持つスキルのLVを返します。習得していない場合は0を返します。
+
+ getcharid関数
+ getcharid(<n>)
+
+ n 数値
+
+ キャラ情報をIDで返します。
+ n=0 キャラID
+ n=1 パーティー
+ n=2 ギルド
+ n=3 アカウントID
+
+ getpartyname関数
+ getpartyname(<n>)
+
+ n 数値
+
+ <n>で指定したIDを持つパーティー名を返します。
+
+ getguildname関数
+ getguildname(<n>)
+
+ n 数値
+
+ <n>で指定したIDを持つギルド名を返します。
+
+ getguildmaster関数
+ getguildname(<n>)
+
+ n 数値
+
+ <n>で指定したIDを持つギルドのマスターの名前を返します。
+
+ getguildmasterid関数
+ getguildmasterid(<n>)
+
+ n 数値
+
+ <n>で指定したIDを持つギルドのマスターのキャラクターIDを返します。
+
+ basicskillcheck関数
+ basicskillcheck(0);
+
+ battle_athena.confのbasic_skill_checkの設定値を返します。0は意味はありませんが何も入れなかった場合エラーになります。
+ basic_skill_checkとカプラの倉庫利用を合わせる為に作った物でそれ以外の機能はありません。戻った数値が0ならbasic_skill_checkがno、1ならyesです。
+
+ getgmlevel関数
+ getgmlevel(0);
+
+ プレイヤーのGMレベルを返します。
+
+ guildopenstorage関数
+ guildopenstorage(0);
+
+ ギルド倉庫を開きます。
+ 返た数値が2ならギルドに所属してないキャラと言う意味で
+ 1なら他のギルドメンバーが倉庫を使用中の意味です。
+ 0なら成功的にギルド倉庫が開いたとのことです。
+
+ getwaitingroomstate関数
+ getwaitingroomstate(<num>,[<name>])
+
+ num 数値
+ name 文字列、省略可
+
+ <name>で指定したNPCのチャットルームの状態を返します。
+ <name>を省略すると、命令を実行したNPCが対象になります。
+ <num>で得たい情報を指定します。
+
+ num=0 現在チャットルームに入っている人数(数値)
+ num=1 チャットルームの限界人数(数値)
+ num=2 チャットルームのイベントを起こす人数(数値)
+ num=3 チャットルームのイベントが有効かどうか(数値)
+ num=4 チャットルームのタイトル(文字列)
+ num=5 チャットルームのパスワード(文字列)
+ num=16 チャットルームのイベント名(文字列)
+ num=32 チャットルームが満員かどうか(数値)
+ num=33 チャットルームでイベントが起こる人数かどうか(数値)
+
+ getnpctimer関数
+ getnpctimer(<num>[,<name>])
+
+ num 数値
+
+ <name>で指定されたNPCが持つNPCタイマーの情報を得ます。
+ nameを省略すると、命令を実行したNPCが対象になります。
+ <num>で得たい情報を指定します。
+
+ num=0 現在のNPCタイマーのカウント値
+ num=1 現在NPCタイマーが動作しているかどうか
+ num=2 指定NPCのタイマーイベントラベルの総数
+
+ attachrid関数
+ attachrid(<num>)
+
+ num 数値
+
+ <num>で指定されたIDのキャラクターを実行したスクリプトにアタッチします。
+ 以後、キャラクターに関する命令や関数/変数などは全て新しいキャラクターが対象になります。
+ これはスクリプトが終了/中断する(close,end,menu,next,inputなどの実行)まで有効です。
+ 主にイベントで起動されたスクリプト内でマップ変数を使って別キャラクターを
+ アタッチするのに使用します。getcharid(3)で所得したアカウントIDを使ってください。
+ なお、デタッチにはdetachrid命令を使います。
+
+ 注意すべき点としては、この命令でPCをアタッチした場合、mes,menu,nextなどの
+ ウィンドウ(やボタン)が出る命令を実行してはいけません。
+ 相手が他のNPCと会話中の場合、これらの命令は正しく動作しません。
+ 情報所得命令などだけで済ませるべきです。
+
+ この関数はアタッチに成功したかどうかを返します。
+ 偽(0)が返って来た場合は、該当キャラクターが存在していません。
+
+ isloggedin関数
+ isloggedin(<num>)
+
+ num 数値
+
+ <num>で指定されたIDのキャラクターがこのマップサーバーに
+ ログインしているかどうか調べます。
+
+ getarraysize関数
+ getarraysize(<variable>)
+
+ variable 変数
+
+ 配列<variable>の有効なサイズを調べます。
+ ここでのサイズは要素が0(文字列変数では"")でない、
+ 最大の要素番号+1 になります。
+ 配列名ではなく要素番号付きで指定すると、
+ 少なくともその要素までは全て有効であると仮定します。
+ <例> 配列@hogeが 1,2,3,4,5 だとすると、
+ getarraysize(@hoge)=5, getarraysize(@hoge[10])=10;
+
+ callsub関数
+ callsub <label>
+
+ callsub命令を関数として実行します。詳しくはcallsub命令を見てください。
+
+ callfunc関数
+ callfunc <func>
+
+ callfunc命令を関数として実行します。詳しくはcallfunc命令を見てください。
+
+ *定数ラベル
+ -ラベル
+ if文やmenu文で使用します。次の行からスクリプトを開始します。
+
+ OnInitラベル
+ MAPがロードされたときスクリプトを開始します。
+
+ OnInterIfInitラベル
+ MAPサーバーがInterサーバーに接続したときに実行します。
+
+ OnCharIfInitラベル
+ MAPサーバーがCharサーバーに接続したときに実行します。
+
+ OnMinuteXXラベル
+ 毎時XX分に実行します。数値は十進数2桁です。
+
+ OnClockXXXXラベル
+ 毎日XX時XX分に実行します。数値は十進数4桁です。
+
+ OnHourXXラベル
+ 毎日XX時00分に実行します。数値は十進数2桁です。
+
+ OnDayXXラベル
+ 毎月XX日00時00分に実行します。数値は十進数2桁です。
+
+ OnTimerXラベル
+ NPCタイマーのカウントがXになったときに実行されます。
+ このXはミリ秒単位です。桁数は関係ありません。
+
+ OnAgitInitラベル
+ ギルド城データと占拠ギルド情報がマップサーバー内に
+ 所得されたときに実行されます。
+ ギルド城関係のNPCの初期化に使用します。
+
+ OnAgitStartラベル
+ ギルド攻城戦が始まったときに実行されます。
+
+ OnAgitEndラベル
+ ギルド攻城戦が終わったときに実行されます。
+
+ OnAgitBreakラベル
+ エンペリウムを破壊したときに実行されます。
+ このラベルは破壊したプレイヤーを主体にして実行されます。
+
+ OnAgitEliminateラベル
+ エンペリウム破壊後、ギルドの所有者が書き換わるときに
+ 呼ばれます。
+
+ *注意事項
+ 文字列と説明されている引数は""で囲ってください。
+
+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
+ 関数を期待していました
+ 関数呼び出し演算子'('の前に関数以外のシンボルがあります。
+ おそらく関数名を間違えています。
+
+ expect ',' or ')' at func params
+ 関数の引数において','か')'を期待していました
+ おそらく引数区切りの','か')'を忘れています。
+
+ func request '(' ')'
+ 関数呼び出しの括弧対応問題
+ おそらく引数の数が128を超えました。
+
+ illeagal number of parameters
+ パラメータの数が不正です
+ 関数/命令パラメータの個数が異なります。
+ 引数の個数を確認してください。
+ エラー位置は全ての引数の後になります。
+
+ expect command
+ 命令を期待していました
+ 命令以外のシンボルが突然出現しています。
+ おそらく命令名を間違えています。
+
+ expect ',' or ';' at cmd params
+ 命令の引数において','か';'を期待していました
+ おそらく引数区切りの','か';'を忘れています。
+
+ need ';'
+ ';'が必要です
+ おそらく引数の数が128を超えました。
+
+ 実行時のエラー
+ fatal error ! player not attached!
+ 致命的エラー!プレイヤーがアタッチされていません!
+
+ キャラクターを特定できないイベントで実行されている
+ スクリプトの中でキャラクター情報が必要な命令や関数、
+ 変数へアクセスしました。attachrid関数を使うか、
+ キャラクター情報が不要な命令を使用してください。
+ もしくは、attachrid関数で設定された情報が不正です。
+ なお、このエラーが起こると直後にコアを吐くと思われます。
+
+ NPC主体イベントでannounceしたときにフラグ0x08を指定していない
+ 場合もこのエラーがでます。
+
+
+ illeagal scope string variable.
+ 文字列変数のスコープが不正です。
+ 未対応のプレフィックスで文字列変数が使用されました。
+ プレフィックスを確認してください。
+
+ illeagal scope
+ スコープが不正です。配列変数未対応のプレフィックスを
+ 持つ変数に配列変数系の命令を実行した場合など。
+
+ not label !
+ goto/menu命令でラベルが指定されるべきところに
+ ラベル以外のシンボルが指定されています。
+ もしくは、ラベル名と変数名がバッティングしています。
+
+ buildin_set: not name
+ set命令で第一引数が変数名ではありません。
+
+ getelementofarray (operator[]): param2 illeagal number
+ 配列変数で[]内の値が不正です
+ []内の値が0未満か128以上になりました
+
+ getelementofarray (operator[]): param1 not name
+ 配列変数で[]の前のシンボルが変数名ではありません。
+
+ op_2: int&str, str&int not allow.
+ 関係演算子(比較演算子)で、数値と文字列、もしくは
+ 文字列と数値が指定されました。
+
+ infinity loop !
+ スクリプトの実行命令数か、goto/menu命令実行回数が
+ 多すぎるので、無限ループと判断しました。
+ スクリプトの実行は強制的に中断されました。
+
+ not function and command !
+ 関数実行/命令実行部分で、関数でも命令でもない
+ シンボルがありました。
+ if文のなかである可能性が高いです。
+
+ return without callfunc or callsub !
+ callfuncやcallsubされていないのにreturn命令を実行しました。
+
+ stack.sp(?) != default(?)
+ スタックポインタが基準スタックポインタと異なっています。
+ 命令を実行した結果、スタックポインタが狂いました。
+ 関数を命令として実行した可能性があります。
+
+
+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 new file mode 100644 index 000000000..a303d6f05 --- /dev/null +++ b/doc/whisper_sys.txt @@ -0,0 +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 NPCCommander] 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.
|