矢のブロック着弾検知
ブロックに刺さった矢にタグt.landed_arrowを付けるコマンド
矢がブロックに刺さっているかどうかが検知できる
簡易版(1cmd)
code:簡易版
/execute as @etype=arrow at @s unless block ~-0.01 ~-0.01 ~-0.01 ~ ~ ~ 0 200 0 all run tag @s add t.landed_arrow
判定のための空間が必要
ブロックが無く(全て空気で)、サイズが2×2×2
/tickingareaなどで常時読み込む必要あり
上のコマンドでは、(0, 200, 0)から(1, 201, 1)の範囲
厳密版(5cmd)
code:厳密版
/execute as @etype=arrow run summon arrow 0.0 1000.0 0.0
/tag @etype=arrow, x=0, y=1000, z=0, r=0.1, tag= add t.landed_tester
/execute at @etype=arrow, tag=!t.landed_tester run tp @etype=arrow, tag=t.landed_tester, x=0, y=1000, z=0, r=0.1, c=1 ~ ~-0.01 ~ true
/execute as @etype=arrow, tag=!t.landed_tester at @s unless entity @etype=arrow, tag=t.landed_tester, r=0.1 run tag @s add t.landed_arrow
/kill @etype=arrow, tag=t.landed_tester
判定のための矢をスポーンする場所を、/tickingareaなどで常時読み込む必要あり
上のコマンドでは、(0, 1000, 0)の位置