Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
Advertisement
Disambig gray  本文章介紹的是命令方塊使用實例。關於執行命令的方塊,請見「命令方塊」。關於所有命令及其語法,請見「命令」。

命令方塊是一種主要用於冒險模式遊玩、多人遊戲的自動化和自訂地圖的方塊。

取得

擁有管理員權限或開啟作弊的單人模式玩家可以在聊天框內輸入命令/give @s 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 @r add cookie

/give @a[tag=cookie] minecraft:cookie 5

/say @a[tag=cookie] 已被給予五個曲奇。

/tag @a[tag=cookie] remove cookie

玩家安全系統

命令方塊也可以製作安全系統。只要放置一個保持開啟的重複型命令方塊,並輸入命令:/tp @p[r=<半徑>,name=!<你的玩家名>] <x> <y> <z>[僅基岩版]/tp @p[distance=..<半徑>,name=!"<你的玩家名>"] <x> <y> <z>[僅Java版],這樣除你以外的其他玩家就無法靠近了。對於怪物,簡單的欄杆或熔岩護城河就能達到目的。

自動行人路

類似於電梯的概念,用於使實體往x或z座標移動。

可以透過以下方式建造:

  • 使用/fill <x> <y> <z> <x2> <y2> <z2> <方塊>[僅Java版]/fill <x> <y> <z> <x2> <y2> <z2> <方塊> <數據值>[僅基岩版]命令填充一片方塊。
  • 在一旁放置一個重複型命令方塊,輸入:/execute as @e at @s if block ~ ~-1 ~ <方塊> run tp @s ~-0.1 ~ ~[僅Java版]/execute @e ~ ~ ~ detect ~ ~-1 ~ <方塊> <數據值> tp @s ~-0.1 ~ ~[僅基岩版]

現在站到填充的方塊上,你就會自動向指定的方向移動。

命令中的~-0.1 ~ ~可以替換為你想要的座標,座標的格式可以參照上方的「傳送」段落。


無線紅石

方法一

可以使用/setblock命令實現無線紅石。圖中命令的座標需要根據實際情況變更。

方法二

可以使用/execute[僅Java版]命令實現無線紅石。如在重複型命令方塊中輸入/execute if block 123 12 123 stone_button[powered=true][僅Java版],並接上一個紅石比較器(按鈕座標是123,12,123)。輸入要測試的特定方塊的座標和名稱,在本例中是位於123 12 123的石製按鈕。這可以使用在任何可變更方塊狀態的方塊上。測試所得的值根據方塊狀態變化。

入門套件

你可以使用標籤來區分「已領取套件的玩家」和「未領取套件的玩家」。

透過使用參數[tag=!<标签>],在(伺服器)地圖上製作一個只能獲得一次的套件,首先,在地上挖幾個格,然後放置一行命令方塊(工具包中的每個物品一個)。在命令方塊的界面中,輸入/give @p [tag=!<用以區分的標籤>,distance=..<半徑>] <物品ID> <數量>。這樣他們會獲得你所希望給予他們的物品。在一個另外的連環型命令方塊裏面輸入/tag @p add <用以區分的標籤>,形成一串命令方塊鏈。將洞填起來然後放上壓力板。當玩家走過去,他們會得到他們應得的工具包,他們因為被加入了標籤所以他們不會獲得更多的套件。

至於這個標籤的名字,你可以隨意取,不過最好使用英文。

方塊踩踏事件

命令/execute as @a at @s if block ~ ~-1 ~ iron_block run tp @s ~ ~3 ~[僅Java版]/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":"<資訊>"}[僅Java版]/tellraw @a {"rawtext":["text":"<資訊>"]}[僅基岩版]可以創造一個無人自動廣播(需要連接循環紅石等不斷發出啟動訊號的紅石元件)。還可以加入一些判斷,如在第一位玩家抵達終點時向所有人廣播。

特殊的彩色文字

雖然你不能於命令方塊直接輸入彩色/粗體/斜體文字,但是可以直接利用原始JSON文字來弄出彩色/粗體/斜體字體。也可以使用「§」[僅基岩版]或「\u00a7」來進行文字的變色、甚至是亂碼(§k[僅基岩版]或\u00a7k)。

安全掃描

使用/clear命令,你可以清除玩家背包中的某物品。具體步驟是這樣的,使用/clear <@a|玩家名稱> <清除的物品名>。如果想實現自動清理危險品可以將該命令方塊設為循環型。

你甚至還可以進一步將被清除危險品的玩家顯示在聊天框中:

