Skip to content

配置说明

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} @self

attack-mode

attack-mode 控制 damage-apdamage-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-apattr-apdamage-sxattr-sxheal-papi 等技能时,可以使用该召唤链确定属性来源和技能来源。

修改此配置后,需要依次执行:

text
/lamm reload
/mm reload

只执行 /lamm reload 不会让 MythicMobs 重新注册已经加载的技能行。

no-clear-attribute

no-clear-attribute 用于指定不参与临时属性抵消的属性名称。

damage-apdamage-sx 默认会读取施法者当前属性,并在技能伤害计算前临时抵消未列入此列表的属性,避免施法者自身属性影响技能配置。技能执行完成后,临时抵消属性会被移除。

配置格式为字符串列表:

yaml
no-clear-attribute:
  - '生命力'
  - '移速加成'
配置内容说明
属性名称与属性插件中的属性名称匹配时,该属性不会被临时抵消
空列表不保留任何属性,所有可读取属性都会参与临时抵消

当前配置文件注释说明该项通常不需要填写;如果需要保留特定属性不被抵消,可以继续添加对应属性名称。

debug

debug 控制部分技能的调试输出,默认值为 false

说明
true输出部分 damage-apattr-apdamage-sxattr-sx 的属性内容和召唤链解析信息;部分内容会发送给 OP 玩家或控制台
false关闭这些调试输出

调试输出可能包括:

  • damage-apdamage-sx 本次计算使用的属性。
  • attr-apattr-sx 的最上级召唤者。
  • 召唤链解析失败或伤害来源解析信息。

排查技能公式、属性名称和召唤链问题时可以临时设置为 true

load-mythic-function

load-mythic-function 控制插件是否注册自定义 MythicMobs 技能、条件和目标选择器。

说明
true注册插件提供的自定义技能、条件和目标选择器,默认值
false不注册这些 MythicMobs 扩展

设置为 false 后,以下扩展不会注册:

  • 自定义技能方法,例如 damage-apattr-aply-summonattribute-summonheal-papi 和标签技能。
  • 自定义条件,例如 gtagltagetagdpdm
  • 自定义目标选择器,例如 dptmdpntpdpntedmtmdmntpdmnte

除非需要临时排查 MythicMobs 扩展兼容问题,否则保持为 true

配置注释中的扩展

以下内容由 config.yml 的注释提供使用格式。它们不是独立的插件配置键,而是由 load-mythic-function 控制注册的 MythicMobs 扩展。

目标条件

条件参数作用
gtagt / v检测目标指定标签层数大于指定值
ltagt / v检测目标指定标签层数小于指定值
etagt / v检测目标指定标签层数等于指定值
dps检测目标是否为施法者的 DungeonPlus 队友,不包含施法者本人
dms检测目标是否为施法者的 DungeonMaster 队友,不包含施法者本人

dpdms 参数支持以下值:

s说明
true目标必须是对应队友
false目标不能是对应队友
allow不限制队友关系,条件直接通过

标签条件只读取由本插件写入的实体元数据标签。标签名称由 t 指定,比较层数由 v 指定。

目标选择器

选择器中的数字参数支持 PlaceholderAPI 占位符和四则运算。r 用于设置范围;当 r=-1 时,选择范围不受距离限制,并且根据选择器类型扩展到对应世界或全地图实体。

选择器选择范围中心点
@dptmDungeonPlus 队友当前实体
@dpotmDungeonPlus 队友基础坐标
@dpntp排除自身和自身 DungeonPlus 队伍后的所有玩家当前实体
@dpontp排除自身和自身 DungeonPlus 队伍后的所有玩家基础坐标
@dpnte排除自身和自身 DungeonPlus 队伍后的所有实体当前实体
@dponte排除自身和自身 DungeonPlus 队伍后的所有实体基础坐标
@dmtmDungeonMaster 队友当前实体
@dmotmDungeonMaster 队友基础坐标
@dmntp排除自身和自身 DungeonMaster 队伍后的所有玩家当前实体
@dmontp排除自身和自身 DungeonMaster 队伍后的所有玩家基础坐标
@dmnte排除自身和自身 DungeonMaster 队伍后的所有实体当前实体
@dmonte排除自身和自身 DungeonMaster 队伍后的所有实体基础坐标

示例格式:

text
@dptm{r=3}
@dpnte{r=3}
@dmtm{r=-1}

其中 dpotmdpontpdpontedmotmdmontpdmonte 使用技能的基础坐标,适合放置物等不应以当前实体位置为中心的场景。

