示例#1
0
    def submitTask(self):
        while self.switch:
            gInfo = pictureFind.matchImg(self.screenShot, self.get, 0.9)
            nInfo = pictureFind.matchImg(self.screenShot, self.waitForNew, 0.9)
            if nInfo != None:
                return True
            if gInfo == None:
                mInfo = pictureFind.matchImg(self.screenShot, self.getMaterial)
                if mInfo == None:
                    return True
                #break
            else:
                self.adb.click(gInfo['result'][0], gInfo['result'][1])

            tryFlag = False
            while self.switch:
                self.adb.screenShot()
                mInfo = pictureFind.matchImg(self.screenShot, self.getMaterial)
                hInfo = pictureFind.matchImg(self.screenShot, self.home)
                if mInfo != None:
                    tryFlag = True
                    self.adb.click(mInfo['result'][0], mInfo['result'][1])
                elif hInfo != None:
                    if tryFlag:
                        tryFlag = False
                        continue
                    else:
                        self.adb.screenShot()
                        break
示例#2
0
 def openCard(self):
     tryTime = 0
     while self.switch:
         fInfo = pictureFind.matchImg(self.screenShot, self.friends)
         if fInfo != None:
             self.adb.click(fInfo['result'][0], fInfo['result'][1])
             self.adb.screenShot()
         else:
             fInfo = pictureFind.matchImg(self.screenShot, self.frendList)
             if fInfo != None:
                 return fInfo
             elif tryTime > 10:
                 return False
             tryTime += 1
示例#3
0
    def bootyCheck(self, bootyName, screenshot):
        scs = imread(screenshot)
        scs = resize(scs, (1920, 1080))
        scs = scs[770:1080, 710:1920]
        #imshow('test', scs)
        #waitKey(0)
        bootyInfo = pictureFind.matchImg(scs,
                                         self.bootyList[bootyName],
                                         confidencevalue=0.5,
                                         targetSize=(0, 0))
        if bootyInfo == None:
            return 0
        else:
            rdPos = bootyInfo['rectangle'][3]
            if '芯片组' in bootyName:
                corpX1 = rdPos[0] - 20
                corpX2 = rdPos[0] + 25
                corpY1 = rdPos[1] + 15
                corpY2 = rdPos[1] + 60
            elif '芯片' in bootyName:
                corpX1 = rdPos[0] - 15
                corpX2 = rdPos[0] + 25
                corpY1 = rdPos[1] + 15
                corpY2 = rdPos[1] + 60
            else:
                corpX1 = rdPos[0] - 30
                corpX2 = rdPos[0] + 10
                corpY1 = rdPos[1] + 5
                corpY2 = rdPos[1] + 50
            if corpX1 < 0 or corpX2 > 1210 or corpY1 < 0 or corpY2 > 310:
                return 0
            bootyNumPic = scs[corpY1:corpY2, corpX1:corpX2]

            #imshow('test', bootyNumPic)
            #waitKey(0)

            oneCheck = pictureFind.matchImg(bootyNumPic,
                                            self.one,
                                            targetSize=(0, 0))
            #print(oneCheck)
            twoCheck = pictureFind.matchImg(bootyNumPic,
                                            self.two,
                                            targetSize=(0, 0))
            #print(twoCheck)
            if oneCheck != None:
                return 1
            elif twoCheck != None:
                return 2
            else:
                return 0
示例#4
0
 def enterPC(self):
     for i in range(5):
         if not self.autoSwitch:
             return False
         self.adb.screenShot()
         picInfo = pictureFind.matchImg(self.screenShot, self.pcEnter)
         if picInfo != None:
             self.adb.click(picInfo['result'][0], picInfo['result'][1])
             while pictureFind.matchImg(self.screenShot,
                                        self.pcMark) == None:
                 sleep(1)
                 self.adb.screenShot()
             return True
             pass
     else:
         return False
示例#5
0
 def oneByOne(self):
     #self.adb.screenShot()
     tryCount = 0
     self.submitTask()
     while self.switch:
         wInfo = pictureFind.matchImg(self.screenShot, self.weekUnSel)
         self.adb.click(wInfo['result'][0], wInfo['result'][1])
         self.adb.screenShot()
         wInfo = pictureFind.matchImg(self.screenShot, self.weekSel)
         if wInfo != None:
             break
         else:
             tryCount += 1
             if tryCount > 5:
                 return False
     self.submitTask()
