本站文本内容除另有声明外,转载时均必须注明出处,并遵守CC BY-NC-SA 3.0协议。(转载须知
本站是中文Minecraft Wiki的镜像站,与Mojang AB、Gamepedia没有从属关系。(免责声明

函数(基岩版)

来自Minecraft WIKI
跳到导航 跳到搜索
页面贡献者 :
中文mcwiki机器人
Information icon.png
此特性为基岩版独有。
Move arrows.png

原因:与其他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.0beta 1.8.0.10函数功能加入游戏。
?
函数文件只在行为包中可用。
1.13.0beta 1.13.0.1在命令列表中现在可以看到函数文件。