UU看書

第六十二章 命令方塊礦車

天才一秒記住【UU看書】地址:www.uukanshu.co

Minecraft中的礦車有許許多多的種類。截至目前的1182版本,Minecraft一共有如下幾種礦車:

TNT礦車——會爆炸

動力礦車——像火車一樣可以消耗燃料前進

普通礦車——可以運輸生物和船(?)

運輸礦車——放東西

漏斗礦車——傳輸物品

刷怪籠礦車——生成生物

命令方塊礦車——執行指令

每種礦車都有自己的特點以及獨特的用法。比如你可以透過在一個狹窄的空間內堆疊超級多的TNT礦車來製作一個可以秒殺幾乎任何生物的爆炸裝置。

那麼對於命令方塊礦車來說,有什麼奇妙的用法呢?

觀前提示:在瞭解命令方塊礦車之前,請先把礦車的英文和我的世界的英文區分開,因為:

礦車————Minecart

我的世界——Minecraft

記住,千萬不要把礦車和我的世界混在一起了,礦車的英文比我的世界少了一個字母“F”!(基岩版舊版本的翻譯就犯了這個錯誤,用機翻然後把命令方塊礦車翻譯成“帶有命令塊的《我的世界》”)

首先,讓我們來了解一下命令方塊礦車的基本資料。

命令方塊礦車(MinecartwithCommandBlock)的實體和物品ID均為commandblockminecart。它和普通的礦車一樣,也是一個實體,唯一的區別就在於命令方塊礦車在普通礦車的基礎上多了一個迷你的命令方塊。

如果命令方塊礦車被處於生存模式下的玩家打掉,將會僅僅掉落礦車(不然還會掉落命令方塊啊?)。

(注:在Java111版本之前,命令方塊礦車的ID是MinecartCommandBlock)

看起來命令方塊礦車的本質就是一個會移動的命令方塊。但實際上,兩者在很多方面都有較大的差異。

第一個差異:種類

和普通的命令方塊不一樣的是,命令方塊礦車的種類是固定死的。在Java版中,命令方塊礦車的種類被固定成了脈衝型,在基岩版則是迴圈型。至於為什麼要這麼搞,待會你就知道了。

(這裡其實有個BUG,編號MCPE42990,就是在基岩版中物品形態的命令方塊礦車竟然是脈衝型的,放出來就變迴圈型了。真離譜。)

第二個差異:啟用方式和執行頻率

普通的命令方塊可以透過紅石訊號啟用,但命令方塊礦車作為一個實體該如何感受到紅石訊號呢?想想TNT礦車是怎麼被啟用的你就知道了。

命令方塊礦車和TNT礦車一樣,當它處於啟用鐵軌上時,就會被啟用並執行指令。

你看到這估計沒有任何疑問。但別忘了,命令方塊礦車雖然不能選擇種類,但本質上也是有種類的是不是。既然命令方塊在Java版是脈衝型,在基岩版是迴圈型,那麼兩者是不是不一樣呢?

我們現在不開啟Minecraft,就憑腦子猜一猜,然後你大機率會得出如下結論:

在Java版中,命令方塊礦車由於是脈衝型,所以當它處於被紅石訊號啟用的啟用鐵軌上時,只會執行一次。如果需要再次執行,需要先停止啟用啟用鐵軌,然後再次啟用啟用鐵軌才行。

而在基岩版,命令方塊礦車是迴圈型,所以當它處於被紅石訊號啟用的啟用鐵軌上時,它會一直執行直到沒有紅石訊號。

好,看來你之前學的東西都沒有白費,所以讓我們開啟Minecraft驗證一下吧!

我們先開啟MinecraftJava(只要有命令方塊礦車的版本均可),然後放置一個啟用鐵軌並在旁邊放上拉桿,隨後將一個命令方塊礦車置於鐵軌之上。

為了方便觀察,我們這邊還需要建立一個計分項,如:

