Minecraft【動く装置】 アイテムショップと通貨(両替機付)。No.5

2024-05-08

Java版1.20.6、統合版はv1.20.81で動作確認。

エメラルドをPayにチャージして、ショップでお買い物。余った Payをエメラルドに戻します。

アイテムショップと通貨作成。

スコアボードを使ったデジタル通貨「Pay」で、エメラルドを「Pay」にチャージしたり、余った「Pay」をエメラルドに戻せる両替所を作ります。また「Pay」で購入できるアイテムショップも作成。簡単なコマンドで、電子決済システムを導入出来ます。コマンド式のゴミ箱付き。装置は初級者向けとなります。

 

◻︎装置の特徴
・プレイヤーのスコア、アイテム検知。
・ホッパー式のクロック回路。
・引数を使ったプレイヤーの検知。

 

更新履歴
2024-3-24/再設計!新しくなった統合版のアイテム名に対応。装置の外観も変更しました。
2022-1-27/新設計!回路を簡単にして、統合版の新コマンドにも対応しました。

 

プレイ動画。v1.20

旧式/ v1.0はこちら。 v1.1はこちら。

 

 

 

目次

1.作成準備
・ログの非表示。・スコアボードの作成。
2.コマンドブロックの設置
3.装置全体図
・アイテムショップの装置全体図。
4.両替機
・エメラルドからPay。・Payからエメラルド。
5.アイテムショップ
・商品と価格。・コマンド入力。
6.コマンド式ゴミ箱
・トラップチェストのクローン。
7.仕上げ
・遊び方。

 

※「as」や「minecraft:」などのコマンドは簡略化しています。一部のコマンド、マルチプレイやサーバーでは必要な場合があります。

 

作成準備

コマンドは1人用で作成しています。マルチプレイで使う場合は、ターゲットセレクタを変更してください。 ※「tag」や、防具立てを指定。

ログの非表示。

◻︎ログの非表示とコマンドブロック入手。

/gamerule commandBlockOutput false
/give @s command_block

 

スコアボードの作成。

◻︎スコアボード「Pay」を作り、サイドバーに「Pay」を表示。

/scoreboard objectives add Pay dummy
/scoreboard objectives setdisplay sidebar Pay

◻︎削除する場合。
/scoreboard objectives remove Pay

 

コマンドブロックの設置

コマンドブロックは画像に合わせて配置。「ブロック種類」「レッドストーン」を変更します。 変更がある場合は、個別に解説していきます。

◎配置したコマンドブロックの状態/すべて無条件。※()内は統合版の名称。

コマンドブロックの色 ブロックの種類 レッドストーン
黄色 インパルス 動力が必要
青色 チェーン(鎖) 常時実行
紫色 リピート 常時実行

 

装置全体図

アイテムショップの装置全体図。

フラットワールドを作成したら、座標(0 -60 0)へ移動してオークの原木を設置。装置は開始点座標(0 -60 0)を基準に、南が正面がになるよう設置にしています。座標を合わせてブロックを設置していくと、コマンドはコピー&ペーストで作れます。

開始点は座標(0 -60 0)

❶プレイエリア ❷両替装置 ❸アイテムショップ ❹ゴミ箱

◻︎南向きを確認するには
ストラクチャーブロックを設置して、境界線の青い線が伸びる方が南。※赤い線は東。
/give @s structure_block

 

両替機

エメラルドからPay。

エメラルドとデジタル通貨「Pay」を交換出来る装置を作ります。

「A」は座標(2 -60 6)。「あ」は地面下に金ブロック、上に音符ブロックを設置。②の上にレッドストーンランプを設置。③は条件付き。※矢印はホッパーの向き。中に1個アイテムを入れておきます。

 

◎プレイヤーの検知。

引数を使って、金ブロッックの上にいるプレイヤーを検知します。「A」の座標(2 -60 6)の1ブロック上の座標を入力します。※1ブロック分だけの検知なので(dx)、(dy)、(dz)は0のまま。

【Java版】

①clear @p[x=2,y=-59,z=6,dx=0,dy=0,dz=0] emerald 0
------
②clear @p[x=2,y=-59,z=6,dx=0,dy=0,dz=0] emerald 1
③scoreboard players add @p[x=2,y=-59,z=6,dx=0,dy=0,dz=0] Pay 1

