在bbs发完后在这儿再发一遍真刺激(并不
一直以来,有几个问题困扰着一些CBer
那就是:
“怎么检测按钮是被谁按下的?怎么检测是谁激活的命令方块?”
在1.16之后,就可以借助进度触发器 minecraft:item_used_on_block 来检测按钮究竟是谁按下的了。
至于命令方块是谁激活的。。。既然能检测到按钮是谁按下去的,那检测命令方块是谁激活的好像就不难了吧。。。虽然好像用了这个方法后就不需要用命令方块了。。。
效果图:
原理:
Wiki上对进度触发器 minecraft:item_used_on_block 的触发条件解释为:
“玩家对方块使用物品时触发”
但实际上,只要玩家手持物品与方块交互即可满足此触发器,并非必须要使用。
甚至,当该触发器的条件 item 被空出时,空手(可以理解为手持air? 有待求证)与方块互动也会成功触发此触发器。
因此,依据我曾在bbs的某个帖子里给出的一些解释,在进度触发器里填写按钮坐标信息并匹配按钮的状态,即可做到检测玩家与按钮的互动,并奖励函数。由于进度奖励函数的执行者为完成进度的玩家,因此可以在奖励函数里使用 @s选择器来代指按下按钮的玩家。
一直以来,有几个问题困扰着一些CBer
那就是:
“怎么检测按钮是被谁按下的?怎么检测是谁激活的命令方块?”
在1.16之后,就可以借助进度触发器 minecraft:item_used_on_block 来检测按钮究竟是谁按下的了。
至于命令方块是谁激活的。。。既然能检测到按钮是谁按下去的,那检测命令方块是谁激活的好像就不难了吧。。。虽然好像用了这个方法后就不需要用命令方块了。。。
效果图:
原理:
Wiki上对进度触发器 minecraft:item_used_on_block 的触发条件解释为:
“玩家对方块使用物品时触发”
但实际上,只要玩家手持物品与方块交互即可满足此触发器,并非必须要使用。
甚至,当该触发器的条件 item 被空出时,空手(可以理解为手持air? 有待求证)与方块互动也会成功触发此触发器。
因此,依据我曾在bbs的某个帖子里给出的一些解释,在进度触发器里填写按钮坐标信息并匹配按钮的状态,即可做到检测玩家与按钮的互动,并奖励函数。由于进度奖励函数的执行者为完成进度的玩家,因此可以在奖励函数里使用 @s选择器来代指按下按钮的玩家。