summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-SVN.txt314
-rw-r--r--Changelog.txt310
-rw-r--r--db/const.txt1
-rw-r--r--doc/item_bonus.txt6
-rw-r--r--src/map/map.h3
-rw-r--r--src/map/pc.c16
-rw-r--r--src/map/skill.c36
-rw-r--r--src/map/status.c1
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 <monster name|monster N> [Lupus]
- the command has also 2 aliases: @monsterinfo, @mi
- It shows all Monster stats, Element, Race and stuff
- It shows all items with their drop chance
- It also shows MVP bonuses (MVP EXP, MVP Drops)
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 <monster name|monster N> [Lupus]
+ the command has also 2 aliases: @monsterinfo, @mi
+ It shows all Monster stats, Element, Race and stuff
+ It shows all items with their drop chance
+ It also shows MVP bonuses (MVP EXP, MVP Drops)
+
02/05
* increased the max_files allowed in a grf [1054: MouseJstr]
* Changed the way char deletion works for SQL [1051: Ajarn]
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
+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
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;