我对《我的世界》命令块比较陌生。如果新玩家加入我的服务器,我想给他们一些物品,所以我使用了一个记分板,如果他们是新玩家,则值为 0;如果他们以前曾在我的服务器上,则值为 1。所以我使用了一个始终处于活动状态的无条件重复命令块,如果分数@sfirst_time匹配0,则命令执行为@a。我检查过这个工作正常。我在该块中放置了一个条件始终活动的链命令块,其中命令为 @s Stone 1,输出为“找不到玩家”。为什么?
我试图在互联网上找到一些东西,但没有找到很远
选择器
@s
指的是自身,这意味着命令块正在自身运行/give
,但它不能这样做,因为它不是玩家。
此外,对于您的场景,这是您可以做的一件事(无条件重复命令块后跟条件链命令块,两者始终处于活动状态):
give @a[tag=!first_time] <item>
tag @a add first_time
您还可以使用数据包功能一次完成此清理工作(并且您可以使用@s)。
数据包功能(
firsttimeitem.mcfunction
):
give @s <item>
tag @s add first_time
重复命令块(或数据包中的
tick.mcfunction
,您的偏好):
execute as @a[tag=!first_time] run function <yourdatapacknamespace>:firsttimeitem
注意:您需要替换三角括号中的任何内容。
另外,如果看起来语无伦次,很抱歉。我超前了。