<本站文本内容除另有声明外,转载时均必须注明出处。(详情…中文Minecraft Wiki是完全公开的。请勇于扩充与修正内容!Minecraft中文Wiki微博正在更新!或许有兴趣去看看想与其他用户进行编辑上的沟通?社区专页正是为此创建的。翻译或创建页面之前,不妨看看译名标准化Wiki条例页面。需要管理员的协助?在管理员告示板留言也许可以帮到您。>

进度/JSON格式

来自Minecraft Wiki
跳转至: 导航搜索

Minecraft世界的“datapacks/数据包名称/data/命名空间/advancements”目录下以分开的JSON文件储存了此世界的自定义进度数据。

文件格式[编辑 | 编辑源代码]

  • 根标签
    •  display:可选的显示数据。
      •  icon:一个物品的ID,用于显示进度窗口。
        •  item:物品的ID。
        •  nbt:物品的nbt标签。
      •  title:进度的名称,纯文本。
      •  titleJSON文本(格式和/tellraw等命令中使用的类似)。
      •  frame:图标边框的可选种类。challenge为挑战进度边框;goal为目标进度边框;task为普通进度边框(默认)。
      •  background:用于此进度标签的背景的可选目录(仅根进度)。
      •  description:进度的描述。
      •  description:进度的描述。
      •  show_toast:可以为truefalse。是否在完成此进度后显示提示信息。默认为true。
      •  announce_to_chat:可以为truefalse。是否在完成此进度时在聊天窗口提示。默认为true。
      •  hidden:可以为truefalse。是否在进度屏幕隐藏此进度,直到完成进度。会影响其子进度。当父进度值为true后便无法覆盖。默认为false。
    •  parent:此进度的可选的上游进度id(不适用于根进度)。
    •  criteria:必须达成的条件。
      •  条件名称:给予此条件的名称(可以为任何字符串,必须唯一)。
        •  trigger:此进度的触发条件;指定游戏为进度检查的条件。
        •  conditions:当触发器激活时所有需要达成的条件
    •  requirements:可选,所有条件(条件名称)列表。如果所有条件都需要,此项可以被忽略。有多个条件:要求包含了要求条件列表(所有条件都需要被提及)。任一列表中所有条件达成后,进度会完成(基本上是“与”、“或”的条件分组)。
    •  rewards:可选,当进度达成时获得的所有奖励。
      •  recipes配方列表。
      •  loot战利品表列表。
      •  experience:获得的经验值总数。
      •  function:完成进度后执行的函数(以进度获得者为执行者)。

显示数据[编辑 | 编辑源代码]

进度的JSON格式的根标签中, display parent是可选的,它们和显示进度相关。

如果存在 display标签,它必须同时包含 title description 字段,以确保这是一个有效的显示数据。

 parent字段虽然不和进度的显示数据直接相关,但会对其有间接影响。如果一个进度没有显示数据,且它的下游进度也都没有显示数据,那么这个进度的上游进度对它就没有影响。

创建选项卡[编辑 | 编辑源代码]

要在进度菜单中创建一个选项卡,定义一个有显示数据的根进度(没有上游进度的进度)。当游戏加载了包含此进度的数据包后,玩家在获得了此根进度的进度树中任意一个进度后再查看进度菜单时,根进度就会显示一个选项卡。

如果根进度没有指定背景图像,选项卡仍然会创建,但背景会显示为丢失材质。

显示[编辑 | 编辑源代码]

对不是根进度的进度(即定义了上游进度的进度),要使得它能在被解锁后显示在选项卡中,必须满足以下条件:

  1. 根进度必须有有效的选项卡
  2. 必须有显示数据。

位置[编辑 | 编辑源代码]

游戏会自动排列进度位置,在加载数据包时确定位置,并将排位发送到客户端。每个进度都有从最近的可见上游进度指向它的箭头(即,如果其相邻的上游进度没有显示数据,则有从上游进度的上游进度指向它的箭头)。根进度出现在最左一列,每个箭头指向下一列中的进度。每一列中的进度基于其文件名排序。

缺乏显示[编辑 | 编辑源代码]

有些进度(如原版中由配方解锁的进度)可能没有显示数据,因此它们可以利用触发器和奖励而不是过多命令函数来实现更多功能和更灵活的控制。为了能达到上述目的,以及使其对玩家隐藏和有更佳的加载性能,这些进度不应该定义 display字段。

触发器列表[编辑 | 编辑源代码]

minecraft:bee_nest_destroyed[编辑 | 编辑源代码]

玩家破坏蜂巢或蜂箱时触发。可用条件:

  •  conditions:
    •  block: 被摧毁的方块。(允许的ID:"minecraft:beehive","minecraft:bee_nest")
    •  item: 用于破坏该方块的物品。
    •  num_bees_inside: 在该蜂箱/蜂巢被破坏前其中含有的蜜蜂数。
    •  player:一个战利品表条件的列表。玩家被该列表匹配,是其完成进度的必要条件。

minecraft:bred_animals[编辑 | 编辑源代码]

玩家繁殖两个动物时触发。可用条件:

minecraft:brewed_potion[编辑 | 编辑源代码]

玩家从酿造台中拿出一瓶药水时触发。可用条件:

minecraft:changed_dimension[编辑 | 编辑源代码]

玩家在两个维度间旅行时触发。可用条件:

  •  conditions
    •  from:实体出发的维度。minecraft:overworld(主世界)、minecraft:the_nether(下界)或minecraft:the_end(末地),命名空间可省略。
    •  to:实体到达的维度。可用值同上。
    •  player:一个战利品表条件的列表;玩家被该列表匹配,是其完成进度的必要条件。

minecraft:channeled_lightning[编辑 | 编辑源代码]

玩家成功使用引雷附魔击杀实体时触发,可用的条件:

    •  player:一个战利品表条件的列表;玩家被该列表匹配,是其完成进度的必要条件。

minecraft:construct_beacon[编辑 | 编辑源代码]

玩家更改信标结构时触发。(当信标自我更新时)可用条件:

  •  conditions
    •  level:信标的层数。
    •  level
      •  max:最大值。
      •  min:最小值。
    •  player:一个战利品表条件的列表;玩家被该列表匹配,是其完成进度的必要条件。

minecraft:consume_item[编辑 | 编辑源代码]

玩家损耗了物品时触发。可用条件:

minecraft:cured_zombie_villager[编辑 | 编辑源代码]

玩家治愈了僵尸村民时触发。可用条件:

minecraft:effects_changed[编辑 | 编辑源代码]

玩家获得/消除状态效果时触发。可用条件:

  •  conditions
    •  effects:状态效果列表。
      •  状态效果id:一个状态效果
        •  amplifier:效果放大器。
        •  amplifier
          •  max:最大值。
          •  min:最小值。
        •  duration:效果持续时间,以刻为单位。
        •  duration
          •  max:最大值。
          •  min:最小值。
    •  player:一个战利品表条件的列表;玩家被该列表匹配,是其完成进度的必要条件。

minecraft:enchanted_item[编辑 | 编辑源代码]

玩家通过附魔台附魔物品时触发(使用铁砧或命令时不触发)。可用条件:

minecraft:enter_block[编辑 | 编辑源代码]

玩家进入方块时触发。每刻都会检查成功的匹配,仅在进度内被函数奖励剥夺可用条件:

  •  conditions
    •  block:一个方块ID
    •  state:方块的方块状态。
      •  <state_name>:单一的方块状态,值为其状态。
    •  player:一个战利品表条件的列表;玩家被该列表匹配,是其完成进度的必要条件。

minecraft:entity_hurt_player[编辑 | 编辑源代码]

实体伤害玩家时触发。可用条件:

minecraft:entity_killed_player[编辑 | 编辑源代码]

实体杀死玩家时触发。可用条件:

minecraft:filled_bucket[编辑 | 编辑源代码]

玩家填充桶时触发。可用条件:

minecraft:fishing_rod_hooked[编辑 | 编辑源代码]

玩家成功通过钓鱼竿取得物品或者使用钓鱼竿拉实体时触发。可用条件:

minecraft:hero_of_the_village[编辑 | 编辑源代码]

玩家击败袭击时触发,并检查玩家位置。可用条件:

minecraft:impossible[编辑 | 编辑源代码]

仅可使用命令触发。

minecraft:inventory_changed[编辑 | 编辑源代码]

玩家物品栏变化时触发。可用条件:

  •  conditions
    •  items:物品列表
    •  slots
      •  empty:物品栏中空槽位数量。
      •  empty
        •  max:最大值。
        •  min:最小值。
      •  full:物品栏中已被完全使用(填充了一组物品)槽位数量。
      •  full
        •  max:最大值。
        •  min:最小值。
      •  occupied:物品栏中已使用槽位数量。
      •  occupied
        •  max:最大值。
        •  min:最小值。
    •  player:一个战利品表条件的列表;玩家被该列表匹配,是其完成进度的必要条件。

minecraft:item_durability_changed[编辑 | 编辑源代码]

物品栏中任何物品以任何形式损害时触发。可用条件:

  •  conditions
  •  conditions
    •  delta:耐久度差值。
    •  delta
      •  max:最大值。
      •  min:最小值。
    •  durability:物品的剩余耐久度。
    •  durability
      •  max:最大值。
      •  min:最小值。
    •  item:损害前的物品,可用来检查物品损害前的耐久度。
    •  player:一个战利品表条件的列表;玩家被该列表匹配,是其完成进度的必要条件。

minecraft:item_used_on_block[编辑 | 编辑源代码]

玩家对方块使用物品时触发。可用条件:

minecraft:killed_by_crossbow[编辑 | 编辑源代码]

玩家伤害生物或玩家时触发。可用条件:

  •  conditions
    •  unique_entity_types:杀死的实体种类的准确数量。
    •  unique_entity_types:杀死的实体种类的可接受数量范围。
      •  max:最大值。
      •  min:最小值。
    •  victims:对被杀死的任意实体的谓词。
    •  victims:对被杀死的任意实体谓词列表。所有谓词都必须被匹配,且一个实体只可以匹配一个谓词。
    •  player:一个战利品表条件的列表;玩家被该列表匹配,是其完成进度的必要条件。

minecraft:levitation[编辑 | 编辑源代码]

玩家获得漂浮状态效果时触发。可用条件:

  •  conditions
    •  distance
      •  absolute
        •  max:最大值。
        •  min:最小值。
      •  horizontal
        •  max:最大值。
        •  min:最小值。
      •  x
        •  max:最大值。
        •  min:最小值。
      •  y
        •  max:最大值。
        •  min:最小值。
      •  z
        •  max:最大值。
        •  min:最小值。
    •  duration:漂浮时间。
    •  duration
      •  max:最大值。
      •  min:最小值。
    •  player:一个战利品表条件的列表;玩家被该列表匹配,是其完成进度的必要条件。

minecraft:location[编辑 | 编辑源代码]

每个游戏刻(每秒20次)检查玩家的位置。可用条件:

minecraft:nether_travel[编辑 | 编辑源代码]

玩家进入下界,然后返回主世界时触发。可用条件:

  •  conditions
    •  distance
      •  absolute
        •  max:最大值。
        •  min:最小值。
      •  horizontal
        •  max:最大值。
        •  min:最小值。
      •  x
        •  max:最大值。
        •  min:最小值。
      •  y
        •  max:最大值。
        •  min:最小值。
      •  z
        •  max:最大值。
        •  min:最小值。
    •  player:一个战利品表条件的列表;玩家被该列表匹配,是其完成进度的必要条件。

minecraft:placed_block[编辑 | 编辑源代码]

玩家放置方块时触发。可用条件:

minecraft:player_generates_container_loot[编辑 | 编辑源代码]

当玩家打开容器,并使之按照战利品表生成物品时触发。可用条件:

  •  conditions:
    •  loot_table:被用来生成物品的战利品表。
    •  player:一个战利品表条件的列表;玩家被该列表匹配,是其完成进度的必要条件。

minecraft:player_hurt_entity[编辑 | 编辑源代码]

玩家伤害实体(包括自己)时触发。可用条件:

minecraft:player_interacted_with_entity[编辑 | 编辑源代码]

玩家用手中物品与实体互动时触发。 有效的互动仅限于‌[需要更多信息]

  • 尝试与村民(包括不能交易的)交易。
  • 尝试驯服、喂养、上鞍(可上鞍的)动物,剪羊毛,旋转物品展示框,或修补铁傀儡等可能会改变实体数据的行为(例外:用瓶子收集龙息)。
  • 用桶获取鱼桶、牛奶;用碗获取蘑菇煲、迷之炖菜。

可用条件:

minecraft:player_killed_entity[编辑 | 编辑源代码]

玩家杀死实体时触发。可用条件:

minecraft:recipe_unlocked[编辑 | 编辑源代码]

玩家解锁配方时触发(例如用知识之书)。可用条件:

  •  conditions
    •  recipe:配方。
    •  player:一个战利品表条件的列表;玩家被该列表匹配,是其完成进度的必要条件。

minecraft:shot_crossbow[编辑 | 编辑源代码]

玩家使用物品时触发。可用条件:

minecraft:slept_in_bed[编辑 | 编辑源代码]

玩家上睡觉时触发。可用条件:

minecraft:slide_down_block[编辑 | 编辑源代码]

玩家滑下方块时触发。可用条件:

  •  conditions:
    •  block: 玩家所滑下的方块。
    •  player:一个战利品表条件的列表;玩家被该列表匹配,是其完成进度的必要条件。

minecraft:summoned_entity[编辑 | 编辑源代码]

玩家召唤了实体时触发。例如铁傀儡(南瓜和铁块)、雪傀儡(南瓜和雪块)、末影龙(末影水晶)和凋灵(灵魂沙和凋灵骷髅头颅)。使用发射器来放置凋灵骷髅头颅或南瓜也能激活此触发器。刷怪蛋命令刷怪笼不会激活此触发器。可用条件:

minecraft:tame_animal[编辑 | 编辑源代码]

玩家驯服动物时触发。可用条件:

minecraft:target_hit[编辑 | 编辑源代码]

玩家射中标靶时触发。可用条件:

  •  conditions:
    •  signal_strength:标靶将产生的红石信号。
    •  projectile:被用来射击标靶的弹射物。
    •  shooter:作为射击者的玩家的实体谓词。
    •  player:一个战利品表条件的列表;玩家被该列表匹配,是其完成进度的必要条件。

minecraft:thrown_item_picked_up_by_entity[编辑 | 编辑源代码]

在实体捡起玩家扔出的物品时触发。可用条件:

minecraft:tick[编辑 | 编辑源代码]

每个游戏刻触发(每秒20次)。可用条件:

  •  conditions:
    •  player:一个战利品表条件的列表;玩家被该列表匹配,是其完成进度的必要条件。

minecraft:used_ender_eye[编辑 | 编辑源代码]

玩家使用末影之眼(在有要塞生成的世界)时触发。可用条件:

  •  conditions
    •  distance:玩家与要塞的水平距离。
    •  distance
      •  max:最大值。
      •  min:最小值。
    •  player:一个战利品表条件的列表;玩家被该列表匹配,是其完成进度的必要条件。

minecraft:used_totem[编辑 | 编辑源代码]

玩家使用图腾时触发。可用条件:

minecraft:villager_trade[编辑 | 编辑源代码]

玩家与村民交易时触发。可用条件:

minecraft:voluntary_exile[编辑 | 编辑源代码]

玩家引发袭击时触发,并检查玩家位置。可用条件: