MythicMobs 属性扩展
LyAttributeMythicMobs 是一款 MythicMobs 技能扩展插件,为 MythicMobs 增加属性伤害、临时属性、属性召唤、召唤链追踪、生命值控制、标签条件、队伍条件、队伍选择器、龙核联动和萌芽镜头等功能。
插件通过 MythicMobs 的技能、条件和目标选择器注册机制工作。相关功能需要在 MythicMobs 已启用后才能注册。
插件信息
| 项目 | 内容 |
|---|---|
| 插件名 | LyAttributeMythicMobs |
| 插件版本 | 1.2.0 |
| 支持版本 | 1.12.2 |
| 核心前置 | MythicMobs |
| 属性支持 | AttributePlus、SX-Attribute |
| 其他联动 | AttributeCore、GermPlugin、DragonCore、PlaceholderAPI、DungeonPlus、DungeonMaster |
SX-Attribute 会根据已安装版本自动选择 2.x 或 3.x 接口。其他联动功能只会在对应插件和接口可用时生效。
玩法支持
| 功能 | 说明 |
|---|---|
| 属性伤害 | 在 MythicMobs 技能中使用 AttributePlus 或 SX-Attribute 属性造成伤害。 |
| 临时属性 | 为目标增加指定时长的 AttributePlus 或 SX-Attribute 属性。 |
| 属性召唤 | 召唤 MythicMobs 怪物,并根据召唤者变量计算生命值和属性。 |
| 召唤链追踪 | 记录 ly-summon 和替换后的 summon 关系,让技能继续解析最上级召唤者。 |
| 生命值控制 | 为目标恢复生命、设置当前生命或设置最大生命。 |
| 标签层数 | 为实体设置、增加或扣除数值标签,并通过条件判断标签层数。 |
| 队伍条件 | 判断目标是否为 DungeonPlus 或 DungeonMaster 队友。 |
| 队伍选择器 | 选择队友、非队友玩家和非队友实体,支持自身坐标或基础坐标。 |
| 移动控制 | 让有 AI 的实体移动到目标位置,或在距离过远时跟随并传送。 |
| 指令执行 | 让目标玩家执行支持 PlaceholderAPI 的玩家、OP 或控制台指令。 |
| DragonCore 联动 | 向目标玩家执行 runfunction,或绑定实体位置。 |
| GermPlugin 联动 | 向玩家发送镜头控制效果。 |
警告
MythicMobs 是核心前置。缺少或未启用时,插件不会注册新增技能、条件和目标选择器。
指令
主命令:/lamm
| 指令 | 说明 | 使用要求 |
|---|---|---|
/lamm | 显示可用子命令。 | OP |
/lamm reload | 重载插件配置。 | OP |
/lamm use <技能ID> | 让执行命令的玩家释放指定 MythicMobs 技能。技能目标会优先取玩家准星指向的实体,没有目标时取玩家自身。 | OP,玩家执行 |
/lamm cast <技能ID> <玩家> | 强制指定在线玩家释放指定 MythicMobs 技能。 | OP,指定玩家必须在线 |
命令处理逻辑使用 OP 判断,没有证据表明插件注册了独立权限节点。
/lamm use 和 /lamm cast 的技能 ID 必须已经在 MythicMobs 中注册。技能不存在时,use 会提示技能不存在;cast 指定的玩家不在线时不会执行技能。
配置文件
默认配置文件为插件目录下的 config.yml,配置重载时会重新读取该文件。
| 配置键 | 默认值 | 说明 |
|---|---|---|
attack-mode | 4 | 控制 damage-ap、damage-sx 的伤害执行方式。1 使用兼容动作大师的攻击方式,2 和 3 使用 MythicMobs 伤害逻辑,4 使用 Bukkit 实体伤害。 |
replace-mythic-summon | true | 是否将 MythicMobs 的 summon 注册为插件的 ly-summon 实现。修改后需要执行一次 MythicMobs 重载以同步技能。 |
no-clear-attribute | ['生命力', '移速加成'] | 伤害技能清除攻击者属性时跳过的属性列表。当前实现会读取该列表;配置注释说明目前可以不填写内容。 |
debug | false | 是否输出 damage、attr 相关属性内容和部分技能调试信息。部分属性调试信息还会发送给 OP 召唤者。 |
load-mythic-function | true | 是否加载插件提供的 MythicMobs 技能、条件和目标选择器。关闭后这些扩展不会注册。 |
attack-mode
damage-ap 和 damage-sx 支持以下模式:
| 数值 | 行为 |
|---|---|
1 | 使用插件内的原版近战攻击方式,兼容动作大师。 |
2 | 使用 MythicMobs 的基础伤害处理。 |
3 | 使用 MythicMobs 的伤害元数据处理,并支持技能自身的伤害选项。 |
4 | 使用 Bukkit 的实体伤害接口。 |
配置示例
yaml
# 攻击模式,默认使用 4
attack-mode: 4
# 是否替换 MythicMobs 原版 summon
replace-mythic-summon: true
# damage-ap 和 damage-sx 清除属性时跳过的属性
no-clear-attribute:
- '生命力'
- '移速加成'
# 是否输出调试信息
debug: false
# 是否加载插件扩展的 MythicMobs 技能、条件和选择器
load-mythic-function: trueMythicMobs 技能
以下技能只有在 load-mythic-function: true 时注册。
属性伤害
| 技能 | 说明 |
|---|---|
damage-ap | 使用 AttributePlus 属性生成一次伤害。技能会解析召唤链并使用最上级召唤者作为属性来源。 |
damage-sx | 使用 SX-Attribute 2.x 或 3.x 属性生成一次伤害。具体实现根据已加载的 SX-Attribute 版本自动选择。 |
两个技能都会读取 清除属性 配置。启用时,会先抵消召唤者当前属性,再提交技能指定的伤害属性,技能执行结束后移除临时属性。
damage-ap 的属性键必须是 AttributePlus 已注册的属性名;未注册的属性键会被跳过。属性值支持 PlaceholderAPI 和四则运算,也支持使用尖括号包裹的公式,例如:
yaml
damage-ap{清除属性=true;物理伤害=<10+5>;暴击几率=5} @targetdamage-sx 支持 MythicMobs 伤害机制中的以下参数:
| 参数 | 别名 | 说明 |
|---|---|---|
清除属性 | 无 | 是否在伤害前清除召唤者属性。 |
ignorearmor | ia、i | 是否忽略护甲。 |
preventimmunity | pi | 是否防止伤害免疫。 |
preventknockback | pkb、pk | 是否防止击退。 |
element | e、damagetype、type | MythicMobs 自定义伤害类型。使用自定义伤害类型需要 MythicMobs Premium。 |
| 其他属性键 | 无 | 按 SX-Attribute 属性名称提交属性值。 |
临时属性
| 技能 | 说明 |
|---|---|
attr-ap | 为目标增加临时 AttributePlus 属性。 |
attr-sx | 为目标增加临时 SX-Attribute 属性,自动适配 SX-Attribute 2.x 或 3.x。 |
| 参数 | 说明 |
|---|---|
time | 属性持续时间,单位为 tick,最小值为 1。 |
唯一 | 指定临时属性来源标识。相同标识用于覆盖同一来源。 |
| 其他参数 | 属性名称和属性值,例如 物理伤害=100。 |
属性值支持 MythicMobs 占位符、PlaceholderAPI 和四则运算。尖括号中的内容会先作为公式计算。
yaml
attr-ap{time=200;物理伤害=100;暴击几率=5} @target召唤
ly-summon
ly-summon 的参数与 MythicMobs summon 基本一致,并额外记录召唤物与召唤者的关系。后续 damage-ap、attr-ap 等技能可以沿着召唤链解析最上级召唤者。
| 参数 | 别名 | 默认值 | 说明 |
|---|---|---|---|
type | t、mob、m | SKELETON | MythicMob 或 MythicEntity 类型。 |
amount | a | 1 | 召唤数量,支持 MythicMobs 占位符。 |
level | l | -1 | 召唤等级。为 -1 时使用施法者等级。 |
noise | n、radius、r | 0 | 水平随机范围。大于 0 时寻找安全位置。 |
ynoise | yn、yradius、yr | 与 noise 相同 | 垂直随机范围。 |
yradiusuponly | yradiusonlyup、yruo、yu | false | 是否只向上取垂直范围。 |
onsurface | os、s | false | 是否限制在表面位置生成。 |
copythreattable | ctt | false | 是否复制施法者仇恨表。 |
inheritfaction | if | true | 是否继承施法者阵营。 |
inheritthreattable | itt | false | 未复制仇恨表时,是否继承施法者仇恨表。 |
summonerisowner | sio | true | 是否将施法者设置为召唤者和主人。 |
summonerisparent | sip | true | 读取并保留原版召唤关系参数。 |
summonerisfaction | sif | false | 读取并保留原版召唤阵营参数。 |
yaml
ly-summon{type=测试;amount=1} @self替换原版 summon
当 replace-mythic-summon 为 true 时,插件会拦截 MythicMobs 的 summon 技能并使用 ly-summon 实现。这样可以让原有技能中的 summon 也记录召唤链。
修改该配置后,需要执行 MythicMobs 重载,使新的技能注册状态生效。
attribute-summon
attribute-summon 在召唤怪物时附加召唤者属性,并可以设置召唤物生命值。
| 参数 | 别名 | 默认值 | 说明 |
|---|---|---|---|
type | t、mob、m | SKELETON | MythicMob 或 MythicEntity 类型。 |
amount | a | 1 | 召唤数量。 |
level | l | -1 | 召唤等级,为 -1 时使用施法者等级。 |
health | hp、生命 | 0 | 召唤物生命值。小于等于 0 时不修改生命值。 |
attributeplugin | plugin、插件 | ap | 属性实现标识,可使用 ap、sx2、sx3。 |
additionalattributes | aa、属性 | 空 | 以逗号分隔的附加属性列表。 |
noise | n、radius、r | 0 | 水平随机范围。 |
ynoise | yn、yradius、yr | 与 noise 相同 | 垂直随机范围。 |
yradiusuponly | yradiusonlyup、yruo、yu | false | 是否只向上取垂直范围。 |
onsurface | os、s | false | 是否限制在表面位置生成。 |
copythreattable | ctt | false | 是否复制仇恨表。 |
inheritfaction | if | true | 是否继承阵营。 |
inheritthreattable | itt | false | 是否继承仇恨表。 |
summonerisowner | sio | true | 是否设置召唤者为主人。 |
summonerisparent | sip | true | 是否保留父子召唤关系设置。 |
summonerisfaction | sif | false | 是否保留召唤阵营设置。 |
health、属性以及属性列表中的数值支持 PlaceholderAPI 和 {math:公式} 四则运算。
属性列表使用逗号分隔,每项由属性名称和数值组成,具体格式取决于对应属性插件。
yaml
attribute-summon{type=测试;amount=1;插件=ap;生命={math:1330*%player_level%};属性=攻击力+{math:13.31415*%player_level%},生命恢复+{math:2}} @self移动与跟随
| 技能 | 参数 | 说明 |
|---|---|---|
moveto | speed | 让有 AI 的施法实体移动到目标位置。默认速度为 0.35。 |
autofollow | speed | 施法实体跟随目标,默认速度为 0.35。 |
autofollow | border | 施法者与目标距离超过该值时,将目标传送到施法者身后。默认值为 30。 |
两个技能只对有 AI 的实体执行寻路,并在距离足够近时停止。autofollow 在施法者与目标不在同一世界时会令施法者生命值归零。
yaml
moveto{speed=0.35} @Owner
autofollow{speed=0.35;border=30} @Owner生命值
| 技能 | 参数 | 说明 |
|---|---|---|
heal-papi | v、value | 为目标恢复指定数值的生命,生命不会超过最大生命。 |
heal-papi | o、origin | 数值来源。默认使用目标变量;设置为 me 时使用最上级召唤者变量。 |
sethealth-papi | v、value | 设置目标当前生命值。 |
setmaxhealth-papi | v、value | 设置目标最大生命值。 |
生命值技能支持 PlaceholderAPI 和四则运算。sethealth-papi 与 setmaxhealth-papi 的数值最小为 0.01,并且不会超过目标当前最大生命值。
yaml
heal-papi{v=10} @self
sethealth-papi{v=%player_level%*2} @self
setmaxhealth-papi{v=100} @self指令执行
lycmd 只能作用于玩家目标。指令中的 PlaceholderAPI 变量使用目标玩家的变量。
| 参数 | 说明 |
|---|---|
cmd | 要执行的指令内容。 |
[console] | 由控制台执行指令。 |
[op] | 临时将目标玩家视为 OP 后执行指令。 |
yaml
lycmd{cmd=[console]bc %player_name%放了一个技能} @self不带 [console] 或 [op] 时,指令由目标玩家执行。
DragonCore
runfunc
向目标玩家发送 DragonCore 的 runfunction 调用。
| 参数 | 说明 |
|---|---|
s | 要执行的 DragonCore 方法字符串。 |
yaml
runfunc{s=方法.屏幕抖动(3,15,10,3)} @selfbindentity
将 DragonCore 的实体位置绑定发送给目标玩家。目标必须是玩家。
| 参数 | 说明 |
|---|---|
entity | 要绑定的实体 UUID。 |
owner | 绑定关系中的主人 UUID。 |
forward | 前后方向偏移。 |
offsetY | Y 轴偏移。 |
sideways | 左右方向偏移。 |
bindYaw | 是否绑定水平旋转。 |
bindPitch | 是否绑定垂直旋转。 |
yaml
bindentity{entity=<实体UUID>;owner=<主人UUID>;forward=0;offsetY=0;sideways=0;bindYaw=true;bindPitch=true} @selfGermPlugin 镜头
camera 只对玩家目标生效,怪物目标不会执行镜头效果。
| 参数 | 说明 |
|---|---|
t | 镜头类型。 |
m | 移动到该视角所需的时间。 |
s | 视角持续时间,-1 表示持续。 |
v | 视角数值。 |
r | 是否旋转玩家头部,使用 true 或 false。 |
支持的镜头类型包括:
| 类型 | 说明 |
|---|---|
CAMERA_PITCH | 只调整镜头俯仰,不调整玩家头部。 |
CAMERA_ROLL | 只调整镜头翻滚,不调整玩家头部。 |
CAMERA_YAW | 只调整镜头水平旋转,不调整玩家头部。 |
OFFSET_X | X 轴位置偏移。 |
OFFSET_Y | Y 轴位置偏移。 |
OFFSET_Z | Z 轴位置偏移。 |
PITCH | 上下移动视角。 |
ROLL | 横向倾斜视角。 |
YAW | 左右移动视角。 |
yaml
camera{t=ROLL;m=10;s=10;v=1;r=false} @self标签技能
标签保存在实体的 Metadata 中,值为整数层数。
| 技能 | 参数 | 说明 |
|---|---|---|
ly-settag | t、tag | 标签 ID。 |
ly-settag | v、value、l、layer | 将标签设置为指定层数。 |
ly-addtag | 同上 | 在当前层数上增加指定数值。不存在标签时从 0 开始。 |
ly-taketag | 同上 | 在当前层数上扣除指定数值。不存在标签时从 0 开始。 |
yaml
ly-settag{t=怒气;v=1} @self
ly-addtag{t=怒气;v=1} @self
ly-taketag{t=怒气;v=1} @selfMythicMobs 条件
以下条件只有在 load-mythic-function: true 时注册。
标签条件
| 条件 | 参数 | 判断方式 |
|---|---|---|
gtag | t、tag;v、value、l、layer | 目标标签层数大于指定值。 |
ltag | t、tag;v、value、l、layer | 目标标签层数小于指定值。 |
etag | t、tag;v、value、l、layer | 目标标签层数等于指定值。 |
yaml
- gtag{t=怒气;v=1}
- ltag{t=怒气;v=5}
- etag{t=怒气;v=3}条件只读取本插件写入的 Metadata 值。目标没有对应标签时,条件不通过。
队伍条件
| 条件 | 依赖 | 说明 |
|---|---|---|
dp | DungeonPlus | 判断目标是否为施法者的 DungeonPlus 队友,不包含施法者自身。 |
dm | DungeonMaster | 判断目标是否为施法者的 DungeonMaster 队友,不包含施法者自身。 |
| 参数 | 值 | 说明 |
|---|---|---|
s、state | true | 目标必须是队友。默认值。 |
s、state | false | 目标不能是队友。 |
s、state | allow | 不限制队友关系,条件直接通过。 |
怪物作为施法者时,插件会沿召唤链解析最上级玩家,用于判断玩家队伍关系。
yaml
- dp{s=true}
- dm{s=false}MythicMobs 目标选择器
以下选择器只有在 load-mythic-function: true 时注册。数字参数支持 PlaceholderAPI 和四则运算。
DungeonPlus 选择器
| 选择器 | 目标范围 | 坐标中心 |
|---|---|---|
@dptm{r=3} | DungeonPlus 队伍内的队友。 | 当前施法者位置。 |
@dpotm{r=3} | DungeonPlus 队伍内的队友。 | 技能基础坐标。 |
@dpntp{r=3} | 不属于施法者及其 DungeonPlus 队伍的玩家。 | 当前施法者位置。 |
@dpontp{r=3} | 不属于施法者及其 DungeonPlus 队伍的玩家。 | 技能基础坐标。 |
@dpnte{r=3} | 不属于施法者及其 DungeonPlus 队伍的实体。 | 当前施法者位置。 |
@dponte{r=3} | 不属于施法者及其 DungeonPlus 队伍的实体。 | 技能基础坐标。 |
DungeonMaster 选择器
| 选择器 | 目标范围 | 坐标中心 |
|---|---|---|
@dmtm{r=3} | DungeonMaster 队伍内的队友。 | 当前施法者位置。 |
@dmotm{r=3} | DungeonMaster 队伍内的队友。 | 技能基础坐标。 |
@dmntp{r=3} | 不属于施法者及其 DungeonMaster 队伍的玩家。 | 当前施法者位置。 |
@dmontp{r=3} | 不属于施法者及其 DungeonMaster 队伍的玩家。 | 技能基础坐标。 |
@dmnte{r=3} | 不属于施法者及其 DungeonMaster 队伍的实体。 | 当前施法者位置。 |
@dmonte{r=3} | 不属于施法者及其 DungeonMaster 队伍的实体。 | 技能基础坐标。 |
| 参数 | 说明 |
|---|---|
r=3 | 选择范围为 3 格。 |
r=-1 | 选择全部符合条件的目标,不限制范围;队友选择器还会忽略世界限制。 |
tm 表示队伍成员,ntp 表示非队友玩家,nte 表示非队友实体;带 o 的选择器使用技能基础坐标。
PlaceholderAPI 与公式
多个技能会在解析数值前处理 PlaceholderAPI 变量。玩家变量通常使用技能当前解析的玩家或最上级召唤者。
插件内置四则运算解析,支持:
- 加法:
+ - 减法:
- - 乘法:
* - 除法:
/ - 幂运算:
^ - 括号:
(、) - 小数和科学计数法
attribute-summon 使用 {math:公式} 形式计算嵌入式公式;属性伤害和临时属性还支持尖括号公式。
尖括号占位内容应放进行内代码或代码块中,避免被文档解析器当作 HTML 标签。
相关页面
| 页面 | 内容 |
|---|---|
| 配置说明 | 基础开关、攻击模式和召唤替换配置。 |
| 技能扩展 | MythicMobs 技能写法和参数说明。 |
| 条件与选择器 | 标签条件、队伍条件和目标选择器。 |
| 常见问题 | 前置、伤害、召唤链和变量排查。 |