Esempio n. 1
0
    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()
Esempio n. 2
0
    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()
Esempio n. 3
0
 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()