scoreboardobjectivesaddtestdummy

然後在命令方塊礦車中輸入:

scoreboardplayersaddtesttest1

最後啟用鐵軌,令人大跌眼鏡的一幕發生了,聊天框中開始出現如下的執行資訊:

:將玩家test的test分數設定為1

:將玩家test的test分數設定為2

:將玩家test的test分數設定為3

:將玩家test的test分數設定為4

你這不是脈衝型嗎,怎麼一直在重複執行?

然後我們可以再開啟Minecraft基岩版,也按照上面的實驗流程進行,你也會發現現象是一致的。

這究竟是怎麼一回事?其實命令方塊礦車是個很神奇的東西,不管它的外觀是脈衝型還是迴圈型,它在兩個Minecraft版本中的特性都是一致的:

當其位於被啟用的啟用鐵軌上方時,命令方塊礦車會以4遊戲刻為週期迴圈執行指令,即正常情況下每秒會執行5次。

也就是說,命令方塊礦車本質上是迴圈型,只不過是頻率比較慢的迴圈型而已。

(所以Mojang,你在Java版搞這個外觀是幹啥呢?誤導人是吧。)

這就是命令方塊礦車與普通命令方塊的第二個差異。

第三個差異:紅石比較器

和命令方塊一樣,命令方塊礦車也可以透過紅石比較器檢測命令的執行情況。但畢竟礦車是個實體,這導致如果要檢測命令方塊礦車的話,就得用紅石比較器檢測處於命令方塊礦車下面的鐵軌才能檢測到命令方塊礦車。

需要注意,這裡的鐵軌不是普通的鐵軌,也不是啟用鐵軌,而是探測鐵軌,就是中心有一個正方形的那個!

上面這三個差異就是命令方塊礦車和命令方塊最主要的差異了。那麼命令方塊礦車有什麼用呢?

命令方塊礦車和普通的命令方塊相比,最重要的一個特點就是可以移動,特別是可以按照預定的線路移動,所以命令方塊礦車很適合運用在空間需要不斷變化的場景內,比如:

我們需要自動鋪路、挖掘機,並對美觀沒有太大要求,直直的即可

這種情況下命令方塊礦車就很有用了。但實際上,命令方塊礦車最常見的用處並不是在這裡,而是在OOC(OnlyOneCommand),即“僅有一條指令”。

啥意思呢?

(考慮到這東西會涉及到下落的方塊的使用、實體的騎乘屬性還有NBT,所以這裡我們就先簡單介紹一下,不過多深入。)

想一想,在Minecraft中,你是不是可以騎在馬上?

你應該知道在Minecraft中,每個實體都有一個NBT,那麼當你騎在馬上的時候,你和馬是兩個獨立的個體還是被看作是一個個體呢?

從外觀上來看,是兩個個體。但如果你此時檢視一下馬的NBT,你就會發現在NBT層面,你們倆合二為一了!

沒錯,在NBT層面,你的實體NBT被巢狀進了馬的NBT裡面!

好,那麼我們現在想一想,從理論上來說,你可以騎在羊上嗎?或者說甚至是一些其他的實體,如你可以騎在玩家上嗎?

我們先不要過早下結論,讓我們來看看2022年4月1日Mojang釋出了個什麼驚人更新:

OneBlockataTimeUpdate(一次只拿一塊更新)

在這次更新中,你可以和其他玩家疊高高,也就是騎在玩家身上,而且最高還可以疊5層!

這說明了什麼?這就說明了,玩家也是可以騎在玩家身上的。

但為什麼玩家在這次更新就可以被騎了呢?是不是Mojang為了實現這個功能把馬的騎乘模組移到了玩家身上?

答案並不是這樣的,而是玩家本身就有騎乘模組,或者說Minecraft中的所有實體都有騎乘模組,只不過Mojang僅僅讓少數實體可以應用這些模組而已。

所以從理論上來說,你是可以騎在羊身上的,甚至你可以說,你可以騎在任何實體身上!

