📡自定义MM光环
ScriptMechanic下
类型
| 技能类型 | 描述 | 需要重写的方法 |
|---|---|---|
| SKILL | 普通技能 | 见自定义MM技能机制 |
| AURA | 光环技能 | 见下例子 |
示例
javascript
- onTest{ol=[ - message{m=我在移动啊} @self ]} @selfjavascript
//唯一技能名,不可重复
var mechanicName = "onTest"
/*
技能类型
SKILL 一般技能 重写cast...(utils, data, skillMetadata, abstractEntity)方法 *不写默认为此类型
AURA 光环 重写auraStart(utils, data, tracker, skillMetadata, abstractEntity, skill, cancel)方法
*/
var mechanicType = "AURA"
/**
* 加载时运行
*
* @param utils 脚本工具
* @param data 脚本数据
* @param manager MythicMobs5独有的 在4.x版本中 manager是一个字符串"manager"
* @param line 技能配置
* @param lineParse 解析器 其实就是MythicConfigLine
*/
function onLoad(utils, data, manager, line, lineParse) {
}
/**
* @param utils 脚本工具
* @param data 脚本数据
* @param tracker 光环追踪器
* @param skillMetadata 技能元数据
* @param abstractEntity 抽象目标
* @param skill 技能,技能配置中ol中的技能
* @param cancel 是否取消,技能配置中的cancel
*/
function auraStart(utils, data, tracker, skillMetadata, abstractEntity, skill, cancel) {
return Packages.io.lumine.xikage.mythicmobs.utils.Events.subscribe(Packages.org.bukkit.event.player.PlayerMoveEvent.class)
.filter(function (event) {
return event.getPlayer().getUniqueId().equals(abstractEntity.getUniqueId())
})
.handler(function (event) {
var target = Packages.io.lumine.xikage.mythicmobs.adapters.bukkit.BukkitAdapter.adapt(event.getPlayer())
skillMetadata.setEntityTarget(target)
if (tracker.executeAuraSkill(skill, skillMetadata)) {
tracker.consumeCharge()
if (cancel) {
event.setCancelled(true)
}
}
})
}