Update patrol routing settings

This commit is contained in:
王鹏
2026-05-13 14:31:46 +08:00
parent 5cfb9b3ed9
commit 3b6753cc82
39 changed files with 18 additions and 1159 deletions

View File

@@ -394,6 +394,7 @@ class GameLoopWorker(QThread):
skip_prepare_route=False,
patrol_route_switch_laps=0,
patrol_point_offset_radius=0.15,
random_patrol_direction=False,
):
super().__init__()
self.mode = mode # 'monitor' | 'patrol' | 'combat' | 'quest_follow' | 'flight' | 'record'
@@ -409,6 +410,7 @@ class GameLoopWorker(QThread):
self.vendor_path = vendor_path
self.mailbox_route_path = mailbox_route_path
self.skip_prepare_route = bool(skip_prepare_route)
self.random_patrol_direction = bool(random_patrol_direction)
try:
self.patrol_route_switch_laps = max(0, int(patrol_route_switch_laps or 0))
except (TypeError, ValueError):
@@ -511,6 +513,7 @@ class GameLoopWorker(QThread):
skip_prepare_route=self.skip_prepare_route,
patrol_route_switch_laps=self.patrol_route_switch_laps,
patrol_point_offset_radius=self.patrol_point_offset_radius,
random_patrol_direction=self.random_patrol_direction,
)
self.bot_move._on_hearthstone_stop = self.stop_signal.emit
except ImportError as e:
@@ -822,6 +825,8 @@ class WoWMultiKeyGUI(QMainWindow):
self.patrol_attack_loop_combo.setMinimumWidth(200)
self.skip_prepare_route_check = QCheckBox("跳过准备路线")
self.skip_prepare_route_check.setChecked(False)
self.random_patrol_direction_check = QCheckBox("随机巡逻方向")
self.random_patrol_direction_check.setChecked(False)
self.patrol_route_switch_laps_spin = QSpinBox()
self.patrol_route_switch_laps_spin.setRange(0, 999)
self.patrol_route_switch_laps_spin.setValue(0)
@@ -839,6 +844,7 @@ class WoWMultiKeyGUI(QMainWindow):
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.random_patrol_direction_check)
patrol_layout.addRow("巡逻路线轮换:", self.patrol_route_switch_laps_spin)
patrol_layout.addRow("巡逻点偏移半径:", self.patrol_point_offset_spin)
patrol_layout.addRow("攻击循环:", self.patrol_attack_loop_combo)
@@ -1842,6 +1848,7 @@ class WoWMultiKeyGUI(QMainWindow):
skip_prepare_route = False
patrol_route_switch_laps = 0
patrol_point_offset_radius = 0.15
random_patrol_direction = False
if mode == 'patrol':
profile_path = self.route_profile_combo.currentData() or ""
if not profile_path:
@@ -1863,6 +1870,7 @@ class WoWMultiKeyGUI(QMainWindow):
return
route_profile_path = profile_path
skip_prepare_route = self.skip_prepare_route_check.isChecked()
random_patrol_direction = self.random_patrol_direction_check.isChecked()
patrol_route_switch_laps = int(self.patrol_route_switch_laps_spin.value())
patrol_point_offset_radius = float(self.patrol_point_offset_spin.value())
attack_loop_path = None
@@ -1977,6 +1985,7 @@ class WoWMultiKeyGUI(QMainWindow):
skip_prepare_route=skip_prepare_route,
patrol_route_switch_laps=patrol_route_switch_laps,
patrol_point_offset_radius=patrol_point_offset_radius,
random_patrol_direction=random_patrol_direction,
)
self.game_worker.state_signal.connect(self.state_label.setText)
self.game_worker.log_signal.connect(self.log)