summaryrefslogtreecommitdiff
path: root/src/map/unit.c
diff options
context:
space:
mode:
authorInkfish <Inkfish@54d463be-8e91-2dee-dedb-b68131a5f0ec>2009-06-05 00:22:12 +0000
committerInkfish <Inkfish@54d463be-8e91-2dee-dedb-b68131a5f0ec>2009-06-05 00:22:12 +0000
commit2b4f29931162cd748c07588fcae9220b02f672ed (patch)
tree1aac3b94d3e39aa9e52f5887e179b354699c0926 /src/map/unit.c
parent2f526028369f0fb0148ced3d9d6d6b970307421d (diff)
downloadhercules-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.c12
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);