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 cdba67d5f..f5283b9d8 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -7173,9 +7173,9 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns
case UNT_SPIDERWEB:
case UNT_ANKLESNARE:
- if(sg->val2==0 && tsc && tsc->data[type].timer==-1){
+ if(sg->val2==0 && tsc){
int sec = skill_get_time2(sg->skill_id,sg->skill_lv);
- if (sc_start(bl,type,100,sg->skill_lv,sec))
+ if (sc_start2(bl,type,100,sg->skill_lv,sg->group_id,sec))
{
struct TimerData* td = get_timer(tsc->data[type].timer);
if (td) sec = DIFF_TICK(td->tick, tick);
@@ -7447,7 +7447,8 @@ int skill_unit_onout (struct skill_unit *src, struct block_list *bl, unsigned in
struct block_list *target = map_id2bl(sg->val2);
if (target && target==bl)
{
- status_change_end(bl,SC_SPIDERWEB,-1);
+ if (sc && sc->data[type].timer!=-1 && sc->data[type].val2 == sg->group_id)
+ status_change_end(bl,type,-1);
sg->limit = DIFF_TICK(tick,sg->tick)+1000;
}
break;