目線の先のプレイヤーから音を流したい

自分から5マス以内の目線の先にプレイヤーがいた場合そのプレイヤーから金床の音を流すというプログラムを作りたく以下のようなコードを書いたのですが目線の先にいなくても5マス以内にいればそのプレイヤーから再生されてしまって。。 解決方法がわかる方助けていただけると大変助かります Minecraft 1.20,1 [Skript] Skript Version: 2.7.3 (skriptlang-github) [Skript] - Skellett v2.0.9 [Skript] - skRayFall v1.9.28 [Skript] - SkQuery v4.1.10
set {_target} to null
loop all players:
if loop-player is not player:
if distance between player and loop-player <= 5:
if player can see loop-player:
set {_target} to loop-player
stop loop
if {_target} is not null:
play sound "block.anvil.land" at {_target}'s location for all players
send "&e&l%{_target}%の位置から再生しました。" to player
stop
else:
play sound "block.anvil.land" at {_target}'s location for all players
send "&e&lターゲットプレイヤーがいなかったため、自分の位置から再生しました。" to player
set {_target} to null
loop all players:
if loop-player is not player:
if distance between player and loop-player <= 5:
if player can see loop-player:
set {_target} to loop-player
stop loop
if {_target} is not null:
play sound "block.anvil.land" at {_target}'s location for all players
send "&e&l%{_target}%の位置から再生しました。" to player
stop
else:
play sound "block.anvil.land" at {_target}'s location for all players
send "&e&lターゲットプレイヤーがいなかったため、自分の位置から再生しました。" to player
2 Replies
tanoKun
tanoKun2w ago
たぶん player can see loop-player って"プレイヤーがループプレイヤーを見ることができるか" であって "目線を合わせているか"ではないと思います それと、skriptには target entity of %player% みたいな構文あったような気がするので それと、 between使えば、もっとスマートになると思います https://discord.com/channels/545926404785569793/1306111972353380392/1306111972353380392 あとこれ見てください
PAKOM
PAKOMOP2d ago
あ~なるほど、、、 ありがとうございます!
Want results from more Discord servers?
Add your server