EP.9 檢測方塊【基巖版指令教程】

同學們好,我是ThePlayer571,我們繼續(xù)來學習,基巖版基礎(chǔ)指令。
本期我們將介紹/testforblock
和/testforblocks
這兩條指令,它們的作用都是檢測方塊。
/testforblock
/testforblock
,用于檢測特定位置是否存在某個方塊。語法為/testforblock <x> <y> <z> <方塊名稱>
。其中<x>
,<y>
,<z>
<方塊名稱>
是想要檢測的方塊的名稱。
例如,我們想檢測(402,64,-378)
處(即圖中框選處)是否存在一個石頭 (stone
),就可以輸入/testforblock 402 64 -378 stone
。


/testforblock 與命令方塊的交互
眾所周知,執(zhí)行成功的命令方塊能被比較器檢測到。結(jié)合/testforblock
指令,我們可以做出獨特的裝置。
情景需求
我是一名服務(wù)器的服主,我想制作一個求雨臺(樣貌如圖所示),將鉆石塊(diamond_block
)放在下界合金塊上時,天氣會變?yōu)橛晏臁?/span>

實現(xiàn)方法
首先,確定鉆石塊的放置位置(336,66,-326)
。

然后使用testforblock 336 66 -326 diamond_block
檢測對應(yīng)位置是否是鉆石塊,后面接上weather rain
以調(diào)節(jié)天氣。詳情如圖:



/testforblocks
testforblocks
,用于檢測兩個區(qū)域內(nèi)的方塊是否完全相同。語法是/testforblocks <源區(qū)域起始坐標> <源區(qū)域結(jié)束坐標> <目標區(qū)域角落的坐標>
,與/clone
的語法極其相似,選取源區(qū)域和目標區(qū)域的方式也是一樣的,這里不過多贅述。
如果我們想檢測如圖兩個區(qū)域內(nèi)的方塊是否完全相同,可以按照以下步驟進行。

首先,確定左方區(qū)域(源區(qū)域)的范圍。如圖,坐標分別為(422,78,-403)
,(424,76,-401)


然后,確定右方區(qū)域(目標區(qū)域)西北下角的坐標。如圖,坐標為(428,75,-402)

輸入指令/testforblocks 422 78 -403 424 76 -401 428 75 -402
,檢測成功。


同樣,/testforblocks
也能與命令方塊結(jié)合,用法與/testforblock
相同。
打個總結(jié)
本期我們學習了/testforblock
和/testforblocks
這兩條用于檢測方塊的指令,難度適中。實際上,這兩條指令在Java版已經(jīng)被廢除了,這是因為MC存在這兩條指令的平替,那就是/execute
。雖然可以直接學習/execute
,但先學習較簡單的/testforblock
打牢基礎(chǔ),也是有必要的。

本節(jié)課課后作業(yè):
輸入一條指令,檢測
(3,5,7)
處是否為金塊(gold_block
)。輸入一條指令,檢測
(1,6,7),(3,4,9)
范圍內(nèi)的結(jié)構(gòu)是否和(12,15,17),(10,17,19)
內(nèi)的結(jié)構(gòu)相同。

上節(jié)課課后作業(yè)答案:
小明在輸入指令的時候不小心打翻了墨水,他的指令有幾處被遮住了(
#
處即被遮住部分):/fi## 0 0 0 # # 2 stone
。指令的效果是:填充一個體積為27的立方體,請你將其還原。
/fill 0 0 0 2 2 2 stone
成功執(zhí)行一條
/fill
指令,將(422 76 -403),(424 78 -401)
范圍內(nèi)的鐵塊(iron_block
)替換為空氣(air
)。
/fill 422 76 -403 424 78 -401 air replace iron_block
成功執(zhí)行一條
/clone
指令,復制任意結(jié)構(gòu)。
例: