技能扩展
LyAttributeMythicMobs 为 MythicMobs 注册属性伤害、临时属性、召唤、血量、实体标记、移动、玩家指令、DragonCore、GermPlugin 镜头等技能方法,同时提供实体条件和目标选择器。
技能方法是否加载由配置项 load-mythic-function 控制,默认值为 true。关闭后,本页列出的自定义技能、条件和目标选择器都不会注册。
属性伤害
damage-ap
使用 AttributePlus 属性数据执行一次属性伤害。技能会解析召唤链,并优先使用最上级召唤者的属性和 PlaceholderAPI 变量。
yaml
Skills:
- damage-ap{清除属性=true;物理伤害=%ap_damage:max% * 1.1;暴击几率=5} @target| 参数 | 别名 | 说明 |
|---|---|---|
清除属性 | clear | 是否在本次伤害前临时抵消召唤者的已有属性,默认 true。配置文件 no-clear-attribute 中的属性不会被抵消。 |
| 其它键名 | 无 | AttributePlus 属性名。只有 AttributePlus 已注册的属性名会被处理。 |
属性值支持 MythicMobs 占位符、PlaceholderAPI 占位符和四则运算。尖括号表达式也会先按公式计算,例如 <10+5>。
伤害计算完成后,本次临时属性会被移除。attack-mode 决定最终伤害调用方式:
attack-mode | 处理方式 |
|---|---|
1 | 使用插件提供的原版近战攻击方式,兼容动作大师。 |
2 | 使用 MythicMobs 基础伤害处理。 |
3 | 使用 MythicMobs 自定义伤害处理。 |
4 | 使用 Bukkit 实体伤害事件,默认配置值。 |
damage-ap 会为当前伤害写入可解除取消伤害的标记。即使相关伤害事件被取消,插件也会尝试恢复该伤害事件。
SX-Attribute 属性伤害
damage-sx
使用 SX-Attribute 执行一次属性伤害。插件启动时会根据已加载的 SX-Attribute 版本自动选择对应实现:
- SX-Attribute 版本号以
2开头时使用 SX-Attribute 2 实现。 - SX-Attribute 版本号以
3开头时使用 SX-Attribute 3 实现。 - 未检测到兼容的 SX-Attribute API 时不会注册该技能。
yaml
Skills:
- damage-sx{清除属性=true;攻击力=100;暴击几率=5} @target| 参数 | 别名 | 说明 |
|---|---|---|
清除属性 | 无 | 是否在本次伤害前临时抵消召唤者已有属性,默认 true。配置文件 no-clear-attribute 中的属性不会被抵消。 |
ignorearmor | ia、i | 是否忽略护甲。 |
preventimmunity | pi | 是否阻止伤害免疫。 |
preventknockback | pkb、pk | 是否阻止击退。 |
element | e、damagetype、type | MythicMobs 自定义伤害类型。需要 MythicMobs Premium 的相关支持。 |
| 其它键名 | 无 | SX-Attribute 属性名。 |
属性值支持 MythicMobs 占位符、PlaceholderAPI 占位符、尖括号公式和四则运算。
临时属性
attr-ap
给目标临时添加 AttributePlus 属性。技能会使用召唤链中的最上级召唤者解析变量和属性环境。
yaml
Skills:
- attr-ap{time=200;物理伤害=100;暴击几率=5} @self| 参数 | 说明 |
|---|---|
time | 持续时间,单位为 tick,最小按 1 处理,默认 1。 |
唯一 | 来源 ID。填写后使用固定来源 lamm_attr_唯一值,相同来源 ID 的临时属性会互相覆盖;不填写时每次生成独立来源。 |
| 其它键名 | AttributePlus 属性名。 |
属性值支持 MythicMobs 占位符、PlaceholderAPI 占位符、尖括号公式和四则运算。持续时间结束后,插件会移除本次临时属性并刷新目标属性。
SX-Attribute 临时属性
attr-sx
使用 SX-Attribute 的临时属性处理逻辑。插件会根据 SX-Attribute 版本自动选择 SX-Attribute 2 或 SX-Attribute 3 实现。
yaml
Skills:
- attr-sx{time=200;攻击力=100;暴击几率=5} @self| 参数 | 说明 |
|---|---|
time | 持续时间,单位为 tick,最小按 1 处理,默认 1。 |
唯一 | 唯一来源标识。 |
| 其它键名 | SX-Attribute 属性名。 |
属性值支持 MythicMobs 占位符、PlaceholderAPI 占位符、尖括号公式和四则运算。
召唤
ly-summon
召唤 MythicMobs 怪物或 MythicEntity,并记录召唤物与召唤者之间的关系。该关系会被 damage-ap、attr-ap、damage-sx、attr-sx 和部分血量技能用于追溯最上级召唤者。
yaml
Skills:
- ly-summon{type=测试;amount=1} @self| 参数 | 别名 | 默认值 | 说明 |
|---|---|---|---|
type | t、mob、m | SKELETON | MythicMob ID 或 MythicEntity 类型。 |
amount | a | 1 | 召唤数量,支持 MythicMobs 占位符。 |
level | l | -1 | 怪物等级。-1 时继承施法者等级。 |
radius | noise、n、r | 0 | 水平随机生成半径。大于 0 时使用安全生成位置。 |
yradius | ynoise、yn、yr | 与 radius 相同 | Y 轴随机半径。 |
yradiusuponly | yradiusonlyup、yruo、yu | false | 是否只向 Y 轴上方生成。 |
onsurface | os、s | false | 是否限制在地表生成。 |
summonerisowner | sio | true | 是否将施法者写入召唤物 owner。 |
summonerisparent | sip | true | 是否将施法者作为召唤物 parent 参数处理。 |
summonerisfaction | sif | false | 是否将施法者作为 faction 来源。 |
inheritfaction | if | true | 是否继承施法者阵营。 |
inheritthreattable | itt | false | 是否继承施法者仇恨表。 |
copythreattable | ctt | false | 是否复制施法者仇恨表。启用后优先于 inheritthreattable。 |
插件还可以通过配置项 replace-mythic-summon 替换 MythicMobs 原版 summon。默认值为 true。启用后,MythicMobs 配置中使用的 summon 会改用本插件的召唤实现;修改该配置后需要执行 MythicMobs 重载以同步注册结果。
attribute-summon
召唤怪物,并根据召唤者属性为召唤物设置生命和附加属性。
yaml
Skills:
- attribute-summon{type=测试;amount=1;插件=ap;生命={math:1330*%player_level%};属性=攻击力+{math:13*%player_level%},生命恢复+2} @self基础召唤参数与 ly-summon 相同,包括 type、amount、level、radius、yradius、yradiusuponly、onsurface、summonerisowner、inheritfaction、inheritthreattable 和 copythreattable 等参数。
| 参数 | 别名 | 默认值 | 说明 |
|---|---|---|---|
插件 | plugin、attributeplugin | ap | 属性插件类型,可填写 ap、sx2 或 sx3。 |
生命 | health、hp | 0 | 召唤物最大生命和当前生命。大于 0 时写入召唤物。 |
属性 | additionalattributes、aa | 空 | 以逗号分隔的附加属性列表,例如 攻击力+5,生命恢复+3。 |
当召唤物存在 owner 时,插件会读取 owner 的 PlaceholderAPI 变量并计算 生命 与 属性。属性公式支持 {math:公式},例如:
yaml
Skills:
- attribute-summon{type=测试;插件=ap;生命={math:100+%player_level%*10};属性=攻击力+{math:5*%player_level%},生命恢复+2} @self血量
heal-papi
为目标恢复当前生命值,恢复后不会超过目标最大生命。
yaml
Skills:
- heal-papi{v=10} @self| 参数 | 别名 | 默认值 | 说明 |
|---|---|---|---|
v | value | 0 | 恢复数值,支持 PlaceholderAPI 和四则运算。 |
o | origin | target | 变量来源。target 使用目标玩家变量;me 使用最上级召唤者玩家变量。 |
sethealth-papi
设置目标当前生命值。
yaml
Skills:
- sethealth-papi{v=10} @target| 参数 | 别名 | 默认值 | 说明 |
|---|---|---|---|
v | value | 0.01 | 当前生命值,支持 PlaceholderAPI 和四则运算。低于 0.01 时按 0.01 处理,高于目标最大生命时按最大生命处理。 |
该实现会按玩家目标解析 PlaceholderAPI 变量,建议将目标选择器限制为玩家。
setmaxhealth-papi
设置目标最大生命值。
yaml
Skills:
- setmaxhealth-papi{v=100} @target| 参数 | 别名 | 默认值 | 说明 |
|---|---|---|---|
v | value | 0.01 | 最大生命值,支持 PlaceholderAPI 和四则运算。低于 0.01 时按 0.01 处理,高于目标当前最大生命时按目标当前最大生命处理。 |
该实现会按玩家目标解析 PlaceholderAPI 变量,建议将目标选择器限制为玩家。
实体标记
标记使用插件自身的实体 Metadata 保存,可配合 gtag、ltag 和 etag 条件制作层数效果。
yaml
Skills:
- ly-settag{t=bleed;v=1} @target
- ly-addtag{t=bleed;v=1} @target
- ly-taketag{t=bleed;v=1} @target| 技能 | 参数 | 说明 |
|---|---|---|
ly-settag | t / tag、v / value / layer / l | 将指定标记设置为指定层数。 |
ly-addtag | t / tag、v / value / layer / l | 在当前层数上增加指定数值。没有已有标记时按 0 计算。 |
ly-taketag | t / tag、v / value / layer / l | 在当前层数上扣除指定数值。没有已有标记时按 0 计算。 |
移动
autofollow
让施法者向目标位置移动。目标与施法者距离超过边界时,会将目标传送到施法者身后;距离未超过边界时,拥有 AI 的实体会尝试寻路。
yaml
Skills:
- autofollow{speed=0.35;border=30} @Owner| 参数 | 默认值 | 说明 |
|---|---|---|
speed | 0.35 | 寻路移动速度。 |
border | 30 | 触发传送的距离边界。 |
moveto
让施法者向目标位置寻路移动,不包含 autofollow 的超距传送逻辑。
yaml
Skills:
- moveto{speed=0.35} @target| 参数 | 默认值 | 说明 |
|---|---|---|
speed | 0.35 | 寻路移动速度。 |
两个技能使用 Minecraft 1.12.2 的实体寻路实现,目标和施法者必须处于同一世界,并且施法者需要是拥有 AI 的生物。每次移动任务最长运行约 200 tick,实体接近目标后会恢复原移动速度。
玩家指令
lycmd
让目标玩家执行支持 PlaceholderAPI 的指令。目标必须是玩家。
yaml
Skills:
- lycmd{cmd=[console]bc %player_name% 放了一个技能} @self| 参数 | 说明 |
|---|---|
cmd | 要执行的指令。执行前会使用目标玩家解析 PlaceholderAPI。 |
指令执行方式由前缀决定:
| 前缀 | 执行身份 |
|---|---|
[console] | 控制台执行。 |
[op] | 临时以 OP 身份由目标玩家执行。 |
| 无前缀 | 由目标玩家执行。 |
DragonCore
runfunc
向目标玩家发送 DragonCore runfunction 调用。目标必须是玩家。
yaml
Skills:
- runfunc{s=方法.屏幕抖动(3,15,10,3)} @self| 参数 | 说明 |
|---|---|
s | DragonCore 方法调用字符串。 |
bindentity
向目标玩家发送 DragonCore 实体位置绑定数据。目标必须是玩家。
yaml
Skills:
- bindentity{entity=<实体UUID>;owner=<绑定目标UUID>;forward=0;offsetY=0;sideways=0;bindYaw=true;bindPitch=true} @self| 参数 | 默认值 | 说明 |
|---|---|---|
entity | 无 | 被绑定实体 UUID。 |
owner | 无 | 绑定目标 UUID。 |
forward | 0 | 前后偏移。 |
offsetY | 0 | Y 轴偏移。 |
sideways | 0 | 左右偏移。 |
bindYaw | true | 是否绑定水平朝向。 |
bindPitch | true | 是否绑定俯仰朝向。 |
GermPlugin 镜头
camera
向目标玩家发送 GermPlugin 镜头效果。非玩家目标不会执行镜头操作。
yaml
Skills:
- camera{t=ROLL;m=10;s=10;v=1;r=false} @self| 参数 | 说明 |
|---|---|
t | 镜头类型。支持 CAMERA_PITCH、CAMERA_ROLL、CAMERA_YAW、OFFSET_X、OFFSET_Y、OFFSET_Z、PITCH、ROLL、YAW。 |
m | 移动到指定镜头效果所需时间。 |
s | 镜头效果持续时间,-1 表示持续。 |
v | 镜头值。 |
r | 是否旋转,填写 true 或 false。 |
条件
标记条件
标记条件读取由本插件写入的实体 Metadata,并且只读取本插件自身写入的值。
| 条件 | 参数 | 判断方式 |
|---|---|---|
gtag | t / tag、v / value / layer / l | 标记层数大于指定层数。 |
ltag | t / tag、v / value / layer / l | 标记层数小于指定层数。 |
etag | t / tag、v / value / layer / l | 标记层数等于指定层数。 |
yaml
Conditions:
- gtag{t=bleed;v=2}队友条件
dp 检测 DungeonPlus 队友关系,dm 检测 DungeonMaster 队友关系。判断目标时会排除施法者本人;如果施法者是召唤物,插件会尝试解析其最上级玩家召唤者。
| 条件 | 参数 | 说明 |
|---|---|---|
dp | s / state | true 要求目标是 DP 队友;false 要求目标不是 DP 队友;allow 不限制队友关系。默认 true。 |
dm | s / state | true 要求目标是 DM 队友;false 要求目标不是 DM 队友;allow 不限制队友关系。默认 true。 |
yaml
Conditions:
- dp{s=true}目标选择器
插件注册以下 DungeonPlus 和 DungeonMaster 目标选择器。选择器中的范围参数支持 PlaceholderAPI 和四则运算。
DungeonPlus 选择器
| 选择器 | 说明 |
|---|---|
@dptm{r=3} | 选择 DP 队伍内、以施法者当前位置为中心的范围内队友。通常用于普通实体。 |
@dpotm{r=3} | 选择 DP 队伍内、以基础坐标为中心的范围内队友。适合放置物。 |
@dpntp{r=3} | 选择不属于施法者本人及其 DP 队伍的范围内玩家,以施法者当前位置为中心。 |
@dpontp{r=3} | 选择不属于施法者本人及其 DP 队伍的范围内玩家,以基础坐标为中心。 |
@dpnte{r=3} | 选择不属于施法者本人及其 DP 队伍的范围内实体,以施法者当前位置为中心。 |
@dponte{r=3} | 选择不属于施法者本人及其 DP 队伍的范围内实体,以基础坐标为中心。 |
DungeonMaster 选择器
| 选择器 | 说明 |
|---|---|
@dmtm{r=3} | 选择 DM 队伍内、以施法者当前位置为中心的范围内队友。 |
@dmotm{r=3} | 选择 DM 队伍内、以基础坐标为中心的范围内队友。 |
@dmntp{r=3} | 选择不属于施法者本人及其 DM 队伍的范围内玩家,以施法者当前位置为中心。 |
@dmontp{r=3} | 选择不属于施法者本人及其 DM 队伍的范围内玩家,以基础坐标为中心。 |
@dmnte{r=3} | 选择不属于施法者本人及其 DM 队伍的范围内实体,以施法者当前位置为中心。 |
@dmonte{r=3} | 选择不属于施法者本人及其 DM 队伍的范围内实体,以基础坐标为中心。 |
| 范围值 | 行为 |
|---|---|
| 正数 | 只选择指定范围内的目标。 |
-1 | 选择不限制范围的目标;队友选择器不限制世界,非队友选择器选择全地图目标。 |
配置相关
以下配置会影响本页技能的注册或执行:
| 配置项 | 默认值 | 影响 |
|---|---|---|
load-mythic-function | true | 是否注册本插件的 MythicMobs 技能、条件和目标选择器。 |
replace-mythic-summon | true | 是否将 MythicMobs 原版 summon 替换为 ly-summon 实现。 |
attack-mode | 4 | 影响 damage-ap 和 damage-sx 的最终伤害调用方式。 |
no-clear-attribute | 示例包含 生命力、移速加成 | damage-ap 和 damage-sx 清除属性时跳过的属性列表。 |
debug | false | 是否输出属性伤害、临时属性和召唤者解析等调试信息。 |
依赖说明
插件的 plugin.yml 声明以下软依赖:
MythicMobsAttributePlusGermPluginAttributeCoreSX-Attribute
不同功能使用的前置不同:
| 功能 | 前置 |
|---|---|
| MythicMobs 技能、条件和目标选择器 | MythicMobs,以及对应的 DungeonPlus 或 DungeonMaster 队伍系统。 |
damage-ap、attr-ap | AttributePlus。 |
damage-sx、attr-sx、attribute-summon 的 sx2 / sx3 | 对应版本的 SX-Attribute。 |
runfunc、bindentity | DragonCore。 |
camera | GermPlugin。 |
| PlaceholderAPI 变量解析 | PlaceholderAPI。 |
当对应前置未加载或 API 不兼容时,相关功能不会正常执行。