(=°ω°)丿



本文标题:【教程】[1.14] 自定义进度:从入门到弃坑
本文链接:http://www.mcbbs.net/thread-892563-1-1.html
作  者:@Teenager_Yang@897412176


本帖部分内容引自 Minecraft 中文 Wiki 的 进度命令 页面,并结合个人体验进行了部分修改。
如果有什么好的建议,或者本帖有什么错误,欢迎回复。
如果转载,请注明出处。切勿用于商业目的。


可参考:【1.13-1.14】数据包(原版模组)入门教程


简介





进度advancement,数据包的组成部分,是一种用来逐步引导新手玩家融入游戏,并给予他们需完成的挑战的途径的系统,于 1.12 取代成就系统。自定义进度可在游戏内被用于检测玩家的行为,并给予相对应的奖励。通过 1.12 加入的 advancement 命令,可以直接给予或移除一位玩家特定的进度。


所有的自定义进度应该放置在数据包的 data/(命名空间)/advancements 文件夹下,每个 JSON 文件对应一个自定义进度,每一个根进度对应一个选项卡。(因此可以在 advancements 文件夹下,创建多个文件夹,再放入多个根进度来达到多个选项卡的效果)


注:
1、选项卡:就是图片(进度屏幕,默认按 L 键打开)里上面那一排东西,这里有5个(图标从左到右依次是草方块、地图、地狱红砖、末地时和干草块)。
2、根进度(文件名为 root.json):你看到那个草方块了没?(我说的是旁边连着木镐的那个),那个就是根进度!
你说那几个黄色的方格子,连起来像不像一棵树?对,那个就叫进度树。(根进度均位于进度树的最左边)
在教程正式开始之前,你需要对进度有一个大致的了解:点这里


本节完。点击论坛界面右侧的粉色「书签」可以快速回到上方目录。





格式


概述


1.14 内进度的格式相比 1.12、1.13 没有较大改动。


一个较为复杂的自定义进度由以下几个部分组成:
- display:决定此进度在进度屏幕(默认 L 键打开)的显示效果。(就是你在前面那张图里看到的那个)
-parent:决定此进度的父进度(不适用于根进度)。
- criteria:决定完成此进度涉及的条件。(如:打僵尸、喝牛奶、放方块等)
- requirements:决定各个条件间的关系(与、或)(如:各个条件是都要完成还是挑几个完成?)。
- rewards:决定当此进度达成时获得的所有奖励。
注:
一个进度的父进度:在该进度的左侧,与该进度通过(折)线段相连的进度,如前面那张图中草方块就是木镐的父进度。子进度恰好相反。根进度没有父进度。


下面,我们一个个来讲。


本节完。点击论坛界面右侧的粉色「书签」可以快速回到上方目录。





格式


display 显示
决定一个进度在进度屏幕的显示效果。(就是你在前面那张图里看到的那个)


格式:
(复合标签)根标签
-(复合标签)display:此进度的显示效果。可选,默认为不在进度屏幕显示。(你啥也看不见!)
    -(复合标签)icon:此进度显示的图标(物品)。必选。
  -(字符串)item:物品的英文ID。必选。
  -(字符串)nbt:物品的 Nbt 标签。可选,默认为没有 Nbt 标签。
    -(字符串或复合标签)title:此进度的标题,可为JSON文本。可选,默认为标题为空。
    -(字符串)frame:此进度使用的边框,一共有三种。可选,默认为普通进度边框。(就是那个黄色格子)
    -(字符串)background:此进度所在选项卡的背景图片,值为图片地址(仅适用于根进度)。必选。
    -(字符串或复合标签)description:对此进度的描述,可为JSON文本。可选,默认为没有描述。
    -(布尔型)show_toast:完成此进度后是否显示右上角的提示信息。可选,默认为是。
    -(布尔型)announce_to_chat:完成此进度后是否显示聊天窗口的提示信息。(告诉所有人!)可选,默认为是。
    -(布尔型)hidden:是否在进度屏幕隐藏此进度,直到此进度或此进度的一个下游进度被完成(对根进度无效)。可选,默认为否。
注:1、三种进度边框分别为普通进度(task)、目标进度(goal)和挑战进度(challenge)。

2、一个进度的上游进度:该进度的父进度、该进度的父进度的父进度、该进度的父进度的父进度的父进度……直到根进度的统称。根进度无上游进度。
3、一个进度的下游进度:该进度的子进度、该进度的子进度的子进度、该进度的子进度的子进度的子进度……直到没有子进度的进度的统称。


例子:
代码
翻译

代码:

  1. {
  2. "display": {
  3.     "icon": {
  4.    "item": "minecraft:apple",
  5.    "nbt":"{happy:1b}"
  6.     },
  7.     "title": "一个苹果",
  8.     "frame": "task",
  9.     "background": "minecraft:textures/block/cobblestone.png",
  10.     "description": "这是一个新鲜的苹果",
  11.     "show_toast": true,
  12.     "announce_to_chat": true,
  13.     "hidden": false
  14. }
  15. }

