配置说明
LyAttributeMythicMobs 的配置文件为插件目录下的 config.yml,用于控制伤害计算方式、召唤链、调试输出以及 MythicMobs 扩展注册。
修改配置后,可以使用以下命令重载插件配置:
text
/lamm reload该命令仅限 OP 使用。修改 replace-mythic-summon 后,还需要执行 MythicMobs 的重载命令,使 MythicMobs 重新加载受影响的技能配置:
text
/mm reload配置文件
| 文件 | 用途 |
|---|---|
config.yml | 攻击模式、召唤逻辑、属性清除、调试输出和 MythicMobs 扩展注册设置 |
默认配置
yaml
#攻击模式 默认1
# 1 兼容动作大师
# 2~4 完全模拟原版(推荐)
attack-mode: 4
#是否使用 ly-summon 逻辑替换原版 summon
#开启后 MythicMobs 中写 summon 的地方会改为使用本插件的 ly-summon 实现
#如果你有修改这个配置 你还需要/mm reload一次来同步效果
replace-mythic-summon: true
#防止被插件过滤的属性 否则可能导致临时数值被重置 例如防御/移速/生命等最好都写上
#目前可以无视该功能了 里面不用写任何配置
no-clear-attribute:
- '生命力'
- '移速加成'
#是否启用damage/attr时 OP/控制台会提示本次生成的属性内容
#以及一些技能的debug都会显示出来
debug: false
# 控制台强制玩家执行(推荐) /lamm cast 技能名 玩家名
#新的目标条件
# gtag{t=id;v=1} 指定tagId大于指定层数 t是tagId v是层数
# ltag{t=id;v=1} 指定tagId小于指定层数 t是tagId v是层数
# etag{t=id;v=1} 指定tagId等于指定层数 t是tagId v是层数
# dp{s=true} 检测目标是否为自身DP队友(不包含自身)
# dm{s=true} 检测目标是否为自身DM队友(不包含自身)
# s=true 目标必须是自身DP队友
# s=false 目标必须不是自身DP队友
# s=allow 队友关系不限(条件始终通过)
#新的MM选择器
# 以下选择器中数字参数支持 PAPI + 四则运算
# @dptm{r=3} 选择DP队伍内,以自身为中心点3格范围内的队友
# @dpotm{r=3} 选择DP队伍内,以基础坐标为中心点3格范围内的队友
# @dpntp{r=3} 选择除自身和自身DP队伍外,以自身为中心点3格范围内的所有玩家
# @dpontp{r=3} 选择除自身和自身DP队伍外,以基础坐标为中心点3格范围内的所有玩家
# @dpnte{r=3} 选择除自身和自身DP队伍外,以自身为中心点3格范围内的所有实体
# @dponte{r=3} 选择除自身和自身DP队伍外,以基础坐标为中心点3格范围内的所有实体
# @dmtm{r=3} 选择DM队伍内,以自身为中心点3格范围内的队友
# @dmotm{r=3} 选择DM队伍内,以基础坐标为中心点3格范围内的队友
# @dmntp{r=3} 选择除自身和自身DM队伍外,以自身为中心点3格范围内的所有玩家
# @dmontp{r=3} 选择除自身和自身DM队伍外,以基础坐标为中心点3格范围内的所有玩家
# @dmnte{r=3} 选择除自身和自身DM队伍外,以自身为中心点3格范围内的所有实体
# @dmonte{r=3} 选择除自身和自身DM队伍外,以基础坐标为中心点3格范围内的所有实体
#是否加载以下的mm拓展技能方法 默认true 不用动这里
load-mythic-function: true
#新的MM技能方法:
#和怪物条件搭配的tag系列 用于制作层数等效果
# ly-settag{t=id;v=1} 设置指定tagId为指定层数
# ly-addtag{t=id;v=1} 增加指定tagId的指定层数
# ly-taketag{t=id;v=1} 扣除指定tagId的指定层数
#智能跟随 超过指定距离时瞬移
# autofollow{speed=0.35;border=30} @Owner
#强制怪物移动到选择器选中的人的目标位置
# moveto{speed=0.35} @Owner
#属性召唤
# attribute-summon{type=测试;amount=1;插件=ap;生命={math:1330*%player_level%};属性=攻击力+{math:13.31415*%player_level%},生命恢复+{math:2}} @self
#与原版summon相同,但是兼容 damage-ap/attr-ap 通过 summon 目录下记录的召唤链继续获取最上级召唤者
# ly-summon{type=测试;amount=1} @self
#龙核runfunction
# runfunc{s=方法.屏幕抖动(3,15,10,3)}
#造成ap属性伤害
# damage-ap{清除属性=true;物理伤害=%ap_damage:max% * 1.1;暴击几率=5}
#添加ap属性
# attr-ap{time=200;物理伤害=100;暴击几率=5}
#使用变量和四则运算恢复生命
# heal-papi{v=10}
#设置目标当前生命
# sethealth-papi{v=10}
#设置目标最大生命
# setmaxhealth-papi{v=10}
#执行支持PAPI变量的指令
# lycmd{cmd=[console]bc %player_name%放了一个技能} @self
#萌芽视角设置
# camera{t=ROLL;m=10;s=10;v=1;r=false} @selfattack-mode
attack-mode 控制 damage-ap、damage-sx 触发伤害时使用的攻击方式。默认配置为 4。
| 值 | 伤害方式 |
|---|---|
1 | 调用插件提供的原版近战攻击逻辑,兼容动作大师 |
2 | 使用 MythicMobs 的伤害逻辑进行伤害 |
3 | 使用 MythicMobs DamageMetadata 进行伤害,并支持伤害类型、无视护甲、防止伤害免疫和防止击退等参数 |
4 | 调用 Bukkit LivingEntity.damage 模拟原版伤害,默认配置使用此模式 |
damage-ap 在执行过程中会临时写入技能属性,完成攻击后移除本次技能写入的属性。damage-sx 会按照相同的攻击模式选择伤害方式。
replace-mythic-summon
replace-mythic-summon 控制是否接管 MythicMobs 的原生 summon 技能。
| 值 | 说明 |
|---|---|
true | 将 MythicMobs 中注册的 summon 替换为插件的召唤逻辑 |
false | 不替换原生 summon,但插件仍会注册独立的 ly-summon 技能 |
插件的召唤逻辑会记录召唤物与直接召唤者之间的关系,并支持沿召唤链解析最上级召唤者。召唤物继续释放 damage-ap、attr-ap、damage-sx、attr-sx、heal-papi 等技能时,可以使用该召唤链确定属性来源和技能来源。
修改此配置后,需要依次执行:
text
/lamm reload
/mm reload只执行 /lamm reload 不会让 MythicMobs 重新注册已经加载的技能行。
no-clear-attribute
no-clear-attribute 用于指定不参与临时属性抵消的属性名称。
damage-ap 和 damage-sx 默认会读取施法者当前属性,并在技能伤害计算前临时抵消未列入此列表的属性,避免施法者自身属性影响技能配置。技能执行完成后,临时抵消属性会被移除。
配置格式为字符串列表:
yaml
no-clear-attribute:
- '生命力'
- '移速加成'| 配置内容 | 说明 |
|---|---|
| 属性名称 | 与属性插件中的属性名称匹配时,该属性不会被临时抵消 |
| 空列表 | 不保留任何属性,所有可读取属性都会参与临时抵消 |
当前配置文件注释说明该项通常不需要填写;如果需要保留特定属性不被抵消,可以继续添加对应属性名称。
debug
debug 控制部分技能的调试输出,默认值为 false。
| 值 | 说明 |
|---|---|
true | 输出部分 damage-ap、attr-ap、damage-sx、attr-sx 的属性内容和召唤链解析信息;部分内容会发送给 OP 玩家或控制台 |
false | 关闭这些调试输出 |
调试输出可能包括:
damage-ap或damage-sx本次计算使用的属性。attr-ap或attr-sx的最上级召唤者。- 召唤链解析失败或伤害来源解析信息。
排查技能公式、属性名称和召唤链问题时可以临时设置为 true。
load-mythic-function
load-mythic-function 控制插件是否注册自定义 MythicMobs 技能、条件和目标选择器。
| 值 | 说明 |
|---|---|
true | 注册插件提供的自定义技能、条件和目标选择器,默认值 |
false | 不注册这些 MythicMobs 扩展 |
设置为 false 后,以下扩展不会注册:
- 自定义技能方法,例如
damage-ap、attr-ap、ly-summon、attribute-summon、heal-papi和标签技能。 - 自定义条件,例如
gtag、ltag、etag、dp和dm。 - 自定义目标选择器,例如
dptm、dpntp、dpnte、dmtm、dmntp和dmnte。
除非需要临时排查 MythicMobs 扩展兼容问题,否则保持为 true。
配置注释中的扩展
以下内容由 config.yml 的注释提供使用格式。它们不是独立的插件配置键,而是由 load-mythic-function 控制注册的 MythicMobs 扩展。
目标条件
| 条件 | 参数 | 作用 |
|---|---|---|
gtag | t / v | 检测目标指定标签层数大于指定值 |
ltag | t / v | 检测目标指定标签层数小于指定值 |
etag | t / v | 检测目标指定标签层数等于指定值 |
dp | s | 检测目标是否为施法者的 DungeonPlus 队友,不包含施法者本人 |
dm | s | 检测目标是否为施法者的 DungeonMaster 队友,不包含施法者本人 |
dp 和 dm 的 s 参数支持以下值:
s 值 | 说明 |
|---|---|
true | 目标必须是对应队友 |
false | 目标不能是对应队友 |
allow | 不限制队友关系,条件直接通过 |
标签条件只读取由本插件写入的实体元数据标签。标签名称由 t 指定,比较层数由 v 指定。
目标选择器
选择器中的数字参数支持 PlaceholderAPI 占位符和四则运算。r 用于设置范围;当 r=-1 时,选择范围不受距离限制,并且根据选择器类型扩展到对应世界或全地图实体。
| 选择器 | 选择范围 | 中心点 |
|---|---|---|
@dptm | DungeonPlus 队友 | 当前实体 |
@dpotm | DungeonPlus 队友 | 基础坐标 |
@dpntp | 排除自身和自身 DungeonPlus 队伍后的所有玩家 | 当前实体 |
@dpontp | 排除自身和自身 DungeonPlus 队伍后的所有玩家 | 基础坐标 |
@dpnte | 排除自身和自身 DungeonPlus 队伍后的所有实体 | 当前实体 |
@dponte | 排除自身和自身 DungeonPlus 队伍后的所有实体 | 基础坐标 |
@dmtm | DungeonMaster 队友 | 当前实体 |
@dmotm | DungeonMaster 队友 | 基础坐标 |
@dmntp | 排除自身和自身 DungeonMaster 队伍后的所有玩家 | 当前实体 |
@dmontp | 排除自身和自身 DungeonMaster 队伍后的所有玩家 | 基础坐标 |
@dmnte | 排除自身和自身 DungeonMaster 队伍后的所有实体 | 当前实体 |
@dmonte | 排除自身和自身 DungeonMaster 队伍后的所有实体 | 基础坐标 |
示例格式:
text
@dptm{r=3}
@dpnte{r=3}
@dmtm{r=-1}其中 dpotm、dpontp、dponte、dmotm、dmontp 和 dmonte 使用技能的基础坐标,适合放置物等不应以当前实体位置为中心的场景。
标签技能
标签技能使用实体元数据保存整数层数,可与 gtag、ltag 和 etag 条件组合。
| 技能 | 参数 | 作用 |
|---|---|---|
ly-settag | t、v | 将指定标签设置为指定层数 |
ly-addtag | t、v | 在当前标签层数上增加指定层数 |
ly-taketag | t、v | 从当前标签层数中扣除指定层数 |
参数示例:
text
ly-settag{t=id;v=1}
ly-addtag{t=id;v=1}
ly-taketag{t=id;v=1}召唤和移动技能
| 技能 | 参数 | 作用 |
|---|---|---|
ly-summon | type、amount 等 MythicMobs summon 参数 | 召唤 MythicMob 或 MythicEntity,并记录召唤关系 |
autofollow | speed、border | 让实体跟随目标;距离超过 border 时传送到目标附近,否则尝试寻路 |
moveto | speed | 强制有 AI 的实体移动到目标位置 |
attribute-summon | type、amount、插件、生命、属性 | 召唤实体并继承召唤者或玩家的属性和生命值设置 |
ly-summon 支持的常用参数包括:
| 参数 | 别名 | 默认值 | 说明 |
|---|---|---|---|
type | t、mob、m | SKELETON | MythicMob 或 MythicEntity 类型 |
amount | a | 1 | 召唤数量 |
level | l | -1 | 召唤等级;使用 -1 时沿用施法者等级 |
noise | n、radius、r | 0 | 水平随机生成范围 |
ynoise | yn、yradius、yr | noise 的值 | 垂直随机生成范围 |
yradiusuponly | 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 | 是否使用召唤者阵营设置 |
属性和伤害技能
| 技能 | 作用 |
|---|---|
damage-ap | 使用 AttributePlus 属性执行一次属性伤害 |
attr-ap | 临时向目标添加 AttributePlus 属性,持续时间结束后移除 |
damage-sx | 根据已加载的 SX-Attribute 版本执行属性伤害 |
attr-sx | 根据已加载的 SX-Attribute 版本添加属性 |
damage-ap 和 damage-sx 支持 清除属性 参数。设置为 true 时,会按照 no-clear-attribute 的配置临时抵消施法者属性;设置为 false 时,不进行属性清除。
attr-ap、attr-sx 支持 time 参数,单位为 tick,最小值为 1。属性参数的具体名称由对应属性插件提供,数值可以使用 PlaceholderAPI 占位符和四则运算。
插件支持在属性技能数值中使用尖括号包裹的四则运算公式,例如:
text
物理伤害=<10+5*2>
暴击几率=5attribute-summon 的属性设置使用逗号分隔多个属性,生命值和属性值支持 {math:公式} 形式的四则运算:
text
attribute-summon{type=测试;amount=1;插件=ap;生命={math:1330*%player_level%};属性=攻击力+{math:13.31415*%player_level%},生命恢复+{math:2}} @self该技能的 插件 参数支持项目中注册的属性实现:
| 值 | 说明 |
|---|---|
ap | 使用 AttributePlus |
sx2 | 使用 SX-Attribute 2 的接口 |
sx3 | 使用 SX-Attribute 3 的接口 |
damage-sx 和 attr-sx 只有在插件检测到对应版本的 SX-Attribute 接口后才会注册。
生命值和指令技能
| 技能 | 参数 | 作用 |
|---|---|---|
heal-papi | v、value | 为目标恢复生命值,支持 PlaceholderAPI 和四则运算 |
sethealth-papi | v、value | 设置目标当前生命值,支持 PlaceholderAPI 和四则运算 |
setmaxhealth-papi | v、value | 设置目标最大生命值,支持 PlaceholderAPI 和四则运算 |
lycmd | cmd | 让目标玩家执行指令,支持 PlaceholderAPI |
lycmd 只能作用于玩家目标,指令执行者由命令前缀决定:
| 前缀 | 执行者 |
|---|---|
[console] | 控制台 |
[op] | 临时以 OP 身份执行的目标玩家 |
| 无前缀 | 目标玩家自身 |
示例格式:
text
lycmd{cmd=[console]bc %player_name%放了一个技能} @selfDragonCore 和 GermPlugin 技能
插件声明了对 DragonCore 和 GermPlugin 的可选扩展支持。相关技能仅在对应前置可用并且扩展成功注册时才能正常工作。
| 技能 | 目标限制 | 作用 |
|---|---|---|
runfunc | 玩家 | 执行 DragonCore 的 runfunction,通过 s 参数传入方法内容 |
bindentity | 玩家 | 将目标玩家绑定到指定实体,支持实体 UUID、主人 UUID、位置偏移和是否绑定视角 |
camera | 生物或玩家,实际视角操作仅对玩家生效 | 使用 GermPlugin 设置目标玩家的镜头行为 |
runfunc 示例:
text
runfunc{s=方法.屏幕抖动(3,15,10,3)}bindentity 支持的参数包括:
| 参数 | 说明 |
|---|---|
entity | 绑定实体 UUID |
owner | 主人 UUID |
forward | 前后方向偏移 |
offsetY | 垂直偏移 |
sideways | 左右方向偏移 |
bindYaw | 是否绑定水平视角 |
bindPitch | 是否绑定垂直视角 |
camera 支持的参数包括:
| 参数 | 说明 |
|---|---|
t | 镜头类型 |
m | 移动到目标视角所需时间 |
s | 视角持续时间;配置注释说明 -1 表示持续保持 |
v | 视角值 |
r | 是否旋转,使用 true 或 false |
配置注释列出的镜头类型包括:
CAMERA_PITCHCAMERA_ROLLCAMERA_YAWOFFSET_XOFFSET_YOFFSET_ZPITCHROLLYAW
示例格式:
text
camera{t=ROLL;m=10;s=10;v=1;r=false} @self重载注意事项
| 修改内容 | 需要执行的操作 |
|---|---|
普通配置项,例如 attack-mode、debug、no-clear-attribute | 执行 /lamm reload |
replace-mythic-summon | 先执行 /lamm reload,再执行 /mm reload |
load-mythic-function | 执行 /lamm reload;如果 MythicMobs 已经加载过相关技能或条件,建议再执行 /mm reload |
插件启动时会检查并输出部分前置状态,包括 PlaceholderAPI、SX-Attribute 和 MythicMobs。项目声明的可选前置包括 AttributePlus、MythicMobs、GermPlugin、AttributeCore 和 SX-Attribute;未加载对应前置时,依赖该前置的功能不会生效。