破损的鞘翅
本帖最后由 破损的鞘翅 于 2019-8-19 01:46 编辑

如何在玩家准心所指方块坐标处执行命令?
例如,玩家看着一个距离玩家9格距离之内的方块,于是以玩家身份在该方块处执行命令
若看着的方块在离玩家9格范围之外则在玩家准心所指的方向9格远的位置执行命令


将方块替换成实体(如羊,牛),能否做到?
自己鼓捣了半天,没想出比较好的解决办法,有请大佬登场
另外,命令行数越少越好

xmdhs
本帖最后由 xmdhs 于 2019-8-19 11:26 编辑


现在可以了,但是不准我没办法。。
  1. execute unless entity @s[distance=..9] if entity @s[scores={1=0}] run setblock ~ ~ ~ stone destroy
  2. execute unless entity @s[distance=..9] run scoreboard players set @s 1 0
  3. execute if entity @s[distance=..9] store success score @s 1 if block ~ ~ ~ stone run setblock ~ ~ ~ stone destroy
  4. execute if entity @s[distance=..9] positioned ^ ^ ^0.2 run function b:b
复制代码

要用到函数,就像上面那样,还要新建一个记分板。

好吧,按照楼下所说,应该这样执行,现在非常准了。。

/execute as @a at @s positioned ~ ~1.62 ~ run function b:b

破损的鞘翅
xmdhs 发表于 2019-8-19 08:29
现在可以了,但是不准我没办法。。

要用到函数,就像上面那样,还要新建一个记分板。

能逐行解释下吗?看得不是很懂
其实我想要的就是获取F3中Looking at block那一行的坐标

xmdhs
破损的鞘翅 发表于 2019-8-19 10:02
能逐行解释下吗?看得不是很懂
其实我想要的就是获取F3中Looking at block那一行的坐标 ...

具体用的是这里的方法 https://www.mcbbs.net/thread-771638-1-1.html

你可以去看一看。具体解释我嘴有点笨,自己也不是很懂,说不出来。。

应该是利用 positioned  和局部坐标,每次把执行坐标向前推进 0.2 格,如果推进的位置是石头,就执行相应的指令,然后如果执行坐标离玩家超过了9格就停止循环。同时执行相应的指令。

记分板是用来记录在9格内有没有执行过指令,如果没执行过,就可以在9格的位置执行指令。

chyx
本帖最后由 chyx 于 2019-8-19 10:37 编辑
xmdhs 发表于 2019-8-19 10:11
具体用的是这里的方法 https://www.mcbbs.net/thread-771638-1-1.html

你可以去看一看。具体解释我嘴有点 ...

我觉得我的帖子里没用到记分板。你这里也没必要用

而且我的帖子里没有不准的问题,你抄过来就有了,显然是你自己的问题

chyx
xmdhs 发表于 2019-8-19 08:29
现在可以了,但是不准我没办法。。

要用到函数,就像上面那样,还要新建一个记分板。

画蛇添足

第一页 上一页 下一页 最后一页