本帖最后由 乙烯_中国 于 2017-4-11 15:40 编辑 
好的,这里是乙烯。整篇文章差不多是自己开着mc一点点就着原文件和wiki自己试出来的,如果有分歧或者谬误还请指出。由于草稿一不小心发出来了,这就没办法了,剩下的一点内容我会爆肝写完的。
新快照出了几天了,advancement这个替换成就的新的系统大家都很感到新奇,正巧这次快照更新有添加一些相关内容,今天我乙烯就来和大家说一说这样的一个新的系统要怎样的玩耍。那么我们先来简单的介绍一下吧。(其中部分资料源自Minecraft Wiki,英文的
什么是advancement?
 
这就是advancement。(迫真)
好了,这是一个替换了成就系统的新的成就系统,嗯,大概这么看的话好像是看不出和原来的区别有多大?好像确实不大,但是现在通过这样的整理可以很方便的使用json来自定义advancement。而且你也可以很方便的添加选项卡,是不是很厉害!然后成就还是需要你逐步解锁的,不过目前的成就还不能写注解,所以很sad。
完成advancement的时候右上角会有提示,并且支持多条提示。
 
同样的,原来的成就指令achievement也被替换成advancement,这个的用法我们之后会说到。
如何自定义advancement
整个自定义推荐直接从0自己写,如果要基于官方的修改的话,请在完全熟悉系统以及官方成就的情况下修改。
据dinnerbone在推特上说,自定义advancement是与存档绑定的,也就是说相关的自定义文件要放在存档根目录的data/advancement里。是自定义里的豪杰。我们通过解压游戏的version jar可以很容易的确定这样的一个格式
复制代码
如何创建一个选项卡
这里就不复述中间的过程直接上结论了。这里除了recipes每一个文件夹都被视为一个单独的选项卡。如果要创建一个新的选项卡请在advancement文件夹下新建一个新的文件夹,文件夹名字从简为佳,允许存在中文但是个人并不推荐。在这个选项卡的advancement如果没有解锁的话,那么这个选项卡是不会显示的。
Recipes文件夹我暂时还没有时间进行详细的实验,但是据源码观察是利用了成就的系统决定了合成表的解锁链,比如我在进入了水(船合成表的解锁条件之一)后便解锁了船的合成,在我使用合法的格式编辑了面包的json后,进入水中便解锁了面包的合成。所以工作原理是一样的。也就是说,合成虽然暂时不能自定义,但是合成链的解锁已经可以自定义了。
创建一个选项卡除了新建一个文件夹,还要求这个选项卡有一个起始成就(下文称之为根成就),并且这个起始成就不能成为任何一个成就的子成就。如果这个成就是一个其他选项卡的子成就的话,显示上不仅不会显示新建选项卡,该成就以及其子成就还会显示到其他选项卡下面。这是我们不想要的。
 
大概加多了会这样。
当然这时候你们大概会说了:“哎呀我们不知道怎么写成就啊”,这个你们不要急,我们马上来说。
如何写一个单独的advancement
如果你已经按照上文操作,并自己写了成就的话,你的页面大概回事这个样子的。别急,这说明你的成就已经写的很接近了,让我们来看看成就应有的标准格式。
 
首先,要明确的是,大致会使用json格式是自定义成就的前提条件。所以让我们来简单介绍一下json格式。
这里我就折叠一下。
好的,这里就让我们来讲一下成就的结构是怎样的。下文均为小写,辣鸡word自动给我大写了,还有全文的引号必须为半角的引号,我这里尽量自己修一修,但word看不太出来。
复制代码
好,接下来逐条讲解.
display
Display其下所有的都用于设置这个成就是如何显示的。
parent
criteria
Requirement
Rewards
自此全标签讲解完成,留待二楼仔细说明判据,可能会在最后放出一个单独用于示例讲解的advancement。
a
新快照出了几天了,advancement这个替换成就的新的系统大家都很感到新奇,正巧这次快照更新有添加一些相关内容,今天我乙烯就来和大家说一说这样的一个新的系统要怎样的玩耍。那么我们先来简单的介绍一下吧。(其中部分资料源自Minecraft Wiki,英文的
什么是advancement?
 
这就是advancement。(迫真)
好了,这是一个替换了成就系统的新的成就系统,嗯,大概这么看的话好像是看不出和原来的区别有多大?好像确实不大,但是现在通过这样的整理可以很方便的使用json来自定义advancement。而且你也可以很方便的添加选项卡,是不是很厉害!然后成就还是需要你逐步解锁的,不过目前的成就还不能写注解,所以很sad。
完成advancement的时候右上角会有提示,并且支持多条提示。
 
同样的,原来的成就指令achievement也被替换成advancement,这个的用法我们之后会说到。
如何自定义advancement
整个自定义推荐直接从0自己写,如果要基于官方的修改的话,请在完全熟悉系统以及官方成就的情况下修改。
据dinnerbone在推特上说,自定义advancement是与存档绑定的,也就是说相关的自定义文件要放在存档根目录的data/advancement里。是自定义里的豪杰。我们通过解压游戏的version jar可以很容易的确定这样的一个格式
如何创建一个选项卡
这里就不复述中间的过程直接上结论了。这里除了recipes每一个文件夹都被视为一个单独的选项卡。如果要创建一个新的选项卡请在advancement文件夹下新建一个新的文件夹,文件夹名字从简为佳,允许存在中文但是个人并不推荐。在这个选项卡的advancement如果没有解锁的话,那么这个选项卡是不会显示的。
Recipes文件夹我暂时还没有时间进行详细的实验,但是据源码观察是利用了成就的系统决定了合成表的解锁链,比如我在进入了水(船合成表的解锁条件之一)后便解锁了船的合成,在我使用合法的格式编辑了面包的json后,进入水中便解锁了面包的合成。所以工作原理是一样的。也就是说,合成虽然暂时不能自定义,但是合成链的解锁已经可以自定义了。
创建一个选项卡除了新建一个文件夹,还要求这个选项卡有一个起始成就(下文称之为根成就),并且这个起始成就不能成为任何一个成就的子成就。如果这个成就是一个其他选项卡的子成就的话,显示上不仅不会显示新建选项卡,该成就以及其子成就还会显示到其他选项卡下面。这是我们不想要的。
 
大概加多了会这样。
当然这时候你们大概会说了:“哎呀我们不知道怎么写成就啊”,这个你们不要急,我们马上来说。
如何写一个单独的advancement
如果你已经按照上文操作,并自己写了成就的话,你的页面大概回事这个样子的。别急,这说明你的成就已经写的很接近了,让我们来看看成就应有的标准格式。
 
首先,要明确的是,大致会使用json格式是自定义成就的前提条件。所以让我们来简单介绍一下json格式。
这里我就折叠一下。
[spoiler]Json其实并不难,但是如果使用专业的说法可能导致一些人不太容易理解。如果你不擅长或者看完也没懂的话,有两种解决办法,一个是抄,抄原版游戏文件中的json,一个是问。
{“aa”:”bb”}
这就是最简单的json格式。并不难对吧。
{“aa”:”bb”,”cc”:”dd”}
这便是两者并列的json格式。使用逗号分隔。
{“aa”:”bb”,”cc”:”dd”,”ee”:{“ff”:”gg”}}
这便是一个上下级的关系。这里使用的都是大括号或者说叫花括号。
实例的结构可以简写为
Aa
Cc
Ee
Ff
下文的结构也是如此。
使用中括号便是代表一个列表,这个难以一言蔽之,基本上你可以看官方怎么写就好了。
字符串用”“围起来,数值则不需要。还有一种特殊的true或者false。
最后的最后,所有的括号都必须成对,并且不能有多余的逗号。[/spoiler]
好的,这里就让我们来讲一下成就的结构是怎样的。下文均为小写,辣鸡word自动给我大写了,还有全文的引号必须为半角的引号,我这里尽量自己修一修,但word看不太出来。
好,接下来逐条讲解.
display
Display其下所有的都用于设置这个成就是如何显示的。
[spoiler]Icon:这个用于设置成就显示的标识。
例子 ,这个的写法是
。 写进去的必须是一个物品名字。
写进去的必须是一个物品名字。
Title:这个用于设置成就的名字。
例子 ,写法为
,同时也可以使用同时也可以使用类似tellraw指令里面的json写法,比如"
,这样的效果为 。也可以使用多段分开的 。
 。也可以使用多段分开的 。
这里单独说一点,title和icon两者用于根成就时,都会被使用到这个选项卡的icon和title。
Frame:这个成就的边框,如果不填则默认为圆角矩形(task)。
现在mc提供三种边框。
从左到右为task,challenge和goal。例子,
,这样的效果为 。
 。
同时也决定了完成advancement完成时的右上角提示,例如如果是goal完成的话右上角会提示goal完成。
Background:这个成就选项卡的背景。这一项仅限于根成就才拥有。这个后面可以填一个可用的图片地址
例子
这样的效果为 。
。
自此display系列标签全部讲解完成。[/spoiler]
parent
[spoiler]Parent无其下标签,其自己是用于确定该成就的父成就,也就是在界面中左边与哪个成就相连。可以在不完成父成就的情况下获得该成就。 解锁或已被列出的成就会列出其所有的父成就以及两个子成就。不得写在根成就中。写法,
解锁或已被列出的成就会列出其所有的父成就以及两个子成就。不得写在根成就中。写法,
。内容必须为一个已经存在的成就。
 
自此parent系列标签全部讲解完成。[/spoiler]
criteria
[spoiler]Criteria其下为需列出获得成就的条件名,可以自己定义,但是不能与其他条件重名。
每个条件名其下需要有相关的判据,判据会在下方列出。每个判据会有相关的条件。每个判据我都会详细的说明。后续版本更新的我也会慢慢的补齐。
一般来说都是这样的格式
下文会慢慢举例子。这里先把目前所有的判据都举出来
该表格翻译自Minecraft 英文Wiki
相关的解析与例子由于排版问题我会放在二楼。[/spoiler]
Requirement
[spoiler]这里的话便是将在Criteria中写的判据进行应用。需要注意的是,如果判据仅写在Criteria中而你又写了requirement,那么这个判据是不会生效的。必须在这个条目中应用。如果不写则默认需要完成所有的criteria。
如果criteria非常简单的话(只有一个)则也可以选择不写requirement,但是个人建议为了避免某些意外性质的幺蛾子,还是每个都给写上比较好。
Requirement根据不同作用有两种写法。
首先requirement的外壳是
注意了,这里的话是有一份中括号的。
然后如果是需要a和b两个判据同时生效的话,写法为
注意这里是新用了一个中括号将a和b扩起来,有两对中括号。
如果需要完成任一判据即可获得成就的话,写法为
这里是用分别用一对中括号将两个判据围起来。
这两种写法是可以混用的,但是一般来说是不必要的。
这就是一份需要杀死过生物并且拥有小麦时能解锁的写法,但是前提是你必须定义过这两个判据。
自此requirement系列标签讲解完成。[/spoiler]
Rewards
[spoiler]这个标签是用来确定获得成就以获得的奖励。多用于合成表解锁。
这个标签下面都是非常简单暴力的写法,让我来就着例子和大家说明一下。
这里是rewards的三种子标签:recipes,内部填写物品名称,负责解锁合成表,在将来能自定义合成的时候是很方便的;loot,内部填写任一个合法的loottable名字,奖励时进行抽取随机给予,前面两种标签都可以同时在中括号里写出多种奖励;experience,奖励固定的经验数,就目前所了解到的是只能填写一个固定的数值。

 
这是上面loot奖励获得的腐肉(僵尸掉落),马鞍(钓鱼宝藏)。[/spoiler]
自此全标签讲解完成,留待二楼仔细说明判据,可能会在最后放出一个单独用于示例讲解的advancement。
a
好的,这里是乙烯。整篇文章差不多是自己开着mc一点点就着原文件和wiki自己试出来的,如果有分歧或者谬误还请指出。由于草稿一不小心发出来了,这就没办法了,剩下的一点内容我会爆肝写完的。
新快照出了几天了,advancement这个替换成就的新的系统大家都很感到新奇,正巧这次快照更新有添加一些相关内容,今天我乙烯就来和大家说一说这样的一个新的系统要怎样的玩耍。那么我们先来简单的介绍一下吧。(其中部分资料源自Minecraft Wiki,英文的
什么是advancement?

这就是advancement。(迫真)
好了,这是一个替换了成就系统的新的成就系统,嗯,大概这么看的话好像是看不出和原来的区别有多大?好像确实不大,但是现在通过这样的整理可以很方便的使用json来自定义advancement。而且你也可以很方便的添加选项卡,是不是很厉害!然后成就还是需要你逐步解锁的,不过目前的成就还不能写注解,所以很sad。
完成advancement的时候右上角会有提示,并且支持多条提示。

同样的,原来的成就指令achievement也被替换成advancement,这个的用法我们之后会说到。
如何自定义advancement
整个自定义推荐直接从0自己写,如果要基于官方的修改的话,请在完全熟悉系统以及官方成就的情况下修改。
据dinnerbone在推特上说,自定义advancement是与存档绑定的,也就是说相关的自定义文件要放在存档根目录的data/advancement里。是自定义里的豪杰。我们通过解压游戏的version jar可以很容易的确定这样的一个格式
- advancement
 
-      adventure
 
-      recipes
 
- story
如何创建一个选项卡
这里就不复述中间的过程直接上结论了。这里除了recipes每一个文件夹都被视为一个单独的选项卡。如果要创建一个新的选项卡请在advancement文件夹下新建一个新的文件夹,文件夹名字从简为佳,允许存在中文但是个人并不推荐。在这个选项卡的advancement如果没有解锁的话,那么这个选项卡是不会显示的。
Recipes文件夹我暂时还没有时间进行详细的实验,但是据源码观察是利用了成就的系统决定了合成表的解锁链,比如我在进入了水(船合成表的解锁条件之一)后便解锁了船的合成,在我使用合法的格式编辑了面包的json后,进入水中便解锁了面包的合成。所以工作原理是一样的。也就是说,合成虽然暂时不能自定义,但是合成链的解锁已经可以自定义了。
创建一个选项卡除了新建一个文件夹,还要求这个选项卡有一个起始成就(下文称之为根成就),并且这个起始成就不能成为任何一个成就的子成就。如果这个成就是一个其他选项卡的子成就的话,显示上不仅不会显示新建选项卡,该成就以及其子成就还会显示到其他选项卡下面。这是我们不想要的。

大概加多了会这样。
当然这时候你们大概会说了:“哎呀我们不知道怎么写成就啊”,这个你们不要急,我们马上来说。
如何写一个单独的advancement
如果你已经按照上文操作,并自己写了成就的话,你的页面大概回事这个样子的。别急,这说明你的成就已经写的很接近了,让我们来看看成就应有的标准格式。

首先,要明确的是,大致会使用json格式是自定义成就的前提条件。所以让我们来简单介绍一下json格式。
这里我就折叠一下。
好的,这里就让我们来讲一下成就的结构是怎样的。下文均为小写,辣鸡word自动给我大写了,还有全文的引号必须为半角的引号,我这里尽量自己修一修,但word看不太出来。
- Display
 
-     Icon
 
-     Title
 
-     Frame
 
-     Background
 
- Parent
 
- Criteria
 
-     条件名
 
-         Trigger
 
-         Conditions
 
- Requirement
 
- Rewards
 
-     Recipes
 
-     Loot
 
- Experience
好,接下来逐条讲解.
display
Display其下所有的都用于设置这个成就是如何显示的。
parent
criteria
Requirement
Rewards
自此全标签讲解完成,留待二楼仔细说明判据,可能会在最后放出一个单独用于示例讲解的advancement。
a
2021.12 数据,可能有更多内容
好的,这里是乙烯。整篇文章差不多是自己开着mc一点点就着原文件和wiki自己试出来的,如果有分歧或者谬误还请指出。由于草稿一不小心发出来了,这就没办法了,剩下的一点内容我会爆肝写完的。新快照出了几天了,advancement这个替换成就的新的系统大家都很感到新奇,正巧这次快照更新有添加一些相关内容,今天我乙烯就来和大家说一说这样的一个新的系统要怎样的玩耍。那么我们先来简单的介绍一下吧。(其中部分资料源自Minecraft Wiki,英文的
什么是advancement?

这就是advancement。(迫真)
好了,这是一个替换了成就系统的新的成就系统,嗯,大概这么看的话好像是看不出和原来的区别有多大?好像确实不大,但是现在通过这样的整理可以很方便的使用json来自定义advancement。而且你也可以很方便的添加选项卡,是不是很厉害!然后成就还是需要你逐步解锁的,不过目前的成就还不能写注解,所以很sad。
完成advancement的时候右上角会有提示,并且支持多条提示。

同样的,原来的成就指令achievement也被替换成advancement,这个的用法我们之后会说到。
如何自定义advancement
整个自定义推荐直接从0自己写,如果要基于官方的修改的话,请在完全熟悉系统以及官方成就的情况下修改。
据dinnerbone在推特上说,自定义advancement是与存档绑定的,也就是说相关的自定义文件要放在存档根目录的data/advancement里。是自定义里的豪杰。我们通过解压游戏的version jar可以很容易的确定这样的一个格式
代码:
- advancement
 
-   adventure
 
-   recipes
 
- story
如何创建一个选项卡
这里就不复述中间的过程直接上结论了。这里除了recipes每一个文件夹都被视为一个单独的选项卡。如果要创建一个新的选项卡请在advancement文件夹下新建一个新的文件夹,文件夹名字从简为佳,允许存在中文但是个人并不推荐。在这个选项卡的advancement如果没有解锁的话,那么这个选项卡是不会显示的。
Recipes文件夹我暂时还没有时间进行详细的实验,但是据源码观察是利用了成就的系统决定了合成表的解锁链,比如我在进入了水(船合成表的解锁条件之一)后便解锁了船的合成,在我使用合法的格式编辑了面包的json后,进入水中便解锁了面包的合成。所以工作原理是一样的。也就是说,合成虽然暂时不能自定义,但是合成链的解锁已经可以自定义了。
创建一个选项卡除了新建一个文件夹,还要求这个选项卡有一个起始成就(下文称之为根成就),并且这个起始成就不能成为任何一个成就的子成就。如果这个成就是一个其他选项卡的子成就的话,显示上不仅不会显示新建选项卡,该成就以及其子成就还会显示到其他选项卡下面。这是我们不想要的。

大概加多了会这样。
当然这时候你们大概会说了:“哎呀我们不知道怎么写成就啊”,这个你们不要急,我们马上来说。
如何写一个单独的advancement
如果你已经按照上文操作,并自己写了成就的话,你的页面大概回事这个样子的。别急,这说明你的成就已经写的很接近了,让我们来看看成就应有的标准格式。

首先,要明确的是,大致会使用json格式是自定义成就的前提条件。所以让我们来简单介绍一下json格式。
这里我就折叠一下。
[spoiler]Json其实并不难,但是如果使用专业的说法可能导致一些人不太容易理解。如果你不擅长或者看完也没懂的话,有两种解决办法,一个是抄,抄原版游戏文件中的json,一个是问。
{“aa”:”bb”}
这就是最简单的json格式。并不难对吧。
{“aa”:”bb”,”cc”:”dd”}
这便是两者并列的json格式。使用逗号分隔。
{“aa”:”bb”,”cc”:”dd”,”ee”:{“ff”:”gg”}}
这便是一个上下级的关系。这里使用的都是大括号或者说叫花括号。
实例的结构可以简写为
Aa
Cc
Ee
Ff
下文的结构也是如此。
使用中括号便是代表一个列表,这个难以一言蔽之,基本上你可以看官方怎么写就好了。
字符串用”“围起来,数值则不需要。还有一种特殊的true或者false。
最后的最后,所有的括号都必须成对,并且不能有多余的逗号。[/spoiler]
好的,这里就让我们来讲一下成就的结构是怎样的。下文均为小写,辣鸡word自动给我大写了,还有全文的引号必须为半角的引号,我这里尽量自己修一修,但word看不太出来。
代码:
- Display
 
-     Icon
 
-     Title
 
-     Frame
 
-     Background
 
- Parent
 
- Criteria
 
-     条件名
 
-    Trigger
 
-    Conditions
 
- Requirement
 
- Rewards
 
-     Recipes
 
-     Loot
 
- Experience
好,接下来逐条讲解.
display
Display其下所有的都用于设置这个成就是如何显示的。
[spoiler]Icon:这个用于设置成就显示的标识。
例子 ,这个的写法是
代码:
- "icon":"minecraft:map"
。

Title:这个用于设置成就的名字。
例子 ,写法为
代码:
- "title": "Adventure"

,同时也可以使用同时也可以使用类似tellraw指令里面的json写法,比如"
代码:
- title":{"text":"test","color":"red","bold":true,"italic":true}
,这样的效果为


这里单独说一点,title和icon两者用于根成就时,都会被使用到这个选项卡的icon和title。
Frame:这个成就的边框,如果不填则默认为圆角矩形(task)。
现在mc提供三种边框。

从左到右为task,challenge和goal。例子,
代码:
- "frame": "goal"
,这样的效果为

同时也决定了完成advancement完成时的右上角提示,例如如果是goal完成的话右上角会提示goal完成。
Background:这个成就选项卡的背景。这一项仅限于根成就才拥有。这个后面可以填一个可用的图片地址
例子
代码:
- "background": "minecraft:textures/blocks/wool_colored_cyan.png"
这样的效果为

自此display系列标签全部讲解完成。[/spoiler]
parent
[spoiler]Parent无其下标签,其自己是用于确定该成就的父成就,也就是在界面中左边与哪个成就相连。可以在不完成父成就的情况下获得该成就。

代码:
- "parent": "adventure/root"
。内容必须为一个已经存在的成就。
自此parent系列标签全部讲解完成。[/spoiler]
criteria
[spoiler]Criteria其下为需列出获得成就的条件名,可以自己定义,但是不能与其他条件重名。
每个条件名其下需要有相关的判据,判据会在下方列出。每个判据会有相关的条件。每个判据我都会详细的说明。后续版本更新的我也会慢慢的补齐。
一般来说都是这样的格式
代码:
- "criteria": {
 
-     "这里写条件名": {
 
-     "trigger": "minecraft:xxx",
 
-     "conditions": {
 
-    这里填条件
 
-     }
 
- }
下文会慢慢举例子。这里先把目前所有的判据都举出来
该表格翻译自Minecraft 英文Wiki
| 判据名 | 
| 触发条件: | 
| 可用的条件 | 
| minecraft:bred_animals | 
| 玩家喂食两只动物。 | 
| "parent","partner", "child" | 
| minecraft:brewed_potion | 
| 玩家酿出药水。 | 
| "potion" | 
| minecraft:construct_beacon | 
| 玩家改变了信标的结构(即信标更新自己时)。 | 
| "level" | 
| minecraft:cured_zombie_villager | 
| 玩家治愈了一只僵尸村民。 | 
| "zombie,"villager" | 
| minecraft:enchanted_item | 
| 玩家通过附魔台对物品进行附魔(而不是通过铁砧或者命令) | 
| "item","levels" | 
| minecraft:enter_block | 
| 玩家进入一个方块,也就是能响应execute @p ~ ~ ~ detect ~ ~ ~ 方块 损害值 | 
| "block","state" | 
| minecraft:entity_killed_player | 
| 实体杀死玩家。 | 
| "entity" | 
| minecraft:impossible | 
| 无,仅可通过指令获得。 | 
| minecraft:inventory_changed | 
| 玩家的背包发生变化。 | 
| "items","slots" | 
| minecraft:location | 
| 每秒钟(20ticks)触发一次。 | 
| "position","biome" | 
| minecraft:player_damaged | 
| 玩家收到伤害。 | 
| "damage" | 
| minecraft:player_hurt_entity | 
| 玩家被一个实体伤到(包括自己)。 | 
| "damage" | 
| minecraft:player_killed_entity | 
| 玩家杀死了一个实体。 | 
| "entity" | 
| minecraft:recipe_unlocked | 
| 玩家解锁了一个合成表(例如使用知识之书)。 | 
| "recipe" | 
| minecraft:slept_in_bed | 
| 玩家上床。 | 
| "location" | 
| minecraft:summoned_entity | 
| 玩家召唤一个实体(生存可用的应该都是可用的,留待测试)。 | 
| "entity" | 
| minecraft:used_ender_eye | 
| 玩家在生成要塞的世界里使用了末影之眼。 | 
| "distance" | 
| minecraft:villager_trade | 
| 玩家与村民交易。 | 
| "villager","item" | 
相关的解析与例子由于排版问题我会放在二楼。[/spoiler]
Requirement
[spoiler]这里的话便是将在Criteria中写的判据进行应用。需要注意的是,如果判据仅写在Criteria中而你又写了requirement,那么这个判据是不会生效的。必须在这个条目中应用。如果不写则默认需要完成所有的criteria。
如果criteria非常简单的话(只有一个)则也可以选择不写requirement,但是个人建议为了避免某些意外性质的幺蛾子,还是每个都给写上比较好。
Requirement根据不同作用有两种写法。
首先requirement的外壳是
代码:
- "requirements": [ ]
注意了,这里的话是有一份中括号的。
然后如果是需要a和b两个判据同时生效的话,写法为
代码:
- "requirements": [["a", "b"]]
注意这里是新用了一个中括号将a和b扩起来,有两对中括号。
如果需要完成任一判据即可获得成就的话,写法为
代码:
- "requirements": [["a"], ["b"]]
这里是用分别用一对中括号将两个判据围起来。
这两种写法是可以混用的,但是一般来说是不必要的。
代码:
- "requirements": [["killed_something", "has_wheat"]]
这就是一份需要杀死过生物并且拥有小麦时能解锁的写法,但是前提是你必须定义过这两个判据。
自此requirement系列标签讲解完成。[/spoiler]
Rewards
[spoiler]这个标签是用来确定获得成就以获得的奖励。多用于合成表解锁。
这个标签下面都是非常简单暴力的写法,让我来就着例子和大家说明一下。
代码:
-    "rewards": {
 
-    "recipes": ["minecraft:crafting_table", "minecraft:iron_block"],
 
-    "loot": ["minecraft:entities/zombie", "minecraft:gameplay/fishing/treasure"],
 
-    "experience": 7
 
- }
这里是rewards的三种子标签:recipes,内部填写物品名称,负责解锁合成表,在将来能自定义合成的时候是很方便的;loot,内部填写任一个合法的loottable名字,奖励时进行抽取随机给予,前面两种标签都可以同时在中括号里写出多种奖励;experience,奖励固定的经验数,就目前所了解到的是只能填写一个固定的数值。

这是上面loot奖励获得的腐肉(僵尸掉落),马鞍(钓鱼宝藏)。[/spoiler]
自此全标签讲解完成,留待二楼仔细说明判据,可能会在最后放出一个单独用于示例讲解的advancement。
a
额,是不是因为太高端了导致看到了都不知道该怎么回复= =
果然
从我注册到现在
如果有唯一没变的东西
那就是:当时我是小白,现在我还是小白= =
果然
从我注册到现在
如果有唯一没变的东西
那就是:当时我是小白,现在我还是小白= =
bred那个没记错是要生出了新的生物
brewed potion其实从那药水的格子拿东西出来也行,放进去再拿出来也行
enter block准确来说是碰撞箱碰到,execute那个是错的
player hurt entity是玩家伤害到别的实体
slept in bed是成功上床,地狱的不算,因为会爆炸
还有,杀死别的实体是不包括别的玩家的。可以参考外国那个教程,已经非常的详细了
brewed potion其实从那药水的格子拿东西出来也行,放进去再拿出来也行
enter block准确来说是碰撞箱碰到,execute那个是错的
player hurt entity是玩家伤害到别的实体
slept in bed是成功上床,地狱的不算,因为会爆炸
还有,杀死别的实体是不包括别的玩家的。可以参考外国那个教程,已经非常的详细了
pca006132 发表于 2017-4-8 10:15
bred那个没记错是要生出了新的生物
brewed potion其实从那药水的格子拿东西出来也行,放进去再拿出来也行
e ...
嗯
execute那个是玩家的脚心在方块里面
这个是玩家的任何一个地方在里面
1026833619 发表于 2017-4-8 04:50
额,是不是因为太高端了导致看到了都不知道该怎么回复= =
果然
从我注册到现在
66666666同样的路过
二楼在哪???
ruhuasiyu 发表于 2017-4-27 23:24
二楼在哪???
等整体系统成型再更新
等正式版本出了再写编辑器,现在先蹲坑。XD
正式版出来啦出来啦!
我突然发现我自己还不如一只猴子
criteria貌似里少了这些判据:
arbitrary_player_tick
changed_dimension
consume_item
entity_hurt_player
item_durability_changed
levitation
placed_block
tame_animal
arbitrary_player_tick
changed_dimension
consume_item
entity_hurt_player
item_durability_changed
levitation
placed_block
tame_animal
看了以后怀疑人生啊。猴子。。。
正如题目所说,很简单就可以学会了,赞一个
既然可以单独编辑存档,那以后的地图更高能了l
spigot有个插件弄成就的
顶顶顶顶顶顶顶顶顶顶顶顶顶
所以我哪里错了啊,该怎么改啊复制代码一脸蒙蔽啊.....@乙烯_中国 
- {
 
-         "display": {
 
-                 "icon": {
 
-                         "item": "command_block"
 
-                 },
 
-                 "title": {
 
-                         "text": "Test"
 
-                 },
 
-                 "description": "test"
 
-         },
 
-         "show_toast": true,
 
-         "announce_to_chat": true,
 
-         "background": "minecraft:textures/block/iron_block.png"
 
- },
 
- "criteria": {
 
-         "has_command_block": {
 
-                 "trigger": "minecraft:inventory_changed",
 
-                 "conditions": {
 
-                         "items": [{
 
-                                 "item": "minecraft:command_block"
 
-                         }]
 
-                 }
 
-         },
 
-         "has_the_recipe": {
 
-                 "trigger": "recipe_unlocked",
 
-                 "conditions": {
 
-                         "recipe": "cs:1"
 
-                 }
 
-         }
 
- },
 
- "requirements": [
 
-         [
 
-                 "has_command_block",
 
-                 "has_the_recipe"
 
-         ]
 
- ]
 
- }
1204942617 发表于 2018-8-8 10:35
所以我哪里错了啊,该怎么改啊一脸蒙蔽啊.....@乙烯_中国
你的括号未完全配对吧
乙烯_中国 发表于 2018-8-8 18:18
你的括号未完全配对吧
怎么弄= =突然觉得成就比合成难好多啊...@乙烯_中国
判据不详细讲讲吗/?
您发的东西确实是猴子都能看懂的。可我是骡子啊

乙烯_中国 发表于 2017-4-27 23:45
等整体系统成型再更新
二楼在哪?
支持一下~~
嗯...一年过去了...二楼...
猴子好像还不行啊
嘻嘻嘻嘻嘻嘻嘻嘻寻寻寻寻寻寻寻寻寻寻
等正式版本出了再写编辑器,现在先蹲坑
 本帖最后由 981867644 于 2018-11-7 19:07 编辑 
不知道乙烯会不会回复...
复制代码
在这段代码里我明确的用requirements区分开了“123”和“Impossible”,只需要完成其中一个要求就可以获得成就,但是在游戏里的测试却是要同时完成俩个要求才能获得成就,请问哪里出问题了
五分钟后的测试:那个...大佬...您是不是教程写反了...["1","2"]应该才是“任意完成一个”就行吧...反之["1"],["2"]是“全部完成”才对啊...
不知道乙烯会不会回复...
- {
 
-     "__comment": "Made with TheDestruc7i0n's advancements generator: https://advancements.thedestruc7i0n.ca",
 
-     "display": {
 
-         "title": {
 
-             "text": "Advancement",
 
-             "color": "gold",
 
-             "bold": false,
 
-             "strikethrough": false
 
-         },
 
-         "description": {
 
-             "text": "Description"
 
-         },
 
-         "icon": {
 
-             "item": "minecraft:stone"
 
-         },
 
-         "frame": "task",
 
-         "show_toast": true,
 
-         "announce_to_chat": true,
 
-         "hidden": false,
 
-         "background": "minecraft:textures/gui/advancements/backgrounds/stone.png"
 
-     },
 
-     "criteria": {
 
-         "123": {
 
-             "trigger": "minecraft:brewed_potion",
 
-             "conditions": {
 
-                 "potion": "minecraft:long_swiftness"
 
-             }
 
-         },
 
-         "Impossible": {
 
-             "trigger": "minecraft:brewed_potion",
 
-             "conditions": {
 
-                 "potion": "minecraft:strong_swiftness"
 
-             }
 
-         }
 
-     },
 
-     "requirements": [
 
-         [
 
-             "Impossible"
 
-         ],
 
-         [
 
-             "123"
 
-         ]
 
-     ]
 
- }
在这段代码里我明确的用requirements区分开了“123”和“Impossible”,只需要完成其中一个要求就可以获得成就,但是在游戏里的测试却是要同时完成俩个要求才能获得成就,请问哪里出问题了
五分钟后的测试:那个...大佬...您是不是教程写反了...["1","2"]应该才是“任意完成一个”就行吧...反之["1"],["2"]是“全部完成”才对啊...
成就正常完成了,但是写在recipes里的物品却没有得到
整合包里的任务卡住了,请问怎么重置
能够修改进度组和某进度的支进度的显示顺序吗?
我是新手,我来学习一下,学习各位老大。
浅显易懂! 终于能给地图加成就系统啦~想试试做分岐选项或字汇资料库!
1.14貌似不能这么写?
我忽然感觉自己不如一只猴子
HtYang 发表于 2019-10-7 15:59
1.14貌似不能这么写?
可以啊,是不是你哪里写错了?
可能这才是玩家吧,我只是个玩了几年的蔡姬
requirements部分是不是写反了?
这也太简略了吧,还是不会写
请问bcakground到底怎么写
emm,可能我连猴子都不是吧
下文呢下文呢?等待进食中……
楼主感谢分享,给你扣波666~
MCBBS有你更精彩~
 本帖最后由 dirty_Rob 于 2020-3-29 21:22 编辑 
为啥我还是不会???我连猴子都不如吗? json那一段我跟不没有弄懂
json那一段我跟不没有弄懂  
补充:原来是格式错了,我觉得如果那一段json写得更清楚一点(因为我就以为是有好多个文件夹底下有一些json文件),不然别说猴子了,就是很多人都看不懂(不要说这是我给自己找的理由) 看来我还是和人很像的
为啥我还是不会???我连猴子都不如吗?
补充:原来是格式错了,我觉得如果那一段json写得更清楚一点(因为我就以为是有好多个文件夹底下有一些json文件),不然别说猴子了,就是很多人都看不懂(不要说这是我给自己找的理由) 看来我还是和人很像的
你的教程很不错,我看过后有点思路
大佬问一下如果是同一个触发器想要使用多次可以吗?
比如与村民交易万次...?
比如与村民交易万次...?
brewed potion
谢谢分享,终于搞懂了
完了,猴子都能学会我不如猴子了