函數(Function)是一個允許玩家利用擴展名為.mcfunction
的文字文件編寫和執行多行指令的功能。本條目主要講述如何使用基岩版中的函數。
用法[]
函數的文字檔案應處於行為包內的頂層資料夾「functions」([行为包]/functions
)或其子資料夾內。
子資料夾與命名空間[]
該資料夾下可以有不同的子資料夾,以代表不同的命名空間。
舉個例子:執行函數sub/foo
就是在執行檔案[行为包]/functions/sub/foo.mcfunction
。
/reload
[]
執行此指令將重新載入已存在的和新增的函數。
成功結果[]
成功執行一個函數後,聊天欄中會出現「成功執行[数量]
個功能項」。舊版中的意見回饋資訊可能有所不同。
函數的語法[]
在.mcfunction
檔案中,一條指令應該占單獨一行,且開頭不能有斜槓/
。可以在一行開頭加上#
來進行注釋。
min_engine_version
[]
需要在包內的manifest.json
檔案中聲明函數適用的最低版本,此字段也叫做最小引擎版本。
該字段指定了執行指令的遊戲版本的版本號。例如,若/fill
指令在1.9.0
中發生了變動,如果你的行為包帶有"min_engine_version": [1, 8, 0]
,那麼在執行包含/fill
的函數時,它將視為舊版本的/fill
指令來執行(如同遊戲版本仍為1.8.0
)。
需要注意,manifest.json
的format_version
會影響min_engine_version
的讀取方式。當format_version
為1
時,min_engine_version
會被讀取為最高1.12.0
的最小引擎版本;當format_version
為2
時,min_engine_version
會被讀取為1.13.0
至目前版本的最小引擎版本。例如,如果填寫了"format_version": 1
和"min_engine_version": [1, 19, 50]
,那麼最小引擎版本將被讀取為1.12.0
而非1.19.50
。
manifest檔案範例[]
{
"format_version": 1,
"header": {
"description": "Function worldedit",
"name": "Function worldedit",
"uuid": "11111111-1111-1111-1111-111111111111",
"version": [1, 8, 1],
"min_engine_version": [1, 8, 0]
},
"modules": [
{
"description": "",
"type": "data",
"uuid": "22222222-2222-2222-2222-222222222222",
"version": [1, 8, 1]
}
]
}
簡易的函數範例[]
test.mcfunction
title @p title Test
setblock ~ ~2 ~ diamond_ore
say Test
# some comment
更複雜的函數範例[]
BuildHut.mcfunction ——這個函數會在你身邊建造一個簡易的木塊或石頭房子。注意:因為函數會依次執行逐行指令,玻璃窗和木門將會取代第一條指令放置的石頭牆。
fill ~-2 ~-1 ~-2 ~2 ~2 ~2 stonebrick 0 hollow
fill ~-2 ~-1 ~-2 ~2 ~-1 ~2 planks
fill ~ ~ ~2 ~ ~ ~2 wooden_door 1
fill ~-2 ~1 ~ ~-2 ~1 ~ glass
fill ~2 ~1 ~ ~2 ~1 ~ glass
fill ~ ~1 ~-2 ~ ~1 ~-2 glass
執行函數[]
函數會在一個遊戲刻內執行其中的所有指令,包括所調用的函數裏的指令。
限制[]
一個函數最多可執行10,000個指令(包括對其他函數的調用)。
指令[]
/function
[]
- 執行一次指定函數。
- 透過執行
/function
指令的執行者來執行函數中的指令。 - 用法
/function <文件路径/函数文件>
條件語句[]
現在的函數支持檢測的特定條件極為有限,因為函數按照順序執行指令,/testfor
等指令不能起到作用。要解決這個問題,可以設定函數的最低引擎版本為「1.19.9」或更高,然後使用類似於Java版中的條件語句/execute (if|nless) ...
。
歷史[]
基岩版 | |||||
---|---|---|---|---|---|
1.8.0 | 1.8.0.10 | 加入了函數功能。 | |||
? | 函數檔案現在只在行為包中可用。 | ||||
1.13.0 | 1.13.0.1 | 現在在指令列表中現在可以看到函數檔案。 |
版本 |
| ||||||
---|---|---|---|---|---|---|---|
開發 |
| ||||||
技術性 | |||||||
多人遊戲 | |||||||
特色功能 |
語言