Skip to content

Commit 5e931a8

Browse files
committed
优化 CombatCheck 和 AutoMoveTask
1 parent 584f831 commit 5e931a8

2 files changed

Lines changed: 23 additions & 10 deletions

File tree

src/combat/CombatCheck.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ def __init__(self, *args, **kwargs):
1010
self.last_combat_check = 0
1111
self.combat_check_interval = 0.5
1212
self.out_of_combat_reason = ""
13+
self.manual_in_combat = False
1314

1415
def in_combat(self):
1516
"""检查当前是否处于战斗状态。
@@ -20,7 +21,7 @@ def in_combat(self):
2021
if self._in_combat:
2122
now = time.time()
2223
if now - self.last_combat_check > self.combat_check_interval:
23-
in_combat = getattr(self, "manual_in_combat", False)
24+
in_combat = self.manual_in_combat and self.in_team()
2425
self.last_combat_check = now
2526
if in_combat:
2627
return True
@@ -41,4 +42,5 @@ def reset_to_false(self, recheck=False, reason=""):
4142
return False
4243

4344
def do_reset_to_false(self):
44-
self._in_combat = False
45+
self._in_combat = False
46+
self.manual_in_combat = False

src/tasks/AutoMoveTask.py

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ def __init__(self, *args, **kwargs):
2727
})
2828
self.listener = None
2929
self.manual_activate = False
30+
self.signal = False
3031
self.is_down = False
3132
self._executor.exit_event.bind_stop(self)
3233

@@ -40,14 +41,20 @@ def pause(self):
4041

4142
def stop(self):
4243
self.manual_activate = False
44+
self.signal = False
4345
if self.listener:
4446
self.listener.stop()
4547
self.listener = None
4648

4749
def run(self):
50+
if self.signal:
51+
self.signal = False
52+
if self.in_team() and og.device_manager.hwnd_window.is_foreground():
53+
self.switch_state()
54+
4855
if not self.in_team():
4956
return
50-
57+
5158
if not self.listener:
5259
self.listener = mouse.Listener(on_click=self.on_click)
5360
# self.listener = keyboard.Listener(on_press=self.on_press)
@@ -81,24 +88,28 @@ def sleep_check(self, sec):
8188
s = step if remaining > step else remaining
8289
self.sleep(s)
8390
remaining -= s
91+
if self.signal:
92+
self.switch_state()
8493
if not self.manual_activate:
8594
raise TriggerDeactivateException()
95+
96+
def switch_state(self):
97+
self.signal = False
98+
self.manual_activate = not self.manual_activate
99+
if self.manual_activate:
100+
logger.info("激活快速移动")
101+
else:
102+
logger.info("关闭快速移动")
86103

87104
def on_click(self, x, y, button, pressed):
88105
if self._executor.paused:
89106
return
90-
if not self.in_team() or not og.device_manager.hwnd_window.is_foreground():
91-
return
92107
if self.config.get('激活键', 'x2') == 'x1':
93108
btn = mouse.Button.x1
94109
else:
95110
btn = mouse.Button.x2
96111
if pressed and button == btn:
97-
self.manual_activate = not self.manual_activate
98-
if self.manual_activate:
99-
logger.info("激活快速移动")
100-
else:
101-
logger.info("关闭快速移动")
112+
self.signal = True
102113

103114
# def on_press(self, key):
104115
# if self._executor.paused:

0 commit comments

Comments
 (0)