コード例 #1
0
    def sendMouseRightClickEx(self, x=300, y=300, count=1, shift=False, sleep=300):
        lparam = win32api.MAKELONG(x, y)

        if not shift:
            win32api.PostMessage(self.hwnd, win32con.WM_RBUTTONDOWN, win32con.VK_RBUTTON, lparam)
            win32api.PostMessage(self.hwnd, win32con.WM_RBUTTONUP, win32con.VK_RBUTTON, lparam)
            return

        win32api.PostMessage(self.hwnd, win32con.WM_KEYDOWN, win32con.VK_SHIFT, 0)

        for a in range(count):
            win32api.PostMessage(self.hwnd, win32con.WM_RBUTTONDOWN, win32con.VK_RBUTTON, lparam)
            win32api.PostMessage(self.hwnd, win32con.WM_RBUTTONUP, win32con.VK_RBUTTON, lparam)
            libs.rSleep(300)

        win32api.PostMessage(self.hwnd, win32con.WM_KEYUP, win32con.VK_SHIFT, 0)

        
        if shift:
            wparam = win32con.MK_SHIFT | win32con.MK_RBUTTON
        else:
            wparam = win32con.MK_RBUTTON

        for a in range(count):
            win32api.PostMessage(self.hwnd, win32con.WM_RBUTTONDOWN, wparam, lparam)
            win32api.PostMessage(self.hwnd, win32con.WM_RBUTTONUP, wparam, lparam)
            libs.sleep(sleep)
コード例 #2
0
	def ShowMask(self):
		animation = self.Text
		print
		for i in range(len(self.Text)):
			libs.sleep(0.001)
			libs.sys.stdout.write(animation[i % len(animation)])
			libs.sys.stdout.flush()
		print
コード例 #3
0
 def pickItemImage(self, img):
     try:
         maxLoc = self.isImageAtWindow(img)
         self.setCursorPos(*maxLoc)
         libs.sleep(400)
         self.clickMouseLeftButton()
         libs.sleep(1800)
     except:
         pass
コード例 #4
0
ファイル: controller.py プロジェクト: ptmono/dAutomation
 def pickItemImage(self, img):
     try:
         maxLoc = self.isImageAtWindow(img)
         self.setCursorPos(*maxLoc)
         libs.sleep(400)
         self.clickMouseLeftButton()
         libs.sleep(1800)
     except:
         pass
コード例 #5
0
    def setSkills(self, skills):
        for skill in skills:
            menu_loc = Skills.menu_location[skill]
            img, sub_skill_loc = skills[skill]
            img = config.imgs_dir + img

            # Open skill menu
            self.sendMouseRightClick(*menu_loc)
            libs.sleep(400)

            # Set skill
            self._setSkills(img, sub_skill_loc)
コード例 #6
0
ファイル: controller.py プロジェクト: ptmono/dAutomation
    def setSkills(self, skills):
        for skill in skills:
            menu_loc = Skills.menu_location[skill]
            img, sub_skill_loc = skills[skill]
            img = config.imgs_dir + img

            # Open skill menu
            self.sendMouseRightClick(*menu_loc)
            libs.sleep(400)

            # Set skill
            self._setSkills(img, sub_skill_loc)
コード例 #7
0
ファイル: warrier_rest.py プロジェクト: ptmono/dAutomation
    def attackMonster(self):
        try:
            x, y = self.monster()
            print "monster", str(x), str(y)
        except:
            return

        self.ctl.setCursorPos(x, y)
        libs.sleep(400)
        for a in range(30):
            self.ctl.skill2()
            libs.sleep(100)
コード例 #8
0
ファイル: warrier_rest.py プロジェクト: kobojp/dAutomation
    def attackMonster(self):
        try:
            x, y = self.monster()
            print "monster", str(x), str(y)
        except:
            return

        self.ctl.setCursorPos(x, y)
        libs.sleep(400)
        for a in range(30):
            self.ctl.skill2()
            libs.sleep(100)
コード例 #9
0
    def pickItem(self, min_hsv, max_hsv, min_pixels):
        self.setCursorPos(10, 10)
        contours = self.findHSVEX(min_hsv, max_hsv, min_pixels)
        #print contours
        try:
            x, y = contours[0][0][0]
            print "PickItem: ", x, y
        except:
            return

        self.setCursorPos(x, y)
        libs.sleep(400)
        self.clickMouseLeftButton()
        libs.sleep(1800)
