MC CommanderMinecraft非公式コマンド支援

宝探しゲームをコマンドで作る方法

どこにあるかわからない宝箱を、みんなで探すミニゲームです。宝箱の場所はコマンドでランダムに決め、近づくとヒントが出るようにします。Java版の書き方で説明します。

ミニゲーム宝探しJava版

executeコマンドを作る

更新日:

1. 宝箱の場所をランダムに決める

/summon marker 0 64 0 {Tags:["treasure"]}
/spreadplayers 0 0 0 30 false @e[tag=treasure]

目印(marker)を出して、中心から30ブロック以内のどこかの地面に移動させます。markerは目に見えないので、場所はわかりません。散らばらせ方は spreadplayersコマンドの使い方 にまとめています。

2. 目印の場所に宝箱を置く

/execute at @e[tag=treasure] run setblock ~ ~ ~ chest{Items:[{Slot:13b,id:"minecraft:nether_star",count:1}]}

真ん中のスロットにネザースターが入った宝箱を置きます。このネザースターが「お宝」です。ほかの景品も入れたいときは lootコマンド も使えます。

3. 近づくとヒントを出す(くり返し)

/execute as @a at @s if entity @e[tag=treasure,distance=..10] run title @s actionbar {"text":"すごく近い!","color":"red"}
/execute as @a at @s if entity @e[tag=treasure,distance=10..30] run title @s actionbar {"text":"近いかも","color":"yellow"}

くり返しコマンドブロック(常時実行)に入れます。宝箱から10ブロック以内なら「すごく近い!」、30ブロック以内なら「近いかも」と画面の下に出ます。

4. お宝を見つけた人を判定する(くり返し)

/execute as @a if items entity @s container.* minecraft:nether_star run tellraw @a [{"selector":"@s"},{"text":" がお宝を見つけました!","color":"gold"}]

インベントリにネザースターが入った人がいたら、全員に知らせます。Java版1.20.5以降の書き方です。表示したら、コマンドブロックを止めます。

5. 片付ける

/execute at @e[tag=treasure] run setblock ~ ~ ~ air
/kill @e[tag=treasure]
/clear @a nether_star

宝箱と目印を消し、配ったお宝を回収します。次の試合では1からもう一度始めます。

6. 最初に見つけた1人だけを発表する

# 反復コマンドブロック
execute unless entity @a[tag=winner] as @a if items entity @s container.* minecraft:nether_star run tag @s add winner
# チェーン1
execute as @a[tag=winner,tag=!announced] run tellraw @a [{"selector":"@s"},{"text":" が一番乗りで宝を見つけた!","color":"gold"}]
# チェーン2
tag @a[tag=winner] add announced

4のままだと、宝を持っているあいだ毎ティックメッセージが出ます。まだ winner がいないときだけ判定し、発表したら announced タグで止めます。コマンドブロックを手で止めなくても、1回だけ発表されます。次のゲームの前に /tag @a remove winner と /tag @a remove announced を実行します。

7. 宝箱を3つに増やす

/summon marker 0 64 0 {Tags:["treasure"]}
/summon marker 0 64 0 {Tags:["treasure"]}
/summon marker 0 64 0 {Tags:["treasure"]}
/spreadplayers 0 0 10 30 false @e[tag=treasure]

目印を3つ出してから広げると、宝箱が3か所にちらばります。3つ目の数字(10)は目印どうしの最低距離で、宝箱が近くに固まるのを防ぎます。2の setblock は @e[tag=treasure] 全部に実行されるので、そのまま3つ置けます。

うまくいかないときの確認ポイント

よくある質問

宝箱を地面に埋めることはできますか?

2のコマンドの ~ ~ ~ を ~ ~-2 ~ にすると、地面の下に宝箱を置けます。シャベルを渡して掘って探すゲームになります。

宝箱をいくつも置けますか?

1の summon を何回か実行して、目印を増やします。spreadplayers で全部の目印が別々の場所に散らばります。

統合版でも作れますか?

統合版には if items や marker がないので、この方法そのままでは作れません。防具立てと hasitem を使う方法で作ります。

関連ページ

コンパスを好きな座標に向けるコマンドロードストーンなしで作れます。spreadplayersコマンドの使い方

ランダムな場所に置きます。

lootコマンドの使い方

宝箱の中身をランダムにします。

中身入りのチェストをコマンドで出す方法

宝箱の中身の書き方です。

スプリーフをコマンドで作る方法

ほかのミニゲームです。

コマンド辞典

基本構文とコマンド別の使い方を確認できます。