PVPって?
さて、みなさんはマインクラフトの中ではプレイヤー同士がバトルできる『PVP』というものがあるのをご存知でしょうか。
PVPのルールとしては、剣や弓、ブロックをうまく使いながら、自分が死なないように相手を倒したら勝ちというのが基本的です。
そんな中私は、装備やステージなどをカスタマイズしてオリジナルのPVPを作ることにはまってしまいました。
ということで、この記事では自分の作った、PVPに使えるコマンドを使ったアイテムなどをご紹介できたらなと思います。
矢が着地すると爆発する弓
まずは、『弓で矢を放ち、矢が地面に当たったらTNTが現れて爆発する』というものをご紹介しましょう。
しかし、ここで問題が起きてしまいます。
『地面』というのは、土なのか石なのか、はたまた他のブロックなのか…。『地面』に使われているブロックを特定することができません。ステージごとに1個1個『このブロックに触れたとき、TNTを出現させる』というコマンドを設定するのは大変面倒です。
そこで、どう解決するのかといいますと、
こう考えれば、『地面』のブロックを特定することなく簡単にコマンドを書くことができます!
『地面』というのはブロックであり空気ではないはずなので、「空気でないブロックに当たったならば、TNTを出現させる」ということです。
そうとわかったら、コマンド作成に入ります。
作成手順
まずはコマンドを作成するためにコマンドブロックを取得しましょう。コマンドブロックがないと何もできませんからね。
/give @s command_block
コマンドブロックを入手できたら、画像のようにコマンドブロックを設置してください。
その次に、画像のようにコンパレータ、リピーター、NOT回路と繋げてください。少し複雑ですが、間違えないように置いてくださいね。
ここから1つ目の画像の①〜④のコマンドブロックにコマンドを打ち込んでいきます。
まずは①から。『空気に矢が触れたときラピスブロックをおくよ』というコマンドです。
①/execute @s[type=arrow] ~~~ detect ~~-0.01~ air 0 setblock [1つ目の画像のラピスブロックの座標] lapis_block
次に②。『ラピスブロックを空気に置き換えるよ』というコマンドです。
②setblock [1つ目の画像のラピスブロックの座標] air
その次に③。『矢の場所にTNTを出現させるよ』というコマンドです。
③execute @s[type=arrow] ~~~ summon tnt
最後に④。『矢をキルするよ』というコマンドです。
④kill @s[type=arrow]
以上でコマンドの作業は終了です!
さて、ここで「なんでラピスブロックをわざわざ置いてるの?」と思った方もいるかもしれません。どうして①番目のコマンドブロックでラピスブロックをおくのか、解説しておきたいと思います。
実は、/executeコマンドで『エンティティの位置(今回では矢の位置)に空気があるよ』というのを検知後、何かコマンドを実行しなければならないのです。今回の場合、/setblockで『ラピスブロックをおくよ』としました。PVPに支障がなければ、ここはなんのコマンドを使っても構いません。
おわりに
ここまで読んでくださりありがとうございました。初めてのWordPressなので不安なところもありましたが、なんとか記事にすることができました。
このコマンドを改良して、『TNTをエンダークリスタルにする』というアイデアも出てくると思います。そのまま使うのもいいですが、自分で改良していくと自然に使い方が覚えられますし、なによりコマンドのアイデアの幅が広がると思いますので、是非挑戦してみてはいかがでしょうか。
コメント