アスレチックのタイムアタックを、計測・ランキング化できるアドオンです。
禁止事項
- アドオン単体の二次配布(ワールド配布は可)
- 自作発言
タイムアタックの作成手順
Ⅰ.アスレチックの登録
① /function ta/settings をチャット欄で入力し、フォームを開く
② TAメニュー > アスレチック > 登録 を選択する
③ [アスレチックID] と [アスレチック名] を入力し、送信する
Ⅱ.コマンドの設定
① 反復コマンドブロックに、次を設定する
/scriptevent ta:quick_run [BlockId]
[BlockId] には計測開始ブロックidが入る
※ システム全体を動かすコマンドなため、2つ目以降のTAでは不要です。
② アスレのゴール地点にコマンドブロックを置き、次を設定する
/execute as @p run scriptevent ta:ta_goal [AthleticId]
[AthleticId] にはⅠ③で設定した[アスレチックID]が入る
完成図
TAランキングの表示
TAランキングは、次の3つの方法で表示できます。
説明 | コマンド |
チャット上にランキングを表示する | /execute as @p run scriptevent ta:ranking [AthleticId] <RankCount> |
フォーム上にランキングを表示する | /execute as @p run scriptevent ta:form_ranking [AthleticId] <RankCount> |
その場にランキングボードを作成する | /scriptevent ta:create_board [AthleticId] <RankCount> |
[AthleticId] :アスレチックID [RankCount] : 表示する順位の数 |
全てのコマンド
実行者にヘルプを表示 | /function ta/help |
実行者に設定フォームを表示 | /function ta/settings |
以降のコマンドは全て先頭に /scriptevent が付きます
[] : 必須
<> : 任意 (なくてもOK)
実行者にTAゴール処理を行う | ta:ta_goal [athleticId] |
実行者に通常ゴール処理を行う | ta:goal [athleticId] |
指定したアスレのTAを全削除する | ta:ta_delete [athleticId] |
実行者のチャット上にランキングを表示 | ta:ranking [athleticId] <rankCount> |
実行者のフォーム上にランキングを表示 | ta:form_ranking [athleticId] <rankCount> |
実行者のアクションバーにタイムを表示 ※1 | ta:show_time <message> |
実行者のチャット上にタイムを表示 ※1 | ta:send_time <message> |
全プレイヤーのチャット上にタイムを表示 ※1 | ta:world_send_time <message> |
ランキングボードを作成 | ta:create_board [athleticId] <rankCount> |
ランキングボードの表示を更新 | ta:update_board |
タイム計測のクイック実行 | ta:quick_run <blockId> |
※1 タイムは %time プレイヤー名は %runner で示す
詳細説明
「/scriptevent ta:quick_run <blockId>」を実行している場合
計測を開始する方法
→ <blockId> で指定したブロックを踏むと、計測を開始します。
計測を終了する方法(ゴールの場合)
→ 「/scriptevent ta:ta_goal [athleticId]」を実行させる。
【重要】対象者を execute の as句 で指定する必要があります。
例) execute as @p run /scriptevent ta:ta_goal [athleticId]
計測を中止する方法
→ スコアボード「ta_time」の値をリセットする。
例) scoreboard players reset @p ta_time
自身でコマンドを組む場合
計測開始の変更や、軽量化などの目的で、自身でコマンドを組む方法もあります。
「ta:quick_run」は次のコマンドをまとめたものだと考えてください。(※実際は少し異なります)
開始処理(特定ブロックを踏むと計測を始める)
→ /execute as @a at @s if block ~~-0.1~ [blockId] run scoreboard players set @s ta_time 0
タイムスコアの増加処理
→ /scoreboard players add @a[scores={ta_time=0..}] ta_time 1
ランキングボードの更新処理
→ /scriptevent ta:update_board
これらのコマンドを自前で組むことで、「ta:quick_run」と同等の動作をします。
例えば、開始処理を「ブロックを踏む」ではなく「範囲内に入る」にしたい場合は、次の二つのコマンドを実行すればできます。
① 反復
/scriptevent ta:quick_run
※<blockId> を入れずに実行すると、開始処理を行わない
② チェーン 常にアクティブ
/scoreboard players set @a[r=10] ta_time 0
コマンドについて
コマンドの説明に「実行者に~」という記述があるものは、対象を
/execute as @p run scriptevent ta:〇〇
のように、/execute の as句 で実行者を指定する必要があります。
ランキングボードについて
ランキングボードは、順位を表示するエンティティです。種族は ta:board です。
ランキングボードの作成は、「/scriptevent ta:create_board [athleticId] <rankCount>」で行えます。
更新は「/scriptevent ta:update_board」で行えます。
削除する場合は「/kill」の対象に「type=ta:board」を指定してキルすることで削除できます。
コメント
設定や操作がわかりづらい箇所があるため、記事の加筆またはアドオンの改良を予定しています。
どこからダウンロードできますか
配布データが正しくアップロードできていなかったので、対応しました。
ありがとうございます!
サムネのランキングの速さエグすぎる…
あと、JAVA editionユーザーなのでJAVA版も作ってください