Ch99.2: Your own (time limit) quest
躺平
附錄 ‐‐ 製作自己的(期間限定)任務
讀完這篇文章,你也能夠自行新增任何出擊、演習或遠征任務。
要為 kcauto_custom 定義新任務,你需要提供:
- 任務資訊
- 任務需求
- 任務指定的 Noro6 標籤(若有需要)
- 任務優先度
這些由以下檔案處理:
data/quests/kc3_quests_en.jsondata/quests/quests.jsondata/combat/map_enum.jsondata/quests/<類型>_quest_priority.json
任務資訊 -- kc3_quests_en
如名稱所示,此檔案來自 KC3。
你可以從 這裡 取得檔案並直接複製貼上。
此外,kcauto_custom 在 tool/quest/update_kc3_quests_en.py 中也提供了工具,執行該腳本即可自動更新檔案。
請注意,KC3 開發者更新最新任務通常需要幾天時間。
此檔案提供 CUI 使用的基本任務資訊以及後續需要的任務 ID。
任務資訊來自 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 (不含 L)。


b. 任務 ID
開啟 data/quests/kc3_quests_en.json 並搜尋上述任務名稱,即可找到任務 ID。以 "2507C1" 為例:
...
"380": { <= 目標任務 ID
"code": "2507C1",
"name": "Weekly [Time-limited] Landing Fleet Escort Exercises!",
"desc": "Secure 3 A-Rank+ victories in Exercises within the same day using either an LHA and 2 DE OR 3 DE, and up to 3 additional ships.",
"memo": "\u27a3Rewards:\n\u00B6First choice: Either three Buckets OR a Screw OR a Combat Ration\n\u00B6Second choice: Either three Development Materials OR two Type 94 Depth Charge Projectors OR a Type 3 Depth Charge Projector"
},
...
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"
]
...