diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/map/status.c | 4 | ||||
-rw-r--r-- | src/map/unit.c | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/map/status.c b/src/map/status.c index 9b9a8c081..87457f2dd 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -6023,7 +6023,7 @@ int status_change_timer(int tid, unsigned int tick, int id, int data) { //Check range and timeleft to preserve status [Skotlex] //This implementation won't work for mobs because of map_id2sd, but it's a small cost in exchange of the speed of map_id2sd over map_id2sd struct map_session_data *md = map_id2sd(sc->data[type].val1); - if (md && battle_check_range(bl, &md->bl, sc->data[type].val3) && (sc->data[type].val4-=1000)>0) + if (md && check_distance_bl(bl, &md->bl, sc->data[type].val3) && (sc->data[type].val4-=1000)>0) { sc->data[type].timer = add_timer(1000+tick, status_change_timer, bl->id, data); return 0; @@ -6073,7 +6073,7 @@ int status_change_timer(int tid, unsigned int tick, int id, int data) case SC_MARIONETTE2: { struct block_list *pbl = map_id2bl(sc->data[type].val1); - if (pbl && battle_check_range(bl, pbl, 7) && (sc->data[type].val2--)>0) + if (pbl && check_distance_bl(bl, pbl, 7) && (sc->data[type].val2--)>0) { sc->data[type].timer = add_timer( 1000 + tick, status_change_timer, diff --git a/src/map/unit.c b/src/map/unit.c index 966b07192..e1b42c101 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -1482,6 +1482,10 @@ int unit_remove_map(struct block_list *bl, int clrtype) { skill_stop_dancing(bl);
if (sc->data[SC_DEVOTION].timer!=-1)
status_change_end(bl,SC_DEVOTION,-1);
+ if (sc->data[SC_MARIONETTE].timer!=-1)
+ status_change_end(bl,SC_MARIONETTE,-1);
+ if (sc->data[SC_MARIONETTE2].timer!=-1)
+ status_change_end(bl,SC_MARIONETTE2,-1);
if (sc->data[SC_CLOSECONFINE].timer!=-1)
status_change_end(bl,SC_CLOSECONFINE,-1);
if (sc->data[SC_CLOSECONFINE2].timer!=-1)
|