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
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)
def cap_event(self): self.log_message.set('活动截图') langrisser.window_capture(dir_solid_pic + '1_event.bmp', 830, 43, 1000, 66)
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)