我的世界1.8有序合成与无序合成详解

时间:2017-07-21 来源:88130安卓下载 作者:佚名

  我的世界1.8有序合成与无序合成详解。那下面给大家分享的则是我的世界1.8版本中的有序合成与无序合成方面的介绍哦~那不了解的玩家不妨进来看看下面的介绍吧!

  游戏园我的世界官方群:325049520  256070479 欢迎各路喜爱我的世界的小伙伴们加入讨论!

  玩服务器的小伙伴们可以加入:141931866 群一起联机玩游戏哦!

  如果你是腐竹的话可以给我们投稿你的服务器哦~投稿地址点我进入

  如果你有心仪的作品或者心得分享的话,欢迎来游戏园投稿,大家可以点击>>>投稿<<<进行投稿哦~ 有奖品哦~

  在Minecraft的合成中无非两种——有序合成、无序合成 (众:废话)。

  原版中的合成基本上都是在合成台或者背包自带四格合成的。但是我们在很多原版模组中可以看到把几件东西扔在地上的合成方式,这就是基于原版命令方块的无序合成。

  无序合成

  这里我举了一个合成有序合成台的配方,当然的,配方可以自定义。

  这是参与合成的三种配方。把他们扔出来以后,见朕骑妓(划掉)的时刻到了。

  这是电路图,由图中标记的9个命令方块实现的,其实还有一个设置计分板项的。

  scoreboard objectives add zpt dummy

  这里创建了一个叫做zpt的虚拟变量,是为了我们以后方便标记配方用的。

  图中灰色羊毛上下两个命令方块一起构成一个fill高频。

  上面的命令是

  fill ~ ~-1 ~ ~10 ~-1 ~ redstone_block

  下面的命令是

  fill ~ ~1 ~ ~10 ~1 ~ air

  反正也不用多说,很简单的。(然而已经说了不少了)

  然后两个命令方块之间放上红石块,就开始刷屏了。

  然后黄色、绿色、粉色的命令方块里的命令就很简单了。

  scoreboard players set @e[type=Item] zpt 3 {Item:{id:"minecraft:dropper",Count:1b}}

  scoreboard players set @e[type=Item] zpt 2 {Item:{id:"minecraft:redstone_block",Count:1b}}

  scoreboard players set @e[type=Item] zpt 1 {Item:{id:"minecraft:iron_block",Count:1b}}

  总之,格式就是

  scoreboard players set @e[type=Item] zpt 1、2、3..... {Irem:{id:"minecraft:物品id名",Count:数量b,Damage:损伤值s}}

  这几个命令的意义在于:execute是不能加标签的,所以我们要想让他在海一样的掉落物中找到我们要的配方,就只能用实体选择参数,自然地就能想到计分板标记了。需要注意的是设置的分数,即1/2/3什么的不能重复,这也是我们取巧的地方,就不需要设置多个计分板项了。

  这就给我们三个合成配方的掉落物加分了。

  然后我们就进行合成了

  execute @e[score_zpt=1,score_zpt_min=1] ~ ~ ~ execute @e[score_zpt=2,score_zpt_min=2,r=0] ~ ~ ~ execute @e[score_zpt=3,score_zpt_min=3,r=0] ~ ~ ~ summon Item ~ ~ ~ {Item:{id:"minecraft:spawn_egg",Count:1b,Damage:50s,tag:{display:{Name:"Assembly",Lore:["用于生成一个装配台"]}}}}

  这就是蓝色羊毛下的指令,看起来稍微长一点,也是最重要的指令了。咱们一点一点分析。

  execute高频探测是否存在计分板项目为1、2、3的物品,受到r=0的限制,这个命令的探测部分意思就是探测是否有zpt计分板项目为1、2、3的物品堆叠在一起。这里没有对选择器参数中增加type=Item的原因是,前面我们给配方加分的时候已经设置了掉落物的类型。如果前面条件语句的输出值为真的时候,就执行后面的指令,即生成一个苦力怕蛋(也就是我们合成的结果)。综上所述,这个命令就是说探测是否有我们要的合成配方堆叠在一起,如果有就原地生成一个掉落物——合成结果。

  这是上面指令的模板

  execute @e[score_计分板名称=之前设置给配方的分数,score_计分板名称_min=之前设置给这个配方的分数] ~ ~ ~ execute...(重复部分略过,注意后面中括号的内容需要增加r=0,与前面的其他内容用逗号","隔开) summon Item ~ ~ ~ {Item:{id:"minecraft:合成结果名称",Count:数量b,Damage:损伤值s,tag:{nbt标签,即give指令中大括号中的内容,最外面的大括号略过,其他的括号不可以省略}}}

  这就可以合成了,但是如果你试验一下 = =

  反正我是不敢试,我机子本来就渣。

  可能反应快的早就反应过来了,是的!配方没有被杀掉!

  于是我们发现我们的fill高频很给力,一秒20下... = =

  所以我们需要尽快地杀掉这个配方。

  和上面一样,我们又需要用到计分板标记一下我们的合成结果了。

  如果你担心弄混掉可以再另外设置一个计分板项目,这里由于我就只设置了一个合成,我就继续用了原来的计分板项目。

  scoreboard players set @e[type=Item] zpt 4 {Item:{id:"minecraft:spawn_egg",Count:1b,Damage:50s,tag:{display:{Name:"Assembly",Lore:["用于生成一个装配台"]}}}}

  这是橙色羊毛的指令,指令后面一堆(tuo)东西,(Item什么什么的),就是刚才指令中的(论CV大法)。我这里把结果设置成zpt项的4分,这么做的目的是造成微延时.如果你的输出不是掉落物形式的,清理掉配方就需要用微观延时了。

  我这里是这么杀掉配方物品的

  execute @e[score_zpt=4,score_zpt_min=4] ~ ~ ~ kill @e[score_zpt=3,score_zpt_min=1,r=1]

  这个指令在白色里面,是用来探测是否出现了分数为4的物品,也就是我们之前设置的合成结果,如果有就杀掉zpt分数在3到1之间,距离合成结果半径为1的所有实体,即之前参与合成的配方。

  到这里无序合成部分就结束了,什么?少了一个命令方块?嗯,是的,我图截错了。(事实证明他是下面的...)

  我的世界1.8有序合成与无序合成详解。那下面给大家分享的则是我的世界1.8版本中的有序合成与无序合成方面的介绍哦~那不了解的玩家不妨进来看看下面的介绍吧!

  游戏园我的世界官方群:325049520  256070479 欢迎各路喜爱我的世界的小伙伴们加入讨论!

  玩服务器的小伙伴们可以加入:141931866 群一起联机玩游戏哦!

  如果你是腐竹的话可以给我们投稿你的服务器哦~投稿地址点我进入

  如果你有心仪的作品或者心得分享的话,欢迎来游戏园投稿,大家可以点击>>>投稿<<<进行投稿哦~ 有奖品哦~

  在Minecraft的合成中无非两种——有序合成、无序合成 (众:废话)。

  原版中的合成基本上都是在合成台或者背包自带四格合成的。但是我们在很多原版模组中可以看到把几件东西扔在地上的合成方式,这就是基于原版命令方块的无序合成。

  无序合成

  这里我举了一个合成有序合成台的配方,当然的,配方可以自定义。

  这是参与合成的三种配方。把他们扔出来以后,见朕骑妓(划掉)的时刻到了。

  这是电路图,由图中标记的9个命令方块实现的,其实还有一个设置计分板项的。

  scoreboard objectives add zpt dummy

  这里创建了一个叫做zpt的虚拟变量,是为了我们以后方便标记配方用的。

  图中灰色羊毛上下两个命令方块一起构成一个fill高频。

  上面的命令是

  fill ~ ~-1 ~ ~10 ~-1 ~ redstone_block

  下面的命令是

  fill ~ ~1 ~ ~10 ~1 ~ air

  反正也不用多说,很简单的。(然而已经说了不少了)

  然后两个命令方块之间放上红石块,就开始刷屏了。

  然后黄色、绿色、粉色的命令方块里的命令就很简单了。

  scoreboard players set @e[type=Item] zpt 3 {Item:{id:"minecraft:dropper",Count:1b}}

  scoreboard players set @e[type=Item] zpt 2 {Item:{id:"minecraft:redstone_block",Count:1b}}

  scoreboard players set @e[type=Item] zpt 1 {Item:{id:"minecraft:iron_block",Count:1b}}

  总之,格式就是

  scoreboard players set @e[type=Item] zpt 1、2、3..... {Irem:{id:"minecraft:物品id名",Count:数量b,Damage:损伤值s}}

  这几个命令的意义在于:execute是不能加标签的,所以我们要想让他在海一样的掉落物中找到我们要的配方,就只能用实体选择参数,自然地就能想到计分板标记了。需要注意的是设置的分数,即1/2/3什么的不能重复,这也是我们取巧的地方,就不需要设置多个计分板项了。

  这就给我们三个合成配方的掉落物加分了。

  然后我们就进行合成了

  execute @e[score_zpt=1,score_zpt_min=1] ~ ~ ~ execute @e[score_zpt=2,score_zpt_min=2,r=0] ~ ~ ~ execute @e[score_zpt=3,score_zpt_min=3,r=0] ~ ~ ~ summon Item ~ ~ ~ {Item:{id:"minecraft:spawn_egg",Count:1b,Damage:50s,tag:{display:{Name:"Assembly",Lore:["用于生成一个装配台"]}}}}

  这就是蓝色羊毛下的指令,看起来稍微长一点,也是最重要的指令了。咱们一点一点分析。

  execute高频探测是否存在计分板项目为1、2、3的物品,受到r=0的限制,这个命令的探测部分意思就是探测是否有zpt计分板项目为1、2、3的物品堆叠在一起。这里没有对选择器参数中增加type=Item的原因是,前面我们给配方加分的时候已经设置了掉落物的类型。如果前面条件语句的输出值为真的时候,就执行后面的指令,即生成一个苦力怕蛋(也就是我们合成的结果)。综上所述,这个命令就是说探测是否有我们要的合成配方堆叠在一起,如果有就原地生成一个掉落物——合成结果。

  这是上面指令的模板

  execute @e[score_计分板名称=之前设置给配方的分数,score_计分板名称_min=之前设置给这个配方的分数] ~ ~ ~ execute...(重复部分略过,注意后面中括号的内容需要增加r=0,与前面的其他内容用逗号","隔开) summon Item ~ ~ ~ {Item:{id:"minecraft:合成结果名称",Count:数量b,Damage:损伤值s,tag:{nbt标签,即give指令中大括号中的内容,最外面的大括号略过,其他的括号不可以省略}}}

  这就可以合成了,但是如果你试验一下 = =

  反正我是不敢试,我机子本来就渣。

  可能反应快的早就反应过来了,是的!配方没有被杀掉!

  于是我们发现我们的fill高频很给力,一秒20下... = =

  所以我们需要尽快地杀掉这个配方。

  和上面一样,我们又需要用到计分板标记一下我们的合成结果了。

  如果你担心弄混掉可以再另外设置一个计分板项目,这里由于我就只设置了一个合成,我就继续用了原来的计分板项目。

  scoreboard players set @e[type=Item] zpt 4 {Item:{id:"minecraft:spawn_egg",Count:1b,Damage:50s,tag:{display:{Name:"Assembly",Lore:["用于生成一个装配台"]}}}}

  这是橙色羊毛的指令,指令后面一堆(tuo)东西,(Item什么什么的),就是刚才指令中的(论CV大法)。我这里把结果设置成zpt项的4分,这么做的目的是造成微延时.如果你的输出不是掉落物形式的,清理掉配方就需要用微观延时了。

  我这里是这么杀掉配方物品的

  execute @e[score_zpt=4,score_zpt_min=4] ~ ~ ~ kill @e[score_zpt=3,score_zpt_min=1,r=1]

  这个指令在白色里面,是用来探测是否出现了分数为4的物品,也就是我们之前设置的合成结果,如果有就杀掉zpt分数在3到1之间,距离合成结果半径为1的所有实体,即之前参与合成的配方。

  到这里无序合成部分就结束了,什么?少了一个命令方块?嗯,是的,我图截错了。(事实证明他是下面的...)

  有序合成

  刚刚,我们合成了一个苦力怕的 蛋蛋(gao wan),我之前提到过,他是我们有序合成的合成台,好的,我们把他放下来。

  就决斗是你了!苦力怕!(Creeper:为什么是我啊!!!)

  然后他就牺牲了...(太快了,图截不下来)

  而他,为了让我们知道他的存在,他在死前留下了“装配台”

  这是我在电路里面设置好的配方

  我照样子在装配台里面摆一次

  再次见朕骑妓(呸,呸呸)

  这里主要用了execute,clone和testforblocks,其实合成很简单,难点在于怎么样实现对工作台的定位(这就是为什么这个工作台可以在任何地方招出来并且使用了)

  在上面图中用玻璃标记好的四个方块都是招出来工作台的。

  从左到右依次是

  execute @e[name=Assembly,type=Creeper] ~ ~ ~ setblock ~ ~ ~ dropper 0 0 {CustomName:"装配台"}

  execute @e[name=Assembly,type=Creeper] ~ ~ ~ tp @e[type=Creeper,r=0,c=1] ~ ~-256 ~

  execute @e[type=ArmorStand,name=zpt] ~ ~ ~ detect ~ ~ ~ air 0 kill @e[type=ArmorStand,r=0,c=1]

  可以看到在我们刚才召出来的苦力怕那里放置了一个投掷器,名字叫做装配台,装配台哪儿还有一个叫做zpt的隐形的,无重力的小盔甲架。这个盔甲架就是我们定位合成台(投掷器)的关键。(当然,头上的羊毛可以不要,我只是为了可以看清楚),然后立即把creeper tp到虚空里面去(这里不用kill,是为了防止经验和火药乱飞).最后一条指令是检测那个盔甲架处于的位置还是否是一个投掷器(即是否是空气),如果不是,就立即清除掉那个盔甲架,以免产生bug.。

  这是储存合成配方和合成结果的地方。上面的投掷器装的是合成配方,下面的是合成结果。值得注意的是:投掷器的方向要和你之前设置的合成台的方向一样,名字也要一样,比如我这里都是嘴朝下,名字都叫做装配台。

  靠上的命令方块中的命令是这样的

  execute @e[type=Player] ~ ~ ~ execute @e[type=ArmorStand,name=zpt,r=6] ~ ~ ~ testforblocks ~ ~ ~ ~ ~ ~ -8 55 -3 all

  其中 -8 55 -3是储存合成配方的投掷器的坐标。所以这个指令是

  execute @e[type=Player] ~ ~ ~ execute @e[type=ArmorStand,name=zpt,r=6] ~ ~ ~ testforblocks ~ ~ ~ ~ ~ ~ 配方的x y z all

  其实用masked模式也是一样的...意义很简单就是检查实体玩家(话说是不是该用@a...)再检查玩家半径6的范围内有没有那个小盔甲架(现在盔甲架就代表合成台了.为什么r=6?因为史蒂夫的手有5格长,所以当你站在超过6的地方的时候,你一定打不开投掷器)。

  下面那个命令方块指令是

  execute @a ~ ~ ~ execute @e[type=ArmorStand,name=zpt,c=1,r=6] ~ ~ ~ clone -8 52 -1 -8 52 -1 ~ ~ ~

  同理 -8 52 -1 是我储存结果的地方。即

  execute @a ~ ~ ~ execute @e[type=ArmorStand,name=zpt,c=1,r=6] ~ ~ ~ clone 结果的x y z x y z ~ ~ ~

  这是最后输出的结果,也很简单。检测跟上面的一样(无视c=1,这是为了防止出现恶性bug,然而我错了),然后就把那个投掷器的地方换成我们带有结果的投掷器,看起来就和合成出来的一样了。

  但是这个系统存在一个bug,我也不知道该怎么修复,就是说,当两个同样的合成在小于2gt的时间里被摆出来,会导致这个配方不可以再次合成。目测可以通过每隔一段时间重新放置一下比较器修复.

  PS:在此非常感谢我的世界论坛玩家2209802631的分享。

  以上就是我的世界1.8有序合成与无序合成详解。更多精彩尽在游戏园我的世界专区。

  相关攻略推荐:

  我的世界N×5活塞门结构以及时序详解

  我的世界炼药机详解 储存程序结构炼药机

  我的世界分数智能排序算法解析(附存档)

  我的世界高精时序比较器教程

热门搜索

手游排行榜

  • 最新排行
  • 最热排行
  • 评分最高