Пример #1
0
    def PressSkill(self,
                   key,
                   delay,
                   afterdelay,
                   thenpress=None,
                   doublepress=False,
                   issimpleattack=False):
        youlingstr = VK_reverse[key]

        if issimpleattack:
            for i in range(10):
                socketrpc("keydown %s" % youlingstr), RanSleep(0.05)
                socketrpc("keyup %s" % youlingstr), RanSleep(0.05)
                RanSleep(0.05)

        else:
            socketrpc("keydown %s" % youlingstr), RanSleep(delay)
            socketrpc("keyup %s" % youlingstr), RanSleep(afterdelay)

            if thenpress is not None:
                youlingstrThen = VK_reverse[thenpress]
                socketrpc("keydown %s" % youlingstrThen), KongjianSleep()
                socketrpc("keyup %s" % youlingstrThen)

            if doublepress:

                def worker():
                    for i in range(10):
                        socketrpc("keydown %s" % youlingstr), KongjianSleep()
                        socketrpc("keyup %s" % youlingstr), KongjianSleep()

                threading.Thread(target=worker).start()
Пример #2
0
    def ChangeEquip(self):
        if not OpenBagScene():
            logger.warning("打开装备栏失败")
            return

        bagpos = bagScene.Pos()

        aj().MouseMoveTo(bagpos[0] - 91, bagpos[1] + 192), KongjianSleep()
        aj().MouseLeftClick(), KongjianSleep()

        def EquipBetter():
            for v in CheckReplices:
                betterEquip = self.BagEquipBetter(v[0], v[1])
                if betterEquip is not None:
                    logger.info("更换装备: %s", betterEquip)
                    pos = self.BagIdxToPos(betterEquip.idx - 9, bagpos)
                    aj().MouseMoveTo(pos[0], pos[1]), KongjianSleep()
                    aj().MouseLeftDown(), KongjianSleep()
                    aj().MouseMoveTo(bagpos[0],
                                     bagpos[1] + 100), KongjianSleep()
                    aj().MouseLeftUp(), KongjianSleep()
                    aj().MouseLeftClick(), KongjianSleep()

        # 两次调用. 防止魔法封印
        EquipBetter()

        if self.DoesBagHaveBetterEquip():
            RanSleep(0.5)
            EquipBetter()
Пример #3
0
    def MouseMoveR(self, x, y):
        (curx, cury) = GetCursorInfo()
        centrex, centrey = curx + x, cury + y

        flag = False
        # 修正
        while not self.IsMovedTo(centrex, centrey):
            (curx, cury) = GetCursorInfo()

            if flag:
                logger.warning("当前鼠标坐标: (%d, %d) != (%d, %d)" %
                               (curx, cury, centrex, centrey))
            else:
                flag = True
            socketrpc("moveto %d %d" % (centrex, centrey)), RanSleep(0.3)
Пример #4
0
    def FenjieAll(self):
        Clear()

        logger.info("分解所有")

        pos = self.GetFenjieJiPos()

        if pos is None or pos == (0, 0):
            return

        aj().MouseMoveTo(pos[0], pos[1]), KongjianSleep()
        aj().MouseLeftClick(), KongjianSleep()
        aj().MouseMoveR(56, 54), KongjianSleep()
        aj().MouseLeftClick(), KongjianSleep()

        # 分解按钮
        fenjiebt = fenjieButton.Pos()
        aj().MouseMoveTo(fenjiebt[0], fenjiebt[1]), KongjianSleep()

        # 检查 "稀有" "勇者" "包含我的职业装备" 是否勾选
        xiyoucheck = (Picture(GetImgDir() + "checked.png", fenjiebt[0] + 67, fenjiebt[1] + 47, 12, 12),
                      (fenjiebt[0] + 67 + 6, fenjiebt[1] + 47 + 6))

        yongzhecheck = (Picture(GetImgDir() + "checked.png", fenjiebt[0] + 67, fenjiebt[1] + 61, 12, 12),
                        (fenjiebt[0] + 67 + 6, fenjiebt[1] + 61 + 6))

        zhiyecheck = (Picture(GetImgDir() + "checked.png", fenjiebt[0] + 67, fenjiebt[1] + 80, 12, 12),
                      (fenjiebt[0] + 67 + 6, fenjiebt[1] + 80 + 6))

        checks = [xiyoucheck, yongzhecheck, zhiyecheck]
        for v in checks:
            if not v[0].Match():
                aj().MouseMoveTo((v[1])[0], (v[1])[1]), KongjianSleep()
                aj().MouseLeftClick(), KongjianSleep()
                aj().MouseMoveTo(fenjiebt[0], fenjiebt[1]), KongjianSleep()

        # 分解按钮
        aj().MouseMoveTo(fenjiebt[0], fenjiebt[1]), KongjianSleep()
        aj().MouseLeftClick(), KongjianSleep()

        # 确认
        pos = fenjieConfirm.Pos()
        aj().MouseMoveTo(pos[0], pos[1]), KongjianSleep()
        aj().MouseLeftClick(), RanSleep(3.0)
Пример #5
0
    def MouseMoveToTgp(self, x, y):
        hwnd = win32gui.FindWindow("TWINCONTROL", "WeGame")

        try:
            centrex, centrey = win32gui.ClientToScreen(hwnd, (int(x), int(y)))
        except:
            return

        flag = False
        # 修正
        while not self.IsMovedTo(centrex, centrey):
            (curx, cury) = GetCursorInfo()

            if flag:
                logger.warning("当前鼠标坐标: (%d, %d) != (%d, %d)" %
                               (curx, cury, centrex, centrey))
            else:
                flag = True
            socketrpc("moveto %d %d" % (centrex, centrey)), RanSleep(0.3)
