效果与系统组件速查
本页汇总附魔、状态效果、音效、指令等"效果与系统"类内容的所有组件与字段,标注可选参数,方便快速查阅。
使用方法
- 附魔配置写在
netease_enchants/目录下(行为包和资源包均需) - 状态效果写在行为包
netease_effects/下 - 音效定义写在资源包
sounds/和sound_definitions.json中 - 自定义指令配置写在行为包
netease_commands/下
附魔
JSON 字段(netease_enchants/)
| 字段 | 类型 | 可选参数 | 说明 | 详细文档 |
|---|---|---|---|---|
identifier | str | 命名空间:附魔名,全小写 | 附魔标识符 | 自定义附魔 |
description | str | 语言文件键名,如 enchantment.mymod.swift | 附魔描述 | 自定义附魔 |
primary_slots | array | all / g_armor / armor_head / armor_torso / armor_legs / armor_feet / sword / bow / crossbow / trident / digger | 主槽位列表 | 自定义附魔 |
cost | array(int) | 整数数组,长度 = max_level,如 [3, 6, 9] | 每级经验消耗 | 自定义附魔 |
max_level | int | 正整数,如 3 | 最大等级 | 自定义附魔 |
frequency | str | common / uncommon / rare / very_rare | 稀有度 | 自定义附魔 |
is_treasure_only | bool | true / false | 是否仅限宝藏(不在附魔台出现) | 自定义附魔 |
is_discoverable | bool | true / false | 是否可在附魔台发现 | 自定义附魔 |
is_lootable | bool | true / false | 是否可在战利品表出现 | 自定义附魔 |
is_curse | bool | true / false | 是否为诅咒型(不可通过砂轮移除) | 自定义附魔 |
incompatible | array(str) | 附魔 ID 数组,如 ["sharpness", "smite"] | 冲突附魔列表 | 自定义附魔 |
附魔槽位表(primary_slots)
| 槽位 | 对应装备 |
|---|---|
all | 全部 |
g_armor | 全部盔甲 |
armor_head | 头盔 |
armor_torso | 胸甲 |
armor_legs | 护腿 |
armor_feet | 靴子 |
sword | 剑 |
bow | 弓 |
crossbow | 弩 |
trident | 三叉戟 |
digger | 锄、斧、镐、锹 |
稀有度表(frequency)
| 稀有度 | 铁砧 cost 系数 |
|---|---|
common | 1 |
uncommon | 2 |
rare | 4 |
very_rare | 8 |
附魔类型
| 类型 | 说明 | 示例 |
|---|---|---|
| 持续型 | 装备后持续生效 | 疾行(移动速度提升,附在靴子上) |
| 循环型 | 周期性触发效果 | 雷鸣四方(定期在周围落雷,附在头盔上) |
| 触发型 | 特定事件触发 | 战利品(攻击生物时生成苹果,附在镐上) |
| 诅咒型 | 负面效果,不可通过砂轮移除 | 沉重(添加饥饿效果,附在剑上) |
状态效果
JSON 组件(netease_effects/)
| 组件 | 类型 | 可选参数 | 说明 | 详细文档 |
|---|---|---|---|---|
minecraft:particle_color | array(int) | [R, G, B],取值 0-255,如 [255, 128, 0] | 粒子效果的 RGB 颜色 | 自定义状态效果 |
minecraft:icon | str | 图标名称,对应资源包 textures/ui/{name}_effect.png | 状态效果图标 | 自定义状态效果 |
食物触发字段(effects 数组项)
在自定义食物的 minecraft:food 组件中通过 effects 数组触发状态效果:
| 字段 | 类型 | 可选参数 | 说明 | 详细文档 |
|---|---|---|---|---|
name | str | 状态 identifier,如 custom_effect:my_effect | 状态名称 | 自定义状态效果 |
chance | float | 0.0 ~ 1.0,如 1.0 表示 100% 概率 | 获得该状态的概率 | 自定义状态效果 |
duration | int | 正整数(秒),如 30 | 状态效果持续时间 | 自定义状态效果 |
amplifier | int | 非负整数,值+1=效果等级,如 4 表示 5 级 | 状态放大倍数 | 自定义状态效果 |
音效
定义文件
| 文件 | 位置 | 说明 | 详细文档 |
|---|---|---|---|
sound_definitions.json | 资源包 sounds/ 目录 | 定义音效资源名称、文件路径、分类、音量等 | 自定义音效与音乐 |
music_definitions.json | 资源包 sounds/ 目录 | 定义场景自动播放的背景音乐 | 自定义音效与音乐 |
音效分类(category)
| 分类 | 说明 |
|---|---|
master | 主音量 |
music | 音乐 |
record | 唱片 |
weather | 天气音效 |
block | 方块音效 |
hostile | 敌对生物音效 |
neutral | 中性生物音效 |
player | 玩家音效 |
ambient | 环境音效 |
system | 系统/界面音效 |
脚本播放接口
| 接口 | 可选参数 | 说明 | 详细文档 |
|---|---|---|---|
PlaySoundToPlayer | playerId: str, soundName: str, pos: tuple(float,float,float), volume: float(默认1.0), speed: float(默认1.0) | 向指定玩家播放音效 | 自定义音效与音乐 |
StopSoundToPlayer | playerId: str, soundName: str | 停止指定玩家的音效播放 | 自定义音效与音乐 |
PlayMusicToPlayer | playerId: str, soundName: str, volume: float(默认1.0), speed: float(默认1.0), loop: bool(默认False) | 向指定玩家播放背景音乐 | 自定义音效与音乐 |
自定义指令
注册字段(netease_commands/)
| 字段 | 类型 | 可选参数 | 说明 | 详细文档 |
|---|---|---|---|---|
name | str | 指令名称,如 "heal" | 指令名,玩家输入 /名称 触发 | 自定义指令 |
description | str | 描述文本或语言文件键名 | 指令描述,显示在补全列表中 | 自定义指令 |
permission_level | str | any / game_directors / admin / host / owner | 权限等级 | 自定义指令 |
权限等级
| 等级 | 说明 |
|---|---|
any | 任何人可运行 |
game_directors | 任何操作员可运行(含命令方块) |
admin | 任何操作员可运行(不含命令方块) |
host | 仅服务器主机可运行 |
owner | 仅专用服务器可运行 |
参数类型(args 数组项)
| type 值 | 示例 | 说明 |
|---|---|---|
int | 1, 100, -5 | 整数 |
float | 1.5, 0.8 | 浮点数 |
string | "hello", "world" | 文本字符串 |
bool | true, false | 布尔值 |
target | @s, @a, @p[r=10] | 目标选择器 |
pos | 0 64 0, 10 64 -5 | 坐标(x y z) |
block | minecraft:stone, mymod:ore | 方块名称 |
entity | minecraft:zombie, mymod:ghost | 实体名称 |
参数默认值
含有 default 的参数必须排在参数列表尾部,在游戏中可以不传。最多支持 10 套参数变体(args, args1 ~ args9)。
组件速写模板
附魔 JSON
json
{
"netease:enchant": {
"identifier": "mymod:swift",
"description": "enchantment.mymod.swift",
"primary_slots": ["armor_feet"],
"cost": [3, 6, 9],
"max_level": 3,
"frequency": "rare",
"is_treasure_only": false,
"is_discoverable": true,
"is_lootable": true,
"is_curse": false,
"incompatible": ["soul_speed"]
}
}自定义状态效果 JSON
json
{
"format_version": "1.10",
"minecraft:effect": {
"description": {
"identifier": "mymod:weightless"
},
"components": {
"minecraft:particle_color": [128, 200, 255],
"minecraft:icon": "weightless"
}
}
}自定义指令 JSON
json
{
"format_version": "0.0.1",
"name": "heal",
"description": "治疗指定玩家",
"permission_level": "game_directors",
"args": [
{"name": "目标", "type": "target"},
{"name": "数量", "type": "int", "default": 1}
]
}指令回调脚本
python
import server.extraServerApi as serverApi
ServerSystem = serverApi.GetServerSystemCls()
class MyMod(ServerSystem):
def __init__(self, namespace, systemName):
super(MyMod, self).__init__(namespace, systemName)
self.ListenForEvent(
serverApi.GetEngineNamespace(),
serverApi.GetEngineSystemName(),
'CustomCommandTriggerServerEvent',
self, self.OnCustomCommand
)
def OnCustomCommand(self, args):
cmd = args.get("command")
if cmd == "/heal":
target = args.get("arg_target")
amount = args.get("arg_amount", 20)
comp = serverApi.GetEngineCompFactory().CreateAttr(target)
comp.SetAttrValue(0, amount) # 0 = HEALTH