このところ、マインクラフトのコマンドの勉強中。
脱出ゲーム的なものができないかということで、マルチプレイを意識して統合版で試しています。
さて、マインクラフトのscoreboardコマンドを使うと、各プレイヤーの得点板を作ることができます。
宝探しゲームみたいなものができないかと思ったのですが、統合版では簡単にはインベントリにある特定のアイテム数をscoreboardに表示することができないようです。
少々力業ですが、統合版でも特定アイテムの数をscoreboardに表示する方法を見かけたので写経しておきます。
写経先はこちらです。
スコアボードのオブジェクトを作る
![](https://minecraft.k2gw.net/wp-content/uploads/2023/12/2023-12-01_20h43_20-1024x587.png)
まずはスコアボードに値を入れられる箱のようなものを作ります。
scoreboard objectives add オブジェクト名 dummy 表示名
統合版では dummy の部分は dummy しか指定できませんが、値の変動基準になります。
scoreboard objectives add diamonds dummy ダイヤ数
とすると、’diamonds’ という名前で、値の変動基準が dummy で、表示名がダイヤ数というオブジェクトを追加する、ということになります。
スコアボードを表示
![](https://minecraft.k2gw.net/wp-content/uploads/2023/12/2023-12-01_20h45_02-1024x587.png)
スコアボードに値を入れられる箱を作っただけでは見ることができないので、値を表示させます。
scoreboard objectives setdisplay sidebar diamonds
diamonds の値を、サイドバー(画面の右側)に表示させます。
ここまでが下準備です。
excute と hasitem でアイテムをn個持っているユーザーを見つけて値をnにする
![](https://minecraft.k2gw.net/wp-content/uploads/2023/12/2023-12-01_20h46_12-1024x587.png)
コマンドブロックに
execute as @a[hasitem={item=アイテムのID,quentity=0}] run scoreboard players set @s アイテムのID 0
![](https://minecraft.k2gw.net/wp-content/uploads/2023/12/2023-12-01_20h46_19-1024x587.png)
具体的には
execute as @a[hasitem={item=diamond,quantity=0}] run scoreboard players set @s diamonds 0
ブロックの種類:リピート
条件:無条件
レッドストーン:動力が必要
にしてこのコマンドブロックに信号を与えると、ダイヤモンドを持っていないプレイヤーのスコアが0になります。
![](https://minecraft.k2gw.net/wp-content/uploads/2023/12/2023-12-01_20h46_40-1024x587.png)
このコマンドブロックの矢印の先にコマンドブロックを置いて、ダイヤモンドを1つ持っている場合のコマンドを入れます。
execute as @a[hasitem={item=diamond,quantity=1}] run scoreboard players set @s diamonds 1
ブロックの種類:鎖
条件:無条件
レッドストーン:常時実行
これを必要な分だけつなげます。
宝探しで使う場合には、隠した宝の数だけつなげれば良いでしょう。
java版ですと、インベントリに入っている特定のアイテム数をスコアボードに反映することができますが、統合版ですとこんなやり方しか無さそうです。
しかし使い道によっては面白い使い方ができそうです。
コメント