Skip to content

自定义附魔 ​

在原有游戏的基础上,开发者可以通过 JSON 配置注册全新的自定义附魔,并使用 ModSDK 脚本编写附魔效果的具体实现。自定义附魔支持通过附魔台、铁砧、交易、战利品表等原生途径获取,与原版附魔系统完全兼容。

Demo

参考官方示例 EnchantDemo 了解四种附魔类型(持续型、循环型、触发型、诅咒型)的完整实现。

概述 ​

自定义附魔系统提供以下核心功能:

  1. 注册新的附魔并设置可附魔的装备槽位
  2. 设置附魔的最大等级与每级经验消耗
  3. 设置附魔稀有度(影响铁砧经验消耗)
  4. 配置宝藏型、诅咒型等特殊属性
  5. 设置冲突附魔关系
  6. 通过原版附魔获取途径(附魔台、铁砧、交易、战利品表)获取

待补充:自定义附魔与原版附魔系统的交互细节。

附魔类型 ​

通过 Demo 中的四种附魔类型示例,可以了解不同场景下的附魔实现方式:

类型说明示例
持续型装备后持续生效疾行(移动速度提升,附在靴子上)
循环型周期性触发效果雷鸣四方(定期在周围落雷,附在头盔上)
触发型特定事件触发战利品(攻击生物时生成苹果,附在镐上)
诅咒型负面效果,不可通过砂轮移除沉重(添加饥饿效果,附在剑上)

待补充:各类型附魔的脚本监听事件与实现模式。

附魔等级与经验消耗 ​

通过 max_level 设置附魔最大等级,通过 cost 数组设置每级对应的经验消耗。cost 数组的元素数量必须与 max_level 一致。

稀有度与铁砧经验计算 ​

稀有度铁砧 cost 系数
common1
uncommon2
rare4
very_rare8

待补充:铁砧结合附魔物品的完整经验计算公式。

附魔 JSON 配置 ​

在行为包和资源包内添加 netease_enchants/ 文件夹,创建自定义附魔 JSON 文件。

json
{
  "netease:enchant": {
    "identifier": "mymod:custom_enchant",
    "description": "enchantment.mymod.custom_enchant",
    "primary_slots": ["sword"],
    "cost": [3, 6, 9],
    "max_level": 3,
    "frequency": "rare",
    "is_treasure_only": false,
    "is_discoverable": true,
    "is_lootable": true,
    "is_curse": false,
    "incompatible": ["sharpness"]
  }
}

附魔槽位(primary_slots) ​

槽位对应装备
all全部
g_armor全部盔甲
armor_head头盔
armor_torso胸甲
armor_legs护腿
armor_feet靴子
sword剑
bow弓
g_digging锄、斧、镐、锹
shield盾牌

待补充:完整槽位列表与自定义物品的槽位配置。

注意

identifier 必须全部使用小写字母。行为包和资源包都需要添加 netease_enchants/ 文件夹。

附魔与掉落表集成 ​

自定义附魔可以通过三种掉落表函数在战利品表中使用:

  1. enchant_with_levels:按附魔等级范围随机附魔
  2. enchant_randomly:完全随机附魔
  3. specific_enchants:指定特定附魔

待补充:三种函数的 JSON 配置格式与使用场景。

脚本事件监听 ​

自定义附魔的效果需要通过 ModSDK 脚本实现。开发者可以监听相关事件(如装备变更、攻击、周期 Tick 等)来实现附魔逻辑。

待补充:常用事件列表、从 itemDict 获取附魔信息的方法、效果实现示例代码。

完整示例 ​

待补充:一个从 JSON 注册到脚本实现的完整自定义附魔示例,包含行为包、资源包与脚本文件的目录结构。

下一步 ​