TAランキングアドオン v1.0.0

スクリーンショット 2024-07-17 004200-9449c682
スポンサーリンク

アスレチックのタイムアタックを、計測・ランキング化できるアドオンです。

禁止事項

  • アドオン単体の二次配布(ワールド配布は可)
  • 自作発言

タイムアタックの作成手順

Ⅰ.アスレチックの登録

 /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>
実行者のアクションバーにタイムを表示 ※1ta:show_time <message>
実行者のチャット上にタイムを表示 ※1ta:send_time <message>
全プレイヤーのチャット上にタイムを表示 ※1ta: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」を指定してキルすることで削除できます。

ダウンロード
(zip) [DL:14]
ダウンロード
(mcpack/mcaddon) [DL:73]
※投稿記事に含まれるファイルやリンクにより発生した被害についてクラフターズコロニーは責任を取りません
投稿通報

コメント

  1. 設定や操作がわかりづらい箇所があるため、記事の加筆またはアドオンの改良を予定しています。

  2. どこからダウンロードできますか

    • 配布データが正しくアップロードできていなかったので、対応しました。

      • ありがとうございます!

  3. サムネのランキングの速さエグすぎる…
    あと、JAVA editionユーザーなのでJAVA版も作ってください

コメント通報