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

Binary file not shown.

View File

@@ -262,6 +262,7 @@ class AutoBotMove:
skip_prepare_route=False,
patrol_route_switch_laps=0,
patrol_point_offset_radius=0.15,
random_patrol_direction=False,
):
self.last_tab_time = 0
self.last_interaction_time = 0 # 记录上一次按互动键的时间
@@ -293,6 +294,7 @@ class AutoBotMove:
self._last_mouse_path_scale_signature = None
self.logistics_resume_cooldown_until = 0.0
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):
@@ -414,7 +416,9 @@ class AutoBotMove:
self.current_patrol_route_name = str(route.get("name") or "未命名巡逻路线")
self.current_patrol_route_index = route_index
self.current_patrol_route_laps = 0
reverse_route = random.choice((False, True))
reverse_route = (
random.choice((False, True)) if self.random_patrol_direction else False
)
direction_name = "逆向" if reverse_route else "正向"
if reverse_route:
points = list(reversed(points))

View File

@@ -26,4 +26,4 @@
"mail_send_key": "f8",
"mailbox_open_wait_sec": 2.0,
"mail_send_wait_sec": 60.0
}
}

View File

@@ -1,30 +0,0 @@
[
[
85.35,
74.90
],
[
85.36,
74.93
],
[
85.66,
75.35
],
[
86.1,
75.59
],
[
86.61,
75.59
],
[
87.08,
75.82
],
[
87.24,
75.88
]
]

View File

@@ -1,22 +0,0 @@
[
[
30.97,
73.59
],
[
30.45,
73.49
],
[
30.05,
73.83
],
[
30.55,
73.98
],
[
30.87,
73.57
]
]

View File

@@ -1,30 +0,0 @@
[
[
49.02,
71.16
],
[
51.50,
66.65
],
[
54.43,
68.34
],
[
57.17,
69.91
],
[
57.60,
68.08
],
[
57.43,
67.35
],
[
57.79,
66.08
]
]

View File

@@ -1,170 +0,0 @@
[
[
51.35,
67.35
],
[
51.33,
67.89
],
[
51.3,
68.4
],
[
51.03,
68.87
],
[
50.79,
69.31
],
[
50.5,
69.75
],
[
50.23,
70.22
],
[
49.96,
70.69
],
[
49.74,
71.14
],
[
49.53,
71.61
],
[
49.19,
72.0
],
[
48.94,
72.47
],
[
48.75,
72.95
],
[
48.53,
73.41
],
[
48.18,
73.78
],
[
47.7,
73.94
],
[
47.21,
74.04
],
[
46.71,
74.09
],
[
46.2,
74.11
],
[
45.69,
74.03
],
[
45.27,
73.69
],
[
44.76,
73.54
],
[
44.31,
73.32
],
[
43.97,
72.94
],
[
43.86,
72.42
],
[
44.02,
71.93
],
[
44.32,
71.49
],
[
44.8,
71.25
],
[
45.31,
71.15
],
[
45.82,
70.99
],
[
46.33,
70.88
],
[
46.82,
71.04
],
[
47.34,
71.02
],
[
47.8,
70.82
],
[
48.28,
70.6
],
[
48.8,
70.6
],
[
49.23,
70.32
],
[
49.59,
69.92
],
[
49.78,
69.45
],
[
49.81,
68.9
],
[
49.99,
68.4
],
[
51.35,
67.35
]
]

View File

@@ -1,142 +0,0 @@
[
[
12.1,
54.99
],
[
11.62,
54.79
],
[
11.16,
54.54
],
[
10.82,
54.13
],
[
10.54,
53.7
],
[
10.3,
53.24
],
[
10.06,
52.75
],
[
9.82,
52.31
],
[
9.55,
51.86
],
[
9.42,
51.35
],
[
9.39,
50.83
],
[
9.24,
50.35
],
[
9.15,
49.85
],
[
9.5,
49.44
],
[
9.94,
49.14
],
[
10.38,
48.85
],
[
10.81,
48.56
],
[
11.23,
48.26
],
[
11.65,
47.94
],
[
12.11,
47.65
],
[
12.59,
47.49
],
[
12.54,
48.01
],
[
12.44,
48.53
],
[
12.32,
49.03
],
[
12.2,
49.54
],
[
12.1,
50.07
],
[
12.1,
50.6
],
[
12.33,
51.1
],
[
12.55,
51.59
],
[
12.68,
52.11
],
[
12.78,
52.62
],
[
12.86,
53.12
],
[
12.83,
53.65
],
[
12.76,
54.17
],
[
12.1,
54.99
]
]

