凝ったダンジョンを作ろうとすると必ず必要になる技術、execute
バニラマイクラのコマンドであるが故にここのwikiに情報がないのでまとめておく。
executeって、そもそも何?
executeコマンドとは、通常はコマンドを発動した際その発動地点がコマブロ、もしくはコマンドを打ち込んだプレーヤーなのに対し、その発動地点を好きなモブの座標に出来るというものである。
簡単な例を示す。
普通
spawnmob 強い敵
のコマンドをコマンドブロックに入れて実行すると、そのコマブロの座標にモブがスポーンする。しかし、実際にダンジョンでやりたいのは「プレーヤーの座標にモブをわかせる」ということである。では、これはどうやって実現するのか。こういう時に役立つのがexecuteである。
例えばある範囲内(120 36 250を中心とした半径50の球の中)にいるプレーヤーのところにモブをわかせたいとする。この時、半径50の球の中にいるプレーヤー全部を以下のように指定する。
@a[x=120,y=36,z=250,r=50]
そして、executeの構文に代入する
execute @a[x=120,y=36,z=250,r=50] ~ ~ ~ spawnmob 強い敵
こうすることで、条件を満たしたプレーヤーの座標を基準にspawnmobコマンドが発動し、プレーヤーの座標にモブをわかせることが出来る。
executeの構文
executeは以下の構文をとる
execute <セレクター> ~x ~y ~z [実行するコマンド]
ここでセレクターは基準とするモブ、x y zはその基準の座標からの相対座標である。
executeの活用法
上の説明を読んでも、じゃあ一体executeはどういう場面で使うんだと疑問に思うかもしれない。そのため、以下にギミックとそれを実現するコマンドの例を示す
ボスの周りにいるプレーヤーにだけ盲目を付与する
execute @e[boss=ボスについてるalias] ~ ~ ~ effect @a[r=5] minecraft:blindness 10 1
全部のプレーヤーの上からメテオを落とす
execute @a[x=10000,y=100,z=10000,r=40] ~ ~ ~ gi meteoSmall dungeon:~,~10,~ dungeon,~,~,~ 10 1 闇 5
モブがプレーヤーの近くにいるならプレーヤーにデバフを与える
execute @e[type=Zombie,mob=mboalias] ~ ~ ~ effect @a[r=3] minecraft:poison 10 2