コード例 #10
0
ファイル: controller.py プロジェクト: ptmono/dAutomation
    def pickItem(self, min_hsv, max_hsv, min_pixels):
        self.setCursorPos(10, 10)
        contours = self.findHSVEX(min_hsv, max_hsv, min_pixels)
        #print contours
        try:
            x, y = contours[0][0][0]
            print "PickItem: ", x, y
        except:
            return

        self.setCursorPos(x, y)
        libs.sleep(400)
        self.clickMouseLeftButton()
        libs.sleep(1800)
コード例 #11
0
    def pickItems(self):
        self.sendAlt()
        libs.sleep(600)
        # legend
        #(109, 182-192, 150-161) #more tight
        #(109, 179-195, 123-171) #problem
        for a in range(1):
            self.pickItem([109, 182, 150], [109, 192, 161], 2)
            self.pickItem([60, 245, 107], [62, 255, 255], 2)
            libs.sleep(300)

        # rare
        #(90-90, 234-254, 136-241)
        # libs.sleep(500)
        # self.pickItem([90, 234, 136], [90, 254, 241])

        self.pickItemImages()
コード例 #12
0
ファイル: controller.py プロジェクト: ptmono/dAutomation
    def pickItems(self):
        self.sendAlt()
        libs.sleep(600)
        # legend
        #(109, 182-192, 150-161) #more tight
        #(109, 179-195, 123-171) #problem
        for a in range(1):
            self.pickItem([109, 182, 150], [109, 192, 161], 2)
            self.pickItem([60, 245, 107], [62, 255, 255], 2)            
            libs.sleep(300)
        
        # rare
        #(90-90, 234-254, 136-241)
        # libs.sleep(500)
        # self.pickItem([90, 234, 136], [90, 254, 241])

        self.pickItemImages()
コード例 #13
0
ファイル: warrier_rest.py プロジェクト: ptmono/dAutomation
 def repair(self):
     self.ctl.select(491, 64)
     libs.sleep(1400)
     self.ctl.select(422, 120)
     libs.sleep(800)
     self.ctl.select(141, 293)
     libs.sleep(800)
     self.ctl.sendESC()
     libs.sleep(300)
     config.REPAIRP = False
コード例 #14
0
ファイル: warrier_rest.py プロジェクト: kobojp/dAutomation
 def repair(self):
     self.ctl.select(491, 64)
     libs.sleep(1400)
     self.ctl.select(422, 120)
     libs.sleep(800)
     self.ctl.select(141, 293)
     libs.sleep(800)
     self.ctl.sendESC()
     libs.sleep(300)
     config.REPAIRP = False
コード例 #15
0
ファイル: controller.py プロジェクト: ptmono/dAutomation
 def _setSkills(self, img, sub_skill_loc):
     for a in range(10):
         try:
             libs.sleep(800)
             # (229, 69), (577, 199)
             maxloc = self.isImageAtRegion(img, 229, 69, 350, 130)
             self.click(*maxloc)
             libs.sleep(400)                
             self.click(*Skills.menu_sub_location[sub_skill_loc])
             libs.sleep(400)
             self.click(338, 455)
             libs.sleep(400)
             return
         except:
             # Next page
             self.click(*Skills.menu_next_button_location)
             libs.sleep(400)
             continue
コード例 #16
0
 def _setSkills(self, img, sub_skill_loc):
     for a in range(10):
         try:
             libs.sleep(800)
             # (229, 69), (577, 199)
             maxloc = self.isImageAtRegion(img, 229, 69, 350, 130)
             self.click(*maxloc)
             libs.sleep(400)
             self.click(*Skills.menu_sub_location[sub_skill_loc])
             libs.sleep(400)
             self.click(338, 455)
             libs.sleep(400)
             return
         except:
             # Next page
             self.click(*Skills.menu_next_button_location)
             libs.sleep(400)
             continue
コード例 #17
0
ファイル: warrier_rest.py プロジェクト: ptmono/dAutomation
def main():
    d3w = DWindowUtiles()
    win32gui.SetForegroundWindow(d3w.hwnd)
    win32gui.MoveWindow(d3w.hwnd, 0, 0, 800, 600, win32con.TRUE)
    controller = D3Controller(D3ForegroundController)
    town = Town(controller)
    libs.sleep(1400)
    town.setSkill()

    while 1:
        town.clickContinueGameButton()
        town.waitTown()
        libs.sleep(800)
        town.ctl.click(776, 211) # remove subject window

        if config.REPAIRP:
            town.repair()
            town.exitToMenu()
            continue
        
        town.goIntoWarrior()
        libs.sleep(1000)
        town.goFront()
        town.setRepair()
            #town.war_throw()
        town.war()

        for a in range(2):
            town.ctl.pickItems()
            libs.sleep(100)

            town.ctl.move(529, 232)
            libs.sleep(1000)
            town.ctl.pickItems()
            
            town.exitToMenu()