代码:

  1. {
  2. "显示": {
  3.     "图标": {
  4.    "物品": "苹果",
  5.    "Nbt标签":"{happy:1b}"
  6.     },
  7.     "标题": "一个苹果",
  8.     "边框": "普通进度",
  9.     "背景": "原版圆石材质的图片地址",
  10.     "描述": "这是一个新鲜的苹果",
  11.     "右上角完成提示": 是,
  12.     "聊天窗口完成提示": 是,
  13.     "完成前隐藏": 否
  14. }
  15. }



效果:



使用了 JSON 文本的 "title" 和 "description" 的例子:
代码
翻译

代码:

  1. {
  2. "display": {
  3.     "title": {
  4.    "text": "苹果",
  5.    "color": "red",
  6.    "bold": true,
  7.    "underlined": true
  8.     },
  9.     "description": [
  10.    {
  11.   "text": "这是一个 ",
  12.   "color": "yellow"
  13.    },
  14.    {
  15.   "text": "苹果",
  16.   "color": "gold"
  17.    }
  18.     ]
  19. }
  20. }

代码:

  1. {
  2. "显示": {
  3.     "标题": {
  4.    "文本": "苹果",
  5.    "颜色": "红色",
  6.    "加粗": 是,
  7.    "下划线": 是
  8.     },
  9.     "描述": [
  10.    {
  11.   "文本": "这是一个 ",
  12.   "颜色": "黄色"
  13.    },
  14.    {
  15.   "text": "苹果",
  16.   "颜色": "金色"
  17.    }
  18.     ]
  19. }
  20. }



本节完。点击论坛界面右侧的粉色「书签」可以快速回到上方目录。





格式


parent 父进度
决定此进度的父进度(不适用于根进度)。


格式:
(复合标签)根标签
-(字符串)parent:此进度的父进度(不适用于根进度),值为父进度的地址。必选。

例子:
代码
翻译

代码:

  1. {
  2. "parent":"apple:root"
  3. }

代码:

  1. {
  2. "父进度":"苹果:根进度"
  3. }

注意:这里的地址的实际位置是 data\apple\advancements\root.json


本节完。点击论坛界面右侧的粉色「书签」可以快速回到上方目录。





格式


criteria 和 requirements 条件
criteria:决定完成此进度涉及的条件。
requirements:决定各个条件间的关系(与、或)。


格式:
(复合标签)根标签
-(复合标签)criteria:完成此进度涉及的条件。必选。
-(复合标签)条件名称:此条件的名称(可以为任何字符串,必须唯一)。必选。
-(字符串)trigger:此条件的触发器。必选。
-(复合标签)conditions:当触发器激活时所有需要达成的条件。必选。
-(列表)requirements:各个条件间的关系。可选,默认为完成此进度涉及的条件均要完成。

criteria 决定完成此进度涉及的条件。


例子:
条件1:繁殖奶牛
条件2:从酿造台里拿出速度药水
条件3:获得至少3颗钻石
条件4:获得钻石
(条件1-4分别命名为 thing1-thing4)


代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "thing1": {
  4.    "trigger": "minecraft:bred_animals",
  5.    "conditions": {
  6.   "child": {
  7.     "type": "minecraft:cow"
  8.   }
  9.    }
  10.     },
  11.     "thing2": {
  12.    "trigger": "minecraft:brewed_potion",
  13.    "conditions": {
  14.   "potion": "minecraft:swiftness"
  15.    }
  16.     },
  17.     "thing3": {
  18.    "trigger": "minecraft:inventory_changed",
  19.    "conditions": {
  20.   "items": [
  21.     {
  22.    "item": "minecraft:diamond",
  23.    "count": {
  24.   "min": 3
  25.    }
  26.     }
  27.    }
  28.     },
  29.     "thing4": {
  30.    "trigger": "minecraft:player_killed_entity",
  31.    "conditions": {
  32.   "entity": {
  33.     "type": "minecraft:creeper"
  34.   }
  35.    }
  36.     }
  37. }
  38. }

