实战用法
has_mines 常用于涉及海上封锁、港口防御或战略资源争夺的 mod 场景,例如在某个决策或任务中检测指定海域是否已布设足够数量的水雷,以决定是否解锁后续选项或给予奖励。典型场景是在海军战略 mod 里,要求玩家在特定海峡布雷达到阈值后才能触发封锁事件链。
# 在决策的 available 块中,检查波罗的海区域是否布雷足够
available = {
has_mines = {
region = 12 # 对应目标海区 region_id
amount = 50
}
}
配合关系
[add_mines](/wiki/effect/add_mines):最直接的搭档——先用 add_mines 向某海区布雷,再用 has_mines 检查是否达到触发阈值,形成"布雷→验证→奖励"的完整逻辑闭环。
[controls_state](/wiki/trigger/controls_state):常同时检测玩家是否控制该海区附近的关键沿岸州,确保只有真正掌控制海权的国家才能触发相关条件。
[has_navy_size](/wiki/trigger/has_navy_size)(注:此处仅举配合思路,以白名单为准)——实际可替换为 [any_controlled_state](/wiki/trigger/any_controlled_state):配合地域控制类 trigger,将布雷量检查与领土控制条件叠加,避免敌方也能意外触发己方专属决策。
[building_count_trigger](/wiki/trigger/building_count_trigger):在要求同时建有港口或海军基地的场景下,与 has_mines 共同构成"基础设施 + 水雷部署"的双重前提条件,提升 mod 的军事逻辑真实感。
常见坑
region 填成 state_id 而非 region_id:has_mines 要求的是海区(strategic region)的数字 ID,而非陆地州 ID;两者数值范围有重叠,填错后脚本不会报错但条件永远无法正确求值,需在 map/strategicregions/ 文件夹中核对对应的 .txt 文件 ID。
- 在陆地战略区上使用:水雷机制仅作用于海洋/沿海战略区,若将
region 指向一个纯陆地区域,amount 始终为 0,条件恒假,导致依赖该 trigger 的决策或任务永远无法满足 available,新手往往误以为是脚本语法错误而反复排查。