命令百科

effect · modify_character_flag

Definition

  • Supported scope:CHARACTER
  • Supported target:none

Description

modify character flag. Only modifies if flag already exists.
Example: _modify_character_flag_ = { flag = <name> value = <number> }

实战 · 配合 · 坑

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

实战用法

modify_character_flag 常用于需要对角色进行计数或累积追踪的场景,例如记录某角色执行某项任务的次数、累积受伤次数或积累特定行为点数,配合后续 trigger 判断达到阈值时触发特殊事件或解锁特质。注意该指令只能修改已存在的 flag,因此通常需要先在角色初始化阶段用 set_character_flag 创建带初始值的 flag,之后再用本指令对其进行数值增减。

# 每次角色参与某事件,计数 flag +1
character_event = {
    id = my_mod.10
    hidden = yes
    immediate = {
        # 假设 "battle_count" flag 已在角色创建时初始化
        modify_character_flag = {
            flag = battle_count
            value = 1
        }
    }
}

配合关系

  • [set_character_flag](/wiki/effect/set_character_flag):在使用 modify_character_flag 之前必须先用此命令创建并设定 flag 的初始值,否则本指令不会生效。
  • [has_character_flag](/wiki/trigger/has_character_flag):用于检查 flag 是否存在及其当前数值是否达到阈值,是触发后续逻辑(如解锁特质、触发事件)的必要判断条件。
  • [clr_character_flag](/wiki/effect/clr_character_flag):当计数达到目标值完成某阶段逻辑后,用于重置或清除该 flag,避免数值无限累积产生意外行为。
  • [add_trait](/wiki/effect/add_trait):常作为计数达标后的奖励结果,与 has_character_flag 的阈值判断配合,在满足条件时为角色添加对应特质。

常见坑

  1. flag 不存在时静默失效:新手最常见的错误是直接使用 modify_character_flag 而忘记预先用 set_character_flag 初始化该 flag,由于游戏不会报错只会静默跳过,导致计数逻辑完全不生效且极难排查。
  2. scope 指向错误:该指令必须在 CHARACTER scope 下执行,若在 COUNTRY 或其他 scope 中调用而未通过 character = { ... } 等方式正确切换作用域,同样会静默失败。