コンテンツにスキップ

Ch99.2: Your own (time limit) quest

働いたら負け。


付録 ‐‐ 独自の(期間限定)任務を作成する

この記事は、出撃、演習、遠征の任務を自分で追加する方法を説明します。

kcauto_custom 用の新しい任務を定義するには、以下を提供する必要があります:

  1. 任務情報
  2. 任務要件
  3. 任務指定 Noro6 タグ(必要な場合)
  4. 任務優先度

これらは以下のファイルで管理されます:

  1. data/quests/kc3_quests_en.json
  2. data/quests/quests.json
  3. data/combat/map_enum.json
  4. data/quests/<タイプ>_quest_priority.json

任務情報 -- kc3_quests_en

名前が示す通り、このファイルは KC3 からのものです。
ファイルは こちら からコピー&ペーストできます。
また、kcauto_custom は tool/quest/update_kc3_quests_en.py にミニツールを提供しています。スクリプトを実行するとファイルが更新されます。
KC3 の開発者が最新の任務を更新するまでに通常数日かかることに注意してください。

このファイルは、CUI が使用する任務情報と、後で使用する任務 ID を提供します。

image

任務情報は KC3 から取得


任務要件 -- quests.json

次に quests.json で任務を定義します。このファイルには任務の詳細が含まれています。
サンプルが必要な場合は、data/quests/quests.json 内の他の任務を確認してください。

  "1234B1": {                      # 任務名(kc3_quests_en からコピー)
    "id": 999,                     # 任務 ID(kc3_quests_en からコピー)
    "type": "weekly",              # 任務タイプ(有効な値:"daily", "weekly", "monthly", "other")
    "recommended_map": [           # (出撃のみ) POI から指示がない場合に kcauto-custom が出撃するマップ
      "1234B1-1-1",
      "1234B1-1-2",
      "1234B1-1-3"
    ], 
    "expedition_context": [        # (遠征のみ) POI から指示がない場合に kcauto-custom が向かう遠征
      29,
      30,
      131,
      133
    ],
    "intervals": [1, 0, 0],        # (オプション) 任務完了チェック間隔(順序:[出撃, 演習, 遠征])
    "fleet_composition": {...}     # (オプション) この任務の艦隊要件
  },

a. 任務名

任務を選択して KC3 パネルを確認することで任務名を見つけることができます。
例えば、以下の期間限定演習任務は 2606C1 です。

poi-plugin-quest.png

find_quest_name.png

b. 任務 ID

data/quests/kc3_quests_en.json を開き、上記の任務名を検索すると任務 ID が見つかります。例として "2507C1" を使用します。

...
    "380": {       <= 探している ID
        "code": "2507C1",
        "name": "Weekly [Time-limited] Landing Fleet Escort Exercises!",
        ...
    },
...

c. 任務タイプ

任務が属するタブ。有効な値は "daily"、"weekly"、"monthly"、"other" です。

d. 推奨マップ (出撃任務のみ)

kcauto-custom が出撃するマップを示します。命名ルールは単純で "<任務名>-<マップ>" です。
例えば、任務 2509B5 は 4-2、4-3、4-4 での S 勝利を要求します:

    "recommended_map": [
      "2509B5-4-2",
      "2509B5-4-3",
      "2509B5-4-4"
    ]

e. 遠征コンテキスト (遠征任務のみ)

kcauto-custom が向かう遠征 ID を示します。
A1、B2 などの遠征 ID は kcauto/kca_enums/expeditions.py で確認できます。
例えば、任務 Dy7 は遠征 29、30、131、133 を要求します:

    "expedition_context": [      
      29,
      30,
      131,
      133
    ]

f. 艦隊構成 (オプション、非推奨)

この項目は任務の艦隊要件を示します。
現在の艦隊が要件に一致しない場合、kcauto_custom はこの任務を適用しません。これにより任務スロットがより賢く使用されます。

ただし、設定が複雑になるため、期間限定任務では見合わないと思います。
詳細な定義は reference/fleet_composition_documentation.md で確認できます。

    "fleet_composition": {...}     #(オプション) この任務の艦隊要件

Noro6 タグ -- map_enum.json (出撃任務のみ)

このステップは、出撃任務であり、かつその任務専用の Noro6 コンフィグが必要な場合にのみ必要です。

map_enum.json には kcauto_custom が処理するすべての出撃マップが含まれており、これはすべての出撃用 Noro6 コンフィグの名前タグでもあります。
上記で recommended_map にマップを追加した場合は、ここにも追加する必要があります。

命名ルールは単純です:
"W<マップ>-<任務名>" : "<任務名>-<マップ>"
例:

    "W2_2_A": "B-2-2-A",
    "W6_4": "B-6-4",
    "W2_5_Bm1": "Bm1-2-5",
    "W4-4-2509B5": "2509B5-4-4",
    "W2-3-2412B5": "2412B5-2-3",

任務優先度 (quest_priority)

最後は data/quests/<タイプ>_quest_priority.json です。kcauto-costom が他の任務よりも優先する任務を定義します。

優先度は降順でソートされます。("2412B5" > "2509B5" > "Bm1" ... など)

{
  "time_limited": [
    "2412B5",
    "2509B5"
  ],
  "exact_ship_and_map": [
    "Bm1",
    ...
    "By15"
  ],
  "exact_ship_type_and_map": [
    "Bm3",
    ...
    "By11"
  ],
  "any_ship_with_exact_map": [
    "Bm8",
    ...
    "Bq10"
  ],
  "exact_area": [
    "Bw6",
    "Bw7"
  ],
  "exact_enemy_type": [
    "Bw2",
    ...
    "Bw3"
  ],
  "any_sortie": [
    "Bd1",
    ...
    "Bw1"
  ],
  "low_priority": [
    "Bd7"
  ]
}