コード例 #18
0
ファイル: warrier_rest.py プロジェクト: kobojp/dAutomation
def main():
    d3w = DWindowUtiles()
    win32gui.SetForegroundWindow(d3w.hwnd)
    win32gui.MoveWindow(d3w.hwnd, 0, 0, 800, 600, win32con.TRUE)
    controller = D3Controller(D3ForegroundController)
    town = Town(controller)
    libs.sleep(1400)
    town.setSkill()

    while 1:
        town.clickContinueGameButton()
        town.waitTown()
        libs.sleep(800)
        town.ctl.click(776, 211)  # remove subject window

        if config.REPAIRP:
            town.repair()
            town.exitToMenu()
            continue

        town.goIntoWarrior()
        libs.sleep(1000)
        town.goFront()
        town.setRepair()
        #town.war_throw()
        town.war()

        for a in range(2):
            town.ctl.pickItems()
            libs.sleep(100)

            town.ctl.move(529, 232)
            libs.sleep(1000)
            town.ctl.pickItems()

            town.exitToMenu()
コード例 #19
0
ファイル: warrier_rest.py プロジェクト: ptmono/dAutomation
 def setSkill(self):
     if not self.isInMenu():
         self.exitToMenu()
     libs.sleep(800)
     self.clickContinueGameButton()
     self.waitTown()
     libs.sleep(800)
     self.ctl.setSkills(Skills.war_jump)
     libs.sleep(800)
     self.exitToMenu()        
コード例 #20
0
ファイル: warrier_rest.py プロジェクト: kobojp/dAutomation
 def setSkill(self):
     if not self.isInMenu():
         self.exitToMenu()
     libs.sleep(800)
     self.clickContinueGameButton()
     self.waitTown()
     libs.sleep(800)
     self.ctl.setSkills(Skills.war_jump)
     libs.sleep(800)
     self.exitToMenu()
コード例 #21
0
ファイル: warrier_rest.py プロジェクト: ptmono/dAutomation
    def war(self):
        self.ctl.setCursorPos(790, 274)
        libs.sleep(300)
        self.ctl.sendKey("1")
       	libs.rSleep(300)

        self.ctl.setCursorPos(326, 345)
        libs.rSleep(100)
        self.ctl.swingStandingLefta(8, 500)
        self.ctl.setCursorPos(497, 275)
        libs.sleep(100)
        self.ctl.swingStandingRighta(8, 500)

        self.ctl.sendKey("4")
        libs.rSleep(400)
        self.ctl.sendKey("2")        
        libs.sleep(400)

        # Hero
        self.ctl.sendKey("3")        
        libs.rSleep(400)
        self.ctl.sendKey("3")
        libs.rSleep(400)

        # Volcano
        self.ctl.clickMouseRightButton()
        libs.rSleep(400)
        self.ctl.clickMouseRightButton()        

        self.ctl.swingStandingLefta(9, 500)
        self.ctl.swingStandingRighta(9, 500)

        self.ctl.sendKey("2")
        libs.rSleep(200)
        self.ctl.swingStandingLefta(11, 500)
        self.ctl.swingStandingRighta(11, 500)        
        
        #pickItems()
        #imagePickItem()

        self.ctl.move(529, 232)
        libs.rSleep(1200)
        self.ctl.move(40, 374)
        libs.rSleep(1800)
        self.ctl.move(524, 195)
        libs.rSleep(1700)
コード例 #22
0
ファイル: warrier_rest.py プロジェクト: kobojp/dAutomation
    def war(self):
        self.ctl.setCursorPos(790, 274)
        libs.sleep(300)
        self.ctl.sendKey("1")
        libs.rSleep(300)

        self.ctl.setCursorPos(326, 345)
        libs.rSleep(100)
        self.ctl.swingStandingLefta(8, 500)
        self.ctl.setCursorPos(497, 275)
        libs.sleep(100)
        self.ctl.swingStandingRighta(8, 500)

        self.ctl.sendKey("4")
        libs.rSleep(400)
        self.ctl.sendKey("2")
        libs.sleep(400)

        # Hero
        self.ctl.sendKey("3")
        libs.rSleep(400)
        self.ctl.sendKey("3")
        libs.rSleep(400)

        # Volcano
        self.ctl.clickMouseRightButton()
        libs.rSleep(400)
        self.ctl.clickMouseRightButton()

        self.ctl.swingStandingLefta(9, 500)
        self.ctl.swingStandingRighta(9, 500)

        self.ctl.sendKey("2")
        libs.rSleep(200)
        self.ctl.swingStandingLefta(11, 500)
        self.ctl.swingStandingRighta(11, 500)

        #pickItems()
        #imagePickItem()

        self.ctl.move(529, 232)
        libs.rSleep(1200)
        self.ctl.move(40, 374)
        libs.rSleep(1800)
        self.ctl.move(524, 195)
        libs.rSleep(1700)
