函数(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 | 现在在命令列表中现在可以看到函数文件。 |
版本 |
| ||||||
---|---|---|---|---|---|---|---|
开发 |
| ||||||
技术性 | |||||||
多人游戏 | |||||||
特色功能 |
语言