Java版中,可以藉助命令統計值來完成:

  1. 建立一個計分板。
  2. 在重複型命令方塊中輸入/execute as @a store success score @s <計分項> run clear @s <清除的物品名>,其中的<记分项>需要改為你在第一步時建立的計分板名稱。
  3. 接上一個連環型命令方塊,輸入/execute if entity @a[scores={<計分項>=1}] run tellraw @a [{"text":"已清除"},{"selector":"@a[scores={<計分項>=1}]"},{"text":"身上的危险品"}]

基岩版中,需要用到「無序遍歷」的方法完成:

  1. 在重複型命令方塊中輸入/tag @r add <標籤>
  2. 接上一個連環型命令方塊,輸入/clear @a[tag=<標籤>] <清除的物品名>
  3. 接下來的連環型命令方塊需要條件制約,輸入/tellraw @a {"rawtext":[{"text":"已清除"},{"selector":"@a[tag=<標籤>]"},{"text":"身上的危险品"}]}
  4. 最後別忘了使用/tag @a remove <標籤>來移除標籤!

區域內檢測

在選擇器參數中,x、​y、​z、​dx、​dy、​dz、​rrm[僅基岩版]x、​y、​z、​dx、​dy、​dzdistance[僅Java版]可用於檢測玩家是否在指定的區域內

可以用命令方塊的範圍限制來製作一個「圍欄」,透過圍欄的玩家會變成指定遊戲模式。在命令方塊中輸入命令:

/gamemode <遊戲模式> @a[x=<區域中心X>,y=<區域中心Y>,z=<區域中心Z>,distance=<距離下限>..<距離上限>][僅Java版]/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[僅Java版]/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)內的玩家獲得力量II效果。

PVP玩法

使用命令/gamerule keepInventory true來關閉玩家死亡後的物品跌落(同樣在重生後會保留物品和經驗等,所以需要在玩家重生後清空背包)。使用/give @p <物品ID>可以給予玩家武器(可以加入NBT標籤),你可以設計一套完善的職業系統,玩家選擇不同的職業會有不同的裝備。使用/spawnpoint <x> <y> <z>設定玩家重生地點,使用/tp <x> <y> <z>移動地圖中的玩家到指定區域。

時間與天氣

時間倒流

在地圖上模擬兩個十分相似的環境,透過命令方塊將玩家從一個傳送到另一個,並且時間也會被設定為開始的時刻,這就好像是時間倒退。 (可以廣泛用於劇情RPG地圖)

時間加速

在一個重複型命令方塊中鍵入以下命令:time add 5000,拉下拉桿,時間就會加速變化。你可以清楚地看到日月迅速升起落下的情景。 (可以用在敘事故事類地圖中)

永晝與永夜

可透過在聊天選單輸入/gamerule doDayLightCycle false命令停止晝夜交替,然後輸入/time set 6000命令可設定為永晝,輸入/time set 18000命令可設定為永夜。

輕鬆設定日/夜

在一片開闊且露天的場地上放置一個命令方塊。在命令方塊上放置日光感測器,然後按下使用鍵,將其設定為反向日光感測器。在命令方塊中輸入/time set day。或者你希望永遠是夜晚,你可以直接放置一個日光感測器,然後在命令方塊中輸入/time set night

天氣機

使用/weather來開始或者結束降雨(雷雨)合理安排這些命令的話會十分有用,你可以隨自己的意願開始或停止降雨。這個技術可以用於村民和一些由降水控制的紅石機械,不用輸入任何命令就可以控制天氣(需要管理員啟動命令方塊自動執行),合理利用將會十分有效,比如在森林火災時或者在雨天生怪。

對於不同遊戲模式玩家的控制

使用值[gamemode=creative][僅Java版][m=1][僅基岩版]你就可以設定命令只對創造模式的玩家有效,生存模式就是[gamemode=survival][m=0][僅基岩版]。 例:傳送所有創造模式的玩家到254,47,-874,使用的命令為/tp @a[gamemode=creative] 254 47 -874[僅Java版]/tp @a[m=1] 254 47 -874[僅基岩版]

「聯合」住宅

建造至少兩個建築物,在房間的入口或者出口設定一個/tp命令的命令方塊,你不必將你的建築都在同一個地方建設,它們可以在任何地方,只需要入口的命令方塊傳送過去,玩家會忽然覺得外面感覺很小的建築內部空間竟如此之大。用這種方法聯合多個建築,可用作與伺服器或單人地圖中的場景瞬移。

睡覺模擬

使用/spawnpoint可以直接設定重生點,再使用/time set day命令,就可以模擬出睡覺的效果了。

檢測世界是否切換到了和平難易度

