自定义附魔
在原有游戏的基础上,开发者可以通过 JSON 配置注册全新的自定义附魔,并使用 ModSDK 脚本编写附魔效果的具体实现。自定义附魔支持通过附魔台、铁砧、交易、战利品表等原生途径获取,与原版附魔系统完全兼容。
Demo
参考官方示例 EnchantDemo 了解四种附魔类型(持续型、循环型、触发型、诅咒型)的完整实现。
概述
自定义附魔系统提供以下核心功能:
- 注册新的附魔并设置可附魔的装备槽位
- 设置附魔的最大等级与每级经验消耗
- 设置附魔稀有度(影响铁砧经验消耗)
- 配置宝藏型、诅咒型等特殊属性
- 设置冲突附魔关系
- 通过原版附魔获取途径(附魔台、铁砧、交易、战利品表)获取
待补充:自定义附魔与原版附魔系统的交互细节。
附魔类型
通过 Demo 中的四种附魔类型示例,可以了解不同场景下的附魔实现方式:
| 类型 | 说明 | 示例 |
|---|---|---|
| 持续型 | 装备后持续生效 | 疾行(移动速度提升,附在靴子上) |
| 循环型 | 周期性触发效果 | 雷鸣四方(定期在周围落雷,附在头盔上) |
| 触发型 | 特定事件触发 | 战利品(攻击生物时生成苹果,附在镐上) |
| 诅咒型 | 负面效果,不可通过砂轮移除 | 沉重(添加饥饿效果,附在剑上) |
待补充:各类型附魔的脚本监听事件与实现模式。
附魔等级与经验消耗
通过 max_level 设置附魔最大等级,通过 cost 数组设置每级对应的经验消耗。cost 数组的元素数量必须与 max_level 一致。
稀有度与铁砧经验计算
| 稀有度 | 铁砧 cost 系数 |
|---|---|
common | 1 |
uncommon | 2 |
rare | 4 |
very_rare | 8 |
待补充:铁砧结合附魔物品的完整经验计算公式。
附魔 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/ 文件夹。
附魔与掉落表集成
自定义附魔可以通过三种掉落表函数在战利品表中使用:
enchant_with_levels:按附魔等级范围随机附魔enchant_randomly:完全随机附魔specific_enchants:指定特定附魔
待补充:三种函数的 JSON 配置格式与使用场景。
脚本事件监听
自定义附魔的效果需要通过 ModSDK 脚本实现。开发者可以监听相关事件(如装备变更、攻击、周期 Tick 等)来实现附魔逻辑。
待补充:常用事件列表、从 itemDict 获取附魔信息的方法、效果实现示例代码。
完整示例
待补充:一个从 JSON 注册到脚本实现的完整自定义附魔示例,包含行为包、资源包与脚本文件的目录结构。