示例#6
0
 def chooseTag(self):
     tagState = self.publicCall.chooseTag()
     while tagState == 100:
         tagState = self.publicCall.chooseTag()
     if tagState == 6 or tagState == 1:
         for i in range(5):
             self.adb.screenShot()
             picInfo = pictureFind.matchImg(self.screenShot, self.pcCancel)
             if picInfo != None:
                 picInfo = picInfo['result']
                 self.adb.click(picInfo[0], picInfo[1])
                 break
     else:
         for i in range(5):
             self.adb.screenShot()
             addBtn = pictureFind.matchMultiImg(self.screenShot,
                                                self.pcAddTime)[0]
             if addBtn != None:
                 addBtn.sort(key=lambda x: x[0])
                 addBtn = addBtn[0]
                 break
         else:
             return False
         picInfo = pictureFind.matchImg(self.screenShot,
                                        self.pc9,
                                        confidencevalue=0.9)
         while picInfo == None:
             for i in range(9):
                 if not self.autoSwitch:
                     return False
                 self.adb.click(addBtn[0], addBtn[1])
             self.adb.screenShot()
             picInfo = pictureFind.matchImg(self.screenShot,
                                            self.pc9,
                                            confidencevalue=0.9)
         for i in range(5):
             #confirmBtn = pictureFind.matchImg(self.screenShot, self.pcCancel)
             confirmBtn = pictureFind.matchImg(self.screenShot,
                                               self.pcConfirm)
             if confirmBtn != None:
                 confirmBtn = confirmBtn['result']
                 self.adb.click(confirmBtn[0], confirmBtn[1])
                 return True
         return False
示例#7
0
 def openFriendList(self, fInfo):
     tryTime = 0
     while self.switch:
         self.adb.click(fInfo['result'][0], fInfo['result'][1])
         self.adb.screenShot()
         vInfo = pictureFind.matchImg(self.screenShot, self.visit)
         if vInfo != None:
             return vInfo
         elif tryTime > 10:
             return False
         tryTime += 1
示例#8
0
    def checkTask(self):
        tryCount = 0
        self.adb.screenShot()
        cInfo = pictureFind.matchImg(self.screenShot, self.task)
        if cInfo == None:
            return False
        else:
            while self.switch:
                self.adb.click(cInfo['result'][0], cInfo['result'][1])

                self.adb.screenShot()
                if pictureFind.matchImg(self.screenShot, self.daySel) != None:
                    return True
                elif pictureFind.matchImg(self.screenShot,
                                          self.actSel) != None:
                    return True
                else:
                    tryCount += 1
                    if tryCount > 5:
                        return False
示例#9
0
    def enterCons(self, vInfo):
        tryTime = 0
        breakFlag = False
        while self.switch:
            self.adb.click(vInfo['result'][0], vInfo['result'][1])
            self.adb.screenShot()
            for each in self.listGetCredit:
                gInfo = pictureFind.matchImg(self.screenShot, each, 0.95)
                if gInfo != None:
                    breakFlag = True
                    break
            if breakFlag:
                break
            if tryTime > 10:
                print("cannot visitCons")
                return False
            tryTime += 1

        while self.switch:
            tryTime = 0
            if gInfo == None:
                tryTime += 1
                if tryTime > 5:
                    print('visit next failed')
                    break
                self.adb.screenShot()
                for each in self.listGetCredit:
                    gInfo = pictureFind.matchImg(self.screenShot, each, 0.95)
                    if gInfo != None:
                        break
            elif gInfo['obj'] == 'visitFinish.png':
                break
            else:
                tryTime = 0
                self.adb.click(gInfo['result'][0], gInfo['result'][1])
                self.adb.screenShot()
                for each in self.listGetCredit:
                    gInfo = pictureFind.matchImg(self.screenShot, each, 0.95)
                    if gInfo != None:
                        break
示例#10
0
 def chooseChap(self, chap):
     for i in range(20):
         if not self.switch:
             break
         self.adb.screenShot()
         picChap = pictureFind.matchImg(self.screenShot, self.III[chap])
         if not self.switch:
             break
         elif picChap == None:
             self.adb.onePageRight()
         else:
             self.adb.click(picChap['result'][0], picChap['result'][1])
             return True
     return False
