更新日:
1. プレイ時間を数える
/scoreboard objectives add playtime minecraft.custom:minecraft.play_time "プレイ時間"
これだけで、ワールドにいる間ずっと自動で数が増えます。コマンドブロックは要りません。数はティックなので、1秒で20、1分で1200、1時間で72000増えます。1.16以前は名前が minecraft.play_one_minute でした(名前は「分」ですが、中身はティックです)。
スコアボードは作った時点から数え始めます。それより前に遊んだ時間は入りません。
2. 時間と分に直す準備(最初に一度だけ)
/scoreboard objectives add hours dummy "プレイ時間(時間)"
/scoreboard objectives add mins dummy
/scoreboard objectives add const dummy
/scoreboard players set #72000 const 72000
/scoreboard players set #1200 const 1200
/scoreboard players set #60 const 60
const は計算に使う決まった数を入れておくスコアです。スコアの計算では、割る数もスコアに入れておく必要があります。
3. 時間と分を計算する(くり返し)
/execute as @a run scoreboard players operation @s hours = @s playtime
/execute as @a run scoreboard players operation @s hours /= #72000 const
/execute as @a run scoreboard players operation @s mins = @s playtime
/execute as @a run scoreboard players operation @s mins /= #1200 const
/execute as @a run scoreboard players operation @s mins %= #60 const
1行目をくり返しコマンドブロック(常時実行)に入れ、残りをチェーンでつなげます。ティックを72000で割ると時間、1200で割ると合計の分になります。最後の %= は「60で割った余り」で、時間に入らなかった残りの分です。割り算は小数を切り捨てます。
サイドバーにプレイ時間のランキングを出すなら、/scoreboard objectives setdisplay sidebar hours で時間の数を並べます。
4. 自分のプレイ時間をチャットで確認する
/scoreboard objectives add check trigger
/scoreboard players enable @a check
最初に一度だけ実行します。trigger の基準は、OPでない人でも /trigger check で数を変えられるスコアです。
/execute as @a[scores={check=1..}] run tellraw @s [{"text":"あなたのプレイ時間:"},{"score":{"name":"@s","objective":"hours"}},{"text":"時間"},{"score":{"name":"@s","objective":"mins"}},{"text":"分"}]
/scoreboard players set @a[scores={check=1..}] check 0
/scoreboard players enable @a check
くり返しとチェーンで並べます。/trigger check を実行した人にだけ、自分のプレイ時間が表示されます。表示したら0に戻し、もう一度使えるように enable し直します。くわしくは triggerコマンドの使い方 を見てください。
5. プレイ時間に応じてごほうびを出す(くり返し)
/give @a[scores={hours=1..},tag=!play1h] diamond 3
/tag @a[scores={hours=1..},tag=!play1h] add play1h
1時間遊んだ人に1回だけダイヤを3個渡す例です。最後にタグを付けるので、2回目からは動きません。
6. 歩いた距離やジャンプ回数も数える
/scoreboard objectives add walk minecraft.custom:minecraft.walk_one_cm
/scoreboard objectives add jumps minecraft.custom:minecraft.jump "ジャンプ回数"
/scoreboard objectives add deaths deathCount "死んだ回数"
/scoreboard objectives add alive minecraft.custom:minecraft.time_since_death
どれも作るだけで自動で数えます。walk_one_cm は名前のとおりセンチメートルなので、100で割るとブロック数(メートル)になります。time_since_death は最後に死んでからのティック数で、死ぬと0に戻ります。
うまくいかないときの確認ポイント
- 数が増えない:1のコマンドの基準の書き方(
minecraft.custom:から始まる部分)が正しいか確認します。 - 分が0のまま:2の
#1200と#60に数を入れたか確認します。 - /trigger が使えない:4の
enableを実行したか確認します。 - 統合版で使えない:統合版のスコアボードには自動で数える基準がなく、
dummyしか使えません。
よくある質問
今までのプレイ時間を見る方法は?
ゲームメニューの統計の画面に、ワールドを作ってからのプレイ時間が出ます。スコアボードは作った時点から数えます。
放置している時間も数えられますか?
play_time はワールドにいる間ずっと増えるので、放置している時間も入ります。
秒まで出せますか?
playtime を20で割って60で割った余りを出すと、秒の数になります。