接下来我们新建2组计分板,记录2个向量:offset和position /scoreboard objectives add offsetX dummy /scoeboard objectives add offsetY dummy........类推 offset记录了实体到真正要追踪的目标的距离,position记录实体位置。 接下来,我们要登记每个实体的位置到position上 /execute as @e store result score @s positionX run data get entity @s Pos[0] *此处用到1.13新特性 /execute as @e store result score @s positionY run data get entity @s Pos[1] ...类推 上面的指令我来解释一下(可能有人不懂1.13)/execute as @e以为让所有实体执行之后的命令(还没完)store result score @s positionX也是execute的一部分,意为改变指令执行者计分板positionX的值为run后面那段指令的返回值。data get entity @s Pos[0]就是获取指令执行者的Pos标签的第一个元素(就是x轴位置)(返回值就是这个!),这些操作会使位置的小数部分被去掉。
等等,非教程部分: 你也可以通过execute改变Target来做非斜线的子弹。 指令: /execute as @e[type=shulker_bullet] store result entity @s Target.? int 1 run scoreboard players get @p position /execute as @e[type=shulker_bullet] store result entity @s Target.L或M long 1 run data get entity @p UUIDLeast或UUIDMost