├── .idea ├── .gitignore ├── inspectionProfiles │ ├── Project_Default.xml │ └── profiles_settings.xml ├── misc.xml ├── modules.xml ├── nikke_auto_script.iml └── vcs.xml ├── README.md ├── auto_player.py ├── auto_task.py ├── dialog.py ├── example.png ├── icon.ico ├── main.py ├── requirements.txt ├── ui.py └── wanted ├── 0.png ├── 000.png ├── 02.png ├── 03.png ├── 7.png ├── EPIC.png ├── R.png ├── REWARD.png ├── REWARD_2.png ├── SR.png ├── SSR.png ├── ad.png ├── arena.png ├── arena_shop.png ├── arena_shop_2.png ├── ark.png ├── auto.png ├── base.png ├── battle_times_done.png ├── battle_times_done_2.png ├── bios_setting.png ├── board.png ├── boss_battle.png ├── buy.png ├── cancel.png ├── challenge.png ├── challenge_mode.png ├── close.png ├── close_2.png ├── close_3.png ├── confirm.png ├── confirm_10.png ├── confirm_2.png ├── confirm_3.png ├── confirm_4.png ├── confirm_5.png ├── confirm_6.png ├── confirm_7.png ├── confirm_8.png ├── confirm_9.png ├── consult.png ├── consult_2.png ├── consult_done.png ├── consult_option.png ├── consult_option_2.png ├── cure.png ├── destroy.png ├── difficulty.png ├── dispatch.png ├── dispatch_all.png ├── end_simulation.png ├── enemy_defeated.png ├── enter_B.png ├── enter_C.png ├── enter_battle.png ├── enter_battle_2.png ├── enter_battle_3.png ├── enter_battle_4.png ├── enter_union_battle.png ├── everyday.png ├── everyweek.png ├── exceeded_buff.png ├── free_diamond.png ├── friend.png ├── gain_all.png ├── gain_all_2.png ├── gain_mail.png ├── gain_reward.png ├── gain_reward_2.png ├── gift.png ├── give.png ├── hard_battle.png ├── home.png ├── interception.png ├── interception_battle.png ├── lobby.png ├── lose.png ├── mail.png ├── max.png ├── mission.png ├── next_nikke.png ├── next_step.png ├── nikke.png ├── nikke_consult.png ├── normal_battle.png ├── pay_shop.png ├── quick_battle.png ├── quick_battle_2.png ├── quick_consult.png ├── rank_up.png ├── recruit_one.png ├── red_circle.png ├── repeated_buff.png ├── restrict.png ├── rookie_arena.png ├── shop.png ├── simulation_room.png ├── single_raids.png ├── skip.png ├── skip_reward.png ├── special_arena.png ├── start_destroy.png ├── start_simulation_1.png ├── start_simulation_2.png ├── start_simulation_3.png ├── team_set.png ├── team_set_2.png ├── touch.png ├── treatment_room.png ├── union_attack.png ├── union_attack_2.png └── zone.png /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/nikke_auto_script.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NIKKE-helper 2 | 本菜鸡参照[auto_player](https://github.com/anywhere2go/auto_player)仓库的大佬写的模板制作的此脚本。 3 | **由于根据识图进行操作且每个人的设备都不同,不能完美适配所有分辨率的设备,会导致识图失败,本人电脑分辨率使用的是: 125% 1920x1080** 4 | 适用于PC端,使用窗口模式4:3,且**窗口大小需调至1021x803**,不能遮挡游戏画面,界面保持在大厅即可。 5 | 提前配置好要使用的各个队伍。 6 | 可依据个人网速选择合适的点击模式。 7 | 自动咨询自动选择列表里第一个角色和第一个咨询选项,需要提前标记好需要咨询的所有角色。 8 | 模拟室默认选择 5 C 难度。 9 | 一键自动旁的按钮可设置想要进行的任务(联盟突袭、单突)。 10 | 自动单抽需要在抽卡界面。 11 | 勾选q键连点可长按q键实现连点(爱丽丝、充能)。 12 | ### 必须需要**管理员权限**,否则无法实现点击。 13 | 14 | 游戏会时不时修改ui导致部分功能失效,个人精力有限做不到实时更新。 15 | 16 | ### 安装依赖包 17 | pip install -r requirements.txt 18 | 随后运行main即可。 19 | 或者下载打包好的程序运行也行。 20 | 21 | **图片预览:** 22 | 23 | ![预览](./example.png) 24 | 25 | -------------------------------------------------------------------------------- /auto_player.py: -------------------------------------------------------------------------------- 1 | import os 2 | import random 3 | import time 4 | import math 5 | 6 | import cv2 7 | import numpy 8 | import pyautogui 9 | from PIL import ImageGrab 10 | 11 | # 桌面模式下的鼠标操作延迟,程序已经设置随机延迟这里无需设置修改 12 | pyautogui.PAUSE = 0.001 13 | cwd = __file__.replace('auto_player.py', '') # 当前文件目录 14 | wanted_path = f'{cwd}\\wanted' # 目标图片目录 15 | # 上面都不用改,下面是adb.exe文件所在路径要改, 16 | # 如果你已经加入系统PATH环境,就直接adb = 'adb',我的没加。 只用桌面模式话不用管 17 | adb = 'd: && cd \\mysys\\Nox\\bin\\ && nox_adb.exe' # ADB文件路径 18 | nxfd = 'C:\\Users\\Administrator\\Nox_share\\ImageShare' # 模拟器共享文件路径 19 | 20 | 21 | class Player(object): 22 | """docstring for Player""" 23 | 24 | # accuracy 匹配精准度 0~1 #adb_mode开启ADB模式 #adb_num连接第几台ADB设备 25 | def __init__(self, accuracy=0.8, adb_mode=False, adb_num=0): 26 | super(Player, self).__init__() 27 | self.accuracy = accuracy 28 | self.interval = 2.5 29 | self.click_pattern = 1 30 | self.adb_mode = adb_mode 31 | self.load_target() 32 | if self.adb_mode: 33 | re = os.popen(f'{adb} devices').read() 34 | print(re) 35 | device_list = [e.split('\t')[0] for e in re.split('\n') if '\tdevice' in e] 36 | assert len(device_list) >= 1, '未检测到ADB连接设备' 37 | self.device = device_list[adb_num] 38 | re = os.popen(f'{adb} -s {self.device} shell wm size').read() 39 | print(re) 40 | else: 41 | w, h = pyautogui.size() 42 | print(f'Physical size: {w}x{h}') 43 | 44 | # 读取要查找的目标图片,名称为文件名 45 | # 返回字典{name1:[cv2_image1, name1], name2:...} 46 | def load_target(self): 47 | target_map = {} 48 | path = wanted_path 49 | file_list = os.listdir(path) 50 | for file in file_list: 51 | name = file.split('.')[0] 52 | file_path = path + '/' + file 53 | content = [cv2.imread(file_path), name] 54 | target_map[name] = content 55 | print(target_map.keys()) 56 | self.target_map = target_map 57 | return target_map 58 | 59 | # 截屏并发送到目录./screen, 默认返回cv2读取后的图片 60 | def screen_shot(self, name='screen'): 61 | if self.adb_mode: 62 | a = f'{adb} -s {self.device} shell screencap -p sdcard/Pictures/{name}.jpg' 63 | b = f'{adb} -s {self.device} pull sdcard/Pictures/{name}.jpg {cwd}\\screen' 64 | for cmd in [a, b]: 65 | os.system(cmd) 66 | time.sleep(0.02) 67 | screen = cv2.imread(f'{cwd}\\screen\\{name}.jpg') 68 | # screen = cv2.imread(f'{nxfd}\\{name}.jpg') 69 | # 大部分模拟器截图自动同步到共享文件夹 其实不用PULL的 70 | else: 71 | screen = ImageGrab.grab() 72 | if name != 'screen': # 非默认情况才保存硬盘 否则直接读取内存文件 73 | screen.save(f'{cwd}\\screen\\{name}.jpg') 74 | screen = cv2.cvtColor(numpy.array(screen), cv2.COLOR_RGB2BGR) 75 | print('截图已完成 ', time.ctime()) 76 | self.screen = screen 77 | return self.screen 78 | 79 | # 随机位置偏移,默认左右5个像素 80 | def random_offset(self, position, range=5): 81 | x, y = position 82 | x += random.randint(-range, range) 83 | y += random.randint(-range, range) 84 | return (x, y) 85 | 86 | # ADB命令模拟点击屏幕,参数pos为目标坐标(x, y), 自带随机偏移 87 | # 或pyautogui鼠标点击,带偏移与延迟 88 | def touch(self, position): 89 | x, y = self.random_offset(position) 90 | if self.adb_mode: # 手机点击 91 | cmd = f'{adb} -s {self.device} shell input touchscreen tap {x} {y}' 92 | os.system(cmd) 93 | else: # 电脑点击 94 | origin = pyautogui.position() 95 | dt = random.uniform(0.01, 0.02) 96 | pyautogui.moveTo(x, y, duration=dt) 97 | if self.click_pattern == 1: 98 | # 单击 99 | pyautogui.doubleClick() 100 | elif self.click_pattern == 2: 101 | # 双击 102 | pyautogui.click() 103 | else: 104 | # 按压释放 105 | pyautogui.mouseDown(button='left') 106 | time.sleep(0.4) 107 | pyautogui.mouseUp(button='left') 108 | 109 | time.sleep(0.13) 110 | 111 | pyautogui.moveTo(*origin, duration=dt) 112 | 113 | # 拖动或长按 114 | def drag(self, position_start, end, second=0.2): 115 | sx, sy = self.random_offset(position_start) 116 | ex, ey = self.random_offset(end) 117 | if self.adb_mode: 118 | cmd = f'{adb} -s {self.device} shell input touchscreen swipe {sx} {sy} {ex} {ey}' 119 | os.system(cmd) 120 | else: 121 | origin = pyautogui.position() # 记录原位,点完返回 122 | dt = random.uniform(0.01, 0.02) 123 | pyautogui.moveTo(sx, sy, duration=dt) 124 | pyautogui.dragTo(ex, ey, duration=second + dt) 125 | pyautogui.moveTo(*origin, duration=dt) 126 | 127 | # 在图上标记位置p1左上,p2右下 128 | def mark(self, background, p1, p2): 129 | cv2.rectangle(background, p1, p2, (0, 0, 255), 3) 130 | 131 | # 核心功能, 在background大图片上定位target_name对应的小图片位置 132 | # debug开启则会以图片形式显示查找结果 133 | def locate(self, background, target_name, debug=0): 134 | loc_pos = [] 135 | target, c_name = self.target_map[target_name] 136 | h, w, _ = target.shape 137 | result = cv2.matchTemplate(background, target, cv2.TM_CCOEFF_NORMED) 138 | location = numpy.where(result >= self.accuracy) 139 | dis = lambda a, b: ((a[0] - b[0]) ** 2 + (a[1] - b[1]) ** 2) ** 0.5 # 计算两点距离 140 | for y, x in zip(*location): 141 | center = x + int(w / 2), y + int(h / 2) 142 | if loc_pos and dis(loc_pos[-1], center) < 20: # 忽略邻近重复的点 143 | continue 144 | else: 145 | loc_pos.append(center) 146 | p2 = x + w, y + h 147 | self.mark(background, (x, y), p2) 148 | 149 | if debug: # 在图上显示寻找的结果,调试时开启 150 | cv2.imshow(f'result for {target_name}:', background) 151 | cv2.waitKey(0) 152 | cv2.destroyAllWindows() 153 | res = len(loc_pos) 154 | msg = f'查找结果:{c_name} 匹配到 {res} 个位置,识别精确度:{self.accuracy}' 155 | print(msg) 156 | return loc_pos 157 | 158 | # 裁剪Img以加速检测, area[h1,h2,w1,w2]为高宽范围百分比 159 | # 选中区域为高h1%到h2% 宽w1%到w2%,返回裁剪后图片与左上角位置 160 | def cut(self, img, area=[0, 50, 0, 50]): 161 | h1, h2, w1, w2 = [e / 100 for e in area] 162 | h, w, c = img.shape 163 | h1, h2 = int(h * h1), int(h * h2) 164 | w1, w2 = int(w * w1), int(w * w2) 165 | small = img[h1:h2, w1:w2, :] 166 | start = [w1, h1] 167 | return small, start 168 | 169 | # 判断name_list中哪些目标存在,但不点击,全部目标遍历,返回同长度真假列表 170 | # 输入[name1,name2...]返回[name1_result, name2_result...] 171 | def exist(self, name_list, area=None): 172 | background = self.screen_shot() 173 | if area: 174 | background, start = self.cut(background, area) 175 | re = [] 176 | name_list = name_list if type(name_list) == list else [name_list, ] 177 | for name in name_list: 178 | loc_pos = self.locate(background, name) 179 | cur = len(loc_pos) > 0 180 | re.append(cur) 181 | re = re[0] if len(re) == 1 else re 182 | time.sleep(0.2) 183 | return re 184 | 185 | # 寻找name_list中的目标,并点击第一个找到的目标,然后中止 186 | # 注意有优先级顺序,找到了前面的就不会再找后面的 187 | # 只返回第一个找到并点击的name,都没找到返回false 188 | def find_touch_same_screen(self, name_list, area=None): 189 | background = self.screen_shot() 190 | if area: 191 | background, start = self.cut(background, area) 192 | re = False 193 | name_list = name_list if type(name_list) == list else [name_list, ] 194 | for name in name_list: 195 | loc_pos = self.locate(background, name) 196 | if len(loc_pos) > 0: 197 | if area: # 从裁剪后的坐标还原回裁前的坐标 198 | loc_pos[0][0] += start[0] 199 | loc_pos[0][1] += start[1] 200 | self.touch(loc_pos[0]) # 同一目标多个结果时只点第一个 201 | re = name 202 | break 203 | return re 204 | 205 | # 依次寻找name_list中的目标,并点击 206 | def find_touch(self, name_list, area=None): 207 | re = False 208 | name_list = name_list if type(name_list) == list else [name_list, ] 209 | for name in name_list: 210 | background = self.screen_shot() 211 | if area: 212 | background, start = self.cut(background, area) 213 | loc_pos = self.locate(background, name) 214 | if len(loc_pos) > 0: 215 | if area: # 从裁剪后的坐标还原回裁前的坐标 216 | loc_pos[0][0] += start[0] 217 | loc_pos[0][1] += start[1] 218 | self.touch(loc_pos[0]) # 同一目标多个结果时只点第一个 219 | re = name 220 | time.sleep(self.interval) 221 | return re 222 | 223 | # 寻找目标,点击偏移指定方向距离的目标 224 | def find_touch_skewing(self, name_list, direction, distance): 225 | re = False 226 | name_list = name_list if type(name_list) == list else [name_list, ] 227 | for name in name_list: 228 | background = self.screen_shot() 229 | loc_pos = self.locate(background, name) 230 | if len(loc_pos) > 0: 231 | t = loc_pos[0] 232 | new_t = (t[0] + distance * math.cos(math.radians(direction)), 233 | t[1] + distance * math.sin(math.radians(direction))) 234 | loc_pos[0] = new_t 235 | self.touch(loc_pos[0]) # 同一目标多个结果时只点第一个 236 | re = name 237 | time.sleep(self.interval) 238 | return re 239 | 240 | @staticmethod 241 | def continuous_click(): 242 | pyautogui.mouseDown() 243 | time.sleep(0.23) 244 | pyautogui.mouseUp() 245 | time.sleep(0.021) 246 | 247 | # 修改精确度 248 | def change_accuracy(self, new_accuracy): 249 | self.accuracy = new_accuracy 250 | 251 | # 修改时间间隔 252 | def change_interval(self, new_interval): 253 | self.interval = new_interval 254 | 255 | # 修改点击模式 256 | def change_click(self, click_pattern): 257 | self.click_pattern = click_pattern 258 | -------------------------------------------------------------------------------- /auto_task.py: -------------------------------------------------------------------------------- 1 | import time 2 | 3 | import keyboard as keyboard 4 | 5 | from auto_player import Player 6 | 7 | my_player = Player(accuracy=0.8, adb_mode=False) 8 | 9 | 10 | def change_accuracy(new_accuracy): 11 | my_player.change_accuracy(new_accuracy) 12 | 13 | 14 | def change_interval(new_interval): 15 | my_player.change_interval(new_interval) 16 | 17 | 18 | def change_click(click_pattern): 19 | my_player.change_click(click_pattern) 20 | 21 | 22 | def gain_diamond(): 23 | if my_player.exist(['free_diamond']): 24 | my_player.find_touch(['free_diamond', 'REWARD']) 25 | 26 | 27 | def gain_rewards(arena_shop_task): 28 | while True: 29 | # 仓库收米 30 | if my_player.exist(['shop']): 31 | my_player.find_touch_skewing(['shop'], 90, 104) 32 | my_player.find_touch(['destroy']) 33 | 34 | if my_player.exist(['start_destroy']): 35 | my_player.find_touch(['start_destroy', 'REWARD']) 36 | 37 | my_player.find_touch(['cancel', 'gain_reward', 'REWARD_2', 'REWARD', 'lobby']) 38 | # 友情点 39 | if my_player.exist(['friend']): 40 | my_player.find_touch(['friend', 'give', 'confirm', 'close']) 41 | # 邮箱 42 | if my_player.exist(['mail']): 43 | my_player.find_touch(['mail']) 44 | time.sleep(my_player.interval) 45 | my_player.find_touch(['gain_mail']) 46 | time.sleep(my_player.interval) 47 | my_player.find_touch(['REWARD', 'close_3']) 48 | # 商店每日免费物品 49 | if my_player.exist(['shop']): 50 | my_player.find_touch(['shop', '0']) 51 | my_player.find_touch(['buy', 'REWARD']) 52 | if arena_shop_task: 53 | my_player.find_touch(['arena_shop']) 54 | my_player.find_touch_skewing(['arena_shop_2'], 0, 110) 55 | my_player.find_touch(['buy', 'REWARD']) 56 | my_player.find_touch_skewing(['arena_shop_2'], 0, 220) 57 | my_player.find_touch(['buy', 'REWARD']) 58 | my_player.find_touch_skewing(['arena_shop_2'], 0, 330) 59 | my_player.find_touch(['buy', 'REWARD']) 60 | my_player.find_touch_skewing(['arena_shop_2'], 0, 440) 61 | my_player.find_touch(['buy', 'REWARD']) 62 | my_player.find_touch(['home', 'home']) 63 | time.sleep(my_player.interval) 64 | # 付费商店每日,每周,每月钻石 65 | if my_player.exist(['pay_shop']): 66 | my_player.find_touch(['pay_shop']) 67 | time.sleep(my_player.interval) 68 | if my_player.exist(["restrict"]): 69 | my_player.find_touch_skewing(['restrict'], 90, 110) 70 | my_player.find_touch(['confirm_10']) 71 | 72 | my_player.find_touch(['gift']) 73 | my_player.find_touch_skewing(['everyday'], 0, 120) 74 | gain_diamond() 75 | my_player.find_touch_skewing(['everyweek'], 0, 240) 76 | gain_diamond() 77 | my_player.find_touch_skewing(['everyweek'], 0, 360) 78 | gain_diamond() 79 | my_player.find_touch(['home']) 80 | # 特殊竞技场收米 81 | if my_player.exist(['ark']): 82 | my_player.find_touch(['ark', 'ark', 'arena', 'arena', 'special_arena', 'special_arena']) 83 | my_player.find_touch_skewing(['touch'], 90, 87) 84 | time.sleep(my_player.interval) 85 | my_player.find_touch(['gain_reward_2', 'REWARD', 'home']) 86 | time.sleep(my_player.interval) 87 | # 任务委托收米 88 | if my_player.exist(['base']): 89 | my_player.find_touch(['base']) 90 | time.sleep(my_player.interval * 2.5) 91 | my_player.find_touch(['board', 'gain_all', 'REWARD', 'dispatch_all', 'dispatch', 'home', 'home']) 92 | time.sleep(my_player.interval * 2.5) 93 | # 日常任务 94 | if my_player.exist(['mission']): 95 | my_player.find_touch_skewing(['mission'], 180, 150) 96 | my_player.find_touch(['gain_all_2', 'gain_all_2', 'REWARD', 'close_2']) 97 | if my_player.exist(['000']): 98 | break 99 | # 露菲弹窗广告 100 | if my_player.exist(['ad']): 101 | my_player.find_touch(['ad', 'confirm_2']) 102 | 103 | 104 | def recruit(): 105 | my_player.find_touch_same_screen(['recruit_one', 'skip', 'confirm_3']) 106 | 107 | 108 | def simulation_room(overclocking): 109 | if my_player.exist(['ark']): 110 | my_player.find_touch(['ark', 'simulation_room', 'simulation_room']) 111 | time.sleep(my_player.interval) 112 | 113 | if overclocking: 114 | my_player.find_touch_skewing(['start_simulation_1'], 90, 133) 115 | time.sleep(my_player.interval) 116 | my_player.find_touch(['bios_setting', 'start_simulation_3']) 117 | else: 118 | my_player.find_touch(['start_simulation_1', 'difficulty', 'zone']) 119 | time.sleep(my_player.interval) 120 | my_player.find_touch(['start_simulation_2']) 121 | 122 | while True: 123 | if my_player.exist(['start_simulation_2']): 124 | my_player.find_touch(['start_simulation_2']) 125 | if my_player.exist(['normal_battle']): 126 | my_player.find_touch(['normal_battle']) 127 | elif my_player.exist(['hard_battle']): 128 | my_player.find_touch(['hard_battle']) 129 | elif my_player.exist(['boss_battle']): 130 | my_player.find_touch(['boss_battle']) 131 | elif my_player.exist(['treatment_room']): 132 | my_player.find_touch(['treatment_room', 'cure', 'confirm_5', 'confirm_5']) 133 | elif my_player.exist(['cure']): 134 | my_player.find_touch(['cure', 'confirm_5', 'confirm_5']) 135 | 136 | if my_player.exist(['quick_battle']): 137 | my_player.find_touch(['quick_battle']) 138 | elif my_player.exist(['enter_battle']): 139 | my_player.find_touch(['enter_battle']) 140 | 141 | if my_player.exist(['next_step']): 142 | my_player.find_touch(['next_step']) 143 | 144 | if my_player.exist(['EPIC']): 145 | my_player.find_touch(['EPIC', 'confirm_7', 'confirm_4']) 146 | handle_buff() 147 | elif my_player.exist(['SSR']): 148 | my_player.find_touch(['SSR', 'confirm_7', 'confirm_4']) 149 | handle_buff() 150 | elif my_player.exist(['SR']): 151 | my_player.find_touch(['SR', 'confirm_7', 'confirm_4']) 152 | handle_buff() 153 | elif my_player.exist(['R']): 154 | my_player.find_touch(['R', 'confirm_7', 'confirm_4']) 155 | handle_buff() 156 | 157 | handle_buff() 158 | 159 | if my_player.exist(['enter_B']): 160 | my_player.find_touch(['enter_B']) 161 | elif my_player.exist(['enter_C']): 162 | my_player.find_touch(['enter_C']) 163 | elif my_player.exist(['end_simulation']): 164 | my_player.find_touch(['end_simulation', 'confirm_9']) 165 | if my_player.exist(['EPIC']): 166 | my_player.find_touch(['EPIC', 'confirm_4']) 167 | elif my_player.exist(['SSR']): 168 | my_player.find_touch(['SSR', 'confirm_4']) 169 | elif my_player.exist(['SR']): 170 | my_player.find_touch(['SR', 'confirm_4']) 171 | elif my_player.exist(['R']): 172 | my_player.find_touch(['R', 'confirm_4']) 173 | handle_buff() 174 | my_player.find_touch(['home', 'home']) 175 | break 176 | 177 | 178 | def auto_consult(): 179 | while True: 180 | if my_player.exist(['lobby']): 181 | my_player.find_touch_skewing(['lobby'], 180, 145) 182 | my_player.find_touch(['consult']) 183 | if my_player.exist(['quick_consult']): 184 | my_player.find_touch(['quick_consult', 'confirm_6', 'next_nikke']) 185 | continue 186 | if my_player.exist(['nikke_consult']): 187 | my_player.find_touch_skewing(['nikke_consult'], 90, 110) 188 | if my_player.exist(['quick_consult']): 189 | my_player.find_touch(['quick_consult', 'confirm_6', 'next_nikke']) 190 | else: 191 | my_player.find_touch(['consult_2', 'confirm_6', 'confirm_6', 'auto']) 192 | if my_player.exist(['consult_2']): 193 | my_player.find_touch(['consult_2', 'confirm_6', 'confirm_6', 'auto']) 194 | if my_player.exist(['confirm_6']): 195 | my_player.find_touch(['confirm_6']) 196 | # 小红帽选项 197 | if my_player.exist(['consult_option_2']): 198 | time.sleep(my_player.interval) 199 | my_player.find_touch(['consult_option', 'skip', 'next_nikke']) 200 | if my_player.exist(['consult_option']): 201 | time.sleep(my_player.interval) 202 | my_player.find_touch(['consult_option', 'skip', 'next_nikke']) 203 | if my_player.exist(['rank_up']): 204 | my_player.find_touch(['rank_up', 'next_nikke']) 205 | if my_player.exist(['consult_done']) and my_player.exist(['next_nikke']): 206 | my_player.find_touch(['next_nikke']) 207 | if my_player.exist(['consult_done']): 208 | my_player.find_touch(['home']) 209 | break 210 | 211 | 212 | def auto_arena(): 213 | while True: 214 | if my_player.exist(['ark']): 215 | my_player.find_touch(['ark', 'arena', 'arena', 'rookie_arena']) 216 | if my_player.exist(['rookie_arena']): 217 | my_player.find_touch(['rookie_arena']) 218 | if my_player.exist(['enter_battle_2']): 219 | my_player.find_touch_skewing(['enter_battle_2'], 90, 190) 220 | my_player.find_touch(['enter_battle_3']) 221 | if my_player.exist(['win']): 222 | my_player.find_touch(['win']) 223 | if my_player.exist(['lose']): 224 | my_player.find_touch(['lose']) 225 | if my_player.exist(['enter_battle_4']) and not my_player.exist(['enter_battle_2']): 226 | my_player.find_touch(['home']) 227 | break 228 | 229 | 230 | def union_battle(): 231 | while True: 232 | if my_player.exist(['friend']): 233 | my_player.find_touch_skewing(['friend'], 90, 60) 234 | if my_player.exist(['union_attack']): 235 | my_player.find_touch(['union_attack', 'skip_reward', 'skip_reward', 'confirm_8']) 236 | if my_player.exist(['union_attack_2']): 237 | my_player.find_touch_skewing(['union_attack_2'], 90, 285) 238 | if my_player.exist(['enter_union_battle']): 239 | my_player.find_touch(['enter_union_battle']) 240 | elif my_player.exist(['02']): 241 | my_player.find_touch(['02', 'enter_union_battle']) 242 | if my_player.exist(['03']): 243 | my_player.find_touch(['03', 'enter_union_battle']) 244 | if my_player.exist(['battle_times_done']): 245 | my_player.find_touch(['home']) 246 | time.sleep(1) 247 | break 248 | 249 | if my_player.exist(['next_step']): 250 | my_player.find_touch(['next_step']) 251 | if my_player.exist(['confirm_8']): 252 | if my_player.exist(['skip_reward']): 253 | my_player.find_touch(['skip_reward']) 254 | my_player.find_touch(['confirm_8']) 255 | 256 | 257 | def interception_battle(): 258 | while True: 259 | if my_player.exist(['next_step']): 260 | my_player.find_touch(['next_step']) 261 | if my_player.exist(['ark']): 262 | my_player.find_touch(['ark', 'interception', 'interception']) 263 | if my_player.exist(['interception_battle']): 264 | my_player.find_touch_skewing(['interception_battle'], 90, 170) 265 | if my_player.exist(['quick_battle_2']): 266 | my_player.find_touch(['quick_battle_2', 'next_step']) 267 | elif my_player.exist(['enter_union_battle']): 268 | my_player.find_touch(['enter_union_battle']) 269 | else: 270 | my_player.find_touch(['home']) 271 | break 272 | 273 | 274 | def single_raids(): 275 | while True: 276 | if my_player.exist(['challenge_mode']): 277 | my_player.find_touch(['7']) 278 | if my_player.exist(['single_raids']): 279 | my_player.find_touch(['single_raids']) 280 | if my_player.exist(['quick_battle_2']): 281 | my_player.find_touch(['quick_battle_2', 'max']) 282 | my_player.find_touch_skewing(['max'], 35, 100) 283 | elif my_player.exist(['challenge']): 284 | my_player.find_touch(['challenge', 'confirm_2']) 285 | if my_player.exist(['enter_union_battle']): 286 | my_player.find_touch(['enter_union_battle']) 287 | elif my_player.exist(['team_set']): 288 | my_player.find_touch_skewing(['team_set_2'], 0, 43) 289 | my_player.find_touch(['enter_union_battle']) 290 | if my_player.exist(['next_step']): 291 | my_player.find_touch(['next_step']) 292 | if my_player.exist(['enemy_defeated']): 293 | my_player.find_touch(['enemy_defeated']) 294 | if my_player.exist(['battle_times_done_2']): 295 | my_player.find_touch(['home']) 296 | break 297 | 298 | 299 | def continuous_click(): 300 | while True: 301 | if keyboard.is_pressed('q'): 302 | my_player.continuous_click() 303 | 304 | 305 | def auto_all(auto_task_list, arena_shop_task, overclocking): 306 | if auto_task_list[0]: 307 | simulation_room(overclocking) 308 | time.sleep(my_player.interval) 309 | if auto_task_list[1]: 310 | auto_arena() 311 | time.sleep(my_player.interval) 312 | if auto_task_list[2]: 313 | auto_consult() 314 | time.sleep(my_player.interval) 315 | if auto_task_list[4]: 316 | union_battle() 317 | time.sleep(my_player.interval) 318 | if auto_task_list[5]: 319 | interception_battle() 320 | time.sleep(my_player.interval) 321 | if auto_task_list[6]: 322 | single_raids() 323 | time.sleep(my_player.interval) 324 | if auto_task_list[3]: 325 | gain_rewards(arena_shop_task) 326 | time.sleep(my_player.interval) 327 | 328 | 329 | def handle_buff(): 330 | if my_player.exist(['exceeded_buff']): 331 | my_player.find_touch_skewing(['exceeded_buff'], 90, 300) 332 | my_player.find_touch(['confirm_4']) 333 | 334 | if my_player.exist(['repeated_buff']): 335 | my_player.find_touch_skewing(['repeated_buff'], 90, 300) 336 | my_player.find_touch(['confirm_4']) 337 | 338 | -------------------------------------------------------------------------------- /dialog.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, 4 | QMetaObject, QObject, QPoint, QRect, 5 | QSize, QTime, QUrl, Qt) 6 | from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, 7 | QFont, QFontDatabase, QGradient, QIcon, 8 | QImage, QKeySequence, QLinearGradient, QPainter, 9 | QPalette, QPixmap, QRadialGradient, QTransform) 10 | from PySide6.QtWidgets import (QApplication, QCheckBox, QDialog, QSizePolicy, 11 | QWidget) 12 | 13 | class Ui_Dialog(object): 14 | def setupUi(self, Dialog): 15 | if not Dialog.objectName(): 16 | Dialog.setObjectName(u"Dialog") 17 | icon = QIcon() 18 | icon.addFile(u"./icon.ico", QSize(), QIcon.Normal, QIcon.Off) 19 | Dialog.setWindowIcon(icon) 20 | Dialog.resize(210, 157) 21 | self.checkBox_0 = QCheckBox(Dialog) 22 | self.checkBox_0.setObjectName(u"checkBox_0") 23 | self.checkBox_0.setGeometry(QRect(20, 20, 79, 19)) 24 | self.checkBox_1 = QCheckBox(Dialog) 25 | self.checkBox_1.setObjectName(u"checkBox_1") 26 | self.checkBox_1.setGeometry(QRect(20, 50, 79, 19)) 27 | self.checkBox_2 = QCheckBox(Dialog) 28 | self.checkBox_2.setObjectName(u"checkBox_2") 29 | self.checkBox_2.setGeometry(QRect(20, 80, 91, 19)) 30 | self.checkBox_3 = QCheckBox(Dialog) 31 | self.checkBox_3.setObjectName(u"checkBox_3") 32 | self.checkBox_3.setGeometry(QRect(120, 20, 79, 19)) 33 | self.checkBox_4 = QCheckBox(Dialog) 34 | self.checkBox_4.setObjectName(u"checkBox_4") 35 | self.checkBox_4.setGeometry(QRect(20, 110, 79, 19)) 36 | self.checkBox_5 = QCheckBox(Dialog) 37 | self.checkBox_5.setObjectName(u"checkBox_5") 38 | self.checkBox_5.setGeometry(QRect(120, 50, 91, 19)) 39 | self.checkBox_6 = QCheckBox(Dialog) 40 | self.checkBox_6.setObjectName(u"checkBox") 41 | self.checkBox_6.setGeometry(QRect(120, 80, 91, 19)) 42 | 43 | self.retranslateUi(Dialog) 44 | 45 | QMetaObject.connectSlotsByName(Dialog) 46 | # setupUi 47 | 48 | def retranslateUi(self, Dialog): 49 | Dialog.setWindowTitle(QCoreApplication.translate("Dialog", u"\u6446\u70c2\u8bbe\u7f6e", None)) 50 | self.checkBox_0.setText(QCoreApplication.translate("Dialog", u"\u6a21\u62df\u5ba4", None)) 51 | self.checkBox_1.setText(QCoreApplication.translate("Dialog", u"\u7ade\u6280\u573a", None)) 52 | self.checkBox_2.setText(QCoreApplication.translate("Dialog", u"\u81ea\u52a8\u54a8\u8be2", None)) 53 | self.checkBox_3.setText(QCoreApplication.translate("Dialog", u"\u6536\u7c73", None)) 54 | self.checkBox_4.setText(QCoreApplication.translate("Dialog", u"\u8054\u76df\u6218", None)) 55 | self.checkBox_5.setText(QCoreApplication.translate("Dialog", u"\u62e6\u622a\u6218", None)) 56 | self.checkBox_6.setText(QCoreApplication.translate("Dialog", u"\u5355\u4eba\u7a81\u88ad", None)) 57 | # retranslateUi 58 | -------------------------------------------------------------------------------- /example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/example.png -------------------------------------------------------------------------------- /icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/icon.ico -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import time 3 | import pygetwindow 4 | import threading 5 | import auto_task 6 | 7 | from ui import Ui_Form 8 | from dialog import Ui_Dialog 9 | 10 | from PySide6 import QtWidgets, QtCore 11 | 12 | auto_task_list = [True, True, True, True, False, False, False] 13 | arena_shop_task = True 14 | overclocking = False 15 | 16 | 17 | class TaskThread(QtCore.QThread): 18 | 19 | def __init__(self, task_number, parent=None): 20 | super().__init__(parent) 21 | self.task_number = task_number 22 | self.start_time = None 23 | 24 | def run(self): 25 | if self.task_number == 8: 26 | auto_task.continuous_click() 27 | else: 28 | self.start_time = time.time() # 记录任务开始时间 29 | if self.task_number == 1: 30 | auto_task.gain_rewards(arena_shop_task) 31 | elif self.task_number == 2: 32 | while True: 33 | auto_task.recruit() 34 | time.sleep(1) 35 | elif self.task_number == 3: 36 | auto_task.simulation_room(overclocking) 37 | elif self.task_number == 4: 38 | auto_task.auto_consult() 39 | elif self.task_number == 5: 40 | auto_task.auto_arena() 41 | elif self.task_number == 6: 42 | auto_task.union_battle() 43 | elif self.task_number == 7: 44 | while True: 45 | auto_task.auto_all(auto_task_list, arena_shop_task, overclocking) 46 | time.sleep(1) 47 | 48 | 49 | class Window(QtWidgets.QWidget): 50 | def __init__(self): 51 | super().__init__() 52 | self.ui = Ui_Form() 53 | self.ui.setupUi(self) 54 | 55 | self.ui.pushButton1.clicked.connect(lambda: self.run_task(1, "收米")) 56 | self.ui.pushButton2.clicked.connect(lambda: self.run_task(2, "连续单抽")) 57 | self.ui.pushButton3.clicked.connect(lambda: self.run_task(3, "模拟室")) 58 | self.ui.pushButton4.clicked.connect(lambda: self.run_task(4, "自动咨询")) 59 | self.ui.pushButton5.clicked.connect(lambda: self.run_task(5, "竞技场")) 60 | self.ui.pushButton6.clicked.connect(lambda: self.run_task(6, "联盟战")) 61 | self.ui.pushButton7.clicked.connect(lambda: self.run_task(7, "一键摆烂")) 62 | self.ui.stopButton.clicked.connect(self.stop_task) 63 | self.ui.initButton.clicked.connect(self.correct_window) 64 | self.ui.toolButton.clicked.connect(self.auto_all_settings) 65 | self.ui.checkBox.stateChanged.connect(lambda: self.continuous_click()) 66 | self.ui.checkBox_2.stateChanged.connect(lambda: self.change_arena_shop_task()) 67 | self.ui.checkBox_3.stateChanged.connect(lambda: self.overclocking_simulation()) 68 | 69 | self.ui.horizontalSlider.valueChanged.connect(self.change_accuracy) 70 | self.ui.horizontalSlider_2.valueChanged.connect(self.change_interval) 71 | 72 | self.ui.radioButton.clicked.connect(lambda: self.change_click()) 73 | self.ui.radioButton_2.clicked.connect(lambda: self.change_click()) 74 | self.ui.radioButton_3.clicked.connect(lambda: self.change_click()) 75 | 76 | self.ui.label_2.setText("精确度:0.8") 77 | self.ui.label_3.setText("操作时间间隔:2.5s") 78 | self.ui.checkBox_2.setChecked(True) 79 | self.ui.checkBox_3.setChecked(False) 80 | self.ui.radioButton.setChecked(True) 81 | 82 | self.current_task = None 83 | self.timer = None 84 | self.accuracy = 8 85 | self.interval = 25 86 | 87 | self.click_thread = TaskThread(8) 88 | self.current_thread = None 89 | self.task1_thread = TaskThread(1) 90 | self.task2_thread = TaskThread(2) 91 | self.task3_thread = TaskThread(3) 92 | self.task4_thread = TaskThread(4) 93 | self.task5_thread = TaskThread(5) 94 | self.task6_thread = TaskThread(6) 95 | self.task7_thread = TaskThread(7) 96 | 97 | def run_task(self, task_number, task_name): 98 | if self.current_thread: 99 | self.stop_task() 100 | self.current_task = task_name 101 | self.current_thread = getattr(self, f"task{task_number}_thread") 102 | self.current_thread.start() 103 | self.start_timer() 104 | 105 | def stop_task(self): 106 | if self.current_thread: 107 | self.current_thread.terminate() 108 | self.stop_timer() 109 | 110 | def start_timer(self): 111 | self.timer = threading.Timer(1, self.update_time) 112 | self.timer.start() 113 | 114 | def stop_timer(self): 115 | if self.timer is not None: 116 | self.timer.cancel() 117 | 118 | def update_time(self): 119 | if self.current_thread and self.current_thread.start_time is not None: 120 | elapsed_time = time.time() - self.current_thread.start_time 121 | elapsed_time_str = QtCore.QTime(0, 0, 0).addSecs(int(elapsed_time)).toString("hh:mm:ss") 122 | self.ui.label.setText(f"{self.current_task}: {elapsed_time_str}") 123 | self.start_timer() 124 | 125 | def change_accuracy(self): 126 | self.accuracy = self.ui.horizontalSlider.value() 127 | self.ui.label_2.setText(f"精确度:{self.accuracy / 10}") 128 | auto_task.change_accuracy(self.accuracy / 10) 129 | 130 | def change_interval(self): 131 | self.interval = self.ui.horizontalSlider_2.value() 132 | self.ui.label_3.setText(f"操作时间间隔:{self.interval / 10}s") 133 | auto_task.change_interval(self.interval / 10) 134 | 135 | def change_arena_shop_task(self): 136 | global arena_shop_task 137 | arena_shop_task = self.ui.checkBox_2.isChecked() 138 | 139 | def overclocking_simulation(self): 140 | global overclocking 141 | overclocking = self.ui.checkBox_3.isChecked() 142 | 143 | def change_click(self): 144 | if self.ui.radioButton.isChecked(): 145 | auto_task.change_click(1) 146 | elif self.ui.radioButton_2.isChecked(): 147 | auto_task.change_click(2) 148 | elif self.ui.radioButton_3.isChecked(): 149 | auto_task.change_click(3) 150 | 151 | def continuous_click(self): 152 | if self.ui.checkBox.isChecked(): 153 | self.click_thread.start() 154 | else: 155 | if self.click_thread: 156 | self.click_thread.terminate() 157 | 158 | @staticmethod 159 | def correct_window(): 160 | window_list = pygetwindow.getWindowsWithTitle('NIKKE') 161 | if window_list: 162 | print(window_list) 163 | window_list[1].resizeTo(1037, 811) 164 | 165 | @staticmethod 166 | def auto_all_settings(): 167 | dialog = Dialog() 168 | dialog.exec() 169 | 170 | 171 | class Dialog(QtWidgets.QDialog): 172 | def __init__(self): 173 | super().__init__() 174 | self.ui = Ui_Dialog() 175 | self.ui.setupUi(self) 176 | 177 | self.ui.checkBox_0.setChecked(auto_task_list[0]) 178 | self.ui.checkBox_1.setChecked(auto_task_list[1]) 179 | self.ui.checkBox_2.setChecked(auto_task_list[2]) 180 | self.ui.checkBox_3.setChecked(auto_task_list[3]) 181 | self.ui.checkBox_4.setChecked(auto_task_list[4]) 182 | self.ui.checkBox_5.setChecked(auto_task_list[5]) 183 | self.ui.checkBox_6.setChecked(auto_task_list[6]) 184 | 185 | self.ui.checkBox_0.stateChanged.connect(lambda state, index=0: self.auto_task_change(index)) 186 | self.ui.checkBox_1.stateChanged.connect(lambda state, index=1: self.auto_task_change(index)) 187 | self.ui.checkBox_2.stateChanged.connect(lambda state, index=2: self.auto_task_change(index)) 188 | self.ui.checkBox_3.stateChanged.connect(lambda state, index=3: self.auto_task_change(index)) 189 | self.ui.checkBox_4.stateChanged.connect(lambda state, index=4: self.auto_task_change(index)) 190 | self.ui.checkBox_5.stateChanged.connect(lambda state, index=5: self.auto_task_change(index)) 191 | self.ui.checkBox_6.stateChanged.connect(lambda state, index=6: self.auto_task_change(index)) 192 | 193 | def auto_task_change(self, index): 194 | auto_task_list[index] = not auto_task_list[index] 195 | check_change = getattr(self.ui, f"checkBox_{index}") 196 | check_change.setChecked(auto_task_list[index]) 197 | print(auto_task_list) 198 | 199 | 200 | if __name__ == "__main__": 201 | app = QtWidgets.QApplication(sys.argv) 202 | win = Window() 203 | win.show() 204 | sys.exit(app.exec()) 205 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/requirements.txt -------------------------------------------------------------------------------- /ui.py: -------------------------------------------------------------------------------- 1 | from PySide6.QtCore import (QCoreApplication, 2 | QMetaObject, QRect, 3 | QSize, Qt) 4 | from PySide6.QtGui import (QCursor, 5 | QFont, QIcon) 6 | from PySide6.QtWidgets import (QCheckBox, QLabel, QPushButton, 7 | QSlider, QToolButton, QRadioButton) 8 | 9 | class Ui_Form(object): 10 | def setupUi(self, Form): 11 | if not Form.objectName(): 12 | Form.setObjectName(u"Form") 13 | Form.setWindowModality(Qt.NonModal) 14 | Form.resize(385, 506) 15 | font = QFont() 16 | font.setFamilies([u"Adobe Arabic"]) 17 | font.setPointSize(9) 18 | Form.setFont(font) 19 | icon = QIcon() 20 | icon.addFile(u"./icon.ico", QSize(), QIcon.Normal, QIcon.Off) 21 | Form.setWindowIcon(icon) 22 | self.pushButton1 = QPushButton(Form) 23 | self.pushButton1.setObjectName(u"pushButton1") 24 | self.pushButton1.setGeometry(QRect(40, 60, 101, 51)) 25 | font1 = QFont() 26 | font1.setFamilies([u"Adobe Arabic"]) 27 | self.pushButton1.setFont(font1) 28 | self.pushButton2 = QPushButton(Form) 29 | self.pushButton2.setObjectName(u"pushButton2") 30 | self.pushButton2.setGeometry(QRect(40, 150, 101, 51)) 31 | self.pushButton2.setFont(font1) 32 | self.label = QLabel(Form) 33 | self.label.setObjectName(u"label") 34 | self.label.setGeometry(QRect(240, 10, 141, 31)) 35 | font2 = QFont() 36 | font2.setFamilies([u"Adobe Arabic"]) 37 | font2.setPointSize(15) 38 | font2.setBold(False) 39 | self.label.setFont(font2) 40 | self.pushButton3 = QPushButton(Form) 41 | self.pushButton3.setObjectName(u"pushButton3") 42 | self.pushButton3.setGeometry(QRect(40, 240, 101, 51)) 43 | self.pushButton3.setFont(font1) 44 | self.stopButton = QPushButton(Form) 45 | self.stopButton.setObjectName(u"stopButton") 46 | self.stopButton.setGeometry(QRect(270, 440, 101, 51)) 47 | self.stopButton.setFont(font1) 48 | self.pushButton4 = QPushButton(Form) 49 | self.pushButton4.setObjectName(u"pushButton4") 50 | self.pushButton4.setGeometry(QRect(40, 330, 101, 51)) 51 | self.pushButton4.setFont(font1) 52 | self.pushButton4.setCursor(QCursor(Qt.ArrowCursor)) 53 | self.horizontalSlider = QSlider(Form) 54 | self.horizontalSlider.setObjectName(u"horizontalSlider") 55 | self.horizontalSlider.setGeometry(QRect(180, 470, 61, 16)) 56 | self.horizontalSlider.setMinimum(4) 57 | self.horizontalSlider.setMaximum(10) 58 | self.horizontalSlider.setSingleStep(1) 59 | self.horizontalSlider.setPageStep(1) 60 | self.horizontalSlider.setValue(8) 61 | self.horizontalSlider.setOrientation(Qt.Horizontal) 62 | self.label_2 = QLabel(Form) 63 | self.label_2.setObjectName(u"label_2") 64 | self.label_2.setGeometry(QRect(180, 440, 61, 21)) 65 | self.horizontalSlider_2 = QSlider(Form) 66 | self.horizontalSlider_2.setObjectName(u"horizontalSlider_2") 67 | self.horizontalSlider_2.setGeometry(QRect(40, 470, 101, 16)) 68 | self.horizontalSlider_2.setMinimum(20) 69 | self.horizontalSlider_2.setMaximum(100) 70 | self.horizontalSlider_2.setValue(25) 71 | self.horizontalSlider_2.setOrientation(Qt.Horizontal) 72 | self.label_3 = QLabel(Form) 73 | self.label_3.setObjectName(u"label_3") 74 | self.label_3.setGeometry(QRect(40, 440, 101, 21)) 75 | self.initButton = QPushButton(Form) 76 | self.initButton.setObjectName(u"initButton") 77 | self.initButton.setGeometry(QRect(170, 60, 101, 51)) 78 | self.initButton.setFont(font1) 79 | self.pushButton5 = QPushButton(Form) 80 | self.pushButton5.setObjectName(u"pushButton5") 81 | self.pushButton5.setGeometry(QRect(170, 150, 101, 51)) 82 | self.pushButton5.setFont(font1) 83 | self.pushButton6 = QPushButton(Form) 84 | self.pushButton6.setObjectName(u"pushButton6") 85 | self.pushButton6.setGeometry(QRect(170, 240, 101, 51)) 86 | self.pushButton6.setFont(font1) 87 | self.pushButton7 = QPushButton(Form) 88 | self.pushButton7.setObjectName(u"pushButton7") 89 | self.pushButton7.setGeometry(QRect(170, 330, 101, 51)) 90 | self.pushButton7.setFont(font1) 91 | self.toolButton = QToolButton(Form) 92 | self.toolButton.setObjectName(u"toolButton") 93 | self.toolButton.setGeometry(QRect(280, 360, 46, 21)) 94 | self.toolButton.setToolButtonStyle(Qt.ToolButtonIconOnly) 95 | self.checkBox = QCheckBox(Form) 96 | self.checkBox.setObjectName(u"checkBox") 97 | self.checkBox.setGeometry(QRect(40, 400, 101, 21)) 98 | self.checkBox_2 = QCheckBox(Form) 99 | self.checkBox_2.setObjectName(u"checkBox_2") 100 | self.checkBox_2.setGeometry(QRect(40, 110, 101, 19)) 101 | self.checkBox_3 = QCheckBox(Form) 102 | self.checkBox_3.setObjectName(u"checkBox_3") 103 | self.checkBox_3.setGeometry(QRect(40, 290, 79, 19)) 104 | self.radioButton = QRadioButton(Form) 105 | self.radioButton.setObjectName(u"radioButton") 106 | self.radioButton.setGeometry(QRect(10, 0, 102, 19)) 107 | self.radioButton_2 = QRadioButton(Form) 108 | self.radioButton_2.setObjectName(u"radioButton_2") 109 | self.radioButton_2.setGeometry(QRect(70, 0, 102, 19)) 110 | self.radioButton_3 = QRadioButton(Form) 111 | self.radioButton_3.setObjectName(u"radioButton_3") 112 | self.radioButton_3.setGeometry(QRect(130, 0, 102, 19)) 113 | 114 | self.retranslateUi(Form) 115 | 116 | QMetaObject.connectSlotsByName(Form) 117 | # setupUi 118 | 119 | def retranslateUi(self, Form): 120 | Form.setWindowTitle(QCoreApplication.translate("Form", u"NikkeHelper", None)) 121 | self.pushButton1.setText(QCoreApplication.translate("Form", u"\u6536\u7c73", None)) 122 | self.pushButton2.setText(QCoreApplication.translate("Form", u"\u8fde\u7eed\u5355\u62bd", None)) 123 | self.label.setText("") 124 | self.pushButton3.setText(QCoreApplication.translate("Form", u"\u6a21\u62df\u5ba4", None)) 125 | self.stopButton.setText(QCoreApplication.translate("Form", u"\u7ec8\u6b62\u4efb\u52a1", None)) 126 | self.pushButton4.setText(QCoreApplication.translate("Form", u"\u81ea\u52a8\u54a8\u8be2", None)) 127 | self.label_2.setText("") 128 | self.label_3.setText("") 129 | self.initButton.setText(QCoreApplication.translate("Form", u"\u77eb\u6b63\u7a97\u53e3", None)) 130 | self.pushButton5.setText(QCoreApplication.translate("Form", u"\u7ade\u6280\u573a", None)) 131 | self.pushButton6.setText(QCoreApplication.translate("Form", u"\u8054\u76df\u6218", None)) 132 | self.pushButton7.setText(QCoreApplication.translate("Form", u"\u4e00\u952e\u81ea\u52a8", None)) 133 | self.toolButton.setText(QCoreApplication.translate("Form", u"...", None)) 134 | self.checkBox.setText(QCoreApplication.translate("Form", u"Q\u952e\u8fde\u70b9", None)) 135 | self.checkBox_2.setText(QCoreApplication.translate("Form", u"\u7ade\u6280\u573a\u5546\u5e97", None)) 136 | self.checkBox_3.setText(QCoreApplication.translate("Form", u"\u8d85\u9891", None)) 137 | self.radioButton.setText(QCoreApplication.translate("Form", u"\u5355\u51fb", None)) 138 | self.radioButton_2.setText(QCoreApplication.translate("Form", u"\u53cc\u51fb", None)) 139 | self.radioButton_3.setText(QCoreApplication.translate("Form", u"\u6309\u538b", None)) 140 | # retranslateUi -------------------------------------------------------------------------------- /wanted/0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/0.png -------------------------------------------------------------------------------- /wanted/000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/000.png -------------------------------------------------------------------------------- /wanted/02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/02.png -------------------------------------------------------------------------------- /wanted/03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/03.png -------------------------------------------------------------------------------- /wanted/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/7.png -------------------------------------------------------------------------------- /wanted/EPIC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/EPIC.png -------------------------------------------------------------------------------- /wanted/R.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/R.png -------------------------------------------------------------------------------- /wanted/REWARD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/REWARD.png -------------------------------------------------------------------------------- /wanted/REWARD_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/REWARD_2.png -------------------------------------------------------------------------------- /wanted/SR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/SR.png -------------------------------------------------------------------------------- /wanted/SSR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/SSR.png -------------------------------------------------------------------------------- /wanted/ad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/ad.png -------------------------------------------------------------------------------- /wanted/arena.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/arena.png -------------------------------------------------------------------------------- /wanted/arena_shop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/arena_shop.png -------------------------------------------------------------------------------- /wanted/arena_shop_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/arena_shop_2.png -------------------------------------------------------------------------------- /wanted/ark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/ark.png -------------------------------------------------------------------------------- /wanted/auto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/auto.png -------------------------------------------------------------------------------- /wanted/base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/base.png -------------------------------------------------------------------------------- /wanted/battle_times_done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/battle_times_done.png -------------------------------------------------------------------------------- /wanted/battle_times_done_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/battle_times_done_2.png -------------------------------------------------------------------------------- /wanted/bios_setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/bios_setting.png -------------------------------------------------------------------------------- /wanted/board.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/board.png -------------------------------------------------------------------------------- /wanted/boss_battle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/boss_battle.png -------------------------------------------------------------------------------- /wanted/buy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/buy.png -------------------------------------------------------------------------------- /wanted/cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/cancel.png -------------------------------------------------------------------------------- /wanted/challenge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/challenge.png -------------------------------------------------------------------------------- /wanted/challenge_mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/challenge_mode.png -------------------------------------------------------------------------------- /wanted/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/close.png -------------------------------------------------------------------------------- /wanted/close_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/close_2.png -------------------------------------------------------------------------------- /wanted/close_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/close_3.png -------------------------------------------------------------------------------- /wanted/confirm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/confirm.png -------------------------------------------------------------------------------- /wanted/confirm_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/confirm_10.png -------------------------------------------------------------------------------- /wanted/confirm_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/confirm_2.png -------------------------------------------------------------------------------- /wanted/confirm_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/confirm_3.png -------------------------------------------------------------------------------- /wanted/confirm_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/confirm_4.png -------------------------------------------------------------------------------- /wanted/confirm_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/confirm_5.png -------------------------------------------------------------------------------- /wanted/confirm_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/confirm_6.png -------------------------------------------------------------------------------- /wanted/confirm_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/confirm_7.png -------------------------------------------------------------------------------- /wanted/confirm_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/confirm_8.png -------------------------------------------------------------------------------- /wanted/confirm_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/confirm_9.png -------------------------------------------------------------------------------- /wanted/consult.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/consult.png -------------------------------------------------------------------------------- /wanted/consult_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/consult_2.png -------------------------------------------------------------------------------- /wanted/consult_done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/consult_done.png -------------------------------------------------------------------------------- /wanted/consult_option.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/consult_option.png -------------------------------------------------------------------------------- /wanted/consult_option_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/consult_option_2.png -------------------------------------------------------------------------------- /wanted/cure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/cure.png -------------------------------------------------------------------------------- /wanted/destroy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/destroy.png -------------------------------------------------------------------------------- /wanted/difficulty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/difficulty.png -------------------------------------------------------------------------------- /wanted/dispatch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/dispatch.png -------------------------------------------------------------------------------- /wanted/dispatch_all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/dispatch_all.png -------------------------------------------------------------------------------- /wanted/end_simulation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/end_simulation.png -------------------------------------------------------------------------------- /wanted/enemy_defeated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/enemy_defeated.png -------------------------------------------------------------------------------- /wanted/enter_B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/enter_B.png -------------------------------------------------------------------------------- /wanted/enter_C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/enter_C.png -------------------------------------------------------------------------------- /wanted/enter_battle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/enter_battle.png -------------------------------------------------------------------------------- /wanted/enter_battle_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/enter_battle_2.png -------------------------------------------------------------------------------- /wanted/enter_battle_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/enter_battle_3.png -------------------------------------------------------------------------------- /wanted/enter_battle_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/enter_battle_4.png -------------------------------------------------------------------------------- /wanted/enter_union_battle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/enter_union_battle.png -------------------------------------------------------------------------------- /wanted/everyday.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/everyday.png -------------------------------------------------------------------------------- /wanted/everyweek.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/everyweek.png -------------------------------------------------------------------------------- /wanted/exceeded_buff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/exceeded_buff.png -------------------------------------------------------------------------------- /wanted/free_diamond.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/free_diamond.png -------------------------------------------------------------------------------- /wanted/friend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/friend.png -------------------------------------------------------------------------------- /wanted/gain_all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/gain_all.png -------------------------------------------------------------------------------- /wanted/gain_all_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/gain_all_2.png -------------------------------------------------------------------------------- /wanted/gain_mail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/gain_mail.png -------------------------------------------------------------------------------- /wanted/gain_reward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/gain_reward.png -------------------------------------------------------------------------------- /wanted/gain_reward_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/gain_reward_2.png -------------------------------------------------------------------------------- /wanted/gift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/gift.png -------------------------------------------------------------------------------- /wanted/give.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/give.png -------------------------------------------------------------------------------- /wanted/hard_battle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/hard_battle.png -------------------------------------------------------------------------------- /wanted/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/home.png -------------------------------------------------------------------------------- /wanted/interception.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/interception.png -------------------------------------------------------------------------------- /wanted/interception_battle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/interception_battle.png -------------------------------------------------------------------------------- /wanted/lobby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/lobby.png -------------------------------------------------------------------------------- /wanted/lose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/lose.png -------------------------------------------------------------------------------- /wanted/mail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/mail.png -------------------------------------------------------------------------------- /wanted/max.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/max.png -------------------------------------------------------------------------------- /wanted/mission.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/mission.png -------------------------------------------------------------------------------- /wanted/next_nikke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/next_nikke.png -------------------------------------------------------------------------------- /wanted/next_step.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/next_step.png -------------------------------------------------------------------------------- /wanted/nikke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/nikke.png -------------------------------------------------------------------------------- /wanted/nikke_consult.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/nikke_consult.png -------------------------------------------------------------------------------- /wanted/normal_battle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/normal_battle.png -------------------------------------------------------------------------------- /wanted/pay_shop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/pay_shop.png -------------------------------------------------------------------------------- /wanted/quick_battle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/quick_battle.png -------------------------------------------------------------------------------- /wanted/quick_battle_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/quick_battle_2.png -------------------------------------------------------------------------------- /wanted/quick_consult.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/quick_consult.png -------------------------------------------------------------------------------- /wanted/rank_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/rank_up.png -------------------------------------------------------------------------------- /wanted/recruit_one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/recruit_one.png -------------------------------------------------------------------------------- /wanted/red_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/red_circle.png -------------------------------------------------------------------------------- /wanted/repeated_buff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/repeated_buff.png -------------------------------------------------------------------------------- /wanted/restrict.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/restrict.png -------------------------------------------------------------------------------- /wanted/rookie_arena.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/rookie_arena.png -------------------------------------------------------------------------------- /wanted/shop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/shop.png -------------------------------------------------------------------------------- /wanted/simulation_room.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/simulation_room.png -------------------------------------------------------------------------------- /wanted/single_raids.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/single_raids.png -------------------------------------------------------------------------------- /wanted/skip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/skip.png -------------------------------------------------------------------------------- /wanted/skip_reward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/skip_reward.png -------------------------------------------------------------------------------- /wanted/special_arena.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/special_arena.png -------------------------------------------------------------------------------- /wanted/start_destroy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/start_destroy.png -------------------------------------------------------------------------------- /wanted/start_simulation_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/start_simulation_1.png -------------------------------------------------------------------------------- /wanted/start_simulation_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/start_simulation_2.png -------------------------------------------------------------------------------- /wanted/start_simulation_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/start_simulation_3.png -------------------------------------------------------------------------------- /wanted/team_set.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/team_set.png -------------------------------------------------------------------------------- /wanted/team_set_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/team_set_2.png -------------------------------------------------------------------------------- /wanted/touch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/touch.png -------------------------------------------------------------------------------- /wanted/treatment_room.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/treatment_room.png -------------------------------------------------------------------------------- /wanted/union_attack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/union_attack.png -------------------------------------------------------------------------------- /wanted/union_attack_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/union_attack_2.png -------------------------------------------------------------------------------- /wanted/zone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxxp/NIKKE-helper/a06768e00a91d748330baedf5940440af319dc1f/wanted/zone.png --------------------------------------------------------------------------------