首頁(yè) 游戲

Minecraft指令手冊(cè)

第二章 命令方塊

Minecraft指令手冊(cè) 你好MC 1146 2020-01-03 21:25:00

 ?。ū菊聦懽鲿r(shí)作者使用的是基巖版1.17.0版本和Java1.17.1版本)

 ?。ū菊聝?nèi)容有可能有些難,推薦在游玩Minecraft的情況下閱讀本章)

 ?。ū菊掠?022年7月10日進(jìn)行大規(guī)模修改)

  在你不知道指令的時(shí)候,你是否在玩地圖的時(shí)候看到過一個(gè)五彩斑斕的方塊?當(dāng)你因好奇嘗試去擼它的時(shí)候,你卻發(fā)現(xiàn):這根本擼不動(dòng)!

  沒錯(cuò),這就是我們的命令方塊,英文名Command Block,命名空間ID為command_block,在MC指令圈中常常被簡(jiǎn)寫成CB。你可以通過/give指令來獲得它,比如:

  /give @s command_block

  目前你不需要去了解這個(gè)指令到底是啥,怎么用,看下去就完事了。

  如果你在輸入了以上指令以后都沒有獲得,那么你最好去檢查一下你的Minecraft游戲版本。你可以嘗試使用命令方塊的數(shù)字id:137。(/give 你的玩家名 137)

  如果還是不行,請(qǐng)你看一下你的Minecraft版本是否低于JAVA1.4.2或者是攜帶版1.0.5。低于這兩個(gè)版本的Minecraft是沒有命令方塊的。

  命令方塊有三種顏色,六種方向,具體為:

  顏色:橙得一批、青得一批、紫得一批

  方向:東西南北上下

  命令方塊的硬度和基巖是一樣的,都是-1。

  爆炸抗性也一模一樣,都是3600000。

  命令方塊的三種顏色,各代表著3種不同的種類:

  橙得一批的那個(gè)是脈沖,作用是你叫它動(dòng)一下(接入紅石信號(hào)),它就動(dòng)一下(執(zhí)行一次命令),并會(huì)向其指向的鏈命令方塊發(fā)出執(zhí)行信號(hào)。

  紫得一批的那個(gè)是重復(fù),作用是你叫它動(dòng)一下(接入紅石信號(hào)),它就沒完沒了地動(dòng)(每一游戲刻執(zhí)行一次命令,一般1游戲刻=1/20秒),并且每動(dòng)一下都會(huì)向其指向的鏈命令方塊發(fā)出執(zhí)行信號(hào)。

  青得一批的那個(gè)是鏈(又叫做連鎖),作用是你叫它動(dòng)一下(接入紅石信號(hào)),它不會(huì)動(dòng)。它只會(huì)在收到執(zhí)行信號(hào)時(shí),將該執(zhí)行信號(hào)立馬傳遞給下一個(gè)它指向的鏈命令方塊,然后再根據(jù)當(dāng)前條件判斷是否要執(zhí)行。聽起來似乎有點(diǎn)復(fù)雜?舉個(gè)例子:

  A→B→C→D→

  其中,A是未被激活的脈沖命令塊,BCD三個(gè)命令方塊都是已被激活且無(wú)條件限制的鏈命令塊。當(dāng)A激活時(shí),ABCD將會(huì)同時(shí)執(zhí)行指令,因?yàn)锳激活時(shí)向B發(fā)出了執(zhí)行信號(hào),B收到后也向C發(fā)出了信號(hào),C也向D發(fā)出了信號(hào),三個(gè)鏈命令方塊也都沒有條件限制。(關(guān)于無(wú)條件是個(gè)什么東西,下面會(huì)講到)

  關(guān)于鏈命令方塊還是比較復(fù)雜的,具體內(nèi)容請(qǐng)到『第九十九章初識(shí)模塊-簡(jiǎn)單的注冊(cè)/登錄系統(tǒng)下』了解。

  而方向的話,有什么用呢?

  上面我們講連鎖命令方塊時(shí)已經(jīng)遇到過一次了:當(dāng)你將一個(gè)未被激活的脈沖或循環(huán)命令方塊(A)指向另一個(gè)已被激活的連鎖命令方塊(B),那么當(dāng)A被激活時(shí),就會(huì)向B發(fā)出執(zhí)行信號(hào)。(注意,B以及之后的CDE等一般都是連鎖,作為開頭的A一般是脈沖或循環(huán)命令方塊)

  就像下面這樣(箭頭即該命令方塊的朝向,符號(hào)?代表此命令方塊被激活,符號(hào)?代表此命令方塊收到執(zhí)行信號(hào)):

 ?、貯→B?→

 ?、贏?→B?→

 ?、郏?→B??→

  但B并不一定會(huì)執(zhí)行,還得看這個(gè)B是有條件(條件制約)還是無(wú)條件(不受制約)的。

  另外,只要這一串命令方塊一直延伸下去,且除了第一個(gè)之外后面全都是鏈命令方塊,那么不管這些鏈命令方塊有沒有被激活、是否會(huì)真的執(zhí)行指令、指令有無(wú)錯(cuò)誤,信號(hào)仍然會(huì)一直傳遞下去,直到默認(rèn)指定的最大值。

  我們會(huì)在以后討論更加復(fù)雜的情況,也就是在第九十九章進(jìn)行討論。在此之前,你可以自己做做實(shí)驗(yàn),猜猜規(guī)律。

  需要注意,雖然通常情況下像這樣一個(gè)接著一個(gè)的命令方塊鏈?zhǔn)菙[成一條直線的樣子,但你也可以像下面這樣擺成蛇形:

  B←A

  ↓

  C→D→

  這也是沒有問題的。

  甚至你對(duì)著放,也是沒有問題的:

  B→←A

  總的來說,命令方塊的方向決定了執(zhí)行信號(hào)傳遞的方向。一串方向正確且能夠正常傳遞執(zhí)行信號(hào)的命令方塊,就是一個(gè)命令方塊鏈。命令方塊鏈?zhǔn)敲罘綁K知識(shí)點(diǎn)中最難的一部分,搞懂這個(gè),你基本上也就入門了。還是那句話,我們會(huì)在第九十九章詳細(xì)討論這東西,也就是命令方塊鏈和連鎖型命令方塊。

  現(xiàn)在我們來打開命令方塊。

  右鍵(鍵鼠模式)、按下RT(手柄模式)或點(diǎn)擊(觸屏模式)命令方塊以打開。打開命令方塊要滿足一定條件,Java版的條件是:處于創(chuàng)造模式,并且玩家權(quán)限等級(jí)至少為2(正常單人游戲都能打得開);基巖版是需要操作員權(quán)限(或者說玩家權(quán)限等級(jí)至少為1)。如果條件不滿足,是無(wú)法打開的。

  至于玩家權(quán)限是什么東西。放心,我們會(huì)在第六章了解到玩家權(quán)限的相關(guān)內(nèi)容。

  打開命令方塊后,Java版的界面頂上是輸入框,框下面是一個(gè)“O”的按鈕,按了可以打開一個(gè)框,并且按鈕變成了“X”,這個(gè)框用途就是“顯示上次執(zhí)行、檢查指令的結(jié)果”。

  為什么還要多出一個(gè)檢查呢?檢查跟執(zhí)行是不一樣的。當(dāng)你修改完后退出界面,命令方塊會(huì)自己檢查一下,如果有錯(cuò)會(huì)顯示一些信息,如果都正確那就什么也沒有發(fā)生。執(zhí)行的話就不一樣了,執(zhí)行就算正確也會(huì)顯示消息。這個(gè)框在Java版默認(rèn)不顯示,在基巖版默認(rèn)顯示,據(jù)說關(guān)掉可以讓游戲更流暢一點(diǎn)。

  再下面是三個(gè)選項(xiàng),分別顯示:

  脈沖|不受制約|紅石控制

  這三個(gè)選項(xiàng)具體的用途是:

  第一個(gè)顯示脈沖的選項(xiàng)——選擇命令方塊種類,可以選擇『脈沖、連鎖和循環(huán)』,即上面介紹過的三種類型。

  第二個(gè)顯示不受制約的選項(xiàng)——這可以選擇『不受制約』和『條件制約』(基巖版中是『無(wú)條件』和『有條件的』)。默認(rèn)是選擇『不受制約』。下面我們會(huì)詳細(xì)了解這選項(xiàng)。

  第三個(gè)顯示紅石控制的選項(xiàng)——這可以選擇『紅石控制』和『保持開啟』(基巖版中是『需要紅石』和『始終活動(dòng)』)。默認(rèn)是選擇『紅石控制』,即命令方塊必須要收到紅石信號(hào)后才能被激活。如果改成『保持開啟』,那么命令方塊將會(huì)始終處于激活狀態(tài)。

  『不受制約』和『條件制約』分別有什么作用呢?

  我們知道,命令方塊可以執(zhí)行指令,而執(zhí)行指令無(wú)非就兩種結(jié)果:指令執(zhí)行成功和失敗。

  命令方塊其實(shí)會(huì)保留其最后一次執(zhí)行指令的結(jié)果,這個(gè)保留下來的結(jié)果并不是只能被我們也就是玩家所看見,它還有三個(gè)作用:

 ?、俦黄渌噶钐綔y(cè),將結(jié)果信息輸出到計(jì)分板中。

  ②被紅石比較器探測(cè),將指令執(zhí)行成功的次數(shù)轉(zhuǎn)化為紅石信號(hào)強(qiáng)度等級(jí)。

 ?、燮ü蓪?duì)著這個(gè)命令方塊的其他命令方塊可以檢測(cè)該命令方塊的指令是否執(zhí)行成功,并根據(jù)該條件判斷自身是否需要執(zhí)行指令。

  前兩個(gè)作用我們會(huì)在以后了解到具體用法,第三個(gè)作用其實(shí)就對(duì)應(yīng)著上面的『不受制約』那個(gè)選項(xiàng)。

  命令方塊在執(zhí)行前,如果這個(gè)命令方塊是『條件制約』的,那么它就會(huì)檢查一下它屁股對(duì)著的那個(gè)命令方塊最后一次執(zhí)行指令是否執(zhí)行成功,如果成功才會(huì)執(zhí)行。比如下面的例子:

  ←B←A

  A:循環(huán),不受制約,始終活動(dòng)

  B:循環(huán),條件制約,始終活動(dòng)

  A不管如何,除非游戲停止運(yùn)行,它都會(huì)一直運(yùn)行指令,每秒最高可以運(yùn)行20次。

  B不管如何,也會(huì)一直嘗試運(yùn)行指令。只不過由于它是『條件制約』的,所以它在嘗試執(zhí)行指令之前,會(huì)先檢查一遍A命令方塊是否運(yùn)行成功,如果成功才會(huì)運(yùn)行指令。

  那么這有什么用呢?

  假設(shè)A里面寫著一條指令,可以檢測(cè)半徑30m范圍內(nèi)是否有怪物出現(xiàn),而B里面寫著一條能夠發(fā)送警告消息的指令。如果半徑30m內(nèi)一直沒有怪物出現(xiàn),那么A的指令就會(huì)一直執(zhí)行失敗,雖然B也在嘗試執(zhí)行,但由于A一直失敗,B也就不會(huì)真正執(zhí)行指令,也就是不會(huì)發(fā)出警報(bào)。但如果A突然執(zhí)行成功了,也就是發(fā)現(xiàn)怪物,那么B就會(huì)真正執(zhí)行指令,發(fā)出警報(bào)。

  當(dāng)然,像這種由兩個(gè)循環(huán)型命令方塊構(gòu)成的命令方塊鏈?zhǔn)稚僖?,因?yàn)槿绻袯換成連鎖型,也可以達(dá)成一樣的效果,還可以降低一點(diǎn)CPU消耗,豈不美哉?

  總而言之,條件制約的命令方塊在運(yùn)行前會(huì)檢測(cè)其屁股后面的命令方塊最后一次運(yùn)行指令是否成功執(zhí)行,如果那個(gè)命令方塊最后一次成功運(yùn)行了指令,這個(gè)命令方塊也會(huì)運(yùn)行,反之則不會(huì)運(yùn)行。對(duì)于不受制約的命令方塊來說,則并不會(huì)進(jìn)行上述檢查,而是直接運(yùn)行指令。

  懂了吧?如果不懂,多多實(shí)踐即可。

  基巖版的命令方塊界面和Java版大不相同——其界面有兩列,左側(cè)主要是對(duì)命令方塊本身狀態(tài)的一個(gè)設(shè)置,右側(cè)主要是用于填寫命令。

  右側(cè)不用多說,這里需要講的是左側(cè)相比Java版多出來的內(nèi)容。

  左側(cè)最上面有一個(gè)“懸停說明”,舊版本是“懸浮文本”。這兒是修改命令方塊名字的地方,并且修改后的名字會(huì)直接作用在一些指令中,比如/say。而且,正如其言,這個(gè)名字還會(huì)懸浮在命令方塊上面,只不過用這個(gè)是無(wú)法做出浮空字的,因?yàn)檫@個(gè)浮空字僅僅會(huì)在玩家指向該命令方塊時(shí)才會(huì)出現(xiàn)。你也可以使用鐵砧重新命名命令方塊,并且這個(gè)方法Java版同樣適用。

  命令方塊的默認(rèn)名字在基巖版1.8.0及之后的版本是“!”,在Java版和基巖版1.8.0以下版本默認(rèn)是“@”。

  在“需要紅石|始終活動(dòng)”選項(xiàng)的下面,還有一個(gè)“執(zhí)行第一個(gè)已選項(xiàng)”的按鈕和一個(gè)“已選項(xiàng)中的延遲”框。這兩個(gè)東西的作用如下:

  執(zhí)行第一個(gè)已選項(xiàng)——命令方塊類型為循環(huán)時(shí)可用,默認(rèn)開啟。開啟將會(huì)讓命令塊在激活后立即執(zhí)行指令,關(guān)閉則會(huì)先延遲“已選項(xiàng)中的延遲”設(shè)定的時(shí)間,再執(zhí)行。即:

  開啟——激活命令方塊→執(zhí)行→等待x游戲刻→執(zhí)行→等待x游戲刻→執(zhí)行......

  關(guān)閉——激活命令方塊→等待x游戲刻→執(zhí)行→等待x游戲刻→執(zhí)行→等待x游戲刻→執(zhí)行......

 ?。▁值為“已選項(xiàng)中的延遲”的值,1游戲刻=1/20秒)

  已選項(xiàng)中的延遲——所有命令方塊類型均可用,默認(rèn)為0,單位為游戲刻。對(duì)于脈沖和鏈命令塊來說,就是指定激活命令塊到執(zhí)行指令的延遲。比如設(shè)定為5,那么:

  激活→等待5游戲刻→執(zhí)行

  對(duì)于循環(huán)的命令塊來說,就是設(shè)定每次執(zhí)行指令執(zhí)行的間隔時(shí)間。比如設(shè)定為6,且關(guān)閉執(zhí)行第一個(gè)已選項(xiàng),那么:

  激活命令方塊→執(zhí)行→等待6游戲刻→執(zhí)行→等待6游戲刻→執(zhí)行.....

  循環(huán)型命令方塊不管延遲是0還是1,結(jié)果都是延遲1游戲刻。而脈沖和鏈型命令方塊則不同,延遲是0即按下就立馬執(zhí)行,1的話還是會(huì)延遲1游戲刻。

  現(xiàn)在,讓我們嘗試在輸入框中輸入點(diǎn)東西。注意,命令方塊中輸入指令,“/”前綴是可以省略的,因?yàn)椴槐睾推胀奶煜⒆鲄^(qū)分。在Java版1.13及以上版本中,命令方塊中輸入指令也會(huì)有像聊天欄中輸入指令一樣的提示;1.13以下的版本雖然沒有提示,但也可以通過Tab鍵補(bǔ)全。

  接下來你就自行研究吧,還是那句話,第九十九章我們會(huì)重新來研究命令方塊鏈。

  要不然最后我們留點(diǎn)作業(yè)吧?

  還是算了,畢竟現(xiàn)在你也不會(huì)寫些指令。

  (一天,張三把一個(gè)命令方塊放到了一個(gè)礦車,然后.......)

  [附表:命令方塊歷史]

  Java

  1.4.2——加入命令方塊

  1.5——紅石比較器會(huì)輸出命令方塊成功運(yùn)行的信號(hào),命令方塊可用鐵砧重命名

  1.6.1——命令方塊現(xiàn)在無(wú)法在生存模式中和爆炸中破壞

 ?。ɡ渲R(shí),在Java舊版本,生存模式也可以打開命令方塊,并且可以破壞)

  1.7.2——加入了“顯示上一個(gè)輸出”框,并將命令方塊字符上限重256增加到了16369,用修改器最大可達(dá)32767

  1.8——發(fā)射器會(huì)放置命令方塊,命令方塊內(nèi)字符上限達(dá)到了32767

  1.8.6——發(fā)射器不再放置命令方塊

  1.9——加入了連鎖、循環(huán)型命令方塊和方塊朝向、條件制約模式、保持開啟和紅石控制模式。操作權(quán)限等級(jí)小于2的玩家無(wú)法放置命令方塊

  1.12——命令方塊鏈中的鏈命令方塊現(xiàn)在在同一游戲刻中執(zhí)行,并加入了maxCommandChainLength規(guī)則以規(guī)定命令塊鏈的最大長(zhǎng)度

  攜帶版/基巖版

  1.0.5——加入命令方塊

  1.8.0——更改命令方塊默認(rèn)名稱重@到!

  1.12.0——加入了已選項(xiàng)中的延遲和執(zhí)行第一個(gè)已選項(xiàng)

按 “鍵盤左鍵←” 返回上一章  按 “鍵盤右鍵→” 進(jìn)入下一章  按 “空格鍵” 向下滾動(dòng)
目錄
目錄
設(shè)置
設(shè)置
書架
加入書架
書頁(yè)
返回書頁(yè)
指南