diff options
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 7 |
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; |