Skip to content

技能扩展

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 中的属性不会被抵消。
ignorearmoriai是否忽略护甲。
preventimmunitypi是否阻止伤害免疫。
preventknockbackpkbpk是否阻止击退。
elementedamagetypetypeMythicMobs 自定义伤害类型。需要 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-apattr-apdamage-sxattr-sx 和部分血量技能用于追溯最上级召唤者。

yaml
Skills:
  - ly-summon{type=测试;amount=1} @self
参数别名默认值说明
typetmobmSKELETONMythicMob ID 或 MythicEntity 类型。
amounta1召唤数量,支持 MythicMobs 占位符。
levell-1怪物等级。-1 时继承施法者等级。
radiusnoisenr0水平随机生成半径。大于 0 时使用安全生成位置。
yradiusynoiseynyrradius 相同Y 轴随机半径。
yradiusuponlyyradiusonlyupyruoyufalse是否只向 Y 轴上方生成。
onsurfaceossfalse是否限制在地表生成。
summonerisownersiotrue是否将施法者写入召唤物 owner。
summonerisparentsiptrue是否将施法者作为召唤物 parent 参数处理。
summonerisfactionsiffalse是否将施法者作为 faction 来源。
inheritfactioniftrue是否继承施法者阵营。
inheritthreattableittfalse是否继承施法者仇恨表。
copythreattablecttfalse是否复制施法者仇恨表。启用后优先于 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 相同,包括 typeamountlevelradiusyradiusyradiusuponlyonsurfacesummonerisownerinheritfactioninheritthreattablecopythreattable 等参数。

参数别名默认值说明
插件pluginattributepluginap属性插件类型,可填写 apsx2sx3
生命healthhp0召唤物最大生命和当前生命。大于 0 时写入召唤物。
属性additionalattributesaa以逗号分隔的附加属性列表,例如 攻击力+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
参数别名默认值说明
vvalue0恢复数值,支持 PlaceholderAPI 和四则运算。
oorigintarget变量来源。target 使用目标玩家变量;me 使用最上级召唤者玩家变量。

sethealth-papi

设置目标当前生命值。

yaml
Skills:
  - sethealth-papi{v=10} @target
参数别名默认值说明
vvalue0.01当前生命值,支持 PlaceholderAPI 和四则运算。低于 0.01 时按 0.01 处理,高于目标最大生命时按最大生命处理。

该实现会按玩家目标解析 PlaceholderAPI 变量,建议将目标选择器限制为玩家。

setmaxhealth-papi

设置目标最大生命值。

yaml
Skills:
  - setmaxhealth-papi{v=100} @target
参数别名默认值说明
vvalue0.01最大生命值,支持 PlaceholderAPI 和四则运算。低于 0.01 时按 0.01 处理,高于目标当前最大生命时按目标当前最大生命处理。

该实现会按玩家目标解析 PlaceholderAPI 变量,建议将目标选择器限制为玩家。

实体标记

标记使用插件自身的实体 Metadata 保存,可配合 gtagltagetag 条件制作层数效果。

yaml
Skills:
  - ly-settag{t=bleed;v=1} @target
  - ly-addtag{t=bleed;v=1} @target
  - ly-taketag{t=bleed;v=1} @target
技能参数说明
ly-settagt / tagv / value / layer / l将指定标记设置为指定层数。
ly-addtagt / tagv / value / layer / l在当前层数上增加指定数值。没有已有标记时按 0 计算。
ly-taketagt / tagv / value / layer / l在当前层数上扣除指定数值。没有已有标记时按 0 计算。

移动

autofollow

让施法者向目标位置移动。目标与施法者距离超过边界时,会将目标传送到施法者身后;距离未超过边界时,拥有 AI 的实体会尝试寻路。

yaml
Skills:
  - autofollow{speed=0.35;border=30} @Owner
参数默认值说明
speed0.35寻路移动速度。
border30触发传送的距离边界。

moveto

让施法者向目标位置寻路移动,不包含 autofollow 的超距传送逻辑。

yaml
Skills:
  - moveto{speed=0.35} @target
参数默认值说明
speed0.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
参数说明
sDragonCore 方法调用字符串。

bindentity

向目标玩家发送 DragonCore 实体位置绑定数据。目标必须是玩家。

yaml
Skills:
  - bindentity{entity=<实体UUID>;owner=<绑定目标UUID>;forward=0;offsetY=0;sideways=0;bindYaw=true;bindPitch=true} @self
参数默认值说明
entity被绑定实体 UUID。
owner绑定目标 UUID。
forward0前后偏移。
offsetY0Y 轴偏移。
sideways0左右偏移。
bindYawtrue是否绑定水平朝向。
bindPitchtrue是否绑定俯仰朝向。

GermPlugin 镜头

camera

向目标玩家发送 GermPlugin 镜头效果。非玩家目标不会执行镜头操作。

yaml
Skills:
  - camera{t=ROLL;m=10;s=10;v=1;r=false} @self
参数说明
t镜头类型。支持 CAMERA_PITCHCAMERA_ROLLCAMERA_YAWOFFSET_XOFFSET_YOFFSET_ZPITCHROLLYAW
m移动到指定镜头效果所需时间。
s镜头效果持续时间,-1 表示持续。
v镜头值。
r是否旋转,填写 truefalse

条件

标记条件

标记条件读取由本插件写入的实体 Metadata,并且只读取本插件自身写入的值。

条件参数判断方式
gtagt / tagv / value / layer / l标记层数大于指定层数。
ltagt / tagv / value / layer / l标记层数小于指定层数。
etagt / tagv / value / layer / l标记层数等于指定层数。
yaml
Conditions:
  - gtag{t=bleed;v=2}

队友条件

dp 检测 DungeonPlus 队友关系,dm 检测 DungeonMaster 队友关系。判断目标时会排除施法者本人;如果施法者是召唤物,插件会尝试解析其最上级玩家召唤者。

条件参数说明
dps / statetrue 要求目标是 DP 队友;false 要求目标不是 DP 队友;allow 不限制队友关系。默认 true
dms / statetrue 要求目标是 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-functiontrue是否注册本插件的 MythicMobs 技能、条件和目标选择器。
replace-mythic-summontrue是否将 MythicMobs 原版 summon 替换为 ly-summon 实现。
attack-mode4影响 damage-apdamage-sx 的最终伤害调用方式。
no-clear-attribute示例包含 生命力移速加成damage-apdamage-sx 清除属性时跳过的属性列表。
debugfalse是否输出属性伤害、临时属性和召唤者解析等调试信息。

依赖说明

插件的 plugin.yml 声明以下软依赖:

  • MythicMobs
  • AttributePlus
  • GermPlugin
  • AttributeCore
  • SX-Attribute

不同功能使用的前置不同:

功能前置
MythicMobs 技能、条件和目标选择器MythicMobs,以及对应的 DungeonPlus 或 DungeonMaster 队伍系统。
damage-apattr-apAttributePlus。
damage-sxattr-sxattribute-summonsx2 / sx3对应版本的 SX-Attribute。
runfuncbindentityDragonCore。
cameraGermPlugin。
PlaceholderAPI 变量解析PlaceholderAPI。

当对应前置未加载或 API 不兼容时,相关功能不会正常执行。