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