Minecraftで店を作ってみた
/scoreboar コマンドを使用して、
稼いだポイントを交換できる店を作ってみた。
主な特徴
まとめ買い, 1個買いを選べる
詐欺防止機能
それなりに小さい
構造
画像参照
https://scrapbox.io/files/6321e6cd810c990023f1e43c.png
コマンド
準備編
code:enable_scoreboad
/scoreboard objectives add money dummy "points"
# スコアの変数money(呼び名 points)実装
/scoreboard objectives setdisplay list money
# 参加者リスト(Tabキーで出るやつ)に所持ポイント表示
店のコマンドブロック
code:shop_block
# Aのブロック
# インパルス, 無条件, 動力が必要
# @p : 最も近くのプレーヤー
# scores={money=5..} : money(スコア)が5以上で
# dx=-3, dy=-3, dz=0 : 範囲内のプレーヤー (上図ダイヤブロックの位置がちょうどいい範囲)
# Bのブロック(チェーン)
# チェーン, 条件付き, 常時実行
# @p : 最も近くのプレーヤー
# scores={money=5..} : money(スコア)が5以上で
# dx=-3, dy=-4, dz=0 : 範囲内のプレーヤー (上図ダイヤブロックの位置がちょうどいい範囲)
# scoreboard players remove <指定したプレーヤー> :指定したプレーヤーのmoney(スコア)を<料金>だけ減らす
# 方角に応じて座標の範囲は+ -調整
使用法
スイッチの前(上図ダイヤブロックの位置)に立つ
下部のレバーへ触れると、まとめ買いモード(戻すまでポイントと交換し続ける)
上部のスイッチを押すと、1個買いモード
おまけ
アイテム/ポイント交換機もコマンドを置き換えるだけで可能
code:change_points
# Aの処理
# 特定座標範囲の人のアイテムを指定個数回収する
# Bの処理
# 特定座標範囲の人へスコア(money)を1加算する