From c75ffa15d5a438431a5e1cb82d86d3abba25c13e Mon Sep 17 00:00:00 2001 From: aleos89 Date: Fri, 1 Apr 2016 07:58:11 -0400 Subject: [PATCH] Updated Offertorium curing status list (fixes #1111) * Removes Magnificat, Blind, Curse, Poison, Hallucination, Confusion, Bleeding, Burning, Freezing, Mandragora Howling, Paralysis, Pyrexia, Death Hurt, Leech End, Venom Bleed, Toxin, and Magic Mushroom. * Doesn't prevent the above statuses from being used again. * Moved status removal to status_change_start overlap check. --- src/map/skill.c | 13 +------------ src/map/status.c | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/map/skill.c b/src/map/skill.c index 03aa711b89..29b79156a9 100755 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -6434,6 +6434,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui case AB_EXPIATIO: case AB_DUPLELIGHT: case AB_SECRAMENT: + case AB_OFFERTORIUM: case NC_ACCELERATION: case NC_HOVERING: case NC_SHAPESHIFT: @@ -9244,18 +9245,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui } break; - case AB_OFFERTORIUM:{ - struct status_change *sc = status_get_sc(src); - clif_skill_nodamage(src,bl,skill_id,skill_lv,sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); - if( sc ) { - int sc_toend[] = {SC_CURSE, SC_POISON, SC_HALLUCINATION, SC_CONFUSION, SC_BLEEDING, SC_BURNING, SC_FREEZING, SC_MANDRAGORA}; - for( i = 0; i < ARRAYLENGTH(sc_toend); i++) { - status_change_end(bl, (sc_type)sc_toend[i], INVALID_TIMER); - } - } - } - break; - case WL_WHITEIMPRISON: if( (src == bl || battle_check_target(src, bl, BCT_ENEMY)>0) && !is_boss(bl) )// Should not work with bosses. { diff --git a/src/map/status.c b/src/map/status.c index 2315047e94..4867515abc 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -8389,7 +8389,23 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty status_change_end(bl,SC_OFFERTORIUM,INVALID_TIMER); break; case SC_OFFERTORIUM: - status_change_end(bl,SC_MAGNIFICAT,INVALID_TIMER); + status_change_end(bl, SC_MAGNIFICAT, INVALID_TIMER); + status_change_end(bl, SC_BLIND, INVALID_TIMER); + status_change_end(bl, SC_CURSE, INVALID_TIMER); + status_change_end(bl, SC_POISON, INVALID_TIMER); + status_change_end(bl, SC_HALLUCINATION, INVALID_TIMER); + status_change_end(bl, SC_CONFUSION, INVALID_TIMER); + status_change_end(bl, SC_BLEEDING, INVALID_TIMER); + status_change_end(bl, SC_BURNING, INVALID_TIMER); + status_change_end(bl, SC_FREEZING, INVALID_TIMER); + status_change_end(bl, SC_MANDRAGORA, INVALID_TIMER); + status_change_end(bl, SC_PARALYSE, INVALID_TIMER); + status_change_end(bl, SC_PYREXIA, INVALID_TIMER); + status_change_end(bl, SC_DEATHHURT, INVALID_TIMER); + status_change_end(bl, SC_LEECHESEND, INVALID_TIMER); + status_change_end(bl, SC_VENOMBLEED, INVALID_TIMER); + status_change_end(bl, SC_TOXIN, INVALID_TIMER); + status_change_end(bl, SC_MAGICMUSHROOM, INVALID_TIMER); break; case SC_KYRIE: // Cancels Assumptio