Add option to skip prepare route

This commit is contained in:
王鹏
2026-05-12 17:21:14 +08:00
parent 2a4684e700
commit d01b2cb9c2
2 changed files with 15 additions and 0 deletions

View File

@@ -391,6 +391,7 @@ class GameLoopWorker(QThread):
turn_error_key=None,
turn_error_hold_sec=None,
distance_interact_pause_sec=None,
skip_prepare_route=False,
):
super().__init__()
self.mode = mode # 'monitor' | 'patrol' | 'combat' | 'quest_follow' | 'flight' | 'record'
@@ -405,6 +406,7 @@ class GameLoopWorker(QThread):
self.prepare_route_path = prepare_route_path
self.vendor_path = vendor_path
self.mailbox_route_path = mailbox_route_path
self.skip_prepare_route = bool(skip_prepare_route)
self.record_filename = record_filename or 'waypoints'
self.record_min_distance = record_min_distance
self.attack_loop_path = attack_loop_path or None
@@ -496,6 +498,7 @@ class GameLoopWorker(QThread):
turn_error_hold_sec=self.turn_error_hold_sec,
distance_interact_pause_sec=self.distance_interact_pause_sec,
mailbox_route_path=self.mailbox_route_path,
skip_prepare_route=self.skip_prepare_route,
)
self.bot_move._on_hearthstone_stop = self.stop_signal.emit
except ImportError as e:
@@ -805,10 +808,13 @@ class WoWMultiKeyGUI(QMainWindow):
self.route_profile_combo.setMinimumWidth(240)
self.patrol_attack_loop_combo = QComboBox()
self.patrol_attack_loop_combo.setMinimumWidth(200)
self.skip_prepare_route_check = QCheckBox("跳过准备路线")
self.skip_prepare_route_check.setChecked(False)
self._refresh_recorder_combos()
refresh_btn = QPushButton("🔄 刷新列表")
refresh_btn.clicked.connect(self._refresh_recorder_combos)
patrol_layout.addRow("路线方案 JSON:", self.route_profile_combo)
patrol_layout.addRow("", self.skip_prepare_route_check)
patrol_layout.addRow("攻击循环:", self.patrol_attack_loop_combo)
patrol_layout.addRow("", refresh_btn)
self.patrol_group.setVisible(False)
@@ -1807,6 +1813,7 @@ class WoWMultiKeyGUI(QMainWindow):
flight_json_path = None
resurrection_route_a_path = None
resurrection_route_b_path = None
skip_prepare_route = False
if mode == 'patrol':
profile_path = self.route_profile_combo.currentData() or ""
if not profile_path:
@@ -1827,6 +1834,7 @@ class WoWMultiKeyGUI(QMainWindow):
QMessageBox.warning(self, "提示", "已启用包满邮寄,路线方案需包含 mailbox_route 邮箱路线")
return
route_profile_path = profile_path
skip_prepare_route = self.skip_prepare_route_check.isChecked()
attack_loop_path = None
if mode == 'patrol':
attack_loop_path = self.patrol_attack_loop_combo.currentData() or None
@@ -1936,6 +1944,7 @@ class WoWMultiKeyGUI(QMainWindow):
turn_error_key=turn_error_key,
turn_error_hold_sec=turn_error_hold_sec,
distance_interact_pause_sec=distance_interact_pause_sec,
skip_prepare_route=skip_prepare_route,
)
self.game_worker.state_signal.connect(self.state_label.setText)
self.game_worker.log_signal.connect(self.log)