Changed skill db loading code to work similarly to how itemdb/mobdb is loaded (generic file loader + specialized function to process rows).
* all skill db files are now checked for inconsistencies the same way.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11659 54d463be-8e91-2dee-dedb-b68131a5f0ec
Removed function skill_count_target() because it's a duplicate (see topic:169337).
Renamed skill_get_pl to skill_get_ele (because it retrieves element ids).
The block_list structure now uses the BL_ enums instead of 'unsigned char'.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11640 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Cleaned a bit the loop for the Warmth skills.
- Added a mising pc_class2idx invocation (fixes a very minor bug when you request max skill lv for a skill in your tree with different max than the skill_db max)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11578 54d463be-8e91-2dee-dedb-b68131a5f0ec
- removed code for Crimson Fire Formation it now uses the same code as Fire Wall
- added same knockback behavior as Fire Wall for Fire Formation
- Heat now does 50 hits a second in pvp too
- please let me know of any bugs that might appear
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11510 54d463be-8e91-2dee-dedb-b68131a5f0ec
- added passive skillv*30% bonus from Poison React
- added official splash damage calculation - damage gets split by the number of targets at range 1, then applied to all targets in range 2
- reverted some very old code - clif_calc_delay() - that was preventing skills from displaying properly, by erroneously assuming that if the target has ddelay 0, it has endure effect activated
- TODO: the skill should not consume a gemstone when it fails
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11494 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Commented out clif_skill_damage2() as it is not used anymore
* Made Venom Splasher a splash attack that distributes damage
* Fixed displaying of several splash skills (see bugreport:238)
- added flag SD_PREAMBLE for skills that need the 'magic' packet (fixes Grimtooth / Cart Revolution displaying out of sync)
- hacked together Venom Splasher's "no animation for central mob"
- hacked in a custom packet to make Dragonfear display semi-correctly
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11491 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Renamed the config default_skill_delay to default_walk_delay as that is the only thing it does now.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11446 54d463be-8e91-2dee-dedb-b68131a5f0ec
- wiped out r8478 and its multiple levels of useless flag propagation
- skill_unit_onlimit (expiration) no longer executes in skill_delunit
- added skill_unit_ondelete for proper handling of this event
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11399 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Increased MAX_GUILDCASTLE in mmo.h to 29 for future implementation of the 12.1 Guild Castles.
* Added constants for Summer Outfit and updated the Summer_Event_Suit item script.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11321 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Ignore %MDef bonuses now only reduce target's base MDEF, not MDEF2.
- Updated the 'skills that cause no damage are blocked now if the skill element is blocked by the target' to only apply if the skill has a status change associated (fixes Resurrection/Heal being blocked).
- Reverted the opt_flag2 change in status_change_start (clif_changeoption2) since it never served its purpose.
- Added a warning to prevent loading mobs with IDs that belong to the clone range.
- Changed MAX_MOB_DB to 3000, updated the definitions of the clone range defines so they are updated automatically with the change of MAX_MOB_DB.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11287 54d463be-8e91-2dee-dedb-b68131a5f0ec
- cast time is between 100% and 300% (+ infinite waiting fixed)
- damage is also between 100% and 300% (doesn't increase past range 9)
- added knockback that's equal to the distance to target
- no longer causes teleportation on WoE grounds
- if target runs behind an obstacle, the skill will still teleport you, but will not perform the attack or do knockback
- this should be official behavior, so enjoy the weirdness!
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11256 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Abstraction for the sql code (sql.c/h).
- New configure script and makefiles.
- Restored txt zeny logging code. (r10814)
- Rewrote mapserver's sql code - itemdb, mobdb, mapreg, logs. (r10814)
- Fixed a precedence issue (&& and ) in char_sql/char.c. (r10833)
- Improved db reading code a bit for consistency. (r11077)
- Added separate atcommand for mail deletion. (r11077)
- Corrected a few messages that said "new" instead of "unread". (r11077)
- Broadcast (*) messages now use "*" as the target's name (not ""). (r11077)
- Moved StringBuf code from utils.c/h to strlib.c/h. (r11084 r11117)
- Some misc login server cleanups (reformatting etc). (r11136)
- Corrected/modified some header entries. (r11141 r11147 11148)
- Adjusted VS project files. (r11147)
- Adjusted the way the sql charserver does item saving. (r11192)
- Corrected usage of reserved keyword 'friend' in mmo.h. (r11192)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11245 54d463be-8e91-2dee-dedb-b68131a5f0ec
- battle_calc_return_damage now is only for BF_WEAPON attacks, added skill_magic_reflect to check whether a spell is bounced back or not.
- Magic reflection now effectively switches the caster/target (after damage has been calculated)
- Now when GTB completely blocks a spell, the spell animation will still come off, but with a single bolt and MISS damage.
- Removed hom_setting&0x2 since Homunculus can be hit by land spells.
- Monster Property now gives a Skill Failed message when attempted on players.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11203 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Removed bonus bAddDamageByClass since it is not needed, and implemented bAddDefClass which can be used for the same (but previously was doing nothing).
- Cleaned up the weapon_data structure to use a sub-structure to hold the add_dmg information.
- Cleaned up some of the add dmg/def bonuses so the 'count' variable is not needed anymore.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11121 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Added bonus bIgnoreMdefRate, used to ignore a % of the target's mdef when using magic attacks (bonus2 will ignore part of the mdef of all targets, bonus3 receives a race argument)
- You can now use bonus2 bCastRate to adjust the cast rate of a single skill.
- Cleaned the code for bleeding (hp-loss) and extended it to handle regen as well.
- Some small cleanups in the pc_bonus functions
- Removed bonus3 bHpLossRate since it was doing nothing and is not used.
- Corrected bGetZeny bonus to be like in Aegis. The amount received is from 1 to the given amount, you can use negative zeny values to use an amount dependant on mob's level (amount*lv).
- Updated doc/item_bonus.txt with all these changes
- Anti-Magic/Stone-Skin now increase/decrease def/mdef only and in an absolute mode (+20*lv rather than +20%*lv). Also the duration is greatly decreased (x/15) when used on players.
- Now when a player uses a strip skill without having it in the skill tree (auto-casted) the duration will be 0, the equipment will be stripped without causing the status change that blocks reequipping.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11112 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Moved battle_skillatk_bonus to pc.c, cleaned up the related skillatk bonus code to consider the skillheal bonus option.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11085 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Changed clif_sitting() to use 'bl' instead of 'sd' (for non-player objects)
* Removed way messed-up script function 'unitdeadsit'
* Tagged 'FIXME' lines written by myself
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11040 54d463be-8e91-2dee-dedb-b68131a5f0ec
- adjusted @reloadbattleconf to not depend on variable ordering
- changed all battle vars to 'int' (removes pointless duplicit coding)
- added min, max and default columns to battle config data structure
- added properly bounded values for these columns (or at least tried to)
- battle-conf loading will now complain if it finds unknown settings,
and will reject values that are outside of the allowed range
- added CHATROOM_TITLE_SIZE and CHATROOM_PASS_SIZE
- partially cleaned up chatroom manipulation code
* Fixed 'Job_Professer' typo in mage jobchange quest
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11017 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Implemented the 'new' NPC skills described here: http://ro.doddlercon.com/wiki/index.php?title=Monster_Skills . It is mostly complete, but the new status changes (slow cast, critical wounds, etc) don't have any visual effects yet (icon or opt changes? I don't know if they should have). Also I could not find the unit_id for Evil Land, so it looks just like Sanctuary for now. Apart from those, the only skills which I couldn't get to display properly are the Breath skills (with the exception of Fire Breath).
- skill_calc_heal now takes the target as argument to properly support Critical Wounds
- battle_calc_return_damage now takes a flag to know if the attack was direct or not, needed since Magic Mirror also reflects indirect attacks.
- cleaned up the 'description' field in skill.c, added skill_get_desc to it
- Removed 'splash' support from Lex Divina as it is no longer needed.
- Modified the way Sight/Sightblaster work so that the skill id is no longer guessed (needed to properly acquire the splash range for Wide Sight)
- Corrected gtb_sc_immunity setting not taking effect if your block value was the same (that is, if the config said 30%, then you would only get status change immunity at 31%, nor 30%)
- Uncommented the 'new' npc skills from mob_skill_db as they are implemented now.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11000 54d463be-8e91-2dee-dedb-b68131a5f0ec
- battle.c and pc.c formatting
- fixed one badly defined npc shop format string
- removed the "selling item for no buying price" warning when the item has a buying price of 20 (see topic:157465)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10971 54d463be-8e91-2dee-dedb-b68131a5f0ec
* TODO: remove getequipname() func, it can be fully replaced by editing a few scripts, plus it doesn't do what the docs say it should do
* Fixed a silly mistake in the main script engine loop ('pos' variable)
* Fixed monter -> monster typos
* Compacted some script function code (fewer LoC -> faster trac :)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10923 54d463be-8e91-2dee-dedb-b68131a5f0ec
- split 'direction' value from flags
- moved (almost) entire direction calculating code to the outside
- bowling bash now has the 'suck-in' effect (knockback is now done in the direction you were last facing, not in your-target direction)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10861 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Fixed Martyr's Reckoning never triggering for gms with all skills
- Added MO_TRIPLEATTACK and RG_SNATCHER to @skillall's skill filter
- Made gm_skill_unconditional bypass skill blocking (guild timer, etc)
- Reverted the weird delay_dependon_agi thing (r8923, r9055, r9059)
- Changed a few memsets to strncpy (reading past buffer is a bad idea)
- Sped up some memset operations (multiples of 4 are faster)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10613 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Corrected the pet_db information for Xmas Goblin and Rice Cake.
- Replaced all struct map_session_data to TBL_PC in script.c
- Pressure no longer vaporizes plants.
- Corrected pc_setregstr to handle a null str argument.
- Corrected @reloadbattleconf causing a add_timer_func "already existing function" error.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10326 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Changed autocast skills, they now only work with normal attacks
- Fixed a few spots where the attack_type flag was getting truncated
- Hopefully fixed the cygwin + size_t problem (using stddef.h as source)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10298 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Adjusted Spiral Pierce, Shield Boomerang and Shield Chain to use atk2 instead of weight when used by non-players.
- Adjusted skills blindAttack, SilenceAttack, StunAttack, PetrifyAttack, CurseAttack, SleepAttack, Lex Divina and Dispell to be area effect skills, if the used skill level has a splash-range different from 0.
- Mob used Meteor Assault (and by extension Spread Attack) is able to hit icewalls now.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10264 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Removed wrong defines status_get_sc_def_[mdef/vit/int/luk], they actually had a rather undefined behaviour.
- The pc_max_status_def mob_max_status_def configs are now set on a 1-100% scale instead of 1.00-100.00%
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10206 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Removed a bunch of unused stuff
- Moved SIGILL to unix-only defines since tests and docs show that Windows doesn't issue SIGILL
- Fixed several annoying compilation warnings
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10177 54d463be-8e91-2dee-dedb-b68131a5f0ec