55logger = Logger .get_logger (__name__ )
66
77class TriggerDeactivateException (Exception ):
8- """未处于战斗状态异常 。"""
8+ """停止激活异常 。"""
99 pass
1010
1111class AutoMoveTask (BaseCombatTask , TriggerTask ):
1212
1313 def __init__ (self , * args , ** kwargs ):
1414 super ().__init__ (* args , ** kwargs )
1515 self .name = "自动穿引共鸣"
16- self .description = "需使用鼠标侧键主动激活"
16+ self .description = "需使用鼠标侧键主动激活,运行中也可使用左键打断 "
1717 self .default_config .update ({
1818 '激活键' : 'x1' ,
1919 '按下时间' : 0.50 ,
@@ -25,28 +25,17 @@ def __init__(self, *args, **kwargs):
2525 '按下时间' : '左键按住多久' ,
2626 '间隔时间' : '左键释放后等待多久' ,
2727 })
28- self .listener = None
2928 self .manual_activate = False
3029 self .signal = False
30+ self .signal_left = False
3131 self .is_down = False
32- self ._executor .exit_event .bind_stop (self )
33-
34- def disable (self ):
35- super ().disable ()
36- self .stop ()
37-
38- def pause (self ):
39- super ().pause ()
40- self .stop ()
41-
42- def stop (self ):
43- self .manual_activate = False
44- self .signal = False
45- if self .listener :
46- self .listener .stop ()
47- self .listener = None
32+ self .connected = False
4833
4934 def run (self ):
35+ if not self .connected :
36+ self .connected = True
37+ og .my_app .clicked .connect (self .on_global_click )
38+
5039 if self .signal :
5140 self .signal = False
5241 if self .in_team () and og .device_manager .hwnd_window .is_foreground ():
@@ -55,11 +44,6 @@ def run(self):
5544 if not self .in_team ():
5645 return
5746
58- if not self .listener :
59- self .listener = mouse .Listener (on_click = self .on_click )
60- # self.listener = keyboard.Listener(on_press=self.on_press)
61- self .listener .start ()
62-
6347 while self .manual_activate :
6448 try :
6549 self .do_move ()
@@ -76,53 +60,41 @@ def run(self):
7660 def do_move (self ):
7761 self .mouse_down ()
7862 self .is_down = True
79- self .sleep (self .config .get ('按下时间' , 0.50 ))
63+ self .sleep_check (self .config .get ('按下时间' , 0.50 ), False )
8064 self .mouse_up ()
8165 self .is_down = False
8266 self .sleep_check (self .config .get ('间隔时间' , 0.45 ))
8367
84- def sleep_check (self , sec ):
68+ def sleep_check (self , sec , check_signal_flag = True ):
8569 remaining = sec
8670 step = 0.2
8771 while remaining > 0 :
8872 s = step if remaining > step else remaining
8973 self .sleep (s )
9074 remaining -= s
91- if self .signal :
75+ if ( self .signal and check_signal_flag ) or self . signal_left :
9276 self .switch_state ()
9377 if not self .manual_activate :
9478 raise TriggerDeactivateException ()
9579
9680 def switch_state (self ):
81+ self .signal_left = False
9782 self .signal = False
9883 self .manual_activate = not self .manual_activate
9984 if self .manual_activate :
10085 logger .info ("激活快速移动" )
10186 else :
10287 logger .info ("关闭快速移动" )
10388
104- def on_click (self , x , y , button , pressed ):
89+ def on_global_click (self , x , y , button , pressed ):
10590 if self ._executor .paused :
10691 return
10792 if self .config .get ('激活键' , 'x2' ) == 'x1' :
10893 btn = mouse .Button .x1
10994 else :
11095 btn = mouse .Button .x2
111- if pressed and button == btn :
112- self .signal = True
113-
114- # def on_press(self, key):
115- # if self._executor.paused:
116- # return
117- # if not self.in_team() or not og.device_manager.hwnd_window.is_foreground():
118- # return
119- # active_key = getattr(keyboard.Key, self.config.get('激活键').lower())
120- # if key == active_key:
121- # self.manual_activate = not self.manual_activate
122- # if self.manual_activate:
123- # logger.info("激活快速移动")
124- # else:
125- # logger.info("关闭快速移动")
126-
127-
128-
96+ if pressed :
97+ if button == btn :
98+ self .signal = True
99+ elif button == mouse .Button .left and self .manual_activate :
100+ self .signal_left = True
0 commit comments