Minecraft【Java版/統合版】
ミニゲーム!1vs1PVPバトル。

コマンドブロックとスコアボードを使って、 プレイヤー対プレイヤーの対戦装置を作成。
Java版「1.15.2」、統合版「v1.14.3」対応。

統合版はWindows10、iOSで動作確認しました。

 

 

ミニゲーム1vs1PVPバトル。

ロビーで赤か青のボタンを押して、試合にエントリーします。
待機室に移動して対戦相手を待ちます。
待機時間(60秒)で対戦相手が来ない場合は、ロビーへ戻ります。
エントリーランプが点灯中は、同じ色の待機室には入れません。

待機中に対戦相手が来たら、試合会場に移動します。
階段横に装備入りのチェストが現れるので、急いで装備します。
試合開始の合図で対戦スタート!

対戦中はサバイバルモード、制限時間は5分!
50秒ごとに3回ドロッパーからポーションが出現。
相手を倒すか試合会場から出るか、5分経つと試合終了。
勝敗結果を表示してロビーに戻ります。

 

完成サンプル動画

統合版v1.14.3マルチプレイ時のスキンバグで、相手と同じスキンになっています。

 

1vs1PVPバトル装置の作成手順。


目次

1.使用コマンド
・共通コマンド
2.全体配置図
・装置を作る前に
3.試合会場と待機室
4.試合会場の範囲
5.ロビー
・ロビー装置 表 ・ロビー装置 裏
6.AND回路
・タイマー用アーマースタンド
7.各種スコアボード
8.待機タイマー
・表示用タイマー ・計算用タイマー ・条件でアクション
9.試合準備装置
10.バトルタイマー
・表示用タイマー ・計算用タイマー ・条件でアクション
11.アイテム乱数装置
12.アイテム装置
・team1装備キット装置 ・team2装備キット装置 ・ポーションアイテム装置 ・バトル開始合図
13.勝敗判定装置
・Java版 ・統合版 ・Java版、統合版共通
14.引き分け合図
15.リセット装置2
・統合版
16.リセット装置1

※一部Java版と統合版のコマンドに違いがあるので気をつけてください。

 

使用コマンド。

1vs1PVPバトル装置以外で使用してるコマンドです。説明時には省略します。
コマンドブロックの入手。

/give @p command_block

コマンドログを消す。※「false」を「true」に変更すると、ログを表示します。

/gamerule commandBlockOutput false

 

共通コマンド

よく使う共通のコマンドです。特殊な場合を除き、説明時には省略します。
「~ ~ ~」にはそれぞれの座標を入れます。
cloneコマンド。指定した範囲を複製します。

clone ~ ~ ~ ~ ~ ~ ~ ~ ~

fillコマンド。指定した範囲を空気ブロックに置き換える。

fill ~ ~ ~ ~ ~ ~ air

コマンドで装置のオン・オフする時に使います。説明時には省略します。
レッドストーンブロックを置く。

setblock ~ ~ ~ redstone_block

空気ブロックで、他のブロックを消す。

setblock ~ ~ ~ air

 

全体配置図。

1vs1PVPバトル装置の全体配置図です。必要なものを確認しておきます。
装置を作る前に

説明しやすいように装置は広げて作ってあります。
実際はなるべくコンパクトに作ると良いです。
コマンドブロックが試合会場から離れすぎると、うまく動作しない場合があります。

□コマンドブロックの設定(指定がない場合)
青色のコマンドブロックは、「チェーン」「常時実行(常にアクティブ)」。
紫色のコマンドブロックは、「リピート(反復)」「動力が必要(レッドストーンが必要)」。
※一部動作が異なるコマンドブロックがあります。

一部のコマンドブロックで「リピート(反復)」「常時実行(常にアクティブ)」を使っています。
テレポートコマンドを繋げると動けなくなる場合があるので、気をつけてください。

□テレポートの無限ループになった場合
統合版は、設定→ゲームからコマンドブロックの有効無効を切り替えが出来ます。
Java版は少し手間がかかります。
他のアカウントからワールドに入り、奇跡的にコマンドブロックを停止する。
マルチサーバーにワールドを移動してコマンドブロックの有効無効を切り替える。

 

試合会場と待機室。

試合会場は壊れても戻せるように、cloneコマンドを作っておきます。
待機室は移動出来ないようにガラス等で囲み、試合会場の外に作ります。

 

試合会場の範囲。

試合会場の範囲を決めます。
作りたいステージに合わせて広さを調節してください。

座標開始地点を「G」とします。
※座標の数字が一番小さい角を選びます。

x=~,y=~,z=~,の「~」には座標開始地点「G」の座標を入れます。
dx=0,dy=0,dz=0 は、1ブロック分の範囲になります。
※座標を数える場合、座標開始地点は0です。1ブロック横は1になります。

「G」から「H」へ進んでみて、動いた座標を確認します。
xが動いた場合、「H」のx座標から「G」のx座標を引き算するだけです。
同じく「G」から「I」も確認します。
※試合会場の向きによって座標xやyの方向が変わります。

高さは「J」から、座標開始地点「G」の高さの座標を引き算します。
座標開始地点を地下にすれば、試合会場の高さも大きくなります。

