summaryrefslogtreecommitdiff
path: root/src/map/skill.h
AgeCommit message (Collapse)AuthorFilesLines
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
2007-03-19- Removed the last argument from skillitem, the skill name passed to the ↵skotlex1-4/+4
client should always be of the type "AL_HEAL" anyway. - Added skill ITEM_ENCHANTARMS, this is what weapon enchanting items should use. - Corrected itemskill calls in the item_db, also made the weapon enchanting items invoke the ITEM_ENCHANTARMS skill. Corrected Holy Egg not being type 11 (delay consume) - Updated item_db.sql with item_db information. - Added support for specifying different elements per skill level in the skill_db - Added bonus bNoKnockback - Corrected typo in bonus bSubRace2 (it was called bSPSubRace2 for some reason) - Corrected login sql server not resetting your account state to 0 when the banuntil duration expires. - Corrected use of UINT_MAX instead of INT_MAX in some jailing check. - Made the skillatk bonus it's own function, it can now be used to boost Heal/Sanctuary/Potion Pitcher and Slim Pitcher as well. - Cleaned up TK_WARMWIND to use the element acquired from the skill_db rather than hardcoded values. - Corrected Teleport's save map entry being sent without the .gat extension. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10031 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-06- Corrected the define for NK no cardfix (def).skotlex1-1/+1
- Updated skills that shouldn't ignore the target's cards: Smoking, Fling, Zenynage - Fixed the char sql server not escaping the server name before inserting it on the ragsrvinfo table. - Corrected @lvup not doing the party even share check. - Corrected breaker's misc part not ignoring element. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9969 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-05- Added NK value 0x80: ignore target's cards (0x8 will now only ignore ↵skotlex1-1/+2
attacker's cards). - Corrected the NK values of skills (0x08 -> 0x80): Self Destruction, Smoking, Pressure, Fling, Zeny Nage, BioExplosion - Soul Burn & Gravitation got NK 0x80 (previously hardcoded) - Corrected Soul Breaker ignoring target's cards instead of the caster's. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9967 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-23- The NK value of the skill_db has been made a hexadecimal value, and ↵skotlex1-5/+11
expanded to include more information about a skill's damage properties: 0x8 - ignore caster's cards, 0x10 ignore element adjustments, 0x20 ignore target's defense, 0x40 ignore target's flee. - Magic attacks always ignore flee, and misc attacks always ignore defense. - Autoguard will no longer work on skills that don't take in card adjustments - utsusemi & bunsinjyutsu no longer work on skills that don't take in card adjustments. - Corrected damage of the NPC elemental attack skills, Blood Drain and Energy Drain git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9906 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-21Applied a consistent look to all header files (copyright, ifdefs)ultramage1-1/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9891 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-09- Changes to script buildin functions:FlavioJS1-1/+1
* functions checking if a player is attached as soon as possible. * functions that required a player attached and would crash if none was there terminate the script now. (others keep the current behaviour to maintain full backward compatibility) * removed the unused flag argument in guildskill. * bonus,bonus2,bonus3,bonus4 use the same function now (remains the same script-wise) * added an optional parameter to setcart,setfalcon,setriding so it's possible to remove the cart/falcon/mount or select a specific cart * other cleanups git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9636 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-14- Added function skill_strip to handle stripping code. The RG strip skills ↵skotlex1-0/+1
and GS_DISARM use it now. - Modified the strip-related status changes so they handle removing the equipped item instead of leaving it up to the skill-code. They return 0 when nothing could be stripped. - Cleaned some the MD_DETECTOR code. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9499 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-05- Massive EOL normalization & 'svn:eol-style native' flag setting for all ↵FlavioJS1-958/+958
txt/conf/h/c files. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9410 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-11-20- You now can't use other skills while a skill-induced "window" is up ↵skotlex1-0/+1
(teleport, refining, etc). However, be warned that we aren't quite sure how the server will clear this out if you decide to hit cancel on the window, so skill-blockage is likely to happen (temporary solution: whenever you change maps or warp the state is reset server-side). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9276 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-11-08- Moved the duel functions to pc.c since they are so totally out of place in ↵skotlex1-0/+1
atcommand.c - Fixed Spider Web not ending when hit by a fireelemental attack. - Cast-time reductions from status changes will not be executed until right before casting, to prevent status changes from ending when attempting to cast and the attempt fails (invalid cells, not enough sp, wrong target, etc, etc) - Added check to prevent Wand of Hermod from seeking for a partner to encore, since the partner is supposed to be the warp. - Moved the duel auto-reject on logout from map_quit to unit_free - Corrected the mob spawn reading code so that the event-name can be up to 50 characters long (which is the actual event length) and so that it can read spaces within them, it will also strip the leading/trailing quotes if you use them so that the event is actually found on mob-death (so you can do stuff like "My NPC::OnDead" as a valid event). - Moved the homunc inherit speed from the master from status_calc_pc to LoadEndAck, since the hom's speed matches that of the master each time the master changes maps. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9173 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-10-03- Renamed setting delay_dependon_dex to delay_dependon_agi, the delay of ↵skotlex1-1/+1
skills is reduced now (when enabled) by AGI instead of DEX, which makes a lot more sense than DEX. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8923 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-09-08- Unified the rest and ganstar paradise code into a single function.skotlex1-2/+1
- Moved the Happy State trigger to the regen function, it now triggers at the same time the SPTIME does. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8681 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-29- Applied Mpeg's work on GStoms1-2/+5
( http://gpegon.free.fr/ea/gunslinger_08-29-06_mpeg.txt ) - Fixed a syntax error in @showmobs git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8528 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-28- Restructured CG_MOONLIT so that it is a ground effect like the other Encores.skotlex1-1/+1
- Modified SC_DANCING so that val1 can contain both skill id and skill lv, removed SC_MOONLIT git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8526 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-28- Changed the produce_db format, now there's a skill-lv column right after ↵skotlex1-1/+1
the skill-id column to specify required skill-level to craft this item. - Modified the skill produce_db code to take into account the new skill-lv requirement. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8523 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-28reverted mpeg's workVicious1-5/+2
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8522 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-28Applied Mpeg's work on GS ( ↵toms1-2/+5
http://gpegon.free.fr/ea/gunslinger_08-28-06_mpeg.txt ) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8513 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-25Added a flag to skill_delunitgroup, skill_delunit & skill_unit_onlimit.toms1-2/+2
If 1 is passed, it will avoid UNT_WARP_ACTIVE to be transformed in UNT_WARP_WAITING and will destroy it. [Toms] ( To avoid such crash : http://www.eathena.ws/board/index.php?showtopic=114102 when the code need an empty slot and the oldest one is UNT_WARP_ACTIVE ) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8478 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-22- Some more work on the splash skill code. Now splash-damaged enemies should ↵skotlex1-0/+4
show no animation at all, just the damage-number, while only the targetted character should still display the full skill animation. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8436 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-07mpeg's ninja workVicious1-3/+4
http://gpegon.free.fr/ea/ninja_08-07-06_mpeg.txt git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8160 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-17Orn's and Albator's Homunculus system, finally, YAY!!DracoRPG1-0/+3
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7706 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-12- Fixed NJ_TATAMIGAESHI to use ground-tiles rather than "for each in path" ↵skotlex1-1/+1
calls. The skill should be working correctly now, except for the fact that the correct "unit id" is missing (this is what would give the ground tile it's correct display). Temporarily it is using 0xba until the correct value is found. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7641 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-05Saycyber21's NJ workVicious1-2/+3
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7529 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-30- Small cleanup on Abracadabra.skotlex1-3/+4
- Added UF_SONG (0x400) to differentiate songs from dances. - Updated the skill_unit_db accordingly, ensembles should only have that flag, likewise for songs and dances. - Added preliminar support for making a Song+Dance turn into BA_DISSONANCE cells. Beware of potential bugs as it's untested. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7428 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-28- Added inf2 4096 (INF2_ALLOW_ENEMY) which is to be used in conjunction with ↵skotlex1-0/+2
INF2_PARTY_ONLY/INF2_GUILD_ONLY when said skill should ALSO be allowed to be used on enemies. - Updated Soul Change to use inf2 4096 (INF2_ALLOW_ENEMY). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7376 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-26- Corrected unit id of desperado and Ground Drift using jA's info.skotlex1-5/+7
- Rough implementation of Ground Drift according to description and jA info. - Implemented Tatami Gaeshi using skill description and jA implementation for reference. - map_foreachinpath calls will no longer go beyond the target point, as this function is required for skills other than SharpShooting now. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7344 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-23- Updated BD_INTOABYSS's unit flag to not affect mobs.skotlex1-0/+1
- Changed setting for skill_nocast flag 16. It is no longer a "pk-mode map" setting, it's now a clone-forbidden skill. That is, skills with the flag 16 will never be copied by clones. If you use a PK-mode server, use flag 2 now to forbid skills from common maps. - Default skills from not being cloned are Magnus Exorcism and Turn Undead. - The map search free cell will now use the size of the map # of tries before giving up when the spawn area is the whole map. Added a check to inmediately give up when the number of spawn retries has reached the max specified (no_spawn_onplayer = 100). - Cleaned up a bit the clone code to account for the unit flags UF_NOPC/UF_NOMOB when the skill is not ground-based (accounts for self skill that causes a ground-tile to be placed, like Dances). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7315 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-07- Moved souldrain code from skill_counter_additional_effect to mob_dead. It ↵skotlex1-0/+2
should display the skill animation correctly now. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7033 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-27- Added structure status_data which holds status-related information (str, ↵skotlex1-3/+2
agi, etc, speed, amotion, adelay, dmotion, weapon-damage, race, size, etc) and weapon_atk structure with the weapon specific info (atk, atk2, element) to be used by all combat structures (TODO: Homun needs to be updated to use it) - Cleaned up TBL_PC, TBL_MOB, TBL_PC and mob_db structures to use status_data. - Set the NPC-Change Attribute duration on Time1, updated their max to 1 in the db. - Berserk's HP cost interval is now defined as time2. - Split damage received functions into pc_damage/pc_dead and mob_damage/mob_dead - Rewrote the @heal related functions to use the new status_* healing functions. - Added status functions to deal with damage and healing (status_damage, status_heal, status_percent_change) and a bunch of defines for easier handling of them (status_percent_heal, status_percent_damage, status_fix_damage, status_kill, etc) - Splitted mob_once_spawn into two. mob_once_spawn_sub creates the mob instance without spawning it. - Added defines for Elements (ELE_*) - Modified battle_calc_(weapon/magic/misc)_attack to use the status data structure. - Rewrote and cleaned up battle_calc_misc_attack - Merged config options pc_attack_attr_none, mob_attack_attr_none, pet_attack_attr_none into attack_attr_none (type 4) - Removed config options player_defense_type, monster_defense_type, pet_defense_type in favor of weapon_defense_type - Cleaned up pet.c to stop invoking status_calc_pc when unnecessary - Modified skill_calc_heal to take into account the MEDITATION bonus. - Cleaned up code of Adjustment, Madness Cancel and other GS/NJ skills inside skill_check_condition - Added status change SC_MODECHANGE which handles mob state changes (this SC is continous until manually ended, eg: like Weight50) - Modified Slim Pitcher so it will work when casted by non-players. Will now also work with SP-healing items. - Rewrote Freedom of Cast code to use function status_freecast_switch to switch adelay/speed when cast begins/ends. - Modified Magic Power to store amplified MATK/MATK2 in val3/val4 for easier updating when used in conjunction with ground skills. - Fixed Asura Strike being usable from within a combo regardless of combo skill. - Modifed SC_DANCING to store speed-change in val3 (it is shared with skill duration...) - Added StatusChangeFlagTable to store which statuses are changed by each SC - Added SCB_* constants to specify the different stats that each sc changes. SCB_PC is the only one that means a change hardcoded in status_calc_pc, the rest are handled by status_calc_bl - Added some helper functions to simplify with basic status calculations (status_base_atk, status_calc_misc, status_base_pc_maxhp, status_base_pc_maxsp) - Added status_calc_mob which calculates initial status and special base status alterations (HP changes, stat changes due to big/small mobs, etc) - Made all the status_calc functions static. - Added status_calc_bl_sub_pc for PC related calculations that must happen after status-change adjustments. - Added status_calc_bl which does status-change related calculations using as base the base_status of the bl object and the SCB_* flag passed. - Added status_get_status_data and status_get_base_status to retrieve the bl objects current status_data and basic status_data (current never returns null, instead it returns a dummy structure with basic data) - The main switch in status_change_start now only sets the tick and val values, therefore it is skipped when loading (flag&4) - Cleaned up status_change_start and replaced many of the ex-japanese comments for english ones. - Changed Hiding to store the speed penalty on val3. val4 stores interval SP cost. - Changed Chase Walk to store Speed adjustment on val3, sp cost in val4 - Changed Cloaking to store speed penalty on val3, val4&2 signals wall-present, val4&1 is infinite cloaking. - Changed Wind walk to store speed bonus on val3 - Rewrote Marionette Control to store the status to add/substract in val3/val4, it now works on anyone (players/mobs) - Changed Improve concentration to store Card bonuses (which are not counted for total % increase) on val3/val4 - Changed SC_ADRENALINE, SC_CONCENTRATION, SC_ANGELUS, SC_IMPOSITIO, SC_MELTDOWN, SC_TRUESIGHT, SC_SUN_COMFORT, SC_MOON_COMFORT, SC_STAR_COMFORT, SC_QUAGMIRE, SC_GATLINGFEVER to store the bonus modifiers in their val values rather than calculate them in status_calc_* - Status_change_start/end will use clif_status_load rather than clif_status_change when related bl is not on a map. - Modified status_change_timer to use the status_charge function rather than directly substracting SP - Added SC_ELEMENTALCHANGE to modify someone's base defense element. - pc_clean_skilltree will now also remove item-granted skills. - Learning skills will now only invoke status_calc_pc when the skill is passive. - Cleaned up pc_steal_coin - Cleaned up pc_check_base/job_lvup to only invoke the lv-up related packets and functions ONCE regardless of skill-levls earned. - Cleaned up pc_ regen related functions. - Made player-sprite mobs have item pickup animation and walkdelay when taking items. - Cleaned up mob_dead code. - Removed paramb, parame from struct map_session_data, replaced them by param_bonus[6],param_equip[6] - mob special ai state 3 signals summon flora. - Moved petDB pet_hungry_timer vars from TBL_PC to TBL_PET - Cleaned up some pet functions, made the menu functions receive as argument both pet and master. - Clones will copy a player's base status rather than battle status (so status-change alterations are not cloned) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@6791 54d463be-8e91-2dee-dedb-b68131a5f0ec