示例#11
0
 def search(self):
     picInfo = pictureFind.matchMultiImg(self.screenShot, self.pcNew)[0]
     if picInfo != None:
         for eachPos in picInfo:
             for i in range(3):
                 if not self.autoSwitch:
                     return False
                 self.adb.click(eachPos[0], eachPos[1])
                 sleep(0.5)
                 self.adb.screenShot()
                 inMarkInfo = pictureFind.matchImg(self.screenShot,
                                                   self.pcInMark)
                 if inMarkInfo != None:
                     self.chooseTag()
                     break
示例#12
0
 def employ(self):
     for i in range(2):
         picInfo = pictureFind.matchMultiImg(self.screenShot,
                                             self.pcFinish)[0]
         if picInfo != None:
             if not self.autoSwitch:
                 break
             for eachPos in picInfo:
                 self.adb.click(eachPos[0], eachPos[1])
                 self.adb.screenShot()
                 while pictureFind.matchImg(self.screenShot,
                                            self.pcMark) == None:
                     for i in range(5):
                         self.adb.click(1400, 40)
                     sleep(1)
                     self.adb.screenShot()
         else:
             break
     return True
示例#13
0
 def matchTag(self, src, objList):
     for each in objList:
         if len(self.tagOnScreenList) == 5:
             break
         tInfo = pictureFind.matchImg(src, each)
         if tInfo != None:
             self.tagOnScreenList.append(
                 (tInfo['obj'][:-4], tInfo['result']))
             tInfo['rectangle'] = list(tInfo['rectangle'])
             for i in range(4):
                 tInfo['rectangle'][i] = list(tInfo['rectangle'][i])
                 tInfo['rectangle'][i][0] = int(tInfo['rectangle'][i][0] /
                                                1440 * src.shape[1] + 0.5)
                 tInfo['rectangle'][i][1] = int(tInfo['rectangle'][i][1] /
                                                810 * src.shape[0] + 0.5)
             rect = array([
                 tInfo['rectangle'][0], tInfo['rectangle'][1],
                 tInfo['rectangle'][3], tInfo['rectangle'][2]
             ])
             fillConvexPoly(src, rect, 0)
示例#14
0
    def goToMainpage(self):
        listGoToTemp = self.listGoTo.copy()
        tryCount = 0
        while self.autoSwitch:
            self.adb.screenShot()
            for eachStep in listGoToTemp:
                bInfo = pictureFind.matchImg(self.screenShot, eachStep)
                if bInfo != None:
                    listGoToTemp.remove(eachStep)
                    break
            else:
                listGoToTemp = self.listGoTo.copy()
                tryCount += 1
                if tryCount > 10:
                    return False

            if bInfo != None:
                if bInfo['obj'] == 'act.png':  #self.mainpageMark
                    return True
                else:
                    self.adb.click(bInfo['result'][0], bInfo['result'][1])
示例#15
0
 def chooseTag(self):
     self.adb.screenShot(pngName='autoPC')
     src = pictureFind.imreadCH(self.cwd + '/bin/adb/autoPC.png')
     tempTagList = self.getTag(src, isAutoMode=True)
     if self.is1Need:  #小车
         for i in tempTagList:
             if i[0] == '支援机械':
                 return 1
     tagNameAndPos = dict(tempTagList)
     tagCombination = self.getAns(list(tagNameAndPos.keys()))[0]
     star4Combination = []
     star5Combination = []
     star6Combination = []
     for eachCombination in tagCombination.keys():
         tagCombination[eachCombination].sort(key=lambda x: x[0] % 10)
         minStar = tagCombination[eachCombination][0][0]  #最低星数
         tempNum = 0
         while minStar == 10:
             tempNum += 1
             minStar = tagCombination[eachCombination][tempNum][0]
         if minStar == 4:
             star4Combination.append(eachCombination)
         elif minStar == 5:
             star5Combination.append(eachCombination)
         elif minStar == 6:
             star6Combination.append(eachCombination)
     if star6Combination != []:
         return 6
     if star5Combination != []:
         if self.is5Need:
             return 6  #设定保留五星时返回6,即把这组5星tag当作6星处理,保留此组tag
         else:
             tagChoice = choice(star5Combination).split('+')
             tagPos = []
             for tag in tagChoice:
                 tagPos.append(tagNameAndPos[tag])
             for pos in tagPos:
                 self.adb.click(pos[0], pos[1])
             return 5
     if star4Combination != []:
         tagChoice = choice(star4Combination).split('+')
         tagChoice = list(set(tagChoice))
         tagPos = []
         for tag in tagChoice:
             tagPos.append(tagNameAndPos[tag])
         for pos in tagPos:
             self.adb.click(pos[0], pos[1])
         return 4
     else:
         #刷新tag
         refreshPic = pictureFind.matchImg(src, self.refresh)
         if refreshPic != None:
             for i in range(3):
                 self.adb.click(refreshPic['result'][0],
                                refreshPic['result'][1])
                 self.adb.screenShot(pngName='autoPC')
                 confirmPic = pictureFind.matchImg(
                     self.cwd + '/bin/adb/autoPC.png', self.refresh)
                 if confirmPic != None:
                     while pictureFind.matchImg(
                             self.cwd + '/bin/adb/autoPC.png',
                             self.pcInMark) == None:
                         self.adb.click(confirmPic['result'][0],
                                        confirmPic['result'][1])
                         sleep(1)
                         self.adb.screenShot(pngName='autoPC')
                     return 100
     return 0
