命令百科

effect · clear_variable

Definition

  • Supported scope:any
  • Supported target:none

Description

Clears a variable
Example: clear_variable = num_dogs

实战 · 配合 · 坑

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

实战用法

clear_variable 常用于 mod 中变量的生命周期管理,例如在某个事件流程结束后清除不再需要的计数器或临时状态标记,避免变量残留导致后续逻辑误判。也可以在循环或递归效果结束时,将用于迭代的变量重置干净,保持脚本状态整洁。

# 当外交谈判事件链结束时,清除用于追踪回合数的变量
country_event = {
    id = diplomacy.10
    option = {
        name = diplomacy.10.a
        # 处理结算逻辑...
        clear_variable = negotiation_rounds
    }
}

配合关系

  • [set_variable](/wiki/effect/set_variable)set_variable 负责初始化或赋值变量,而 clear_variable 是其对应的"销毁"操作,两者构成变量完整的创建-销毁生命周期。
  • [has_variable](/wiki/trigger/has_variable):在调用 clear_variable 之前,建议先用 has_variable 触发器确认变量存在,避免对不存在的变量执行清除时产生意外行为。
  • [if](/wiki/effect/if):通常将 clear_variable 包裹在 if 条件块中,配合 has_variable 做保护性判断,是防御式脚本编写的标准模式。
  • [clear_array](/wiki/effect/clear_array):如果同一套逻辑中同时使用了变量和数组来追踪状态,clear_variableclear_array 往往成对出现,一并清理所有临时数据。

常见坑

  1. 清除后立即读取:新手有时在同一个 option 块中先 clear_variable,随后又在下方的触发器或效果中引用该变量(如 check_variable),此时变量已不存在会导致条件永远不满足或脚本报错,应确认清除时机在所有读取操作完成之后。
  2. 误将 scope 写入语法clear_variable 的值直接是变量名字符串(如 clear_variable = num_dogs),不需要也不支持写成 var:num_dogs 或带 scope 前缀的形式,照搬 set_variable 的赋值语法会导致解析失败。