函数是包含多行指令的数据包文件,其文件扩展名为“.mcfunction”。
以及以标签形式运行的“标签函数”,在标签函数中,可以添加多个函数,并同时运行。
函数与连锁型命令方块较为类似;不同之处在于函数执行命令时更快,且不会受到命令方块内最大输入字符数 25565 的限制,但是同样受到链命令最多执行次数的限制。
宏
此功能为Java版独有。
该功能在 Minecraft 正式版 1.20.2 中被正式地加入到游戏当中。
arguments 参数
arguments 参数是宏命令执行的必须参数。
该参数由 SNBT 字段组成。
示例:
{arg1: 10.0f, arg2: "string", arg3: ["list","element1","element2"]}
宏函数
包含宏行的函数可以被称为宏函数。
宏函数的调用在原有 /function 命令的基础上,arguments 参数必须存在。
/function <macro_function> <arguments>
示例:
/function foo:bar1 # 普通函数
/function foo:bar2 {arg1:"value"} # 宏函数
宏行
当函数中的某行命令以美元符号($)开头,该行为宏行。
$macro ...
当宏行内出现 $(key) 时,将尝试引用 arguments 中 SNBT 字段中相应键对应的值,游戏都尝试将宏行中的 $(key) 替换为对应的具体值,最终得到一个确定的命令并执行。
$macro $(arg1) $(arg2) ...
以下为一个示例:
游戏内调用一个宏函数 foo:bar
function foo:bar {key1: "宏命令", key2: 10, key3: "冗余参数,不被调用而被跳过"}
foo:bar 函数内容
say 这是一条普通命令
$say 这是一条$(key1)!
$teleport @s ~ ~$(key2) ~
游戏进行宏替换后
say 这是一条普通命
say 这是一条宏命令!
teleport @s ~ ~10 ~
资料分类: | 名词术语 |