示例#1
0
    def main_loop(self, task_in_mainloop, level_in_mainloop):
        time.sleep(1)
        print('while begin')
        self.run_sign = 1
        if self.close_sign == 1:
            self.log_message.set('忠告:你点击了停止按钮, 这波分析完就停')
            print('stop button pressed, stop')
            self.run_sign = 0
            self.b_start.config(state=tk.NORMAL)
            langrisser.cancel_top_most()
            return -1

        t1 = time.time()
        self.stage = langrisser.cdll_determine_stage()
        t2 = time.time()
        print('time determine: ', t2 - t1)

        self.text_stage.set('当前状态:' + str(self.stage))
        self.text_currentham.set('汉堡数目,当前/目标总数:' + str(self.num_ham) + '/' +
                                 str(self.intv_max_ham.get()))

        if self.stage == 100:
            langrisser.click(970, 286)

        elif self.stage in [351, 352, 353, 451, 452, 453, 551, 552, 553]:
            langrisser.click(645, 355)

        elif self.stage == 1:
            print('event map')
            if self.intv_solo_var.get() == 1:
                # langrisser.solo_event(self.c_project.current(), self.c_level.current())
                langrisser.solo_event(self.c_project.current(),
                                      int(self.strv_level.get()))

            elif self.intv_solo_var.get() == 0:
                langrisser.click(965, 715)  # enter team play

        elif self.stage == 91 or self.stage == 92 or self.stage == 93 or self.stage == 95:
            if self.c_is_event.current() == 1:
                langrisser.click(965, 715)  # enter team play
            else:
                gym_all = ['剑士', '弓手', '枪兵', '飞水', '骑兵', '魔法']
                if self.intv_solo_var.get() == 1:
                    y_gym = [220, 300, 380, 460, 540, 620]
                    langrisser.click(
                        200, y_gym[gym_all.index(self.strv_project.get())])
                    langrisser.drag(440, 660, 440, 300)
                    langrisser.wait_rand(0.5)
                    langrisser.drag(440, 660, 440, 300)
                    langrisser.wait_rand(0.5)
                    x_solo = 850
                    y_solo = [680, 540, 400, 260, 120]
                    langrisser.click(x_solo, y_solo[self.c_level.current()])
                else:
                    langrisser.click(965, 715)  # enter team play
        elif self.stage == 94:  # 宝藏
            langrisser.click(966, 670)
            langrisser.wait_rand(0.5)

        elif self.stage == 90:  # 组队
            print('index project, level:', self.c_project.current(),
                  self.c_level.current())
            if self.c_is_event.current() == 1:
                langrisser.event_training(task_in_mainloop,
                                          int(self.strv_level.get()))
            if self.c_is_event.current() == 0:
                langrisser.training(task_in_mainloop, level_in_mainloop)
            self.current_task = [
                self.c_project.current(),
                self.c_level.current()
            ]
            langrisser.wait_rand(4)
        elif self.stage == 2:  # press "出击"
            langrisser.click(955, 705)
            langrisser.wait_rand(1)
        elif self.stage == 3:
            print('stage3, checking c_crystal_buy_stamina.current: %d' %
                  self.c_crystal_buy_stamina.current())
            if self.c_crystal_buy_stamina.current() >= 1:
                if langrisser.is_40_crystal_buy() == 1:
                    langrisser.click(608, 466)
                    return 0
            if self.c_crystal_buy_stamina.current() >= 2:
                if langrisser.is_60_crystal_buy() == 1:
                    langrisser.click(608, 466)
                    return 0
            if self.c_crystal_buy_stamina.current() >= 3:
                if langrisser.is_100_crystal_buy() == 1:
                    langrisser.click(608, 466)
                    return 0

            if self.num_ham >= self.intv_max_ham.get():
                self.log_message.set('忠告:' + '够数啦,停了')
                self.b_start.config(state=tk.NORMAL)
                return 3

            langrisser.click(418, 462)  # eat a hamberger
            langrisser.wait_rand(1)
            if langrisser.is_imfull() == 1:
                langrisser.click(889, 312)  # click to close the "full" stage
                langrisser.wait_rand(2.2)
                self.num_ham += 1
                langrisser.auto_team()  # click auto team
                langrisser.wait_rand(3)
        elif self.stage == 4:  # fighting
            langrisser.wait_rand(10)
        elif self.stage == 5:  # victory
            langrisser.click(1000, 57)
            langrisser.wait_rand(1)
            langrisser.window_capture(langrisser.dir_tmp_pic + '43_tmp.bmp',
                                      31, 567, 144, 608)
            rms_dd = langrisser.rms_difference(
                langrisser.dir_tmp_pic + '43_tmp.bmp',
                langrisser.dir_solid_pic + '43_redo.bmp')
            if rms_dd < 20:
                tt_str = datetime.datetime.now().strftime('%Y_%m_%d_%H_%M_%S')
                langrisser.window_capture(
                    langrisser.dir_harvest + tt_str + r'.bmp', 0, 0, 1024, 768)
                langrisser.wait_rand(1)
                langrisser.click(90, 586)
                return 0

            langrisser.click(1000, 57)
            langrisser.wait_rand(2)
            tt_str = datetime.datetime.now().strftime('%Y_%m_%d_%H_%M_%S')
            langrisser.window_capture(
                langrisser.dir_harvest + tt_str + r'.bmp', 0, 0, 1024, 768)
            langrisser.wait_rand(1)
            for i in range(4):
                langrisser.click(1000, 57)
                langrisser.wait_rand(2)
            return 5

        elif self.stage == 6:
            for i in range(3 + int(random.random() * 5)):
                langrisser.click(967, 233)
                langrisser.wait_rand(1)
        elif self.stage == 7:
            langrisser.click(140, 300)
        elif self.stage == 11:
            langrisser.click(500, 150)
        elif self.stage == 12:
            langrisser.wait_rand(3)
        elif self.stage == 15:
            for i in range(7):
                langrisser.wait_rand(2)
                langrisser.click(1000, 407)
        elif self.stage == 17:
            langrisser.click(430, 471)
        elif self.stage == 18:
            langrisser.click(174, 584)

        if self.stage == 0:
            self.num_debug += 1
            if self.num_debug > 20:
                self.num_debug = 0
                langrisser.wait_rand(1)
                langrisser.click(1000, 407)

        if langrisser.is_cancel_team() == 1:
            langrisser.click(429, 470)

        langrisser.wait_rand(1)
        return 0
