(以下、マイクラ)では、コマンドブロックを使ってプレイヤーに効果を与えることができます。たとえば、指定した場所にブロックやアイテムを生成したり、ステータスの変更を行ったりできます。しかし、今回紹介するのは、プレイヤーの視線の先にエフェクトとダメージを与えることができるコマンドです。
実際にプレイしている時に、プレイヤーの視界に収まらないモンスターを倒したいと思ったことはありませんか?それを実現するために、今回は新しいexecuteコマンドを使って、プレイヤーの視線の先にあるモブにダメージを与え、同時にエフェクトを付与する方法を紹介します。
まず最初に、マイクラで使用するコマンドブロック(チェーン型)を2つ準備します。実行者の名前を “Player1” とすると、以下のようなコマンドを入力します。
【コマンドブロック1:ダメージ処理】
execute @e[name=Player1, r=4] ~ ~ ~ execute @p[r=10] ~ ~ ~ execute @e[type=!Player,r=1] ~ ~ ~ effect @p[r=1] jump_boost 1 1, allow @e[type=!Player, r=1] ~ ~ ~ effect @p[r=1] instant_damage 1 1
まずはこのコマンドで、プレイヤーの周り(r=4)で実行者(Player1)を探します。そして、指定した範囲(r=10)で実行者(@p)を探し、そのプレイヤーの視線の先(r=1)にいるモブ(@e)に対して、エフェクト(jump_boost)を付与します。また、同時にそのモブに対して、ダメージ(instant_damage)を与えるように設定しています。
ここで重要なのは、”type”や”name”を使って、対象を絞り込んでいるところです。”type”では、実行者(Player1)やプレイヤー(@p)を除外することで、誤って自分にダメージを与えることを防いでいます。また、”name”では実行者(@e[name=Player1])を指定することで、実行者自身にはエフェクトを付与しないようになっています。
【コマンドブロック2:エフェクト処理】
execute @e[name=Player1, r=4] ~ ~ ~ effect @p[r=10] jump_boost 0,despawn @p[r=10]
次に、エフェクトを付与するコマンドを入力します。先ほどのコマンドブロックでエフェクトとダメージを処理する範囲と同じ(r=4)に設定し、実行者(Player1)を探します。そして、指定した範囲(r=10)でプレイヤー(@p)を探し、エフェクト(jump_boost)を付与します。この時、効果時間”0”を設定することで、エフェクトを即時で取り除いています。
また、”despawn”を使って、プレイヤー自身にエフェクトを付与してしまうことを防いでいます。
これらのコマンドを用いることで、プレイヤーの視線の先にあるモブに対してダメージを与え、同時にエフェクトを付与することができます。これを応用することで、プレイヤーの視界から外れた場所にいるモブに対しても、効果を与えることができるようになります。
このコマンドを使えば、例えばプレイヤーの視界に入らないような高さにいるモブを落としたいときや、建築中の建物外でステータスを変更したいときなどにも活用することができるでしょう。
しかし、注意点として、このコマンドを使う場合、プレイヤーの”視線の先”という条件がとても重要です。プレイヤーが実際に見ている方向とは異なる場合、意図しない対象にダメージやエフェクトを与える可能性があります。そのため、コマンドを使う前にはよく考えて使うことが重要です。
今回は新しいexecuteコマンドを使って、プレイヤーの視線の先にあるモブに対してダメージとエフェクトを与える方法を紹介しました。このコマンドを使って、より面白い冒険や建築を楽しんでみてはいかがでしょうか。

コメントを書く