summaryrefslogtreecommitdiff
path: root/src/map/unit.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/unit.c')
-rw-r--r--src/map/unit.c27
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);