为什么我的 minecraft location_check 谓词不运行?

问题描述

我遵循了几个教程,并让“player is_sprinting:true”谓词起作用。所以我知道我的新数据包正在运行。

在任何地方都没有位置谓词的例子。视频、维基,什么都没有。

我转到生成器并生成整个谓词,导出整个文件,将其放入正确的文件夹中,当我在我的 tick.mcfunction 中键入路径时,Visual Studio Code 正确链接到它(最终在不得不创建一个新项目并重新启动我的计算机以使新项目自动填充到我的旧项目的路径......出于某种原因)。

它不会检测玩家何时在 0 0 0 的 100 之内。它什么都不做。这是我尝试过的:

{   
    "condition": "minecraft:entity_properties","entity": "this","predicate": {     
        "type": "minecraft:player","location": {       
            "position": {         
                "x": 0,"y": 0,"z": 0       
            }     
        },"distance": {       
            "absolute": {         
                "min": 0,"max": 100       
            }     
        }   
    } 
} 

还有……

{
    "condition": "minecraft:entity_properties","max": 100       
            }     
        }   
    } 
} 

还有……

{
    "condition": "minecraft:location_check","predicate": {     
        "position": {       
            "x": {         
                "min": -100,"max": 100       
            },"y": {
                "min": -100,"max": 100
            },"z": {         
                "min": -100,"max": 100       
            }     
        }   
    } 
} 

全部结合:

execute as @a if predicate test:homezone run say hi 

或者:

execute as @a[predicate=test:homezone] run say hi 

我的玩家站在一张新地图上,在 0,0 处,没有其他功能在运行。我有什么问题?

解决方法

当使用谓词作为目标选择器参数时,您需要具有命名空间 ID。除此之外,我不太确定。如果那没有帮助,请尝试询问官方的 minecraft 命令不和谐服务器,他们对这些东西很好。 https://discord.gg/QAFXFtZ

例如:

@e[predicate=foo:bar]

不仅仅是

@e[predicate=bar]
,

位置很奇怪,我在超平坦的空隙中测试

您在带有 location_check 的第三个谓词中的内容几乎与我的内容相同。

{
    "condition": "minecraft:location_check","offsetX": -20,"offsetY": 0,"offsetZ": -20,"predicate": {
        "position": {
            "x": {
                "min": 0,"max": 2
            },"y": 4,"z": {
                "min": 0,"max": 2
            }
        }
    }
}

这是我在命令方块中运行的

execute as @p[predicate=test:area] unless predicate test:sneaking run function test:null

除非偷偷摸摸,否则这会检测到 20 4 20 到 21 4 21 的玩家。