summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/skill.c')
-rw-r--r--src/map/skill.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index 2b3301547..3c505eb81 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -3233,7 +3233,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
return skill_castend_damage_id (src, bl, skillid, skilllv, tick, flag);
default:
//Skill is actually ground placed.
- if (src == bl && skill_get_unit_id(skillid,0))
+ if ((src == bl || skillid == PF_SPIDERWEB) && skill_get_unit_id(skillid,0))
return skill_castend_pos2(src,bl->x,bl->y,skillid,skilllv,tick,0);
}
@@ -5768,8 +5768,9 @@ int skill_castend_id (int tid, unsigned int tick, int id, int data)
if (sc->data[SC_BLADESTOP].timer != -1)
status_change_end(src,SC_BLADESTOP,-1);
}
- if (target && target->m == src->m)
- { //Move character to target anyway.
+ if (target && target->m == src->m &&
+ (tid == -1 || status_check_skilluse(src, target, ud->skillid, 1))
+ ) { //Move character to target anyway.
int dx,dy;
dx = target->x - src->x;
dy = target->y - src->y;