916497256
背景:
题主准备开养老生存建筑主题的周目,
为了处理生电以及村民交易所带来的,批量生产的贬值问题。
准备自定义各项原版生存获取资源的方式。
遇到了以下问题暂无方案解决。

选择最优答案根据以下两个问题(源码和简单注释要有):
定位玩家当前指向的实体/方块;
玩家向当前指向方向传送一格;

(一些猜想)

1、右键生物触发成就机制只能靠村民,之前玩小地图无尽地城的商店,用隐藏村民手持物品来显示物品,用村民名字来显示价格

2、必须靠钓竿,食物才能对着空气,触发指令?



Baxter
可以通过实现追踪来进行实现。
execute有个子命令anchored(wik解释为:存储命令环境中执行当前命令的实体的脚到眼睛的距离。在使用局部坐标时或者使用朝向命令时更改此命令的基准点为实体脚或眼睛的位置。默认为脚的位置。)

首先你需要准备一个数据包,在ray函数中写入以下内容
  1. execute if entity @p[distance=..5] run particle composter ~ ~ ~ 0 0 0 0.25 1 normal
  2. execute if entity @p[distance=..5] positioned ^ ^ ^0.1 run function minecraft:ray
  3. #不断(执行位置)向前递归
复制代码


然后单独执行一次
execute as @p anchored eyes positioned ^ ^ ^ run function minecraft:ray
就可以实现了。

以上是解释实现追踪内容的示范,如果你需要检测玩家向前朝向的实体,在视线追踪中加入一条检测实体并跳出循环即可。比如这样,这是对ray函数的修改
  1. execute if entity @p[distance=..5] positioned ~-1 ~-1 ~-1 if entity @e[tag=target,dx=1,dy=1,dz=1] run tag @s add stop
  2. execute if entity @p[distance=..5] positioned ~-1 ~-1 ~-1 if entity @e[tag=target,dx=1,dy=1,dz=1] run tp @s ^ ^ ^1
  3. execute if entity @p[distance=..5,tag=!stop] positioned ^ ^ ^0.1 run function minecraft:ray

  4. tag @s remove stop
复制代码

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