Пример #1
0
 def onBlueTacketAndBattle(self):
     screen.setForegroundWindow(self.handle)
     xylist = screen.matchResImgInWindow(
         self.handle, "map//blue_tacket_15_15_40_20.png", 0.9)
     if len(xylist) > 0:
         self.leftClickPer(75, 80)
         self.battleEvenCode = 2
Пример #2
0
 def findImgAndclick(self, path):
     screen.setForegroundWindow(self.handle)
     xylist = screen.matchResImgInWindow(self.handle, path, 0.9)
     if len(xylist) > 0:
         x, y = xylist[0]
         self.leftClick(x, y)
         time.sleep(2)
Пример #3
0
 def onDlgAccept(self):
     screen.setForegroundWindow(self.handle)
     xylist = screen.matchResImgInWindow(
         self.handle, "map//accept_60_58_80_62.png", 0.9)
     if len(xylist) > 0:
         x, y = xylist[0]
         self.leftClick(x+2, y+2)
         self.battleEvenCode = 0
Пример #4
0
 def onDlgBuyRoadAndClick(self):
     screen.setForegroundWindow(self.handle)
     xylist = screen.matchResImgInWindow(
         self.handle, "map//buy_road_20_58_40_62.png", 0.9)
     if len(xylist) > 0:
         x, y = xylist[0]
         self.leftClick(x+2, y+2)
         self.battleEvenCode = 3
Пример #5
0
 def onYellowPvpAndBattle(self):
     screen.setForegroundWindow(self.handle)
     xylist = screen.matchResImgInWindow(
         self.handle, "map//yellow_pvp_60_76_80_82.png", 0.9)
     if len(xylist) > 0:
         x, y = xylist[0]
         self.leftClick(x+2, y+2)
         self.battleEvenCode = 3
Пример #6
0
    def getEnemyLocation(self):

        imgs = self._enemys
        for i in range(len(imgs)):
            xylist = screen.matchResImgInWindow(self.getHandle(), imgs[i], 0.8)
            if len(xylist) > 0:
                return xylist

        return []
Пример #7
0
 def clickMacthImg(self, imgPath, threshold=0.9):
     screen.setForegroundWindow(self.handle)
     xylist = screen.matchResImgInWindow(self.handle, imgPath, threshold)
     if len(xylist) > 0:
         x, y = xylist[0]
         self.leftClick(x, y)
         time.sleep(2)
         return True
     return False
Пример #8
0
    def getBossLocation(self):
        imgs = self._boss

        random.shuffle(imgs)
        for i in range(len(imgs)):
            xylist = screen.matchResImgInWindow(self.getHandle(), imgs[i], 0.7)
            if len(xylist) > 0:
                return xylist

        return []
Пример #9
0
 def onDlgOkAndClick(self):
     screen.setForegroundWindow(self.handle)
     xylist = screen.matchResImgInWindow(self.handle,
                                         "on_dlg_ok_60_62_80_66.png", 0.9)
     if len(xylist) > 0:
         x, y = xylist[0]
         self.leftClick(x + 2, y + 2)
         time.sleep(2)
         return True
     return False
Пример #10
0
    def clickPoint(self):
        imgs = self._mapPoints

        for i in range(len(imgs)):
            xylist = screen.matchResImgInWindow(self.getHandle(), imgs[i], 0.8)
            if len(xylist) > 0:
                x, y = xylist[0]
                self.leftClick(x, y)
                time.sleep(10)
                if self.onGetItems():  #防止点错
                    self.battleContinue()
                    time.sleep(4)
Пример #11
0
    def getEnemyLocation(self):

        imgs = self._exEnemys + self._enemys
        if self._needRandomEnemyLocation:
            random.shuffle(imgs)
        for i in range(len(imgs)):
            xylist = screen.matchResImgInWindow(self.getHandle(), imgs[i], 0.7)
            if len(xylist) > 0:
                print("getEnemyLocation", imgs[i])
                return xylist

        return []
Пример #12
0
    def getBossLocation(self):
        imgs = [
            "enemy\\d1_4_boss_45_45_55_55.png",
            "enemy\\d1_2_boss_45_45_55_55.png",
            "enemy\\d1_3_boss_45_45_55_55.png",
            "enemy\\boss_48_45_52_55.png",
        ]

        random.shuffle(imgs)
        for i in range(len(imgs)):
            xylist = screen.matchResImgInWindow(self.handle, imgs[i], 0.7)
            if len(xylist) > 0:
                return xylist

        return []
