Template:Desktop
這些特性已經在開發版本中出現,但包含這些特性的正式更新尚未發佈。
函數(Function)是一個使玩家更容易用文字文件使用多行指令的未來功能。
用法
要在一個Minecraft世界中使用函數,首先必須把文字文件到放置世界名称/data/functions資料夾。它們隨後可被下面列出的幾種方法執行。函數可由子資料夾進一步分隔,並且可以在遊戲中使用指令namespace:path/to/function/file執行。
例如,執行custom:example/test會引用位於世界名称/data/functions/custom/example/test.mcfunction的函數。
在文字文件裡,要每行放置一個有效的指令。玩家可以在函數文字文件中使用//或#加注釋。如果加入了或修改了一個函數,/reload指令將會重新載入函數檔案並且執行新指令。在函數裏執行的指令會遵守/gamerule maxCommandChainLength。
它們是簡單的文字文件,因此函數是易修改的,並且在大量使用時與指令方塊相比可能會產生更少的延遲。然而,函數的成功輸出不能被紅石中繼器(沒有使用複雜的計分板指令)檢測;函數也不支持可選參數。
在遊戲中目前有三種方式執行函數:
/function指令
/function指令允許玩家一次執行一個函數。函數中的指令透過實體或執行/function指令的指令方塊執行。
語法:/function <namespace:path/to/function/file>
/gamerule gameLoopFunction指令
/gamerule gameLoopFunction將會每刻執行一個函數。函數中的指令透過伺服器執行。
語法:/gamerule gameLoopFunction <namespace:path/to/function/file>
進度獎勵
完成進度時可以作為獎勵執行一個函數。函數裏的指令透過完成了進度的玩家執行。
語法:
{
"rewards": {
"function": "namespace:path/to/function/file"
}
}
歷史
| Upcoming | |||||
|---|---|---|---|---|---|
| 1.12 | 1.12-pre1 | 加入函數。 | |||
| 1.12-pre3 | 現在使用新的檔案拓展名「.mcfunction」而非之前的「.txt」
每一欄的指令不再以"/"開頭。 現在僅能使用「#」來注釋,而非之前的「//」 函數會按照預期地進行遞歸,甚至在混合了/function和/execute指令時 | ||||
| 1.12-pre4 | 加入了新的參數:
if <選擇器> - 僅在指定了特定選擇器幸運行函數(目前僅支持1) unless <選擇器> - 僅在未指定特定選擇器幸運行函數(目前僅支持0或2+) | ||||
錯誤
Template:Issue list