在提问之前
描述问题
在“作战档案”中选择 档案 定向折叠(war_archives_20221222_cn),关卡名称填写 D3-3,希望使用说明中“关卡名后追加 -3,三战后撤退”的功能。
目前存在两个连续问题:
D3-3 会被直接当作地图模块名加载,尝试导入 campaign.war_archives_20221222_cn.d3-3,随后提示地图文件不存在。
- 如果为该档案补充
d3_3.py 并让解析成功,在开启“使用自律寻敌”时,第三战后直接调用 withdraw() 会卡在撤退流程。此时自律寻敌仍处于运行状态,需要先点击地图右下角的自律寻敌开关将其关闭,回到普通地图状态后再执行撤退。
如何复现
- 前往“活动 → 作战档案”。
- 活动名称选择“档案 定向折叠”。
- 关卡名称填写
D3-3。
- 开启“使用自律寻敌”。
- 启动作战档案任务。
现状:
- 未适配时直接报
Map file not found: campaign.war_archives_20221222_cn.d3-3。
- 仅补充
d3_3 三战逻辑后,第三战会进入撤退函数,但无法完成撤退。
预期行为
D3-3 应解析为该活动目录下的 d3_3.py,同时 UI 入口仍使用 D3。
- 开启自律寻敌时,第三战结算后应先关闭自律寻敌,再执行地图撤退。
- 未提供对应别名地图的其他活动不应受到影响。
相关 Logs
WARNING | Map file not found: campaign.war_archives_20221222_cn.d3-3
WARNING | Existing files: ['d1', 'c1', 'b1', 'a1', 'c2', 'b2', 'd3', 'a2', 'd2', 'a3', 'c3', 'b3']
INFO | Stage name d3-3 converted to d3_3
INFO | Stage d3_3 uses entrance d3 in UI
INFO | [Map Battle] 3
INFO | BATTLE_2
INFO | Combat end.
INFO | Third auto-search battle finished. Withdrawing immediately.
INFO | <<< MAP WITHDRAW >>>
# 此后卡住,未完成撤退
根因与已验证修复建议
1. 通用处理存在的活动关卡别名
module/campaign/run.py::handle_stage_name() 当前仅对 event_20251218_cn 硬编码转换 d3-3 -> d3_3。建议改为:仅当当前活动目录实际存在下划线别名地图时进行转换。
alias = name.replace('-', '_')
if alias != name and alias in map_files(folder):
name = alias
这样可以支持档案地图,同时不会让没有 d3_3.py 的活动错误转换。
2. 为定向折叠档案增加 d3_3.py
可复用 .d3 的 MAP、Config 和 Campaign,将 _map_battle 设为 3,并在第三战后撤退。
3. 自律寻敌下先关闭自律再撤退
第三战结算后不能直接调用 withdraw()。已实际验证可行的流程是:
- 点击
AUTO_SEARCH_MAP_OPTION_ON,关闭自律寻敌;
- 等待
is_in_map();
- 调用
withdraw()。
示意:
def withdraw_after_auto_search(self):
self.interval_reset(AUTO_SEARCH_MAP_OPTION_ON)
for _ in self.loop():
self.device.screenshot()
if self.is_auto_search_running():
self.appear_then_click(AUTO_SEARCH_MAP_OPTION_ON, interval=2)
continue
if self.handle_auto_search_exit():
continue
if self.is_in_map():
self.withdraw()
上述修复已在 CN 服“档案 定向折叠”D3 实际运行验证:开启自律寻敌后,第三战结算、关闭自律、撤退均成功。
在提问之前
描述问题
在“作战档案”中选择 档案 定向折叠(
war_archives_20221222_cn),关卡名称填写D3-3,希望使用说明中“关卡名后追加-3,三战后撤退”的功能。目前存在两个连续问题:
D3-3会被直接当作地图模块名加载,尝试导入campaign.war_archives_20221222_cn.d3-3,随后提示地图文件不存在。d3_3.py并让解析成功,在开启“使用自律寻敌”时,第三战后直接调用withdraw()会卡在撤退流程。此时自律寻敌仍处于运行状态,需要先点击地图右下角的自律寻敌开关将其关闭,回到普通地图状态后再执行撤退。如何复现
D3-3。现状:
Map file not found: campaign.war_archives_20221222_cn.d3-3。d3_3三战逻辑后,第三战会进入撤退函数,但无法完成撤退。预期行为
D3-3应解析为该活动目录下的d3_3.py,同时 UI 入口仍使用D3。相关 Logs
根因与已验证修复建议
1. 通用处理存在的活动关卡别名
module/campaign/run.py::handle_stage_name()当前仅对event_20251218_cn硬编码转换d3-3 -> d3_3。建议改为:仅当当前活动目录实际存在下划线别名地图时进行转换。这样可以支持档案地图,同时不会让没有
d3_3.py的活动错误转换。2. 为定向折叠档案增加
d3_3.py可复用
.d3的MAP、Config和Campaign,将_map_battle设为3,并在第三战后撤退。3. 自律寻敌下先关闭自律再撤退
第三战结算后不能直接调用
withdraw()。已实际验证可行的流程是:AUTO_SEARCH_MAP_OPTION_ON,关闭自律寻敌;is_in_map();withdraw()。示意:
上述修复已在 CN 服“档案 定向折叠”D3 实际运行验证:开启自律寻敌后,第三战结算、关闭自律、撤退均成功。