For the complete documentation index, see llms.txt. This page is also available as Markdown.

💥能力配置

一个附魔的能力配置用于定义:

  • 是否启用运行时能力;

  • 各触发器共用的激活限制;

  • 能力在什么情况下触发;

  • 每个触发器需要执行哪些条件、修改器和能力。

与 EnchantedMobs 不同,EnchantmentReform 不会将每个能力单独保存为一个文件。能力配置就是附魔文件中的 powers 部分,附魔文件位于:

plugins/EnchantmentReform/enchantments/

附魔文件的其他部分负责定义支持物品、等级、稀有度、有效槽位等注册表信息。本页面只说明运行时使用的 variablespowers 部分。

快速开始

powers:
  on-melee-attack:
    abilities:
      ignite-target:
        type: fire
        target: TARGET
        fire-ticks: 100

当附魔物品处于激活状态,且物品所有者直接攻击某个实体时,目标会燃烧 100 Tick。

能力结构

部分
用途

variables

定义附魔可重复使用、按等级变化或经过计算的值。此部分位于 powers 外部。

powers.enabled

启用或禁用附魔的运行时能力,但不会修改其注册表条目。

powers.limit

控制整个能力共用的触发概率、冷却和使用次数。

powers.on-...

定义一个触发器对应的条件、修改器和能力。

powers.activation-abilities

定义判断附魔是否激活时执行的特殊能力。

powers 下的键通常是内置触发器,例如 on-attackon-damageon-block-breakon-fish。例外是上方列出的通用选项,以及特殊的 activation-abilities 部分。

执行流程

当匹配的事件发生时,EnchantmentReform 会按照以下顺序处理一个激活附魔:

  • 同一级别中的所有条件都必须通过。

  • 修改器按照 YAML 中的顺序执行,并更新触发器支持修改的事件结果数据。

  • 能力会在修改器之后按照 YAML 中的顺序执行。

  • 如果某个触发器或子项所需的上下文不可用,该项会被跳过。

  • 对于已追踪的弹射物后续触发,插件可能会复用发射时捕获的能力状态,而不是重新判定能力整体限制。

有关各触发器提供的上下文,以及 SOURCESKILLTARGET 的含义,请参阅能力触发器

变量和动态值

变量可以避免在同一个附魔中重复编写相同公式:

根据字段的实现,数值可能支持:

  • {level}level

  • {damage-multiplier} 等附魔变量;

  • 4 + {level} * 0.5 等公式;

  • 1~30.5~1.5 等范围;

  • 等级选择器映射;

  • {source_health}{target_health_percent}{distance} 等运行时占位符;

  • 在存在玩家上下文时使用 PlaceholderAPI。

并非每个触发器或能力都能提供所有运行时占位符。有关表达式语法,请参阅数学计算格式

能力整体限制

字段
默认值
说明

random

1

激活概率,1 表示 100%。

cooldown

0

整个能力共用的冷却时间,单位为秒。

times

0

此能力最多成功通过顶层限制检查的次数,0 表示无限。

这些选项必须写在 powers.limit 下,而不是某个单独的 on-... 触发器部分中。

支持数值表达式的字段可以使用公式、变量、范围或等级选择器映射。

触发器部分

所有普通触发器都使用相同的基本结构:

fire-damagereduce-fire-damagesmoke 等名称都是用户自定义的条目 ID,只需在各自所在部分中保持唯一。type 的值用于选择已注册的条件、修改器或能力实现。

conditions

条件用于决定触发器是否继续执行。同一部分中的条目默认使用逻辑 AND,即全部条件都必须满足。

以上两个条件必须同时通过。如果多个分支中只需要任意一个通过,请使用 any 条件。

请参阅能力条件参考

modifiers

修改器会在能力执行前,修改当前触发器提供的可变数据。

示例包括:

  • 在攻击或受伤触发器中使用 damage

  • 在饥饿值变化时使用 food

  • 在物品耐久损耗时使用 item_damage

  • 在兼容的 on-fish 状态中使用钓鱼修改器;

  • 在商人交易触发器中使用交易修改器;

  • 在监守者愤怒值变化时使用 warden_anger

如果将一个有效修改器用于不相关的触发器,当前上下文中将没有可供它修改的兼容结果。配置键必须使用复数形式 modifiers

请参阅能力修改器参考

abilities

能力会按照 YAML 中的顺序执行。能力可以使用触发器提供的实体、物品、方块、位置、弹射物或其他数据。

只有在所选触发器提供了方块时,EVENT_BLOCK 才能使用。根据具体能力的文档,单个能力还可能支持自己的条件、概率、冷却、使用次数限制或子能力。

请参阅能力参考

触发器专属选项

某些触发器除了 conditionsmodifiersabilities 外,还支持专属选项。例如,Tick 触发器支持 interval

触发器专属选项记录在能力触发器页面中。

激活能力

activation-abilities 不是事件触发器。EnchantmentReform 扫描物品并判断哪些附魔处于激活状态时,会执行此部分。

内置的 disable_enchantments 能力可以禁用同一物品上匹配的附魔:

声明此规则的附魔不会禁用自身。普通触发器中的条件、修改器和 powers.limit 不适用于这个特殊部分。

多个触发器

一个附魔可以定义多个触发器部分:

发射触发器会捕获弹射物后续触发所需的能力状态,Tick 触发器生成轨迹,命中触发器处理最终撞击。

完整示例

当目标生命值低于 30% 时,该附魔会增加伤害,然后播放音效和粒子反馈。

相关参考

最后更新于