QWERTY770
如图,我输入了命令
  1. /schedule function bdhp:special/rail/add_redstone_block 4s
复制代码



该function的内容是:
  1. setblock ~ ~2 ~ minecraft:redstone_block
复制代码


图中,淡蓝色羊毛的位置为世界出生点

然后命令执行了,4秒后:


红石块在世界出生点上方2格生成了!函数错在哪里了?
如何才能让这个红石块在我头上2格生成呢?

版本:Java版 1.16.5

debug.log没有任何有价值的信息




来自群组: OverRun 组织

钠钠钠镓
/schedule执行的函数,是由服务器执行,执行坐标是世界重生点,这是设定

QWERTY770
512285574 发表于 2021-4-28 22:13
由/schedule执行的函数,是由服务器执行,执行坐标是世界重生点,这是设定

所以说怎么让它在命令执行者处执行

LxAs
本帖最后由 LxAs 于 2021-4-29 01:24 编辑
QWERTY770 发表于 2021-4-28 22:24
所以说怎么让它在命令执行者处执行

【错误内容已删除】

钠钠钠镓
QWERTY770 发表于 2021-4-28 22:24
所以说怎么让它在命令执行者处执行

只能是,schedule执行的函数,内容为execute as……,即再一次修改执行者
建议是把原本处在schedule内的指令放到新的函数内,schedule内使用execute as …… run function

xwjcool
本帖最后由 xwjcool123 于 2021-4-29 15:42 编辑

/schedule是由服务器在出生点执行。这是目前的设定,以后是否会改变尚不明确。
可以在所schedule的函数里面套一层
  1. execute at <实体或坐标> run 真正希望执行的命令或函数
复制代码

来改变执行坐标

尸先peng
function内容改成:
execute at @e run setblock ~ ~2 ~ minecraft:redstone_block
即可

QWERTY770
尸先peng 发表于 2021-4-29 20:19
function内容改成:
execute at @e run setblock ~ ~2 ~ minecraft:redstone_block
即可

我的意思是在执行者头上生成红石块,而不是每个实体头上都生成

尸先peng
QWERTY770 发表于 2021-5-1 12:55
我的意思是在执行者头上生成红石块,而不是每个实体头上都生成

做不到,schedule没有办法检测执行者