Пример #13
0
    def onDlgChallengeAndClick(self):
        screen.setForegroundWindow(self.handle)

        tarImgs = [
            "map//challenge_60_58_80_62.png",
            "map//challenge2_60_58_80_62.png",
             "map//touxi_60_58_80_62.png",
        ]
        for img in tarImgs:
            xylist = screen.matchResImgInWindow(
                self.handle, img, 0.9)
            if len(xylist) > 0:
                x, y = xylist[0]
                self.leftClick(x+2, y+2)
                self.battleEvenCode = 0
Пример #14
0
    def onBusinessAndClose(self):
        screen.setForegroundWindow(self.handle)
        print("onBusinessAndClose")
        xylist = screen.matchResImgInWindow(
            self.handle, "map//on_business_65_73_85_76.png", 0.8)

        if len(xylist) > 0:
            # if self.canChangeRedAir():
            #      self.leftClickPer(75, 34)
            #      time.sleep(3)
            #      self.onDlgOkAndClick()
            #      self.leftClickPer(75, 46)
            #      time.sleep(3)
            #      self.onDlgOkAndClick()
            #      self.leftClickPer(75, 59)
            #      time.sleep(3)
            #      self.onDlgOkAndClick()

            x, y = xylist[0]
            self.leftClick(x, y)
Пример #15
0
    def toSelectTeam(self, teamNo):
        xyList = screen.matchResImgInWindow(self.handle,
                                            "on_select_team_10_35_90_45.png")
        x, y = xyList[0]
        winH = self.getWinH()
        winW = self.getWinW()
        winW25 = int(winW * 0.25)
        winH10 = int(winH * 0.1)
        winH5 = int(winH * 0.05)

        offsetY = int(teamNo / 3)
        offsetX = (teamNo % 3) - 1

        teamX = x - winW25 + (winW25 * offsetX)
        teamY = y + winH10 + (winH5 * offsetY)
        win32api.SetCursorPos((teamX, teamY))
        print("teamloc", teamX, teamY)

        win32api.mouse_event(
            win32con.MOUSEEVENTF_LEFTDOWN | win32con.MOUSEEVENTF_LEFTUP, 0, 0,
            0, 0)
Пример #16
0
    def getEnemyLocation(self):

        imgs = [
            "enemy\\ship_p1_45_45_55_55.png",
            "enemy\\ship_p2_45_45_55_55.png",
            "enemy\\ship_p3_45_45_55_55.png",
            "enemy\\ship_p4_45_45_55_55.png",
            "enemy\\ship_z1_45_45_55_55.png",
            "enemy\\ship_z2_45_45_55_55.png",
            "enemy\\ship_z3_45_45_55_55.png",
            "enemy\\ship_h1_45_45_55_55.png",
            "enemy\\ship_h1_45_45_55_55.png",
            "enemy\\ship_h2_45_45_55_55.png",
            "enemy\\ship_q1_45_45_55_55.png",
            "enemy\\ship_q2_45_45_55_55.png",
        ]

        # random.shuffle(imgs)
        for i in range(len(imgs)):
            xylist = screen.matchResImgInWindow(self.handle, imgs[i], 0.7)
            if len(xylist) > 0:
                return xylist

        return []
Пример #17
0
 def closeStartDlg(self):
     screen.setForegroundWindow(self.handle)
     xylist = screen.matchResImgInWindow(
         self.handle, "map//start_dlg_25_25_75_38.png", 0.9)
     if len(xylist) > 0:
         self.leftClickPer(88, 28)
Пример #18
0
 def getGuessLocation(self):
     return screen.matchResImgInWindow(self.handle,
                                       "guess//guess_10_22_90_30.png")
