欢迎光临散文网 会员登陆 & 注册

MINECRAFT数据包-进度与合成配方

2022-05-29 22:21 作者:wijfjka  | 我要投稿


注意!!!本章学习需要进度和合成配方方面的一定基础

本章讨论 [进度] 与 [合成配方] 相关内容

在数据包制作过程中,我们总是会使用到 进度 这个数据包的重要部分。

首先,我们需要先了解 进度 这个东西是个啥


来自Minecraft Wiki

来自Minecraft

一般地,像原版游戏内提示进度已达成这样的文字,就说明你完成了这个进度

那么,进度在数据包制作中有什么作用呢?

--答:检测游戏实体相关动作、事件等。

下面我们就来看一个例子:

问:如何通过工作台合成出一把锋利1的钻石剑

配方要求如图所示

配方书写部分不在赘述,如下

这里我们需要改变一个地方

在result的item这条中,我们只需要将其修改为任意原版的物品

因为我们只需要达成 解锁配方 这个目标。

(注意:最好是生存无法直接获取的物品)

我这里是使用原版的 知识之书。

我们都知道,原版数据包的自定义合成中是不能够直接合成NBT物品的(废话)。

但是,进度中有一个触发器:minecraft:recipe_unlocked

这个触发器可以在玩家解锁配方时触发,就像我们在原版生存中挖掘了第一块原木,然后解锁了各类木头相关的配方一样。

依据这个,我们可以对一个数据包定义的配方的合成进行检测。

首先,我们需要保证这个配方是未解锁的(没有直接地出现在合成书中)。

于是,我们需要在数据包的#minecraft:load这个标签的函数中写入这行指令

这样,我们就完成了这个配方的初始化。

接下来,我们就需要编辑进度文件了(注:进度文件为JSON格式)。

在data/test/advancements/目录下新建sharp_sword.json文件




接下来用文本编辑软件打开(VsCode等软件皆可),然后在文件中写入下面的内容:

(必须严格按照JSON格式写入!!!)

恭喜你,你完成了进度部分的编辑。

接下来我们来解析这个进度:

其中,rewards下有一条名为function的内容。

function 顾名思义就是函数的意思。

实际上,它的意义也便是进度达成后所要执行的函数。

所以,接下来我们需要编辑对应的函数即可

data/test/functions/craft/目录下新建sharp_sword.mcfunction。

(注意,这是一个函数,不同于我们先前编辑的进度)

使用文本编辑软件,写入以下内容:


这样,我们就完成了这样一个含NBT的合成配方。

MINECRAFT数据包-进度与合成配方的评论 (共 条)

分享到微博请遵守国家法律