标签技能

标签技能使用实体元数据保存整数层数,可与 gtagltagetag 条件组合。

技能参数作用
ly-settagtv将指定标签设置为指定层数
ly-addtagtv在当前标签层数上增加指定层数
ly-taketagtv从当前标签层数中扣除指定层数

参数示例:

text
ly-settag{t=id;v=1}
ly-addtag{t=id;v=1}
ly-taketag{t=id;v=1}

召唤和移动技能

技能参数作用
ly-summontypeamount 等 MythicMobs summon 参数召唤 MythicMob 或 MythicEntity,并记录召唤关系
autofollowspeedborder让实体跟随目标;距离超过 border 时传送到目标附近,否则尝试寻路
movetospeed强制有 AI 的实体移动到目标位置
attribute-summontypeamount插件生命属性召唤实体并继承召唤者或玩家的属性和生命值设置

ly-summon 支持的常用参数包括:

参数别名默认值说明
typetmobmSKELETONMythicMob 或 MythicEntity 类型
amounta1召唤数量
levell-1召唤等级;使用 -1 时沿用施法者等级
noisenradiusr0水平随机生成范围
ynoiseynyradiusyrnoise 的值垂直随机生成范围
yradiusuponlyyruoyufalse是否只向上取垂直范围
onsurfaceossfalse是否寻找地表位置
copythreattablecttfalse是否复制召唤者的仇恨表
inheritfactioniftrue是否继承召唤者阵营
inheritthreattableittfalse未复制仇恨表时,是否继承召唤者仇恨表
summonerisownersiotrue是否将施法者设置为召唤物主人
summonerisparentsiptrue是否设置召唤者与召唤物的父子关系
summonerisfactionsiffalse是否使用召唤者阵营设置

属性和伤害技能

技能作用
damage-ap使用 AttributePlus 属性执行一次属性伤害
attr-ap临时向目标添加 AttributePlus 属性,持续时间结束后移除
damage-sx根据已加载的 SX-Attribute 版本执行属性伤害
attr-sx根据已加载的 SX-Attribute 版本添加属性

damage-apdamage-sx 支持 清除属性 参数。设置为 true 时,会按照 no-clear-attribute 的配置临时抵消施法者属性;设置为 false 时,不进行属性清除。

attr-apattr-sx 支持 time 参数,单位为 tick,最小值为 1。属性参数的具体名称由对应属性插件提供,数值可以使用 PlaceholderAPI 占位符和四则运算。

插件支持在属性技能数值中使用尖括号包裹的四则运算公式,例如:

text
物理伤害=<10+5*2>
暴击几率=5

attribute-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-sxattr-sx 只有在插件检测到对应版本的 SX-Attribute 接口后才会注册。

生命值和指令技能

技能参数作用
heal-papivvalue为目标恢复生命值,支持 PlaceholderAPI 和四则运算
sethealth-papivvalue设置目标当前生命值,支持 PlaceholderAPI 和四则运算
setmaxhealth-papivvalue设置目标最大生命值,支持 PlaceholderAPI 和四则运算
lycmdcmd让目标玩家执行指令,支持 PlaceholderAPI

lycmd 只能作用于玩家目标,指令执行者由命令前缀决定:

前缀执行者
[console]控制台
[op]临时以 OP 身份执行的目标玩家
无前缀目标玩家自身

示例格式:

text
lycmd{cmd=[console]bc %player_name%放了一个技能} @self

DragonCore 和 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是否旋转,使用 truefalse

配置注释列出的镜头类型包括:

  • CAMERA_PITCH
  • CAMERA_ROLL
  • CAMERA_YAW
  • OFFSET_X
  • OFFSET_Y
  • OFFSET_Z
  • PITCH
  • ROLL
  • YAW

示例格式:

text
camera{t=ROLL;m=10;s=10;v=1;r=false} @self

重载注意事项

修改内容需要执行的操作
普通配置项,例如 attack-modedebugno-clear-attribute执行 /lamm reload
replace-mythic-summon先执行 /lamm reload,再执行 /mm reload
load-mythic-function执行 /lamm reload;如果 MythicMobs 已经加载过相关技能或条件,建议再执行 /mm reload

插件启动时会检查并输出部分前置状态,包括 PlaceholderAPI、SX-Attribute 和 MythicMobs。项目声明的可选前置包括 AttributePlusMythicMobsGermPluginAttributeCoreSX-Attribute;未加载对应前置时,依赖该前置的功能不会生效。