药水效果设置

药水效果设置

为你的物品赋予药水效果

游戏机制

药水效果套装

数据包驱动的物品药水效果、套装加成、Curios 支持以及战利品表注入。

该项目有两个版本:

  • Forge 1.20.1
  • NeoForge 1.21.1

两个版本共享相同的核心理念和几乎相同的数据包工作流程,因此整合包制作者可以在两个分支上使用同一套系统。

模组功能

使用此模组,你可以:

  • 在装备物品时给予被动效果
  • 在玩家攻击时给予击中效果
  • 在玩家受伤时给予受击效果
  • 针对单一物品、通过标签针对多个物品,或通过 nbt 针对特殊变种
  • 创建分级套装,例如 2 件套、3 件套和 4 件套加成
  • 统计 Curios 配件的数量,包括两个相同戒指这样的重复饰品
  • 在不替换现有战利品表的情况下,向其注入自定义奖励

版本

Forge 版本

  • 加载器: Forge
  • Minecraft: 1.20.1
  • 分支/模组: Potion Effects Set

重要提示:

  • 在 Forge 版本中,nbt 匹配普通的物品 NBT 数据

NeoForge 版本

  • 加载器: NeoForge
  • Minecraft: 1.21.1
  • 分支/模组: Neo Pot Effect Set

重要提示:

  • 在 NeoForge 版本中,你仍然在 JSON 中编写 nbt
  • 在内部,该匹配器会针对物品的 custom_data 组件进行检查

这意味着,即使 Minecraft 改变了自定义物品数据的存储方式,配置格式仍然保持熟悉。

共享数据包功能

两个版本都支持:

  • 精确物品条目,如 minecraft:diamond_sword
  • 根标签条目,如 #mymod:guardian_armor
  • 高级 rules 匹配器
  • sets 和 set_bonuses
  • loot_table_injections

快速示例

{
  "minecraft:diamond_sword": {
    "on_hit_effects": [
      {
        "effect": "minecraft:poison",
        "amplifier": 1,
        "duration": 100,
        "chance": 0.3,
        "slot": "mainhand"
      }
    ]
  }
}

当钻石剑在主手击中时,有 30% 的几率应用 5 秒的 中毒 II。

标签

当多个物品应共享相同的效果设置时,使用标签。

{
  "#mymod:guardian_armor": {
    "passive_effects": [
      {
        "effect": "minecraft:resistance",
        "amplifier": 0,
        "permanent": true
      }
    ]
  }
}

使用 rules 实现特殊变种

当同一个基础物品可以以不同变种存在时,使用 rules。

{
  "rules": [
    {
      "match": {
        "item": "minecraft:diamond_chestplate",
        "nbt": {
          "pem": {
            "set_id": "guardian"
          }
        }
      },
      "passive_effects": [
        {
          "effect": "minecraft:resistance",
          "amplifier": 1,
          "permanent": true,
          "slot": "chest"
        }
      ]
    }
  ]
}

推荐的模式:

  • 在你自己定义的根元素(如 pem)下存储自定义数据
  • 使用诸如 set_id、role、variant 或 rarity 等字段

套装

套装允许你随着装备更多匹配部件来解锁更强的加成。

{
  "sets": [
    {
      "id": "guardian",
      "display_name": "守护者套装",
      "piece_match": {
        "tag": "mymod:guardian_set"
      },
      "tiers": [
        {
          "required_pieces": 2,
          "passive_effects": [
            {
              "effect": "minecraft:resistance",
              "amplifier": 0,
              "permanent": true
            }
          ]
        },
        {
          "required_pieces": 4,
          "passive_effects": [
            {
              "effect": "minecraft:resistance",
              "amplifier": 1,
              "permanent": true
            },
            {
              "effect": "minecraft:absorption",
              "amplifier": 0,
              "permanent": true
            }
          ]
        }
      ]
    }
  ]
}

套装部件计数包括:

  • 主手
  • 副手
  • 盔甲
  • Curios

