目录

Variables

变量 (v4.6+)


变量是 v4.6 中新增的用于存储信息的系统。使用变量系统,您可以存储和操作稍后可以在占位符或条件中使用的值。这些值可以是永久的或临时的。

变量类型 变量可以是几种类型中的一种,它是在使用setVariable机制初始化变量时定义的。类型通常是可以互换的,MythicMobs 会尽最大努力将某些变量应用于任何被询问的情况,但是如果您尝试将变量类型用于毫无意义的事情,它会抛出错误。 当您使用setVariable将 “type” 设置为 Integer 或 Float 时,将 “value” 设置为其他变量(例如 <caster.var.MM> * 2),设置的变量的值将是一个值:“<caster.var .MM>'s value * 2“,如果将”type“设置为String,则设置变量的值将是一个字符串:”<caster.var.MM> * 2“。

当前类型:

类型描述
INTEGER整数
FLOAT带小数位的数字。
STRING一个词或一句话。

变量范围

变量的“范围”是其中变量存在。并非所有范围都适用于所有情况(例如,条件可能没有施法者,而施法者是条件的目标)。 当使用 Setvariable 在 target 上创建变量时,只需要将var的 vaule设置 为“target.variable-name”(因为var的前缀是scope)这意味着你可以将 caster 的变量值复制到其他生物

变量范围:

类型Where It Goes
SKILL在当前的技能树上。是暂时的,当前的技能队列结束时会消失。
CASTEROn the casting mob.
TARGET在技能/条件的目标上。
WORLD现在的世界。
GLOBAL服务器。

用法

所有变量机制和条件都接受var=scope=属性来确定您要使用的变量和位置。您还可以使用var=scope.variable_name速记范围。 以下示例将返回相同的内容:

  1. setvariable{var=target.somevariable; ...}
  2. setvariable{var=somevariable;scope=target; ...}

Variable Mechanics

变量机制是利用变量的特殊机制。它们可以针对实体、位置或任何内容,但目标可能会影响结果,具体取决于您使用的范围。例如,如果您的目标不是实体,那么尝试获取目标范围的变量显然会失败。

Mechanic Description
VariableSet初始化并设置一个变量。
VariableAdd添加到数字变量。
VariableSubtract从数字变量中减去。
VariableMath允许您使用数值变量进行计算

可变条件

条件描述
Variable Equals检查变量是否等于给定值。
Variable Is Set检查是否设置了变量。
Variable In Range检查数字变量是否在一个范围内。

可变占位符

可以在任何允许占位符的 MythicMobs 机制或值中引用变量。这通常使用格式<scope.var.[variable]> 完成。 使用占位符变量时,您还可以使用语法<scope.var.[variable]|[default]>指定一个“默认”值,如果变量未定义,则将使用该值。

  1. message{m="Hello there, <target.var.title|wanderer>"} @trigger ~onInteract

在这个例子中,如果某个没有设置“title”变量的人右键单击 NPC,它会回复“你好,流浪者”。但是,如果我们这样做:

  1. setVariable{var=target.title;value="Sir"} @trigger ~onInteract

…沿线的某个地方,即使有不同的生物,第一个生物也会说“你好,先生”。