def __init__(self, needMark=False): """ 初始化 :param needMark: 是否需要自动标记式神 """ # 初始化窗口信息 get_game_hwnd() self.hwndlist = hwndlist # 检测窗口信息是否正确 num = len(self.hwndlist) if num == 2: logging.info('检测到两个窗口,窗口信息正常') else: logging.warning('检测到' + str(num) + '个窗口,窗口信息异常!') # 初始化司机和打手 for hwnd in hwndlist: yys = GameControl(hwnd) if yys.find_game_img('img\\KAI-SHI-ZHAN-DOU.png'): self.driver = DriverFighter(hwnd=hwnd, needMark=needMark) hwndlist.remove(hwnd) logging.info('发现司机') self.passenger = FighterPassenger(hwnd=hwndlist[0]) logging.info('发现乘客')
class DualFighter(): def __init__(self): # 初始化窗口信息 get_game_hwnd() self.hwndlist = hwndlist # 检测窗口信息是否正确 num = len(self.hwndlist) if num == 2: logging.info('检测到两个窗口,窗口信息正常') else: logging.warning('检测到' + str(num) + '个窗口,窗口信息异常!') # 初始化司机和打手 for hwnd in hwndlist: yys = GameControl(hwnd) if yys.find_game_img('img\\KAI-SHI-ZHAN-DOU.png'): self.driver = DriverFighter(hwnd=hwnd, click_partner=False) hwndlist.remove(hwnd) logging.info('发现司机') self.passenger = FighterPassenger(hwnd=hwndlist[0]) logging.info('发现乘客') def start(self): task1 = threading.Thread(target=self.driver.start) task2 = threading.Thread(target=self.passenger.start) task1.start() task2.start() task1.join() task2.join() def deactivate(self): self.driver.deactivate() self.passenger.deactivate()
def __init__(self, needMark=False): # 初始化窗口信息 try: get_game_hwnd() self.hwndlist = hwndlist # 检测窗口信息是否正确 num = len(self.hwndlist) if num == 3: logging.info('检测到三个窗口,窗口信息正常') else: logging.info('检测到' + str(num) + '个窗口,窗口信息异常!脚本停止') hwndlist.clear() return None # 初始化司机和打手 for hwnd in hwndlist: yys = GameControl(hwnd) if yys.find_game_img('img\\KAI-SHI-ZHAN-DOU.png'): self.driver = DriverFighter(hwnd=hwnd, needMark=needMark, passengerNum=3) hwndlist.remove(hwnd) logging.info('发现司机') self.passengerOne = FighterPassenger(hwnd=hwndlist[0]) self.passengerTwo = FighterPassenger(hwnd=hwndlist[1]) logging.info('发现两个乘客') except IndexError: logging.info('游戏窗体检测出现异常')
class FighterPassengerDouble(): def __init__(self): # 初始化窗口信息 get_game_hwnd() self.hwndlist = hwndlist # 检测窗口信息是否正确 num = len(self.hwndlist) if num == 2: logging.info('检测到两个窗口,窗口信息正常') else: logging.warning('检测到' + str(num) + '个窗口,窗口信息异常!') self.passenger1 = FighterPassenger(hwnd=hwndlist[0], mark=False) logging.info('发现乘客1') self.passenger2 = FighterPassenger(hwnd=hwndlist[1], mark=False) logging.info('发现乘客2') def start(self): task1 = threading.Thread(target=self.passenger1.start) task2 = threading.Thread(target=self.passenger2.start) task1.start() task2.start() task1.join() task2.join() def deactivate(self): self.hwndlist = [] self.passenger1.deactivate() self.passenger2.deactivate()
class ThreePerson(): def __init__(self, needMark=False): # 初始化窗口信息 try: get_game_hwnd() self.hwndlist = hwndlist # 检测窗口信息是否正确 num = len(self.hwndlist) if num == 3: logging.info('检测到三个窗口,窗口信息正常') else: logging.info('检测到' + str(num) + '个窗口,窗口信息异常!脚本停止') hwndlist.clear() return None # 初始化司机和打手 for hwnd in hwndlist: yys = GameControl(hwnd) if yys.find_game_img('img\\KAI-SHI-ZHAN-DOU.png'): self.driver = DriverFighter(hwnd=hwnd, needMark=needMark, passengerNum=3) hwndlist.remove(hwnd) logging.info('发现司机') self.passengerOne = FighterPassenger(hwnd=hwndlist[0]) self.passengerTwo = FighterPassenger(hwnd=hwndlist[1]) logging.info('发现两个乘客') except IndexError: logging.info('游戏窗体检测出现异常') def start(self): try: task1 = threading.Thread(target=self.driver.start) task2 = threading.Thread(target=self.passengerOne.start) task3 = threading.Thread(target=self.passengerTwo.start) task1.start() task2.start() task3.start() task1.join() task2.join() task3.join() except AttributeError: logging.error('游戏异常,请检查游戏是否运行') def deactivate(self): # 停止脚本后需要移除所有获取的窗体句柄 hwndlist.clear() self.driver.deactivate() self.passengerOne.deactivate() self.passengerTwo.deactivate()
def start_onmyoji(self): section = self.ui.tabWidget.currentIndex() # 读取主要副本 self.get_conf(section) if section == 0: # 御魂 if self.ui.mitama_single.isChecked(): # 单刷 self.fight = SingleFight() elif self.ui.mitama_driver.isChecked(): # 司机 self.fight = DriverFighter() if self.ui.mitama_passenger.isChecked(): # 乘客 self.fight = FighterPassenger() if self.ui.mitama_dual.isChecked(): # 双开 self.fight = DualFighter() elif section == 1: # 御灵 self.fight = GoryouFight() elif section == 2: # 探索 self.fight = ExploreFight() task = threading.Thread(target=self.fight.start) task.start()
def start_onmyoji(self): section = self.ui.tabWidget.currentIndex() # 读取配置 self.get_conf(section) if section == 0: # 御魂 if self.ui.mitama_single.isChecked(): # 单刷 self.fight = SingleFight() elif self.ui.mitama_driver.isChecked(): # 司机 self.fight = DriverFighter(self.ui.autoMark.isChecked()) elif self.ui.mitama_passenger.isChecked(): # 乘客 self.fight = FighterPassenger() elif self.ui.mitama_dual.isChecked(): # 双开 self.fight = DualFighter(self.ui.autoMark.isChecked()) elif self.ui.mitama_three.isChecked(): self.fight = ThreePerson(self.ui.autoMark.isChecked()) elif section == 1: self.fight = ExploreFight() task = threading.Thread(target=self.fight.start) task.start()
def start_onmyoji(self): # 读取配置 self.get_conf() section = self.ui.tabWidget.currentIndex() if section == 0: # 御魂 if mode == 0: # 单刷 fight = SingleFight() if mode == 2: # 司机 fight = DriverFighter() if mode == 3: # 乘客 fight = FighterPassenger() elif section == 1: # 探索 fight = ExploreFight() self.task = threading.Thread(target = fight.start) self.task.start()
def __init__(self): # 初始化窗口信息 get_game_hwnd() self.hwndlist = hwndlist # 检测窗口信息是否正确 num = len(self.hwndlist) if num == 2: logging.info('检测到两个窗口,窗口信息正常') else: logging.warning('检测到' + str(num) + '个窗口,窗口信息异常!') self.passenger1 = FighterPassenger(hwnd=hwndlist[0], mark=False) logging.info('发现乘客1') self.passenger2 = FighterPassenger(hwnd=hwndlist[1], mark=False) logging.info('发现乘客2')
def init(): conf = configparser.ConfigParser() # 读取配置文件 conf.read('conf.ini', encoding="utf-8") # 设置缩放 # Query DPI Awareness (Windows 10 and 8) awareness = ctypes.c_int() errorCode = ctypes.windll.shcore.GetProcessDpiAwareness( 0, ctypes.byref(awareness)) # Set DPI Awareness (Windows 10 and 8) client = conf.getint('DEFAULT', 'client') if client == 0: errorCode = ctypes.windll.shcore.SetProcessDpiAwareness(0) else: errorCode = ctypes.windll.shcore.SetProcessDpiAwareness(1) # 读取主要副本 section = conf.getint('DEFAULT', 'run_section') if section == 0: # 御魂 mode = conf.getint('DEFAULT', 'run_mode') if mode == 0: # 单刷 fight = SingleFight() elif mode == 1: # 司机 fight = DriverFighter() elif mode == 2: # 乘客 fight = FighterPassenger() elif mode == 3: # 双开 fight = DualFighter() elif section == 1: # 御灵 fight = GoryouFight() elif section == 2: # 探索 fight = ExploreFight() fight.start()
def yuhun(): '''御魂战斗''' if mode == 0: # 单刷 fight = SingleFight() fight.start() if mode == 2: # 司机 fight = DriverFighter() fight.start() if mode == 3: # 乘客 fight = FighterPassenger() fight.start()
def start_onmyoji(self): section = self.ui.tabWidget.currentIndex() # 读取配置 self.get_conf(section) if section == 0: # 御魂 if self.ui.mitama_single.isChecked(): # 单刷 self.fight = SingleFight() elif self.ui.mitama_driver.isChecked(): # 司机 self.fight = DriverFighter() elif self.ui.mitama_passenger.isChecked(): # 乘客 self.fight = FighterPassenger() elif self.ui.mitama_dual.isChecked(): # 双开 self.fight = DualFighter() elif section == 1: # 探索 self.fight = ExploreFight() elif section == 2: # 百鬼夜行 self.fight = Ghost() elif section == 3: # 结界突破 if self.ui.individual.isChecked(): # 个人突破 self.fight = Breakthrough() elif self.ui.shack.isChecked(): # 个人突破 self.fight = ShackBreakthrough() elif section == 4: self.fight = Task() task = threading.Thread(target=self.fight.start) task.start()
def init(): conf = configparser.ConfigParser() # 读取配置文件 conf.read('conf.ini', encoding="utf-8") # 读取主要副本 section = conf.getint('DEFAULT', 'run_section') if section == 0: # 御魂 mode = conf.getint('DEFAULT', 'run_mode') if mode == 0: # 单刷 fight = SingleFight() elif mode == 1: # 司机 fight = DriverFighter() elif mode == 2: # 乘客 fight = FighterPassenger() elif mode == 3: # 双开 fight = DualFighter() elif section == 1: # 御灵 fight = GoryouFight() elif section == 2: # 探索 fight = ExploreFight() fight.start()