建立一個攻擊型生物,把它放在壓力板上。(請確保它會保持始終按下狀態,所以一定要確保它不能跳或走開)。做一個紅石電路,讓壓力板在沒有接收到紅石訊號的時候啟動命令方塊。命令方塊裡設定一個訊息,通知玩家的地圖由於難易度切換到了和平難易度導致損壞,需要的怪物已經消失,請重新下載這個地圖。你甚至可以做一個隱形傳輸命令方塊,把那些故意切換到創造模式的玩家換成冒險模式後傳送到一間基岩屋內,並讓他不能使用/kill/tp命令,並把他的重生點設在那個房子裏,讓他永生見不得光明!(單人的話,可以點「對區域網開放」,或用修改器編輯)

會説話的冒險地圖(有一個任務系統!)

/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=後面的範圍是命令執行所需的最低經驗。

可以使用命令方塊建立出售任何物品的自訂村民[僅Java版]。 例如:
/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,以製造一個無限耐久的潛水面罩。

生成籠

Information icon
此特性為Java版獨有。

你可以透過/setblock命令放置生成籠,例如:/setblock ~1 ~-1 ~0 spawner{SpawnData:{entity:{id:"minecraft:zombie",HandItems:[{id:"iron_sword",Count:1},{}]}}}會放置產生拿着鐵喪屍的生成籠。幾乎所有除了玩家的實體都可以透過自訂生成籠產生,包含了礦車、火球、箭、積雪球、終界珍珠、飛濺藥水、煙花、點燃的TNT、跌落的沙、跌落的紅沙、跌落的砂礫、畫、物品展示框、經驗球甚至是跌落物。

你可以把豬、牛或雞的生成籠放置於村莊的屠夫家的後院,以便創造永恆的肉類來源,例如:/setblock ~1 ~-1 ~0 spawner{MaxNearbyEntities:10,RequiredPlayerRange:16,SpawnCount:6,SpawnRange:2,MinSpawnDelay:50,MaxSpawnDelay:200,SpawnData:{entity:{id:"minecraft:pig",Passengers:[{id:"chicken"}]}}}此命令會放置生成「雞騎在豬上」的生成籠,而且想要多少生物騎在另外一個生物上是沒有限制的,例如你可以放置一隻騎着雞的豬,那隻豬也騎着一隻牛,那隻牛也騎着一隻馬,那隻馬也騎着一隻蠹魚,同時那隻蠹魚也騎着一位村民,這就是「Farmer Brown」。 請注意,如果要使用RequiredPlayerRange標籤,那你必須同時使用MaxNearbyEntities標籤,同樣的事情也適用於MinSpawnDelayMaxSpawnDelay。最後,請注意,這兩個生成籠範例命令中使用的y值是~-1,(假設玩家沒有飛行)意思是把生成籠放在玩家下方一格處。

一、基礎

以下的命令會於X座標加2的位置放置一個召喚喪屍生成籠

/setblock ~2 ~ ~ minecraft:spawner{SpawnData:{entity:{id:"minecraft:zombie"}}}

下面的基礎命令包含了6種可設定參數: /setblock ~2 ~ ~ minecraft:spawner{SpawnData:{entity:{id:"minecraft:skeleton"}},SpawnRange:4,RequiredPlayerRange:16,SpawnCount:4,MaxNearbyEntities:6,MinSpawnDelay:200,MaxSpawnDelay:800}

提醒:

  • 所有時間都是以「遊戲刻」計算的(一般情況下,1秒約等於20刻,200~800遊戲刻約等於10~40秒鐘)。
  • 請記住,參數是一對的,如果參數沒有匹配,將無法正常工作。SpawnRange需要RequiredPlayerRange工作,反之亦然,MinSpawnDelay需要MaxSpawnDelay工作,而SpawnCount需要MaxNearbyEntities工作。
  • 還有一種參數叫做Delay用於控制這次怪物生成到下次生成時間的延遲,以遊戲刻為單位(1秒等於20遊戲刻),它會在參數MaxSpawnDelayMinSpawnDelay設定的值中隨機選取一個數。
  • 若座標設定為~ ~-1 ~-3會以命令方塊為基準向Y座標向下1個方塊,向Z座標減少三個方塊處放置生成籠,它有可能會將生成籠放置於地底。提醒你,生成籠的SpawnRange參數僅對水平方向有效,而不是垂直方向。在垂直方向,它只會在相同的高度生成生物,或者低1或者高1,所以將之嵌入地面雖然會使生成面積縮減2/3,但對將它隱藏起來是有幫助的。自然地,其生成高度減少了1/3,因為它們的高度比地面高1而不是2。
  • 以上所使用的值均為預設值。