Curios 说明:

  • 重复匹配的饰品会分别计数
  • 两个相同的戒指可以算作两件套装部件

战利品表注入

该模组可以将你的自定义物品添加到现有的战利品表中,而无需替换它们。

注入自定义战利品表

{
  "inject": [
    {
      "targets": [
        "minecraft:chests/simple_dungeon",
        "minecraft:chests/abandoned_mineshaft"
      ],
      "loot_table": "mypack:chests/arcane_rewards",
      "rolls": 1,
      "chance": 0.25
    }
  ]
}

直接注入物品

{
  "inject": [
    {
      "targets": ["minecraft:chests/simple_dungeon"],
      "rolls": 1,
      "chance": 0.2,
      "items": [
        {
          "item": "minecraft:totem_of_undying",
          "name": "副手图腾",
          "nbt": {
            "pem": {
              "role": "offhand_totem"
            }
          }
        }
      ]
    }
  ]
}

玩家如何获得自定义物品

简单规则:

  • 如果你使用精确的 item 或 #tag,玩家可以正常获得基础物品
  • 如果你使用 nbt,游戏需要通过某种方式生成该特殊变种

生成这些物品的常见方式:

  • 战利品表
  • 战利品注入
  • 函数
  • 进度奖励
  • 脚本模组,如 KubeJS 或 CraftTweaker

冲突规则

如果多个活跃的来源给予相同的生物效果:

  • 它们不会堆叠为多个副本
  • 最强的效果胜出
  • 更高的放大等级优先

这意味着一个 2 件套可以给予 力量 I,而 4 件套级可以将其升级为 力量 II,而另一个套装如果给予不同的效果(如 速度),仍然可以共存。

提示文本

提示文本可以显示:

  • 物品上的直接效果
  • 匹配的套装加成
  • 当玩家上下文可用时,当前的套装部件数量

总结

如果你想要一个由数据包驱动的系统,用于:

  • 基于装备的药水效果
  • 物品标签
  • 自定义物品变种
  • 套装加成
  • Curios 计数
  • 生存友好的战利品整合

这个模组正是为此而构建的。

如需更详细的教程和额外帮助,请加入 Discord:

</details>

<details>
<summary><strong>👟 示例:速度靴子</strong></summary>

穿戴时给予 **速度 II**。

```json
{
  "minecraft:golden_boots": {
    "passive_effects": [
      {
        "effect": "minecraft:speed",
        "amplifier": 1,
        "permanent": true,
        "slot": "feet"
      }
    ]
  }
}
💍 示例:隐身戒指 (Curios)

在 'ring' 槽位穿戴时给予 隐身。

{
  "curios:ring_gold": {
    "passive_effects": [
      {
        "effect": "minecraft:invisibility",
        "amplifier": 0,
        "permanent": true,
        "slot": "ring",
        "is_curio": true
      }
    ]
  }
}

🔧 配置指南

📁 位置

world/datapacks/<name>/data/potioneffectsmodify/potion_effects/your_file.json

⚙️ 选项

属性 类型 描述
effect ID 药水效果 ID (例如 minecraft:strength)
amplifier Int 效果等级 (0 = I 级, 1 = II 级)
duration Int 持续时间 (刻) (20 刻 = 1 秒)
chance Float 击中/受击时的触发概率 (0.0 到 1.0)
slot String 所需槽位 (mainhand, head, feet, curios:ring 等)
permanent Bool 如果为 true,效果会自动刷新(用于被动效果)
is_curio Bool 如果目标是 Curios 槽位,请设置为 true

📦 安装方法

  1. 下载 模组并将其放入你的 mods 文件夹。
  2. (可选) 如果你需要饰品支持,请安装 Curios API。
  3. 启动 游戏。
  4. 创建 你的 JSON 配置文件(参见上面的示例)。
  5. 在游戏中运行 /reload 即可立即应用更改!

如有支持需求、建议或想要分享你的配置,请加入我们的 Discord!

Discord