diff options
Diffstat (limited to 'src/map/unit.c')
-rw-r--r-- | src/map/unit.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/map/unit.c b/src/map/unit.c index 07b728f47..e1e9d9690 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -1276,6 +1276,10 @@ int unit_skilluse_id2(struct block_list *src, int target_id, short skill_num, sh casttime = skill_vfcastfix(src, casttime, skill_num, skill_lv); #endif + if (src->type == BL_NPC) { // NPC-objects do not have cast time + casttime = 0; + } + if(!ud->state.running) //need TK_RUN or WUGDASH handler to be done before that, see bugreport:6026 unit_stop_walking(src,1);// eventhough this is not how official works but this will do the trick. bugreport:6829 // in official this is triggered even if no cast time. @@ -1439,6 +1443,9 @@ int unit_skilluse_pos2( struct block_list *src, short skill_x, short skill_y, sh casttime = skill_vfcastfix(src, casttime, skill_num, skill_lv ); #endif + if (src->type == BL_NPC) { // NPC-objects do not have cast time + casttime = 0; + } ud->state.skillcastcancel = castcancel&&casttime>0?1:0; if( !sd || sd->skillitem != skill_num || skill_get_cast(skill_num,skill_lv) ) |