diff options
Diffstat (limited to 'src/map/unit.c')
-rw-r--r-- | src/map/unit.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/map/unit.c b/src/map/unit.c index 5cfd25093..606d64801 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -1621,7 +1621,7 @@ int unit_free(struct block_list *bl) { status_change_end(bl,SC_BERSERK,-1); if(sd->sc.data[SC_TRICKDEAD].timer!=-1) status_change_end(bl,SC_TRICKDEAD,-1); - if (battle_config.debuff_on_logout) { + if (battle_config.debuff_on_logout&1) { if(sd->sc.data[SC_ORCISH].timer!=-1) status_change_end(bl,SC_ORCISH,-1); if(sd->sc.data[SC_STRIPWEAPON].timer!=-1) @@ -1637,6 +1637,31 @@ int unit_free(struct block_list *bl) { if(sd->sc.data[SC_EXPLOSIONSPIRITS].timer!=-1) status_change_end(bl,SC_EXPLOSIONSPIRITS,-1); } + if (battle_config.debuff_on_logout&2) + { //Food items are removed on logout. + if(sd->sc.data[SC_STRFOOD].timer!=-1) + status_change_end(bl,SC_STRFOOD,-1); + if(sd->sc.data[SC_AGIFOOD].timer!=-1) + status_change_end(bl,SC_AGIFOOD,-1); + if(sd->sc.data[SC_VITFOOD].timer!=-1) + status_change_end(bl,SC_VITFOOD,-1); + if(sd->sc.data[SC_INTFOOD].timer!=-1) + status_change_end(bl,SC_INTFOOD,-1); + if(sd->sc.data[SC_DEXFOOD].timer!=-1) + status_change_end(bl,SC_DEXFOOD,-1); + if(sd->sc.data[SC_LUKFOOD].timer!=-1) + status_change_end(bl,SC_LUKFOOD,-1); + if(sd->sc.data[SC_HITFOOD].timer!=-1) + status_change_end(bl,SC_HITFOOD,-1); + if(sd->sc.data[SC_FLEEFOOD].timer!=-1) + status_change_end(bl,SC_FLEEFOOD,-1); + if(sd->sc.data[SC_BATKFOOD].timer!=-1) + status_change_end(bl,SC_BATKFOOD,-1); + if(sd->sc.data[SC_WATKFOOD].timer!=-1) + status_change_end(bl,SC_WATKFOOD,-1); + if(sd->sc.data[SC_MATKFOOD].timer!=-1) + status_change_end(bl,SC_MATKFOOD,-1); + } } if (sd->followtimer != -1) pc_stop_following(sd); |