* Fix #2694 Move down skill_unit_move(bl,gettick(),4) of unit_remove_map_ to avoid conflict with duel changing realm. The issue was that skill_unit_onleft was called before the duel_leave handling which was reapplying skill_unit_onplace causing an infinite status duration. Other skill might had same issue. * Small optimisation. Avoid calling status_change_end when we have no status set yet (or no status_change holder). Move down overrecurent call to status_change_end SC_ROLLINGCUTTER.
This commit is contained in:
@@ -413,17 +413,21 @@ int map_moveblock(struct block_list *bl, int x1, int y1, unsigned int tick)
|
||||
sc = status_get_sc(bl);
|
||||
|
||||
skill_unit_move(bl,tick,2);
|
||||
status_change_end(bl, SC_CLOSECONFINE, INVALID_TIMER);
|
||||
status_change_end(bl, SC_CLOSECONFINE2, INVALID_TIMER);
|
||||
status_change_end(bl, SC_TINDER_BREAKER, INVALID_TIMER);
|
||||
status_change_end(bl, SC_TINDER_BREAKER2, INVALID_TIMER);
|
||||
// status_change_end(bl, SC_BLADESTOP, INVALID_TIMER); //Won't stop when you are knocked away, go figure...
|
||||
status_change_end(bl, SC_TATAMIGAESHI, INVALID_TIMER);
|
||||
status_change_end(bl, SC_MAGICROD, INVALID_TIMER);
|
||||
status_change_end(bl, SC_SU_STOOP, INVALID_TIMER);
|
||||
if (sc->data[SC_PROPERTYWALK] &&
|
||||
sc->data[SC_PROPERTYWALK]->val3 >= skill_get_maxcount(sc->data[SC_PROPERTYWALK]->val1,sc->data[SC_PROPERTYWALK]->val2) )
|
||||
status_change_end(bl,SC_PROPERTYWALK,INVALID_TIMER);
|
||||
if ( sc && sc->count ) //at least one to cancel
|
||||
{
|
||||
status_change_end(bl, SC_ROLLINGCUTTER, INVALID_TIMER); // If you move, you lose your counters. [malufett]
|
||||
status_change_end(bl, SC_CLOSECONFINE, INVALID_TIMER);
|
||||
status_change_end(bl, SC_CLOSECONFINE2, INVALID_TIMER);
|
||||
status_change_end(bl, SC_TINDER_BREAKER, INVALID_TIMER);
|
||||
status_change_end(bl, SC_TINDER_BREAKER2, INVALID_TIMER);
|
||||
// status_change_end(bl, SC_BLADESTOP, INVALID_TIMER); //Won't stop when you are knocked away, go figure...
|
||||
status_change_end(bl, SC_TATAMIGAESHI, INVALID_TIMER);
|
||||
status_change_end(bl, SC_MAGICROD, INVALID_TIMER);
|
||||
status_change_end(bl, SC_SU_STOOP, INVALID_TIMER);
|
||||
if (sc->data[SC_PROPERTYWALK] &&
|
||||
sc->data[SC_PROPERTYWALK]->val3 >= skill_get_maxcount(sc->data[SC_PROPERTYWALK]->val1,sc->data[SC_PROPERTYWALK]->val2) )
|
||||
status_change_end(bl,SC_PROPERTYWALK,INVALID_TIMER);
|
||||
}
|
||||
} else
|
||||
if (bl->type == BL_NPC)
|
||||
npc_unsetcells((TBL_NPC*)bl);
|
||||
|
||||
Reference in New Issue
Block a user