Skip to content

Commit 4b07eb1

Browse files
committed
fix(AutoDefence): 修复复位失败后退出副本不重开任务的问题
复位失败时 walk_to_aim 会调用 give_up_mission() 退出副本后 return, 但 handle_mission_start 未检查此情况,导致持续等待 current_wave 超时后 调用 open_in_mission_menu() 却已在副本外,程序卡死无法重开。 修复:在 external_movement 执行完毕后立即检查 in_team(), 若已不在队伍中则直接 return,让主循环通过 handle_mission_interface 重开任务。
1 parent 3768ed0 commit 4b07eb1

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

src/tasks/AutoDefence.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,11 @@ def handle_mission_start(self):
137137
if self.external_movement is not _default_movement:
138138
self.log_info("任务开始,执行外部移动逻辑")
139139
self.external_movement(delay=2)
140+
# 复位失败时 walk_to_aim 会调用 give_up_mission() 退出副本后直接 return,
141+
# 此时已不在队伍中,应立即返回让主循环重新识别界面并重开任务
142+
if not self.in_team():
143+
self.log_info("外部移动后未在队伍中(可能复位失败已退出副本),等待重开任务")
144+
return
140145
time_out = self.action_timeout + 10
141146
self.log_info(f"外部移动执行完毕,等待战斗开始,{time_out}秒后超时")
142147
if not self.wait_until(lambda: self.current_wave != -1 or self.find_esc_menu(), post_action=self.get_wave_info,

0 commit comments

Comments
 (0)