diff options
author | Lupus <Lupus@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2005-02-26 07:40:41 +0000 |
---|---|---|
committer | Lupus <Lupus@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2005-02-26 07:40:41 +0000 |
commit | ccd3e0e2d45eac452406eab7dfcfa7a08a369042 (patch) | |
tree | d2b4a5a4deee3a0036f081707081a4e4fe668972 | |
parent | c576ad09280dc788d9e95ca410594e88dd5fa7aa (diff) | |
download | hercules-ccd3e0e2d45eac452406eab7dfcfa7a08a369042.tar.gz hercules-ccd3e0e2d45eac452406eab7dfcfa7a08a369042.tar.bz2 hercules-ccd3e0e2d45eac452406eab7dfcfa7a08a369042.tar.xz hercules-ccd3e0e2d45eac452406eab7dfcfa7a08a369042.zip |
added new script commands
from jA
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/stable@1182 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r-- | Changelog-SVN.txt | 1788 | ||||
-rw-r--r-- | Changelog.txt | 1771 | ||||
-rw-r--r-- | src/map/clif.c | 21 | ||||
-rw-r--r-- | src/map/clif.h | 2 | ||||
-rw-r--r-- | src/map/npc.c | 26 | ||||
-rw-r--r-- | src/map/npc.h | 1 | ||||
-rw-r--r-- | src/map/script.c | 276 |
7 files changed, 2110 insertions, 1775 deletions
diff --git a/Changelog-SVN.txt b/Changelog-SVN.txt index 3d9576b9c..fa165d791 100644 --- a/Changelog-SVN.txt +++ b/Changelog-SVN.txt @@ -1,7 +1,20 @@ Date Added -02/24 + +02/26 + * 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] @@ -277,1776 +290,3 @@ Date Added 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. diff --git a/Changelog.txt b/Changelog.txt index 492a470fd..fe5d151b3 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,7 +1,1778 @@ Date Added -------- Read Changelog-SVN.txt for the newer SVN entries-------- +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 diff --git a/src/map/clif.c b/src/map/clif.c index 67c925f75..020d8d3a2 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -4761,6 +4761,27 @@ int clif_GMmessage(struct block_list *bl, char* mes, int len, int flag) } /*========================================== + * グローバルメッセージ + *------------------------------------------ + */ +void clif_GlobalMessage(struct block_list *bl,char *message) +{ + char buf[100]; + int len,cmd=0x8d; + + if(!bl || !message) + return; + + len=strlen(message)+1; + + WBUFW(buf,0)=cmd; + WBUFW(buf,2)=len+8; + WBUFL(buf,4)=bl->id; + strncpy(WBUFP(buf,8),message,len); + clif_send(buf,WBUFW(buf,2),bl,AREA_CHAT_WOC); +} + +/*========================================== * HPSP回復エフェクトを送信する *------------------------------------------ */ diff --git a/src/map/clif.h b/src/map/clif.h index c9b18a996..196050c0d 100644 --- a/src/map/clif.h +++ b/src/map/clif.h @@ -92,7 +92,7 @@ int clif_misceffect(struct block_list*,int); // area int clif_misceffect2(struct block_list *bl,int type); int clif_changeoption(struct block_list*); // area int clif_useitemack(struct map_session_data*,int,int,int); // self - +void clif_GlobalMessage(struct block_list *bl,char *message); int clif_createchat(struct map_session_data*,int); // self int clif_dispchat(struct chat_data*,int); // area or fd int clif_joinchatfail(struct map_session_data*,int); // self diff --git a/src/map/npc.c b/src/map/npc.c index 36569eb88..c6d77c18c 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -916,6 +916,32 @@ int npc_checknear(struct map_session_data *sd,int id) } /*========================================== + * NPCのオープンチャット発言 + *------------------------------------------ + */ +int npc_globalmessage(const char *name,char *mes) +{ + struct npc_data *nd=strdb_search(npcname_db,name); + char temp[100]; + char ntemp[50]; + char *ltemp; + + if(nd==NULL) return 0; + if(name==NULL) return 0; + + ltemp=strchr(name,'#'); + if(ltemp!=NULL) { + strncpy(ntemp,name,ltemp - name); // 123#456 の # から後ろを削除する + ntemp[ltemp - name]=0x00; // strncpy のバグ?使い方間違ってる? + } + + snprintf(temp, sizeof temp ,"%s : %s",ntemp,mes); + clif_GlobalMessage(&nd->bl,temp); + + return 0; +} + +/*========================================== * クリック時のNPC処理 *------------------------------------------ */ diff --git a/src/map/npc.h b/src/map/npc.h index e04587508..5c9c8b900 100644 --- a/src/map/npc.h +++ b/src/map/npc.h @@ -26,6 +26,7 @@ int npc_buylist(struct map_session_data *,int,unsigned short *); int npc_selllist(struct map_session_data *,int,unsigned short *); int npc_parse_mob(char *w1,char *w2,char *w3,char *w4); int npc_parse_warp(char *w1,char *w2,char *w3,char *w4); +int npc_globalmessage(const char *name,char *mes); int npc_enable(const char *name,int flag); struct npc_data* npc_name2id(const char *name); diff --git a/src/map/script.c b/src/map/script.c index 24195b698..d0fc773b2 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -308,6 +308,16 @@ int buildin_isnight(struct script_state *st); // [celest] int buildin_isday(struct script_state *st); // [celest] int buildin_isequipped(struct script_state *st); // [celest] int buildin_isequippedcnt(struct script_state *st); // [celest] +int buildin_getusersname(struct script_state *st); //jA commands added [Lupus] +int buildin_dispbottom(struct script_state *st); +int buildin_recovery(struct script_state *st); +int buildin_getpetinfo(struct script_state *st); +int buildin_checkequipedcard(struct script_state *st); +int buildin_globalmes(struct script_state *st); +int buildin_jump_zero(struct script_state *st); +int buildin_select(struct script_state *st); +int buildin_getmapmobs(struct script_state *st); //jA addition end + void push_val(struct script_stack *stack,int type,int val); int run_func(struct script_state *st); @@ -550,6 +560,15 @@ struct { {buildin_deactivatepset, "deactivatepset", "i"}, // Deactive a pattern set [MouseJstr] {buildin_deletepset, "deletepset", "i"}, // Delete a pattern set [MouseJstr] #endif + {buildin_dispbottom,"dispbottom","s"}, //added from jA [Lupus] + {buildin_getusersname,"getusersname","*"}, + {buildin_recovery,"recovery",""}, + {buildin_getpetinfo,"getpetinfo","i"}, + {buildin_checkequipedcard,"checkequipedcard","i"}, + {buildin_jump_zero,"jump_zero","ii"}, //for future jA script compatibility + {buildin_select,"select","*"}, //for future jA script compatibility + {buildin_globalmes,"globalmes","s*"}, + {buildin_getmapmobs,"getmapmobs","s"}, //end jA addition {NULL,NULL,NULL}, }; @@ -4140,6 +4159,25 @@ int buildin_getusers(struct script_state *st) return 0; } /*========================================== + * Works like @WHO - displays all online users names in window + *------------------------------------------ + */ +int buildin_getusersname(struct script_state *st) +{ + struct map_session_data *pl_sd = NULL; + int i=0,disp_num=1; + + for (i=0;i<fd_max;i++) + if(session[i] && (pl_sd=session[i]->session_data) && pl_sd->state.auth){ + if( !(battle_config.hide_GM_session && pc_isGM(pl_sd)) ){ + if((disp_num++)%10==0) + clif_scriptnext(script_rid2sd(st),st->oid); + clif_scriptmes(script_rid2sd(st),st->oid,pl_sd->status.name); + } + } + return 0; +} +/*========================================== * マップ指定ユーザー数所得 *------------------------------------------ */ @@ -4553,6 +4591,29 @@ int buildin_waitingroom(struct script_state *st) return 0; } /*========================================== + * Works like 'announce' but outputs in the common chat window + *------------------------------------------ + */ +int buildin_globalmes(struct script_state *st) +{ + struct block_list *bl = map_id2bl(st->oid); + struct npc_data *nd = (struct npc_data *)bl; + char *name=NULL,*mes; + + mes=conv_str(st,& (st->stack->stack_data[st->start+2])); // メッセージの取得 + if(mes==NULL) return 0; + + if(st->end>st->start+3){ // NPC名の取得(123#456) + name=conv_str(st,& (st->stack->stack_data[st->start+3])); + } else { + name=nd->name; + } + + npc_globalmessage(name,mes); // グローバルメッセージ送信 + + return 0; +} +/*========================================== * npcチャット削除 *------------------------------------------ */ @@ -6117,6 +6178,221 @@ int buildin_gmcommand(struct script_state *st) } /*========================================== + * Displays a message for the player only (like system messages like "you got an apple" ) + *------------------------------------------ + */ +int buildin_dispbottom(struct script_state *st) +{ + struct map_session_data *sd=script_rid2sd(st); + char *message; + message=conv_str(st,& (st->stack->stack_data[st->start+2])); + if(sd) + clif_disp_onlyself(sd,message,strlen(message)); + return 0; +} + +/*========================================== + * All The Players Full Recovery + (HP/SP full restore and resurrect if need) + *------------------------------------------ + */ +int buildin_recovery(struct script_state *st) +{ + int i = 0; + for (i = 0; i < fd_max; i++) { + if (session[i]){ + struct map_session_data *sd = session[i]->session_data; + if (sd && sd->state.auth) { + sd->status.hp = sd->status.max_hp; + sd->status.sp = sd->status.max_sp; + clif_updatestatus(sd, SP_HP); + clif_updatestatus(sd, SP_SP); + if(pc_isdead(sd)){ + pc_setstand(sd); + clif_resurrection(&sd->bl, 1); + } + clif_displaymessage(sd->fd,"You have been recovered!"); + } + } + } + return 0; +} +/*========================================== + * Get your pet info: getpetinfo(n) + * n -> 0:pet_id 1:pet_class 2:pet_name + 3:friendly 4:hungry + *------------------------------------------ + */ +int buildin_getpetinfo(struct script_state *st) +{ + struct map_session_data *sd=script_rid2sd(st); + int type=conv_num(st,& (st->stack->stack_data[st->start+2])); + + if(sd && sd->status.pet_id){ + switch(type){ + case 0: + push_val(st->stack,C_INT,sd->status.pet_id); + break; + case 1: + if(sd->pet.class_) + push_val(st->stack,C_INT,sd->pet.class_); + else + push_val(st->stack,C_INT,0); + break; + case 2: + if(sd->pet.name) + push_str(st->stack,C_STR,sd->pet.name); + else + push_val(st->stack,C_INT,0); + break; + case 3: + //if(sd->pet.intimate) + push_val(st->stack,C_INT,sd->pet.intimate); + break; + case 4: + //if(sd->pet.hungry) + push_val(st->stack,C_INT,sd->pet.hungry); + break; + default: + push_val(st->stack,C_INT,0); + break; + } + }else{ + push_val(st->stack,C_INT,0); + } + return 0; +} +/*========================================== + * Shows wether your inventory(and equips) contain + selected card or not. + checkequipedcard(4001); + *------------------------------------------ + */ +int buildin_checkequipedcard(struct script_state *st) +{ + struct map_session_data *sd=script_rid2sd(st); + int n,i,c=0; + c=conv_num(st,& (st->stack->stack_data[st->start+2])); + + if(sd){ + for(i=0;i<MAX_INVENTORY;i++){ + if(sd->status.inventory[i].nameid > 0 && sd->status.inventory[i].amount){ + for(n=0;n<4;n++){ + if(sd->status.inventory[i].card[n]==c){ + push_val(st->stack,C_INT,1); + return 0; + } + } + } + } + } + push_val(st->stack,C_INT,0); + return 0; +} + +int buildin_jump_zero(struct script_state *st) { + int sel; + sel=conv_num(st,& (st->stack->stack_data[st->start+2])); + if(!sel) { + int pos; + if( st->stack->stack_data[st->start+3].type!=C_POS ){ + printf("script: jump_zero: not label !\n"); + st->state=END; + return 0; + } + + pos=conv_num(st,& (st->stack->stack_data[st->start+3])); + st->pos=pos; + st->state=GOTO; + // printf("script: jump_zero: jumpto : %d\n",pos); + } else { + // printf("script: jump_zero: fail\n"); + } + return 0; +} + +int buildin_select(struct script_state *st) +{ + char *buf; + int len,i; + struct map_session_data *sd; + + sd=script_rid2sd(st); + + if(sd->state.menu_or_input==0){ + st->state=RERUNLINE; + sd->state.menu_or_input=1; + for(i=st->start+2,len=16;i<st->end;i++){ + conv_str(st,& (st->stack->stack_data[i])); + len+=strlen(st->stack->stack_data[i].u.str)+1; + } + buf=(char *)aCalloc(len,sizeof(char)); + buf[0]=0; + for(i=st->start+2,len=0;i<st->end;i++){ + strcat(buf,st->stack->stack_data[i].u.str); + strcat(buf,":"); + } + clif_scriptmenu(script_rid2sd(st),st->oid,buf); + free(buf); + } else if(sd->npc_menu==0xff){ // cansel + sd->state.menu_or_input=0; + st->state=END; + } else { + pc_setreg(sd,add_str("l15"),sd->npc_menu); + pc_setreg(sd,add_str("@menu"),sd->npc_menu); + sd->state.menu_or_input=0; + push_val(st->stack,C_INT,sd->npc_menu); + } + return 0; +} + +/*========================================== + * GetMapMobs + returns mob counts on a set map: + e.g. GetMapMobs("prontera.gat") + use "this" - for player's map + *------------------------------------------ + */ +int buildin_getmapmobs(struct script_state *st) +{ + char *str=NULL; + int m=-1,bx,by,i; + int count=0,c; + struct block_list *bl; + + str=conv_str(st,& (st->stack->stack_data[st->start+2])); + + if(strcmp(str,"this")==0){ + struct map_session_data *sd=script_rid2sd(st); + if(sd) + m=sd->bl.m; + else{ + push_val(st->stack,C_INT,-1); + return 0; + } + }else + m=map_mapname2mapid(str); + + if(m < 0){ + push_val(st->stack,C_INT,-1); + return 0; + } + + for(by=0;by<=(map[m].ys-1)/BLOCK_SIZE;by++){ + for(bx=0;bx<=(map[m].xs-1)/BLOCK_SIZE;bx++){ + bl = map[m].block_mob[bx+by*map[m].bxs]; + c = map[m].block_mob_count[bx+by*map[m].bxs]; + for(i=0;i<c && bl;i++,bl=bl->next){ + if(bl->x>=0 && bl->x<=map[m].xs-1 && bl->y>=0 && bl->y<=map[m].ys-1) + count++; + } + } + } + push_val(st->stack,C_INT,count); + return 0; +} + +/*========================================== * movenpc [MouseJstr] *------------------------------------------ */ |