diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/map/status.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/map/status.c b/src/map/status.c index bce2fd246..4b8a9f9f2 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -2648,8 +2648,10 @@ void status_calc_bl(struct block_list *bl, unsigned long flag) { status->mode = status_calc_mode(bl, sc, b_status->mode); //Since mode changed, reset their state. - unit_stop_attack(bl); - unit_stop_walking(bl,0); + if (!(status->mode&MD_CANATTACK)) + unit_stop_attack(bl); + if (!(status->mode&MD_CANMOVE)) + unit_stop_walking(bl,0); } // No status changes alter these yet. |