From 96a3da18a1e77035ee894283a3c805c7062a203d Mon Sep 17 00:00:00 2001 From: celest Date: Fri, 1 Apr 2005 08:37:31 +0000 Subject: * Fixed a potential crash in pc_walk in Win32 builds * Added bAddEffWhenHitShort and changed bAddEffWhenHit back to all physical damage git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/stable@1373 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-SVN.txt | 314 +---------------------------------------------------- Changelog.txt | 310 ++++++++++++++++++++++++++++++++++++++++++++++++++++ db/const.txt | 1 + doc/item_bonus.txt | 6 +- src/map/map.h | 3 +- src/map/pc.c | 16 ++- src/map/skill.c | 36 +++--- src/map/status.c | 1 + 8 files changed, 354 insertions(+), 333 deletions(-) diff --git a/Changelog-SVN.txt b/Changelog-SVN.txt index 97d24977f..97243c19d 100644 --- a/Changelog-SVN.txt +++ b/Changelog-SVN.txt @@ -1,6 +1,12 @@ Date Added +04/01 + * Updated ShowMessage functions to use vprintf [celest] + * Fixed a potential crash in pc_walk in Win32 builds [celest] + * Added bAddEffWhenHitShort and changed bAddEffWhenHit back to all physical + damage [celest] + 03/31 * Fixed memory corruption during shutdown via the script_buf [SVN 1370: MouseJstr] @@ -377,311 +383,3 @@ Date Added * SQL: Fixed temporary ban. Now banned players can enter the server when the ban time is over. [Lupus] It wasn't working because STATE hasn't been cleared properly. Also fixed wrong client messages (ban reasons: Banned by GM / Temp ban till DATE). -03/01 - * Effects from dancer/bard skills will stay for 20 seconds after leaving the - skill area [celest] - * Fixed /resetstate /resetskill being unuseable at all [celest] - * Fixed /mm /mapmove being useable by all players [celest] - * Fixed some compile errors in mob_once_spawn [celest] - * Corrected a typo in Chemical Protection skills, thanks to holyfork [celest] - -02/28 - * Fixed SQL Castle saving bugs [Lupus] - * Corrected Tiger Fist, Chain Crush, and Palm Push Strike damage, thanks to - Eskadron [celest] - * Updated Endure to be usable in GvG, but only gives the mdef bonus [celest] - * Some rewrites on the passive guild skills effects [celest] - -02/27 - * Fixed some bugs in Monk Job Quest. Now it's fully passable. [Lupus] -02/26 - * Added jA's dummy socket to prevent fd crashes [celest] - * Added some jA script commands: [Lupus] (first steps to add ELSE, FOR, WHILE, etc) - - getusersname (works like @WHO ATCommand, outputs by 10 names in the Pop-up window) - - dispbottom (print message in the common chat window) - - recovery (restore MaxHP/SP and revives all players on the server) - - getpetinfo (returns pet's name, type, class, hunger, intimacy) - - globalmes (works like Announce, but outputs in the common chat window) - - jump_zero (reserved - for future compatibility) - - select (reserved - for future compatibility) - - getmapmobs (# mobs on a named map, use "this" for current map) - check script.c for their paremeters (in English) -02/25 - * Fixed npc_dequeue, testing on remove of RoVeRT's npc timer system [Shinomori] -02/24 - - * Re-added missing cart dupe-proof code. From Freya [Lupus] - * Some rewrites on Basilica [celest] - * Fixed another bad typo in skill list_num reading, thanks to orn [celest] - * Fixed Steal Item Rate. It has been multiplied twice on common_item_drop value for any kinds of items. [Lupus] - e.g. If you set droprate of comman items to 500%, then even rare items could be stolen more easily. Thanks to Freya - * Items Droprate fix. Now it adjusts correctly, w/o overflows. Thanks to Freya [Lupus] - * mob DBbs EXP reading fix. w/o overflows. Thanks to Freya [Lupus] - -02/23 - * Added bAddItemHealRate [celest] - * Fixed a crash if adding an offline player to a party, thanks to Alex14 - [celest] - * Fixed a crash with Warp [celest] - * New Cards: Some fixes, revisions, additions [Lupus] - * Fixed char server crash when sending wisp with a "'" in the names [celest] - * Fixed Backstab not checking for and consuming arrows [celest] - * Fixed another bad typo causing @allskill to not add points into advanced job - skills [celest] - * Fixed a bad typo in status.c's StatusChangeTable [celest] - * Corrected Spiral Pierce's hits in the skill_db [celest] - * Moved /common/*.o into a obj folder when compiling [celest] - * Updated core and map server to jA 1094~1115 [celest] - - Added End_of_exam's Memory Manager for detecting memory problems. - To enable remove the // in malloc.c line 11 - // #define USE_MEMMGR - - Added @npctalk and @pettalk - - Added support for jA's local zlib - - Fixed a bug with path search long - - Updated malloc.c to support Memwatch - - Added DB data loss detection - - Added db/skill_unit_db.txt - - Updated skill unit system - - Changed Waterball to the new timerskill system - ~ For more detailed logs check 'Readme-jap' (knowledge in japanese required, - obviously ^^;) - Please test if there's any skills that might have suddenly stopped working, - thanks ^^; - -02/22 - * Revised New Cards, added missing effects, fixed bugs [Lupus] - ~20 cards to check left 8) But on 22 Feb some new cards have been announced T__T' - * Cleaned up some compiler warnings [SVN 1158: MouseJstr] - * Added perl regular expression support.. look at src/map/npc_chat.c - for all the dirt on the new features. To build it, you have - to enable the PCRE_SUPPORT #define and you also have to - build/install the pcre library. [SVN 1157: MouseJstr] - -02/21 - * Added actual item_db.sql into sql-files. [Lupus] - * Added actual mob_db.sql into sql-files. If you use SQL Mob DB then update it [Lupus] - * Updated Bleeding effect [celest] - * Removed some unused code for Graffiti [celest] - -02/20 - * Char SQL: Rewrote/Fixed the castle save function, now the sql version saves castles! [Sirius] - * Fixed the /mm /mapmove command access bug [Sirius] - * Added skill requirements for the new guild skills [celest] - * Allow Emergency Recall to be cast in guild castles even if nowarp and - nowarpto mapflags are enabled [celest] - * Add 'minimum job level required' for skill_tree reading [celest] - - Berserk now requires job level 50 - * Added Spring Trap to be able to trigger ankle snare traps that aren't - activated yet [celest] - * Added a fix in guild.c by Mellowz [celest] - * Some rewrites on the pet skill bonuses system -- also fixes pet bonuses - not effecting stats as they should [celest] - * Check whether a monster is still alive before starting a status change - -- also fixes the status_change_timer nullpo errors with grimtooth [celest] - -02/19 - * Added bSubSize, bHPGainValue, and bDamageWhenUnequip [celest] - * Updated bSPDrainValue/Rate to accept a 'type' [celest] - * Set baby class players' size to 0(small) [celest] - * Fixed item_db2.txt reading printing wrong number of entries read [celest] - * Fixed @allskill not giving the newer stalker, whitesmith and creator skills - [celest] - -02/18 - * Fixed a bug with statpoint.txt reading and giving too much stat points, - thanks to Benz / eAthenaC [celest] - * Fixed client errors when pecopeco Lord Knights/Paladins log in with a weapon - equipped [celest] - * Added bAddRace2 -- check item_bonus.txt [celest] - * Added mob_race2_db.txt -- contains 'main races' of certain monsters [celest] - * Updated description for backup_txt in char_athena.conf a bit [celest] - * Set read_map_from_cache to 2 (enable compression), and map_cache_file back to - saving in /db instead of /save, as suggested by Poki#3 [celest] - * Updated description for auto_counter_type, and set plaer_auto_counter_type - to 0 by default, as suggested by Poki#3 [celest] - * Use the event names from script_athena.conf to check whenever a player event - trigger is being read/set [celest] - * Removed an unused save/bank.txt [celest] - * Added some new cards effects. (check DB\changelog.txt) [Lupus] - -02/17 - * Now all mobs have 10 drops slots. the last one is used for Cards Drops [Lupus] - Don't forget to update your SQL files (Drop Log: logs.sql and db_tables.sql - if u were using SQL Mobs DB. Update it from TXT! ) - * Fixed Branch Log TXT filename [Lupus] - * Made all logs work with compiled TXT Server, too (removed old #ifndef) [Lupus] - * Added 4 columns into mob_db.txt (check DB\changelog.txt) [Lupus] - * Fixed some mobs drops (Whisper, etc) and some MVP mobs (bonuses were shifted...) [Lupus] - * Readded Chemical Protection -- i forgot to check for it when changing some - jA stuff earlier, sorry ^^; [celest] - * Removed some old eA code that was causing Frost Nova to do an extra hit - [celest] - * Corrected Vulcan Arrow's hits in skill_db -- the bug appeared when the - correct numbers hardcoded were removed [celest] - * Readded zlib and zconf .h files to under /lib for compiling in Windows, - thanks to Ser [celest] - * Fixed some compile errors in Windows, thanks to Ser [celest] - * Changed remove_control_characters back to supporting korean chars [celest] - * Moved some other code around [celest] - * Added Shinomori's changes to Dissonance -- don't increment the timer again - if the target has died [celest] - * Changed some nullpo checks back to normal null checks -- in some situations - it would be normal to get a NULL [celest] - * Changed some nullpo checks to print some debug information [celest] - * Added some sd checks before calling pc_blockskill [celest] - * Added Dino9021's fix for SQL char's friend list updating [celest] - * Fixed a crash if the player invited to join a guild is not online, thanks to - Alex14 [celest] - * Find the guild invitation sender first before clearing its ID [celest] - - * Added 2 new script commands to support 2/15's cards patch... most of the - effects in kRO should be available now ^^ [celest] - - - isequipped(...): Accepts a list of item ID's and checks whether all of - the items/cards have been equipped. - - isequippedcnt(...): Same as above, except it returns how many of the items - are being equipped - - Example: if(isequipped(4002,4004,4006)) bonus bStr,1; - -02/16 - * Char SQL: Fixed the Whisper chat on splittet mapservers (i think now all features work!) [Sirius] - - * Added 3 more of the new card effects -- check item_bonus.txt [celest] - - * Added 'bonus4' to support the new card effects that might need up to 4 - parameters [celest] - * Set 'killerrid' and do PCKillEvent before calling PCDieEvent, thanks to - mrmagoo for pointing it out [celest] - - * Added some new script event related options to script config [celest] - - - [die/kill/login/logout]_event_name: Name of script to activate when an - event has occured - - event_requires_trigger: whether or not a 'set [EventName],1;' has to be - defined first for the event to be activated - - * Added 8 of the new card effects on the 2/15's patch (still untested and - not yet added to the item_db) - - Refer to doc/item_bonus.txt for description - - * Minor rewrites on self and enemy weapon/armor breaking during battle [celest] - * Added missing code for 'bBreakWeaponRate' and 'bBreakArmorRate' effects - [celest] - * Added missing code for 'bAddStealRate' effect [celest] - * Removed redundant 'infinite_autospell' in map_session_data [celest] - * Fixed Treasure Box spawn bug in all castles. [Lupus] - * Fixed wrong PresentLOG (it wasn't showing PRESENT BOX type ID) [Lupus] - * Expanded Monsters Drops Slots from 8 to 10. Everywhere in the sources. [Lupus] - But in TXT / SQL monsters DB reading functions, I added a temp plug - to make eA work fine with existing DBs. It reads only 8 drops and fills - 9th and 10th drops with Zero. - On expanding MOB_DB.TXT we'll remove that plug. - We are adding new cards and some monsters - have no free slots for them. Current state is tested and works fine. - -02/15 - * Allow Potion Pitcher to be able to cast on yourself -- i've almost forgot - about this, thanks to Filougarou and Poki#3 for the fix ^^; [celest] - * Added Wallex's changes for weapon skills to read list_num from the skill_db - when calculating damage [celest] - * Login / Login SQL: Fixed the EXE-Version check (now it works finally :) [Sirius] - * Char SQL: Fixed the '0x2b05' reply to the mapserver (now multi - mapservers works again!) - * Rewrote skill blocking system that was allowing people to bypass blocking - time simply by casting a different skill [celest] - * Edited out some inconsistencies with skillnotok [celest] - * Corrected Investigate's damage calculation, thanks to matthias [celest] - * Generate the remaining entries of the stat point DB if the number of - entries in db/statuspoints.txt is less than MAX_LEVEL, or statuspoints.txt - was not found [celest] - * Try to spawn the player at a default map ("prontera.gat") when logging in if - the save point map was not found [celest] - -02/13 - * added an @autoloot switch that Upa-kun has forgotten [Shinomori] - * changed pet_skillattack_timer and corrected the poison spore attack - * tighter check's on "unknown skill" error; but added prints to trace it - * Added Wallex's changes to only evoke script_rid2sd if agitcheck(1) is used - [celest] - * Merged jA's equipment breaking system into the current one, and corrected - items with unbreakable effects in the item_db [celest] - - "bonus bUnbreakable,[chance];" changed to - "bonus bUnbreakable[Weapon/Armor/Helm/Shield],0;" - -02/12 - * Merged Dexity's pc_statpointdb into pc_readdb, changed statp's string - array to short (less memory), and fixed the db not giving status points if - character level is above 255 [celest] - * fixing and optimizing sharp shooting - have implemented two different versions, just have a look and - decide which to use, description is in the code [Shinomori] - * Changed default map cache path from db/map.info to save/mapinfo.txt [celest] - * Removed old code for Sharp Shooting (still a little buggy) [celest] - * Merged Shinomori's code into map_foreachinpath [celest] - -02/11 - * mob.c fixed doubling entries in DROPS LOG, optimized [Lupus] - * item_noequip.txt now you can disable named consumable items - during GvG / PvP, too by Maya, optimized and checked [Lupus] - NOTE: Get rid of old cards on your server!!! IDs: 4149-4332 - before using of this item_db.txt (some cards have changed their IDs) - and it could cause ALIEN cards in your players equipment 8)) - i.g. a weapon compounding CARDS inserted in armor, etc... - * item_db.txt Massive update: [Lupus] - - Added all new missing items (up to st.Valentine's Day Event) - - Added new cards 4149-4332, sorted them and set their sripts. - - Fixed some names, typos, weigths and prices - * Commented out old custom cards from Old_Card_Album.txt till we brush them up [Lupus] - * Removed old custom cards from MOBs drops [Lupus] - thanks to Landarma(new items templates) Poki#3(removing cards from drops) - * Tidied up battle_check_target abit [celest] - * Updated traps to affect allies as well in GvG [celest] - * Check if login server is online before setting character to online (in SQL), - thanks to Alex14 [celest] - * Synchronise storage as well when saving character to cut down on item - rollbacks or duping, by Yor / Frea [celest] - * Added fix for super novices' Guardian Angel system crashing when base_exp = 0 - thanks to Alex14 [celest] - * not realy fixing the "unknown skill" error - but returning skill_castend_damage_id when called with skillid < 0 - still need to search a reason why it is called with -1 [Shinomori] - * EXPERIMENTAL: Reduced memory used for the skill_tree DB by 30+mb [celest] - * Added script commands isday and isnight - checks whether its night or - daytime. Example: if(isnight()) ... [celest] - * Skill Updates [celest] - - Sharp Shooting: Dropped jA's and kA's code and wrote a new - map_foreachinpath function in map.c -- about 14 times faster, but still - uncomplete - - Ankle Snare: Added matthias' suggestion to let agility reduce more trap - time, but no less than 3 seconds. - - Magnum Break: simplified code a bit, and changed to non-targetting / - automatically damages an area around the caster - - Tiger Fist: enable it to be used by its own besides as a part of - the combo skills - - Devotion: Fixed maximum level difference not reading its setting from - battle_athena.conf, thanks to leinsirk - - Soul Burn: Added some safety checks - -02/10 - * Login/Login SQL: fixed the client version check function [Sirius] - -02/09 - * Added conf-tmpl/readme.txt, explaining the import folder [1066: Ajarn] - * SQL Char: Rewrote the char_create function (now it's faster/optimized) [Sirius] - * SQL Char: Fixed the reply if a charname is invalid on create (now it replys denied..) [Sirius] - * SQL Char: Added a Character limit per Account (can be set in the config) [Sirius] - * SQL Char: Optimized some SQL-Querys [Sirius] - -02/06 - * NULL entries for guild data fixed [Credit to Sirius] [1060: Ajarn] - * Login server uses login_db_userid and login_db_user_pass for - queries now [Credit to Sirius] [1059: Ajarn] - * Login server can now check clientversion in clientinfo - [Credit to Sirius] [1059: Ajarn] - * Fixed txt build compile problems[1057: MouseJstr] - * Corrected end-of-line issues in source code [1056: MouseJstr] - * Coded new command: @MOBINFO [Lupus] - the command has also 2 aliases: @monsterinfo, @mi - It shows all Monster stats, Element, Race and stuff - It shows all items with their drop chance - It also shows MVP bonuses (MVP EXP, MVP Drops) diff --git a/Changelog.txt b/Changelog.txt index fe5d151b3..cec3bcfd8 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,6 +1,316 @@ Date Added -------- Read Changelog-SVN.txt for the newer SVN entries-------- + +03/01 + * Effects from dancer/bard skills will stay for 20 seconds after leaving the + skill area [celest] + * Fixed /resetstate /resetskill being unuseable at all [celest] + * Fixed /mm /mapmove being useable by all players [celest] + * Fixed some compile errors in mob_once_spawn [celest] + * Corrected a typo in Chemical Protection skills, thanks to holyfork [celest] + +02/28 + * Fixed SQL Castle saving bugs [Lupus] + * Corrected Tiger Fist, Chain Crush, and Palm Push Strike damage, thanks to + Eskadron [celest] + * Updated Endure to be usable in GvG, but only gives the mdef bonus [celest] + * Some rewrites on the passive guild skills effects [celest] + +02/27 + * Fixed some bugs in Monk Job Quest. Now it's fully passable. [Lupus] +02/26 + * Added jA's dummy socket to prevent fd crashes [celest] + * Added some jA script commands: [Lupus] (first steps to add ELSE, FOR, WHILE, etc) + - getusersname (works like @WHO ATCommand, outputs by 10 names in the Pop-up window) + - dispbottom (print message in the common chat window) + - recovery (restore MaxHP/SP and revives all players on the server) + - getpetinfo (returns pet's name, type, class, hunger, intimacy) + - globalmes (works like Announce, but outputs in the common chat window) + - jump_zero (reserved - for future compatibility) + - select (reserved - for future compatibility) + - getmapmobs (# mobs on a named map, use "this" for current map) + check script.c for their paremeters (in English) +02/25 + * Fixed npc_dequeue, testing on remove of RoVeRT's npc timer system [Shinomori] +02/24 + + * Re-added missing cart dupe-proof code. From Freya [Lupus] + * Some rewrites on Basilica [celest] + * Fixed another bad typo in skill list_num reading, thanks to orn [celest] + * Fixed Steal Item Rate. It has been multiplied twice on common_item_drop value for any kinds of items. [Lupus] + e.g. If you set droprate of comman items to 500%, then even rare items could be stolen more easily. Thanks to Freya + * Items Droprate fix. Now it adjusts correctly, w/o overflows. Thanks to Freya [Lupus] + * mob DBbs EXP reading fix. w/o overflows. Thanks to Freya [Lupus] + +02/23 + * Added bAddItemHealRate [celest] + * Fixed a crash if adding an offline player to a party, thanks to Alex14 + [celest] + * Fixed a crash with Warp [celest] + * New Cards: Some fixes, revisions, additions [Lupus] + * Fixed char server crash when sending wisp with a "'" in the names [celest] + * Fixed Backstab not checking for and consuming arrows [celest] + * Fixed another bad typo causing @allskill to not add points into advanced job + skills [celest] + * Fixed a bad typo in status.c's StatusChangeTable [celest] + * Corrected Spiral Pierce's hits in the skill_db [celest] + * Moved /common/*.o into a obj folder when compiling [celest] + * Updated core and map server to jA 1094~1115 [celest] + - Added End_of_exam's Memory Manager for detecting memory problems. + To enable remove the // in malloc.c line 11 + // #define USE_MEMMGR + - Added @npctalk and @pettalk + - Added support for jA's local zlib + - Fixed a bug with path search long + - Updated malloc.c to support Memwatch + - Added DB data loss detection + - Added db/skill_unit_db.txt + - Updated skill unit system + - Changed Waterball to the new timerskill system + ~ For more detailed logs check 'Readme-jap' (knowledge in japanese required, + obviously ^^;) + Please test if there's any skills that might have suddenly stopped working, + thanks ^^; + +02/22 + * Revised New Cards, added missing effects, fixed bugs [Lupus] + ~20 cards to check left 8) But on 22 Feb some new cards have been announced T__T' + * Cleaned up some compiler warnings [SVN 1158: MouseJstr] + * Added perl regular expression support.. look at src/map/npc_chat.c + for all the dirt on the new features. To build it, you have + to enable the PCRE_SUPPORT #define and you also have to + build/install the pcre library. [SVN 1157: MouseJstr] + +02/21 + * Added actual item_db.sql into sql-files. [Lupus] + * Added actual mob_db.sql into sql-files. If you use SQL Mob DB then update it [Lupus] + * Updated Bleeding effect [celest] + * Removed some unused code for Graffiti [celest] + +02/20 + * Char SQL: Rewrote/Fixed the castle save function, now the sql version saves castles! [Sirius] + * Fixed the /mm /mapmove command access bug [Sirius] + * Added skill requirements for the new guild skills [celest] + * Allow Emergency Recall to be cast in guild castles even if nowarp and + nowarpto mapflags are enabled [celest] + * Add 'minimum job level required' for skill_tree reading [celest] + - Berserk now requires job level 50 + * Added Spring Trap to be able to trigger ankle snare traps that aren't + activated yet [celest] + * Added a fix in guild.c by Mellowz [celest] + * Some rewrites on the pet skill bonuses system -- also fixes pet bonuses + not effecting stats as they should [celest] + * Check whether a monster is still alive before starting a status change + -- also fixes the status_change_timer nullpo errors with grimtooth [celest] + +02/19 + * Added bSubSize, bHPGainValue, and bDamageWhenUnequip [celest] + * Updated bSPDrainValue/Rate to accept a 'type' [celest] + * Set baby class players' size to 0(small) [celest] + * Fixed item_db2.txt reading printing wrong number of entries read [celest] + * Fixed @allskill not giving the newer stalker, whitesmith and creator skills + [celest] + +02/18 + * Fixed a bug with statpoint.txt reading and giving too much stat points, + thanks to Benz / eAthenaC [celest] + * Fixed client errors when pecopeco Lord Knights/Paladins log in with a weapon + equipped [celest] + * Added bAddRace2 -- check item_bonus.txt [celest] + * Added mob_race2_db.txt -- contains 'main races' of certain monsters [celest] + * Updated description for backup_txt in char_athena.conf a bit [celest] + * Set read_map_from_cache to 2 (enable compression), and map_cache_file back to + saving in /db instead of /save, as suggested by Poki#3 [celest] + * Updated description for auto_counter_type, and set plaer_auto_counter_type + to 0 by default, as suggested by Poki#3 [celest] + * Use the event names from script_athena.conf to check whenever a player event + trigger is being read/set [celest] + * Removed an unused save/bank.txt [celest] + * Added some new cards effects. (check DB\changelog.txt) [Lupus] + +02/17 + * Now all mobs have 10 drops slots. the last one is used for Cards Drops [Lupus] + Don't forget to update your SQL files (Drop Log: logs.sql and db_tables.sql + if u were using SQL Mobs DB. Update it from TXT! ) + * Fixed Branch Log TXT filename [Lupus] + * Made all logs work with compiled TXT Server, too (removed old #ifndef) [Lupus] + * Added 4 columns into mob_db.txt (check DB\changelog.txt) [Lupus] + * Fixed some mobs drops (Whisper, etc) and some MVP mobs (bonuses were shifted...) [Lupus] + * Readded Chemical Protection -- i forgot to check for it when changing some + jA stuff earlier, sorry ^^; [celest] + * Removed some old eA code that was causing Frost Nova to do an extra hit + [celest] + * Corrected Vulcan Arrow's hits in skill_db -- the bug appeared when the + correct numbers hardcoded were removed [celest] + * Readded zlib and zconf .h files to under /lib for compiling in Windows, + thanks to Ser [celest] + * Fixed some compile errors in Windows, thanks to Ser [celest] + * Changed remove_control_characters back to supporting korean chars [celest] + * Moved some other code around [celest] + * Added Shinomori's changes to Dissonance -- don't increment the timer again + if the target has died [celest] + * Changed some nullpo checks back to normal null checks -- in some situations + it would be normal to get a NULL [celest] + * Changed some nullpo checks to print some debug information [celest] + * Added some sd checks before calling pc_blockskill [celest] + * Added Dino9021's fix for SQL char's friend list updating [celest] + * Fixed a crash if the player invited to join a guild is not online, thanks to + Alex14 [celest] + * Find the guild invitation sender first before clearing its ID [celest] + + * Added 2 new script commands to support 2/15's cards patch... most of the + effects in kRO should be available now ^^ [celest] + + - isequipped(...): Accepts a list of item ID's and checks whether all of + the items/cards have been equipped. + - isequippedcnt(...): Same as above, except it returns how many of the items + are being equipped + + Example: if(isequipped(4002,4004,4006)) bonus bStr,1; + +02/16 + * Char SQL: Fixed the Whisper chat on splittet mapservers (i think now all features work!) [Sirius] + + * Added 3 more of the new card effects -- check item_bonus.txt [celest] + + * Added 'bonus4' to support the new card effects that might need up to 4 + parameters [celest] + * Set 'killerrid' and do PCKillEvent before calling PCDieEvent, thanks to + mrmagoo for pointing it out [celest] + + * Added some new script event related options to script config [celest] + + - [die/kill/login/logout]_event_name: Name of script to activate when an + event has occured + - event_requires_trigger: whether or not a 'set [EventName],1;' has to be + defined first for the event to be activated + + * Added 8 of the new card effects on the 2/15's patch (still untested and + not yet added to the item_db) + - Refer to doc/item_bonus.txt for description + + * Minor rewrites on self and enemy weapon/armor breaking during battle [celest] + * Added missing code for 'bBreakWeaponRate' and 'bBreakArmorRate' effects + [celest] + * Added missing code for 'bAddStealRate' effect [celest] + * Removed redundant 'infinite_autospell' in map_session_data [celest] + * Fixed Treasure Box spawn bug in all castles. [Lupus] + * Fixed wrong PresentLOG (it wasn't showing PRESENT BOX type ID) [Lupus] + * Expanded Monsters Drops Slots from 8 to 10. Everywhere in the sources. [Lupus] + But in TXT / SQL monsters DB reading functions, I added a temp plug + to make eA work fine with existing DBs. It reads only 8 drops and fills + 9th and 10th drops with Zero. + On expanding MOB_DB.TXT we'll remove that plug. + We are adding new cards and some monsters + have no free slots for them. Current state is tested and works fine. + +02/15 + * Allow Potion Pitcher to be able to cast on yourself -- i've almost forgot + about this, thanks to Filougarou and Poki#3 for the fix ^^; [celest] + * Added Wallex's changes for weapon skills to read list_num from the skill_db + when calculating damage [celest] + * Login / Login SQL: Fixed the EXE-Version check (now it works finally :) [Sirius] + * Char SQL: Fixed the '0x2b05' reply to the mapserver (now multi - mapservers works again!) + * Rewrote skill blocking system that was allowing people to bypass blocking + time simply by casting a different skill [celest] + * Edited out some inconsistencies with skillnotok [celest] + * Corrected Investigate's damage calculation, thanks to matthias [celest] + * Generate the remaining entries of the stat point DB if the number of + entries in db/statuspoints.txt is less than MAX_LEVEL, or statuspoints.txt + was not found [celest] + * Try to spawn the player at a default map ("prontera.gat") when logging in if + the save point map was not found [celest] + +02/13 + * added an @autoloot switch that Upa-kun has forgotten [Shinomori] + * changed pet_skillattack_timer and corrected the poison spore attack + * tighter check's on "unknown skill" error; but added prints to trace it + * Added Wallex's changes to only evoke script_rid2sd if agitcheck(1) is used + [celest] + * Merged jA's equipment breaking system into the current one, and corrected + items with unbreakable effects in the item_db [celest] + - "bonus bUnbreakable,[chance];" changed to + "bonus bUnbreakable[Weapon/Armor/Helm/Shield],0;" + +02/12 + * Merged Dexity's pc_statpointdb into pc_readdb, changed statp's string + array to short (less memory), and fixed the db not giving status points if + character level is above 255 [celest] + * fixing and optimizing sharp shooting + have implemented two different versions, just have a look and + decide which to use, description is in the code [Shinomori] + * Changed default map cache path from db/map.info to save/mapinfo.txt [celest] + * Removed old code for Sharp Shooting (still a little buggy) [celest] + * Merged Shinomori's code into map_foreachinpath [celest] + +02/11 + * mob.c fixed doubling entries in DROPS LOG, optimized [Lupus] + * item_noequip.txt now you can disable named consumable items + during GvG / PvP, too by Maya, optimized and checked [Lupus] + NOTE: Get rid of old cards on your server!!! IDs: 4149-4332 + before using of this item_db.txt (some cards have changed their IDs) + and it could cause ALIEN cards in your players equipment 8)) + i.g. a weapon compounding CARDS inserted in armor, etc... + * item_db.txt Massive update: [Lupus] + - Added all new missing items (up to st.Valentine's Day Event) + - Added new cards 4149-4332, sorted them and set their sripts. + - Fixed some names, typos, weigths and prices + * Commented out old custom cards from Old_Card_Album.txt till we brush them up [Lupus] + * Removed old custom cards from MOBs drops [Lupus] + thanks to Landarma(new items templates) Poki#3(removing cards from drops) + * Tidied up battle_check_target abit [celest] + * Updated traps to affect allies as well in GvG [celest] + * Check if login server is online before setting character to online (in SQL), + thanks to Alex14 [celest] + * Synchronise storage as well when saving character to cut down on item + rollbacks or duping, by Yor / Frea [celest] + * Added fix for super novices' Guardian Angel system crashing when base_exp = 0 + thanks to Alex14 [celest] + * not realy fixing the "unknown skill" error + but returning skill_castend_damage_id when called with skillid < 0 + still need to search a reason why it is called with -1 [Shinomori] + * EXPERIMENTAL: Reduced memory used for the skill_tree DB by 30+mb [celest] + * Added script commands isday and isnight - checks whether its night or + daytime. Example: if(isnight()) ... [celest] + * Skill Updates [celest] + - Sharp Shooting: Dropped jA's and kA's code and wrote a new + map_foreachinpath function in map.c -- about 14 times faster, but still + uncomplete + - Ankle Snare: Added matthias' suggestion to let agility reduce more trap + time, but no less than 3 seconds. + - Magnum Break: simplified code a bit, and changed to non-targetting / + automatically damages an area around the caster + - Tiger Fist: enable it to be used by its own besides as a part of + the combo skills + - Devotion: Fixed maximum level difference not reading its setting from + battle_athena.conf, thanks to leinsirk + - Soul Burn: Added some safety checks + +02/10 + * Login/Login SQL: fixed the client version check function [Sirius] + +02/09 + * Added conf-tmpl/readme.txt, explaining the import folder [1066: Ajarn] + * SQL Char: Rewrote the char_create function (now it's faster/optimized) [Sirius] + * SQL Char: Fixed the reply if a charname is invalid on create (now it replys denied..) [Sirius] + * SQL Char: Added a Character limit per Account (can be set in the config) [Sirius] + * SQL Char: Optimized some SQL-Querys [Sirius] + +02/06 + * NULL entries for guild data fixed [Credit to Sirius] [1060: Ajarn] + * Login server uses login_db_userid and login_db_user_pass for + queries now [Credit to Sirius] [1059: Ajarn] + * Login server can now check clientversion in clientinfo + [Credit to Sirius] [1059: Ajarn] + * Fixed txt build compile problems[1057: MouseJstr] + * Corrected end-of-line issues in source code [1056: MouseJstr] + * Coded new command: @MOBINFO [Lupus] + the command has also 2 aliases: @monsterinfo, @mi + It shows all Monster stats, Element, Race and stuff + It shows all items with their drop chance + It also shows MVP bonuses (MVP EXP, MVP Drops) + 02/05 * increased the max_files allowed in a grf [1054: MouseJstr] * Changed the way char deletion works for SQL [1051: Ajarn] diff --git a/db/const.txt b/db/const.txt index 9548c2bb7..f78d10b25 100644 --- a/db/const.txt +++ b/db/const.txt @@ -254,6 +254,7 @@ bLoseSPWhenUnequip 2029 bExpAddRace 2030 bSPGainRace 2031 bSPSubRace2 2032 +bAddEffWhenHitShort 2033 Eff_Stone 0 diff --git a/doc/item_bonus.txt b/doc/item_bonus.txt index 13dac4169..d0113595d 100644 --- a/doc/item_bonus.txt +++ b/doc/item_bonus.txt @@ -121,7 +121,7 @@ bonus2 bMagicSubRace,n,x; Magical damage x% reduction from n race 0,Intangibility 1,Immortality 2,Animal 3,Plant 4,Insect 5,Fish and shellfish 6,Demon 7,Human 8,Angel 9,Dragon family 10:Boss monster 11:Other than boss monster (normal monster) bonus2 bAddEle,n,x; In n attribute the damage addition of x% 0,Nothing 1,Water 2,Earth 3,Fire 4,Wind 5,Poison 6,Saint 7,Darkness 8,Sense 9,Immortality -bonus2 bMagicAddEle,n,x In n attribute the damage addition of x% (only magical attack) +bonus2 bMagicAddEle,n,x In n attribute the damage addition of x% (only magical attack) 0,Nothing 1,Water 2,Earth 3,Fire 4,Wind 5,Poison 6,Saint 7,Darkness 8,Sense 9,Immortality bonus2 bSubEle,n,x; Damage x% reduction from n attribute 0,Nothing 1,Water 2,Earth 3,Fire 4,Wind 5,Poison 6,Saint 7,Darkness 8,Sense 9,Immortality @@ -160,6 +160,8 @@ bonus bDamageWhenUnequip,n; Lose n HP when the item is unequipped bonus2 bCriticalAddRace,n,x; Increase critical + n vs. enemies of type x bonus2 bHPLossRate,n,x; Lose n amount of hp every x amount of time bonus2 bAddEffWhenHit,n,x; n% chance to cause x state to the enemy when + being hit by physical damage +bonus2 bAddEffWhenHitShort,n,x; n% chance to cause x state to the enemy when being hit by physical close range damage bonus2 bSkillAtk,n,x; Increase damage of skill n by x% bonus2 bAddDamageByClass,n,x; When being hit by monster of class n increase @@ -176,7 +178,7 @@ bonus3 bAutoSpellWhenHit,x,y,n; n% chance to cast skill x of level y when bonus3 bSPDrainRate,n,x,y; When attacking there is a n% chance to either gain SP equivalent to x% of damage dealt, OR drain the amount of sp from the enemy. - y:0=gain sp 1:drain enemy sp + y:0=gain sp 1:drain enemy sp bonus3 bSPDrainValue,n,x,y; When attacking there is a n% chance to either gain x SP, OR drain the amount of sp from the enemy. y:0=gain sp 1:drain enemy sp diff --git a/src/map/map.h b/src/map/map.h index 0193c315e..ceddea0e8 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -286,6 +286,7 @@ struct map_session_data { int critaddrace[12]; short no_regen; int addeff3[10]; + short addeff3_type[10]; short autospell2_id,autospell2_lv,autospell2_rate,autospell2_type; int skillatk[2]; unsigned short unstripable_equip; @@ -659,7 +660,7 @@ enum { SP_SKILL_ATK, SP_UNSTRIPABLE, SP_ADD_DAMAGE_BY_CLASS, // 2018-2020 SP_SP_GAIN_VALUE, SP_IGNORE_DEF_MOB, SP_HP_LOSS_RATE, SP_ADDRACE2, SP_HP_GAIN_VALUE, // 2021-2025 SP_SUBSIZE, SP_DAMAGE_WHEN_UNEQUIP, SP_ADD_ITEM_HEAL_RATE, SP_LOSESP_WHEN_UNEQUIP, SP_EXP_ADDRACE, // 2026-2030 - SP_SP_GAIN_RACE, SP_SUBRACE2, + SP_SP_GAIN_RACE, SP_SUBRACE2, SP_ADDEFF_WHENHIT_SHORT // 2031-2033 }; enum { diff --git a/src/map/pc.c b/src/map/pc.c index dc5792327..de289a33b 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -1829,8 +1829,16 @@ int pc_bonus2(struct map_session_data *sd,int type,int type2,int val) sd->critaddrace[type2]+=val; break; case SP_ADDEFF_WHENHIT: - if(sd->state.lr_flag != 2) + if(sd->state.lr_flag != 2) { + sd->addeff3[type2]+=val; + sd->addeff3_type[type2]=1; + } + break; + case SP_ADDEFF_WHENHIT_SHORT: + if(sd->state.lr_flag != 2) { sd->addeff3[type2]+=val; + sd->addeff3_type[type2]=0; + } break; case SP_SKILL_ATK: if(sd->state.lr_flag != 2) { @@ -3198,10 +3206,8 @@ static int pc_walk(int tid,unsigned int tick,int id,int data) int moveblock; int x,y,dx,dy; - sd = map_id2sd(id); -#ifndef _WIN32 - nullpo_retr_f(0, sd, "id=%d", id); -#endif + if ((sd = map_id2sd(id)) == NULL) + return 0; if(sd->walktimer != tid){ if(battle_config.error_log) diff --git a/src/map/skill.c b/src/map/skill.c index d84a18d7a..1f891e944 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1020,10 +1020,11 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int } if((sd||dstsd) && skillid != MC_CARTREVOLUTION && attack_type&BF_WEAPON){ /* カ?ドによる追加?果 */ - int i; + int i, type; int sc_def_card=100; for(i=SC_STONE;i<=SC_BLIND;i++){ + type=i-SC_STONE; //?象に?態異常 switch (i) { case SC_STONE: @@ -1046,17 +1047,17 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int if (sd) { if(!sd->state.arrow_atk) { - if(rand()%10000 < (sd->addeff[i-SC_STONE])*sc_def_card/100 ){ + if(rand()%10000 < (sd->addeff[type])*sc_def_card/100 ){ if(battle_config.battle_log) - printf("PC %d skill_addeff: cardによる異常?動 %d %d\n",sd->bl.id,i,sd->addeff[i-SC_STONE]); - status_change_start(bl,i,7,0,0,0,(i==SC_CONFUSION)? 10000+7000:skill_get_time2(sc2[i-SC_STONE],7),0); + printf("PC %d skill_addeff: cardによる異常?動 %d %d\n",sd->bl.id,i,sd->addeff[type]); + status_change_start(bl,i,7,0,0,0,(i==SC_CONFUSION)? 10000+7000:skill_get_time2(sc2[type],7),0); } } else { - if(rand()%10000 < (sd->addeff[i-SC_STONE]+sd->arrow_addeff[i-SC_STONE])*sc_def_card/100 ){ + if(rand()%10000 < (sd->addeff[type]+sd->arrow_addeff[type])*sc_def_card/100 ){ if(battle_config.battle_log) - printf("PC %d skill_addeff: cardによる異常?動 %d %d\n",sd->bl.id,i,sd->addeff[i-SC_STONE]); - status_change_start(bl,i,7,0,0,0,(i==SC_CONFUSION)? 10000+7000:skill_get_time2(sc2[i-SC_STONE],7),0); + printf("PC %d skill_addeff: cardによる異常?動 %d %d\n",sd->bl.id,i,sd->addeff[type]); + status_change_start(bl,i,7,0,0,0,(i==SC_CONFUSION)? 10000+7000:skill_get_time2(sc2[type],7),0); } } } @@ -1082,25 +1083,26 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int if (sd) { if(!sd->state.arrow_atk) { - if(rand()%10000 < (sd->addeff2[i-SC_STONE])*sc_def_card/100 ){ + if(rand()%10000 < (sd->addeff2[type])*sc_def_card/100 ){ if(battle_config.battle_log) - printf("PC %d skill_addeff: cardによる異常?動 %d %d\n",src->id,i,sd->addeff2[i-SC_STONE]); - status_change_start(src,i,7,0,0,0,(i==SC_CONFUSION)? 10000+7000:skill_get_time2(sc2[i-SC_STONE],7),0); + printf("PC %d skill_addeff: cardによる異常?動 %d %d\n",src->id,i,sd->addeff2[type]); + status_change_start(src,i,7,0,0,0,(i==SC_CONFUSION)? 10000+7000:skill_get_time2(sc2[type],7),0); } } else { - if(rand()%10000 < (sd->addeff2[i-SC_STONE]+sd->arrow_addeff2[i-SC_STONE])*sc_def_card/100 ){ + if(rand()%10000 < (sd->addeff2[type]+sd->arrow_addeff2[type])*sc_def_card/100 ){ if(battle_config.battle_log) - printf("PC %d skill_addeff: cardによる異常?動 %d %d\n",src->id,i,sd->addeff2[i-SC_STONE]); - status_change_start(src,i,7,0,0,0,(i==SC_CONFUSION)? 10000+7000:skill_get_time2(sc2[i-SC_STONE],7),0); + printf("PC %d skill_addeff: cardによる異常?動 %d %d\n",src->id,i,sd->addeff2[type]); + status_change_start(src,i,7,0,0,0,(i==SC_CONFUSION)? 10000+7000:skill_get_time2(sc2[type],7),0); } } } - if (dstsd && ((sd && !sd->state.arrow_atk) || (status_get_range(src)<=2)) && - rand()%10000 < dstsd->addeff3[i-SC_STONE]*sc_def_card/100){ + if (dstsd && rand()%10000 < dstsd->addeff3[type]*sc_def_card/100){ + if (dstsd->addeff3_type[type] != 1 && ((sd && !sd->state.arrow_atk) || (status_get_range(src)<=2))) + continue; if(battle_config.battle_log) - printf("PC %d skill_addeff: cardによる異常?動 %d %d\n",src->id,i,dstsd->addeff3[i-SC_STONE]); - status_change_start(src,i,7,0,0,0,(i==SC_CONFUSION)? 10000+7000:skill_get_time2(sc2[i-SC_STONE],7),0); + printf("PC %d skill_addeff: cardによる異常?動 %d %d\n",src->id,i,dstsd->addeff3[type]); + status_change_start(src,i,7,0,0,0,(i==SC_CONFUSION)? 10000+7000:skill_get_time2(sc2[type],7),0); } } } diff --git a/src/map/status.c b/src/map/status.c index 493544677..f5098bd20 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -498,6 +498,7 @@ int status_calc_pc(struct map_session_data* sd,int first) sd->autospell2_id = sd->autospell2_lv = sd->autospell2_rate = 0; memset(sd->critaddrace,0,sizeof(sd->critaddrace)); memset(sd->addeff3,0,sizeof(sd->addeff3)); + memset(sd->addeff3_type,0,sizeof(sd->addeff3_type)); memset(sd->skillatk,0,sizeof(sd->skillatk)); sd->add_damage_class_count = sd->add_damage_class_count_ = sd->add_magic_damage_class_count = 0; sd->add_def_class_count = sd->add_mdef_class_count = 0; -- cgit v1.2.3-70-g09d2