【问题标题】:How to execute if there's a certain block within a radius如果半径内有某个块如何执行
【发布时间】:2021-01-12 15:06:07
【问题描述】:

我正试图弄清楚当某个半径或领域有黄色兵马俑时如何执行(例如/say hi),但我不知道该怎么做。 有谁知道吗?

【问题讨论】:

标签: minecraft


【解决方案1】:

使用 Minecraft 1.16,

Execute”命令有几个语法选项。您可以使用“如果块运行则执行”的形式

使用proper block name,我们可以得到:

execute if block 1015 63 989 minecraft:yellow_glazed_terracotta run say hi

这针对特定位置。

我不太清楚如何具体实现您的要求,但以下是我的想法:

语法提供了另一种形式“execute if blocks...”这种形式允许您按角选择范围,但必须与完全相同大小的第三个选择进行比较(只能指定角) .我认为区域必须完全相同,并且可能不允许在区域内的任何位置随机放置块。

另一种方法可能是使用不同的执行 if 命令来选择一个实体,并测试该实体的站立位置。

如果你在命令方块上放置一个按钮并将其设置为:

execute at @p if block ~ ~-1 ~ minecraft:yellow_glazed_terracotta run say hi

当玩家点击命令方块上的按钮时(显然他们必须在按钮的范围内才能按下它)它会检查@p下的方块-1是否是“yellow_glazed_terracotta”,它会运行打招呼.

@p 可以用 [distance=..3] 来修改,这意味着命令方块的目标玩家必须在命令方块的 3 格以内:

execute at @p[distance=..3] if block ~ ~-1 ~ minecraft:yellow_glazed_terracotta run say hi

所以,这有点像创建您正在寻找的范围。

一些sources 使用“在@s 处以@a 身份执行...”作为随时随地踩到某个街区的任何玩家的一种方式。也可以将其修改为一段距离,但似乎玩家需要站在与兵马俑的特定相对位置。

如果我找到更好的方法来实现这一点,我会跟进。

subreddit r/MinecraftCommands 有一个体面的社区,其中包含 Minecraft 命令和命令块。他们可能有更深入的了解。

如果我找到更好的方法来实现这一点,我会跟进。

编辑-此时我唯一能想到的另一件事是采用我建议的第一个命令,并对区域中的每个坐标重复它。如果兵马俑块是这些空间中的任何一个,它将运行 say hi 命令。

如果将所有这些命令行放入function 文件中,则可以在激活命令块时调用该函数。

【讨论】:

    猜你喜欢
    • 2012-08-06
    • 2022-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    相关资源
    最近更新 更多