浏览代码

Correct Aqua Benedicta interaction with Watery Evasion to match official behavior. Fixes #1119

Jittapan Pluemsumran 9 年之前
父节点
当前提交
21c636c12b
共有 1 个文件被更改,包括 12 次插入2 次删除
  1. 12 2
      src/map/skill.c

+ 12 - 2
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 */