从 AttributePlus 迁移
将 AttributePlus 的脚本属性修改部分内容,即可适配 CraneAttribute
本篇只概述 JavaScript
属性类型
ATTACK 和 DEFENSE: ATTACK_AND_DENFENSEUPDATE: UPDATE_AFTERRUNTIME: RUNTIME_AFTERKILL: PLAYER_KILL_ENTITYCUSTOM: 其他自定义实现
对应修改属性类型即可,注意 ATTACK_AND_DENFENSE 包含 ATTACK 和 DEFENSE 两种效果
变量与函数名
JavaScript
var priority = 1 // 优先级
var combatPower = 1.0 // 战斗力
var attributeName = "测试脚本属性" // 属性名
var attributeType = "ATTACK" // 属性类型
var placeholder = "testAttribute" // 变量名
var priority = 1 // 优先级
var power = 1.0 // 战斗力
var name = "测试脚本属性" // 属性名
var type = "ATTACK_AND_DEFENSE" // 属性类型
var id = "TEST_ATTRIBUTE" // id
var max = -1.0 // 最大值JavaScript
function init(attr) { // 新增 init 函数,在 onEnable 之前运行
}
function onLoad(attr) { // 原 onLoad 函数
... // 你的代码
return attr
}
function onEnable(attr) { // onLoad 改成 onEnable,什么都不需要返回
... // 你的代码
}
function onDisable(attr) { // 新增 onDisable 函数,在属性卸载(重载时会卸载)时运行
} JavaScript
function runAttack(attr, attacker, entity, handle) {
... // 你的代码
return true
}
function onAttackAndDefense(attr, attacker, entity, handler) {
... // 你的代码
return true
} JavaScript
function runDefense(attr, killer, entity, handle) {
... // 你的代码
return true
}
function onAttackAndDefense(attr, attacker, entity, handler) {
... // 你的代码
return true
} JavaScript
function run(attr, entity, handle) {
... // 你的代码
return true
}
function onUpdateAfter(attr, entity, handler) {
... // 你的代码
return true
}JavaScript
function run(attr, entity, handle) {
... // 你的代码
return true
}
function onRuntimeAfter(attr, entity, handler) {
... // 你的代码
return true
}JavaScript
function runKiller(attr, killer, entity, handle) {
... // 你的代码
return true
}
function onPlayerKillEntity(attr, killer, entity, handler) {
... // 你的代码
return true
}JavaScript
function runCustom(attr, caster, target, params, source, handle) {
... // 你的代码
return true
}
function onExtHandler(attr, 由其他开发者提供的参数, handler) {
... // 你的代码
return true
}对应修改即可
其他
在 AttributePlus 中编写属性时,通常使用 attr.xxx(xxx, handle) 来获取或处理数据
在 CraneAttribute 则是通过处理器(hander)来获取或处理数据,如 hander.xxx(xxx)
其他方法
AttributePlus 中几乎所有 attr.xxx(xxx, handle) 方法,都可以在 CraneAttribute 中找到相同和类似方法,具体请参阅 javadoc