代码:

  1. {
  2. "涉及条件": {
  3.     "条件1": {
  4.    "触发器": "繁殖动物",
  5.    "激活条件": {
  6.   "后代": {
  7.     "种类": "奶牛"
  8.   }
  9.    }
  10.     },
  11.     "条件2": {
  12.    "触发器": "拿出药水",
  13.    "激活条件": {
  14.   "药水": "迅捷药水"
  15.    }
  16.     },
  17.     "条件3": {
  18.    "触发器": "获得物品",
  19.    "激活条件": {
  20.   "物品": [
  21.     {
  22.    "物品": "钻石",
  23.    "数量": {
  24.   "最小": 3
  25.    }
  26.     }
  27.    }
  28.     },
  29.     "条件4": {
  30.    "触发器": "玩家杀死实体",
  31.    "激活条件": {
  32.   "实体": {
  33.     "种类": "爬行者"
  34.   }
  35.    }
  36.     }
  37. }
  38. }

requirements 决定各个条件间的关系。


例子:
让玩家必须在条件1和条件2中,条件3和条件4中各挑一个完成,才能达成进度,
也就是:达成进度=(条件1 或 条件2)与(条件3 或 条件4)
(条件1-4分别命名为 thing1-thing4)


代码
翻译

代码:

  1. {
  2.     "requirements": [
  3.     [
  4.    "thing1",
  5.    "thing2"
  6.     ],
  7.     [
  8.    "thing3",
  9.    "thing4"
  10.     ]
  11. ]
  12. }

代码:

  1. {
  2. "条件间关系": [
  3.     [
  4.    "条件1",
  5.    "条件2"
  6.     ],
  7.     [
  8.    "条件3",
  9.    "条件4"
  10.     ]
  11. ]
  12. }

更多关于触发器的内容,我们会在以后讲到。





格式


rewards 奖励
决定当此进度达成时获得的所有奖励。


格式:
(复合标签)根进度
-(复合标签)rewards:当进度达成时获得的所有奖励。可选,默认为没有奖励。
    -(列表)recipes:解锁的配方,值为配方列表。可选,默认为没有配方被解锁。
    -(列表)loot:获得的战利品,值为战利品表列表。可选,默认为没有战利品。
    -(整型)experience:获得的经验值。可选,默认为没有经验。
    -(字符串)function:以进度获得者为执行者,在其所在的位置执行的函数,值为函数地址。可选,默认为没有函数。

例子:
代码
翻译

代码:

  1. {
  2. "rewards": {
  3.     "recipes": [
  4.    "minecraft:stone_axe",
  5.    "minecraft:cooked_beef_from_smoking"
  6.     ],
  7.     "loot": [
  8.    "minecraft:chests/jungle_temple"
  9.     ],
  10.     "experience": 10,
  11.     "function": "apple:example"
  12. }
  13. }

代码:

  1. {
  2. "奖励": {
  3.     "解锁配方": [
  4.    "石斧",
  5.    "用烟熏炉烧熟牛肉"
  6.     ],
  7.     "战利品": [
  8.    "丛林神庙的箱子"
  9.     ],
  10.     "经验": 10,
  11.     "运行函数": "苹果:例子"
  12. }
  13. }

本节完。点击论坛界面右侧的粉色「书签」可以快速回到上方目录。





触发器


由于 Minecraft Wiki 在这一部分讲解的比较详细且较为简单,可以参考:进度/触发器列表
可根据 Wiki 给出的格式和例子自行学习。
如果例子看不懂,可以试着将例子中的英文单词翻译成中文。
当然,为了方便读者,我们也给出了例子的中文翻译。


另外,根据 ruhuasiyu 所说,对于触发器 minecraft:consume_item (食用或饮下物品)在物品是药水的情况下,无法识别药水的自定义 nbt,但可以识别 不存在的效果数字 id 。与记分版不同的是,CustomPotionEffects(自定义药水效果)在消耗之前可以被进度检测到,而记分板则是在之后。


数据标签键值数据类型 可能对你会有帮助。



本节完。点击论坛界面右侧的粉色「书签」可以快速回到上方目录。





例子


1、可通过自行解压 版本.jar 文件来获得原版的进度。


2、可参考 Wiki 或坛内 dalao 给出的例子。


3、不懂的可以去原版问答版提问。


4、下面是一个较为复杂的例子。
(条件1-4分别命名为 thing1-thing4)


代码
翻译

代码:

  1. {
  2. "display": {
  3.     "icon": {
  4.    "item": "minecraft:apple",
  5.    "nbt":"{happy:1b}"
  6.     },
  7.     "title": "一个苹果",
  8.     "frame": "thing",
  9.     "background": "minecraft:textures/block/cobblestone.png",
  10.     "description": "这是一个新鲜的苹果",
  11.     "show_toast": true,
  12.     "announce_to_chat": true,
  13.     "hidden": false
  14. },
  15. "criteria": {
  16.     "thing1": {
  17.    "trigger": "minecraft:bred_animals",
  18.    "conditions": {
  19.   "child": {
  20.     "type": "minecraft:cow"
  21.   }
  22.    }
  23.     },
  24.     "thing2": {
  25.    "trigger": "minecraft:brewed_potion",
  26.    "conditions": {
  27.   "potion": "minecraft:swiftness"
  28.    }
  29.     },
  30.     "thing3": {
  31.    "trigger": "minecraft:inventory_changed",
  32.    "conditions": {
  33.   "items": [
  34.     {
  35.    "item": "minecraft:diamond",
  36.    "count": {
  37.   "min": 3
  38.    }
  39.     }
  40.   ]
  41.    }
  42.     },
  43.     "thing4": {
  44.    "trigger": "minecraft:player_killed_entity",
  45.    "conditions": {
  46.   "entity": {
  47.     "type": "minecraft:creeper"
  48.   }
  49.    }
  50.     }
  51. },
  52. "requirements": [
  53.     [
  54.    "thing1",
  55.    "thing2"
  56.     ],
  57.     [
  58.    "thing3",
  59.    "thing4"
  60.     ]
  61. ],
  62. "rewards": {
  63.     "recipes": [
  64.    "minecraft:stone_axe",
  65.    "minecraft:cooked_beef_from_smoking"
  66.     ],
  67.     "loot": [
  68.    "minecraft:chests/jungle_temple"
  69.     ],
  70.     "experience": 10,
  71.     "function": "apple:item"
  72. }
  73. }

代码:

  1. {
  2. "显示": {
  3.     "图标": {
  4.    "物品": "苹果",
  5.    "Nbt标签":"{happy:1b}"
  6.     },
  7.     "标题": "一个苹果",
  8.     "边框": "普通进度",
  9.     "背景": "原版圆石材质的图片地址",
  10.     "描述": "这是一个新鲜的苹果",
  11.     "右上角完成提示": 是,
  12.     "聊天窗口完成提示": 是,
  13.     "完成前隐藏": 否
  14. },
  15. "涉及条件": {
  16.     "条件1": {
  17.    "触发器": "繁殖动物",
  18.    "激活条件": {
  19.   "后代": {
  20.     "种类": "奶牛"
  21.   }
  22.    }
  23.     },
  24.     "条件2": {
  25.    "触发器": "拿出药水",
  26.    "激活条件": {
  27.   "药水": "迅捷药水"
  28.    }
  29.     },
  30.     "条件3": {
  31.    "触发器": "获得物品",
  32.    "激活条件": {
  33.   "物品": [
  34.     {
  35.    "物品": "钻石",
  36.    "数量": {
  37.   "最小": 3
  38.    }
  39.     }
  40.    }
  41.     },
  42.     "条件4": {
  43.    "触发器": "玩家杀死实体",
  44.    "激活条件": {
  45.   "实体": {
  46.     "种类": "爬行者"
  47.   }
  48.    }
  49.     }
  50. },
  51. "条件间关系": [
  52.     [
  53.    "条件1",
  54.    "条件2"
  55.     ],
  56.     [
  57.    "条件3",
  58.    "条件4"
  59.     ]
  60. ],
  61. "奖励": {
  62.     "解锁配方": [
  63.    "石斧",
  64.    "用烟熏炉烧熟牛肉"
  65.     ],
  66.     "战利品": [
  67.    "丛林神庙的箱子"
  68.     ],
  69.     "经验": 10,
  70.     "运行函数": "苹果:例子"
  71. }
  72. }

本节完。点击论坛界面右侧的粉色「书签」可以快速回到上方目录。



advancement 命令
给予或移除玩家的进度。


语法:
进度
<给予 | 移除>
<玩家>
<只有 | 直到 | 始于 | 经过 | 全部>
<进度>
[条件]
advancement
<grant | revoke>
<目标玩家>
<only>
<进度>
[条件]
<until | from | through>
<everything>
注:带 < > 的是必选参数,带 [ ] 的是可选参数。


参数:
<grant | revoke> 说明是给予还是移除玩家的进度。grant 是给予,revoke 是移除。
<目标玩家> 说明给予或移除哪个(些)玩家的进度,必须为玩家名或目标选择器。
<only> 仅操作玩家的指定进度。
<until> 操作玩家的指定进度及其全部上游进度。
<from> 操作玩家的指定进度及其全部下游进度。
<through> 操作玩家的指定进度及其全部的上游进度和下游进度。
<everything> 操作玩家全部已载入的进度。
<进度> 指定要给予或移除的进度。必须是有效的进度地址。
[条件] 指定要操作的进度的条件。

例子:

代码:

  1. advancement grant @s everything
给予命令执行者自己全部已载入的进度。

代码:

  1. advancement revoke @s through minecraft:story/form_obsidian
移除命令执行者自己的 [冰桶挑战] 进度及其全部的上游进度和下游进度(共10个)。

代码:

  1. advancement revoke @s only minecraft:adventure/kill_all_mobs minecraft:zombie
移除命令执行者自己的 [怪物狩猎完成] 进度(要求杀死每一种敌对性怪物)中的 [僵尸] 条件。


本节完。


教程完。



contionability
赞助地址
当然这个也行
我绝对不会告诉你这两个地址都不是我的(跑
不过你既然都点开了……
你这样真的好吗(跑
我干嘛要复制。。。

这个真的算是一个纯正的水贴了,完全没有讲自定义进度如何操作





(=°ω°)丿

上面有个目录,
翻页啊喂!
我写的教程竟然连怎么看都有人不知道……
这个真的算是一个纯正的水贴了,完全没有讲自定义进度如何操作

还被说成是水贴……
(我果然是好惨一男的)



鱼宝放心飞
触发器 - Wiki 例子翻译


持续更新,已完成 31 个。


minecraft:bred_animals 繁殖动物
玩家繁殖两个动物时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:bred_animals",
  5.    "conditions": {
  6.   "child": {
  7.     "type": "mule"
  8.   },
  9.   "parent": {
  10.     "location": {
  11.    "biome": "beaches"
  12.     }
  13.   },
  14.   "partner": {
  15.     "effects": {
  16.    "minecraft:speed": {
  17.   "amplifier": {
  18.     "min": 2
  19.   }
  20.    }
  21.     }
  22.   }
  23.    }
  24.     }
  25. }
  26. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "繁殖动物",
  5.    "激活条件": {
  6.   "后代": {
  7.     "种类": "骡子"
  8.   },
  9.   "父母": {
  10.     "位置": {
  11.    "生物群系": "沙滩"
  12.     }
  13.   },
  14.   "配偶": {
  15.     "药水效果": {
  16.    "速度": {
  17.   "倍率": {
  18.     "最小值": 2
  19.   }
  20.    }
  21.     }
  22.   }
  23.    }
  24.     }
  25. }
  26. }
