📔
AttributeExtension
  • AttributeExtension
  • 属性执行效果教程
    • 实体对象说明&变量值说明
    • 更多属性效果关键词
  • 付费版 — 额外功能
    • 关键词
    • 数据储存
  • 更新记录
由 GitBook 提供支持
在本页
  • 实体类型说明
  • 变量值说明
  • 变量值内我怎么获取对应实体身上的属性值?
  • 如何获取 属性 的 最小值跟最大值 呢?
  • 如何得出一个范围随机值的数值呢?
  • 如何在另一个变量名计算内读取到另一个变量的值呢?

这有帮助吗?

  1. 属性执行效果教程

实体对象说明&变量值说明

2020/11/07 日 1.1.0 版本内容更新

上一页属性执行效果教程下一页更多属性效果关键词

最后更新于4年前

这有帮助吗?

实体类型说明

类型

对象

attacker

触发者(攻击者) / 自身

entity

被触发者(被攻击者) / 自身

attacker-r:半径范围,排除触发者,排除被触发者,(可选)[类型,类型]

以触发者为半径的所有实体

entity-r:半径范围,排除触发者,排除被触发者,(可选)[类型,类型]

以被触发者为半径的所有实体

需要注意的时候,当属性类型为 "RUNTIME" 伤害,不管是 attacker 还是 entity 该对象都是自身 attacker-r/entity-r 示例 - 对被攻击者10格范围内除攻击者外的所有实体造成 1000 点伤害 - "attack entity-r:10,true,false 1000" 如果是只要对 玩家类型 造成伤害 - "attack entity-r:10,true,false,[PLAYER] 1000"

type类型列表:

变量值说明

每个属性配置都会有 run 这部分的配置,属性的效果也是在这里实现,变量值的关键词为 "value" 具体格式是

run:
 - "value 变量名 [计算公式]"
 #这里的变量名最好是 英文

一个属性配置的 run 列表可以存在 无限个变量值

变量值内我怎么获取对应实体身上的属性值?

这个很简单 [计算公式] 内部有一个通用变量 {实体 取值名(属性名)} 通过该变量即可获取对应实体身上的对应属性值,取值名 一般都是 属性名 但也有两个特殊的 "当前生命 / 最大生命" 该取值名不是属性,而是内部的一个取值名,可获取实体当前剩余生命力及实体的最大生命(由于怪物无法使用生命力属性,所以需要通过这个方式来读取怪物的最大生命值)

#取得 被攻击者当前生命力的百分之50%
run:
 - "value health [{entity 当前生命}/2]"
 
#取得 被攻击者最大生命力的百分之50%
run:
 - "value health [{entity 最大生命}/2]"

如何获取 属性 的 最小值跟最大值 呢?

像 物理伤害 这种 支持最小值~最大值随机 的属性,我们要获取其最小值跟最大值分别为 {entity 物理伤害} — 最小值 {entity 物理伤害[1]} — 最大值

#取得 攻击者 物理伤害最大值
run:
 - "value maxDamage [{attacker 物理伤害[1]}]"

如何得出一个范围随机值的数值呢?

在变量值内可以使用 %ae_<r-v:变量名-变量名>% 或 %ae_<r-a:属性名-属性名[1]>% 两个 PlaceholderAPI 变量来得出 随机值!

#属性名例子
run:
  #从物理伤害属性标签的 最小值~最大值 得出一个随机值
  - "value rate [{attacker %ae_<r-a:物理伤害-物理伤害[1]>%}]"
  
#变量名例子
run:
  #从min与max变量名的值得出一个随机值,这里最小值必须大于最大值
  - "value min [{attacker 物理伤害}]"
  - "value max [{attacker 物理伤害[1]}]"
  - "value damage [{attacker %ae_<r-v:min-max>%}]"

如何在另一个变量名计算内读取到另一个变量的值呢?

很简单,你只需要在公式计算内加上 {value 变量名} 即可,该方法存在于 1.0.2 以上版本

run:
  - "value rate [{attacker %ae_<r-a:物理伤害倍率-物理伤害倍率[1]>%}]"
  # {value rate} 则是获取上方 rate 变量的值
  - "value damage [{attacker 物理伤害[1]}*{value rate}/100]"

如果取值名为 AttributePlus 自带属性的话,你要注意输入的 属性名 必须是 attribute.yml 内默认的属性名,而不是你修改后的属性名 默认属性名你可以在这里查看:

https://bukkit.windit.net/javadoc/org/bukkit/entity/EntityType.html
https://www.mcbbs.net/thread-898670-1-1.html