原因:与其他Java版/基岩版特性页面的标题统一
注意:中文Wiki的移动页面需要在讨论批准后进行,大量移动由机器人完成。
请不要使用复制粘贴来移动页面,因为这样会丢失所有的编辑历史。
函数(Function)是一个允许玩家利用扩展名为.mcfunction
的文本文档编写和运行多行命令的功能。本条目主要讲述如何使用基岩版中的函数。
用法
函数的文本文件应处于行为包内的顶层文件夹“functions”([行为包]/functions
)或其子文件夹内。
子文件夹与命名空间
该文件夹下可以有不同的子文件夹,以代表不同的命名空间。
举个例子:执行函数sub/foo
就是在执行文件[行为包]/functions/sub/foo.mcfunction
。
/reload
注意:现在/reload
命令只重载游戏启动时便已存在的函数,这意味着启动后新加入的函数必须重启游戏才能重载。以后的游戏版本可能会修复。
成功结果
成功执行一个函数后,聊天栏中会出现“Executed [数量]
Command(s) from function [函数文件的路径]
.”在版本1.12.0则是“Successfully executed [数量]
function entries.”
函数的语法
在.mcfunction
文件中,一条命令应该占单独一行,且开头不能有斜杠/
。可以在一行开头加上#
来进行注释。
min_engine_version
需要在包内的manifest.json
文件中声明函数适用的最低版本。
该字段指定了运行命令的游戏版本的版本号。例如,若/fill
命令在1.9.0
中发生了变动,如果您的行为包带有"min_engine_version": [1, 8, 0]
,那么在运行包含/fill
的函数时,它将视为旧版本的fill命令来运行(如同游戏版本仍为1.8.0
)。
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 #这里是注释
更复杂的函数范例
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 <文件路径/函数文件>
历史
基岩版 | |||||
---|---|---|---|---|---|
1.8.0 | beta 1.8.0.10 | 函数功能加入游戏。 | |||
? | |||||
函数文件只在行为包中可用。 | |||||
1.13.0 | beta 1.13.0.1 | 在命令列表中现在可以看到函数文件。 |
版本 |
| ||||||
---|---|---|---|---|---|---|---|
开发 |
| ||||||
技术性 | |||||||
多人游戏 | |||||||
特色功能 |