/scoreboar コマンドを使用して、
稼いだポイントを交換できる店を作ってみた。
主な特徴
- まとめ買い, 1個買いを選べる
- 詐欺防止機能
- それなりに小さい
構造
- 画像参照

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