Ch99.1: Your own event map support
懶癌末期作者更新活動支援的速度實在是慢得離譜。
自己動手,豐衣足食?
附錄 ‐‐ 製作活動海域支援
警告: 如果你沒有自己的 kcauto Python 環境,製作自己的更新包幾乎是不可能的(因為你無法存取 kcauto/kca_enums/nodes.py)。
(2025/11/12,隨著最新更新,節點定義已拆分至 data/combat/map_enum.json,因此一般使用者現在應該可以按照本指南操作了)
你會需要設定以下三項:
- 素材 (
assets/combat/_event_next_page_<X>.png及assets/combat/_event_world_E-<X>.png) - 地圖資料 (
data/combat/E-<X>.json) - 節點 (
data/combat/map_enum.json)
素材 (Assets)
素材方面,你需要擷取地圖圖示的參考圖。
原圖:
目標:
還有次頁按鈕。
原圖:

目標:

接著,替換 assets/combat/_event_next_page_<X>.png 和 assets/combat/_event_world_E-<X>.png 中的檔案。
地圖資料 (Map data)
現在我們必須設定地圖資料,讓 kcauto 能夠處理戰鬥與基地航空隊。
首先,準備地圖影像。
我個人是從 艦隊Collection Wiki 取得。
我們需要未經縮放的原始影像,因此請注意選用的來源。
可靠的地圖影像來源
工具箱裡的 tool/map/mapCoorUpdater.py 可以協助建立地圖資料,執行此 Python 檔案所需的依賴項目列在 tool/map/mapCoorUpdaterRequirement.txt 中。
執行該工具,它會從 KC3 原始碼 擷取最新的地圖資料。
請確保在 KC3 更新活動地圖資料後再進行此操作。
地圖座標更新器
填寫完基本資料後,需要定義每個節點的座標(參考:issue#20 及 discussion#71):
- 點擊地圖左上角。
- 依照工具指引設定節點類型。
按下按鍵:o:可動點 (Option node)a:防空點 (Anti-air node)s:反潛點 (Anti-sub node)b:BOSS 點
- 點擊各個節點。
將節點 C 設為可動點
圖片上的點擊位置
E-4.json 設定完成的 mapCoorUpdater
節點 (Nodes)
為了讓 kcauto 能夠處理,所有節點都定義在 data/combat/map_enum.json 中。
幸運的是,你不需要手動將新增的節點加入該檔案。
執行 tool/map/maps_generater.py 即可產生 tool/map/map_enum.json 。
接著用 tool/map/map_enum.json 替換掉 data/combat/map_enum.json 即可。
地圖資料除錯
以防萬一你需要對 E-X.json 檔案進行除錯,
以下參考舊的 E-5.json。地圖資料定義了地圖中的節點、路徑與敵軍類型。
{
"world": "E", // 活動地圖
"subworld": 5, // 第 5 海域
"panel": 1, // 1 號面板(上方)。例如 E1〜E3 若都在第 1 頁時需要此項
"page": 3, // 第 3 頁
"enemy_context": [ // 此地圖出現的敵軍類型。提供資料給任務模組
"subs",
"carriers",
"transports"
],
"nodes": { // 所有節點的座標。相對於遊戲視窗(非瀏覽器或螢幕)左上角的偏移量
"A": {
"coords": [
157,
273
]
},
"L2": {
"coords": [
775,
424
]
}
},
"edges": { // 所有節點間的路徑。資料來源為艦隊Collection 的 API
"1": [
"Start 1",
"A"
],
"37": [
"V",
"U"
]
}
}