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
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
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
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
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()
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
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
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
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
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
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
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
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)
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])
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
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)
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
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)