View File

@@ -1,70 +0,0 @@
[
[
61.08,
73.18
],
[
61.26,
72.7
],
[
61.44,
72.21
],
[
61.62,
71.71
],
[
61.8,
71.23
],
[
61.98,
70.73
],
[
62.12,
70.23
],
[
62.3,
69.76
],
[
62.48,
69.26
],
[
62.3,
69.76
],
[
62.14,
70.25
],
[
61.99,
70.73
],
[
61.83,
71.21
],
[
61.67,
71.71
],
[
61.51,
72.2
],
[
61.33,
72.68
],
[
61.17,
73.18
]
]

View File

@@ -1,86 +0,0 @@
[
[
10.76,
60.55
],
[
11.12,
60.93
],
[
11.48,
61.31
],
[
12.01,
61.3
],
[
12.53,
61.35
],
[
12.91,
61.72
],
[
13.28,
62.08
],
[
13.8,
62.14
],
[
14.32,
62.07
],
[
14.53,
61.58
],
[
14.42,
61.04
],
[
14.31,
60.51
],
[
14.18,
60.01
],
[
14.03,
59.51
],
[
13.57,
59.28
],
[
13.05,
59.42
],
[
12.54,
59.55
],
[
12.11,
59.88
],
[
12.01,
60.41
],
[
11.53,
60.58
],
[
10.76,
60.55
]
]

View File

@@ -1,46 +0,0 @@
[
[
32.54,
41.22
],
[
32.67,
40.7
],
[
32.85,
40.19
],
[
32.98,
39.67
],
[
32.84,
39.14
],
[
32.35,
39.26
],
[
32.17,
39.76
],
[
31.98,
40.25
],
[
31.77,
40.75
],
[
31.57,
41.23
],
[
32.54,
41.22
]
]

View File

@@ -1,246 +0,0 @@
[
[
44.37,
34.77
],
[
44.37,
35.32
],
[
44.39,
35.82
],
[
44.4,
36.32
],
[
44.41,
36.82
],
[
44.42,
37.32
],
[
44.44,
37.82
],
[
44.46,
38.38
],
[
44.47,
38.94
],
[
44.49,
39.44
],
[
44.5,
39.94
],
[
44.52,
40.5
],
[
44.53,
41.0
],
[
44.55,
41.55
],
[
44.56,
42.1
],
[
44.67,
42.62
],
[
44.71,
43.12
],
[
44.71,
43.67
],
[
44.68,
44.17
],
[
44.66,
44.67
],
[
44.63,
45.17
],
[
44.6,
45.71
],
[
44.58,
46.26
],
[
44.55,
46.76
],
[
44.52,
47.26
],
[
44.54,
47.82
],
[
44.43,
48.35
],
[
44.26,
48.85
],
[
44.02,
49.29
],
[
43.73,
49.75
],
[
43.35,
50.13
],
[
42.92,
49.87
],
[
42.81,
49.35
],
[
42.77,
48.81
],
[
42.71,
48.26
],
[
42.66,
47.71
],
[
42.6,
47.15
],
[
42.56,
46.6
],
[
42.56,
46.09
],
[
42.57,
45.55
],
[
42.58,
45.05
],
[
42.58,
44.54
],
[
42.59,
44.04
],
[
42.6,
43.52
],
[
42.6,
42.97
],
[
42.62,
42.47
],
[
42.64,
41.97
],
[
42.66,
41.42
],
[
42.68,
40.87
],
[
42.69,
40.32
],
[
42.7,
39.82
],
[
42.7,
39.32
],
[
42.7,
38.82
],
[
42.71,
38.27
],
[
42.71,
37.77
],
[
42.72,
37.25
],
[
42.73,
36.75
],
[
42.76,
36.2
],
[
42.89,
35.7
],
[
43.25,
35.3
],
[
44.37,
34.77
]
]

