diff options
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index 3a1dbf6..af56cab 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -7705,6 +7705,13 @@ int skill_status_change_end(struct block_list* bl, int type, int tid) opt_flag = 1; break; + case SC_SLOWPOISON: + if (sc_data[SC_POISON].timer != -1) + *opt2 |= 0x1; + *opt2 &= ~0x200; + opt_flag = 1; + break; + case SC_SIGNUMCRUCIS: *opt2 &= ~0x40; opt_flag = 1; @@ -8913,12 +8920,23 @@ int skill_status_effect(struct block_list *bl, int type, int val1, int val2, int opt_flag = 1; break; case SC_POISON: + if (sc_data[SC_SLOWPOISON].timer == -1) { + *opt2 |= 0x1; + opt_flag = 1; + } + break; + case SC_CURSE: case SC_SILENCE: case SC_BLIND: *opt2 |= 1<<(type-SC_POISON); opt_flag = 1; break; + case SC_SLOWPOISON: + *opt2 &= ~0x1; + *opt2 |= 0x200; + opt_flag = 1; + break; case SC_SIGNUMCRUCIS: *opt2 |= 0x40; opt_flag = 1; |