主题
概述
HNAttribute 可以从 MythicMobs 怪物配置中读取属性标签,让怪物拥有自定义属性。
默认标签名
当前默认按顺序读取:
yaml
Attribute
attribute基本用法
yaml
MyMob:
Type: ZOMBIE
Attribute:
- "攻击力: 100"
- "火焰伤害: 20"
- "火焰抗性: 10"
- "最大生命: 500"自定义标签名
如果你的服务器使用其他标签名,例如:
StatsAttrHNAttribute
可以在配置文件中修改:
yaml
# plugins/HNAttribute/mythicmobs.yml
attribute-tags:
- "Stats"
- "Attribute"
- "attribute"完整示例
yaml
ElementalGolem:
Type: IRON_GOLEM
Display: '&6元素魔像'
Health: 1000
Attribute:
- "攻击力: 150"
- "火焰伤害: 50"
- "冰霜伤害: 30"
- "火焰抗性: 20"
- "物理抗性: 15"
- "暴击率: 10"
- "暴击伤害: 50"验证方法
当前版本的 /hnattr inspect、/hnattr source、/hnattr trace 等命令只能查看玩家属性,不能直接查看怪物身上的属性。
怪物的属性是在战斗发生时,由系统从 MythicMobs 配置中实时读取并注入到战斗上下文的,不走玩家属性管理器。
所以验证怪物属性是否正确配置,推荐用以下方式:
1)使用 <attr.属性ID> 占位符直接读取
这是最直接的方式。在怪物技能里加一条 message,让怪物"说出"自己的属性值:
yaml
MyMob:
Type: ZOMBIE
Attribute:
- "攻击力: 100"
- "火焰伤害: 20"
Skills:
- message{m="攻击力=<attr.attack_damage> 火伤=<attr.fire_damage>"} @self ~onSpawn怪物生成时就会在聊天栏输出它的属性值,一眼就能看出配置是否生效。
2)间接验证:打一下看伤害
让玩家攻击怪物,观察伤害数值是否符合预期。如果怪物配了抗性,伤害应该明显降低。
3)开启战斗 debug
text
/hnattr debug debug然后攻击怪物,控制台会输出战斗管线的详细计算过程,包括怪物侧的属性值。
4)检查配置加载
重载后看控制台是否有属性解析错误:
text
/hnattr reload如果标签名写错或属性名不匹配,控制台会有告警。
注意事项
- 属性名必须与
attributes.yml中定义的属性 ID 匹配 - 数值格式:
属性名: 数值 - 支持中文和英文属性名
- 标签名区分大小写