Пример #6
0
    def AddSkillPoints(self):
        if not self.OpenSkillScene():
            logger.warning("打开技能栏失败")
            return

        logger.info("技能栏已经打开")

        needLearn = False
        if self.NeedWangji():
            logger.info("去掉不需要技能的加点")
            aj().MouseMoveTo(536, 360), KongjianSleep()
            aj().MouseWheel(30), KongjianSleep()

            for v in self.deletedskills:
                logger.info("开始忘记技能: %s", v.name)

                if not IsSkillLearned(v.name):
                    logger.info("技能: %s 不需要忘记" % v.name)
                else:

                    for i in range(3):
                        if self.FindedPic(v.picutre):
                            break
                        aj().MouseMoveTo(536, 360), KongjianSleep()
                        aj().MouseLeftClick(), KongjianSleep()
                        aj().MouseWheel(-3), KongjianSleep()

                    if not self.FindedPic(v.picutre):
                        logger.warning("找不到技能: %s" % v.name)
                        continue

                    pos = v.GetPos()
                    needLearn = True
                    logger.info("忘记,移动到相对位置: (%d,%d)" % (pos[0], pos[1]))
                    aj().MouseMoveTo(pos[0], pos[1]), KongjianSleep()
                    aj().ShiftRight(), KongjianSleep()

        logger.info("开始学习技能")
        aj().MouseMoveTo(536, 360), KongjianSleep()
        aj().MouseWheel(30), KongjianSleep()

        if self.AttackType is not None:
            pos = skillScene.Pos()
            if pos is not None or pos != (0, 0):
                tolearnpos = []
                if self.AttackType == MOFA:
                    tolearnpos.append((pos[0] + mofabaoji[0], pos[1] + mofabaoji[1]))
                    tolearnpos.append((pos[0] + mofabeiji[0], pos[1] + mofabeiji[1]))
                elif self.AttackType == WULI:
                    tolearnpos.append((pos[0] + wulibaoji[0], pos[1] + wulibaoji[1]))
                    tolearnpos.append((pos[0] + wilibeiji[0], pos[1] + wilibeiji[1]))

                for pos in tolearnpos:
                    w, h = 50, 60
                    halfw, halfh = w // 2, h // 2
                    cannotLearn = Picture(GetImgDir() + "cannotlearn.png", dx=pos[0] - halfw, dy=pos[1] - halfh, dw=w,
                                          dh=h)
                    jingtong = Picture(GetImgDir() + "jingtong.png", dx=pos[0] - halfw, dy=pos[1] - halfh, dw=w, dh=h)

                    if cannotLearn.Match() or jingtong.Match():
                        logger.warning("暴击不需要学习")
                    else:
                        needLearn = True
                        aj().MouseMoveTo(pos[0], pos[1]), KongjianSleep()
                        aj().ShiftLeft(), KongjianSleep()
            else:
                logger.warning("没有找到技能栏")

        for v in self.learnstrategy:

            logger.info("学习技能: %s" % v.name)

            for i in range(3):
                if self.FindedPic(v.picutre):
                    break
                aj().MouseMoveTo(536, 360), KongjianSleep()
                aj().MouseLeftClick(), KongjianSleep()
                aj().MouseWheel(-3), KongjianSleep()

            if not self.FindedPic(v.picutre):
                logger.warning("找不到技能: %s" % v.name)
                continue

            pos = v.GetPos()

            # w, h = 30, 25
            w, h = 50, 60
            halfw, halfh = w // 2, h // 2
            cannotLearn = Picture(GetImgDir() + "cannotlearn.png", dx=pos[0] - halfw, dy=pos[1] - halfh, dw=w, dh=h)
            jingtong = Picture(GetImgDir() + "jingtong.png", dx=pos[0] - halfw, dy=pos[1] - halfh, dw=w, dh=h)
            if cannotLearn.Match() or jingtong.Match():
                logger.info("技能: %s 不需要学习", v.name)
            else:
                needLearn = True
                logger.info("学习,移动到相对位置: (%d,%d)" % (pos[0], pos[1]))
                aj().MouseMoveTo(pos[0], pos[1]), KongjianSleep()
                aj().ShiftLeft(), KongjianSleep()

            # aj().MouseMoveR(- (30 // 2 - 2), 0), KongjianSleep()

        logger.info("技能已学习完毕")

        if needLearn:
            # 确认按钮
            learnpos = skillSceneLearn.Pos()
            aj().MouseMoveTo(learnpos[0], learnpos[1]), KongjianSleep()
            aj().MouseLeftClick(), RanSleep(0.3)
            aj().MouseLeftClick(), KongjianSleep()
Пример #7
0
 def JiPaoZuo(self):
     socketrpc("keydown Left"), RanSleep(0.15)
     socketrpc("keyup Left"), RanSleep(0.15)
     socketrpc("keydown Left"), RanSleep(0.15)
Пример #8
0
 def JiPaoYou(self):
     socketrpc("keydown Right"), RanSleep(0.15)
     socketrpc("keyup Right"), RanSleep(0.15)
     socketrpc("keydown Right"), RanSleep(0.15)
Пример #9
0
 def DeleteAll(self):
     socketrpc("keydown Backspace"), RanSleep(2)
     socketrpc("keyup Backspace"), RanSleep(0.05)