命令方塊是一種主要用於冒險模式遊玩、多人遊戲的自動化和自訂地圖的方塊。
取得[]
擁有管理員權限或開啟作弊的單人模式玩家可以在聊天框內輸入命令/give @s command_block
或者/setblock ~ ~ ~ command_block
取得,也可以透過創造模式物品欄取得。
基礎[]
選擇器[]
使用選擇器可以代替使用實體名稱:
選擇器 | 目標 |
---|---|
@a | 全部玩家 |
@p | 最近的玩家 |
@r | 隨機玩家 |
@e | 全部實體 |
@s | 執行命令的實體(如果命令由命令方塊或伺服器控制台執行,則不會選中任何實體) |
基礎命令[]
傳送[]
你可以透過使用/tp <x> <y> <z>
來傳送。其中<y>
表示垂直方向的座標,<x>
和<z>
分別表示東西和南北方向的座標,玩家可以透過這個命令傳送到(x,y,z)這一個座標的位置。如果要以目前站的位置為基準進行傳送的話就只要在其(x,y,z)座標前面加上一個~即可,例如/tp ~<x> ~<y> ~<z>
。如果當命令方塊座標(x,y,z)位於(1,2,3)時輸入/tp @p ~3 ~4 ~5
,這時他會被傳送到(4,6,8)
這個座標,和玩家輸入/tp @s 4 6 8
是一個效果。還可以使用^<左偏移> ^<上偏移> ^<前偏移>
的格式組成一個局部座標,它基於玩家的位置與朝向,例如玩家輸入/tp @s ^1 ^2 ^3
會被傳送至其左方1格,上方2格,前方3格的位置。(可使用/execute
模擬玩家輸入命令)
屏蔽命令方塊輸出[]
命令方塊被觸發時,會自動在聊天欄中輸出一條資訊,如:「[@]:已召喚1個實體」。
可以透過此命令屏蔽命令方塊輸出:/gamerule commandBlockOutput false
。
屏蔽命令方塊輸出可以給玩家帶來更好的遊戲體驗。但將會使玩家難以直接了解命令方塊的執行結果。
用/gamerule commandBlockOutput true
來恢復命令方塊輸出。
重生保留物品與記錄點[]
/gamerule keepInventory true
可以在玩家死後儲存背包物品。同時記錄點可以用/spawnpoint
來做。
實例[]
以下列出了一些使用實例:
給予一個隨機玩家一個物品並吿訴所有人[]
給予一個隨機玩家五個曲奇,然後吿訴所有人。
搭建:
/tag @a[tag=cookie] remove cookie
| |
/say @a[tag=cookie] 已被給予五個曲奇。
| |
/give @a[tag=cookie] minecraft:cookie 5
| |
/tag @r add cookie
|
自動行人路[]
類似於電梯的概念,用於使實體往x或z座標移動。
初始化工作:
使用/fill <x> <y> <z> <x2> <y2> <z2> <方塊>
/fill <x> <y> <z> <x2> <y2> <z2> <方塊> <數據值>
搭建:
/execute as @e at @s if block ~ ~-1 ~ <方塊> run tp @s ~-0.1 ~ ~ 或 /execute @e ~ ~ ~ detect ~ ~-1 ~ <方塊> <數據值> tp @s ~-0.1 ~ ~ |
現在站到填充的方塊上,你就會自動向指定的方向移動。
命令中的~-0.1 ~ ~
可以替換為你想要的座標,座標的格式可以參照上方的「傳送」段落。
無線紅石[]
輸入[]
可以使用/execute
/execute if block 123 12 123 stone_button[powered=true] ... |
輸入要測試的特定方塊的座標和名稱,在本例中是位於123 12 123
的石製按鈕。這可以使用在任何可變更方塊狀態的方塊上。測試所得的值根據方塊狀態變化。
輸出[]
可以使用/setblock
命令實現無線紅石輸出。圖中命令的座標需要根據實際情況變更。
入門套件[]
你可以使用標籤來區分「已領取套件的玩家」和「未領取套件的玩家」。
透過使用參數[tag=!<标签>]
,選擇不帶指定標籤的玩家,然後把已經領取套件的玩家以同樣的標籤標記,來在(伺服器)地圖上製作一個只能獲得一次的套件。至於這個標籤的名字,你可以隨意取,不過最好使用英文。
搭建:
/tag @a add <用以區分的標籤>
| |
與上一個命令方塊中的格式相同,有幾個物品就放幾個這樣的命令方塊。 | |
/give @a[tag=!<用以區分的標籤>,distance=..<半徑>] <物品ID> <數量>
|
方塊踩踏事件[]
/execute as @a at @s if block ~ ~-1 ~ iron_block run tp @s ~ ~3 ~ 或 /execute @a ~ ~ ~ detect ~ ~-1 ~ iron_block 0 tp @s ~ ~3 ~ |
以上命令會讓踩在鐵磚上的玩家向上載送三格。也可以將tp @s ~ ~3 ~
改為其它內容來達到不同效果,或將iron_block
改為其他方塊。
在單機非創造模式地圖中使用命令方塊[]
透過/gamemode
也可以使你在單機非創造性地圖中使用命令方塊,簡單的切換遊戲模式可以使用/gamemode creative
然後將命令方塊的命令設定為你想要的任何內容,最後使用/gamemode survival
切換回生存模式。命令方塊只是需要在創造模式下設定,但切換至生存模式仍然可以正常運作。
他也可以被用於傳送(例如一個遙遠的要塞,在地下挖礦,或者在一個浮天空島世界)。如果他需要你花了很長時間才能到達那裏,然後你不介意他是一種軟作弊,這樣你可以建立起一個傳送系統。請確保你在設定命令方塊的時候是創造模式(請使用/gamemode creative
。如果你並沒有開啟作弊選項,打開區域網模式設定打開作弊),但你還是可以在生存模式中使用它。在打開的命令方塊的界面中輸入/tp @p <x> <y> <z>
。然後,用紅石啟動這個命令方塊,然後你就會被送到遠處的目的地。你可以建立多種不同的傳送器。這也可以用於跨越大面積的大型項目,或者將儲物箱從舊房子轉移到新房子。
定格動畫[]
透過使用/clone
,或者Minecraft地圖編輯器,例如Minecraft地圖編輯器可以複製一張圖片(利用方塊做出來的繪畫),然後粘貼到其它地方(一般緊挨着上一個圖畫),並變動繪畫的一些方塊,利用一些壓力板或者絆線鈎,在玩家短時間欣賞繪畫後,命令方塊做出/clone
命令,將設定好的圖片複製到觀看區域。如果大量的複製粘貼這樣的零件,按順序地複製方塊並稍稍弄出一點點的延遲,那麼玩家就會產生幻覺,認為這個繪畫是在運動的,這就是利用命令方塊來實現定格動畫技術。
自動公吿[]
透過在命令方塊中使用命令/tellraw @a {"text":"<資訊>"}
/tellraw @a {"rawtext":["text":"<資訊>"]}
特殊的彩色文字[]
雖然你不能於命令方塊直接輸入彩色/粗體/斜體文字,但是可以直接利用原始JSON文字來弄出彩色/粗體/斜體字體。也可以使用「§」
安全掃描[]
使用/clear
命令,你可以清除玩家背包中的某物品。具體步驟是這樣的,使用/clear <@a|玩家名稱> <清除的物品名>
。如果想實現自動清理危險品可以將該命令方塊設為循環型。
你甚至還可以進一步將被清除危險品的玩家顯示在聊天框中:
在Java版中,可以藉助命令統計值來完成:
初始化工作:建立一個計分項。
搭建:
/execute if entity @a[scores={<记分项>=1}] run tellraw @a [{"text":"已清除"},{"selector":"@a[scores={<记分项>=1}]"},{"text":"身上的危险品"}]
| |
/execute as @a store success score @s <记分项> run clear @s <清除的物品名>
|
在基岩版中,需要用到「無序遍歷」的方法完成:
搭建:
/tag @a remove <标签>
| |
/tellraw @a {"rawtext":[{"text":"已清除"},{"selector":"@a[tag=<标签>]"},{"text":"身上的危险品"}]}
| |
/clear @a[tag=<标签>] <清除的物品名>
| |
/tag @a add <标签>
|
區域內檢測[]
在選擇器參數中,x
、y
、z
、dx
、dy
、dz
、r
和rm
x
、y
、z
、dx
、dy
、dz
和distance
可以用命令方塊的範圍限制來製作一個「圍欄」,透過圍欄的玩家會變成指定遊戲模式。比如這樣:
/gamemode <遊戲模式> @a[x=<區域中心X>,y=<區域中心Y>,z=<區域中心Z>,distance=<距離下限>..<距離上限>] 或 /gamemode <遊戲模式> @a[x=<區域中心X>,y=<區域中心Y>,z=<區域中心Z>,rm=<距離下限>,r=<距離上限>] |
這樣放置兩個搜尋區域不重合的命令方塊,就可以將規定半徑內的玩家改變模式。
也可以是一個長方體區域,比如這樣:
/effect give @a[x=<X>,y=<Y>,z=<Z>,dx=6,dy=3,dz=6] strength 1 2 true 或 /effect @a[x=<X>,y=<Y>,z=<Z>,dx=6,dy=3,dz=6] strength 1 2 true |
將使所有在方塊區域(X~X+6,Y~Y+3,Z~Z+6)內的玩家獲得1秒力量II效果。
PVP玩法[]
使用命令/gamerule keepInventory true
來關閉玩家死亡後的物品跌落(同樣在重生後會保留物品和經驗等,所以需要在玩家重生後清空背包)。使用/give @p <物品ID>
可以給予玩家武器(可以加入NBT標籤),你可以設計一套完善的職業系統,玩家選擇不同的職業會有不同的裝備。使用/spawnpoint <x> <y> <z>
設定玩家重生地點,使用/tp <x> <y> <z>
移動地圖中的玩家到指定區域。
時間與天氣[]
時間倒流[]
使用方塊類命令(/setblock
、/fill
和/clone
)來變更玩家所處的場景,並且時間也被設定為開始的時刻,這就好像是時間倒退。
(可以廣泛用於劇情RPG地圖)
時間加速[]
/time add 3500
|
時間會加速變化,你可以清楚地看到日月迅速升起落下的情景。(可以用在敘事故事類地圖中)
輕鬆設定日/夜[]
在一片開闊且露天的場地上放置一個命令方塊。在命令方塊上放置日光感測器,然後按下使用鍵,將其設定為反向日光感測器。在命令方塊中輸入/time set day
。或者你希望永遠是夜晚,你可以直接放置一個日光感測器,然後在命令方塊中輸入/time set night
。
天氣機[]
使用/weather
來開始或者結束降雨(雷雨)合理安排這些命令的話會十分有用,你可以隨自己的意願開始或停止降雨。這個技術可以用於村民和一些由降水控制的紅石機械,不用輸入任何命令就可以控制天氣(需要管理員啟動命令方塊自動執行),合理利用將會十分有效,比如在森林火災時或者在雨天生怪。
對於不同遊戲模式玩家的控制[]
使用值[gamemode=creative]
[m=1]
[gamemode=survival]
或[m=0]
/tp @a[gamemode=creative] 254 47 -874
/tp @a[m=1] 254 47 -874
「聯合」住宅[]
建造至少兩個建築物,在房間的入口或者出口設定一個/tp
命令的命令方塊,你不必將你的建築都在同一個地方建設,它們可以在任何地方,只需要入口的命令方塊傳送過去,玩家會忽然覺得外面感覺很小的建築內部空間竟如此之大。用這種方法聯合多個建築,可用作與伺服器或單人地圖中的場景瞬移。
睡覺模擬[]
使用/spawnpoint
可以直接設定重生點,再使用/time set day
命令,就可以模擬出睡覺的效果了。
檢測世界是否為和平難易度[]
敵對生物檢測法[]
建立一個攻擊型生物,把它放在壓力板上。(請確保它會保持始終按下狀態,所以一定要確保它不能跳或走開)。做一個紅石電路,讓壓力板在沒有接收到紅石訊號的時候啟動命令方塊。命令方塊裡設定一個訊息,通知玩家的地圖由於難易度切換到了和平難易度導致損壞,需要的怪物已經消失,請重新下載這個地圖。
命令查詢法[]
使用無參數的/difficulty
命令可以返回目前的遊戲難易度。前接/execute store result ...
,會將和平難易度以數值0
返回。
初始化工作:建立一個計分項。
搭建:
/execute if score <虛擬玩家名(須前後一致)> <計分項> matches 0 run <將執行的命令>
| |
/execute store result score <虛擬玩家名> <計分項> run difficulty
|
會説話的冒險地圖(有一個任務系統!)[]
/say
命令可以直接給玩家發送訊息。將命令方塊命名後會更好,這樣你就不需要放很多的指示牌和頁碼多到不行的書來吿訴玩家遊戲規則,你只需要把命令方塊放成一條線然後在中間鋪紅石中繼器來弄各個語段之間的延遲即可。
有一些是和NPC配合使用的。想像一下你進了鐵匠鋪並且你想要讓裏面的鐵匠説些什麼。在命令方塊出現之前,你需要一些書和指示牌來充當對話的效果,然後在鐵匠鋪裡造些房間並放些雜物,這樣會讓這個鐵匠鋪看起來變得非常亂。但是現在,你只需要使用/say
命令來製造鐵匠説話的效果。也許櫃枱後面的豬會求饒!讓我們再舉另外一個例子:你在一家工廠裡,一個報警鈴的聲音提示説工廠陷入危險了。用這個方法在聊天框中吿訴玩家,以便保持一個緊張的氣氛,特別是如果文字很長時應當用此方法。這同樣可以用在定時炸彈裝置,如果玩家看到了聊天框中的倒計時,他將可以更好地把情緒帶進地圖。
最後一點並非不重要,它可以更容易地建立一個任務系統,來讓我們的玩家開始進行任務。玩家透過壓力板後會用一個有/say
命令的命令方塊去表達屠夫對玩家的要求,然後獲得一個特別的標籤(前面的命令在執行時忽略帶有這個標籤的玩家)。他需要去殺一隻豬。當玩家殺死在指定區域內的豬時,命令方塊將會時玩家回到屠宰場之後啟動三個命令方塊。第一個命令是屠夫感謝玩家的/say
命令,第二個命令是使玩家獲得獎勵的/give
命令,最後同樣是獲得一個特別的標籤(前面的命令在執行時忽略帶有這個標籤的玩家)。除此之外,別忘了使用目標選擇器@a[tag=<标签>]
,使屠夫説出玩家的名字。例如,將命令方塊設定為:/say 謝謝,@a[tag=<標籤>],你幫我殺了那頭豬。
,聊天框就會顯示:[@]:谢谢, <玩家> 。你帮我杀了那头猪。
這讓地圖變得更酷,看起來像是為玩家製作的,因為上面寫着他/她的名字!
建立商店[]
透過使用/give @p[level=<''等级''>..] <物品> <數量>
和/experience add @p[level=<''等级''>..] <等級> levels
命令可以建立一個商店,舉例來説,如果你放了兩個命令方塊,一個輸入/give @p[level=5..] grass_block 64
命令,另外一個輸入/experience add @p[level=5..] -5 levels
命令,並連接到相同的紅石電路,當命令方塊被啟動後,會從等級高於5等的玩家扣除5等等級,並給玩家64個草地。
- 透過使用命令
/experience add @p[level=3..] -3 levels
,能將經驗減去作為貨幣。level=
後面的範圍是命令執行所需的最低經驗。
可以使用命令方塊建立出售任何物品的自訂村民/summon minecraft:villager ~2 ~ ~ {VillagerData:{profession:"armorer"},CustomName:'"BLACKSMITH"',CustomNameVisible:0,Offers:{Recipes:[ {maxUses:13,buy:{id:"emerald",Count:5},sell:{id:"golden_sword",Count:1,tag:{Enchantments:[{id:"sharpness",lvl:9},{id:"fire_aspect",lvl:6}],display:{Name:'"Molten Gold Sword"'}}}},{maxUses:13,buy:{id:"emerald",Count:1},sell:{id:"stick",Count:1,tag:{Enchantments:[{id:"sharpness",lvl:5}],display:{Name:'"Whuppin Stick"'}}}},{maxUses:13,buy:{id:"emerald",Count:2},sell:{id:"blaze_rod",Count:1,tag:{Enchantments:[{id:"sharpness",lvl:5},{id:"fire_aspect",lvl:10}],display:{Name:'"Radioactive Whuppin Stick"'}}}}]},Brain:{memories:{"minecraft:job_site":{value:{pos:[I;<x>,<y>,<z>],dimension:<维度命名空间ID>}}}}}
其中<x><y><z>
和<维度命名空间ID>
要根據實際情況改為對應高爐所在的位置。
使用buy
標籤的部分是村民的收購物,使用sell
標籤的部分是村民的出售物。如果不希望交易次數耗盡,可以將maxuses
標籤變更為1000;如果希望使其成為只能交易一次的項目,可以將maxuses
變更為1。注意這裏的第一個物品(金劍)有一個超出範圍的附魔(鋒利9)。是的,這是可行的,但在做出超出範圍的效果之前,一定要研究什麼樣的附魔效果,因為有些東西什麼也不做,甚至會產生負面影響(水中呼吸的「看清水下」副作用使所有東西在高水平上都變成了令人眼花繚亂的白色,就像你潛入充滿泥漿的北極水域一樣)。至於那把金劍,記住金劍的耐久度實在是太低了(這就是人們稱之為黃油劍的原因)。一個10級耐久附魔會將一把金劍達到一個體面的耐用性水平。另外注意,另外兩個「武器」實際上是一個木棍和一個帶有武器附魔的烈焰棒。使用任何非武器作為武器都會造成與空手相同的傷害(1()),但這些武器上的附魔使它們與未附魔的劍一樣。它的優點是木棍、烈焰棒或其他物品可以無限使用。同樣的技巧也可以用於生物頭顱和水中呼吸3,以製造一個無限耐久的潛水面罩。
在更少的命令方塊和遞歸中使用更多的命令[]
- 有幾種方法可以將命令組組合為一個命令。
- 在觸發路軌上生成一個命令方塊礦車,該命令方塊礦車上按順序騎着另一些命令方塊礦車。
- 使用
/function
。
使用地圖作為通關依據(scroll)[]
YouTuber 「SethBling」使用地圖當作通關依據(scroll),當空白地圖被使用時,會變成一般地圖,那時,命令會立即將地圖從玩家的物品欄清除,並執行命令(召喚生物、傳送玩家),同時關卡透過。
優點
- 快速的互動。
- 緊湊的系統。
- 簡單觸發,只要使用右鍵即可啟動。
缺點
- 玩家在刪除地圖之前啟動地圖時可能會看到地圖動畫。
- 玩家在遊戲過程中不能使用地圖(顯示文字資訊、路徑、圖畫…)。
機制建設
玩家可以變更物品的顯示名稱和介紹,讓玩家更好地了解並使用物品。使用以下命令為玩家提供自訂命名地圖/give <玩家> map{display:{Name:'"<名稱>"',Lore:['"<介紹>"']}}
- 玩家:指定的玩家(
@p
、@a[参数]
……)。 - 名稱:在快捷欄中捲動或用滑鼠懸停於物品上方時顯示的名稱。
- 介紹:滑鼠懸停於物品上方時名稱下方的文字。
檢測地圖的啟動
搭建:
任意你想執行的命令,如給予玩家某種效果,傳送玩家到某處等。 | |
/give <玩家> map{display:{Name:'"<名稱>"',Lore:['"<介紹>"']}} (可選,若有則觸發後可重新獲得通關依據)
| |
/clear <玩家> filled_map
|
進階
/clear
命令可以檢驗其他可互動的物品:
/clear <玩家> fishing_rod{Damage:2}
請注意如果釣到了地面或者生物時,魚竿可能會損失不少於2點耐久度,所以對每2點耐久度都進行一次檢驗。
更多資源[]
Feare的命令方塊教學
Dragnoz的YouTube教學提供了很多使用NBT標籤的可能性
NBT標籤的文字教學
參見[]
|
語言