命令百科

effect · multiply_temp_variable

Definition

  • Supported scope:any
  • Supported target:none

Description

Multiplies a temp variable by a value, another variable, or a [math expression](script_math_expression.md).

### Examples

multiply_temp_variable = { num_dogs = 2 } multiply_temp_variable = { num_dogs = { value = num_cats add = 1 } }

实战 · 配合 · 坑

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

实战用法

multiply_temp_variable 常用于动态伤害/奖励计算场景,例如根据某个基础值乘以倍率得到最终结果,再赋予到国家或状态上。典型场景包括:按科技等级缩放生产加成、按人口比例计算征兵数量等。

# 计算最终援助物资数量 = 基础量 × 战争支持度系数
set_temp_variable = { var = aid_amount value = 500 }
set_temp_variable = { var = war_support_ratio value = ROOT.war_support }
divide_temp_variable = { var = war_support_ratio value = 100 }
multiply_temp_variable = { var = aid_amount value = war_support_ratio }
add_to_variable = { var = stored_aid value = aid_amount }

配合关系

  • [set_temp_variable](/wiki/effect/set_temp_variable):在做乘法之前必须先用它初始化临时变量,否则变量无初始值,乘法结果不可预期。
  • [add_to_temp_variable](/wiki/effect/add_to_temp_variable) / [subtract_from_temp_variable](/wiki/effect/subtract_from_temp_variable):乘法通常是多步算式的中间环节,前后往往需要加减操作来完成完整公式。
  • [check_variable](/wiki/trigger/check_variable):乘法计算完成后,常用此触发器检验结果是否落在合理区间,再决定后续分支逻辑。
  • [clamp_temp_variable](/wiki/effect/clamp_temp_variable):对乘法结果进行上下限截断,防止数值溢出或产生游戏性失衡。

常见坑

  1. 忘记临时变量的生命周期temp variable 仅在当前效果块执行期间存在,跨 event option 或跨 on_action 后就会消失,不要期望它在下一个触发点还保有乘法结果,需持久化时应改用 [set_variable](/wiki/effect/set_variable) 存到普通变量。
  2. 直接对未初始化变量做乘法:如果目标变量此前从未被 set_temp_variable 赋值,其初始值为 0,任何数乘以 0 仍为 0,导致结果始终归零且极难排查——务必在乘法前确认变量已被赋予有效初始值。