注: 倍率 = 等级 - 1


minecraft:brewed_potion 酿造药水
玩家从酿造台中拿出一瓶药水时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:brewed_potion",
  5.    "conditions": {
  6.   "potion": "minecraft:strong_swiftness"
  7.    }
  8.     }
  9. }
  10. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "酿造药水",
  5.    "激活条件": {
  6.   "药水": "迅捷药水 II"
  7.    }
  8.     }
  9. }
  10. }



minecraft:changed_dimension 改变维度
玩家在两个维度间旅行时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:changed_dimension",
  5.    "conditions": {
  6.   "from": "the_end",
  7.   "to": "overworld"
  8.    }
  9.     }
  10. }
  11. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "改变维度",
  5.    "激活条件": {
  6.   "来自": "末地",
  7.   "去到": "主世界"
  8.    }
  9.     }
  10. }
  11. }



minecraft:channeled_lightning 引雷
玩家成功使用引雷附魔击杀实体时触发。
没有例子。


minecraft:construct_beacon 修建信标
玩家更改信标结构时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:construct_beacon",
  5.    "conditions": {
  6.   "level": {
  7.     "min": 3
  8.   }
  9.    }
  10.     }
  11. }
  12. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "修建信标",
  5.    "激活条件": {
  6.   "信标的层数": {
  7.     "最小值": 3
  8.   }
  9.    }
  10.     }
  11. }
  12. }