示例#16
0
    def run(self, switchI):
        isInBattle = False
        restStone = self.stoneMaxNum
        #isFirstTurn = True
        self.switch = switchI
        self.isUselessContinue = False

        if self.switch:
            while self.switch:
                self.adb.screenShot()
                #判断代理指挥是否勾选
                '''if isFirstTurn:
                    isFirstTurn = False'''
                picStartA = pictureFind.matchImg(self.screenShot, self.startA, confidencevalue= 0.9)
                if picStartA != None and self.switch:
                    picIsUseless = pictureFind.matchImg(self.screenShot, self.uselessLevel)
                    if picIsUseless and (not self.isUselessContinue):
                        self.isWaitingUser = True
                        self.signal.emit()
                        while self.isWaitingUser:
                            sleep(1)
                        continue
                    else:
                        picAutoOn = pictureFind.matchImg(self.screenShot, self.autoOn)
                        if picAutoOn == None and self.switch:
                            picAutoOff = pictureFind.matchImg(self.screenShot, self.autoOff)
                            if picAutoOff != None and self.switch:
                                posAutoOff = picAutoOff['result']
                                self.adb.click(posAutoOff[0], posAutoOff[1])
                                continue

                    '''isDelayExit = False #加载延迟是否出现,即检查到开始行动A但实际上是正在进入关卡前的状态
                    for i in range(5):
                        if not self.switch:
                            break
                        isSSSuccess = self.adb.screenShot()
                        if not isSSSuccess:
                            print('unable to get screenshot')
                            self.switchB = False
                            return False
                        for eachObj in self.listBattleImg:
                            picInfo = pictureFind.matchImg(self.screenShot, eachObj, 0.8)
                            if picInfo != None:
                                if eachObj['obj'] != "startApart.png":
                                    isDelayExit  = True
                                    break

                        picAutoOn = pictureFind.matchImg(self.screenShot, self.autoOn)
                        if picAutoOn != None or isDelayExit:
                            if isDelayExit:
                                print("start delay exit")
                            break'''

                #sleep(1)
                for eachObj in self.listImg:
                    if self.switch:
                        if eachObj['obj'] == "end.png" or eachObj['obj'] == "levelup.png":
                            confidence = 0.8
                        else:
                            confidence = 0.9
                        #print(self.screenShot + ' ' + self.cwd + '/res/battle/' + eachObj)
                        picInfo = pictureFind.matchImg(self.screenShot, eachObj, confidence)
                        #print(eachObj+ ':', picInfo)
                        if picInfo != None:
                            if picInfo['result'][1] < 270:
                                continue

                            if eachObj['obj'] == "startBpart.png":
                                isInBattle = True
                            else:
                                isInBattle = False

                            picPos = picInfo['result']
                            if eachObj['obj'] == "cancel.png":
                                if self.autoRecMed or self.autoRecStone:
                                    medInfo = pictureFind.matchImg(self.screenShot, self.recMed)
                                    stoneInfo = pictureFind.matchImg(self.screenShot, self.recStone)
                                    confirmInfo = pictureFind.matchImg(self.screenShot, self.confirm)
                                    if (not self.autoRecMed) and (self.autoRecStone):
                                        if medInfo != None and stoneInfo == None:
                                            self.adb.click(medInfo['result'][0]+350, medInfo['result'][1], isSleep= True)
                                            self.adb.screenShot()
                                            medInfo = pictureFind.matchImg(self.screenShot, self.recMed)
                                            stoneInfo = pictureFind.matchImg(self.screenShot, self.recStone)
                                            if medInfo == None and stoneInfo != None:
                                                if restStone >0:
                                                    self.adb.click(confirmInfo['result'][0], confirmInfo['result'][1], isSleep= True)
                                                    restStone -= 1
                                                    break
                                        elif medInfo == None and stoneInfo != None:
                                            if restStone >0:
                                                    self.adb.click(confirmInfo['result'][0], confirmInfo['result'][1], isSleep= True)
                                                    restStone -= 1
                                                    break
                                        self.adb.click(picPos[0], picPos[1], isSleep = True)
                                        self.switch = False
                                        toast.broadcastMsg("ArkHelper", "理智耗尽", self.ico)
                                    else:
                                        if self.autoRecMed:
                                            if medInfo != None:
                                                self.adb.click(confirmInfo['result'][0], confirmInfo['result'][1], isSleep= True)
                                                break
                                        if self.autoRecStone:
                                            if stoneInfo != None:
                                                if restStone >0:
                                                    self.adb.click(confirmInfo['result'][0], confirmInfo['result'][1], isSleep= True)
                                                    restStone -= 1
                                                    break
                                        self.adb.click(picPos[0], picPos[1], isSleep = True)
                                        self.switch = False
                                        toast.broadcastMsg("ArkHelper", "理智耗尽", self.ico)
                                else:
                                    self.adb.click(picPos[0], picPos[1], isSleep = True)
                                    self.switch = False
                                    toast.broadcastMsg("ArkHelper", "理智耗尽", self.ico)
                            elif eachObj['obj'] == 'stoneLack.png':
                                self.adb.click(picPos[0], picPos[1], isSleep = True)
                                self.switch = False
                                toast.broadcastMsg("ArkHelper", "理智耗尽", self.ico)
                            elif eachObj['obj'] == 'levelup.png':
                                lackTem = False
                                for eachTem in self.listImg:
                                    if eachTem['obj'] == 'stoneLack.png':
                                        lackTem = eachTem
                                        break
                                if lackTem:
                                    picLackInfo = pictureFind.matchImg(self.screenShot, lackTem, 0.9)
                                    if picLackInfo:
                                        self.adb.click(picLackInfo['result'][0], picLackInfo['result'][1], isSleep = True)
                                        self.switch = False
                                        toast.broadcastMsg("ArkHelper", "理智耗尽", self.ico)
                                    else:
                                        self.adb.click(picPos[0], picPos[1], isSleep = True)
                                        if eachObj['obj'] == 'startApartOF.png':
                                            self.adb.screenShot()
                                            OFend = pictureFind.matchImg(self.screenShot, self.cwd + '/res/act/OFend.png', 0.8)
                                            if OFend != None:
                                                self.switch = False
                                                toast.broadcastMsg("ArkHelper", "黑曜石节门票不足", self.ico)
                                else:
                                    self.adb.click(picPos[0], picPos[1], isSleep = True)
                                    if eachObj['obj'] == 'startApartOF.png':
                                        self.adb.screenShot()
                                        OFend = pictureFind.matchImg(self.screenShot, self.cwd + '/res/act/OFend.png', 0.8)
                                        if OFend != None:
                                            self.switch = False
                                            toast.broadcastMsg("ArkHelper", "黑曜石节门票不足", self.ico)
                            else:
                                self.adb.click(picPos[0], picPos[1], isSleep = True)
                                if eachObj['obj'] == 'startApartOF.png':
                                    self.adb.screenShot()
                                    OFend = pictureFind.matchImg(self.screenShot, self.cwd + '/res/act/OFend.png', 0.8)
                                    if OFend != None:
                                        self.switch = False
                                        toast.broadcastMsg("ArkHelper", "黑曜石节门票不足", self.ico)

                            break
                if isInBattle:
                    sleep(1)
