trigger · has_start_date
Definition
- Supported scope:
any - Supported target:
none
Description
Compare the initial start date of current game.
has_start_dateanynoneCompare 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 对不同开局做差异化处理,避免为每个开局单独写重复逻辑。has_start_date 与 date:新手容易误用 date 来判断"是否是 1936 开局",但 date 检查的是当前游戏内时间,存档进行中日期会不断推进,而 has_start_date 始终反映游戏创建时的起始日期,两者语义完全不同。<、>、= 等比较写法,新手有时将大小关系写反(例如想筛选"1936 开局"却误写成 > 1936.1.1),导致条件永远不满足或误匹配,需仔细确认逻辑方向。