二つ重なった半ブロックを片方だけ壊したい

https://www.youtube.com/watch?v=vbZPv5aW9SQ&ab_channel=Air 0:58~ double slab を壊したときに、ブロックの上の方を壊したらbottom slabが置かれて、下のほうを壊したらupside-down slabが置かれる、というのを実現したいです。 ブロックを壊したときに、クリックした場所(見ていた場所)がブロックの上か下かを調べるのってどうすればいいですか?
Air
YouTube
Minecraft-建築補助Plugin「Iris ToolBox」【PV】
※This video is Avaliable 1080p! ☆良ければチャンネル登録、高評価をお願いします! - Iris ToolBox (Iristool)は、多くの創作者に向けて作られた多機能建築補助Pluginです。 このツールは、「バニラを邪魔しない」をコンセプトに作られ、 建築以外の配布ワールド、マップ製作など 様々な場面で快適な創作環境をお手伝いします! *このPlugin(script)は、前提Plugin「Skript」が必要です。(thank you for Bensku, Skript Developer!) =====================[Links]===================== 【Download Link】 https:...
3 Replies
何か
何か16mo ago
破壊したブロックに対してプレイヤーの視点の位置からレイトレースして得られた衝突面のy座標の小数点以下の値が0.5以上かそれ未満で場合分けします
on break:
if "%event-block%" starts with "double":
set {_v} to vector from yaw yaw of player and pitch pitch of player
set vector length of {_v} to 0.05
set {_pos} to eye of player
loop 800 times:
set {_pos} to {_pos} ~ {_v}
if block at {_pos} is type of event-block:
set {_float} to y-pos of {_pos} - floor(y-pos of {_pos})

if {_float} >= 0.5:
send "upper"
else:
send "lower"

stop loop
cancel event
on break:
if "%event-block%" starts with "double":
set {_v} to vector from yaw yaw of player and pitch pitch of player
set vector length of {_v} to 0.05
set {_pos} to eye of player
loop 800 times:
set {_pos} to {_pos} ~ {_v}
if block at {_pos} is type of event-block:
set {_float} to y-pos of {_pos} - floor(y-pos of {_pos})

if {_float} >= 0.5:
send "upper"
else:
send "lower"

stop loop
cancel event
レイトレースの幅によって精度は変わります
何か
何か16mo ago
gladiolus8789
gladiolus8789OP15mo ago
できました!!ありがとうございます https://gyazo.com/5fef3855de8f74397012309aea9ffd21
Want results from more Discord servers?
Add your server