- execute as @a at @s run setblock ~ ~ ~ oak_sign{Text1:"[{"selector":"@s"}]",Text2:"[{"text":" "}]",Text3:"[{"text":" "}]",Text4:"[{"text":" "}]"} destroy
以上代码并不能在脚下生成一个写着自己名字的牌子
@s 换成 @p或者@a 都可以正常显示选择到的玩家
想知道原因,如何实现用execute指令在牌子上显示执行命令的玩家的名字,谢谢
本帖最后由 ⊙u⊙ 于 2020-1-30 17:58 编辑
别说是setblock,就算是用give玩家自己放下也是没有@s的。
牌子里的选择器nbt分数等记得是在放下时处理,因此牌子自身为执行者,是方块,非实体,用block能选择到,selector @s自然就选择不到了
执行function,function内给执行玩家自己一个标签,然后setblock内牌子的selector用@a[tag=]获取该标签玩家,function最后清除该玩家标签
另外你的命令貌似没转义
不听不听
别说是setblock,就算是用give玩家自己放下也是没有@s的。
牌子里的选择器nbt分数等记得是在放下时处理,因此牌子自身为执行者,是方块,非实体,用block能选择到,selector @s自然就选择不到了
执行function,function内给执行玩家自己一个标签,然后setblock内牌子的selector用@a[tag=]获取该标签玩家,function最后清除该玩家标签
另外你的命令貌似没转义
不听不听
⊙u⊙ 发表于 2020-1-31 00:25
别说是setblock,就算是用give玩家自己放下也是没有@s的。
牌子里的选择器nbt分数等记得是在放下时处理, ...
感谢感谢