本帖最后由 PotatoMaster101 于 2014-9-20 14:33 编辑

大家好。今天教大家使用指令方块的/testforblocks指令(切勿和/testforblock搞混,一个是/testforblocks,一个是/testforblock)。

这条指令的用处就是对比2个区域的方块,如果对比成功就会输出(两个区域方块完全相同),对比失败就会关闭输出。这个和/testforblock差不多,只不过/testforblocks可以对比一个区域的方块,而不是单个方块。

首先,指令的格式是:
  1. /testforblocks <XYZ1> <XYZ2> <XYZ> [格式]
复制代码
大家看见,这个和/clone一样,有3个XYZ。这3个XYZ和/clone的一样,前2个是控制区域1,后面的是控制区域2。比如,如果我使用:
  1. /testforblocks 1 1 1 3 3 3 10 10 10
复制代码
那么指令方块就会选中坐标1,1,1和3,3,3内的方块,然后和10,10,10区域内的方块进行比较(和/clone一样,区域2的坐标(XYZ),就是建筑北西处的坐标,也就是-x,-z)。

----------------分割线--------------

之后就是格式,目前只有2个格式:

all - (默认就是all)对比所有的方块,不管是什么方块。空气也会被对比。
masked - 不会对比空气方块。比如:如果区域1和区域2一样,但是在区域1的空气方块处,区域2有几个建筑方块,那就会被无视。

所以如果我使用:
  1. /testforblocks 1 1 1 3 3 3 10 10 10 all
复制代码
那么指令方块就会对比区域1,1,1和3,3,3,然后和10,10,10的地方比较。如果有不同的话那么指令方块不会输出,即使是空气。

但是,使用:
  1. /testforblocks 1 1 1 3 3 3 10 10 10 masked
复制代码
这样子指令方块也是会把区域1,1,1和3,3,3,对比10,10,10,但是会无视空气方块。如果1,1,1和3,3,3内有空气方块,而在10,10,10内这些空气方块是其他方块,指令方块还是会照样输出,因为无视了空气方块,指令方块只会对比1,1,1和3,3,3到10,10,10的非空气的方块。
(注意:/testforblocks和/testforblock和/testfor一样,如果要不停探测的话,那需要一个脉冲)

截图:

=============END==============