minecraft:consume_item 损耗物品
玩家损耗了物品时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:consume_item",
  5.    "conditions": {
  6.   "item": {
  7.     "item": "minecraft:golden_apple",
  8.     "nbt": "{display:{Name:"\\"Example\\""}}"
  9.   }
  10.    }
  11.     }
  12. }
  13. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "损耗物品",
  5.    "激活条件": {
  6.   "物品": {
  7.     "物品": "金苹果",
  8.     "Nbt 标签": "{显示:{名字:"\\"例子\\""}}"
  9.   }
  10.    }
  11.     }
  12. }
  13. }



minecraft:cured_zombie_villager 治愈僵尸村民
玩家治愈了僵尸村民时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:cured_zombie_villager",
  5.    "conditions": {
  6.   "villager": {
  7.     "location": {
  8.    "biome": "plains"
  9.     }
  10.   },
  11.   "zombie": {
  12.     "distance": {
  13.    "horizontal": {
  14.   "max": 10
  15.    }
  16.     }
  17.   }
  18.    }
  19.     }
  20. }
  21. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "治愈僵尸村民",
  5.    "激活条件": {
  6.   "村民": {
  7.     "位置": {
  8.    "生物群系": "平原"
  9.     }
  10.   },
  11.   "僵尸": {
  12.     "距离": {
  13.    "水平距离": {
  14.   "最大值": 10
  15.    }
  16.     }
  17.   }
  18.    }
  19.     }
  20. }
  21. }



minecraft:effects_changed 改变状态效果
玩家获得/消除状态效果时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:effects_changed",
  5.    "conditions": {
  6.   "effects": {
  7.     "minecraft:weakness": {},
  8.     "minecraft:slowness": {
  9.    "amplifier": 2,
  10.    "duration": {
  11.   "min": 100,
  12.   "max": 500
  13.    }
  14.     }
  15.   }
  16.    }
  17.     }
  18. }
  19. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "改变状态效果",
  5.    "激活条件": {
  6.   "效果": {
  7.     "虚弱": {},
  8.     "缓慢": {
  9.    "倍率": 2,
  10.    "持续时间": {
  11.   "最小值": 100,
  12.   "最大值": 500
  13.    }
  14.     }
  15.   }
  16.    }
  17.     }
  18. }
  19. }
注:持续时间的单位为游戏刻,1秒=20游戏刻。


minecraft:enchanted_item 附魔物品
玩家通过附魔台附魔物品时触发(使用铁砧或命令时不触发)。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:enchanted_item",
  5.    "conditions": {
  6.   "item": {
  7.     "item": "minecraft:wooden_sword",
  8.     "enchantments": [
  9.    {
  10.   "enchantment": "minecraft:sharpness",
  11.   "levels": {
  12.     "min": 2
  13.   }
  14.    }
  15.     ]
  16.   },
  17.   "levels": {
  18.     "min": 3
  19.   }
  20.    }
  21.     }
  22. }
  23. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "附魔物品",
  5.    "激活条件": {
  6.   "物品": {
  7.     "物品": "木剑",
  8.     "附魔": [
  9.    {
  10.   "附魔": "锋利",
  11.   "等级": {
  12.     "最小值": 2
  13.   }
  14.    }
  15.     ]
  16.   },
  17.   "等级": {
  18.     "最小值": 3
  19.   }
  20.    }
  21.     }
  22. }
  23. }