二、自訂生物

下一步要做的是修改生成數據。生成數據吿訴生成籠你想要一個非標配的怪物,比如帶有鑽石和鐵鏈頭盔喪屍

/setblock ~ ~1 ~ spawner{SpawnData:{entity:{id:"zombie",HandItems:[{id:"diamond_sword",Count:1},{}],ArmorItems:[{},{},{},{id:"minecraft:chain_helmet",Count:1}]}}}

使用~代替座標的值,由於使用了上一個示例中的這6個參數,因此它們都是預設值。
注意:
HandItems標籤兩個槽的順序為慣用手和非慣用手,ArmorItems標籤四個槽順序分別為靴、護腳、胸甲和頭盔。你必須也指定空的槽。
儘管是損壞的頭盔,只要戴上它,那些會因陽光而燃燒的生物,就可以存活。
Count標籤十分重要。一個沒有Count標籤的物品將在生成後迅速消失。

下一個自訂怪物是一個騎在骷髏骨馬上的骷髏骨,它持有火焰箭矢附魔的,戴着保護II附魔的自訂生物頭顱蜘蛛,需要網路連接,否則只會顯示Steve頭顱)。

/setblock ~2 ~1 ~2 spawner{SpawnData:{entity:{id:"skeleton_horse",Tame:1,SaddleItem:{id:"minecraft:saddle",Count:1},Passengers:[{id:"minecraft:skeleton",HandItems:[{id:"minecraft:bow",Count:1,tag:{Enchantments:[{id:"minecraft:flame",lvl:1}]}},{}],ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1,tag:{SkullOwner:"MHF_Spider",Enchantments:[{id:"minecraft:protection",lvl:2}]}}]}]}}}

嚴格來説,骷髏骨僅僅是坐在馬上,因為骷髏骨的移動取決於它騎着的馬,而馬並不會與你敵對。注意不要把喪屍(或其他近戰生物如喪屍豬人)放在馬背上,它們的攻擊範圍不夠,因此只能坐在馬上什麼也不干。所幸無論馬如何移動,骷髏骨都可以進行射擊。
至於骷髏骨馬本身,它的馴服被設定為1(是),並裝備有一個馬鞍(事實上,它們讓我們指定哪種鞍座暗示着它們最終可能有不止一種類型)。從技術層面來説,你可以設定一個多級騎乘的生物,但你很快就會意識到這麼做並不明智。

三、SpawnPotentials標籤

我們可以在生成籠中使用SpawnPotentials標籤來生成多種實體。當計時器重設時(生成前一個生物的後一秒鐘),它會隨機選擇一個標籤進行生成。由於這些NBT包含多個生物,所以它們往往是相當長的。以下是一個示例命令,看起來十分「賞心悦目」:

這個命令的NBT部分特別長,因為它實際上是6個獨立的生物。其中有:

  • SpawnPotentials標籤前:最前面的部分,出現一次之後就不會再出現了。如果希望它再次出現,你需要將之再次包含在SpawnPotentials的部分中。這一生物是一個穿着藍色染色皮革褲、綠色染色皮革上衣,拿着一把滿耐久木劍的喪屍。
  • 一隻與上述內容幾乎相同的喪屍,唯一的不同是這隻喪屍的木劍耐久度只有3。
  • 接下來一隻看起來像個忍者。它是一隻骷髏骨,但拿着一把鐵劍。它所有的盔甲都染上了忍者般的黑色。帶劍的骷髏骨能比喪屍更快地縮短與你的距離,所以要小心。
  • 一隻有石劍和鐵鏈盔甲的喪屍。其盔甲上附有保護II。
  • 接下來是有一把金劍,一身金盔甲,頭上套着一個南瓜,並且着了火的喪屍。南瓜上附有保護II和火焰保護X,不顧一切地試着站起來並威脅玩家超過5秒。雖然這是有效的,不過如果玩家選擇遠離,南瓜頭先生就會被燒死。
  • 有鐵劍和鐵盔甲的喪屍。劍上附有鋒利II,盔甲上附有保護II。
  • 最後一隻生物,一隻假Herobrine,擁有附魔等級很高的鑽石盔甲(附有火焰保護IV和跌落保護IV的鑽石靴,穿着附有爆炸保護IV的鑽石褲,附有保護IV的鑽石胸甲,以及保護IV、火焰保護IV,爆炸保護IV和水中呼吸III的盔甲)以及一把附有鋒利IV,擊退IV,節肢剋星IV,掠奪III和耐久III的鑽石鎬。除此之外,它還獲得了CustomNameVisible(設定為1表示true),CustomName,以及PersistenceRequired(設定為1表示yes)。最後一個屬性將阻止它消失,雖然它可以被正常手段所殺死(如果你能擊敗這一身鑽石套和IV級附魔的話)。幸運的是,它比較少見(見下文)。

