def find_where(self): #重新定位当前位置,根据不同位置决定开始执行哪一步操作 position = function_ark.judge_where(self.handle, 10) if position == "gonggao" or position == "zhujiemian": return self.operation_mapping["进入战斗界面"] elif position == "zhandou_xuanze": return self.operation_mapping["选择并进入对应章节,选择关卡,确认选择正确,进入队伍配置界面"] elif position == "zhandou_start": return self.operation_mapping["开始战斗"] elif position == "zhandou_ing" or position == "skip": return self.operation_mapping[ "确认进入战斗,跳过剧情,开启2倍速,干员部署,确认没有暂停并等待战斗结束"] elif position == "zhandou_end": return self.operation_mapping["判断战役成功"] elif position == "yuanshi_lizhi": if globalvar.get_yuanshi() > globalvar.get_yuanshi_used(): function_ark.mouse_click(self.handle, config_ark.points["yuanshi_ok"]) globalvar.yuanshi_used_add(1) else: function_ark.mouse_click(self.handle, config_ark.points["yuanshi_no"]) print("石乐志,结束") raise config_ark.ExitError time.sleep(1) else: position1 = function_ark.pic_position( self.handle, config_ark.pic_where["enter_quick"], once=2) if position1 == None: function_ark.save_im( self.handle, os.path.join( config_ark.IMG_SAVE, 'error_{}.png'.format( time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time()))))) function_ark.mouse_click(self.handle, config_ark.points["kongbai"]) else: #若可以快速访问,则直接跳转到战斗主界面 function_ark.mouse_click(self.handle, position1["result"]) time.sleep(1) position2 = function_ark.pic_position( self.handle, config_ark.pic_confirm["zhandou_quickenter"], once=2) if position2 != None: function_ark.mouse_click(self.handle, position2["result"]) time.sleep(2) return self.operation_mapping[ "选择并进入对应章节,选择关卡,确认选择正确,进入队伍配置界面"] else: #再次判断位置 pass return self.find_where()
def find_where(self): #重新定位当前位置,根据不同位置决定开始执行哪一步操作 position = function_ark.judge_where(self.handle, 10) if position == "gonggao" or position == "zhujiemian": return self.operation_mapping["进入战斗界面"] elif position == "zhandou_xuanze": return self.operation_mapping[ "选择并进入对应章节,选择关卡,确认选择正确,使用代理,进入队伍配置界面"] elif position == "zhandou_start": return self.operation_mapping["确认使用代理并开始战斗"] elif position == "zhandou_ing": return self.operation_mapping["确认进入战斗,确认没有暂停并等待战斗结束"] elif position == "zhandou_end": return self.operation_mapping["判断战役成功"] elif position == "yuanshi_lizhi": #####暂定 if function_ark.confirm_where(self.handle, config_ark.pic_confirm['yuanshi']): #处于氪源石的界面 if globalvar.get_yuanshi() == 2: position = function_ark.pic_position( self.handle, config_ark.pic_confirm['ok'], once=2) if position != None: function_ark.mouse_click(self.handle, position["result"]) globalvar.yuanshi_used_add(1) print('使用源石一次,当前使用源石次数{}'.format( globalvar.get_yuanshi_used())) else: print("源石界面嗑药失败") else: print("失了智,脚本结束") raise config_ark.ExitError else: #处于氪体力药的界面 if globalvar.get_yuanshi() in [1, 2]: position = function_ark.pic_position( self.handle, config_ark.pic_confirm['ok'], once=2) if position != None: function_ark.mouse_click(self.handle, position["result"]) print('使用体力药一次') else: print("失了智,脚本结束") raise config_ark.ExitError time.sleep(2) # if globalvar.get_yuanshi() > globalvar.get_yuanshi_used(): # #逻辑需要优化,遇到网络波动时,会出现吃了药却石乐志了情况 # if function_ark.confirm_where(self.handle,config_ark.pic_confirm['60tili']): # function_ark.mouse_click(self.handle, config_ark.points["tili_ok"]) # print('使用60体力药') # time.sleep(1) # elif function_ark.confirm_where(self.handle,config_ark.pic_confirm['100tili']): # function_ark.mouse_click(self.handle, config_ark.points["tili_ok"]) # print('使用100体力药') # time.sleep(1) # else: # function_ark.mouse_click(self.handle,config_ark.points["kongbai"]) # print('没有体力药或者是别的情况,总之还是石乐志') # raise config_ark.ExitError # globalvar.yuanshi_used_add(1) # else: # function_ark.mouse_click(self.handle,config_ark.points["kongbai"]) # print("石乐志,结束") # raise config_ark.ExitError # time.sleep(1) else: position1 = function_ark.pic_position( self.handle, config_ark.pic_where["enter_quick"], once=2) if position1 == None: function_ark.save_im( self.handle, os.path.join( config_ark.IMG_SAVE, 'error_{}.png'.format( time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time()))))) function_ark.mouse_click(self.handle, config_ark.points["kongbai"]) else: #若可以快速访问,则直接跳转到战斗主界面 function_ark.mouse_click(self.handle, position1["result"]) time.sleep(1) position2 = function_ark.pic_position( self.handle, config_ark.pic_confirm["zhandou_quickenter"], once=2) if position2 != None: function_ark.mouse_click(self.handle, position2["result"]) time.sleep(2) return self.operation_mapping[ "选择并进入对应章节,选择关卡,确认选择正确,使用代理,进入队伍配置界面"] else: #再次判断位置 pass return self.find_where()
def find_where(self): #重新定位当前位置,根据不同位置决定开始执行哪一步操作 position = function_ark.judge_where(self.handle, 10) if position == "gonggao" or position == "zhujiemian": return self.operation_mapping["进入战斗界面"] elif position == "zhandou_xuanze": return self.operation_mapping["选择并进入活动界面"] elif position == "huodong_xuanze": return self.operation_mapping["选择关卡,确认选择正确,使用代理,进入队伍配置界面"] elif position == "zhandou_start": return self.operation_mapping["确认使用代理并开始战斗"] elif position == "zhandou_ing": return self.operation_mapping["确认进入战斗,确认没有暂停并等待战斗结束"] elif position == "zhandou_end": return self.operation_mapping["判断战役成功"] elif position == "yuanshi_lizhi": """ verified 2019-9-2 增加体力药选项 """ # verified 2019-9-2 # if globalvar.get_yuanshi() > globalvar.get_yuanshi_used(): # function_ark.mouse_click(self.handle,config_ark.points["yuanshi_ok"]) # globalvar.yuanshi_used_add(1) # else: # function_ark.mouse_click(self.handle,config_ark.points["yuanshi_no"]) # print("石乐志,结束") # raise config_ark.ExitError # time.sleep(1) if globalvar.get_yuanshi() > globalvar.get_yuanshi_used(): if function_ark.confirm_where( self.handle, config_ark.pic_confirm['60tili']): function_ark.mouse_click(self.handle, config_ark.points["tili_ok"]) print('使用60体力药') time.sleep(1) elif function_ark.confirm_where( self.handle, config_ark.pic_confirm['100tili']): function_ark.mouse_click(self.handle, config_ark.points["tili_ok"]) print('使用100体力药') time.sleep(1) else: function_ark.mouse_click(self.handle, config_ark.points["kongbai"]) print('没有体力药或者是别的情况,总之还是石乐志') raise config_ark.ExitError globalvar.yuanshi_used_add(1) else: function_ark.mouse_click(self.handle, config_ark.points["kongbai"]) print("石乐志,结束") raise config_ark.ExitError time.sleep(1) else: position1 = function_ark.pic_position( self.handle, config_ark.pic_where["enter_quick"], once=2) if position1 == None: function_ark.save_im( self.handle, os.path.join( config_ark.IMG_SAVE, 'error_{}.png'.format( time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time()))))) function_ark.mouse_click(self.handle, config_ark.points["kongbai"]) else: #若可以快速访问,则直接跳转到战斗主界面 function_ark.mouse_click(self.handle, position1["result"]) time.sleep(1) position2 = function_ark.pic_position( self.handle, config_ark.pic_confirm["zhandou_quickenter"], once=2) if position2 != None: function_ark.mouse_click(self.handle, position2["result"]) time.sleep(2) return self.operation_mapping["选择并进入活动界面"] else: #再次判断位置 pass return self.find_where()