【问题标题】:Minecraft datapack check if in block (portal)Minecraft 数据包检查是否在块中(门户)
【发布时间】:2022-09-27 11:53:01
【问题描述】:

所以这是 100% 的 Minecraft 数据包的东西......(编程语言根本不相似) 我有一个功能来检测我是否在门户中

execute at @a if block ~ ~ ~ blue_stained_glass_pane run say inPortal

看起来像

所以我想知道是否有可能以某种方式将此函数更改为谓词

或者,如果有办法将其更改为单独的函数并编写

execute as @a if function???:inportal run...

对任何其他检测它们是否在门户中的方法发表评论也很酷。

    标签: minecraft minecraft-commands


    【解决方案1】:

    设置为谓词不是很实用,只会导致更多问题!这样做更简单,对您来说效果很好!

    【讨论】:

      【解决方案2】:

      和 RoyalQuack 一样,我不推荐谓词,但如果你使用 execute at @a if block ~ ~ ~ blue_stained_glass_pane run ...,你可能会遇到一些问题。 除非你只在地图上的一个地方有这个块,否则你可能会在其他地方运行门户。

      我建议改用位置检测:

      execute as @a[x=XX,y=YY,z=ZZ,dx=0,dy=1,dz=0] run function sys:yourfunction (当然根据您的位置更改 XX YY ZZ)

      使用as 而不是at 允许在你的函数中使用@s,这很方便。你的功能示例:

      tp @s 10 25 10 particle flame X Y Z 0 0 0 0.02 force @a title @a [{"selector":@s, "text":" used a portal!", "color": "red"}]

      如果您有多个门户需要执行相同的操作,而不是使用固定位置并且必须在每个门户上重做不同的命令,您可以使用一个不可见实体放置在每个门户上并根据不可见实体进行检测: execute at @e[type=marker,tag=portal] as @a[dx=0,dy=1,dz=0] run function sys:yourfunction

      在这里,它将为带有门户标签的标记实体上的所有玩家运行 yourfunction 函数。

      【讨论】:

        猜你喜欢
        • 2018-10-03
        • 2019-05-03
        • 2023-01-24
        • 2013-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-29
        • 2021-06-05
        相关资源
        最近更新 更多