天才一秒記住【UU看書】地址:www.uukanshu.co
我們現在學會了如何探測實體,那方塊呢?
使用testforblock和testforblocks。
這兩個指令只相差1個字母,但是功能卻大徑相庭。在英文中,blocks是blcok的複數。也就是說,testforblock是探測單個方塊,而testforblock是探測多個方塊。
真有這麼簡單嗎?
testforblock
作用:探測指定位置是否為某種方塊。
需要許可權等級:Java2,基岩1
需要作弊:是
格式:
基岩版
testforblocklt探測位置:座標gtlt方塊ID:字串gt資料值:整數
Java113之前
testforblocklt探測位置:座標gtlt方塊ID:字串gt資料值:整數
testforblocklt探測位置:座標gtlt方塊ID:字串gt方塊狀態
很不幸的是,雖然Java版和基岩版都有加入這條指令,但是Java版中這條指令在113版本的第三個快照時被移除了。所以說:
testforblockinJava
生於172版本13w37a
死於113版本17w45a
算了,正經點。
舉個例子,比如:
executeatestfor1minecraftredstoneblock
就是探測每個玩家其腳底下是否是紅石塊,是則成功,否則失敗。
然後是testforblocks。剛才說過這裡多了s,也就是多個方塊,那麼是怎麼探測的呢?
先來個介紹:
testforblocks
作用:探測指定區域是否與另外一個指定區域完全相同
需要許可權等級:Java2,基岩1
需要作弊:是
格式:
testforblockslt源區域起始座標gtlt源區域終止座標gtlt比較區域下西北角座標gtlt模式maskedallgt
比較時先透過fill選擇區域的方式確定源區域,再與要比較區域進行比較。只不過這個要比較區域的位置填寫就挺蛋疼:你得找到要比較區域的下西北角(專業術語叫做區域基點)。
哪裡是下西北角呢?
區域內XYZ三個值最小的地方。
這兩個區域的大小由第一個定,所以比較的區域就直接給一個角了。
以後的clone指令(複製指令)也是這種形式。
舉個例子:
testforblocks111111121
作用是:檢測執行者腳下3×3的區域是否和頭頂3×3的區域完全一樣
testforblocks還有兩個比較模式:
all和masked。
all(預設模式)——比較全部。
masked——忽略源區域的空氣方塊(即源區域的空氣方塊可以代替要比較區域的任何方塊)
這兩章所講的3條指令,要發揮全部作用就需要和紅石比較器配合,不只是單單的用命令方塊執行哦!
歷史
Java
172——加入了testforblock
18——加入了testforblocks
111——testforblock支援方塊狀態
113——因為executeif的出現,testforblock和testforblocks被移除。
攜帶版Alpha
0160——加入了testforblock和testforblocks