示例#2
0
import langrisser

dir_solid_pic = 'pics\/'
for i in range(660, 668):
    langrisser.window_capture(dir_solid_pic + '19_3_ball.bmp', i, 352, i + 24,
                              377)
    rms1 = langrisser.rms_difference(dir_solid_pic + '19_1_ball.bmp',
                                     dir_solid_pic + '19_3_ball.bmp')
    rms2 = langrisser.rms_difference(dir_solid_pic + '19_2_ball.bmp',
                                     dir_solid_pic + '19_3_ball.bmp')
    print(i, rms1, rms2)
示例#3
0
 def cap_event(self):
     self.log_message.set('活动截图')
     langrisser.window_capture(dir_solid_pic + '1_event.bmp', 830, 43, 1000,
                               66)
示例#4
0
import langrisser
import win32gui, win32ui, win32con, win32api
import sys

dir_solid_pic = 'pics\/'
'''
langrisser.window_capture(dir_solid_pic+'0_1_money.bmp', 255, 45, 275, 65)
langrisser.window_capture(dir_solid_pic+'0_2_crystal.bmp', 431, 52, 443, 65)
langrisser.window_capture(dir_solid_pic+'0_3_stamina.bmp', 614, 46, 625, 59)
langrisser.window_capture(dir_solid_pic+'Imfull.bmp', 330, 330, 700, 480)
langrisser.window_capture(dir_solid_pic+'1_event.bmp', 830, 43, 1000, 66)
langrisser.window_capture(dir_solid_pic+'Bosel_event.bmp', 193, 682, 419, 717)
langrisser.window_capture(dir_solid_pic+'2_battle_br.bmp', 927, 666, 983, 742)
langrisser.window_capture(dir_solid_pic+'3_hamberger.bmp', 440, 272, 580, 393)
langrisser.window_capture(dir_solid_pic+'4_game.bmp', 25, 45, 140, 75)
langrisser.window_capture(dir_solid_pic+'5_victory.bmp', 262, 246, 696, 356)
langrisser.window_capture(dir_solid_pic+'6_tmp_tr.bmp', 955, 45, 994, 90)
langrisser.window_capture(dir_solid_pic+'6_tmp_auto.bmp', 953, 212, 998, 244)
langrisser.window_capture(dir_solid_pic+'7_invitation.bmp', 117,222,147,256)
langrisser.window_capture(dir_solid_pic+'7_refuse.bmp', 114,281,156,317)
langrisser.window_capture(dir_solid_pic+'8_in_team.bmp', 385, 148, 620, 175)
langrisser.window_capture(dir_solid_pic+'90_team.bmp', 800, 33, 1000, 93)
langrisser.window_capture(dir_solid_pic+'91_gym.bmp', 800, 33, 1000, 93)
langrisser.window_capture(dir_solid_pic+'92_exp.bmp', 800, 33, 1000, 93)
langrisser.window_capture(dir_solid_pic+'93_dragon.bmp', 800, 33, 1000, 73)
langrisser.window_capture(dir_solid_pic+'94_treasure.bmp', 800, 33, 1000, 93)
langrisser.window_capture(dir_solid_pic+'95_memoria.bmp', 800, 33, 1000, 93)
langrisser.window_capture(dir_solid_pic+'96_timetrial.bmp', 800, 33, 1000, 93)
langrisser.window_capture(dir_solid_pic+'97_eternaltemple.bmp', 800, 33, 1000, 93)
langrisser.window_capture(dir_solid_pic+'11_mysteries.bmp', 902, 30, 1000, 100)
langrisser.window_capture(dir_solid_pic+'12_finding_team.bmp',581, 695, 682, 712)