除了那個忍者,這裏一共有5種不同的劍和盔甲。注意weight標籤,其需要在每個SpawnPotentials中的entityNBT後使用。這決定了該生物被選中並生成的機率。具體的數字沒有什麼意義,有意義的只是數字之間的比例。例如,如果你想讓所有預置生物等概率生成,則可以將每個weight都設定為1,將它們全部改成8也沒有什麼不同(它們之間的比例仍然是相同的),但是將除了某一個之外的所有其他weight變更為8則會使其中1/8的可能性與其餘的1/8相同。在這段代碼中,預設值是4,而忍者只有2(使它被選中的可能性減半),而那隻假Herobrine只有1。

四、可騎乘生物

將生物的頭設定為礦車或船,則可以騎乘它們,但看起來會有些奇怪。命令相當簡單:

/setblock ~ ~1 ~ minecraft:spawner{SpawnData:{entity:{id:"<实体名称>",Passengers:[{id:"minecraft:minecart"(或"minecraft:boat")}]}}}

提示:

  • 有些生物不能用生成籠生成,比如boss、鐵人和雪人。加入礦車也不會影響它們。
  • 具有射擊能力的敵對性怪物可以並且將使用它們來對付生存玩家。請注意。
  • 地獄幽靈不能騎乘。礦車將卡在它們的腦袋裏,這對任何人都毫無用處。
  • 終界使者不能四處走動,但可以透過掟或射擊讓它們傳送(比如積雪球)。
  • 豹貓是速度最快的怪物之一,因為他們想要逃離你。它們也可以透過指向你想去的地方來控制。
  • 蜘蛛是唯一在騎乘時會減速的生物。
  • 史萊姆和它的近親岩漿史萊姆不能改變大小。

在更少的命令方塊和遞歸中使用更多的命令

有幾種方法可以將命令組組合為一個命令。
  • 觸發路軌上生成一個命令方塊礦車,該命令方塊礦車上按順序騎着另一些命令方塊礦車。
參見:函數

使用地圖作為通關依據(scroll)

YouTuber 「SethBling」使用地圖當作通關依據(scroll),當空白地圖被使用時,會變成一般地圖,那時,命令會立即將地圖從玩家的物品欄清除,並執行命令(召喚生物、傳送玩家),同時關卡透過。

優點

  • 快速的互動。
  • 緊湊的系統。
  • 簡單觸發,只要使用右鍵即可啟動。

缺點

  • 玩家在刪除地圖之前啟動地圖時可能會看到地圖動畫。
  • 玩家在遊戲過程中不能使用地圖(顯示文字資訊、路徑、圖畫…)。

機制建設

玩家可以變更物品的顯示名稱和介紹,讓玩家更好地了解並使用物品。使用以下命令為玩家提供自訂命名地圖[僅Java版]/give <玩家> map{display:{Name:'"<名稱>"',Lore:['"<介紹>"']}}

  • 玩家:指定的玩家(@p@a[参数]……)。
  • 名稱:在快捷欄中捲動或用滑鼠懸停於物品上方時顯示的名稱。
  • 介紹:滑鼠懸停於物品上方時名稱下方的文字。

檢測地圖的啟動

File:Minecraftscroll.jpg

  • 命令方塊 1 包含/give上面一節中描述的命令。如果玩家不希望通關依據在被啟動後回來,它可以被取消。
  • 命令方塊 2 包含物品欄檢測命令:

/clear <玩家> filled_map

  • 命令方塊 3 是成功時的輸出。你可以做任何想要做的事情:比如給予玩家某種效果,傳送玩家到某處,等等。你也可以將輸出連接到門,活塞,或是其他接收紅石訊號的方塊。

進階

/clear命令可以檢驗其他可互動的物品:

  • 在玩家剛喝過藥水時檢驗玻璃樽
  • 在收回浮標時檢驗魚竿。在工具的NBT中包含一個名為Damage的標籤,是工具的耐久度:

/clear <玩家> fishing_rod{Damage:2} 請注意如果釣到了地面或者生物時,魚竿可能會損失不少於2點耐久度,所以對每2點耐久度都進行一次檢驗。

更多資源

Feare的命令方塊教學
Dragnoz的YouTube教學提供了很多使用數據標籤的可能性
數據標籤的文字教學

參見

Advertisement