本站文本内容除另有声明外,转载时均必须注明出处,并遵守CC BY-NC-SA 3.0协议。(转载须知
本站是中文Minecraft Wiki的镜像站,与Mojang AB、Gamepedia没有从属关系。(免责声明

配方

来自Minecraft WIKI
跳到导航 跳到搜索
页面贡献者 :
中文mcwiki机器人
Information icon.png
此特性为Java版独有。
Nathan Adams Mojang avatar.png 它在原版生存模式*工作的方式是你通过手动合成来“发现”一种配方,或者满足条件让我们认为“好的,你现在有木棍了,我来教你怎么做镐子”。在配方被“发现”后便在配方书(在合成屏幕可以点)中可用了。这之后你可以看到你已经发现的所有配方以及如何合成它们,你就不用再查询合成形状和原料了。

*我说的是原版生存模式,因为这可以自定义。举个例子,一个自定义地图可能要求你只合成制定的东西,而不是别的。在原版生存中这纯粹是一个帮助你记忆不常用合成配方的工具,也可以告诉你怎么合成你不知道的新东西。

——Dinnerbone评论于使用配方[1]

配方(Recipes)是一种引导新玩家游玩Minecraft的方式,通过帮助玩家了解合成、烧炼以及其他的方块和物品转化方式来使玩家熟悉游戏。

配方由数据包‌‌[仅Java版]或者附加包‌‌[仅基岩版]配置,从其中读取数据。所有的合成烧炼冶炼营火烧烤烟熏锻造切石配方都使用这个系统。在基岩版中,制图[来源请求]酿造也使用这个系统。制图台‌‌[仅Java版]织布机配方现在无法被控制。

获得

配方可通过多种方式获得。使用一个配方会使玩家自动发现它。配方也可以通过使用/recipe命令或作为完成进度的奖励来获得。原版生存有多种进度可以给予配方,比如在玩家获得配方的原料时触发。

一旦配方被发现,就将被加入玩家的配方书。已发现的配方储存在玩家recipeBookNBT中。

用途

已发现的配方可在玩家的配方书中找到。然而,玩家并不需要发现配方来使用此配方,除非/gamerule doLimitedCrafting被设置为true

配方只会在玩家使用与当前配方类型所匹配的方块时显示。例如,烧炼配方将只在熔炉的界面中显示。当在背包中使用配方书时,只有能在玩家的2×2背包合成栏内使用的配方才会显示。

JSON格式

数据包data/(namespace)/recipes文件夹中的自定义配方以分别的JSON文件储存了世界的配方数据。

一个ID为foo:path/to/file的配方所对应的JSON文件应放置于一个数据包data/foo/recipes/path/to/file.json目录。

配方JSON文件根据类型不同,有着不同的结构,不过它们在根标签下都有着一个 type标签。

配方类型列表

blasting

代表一个高炉配方。

默认烧炼时间是100刻,即5秒。

campfire_cooking

代表一个营火配方。

默认烧炼时间是100刻,即5秒。但所有的原版营火配方都将烧炼时间修改为了600刻,即30秒。营火配方并不会触发recipe_unlocked判据。

crafting_shaped

代表一个工作台的有序合成配方。

pattern中可以使用任何除了空格( )以外单字符作为key,因为空格代表一个空的合成栏位。

配方的输出物品不能设置自定义的NBT数据标签。

  • 根标签
    • 配方共通属性 see Template:Nbt inherit/recipe/serializers/common/template
    •  pattern:由单字符键所组成的数组,用于描述一个2×2或3×3的有序合成图案。该数组中的一个字符串代表合成方格中的一行。每个字符串应写至多3个键,并且包含键的个数应当相同。空格代表一个空的合成栏位。
    •  key:所有该有序合成配方用到的键。
      •  (一个键):该键所代表的物品。
      •  (一个键):该键所能代表的一系列物品。
    •  result:该配方的输出物品。
      •  count:可选。物品的数量。如不填写将默认为1。
      •  item:一个物品ID

crafting_shapeless

代表一个工作台的无序合成配方。

ingredients中定义的原料数量应在1至9个之间。

配方的输出物品不能设置自定义的NBT数据标签。

  • 根标签
    • 配方共通属性 see Template:Nbt inherit/recipe/serializers/common/template
    •  ingredients:该无序合成配方的一系列原料。数量应在1至9个之间。
      • :一个包含单一物品的原料。
      • :一个包含一系列可选物品的原料。
    •  result:该配方的输出物品。
      •  count:可选。物品的数量。如不填写将默认为1。
      •  item:一个物品ID

crafting_special_*

代表一个工作台的特殊配方。这些配方都是由游戏内部的代码处理的,无法通过JSON文件来修改。

"vanilla"数据包被禁用时,你可以用它们来重新启用你所需要的特殊合成配方。

  • 根标签
    •  type:一个代表该配方的命名空间ID。

不像其他大多数配方,特殊配方并没有"group"字段,也不能显示在配方书当中。

  • armordye
盔甲染色配方。
常规配方不能处理各种染料。
  • bannerduplicate
旗帜复制配方。
常规配方不能复制有关旗帜物品的NBT数据。
  • bookcloning
成书复制配方。
常规配方不能复制有关成书物品的NBT数据,也不能控制书的副本级别。
  • firework_rocket
使用烟火之星合成烟花火箭的配方。
常规配方不能灵活地从烟火之星物品复制NBT数据到烟花火箭物品。
  • firework_star
  • firework_star_fade
烟火之星的合成与色彩淡化配方。
常规配方不能灵活地向烟火之星物品添加NBT数据。
  • mapcloning
地图复制配方。
常规配方不能复制有关地图物品的NBT数据。
  • mapextending
地图比例缩小配方。
常规配方不能更新有关地图物品的NBT数据。
  • repairitem
物品修复配方。
常规配方不能更新有关物品损伤值的数据。
  • shielddecoration
给盾牌添加图案的配方。
常规配方不能把旗帜物品的NBT数据添加到盾牌物品。
  • shulkerboxcoloring
潜影盒染色配方。
常规配方不能复制潜影盒物品的NBT数据到潜影盒物品。
  • tippedarrow
药箭配方
常规配方不能复制滞留药水物品的NBT数据到药箭物品。
  • suspiciousstew
迷之炖菜配方。
常规配方不能决定基于不同种类的花所给的状态效果

smelting

代表一个熔炉的配方。

默认烧炼时间是200刻,即10秒。

smithing

代表一个锻造台配方。

smoking

代表一个烟熏炉的配方。

默认烧炼时间是200刻,即10秒。

stonecutting

代表一个切石机的配方。

跟有序合成和无序合成配方中的 count字段不一样,这里的 count字段不能省略,必须填写。

历史

Java版
1.1217w13a为大多数合成配方加入了配方系统。
17w16a为配方JSON格式加入了“group”键。
1.1317w47a从配方JSON格式移除了“data”键。
17w48a自定义配方现在可以加入数据包中。
加入了这13种特殊配方类型
用特殊配方类型将许多特殊合成配方转换进配方系统。
17w49a为配方JSON格式加入了“tag”键。
18w06a熔炉配方现在使用配方系统。
type加入smelting
加入了字符串result
加入了experience
加入了cooktime
1.1418w43a加入了 crafting_special_suspiciousstew 特殊配方类型。
18w48a移除了这3种特殊配方类型
18w50a加入了blastingsmoking2种配方类型。
19w02a移除了这2种特殊配方类型
加入了campfire_cooking配方类型。
19w04a加入了stonecutting配方类型。
1.14.3pre3重新加入了crafting_special_repairitem配方类型。
基岩版
1.12.0beta 1.12.0.2将绝大多数合成配方引入配方系统。

漏洞

关于“配方”的漏洞由漏洞追踪器维护,请在此汇报漏洞。

参考