summaryrefslogtreecommitdiff
path: root/src/map/skill.h
AgeCommit message (Collapse)AuthorFilesLines
2009-06-19* Implemented script command "areamobuseskill" and skill NPC_INVINCIBLE and ↵Inkfish1-4/+1
NPC_INVINCIBLEOFF. (topic:217330) * Using items no longer cancels invincibility(but using target and ground skills through items does). (bugreport:3259) * Fixed Butterfly Wings not working during GVG. (bugreport:3264) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13897 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-06-15Removed the 'src' parameter from skill_delunitgroup() (see r5911) ↵ultramage1-1/+1
(bugreport:3253). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13893 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-06-15Improving the r13888 crashfix to cover similar crash scenarios discovered:ultramage1-1/+0
Reordered code in status_change_end(SC_DANCING) so that an ensemble's skill unit group is deleted only after removing both performers' status changes. Modified the call to skill_delunitgroup() IN status_change_end(SC_DANCING) so that it always processes the group's true owner and not others (bugreport:3253). Replaced calls to skill_stop_dancing() with status_change_end(SC_DANCING), since it now provides identical functionality. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13891 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-06-04* Updates to ST_PRESERVE and a few other minor details!L0ne_W0lf1-3/+4
- Recasting Preserve no longer toggles the skill off while active. - Preserve is no longer saved on log-out or mapserver changes. * Added SC_CRITICALWOUND and SC_SLOWCAST to negative statuses not saved with battle_config.debuff_on_logout&1 * Implemented the skills NPC_HELLPOWER and NPC_WIDEHELLDIGNITY, as per my personal experiences with the skill on iRO. * Increased MAX_MOBSKILLS to 50, as Satan Morroc has over 40 active skills now. * Added skill information for NPC_HELLPOWER and NPC_WIDEHELLDIGNITY, and enabled skills in mob_skill_db. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13843 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-06-03* Implemented the Party Buff cash skills.L0ne_W0lf1-5/+5
* Misc updates, and updates for party buff items. - Added CASH_BLESSING, CASH_INCAGI and CASH_ASSUMPTIO skills. - Added itemskill commands for the party buff scrolls. - Corrected Equipment repair book's itemtype to 11. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13840 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-05-29* Added a new battle flag for telling which skills can have bHealPower effect.Inkfish1-1/+1
* Added documentation for bHealPower. * Fixed some behaviors for healing skills, (thanks to L0ne_W0lf) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13821 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-05-29* Added new bonuses bHealPower and bHealPower2. Inkfish1-1/+1
* Heal skills code clean up. - bSkillHeal can affect offensive heal now. - bSkillHeal2 can affect AppleIdun and SlimPitcher now. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13820 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-05-27* skill_check_condition clean up (bugreport:2770, bugreport:2957, ↵Inkfish1-2/+14
bugreport:3010) - Weapon, SP, HP and state are checked at the beginning of cast. - Required items and ammos are checked at the end of cast. - SP and status change required are removed at the end of cast without checking again. - Required items are removed only if the skill is successfully used. - Autocasts won't check for requirements but will remove them if you have them(except for SP/HP). Hope won't cause any problems... git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13815 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-05-14* More logical modifications on skill_additional_effect thing. Thanks to ↵Inkfish1-1/+1
ultramage. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13771 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-04-23Made some adjustments to the land skill code, based on official information:ultramage1-17/+22
- Expanded and corrected the land skill view id enum in skill.h - Renamed UNT_ATTACK_SKILLS to UNT_DUMMYSKILL and UNT_KAENSIN to UNT_KAEN (official terminology) - changed GS_DESPERADO to use the UNT_DUMMYSKILL view id instead of UNT_KAENSIN (and is it supposed to be a land skill at all?) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13688 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-02-26- Fixed item Nemesis.zephyrus1-0/+1
- Fixed Tarot Card being used on Emperium. - First Part of BattleGround Implementation (please wait). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13550 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-01-25- Implemented monster skill "Full Heal" NPC_ALLHEAL.zephyrus1-3/+3
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13493 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-01-24* Changed all uses of struct skill_unit_group* to group_id in ↵FlavioJS1-0/+1
status_change_entry's. (last known 64bit portability issue) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13482 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-09-10- Full implementation of mercenary skills.zephyrus1-2/+3
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13203 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-09-03- Starting Mercenary Skill implementation.zephyrus1-5/+7
- MS_BASH Completed. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13189 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-08-20* Implemented Brainstorm's and SketchyPhoenix's fixes for Flying side kick.L0ne_W0lf1-1/+57
- Skill will now remove KA-type statuses and not remove stalker's link while preserved. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13098 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-29Renamed struct 'skill' to 's_skill' to remove naming collisions.ultramage1-1/+1
Added defines for mercenary skill ranges. Added a mapping of mercenary skills to the skill db (700-799 atm). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13012 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-06-12* Added support for skill names to script commands:FlavioJS1-0/+2
- skill, addtoskill, guildskill, getskilllv, getgdskilllv, itemskill, petskillattack, petskillattack2, petskillsupport, skilleffect, npcskilleffect, unitskilluseid, unitskillusepos - bonus/bonus2/bonus3/bonus4/bonus5 for bonuses bAutoSpell, bSkillAtk, bSkillHeal, bAutoSpellWhenHit, bAddSkillBlow, bCastrate git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12814 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-05-07- Moved the SD_PREAMBLE code to skill_area_subskotlex1-4/+5
- Added SD_SPLASH to let skill_area_sub do the target counter. - Updated splash skills to use these defines. - The NPC_WIDE* skills now use SD_PREAMBLE to correctly display their animation. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12689 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-21* Changed the data field of timers from int to intptr.FlavioJS1-2/+2
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12633 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-15 * Corrected some invalid syntax in skill_db.txt (wrong usage of commas)ultramage1-2/+3
* Renamed BA_FROSTJOKE to BA_FROSTJOKER (aegis server-side name) * Implemented a generic framework for parsing delimited db files (allows specifying min/max column ranges and max number of rows to read) * Corrected a typo in quest_update_objective() * Cleaned up pc.c a bit git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12599 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-10* Reverted the change to MAX_SQUARE_LAYOUT.L0ne_W0lf1-1/+1
* Evil Land will always as a 3x3 animation. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12550 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-10* Updated NPC skill "Evil Land". More gravity wtfage.L0ne_W0lf1-1/+1
- Based on visual observation, and experience with it on iRO Sakray. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12548 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-25Partially fixed the mess in status.c.ultramage1-0/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12433 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-24* Reorganized the contents of the mapserver's header files.ultramage1-9/+64
- map.h is no longer a generic dumping spot of all the shared structs, and instead, each such structure now resides in its logical component - map.h now only holds mostly map-related things (needs more cleaning) - there's still a lot of room for improvement (reorganization within individual header files, etc...) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12429 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-09Cleaned up and corrected some more land skill code:ultramage1-11/+12
* removed redundant skill_ganbatein() function * Added flag UF_PATHCHECK from jAthena which affects whether a skill's cells will be affected by the surrounding terrain. Adjusted existing flags so that they closely match jA's (for easier comparisons). * Fixed code that allowed placing of skill unit cells on 'gaps'. * Fixed code that prevented successful casting of land skills on 'gaps' (officially it's possbile, even though they will not deploy entirely). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12331 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-01-04Modified the map_setcell() code to to use a boolean flag instead of needing ↵ultramage1-1/+0
SET_ / CLR_ pairs of defines (topic:174323). Also removed script object 'setcell', added script function 'setcell'. - Now you can manipulate cell information without needing @loadnpc - You can also manipulate the terrain ('gat') type itself, using the new cell_walkable, cell_shootable and cell_water constants (currently the implementation uses bit flags too, so to get the type you want, you need to adjust the flags one by one) - This breaks current scripts, so please adjust places that use setcell (also be sure to _only_ use predefined constants, not direct numbers) - Details can be found in the script reference. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12009 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-23- Fixed horrible handling of skill_abra_db which leads to memory corruption ↵skotlex1-1/+1
(depending on the contents of yor abra_db.txt file) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11970 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-09Changed Cloaking to not show an animation when it fails (thanks to Harbin ↵ultramage1-1/+1
for pointing it out). And while at it, also tweaked skill_check_cloaking() to use a more readable boolean logic instead of the previous zero-nonzero. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11877 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-22- Changed the status_change structure to use dynamic rather than static ↵skotlex1-1/+1
memory to hold the individual status changes, this should have a noticeable impact on the server's memory consumption. - Had to add a few 'ugly' flags to status_change since now you can't track SC related information while said SC is not active (happens only for Storm Gust, Joint Beat and Magic Power). - Since I am unable to fully test, watch out for any bugs~ git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11786 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-05Corrected the max. allowed skill name length, and optimized code that works ↵ultramage1-1/+1
with skill names according to latest changes. 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11659 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-05Changed the skill_db.txt skill names in comments into actual columns, now ↵ultramage1-2/+2
the server reads these instead of a hardcoded array (see topic:170438). Corrected skill db loading code which was using a totally wrong column count in sevreal cases (or didn't do any checks at all). Cleaned up skill db lookup code * added some well-behaved functions to replace macros (skill_get_index) * used skill_get_index() to replace often occuring blocks of code that did the skill_id -> skilldb_index calculation in-line git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11657 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-02Removed some long-unneccessary debug messages (from r1105).ultramage1-2/+2
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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11640 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-31* Added names to the SC_ and SI_ enums, now they can be used to properly ↵ultramage1-4/+4
indicate where such values are to be used (replaces usage of 'int') * removed MIN_/MAX_PORTAL_MEMO, set MAX_MEMOPOINTS from 10 to 3 * removed support for @go-ing to your memo points * simplified the overly verbose @memo command; now re-uses pc_memo() * cleaned up pc_memo(), now uses semi-correct packet replies * Minor code cleaning/formatting git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11625 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-18Fixed numerous /W4 warnings (and created more :)ultramage1-5/+5
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11514 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-16* Fixed a copy-paste mistake in disguise code (from r5833)ultramage1-6/+6
* 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11491 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-15Implemented new skill "Enlarge Weight Limit R", and increased MAX_SKILL_TREE ↵L0ne_W0lf1-0/+2
by 1. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11476 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-13* Further updates to skill_delayfix functionPlaytester1-1/+1
- aftercast delay can never be lower than amotion - please report if this broke any skills git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11436 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-12- cleaned up homshuffle and fixed a possible crash in it.skotlex1-1/+1
- Updated the skill_delayfix function to behave as recently discovered by Tharis: Skills with no delay set will use amotion ONLY if the skill was instant-casted. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11433 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-10* Partially removed the usage of 'flags' to direct the execution path in ↵ultramage1-4/+3
skill unit code (some people seem to really like flags >_>) - 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11399 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-03* Cleaned up parts of skill.c related to skill unitsultramage1-9/+9
- removed some nonsense code in skill_dance_switch() (from r8876) - removed 'security system to prevent forgetting timer removal' (r1213) - renamed some skill-related data structs (had same name as variables) - commented out custom Venom Splasher countdown messaging code git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11347 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-09-10* Added a safeguard to skill_get_unit_layout() against incorrectly defined ↵ultramage1-14/+28
layout ids (will give weird results but won't crash at least) * Fixed Firewall/Icewall being oriented backwards (no real difference though...) * Removed some junk Landprotector/Graffiti code; Graffiti doesn't get placed randomly anymore * Icewall can now be cast on yourself... but for some reason, the cell on yourself immediately expires! * Merged together functions clif_set0192() and clif_changemapcell() - also removed its "send to whole map" mode which is just plain wrong (although aegis actually does use it to 'inform' caster about changes) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11175 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-09-10- Removed bonus bAddEffWhenHitShort as it is unneeded and unused.skotlex1-2/+2
- Corrected getpetinfo so it actually returns "null" when there's no pet and you request the name (the docs state it so). - Also cleaned up a bit getpetinfo - Added gethominfo (which behaves in the same way as getpetinfo). - The 'maxcount' skill_db field now can store independant values per skill-level, required for Kamaitachi since it uses different range values per level. - Corrected bonus3 bAutoSpell(WhenHit) to select target enemy (rather than self) for skills with inf self and inf2 'don't target self' (aka: auto-select target skills). - Corrected map_foreachinpath to do a wall check for targets beyond the initially selected tile. - Corrected Kamaitachi's range to be 9, and the path range to be 4+SkillLv git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11169 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-08-24- Fixed the hotkey list sending to the client not displaying right away.skotlex1-0/+5
- Corrected the unit_id of NPC_EVILLAND (taken from jA) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11071 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-08-19* Cleaned/clarified some #include relationships between headersultramage1-2/+2
* 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11040 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-08-14- Modified map_foreachinrange so that you can also specify the max length of ↵skotlex1-1/+31
the path to use. The max_count field in the skill_db is used to specify this range for path-type skills (Sharpshooting, Kamaitachi and the NPC Breath skills. - 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11000 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-07-08- added temp skill db entries and corrected some existing ones (see ↵ultramage1-4/+4
topic:157041) - removed txt converters from txt build (they need mysql files so they don't belong there) - eol-style for newly added file git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10867 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-07-06* Cleaned up some nasty code related to skill_blownultramage1-1/+1
- 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10861 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-05-23- Added new flag to skill_castnodex.txt, to allow per-skill tweaking of cast ↵ultramage1-2/+1
time and delay reducibility by item scripts (cards and such) - 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10613 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-12- Changed the meaning of inf2=0x1000. Now it is used to "disable usage on ↵skotlex1-13/+12
enemies", which only works for non-aggressive (inf!=1) skills. - If a skill is party/guild only (inf2 0x400/0x800) it will also be castable on enemies if the skill's inf is 1 (offensive target) - Corrected the mob behaviour when it locks into an enemy it can't chase. Previously it would get stuck on a lock->unlock->lock loop, with each unlock resetting the "random walk" timer, causing the mob to just idle in place. Now they will attempt idle skills and no longer reset the "random walk" timer, so they behave as if they were in Idle state properly. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10234 54d463be-8e91-2dee-dedb-b68131a5f0ec