Skip to content

概述

HNAttribute 可以从 MythicMobs 怪物配置中读取属性标签,让怪物拥有自定义属性。

默认标签名

当前默认按顺序读取:

yaml
Attribute
attribute

基本用法

yaml
MyMob:
  Type: ZOMBIE
  Attribute:
    - "攻击力: 100"
    - "火焰伤害: 20"
    - "火焰抗性: 10"
    - "最大生命: 500"

自定义标签名

如果你的服务器使用其他标签名,例如:

  • Stats
  • Attr
  • HNAttribute

可以在配置文件中修改:

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

如果标签名写错或属性名不匹配,控制台会有告警。

注意事项

  1. 属性名必须与 attributes.yml 中定义的属性 ID 匹配
  2. 数值格式:属性名: 数值
  3. 支持中文和英文属性名
  4. 标签名区分大小写

相关文档

HN 系列插件文档