diff --git a/src/map/skill.c b/src/map/skill.c index bf0bdaa1c1..f3170ed9be 100755 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -7347,8 +7347,12 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui case AL_HOLYWATER: if(sd) { - if (skill_produce_mix(sd, skill_id, ITEMID_HOLY_WATER, 0, 0, 0, 1, -1)) - clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + if (skill_produce_mix(sd, skill_id, ITEMID_HOLY_WATER, 0, 0, 0, 1, -1)) { + struct skill_unit* su; + if ((su = map_find_skill_unit_oncell(bl, bl->x, bl->y, NJ_SUITON, NULL, 0)) != NULL) + skill_delunit(su); + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); + } else clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); } @@ -15363,6 +15367,12 @@ bool skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_i return false; } break; + case AL_HOLYWATER: + if (map_getcell(sd->bl.m, sd->bl.x, sd->bl.y, CELL_CHKLANDPROTECTOR)) { + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); + return false; // Aqua Benedicta will not cast on LP [secretdataz] + } + break; } /* check state required */