Minecraft Wiki

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

了解更多

Minecraft Wiki
Advertisement

Template:Translation:未知參數。 在製作地圖時需要一些觸發命令的裝置,讓玩家無需自己去輸入放置命令來觸發。本教學介紹幾種觸發命令的方式。

自訂命令類

gamerule+stats+scoreboard [僅1.13前]

使用gamerule作為自訂命令,玩家使用時輸入/gamerule 自定义规则名 检测时对应的数值

第一步:自訂遊戲規則
確定好自訂的規則名後,直接輸入/gamerule 自定义规则名 任意数字
第二步:計分板相關準備
首先輸入/scoreboard objectives add 自定义变量名 dummy,用來儲存等會傳過來的值
接下來有兩種辦法儲存變數的值。
用虛擬實體,輸入/scoreboard players set 虚拟实体名 自定义变量名 0。這個虛擬實體只提供名字,不會被kill影響。
用盔甲座,先在電路區域放置好盔甲座並把盔甲座命名,接着輸入/scoreboard players set @e[name=盔甲架名字] 自定义变量名 0
第三步:用stats將gamerule的值輸入計分板
放置一個命令方塊,輸入命令gamerule 自定义规则名。這個命令將查詢目前規則的值。
打開F3除錯界面,記下這個命令方塊的座標,輸入/stats block x坐标 y坐标 z坐标 set QueryResult 虚拟实体名或盔甲架名 自定义变量名。這條命令將把命令方塊gamerule查詢到的值返回到計分板上。
啟動重複命令方塊,使其不斷刷新查詢的值。此時stats建立的連接將把查詢到的值返回計分板。
第四步:電路檢測計分板值並觸發命令
提示玩家輸入gamerule 自定义规则名 数值,數值為你想檢測的數值。
檢測時:
如果用盔甲座,高頻接入execute,配合選擇器的計分板分數探測(@e[score_自訂變數名_min=數值])會方便一些,如果檢測的值成立則用fill/setblock紅石磚等方法觸發電路。
如果用虛擬實體,高頻接入命令/scoreboard players test 虚拟实体名或盔甲架名 自定义变量名 数值,數值為你想檢測的數值,後接比較器輸出訊號。在1.9後可以用條件制約的方塊而避免比較器延遲,詳見教學/條件結構電路
如果需要復位,就在命令電路中對自訂規則的值設成0。

此命令組在1.13及以後的版本失效,因為stats和scoreboard players test以及自訂遊戲規則的移除。

示例
  1. /gamerule bomb 0,使用/gamerule bomb查詢可以看到bomb = 0的提示。
  2. /scoreboard objectives add vbomb dummy
  3. /scoreboard players set fakename vbomb 0
  4. 兩條命令先設定名為vbomb的變數,再給fakename這個虛擬實體設定vbomb變數的值為0。
  5. gamerule bomb放入位於<200,50,-100>的命令方塊中。用高頻電路連接。
  6. 輸入/stats block 200 50 -100 set QueryResult fakename vbomb
  7. 高頻連接/scoreboard players test fakename vbomb 1 1,用比較器連接好命令電路。
  8. 提示玩家輸入/gamerule bomb 1開始某樣操作。
  9. 在命令電路中放置/gamerule bomb 0的命令方塊。完成。

trigger+scoreboard

使用trigger需要將計分板變數交給玩家使用,所以需要先使用高頻或低頻電路給予玩家變更計分板變數的權力。

第一步:計分板相關準備
建立計分板變數scoreboard objectives add 自定义变量名 trigger。應當指出的是這裏的準則不是dummy而是trigger。
高頻接入scoreboard players enable @p或@a 自定义变量名選擇器可以按需選擇。這條命令讓指定玩家能修改某個變數的值。
第二步:使用與檢測
提示玩家輸入trigger 自定义变量名 set 数值
最後在命令方塊裡打上/execute if entity @a[score={"自定义变量名"=...] ...

主動互動類

clear+空白地圖

這種方法的原理是讓玩家打開空白地圖,然後高頻連接clear地圖的命令方塊,比較器連接並觸發電路,同時在電路中安排返還空白地圖的命令。 但是存在局限性,所以一般用於一些小遊戲中。

相關命令:clear @p filled_mapgive @p map

積雪球拋擲+scoreboard相關判據

輸入命令/scoreboard objectives add 变量名 stat.useItem.minecraft.snowball,即可統計積雪球拋出的次數。

透過execute if entity @a[score={變數名=...}]觸發電路,然後用scoreboard相關命令復原計分板值。

testforblock檢測方塊狀態

有些機關,透過檢測方塊狀態觸發命令。

檢測拉桿狀態:testforblock x y z lever 相关数据值,如檢測朝向z軸正向的拉桿,填入11,則當拉桿被拉下,在外觀上看沒有電路,也能觸發機關。

檢測展示框的旋轉狀態也可以。詳見物品展示框

指示牌點擊

這裏提供一份模板,使用到了JSON文字

命令中standing_sign是立着的指示牌,wall_sign是牆上嘅指示牌,隨需要選擇。也可以透過/data merge block修改指示牌內容。

/setblock x y z minecraft:standing_sign或minecraft:wall_sign replace
{Text1:"{\"clickEvent\":{\"action\":\"run_command\",\"value\":\"''第一条命令''\"},text:\"''提示信息''\"}",
Text2:"{\"clickEvent\":{\"action\":\"run_command\",\"value\":\"''第二条命令''\"}}",
Text3:"{\"clickEvent\":{\"action\":\"run_command\",\"value\":\"''第三条命令''\"}}",
Text4:"{\"clickEvent\":{\"action:run_command\",\"value\":\"''第四条命令''\"}}"}

被動探測類

漏斗低頻+範圍檢測到實體

搭建一個朝向連通的漏斗組,並在裏面放入物品,用比較器連通其中一個漏斗,就製作好了漏斗低頻。

/execute if entity中比較器填入distance的項,檢測附近的玩家,即可實現一些被動觸發的機關。(部分命令無法在目前基岩版實現,如計分板中目前只能使用dummy虛擬類型,觸發可能因此受限)

善用紅石元件

陷阱箱,絆線與絆線鈎都是用於機關設計的,善用他們可以省去很多搭建電路的麻煩。

Advertisement