【統合版】③はJava版と同じ。

①clear @p[x=2,y=-59,z=6,dx=0,dy=0,dz=0] emerald 0 0
------
②clear @p[x=2,y=-59,z=6,dx=0,dy=0,dz=0] emerald 0 1

◻︎金ブロックの上にいるプレイヤー対象
①エメラルドを持っている時、信号を出す。
------
②エメラルドを1個クリア。
③プレイヤーの「Pay」を1足す。
※①②統合版はデータ値の入力が必要。

 

Payからエメラルド。

デジタル通貨「Pay」をエメラルドに交換出来る装置を作ります。

「B」は座標(10 -60 6)。「い」は地面下にエメラルドブロック、上に音符ブロックを設置。②の上にレッドストーンランプを設置。③は条件付き。矢印はホッパーの向き。中に1個アイテムを入れておきます。

 

【Java版/統合版共通】

①execute unless entity @e[scores={Pay=1..},x=10,y=-59,z=6,dx=0,dy=0,dz=0]
------
②scoreboard players remove @p[x=10,y=-59,z=6,dx=0,dy=0,dz=0] Pay 1
③give @p[x=10,y=-59,z=6,dx=0,dy=0,dz=0] emerald 1

◻︎エメラルドブロックの上にいるプレイヤー対象
①「Pay」が1以上ある時、信号を出す。
------
②プレイヤーの「Pay」を1引く。
③エメラルドを1与える。

 

アイテムショップ

商品と価格。

ショップに並べる商品を決めます。価格や個数が分かるように見本アイテムを額縁に設置。

※アイテムや価格など、自由に変更してください。

◎価格と個数。

◻︎オークの原木/「Pay」1で20個。
◻︎鉄インゴット/「Pay」1で10個。
◻︎ダイヤモンドの剣/「Pay」3で1個。

 

【Java版】Java版は、名前を変更したアイテムをコマンドから入手。

/give @p oak_log[custom_name="20個/Pay1"] 1
/give @p iron_ingot[custom_name="10個/Pay1"] 1
/give @p diamond_sword[custom_name="3個/Pay1"] 1

【統合版】

統合版は、金床を使ってアイテムの名前を変更します。※アイテム名が見えない場合、設定→ビデオ→ゲーム内プレイヤーの名前を表示をオンにします。

 

コマンド入力。

商品に合わせてコマンドを入力。

①は座標(4 -58 2)。①③⑤には石ブロック、木のボタンを設置。②④⑥は条件付き。

【Java版】

①execute if entity @p[scores={Pay=1..}] run scoreboard players remove @p Pay 1
②give @p oak_log 20
------
③execute if entity @p[scores={Pay=1..}] run scoreboard players remove @p Pay 1
④give @p iron_ingot 10
------
⑤execute if entity @p[scores={Pay=3..}] run scoreboard players remove @p Pay 3
⑥give @p diamond_sword 1

①1以上の「Pay」がある時、プレイヤーから「Pay」を1引く。
②プレイヤーにオークの原木を20個与える。
------
③④⑤⑥アイテムによって内容を変更します。

 

購入ボタンや商品ディスプレイを作ります。

 

コマンド式ゴミ箱

トラップチェストのクローン。

クローンコマンドを使った簡単なゴミ箱を作ります。トラップチェストを閉じた時、空のトラップチェストをクローンします。

「う」のトラップチェストがゴミ箱。リピーターを石ブロックに繋ぎレッドストーントーチ、コマンドブロックを設置。「う」と同じ向きで「え」のトラップチェストも設置します。

 

①は座標(7 -60 0)。座標を合わせて、アイテムショップ内に設置。

 

【Java版/統合版共通】

①clone 7 -60 1 7 -60 1 7 -59 3

①チェストを閉じた時、ゴミ箱を空にします。クローン元は「え」、クローン先は「う」の座標。

 

仕上げ

床や壁を設置し、両替所、アイテムショップを仕上げます。

 

遊び方。

エメラルドを持っている時、金ブロックの上に乗るとデジタル通貨「Pay」に両替します。

 

デジタル通貨「Pay」を使ってアイテムを購入。「Pay」が足りない時は購入出来ません。

 

エメラルドブロックの上に乗ると、余ったデジタル通貨「Pay」をエメラルドに戻します。