之前我的数据包想做一个自定义合成(类似粘液科技那种),打个比方:
音符盒
发射器
我想要玩家右键点击音符盒的时候如果下面是发射器并且发射器里的物品符合配方就进行合成
数据包里用的进度检测玩家与音符盒互动
触发器:minecraft:item_used_on_block
事实上,这貌似也是唯一一个能检测玩家与方块右键的方法。
但是但是但是
虽然完成函数的玩家能执行函数
但是wiki上是这么写的
function:完成进度后执行的函数(以进度获得者为执行者,不支持函数标签)。
也就是没有传入触发地点而仅仅以获得者为执行者,没法检测玩家互动的音符盒具体位置(因为要检测配方的)
一开始我用的是execute if block ^ ^ ^0.01 …这样的形式
但是因为精度问题局部坐标^ ^ ^0~^ ^ ^6之间最大精度只能是0.0001(函数最大情况下一刻只能执行65536条指令)
也就是检测局部坐标^ ^ ^0.00001 ^ ^ ^0.00002的方法不可取且有漏洞。
漏洞就是你对着方块边角方向,卡好角度能因为精度而忽略掉这个方块。
问题来了,有没有别的方法能百分百检测玩家互动的方块呢?
(友情问答之前没有人发帖吗,那我就来提问第一个问题啦!)