mcfunction宏解说

宏()是什么?

在功能中,将命令行的一部分设置为未确定,并在执行函数命令时根据指定的NBT值确定未确定的部分,以执行函数的功能。

基础用法

假设有一个包含setblock命令的函数。

setblock ~ ~ ~ stone

很显然,以这种方式无法放置除石头以外的方块。

因此,我将尝试使用宏来将指定放置方块的部分设置成未确定状态。

$setblock ~ ~ ~ $(block)

マクロを使用する行では最初に$を付けます。
マクロで未確定にする部分は$(任意の名前)と書きます。
今回このマクロはblockという名前にしました。

このマクロが含まれたファンクションは次の様なfunctionコマンドから実行します。

function func:setblock {block:"glass"}

在被{}括起来的NBT中,有一个名为block的标签。

こうすることで$(block)の部分が{block:”glass”}のglassで確定させられます。

つまり

$setblock ~ ~ ~ $(block)

哦。

setblock ~ ~ ~ glass

由于转换,将会得到一个玻璃的安装结果。

通过使用NBT引用

在function命令中指定的NBT可以使用with语句来引用存储等。

data modify storage strg: setblk set value {block:"glass"}
function func:setblock with storage strg: setblk
$setblock ~ ~ ~ $(block)
setblock ~ ~ ~ glass

因此,现在可以通过存储在存储设备中的区块数据进行setblock等以前难以实现的操作。

“案例应用”

使用data命令动态更改列表的索引(指定第几个)。

$data get storage strg: list[$(index)]

使用function命令动态更改要执行的函数。

$function $(func)
广告
将在 10 秒后关闭
bannerAds