命令百科

trigger · distance_to

Definition

  • Supported scope:STATE
  • Supported target:THIS, ROOT, PREV, FROM, OWNER, CONTROLLER, OCCUPIED, CAPITAL

Description

check distance between two states

实战 · 配合 · 坑

实战内容由 AI 生成,并已对照 vanilla 命令词表校验 —— 请当作起点而非权威依据。上方的定义节才是游戏自带文档原文。

实战用法

distance_to 常用于判断两个地块是否在"战略辐射范围"内,例如限制某个决议只对邻近首都或核心地区才可用,或在抵抗运动脚本中让远离占领中心的地块获得额外加成。典型场景是:当某地块距离特定目标超过一定距离时,禁止建造或触发事件。

# 在某决议的 available 块中,要求当前地块距离 ROOT 国家的首都不超过指定距离
available = {
    distance_to = {
        target = CAPITAL
        max_distance < 500
    }
}

配合关系

  • [is_controlled_by](/wiki/trigger/is_controlled_by):常与 distance_to 搭配,先确认地块被特定国家控制,再判断距离,避免对遥远飞地误触发逻辑。
  • [any_neighbor_state](/wiki/trigger/any_neighbor_state):当需要对"距离目标较近的所有邻接地块"批量检测时,在 any_neighbor_state 的 limit 里嵌套 distance_to 可以进一步筛选范围。
  • [has_state_flag](/wiki/trigger/has_state_flag):用于给已通过距离检测的地块打上标记,配合 distance_to 形成"标记-再判断"的二段式条件链,防止重复触发。
  • [resistance](/wiki/trigger/resistance):在抵抗运动机制中,可用 distance_to 判断地块是否远离控制中心,再结合 resistance 数值决定是否施加额外惩罚或奖励。

常见坑

  1. target 填写了不在白名单内的 scope:新手常把具体国家 TAG(如 GER)直接写进 target,但该 trigger 只接受 THISROOTPREVFROMOWNERCONTROLLEROCCUPIEDCAPITAL 这几个固定 scope 关键字,填错会导致条件静默失效或报错。
  2. 在非 STATE scope 下使用distance_to 仅在 STATE scope 下有效,若写在 COUNTRY 或 CHARACTER 的条件块中不会报语法错误但永远不会返回真,排查时极易忽略。