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_ .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 + ; 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 "; 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 "; * 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 ,[,]; 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 , <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 * 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 <>. [MC Cameri] * Added @petid 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