From 2b4f29931162cd748c07588fcae9220b02f672ed Mon Sep 17 00:00:00 2001 From: Inkfish Date: Fri, 5 Jun 2009 00:22:12 +0000 Subject: * 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 --- src/map/unit.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'src/map/unit.c') 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); -- cgit v1.2.3-70-g09d2