From f379ddc78974562c5c4789acb6e46c480d5a10bc Mon Sep 17 00:00:00 2001 From: YangHu Date: Wed, 26 Feb 2020 10:58:35 +0800 Subject: [PATCH] 1.0.1.0226 --- CHANGELOG.md | 5 +++++ README.md | 2 ++ conf_example.ini | 2 -- explore/explore.py | 16 ++++---------- gameLib/fighter.py | 42 +++++++++++++++++++++++++++++++----- goryou/single_fight.py | 7 ++---- gui/tkui.py | 11 ---------- img/JIN-BI.png | Bin 9340 -> 0 bytes img/SHENG-LI.png | Bin 0 -> 18157 bytes img/TIAO-DAN.png | Bin 0 -> 10282 bytes mitama/fighter_driver.py | 8 ++----- mitama/fighter_passenger.py | 8 ++----- mitama/single_fight.py | 6 ++---- tools/utilities.py | 5 ++++- ui.py | 2 -- 15 files changed, 60 insertions(+), 54 deletions(-) delete mode 100644 img/JIN-BI.png create mode 100644 img/SHENG-LI.png create mode 100644 img/TIAO-DAN.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 794599c..3a07d97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # CHANGELOG +## v1.0.1.0226 +#### New features: +* 取消了满级狗粮识别的延迟设定,现在改为更智能的自动处理方式。 +* 针对近期鬼使黑的问题,大幅优化了结算方式。 + ## v1.0.1.0224 #### New features: * 系统缩放自适应。 diff --git a/README.md b/README.md index 5c2b4e4..352e973 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,8 @@ 同时感谢sup817ch的图像识别思路,本项目game_ctl模块基于其[工作基础](https://github.com/sup817ch/AutoOnmyoji)。 +感谢Abc为本程序提供了应用图标。 + # 注意事项 环境:python 3.7, 32 bit;yys PC端 默认分辨率 (1136x640);win 10系统,屏幕(1920x1080),显示设置100%。 diff --git a/conf_example.ini b/conf_example.ini index e531bb9..bf5e452 100644 --- a/conf_example.ini +++ b/conf_example.ini @@ -33,8 +33,6 @@ fight_boss_enable = False slide_shikigami = True #slide_shikigami_progress 进度条位置(百分比) slide_shikigami_progress = 10 -#zhunbei_delay 满级狗粮识别延迟(秒) -zhunbei_delay = 3 #change_shikigami 更换狗粮卡片:0-素材;1-N卡;2-R卡 change_shikigami = 1 diff --git a/explore/explore.py b/explore/explore.py index e9ab32a..2e85e48 100644 --- a/explore/explore.py +++ b/explore/explore.py @@ -21,7 +21,6 @@ def __init__(self): self.slide_shikigami = conf.getboolean('explore', 'slide_shikigami') self.slide_shikigami_progress = conf.getint( 'explore', 'slide_shikigami_progress') - self.zhunbei_delay = conf.getfloat('explore', 'zhunbei_delay') self.change_shikigami = conf.getint('explore', 'change_shikigami') def next_scene(self): @@ -161,14 +160,11 @@ def fight_moster(self, mood1, mood2): return -1 # 攻击怪 - self.yys.mouse_click_bg(fight_pos) - if not self.yys.wait_game_img('img\\ZHUN-BEI.png', self.zhunbei_delay, False): - break + self.yys.mouse_click_bg(fight_pos) self.log.writeinfo('已进入战斗') - time.sleep(1) # 等待式神准备 - #self.yys.wait_game_color(((1024,524),(1044, 544)), (138,198,233), 30) + self.yys.wait_game_img_knn('img\\ZHUN-BEI.png', thread=30) logging.info('式神准备完成') # 检查狗粮经验 @@ -179,15 +175,11 @@ def fight_moster(self, mood1, mood2): TansuoPos.ready_btn, mood1.get1mood()/1000) # 检查是否打完 - self.check_end() + state = self.check_end() mood1.moodsleep() # 在战斗结算页面 - self.yys.mouse_click_bg(ut.firstposition()) - self.click_until('结算', 'img/JIN-BI.png', - *CommonPos.second_position, mood2.get1mood()/1000) - self.click_until('结算', 'img/JIN-BI.png', - *CommonPos.second_position, mood2.get1mood()/1000, False) + self.get_reward(mood2, state) # 返回结果 if boss: diff --git a/gameLib/fighter.py b/gameLib/fighter.py index 82bed0d..368a7d5 100644 --- a/gameLib/fighter.py +++ b/gameLib/fighter.py @@ -2,6 +2,7 @@ from gameLib.game_scene import GameScene from tools.logsystem import WriteLog from tools.game_pos import TansuoPos, YuhunPos +import tools.utilities as ut import configparser import logging @@ -67,10 +68,17 @@ def check_battle(self): self.log.writeinfo(self.name + '已进入战斗') def check_end(self): - # 检测是否打完 + ''' + 检测是否打完 + :return: 胜利页面返回0;奖励页面返回1 + ''' self.log.writeinfo(self.name + '检测是战斗是否结束') - self.yys.wait_game_img('img\\JIE-SU.png', self.max_win_time) - self.log.writeinfo(self.name + "战斗结束") + if self.yys.wait_game_img_knn('img/SHENG-LI.png', self.max_win_time, False, 8): + logging.info('战斗成功') + return 0 + elif self.yys.wait_game_img_knn('img/TIAO-DAN.png', 2, thread=20): + logging.info('本轮战斗结束') + return 1 def check_times(self): ''' @@ -90,6 +98,30 @@ def check_times(self): self.run = False os._exit(0) + def get_reward(self, mood, state): + ''' + 结算处理 + :param mood: 状态函数 + :param state: 上一步的状态。0-战斗成功页面; 1-领取奖励页面 + ''' + if state == 0: + self.click_until_knn('奖励', 'img/TIAO-DAN.png', ut.firstposition(), None, mood.get1mood()/1000, thread=20) + start_time = time.time() + while time.time()-start_time <= self.max_op_time and self.run: + result = self.yys.find_game_img_knn('img/TIAO-DAN.png', thread=2) + if not result: + logging.info(self.name + '结算成功') + return + else: + self.yys.mouse_click_bg(ut.secondposition()) + self.log.writeinfo(self.name + '点击结算') + mood.moodsleep() + self.log.writewarning(self.name + '点击结算失败!') + # 提醒玩家点击失败,并在5s后退出 + self.yys.activate_window() + time.sleep(5) + self.yys.quit_game() + def mitama_team_click(self): ''' 御魂标记己方式神 @@ -151,7 +183,7 @@ def click_until(self, tag, img_path, pos, pos_end=None, step_time=0.5, appear=Tr # 点击指定位置并等待下一轮 self.yys.mouse_click_bg(pos, pos_end) self.log.writeinfo(self.name + '点击 ' + tag) - time.sleep(step_time) + ut.mysleep(step_time*1000) self.log.writewarning(self.name + '点击 ' + tag + ' 失败!') # 提醒玩家点击失败,并在5s后退出 @@ -184,7 +216,7 @@ def click_until_knn(self, tag, img_path, pos, pos_end=None, step_time=0.5, appea # 点击指定位置并等待下一轮 self.yys.mouse_click_bg(pos, pos_end) self.log.writeinfo(self.name + '点击 ' + tag) - time.sleep(step_time) + ut.mysleep(step_time*1000) self.log.writewarning(self.name + '点击 ' + tag + ' 失败!') # 提醒玩家点击失败,并在5s后退出 diff --git a/goryou/single_fight.py b/goryou/single_fight.py index 8233dde..56ab6ae 100644 --- a/goryou/single_fight.py +++ b/goryou/single_fight.py @@ -32,14 +32,11 @@ def start(self): self.click_monster() # 检测是否打完 - logging.info(self.name + '检测是战斗是否结束') - self.yys.wait_game_img('img\\JIN-BI.png', self.max_win_time) - logging.info(self.name + "战斗结束") + state = self.check_end() mood2.moodsleep() # 在战斗结算页面 - self.click_until_knn('结算', 'img\\TIAO-ZHAN.png', - *CommonPos.second_position, mood3.get1mood()/1000, thread=20) + self.get_reward(mood3, state) logging.info("回到选择界面") # 检查游戏次数 diff --git a/gui/tkui.py b/gui/tkui.py index 463ac05..1875edd 100644 --- a/gui/tkui.py +++ b/gui/tkui.py @@ -24,7 +24,6 @@ def __init__(self, master=None): self.fight_boss_enable = tk.BooleanVar() self.slide_shikigami = tk.BooleanVar() self.slide_shikigami_progress = tk.IntVar() - self.zhunbei_delay = tk.IntVar() self.change_shikigami = 1 self.debug_enable = tk.BooleanVar() @@ -38,7 +37,6 @@ def __init__(self, master=None): self.fight_boss_enable.set(False) self.slide_shikigami.set(True) self.slide_shikigami_progress.set(10) - self.zhunbei_delay.set(3) self.debug_enable.set(False) # 创建菜单栏 @@ -186,13 +184,6 @@ def create_frame2(self): s.config(command=text.yview) text.config(yscrollcommand=s.set, state=tk.DISABLED) - # 延迟设置 - delay = tk.LabelFrame(self.frame2, text='延迟设置') - delay.pack(fill=tk.X) - tk.Label(delay, text='满级狗粮识别延迟:').grid(row=0, column=0) - tk.Entry(delay, textvariable=self.zhunbei_delay, - width=5).grid(row=0, column=1) - # 换狗粮设置 tk.Checkbutton(self.frame2, text='换狗粮拖放式神进度条,进度:', variable=self.slide_shikigami).pack(anchor=tk.W) @@ -299,8 +290,6 @@ def show_params(self): str(self.slide_shikigami.get())) self.params.insert(tk.END, '\nslide_shikigami_progress: ' + str(self.slide_shikigami_progress.get())) - self.params.insert(tk.END, '\nzhunbei_delay: ' + - str(self.zhunbei_delay.get())) self.params.insert(tk.END, '\nchange_shikigami: ' + str(self.cmb.current())) self.params.insert(tk.END, '\ndebug_enable: ' + diff --git a/img/JIN-BI.png b/img/JIN-BI.png deleted file mode 100644 index e8517e03f7d41ae9806e9cbac0ae59a45464c6f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9340 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 literal 0 HcmV?d00001 diff --git a/mitama/fighter_driver.py b/mitama/fighter_driver.py index b43e8f3..fcef407 100644 --- a/mitama/fighter_driver.py +++ b/mitama/fighter_driver.py @@ -38,15 +38,11 @@ def start(self): self.click_monster() # 检测是否打完 - self.check_end() + state = self.check_end() mood2.moodsleep() # 在战斗结算页面 - self.yys.mouse_click_bg(ut.firstposition()) - self.click_until('结算', 'img/JIN-BI.png', - *CommonPos.second_position, mood3.get1mood()/1000) - self.click_until('结算', 'img/JIN-BI.png', - *CommonPos.second_position, mood3.get1mood()/1000, False) + self.get_reward(mood3, state) # 等待下一轮 logging.info('Driver: 等待下一轮') diff --git a/mitama/fighter_passenger.py b/mitama/fighter_passenger.py index cd9406f..dba5640 100644 --- a/mitama/fighter_passenger.py +++ b/mitama/fighter_passenger.py @@ -31,15 +31,11 @@ def start(self): self.click_monster() # 检测是否打完 - self.check_end() + state = self.check_end() mood2.moodsleep() # 在战斗结算页面 - self.yys.mouse_click_bg(ut.firstposition()) - self.click_until('结算', 'img/JIN-BI.png', - *CommonPos.second_position, mood3.get1mood()/1000) - self.click_until('结算', 'img/JIN-BI.png', - *CommonPos.second_position, mood3.get1mood()/1000, False) + self.get_reward(mood3, state) # 等待下一轮 logging.info('Passenger: 等待下一轮') diff --git a/mitama/single_fight.py b/mitama/single_fight.py index fdf0586..8dce877 100644 --- a/mitama/single_fight.py +++ b/mitama/single_fight.py @@ -47,13 +47,11 @@ def start(self): self.click_monster() # 检测是否打完 - self.check_end() + state = self.check_end() mood2.moodsleep() # 在战斗结算页面 - self.yys.mouse_click_bg(ut.firstposition()) - self.click_until_knn('结算', 'img\\TIAO-ZHAN.png', - *CommonPos.second_position, mood3.get1mood()/1000, thread=20) + self.get_reward(mood3, state) self.log.writeinfo("回到选择界面") # 检查游戏次数 diff --git a/tools/utilities.py b/tools/utilities.py index bb436db..0d275db 100644 --- a/tools/utilities.py +++ b/tools/utilities.py @@ -80,5 +80,8 @@ def mysleep(slpa, slpb=0): randomly sleep for a short time between `slpa` and `slpa + slpb` \n because of the legacy reason, slpa and slpb are in millisecond ''' - slp = random.randint(slpa, slpa+slpb) + if slpb == 0: + slp = random.randint(int(0.5*slpa), int(1.5*slpa)) + else: + slp = random.randint(slpa, slpa+slpb) time.sleep(slp/1000) diff --git a/ui.py b/ui.py index 84df08b..3dc4d0f 100644 --- a/ui.py +++ b/ui.py @@ -56,8 +56,6 @@ def set_conf(self): str(self.slide_shikigami.get())) self.conf.set('explore', 'slide_shikigami_progress', str(self.slide_shikigami_progress.get())) - self.conf.set('explore', 'zhunbei_delay', - str(self.zhunbei_delay.get())) self.conf.set('explore', 'change_shikigami', str(self.cmb.current()))