Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
Advertisement
Disambig gray  本文章介绍的是基岩版中的函数。关于Java版中的函数,请见“Java版函数”。关于函数命令,请见“命令/function”。
Information icon
此特性为基岩版独有。

函数(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.jsonformat_version会影响min_engine_version的读取方式。当format_version1时,min_engine_version会被读取为最高1.12.0的最小引擎版本;当format_version2时,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.01.8.0.10加入了函数功能。
?函数文件现在只在行为包中可用。
1.13.01.13.0.1现在在命令列表中现在可以看到函数文件。

语言

Advertisement