├── .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 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
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 | 
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
--------------------------------------------------------------------------------