top of page
検索

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

執筆者の写真: 芹工房 ソウニャン芹工房 ソウニャン

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

一工夫

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


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

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


ですが、

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

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

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


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


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

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

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

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

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


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

そうですよね、

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

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


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

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

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

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


ちなみに

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

でタグをつけられます

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


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

/effect @a[tag=A] speed

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

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

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


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

 

次に本題ですが

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

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

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

※下のコマブロから

/clear @a map

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

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


/give @a emptymap

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


/effect @a resistance 1 255 true

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

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


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

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

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


しかし!

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

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

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

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

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


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

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

/tag @r add F

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


/clear @a[tag=F] map

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


/give @a[tag=F] emptymap

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


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

無敵コマンド


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

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


/tag @a remove F

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


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


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


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


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


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


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


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


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

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

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


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

マルチ化成功!

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

 

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

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

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

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



 
 
 

コメント


bottom of page