属性类型
简介
目前,脚本属性由以下几种属性类型组成,分别是:ATTACK
、DEFENSE
、UPDATE
、RUNTIME
、EXTRA
,后续考虑加入更多属性类型。
介绍
除
EXTRA
外的其他属性,都对应各自的触发器。
属性类型 | 触发器 | 描述 |
---|---|---|
ATTACK | onAttack(data) | 实体攻击时触发 |
DEFENSE | onDefense(data) | 实体受到攻击时触发 |
UPDATE | onUpdate(data) | 实体属性更新时触发 |
RUNTIME | onTask(data) | 根据配置定时触发 |
EXTRA | NONE | 无触发器 |
EXTRA 类型,主要为属性容器,该类型主要是为了给其他拥有触发器的属性提供计算数值。
脚本结构
INFO
优先级: 越小越高,
推荐将拥有触发器的属性设置为高优先级,频繁触发的理论优先级最高。
Attack类型
js
const id = "属性id"
const placeholder = "placeholder占位符"
const display = "测试攻击属性"
const combat_value = 5.0
const priority = 2
const type = "ATTACK"
function onAttack(data) {}
Defense类型
js
const id = "属性id"
const placeholder = "placeholder占位符"
const display = "测试防御属性"
const combat_value = 5.0
const priority = 2
const type = "DEFENSE"
function onDefense(data) {}
Update类型
js
const id = "属性id"
const placeholder = "placeholder占位符"
const display = "测试更新属性"
const combat_value = 30.0
const priority = 10
const type = "UPDATE"
function onUpdate(data) {}
Runtime类型
js
const id = "属性id"
const placeholder = "placeholder占位符"
const display = "测试定时调度属性"
const combat_value = 30.0
const priority = 10
const type = "RUNTIME"
function onUpdate(data) {}
Extra类型
js
const id = "属性id"
const placeholder = "placeholder占位符"
const display = "测试其他属性"
const combat_value = 96.0
const priority = 96
const type = "EXTRA"
关于占位符
任何属性注册好了你都能使用 axh_attr:属性占位符_后缀
获取到对应属性的值。
后缀可选: min(最小值)、max(最大值)、random(随机值)
参数解释
在属性触发器的内部拥有一个很重要的参数 data,里面包括了战斗时产生的数据,以及触发者的实体数据。比如 onAttack 触发器,里面就包括了攻击者的属性数据以及防守者的属性数据,onDefense 触发器与 onAttack 触发器内容一致,onUpdate只能获取到触发者自身的属性数据。
TIP
即战斗时参数的数据,你可以修改配置文件开启debug模式或使用/axh debug开启debug模式,然后攻击一下怪,在控制台就能看到当前战斗产生的数据,这些数据都能在脚本中获取使用。(源自FightSystem)
可用变量
拿 type::default-result
举例,default就是只当前的伤害类型,result表示本次攻击造成的最终伤害。获取result 你可以在脚本中这样做: data["result"]