那麼這跟指令以及命令方塊礦車有什麼關係呢?

現在讓我們再來看看另一個東西:下落的方塊。

下落的方塊,名字聽起來是個方塊,但實際上它是個實體。

你可能認為你從來沒有見到過下落的方塊,但實際上,你很容易就可以遇見它。

在Minecraft中,如果一個受到重力影響的方塊(如沙子)要落下,那麼遊戲就會將其轉換為“下落的方塊”這個實體,並將方塊的相關資料儲存於實體NBT中,等到實體落到地面之後遊戲再將其轉換回去。

既然下落的方塊是個實體,那麼我們就可以透過summon指令將其生成。並且,由於方塊的相關資料都儲存於實體NBT中,所以我們可以透過指令來召喚特定的“下落的方塊”。比如,你可以召喚出一個“下落的鑽石塊”,這個實體版的鑽石塊照樣會在落到地面時變回方塊版的鑽石塊。

好,你現在聽懂了吧,但這又跟命令方塊礦車有什麼關係呢?

想一想,如果我們使用summon命令,召喚一個“下落的紅石塊”,這個“下落的紅石塊”上面騎著“下落的啟用鐵軌”,而這個“下落的啟用鐵軌”上面又騎著一個命令方塊礦車,最後,這個命令方塊礦車裡寫了一串指令:sayhelloMinecraft。

聽著有點暈是吧?正常。簡單點說,就是你召喚了一個疊高高,這個疊高高一共有三層,最上面一層是寫有“sayhelloMinecraft”指令的命令方塊礦車,中間一層是正處於下落狀態的“啟用鐵軌”,最下面一層是正處於下落狀態的“下落的紅石塊”

能夠明白了吧?想一想,當這個“疊高高”到達地面時,會發生什麼事情?

紅石塊會先落到地面並回到方塊形態,然後啟用鐵軌就會因為紅石塊變回方塊而也變回方塊形態,隨後被紅石塊啟用。命令方塊礦車接著會落到啟用鐵軌上面,並開始重複執行指令。最終你的聊天欄就會不斷出現“helloMinecraft”的訊息。

是不是很神奇?僅用一條指令,就執行了sayhelloMinecraft?這本來就可以一條指令做到啊,搞這麼複雜有毛病啊?!

沒有毛病。別忘了,既然命令方塊礦車可以騎在下落的方塊上,那不也能騎在命令方塊礦車上嗎?而且由於鐵軌方塊的特性,同一個鐵軌上可以有許多個礦車卡在一起。所以從理論上,你可以透過“疊高高”的形式召喚一大堆的命令方塊礦車,這些命令方塊礦車可以分別執行不同的指令,但你召喚它們僅需要一條十分十分十分長的指令即可。

這就是OOC(OnlyOneCommand),即“僅有一條指令”在遊戲中真正的表現形式。

(其實還有一種表現形式,就是召喚疊高高的“下落的命令方塊”,照樣也可以實現類似的功能,就是比較佔地)

現在你知道命令方塊礦車有何作用了吧?

(你知道嗎,在基岩版117尚未更新時,命令方塊礦車有一個惡性BUG,編號MCPE93666。

這個BUG的內容很簡單:遊戲規則commandblocksenabled用於控制命令方塊是否啟動,但這個規則管不到命令方塊礦車,這就導致就算關閉了commandblocksenabled這個規則,命令方塊礦車也可以執行命令。

在當時,許多基岩版的伺服器就因為這個BUG遭到了破壞,Mojang也是很快地在有人反饋後就在117更新中修復了這個bug。現在已經沒有這個bug了。)

如遇章節錯誤,請點選報錯(無需登陸)

新書推薦

直播:艾澤拉斯 知晴知航線 鬥羅V:王者獨家系統來攪局 我有千萬打工仔 國象小子 網遊之超神級NPC玩家 這個海洋領主有點強