自定义状态效果
开发者可以在 addon 的行为包目录下新增 netease_effects/ 文件夹,通过配置 JSON 文件来添加自定义状态效果。自定义状态效果支持设置粒子颜色、图标,并可通过脚本接口或自定义食物触发。该功能不需要开启实验性玩法。
Demo
参考官方示例 CustomEffectsMod 了解自定义状态效果的完整实现。
概述
自定义状态效果允许开发者创建全新的 Buff/Debuff 效果。效果的视觉表现(图标、粒子颜色)通过 JSON 配置,具体的游戏逻辑(如属性修改、伤害计算)通过 ModSDK 脚本实现。
主要特性:
- 通过 JSON 注册自定义状态效果
- 支持自定义粒子颜色和效果图标
- 可通过脚本接口动态添加/移除效果
- 可通过自定义食物的
effects字段自动触发 - 支持效果等级与持续时间配置
待补充:自定义状态效果与原版效果的区别说明。
状态效果 JSON 配置(netease_effects/)
在行为包 behavior_pack 目录下新增 netease_effects/ 文件夹,添加自定义状态的 JSON 配置文件。
{
"format_version": "1.10",
"minecraft:effect": {
"description": {
"identifier": "custom_effect:my_effect"
},
"components": {
"minecraft:particle_color": [255, 128, 0],
"minecraft:icon": "my_effect"
}
}
}字段说明
| 字段 | 说明 |
|---|---|
identifier | 自定义状态的唯一标识符,格式为 命名空间:状态名,必须全小写 |
minecraft:particle_color | 玩家身上粒子效果的 RGB 颜色,格式 [R, G, B],取值 0-255 |
minecraft:icon | 状态图标名称,对应资源包中的图标文件 |
注意
identifier 必须全部使用小写字母。如果包含大写字母,在添加到自定义食物中时会失效。
待补充:完整的 JSON 字段参考表。
效果图标
效果图标需要放置在资源包的 resource_pack/textures/ui/ 目录下,文件命名规则为 {icon名称}_effect.png。
例如,当 minecraft:icon 设置为 "weightless" 时,图标文件应命名为 weightless_effect.png。
注意
图标路径和命名必须严格遵守上述规则,否则将不会生效。
待补充:图标尺寸建议与设计规范。
粒子颜色
minecraft:particle_color 使用 RGB 颜色模式,三个整数分别表示红、绿、蓝通道的值(0-255)。添加状态效果后,玩家身上会显示对应颜色的粒子。
待补充:粒子颜色预览与常用颜色值参考。
效果叠加与等级
状态效果支持设置等级(amplifier)和持续时间(duration)。amplifier 的值加 1 即为状态效果等级,例如 amplifier: 4 表示效果等级为 5 级。
待补充:效果叠加规则、等级上限、多效果共存时的处理逻辑。
脚本控制
自定义状态效果可通过 ModSDK 的 effect 组件接口进行动态控制,包括添加效果、移除效果、查询当前效果列表等。
待补充:常用 API 列表与代码示例。
通过自定义食物触发
在自定义食物的 JSON 中配置 effects 字段即可实现食用时自动添加效果:
"effects": [
{
"name": "custom_effect:my_effect",
"chance": 1.0,
"duration": 30,
"amplifier": 2
}
]| 字段 | 说明 |
|---|---|
name | 状态名称,与自定义状态的 identifier 对应 |
chance | 获得该状态的概率,取值 0-1 |
duration | 状态效果持续时间(秒) |
amplifier | 状态放大倍数,值+1 即为效果等级 |
待补充:多种效果组合与概率配置示例。
本地化
在语言文件 texts/zh_CN.lang 中可以对自定义状态名称进行本地化:
minecraft:custom_effect=我的自定义效果待补充:多语言支持说明。
完整示例
待补充:一个从 JSON 注册到脚本控制的完整自定义状态效果示例,包含行为包、资源包与脚本文件的目录结构。