示例#17
0
    def goLevel(self, level):
        part = level['part']
        chap = level['chap']
        objLevel = level['objLevel']

        #前往一级菜单
        while self.switch:
            if self.adb.screenShot():
                picTh = pictureFind.matchImg(self.screenShot, self.II['MAIN'])
                if picTh != None:
                    break
            else:
                print('Fail to get screenshot')
                return False
            if self.adb.screenShot():
                picAct = pictureFind.matchImg(self.screenShot, self.act)
                if picAct != None:
                    posAct = picAct['result']
                    self.adb.click(posAct[0], posAct[1])
                else:
                    picHome = pictureFind.matchImg(self.screenShot, self.home)
                    if picHome != None:
                        posHome = picHome['result']
                        self.adb.click(posHome[0], posHome[1])
                        if self.adb.screenShot():
                            picBattle = pictureFind.matchImg(
                                self.screenShot, self.battle)
                            if picBattle != None:
                                posBattle = picBattle['result']
                                self.adb.click(posBattle[0], posBattle[1])
                            else:
                                continue
                        else:
                            print('Fail to get screenshot')
                            return False
                    else:
                        print('unable to init')
                        return False

            else:
                print('Fail to get screenshot')
                return False

        #二级菜单的选择
        if self.adb.screenShot():
            picColumn = pictureFind.matchImg(self.screenShot, self.II[part])
            if picColumn != None:
                posColumn = picColumn['result']
                self.adb.click(posColumn[0], posColumn[1])
            else:
                print('Column Choice Wrong')
                return False
        else:
            print('Fail to get screenshot')
            return False

        sleep(1)
        #三级菜单的选择
        if part == 'EX':
            #剿灭
            for i in range(5):
                self.adb.screenShot()
                '''picLevelOn = pictureFind.matchImg(self.screenShot,self.startA) #2020.11.15 不知道为什么要判断有没有选中的关
                if picLevelOn != None:
                    return True'''
                picEx = pictureFind.matchImg(self.screenShot, self.exSymbol)
                if picEx != None:
                    break
            else:
                return False
            for i in range(5):
                self.adb.click(720, 405)  #存在不小心点开剿灭关卡无法切换关卡的可能性
                sleep(1)
                self.adb.screenShot()
                picExChap = pictureFind.matchImg(self.screenShot,
                                                 self.exIV["exSwitch"])
                if picExChap != None:
                    self.adb.click(picExChap['result'][0],
                                   picExChap['result'][1])
                    sleep(0.5)
                    break
            else:
                return False
            for i in range(5):
                self.adb.screenShot()
                picLevelOn = pictureFind.matchImg(self.screenShot, self.startA)
                if picLevelOn != None:
                    return True
                picExObj = pictureFind.matchImg(self.screenShot,
                                                self.exIV[objLevel])
                if picExObj != None:
                    if objLevel == 'ex4':
                        self.adb.click(picExObj['result'][0],
                                       picExObj['result'][1] + 80)
                    else:
                        self.adb.click(picExObj['result'][0],
                                       picExObj['result'][1])
            else:
                return False

        else:
            #主线MIAN,物资RS,芯片PR
            self.adb.speedToLeft()
            if not self.chooseChap(chap):
                return False

        #关卡选择
            self.adb.speedToLeft()
            for i in range(25):
                if not self.switch:
                    break
                self.adb.screenShot()
                levelOnScreen = pictureFind.levelOcr(self.screenShot)
                if levelOnScreen != None:
                    if objLevel in levelOnScreen:
                        self.adb.click(levelOnScreen[objLevel][0],
                                       levelOnScreen[objLevel][1])
                        picLevelOn = pictureFind.matchImg(
                            self.screenShot, self.startA)
                        if picLevelOn != None:
                            return True
                    else:
                        self.adb.onePageRight()
                else:
                    print(f'skip {objLevel}')
                    return False
            else:
                return False