View File

@@ -1,178 +0,0 @@
[
[
35.81,
47.16
],
[
35.43,
47.54
],
[
35.07,
47.91
],
[
34.81,
48.4
],
[
34.81,
48.91
],
[
34.81,
49.43
],
[
35.05,
49.91
],
[
35.42,
50.27
],
[
35.79,
50.62
],
[
36.01,
51.07
],
[
36.11,
51.57
],
[
36.2,
52.09
],
[
36.2,
52.63
],
[
36.19,
53.15
],
[
36.18,
53.66
],
[
36.18,
54.17
],
[
36.17,
54.69
],
[
36.16,
55.21
],
[
36.15,
55.73
],
[
36.15,
56.26
],
[
36.14,
56.76
],
[
36.3,
57.25
],
[
36.83,
57.33
],
[
37.29,
57.12
],
[
37.39,
56.57
],
[
37.4,
56.05
],
[
37.38,
55.54
],
[
37.32,
55.01
],
[
37.27,
54.49
],
[
37.25,
53.96
],
[
37.23,
53.46
],
[
37.21,
52.94
],
[
37.19,
52.41
],
[
37.17,
51.9
],
[
37.1,
51.4
],
[
36.96,
50.86
],
[
36.79,
50.34
],
[
36.62,
49.82
],
[
36.49,
49.28
],
[
36.39,
48.77
],
[
36.3,
48.27
],
[
36.2,
47.77
],
[
36.09,
47.28
],
[
35.81,
47.16
]
]

View File

@@ -1,26 +0,0 @@
[
[
85.23,
74.7
],
[
85.51,
75.15
],
[
85.8,
75.58
],
[
86.31,
75.64
],
[
86.81,
75.63
],
[
87.26,
75.89
]
]

View File

@@ -1,74 +0,0 @@
[
[
85.31,
74.79
],
[
85.0,
74.37
],
[
84.71,
73.94
],
[
84.4,
73.49
],
[
84.11,
73.07
],
[
83.81,
72.65
],
[
83.52,
73.08
],
[
83.44,
73.59
],
[
83.54,
74.12
],
[
83.58,
74.66
],
[
83.68,
75.18
],
[
83.77,
75.71
],
[
83.87,
76.23
],
[
83.97,
76.76
],
[
84.36,
76.44
],
[
84.62,
75.99
],
[
84.89,
75.56
],
[
85.31,
74.79
]
]

View File

@@ -1,34 +0,0 @@
[
[
47.69,
70.25
],
[
47.55,
70.74
],
[
47.4,
71.22
],
[
47.25,
71.7
],
[
46.79,
71.5
],
[
46.93,
71.02
],
[
47.39,
70.8
],
[
47.69,
70.25
]
]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 412 B

After

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 B

After

Width:  |  Height:  |  Size: 74 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 B

After

Width:  |  Height:  |  Size: 95 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 B

After

Width:  |  Height:  |  Size: 92 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 B

After

Width:  |  Height:  |  Size: 89 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 B

After

Width:  |  Height:  |  Size: 85 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 B

After

Width:  |  Height:  |  Size: 74 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 B

After

Width:  |  Height:  |  Size: 89 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 B

After

Width:  |  Height:  |  Size: 92 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 B

After

Width:  |  Height:  |  Size: 85 B

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)

View File

@@ -12,11 +12,11 @@
"eat_hp_threshold": 30,
"eat_max_wait_sec": 30.0,
"enable_mouse_loot": true,
"use_tianya_box": true,
"use_ghost_box": false,
"use_tianya_box": false,
"use_ghost_box": true,
"use_hardware_input": true,
"turn_error_key": "4",
"turn_error_hold_sec": 0.5,
"distance_interact_pause_sec": 1.0
}
}
}