插件手册:mythicmobs:技能:机制列表:变量

变量 variable

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

变量类型

变量可以是几种类型中的一种,它是在使用setVariable机制初始化变量时定义的。类型通常是可互换的,MythicMobs 会尽最大努力将某些变量应用于任何被询问的情况,但是如果您尝试将变量类型用于毫无意义的事情,它会出错。

当前类型:

INTEGER整数型整数
FLOAT浮点型带小数点的数
STRING字符型文字数字和符号

变量范围:

变量的“范围”是其中变量存在。并非所有范围都适用于所有情况(例如,条件可能没有施法者,而施法者是条件的目标)。

SKILL保存在当前的技能树上。总是暂时的,当前的技能队列结束时会消失。
CASTER保存在怪物上。
TARGET保存在技能/条件的目标上。
TRIGGER保存在触发技能的实体或玩家。
PARENT保存在实体的父级。
WORLD保存在现在的世界。
GLOBAL保存在服务器。

变量可用的条件:

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

变量可用的占位符:

可以在任何允许占位符的 MythicMobs 机制或值中引用变量。这通常使用格式<scope.var.[variable]> 完成。

使用占位符变量时,您还可以使用语法<scope.var.[variable]|[default]>指定一个“默认”值,如果变量未定义,则将使用该值。

message{m=“你好, <target.var.title|流浪者>”} @trigger ~onInteract

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

setVariable{var=target.title;value=“先生”} @trigger ~onInteract

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


设置一个变量。变量可以是永久的或临时的,并且可以与条件或占位符结合使用来存储数据。

变量缩写解释默认值
namevariable, n, var, key, k变量的名称。可以选择以范围为前缀。
valueval要将变量设置为的值。必须适用于类型,否则技能将失败。如果使用空格,应该用双引号括起来。值还可以包括占位符,甚至来自 PlaceholderAPI。
scopes变量的范围,例如变量所在的位置。SKILL
typet变量的类型。INTEGER
save变量是否应在重新加载、重新启动和断开连接之间保存。不适用于 SKILL 范围的变量。false
durationd变量存在时间(刻)。不适用于 SKILL 范围的变量。Infinite

例子

在这个例子中,目标玩家每 10 分钟只会听到一次附近任意数量的熊的咆哮。

  1. :
  2.   Skills:
  3. - skill{s=咆哮} @PlayersInRadius{r=40} ~onTimer:60
  4.  
  5. 咆哮:
  6.   TargetConditions:
  7. - variableEquals{var=target.heardbear;value="yes"} cancel #heardbear=yes不执行下面的技能
  8.   Skills:
  9. - message{m="&7You hear a growling noise..."}
  10. - setvariable{var=target.heardbear;value="yes";duration=6000} #heardbear设置为yes,持续6000刻

在这个例子中,一个来自 MMOItems (这是另外一个付费插件)的占位符被存储在一个 int/float 变量中。

  1. PlaceholderDamage:
  2.   Skills:
  3. - setvariable{var=caster.new_skill_damage;value="%mmoitems_stat_skill_damage%";type=INTEGER} @self
  4. - damage{a="100 * <caster.var.new_skill_damage>"} @PIR{r=5}

别名: varUnset、unsetVariable、unsetVar

属性别名描述默认值
variablevar变量的名称。可以选择以范围为前缀。
scopes变量的范围,例如变量所在的位置。SKILL

例子 这将从施法者取消设置测试施法者范围变量。

  1. RemoveVariable:
  2.   Skills:
  3. - variableUnset{var=caster.testing} @self

将设定的数字添加到指定范围内的变量。仅适用于数字变量类型。

属性别名描述默认值
varv变量的范围和名称none
amounta添加的数1

例子

  1. Skills:
  2. - variableadd{var=skill.testVar;amount=1} ~onInteract
  3. - ...

减去指定范围内的变量的数量。仅适用于数字变量类型。

属性别名描述默认值
varv变量的范围和名称none
amounta添加的数1

例子

  1. Skills:
  2. - variablesubtract{var=skill.testVar;amount=1} ~onInteract
  3. - ...

将变量设置为数学方程的结果,其中 'x' 是变量的当前值。

属性别名描述默认值
var变量的名称和作用域
equationeq, e要完成的操作,必须在引号内

例子 将占位符存储在变量中

  1. MMOVar:
  2.   Skills:
  3. - variableMath{var=target.exp;equation="%mmocore_level%"}

做数学运算

  1. Math1:
  2.   Skills:
  3. - variableMath{var=caster.damage;equation="<caster.hp>*5"}
  4. Math2:
  5.   Skills:
  6. - variableMath{var=caster.speed;equation="(<caster.var.age>/5)+1"}
  • 插件手册/mythicmobs/技能/机制列表/变量.txt
  • 最后更改: 2021/12/15 17:54
  • duangfafa