top of page

マルチ不可能を可能にする魔法のコマンド!

  • 執筆者の写真: 芹工房 ソウニャン
    芹工房 ソウニャン
  • 2020年6月30日
  • 読了時間: 4分

今回紹介するコマンドは、マルチ非対応のコマンド(一部)を対応させるため

一工夫

これを紹介していきたいと思います!

ree

まずは、一例として作ったこちらのコマンドを見てみましょう!

ree

こんな感じでマップを使用すると後方爆発でジャンプするコマンドを作ってみました!


ですが、

ree

ちょっとわかりずらいですが、マルチプレイが不可なコマンドなので、

おじさんが使ったときに自分も爆発してしまいます。

※めっちゃわかりずらいけど、撮影者も爆発してます。


これをどうにかしてマルチプレイ可能にしたい!


それを可能するために必要な仕組みを解説していきます。

まずはこちらを見てください

(タグコマンドについてそこそこ理解があれば飛ばしても大丈夫です)

ree

めちゃくちゃわかりやすくするために超簡単なコマンドを例にして解説します。

エフェクトコマンドを1pだけに使用したい場合、


このままセレクターを@aのままでコマンドを実行すると…

ree

そうですよね、

@aというセレクターはプレイヤー全員を指定するので

2~4pにも効果が付いてしまいます


それでは@aのままで限定して効果を付与したい場合

タグを付与し、それをセレクターで指定させると

指定したタグを得たプレイヤーのみを限定することができます。

詳しく理解したい人はググっちゃってください!


ちなみに

/tag @a(セレクター) add (つけたいタグ名)

でタグをつけられます

ree

このようにタグコマンドを使用して1pだけにタグ「A」を追加します。


次にエフェクトコマンドを使用するときにセレクター因数を工夫するようにしてみると…

ree

/effect @a[tag=A] speed

というコマンドを使用すると

すべてのプレイヤーの中からタグ「A」を持っている人のみを指定してエフェクトがかかります。なのでこの場合は、

1pだけにタグ「A」が付いているので1pだけスピードエフェクトが付きます


こういったタグの使い方をするとプレイヤーを限定してコマンドを実行することができます。

次に本題ですが

問題のマルチプレイが不可能

なコマンドを見てみましょう

ree

左側の4つのコマブロタワーを見てみます(条件付けをしっかり見てね)

※下のコマブロから

ree

/clear @a map

作成した地図を削除するコマンド

これが実行できたら以下のコマンドが条件付けで実行されます。


ree

/give @a emptymap

未作成の地図を与えなおすコマンド


ree

/effect @a resistance 1 255 true

1秒間無敵になれるコマンド

爆発を使用するのでこれがないと飛べない


ree

/execute @a ~~~ summon ender_crystal ^^-1^-1 minecraft:crystal_explode

プレイヤーの下後方に即時爆発するエンダークリスタルを召喚するコマンド

これの爆発衝撃でプレイヤーを飛ばす仕組みです


しかし!

このままではこのような仕様になってしまいます…

ree

一人が地図をつかっても皆爆発ししてしまいますね…

つまりこれはマルチ不可のギミックとして扱われますね。

そうこれをどうにかして地図を消費したプレイヤーだけを指定したい

でも/clearコマンドの仕組み上削除した人のみに出力をさせるのは不可能…


それを可能にさせたのは右の2つコマブロが増えたコマンドタワーです

ree

コマンドの構文は下からこんな感じになっています。(条件付け気を付けてね)

ree

/tag @r add F

これはプレイヤーの中から一人をランダムにタグ「F」を追加するコマンド。


ree

/clear @a[tag=F] map

タグを持っているプレイヤーから作成済みのマップを削除する。これが実行できたら下記の3つのコマンドが実行される。


ree

/give @a[tag=F] emptymap

タグを持っているプレイヤーに未作成のマップを与えなおすコマンド。


ree

/effect @a[tag=F] resistance 1 255 true

無敵コマンド


ree

/execute @a ~~~ summon ender_crystal ^^-1^-1 minecraft:crystal_explode

プレイヤーの下後方に即時爆発するエンダークリスタルを召喚するコマンド


ree

/tag @a remove F

プレイヤーからタグ「F」を剥奪するコマンド


このランダムにタグを与えていくコマンドがどういった仕組みでマルチ化を可能にしているのかを解説しましょう。


ree

まず、ランダムなプレイヤー一人にタグが追加されます。


ree

もしタグを持っているプレイヤーが地図を使用した場合、条件付けで爆発コマンドが起動します。


ree

一通りのコマンドが実行された後はいったんタグを削除します。


ree

そして次のプレイヤーにランダムにタグが付きます(複縦することもあるけど大丈夫)


ree

そのプレイヤーがが地図を使用した場合、条件付けで爆発コマンドが起動します。


ree

タグが削除されて次のプレイヤーに…


というサイクルかなりの高速で実行されるために、人間である我々の感覚では

それぞれのプレイヤー個別にコマンドが用意されているような感じになるので

実質ギミックをマルチで対応させることができるといった仕組みになります!


ree

これで撮影者が地図を使って爆発してもあそこにいるおじさんは爆発しませんね!

マルチ化成功!

※スクショのセンスがシャバくて申し訳ねえ…もう少し努力するわ

皆さんは解説読んで理解いただけたでしょうか!

もしこのギミックが参考になりましたらハートマークつけていただけるとモチベになります!

ree

この記事を気に入ったらSNSで拡散とかもしてくれると飛ぶように喜びます!

youtubeも頑張って動画出しているので見てみてね!



 
 
 

コメント


bottom of page