Skip to content

效果与系统组件速查 ​

本页汇总附魔、状态效果、音效、指令等"效果与系统"类内容的所有组件与字段,标注可选参数,方便快速查阅。

使用方法

  • 附魔配置写在 netease_enchants/ 目录下(行为包和资源包均需)
  • 状态效果写在行为包 netease_effects/ 下
  • 音效定义写在资源包 sounds/ 和 sound_definitions.json 中
  • 自定义指令配置写在行为包 netease_commands/ 下

附魔 ​

JSON 字段(netease_enchants/) ​

字段类型可选参数说明详细文档
identifierstr命名空间:附魔名,全小写附魔标识符自定义附魔
descriptionstr语言文件键名,如 enchantment.mymod.swift附魔描述自定义附魔
primary_slotsarrayall / g_armor / armor_head / armor_torso / armor_legs / armor_feet / sword / bow / crossbow / trident / digger主槽位列表自定义附魔
costarray(int)整数数组,长度 = max_level,如 [3, 6, 9]每级经验消耗自定义附魔
max_levelint正整数,如 3最大等级自定义附魔
frequencystrcommon / uncommon / rare / very_rare稀有度自定义附魔
is_treasure_onlybooltrue / false是否仅限宝藏(不在附魔台出现)自定义附魔
is_discoverablebooltrue / false是否可在附魔台发现自定义附魔
is_lootablebooltrue / false是否可在战利品表出现自定义附魔
is_cursebooltrue / false是否为诅咒型(不可通过砂轮移除)自定义附魔
incompatiblearray(str)附魔 ID 数组,如 ["sharpness", "smite"]冲突附魔列表自定义附魔

附魔槽位表(primary_slots) ​

槽位对应装备
all全部
g_armor全部盔甲
armor_head头盔
armor_torso胸甲
armor_legs护腿
armor_feet靴子
sword剑
bow弓
crossbow弩
trident三叉戟
digger锄、斧、镐、锹

稀有度表(frequency) ​

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

附魔类型 ​

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

状态效果 ​

JSON 组件(netease_effects/) ​

组件类型可选参数说明详细文档
minecraft:particle_colorarray(int)[R, G, B],取值 0-255,如 [255, 128, 0]粒子效果的 RGB 颜色自定义状态效果
minecraft:iconstr图标名称,对应资源包 textures/ui/{name}_effect.png状态效果图标自定义状态效果

食物触发字段(effects 数组项) ​

在自定义食物的 minecraft:food 组件中通过 effects 数组触发状态效果:

字段类型可选参数说明详细文档
namestr状态 identifier,如 custom_effect:my_effect状态名称自定义状态效果
chancefloat0.0 ~ 1.0,如 1.0 表示 100% 概率获得该状态的概率自定义状态效果
durationint正整数(秒),如 30状态效果持续时间自定义状态效果
amplifierint非负整数,值+1=效果等级,如 4 表示 5 级状态放大倍数自定义状态效果

音效 ​

定义文件 ​

文件位置说明详细文档
sound_definitions.json资源包 sounds/ 目录定义音效资源名称、文件路径、分类、音量等自定义音效与音乐
music_definitions.json资源包 sounds/ 目录定义场景自动播放的背景音乐自定义音效与音乐

音效分类(category) ​

分类说明
master主音量
music音乐
record唱片
weather天气音效
block方块音效
hostile敌对生物音效
neutral中性生物音效
player玩家音效
ambient环境音效
system系统/界面音效

脚本播放接口 ​

接口可选参数说明详细文档
PlaySoundToPlayerplayerId: str, soundName: str, pos: tuple(float,float,float), volume: float(默认1.0), speed: float(默认1.0)向指定玩家播放音效自定义音效与音乐
StopSoundToPlayerplayerId: str, soundName: str停止指定玩家的音效播放自定义音效与音乐
PlayMusicToPlayerplayerId: str, soundName: str, volume: float(默认1.0), speed: float(默认1.0), loop: bool(默认False)向指定玩家播放背景音乐自定义音效与音乐

自定义指令 ​

注册字段(netease_commands/) ​

字段类型可选参数说明详细文档
namestr指令名称,如 "heal"指令名,玩家输入 /名称 触发自定义指令
descriptionstr描述文本或语言文件键名指令描述,显示在补全列表中自定义指令
permission_levelstrany / game_directors / admin / host / owner权限等级自定义指令

权限等级 ​

等级说明
any任何人可运行
game_directors任何操作员可运行(含命令方块)
admin任何操作员可运行(不含命令方块)
host仅服务器主机可运行
owner仅专用服务器可运行

参数类型(args 数组项) ​

type 值示例说明
int1, 100, -5整数
float1.5, 0.8浮点数
string"hello", "world"文本字符串
booltrue, false布尔值
target@s, @a, @p[r=10]目标选择器
pos0 64 0, 10 64 -5坐标(x y z)
blockminecraft:stone, mymod:ore方块名称
entityminecraft: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