座標入力例
開始地点座標、G座標(x10 y15 z5)。
H座標(x50 y15 z5)、I座標(x10 y30 z5)、J座標(x50 y30 z25)の場合。
※座標の数字が減っていく場合、開始地点座標を変更してください。

x=10,y=15,z=5,dx=40,dy=15,dz=20

 

ロビー。

各種装置へ移動したり、戻ってきたりする場所です。
ワールドはアドベンチャーモードにしておきます。

ロビー装置 表

①赤色の試合エントリーボタン(チーム1)
②青色の試合エントリーボタン(チーム2)
※チームカラーは目安です。コマンドでは色でチーム分けしません。

待機室や試合会場から、ロビーへ戻って来る場所。
試合会場の範囲と同じように、金ブロック上の範囲を決めておきます。
※金ブロック上で座標の数字が一番小さい角を、座開始地点にします。高さはプレイヤーの2ブロック分です。

x=~,y=~,z=~,dx=2,dy=2,dz=2

 

ロビー装置 裏

チーム分け、エントリーランプ点灯、待機室や試合会場へ移動する装置を作ります。
①’は正面のボタン裏につなげます。
①’は①のクローンです。
一部座標や名前を変更しますが、チーム2も同じ回路です。

説明は省略しますが、チーム2も同時に作っていきます。
①スコアボードに「team」を追加します。

scoreboard objectives add team dummy

スコアボードの数字を変えてチームを分けます。
②スコアボード「team」に1をセットします。(赤色)
※青色は「scoreboard players set @p team 2」

scoreboard players set @p team 1

③setblockコマンドで、「A」にレッドストーンブロックを置いてエントリーランプを点灯します。

④何度もボタンを押せないように、setblock airコマンドで①’のコマンドブロックを消します。

⑤各種スコアボードの「う」にsetblockコマンドでレッドストーンブロックを置く。

AND回路の④’をsetblock airコマンドで消します。※青色は③’を消す。

⑦スコアボードの「team」が1のプレイヤーを、待機室へ移動させます。
「~ ~ ~」には、試合会場と待機室「C」の座標を入れます。
※青色は「tp @e[scores={team=2}] ~ ~ ~」 試合会場と待機室「D」の座標を入れます。

tp @e[scores={team=1}] ~ ~ ~

⑧試合終了後、ロビーに戻るように設定します。
「~ ~ ~」には、ロビー③の座標を入れます。
※ワールドスポーン地点とは違います。昼でもベットでスポーンポイントを更新出来ます。(統合版はクリエイティブモード以外)

spawnpoint @p ~ ~ ~

⑨cloneコマンドで①のコマンドブロックを、①’にクローンします。
⑩setblock airコマンドで「A」のレッドストーンブロックを消します。
⑪setblock airコマンドで「B」のレッドストーンブロックを消します。

以下説明の時は「team1」「team2」で進めていきます。
team1(チーム1赤色/スコアボードのteamが1)
team2(チーム2青色/スコアボードのteamが2)

 

AND回路。 

試合にエントリーしたプレイヤーの数で、装置の動作を変えます。
プレイヤーが1人の時は待機タイマー装置を動作させます。
プレイヤーが2人揃った時、⑤のコマンドブロックに信号を送り、試合準備装置を動作します。

①赤色の待機室にteam1のプレイヤーが来た時、「あ」にレッドストーンブロックを置きます。
座標とスコアボード名のセレクター引数を使って装置を動作させています。
x=~,y=~,z=~,の「~」には、試合会場と待機室「C」の座標を入れます。
「~ ~ ~」には、「あ」の座標を入れます。
「リピート(反復)」「常時実行(常にアクティブ)」。

Java版

execute as @e[x=~,y=~,z=~,dx=0,dy=0,dz=0,scores={team=1}] run setblock ~ ~ ~ redstone_block

統合版 ※setblock手前の「~ ~ ~」はそのまま。

execute @e[x=~,y=~,z=~,dx=0,dy=0,dz=0,scores={team=1}] ~ ~ ~ setblock ~ ~ ~ redstone_block

②青色の待機室にteam2のプレイヤーが来た時、「い」にレッドストーンブロックを置きます。
x=~,y=~,z=~,の「~」には、試合会場と待機室「D」の座標を入れます。
「~ ~ ~」には、「い」の座標を入れます。
※コマンドは①と同じです。「team=1」を「team=2」に変更します。

③’と④’は③と④のクローンです。
③④setblockコマンドで、待機タイマーの「え」にレッドストーンブロックを置く。
⑤setblockコマンドで、試合準備装置の「か」にレッドストーンブロックを置く。

 

タイマー用アーマースタンド

タイマー用に、アーマースタンドを設置しておきます。
⑥「Time」と名前を付けて、アーマスタンドを召喚します。
「~ ~ ~」には、設置場所の座標を入れます。
※座標を入れなければ、自分の立っている場所に召喚されます。

Java版

/summon armor_stand ~ ~ ~ {CustomName:"\"Time\"",CustomNameVisible:1b}

統合版

/summon armor_stand Time ~ ~ ~

2ページ目へ

 

 

おすすめ記事もどうぞ!