コード例 #23
0
ファイル: controller.py プロジェクト: ptmono/dAutomation
    def pickItemImages(self):
        for img in Items.images:
            libs.sleep(400)
            img = config.imgs_dir + img

            self.pickItemImage(img)
コード例 #24
0
ファイル: warrier_rest.py プロジェクト: ptmono/dAutomation
 def goIntoWarrior(self):
     self.ctl.move(17, 167)
     libs.sleep(2900)
     self.ctl.select(289, 135)
     libs.sleep(2900)
コード例 #25
0
ファイル: warrier_rest.py プロジェクト: ptmono/dAutomation
    def war_throw(self):
        self.ctl.skill4()
        libs.sleep(300)
        self.ctl.skill1()
        self.ctl.setCursorPos(782, 227)
        libs.sleep(300)
        for a in range(30):
            # throw
            self.ctl.skill2()
            libs.sleep(100)

        self.ctl.skill3()
        libs.sleep(300)

        self.ctl.skillb()
        libs.sleep(300)

        # for a in range(100):
        #     self.ctl.skill2()
        #     libs.sleep(100)
        # center is about (406, 278)
        # 1step is (491, 273)
        for a in range(3):
            self.ctl.skill1()
            self.attackMonster()
            libs.sleep(700)

        self.ctl.move(556, 278)
        libs.sleep(1000)

        self.ctl.pickItems()

        for a in range(3):
            self.ctl.skill1()
            self.attackMonster()
            libs.sleep(700)

        self.ctl.move(556, 278)
        libs.sleep(1000)

        self.ctl.skilla()
        
        for a in range(3):
            self.ctl.skill1()
            self.attackMonster()
            libs.sleep(700)

        for a in range(3):
            self.ctl.skill1()
            self.attackMonster()
            libs.sleep(700)

        self.ctl.pickItems()
コード例 #26
0
ファイル: warrier_rest.py プロジェクト: kobojp/dAutomation
    def war_throw(self):
        self.ctl.skill4()
        libs.sleep(300)
        self.ctl.skill1()
        self.ctl.setCursorPos(782, 227)
        libs.sleep(300)
        for a in range(30):
            # throw
            self.ctl.skill2()
            libs.sleep(100)

        self.ctl.skill3()
        libs.sleep(300)

        self.ctl.skillb()
        libs.sleep(300)

        # for a in range(100):
        #     self.ctl.skill2()
        #     libs.sleep(100)
        # center is about (406, 278)
        # 1step is (491, 273)
        for a in range(3):
            self.ctl.skill1()
            self.attackMonster()
            libs.sleep(700)

        self.ctl.move(556, 278)
        libs.sleep(1000)

        self.ctl.pickItems()

        for a in range(3):
            self.ctl.skill1()
            self.attackMonster()
            libs.sleep(700)

        self.ctl.move(556, 278)
        libs.sleep(1000)

        self.ctl.skilla()

        for a in range(3):
            self.ctl.skill1()
            self.attackMonster()
            libs.sleep(700)

        for a in range(3):
            self.ctl.skill1()
            self.attackMonster()
            libs.sleep(700)

        self.ctl.pickItems()
コード例 #27
0
ファイル: warrier_rest.py プロジェクト: kobojp/dAutomation
 def goIntoWarrior(self):
     self.ctl.move(17, 167)
     libs.sleep(2900)
     self.ctl.select(289, 135)
     libs.sleep(2900)
コード例 #28
0
ファイル: controller.py プロジェクト: ptmono/dAutomation
 def select(self, x, y):
     self.setCursorPos(x, y)
     libs.sleep(300)
     self.clickMouseLeftButton()
コード例 #29
0
    def pickItemImages(self):
        for img in Items.images:
            libs.sleep(400)
            img = config.imgs_dir + img

            self.pickItemImage(img)
コード例 #30
0
 def select(self, x, y):
     self.setCursorPos(x, y)
     libs.sleep(300)
     self.clickMouseLeftButton()