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

北冥饼鲲 | testforblock(s) | 指令详解第6期

2018-08-31 15:52 作者:北冥饼鲲  | 我要投稿

哀奠

极其重要的指令testforblocks

在1.13的第3个快照被删除

探測某個方塊是否在某個位置/測試兩個區域中的方塊是否相同。

——Minecraft Wiki

一、什么是testforblock(s)

        testforblock可以测试某个坐标的某个方块是否与规定的方块相同,而testforblocks则可以用更简单的、不需要学习数据值的方法执行类似testforblockblock的指令,或利用其选区创造更多有趣的作品。

二、testforblocks(s)的语法

testforblock x y z 方块名 数据值

XYZ目标所处的位置

方块名:与目标相比较的方块

数据值:与目标相比较的方块的详细数据值

适用于:指令大佬(因为个人感觉数据值是一个非常麻烦的东西,能不用就不用)

使用实例:testforblock 0 64 0 lever {Powered:"true"}(数据值是我瞎写的,别打我,嗷)

效果(搭配高频循环):当0 64 0处的拉杆开启时,该命令方块可以利用比较器输出信号(只要是指令执行成功或判断型指令返回结果为TRUE时都可以用比较器输出信号,敲黑板)。可以略过红石布线的过程。

testforblocks x1 y1 z1 x2 y2 z2 x3 y3 z3 模式

XYZ1选区起点

XYZ2:选区终点

XYZ3:目标区域的起点

方块名:与目标相比较的方块

模式:All:必须全部匹配;masked:只要源选区的非空气方块与目标选区相同就TRUE。

适用于:小萌新和老是想着偷懒的大佬

使用实例:testforblocks 0 64 0 0 64 0 16 64 16 all

效果:0 64 0与16 64 16的方块必须完全相同(包括NBT数据)。若完全匹配,返回的SuccessCount为完全匹配的总方块数量。

三、testforblock(s)的作用

        以红石口袋所著《盘灵古域》为例,testforblocks主要起到的作用是自定义合成/炼药。其利用命令方块行+混合坐标+大量的目标进行合成公式的匹配。

自定义合成框架图示

其中,按下“合成开始”按钮后,左一红石线路亮起,激活左二命令方块(testforblocks ~ ~-1 ~ ~ ~-1 ~ 0 64 0 all),检测两者是否相同(左三方块为正确合成配方),如果正确则激活中间的比较器,后激活右一、右二两个命令方块,分别起到复制合成结果(clone ~ ~-1 ~ ~ ~-1 ~ 0 64 0,右三为合成结果)、重置成功次数(blockdata ~ ~-1 ~-2 {SuccessCount:0}),使合成结束后比较器回到原本状态。随后,大批量复制此类型框架(用Ctrl+复制键可以起到复制其内容的作用,敲黑板),修改两投掷器的内容即可,也可以贴牌子提示自己。(发文时备注:图例有问题,投掷器会被激活,投掷器和左二右二两命令方块中的~-1改成~-2,对不起!

        大多数地图(尤其是寻找按钮类型的)如果不想被红石布线困难红石布线占空间红石延长有延迟等问题困扰,可以使用testforblock解决。(红石这么麻烦,后来怎么了呢?无一幸免,高频被循环命方替代、比较器被连锁命方替代、红石线路被testforblock替代)比如上面提到的例子:testforblock 0 64 0 lever {Powered:"true"}(数据值是我瞎写的,别打我,嗷),就可以超远程秒传红石信号。(如果你是侦测器玩家……?那这个不占空间= =)而且,这样也可以防止部分作弊爱好者反向执行指令(因为靠布线可以找到命方,但在这里命方可以追踪到按钮,按钮追不到命方,模组除外),造成作弊。

        学会这些指令还有别的作用,比如盘灵古域里有一个箱子,只要打开就会有“臭小子!想偷我東西啊!”的提示,可以更进一步,放两个箱子进行比较,靠外的箱子明示“禁止偷窃”,并高频此二箱子,一旦外面的箱子少了东西,就可以kill了。思维更活(e)跃(xin)的地图作者还可以连上Scoreboard,让这次偷窃被全图的命令系统记住……

四、其他

        这期已经不是类似什么相对绝对坐标啊,目标选择器啊,NBT一类的基础教学,而是真真正正的在进行干货教学。另外,我与@端典程序猿达成了合作关系,各位小伙伴也可以去他的主页看看哦!

        如果你还想看到类似的更多指令教程,请记得关注鲲鲲!如果你认为这期文章很有用,请点击推荐和投币!如果可以的话,请分享给你的朋友!

——il|各种神奇的传送门|li——

端典程序猿的个人主页

相对、绝对坐标和局部坐标

execute应用|give中的NBT|目标选择器

——il|谢谢围观|li——

北冥饼鲲 | testforblock(s) | 指令详解第6期的评论 (共 条)

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