示例#18
0
    def runTimes(self, times=1):
        bootyName = None
        if isinstance(times, dict):
            bootyMode = True
            bootyName = times['bootyName']
            times = int(times['bootyNum'])
        else:
            bootyMode = False
            times = int(times)

        #isFirstTurn = True
        countStep = 0
        totalCount = 0
        bootyTotalCount = 0
        twiceTry = 0
        while self.switch and self.switchB:

            self.adb.screenShot()
            #判断代理指挥是否勾选
            '''if isFirstTurn:
                isFirstTurn = False'''
            picStartA = pictureFind.matchImg(self.screenShot,
                                             self.startA,
                                             confidencevalue=0.9)
            if picStartA != None and self.switch and self.switchB:
                picAutoOn = pictureFind.matchImg(self.screenShot, self.autoOn)
                if picAutoOn == None and self.switch and self.switchB:
                    picAutoOff = pictureFind.matchImg(self.screenShot,
                                                      self.autoOff)
                    if picAutoOff != None and self.switch and self.switchB:
                        posAutoOff = picAutoOff['result']
                        self.adb.click(posAutoOff[0], posAutoOff[1])
                        continue
                '''isDelayExit = False #加载延迟是否出现,即检查到开始行动A但实际上是正在进入关卡前的状态 #这段代码我不是很清楚我当时为什么会写,现在看来毫无用处,但先留在注释里
                for i in range(5):
                    if not (self.switch and self.switchB):
                        break
                    isSSSuccess = self.adb.screenShot()
                    if not isSSSuccess:
                        print('unable to get screenshot')
                        self.switchB = False
                        return False
                    for eachObj in self.listBattleImg:
                        if not (self.switch and self.switchB):
                            break
                        picInfo = pictureFind.matchImg(self.screenShot, eachObj, 0.8)
                        if picInfo != None:
                            if eachObj['obj'] != "startApart.png":
                                isDelayExit  = True
                                break

                    picAutoOn = pictureFind.matchImg(self.screenShot, self.autoOn)
                    if picAutoOn != None or isDelayExit:
                        if isDelayExit:
                            print("start delay exit")
                        break
                else:
                    print('auto mode still off')
                    self.switchB = False
                    return True #返回True用来跳过此关'''

            isInBattle = False
            #sleep(1)
            for eachObj in self.listBattleImg:
                if self.switch and self.switchB:
                    if eachObj['obj'] == "end.png" or eachObj[
                            'obj'] == "levelup.png":
                        confidence = 0.8
                    else:
                        confidence = 0.9
                    #print(self.screenShot + ' ' + self.cwd + '/res/battle/' + eachObj)
                    picInfo = pictureFind.matchImg(self.screenShot, eachObj,
                                                   confidence)
                    #print(eachObj+ ':', picInfo)
                    if picInfo != None:
                        if picInfo['result'][1] < 270:
                            continue

                        if eachObj['obj'] == "startBpart.png":
                            isInBattle = True
                        else:
                            isInBattle = False

                        picPos = picInfo['result']
                        if countStep == 0:
                            if eachObj['obj'] == 'startBpart.png':
                                countStep += 1
                        elif countStep == 1:
                            if eachObj['obj'] == 'endNormal.png':
                                countStep += 1
                                if bootyMode:
                                    for i in range(10):
                                        temp = imread(self.screenShot)
                                        self.adb.screenShot()
                                        if pictureFind.matchImg(
                                                temp,
                                                self.screenShot,
                                                confidencevalue=0.99) != None:
                                            break
                                        sleep(1)
                                    bootyTotalCount += self.BootyDetect.bootyCheck(
                                        bootyName, self.screenShot)
                                    print(
                                        f'{bootyName} 应获得:{times} 实获得:{bootyTotalCount}'
                                    )

                        elif countStep == 2:
                            if eachObj['obj'] == 'startApart.png':
                                countStep += 1
                        if countStep == 3:
                            countStep = 0
                            totalCount += 1
                        if (totalCount == times) and (not bootyMode):
                            self.switchB = False
                            return True
                        if (bootyTotalCount >= times) and bootyMode:
                            self.adb.click(picPos[0], picPos[1], isSleep=True)
                            self.switchB = False
                            return True
                        '''self.adb.click(picPos[0], picPos[1], isSleep = True)
                        if eachObj['obj'] == "cancel.png":
                            self.switch = False
                            self.switchB = False
                            toast.broadcastMsg("ArkHelper", "理智耗尽", self.ico)
                            return False
                        break'''
                        if eachObj['obj'] == "cancel.png":
                            if self.autoRecMed or self.autoRecStone:
                                medInfo = pictureFind.matchImg(
                                    self.screenShot, self.recMed)
                                stoneInfo = pictureFind.matchImg(
                                    self.screenShot, self.recStone)
                                confirmInfo = pictureFind.matchImg(
                                    self.screenShot, self.confirm)
                                if (not self.autoRecMed) and (
                                        self.autoRecStone):
                                    if medInfo != None and stoneInfo == None:
                                        self.adb.click(medInfo['result'][0] +
                                                       350,
                                                       medInfo['result'][1],
                                                       isSleep=True)
                                        self.adb.screenShot()
                                        medInfo = pictureFind.matchImg(
                                            self.screenShot, self.recMed)
                                        stoneInfo = pictureFind.matchImg(
                                            self.screenShot, self.recStone)
                                        if medInfo == None and stoneInfo != None:
                                            if self.restStone > 0:
                                                self.adb.click(
                                                    confirmInfo['result'][0],
                                                    confirmInfo['result'][1],
                                                    isSleep=True)
                                                self.restStone -= 1
                                                break
                                    elif medInfo == None and stoneInfo != None:
                                        if self.restStone > 0:
                                            self.adb.click(
                                                confirmInfo['result'][0],
                                                confirmInfo['result'][1],
                                                isSleep=True)
                                            self.restStone -= 1
                                            break
                                    self.adb.click(picPos[0],
                                                   picPos[1],
                                                   isSleep=True)
                                    self.switch = False
                                    self.switchB = False
                                    toast.broadcastMsg("ArkHelper", "理智耗尽",
                                                       self.ico)
                                    return False
                                else:
                                    if self.autoRecMed:
                                        if medInfo != None:
                                            self.adb.click(
                                                confirmInfo['result'][0],
                                                confirmInfo['result'][1],
                                                isSleep=True)
                                            break
                                    if self.autoRecStone:
                                        if stoneInfo != None:
                                            if self.restStone > 0:
                                                self.adb.click(
                                                    confirmInfo['result'][0],
                                                    confirmInfo['result'][1],
                                                    isSleep=True)
                                                self.restStone -= 1
                                                break
                                    self.adb.click(picPos[0],
                                                   picPos[1],
                                                   isSleep=True)
                                    self.switch = False
                                    self.switchB = False
                                    toast.broadcastMsg("ArkHelper", "理智耗尽",
                                                       self.ico)
                                    return False
                            else:
                                self.adb.click(picPos[0],
                                               picPos[1],
                                               isSleep=True)
                                self.switch = False
                                self.switchB = False
                                toast.broadcastMsg("ArkHelper", "理智耗尽",
                                                   self.ico)
                                return False
                        elif eachObj['obj'] == "stoneLack.png":
                            self.adb.click(picPos[0], picPos[1], isSleep=True)
                            self.switch = False
                            self.switchB = False
                            toast.broadcastMsg("ArkHelper", "理智耗尽", self.ico)
                            return False
                        elif eachObj['obj'] == 'levelup.png':
                            lackTem = False
                            for eachTem in self.listBattleImg:
                                if eachTem['obj'] == 'stoneLack.png':
                                    lackTem = eachTem
                                    break
                            if lackTem:
                                picLackInfo = pictureFind.matchImg(
                                    self.screenShot, lackTem, 0.9)
                                if picLackInfo:
                                    self.adb.click(picLackInfo['result'][0],
                                                   picLackInfo['result'][1],
                                                   isSleep=True)
                                    self.switch = False
                                    toast.broadcastMsg("ArkHelper", "理智耗尽",
                                                       self.ico)
                                else:
                                    self.adb.click(picPos[0],
                                                   picPos[1],
                                                   isSleep=True)
                                    if eachObj['obj'] == 'startApartOF.png':
                                        self.adb.screenShot()
                                        OFend = pictureFind.matchImg(
                                            self.screenShot,
                                            self.cwd + '/res/act/OFend.png',
                                            0.8)
                                        if OFend != None:
                                            self.switch = False
                                            toast.broadcastMsg(
                                                "ArkHelper", "黑曜石节门票不足",
                                                self.ico)
                            else:
                                self.adb.click(picPos[0],
                                               picPos[1],
                                               isSleep=True)
                                if eachObj['obj'] == 'startApartOF.png':
                                    self.adb.screenShot()
                                    OFend = pictureFind.matchImg(
                                        self.screenShot,
                                        self.cwd + '/res/act/OFend.png', 0.8)
                                    if OFend != None:
                                        self.switch = False
                                        toast.broadcastMsg(
                                            "ArkHelper", "黑曜石节门票不足", self.ico)
                        else:
                            self.adb.click(picPos[0], picPos[1], isSleep=True)
                        break
                else:
                    break
            if isInBattle:
                sleep(1)