minecraft:enter_block 进入方块
玩家进入方块时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:enter_block",
  5.    "conditions": {
  6.   "block": "minecraft:allium"
  7.    }
  8.     }
  9. }
  10. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "进入方块",
  5.    "激活条件": {
  6.   "方块": "绒球葱"
  7.    }
  8.     }
  9. }
  10. }



minecraft:entity_hurt_player 实体伤害玩家
实体伤害玩家时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:entity_hurt_player",
  5.    "conditions": {
  6.   "damage": {
  7.     "source_entity": {
  8.    "type": "skeleton"
  9.     },
  10.     "direct_entity": {
  11.    "type": "arrow"
  12.     },
  13.     "taken": {
  14.    "min": 4.0
  15.     }
  16.   }
  17.    }
  18.     }
  19. }
  20. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "实体伤害玩家",
  5.    "激活条件": {
  6.   "伤害": {
  7.     "间接来源": {
  8.    "种类": "骷髅"
  9.     },
  10.     "直接来源": {
  11.    "种类": "箭"
  12.     },
  13.     "造成伤害": {
  14.    "最小值": 4.0
  15.     }
  16.   }
  17.    }
  18.     }
  19. }
  20. }



minecraft:entity_killed_player 实体杀死玩家
实体杀死玩家时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:entity_killed_player",
  5.    "conditions": {
  6.   "entity": {
  7.     "type": "skeleton"
  8.   },
  9.   "killing_blow": {
  10.     "is_projectile": true
  11.   }
  12.    }
  13.     }
  14. }
  15. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "实体杀死玩家",
  5.    "激活条件": {
  6.   "实体": {
  7.     "种类": "骷髅"
  8.   },
  9.   "伤害类型": {
  10.     "由弹射物引起": 是
  11.   }
  12.    }
  13.     }
  14. }
  15. }



minecraft:filled_bucket 填充桶
玩家填充桶时触发。
没有例子。


minecraft:fishing_rod_hooked 钓鱼竿钩住
玩家成功通过钓鱼竿取得物品或者使用钓鱼竿推实体时触发。
没有例子。


minecraft:impossible 无法触发
仅可使用命令触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:impossible"
  5.     }
  6. }
  7. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "无法触发"
  5.     }
  6. }
  7. }



minecraft:inventory_changed 改变物品栏
玩家物品栏变化时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:inventory_changed",
  5.    "conditions": {
  6.   "items": [
  7.     {
  8.    "item": "minecraft:stone",
  9.    "count": {
  10.   "min": 5,
  11.   "max": 10
  12.    }
  13.     },
  14.     {
  15.    "item": "minecraft:lime_wool"
  16.     },
  17.     {
  18.    "item": "minecraft:wooden_sword",
  19.    "durability": {
  20.   "min": 50
  21.    },
  22.    "nbt": "{display:{Name:"\\"Example\\""}}"
  23.     }
  24.   ],
  25.   "slots": {
  26.     "occupied": 3
  27.   }
  28.    }
  29.     }
  30. }
  31. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "改变物品栏",
  5.    "激活条件": {
  6.   "物品": [
  7.     {
  8.    "物品": "石头",
  9.    "数量": {
  10.   "最小值": 5,
  11.   "最大值": 10
  12.    }
  13.     },
  14.     {
  15.    "物品": "黄绿色羊毛"
  16.     },
  17.     {
  18.    "物品": "木剑",
  19.    "耐久度": {
  20.   "最小值": 50
  21.    },
  22.    "Nbt 标签": "{显示:{名字:"\\"例子\\""}}"
  23.     }
  24.   ],
  25.   "槽位": {
  26.     "占用": 3
  27.   }
  28.    }
  29.     }
  30. }
  31. }



minecraft:item_durability_changed 改变物品耐久
物品栏中任何物品以任何形式损害时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:item_durability_changed",
  5.    "conditions": {
  6.   "delta": -2,
  7.   "item": {
  8.     "item": "minecraft:wooden_axe",
  9.     "durability": {
  10.    "max": 1
  11.     }
  12.   }
  13.    }
  14.     }
  15. }
  16. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "改变物品耐久",
  5.    "激活条件": {
  6.   "耐久度差值": -2,
  7.   "物品": {
  8.     "物品": "木斧",
  9.     "耐久度": {
  10.    "最大值": 1
  11.     }
  12.   }
  13.    }
  14.     }
  15. }
  16. }



