实战用法
randomize_temp_variable 常用于需要引入随机性的事件结果中,例如随机化战斗损失数量、随机生成资源奖励点数或决定随机事件分支权重。相比直接写死数值,它能让 mod 的结果更具不可预测性,提升游玩体验。
# 在事件选项中随机生成一个奖励政治点数(0~5 之间的均匀分布)
option = {
name = my_event.option_a
randomize_temp_variable = {
var = temp_pp_gain
distribution = uniform
min = 0
max = 5
}
round_temp_variable = temp_pp_gain
add_political_power = temp_pp_gain
}
配合关系
[round_temp_variable](/wiki/effect/round_temp_variable):uniform 分布产出的是浮点数,通常需要先取整再传给整数型 effect(如 add_political_power),否则可能产生意外行为。
[clamp_temp_variable](/wiki/effect/clamp_temp_variable):生成随机值后,用 clamp 将其限定在业务逻辑允许的安全范围内,防止极端值破坏平衡。
[add_to_temp_variable](/wiki/effect/add_to_temp_variable):在随机基础值之上叠加固定偏移量,实现"随机值 + 基础保底"的常见设计模式。
[check_variable](/wiki/trigger/check_variable):随机化后通常需要根据结果分支执行不同逻辑,配合 check_variable 在 if 块中判断随机结果区间。
常见坑
- 忘记对结果取整:
uniform 分布默认产出浮点数,若直接将 temp_variable 传给只接受整数的 effect(如 add_manpower),脚本不会报错但会静默截断或产生非预期值,务必先调用 round_temp_variable。
- binomial 漏写 max / poisson 漏写 lambda:
binomial 在指定 min 时 max 为必填,poisson 的 lambda 始终必填;遗漏这些字段不会有明显错误提示,但分布参数会回退到默认行为,导致随机结果完全不符合预期。