diff options
author | Inkfish <Inkfish@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2009-06-05 00:22:12 +0000 |
---|---|---|
committer | Inkfish <Inkfish@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2009-06-05 00:22:12 +0000 |
commit | 2b4f29931162cd748c07588fcae9220b02f672ed (patch) | |
tree | 1aac3b94d3e39aa9e52f5887e179b354699c0926 /src/map/unit.c | |
parent | 2f526028369f0fb0148ced3d9d6d6b970307421d (diff) | |
download | hercules-2b4f29931162cd748c07588fcae9220b02f672ed.tar.gz hercules-2b4f29931162cd748c07588fcae9220b02f672ed.tar.bz2 hercules-2b4f29931162cd748c07588fcae9220b02f672ed.tar.xz hercules-2b4f29931162cd748c07588fcae9220b02f672ed.zip |
* Fixed turning off a skill needed to meet the requirements. (bugreport:3175)
* Skills used through items not having aftercast delay or cast time now don't overwrite the former canact_tick. (topic:220921)
* Multiple autoscripts now can trigger at once.
* Applied a temp fix for autoscripts crashing server.(bugreport:3154)
* Implemented SC_JEXPBOOST (thanks to GMJobbie for the diff). (bugreport:3177)
* Implemented SC_IGNOREDEF. (topic:217330)
* SC_DEFRATIOATK won't affect boss monsters. (topic:217330)
* Fixed skip_teleport_lv1_menu made lv2 skip menu as well. (bugreport:3183)
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13844 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/unit.c')
-rw-r--r-- | src/map/unit.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/map/unit.c b/src/map/unit.c index 9e7d813dc..21bf5c750 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -1074,7 +1074,8 @@ int unit_skilluse_id2(struct block_list *src, int target_id, short skill_num, sh if( casttime <= 0 ) ud->state.skillcastcancel = 0; - ud->canact_tick = tick + casttime + 100; + if( sd->skillitem == skill_num && skill_get_cast(skill_num,skill_lv) ) + ud->canact_tick = tick + casttime + 100; if( sd ) { switch( skill_num ) @@ -1179,7 +1180,8 @@ int unit_skilluse_pos2( struct block_list *src, short skill_x, short skill_y, sh casttime = skill_castfix_sc(src, casttime); ud->state.skillcastcancel = castcancel&&casttime>0?1:0; - ud->canact_tick = tick + casttime + 100; + if( sd->skillitem == skill_num && skill_get_cast(skill_num,skill_lv) ) + ud->canact_tick = tick + casttime + 100; // if( sd ) // { // switch( skill_num ) @@ -1603,8 +1605,6 @@ int unit_skillcastcancel(struct block_list *bl,int type) } ud->canact_tick = tick; - if ( battle_config.display_status_timers && sd ) - clif_status_change(bl, SI_ACTIONDELAY, 0, 0); if(type&1 && sd) skill = sd->skillid_old; @@ -1954,9 +1954,7 @@ int unit_free(struct block_list *bl, int clrtype) pc_setrestartvalue(sd,2); pc_delinvincibletimer(sd); - pc_autoscript_clear(sd->autoscript, ARRAYLENGTH(sd->autoscript)); - pc_autoscript_clear(sd->autoscript2, ARRAYLENGTH(sd->autoscript2)); - pc_autoscript_clear(sd->autoscript3, ARRAYLENGTH(sd->autoscript3)); + pc_autoscript_clear(sd); if( sd->followtimer != -1 ) pc_stop_following(sd); |