minecraft:levitation 漂浮
玩家获得漂浮状态效果时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:levitation",
  5.    "conditions": {
  6.   "distance": {
  7.     "horizontal": {
  8.    "min": 5
  9.     },
  10.     "y": {
  11.    "min": 2
  12.     }
  13.   },
  14.   "duration": {
  15.     "min": 100
  16.   }
  17.    }
  18.     }
  19. }
  20. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "漂浮",
  5.    "激活条件": {
  6.   "距离": {
  7.     "水平距离": {
  8.    "最小值": 5
  9.     },
  10.     "y轴坐标": {
  11.    "最小值": 2
  12.     }
  13.   },
  14.   "持续时间": {
  15.     "最小值": 100
  16.   }
  17.    }
  18.     }
  19. }
  20. }



minecraft:location 位置
每个游戏刻(每秒20次)检查玩家的位置。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:location",
  5.    "conditions": {
  6.   "biome": "jungle",
  7.   "feature": "Temple",
  8.   "dimension": "overworld",
  9.   "position": {
  10.     "x": 0,
  11.     "y": 60,
  12.     "z": {
  13.    "min": -10,
  14.    "max": 10
  15.     }
  16.   }
  17.    }
  18.     }
  19. }
  20. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "位置",
  5.    "激活条件": {
  6.   "生物群系": "丛林",
  7.   "结构": "神庙",
  8.   "维度": "主世界",
  9.   "位置": {
  10.     "x轴坐标": 0,
  11.     "y轴坐标": 60,
  12.     "z轴坐标": {
  13.    "最小值": -10,
  14.    "最大值": 10
  15.     }
  16.   }
  17.    }
  18.     }
  19. }
  20. }



minecraft:nether_travel 下界旅行
玩家进入下界,然后返回主世界时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:nether_travel",
  5.    "conditions": {
  6.   "distance": {
  7.     "horizontal": {
  8.    "min": 1000
  9.     },
  10.     "absolute": {
  11.    "min": 1100
  12.     }
  13.   }
  14.    }
  15.     }
  16. }
  17. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "下界旅行",
  5.    "激活条件": {
  6.   "距离": {
  7.     "水平距离": {
  8.    "最小值": 1000
  9.     },
  10.     "绝对距离": {
  11.    "最小值": 1100
  12.     }
  13.   }
  14.    }
  15.     }
  16. }
  17. }



minecraft:placed_block 放置方块
玩家放置方块时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:placed_block",
  5.    "conditions": {
  6.   "block": "minecraft:wall_torch",
  7.   "state": {
  8.     "facing": "west"
  9.   },
  10.   "location": {
  11.     "x": 10,
  12.     "z": 14,
  13.     "biome": "plains"
  14.   },
  15.   "item": {
  16.     "item": "minecraft:torch"
  17.   }
  18.    }
  19.     }
  20. }
  21. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "放置方块",
  5.    "激活条件": {
  6.   "方块": "墙上的火把",
  7.   "方块状态": {
  8.     "朝向": "西面"
  9.   },
  10.   "位置": {
  11.     "x轴坐标": 10,
  12.     "z轴坐标": 14,
  13.     "生物群系": "平原"
  14.   },
  15.   "物品": {
  16.     "物品": "火把"
  17.   }
  18.    }
  19.     }
  20. }
  21. }



minecraft:player_hurt_entity 玩家伤害实体
玩家伤害实体(包括自己)时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:player_hurt_entity",
  5.    "conditions": {
  6.   "damage": {
  7.     "blocked": true,
  8.     "direct_entity": {
  9.    "type": "arrow"
  10.     }
  11.   },
  12.   "entity": {
  13.     "type": "player",
  14.     "nbt": "{Tags:["example"]}"
  15.   }
  16.    }
  17.     }
  18. }
  19. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "玩家伤害实体",
  5.    "激活条件": {
  6.   "伤害": {
  7.     "被阻挡": 是,
  8.     "直接来源": {
  9.    "种类": "箭"
  10.     }
  11.   },
  12.   "实体": {
  13.     "种类": "玩家",
  14.     "Nbt 标签": "{标签:["例子"]}"
  15.   }
  16.    }
  17.     }
  18. }
  19. }



minecraft:player_killed_entity 玩家杀死实体
玩家杀死实体时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:player_killed_entity",
  5.    "conditions": {
  6.   "entity": {
  7.     "type": "creeper",
  8.     "nbt": "{powered:1b}",
  9.     "location": {
  10.    "biome": "void"
  11.     },
  12.     "effects": {
  13.    "minecraft:slowness": {},
  14.    "minecraft:weakness": {
  15.   "amplifier": {
  16.     "min": 2
  17.   }
  18.    }
  19.     }
  20.   },
  21.   "killing_blow": {
  22.     "source_entity": {
  23.    "nbt": "{SelectedItem:{id:"minecraft:wooden_sword",}}"
  24.     }
  25.   }
  26.    }
  27.     }
  28. }
  29. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "玩家杀死实体",
  5.    "激活条件": {
  6.   "实体": {
  7.     "种类": "爬行者",
  8.     "Nbt 标签": "{powered:1b}",
  9.     "位置": {
  10.    "生物群系": "虚空"
  11.     },
  12.     "药水效果": {
  13.    "缓慢": {},
  14.    "虚弱": {
  15.   "倍率": {
  16.     "最小值": 2
  17.   }
  18.    }
  19.     }
  20.   },
  21.   "伤害类型": {
  22.     "间接来源": {
  23.    "Nbt 标签": "{手持物品:{英文ID:"木剑",}}"
  24.     }
  25.   }
  26.    }
  27.     }
  28. }
  29. }



