Minecraft世界的“datapacks/数据包名称/data/命名空间/advancements”目录下以分开的JSON文件储存了此世界的自定义进度数据。
文件格式
- 根标签
- display:可选的显示数据。
- icon:一个物品的ID,用于显示进度窗口。
- item:物品的ID。
- nbt:物品的nbt标签。
- title:进度的名称,纯文本。
- title:进度的名称,JSON文本(格式和
/tellraw等命令中使用的类似)。 - frame:图标边框的可选种类。
challenge为挑战进度边框;goal为目标进度边框;task为普通进度边框(默认)。 - background:用于此进度标签的背景的可选目录(仅根进度)。
- description:进度的描述,纯文本。
- description:进度的描述,JSON文本(格式和
/tellraw等命令中使用的类似)。 - show_toast:可以为
true或false。是否在完成此进度后显示提示信息。默认为true。 - announce_to_chat:可以为
true或false。是否在完成此进度时在聊天窗口提示。默认为true。 - hidden:可以为
true或false。是否在进度屏幕隐藏此进度,直到完成进度。会影响其子进度。当父进度值为true后便无法覆盖。默认为false。
- icon:一个物品的ID,用于显示进度窗口。
- parent:此进度的可选的上游进度id(不适用于根进度)。
- criteria:必须达成的条件。
- requirements:可选,所有条件(条件名称)列表。如果所有条件都需要,此项可以被忽略。有多个条件:要求包含了要求条件列表(所有条件都需要被提及)。任一列表中所有条件达成后,进度会完成(基本上是“与”、“或”的条件分组)。
- rewards:可选,当进度达成时获得的所有奖励。
- display:可选的显示数据。
显示数据
进度的JSON格式的根标签中, display和 parent是可选的,它们和显示进度相关。
如果存在 display标签,它必须同时包含 title和 description 字段,以确保这是一个有效的显示数据。
parent字段虽然不和进度的显示数据直接相关,但会对其有间接影响。如果一个进度没有显示数据,且它的下游进度也都没有显示数据,那么这个进度的上游进度对它就没有影响。
创建选项卡
要在进度菜单中创建一个选项卡,定义一个有显示数据的根进度(没有上游进度的进度)。当游戏加载了包含此进度的数据包后,玩家在获得了此根进度的进度树中任意一个进度后再查看进度菜单时,根进度就会显示一个选项卡。
如果根进度没有指定背景图像,选项卡仍然会创建,但背景会显示为丢失材质。
显示
对不是根进度的进度(即定义了上游进度的进度),要使得它能在被解锁后显示在选项卡中,必须满足以下条件:
- 根进度必须有有效的选项卡;
- 必须有显示数据。
位置
游戏会自动排列进度位置,在加载数据包时确定位置,并将排位发送到客户端。每个进度都有从最近的可见上游进度指向它的箭头(即,如果其相邻的上游进度没有显示数据,则有从上游进度的上游进度指向它的箭头)。根进度出现在最左一列,每个箭头指向下一列中的进度。每一列中的进度基于其文件名排序。
缺乏显示
有些进度(如原版中由配方解锁的进度)可能没有显示数据,因此它们可以利用触发器和奖励而不是过多命令和函数来实现更多功能和更灵活的控制。为了能达到上述目的,以及使其对玩家隐藏和有更佳的加载性能,这些进度不应该定义 display字段。
触发器列表
minecraft:bee_nest_destroyed
玩家破坏蜂巢或蜂箱时触发。可用条件:
- conditions:
- block: 被摧毁的方块。(允许的ID:"minecraft:beehive","minecraft:bee_nest")
- item: 用于破坏该方块的物品。
- 物品谓词
- num_bees_inside: 在该蜂箱/蜂巢被破坏前其中含有的蜜蜂数。
- player:一个战利品表谓词的列表。玩家被该列表匹配,是其完成进度的必要条件。
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:bee_nest_destroyed",
"conditions": {
"block": "minecraft:beehive",
"item": {
"item": "minecraft:wooden_axe"
},
"num_bees_inside": 3
}
}
}
}
minecraft:bred_animals
玩家繁殖两个动物时触发。可用条件:
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:bred_animals",
"conditions": {
"child": {
"type": "mule"
},
"parent": {
"location": {
"biome": "beaches"
}
},
"partner": {
"effects": {
"minecraft:speed": {
"amplifier": {
"min": 2
}
}
}
}
}
}
}
}
minecraft:brewed_potion
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:brewed_potion",
"conditions": {
"potion": "minecraft:strong_swiftness"
}
}
}
}
minecraft:changed_dimension
玩家在两个维度间旅行时触发。可用条件:
- conditions:
- from:实体出发的维度。minecraft:overworld(主世界)、minecraft:the_nether(下界)或minecraft:the_end(末地),命名空间可省略。
- to:实体到达的维度。可用值同上。
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:changed_dimension",
"conditions": {
"from": "the_end",
"to": "overworld"
}
}
}
}
minecraft:channeled_lightning
玩家成功使用引雷附魔击杀实体时触发,可用的条件:
- conditions:
- victims:被引雷附魔召唤的闪电击中的实体。列表中的所有实体都必须被击中。也可以是一个战利品表谓词的列表;实体被该列表匹配,是玩家完成进度的必要条件。
- :
- 实体谓词
- :
- victims:被引雷附魔召唤的闪电击中的实体。列表中的所有实体都必须被击中。也可以是一个战利品表谓词的列表;实体被该列表匹配,是玩家完成进度的必要条件。
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
minecraft:construct_beacon
玩家更改信标结构时触发。(当信标自我更新时)可用条件:
- conditions:
- level:信标的层数。
- level:
- max:最大值。
- min:最小值。
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:construct_beacon",
"conditions": {
"level": {
"min": 3
}
}
}
}
}
minecraft:consume_item
玩家损耗了物品时触发。可用条件:
- conditions:
- item:被损耗的物品。
- 物品谓词
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
- item:被损耗的物品。
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:consume_item",
"conditions": {
"item": {
"item": "minecraft:golden_apple",
"data": 1,
"nbt": "{display:{Name:\"\\\"Example\\\"\"}}"
}
}
}
}
}
minecraft:cured_zombie_villager
玩家治愈了僵尸村民时触发。可用条件:
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:cured_zombie_villager",
"conditions": {
"villager": {
"location": {
"biome": "plains"
}
},
"zombie": {
"distance": {
"horizontal": {
"max": 10
}
}
}
}
}
}
}
minecraft:effects_changed
玩家获得/消除状态效果时触发。可用条件:
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:effects_changed",
"conditions": {
"effects": {
"minecraft:weakness": {},
"minecraft:slowness": {
"amplifier": 2,
"duration": {
"min": 100,
"max": 500
}
}
}
}
}
}
}
minecraft:enchanted_item
玩家通过附魔台附魔物品时触发(使用铁砧或命令时不触发)。可用条件:
- conditions:
- item:
- 物品谓词
- levels:附魔花费的经验等级。
- levels:
- max:最大值。
- min:最小值。
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
- item:
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:enchanted_item",
"conditions": {
"item": {
"item": "minecraft:wooden_sword",
"enchantments": [
{
"enchantment": "minecraft:sharpness",
"levels": {
"min": 2
}
}
]
},
"levels": {
"min": 3
}
}
}
}
}
minecraft:enter_block
玩家进入方块时触发。每刻都会检查成功的匹配,仅在进度内被函数奖励剥夺可用条件:
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:enter_block",
"conditions": {
"block": "minecraft:allium"
}
}
}
}
minecraft:entity_hurt_player
实体伤害玩家时触发。可用条件:
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:entity_hurt_player",
"conditions": {
"damage": {
"source_entity": {
"type": "skeleton"
},
"direct_entity": {
"type": "arrow"
},
"taken": {
"min": 4.0
}
}
}
}
}
}
minecraft:entity_killed_player
实体杀死玩家时触发。可用条件:
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:entity_killed_player",
"conditions": {
"entity": {
"type": "skeleton"
},
"killing_blow": {
"is_projectile": true
}
}
}
}
}
minecraft:filled_bucket
玩家填充桶时触发。可用条件:
- conditions:
- item:填满之后的物品。
- 物品谓词
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
- item:填满之后的物品。
minecraft:fishing_rod_hooked
玩家成功通过钓鱼竿取得物品或者使用钓鱼竿拉实体时触发。可用条件:
minecraft:hero_of_the_village
玩家击败袭击时触发,并检查玩家位置。可用条件:
- conditions:
- location: 玩家的位置。
- 位置信息谓词
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
- location: 玩家的位置。
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:hero_of_the_village",
"conditions": {
"biome": "minecraft:plains",
"dimension": "minecraft:overworld",
"position": {
"x": 0,
"y": 60,
"z": {
"min": -10,
"max": 10
}
}
}
}
}
}
minecraft:impossible
仅可使用命令触发。
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:impossible"
}
}
}
minecraft:inventory_changed
玩家物品栏变化时触发。可用条件:
- conditions:
- items:物品列表
- :
- 物品谓词
- :
- slots:
- empty:物品栏中空槽位数量。
- empty:
- max:最大值。
- min:最小值。
- full:物品栏中已被完全使用(填充了一组物品)槽位数量。
- full:
- max:最大值。
- min:最小值。
- occupied:物品栏中已使用槽位数量。
- occupied:
- max:最大值。
- min:最小值。
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
- items:物品列表
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"item": "minecraft:stone",
"count": {
"min": 5,
"max": 10
}
},
{
"item": "minecraft:lime_wool"
},
{
"item": "minecraft:wooden_sword",
"durability": {
"min": 50
},
"nbt": "{display:{Name:\"\\\"Example\\\"\"}}"
}
],
"slots": {
"occupied": 3
}
}
}
}
}
minecraft:item_durability_changed
物品栏中任何物品以任何形式损害时触发。可用条件:
- conditions:
- conditions:
- delta:耐久度差值。
- delta:
- max:最大值。
- min:最小值。
- durability:物品的剩余耐久度。
- durability:
- max:最大值。
- min:最小值。
- item:损害前的物品,可用来检查物品损害前的耐久度。
- 物品谓词
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:item_durability_changed",
"conditions": {
"delta": -2,
"item": {
"item": "minecraft:wooden_axe",
"durability": {
"max": 1
}
}
}
}
}
}
minecraft:item_used_on_block
玩家对方块使用物品时触发。可用条件:
- conditions:
- location:方块的位置。
- 位置信息谓词
- item:被玩家使用的物品。
- 物品谓词
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
- location:方块的位置。
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:item_used_on_block",
"conditions": {
"location": {
"biome": "minecraft:modified_gravelly_mountains",
"block": {
"tag": "minecraft:campfires"
}
},
"item": {
"item": "minecraft:porkchop"
}
}
}
}
}
minecraft:killed_by_crossbow
玩家伤害生物或玩家时触发。可用条件:
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:killed_by_crossbow",
"conditions": {
"victims": [
{
"type": "minecraft:phantom"
},
{
"type": "minecraft:phantom"
}
],
"unique_entity_types": 5
}
}
}
}
minecraft:levitation
玩家获得漂浮状态效果时触发。可用条件:
- conditions:
- distance:
- absolute:
- max:最大值。
- min:最小值。
- horizontal:
- max:最大值。
- min:最小值。
- x:
- max:最大值。
- min:最小值。
- y:
- max:最大值。
- min:最小值。
- z:
- max:最大值。
- min:最小值。
- absolute:
- duration:漂浮时间。
- duration:
- max:最大值。
- min:最小值。
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
- distance:
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:levitation",
"conditions": {
"distance": {
"horizontal": {
"min": 5
},
"y": {
"min": 2
}
},
"duration": {
"min": 100
}
}
}
}
}
minecraft:location
每个游戏刻(每秒20次)检查玩家的位置。可用条件:
- conditions:
- location:玩家的位置。
- 位置信息谓词
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
- location:玩家的位置。
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:location",
"conditions": {
"biome": "jungle",
"feature": "Temple",
"dimension": "overworld",
"position": {
"x": 0,
"y": 60,
"z": {
"min": -10,
"max": 10
}
}
}
}
}
}
minecraft:nether_travel
- conditions:
- distance:
- absolute:
- max:最大值。
- min:最小值。
- horizontal:
- max:最大值。
- min:最小值。
- x:
- max:最大值。
- min:最小值。
- y:
- max:最大值。
- min:最小值。
- z:
- max:最大值。
- min:最小值。
- absolute:
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
- distance:
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:nether_travel",
"conditions": {
"distance": {
"horizontal": {
"min": 1000
},
"absolute": {
"min": 1100
}
}
}
}
}
}
minecraft:placed_block
玩家放置方块时触发。可用条件:
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:placed_block",
"conditions": {
"block": "minecraft:unpowered_repeater",
"state": {
"facing": "west"
},
"location": {
"x": 10,
"z": 14,
"biome": "plains"
},
"item": {
"item": "minecraft:repeater"
}
}
}
}
}
minecraft:player_generates_container_loot
当玩家打开容器,并使之按照战利品表生成物品时触发。可用条件:
- conditions:
- loot_table:被用来生成物品的战利品表。
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:player_generates_container_loot",
"conditions": {
"loot_table": "minecraft:chests/jungle_temple_dispenser"
}
}
}
}
minecraft:player_hurt_entity
玩家伤害实体(包括自己)时触发。可用条件:
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:player_hurt_entity",
"conditions": {
"damage": {
"blocked": true,
"direct_entity": {
"type": "arrow"
}
},
"entity": {
"type": "player",
"nbt": "{Tags:[\"example\"]}"
}
}
}
}
}
minecraft:player_interacted_with_entity
玩家用手中物品与实体互动时触发。
有效的互动仅限于
- 尝试与村民(包括不能交易的)交易。
- 尝试驯服、喂养、上鞍(可上鞍的)动物,剪羊毛,旋转物品展示框,或修补铁傀儡等可能会改变实体数据的行为(例外:用瓶子收集龙息)。
- 用桶获取鱼桶、牛奶;用碗获取蘑菇煲、迷之炖菜。
可用条件:
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:player_interacted_with_entity",
"conditions": {
"entity": {
"type": "villager"
},
"item": {
"item": "emerald"
}
}
}
}
}
minecraft:player_killed_entity
玩家杀死实体时触发。可用条件:
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:player_killed_entity",
"conditions": {
"entity": {
"type": "creeper",
"nbt": "{powered:1b}",
"location": {
"biome": "void"
},
"effects": {
"minecraft:slowness": {},
"minecraft:weakness": {
"amplifier": {
"min": 2
}
}
}
},
"killing_blow": {
"source_entity": {
"nbt": "{SelectedItem:{id:\"minecraft:wooden_sword\",}}"
}
}
}
}
}
}
minecraft:recipe_unlocked
- conditions:
- recipe:配方。
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "minecraft:wooden_sword"
}
}
}
}
minecraft:shot_crossbow
玩家使用物品时触发。可用条件:
- conditions:
- item:使用的物品。
- 物品谓词
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
- item:使用的物品。
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:shot_crossbow",
"conditions": {
"item": {
"item": "minecraft:crossbow"
}
}
}
}
}
minecraft:slept_in_bed
玩家上床睡觉时触发。可用条件:
- conditions:
- location: 玩家的位置。
- 位置信息谓词
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
- location: 玩家的位置。
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:slept_in_bed",
"conditions": {
"location": {
"biome": "desert",
"feature": "Village",
"position": {
"y": {
"min": 50,
"max": 100
}
}
}
}
}
}
}
minecraft:slide_down_block
玩家滑下方块时触发。可用条件:
- conditions:
- block: 玩家所滑下的方块。
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:slide_down_block",
"conditions": {
"block": "minecraft:honey_block"
}
}
}
}
minecraft:summoned_entity
玩家召唤了实体时触发。例如铁傀儡(南瓜和铁块)、雪傀儡(南瓜和雪块)、末影龙(末影水晶)和凋灵(灵魂沙和凋灵骷髅头颅)。使用发射器来放置凋灵骷髅头颅或南瓜也能激活此触发器。刷怪蛋、命令和刷怪笼不会激活此触发器。可用条件:
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:summoned_entity",
"conditions": {
"entity": {
"type": "minecraft:snowman"
}
}
}
}
}
minecraft:tame_animal
玩家驯服动物时触发。可用条件:
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:tame_animal",
"conditions": {
"entity": {
"type": "parrot",
"nbt": "{Variant:2}"
}
}
}
}
}
minecraft:target_hit
玩家射中标靶时触发。可用条件:
- conditions:
- signal_strength:标靶将产生的红石信号。
- projectile:被用来射击标靶的弹射物。
- shooter:作为射击者的玩家的实体谓词。
- 实体谓词
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:target_hit",
"conditions": {
"signal_strength": 15,
"projectile": "minecraft:snowball"
}
}
}
}
minecraft:thrown_item_picked_up_by_entity
在实体捡起玩家扔出的物品时触发。可用条件:
- conditions:
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:thrown_item_picked_up_by_entity",
"conditions": {
"item": {
"item": "minecraft:diamond"
},
"entity": [
{
"condition": "minecraft:entity_properties",
"predicate": {
"type": "minecraft:player"
},
"entity": "this"
}
]
}
}
}
}
minecraft:tick
每个游戏刻触发(每秒20次)。可用条件:
- conditions:
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:tick"
}
}
}
minecraft:used_ender_eye
- conditions:
- distance:玩家与要塞的水平距离。
- distance:
- max:最大值。
- min:最小值。
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:used_ender_eye",
"conditions": {
"distance": {
"min": 100,
"max": 200
}
}
}
}
}
minecraft:used_totem
玩家使用图腾时触发。可用条件:
- conditions:
- item:物品,仅限图腾。
- 物品谓词
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
- item:物品,仅限图腾。
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:used_totem",
"conditions": {
"item": {
"item": "minecraft:totem_of_undying"
}
}
}
}
}
minecraft:villager_trade
玩家与村民交易时触发。可用条件:
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:villager_trade",
"conditions": {
"item": {
"item": "minecraft:emerald",
"count": {
"min": 1
}
},
"villager": {
"nbt": "{Career:1}"
}
}
}
}
}
minecraft:voluntary_exile
玩家引发袭击时触发,并检查玩家位置。可用条件:
- conditions:
- location: 玩家的位置。
- 位置信息谓词
- player:一个战利品表谓词的列表;玩家被该列表匹配,是其完成进度的必要条件。
- location: 玩家的位置。
一个例子
{
"criteria": {
"example": {
"trigger": "minecraft:voluntary_exile",
"conditions": {
"biome": "minecraft:savanna",
"dimension": "minecraft:overworld",
"position": {
"x": 0,
"y": 60,
"z": {
"min": -10,
"max": 10
}
}
}
}
}
}
| 版本 | |||||||
|---|---|---|---|---|---|---|---|
| 开发周期 |
| ||||||
| 技术 |
| ||||||
| 多人游戏 | |||||||
| 游戏订制 | |||||||