【統合版】scoreboardにインベントリ内の特定アイテムの数

コマンド

このところ、マインクラフトのコマンドの勉強中。
脱出ゲーム的なものができないかということで、マルチプレイを意識して統合版で試しています。

さて、マインクラフトのscoreboardコマンドを使うと、各プレイヤーの得点板を作ることができます。
宝探しゲームみたいなものができないかと思ったのですが、統合版では簡単にはインベントリにある特定のアイテム数をscoreboardに表示することができないようです。

少々力業ですが、統合版でも特定アイテムの数をscoreboardに表示する方法を見かけたので写経しておきます。
写経先はこちらです。

スコアボードのオブジェクトを作る

まずはスコアボードに値を入れられる箱のようなものを作ります。

scoreboard objectives add オブジェクト名 dummy 表示名

統合版では dummy の部分は dummy しか指定できませんが、値の変動基準になります。

scoreboard objectives add diamonds dummy ダイヤ数

とすると、’diamonds’ という名前で、値の変動基準が dummy で、表示名がダイヤ数というオブジェクトを追加する、ということになります。

スコアボードを表示

スコアボードに値を入れられる箱を作っただけでは見ることができないので、値を表示させます。

scoreboard objectives setdisplay sidebar diamonds

diamonds の値を、サイドバー(画面の右側)に表示させます。

ここまでが下準備です。

excute と hasitem でアイテムをn個持っているユーザーを見つけて値をnにする

コマンドブロックに

execute as @a[hasitem={item=アイテムのID,quentity=0}] run scoreboard players set @s アイテムのID 0 

具体的には

execute as @a[hasitem={item=diamond,quantity=0}] run scoreboard players set @s diamonds 0

ブロックの種類:リピート
条件:無条件
レッドストーン:動力が必要

にしてこのコマンドブロックに信号を与えると、ダイヤモンドを持っていないプレイヤーのスコアが0になります。

このコマンドブロックの矢印の先にコマンドブロックを置いて、ダイヤモンドを1つ持っている場合のコマンドを入れます。

execute as @a[hasitem={item=diamond,quantity=1}] run scoreboard players set @s diamonds 1

ブロックの種類:鎖
条件:無条件
レッドストーン:常時実行

これを必要な分だけつなげます。
宝探しで使う場合には、隠した宝の数だけつなげれば良いでしょう。


java版ですと、インベントリに入っている特定のアイテム数をスコアボードに反映することができますが、統合版ですとこんなやり方しか無さそうです。

しかし使い道によっては面白い使い方ができそうです。

コメント

タイトルとURLをコピーしました