实战用法
在科研系统相关 mod 中,常用于限制某些决策或事件选项,只有当负责特定领域的科学家达到足够等级时才能触发。例如在核武器研发链中,要求核物理专业科学家达到一定水平才允许推进下一阶段:
available = {
my_nuclear_scientist = {
has_scientist_level = {
level > 2
specialization = specialization_nuclear
}
}
}
配合关系
[is_active_scientist](/wiki/trigger/is_active_scientist):先确认该角色当前处于活跃科学家状态,再检查其等级,避免对未启用的科学家进行无效判断。
[is_scientist_injured](/wiki/trigger/is_scientist_injured):与等级检查配合,当科学家受伤时跳过高难度研发任务的触发条件,逻辑更严谨。
[add_scientist_level](/wiki/effect/add_scientist_level):当科学家等级不足时,可通过事件奖励提升等级,与本 trigger 构成"检查—升级"的完整闭环。
[add_scientist_xp](/wiki/effect/add_scientist_xp):若等级条件未满足,可先积累经验值推动升级,作为前置激励手段与本 trigger 联动。
常见坑
- 忘记指定正确的 scope:
has_scientist_level 必须在 CHARACTER scope 下使用,直接写在国家 scope 的条件块里会导致脚本报错或静默失败,需要先通过角色引用(如 my_character = { ... })进入对应角色的 scope。
- specialization token 拼写错误:专业化字段必须使用游戏内定义的精确 token(如
specialization_nuclear),大小写或拼写有误时不会有明显报错提示,条件会始终返回假,导致功能失效难以排查。