命令百科

trigger · has_start_date

Definition

  • Supported scope:any
  • Supported target:none

Description

Compare the initial start date of current game.

实战 · 配合 · 坑

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

实战用法

has_start_date 常用于需要根据游戏开局日期区分剧情分支的 mod,例如在多开局支持的 mod 中针对 1936 年开局和 1939 年开局给予不同的初始效果或事件触发条件。它也常见于 focus/event 的 available 块,确保某些国策或事件只在特定历史起点下才能激活。

# 只在 1936 年开局时触发某事件
news_event = {
    id = my_mod.1
    trigger = {
        has_start_date < 1937.1.1
    }
}

配合关系

  • [date](/wiki/trigger/date)date 检查当前游戏内日期,而 has_start_date 检查游戏起始日期,两者常组合使用,以同时限定"从哪个存档开始"和"现在是否到了某个时间节点"。
  • [has_game_rule](/wiki/trigger/has_game_rule):多开局 mod 中,开局日期往往与特定游戏规则绑定,两者配合可以精确筛选"特定规则下的特定开局"。
  • [or](/wiki/trigger/or):当 mod 需要兼容多个合法开局(如同时支持 1936 与 1939)时,用 or 包裹多个 has_start_date 条件来避免逻辑过严。
  • [if](/wiki/effect/if):在 effect 块中,常用 if + has_start_date 对不同开局做差异化处理,避免为每个开局单独写重复逻辑。

常见坑

  1. 混淆 has_start_datedate:新手容易误用 date 来判断"是否是 1936 开局",但 date 检查的是当前游戏内时间,存档进行中日期会不断推进,而 has_start_date 始终反映游戏创建时的起始日期,两者语义完全不同。
  2. 比较运算符方向写反:该 trigger 支持 <>= 等比较写法,新手有时将大小关系写反(例如想筛选"1936 开局"却误写成 > 1936.1.1),导致条件永远不满足或误匹配,需仔细确认逻辑方向。