Пример #19
0
    def run(self):
        win32gui.SetForegroundWindow(self.handle)
        while self._isRun:
            #
            self.resetCursorPos()

            if self.onEvenSelectBattle():
                # self.toEvenBattle()
                self.battleEvenCode = 0

            # if self.onPvpSelectBattle():
            #     self.noPvp()
            #     time.sleep(2)
            # self.onDlgBuyRoadAndClick()
            if self.needBuyRoad:
                self.onDlgBuyRoadAndClick()
            self.onDlgChallengeAndClick()
            self.onDlgAccept()
            self.onBlueTacketAndBattle()
            self.onYellowPvpAndBattle()
            self.closeMapInfoMenu()
            self.skipRocket()
            self.closeStartDlg()
            if self.onBar():
                self.leftClickPer(10, 70)
                time.sleep(2)
                self.leftClickPer(10, 70)
                time.sleep(2)
                self.leftClickPer(10, 70)
                time.sleep(2)
                self.pressBack()
                time.sleep(3)

            if self.inStoryLevel() or self.onGoldBar() or self.onBlackMarket() or self.onArmyBar():
                self.pressBack()
                time.sleep(3)

            if self.onYellowPvp():
                self.leftClick(78, 78)
                self.battleEvenCode = 1
                time.sleep(2)

            if self.onSelectTeam():
                if self.battleEvenCode == 0:
                    self.toSelectTeam(self.mapTeamNo)
                if self.battleEvenCode == 1:
                    self.toSelectTeam(self.pvpTeamNo)
                if self.battleEvenCode == 2:
                    self.toSelectTeam(self.blueTeamNo)
                if self.battleEvenCode == 3:
                    self.toSelectTeam(self.pvpTeamNo)
                time.sleep(3)

            if self.onTalk():
                self.skipTalk()
                time.sleep(3)

            if self.onDlgOkAndClick():
                continue

            self.clickYellowOK()

            self.onBusinessAndClose()

            print("clickOnGetItems")
            # 获取物品执行
            if self.onGetItems():
                self.clickOnGetItems()
                time.sleep(2)

            # 体力不足hash
            print("toUseHp")
            if self.isHpEmpty():
                if self._isUseHp:
                    self.toUseHp()
                    time.sleep(2)
                self.closeEmptyHp()

            if self.onSupportDlg():
                self.noSupport()
                time.sleep(2)

            if self._canUseOil:
                self.useOil()
                self._canUseOil = False

            if self.canResetMap():
                self.leftClickPer(65, 88)
                time.sleep(2)
                self.onDlgOkAndClick()
                self._isScranMap = False
                self._canUseOil = True

            if self.onMap():
                print("findUnKnowMap")
                xylist = screen.matchResImgInWindow(
                    self.handle, "map//unkown_46_46_54_50.png", 0.7)

                resList = []
                minY = self.getPosY(20)
                maxY = self.getPosY(80)
                for point in xylist:
                    if point[1] >= minY and point[1] <= maxY:
                        resList.append(point)

                if len(resList) > 0:
                    # for i in xylist:

                    x, y = resList[0]
                    cx = self.getPosX(50)
                    cy = self.getPosY(50)
                    # dx=int(cx+(cx-x)/2)
                    # dy=int(cy+(cy-y)/2)
                    self.drag(x, y, cx, cy)  # 拖动不是一比一 大概是一半
                    time.sleep(0.5)
                    self.drag(x, y, cx, cy)
                    time.sleep(2)
                    self.leftClick(cx, cy)
                    time.sleep(2)
                    if self.inStoryLevel():
                        self.pressBack()
                        time.sleep(2)
                    else:
                        self.leftClick(cx, cy)  # 需要连点
                        time.sleep(3)
                    # self.leftClick(x,y)#需要连点
                elif self.onMap():

                    self.resetMapPosition()
                    time.sleep(2)
                    self.scranDragMap()
                    time.sleep(2)
                    continue

            time.sleep(self.interval)
Пример #20
0
 def closeMapInfoMenu(self):
     screen.setForegroundWindow(self.handle)
     xylist = screen.matchResImgInWindow(
         self.handle, "map//map_infomenu_70_17_98_20.png", 0.9)
     if len(xylist) > 0:
         self.leftClickPer(98, 30)
Пример #21
0
 def getBossLocation(self):
     return screen.matchResImgInWindow(self.handle,
                                       "hongran//boss_45_45_55_55.png")
Пример #22
0
 def canChangeRedAir(self):
     screen.setForegroundWindow(self.handle)
     xylist = screen.matchResImgInWindow(
         self.handle, "map//shop_red_air_82_40_98_48.png", 0.9)
     return len(xylist) > 0
Пример #23
0
 def clickToFire(self):
     xylist = screen.matchResImgInWindow(
         self.getHandle(), "to_fire_80_85_95_95.png", 0.8)
     if len(xylist) > 0:
         x, y = xylist[0]
         self.leftClick(x, y)
Пример #24
0
 def matchResImgInWindow(self,imgName,threshold=0.8):
     xylist=screen.matchResImgInWindow(self.handle,imgName,threshold)
     if len(xylist) >0:
         return True
     else:
         return False
Пример #25
0
 def getBossLocation(self):
     return screen.matchResImgInWindow(self.getHandle(),
                                       "map8//boss_48_45_54_55.png")