""" 任务跟随:按固定间隔向游戏发送「跟随」与「交互」按键(pydirectinput,与 auto_bot 一致)。 """ import time import pydirectinput class QuestFollowBot: """每隔 interval_sec 秒依次按下跟随键、交互键;不读取游戏状态。""" def __init__( self, follow_key="f", interact_key="4", interval_sec=3.0, log_callback=None, ): self.follow_key = (follow_key or "f").strip().lower() or "f" self.interact_key = (interact_key or "4").strip().lower() or "4" self.interval_sec = max(0.5, float(interval_sec)) self._last_cycle = 0.0 self._log = log_callback or (lambda _m: None) def execute_logic(self, state): """state 可为 None;仅用于与时间间隔配合的定时按键。""" now = time.time() if now - self._last_cycle < self.interval_sec: return self._last_cycle = now try: pydirectinput.press(self.follow_key) time.sleep(0.08) pydirectinput.press(self.interact_key) self._log(f"➡️ 任务跟随: {self.follow_key} → {self.interact_key}") except Exception as e: self._log(f"❌ 任务跟随按键失败: {e}")