minecraft:recipe_unlocked 解锁配方
玩家解锁配方时触发(例如用知识之书)。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:recipe_unlocked",
  5.    "conditions": {
  6.   "recipe": "minecraft:wooden_sword"
  7.    }
  8.     }
  9. }
  10. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "解锁配方",
  5.    "激活条件": {
  6.   "配方": "木剑"
  7.    }
  8.     }
  9. }
  10. }



minecraft:slept_in_bed 上床睡觉
玩家上床睡觉时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:slept_in_bed",
  5.    "conditions": {
  6.   "location": {
  7.     "biome": "desert",
  8.     "feature": "Village",
  9.     "position": {
  10.    "y": {
  11.   "min": 50,
  12.   "max": 100
  13.    }
  14.     }
  15.   }
  16.    }
  17.     }
  18. }
  19. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "上床睡觉",
  5.    "激活条件": {
  6.   "位置": {
  7.     "生物群系": "沙漠",
  8.     "结构": "村庄",
  9.     "位置": {
  10.    "y轴坐标": {
  11.   "最小值": 50,
  12.   "最大值": 100
  13.    }
  14.     }
  15.   }
  16.    }
  17.     }
  18. }
  19. }



minecraft:summoned_entity 召唤实体
玩家召唤了实体时触发。例如通过放置方块来召唤铁傀儡、雪傀儡、末影龙和凋灵。使用发射器来放置凋灵骷髅头颅或南瓜也能激活此触发器。刷怪蛋、命令和刷怪箱不会激活此触发器。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:summoned_entity",
  5.    "conditions": {
  6.   "entity": {
  7.     "type": "minecraft:snowman"
  8.   }
  9.    }
  10.     }
  11. }
  12. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "召唤实体",
  5.    "激活条件": {
  6.   "实体": {
  7.     "种类": "雪人"
  8.   }
  9.    }
  10.     }
  11. }
  12. }



minecraft:tame_animal 驯服动物
玩家驯服动物时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:tame_animal",
  5.    "conditions": {
  6.   "entity": {
  7.     "type": "parrot",
  8.     "nbt": "{Variant:2}"
  9.   }
  10.    }
  11.     }
  12. }
  13. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "驯服动物",
  5.    "激活条件": {
  6.   "实体": {
  7.     "种类": "鹦鹉",
  8.     "Nbt 标签": "{种类:2}"
  9.   }
  10.    }
  11.     }
  12. }
  13. }



minecraft:tick 每刻触发
每个游戏刻触发(每秒20次)。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:tick"
  5.     }
  6. }
  7. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "每刻触发"
  5.     }
  6. }
  7. }



minecraft:used_ender_eye 使用末影之眼
玩家使用末影之眼(在有要塞生成的世界)时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:used_ender_eye",
  5.    "conditions": {
  6.   "distance": {
  7.     "min": 100,
  8.     "max": 200
  9.   }
  10.    }
  11.     }
  12. }
  13. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "使用末影之眼",
  5.    "激活条件": {
  6.   "距离": {
  7.     "最小值": 100,
  8.     "最大值": 200
  9.   }
  10.    }
  11.     }
  12. }
  13. }



minecraft:used_totem 使用图腾
玩家使用图腾时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:used_totem",
  5.    "conditions": {
  6.   "item": {
  7.     "item": "minecraft:totem_of_undying"
  8.   }
  9.    }
  10.     }
  11. }
  12. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "使用图腾",
  5.    "激活条件": {
  6.   "物品": {
  7.     "物品": "不死图腾"
  8.   }
  9.    }
  10.     }
  11. }
  12. }



minecraft:villager_trade 村民交易
玩家与村民交易时触发。
代码
翻译

代码:

  1. {
  2. "criteria": {
  3.     "example": {
  4.    "trigger": "minecraft:villager_trade",
  5.    "conditions": {
  6.   "item": {
  7.     "item": "minecraft:emerald",
  8.     "count": {
  9.    "min": 1
  10.     }
  11.   },
  12.   "villager": {
  13.     "nbt": "{VillagerData:{career:"minecraft:librarian"}}"
  14.   }
  15.    }
  16.     }
  17. }
  18. }

代码:

  1. {
  2. "涉及条件": {
  3.     "例子": {
  4.    "触发器": "村民交易",
  5.    "激活条件": {
  6.   "物品": {
  7.     "物品": "绿宝石",
  8.     "数量": {
  9.    "最小值": 1
  10.     }
  11.   },
  12.   "村民": {
  13.     "Nbt 标签": "{村民数据:{职业:"minecraft:图书管理员"}}"
  14.   }
  15.    }
  16.     }
  17. }
  18. }

Jokey_钥匙
在?
你不放飞自我了?