命令百科

effect · add_scientist_level

Definition

  • Supported scope:CHARACTER
  • Supported target:none

Description

Add levels to a special project specialization for a scientist character in scope.
The `level` parameter is a scoped variable

#### Example

my_character = { add_scientist_level = { level = 2 # accepts variables specialization = specialization_nuclear } }

实战 · 配合 · 坑

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

实战用法

在涉及科学家成长系统的 mod 中,add_scientist_level 常用于任务完成奖励、科研事件结果或国策完成后提升特定科学家的专业化等级,从而推动特殊项目进度加速。例如,当某个核武器研发任务链完成后,为负责人加级:

# 在某个 focus 或 event 的 option 中
my_nuclear_scientist = {
    add_scientist_level = {
        level = 1
        specialization = specialization_nuclear
    }
}

配合关系

  • [has_scientist_level](/wiki/trigger/has_scientist_level):在加级前先判断科学家当前等级,避免超出设计上限或执行冗余逻辑。
  • [add_scientist_xp](/wiki/effect/add_scientist_xp):与加级配合,可在提升等级的同时补充经验值,使成长曲线更自然流畅。
  • [add_scientist_trait](/wiki/effect/add_scientist_trait):等级提升后同步附加对应专业特性,强化科学家角色的专业身份定位。
  • [is_active_scientist](/wiki/trigger/is_active_scientist):确认角色当前处于活跃科学家状态再执行加级,防止对未激活角色误操作。

常见坑

  1. scope 未切换到 CHARACTER:直接在 COUNTRY scope 下写 add_scientist_level 会报错,必须先通过角色标签(如 my_character = { ... })将 scope 切换到对应的 CHARACTER,否则命令无效甚至导致脚本崩溃。
  2. specialization 字段填写了不存在的键值:游戏只识别已在特殊项目系统中注册的专业化类型,若填写了自定义 mod 未正确声明的 specialization,等级不会实际提升且通常不会有明显报错提示,极难排查。