├── image files.zip ├── README.md ├── screenshot.py ├── main_multi_kor_skip.py ├── main_multi_kor.py └── main_multi_kor_from1st.py /image files.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waterlemon7z/BlueArchive/HEAD/image files.zip -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | BlueArchive ResetMarathon macro for Korean Users 2 | 3 | How to use: 4 | https://arca.live/b/bluearchive/37893425 | 5 | https://lemon7z.tistory.com/73 6 | -------------------------------------------------------------------------------- /screenshot.py: -------------------------------------------------------------------------------- 1 | import win32gui 2 | import win32ui 3 | import win32con 4 | import pygetwindow 5 | import numpy as np 6 | 7 | def background_screenshot(hwnd, width, height): 8 | wDC = win32gui.GetWindowDC(hwnd) 9 | dcObj=win32ui.CreateDCFromHandle(wDC) 10 | cDC=dcObj.CreateCompatibleDC() 11 | dataBitMap = win32ui.CreateBitmap() 12 | dataBitMap.CreateCompatibleBitmap(dcObj, width, height) 13 | cDC.SelectObject(dataBitMap) 14 | cDC.BitBlt((0,0),(width, height) , dcObj, (0,0), win32con.SRCCOPY) 15 | dataBitMap.SaveBitmapFile(cDC, 'screenshot.bmp') 16 | dcObj.DeleteDC() 17 | cDC.DeleteDC() 18 | win32gui.ReleaseDC(hwnd, wDC) 19 | win32gui.DeleteObject(dataBitMap.GetHandle()) 20 | 21 | if __name__ == "__main__": 22 | hwnd = win32gui.FindWindow(None, 'BlueStacks 3') 23 | x0, y0, x1, y1 = win32gui.GetWindowRect(hwnd) 24 | win32gui.MoveWindow(hwnd, x0, y0, 992, 572, True) 25 | background_screenshot(hwnd, 960, 572) -------------------------------------------------------------------------------- /main_multi_kor_skip.py: -------------------------------------------------------------------------------- 1 | # Blue Archive Reset Marathon (Multi Barrack, Korean) 2 | # Github : Dark-Lemon7z 3 | # Arcalive : 몰루라이브 4 | # Tistory : lemon7z.tistory.com/ 5 | # Last Edited 2021-11-09 6 | 7 | #import 8 | from ppadb.client import Client as AdbClient 9 | from PIL import Image 10 | import pyautogui 11 | import time 12 | import win32gui 13 | import win32ui 14 | import win32con 15 | import random 16 | import sys 17 | import os 18 | 19 | deviceport = sys.argv[1] 20 | devnum = sys.argv[2] 21 | print("###############################") 22 | print("# Blue Archive Reset Marathon #") 23 | print("# 2021-11-09 # Korea Server #") 24 | print("# Arcalive : 몰루라이브 #") 25 | print("###############################") 26 | print("Device : " + devnum +'\n'+ "Port : " + deviceport) 27 | 28 | # adb settings 29 | client = AdbClient(host="127.0.0.1", port=5037) 30 | client.remote_connect("localhost", int(deviceport)) 31 | adbdevice = client.device("localhost:"+str(deviceport)) 32 | if adbdevice is not None: 33 | print("Adb detected") 34 | else: 35 | print("Adb not detected") 36 | exit(0) 37 | 38 | #defines 39 | def click(x, y, dx, dy): 40 | newy = y - 32 41 | xx = random.randint(x, x + dx) 42 | yy = random.randint(newy, newy + dy) 43 | cmd = "input touchscreen tap " + str(xx) + " " + str(yy) 44 | adbdevice.shell(cmd) 45 | def clickd(x1, y1, x2, y2): 46 | newy1 = y1 - 32 47 | newy2 = y2 - 32 48 | x = random.randint(x1, x2) 49 | y = random.randint(newy1, newy2) 50 | cmd = "input touchscreen tap " + str(x) + " " + str(y) 51 | adbdevice.shell(cmd) 52 | def background_screenshot(hwnd, width, height): 53 | wDC = win32gui.GetWindowDC(hwnd) 54 | dcObj=win32ui.CreateDCFromHandle(wDC) 55 | cDC=dcObj.CreateCompatibleDC() 56 | dataBitMap = win32ui.CreateBitmap() 57 | dataBitMap.CreateCompatibleBitmap(dcObj, width, height) 58 | cDC.SelectObject(dataBitMap) 59 | cDC.BitBlt((0,0),(width, height) , dcObj, (0,0), win32con.SRCCOPY) 60 | bmpinfo = dataBitMap.GetInfo() 61 | bmpstr = dataBitMap.GetBitmapBits(True) 62 | im = Image.frombuffer('RGB', (bmpinfo['bmWidth'], bmpinfo['bmHeight']), bmpstr, 'raw', 'BGRX', 0, 1) 63 | dcObj.DeleteDC() 64 | cDC.DeleteDC() 65 | win32gui.ReleaseDC(hwnd, wDC) 66 | win32gui.DeleteObject(dataBitMap.GetHandle()) 67 | return im 68 | def onlyclickhere(img): 69 | while 1: 70 | randsleep(0.15,0.3) 71 | scr_img = background_screenshot(bluestackhw, 960, 572) 72 | clickhere = pyautogui.locate(img, scr_img, confidence=0.8) 73 | if clickhere is not None: 74 | randsleep(0.1,0.3) 75 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 76 | randsleep(0.1,0.3) 77 | print("OK") 78 | break 79 | def randsleep(x,y): 80 | dx = x * 1000 81 | dy = y * 1000 82 | timed = random.randint(dx,dy) / 1000 83 | time.sleep(timed) 84 | def scriptskip(): 85 | # time.sleep(0.3) 86 | while 1: 87 | randsleep(0.05,0.15) 88 | scr_img = background_screenshot(bluestackhw, 960, 572) 89 | clickhere = pyautogui.locate(img_menu, scr_img, confidence=0.8) 90 | if clickhere is not None: 91 | break 92 | while 1: # skip button 93 | randsleep(0.1,0.15) 94 | scr_img = background_screenshot(bluestackhw, 960, 572) 95 | clickhere = pyautogui.locate(img_skip, scr_img, confidence=0.8) 96 | if clickhere is not None: 97 | randsleep(0.05,0.1) 98 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 99 | while 1: # OK 100 | randsleep(0.15,0.3) 101 | scr_img = background_screenshot(bluestackhw, 960, 572) 102 | clickhere = pyautogui.locate(img_ok, scr_img, confidence=0.8) 103 | if clickhere is not None: 104 | randsleep(0.2,0.4) 105 | clickd(500, 400, 630, 430) 106 | randsleep(0.1,0.3) 107 | clickd(500, 400, 630, 430) 108 | randsleep(0.1,0.3) 109 | break 110 | clickhere = pyautogui.locate(img_menu, scr_img, confidence=0.8) 111 | if clickhere is not None: 112 | scriptskip() 113 | break 114 | break 115 | elif clickhere is None: 116 | clickd(857,48,926,61) 117 | randsleep(0.1,0.2) 118 | def stagefine(): 119 | while 1: # stage fine 120 | randsleep(0.15,0.3) 121 | scr_img = background_screenshot(bluestackhw, 960, 572) 122 | clickhere = pyautogui.locate(img_stageok, scr_img, confidence=0.8) 123 | if clickhere is not None: 124 | randsleep(1,1.3) 125 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 126 | randsleep(0.1,0.3) 127 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 128 | randsleep(0.1,0.3) 129 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 130 | randsleep(0.1,0.3) 131 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 132 | randsleep(0.1,0.3) 133 | break 134 | def init(): 135 | x0, y0, x1, y1 = win32gui.GetWindowRect(bluestackhw) 136 | win32gui.MoveWindow(bluestackhw, x0, y0, 992, 572, True) 137 | print("reset") 138 | print("waiting...") 139 | 140 | #variables 141 | cycle = 1 142 | img_menumain = Image.open("menumain.bmp") 143 | # img_networkerr = Image.open("networkerr.bmp") 144 | img_menu = Image.open("menu.bmp") 145 | img_cancle = Image.open("cancle.bmp") 146 | img_guest = Image.open("guest.bmp") 147 | img_ok = Image.open("ok.bmp") 148 | img_onemore = Image.open("onemore.bmp") 149 | img_onlycon = Image.open("onlycon.bmp") 150 | img_senseiok = Image.open("senseiok.bmp") 151 | img_yeondong = Image.open("yeondong.bmp") 152 | img_stageok = Image.open("stageok.bmp") 153 | img_onamae = Image.open("onamae.bmp") 154 | img_systemsay = Image.open("systemsay.bmp") 155 | img_playstore = Image.open("playstore.bmp") 156 | img_skip = Image.open("skip.bmp") 157 | img_skillexp = Image.open("skillcard_exp.bmp") 158 | img_skillexp2 = Image.open("skillcard_exp2.bmp") 159 | img_skillexp3 = Image.open("skillcard_exp3.bmp") 160 | img_skill1 = Image.open("skill1.bmp") 161 | img_skill2 = Image.open("skill2.bmp") 162 | img_freegyacha = Image.open("freegyacha.bmp") 163 | img_ingyacha = Image.open("ingyacha.bmp") 164 | img_tutogyachaok = Image.open("tutogyachaok.bmp") 165 | img_gachafine = Image.open("gachafine.bmp") 166 | img_darkok = Image.open("darkok.bmp") 167 | img_darkmain = Image.open("darkmainchar.bmp") 168 | img_kanji = Image.open("kanji.bmp") 169 | img_darkent = Image.open("darkent.bmp") 170 | img_prepare = Image.open("prepare.bmp") 171 | img_darkgogo = Image.open("darkgogo.bmp") 172 | img_darkteam = Image.open("darkteam.bmp") 173 | img_start = Image.open("start.bmp") 174 | img_boss = Image.open("boss.bmp") 175 | img_auto = Image.open("auto.bmp") 176 | img_yellowok = Image.open("yellowok.bmp") 177 | img_robihe = Image.open("robihe.bmp") 178 | img_area1 = Image.open("area1.bmp") 179 | img_append = Image.open("append.bmp") 180 | img_momotalk = Image.open("momotalk.bmp") 181 | img_momotalkclose = Image.open("momotalkclose.bmp") 182 | img_allreciv = Image.open("allreciv.bmp") 183 | img_allrecivfine = Image.open("allrecivfine.bmp") 184 | img_account = Image.open("account.bmp") 185 | img_instudent = Image.open("instudent.bmp") 186 | img_accountsetting = Image.open("accountsetting.bmp") 187 | img_bluearchive = Image.open("bluearchive.bmp") 188 | img_2roundsay = Image.open("2roundsay.bmp") 189 | img_2roundsay2 = Image.open("2roundsay2.bmp") 190 | img_news = Image.open("news.bmp") 191 | img_missionok = Image.open("missionok.bmp") 192 | img_mainchar = Image.open("mainchar.bmp") 193 | img_everyday = Image.open("everyday.bmp") 194 | img_devicecode = Image.open("devicecode.bmp") 195 | img_codegen = Image.open("codegen.bmp") 196 | img_point = Image.open("point.bmp") 197 | img_pointfront = Image.open("pointfront.bmp") 198 | img_prepareCode = Image.open("prepareCode.bmp") 199 | # devnum = int(input()) 200 | bluestackhw = win32gui.FindWindow(None, "BlueStacks " + str(devnum)) 201 | 202 | def gacha(tm, rst): 203 | gachacycle = 2 204 | merged = Image.new('RGBA', (960 * gachacycle, 572)) 205 | merged.paste(rst, (0,0)) 206 | print("Touch Everyday Gacha", end="....") 207 | while 1: 208 | randsleep(0.1, 0.3) 209 | scr_img = background_screenshot(bluestackhw, 960, 572) 210 | clickhere = pyautogui.locate(img_everyday, scr_img, confidence=0.8) 211 | clickd(620, 140, 710, 160) 212 | if clickhere is not None: 213 | randsleep(0.4, 0.5) 214 | # clickd(536,397,639,434) 215 | clickd(737, 400, 888, 444) 216 | print("OK") 217 | break 218 | print("Touch gacha ok", end="....") 219 | while 1: # touch gacha ok 220 | randsleep(0.15, 0.3) 221 | scr_img = background_screenshot(bluestackhw, 960, 572) 222 | clickhere = pyautogui.locate(img_tutogyachaok, scr_img, confidence=0.8) 223 | if clickhere is not None: 224 | time.sleep(0.1) 225 | scr_img = background_screenshot(bluestackhw, 960, 572) 226 | clickhere = pyautogui.locate(img_gachafine, scr_img, confidence=0.8) 227 | if clickhere is not None: 228 | clickd(319, 391, 440, 420) 229 | randsleep(0.1, 0.3) 230 | clickd(319, 391, 440, 420) 231 | return 232 | randsleep(0.5, 0.7) 233 | randsleep(1, 1.3) 234 | clickd(500, 380, 640, 420) 235 | randsleep(0.1, 0.3) 236 | clickd(500, 380, 640, 420) 237 | randsleep(0.1, 0.3) 238 | clickd(500, 380, 640, 420) 239 | randsleep(0.1, 0.3) 240 | clickd(500, 380, 640, 420) 241 | randsleep(0.1, 0.3) 242 | print("OK") 243 | break 244 | while 1: 245 | temp = Image.new('RGBA', (960 * gachacycle, 572)) 246 | temp.paste(merged, (0, 0)) 247 | merged = temp 248 | print("Sign", end="....") 249 | while 1: # sign 250 | randsleep(0.15, 0.3) 251 | clickd(324, 367, 647, 500) 252 | scr_img = background_screenshot(bluestackhw, 960, 572) 253 | clickhere = pyautogui.locate(img_ingyacha, scr_img, confidence=0.8) 254 | if clickhere is not None: 255 | randsleep(0.5, 0.7) 256 | clickd(324, 367, 647, 500) 257 | randsleep(0.1, 0.2) 258 | clickd(324, 367, 647, 500) 259 | randsleep(0.1, 0.2) 260 | print("OK") 261 | break 262 | while 1: 263 | randsleep(0.1, 0.3) 264 | clickd(849, 55, 920, 75) 265 | scr_img = background_screenshot(bluestackhw, 960, 572) 266 | clickhere = pyautogui.locate(img_point, scr_img, confidence=0.8) 267 | if clickhere is not None: 268 | time.sleep(0.7) 269 | print("Screen captured") 270 | scr_gacha_img = background_screenshot(bluestackhw, 960, 572) 271 | merged.paste(scr_gacha_img, (960*(gachacycle-1), 0)) 272 | break 273 | 274 | print("In gacha", end="....") 275 | while 1: 276 | randsleep(0.1, 0.3) 277 | clickd(849, 55, 920, 75) 278 | scr_img = background_screenshot(bluestackhw, 960, 572) 279 | clickhere = pyautogui.locate(img_ok, scr_img, confidence=0.8) 280 | if clickhere is not None: 281 | randsleep(0.1, 0.3) 282 | clickd(512, 489, 622, 510) 283 | print("OK") 284 | break 285 | print("More gacha", end="....") 286 | while 1: 287 | randsleep(0.1, 0.3) 288 | clickd(849, 55, 920, 75) 289 | scr_img = background_screenshot(bluestackhw, 960, 572) 290 | clickhere = pyautogui.locate(img_onemore, scr_img, confidence=0.8) 291 | if clickhere is not None: 292 | randsleep(0.1, 0.3) 293 | clickd(583, 373, 635, 403) 294 | print("OK") 295 | break 296 | clickhere = pyautogui.locate(img_onlycon, scr_img, confidence=0.8) 297 | if clickhere is not None: 298 | cmd = 'Codes\\' + str(tm.tm_hour) + str(tm.tm_min) + str(tm.tm_sec) + '_' + str(devnum) + 'gacha.png' 299 | merged.save(cmd) 300 | return 301 | # print("Fine gacha", end="....") 302 | # while 1: 303 | # randsleep(0.1, 0.3) 304 | # clickd(418, 483, 460, 523) 305 | # scr_img = background_screenshot(bluestackhw, 960, 572) 306 | # clickhere = pyautogui.locate(img_everyday, scr_img, confidence=0.8) 307 | # if clickhere is not None: 308 | # print("OK") 309 | # break 310 | gachacycle += 1 311 | 312 | #main activity 313 | def resetmara(): 314 | # init 315 | init() 316 | tm = time.localtime(time.time()) 317 | print("Account manage", end="....") 318 | while 1: # TOUCH TO START 319 | clickd(920, 53,921,66) 320 | randsleep(0.3,0.4) 321 | scr_img = background_screenshot(bluestackhw, 960, 572) 322 | clickhere = pyautogui.locate(img_account, scr_img, confidence=0.8) 323 | if clickhere is not None: 324 | randsleep(0.1, 0.3) 325 | clickd(495, 270, 634,301) 326 | randsleep(0.1, 0.3) 327 | print("OK") 328 | break 329 | 330 | while 1: 331 | randsleep(0.1,0.15) 332 | scr_img = background_screenshot(bluestackhw, 960, 572) 333 | clickhere = pyautogui.locate(img_accountsetting, scr_img, confidence=0.8) 334 | if clickhere is not None: 335 | randsleep(0.1, 0.3) 336 | clickd(641, 289, 644,311) 337 | randsleep(0.1, 0.3) 338 | clickd(641, 289, 644,311) 339 | randsleep(0.1, 0.3) 340 | clickd(641, 289, 644,311) 341 | randsleep(0.1, 0.3) 342 | print("OK") 343 | break 344 | while 1: 345 | randsleep(0.1,0.15) 346 | scr_img = background_screenshot(bluestackhw, 960, 572) 347 | clickhere = pyautogui.locate(img_bluearchive, scr_img, confidence=0.8) 348 | if clickhere is not None: 349 | randsleep(0.1, 0.3) 350 | clickd(427, 274, 521,286) 351 | randsleep(0.1, 0.3) 352 | adbdevice.shell("input text \"BlueArchive\"") 353 | randsleep(0.1, 0.3) 354 | clickd(500, 383, 515,413) 355 | randsleep(0.1, 0.3) 356 | clickd(500, 383, 515,413) 357 | print("OK") 358 | break 359 | while 1: 360 | randsleep(0.1,0.15) 361 | scr_img = background_screenshot(bluestackhw, 960, 572) 362 | clickhere = pyautogui.locate(img_ok, scr_img, confidence=0.8) 363 | if clickhere is not None: 364 | randsleep(0.3, 0.4) 365 | clickd(500, 383, 515,413) 366 | randsleep(0.1, 0.15) 367 | clickd(500, 383, 515,413) 368 | randsleep(0.1, 0.15) 369 | clickd(500, 383, 515,413) 370 | print("OK") 371 | break 372 | 373 | 374 | 375 | 376 | 377 | 378 | print("Touch start", end="....") 379 | while 1: # TOUCH TO START 380 | randsleep(0.15,0.3) 381 | scr_img = background_screenshot(bluestackhw, 960, 572) 382 | clickhere = pyautogui.locate(img_menumain, scr_img, confidence=0.8) 383 | if clickhere is not None: 384 | randsleep(0.5,0.7) 385 | clickd(100, 200,700,400) 386 | print("OK") 387 | break 388 | clickhere = pyautogui.locate(img_playstore, scr_img, confidence=0.7) 389 | if clickhere is not None: 390 | randsleep(0.15, 0.3) 391 | adbdevice.shell("am start -n com.nexon.bluearchive/com.nexon.bluearchive.MxUnityPlayerActivity") 392 | print("Force Quited Restart") 393 | while 1: # TOUCH TO START 394 | randsleep(0.15, 0.3) 395 | scr_img = background_screenshot(bluestackhw, 960, 572) 396 | clickhere = pyautogui.locate(img_menumain, scr_img, confidence=0.8) 397 | if clickhere is not None: 398 | randsleep(0.5, 0.7) 399 | clickd(100, 200, 700, 400) 400 | print("OK") 401 | break 402 | print("Touch Hazimemashite ok", end="....") 403 | while 1: # touch hazimemashite's ok 404 | randsleep(0.15,0.3) 405 | scr_img = background_screenshot(bluestackhw, 960, 572) 406 | clickhere = pyautogui.locate(img_ok, scr_img, confidence=0.8) 407 | if clickhere is not None: 408 | randsleep(0.3,0.5) 409 | clickd(406, 388,530,430) 410 | randsleep(0.1,0.3) 411 | clickd(406, 388,530,430) 412 | randsleep(0.1,0.3) 413 | print("OK") 414 | break 415 | print("Write name", end="....") 416 | 417 | while 1: # write name 418 | randsleep(0.15,0.3) 419 | scr_img = background_screenshot(bluestackhw, 960, 572) 420 | clickhere = pyautogui.locate(img_onamae, scr_img, confidence=0.8) 421 | if clickhere is not None: 422 | clickd(405, 297, 524, 320) 423 | randsleep(0.1,0.3) 424 | adbdevice.shell("input text \"a\"") 425 | randsleep(0.1,0.3) 426 | clickd(800, 480,801,481) # typing end 427 | randsleep(0.3,0.6) 428 | clickd(400, 380,533,419) # OK 429 | randsleep(0.1,0.3) 430 | clickd(400, 380,533,419) # OK 431 | randsleep(0.1,0.3) 432 | print("OK") 433 | break 434 | print("Passing sensei name confirm", end="....") 435 | while 1: # touch sensei voice ok 436 | randsleep(0.4,0.45) 437 | clickd(418, 395,540,430) 438 | scr_img = background_screenshot(bluestackhw, 960, 572) 439 | clickhere = pyautogui.locate(img_senseiok, scr_img, confidence=0.8) 440 | if clickhere is not None: 441 | clickd(418, 395,540,430) 442 | randsleep(0.1,0.3) 443 | clickd(418, 395,540,430) 444 | randsleep(0.1,0.3) 445 | clickd(418, 395,540,430) 446 | randsleep(0.1,0.3) 447 | print("OK") 448 | break 449 | 450 | print("Read 1st chat", end="....") 451 | while 1: # touch systemsay (1st chat) 452 | randsleep(0.15,0.3) 453 | scr_img = background_screenshot(bluestackhw, 960, 572) 454 | clickhere = pyautogui.locate(img_systemsay, scr_img, confidence=0.7) 455 | if clickhere is not None: 456 | for i in range(0, 10): 457 | clickd(855, 500,900,546) 458 | randsleep(0.1,0.3) 459 | print("OK") 460 | break 461 | 462 | print("Skip script", end="....") 463 | scriptskip() # skip script 464 | 465 | print("-Started 1st stage-") 466 | 467 | print("Skip TMT", end="....") 468 | while 1: # touch skill exp (1st chat) 469 | randsleep(0.15,0.2) 470 | scr_img = background_screenshot(bluestackhw, 960, 572) 471 | clickhere = pyautogui.locate(img_skillexp, scr_img, confidence=0.9) 472 | if clickhere is not None: 473 | for i in range(0, 9): 474 | clickd(400, 200,700,400) 475 | randsleep(0.1,0.18) 476 | print("OK") 477 | break 478 | print("Skip TMT2", end="....") 479 | while 1: # touch skill exp (2nd chat) 480 | randsleep(0.15,0.3) 481 | scr_img = background_screenshot(bluestackhw, 960, 572) 482 | clickhere = pyautogui.locate(img_skillexp, scr_img, confidence=0.9) 483 | if clickhere is not None: 484 | for i in range(0, 4): 485 | clickd(400, 200,700,400) 486 | randsleep(0.1,0.18) 487 | break 488 | print("OK") 489 | print("Touch skill", end="....") 490 | while 1: # touch skill2 491 | randsleep(0.15,0.3) 492 | scr_img = background_screenshot(bluestackhw, 960, 572) 493 | clickhere = pyautogui.locate(img_skill2, scr_img, confidence=0.8) 494 | if clickhere is not None: 495 | randsleep(0.1,0.3) 496 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 497 | randsleep(0.1,0.3) 498 | for i in range(0,random.randint(2,3)): 499 | clickd(700, 140,900,300) 500 | randsleep(0.1,0.3) 501 | break 502 | print("OK") 503 | print("Skip TMT3", end="....") 504 | while 1: # touch skill exp (3rd chat) 505 | randsleep(0.15,0.3) 506 | scr_img = background_screenshot(bluestackhw, 960, 572) 507 | clickhere = pyautogui.locate(img_skillexp, scr_img, confidence=0.9) 508 | if clickhere is not None: 509 | for i in range(0, 2): 510 | clickd(400, 200,700,400) 511 | randsleep(0.1,0.18) 512 | break 513 | print("OK") 514 | print("Touch skill", end="....") 515 | while 1: # touch skill1 516 | randsleep(0.15,0.3) 517 | scr_img = background_screenshot(bluestackhw, 960, 572) 518 | clickhere = pyautogui.locate(img_skill1, scr_img, confidence=0.8) 519 | if clickhere is not None: 520 | randsleep(0.1,0.3) 521 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 522 | randsleep(0.1,0.3) 523 | for i in range(0,random.randint(2,3)): 524 | clickd(700, 140,900,300) 525 | randsleep(0.1,0.3) 526 | clickd(700, 140,900,300) 527 | randsleep(0.1,0.3) 528 | break 529 | print("OK") 530 | stagefine() 531 | print("-Stage Finished-") 532 | 533 | # 1st stage clear# 534 | print("Skip script", end="....") 535 | scriptskip() 536 | print("Skip script", end="....") 537 | scriptskip() 538 | print("OK") 539 | print("-2nd stage start-") 540 | # 2nd stage start# 541 | print("Skip TMT", end="....") 542 | while 1: # touch tmt exp (1st chat) 543 | randsleep(0.15,0.3) 544 | scr_img = background_screenshot(bluestackhw, 960, 572) 545 | clickhere = pyautogui.locate(img_skillexp, scr_img, confidence=0.9) 546 | if clickhere is not None: 547 | for i in range(0, 6): 548 | clickd(400, 200,700,400) 549 | randsleep(0.1,0.18) 550 | break 551 | print("OK") 552 | print("Skip Hasumi chat", end="....") 553 | scriptskip() 554 | print("OK") 555 | print("Touch skill", end="....") 556 | while 1: # touch skill2 557 | randsleep(0.15,0.3) 558 | scr_img = background_screenshot(bluestackhw, 960, 572) 559 | clickhere = pyautogui.locate(img_skill2, scr_img, confidence=0.8) 560 | if clickhere is not None: 561 | randsleep(0.2,0.35) 562 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 563 | randsleep(0.1,0.3) 564 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 565 | randsleep(0.3,0.5) 566 | for i in range(0,random.randint(2,3)): 567 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 568 | randsleep(0.3,0.5) 569 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 570 | randsleep(0.3,0.5) 571 | break 572 | print("OK") 573 | print("Skip wokamo chat", end="....") 574 | # wokamo chat 575 | scriptskip() 576 | print("Touch skill", end="....") 577 | while 1: # touch skill1 578 | randsleep(0.15,0.3) 579 | scr_img = background_screenshot(bluestackhw, 960, 572) 580 | clickhere = pyautogui.locate(img_skill1, scr_img, confidence=0.8) 581 | if clickhere is not None: 582 | randsleep(0.2,0.35) 583 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 584 | randsleep(0.1,0.3) 585 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 586 | randsleep(0.3,0.5) 587 | for i in range(0,random.randint(2,3)): 588 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 589 | randsleep(0.3,0.5) 590 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 591 | randsleep(0.3,0.5) 592 | break 593 | print("OK") 594 | print("Skip script", end="....") 595 | scriptskip() 596 | randsleep(0.3,0.5) 597 | print("Skip script", end="....") 598 | scriptskip() 599 | print("Skip TMT", end="....") 600 | while 1: # touch tmt exp (2nd chat) 601 | randsleep(0.15,0.3) 602 | scr_img = background_screenshot(bluestackhw, 960, 572) 603 | clickhere = pyautogui.locate(img_skillexp, scr_img, confidence=0.9) 604 | if clickhere is not None: 605 | for i in range(0, 4): 606 | clickd(400, 200,700,400) 607 | randsleep(0.1,0.18) 608 | clickd(639,472, 672,516) 609 | randsleep(0.2,0.3) 610 | clickd(600,80, 900,300) 611 | randsleep(0.2,0.3) 612 | clickd(600,80, 900,300) 613 | randsleep(0.2,0.3) 614 | break 615 | print("OK") 616 | print("Touch skill", end="....") 617 | while 1: # touch skill2 618 | randsleep(0.15,0.3) 619 | scr_img = background_screenshot(bluestackhw, 960, 572) 620 | clickhere = pyautogui.locate(img_skill2, scr_img, confidence=0.8) 621 | if clickhere is None: 622 | clickhere = pyautogui.locate(img_skill1, scr_img, confidence=0.8) 623 | if clickhere is not None: 624 | randsleep(0.1,0.3) 625 | clickd(465, 98, 804, 335) 626 | randsleep(0.1,0.3) 627 | clickd(465, 98, 804, 335) 628 | randsleep(0.3,0.5) 629 | for i in range(0,random.randint(2,4)): 630 | clickd(465, 98, 804, 335) 631 | randsleep(0.3,0.5) 632 | break 633 | print("OK") 634 | # insert one more pic 635 | stagefine() 636 | print("-Stage finished-") 637 | # 2nd stage clear# 638 | 639 | scriptskip() 640 | randsleep(1,1.3) 641 | scriptskip() 642 | randsleep(1,1.3) 643 | randsleep(1,1.3) 644 | print("Skip anime", end="....") 645 | while 1: # Skip anime 646 | randsleep(0.1, 0.2) 647 | scr_img = background_screenshot(bluestackhw, 960, 572) 648 | clickhere = pyautogui.locate(img_darkmain, scr_img, confidence=0.8) 649 | clickd(517, 390,632,420) 650 | if clickhere is not None: 651 | clickd(517, 390,632,420) 652 | print("OK") 653 | break 654 | # tuto fine 655 | 656 | # lobby 657 | print("Touch gacha", end="....") 658 | while 1: # touch gyacha 659 | randsleep(0.1,0.3) 660 | scr_img = background_screenshot(bluestackhw, 960, 572) 661 | clickhere = pyautogui.locate(img_freegyacha, scr_img, confidence=0.8) 662 | clickd(670,490, 700,520) 663 | if clickhere is not None: 664 | randsleep(0.5,0.7) 665 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 666 | randsleep(0.1,0.3) 667 | break 668 | print("OK") 669 | print("Touch gacha ok", end="....") 670 | while 1: # touch gacha ok 671 | randsleep(0.15,0.3) 672 | scr_img = background_screenshot(bluestackhw, 960, 572) 673 | clickhere = pyautogui.locate(img_tutogyachaok, scr_img, confidence=0.8) 674 | if clickhere is not None: 675 | randsleep(1,1.3) 676 | clickd(500, 380,640,420) 677 | randsleep(0.1,0.2) 678 | clickd(500, 380,640,420) 679 | randsleep(0.1,0.2) 680 | for i in range(0,random.randint(2,3)): 681 | clickd(500, 380,640,420) 682 | randsleep(0.1,0.2) 683 | print("OK") 684 | break 685 | print("Sign", end="....") 686 | while 1: # sign 687 | randsleep(0.15,0.3) 688 | clickd(500, 380,640,420) 689 | scr_img = background_screenshot(bluestackhw, 960, 572) 690 | clickhere = pyautogui.locate(img_ingyacha, scr_img, confidence=0.8) 691 | if clickhere is not None: 692 | randsleep(0.5,0.7) 693 | for i in range(0,random.randint(2,3)): 694 | clickd(324, 367,647,500) 695 | randsleep(0.1,0.3) 696 | print("OK") 697 | break 698 | print("Capture gacha", end="....") 699 | while 1: 700 | randsleep(0.1,0.2) 701 | scr_img = background_screenshot(bluestackhw, 960, 572) 702 | clickhere = pyautogui.locate(img_point, scr_img, confidence=0.8) 703 | clickd(849,55, 920,75) 704 | if clickhere is not None: 705 | time.sleep(0.7) 706 | gacha_result = background_screenshot(bluestackhw, 960, 572) 707 | print("OK") 708 | break 709 | print("In gacha", end="....") 710 | while 1: 711 | randsleep(0.1,0.3) 712 | scr_img = background_screenshot(bluestackhw, 960, 572) 713 | clickhere = pyautogui.locate(img_darkok, scr_img, confidence=0.8) #retake 714 | clickd(849,55, 920,75) 715 | if clickhere is not None: 716 | randsleep(0.1,0.3) 717 | clickd(420,482, 541,523) 718 | randsleep(0.1,0.3) 719 | for i in range(0,random.randint(3,5)): 720 | clickd(420,482, 541,523) 721 | randsleep(0.1,0.3) 722 | break 723 | print("OK") 724 | randsleep(2,2.3) 725 | print("Touch entrance", end="....") 726 | while 1: # touch entrance 727 | randsleep(0.1, 0.3) 728 | scr_img = background_screenshot(bluestackhw, 960, 572) 729 | clickhere = pyautogui.locate(img_darkent, scr_img, confidence=0.85) 730 | if clickhere is not None: 731 | randsleep(1.5, 1.7) 732 | clickd(800, 196, 860, 228) 733 | randsleep(0.1, 0.3) 734 | for i in range(0,random.randint(2,3)): 735 | clickd(800, 196, 860, 228) 736 | randsleep(0.1, 0.3) 737 | break 738 | print("OK") 739 | print("Touch prepare", end="....") 740 | while 1: # touch prepare 741 | randsleep(0.15, 0.3) 742 | scr_img = background_screenshot(bluestackhw, 960, 572) 743 | clickhere = pyautogui.locate(img_prepare, scr_img, confidence=0.8) 744 | if clickhere is not None: 745 | randsleep(0.3, 0.6) 746 | clickd(617, 414, 747, 454) 747 | randsleep(0.1, 0.3) 748 | for i in range(0,random.randint(2,3)): 749 | clickd(617, 414, 747, 454) 750 | randsleep(0.1, 0.3) 751 | break 752 | clickd(800, 196, 860, 228) 753 | print("OK") 754 | print("Touch start", end="....") 755 | while 1: # touch start 756 | randsleep(0.15, 0.3) 757 | scr_img = background_screenshot(bluestackhw, 960, 572) 758 | clickhere = pyautogui.locate(img_darkgogo, scr_img, confidence=0.8) 759 | if clickhere is not None: 760 | randsleep(0.2, 0.35) 761 | clickd(361, 367, 408, 400) 762 | randsleep(0.1, 0.3) 763 | for i in range(0,random.randint(3,4)): 764 | clickd(361, 367, 408, 400) 765 | randsleep(0.1, 0.3) 766 | print("OK") 767 | break 768 | print("Touch team", end="....") 769 | print("OK") 770 | print("Close team window", end="....") 771 | while 1: # wait to kanji window 772 | randsleep(0.1, 0.3) 773 | scr_img = background_screenshot(bluestackhw, 960, 572) 774 | clickhere = pyautogui.locate(img_kanji, scr_img, confidence=0.8) 775 | clickd(880, 167, 907, 168) 776 | if clickhere is not None: 777 | break 778 | while 1: 779 | randsleep(0.1, 0.3) 780 | scr_img = background_screenshot(bluestackhw, 960, 572) 781 | clickhere = pyautogui.locate(img_darkteam, scr_img, confidence=0.8) 782 | clickd(300, 40, 700, 80) 783 | if clickhere is not None: 784 | randsleep(0.1, 0.3) 785 | clickd(800, 500, 900, 553) 786 | randsleep(0.1, 0.3) 787 | for i in range(0,random.randint(2,3)): 788 | clickd(800, 500, 900, 553) 789 | randsleep(0.1, 0.3) 790 | break 791 | print("OK") 792 | print("Touch boss", end="....") 793 | while 1: # touch start 794 | randsleep(0.15, 0.3) 795 | scr_img = background_screenshot(bluestackhw, 960, 572) 796 | clickhere = pyautogui.locate(img_boss, scr_img, confidence=0.8) 797 | if clickhere is not None: 798 | randsleep(1, 1.3) 799 | for i in range(0,random.randint(2,3)): 800 | clickd(818, 509, 913, 540) 801 | randsleep(0.1, 0.3) 802 | break 803 | print("OK") 804 | print("Touch start", end="....") 805 | while 1: # touch start 806 | randsleep(0.15, 0.3) 807 | scr_img = background_screenshot(bluestackhw, 960, 572) 808 | clickhere = pyautogui.locate(img_start, scr_img, confidence=0.7) 809 | if clickhere is not None: 810 | randsleep(0.1, 0.3) 811 | clickd(490, 358, 510, 376) 812 | randsleep(0.1, 0.3) 813 | clickd(490, 358, 510, 376) 814 | for i in range(0,random.randint(3,4)): 815 | randsleep(0.1, 0.3) 816 | clickd(490, 358, 510, 376) 817 | break 818 | print("OK") 819 | print("-Battle phase 1 started-") 820 | # battle phase 1 821 | print("Touch auto", end="....") 822 | while 1: # touch auto 823 | randsleep(0.15, 0.3) 824 | scr_img = background_screenshot(bluestackhw, 960, 572) 825 | clickhere = pyautogui.locate(img_auto, scr_img, confidence=0.8) 826 | if clickhere is not None: 827 | randsleep(2, 2.3) 828 | clickd(872, 527, 924, 544) 829 | randsleep(0.1, 0.3) 830 | break 831 | print("OK") 832 | stagefine() 833 | print("-Stage finished-") 834 | # battle phase 1 ended 835 | print("Touch ok", end="....") 836 | while 1: # touch yellow ok 837 | randsleep(0.15, 0.3) 838 | scr_img = background_screenshot(bluestackhw, 960, 572) 839 | clickhere = pyautogui.locate(img_yellowok, scr_img, confidence=0.8) 840 | if clickhere is not None: 841 | randsleep(0.1, 0.3) 842 | clickd(425, 509, 536, 538) 843 | randsleep(0.1, 0.3) 844 | break 845 | print("OK") 846 | print("Touch phase end", end="....") 847 | while 1: # touch phase end 848 | randsleep(0.15, 0.3) 849 | scr_img = background_screenshot(bluestackhw, 960, 572) 850 | clickhere = pyautogui.locate(img_2roundsay, scr_img, confidence=0.8) 851 | if clickhere is not None: 852 | randsleep(0.1, 0.3) 853 | for i in range(0,random.randint(3,4)): 854 | clickd(830, 514, 917, 544) 855 | randsleep(0.1, 0.3) 856 | break 857 | print("OK") 858 | print("Touch Boss", end="....") 859 | while 1: # touch Boss 860 | randsleep(0.15, 0.3) 861 | scr_img = background_screenshot(bluestackhw, 960, 572) 862 | clickhere = pyautogui.locate(img_2roundsay2, scr_img, confidence=0.8) 863 | if clickhere is not None: 864 | randsleep(0.1, 0.3) 865 | for i in range(0,random.randint(3,4)): 866 | clickd(562, 319, 582, 330) 867 | randsleep(0.1, 0.3) 868 | break 869 | print("OK") 870 | print("-Battle phase 2-") 871 | # battle phase 2 872 | stagefine() 873 | # # battel phase 2 ended 874 | # print("Touch yellow ok", end="....") 875 | # while 1: # touch yellow ok 876 | # randsleep(0.15, 0.3) 877 | # scr_img = background_screenshot(bluestackhw, 960, 572) 878 | # clickhere = pyautogui.locate(img_missionok, scr_img, confidence=0.8) 879 | # if clickhere is not None: 880 | # randsleep(0.7, 1) 881 | # randsleep(0.7, 1) 882 | # for i in range(0,random.randint(3,4)): 883 | # click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 884 | # randsleep(0.1, 0.3) 885 | # break 886 | # print("OK") 887 | print("press backkey", end="....") 888 | while 1: # touch robi he 889 | randsleep(0.4, 0.5) 890 | adbdevice.shell("input keyevent 158") 891 | scr_img = background_screenshot(bluestackhw, 960, 572) 892 | clickhere = pyautogui.locate(img_area1, scr_img, confidence=0.8) 893 | clickd(687, 446, 869, 517) 894 | if clickhere is not None: 895 | break 896 | print("OK") 897 | print("Wait append table", end="....") 898 | # append table 899 | while 1: 900 | randsleep(0.15, 0.3) 901 | scr_img = background_screenshot(bluestackhw, 960, 572) 902 | clickhere = pyautogui.locate(img_append, scr_img, confidence=0.8) 903 | if clickhere is not None: 904 | randsleep(0.2, 0.3) 905 | clickd(902, 39, 930, 60) 906 | randsleep(0.2, 0.3) 907 | clickd(902, 39, 930, 60) 908 | randsleep(0.2, 0.3) 909 | clickd(902, 39, 930, 60) 910 | break 911 | print("OK") 912 | 913 | # print("Touch momotalk", end="....") 914 | # randsleep(0.5, 0.7) 915 | # while 1: # touch momotalk 916 | # randsleep(0.1, 0.3) 917 | # scr_img = background_screenshot(bluestackhw, 960, 572) 918 | # clickhere = pyautogui.locate(img_momotalk, scr_img, confidence=0.8) 919 | # clickd(119, 114, 134, 154) 920 | # if clickhere is not None: 921 | # randsleep(0.1, 0.3) 922 | # clickd(119, 114, 134, 154) 923 | # randsleep(0.1, 0.3) 924 | # clickd(119, 114, 134, 154) 925 | # randsleep(0.1, 0.3) 926 | # break 927 | # print("OK") 928 | print("Touch mailbox", end="....") 929 | while 1: # touch mailbox 930 | randsleep(0.15, 0.3) 931 | scr_img = background_screenshot(bluestackhw, 960, 572) 932 | clickhere = pyautogui.locate(img_mainchar, scr_img, confidence=0.8) 933 | if clickhere is not None: 934 | randsleep(0.1, 0.3) 935 | clickd(836, 54, 866, 69) 936 | randsleep(0.1, 0.3) 937 | print("OK") 938 | break # touch mail box 939 | print("OK") 940 | print("Touch allreciv", end="....") 941 | while 1: # touch guest 942 | randsleep(0.15, 0.3) 943 | scr_img = background_screenshot(bluestackhw, 960, 572) 944 | clickhere = pyautogui.locate(img_allreciv, scr_img, confidence=0.8) 945 | if clickhere is not None: 946 | randsleep(0.5, 0.7) 947 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 948 | randsleep(0.1, 0.3) 949 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 950 | randsleep(0.1, 0.3) 951 | print("OK") 952 | break 953 | print("OK") 954 | # print("Go home", end="....") 955 | # while 1: # touch go home 956 | # randsleep(0.15, 0.3) 957 | # scr_img = background_screenshot(bluestackhw, 960, 572) 958 | # clickhere = pyautogui.locate(img_allrecivfine, scr_img, confidence=0.8) 959 | # clickd(621, 115, 827, 444) 960 | # if clickhere is not None: 961 | # randsleep(0.4, 0.65) 962 | # clickd(902, 39, 930, 60) 963 | # randsleep(0.1, 0.2) 964 | # clickd(902, 39, 930, 60) 965 | # randsleep(0.1, 0.2) 966 | # clickd(902, 39, 930, 60) 967 | # randsleep(0.1, 0.2) 968 | # break 969 | # print("OK") 970 | # print("Touch Student", end="....") 971 | # while 1: 972 | # randsleep(0.1, 0.3) 973 | # scr_img = background_screenshot(bluestackhw, 960, 572) 974 | # clickhere = pyautogui.locate(img_instudent, scr_img, confidence=0.8) 975 | # clickd(241, 501, 269, 534) 976 | # if clickhere is not None: 977 | # randsleep(0.1, 0.2) 978 | # click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 979 | # randsleep(0.1, 0.2) 980 | # click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 981 | # randsleep(0.1, 0.2) 982 | # click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 983 | # randsleep(0.1, 0.2) 984 | # click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 985 | # break 986 | # 987 | # print("Touch Home", end="....") 988 | # while 1: 989 | # randsleep(0.07, 0.15) 990 | # scr_img = background_screenshot(bluestackhw, 960, 572) 991 | # clickhere = pyautogui.locate(img_darkmain, scr_img, confidence=0.8) 992 | # clickd(902, 39, 930, 60) 993 | # if clickhere is not None: 994 | # break 995 | # 996 | # print("Touch account", end="....") 997 | # while 1: 998 | # randsleep(0.1, 0.3) 999 | # scr_img = background_screenshot(bluestackhw, 960, 572) 1000 | # clickhere = pyautogui.locate(img_account, scr_img, confidence=0.8) 1001 | # clickd(890, 50, 920, 70) 1002 | # if clickhere is not None: 1003 | # randsleep(0.1, 0.3) 1004 | # clickd(495, 270, 634,301) 1005 | # randsleep(0.1, 0.3) 1006 | # break 1007 | # print("OK") 1008 | # # print("Touch mission", end="....") 1009 | # while 1: # touch mission 1010 | # randsleep(0.1, 0.2) 1011 | # scr_img = background_screenshot(bluestackhw, 960, 572) 1012 | # clickhere = pyautogui.locate(img_mainchar, scr_img, confidence=0.8) 1013 | # clickd(35, 192, 56, 225) 1014 | # if clickhere is not None: 1015 | # randsleep(0.1, 0.2) 1016 | # clickd(35, 192, 56, 225) 1017 | # randsleep(0.1, 0.3) 1018 | # print("OK") 1019 | # break 1020 | # print("OK") 1021 | # print("Touch allreciv", end="....") 1022 | # while 1: # touch allreciv 1023 | # randsleep(0.15, 0.3) 1024 | # scr_img = background_screenshot(bluestackhw, 960, 572) 1025 | # clickhere = pyautogui.locate(img_allreciv, scr_img, confidence=0.8) 1026 | # if clickhere is not None: 1027 | # randsleep(0.5, 0.7) 1028 | # click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 1029 | # randsleep(0.1, 0.3) 1030 | # click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 1031 | # randsleep(0.1, 0.3) 1032 | # print("OK") 1033 | # break 1034 | print("Touch gacha", end="....") 1035 | while 1: # touch gacha 1036 | randsleep(0.15, 0.3) 1037 | clickd(902, 39, 930, 60) 1038 | scr_img = background_screenshot(bluestackhw, 960, 572) 1039 | clickhere = pyautogui.locate(img_allrecivfine, scr_img, confidence=0.8) 1040 | if clickhere is not None: 1041 | clickd(902, 39, 930, 60) 1042 | randsleep(0.3, 0.6) 1043 | clickd(688, 500, 710, 532) 1044 | randsleep(0.1, 0.3) 1045 | clickd(688, 500, 710, 532) 1046 | randsleep(0.1, 0.3) 1047 | break 1048 | while 1: # touch gacha 1049 | randsleep(0.15, 0.2) 1050 | clickd(688, 500, 710, 532) 1051 | scr_img = background_screenshot(bluestackhw, 960, 572) 1052 | clickhere = pyautogui.locate(img_pointfront, scr_img, confidence=0.8) 1053 | if clickhere is not None: 1054 | break 1055 | gacha(tm, gacha_result) 1056 | 1057 | if __name__ == "__main__": 1058 | while 1: 1059 | print("###############################") 1060 | print("# 대상 디바이스 번호 : " + sys.argv[2]) 1061 | print("# 리세 횟수 : " + str(cycle)) 1062 | print("###############################") 1063 | cycle = cycle + 1 1064 | resetmara() 1065 | while 1: 1066 | print("계속하시겠습니까? (y / n) : ") 1067 | a = input() 1068 | if a == 'y': 1069 | break 1070 | else: 1071 | continue -------------------------------------------------------------------------------- /main_multi_kor.py: -------------------------------------------------------------------------------- 1 | # Blue Archive Reset Marathon (Multi Barrack, Korean) 2 | # Github : Dark-Lemon7z 3 | # Arcalive : 몰루라이브 4 | # Tistory : lemon7z.tistory.com/ 5 | # Last Edited 2021-11-09 6 | 7 | #import 8 | from ppadb.client import Client as AdbClient 9 | from PIL import Image 10 | import pyautogui 11 | import time 12 | import win32gui 13 | import win32ui 14 | import win32con 15 | import random 16 | import sys 17 | import os 18 | 19 | deviceport = sys.argv[1] 20 | devnum = sys.argv[2] 21 | print("###############################") 22 | print("# Blue Archive Reset Marathon #") 23 | print("# 2021-11-10 # Korea Server #") 24 | print("# Arcalive : 몰루라이브 #") 25 | print("###############################") 26 | print("Device : " + devnum +'\n'+ "Port : " + deviceport) 27 | 28 | # adb settings 29 | client = AdbClient(host="127.0.0.1", port=5037) 30 | client.remote_connect("localhost", int(deviceport)) 31 | adbdevice = client.device("localhost:"+str(deviceport)) 32 | if adbdevice is not None: 33 | print("Adb detected") 34 | else: 35 | print("Adb not detected") 36 | exit(0) 37 | 38 | #defines 39 | def click(x, y, dx, dy): 40 | newy = y - 32 41 | xx = random.randint(x, x + dx) 42 | yy = random.randint(newy, newy + dy) 43 | cmd = "input touchscreen tap " + str(xx) + " " + str(yy) 44 | adbdevice.shell(cmd) 45 | def clickd(x1, y1, x2, y2): 46 | newy1 = y1 - 32 47 | newy2 = y2 - 32 48 | x = random.randint(x1, x2) 49 | y = random.randint(newy1, newy2) 50 | cmd = "input touchscreen tap " + str(x) + " " + str(y) 51 | adbdevice.shell(cmd) 52 | def background_screenshot(hwnd, width, height): 53 | wDC = win32gui.GetWindowDC(hwnd) 54 | dcObj=win32ui.CreateDCFromHandle(wDC) 55 | cDC=dcObj.CreateCompatibleDC() 56 | dataBitMap = win32ui.CreateBitmap() 57 | dataBitMap.CreateCompatibleBitmap(dcObj, width, height) 58 | cDC.SelectObject(dataBitMap) 59 | cDC.BitBlt((0,0),(width, height) , dcObj, (0,0), win32con.SRCCOPY) 60 | bmpinfo = dataBitMap.GetInfo() 61 | bmpstr = dataBitMap.GetBitmapBits(True) 62 | im = Image.frombuffer('RGB', (bmpinfo['bmWidth'], bmpinfo['bmHeight']), bmpstr, 'raw', 'BGRX', 0, 1) 63 | dcObj.DeleteDC() 64 | cDC.DeleteDC() 65 | win32gui.ReleaseDC(hwnd, wDC) 66 | win32gui.DeleteObject(dataBitMap.GetHandle()) 67 | return im 68 | def onlyclickhere(img): 69 | while 1: 70 | randsleep(0.15,0.3) 71 | scr_img = background_screenshot(bluestackhw, 960, 572) 72 | clickhere = pyautogui.locate(img, scr_img, confidence=0.8) 73 | if clickhere is not None: 74 | randsleep(0.1,0.3) 75 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 76 | randsleep(0.1,0.3) 77 | print("OK") 78 | break 79 | def randsleep(x,y): 80 | dx = x * 1000 81 | dy = y * 1000 82 | timed = random.randint(dx,dy) / 1000 83 | time.sleep(timed) 84 | def scriptskip(): 85 | # time.sleep(0.3) 86 | while 1: 87 | randsleep(0.05,0.15) 88 | scr_img = background_screenshot(bluestackhw, 960, 572) 89 | clickhere = pyautogui.locate(img_menu, scr_img, confidence=0.8) 90 | if clickhere is not None: 91 | break 92 | while 1: # skip button 93 | randsleep(0.1,0.15) 94 | scr_img = background_screenshot(bluestackhw, 960, 572) 95 | clickhere = pyautogui.locate(img_skip, scr_img, confidence=0.8) 96 | if clickhere is not None: 97 | randsleep(0.05,0.1) 98 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 99 | while 1: # OK 100 | randsleep(0.15,0.3) 101 | scr_img = background_screenshot(bluestackhw, 960, 572) 102 | clickhere = pyautogui.locate(img_ok, scr_img, confidence=0.8) 103 | if clickhere is not None: 104 | randsleep(0.2,0.4) 105 | clickd(500, 400, 630, 430) 106 | randsleep(0.1,0.3) 107 | clickd(500, 400, 630, 430) 108 | randsleep(0.1,0.3) 109 | break 110 | clickhere = pyautogui.locate(img_menu, scr_img, confidence=0.8) 111 | if clickhere is not None: 112 | scriptskip() 113 | break 114 | break 115 | elif clickhere is None: 116 | clickd(857,48,926,61) 117 | randsleep(0.1,0.2) 118 | def stagefine(): 119 | while 1: # stage fine 120 | randsleep(0.15,0.3) 121 | scr_img = background_screenshot(bluestackhw, 960, 572) 122 | clickhere = pyautogui.locate(img_stageok, scr_img, confidence=0.8) 123 | if clickhere is not None: 124 | randsleep(1,1.3) 125 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 126 | randsleep(0.1,0.3) 127 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 128 | randsleep(0.1,0.3) 129 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 130 | randsleep(0.1,0.3) 131 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 132 | randsleep(0.1,0.3) 133 | break 134 | def init(): 135 | x0, y0, x1, y1 = win32gui.GetWindowRect(bluestackhw) 136 | win32gui.MoveWindow(bluestackhw, x0, y0, 992, 572, True) 137 | print("reset") 138 | print("waiting...") 139 | 140 | #variables 141 | cycle = 1 142 | img_menumain = Image.open("menumain.bmp") 143 | # img_networkerr = Image.open("networkerr.bmp") 144 | img_menu = Image.open("menu.bmp") 145 | img_cancle = Image.open("cancle.bmp") 146 | img_guest = Image.open("guest.bmp") 147 | img_ok = Image.open("ok.bmp") 148 | img_senseiok = Image.open("senseiok.bmp") 149 | img_yeondong = Image.open("yeondong.bmp") 150 | img_stageok = Image.open("stageok.bmp") 151 | img_onamae = Image.open("onamae.bmp") 152 | img_systemsay = Image.open("systemsay.bmp") 153 | img_playstore = Image.open("playstore.bmp") 154 | img_skip = Image.open("skip.bmp") 155 | img_skillexp = Image.open("skillcard_exp.bmp") 156 | img_skillexp2 = Image.open("skillcard_exp2.bmp") 157 | img_skillexp3 = Image.open("skillcard_exp3.bmp") 158 | img_skill1 = Image.open("skill1.bmp") 159 | img_skill2 = Image.open("skill2.bmp") 160 | img_freegyacha = Image.open("freegyacha.bmp") 161 | img_ingyacha = Image.open("ingyacha.bmp") 162 | img_tutogyachaok = Image.open("tutogyachaok.bmp") 163 | img_gachafine = Image.open("gachafine.bmp") 164 | img_darkok = Image.open("darkok.bmp") 165 | img_darkmain = Image.open("darkmainchar.bmp") 166 | img_kanji = Image.open("kanji.bmp") 167 | img_darkent = Image.open("darkent.bmp") 168 | img_prepare = Image.open("prepare.bmp") 169 | img_darkgogo = Image.open("darkgogo.bmp") 170 | img_darkteam = Image.open("darkteam.bmp") 171 | img_start = Image.open("start.bmp") 172 | img_boss = Image.open("boss.bmp") 173 | img_auto = Image.open("auto.bmp") 174 | img_yellowok = Image.open("yellowok.bmp") 175 | img_robihe = Image.open("robihe.bmp") 176 | img_append = Image.open("append.bmp") 177 | img_momotalk = Image.open("momotalk.bmp") 178 | img_momotalkclose = Image.open("momotalkclose.bmp") 179 | img_allreciv = Image.open("allreciv.bmp") 180 | img_allrecivfine = Image.open("allrecivfine.bmp") 181 | img_account = Image.open("account.bmp") 182 | img_instudent = Image.open("instudent.bmp") 183 | img_accountsetting = Image.open("accountsetting.bmp") 184 | img_bluearchive = Image.open("bluearchive.bmp") 185 | img_2roundsay = Image.open("2roundsay.bmp") 186 | img_2roundsay2 = Image.open("2roundsay2.bmp") 187 | img_news = Image.open("news.bmp") 188 | img_missionok = Image.open("missionok.bmp") 189 | img_mainchar = Image.open("mainchar.bmp") 190 | img_everyday = Image.open("everyday.bmp") 191 | img_devicecode = Image.open("devicecode.bmp") 192 | img_codegen = Image.open("codegen.bmp") 193 | img_point = Image.open("point.bmp") 194 | img_pointfront = Image.open("pointfront.bmp") 195 | img_prepareCode = Image.open("prepareCode.bmp") 196 | # devnum = int(input()) 197 | bluestackhw = win32gui.FindWindow(None, "BlueStacks " + str(devnum)) 198 | 199 | def gacha(tm, rst): 200 | gachacycle = 2 201 | merged = Image.new('RGBA', (960 * gachacycle, 572)) 202 | merged.paste(rst, (0,0)) 203 | while 1: 204 | temp = Image.new('RGBA', (960 * gachacycle, 572)) 205 | temp.paste(merged, (0,0)) 206 | merged = temp 207 | print("Touch Everyday Gacha", end="....") 208 | while 1: 209 | randsleep(0.1, 0.3) 210 | scr_img = background_screenshot(bluestackhw, 960, 572) 211 | clickhere = pyautogui.locate(img_everyday, scr_img, confidence=0.8) 212 | clickd(620, 140, 710, 160) 213 | if clickhere is not None: 214 | randsleep(0.4, 0.5) 215 | # clickd(536,397,639,434) 216 | clickd(737, 400, 888, 444) 217 | print("OK") 218 | break 219 | print("Touch gacha ok", end="....") 220 | while 1: # touch gacha ok 221 | randsleep(0.15, 0.3) 222 | scr_img = background_screenshot(bluestackhw, 960, 572) 223 | clickhere = pyautogui.locate(img_tutogyachaok, scr_img, confidence=0.8) 224 | if clickhere is not None: 225 | time.sleep(0.1) 226 | scr_img = background_screenshot(bluestackhw, 960, 572) 227 | clickhere = pyautogui.locate(img_gachafine, scr_img, confidence=0.8) 228 | if clickhere is not None: 229 | clickd(319, 391, 440, 420) 230 | randsleep(0.1, 0.3) 231 | clickd(319, 391, 440, 420) 232 | cmd = 'Codes\\' + str(tm.tm_hour) + str(tm.tm_min) + str(tm.tm_sec) + '_' + str(devnum) + 'gacha.png' 233 | merged.save(cmd) 234 | return 235 | randsleep(0.5, 0.7) 236 | randsleep(1, 1.3) 237 | clickd(500, 380, 640, 420) 238 | randsleep(0.1, 0.3) 239 | clickd(500, 380, 640, 420) 240 | randsleep(0.1, 0.3) 241 | clickd(500, 380, 640, 420) 242 | randsleep(0.1, 0.3) 243 | clickd(500, 380, 640, 420) 244 | randsleep(0.1, 0.3) 245 | print("OK") 246 | break 247 | print("Sign", end="....") 248 | while 1: # sign 249 | randsleep(0.15, 0.3) 250 | clickd(324, 367, 647, 500) 251 | scr_img = background_screenshot(bluestackhw, 960, 572) 252 | clickhere = pyautogui.locate(img_ingyacha, scr_img, confidence=0.8) 253 | if clickhere is not None: 254 | randsleep(0.5, 0.7) 255 | clickd(324, 367, 647, 500) 256 | randsleep(0.1, 0.2) 257 | clickd(324, 367, 647, 500) 258 | randsleep(0.1, 0.2) 259 | print("OK") 260 | break 261 | while 1: 262 | randsleep(0.1, 0.3) 263 | clickd(849, 55, 920, 75) 264 | scr_img = background_screenshot(bluestackhw, 960, 572) 265 | clickhere = pyautogui.locate(img_point, scr_img, confidence=0.8) 266 | if clickhere is not None: 267 | time.sleep(0.7) 268 | print("Screen captured") 269 | scr_gacha_img = background_screenshot(bluestackhw, 960, 572) 270 | merged.paste(scr_gacha_img, (960*(gachacycle-1), 0)) 271 | break 272 | 273 | print("In gacha", end="....") 274 | while 1: 275 | randsleep(0.1, 0.3) 276 | clickd(849, 55, 920, 75) 277 | scr_img = background_screenshot(bluestackhw, 960, 572) 278 | clickhere = pyautogui.locate(img_ok, scr_img, confidence=0.8) 279 | if clickhere is not None: 280 | randsleep(0.1, 0.3) 281 | clickd(418, 483, 460, 523) 282 | randsleep(0.1, 0.3) 283 | clickd(418, 483, 460, 523) 284 | randsleep(0.1, 0.3) 285 | clickd(418, 483, 460, 523) 286 | randsleep(0.1, 0.3) 287 | clickd(418, 483, 460, 523) 288 | randsleep(0.1, 0.3) 289 | print("OK") 290 | break 291 | print("Fine gacha", end="....") 292 | while 1: 293 | randsleep(0.1, 0.3) 294 | clickd(418, 483, 460, 523) 295 | scr_img = background_screenshot(bluestackhw, 960, 572) 296 | clickhere = pyautogui.locate(img_everyday, scr_img, confidence=0.8) 297 | if clickhere is not None: 298 | print("OK") 299 | break 300 | gachacycle += 1 301 | 302 | #main activity 303 | def resetmara(): 304 | # init 305 | init() 306 | tm = time.localtime(time.time()) 307 | print("Account manage", end="....") 308 | while 1: # TOUCH TO START 309 | clickd(920, 53,921,66) 310 | randsleep(0.3,0.4) 311 | scr_img = background_screenshot(bluestackhw, 960, 572) 312 | clickhere = pyautogui.locate(img_account, scr_img, confidence=0.8) 313 | if clickhere is not None: 314 | randsleep(0.1, 0.3) 315 | clickd(495, 270, 634,301) 316 | randsleep(0.1, 0.3) 317 | print("OK") 318 | break 319 | 320 | while 1: 321 | randsleep(0.1,0.15) 322 | scr_img = background_screenshot(bluestackhw, 960, 572) 323 | clickhere = pyautogui.locate(img_accountsetting, scr_img, confidence=0.8) 324 | if clickhere is not None: 325 | randsleep(0.1, 0.3) 326 | clickd(641, 289, 644,311) 327 | randsleep(0.1, 0.3) 328 | clickd(641, 289, 644,311) 329 | randsleep(0.1, 0.3) 330 | clickd(641, 289, 644,311) 331 | randsleep(0.1, 0.3) 332 | print("OK") 333 | break 334 | while 1: 335 | randsleep(0.1,0.15) 336 | scr_img = background_screenshot(bluestackhw, 960, 572) 337 | clickhere = pyautogui.locate(img_bluearchive, scr_img, confidence=0.8) 338 | if clickhere is not None: 339 | randsleep(0.1, 0.3) 340 | clickd(427, 274, 521,286) 341 | randsleep(0.1, 0.3) 342 | adbdevice.shell("input text \"BlueArchive\"") 343 | randsleep(0.1, 0.3) 344 | clickd(500, 383, 515,413) 345 | randsleep(0.1, 0.3) 346 | clickd(500, 383, 515,413) 347 | print("OK") 348 | break 349 | while 1: 350 | randsleep(0.1,0.15) 351 | scr_img = background_screenshot(bluestackhw, 960, 572) 352 | clickhere = pyautogui.locate(img_ok, scr_img, confidence=0.8) 353 | if clickhere is not None: 354 | randsleep(0.3, 0.4) 355 | clickd(500, 383, 515,413) 356 | randsleep(0.1, 0.15) 357 | clickd(500, 383, 515,413) 358 | randsleep(0.1, 0.15) 359 | clickd(500, 383, 515,413) 360 | print("OK") 361 | break 362 | 363 | 364 | 365 | 366 | 367 | 368 | print("Touch start", end="....") 369 | while 1: # TOUCH TO START 370 | randsleep(0.15,0.3) 371 | scr_img = background_screenshot(bluestackhw, 960, 572) 372 | clickhere = pyautogui.locate(img_menumain, scr_img, confidence=0.8) 373 | if clickhere is not None: 374 | randsleep(0.5,0.7) 375 | clickd(100, 200,700,400) 376 | print("OK") 377 | break 378 | clickhere = pyautogui.locate(img_playstore, scr_img, confidence=0.7) 379 | if clickhere is not None: 380 | randsleep(0.15, 0.3) 381 | adbdevice.shell("am start -n com.nexon.bluearchive/com.nexon.bluearchive.MxUnityPlayerActivity") 382 | print("Force Quited Restart") 383 | continue 384 | print("Touch Hazimemashite ok", end="....") 385 | while 1: # touch hazimemashite's ok 386 | randsleep(0.15,0.3) 387 | scr_img = background_screenshot(bluestackhw, 960, 572) 388 | clickhere = pyautogui.locate(img_ok, scr_img, confidence=0.8) 389 | if clickhere is not None: 390 | randsleep(0.3,0.5) 391 | clickd(406, 388,530,430) 392 | randsleep(0.1,0.3) 393 | clickd(406, 388,530,430) 394 | randsleep(0.1,0.3) 395 | print("OK") 396 | break 397 | clickhere = pyautogui.locate(img_playstore, scr_img, confidence=0.9) 398 | if clickhere is not None: 399 | randsleep(0.15, 0.3) 400 | adbdevice.shell("am start -n com.nexon.bluearchive/com.nexon.bluearchive.MxUnityPlayerActivity") 401 | print("Force Quited Restart") 402 | while 1: # TOUCH TO START 403 | randsleep(0.15, 0.3) 404 | scr_img = background_screenshot(bluestackhw, 960, 572) 405 | clickhere = pyautogui.locate(img_menumain, scr_img, confidence=0.8) 406 | if clickhere is not None: 407 | randsleep(0.5, 0.7) 408 | clickd(100, 200, 700, 400) 409 | print("MOK") 410 | break 411 | print("Write name", end="....") 412 | 413 | while 1: # write name 414 | randsleep(0.15,0.3) 415 | scr_img = background_screenshot(bluestackhw, 960, 572) 416 | clickhere = pyautogui.locate(img_onamae, scr_img, confidence=0.8) 417 | if clickhere is not None: 418 | clickd(405, 297, 524, 320) 419 | randsleep(0.1,0.3) 420 | adbdevice.shell("input text \"a\"") 421 | randsleep(0.1,0.3) 422 | clickd(800, 480,801,481) # typing end 423 | randsleep(0.3,0.6) 424 | clickd(400, 380,533,419) # OK 425 | randsleep(0.1,0.3) 426 | clickd(400, 380,533,419) # OK 427 | randsleep(0.1,0.3) 428 | print("OK") 429 | break 430 | print("Passing sensei name confirm", end="....") 431 | while 1: # touch sensei voice ok 432 | randsleep(0.4,0.45) 433 | clickd(418, 395,540,430) 434 | scr_img = background_screenshot(bluestackhw, 960, 572) 435 | clickhere = pyautogui.locate(img_senseiok, scr_img, confidence=0.8) 436 | if clickhere is not None: 437 | clickd(418, 395,540,430) 438 | randsleep(0.1,0.3) 439 | clickd(418, 395,540,430) 440 | randsleep(0.1,0.3) 441 | clickd(418, 395,540,430) 442 | randsleep(0.1,0.3) 443 | print("OK") 444 | break 445 | 446 | print("Read 1st chat", end="....") 447 | while 1: # touch systemsay (1st chat) 448 | randsleep(0.15,0.3) 449 | scr_img = background_screenshot(bluestackhw, 960, 572) 450 | clickhere = pyautogui.locate(img_systemsay, scr_img, confidence=0.7) 451 | if clickhere is not None: 452 | for i in range(0, 10): 453 | clickd(855, 500,900,546) 454 | randsleep(0.1,0.3) 455 | print("OK") 456 | break 457 | 458 | print("Skip script", end="....") 459 | scriptskip() # skip script 460 | 461 | print("-Started 1st stage-") 462 | 463 | print("Skip TMT", end="....") 464 | while 1: # touch skill exp (1st chat) 465 | randsleep(0.15,0.2) 466 | scr_img = background_screenshot(bluestackhw, 960, 572) 467 | clickhere = pyautogui.locate(img_skillexp, scr_img, confidence=0.9) 468 | if clickhere is not None: 469 | for i in range(0, 9): 470 | clickd(400, 200,700,400) 471 | randsleep(0.1,0.18) 472 | print("OK") 473 | break 474 | print("Skip TMT2", end="....") 475 | while 1: # touch skill exp (2nd chat) 476 | randsleep(0.15,0.3) 477 | scr_img = background_screenshot(bluestackhw, 960, 572) 478 | clickhere = pyautogui.locate(img_skillexp, scr_img, confidence=0.9) 479 | if clickhere is not None: 480 | for i in range(0, 4): 481 | clickd(400, 200,700,400) 482 | randsleep(0.1,0.18) 483 | break 484 | print("OK") 485 | print("Touch skill", end="....") 486 | while 1: # touch skill2 487 | randsleep(0.15,0.3) 488 | scr_img = background_screenshot(bluestackhw, 960, 572) 489 | clickhere = pyautogui.locate(img_skill2, scr_img, confidence=0.8) 490 | if clickhere is not None: 491 | randsleep(0.1,0.3) 492 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 493 | randsleep(0.1,0.3) 494 | for i in range(0,random.randint(2,3)): 495 | clickd(700, 140,900,300) 496 | randsleep(0.1,0.3) 497 | break 498 | print("OK") 499 | print("Skip TMT3", end="....") 500 | while 1: # touch skill exp (3rd chat) 501 | randsleep(0.15,0.3) 502 | scr_img = background_screenshot(bluestackhw, 960, 572) 503 | clickhere = pyautogui.locate(img_skillexp, scr_img, confidence=0.9) 504 | if clickhere is not None: 505 | for i in range(0, 2): 506 | clickd(400, 200,700,400) 507 | randsleep(0.1,0.18) 508 | break 509 | print("OK") 510 | print("Touch skill", end="....") 511 | while 1: # touch skill1 512 | randsleep(0.15,0.3) 513 | scr_img = background_screenshot(bluestackhw, 960, 572) 514 | clickhere = pyautogui.locate(img_skill1, scr_img, confidence=0.8) 515 | if clickhere is not None: 516 | randsleep(0.1,0.3) 517 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 518 | randsleep(0.1,0.3) 519 | for i in range(0,random.randint(2,3)): 520 | clickd(700, 140,900,300) 521 | randsleep(0.1,0.3) 522 | clickd(700, 140,900,300) 523 | randsleep(0.1,0.3) 524 | break 525 | print("OK") 526 | stagefine() 527 | print("-Stage Finished-") 528 | 529 | # 1st stage clear# 530 | print("Skip script", end="....") 531 | scriptskip() 532 | print("Skip script", end="....") 533 | scriptskip() 534 | print("OK") 535 | print("-2nd stage start-") 536 | # 2nd stage start# 537 | print("Skip TMT", end="....") 538 | while 1: # touch tmt exp (1st chat) 539 | randsleep(0.15,0.3) 540 | scr_img = background_screenshot(bluestackhw, 960, 572) 541 | clickhere = pyautogui.locate(img_skillexp, scr_img, confidence=0.9) 542 | if clickhere is not None: 543 | for i in range(0, 6): 544 | clickd(400, 200,700,400) 545 | randsleep(0.1,0.18) 546 | break 547 | print("OK") 548 | print("Skip Hasumi chat", end="....") 549 | scriptskip() 550 | print("OK") 551 | print("Touch skill", end="....") 552 | while 1: # touch skill2 553 | randsleep(0.15,0.3) 554 | scr_img = background_screenshot(bluestackhw, 960, 572) 555 | clickhere = pyautogui.locate(img_skill2, scr_img, confidence=0.8) 556 | if clickhere is not None: 557 | randsleep(0.2,0.35) 558 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 559 | randsleep(0.1,0.3) 560 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 561 | randsleep(0.3,0.5) 562 | for i in range(0,random.randint(2,3)): 563 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 564 | randsleep(0.3,0.5) 565 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 566 | randsleep(0.3,0.5) 567 | break 568 | print("OK") 569 | print("Skip wokamo chat", end="....") 570 | # wokamo chat 571 | scriptskip() 572 | print("Touch skill", end="....") 573 | while 1: # touch skill1 574 | randsleep(0.15,0.3) 575 | scr_img = background_screenshot(bluestackhw, 960, 572) 576 | clickhere = pyautogui.locate(img_skill1, scr_img, confidence=0.8) 577 | if clickhere is not None: 578 | randsleep(0.2,0.35) 579 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 580 | randsleep(0.1,0.3) 581 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 582 | randsleep(0.3,0.5) 583 | for i in range(0,random.randint(2,3)): 584 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 585 | randsleep(0.3,0.5) 586 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 587 | randsleep(0.3,0.5) 588 | break 589 | print("OK") 590 | print("Skip script", end="....") 591 | scriptskip() 592 | randsleep(0.3,0.5) 593 | print("Skip script", end="....") 594 | scriptskip() 595 | print("Skip TMT", end="....") 596 | while 1: # touch tmt exp (2nd chat) 597 | randsleep(0.15,0.3) 598 | scr_img = background_screenshot(bluestackhw, 960, 572) 599 | clickhere = pyautogui.locate(img_skillexp, scr_img, confidence=0.9) 600 | if clickhere is not None: 601 | for i in range(0, 4): 602 | clickd(400, 200,700,400) 603 | randsleep(0.1,0.18) 604 | clickd(639,472, 672,516) 605 | randsleep(0.2,0.3) 606 | clickd(600,80, 900,300) 607 | randsleep(0.2,0.3) 608 | clickd(600,80, 900,300) 609 | randsleep(0.2,0.3) 610 | break 611 | print("OK") 612 | print("Touch skill", end="....") 613 | while 1: # touch skill2 614 | randsleep(0.15,0.3) 615 | scr_img = background_screenshot(bluestackhw, 960, 572) 616 | clickhere = pyautogui.locate(img_skill2, scr_img, confidence=0.8) 617 | if clickhere is None: 618 | clickhere = pyautogui.locate(img_skill1, scr_img, confidence=0.8) 619 | if clickhere is not None: 620 | randsleep(0.1,0.3) 621 | clickd(465, 98, 804, 335) 622 | randsleep(0.1,0.3) 623 | clickd(465, 98, 804, 335) 624 | randsleep(0.3,0.5) 625 | for i in range(0,random.randint(2,4)): 626 | clickd(465, 98, 804, 335) 627 | randsleep(0.3,0.5) 628 | break 629 | print("OK") 630 | # insert one more pic 631 | stagefine() 632 | print("-Stage finished-") 633 | # 2nd stage clear# 634 | 635 | scriptskip() 636 | randsleep(1,1.3) 637 | scriptskip() 638 | randsleep(1,1.3) 639 | randsleep(1,1.3) 640 | print("Skip anime", end="....") 641 | while 1: # Skip anime 642 | randsleep(0.1, 0.2) 643 | scr_img = background_screenshot(bluestackhw, 960, 572) 644 | clickhere = pyautogui.locate(img_darkmain, scr_img, confidence=0.8) 645 | clickd(517, 390,632,420) 646 | if clickhere is not None: 647 | clickd(517, 390,632,420) 648 | print("OK") 649 | break 650 | # tuto fine 651 | 652 | # lobby 653 | print("Touch gacha", end="....") 654 | while 1: # touch gyacha 655 | randsleep(0.1,0.3) 656 | scr_img = background_screenshot(bluestackhw, 960, 572) 657 | clickhere = pyautogui.locate(img_freegyacha, scr_img, confidence=0.8) 658 | clickd(670,490, 700,520) 659 | if clickhere is not None: 660 | randsleep(0.5,0.7) 661 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 662 | randsleep(0.1,0.3) 663 | break 664 | print("OK") 665 | print("Touch gacha ok", end="....") 666 | while 1: # touch gacha ok 667 | randsleep(0.15,0.3) 668 | scr_img = background_screenshot(bluestackhw, 960, 572) 669 | clickhere = pyautogui.locate(img_tutogyachaok, scr_img, confidence=0.8) 670 | if clickhere is not None: 671 | randsleep(1,1.3) 672 | clickd(500, 380,640,420) 673 | randsleep(0.1,0.2) 674 | clickd(500, 380,640,420) 675 | randsleep(0.1,0.2) 676 | for i in range(0,random.randint(2,3)): 677 | clickd(500, 380,640,420) 678 | randsleep(0.1,0.2) 679 | print("OK") 680 | break 681 | print("Sign", end="....") 682 | while 1: # sign 683 | randsleep(0.15,0.3) 684 | clickd(500, 380,640,420) 685 | scr_img = background_screenshot(bluestackhw, 960, 572) 686 | clickhere = pyautogui.locate(img_ingyacha, scr_img, confidence=0.8) 687 | if clickhere is not None: 688 | randsleep(0.5,0.7) 689 | for i in range(0,random.randint(2,3)): 690 | clickd(324, 367,647,500) 691 | randsleep(0.1,0.3) 692 | print("OK") 693 | break 694 | print("Capture gacha", end="....") 695 | while 1: 696 | randsleep(0.1,0.2) 697 | scr_img = background_screenshot(bluestackhw, 960, 572) 698 | clickhere = pyautogui.locate(img_point, scr_img, confidence=0.8) 699 | clickd(849,55, 920,75) 700 | if clickhere is not None: 701 | time.sleep(0.7) 702 | gacha_result = background_screenshot(bluestackhw, 960, 572) 703 | print("OK") 704 | break 705 | print("In gacha", end="....") 706 | while 1: 707 | randsleep(0.1,0.3) 708 | scr_img = background_screenshot(bluestackhw, 960, 572) 709 | clickhere = pyautogui.locate(img_darkok, scr_img, confidence=0.8) #retake 710 | clickd(849,55, 920,75) 711 | if clickhere is not None: 712 | randsleep(0.1,0.3) 713 | clickd(420,482, 541,523) 714 | randsleep(0.1,0.3) 715 | for i in range(0,random.randint(3,5)): 716 | clickd(420,482, 541,523) 717 | randsleep(0.1,0.3) 718 | break 719 | print("OK") 720 | randsleep(2,2.3) 721 | print("Touch entrance", end="....") 722 | while 1: # touch entrance 723 | randsleep(0.1, 0.3) 724 | scr_img = background_screenshot(bluestackhw, 960, 572) 725 | clickhere = pyautogui.locate(img_darkent, scr_img, confidence=0.85) 726 | if clickhere is not None: 727 | randsleep(1.5, 1.7) 728 | clickd(800, 196, 860, 228) 729 | randsleep(0.1, 0.3) 730 | for i in range(0,random.randint(2,3)): 731 | clickd(800, 196, 860, 228) 732 | randsleep(0.1, 0.3) 733 | break 734 | print("OK") 735 | print("Touch prepare", end="....") 736 | while 1: # touch prepare 737 | randsleep(0.15, 0.3) 738 | scr_img = background_screenshot(bluestackhw, 960, 572) 739 | clickhere = pyautogui.locate(img_prepare, scr_img, confidence=0.8) 740 | if clickhere is not None: 741 | randsleep(0.3, 0.6) 742 | clickd(617, 414, 747, 454) 743 | randsleep(0.1, 0.3) 744 | for i in range(0,random.randint(2,3)): 745 | clickd(617, 414, 747, 454) 746 | randsleep(0.1, 0.3) 747 | break 748 | clickd(800, 196, 860, 228) 749 | print("OK") 750 | print("Touch start", end="....") 751 | while 1: # touch start 752 | randsleep(0.15, 0.3) 753 | scr_img = background_screenshot(bluestackhw, 960, 572) 754 | clickhere = pyautogui.locate(img_darkgogo, scr_img, confidence=0.8) 755 | if clickhere is not None: 756 | randsleep(0.2, 0.35) 757 | clickd(361, 367, 408, 400) 758 | randsleep(0.1, 0.3) 759 | for i in range(0,random.randint(3,4)): 760 | clickd(361, 367, 408, 400) 761 | randsleep(0.1, 0.3) 762 | print("OK") 763 | break 764 | print("Touch team", end="....") 765 | print("OK") 766 | print("Close team window", end="....") 767 | while 1: # wait to kanji window 768 | randsleep(0.1, 0.3) 769 | scr_img = background_screenshot(bluestackhw, 960, 572) 770 | clickhere = pyautogui.locate(img_kanji, scr_img, confidence=0.8) 771 | clickd(880, 167, 907, 168) 772 | if clickhere is not None: 773 | break 774 | while 1: 775 | randsleep(0.1, 0.3) 776 | scr_img = background_screenshot(bluestackhw, 960, 572) 777 | clickhere = pyautogui.locate(img_darkteam, scr_img, confidence=0.8) 778 | clickd(300, 40, 700, 80) 779 | if clickhere is not None: 780 | randsleep(0.1, 0.3) 781 | clickd(800, 500, 900, 553) 782 | randsleep(0.1, 0.3) 783 | for i in range(0,random.randint(2,3)): 784 | clickd(800, 500, 900, 553) 785 | randsleep(0.1, 0.3) 786 | break 787 | print("OK") 788 | print("Touch boss", end="....") 789 | while 1: # touch start 790 | randsleep(0.15, 0.3) 791 | scr_img = background_screenshot(bluestackhw, 960, 572) 792 | clickhere = pyautogui.locate(img_boss, scr_img, confidence=0.8) 793 | if clickhere is not None: 794 | randsleep(1, 1.3) 795 | for i in range(0,random.randint(2,3)): 796 | clickd(818, 509, 913, 540) 797 | randsleep(0.1, 0.3) 798 | break 799 | print("OK") 800 | print("Touch start", end="....") 801 | while 1: # touch start 802 | randsleep(0.15, 0.3) 803 | scr_img = background_screenshot(bluestackhw, 960, 572) 804 | clickhere = pyautogui.locate(img_start, scr_img, confidence=0.7) 805 | if clickhere is not None: 806 | randsleep(0.1, 0.3) 807 | clickd(490, 358, 510, 376) 808 | randsleep(0.1, 0.3) 809 | clickd(490, 358, 510, 376) 810 | for i in range(0,random.randint(3,4)): 811 | randsleep(0.1, 0.3) 812 | clickd(490, 358, 510, 376) 813 | break 814 | print("OK") 815 | print("-Battle phase 1 started-") 816 | # battle phase 1 817 | print("Touch auto", end="....") 818 | while 1: # touch auto 819 | randsleep(0.15, 0.3) 820 | scr_img = background_screenshot(bluestackhw, 960, 572) 821 | clickhere = pyautogui.locate(img_auto, scr_img, confidence=0.8) 822 | if clickhere is not None: 823 | randsleep(2, 2.3) 824 | clickd(872, 527, 924, 544) 825 | randsleep(0.1, 0.3) 826 | break 827 | print("OK") 828 | stagefine() 829 | print("-Stage finished-") 830 | # battle phase 1 ended 831 | print("Touch ok", end="....") 832 | while 1: # touch yellow ok 833 | randsleep(0.15, 0.3) 834 | scr_img = background_screenshot(bluestackhw, 960, 572) 835 | clickhere = pyautogui.locate(img_yellowok, scr_img, confidence=0.8) 836 | if clickhere is not None: 837 | randsleep(0.1, 0.3) 838 | clickd(425, 509, 536, 538) 839 | randsleep(0.1, 0.3) 840 | break 841 | print("OK") 842 | print("Touch phase end", end="....") 843 | while 1: # touch phase end 844 | randsleep(0.15, 0.3) 845 | scr_img = background_screenshot(bluestackhw, 960, 572) 846 | clickhere = pyautogui.locate(img_2roundsay, scr_img, confidence=0.8) 847 | if clickhere is not None: 848 | randsleep(0.1, 0.3) 849 | for i in range(0,random.randint(3,4)): 850 | clickd(830, 514, 917, 544) 851 | randsleep(0.1, 0.3) 852 | break 853 | print("OK") 854 | print("Touch Boss", end="....") 855 | while 1: # touch Boss 856 | randsleep(0.15, 0.3) 857 | scr_img = background_screenshot(bluestackhw, 960, 572) 858 | clickhere = pyautogui.locate(img_2roundsay2, scr_img, confidence=0.8) 859 | if clickhere is not None: 860 | randsleep(0.1, 0.3) 861 | for i in range(0,random.randint(3,4)): 862 | clickd(562, 319, 582, 330) 863 | randsleep(0.1, 0.3) 864 | break 865 | print("OK") 866 | print("-Battle phase 2-") 867 | # battle phase 2 868 | stagefine() 869 | # # battel phase 2 ended 870 | # print("Touch yellow ok", end="....") 871 | # while 1: # touch yellow ok 872 | # randsleep(0.15, 0.3) 873 | # scr_img = background_screenshot(bluestackhw, 960, 572) 874 | # clickhere = pyautogui.locate(img_missionok, scr_img, confidence=0.8) 875 | # if clickhere is not None: 876 | # randsleep(0.7, 1) 877 | # randsleep(0.7, 1) 878 | # for i in range(0,random.randint(3,4)): 879 | # click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 880 | # randsleep(0.1, 0.3) 881 | # break 882 | # print("OK") 883 | print("Touch robihe", end="....") 884 | while 1: # touch robi he 885 | randsleep(0.1, 0.3) 886 | scr_img = background_screenshot(bluestackhw, 960, 572) 887 | clickhere = pyautogui.locate(img_robihe, scr_img, confidence=0.8) 888 | clickd(687, 446, 869, 517) 889 | if clickhere is not None: 890 | randsleep(0.5, 0.7) 891 | for i in range(0,random.randint(5,7)): 892 | clickd(342, 510, 442, 539) 893 | randsleep(0.1, 0.3) 894 | break 895 | print("OK") 896 | print("Wait append table", end="....") 897 | # append table 898 | while 1: 899 | randsleep(0.15, 0.3) 900 | scr_img = background_screenshot(bluestackhw, 960, 572) 901 | clickhere = pyautogui.locate(img_append, scr_img, confidence=0.8) 902 | if clickhere is not None: 903 | break 904 | print("OK") 905 | # print("Close notice", end="....") 906 | # while 1: 907 | # randsleep(0.1, 0.3) 908 | # scr_img = background_screenshot(bluestackhw, 960, 572) 909 | # clickhere = pyautogui.locate(img_news, scr_img, confidence=0.8) 910 | # clickd(840, 100, 856, 116) 911 | # if clickhere is not None: 912 | # randsleep(0.3, 0.5) 913 | # clickd(840, 100, 856, 116) 914 | # break 915 | # print("OK") 916 | print("Touch momotalk", end="....") 917 | randsleep(0.5, 0.7) 918 | while 1: # touch momotalk 919 | randsleep(0.1, 0.3) 920 | scr_img = background_screenshot(bluestackhw, 960, 572) 921 | clickhere = pyautogui.locate(img_momotalk, scr_img, confidence=0.8) 922 | clickd(119, 114, 134, 154) 923 | if clickhere is not None: 924 | randsleep(0.1, 0.3) 925 | clickd(119, 114, 134, 154) 926 | randsleep(0.1, 0.3) 927 | clickd(119, 114, 134, 154) 928 | randsleep(0.1, 0.3) 929 | break 930 | print("OK") 931 | print("Touch momotalk close", end="....") 932 | while 1: # touch momotalk close 933 | randsleep(0.1, 0.3) 934 | scr_img = background_screenshot(bluestackhw, 960, 572) 935 | clickhere = pyautogui.locate(img_momotalkclose, scr_img, confidence=0.8) 936 | clickd(110, 223, 141, 246) 937 | if clickhere is not None: 938 | randsleep(0.1, 0.3) 939 | clickd(110, 223, 141, 246) 940 | randsleep(0.1, 0.3) 941 | clickd(110, 223, 141, 246) 942 | randsleep(0.1, 0.3) 943 | clickd(824, 110, 842, 129) 944 | randsleep(0.1, 0.3) 945 | break 946 | print("OK") 947 | print("Touch mailbox", end="....") 948 | while 1: # touch mailbox 949 | randsleep(0.15, 0.3) 950 | scr_img = background_screenshot(bluestackhw, 960, 572) 951 | clickhere = pyautogui.locate(img_mainchar, scr_img, confidence=0.8) 952 | if clickhere is not None: 953 | randsleep(0.1, 0.3) 954 | clickd(836, 54, 866, 69) 955 | randsleep(0.1, 0.3) 956 | print("OK") 957 | break # touch mail box 958 | print("OK") 959 | print("Touch allreciv", end="....") 960 | while 1: # touch guest 961 | randsleep(0.15, 0.3) 962 | scr_img = background_screenshot(bluestackhw, 960, 572) 963 | clickhere = pyautogui.locate(img_allreciv, scr_img, confidence=0.8) 964 | if clickhere is not None: 965 | randsleep(0.5, 0.7) 966 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 967 | randsleep(0.1, 0.3) 968 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 969 | randsleep(0.1, 0.3) 970 | print("OK") 971 | break 972 | print("OK") 973 | print("Go home", end="....") 974 | while 1: # touch go home 975 | randsleep(0.15, 0.3) 976 | scr_img = background_screenshot(bluestackhw, 960, 572) 977 | clickhere = pyautogui.locate(img_allrecivfine, scr_img, confidence=0.8) 978 | clickd(621, 115, 827, 444) 979 | if clickhere is not None: 980 | randsleep(0.4, 0.65) 981 | clickd(902, 39, 930, 60) 982 | randsleep(0.1, 0.2) 983 | clickd(902, 39, 930, 60) 984 | randsleep(0.1, 0.2) 985 | clickd(902, 39, 930, 60) 986 | randsleep(0.1, 0.2) 987 | break 988 | print("OK") 989 | print("Touch Student", end="....") 990 | while 1: 991 | randsleep(0.1, 0.3) 992 | scr_img = background_screenshot(bluestackhw, 960, 572) 993 | clickhere = pyautogui.locate(img_instudent, scr_img, confidence=0.8) 994 | clickd(241, 501, 269, 534) 995 | if clickhere is not None: 996 | randsleep(0.1, 0.2) 997 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 998 | randsleep(0.1, 0.2) 999 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 1000 | randsleep(0.1, 0.2) 1001 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 1002 | randsleep(0.1, 0.2) 1003 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 1004 | break 1005 | 1006 | print("Touch Home", end="....") 1007 | while 1: 1008 | randsleep(0.07, 0.15) 1009 | scr_img = background_screenshot(bluestackhw, 960, 572) 1010 | clickhere = pyautogui.locate(img_darkmain, scr_img, confidence=0.8) 1011 | clickd(902, 39, 930, 60) 1012 | if clickhere is not None: 1013 | break 1014 | 1015 | print("Touch account", end="....") 1016 | while 1: 1017 | randsleep(0.1, 0.3) 1018 | scr_img = background_screenshot(bluestackhw, 960, 572) 1019 | clickhere = pyautogui.locate(img_account, scr_img, confidence=0.8) 1020 | clickd(890, 50, 920, 70) 1021 | if clickhere is not None: 1022 | randsleep(0.1, 0.3) 1023 | clickd(495, 270, 634,301) 1024 | randsleep(0.1, 0.3) 1025 | break 1026 | print("OK") 1027 | # print("Touch mission", end="....") 1028 | # while 1: # touch mission 1029 | # randsleep(0.1, 0.2) 1030 | # scr_img = background_screenshot(bluestackhw, 960, 572) 1031 | # clickhere = pyautogui.locate(img_mainchar, scr_img, confidence=0.8) 1032 | # clickd(35, 192, 56, 225) 1033 | # if clickhere is not None: 1034 | # randsleep(0.1, 0.2) 1035 | # clickd(35, 192, 56, 225) 1036 | # randsleep(0.1, 0.3) 1037 | # print("OK") 1038 | # break 1039 | # print("OK") 1040 | # print("Touch allreciv", end="....") 1041 | # while 1: # touch allreciv 1042 | # randsleep(0.15, 0.3) 1043 | # scr_img = background_screenshot(bluestackhw, 960, 572) 1044 | # clickhere = pyautogui.locate(img_allreciv, scr_img, confidence=0.8) 1045 | # if clickhere is not None: 1046 | # randsleep(0.5, 0.7) 1047 | # click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 1048 | # randsleep(0.1, 0.3) 1049 | # click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 1050 | # randsleep(0.1, 0.3) 1051 | # print("OK") 1052 | # break 1053 | print("Touch gacha", end="....") 1054 | while 1: # touch gacha 1055 | randsleep(0.15, 0.3) 1056 | clickd(902, 39, 930, 60) 1057 | scr_img = background_screenshot(bluestackhw, 960, 572) 1058 | clickhere = pyautogui.locate(img_mainchar, scr_img, confidence=0.8) 1059 | if clickhere is not None: 1060 | clickd(902, 39, 930, 60) 1061 | randsleep(0.3, 0.6) 1062 | clickd(688, 500, 710, 532) 1063 | randsleep(0.1, 0.3) 1064 | clickd(688, 500, 710, 532) 1065 | randsleep(0.1, 0.3) 1066 | break 1067 | while 1: # touch gacha 1068 | randsleep(0.15, 0.2) 1069 | clickd(688, 500, 710, 532) 1070 | scr_img = background_screenshot(bluestackhw, 960, 572) 1071 | clickhere = pyautogui.locate(img_pointfront, scr_img, confidence=0.8) 1072 | if clickhere is not None: 1073 | break 1074 | gacha(tm, gacha_result) 1075 | print("Touch Home", end="....") 1076 | while 1: 1077 | randsleep(0.07, 0.15) 1078 | scr_img = background_screenshot(bluestackhw, 960, 572) 1079 | clickhere = pyautogui.locate(img_mainchar, scr_img, confidence=0.8) 1080 | clickd(902, 39, 930, 60) 1081 | if clickhere is not None: 1082 | print("-ended-") 1083 | break 1084 | 1085 | if __name__ == "__main__": 1086 | while 1: 1087 | print("###############################") 1088 | print("# 대상 디바이스 번호 : " + sys.argv[2]) 1089 | print("# 리세 횟수 : " + str(cycle)) 1090 | print("###############################") 1091 | cycle = cycle + 1 1092 | resetmara() 1093 | while 1: 1094 | print("계속하시겠습니까? (y / n) : ") 1095 | a = input() 1096 | if a == 'y': 1097 | break 1098 | else: 1099 | continue -------------------------------------------------------------------------------- /main_multi_kor_from1st.py: -------------------------------------------------------------------------------- 1 | # Blue Archive Reset Marathon (Multi Barrack, Korean) 2 | # Github : Dark-Lemon7z 3 | # Arcalive : 몰루라이브 4 | # Tistory : lemon7z.tistory.com/ 5 | # Last Edited 2021-11-09 6 | 7 | #import 8 | from ppadb.client import Client as AdbClient 9 | from PIL import Image 10 | import pyautogui 11 | import time 12 | import win32gui 13 | import win32ui 14 | import win32con 15 | import random 16 | import sys 17 | import os 18 | 19 | deviceport = sys.argv[1] 20 | devnum = sys.argv[2] 21 | print("###############################") 22 | print("# Blue Archive Reset Marathon #") 23 | print("# 2021-11-09 # Korea Server #") 24 | print("# Arcalive : 몰루라이브 #") 25 | print("###############################") 26 | print("Device : " + devnum +'\n'+ "Port : " + deviceport) 27 | 28 | # adb settings 29 | client = AdbClient(host="127.0.0.1", port=5037) 30 | client.remote_connect("localhost", int(deviceport)) 31 | adbdevice = client.device("localhost:"+str(deviceport)) 32 | if adbdevice is not None: 33 | print("Adb detected") 34 | else: 35 | print("Adb not detected") 36 | exit(0) 37 | 38 | #defines 39 | def click(x, y, dx, dy): 40 | newy = y - 32 41 | xx = random.randint(x, x + dx) 42 | yy = random.randint(newy, newy + dy) 43 | cmd = "input touchscreen tap " + str(xx) + " " + str(yy) 44 | adbdevice.shell(cmd) 45 | def clickd(x1, y1, x2, y2): 46 | newy1 = y1 - 32 47 | newy2 = y2 - 32 48 | x = random.randint(x1, x2) 49 | y = random.randint(newy1, newy2) 50 | cmd = "input touchscreen tap " + str(x) + " " + str(y) 51 | adbdevice.shell(cmd) 52 | def background_screenshot(hwnd, width, height): 53 | wDC = win32gui.GetWindowDC(hwnd) 54 | dcObj=win32ui.CreateDCFromHandle(wDC) 55 | cDC=dcObj.CreateCompatibleDC() 56 | dataBitMap = win32ui.CreateBitmap() 57 | dataBitMap.CreateCompatibleBitmap(dcObj, width, height) 58 | cDC.SelectObject(dataBitMap) 59 | cDC.BitBlt((0,0),(width, height) , dcObj, (0,0), win32con.SRCCOPY) 60 | bmpinfo = dataBitMap.GetInfo() 61 | bmpstr = dataBitMap.GetBitmapBits(True) 62 | im = Image.frombuffer('RGB', (bmpinfo['bmWidth'], bmpinfo['bmHeight']), bmpstr, 'raw', 'BGRX', 0, 1) 63 | dcObj.DeleteDC() 64 | cDC.DeleteDC() 65 | win32gui.ReleaseDC(hwnd, wDC) 66 | win32gui.DeleteObject(dataBitMap.GetHandle()) 67 | return im 68 | def onlyclickhere(img): 69 | while 1: 70 | randsleep(0.15,0.3) 71 | scr_img = background_screenshot(bluestackhw, 960, 572) 72 | clickhere = pyautogui.locate(img, scr_img, confidence=0.8) 73 | if clickhere is not None: 74 | randsleep(0.1,0.3) 75 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 76 | randsleep(0.1,0.3) 77 | print("OK") 78 | break 79 | def randsleep(x,y): 80 | dx = x * 1000 81 | dy = y * 1000 82 | timed = random.randint(dx,dy) / 1000 83 | time.sleep(timed) 84 | def scriptskip(): 85 | # time.sleep(0.3) 86 | while 1: 87 | randsleep(0.05,0.15) 88 | scr_img = background_screenshot(bluestackhw, 960, 572) 89 | clickhere = pyautogui.locate(img_menu, scr_img, confidence=0.8) 90 | if clickhere is not None: 91 | break 92 | while 1: # skip button 93 | randsleep(0.1,0.15) 94 | scr_img = background_screenshot(bluestackhw, 960, 572) 95 | clickhere = pyautogui.locate(img_skip, scr_img, confidence=0.8) 96 | if clickhere is not None: 97 | randsleep(0.05,0.1) 98 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 99 | while 1: # OK 100 | randsleep(0.15,0.3) 101 | scr_img = background_screenshot(bluestackhw, 960, 572) 102 | clickhere = pyautogui.locate(img_ok, scr_img, confidence=0.8) 103 | if clickhere is not None: 104 | randsleep(0.2,0.4) 105 | clickd(500, 400, 630, 430) 106 | randsleep(0.1,0.3) 107 | clickd(500, 400, 630, 430) 108 | randsleep(0.1,0.3) 109 | break 110 | clickhere = pyautogui.locate(img_menu, scr_img, confidence=0.8) 111 | if clickhere is not None: 112 | scriptskip() 113 | break 114 | break 115 | elif clickhere is None: 116 | clickd(857,48,926,61) 117 | randsleep(0.1,0.2) 118 | def stagefine(): 119 | while 1: # stage fine 120 | randsleep(0.15,0.3) 121 | scr_img = background_screenshot(bluestackhw, 960, 572) 122 | clickhere = pyautogui.locate(img_stageok, scr_img, confidence=0.8) 123 | if clickhere is not None: 124 | randsleep(1,1.3) 125 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 126 | randsleep(0.1,0.3) 127 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 128 | randsleep(0.1,0.3) 129 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 130 | randsleep(0.1,0.3) 131 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 132 | randsleep(0.1,0.3) 133 | break 134 | def init(): 135 | x0, y0, x1, y1 = win32gui.GetWindowRect(bluestackhw) 136 | win32gui.MoveWindow(bluestackhw, x0, y0, 992, 572, True) 137 | print("reset") 138 | print("waiting...") 139 | 140 | #variables 141 | cycle = 1 142 | img_menumain = Image.open("menumain.bmp") 143 | # img_networkerr = Image.open("networkerr.bmp") 144 | img_menu = Image.open("menu.bmp") 145 | img_cancle = Image.open("cancle.bmp") 146 | img_guest = Image.open("guest.bmp") 147 | img_ok = Image.open("ok.bmp") 148 | img_senseiok = Image.open("senseiok.bmp") 149 | img_yeondong = Image.open("yeondong.bmp") 150 | img_stageok = Image.open("stageok.bmp") 151 | img_onamae = Image.open("onamae.bmp") 152 | img_systemsay = Image.open("systemsay.bmp") 153 | img_playstore = Image.open("playstore.bmp") 154 | img_skip = Image.open("skip.bmp") 155 | img_skillexp = Image.open("skillcard_exp.bmp") 156 | img_skillexp2 = Image.open("skillcard_exp2.bmp") 157 | img_skillexp3 = Image.open("skillcard_exp3.bmp") 158 | img_skill1 = Image.open("skill1.bmp") 159 | img_skill2 = Image.open("skill2.bmp") 160 | img_freegyacha = Image.open("freegyacha.bmp") 161 | img_ingyacha = Image.open("ingyacha.bmp") 162 | img_tutogyachaok = Image.open("tutogyachaok.bmp") 163 | img_gachafine = Image.open("gachafine.bmp") 164 | img_darkok = Image.open("darkok.bmp") 165 | img_darkmain = Image.open("darkmainchar.bmp") 166 | img_kanji = Image.open("kanji.bmp") 167 | img_darkent = Image.open("darkent.bmp") 168 | img_prepare = Image.open("prepare.bmp") 169 | img_darkgogo = Image.open("darkgogo.bmp") 170 | img_darkteam = Image.open("darkteam.bmp") 171 | img_start = Image.open("start.bmp") 172 | img_boss = Image.open("boss.bmp") 173 | img_auto = Image.open("auto.bmp") 174 | img_yellowok = Image.open("yellowok.bmp") 175 | img_robihe = Image.open("robihe.bmp") 176 | img_append = Image.open("append.bmp") 177 | img_momotalk = Image.open("momotalk.bmp") 178 | img_momotalkclose = Image.open("momotalkclose.bmp") 179 | img_allreciv = Image.open("allreciv.bmp") 180 | img_allrecivfine = Image.open("allrecivfine.bmp") 181 | img_account = Image.open("account.bmp") 182 | img_instudent = Image.open("instudent.bmp") 183 | img_accountsetting = Image.open("accountsetting.bmp") 184 | img_bluearchive = Image.open("bluearchive.bmp") 185 | img_2roundsay = Image.open("2roundsay.bmp") 186 | img_2roundsay2 = Image.open("2roundsay2.bmp") 187 | img_news = Image.open("news.bmp") 188 | img_missionok = Image.open("missionok.bmp") 189 | img_mainchar = Image.open("mainchar.bmp") 190 | img_everyday = Image.open("everyday.bmp") 191 | img_devicecode = Image.open("devicecode.bmp") 192 | img_codegen = Image.open("codegen.bmp") 193 | img_point = Image.open("point.bmp") 194 | img_pointfront = Image.open("pointfront.bmp") 195 | img_prepareCode = Image.open("prepareCode.bmp") 196 | img_mainchar = Image.open("mainchar.bmp") 197 | # devnum = int(input()) 198 | bluestackhw = win32gui.FindWindow(None, "BlueStacks " + str(devnum)) 199 | 200 | def gacha(tm, rst): 201 | gachacycle = 2 202 | merged = Image.new('RGBA', (960 * gachacycle, 572)) 203 | merged.paste(rst, (0,0)) 204 | while 1: 205 | temp = Image.new('RGBA', (960 * gachacycle, 572)) 206 | temp.paste(merged, (0,0)) 207 | merged = temp 208 | print("Touch Everyday Gacha", end="....") 209 | while 1: 210 | randsleep(0.1, 0.3) 211 | scr_img = background_screenshot(bluestackhw, 960, 572) 212 | clickhere = pyautogui.locate(img_everyday, scr_img, confidence=0.8) 213 | clickd(620, 140, 710, 160) 214 | if clickhere is not None: 215 | randsleep(0.4, 0.5) 216 | # clickd(536,397,639,434) 217 | clickd(737, 400, 888, 444) 218 | print("OK") 219 | break 220 | print("Touch gacha ok", end="....") 221 | while 1: # touch gacha ok 222 | randsleep(0.15, 0.3) 223 | scr_img = background_screenshot(bluestackhw, 960, 572) 224 | clickhere = pyautogui.locate(img_tutogyachaok, scr_img, confidence=0.8) 225 | if clickhere is not None: 226 | time.sleep(0.1) 227 | scr_img = background_screenshot(bluestackhw, 960, 572) 228 | clickhere = pyautogui.locate(img_gachafine, scr_img, confidence=0.8) 229 | if clickhere is not None: 230 | clickd(319, 391, 440, 420) 231 | randsleep(0.1, 0.3) 232 | clickd(319, 391, 440, 420) 233 | cmd = 'Codes\\' + str(tm.tm_hour) + str(tm.tm_min) + str(tm.tm_sec) + '_' + str(devnum) + 'gacha.png' 234 | merged.save(cmd) 235 | return 236 | randsleep(0.5, 0.7) 237 | randsleep(1, 1.3) 238 | clickd(500, 380, 640, 420) 239 | randsleep(0.1, 0.3) 240 | clickd(500, 380, 640, 420) 241 | randsleep(0.1, 0.3) 242 | clickd(500, 380, 640, 420) 243 | randsleep(0.1, 0.3) 244 | clickd(500, 380, 640, 420) 245 | randsleep(0.1, 0.3) 246 | print("OK") 247 | break 248 | print("Sign", end="....") 249 | while 1: # sign 250 | randsleep(0.15, 0.3) 251 | clickd(324, 367, 647, 500) 252 | scr_img = background_screenshot(bluestackhw, 960, 572) 253 | clickhere = pyautogui.locate(img_ingyacha, scr_img, confidence=0.8) 254 | if clickhere is not None: 255 | randsleep(0.5, 0.7) 256 | clickd(324, 367, 647, 500) 257 | randsleep(0.1, 0.2) 258 | clickd(324, 367, 647, 500) 259 | randsleep(0.1, 0.2) 260 | print("OK") 261 | break 262 | while 1: 263 | randsleep(0.1, 0.3) 264 | clickd(849, 55, 920, 75) 265 | scr_img = background_screenshot(bluestackhw, 960, 572) 266 | clickhere = pyautogui.locate(img_point, scr_img, confidence=0.8) 267 | if clickhere is not None: 268 | time.sleep(0.7) 269 | print("Screen captured") 270 | scr_gacha_img = background_screenshot(bluestackhw, 960, 572) 271 | merged.paste(scr_gacha_img, (960*(gachacycle-1), 0)) 272 | break 273 | 274 | print("In gacha", end="....") 275 | while 1: 276 | randsleep(0.1, 0.3) 277 | clickd(849, 55, 920, 75) 278 | scr_img = background_screenshot(bluestackhw, 960, 572) 279 | clickhere = pyautogui.locate(img_ok, scr_img, confidence=0.8) 280 | if clickhere is not None: 281 | randsleep(0.1, 0.3) 282 | clickd(418, 483, 460, 523) 283 | randsleep(0.1, 0.3) 284 | clickd(418, 483, 460, 523) 285 | randsleep(0.1, 0.3) 286 | clickd(418, 483, 460, 523) 287 | randsleep(0.1, 0.3) 288 | clickd(418, 483, 460, 523) 289 | randsleep(0.1, 0.3) 290 | print("OK") 291 | break 292 | print("Fine gacha", end="....") 293 | while 1: 294 | randsleep(0.1, 0.3) 295 | clickd(418, 483, 460, 523) 296 | scr_img = background_screenshot(bluestackhw, 960, 572) 297 | clickhere = pyautogui.locate(img_everyday, scr_img, confidence=0.8) 298 | if clickhere is not None: 299 | print("OK") 300 | break 301 | gachacycle += 1 302 | def resetmara1st(): 303 | # init 304 | init() 305 | tm = time.localtime(time.time()) 306 | print("Read 1st chat", end="....") 307 | while 1: # touch systemsay (1st chat) 308 | randsleep(0.15,0.3) 309 | scr_img = background_screenshot(bluestackhw, 960, 572) 310 | clickhere = pyautogui.locate(img_systemsay, scr_img, confidence=0.7) 311 | if clickhere is not None: 312 | for i in range(0, 10): 313 | clickd(855, 500,900,546) 314 | randsleep(0.1,0.3) 315 | print("OK") 316 | break 317 | clickhere = pyautogui.locate(img_playstore, scr_img, confidence=0.7) 318 | if clickhere is not None: 319 | randsleep(0.15,0.3) 320 | adbdevice.shell("am start -n com.nexon.bluearchive/com.nexon.bluearchive.MxUnityPlayerActivity") 321 | print("Force Quited Restart") 322 | while 1: # TOUCH TO START 323 | randsleep(0.15, 0.3) 324 | scr_img = background_screenshot(bluestackhw, 960, 572) 325 | clickhere = pyautogui.locate(img_menumain, scr_img, confidence=0.8) 326 | if clickhere is not None: 327 | randsleep(0.5, 0.7) 328 | clickd(100, 200, 700, 400) 329 | print("OK") 330 | break 331 | print("Skip script", end="....") 332 | scriptskip() # skip script 333 | 334 | print("-Started 1st stage-") 335 | 336 | print("Skip TMT", end="....") 337 | while 1: # touch skill exp (1st chat) 338 | randsleep(0.15,0.2) 339 | scr_img = background_screenshot(bluestackhw, 960, 572) 340 | clickhere = pyautogui.locate(img_skillexp, scr_img, confidence=0.9) 341 | if clickhere is not None: 342 | for i in range(0, 9): 343 | clickd(400, 200,700,400) 344 | randsleep(0.1,0.18) 345 | print("OK") 346 | break 347 | print("Skip TMT2", end="....") 348 | while 1: # touch skill exp (2nd chat) 349 | randsleep(0.15,0.3) 350 | scr_img = background_screenshot(bluestackhw, 960, 572) 351 | clickhere = pyautogui.locate(img_skillexp, scr_img, confidence=0.9) 352 | if clickhere is not None: 353 | for i in range(0, 4): 354 | clickd(400, 200,700,400) 355 | randsleep(0.1,0.18) 356 | break 357 | print("OK") 358 | print("Touch skill", end="....") 359 | while 1: # touch skill2 360 | randsleep(0.15,0.3) 361 | scr_img = background_screenshot(bluestackhw, 960, 572) 362 | clickhere = pyautogui.locate(img_skill2, scr_img, confidence=0.8) 363 | if clickhere is not None: 364 | randsleep(0.1,0.3) 365 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 366 | randsleep(0.1,0.3) 367 | for i in range(0,random.randint(2,3)): 368 | clickd(700, 140,900,300) 369 | randsleep(0.1,0.3) 370 | break 371 | print("OK") 372 | print("Skip TMT3", end="....") 373 | while 1: # touch skill exp (3rd chat) 374 | randsleep(0.15,0.3) 375 | scr_img = background_screenshot(bluestackhw, 960, 572) 376 | clickhere = pyautogui.locate(img_skillexp, scr_img, confidence=0.9) 377 | if clickhere is not None: 378 | for i in range(0, 2): 379 | clickd(400, 200,700,400) 380 | randsleep(0.1,0.18) 381 | break 382 | print("OK") 383 | print("Touch skill", end="....") 384 | while 1: # touch skill1 385 | randsleep(0.15,0.3) 386 | scr_img = background_screenshot(bluestackhw, 960, 572) 387 | clickhere = pyautogui.locate(img_skill1, scr_img, confidence=0.8) 388 | if clickhere is not None: 389 | randsleep(0.1,0.3) 390 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 391 | randsleep(0.1,0.3) 392 | for i in range(0,random.randint(2,3)): 393 | clickd(700, 140,900,300) 394 | randsleep(0.1,0.3) 395 | clickd(700, 140,900,300) 396 | randsleep(0.1,0.3) 397 | break 398 | print("OK") 399 | stagefine() 400 | print("-Stage Finished-") 401 | 402 | # 1st stage clear# 403 | print("Skip script", end="....") 404 | scriptskip() 405 | print("Skip script", end="....") 406 | scriptskip() 407 | print("OK") 408 | print("-2nd stage start-") 409 | # 2nd stage start# 410 | print("Skip TMT", end="....") 411 | while 1: # touch tmt exp (1st chat) 412 | randsleep(0.15,0.3) 413 | scr_img = background_screenshot(bluestackhw, 960, 572) 414 | clickhere = pyautogui.locate(img_skillexp, scr_img, confidence=0.9) 415 | if clickhere is not None: 416 | for i in range(0, 6): 417 | clickd(400, 200,700,400) 418 | randsleep(0.1,0.18) 419 | break 420 | print("OK") 421 | print("Skip Hasumi chat", end="....") 422 | scriptskip() 423 | print("OK") 424 | print("Touch skill", end="....") 425 | while 1: # touch skill2 426 | randsleep(0.15,0.3) 427 | scr_img = background_screenshot(bluestackhw, 960, 572) 428 | clickhere = pyautogui.locate(img_skill2, scr_img, confidence=0.8) 429 | if clickhere is not None: 430 | randsleep(0.2,0.35) 431 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 432 | randsleep(0.1,0.3) 433 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 434 | randsleep(0.3,0.5) 435 | for i in range(0,random.randint(2,3)): 436 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 437 | randsleep(0.3,0.5) 438 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 439 | randsleep(0.3,0.5) 440 | break 441 | print("OK") 442 | print("Skip wokamo chat", end="....") 443 | # wokamo chat 444 | scriptskip() 445 | print("Touch skill", end="....") 446 | while 1: # touch skill1 447 | randsleep(0.15,0.3) 448 | scr_img = background_screenshot(bluestackhw, 960, 572) 449 | clickhere = pyautogui.locate(img_skill1, scr_img, confidence=0.8) 450 | if clickhere is not None: 451 | randsleep(0.2,0.35) 452 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 453 | randsleep(0.1,0.3) 454 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 455 | randsleep(0.3,0.5) 456 | for i in range(0,random.randint(2,3)): 457 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 458 | randsleep(0.3,0.5) 459 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 460 | randsleep(0.3,0.5) 461 | break 462 | print("OK") 463 | print("Skip script", end="....") 464 | scriptskip() 465 | randsleep(0.3,0.5) 466 | print("Skip script", end="....") 467 | scriptskip() 468 | print("Skip TMT", end="....") 469 | while 1: # touch tmt exp (2nd chat) 470 | randsleep(0.15,0.3) 471 | scr_img = background_screenshot(bluestackhw, 960, 572) 472 | clickhere = pyautogui.locate(img_skillexp, scr_img, confidence=0.9) 473 | if clickhere is not None: 474 | for i in range(0, 4): 475 | clickd(400, 200,700,400) 476 | randsleep(0.1,0.18) 477 | clickd(639,472, 672,516) 478 | randsleep(0.2,0.3) 479 | clickd(600,80, 900,300) 480 | randsleep(0.2,0.3) 481 | clickd(600,80, 900,300) 482 | randsleep(0.2,0.3) 483 | break 484 | print("OK") 485 | print("Touch skill", end="....") 486 | while 1: # touch skill2 487 | randsleep(0.15,0.3) 488 | scr_img = background_screenshot(bluestackhw, 960, 572) 489 | clickhere = pyautogui.locate(img_skill2, scr_img, confidence=0.8) 490 | if clickhere is None: 491 | clickhere = pyautogui.locate(img_skill1, scr_img, confidence=0.8) 492 | if clickhere is not None: 493 | randsleep(0.1,0.3) 494 | clickd(465, 98, 804, 335) 495 | randsleep(0.1,0.3) 496 | clickd(465, 98, 804, 335) 497 | randsleep(0.3,0.5) 498 | for i in range(0,random.randint(2,4)): 499 | clickd(465, 98, 804, 335) 500 | randsleep(0.3,0.5) 501 | break 502 | print("OK") 503 | # insert one more pic 504 | stagefine() 505 | print("-Stage finished-") 506 | # 2nd stage clear# 507 | 508 | scriptskip() 509 | randsleep(1,1.3) 510 | scriptskip() 511 | randsleep(1,1.3) 512 | randsleep(1,1.3) 513 | print("Skip anime", end="....") 514 | while 1: # Skip anime 515 | randsleep(0.1, 0.2) 516 | scr_img = background_screenshot(bluestackhw, 960, 572) 517 | clickhere = pyautogui.locate(img_darkmain, scr_img, confidence=0.8) 518 | clickd(517, 390,632,420) 519 | if clickhere is not None: 520 | clickd(517, 390,632,420) 521 | print("OK") 522 | break 523 | # tuto fine 524 | 525 | # lobby 526 | print("Touch gacha", end="....") 527 | while 1: # touch gyacha 528 | randsleep(0.1,0.3) 529 | scr_img = background_screenshot(bluestackhw, 960, 572) 530 | clickhere = pyautogui.locate(img_freegyacha, scr_img, confidence=0.8) 531 | clickd(670,490, 700,520) 532 | if clickhere is not None: 533 | randsleep(0.5,0.7) 534 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 535 | randsleep(0.1,0.3) 536 | break 537 | print("OK") 538 | print("Touch gacha ok", end="....") 539 | while 1: # touch gacha ok 540 | randsleep(0.15,0.3) 541 | scr_img = background_screenshot(bluestackhw, 960, 572) 542 | clickhere = pyautogui.locate(img_tutogyachaok, scr_img, confidence=0.8) 543 | if clickhere is not None: 544 | randsleep(1,1.3) 545 | clickd(500, 380,640,420) 546 | randsleep(0.1,0.2) 547 | clickd(500, 380,640,420) 548 | randsleep(0.1,0.2) 549 | for i in range(0,random.randint(2,3)): 550 | clickd(500, 380,640,420) 551 | randsleep(0.1,0.2) 552 | print("OK") 553 | break 554 | print("Sign", end="....") 555 | while 1: # sign 556 | randsleep(0.15,0.3) 557 | clickd(500, 380,640,420) 558 | scr_img = background_screenshot(bluestackhw, 960, 572) 559 | clickhere = pyautogui.locate(img_ingyacha, scr_img, confidence=0.8) 560 | if clickhere is not None: 561 | randsleep(0.5,0.7) 562 | for i in range(0,random.randint(2,3)): 563 | clickd(324, 367,647,500) 564 | randsleep(0.1,0.3) 565 | print("OK") 566 | break 567 | print("Capture gacha", end="....") 568 | while 1: 569 | randsleep(0.1,0.2) 570 | scr_img = background_screenshot(bluestackhw, 960, 572) 571 | clickhere = pyautogui.locate(img_point, scr_img, confidence=0.8) 572 | clickd(849,55, 920,75) 573 | if clickhere is not None: 574 | time.sleep(0.7) 575 | gacha_result = background_screenshot(bluestackhw, 960, 572) 576 | print("OK") 577 | break 578 | print("In gacha", end="....") 579 | while 1: 580 | randsleep(0.1,0.3) 581 | scr_img = background_screenshot(bluestackhw, 960, 572) 582 | clickhere = pyautogui.locate(img_darkok, scr_img, confidence=0.8) #retake 583 | clickd(849,55, 920,75) 584 | if clickhere is not None: 585 | randsleep(0.1,0.3) 586 | clickd(420,482, 541,523) 587 | randsleep(0.1,0.3) 588 | for i in range(0,random.randint(3,5)): 589 | clickd(420,482, 541,523) 590 | randsleep(0.1,0.3) 591 | break 592 | print("OK") 593 | randsleep(2,2.3) 594 | print("Touch entrance", end="....") 595 | while 1: # touch entrance 596 | randsleep(0.1, 0.3) 597 | scr_img = background_screenshot(bluestackhw, 960, 572) 598 | clickhere = pyautogui.locate(img_darkent, scr_img, confidence=0.85) 599 | if clickhere is not None: 600 | randsleep(1.5, 1.7) 601 | clickd(800, 196, 860, 228) 602 | randsleep(0.1, 0.3) 603 | for i in range(0,random.randint(2,3)): 604 | clickd(800, 196, 860, 228) 605 | randsleep(0.1, 0.3) 606 | break 607 | print("OK") 608 | print("Touch prepare", end="....") 609 | while 1: # touch prepare 610 | randsleep(0.15, 0.3) 611 | scr_img = background_screenshot(bluestackhw, 960, 572) 612 | clickhere = pyautogui.locate(img_prepare, scr_img, confidence=0.8) 613 | if clickhere is not None: 614 | randsleep(0.3, 0.6) 615 | clickd(617, 414, 747, 454) 616 | randsleep(0.1, 0.3) 617 | for i in range(0,random.randint(2,3)): 618 | clickd(617, 414, 747, 454) 619 | randsleep(0.1, 0.3) 620 | break 621 | clickd(800, 196, 860, 228) 622 | print("OK") 623 | print("Touch start", end="....") 624 | while 1: # touch start 625 | randsleep(0.15, 0.3) 626 | scr_img = background_screenshot(bluestackhw, 960, 572) 627 | clickhere = pyautogui.locate(img_darkgogo, scr_img, confidence=0.8) 628 | if clickhere is not None: 629 | randsleep(0.2, 0.35) 630 | clickd(361, 367, 408, 400) 631 | randsleep(0.1, 0.3) 632 | for i in range(0,random.randint(3,4)): 633 | clickd(361, 367, 408, 400) 634 | randsleep(0.1, 0.3) 635 | print("OK") 636 | break 637 | print("Touch team", end="....") 638 | print("OK") 639 | print("Close team window", end="....") 640 | while 1: # wait to kanji window 641 | randsleep(0.1, 0.3) 642 | scr_img = background_screenshot(bluestackhw, 960, 572) 643 | clickhere = pyautogui.locate(img_kanji, scr_img, confidence=0.8) 644 | clickd(880, 167, 907, 168) 645 | if clickhere is not None: 646 | break 647 | while 1: 648 | randsleep(0.1, 0.3) 649 | scr_img = background_screenshot(bluestackhw, 960, 572) 650 | clickhere = pyautogui.locate(img_darkteam, scr_img, confidence=0.8) 651 | clickd(300, 40, 700, 80) 652 | if clickhere is not None: 653 | randsleep(0.1, 0.3) 654 | clickd(800, 500, 900, 553) 655 | randsleep(0.1, 0.3) 656 | for i in range(0,random.randint(2,3)): 657 | clickd(800, 500, 900, 553) 658 | randsleep(0.1, 0.3) 659 | break 660 | print("OK") 661 | print("Touch boss", end="....") 662 | while 1: # touch start 663 | randsleep(0.15, 0.3) 664 | scr_img = background_screenshot(bluestackhw, 960, 572) 665 | clickhere = pyautogui.locate(img_boss, scr_img, confidence=0.8) 666 | if clickhere is not None: 667 | randsleep(1, 1.3) 668 | for i in range(0,random.randint(2,3)): 669 | clickd(818, 509, 913, 540) 670 | randsleep(0.1, 0.3) 671 | break 672 | print("OK") 673 | print("Touch start", end="....") 674 | while 1: # touch start 675 | randsleep(0.15, 0.3) 676 | scr_img = background_screenshot(bluestackhw, 960, 572) 677 | clickhere = pyautogui.locate(img_start, scr_img, confidence=0.7) 678 | if clickhere is not None: 679 | randsleep(0.1, 0.3) 680 | clickd(490, 358, 510, 376) 681 | randsleep(0.1, 0.3) 682 | clickd(490, 358, 510, 376) 683 | for i in range(0,random.randint(3,4)): 684 | randsleep(0.1, 0.3) 685 | clickd(490, 358, 510, 376) 686 | break 687 | print("OK") 688 | print("-Battle phase 1 started-") 689 | # battle phase 1 690 | print("Touch auto", end="....") 691 | while 1: # touch auto 692 | randsleep(0.15, 0.3) 693 | scr_img = background_screenshot(bluestackhw, 960, 572) 694 | clickhere = pyautogui.locate(img_auto, scr_img, confidence=0.8) 695 | if clickhere is not None: 696 | randsleep(2, 2.3) 697 | clickd(872, 527, 924, 544) 698 | randsleep(0.1, 0.3) 699 | break 700 | print("OK") 701 | stagefine() 702 | print("-Stage finished-") 703 | # battle phase 1 ended 704 | print("Touch ok", end="....") 705 | while 1: # touch yellow ok 706 | randsleep(0.15, 0.3) 707 | scr_img = background_screenshot(bluestackhw, 960, 572) 708 | clickhere = pyautogui.locate(img_yellowok, scr_img, confidence=0.8) 709 | if clickhere is not None: 710 | randsleep(0.1, 0.3) 711 | clickd(425, 509, 536, 538) 712 | randsleep(0.1, 0.3) 713 | break 714 | print("OK") 715 | print("Touch phase end", end="....") 716 | while 1: # touch phase end 717 | randsleep(0.15, 0.3) 718 | scr_img = background_screenshot(bluestackhw, 960, 572) 719 | clickhere = pyautogui.locate(img_2roundsay, scr_img, confidence=0.8) 720 | if clickhere is not None: 721 | randsleep(0.1, 0.3) 722 | for i in range(0,random.randint(3,4)): 723 | clickd(830, 514, 917, 544) 724 | randsleep(0.1, 0.3) 725 | break 726 | print("OK") 727 | print("Touch Boss", end="....") 728 | while 1: # touch Boss 729 | randsleep(0.15, 0.3) 730 | scr_img = background_screenshot(bluestackhw, 960, 572) 731 | clickhere = pyautogui.locate(img_2roundsay2, scr_img, confidence=0.8) 732 | if clickhere is not None: 733 | randsleep(0.1, 0.3) 734 | for i in range(0,random.randint(3,4)): 735 | clickd(562, 319, 582, 330) 736 | randsleep(0.1, 0.3) 737 | break 738 | print("OK") 739 | print("-Battle phase 2-") 740 | # battle phase 2 741 | stagefine() 742 | # # battel phase 2 ended 743 | # print("Touch yellow ok", end="....") 744 | # while 1: # touch yellow ok 745 | # randsleep(0.15, 0.3) 746 | # scr_img = background_screenshot(bluestackhw, 960, 572) 747 | # clickhere = pyautogui.locate(img_missionok, scr_img, confidence=0.8) 748 | # if clickhere is not None: 749 | # randsleep(0.7, 1) 750 | # randsleep(0.7, 1) 751 | # for i in range(0,random.randint(3,4)): 752 | # click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 753 | # randsleep(0.1, 0.3) 754 | # break 755 | # print("OK") 756 | print("Touch robihe", end="....") 757 | while 1: # touch robi he 758 | randsleep(0.1, 0.3) 759 | scr_img = background_screenshot(bluestackhw, 960, 572) 760 | clickhere = pyautogui.locate(img_robihe, scr_img, confidence=0.8) 761 | clickd(687, 446, 869, 517) 762 | if clickhere is not None: 763 | randsleep(0.5, 0.7) 764 | for i in range(0,random.randint(5,7)): 765 | clickd(342, 510, 442, 539) 766 | randsleep(0.1, 0.3) 767 | break 768 | print("OK") 769 | print("Wait append table", end="....") 770 | # append table 771 | while 1: 772 | randsleep(0.15, 0.3) 773 | scr_img = background_screenshot(bluestackhw, 960, 572) 774 | clickhere = pyautogui.locate(img_append, scr_img, confidence=0.8) 775 | if clickhere is not None: 776 | break 777 | print("OK") 778 | # print("Close notice", end="....") 779 | # while 1: 780 | # randsleep(0.1, 0.3) 781 | # scr_img = background_screenshot(bluestackhw, 960, 572) 782 | # clickhere = pyautogui.locate(img_news, scr_img, confidence=0.8) 783 | # clickd(840, 100, 856, 116) 784 | # if clickhere is not None: 785 | # randsleep(0.3, 0.5) 786 | # clickd(840, 100, 856, 116) 787 | # break 788 | # print("OK") 789 | print("Touch momotalk", end="....") 790 | randsleep(0.5, 0.7) 791 | while 1: # touch momotalk 792 | randsleep(0.1, 0.3) 793 | scr_img = background_screenshot(bluestackhw, 960, 572) 794 | clickhere = pyautogui.locate(img_momotalk, scr_img, confidence=0.8) 795 | clickd(119, 114, 134, 154) 796 | if clickhere is not None: 797 | randsleep(0.1, 0.3) 798 | clickd(119, 114, 134, 154) 799 | randsleep(0.1, 0.3) 800 | clickd(119, 114, 134, 154) 801 | randsleep(0.1, 0.3) 802 | break 803 | print("OK") 804 | print("Touch momotalk close", end="....") 805 | while 1: # touch momotalk close 806 | randsleep(0.1, 0.3) 807 | scr_img = background_screenshot(bluestackhw, 960, 572) 808 | clickhere = pyautogui.locate(img_momotalkclose, scr_img, confidence=0.8) 809 | clickd(110, 223, 141, 246) 810 | if clickhere is not None: 811 | randsleep(0.1, 0.3) 812 | clickd(110, 223, 141, 246) 813 | randsleep(0.1, 0.3) 814 | clickd(110, 223, 141, 246) 815 | randsleep(0.1, 0.3) 816 | clickd(824, 110, 842, 129) 817 | randsleep(0.1, 0.3) 818 | break 819 | print("OK") 820 | print("Touch mailbox", end="....") 821 | while 1: # touch mailbox 822 | randsleep(0.15, 0.3) 823 | scr_img = background_screenshot(bluestackhw, 960, 572) 824 | clickhere = pyautogui.locate(img_mainchar, scr_img, confidence=0.8) 825 | if clickhere is not None: 826 | randsleep(0.1, 0.3) 827 | clickd(836, 54, 866, 69) 828 | randsleep(0.1, 0.3) 829 | print("OK") 830 | break # touch mail box 831 | print("OK") 832 | print("Touch allreciv", end="....") 833 | while 1: # touch guest 834 | randsleep(0.15, 0.3) 835 | scr_img = background_screenshot(bluestackhw, 960, 572) 836 | clickhere = pyautogui.locate(img_allreciv, scr_img, confidence=0.8) 837 | if clickhere is not None: 838 | randsleep(0.5, 0.7) 839 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 840 | randsleep(0.1, 0.3) 841 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 842 | randsleep(0.1, 0.3) 843 | print("OK") 844 | break 845 | print("OK") 846 | print("Go home", end="....") 847 | while 1: # touch go home 848 | randsleep(0.15, 0.3) 849 | scr_img = background_screenshot(bluestackhw, 960, 572) 850 | clickhere = pyautogui.locate(img_allrecivfine, scr_img, confidence=0.8) 851 | clickd(621, 115, 827, 444) 852 | if clickhere is not None: 853 | randsleep(0.4, 0.65) 854 | clickd(902, 39, 930, 60) 855 | randsleep(0.1, 0.2) 856 | clickd(902, 39, 930, 60) 857 | randsleep(0.1, 0.2) 858 | clickd(902, 39, 930, 60) 859 | randsleep(0.1, 0.2) 860 | break 861 | print("OK") 862 | print("Touch Student", end="....") 863 | while 1: 864 | randsleep(0.1, 0.3) 865 | scr_img = background_screenshot(bluestackhw, 960, 572) 866 | clickhere = pyautogui.locate(img_instudent, scr_img, confidence=0.8) 867 | clickd(241, 501, 269, 534) 868 | if clickhere is not None: 869 | randsleep(0.1, 0.2) 870 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 871 | randsleep(0.1, 0.2) 872 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 873 | randsleep(0.1, 0.2) 874 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 875 | randsleep(0.1, 0.2) 876 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 877 | break 878 | 879 | print("Touch Home", end="....") 880 | while 1: 881 | randsleep(0.07, 0.15) 882 | scr_img = background_screenshot(bluestackhw, 960, 572) 883 | clickhere = pyautogui.locate(img_darkmain, scr_img, confidence=0.8) 884 | clickd(902, 39, 930, 60) 885 | if clickhere is not None: 886 | break 887 | 888 | print("Touch account", end="....") 889 | while 1: 890 | randsleep(0.1, 0.3) 891 | scr_img = background_screenshot(bluestackhw, 960, 572) 892 | clickhere = pyautogui.locate(img_account, scr_img, confidence=0.8) 893 | clickd(890, 50, 920, 70) 894 | if clickhere is not None: 895 | randsleep(0.1, 0.3) 896 | clickd(495, 270, 634,301) 897 | randsleep(0.1, 0.3) 898 | break 899 | print("OK") 900 | # print("Touch mission", end="....") 901 | # while 1: # touch mission 902 | # randsleep(0.1, 0.2) 903 | # scr_img = background_screenshot(bluestackhw, 960, 572) 904 | # clickhere = pyautogui.locate(img_mainchar, scr_img, confidence=0.8) 905 | # clickd(35, 192, 56, 225) 906 | # if clickhere is not None: 907 | # randsleep(0.1, 0.2) 908 | # clickd(35, 192, 56, 225) 909 | # randsleep(0.1, 0.3) 910 | # print("OK") 911 | # break 912 | # print("OK") 913 | # print("Touch allreciv", end="....") 914 | # while 1: # touch allreciv 915 | # randsleep(0.15, 0.3) 916 | # scr_img = background_screenshot(bluestackhw, 960, 572) 917 | # clickhere = pyautogui.locate(img_allreciv, scr_img, confidence=0.8) 918 | # if clickhere is not None: 919 | # randsleep(0.5, 0.7) 920 | # click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 921 | # randsleep(0.1, 0.3) 922 | # click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 923 | # randsleep(0.1, 0.3) 924 | # print("OK") 925 | # break 926 | print("Touch gacha", end="....") 927 | while 1: # touch gacha 928 | randsleep(0.15, 0.3) 929 | clickd(902, 39, 930, 60) 930 | scr_img = background_screenshot(bluestackhw, 960, 572) 931 | clickhere = pyautogui.locate(img_mainchar, scr_img, confidence=0.8) 932 | if clickhere is not None: 933 | clickd(902, 39, 930, 60) 934 | randsleep(0.3, 0.6) 935 | clickd(688, 500, 710, 532) 936 | randsleep(0.1, 0.3) 937 | clickd(688, 500, 710, 532) 938 | randsleep(0.1, 0.3) 939 | break 940 | while 1: # touch gacha 941 | randsleep(0.15, 0.2) 942 | clickd(688, 500, 710, 532) 943 | scr_img = background_screenshot(bluestackhw, 960, 572) 944 | clickhere = pyautogui.locate(img_pointfront, scr_img, confidence=0.8) 945 | if clickhere is not None: 946 | break 947 | gacha(tm, gacha_result) 948 | print("Touch Home", end="....") 949 | while 1: 950 | randsleep(0.07, 0.15) 951 | scr_img = background_screenshot(bluestackhw, 960, 572) 952 | clickhere = pyautogui.locate(img_mainchar, scr_img, confidence=0.8) 953 | clickd(902, 39, 930, 60) 954 | if clickhere is not None: 955 | print("-ended-") 956 | break 957 | #main activity 958 | def resetmara(): 959 | # init 960 | init() 961 | tm = time.localtime(time.time()) 962 | print("Account manage", end="....") 963 | while 1: # TOUCH TO START 964 | clickd(920, 53,921,66) 965 | randsleep(0.3,0.4) 966 | scr_img = background_screenshot(bluestackhw, 960, 572) 967 | clickhere = pyautogui.locate(img_account, scr_img, confidence=0.8) 968 | if clickhere is not None: 969 | randsleep(0.1, 0.3) 970 | clickd(495, 270, 634,301) 971 | randsleep(0.1, 0.3) 972 | print("OK") 973 | break 974 | 975 | while 1: 976 | randsleep(0.1,0.15) 977 | scr_img = background_screenshot(bluestackhw, 960, 572) 978 | clickhere = pyautogui.locate(img_accountsetting, scr_img, confidence=0.8) 979 | if clickhere is not None: 980 | randsleep(0.1, 0.3) 981 | clickd(641, 289, 644,311) 982 | randsleep(0.1, 0.3) 983 | clickd(641, 289, 644,311) 984 | randsleep(0.1, 0.3) 985 | clickd(641, 289, 644,311) 986 | randsleep(0.1, 0.3) 987 | print("OK") 988 | break 989 | while 1: 990 | randsleep(0.1,0.15) 991 | scr_img = background_screenshot(bluestackhw, 960, 572) 992 | clickhere = pyautogui.locate(img_bluearchive, scr_img, confidence=0.8) 993 | if clickhere is not None: 994 | randsleep(0.1, 0.3) 995 | clickd(427, 274, 521,286) 996 | randsleep(0.1, 0.3) 997 | adbdevice.shell("input text \"BlueArchive\"") 998 | randsleep(0.1, 0.3) 999 | clickd(500, 383, 515,413) 1000 | randsleep(0.1, 0.3) 1001 | clickd(500, 383, 515,413) 1002 | print("OK") 1003 | break 1004 | while 1: 1005 | randsleep(0.1,0.15) 1006 | scr_img = background_screenshot(bluestackhw, 960, 572) 1007 | clickhere = pyautogui.locate(img_ok, scr_img, confidence=0.8) 1008 | if clickhere is not None: 1009 | randsleep(0.3, 0.4) 1010 | clickd(500, 383, 515,413) 1011 | randsleep(0.1, 0.15) 1012 | clickd(500, 383, 515,413) 1013 | randsleep(0.1, 0.15) 1014 | clickd(500, 383, 515,413) 1015 | print("OK") 1016 | break 1017 | 1018 | 1019 | 1020 | 1021 | 1022 | 1023 | print("Touch start", end="....") 1024 | while 1: # TOUCH TO START 1025 | randsleep(0.15,0.3) 1026 | scr_img = background_screenshot(bluestackhw, 960, 572) 1027 | clickhere = pyautogui.locate(img_menumain, scr_img, confidence=0.8) 1028 | if clickhere is not None: 1029 | randsleep(0.5,0.7) 1030 | clickd(100, 200,700,400) 1031 | print("OK") 1032 | break 1033 | print("Touch Hazimemashite ok", end="....") 1034 | while 1: # touch hazimemashite's ok 1035 | randsleep(0.15,0.3) 1036 | scr_img = background_screenshot(bluestackhw, 960, 572) 1037 | clickhere = pyautogui.locate(img_ok, scr_img, confidence=0.8) 1038 | if clickhere is not None: 1039 | randsleep(0.3,0.5) 1040 | clickd(406, 388,530,430) 1041 | randsleep(0.1,0.3) 1042 | clickd(406, 388,530,430) 1043 | randsleep(0.1,0.3) 1044 | print("OK") 1045 | break 1046 | print("Write name", end="....") 1047 | 1048 | while 1: # write name 1049 | randsleep(0.15,0.3) 1050 | scr_img = background_screenshot(bluestackhw, 960, 572) 1051 | clickhere = pyautogui.locate(img_onamae, scr_img, confidence=0.8) 1052 | if clickhere is not None: 1053 | clickd(405, 297, 524, 320) 1054 | randsleep(0.1,0.3) 1055 | adbdevice.shell("input text \"a\"") 1056 | randsleep(0.1,0.3) 1057 | clickd(800, 480,801,481) # typing end 1058 | randsleep(0.3,0.6) 1059 | clickd(400, 380,533,419) # OK 1060 | randsleep(0.1,0.3) 1061 | clickd(400, 380,533,419) # OK 1062 | randsleep(0.1,0.3) 1063 | print("OK") 1064 | break 1065 | print("Passing sensei name confirm", end="....") 1066 | while 1: # touch sensei voice ok 1067 | randsleep(0.4,0.45) 1068 | clickd(418, 395,540,430) 1069 | scr_img = background_screenshot(bluestackhw, 960, 572) 1070 | clickhere = pyautogui.locate(img_senseiok, scr_img, confidence=0.8) 1071 | if clickhere is not None: 1072 | clickd(418, 395,540,430) 1073 | randsleep(0.1,0.3) 1074 | clickd(418, 395,540,430) 1075 | randsleep(0.1,0.3) 1076 | clickd(418, 395,540,430) 1077 | randsleep(0.1,0.3) 1078 | print("OK") 1079 | break 1080 | 1081 | print("Read 1st chat", end="....") 1082 | while 1: # touch systemsay (1st chat) 1083 | randsleep(0.15,0.3) 1084 | scr_img = background_screenshot(bluestackhw, 960, 572) 1085 | clickhere = pyautogui.locate(img_systemsay, scr_img, confidence=0.7) 1086 | if clickhere is not None: 1087 | for i in range(0, 10): 1088 | clickd(855, 500,900,546) 1089 | randsleep(0.1,0.3) 1090 | print("OK") 1091 | break 1092 | clickhere = pyautogui.locate(img_playstore, scr_img, confidence=0.7) 1093 | if clickhere is not None: 1094 | randsleep(0.15,0.3) 1095 | adbdevice.shell("am start -n com.nexon.bluearchive/com.nexon.bluearchive.MxUnityPlayerActivity") 1096 | print("Force Quited Restart") 1097 | while 1: # TOUCH TO START 1098 | randsleep(0.15, 0.3) 1099 | scr_img = background_screenshot(bluestackhw, 960, 572) 1100 | clickhere = pyautogui.locate(img_menumain, scr_img, confidence=0.8) 1101 | if clickhere is not None: 1102 | randsleep(0.5, 0.7) 1103 | clickd(100, 200, 700, 400) 1104 | print("OK") 1105 | break 1106 | print("Skip script", end="....") 1107 | scriptskip() # skip script 1108 | 1109 | print("-Started 1st stage-") 1110 | 1111 | print("Skip TMT", end="....") 1112 | while 1: # touch skill exp (1st chat) 1113 | randsleep(0.15,0.2) 1114 | scr_img = background_screenshot(bluestackhw, 960, 572) 1115 | clickhere = pyautogui.locate(img_skillexp, scr_img, confidence=0.9) 1116 | if clickhere is not None: 1117 | for i in range(0, 9): 1118 | clickd(400, 200,700,400) 1119 | randsleep(0.1,0.18) 1120 | print("OK") 1121 | break 1122 | print("Skip TMT2", end="....") 1123 | while 1: # touch skill exp (2nd chat) 1124 | randsleep(0.15,0.3) 1125 | scr_img = background_screenshot(bluestackhw, 960, 572) 1126 | clickhere = pyautogui.locate(img_skillexp, scr_img, confidence=0.9) 1127 | if clickhere is not None: 1128 | for i in range(0, 4): 1129 | clickd(400, 200,700,400) 1130 | randsleep(0.1,0.18) 1131 | break 1132 | print("OK") 1133 | print("Touch skill", end="....") 1134 | while 1: # touch skill2 1135 | randsleep(0.15,0.3) 1136 | scr_img = background_screenshot(bluestackhw, 960, 572) 1137 | clickhere = pyautogui.locate(img_skill2, scr_img, confidence=0.8) 1138 | if clickhere is not None: 1139 | randsleep(0.1,0.3) 1140 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 1141 | randsleep(0.1,0.3) 1142 | for i in range(0,random.randint(2,3)): 1143 | clickd(700, 140,900,300) 1144 | randsleep(0.1,0.3) 1145 | break 1146 | print("OK") 1147 | print("Skip TMT3", end="....") 1148 | while 1: # touch skill exp (3rd chat) 1149 | randsleep(0.15,0.3) 1150 | scr_img = background_screenshot(bluestackhw, 960, 572) 1151 | clickhere = pyautogui.locate(img_skillexp, scr_img, confidence=0.9) 1152 | if clickhere is not None: 1153 | for i in range(0, 2): 1154 | clickd(400, 200,700,400) 1155 | randsleep(0.1,0.18) 1156 | break 1157 | print("OK") 1158 | print("Touch skill", end="....") 1159 | while 1: # touch skill1 1160 | randsleep(0.15,0.3) 1161 | scr_img = background_screenshot(bluestackhw, 960, 572) 1162 | clickhere = pyautogui.locate(img_skill1, scr_img, confidence=0.8) 1163 | if clickhere is not None: 1164 | randsleep(0.1,0.3) 1165 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 1166 | randsleep(0.1,0.3) 1167 | for i in range(0,random.randint(2,3)): 1168 | clickd(700, 140,900,300) 1169 | randsleep(0.1,0.3) 1170 | clickd(700, 140,900,300) 1171 | randsleep(0.1,0.3) 1172 | break 1173 | print("OK") 1174 | stagefine() 1175 | print("-Stage Finished-") 1176 | 1177 | # 1st stage clear# 1178 | print("Skip script", end="....") 1179 | scriptskip() 1180 | print("Skip script", end="....") 1181 | scriptskip() 1182 | print("OK") 1183 | print("-2nd stage start-") 1184 | # 2nd stage start# 1185 | print("Skip TMT", end="....") 1186 | while 1: # touch tmt exp (1st chat) 1187 | randsleep(0.15,0.3) 1188 | scr_img = background_screenshot(bluestackhw, 960, 572) 1189 | clickhere = pyautogui.locate(img_skillexp, scr_img, confidence=0.9) 1190 | if clickhere is not None: 1191 | for i in range(0, 6): 1192 | clickd(400, 200,700,400) 1193 | randsleep(0.1,0.18) 1194 | break 1195 | print("OK") 1196 | print("Skip Hasumi chat", end="....") 1197 | scriptskip() 1198 | print("OK") 1199 | print("Touch skill", end="....") 1200 | while 1: # touch skill2 1201 | randsleep(0.15,0.3) 1202 | scr_img = background_screenshot(bluestackhw, 960, 572) 1203 | clickhere = pyautogui.locate(img_skill2, scr_img, confidence=0.8) 1204 | if clickhere is not None: 1205 | randsleep(0.2,0.35) 1206 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 1207 | randsleep(0.1,0.3) 1208 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 1209 | randsleep(0.3,0.5) 1210 | for i in range(0,random.randint(2,3)): 1211 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 1212 | randsleep(0.3,0.5) 1213 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 1214 | randsleep(0.3,0.5) 1215 | break 1216 | print("OK") 1217 | print("Skip wokamo chat", end="....") 1218 | # wokamo chat 1219 | scriptskip() 1220 | print("Touch skill", end="....") 1221 | while 1: # touch skill1 1222 | randsleep(0.15,0.3) 1223 | scr_img = background_screenshot(bluestackhw, 960, 572) 1224 | clickhere = pyautogui.locate(img_skill1, scr_img, confidence=0.8) 1225 | if clickhere is not None: 1226 | randsleep(0.2,0.35) 1227 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 1228 | randsleep(0.1,0.3) 1229 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 1230 | randsleep(0.3,0.5) 1231 | for i in range(0,random.randint(2,3)): 1232 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 1233 | randsleep(0.3,0.5) 1234 | click(clickhere[0], clickhere[1] - 100, clickhere[2], clickhere[3]) 1235 | randsleep(0.3,0.5) 1236 | break 1237 | print("OK") 1238 | print("Skip script", end="....") 1239 | scriptskip() 1240 | randsleep(0.3,0.5) 1241 | print("Skip script", end="....") 1242 | scriptskip() 1243 | print("Skip TMT", end="....") 1244 | while 1: # touch tmt exp (2nd chat) 1245 | randsleep(0.15,0.3) 1246 | scr_img = background_screenshot(bluestackhw, 960, 572) 1247 | clickhere = pyautogui.locate(img_skillexp, scr_img, confidence=0.9) 1248 | if clickhere is not None: 1249 | for i in range(0, 4): 1250 | clickd(400, 200,700,400) 1251 | randsleep(0.1,0.18) 1252 | clickd(639,472, 672,516) 1253 | randsleep(0.2,0.3) 1254 | clickd(600,80, 900,300) 1255 | randsleep(0.2,0.3) 1256 | clickd(600,80, 900,300) 1257 | randsleep(0.2,0.3) 1258 | break 1259 | print("OK") 1260 | print("Touch skill", end="....") 1261 | while 1: # touch skill2 1262 | randsleep(0.15,0.3) 1263 | scr_img = background_screenshot(bluestackhw, 960, 572) 1264 | clickhere = pyautogui.locate(img_skill2, scr_img, confidence=0.8) 1265 | if clickhere is None: 1266 | clickhere = pyautogui.locate(img_skill1, scr_img, confidence=0.8) 1267 | if clickhere is not None: 1268 | randsleep(0.1,0.3) 1269 | clickd(465, 98, 804, 335) 1270 | randsleep(0.1,0.3) 1271 | clickd(465, 98, 804, 335) 1272 | randsleep(0.3,0.5) 1273 | for i in range(0,random.randint(2,4)): 1274 | clickd(465, 98, 804, 335) 1275 | randsleep(0.3,0.5) 1276 | break 1277 | print("OK") 1278 | # insert one more pic 1279 | stagefine() 1280 | print("-Stage finished-") 1281 | # 2nd stage clear# 1282 | 1283 | scriptskip() 1284 | randsleep(1,1.3) 1285 | scriptskip() 1286 | randsleep(1,1.3) 1287 | randsleep(1,1.3) 1288 | print("Skip anime", end="....") 1289 | while 1: # Skip anime 1290 | randsleep(0.1, 0.2) 1291 | scr_img = background_screenshot(bluestackhw, 960, 572) 1292 | clickhere = pyautogui.locate(img_darkmain, scr_img, confidence=0.8) 1293 | clickd(517, 390,632,420) 1294 | if clickhere is not None: 1295 | clickd(517, 390,632,420) 1296 | print("OK") 1297 | break 1298 | # tuto fine 1299 | 1300 | # lobby 1301 | print("Touch gacha", end="....") 1302 | while 1: # touch gyacha 1303 | randsleep(0.1,0.3) 1304 | scr_img = background_screenshot(bluestackhw, 960, 572) 1305 | clickhere = pyautogui.locate(img_freegyacha, scr_img, confidence=0.8) 1306 | clickd(670,490, 700,520) 1307 | if clickhere is not None: 1308 | randsleep(0.5,0.7) 1309 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 1310 | randsleep(0.1,0.3) 1311 | break 1312 | print("OK") 1313 | print("Touch gacha ok", end="....") 1314 | while 1: # touch gacha ok 1315 | randsleep(0.15,0.3) 1316 | scr_img = background_screenshot(bluestackhw, 960, 572) 1317 | clickhere = pyautogui.locate(img_tutogyachaok, scr_img, confidence=0.8) 1318 | if clickhere is not None: 1319 | randsleep(1,1.3) 1320 | clickd(500, 380,640,420) 1321 | randsleep(0.1,0.2) 1322 | clickd(500, 380,640,420) 1323 | randsleep(0.1,0.2) 1324 | for i in range(0,random.randint(2,3)): 1325 | clickd(500, 380,640,420) 1326 | randsleep(0.1,0.2) 1327 | print("OK") 1328 | break 1329 | print("Sign", end="....") 1330 | while 1: # sign 1331 | randsleep(0.15,0.3) 1332 | clickd(500, 380,640,420) 1333 | scr_img = background_screenshot(bluestackhw, 960, 572) 1334 | clickhere = pyautogui.locate(img_ingyacha, scr_img, confidence=0.8) 1335 | if clickhere is not None: 1336 | randsleep(0.5,0.7) 1337 | for i in range(0,random.randint(2,3)): 1338 | clickd(324, 367,647,500) 1339 | randsleep(0.1,0.3) 1340 | print("OK") 1341 | break 1342 | print("Capture gacha", end="....") 1343 | while 1: 1344 | randsleep(0.1,0.2) 1345 | scr_img = background_screenshot(bluestackhw, 960, 572) 1346 | clickhere = pyautogui.locate(img_point, scr_img, confidence=0.8) 1347 | clickd(849,55, 920,75) 1348 | if clickhere is not None: 1349 | time.sleep(0.7) 1350 | gacha_result = background_screenshot(bluestackhw, 960, 572) 1351 | print("OK") 1352 | break 1353 | print("In gacha", end="....") 1354 | while 1: 1355 | randsleep(0.1,0.3) 1356 | scr_img = background_screenshot(bluestackhw, 960, 572) 1357 | clickhere = pyautogui.locate(img_darkok, scr_img, confidence=0.8) #retake 1358 | clickd(849,55, 920,75) 1359 | if clickhere is not None: 1360 | randsleep(0.1,0.3) 1361 | clickd(420,482, 541,523) 1362 | randsleep(0.1,0.3) 1363 | for i in range(0,random.randint(3,5)): 1364 | clickd(420,482, 541,523) 1365 | randsleep(0.1,0.3) 1366 | break 1367 | print("OK") 1368 | randsleep(2,2.3) 1369 | print("Touch entrance", end="....") 1370 | while 1: # touch entrance 1371 | randsleep(0.1, 0.3) 1372 | scr_img = background_screenshot(bluestackhw, 960, 572) 1373 | clickhere = pyautogui.locate(img_darkent, scr_img, confidence=0.85) 1374 | if clickhere is not None: 1375 | randsleep(1.5, 1.7) 1376 | clickd(800, 196, 860, 228) 1377 | randsleep(0.1, 0.3) 1378 | for i in range(0,random.randint(2,3)): 1379 | clickd(800, 196, 860, 228) 1380 | randsleep(0.1, 0.3) 1381 | break 1382 | print("OK") 1383 | print("Touch prepare", end="....") 1384 | while 1: # touch prepare 1385 | randsleep(0.15, 0.3) 1386 | scr_img = background_screenshot(bluestackhw, 960, 572) 1387 | clickhere = pyautogui.locate(img_prepare, scr_img, confidence=0.8) 1388 | if clickhere is not None: 1389 | randsleep(0.3, 0.6) 1390 | clickd(617, 414, 747, 454) 1391 | randsleep(0.1, 0.3) 1392 | for i in range(0,random.randint(2,3)): 1393 | clickd(617, 414, 747, 454) 1394 | randsleep(0.1, 0.3) 1395 | break 1396 | clickd(800, 196, 860, 228) 1397 | print("OK") 1398 | print("Touch start", end="....") 1399 | while 1: # touch start 1400 | randsleep(0.15, 0.3) 1401 | scr_img = background_screenshot(bluestackhw, 960, 572) 1402 | clickhere = pyautogui.locate(img_darkgogo, scr_img, confidence=0.8) 1403 | if clickhere is not None: 1404 | randsleep(0.2, 0.35) 1405 | clickd(361, 367, 408, 400) 1406 | randsleep(0.1, 0.3) 1407 | for i in range(0,random.randint(3,4)): 1408 | clickd(361, 367, 408, 400) 1409 | randsleep(0.1, 0.3) 1410 | print("OK") 1411 | break 1412 | print("Touch team", end="....") 1413 | print("OK") 1414 | print("Close team window", end="....") 1415 | while 1: # wait to kanji window 1416 | randsleep(0.1, 0.3) 1417 | scr_img = background_screenshot(bluestackhw, 960, 572) 1418 | clickhere = pyautogui.locate(img_kanji, scr_img, confidence=0.8) 1419 | clickd(880, 167, 907, 168) 1420 | if clickhere is not None: 1421 | break 1422 | while 1: 1423 | randsleep(0.1, 0.3) 1424 | scr_img = background_screenshot(bluestackhw, 960, 572) 1425 | clickhere = pyautogui.locate(img_darkteam, scr_img, confidence=0.8) 1426 | clickd(300, 40, 700, 80) 1427 | if clickhere is not None: 1428 | randsleep(0.1, 0.3) 1429 | clickd(800, 500, 900, 553) 1430 | randsleep(0.1, 0.3) 1431 | for i in range(0,random.randint(2,3)): 1432 | clickd(800, 500, 900, 553) 1433 | randsleep(0.1, 0.3) 1434 | break 1435 | print("OK") 1436 | print("Touch boss", end="....") 1437 | while 1: # touch start 1438 | randsleep(0.15, 0.3) 1439 | scr_img = background_screenshot(bluestackhw, 960, 572) 1440 | clickhere = pyautogui.locate(img_boss, scr_img, confidence=0.8) 1441 | if clickhere is not None: 1442 | randsleep(1, 1.3) 1443 | for i in range(0,random.randint(2,3)): 1444 | clickd(818, 509, 913, 540) 1445 | randsleep(0.1, 0.3) 1446 | break 1447 | print("OK") 1448 | print("Touch start", end="....") 1449 | while 1: # touch start 1450 | randsleep(0.15, 0.3) 1451 | scr_img = background_screenshot(bluestackhw, 960, 572) 1452 | clickhere = pyautogui.locate(img_start, scr_img, confidence=0.7) 1453 | if clickhere is not None: 1454 | randsleep(0.1, 0.3) 1455 | clickd(490, 358, 510, 376) 1456 | randsleep(0.1, 0.3) 1457 | clickd(490, 358, 510, 376) 1458 | for i in range(0,random.randint(3,4)): 1459 | randsleep(0.1, 0.3) 1460 | clickd(490, 358, 510, 376) 1461 | break 1462 | print("OK") 1463 | print("-Battle phase 1 started-") 1464 | # battle phase 1 1465 | print("Touch auto", end="....") 1466 | while 1: # touch auto 1467 | randsleep(0.15, 0.3) 1468 | scr_img = background_screenshot(bluestackhw, 960, 572) 1469 | clickhere = pyautogui.locate(img_auto, scr_img, confidence=0.8) 1470 | if clickhere is not None: 1471 | randsleep(2, 2.3) 1472 | clickd(872, 527, 924, 544) 1473 | randsleep(0.1, 0.3) 1474 | break 1475 | print("OK") 1476 | stagefine() 1477 | print("-Stage finished-") 1478 | # battle phase 1 ended 1479 | print("Touch ok", end="....") 1480 | while 1: # touch yellow ok 1481 | randsleep(0.15, 0.3) 1482 | scr_img = background_screenshot(bluestackhw, 960, 572) 1483 | clickhere = pyautogui.locate(img_yellowok, scr_img, confidence=0.8) 1484 | if clickhere is not None: 1485 | randsleep(0.1, 0.3) 1486 | clickd(425, 509, 536, 538) 1487 | randsleep(0.1, 0.3) 1488 | break 1489 | print("OK") 1490 | print("Touch phase end", end="....") 1491 | while 1: # touch phase end 1492 | randsleep(0.15, 0.3) 1493 | scr_img = background_screenshot(bluestackhw, 960, 572) 1494 | clickhere = pyautogui.locate(img_2roundsay, scr_img, confidence=0.8) 1495 | if clickhere is not None: 1496 | randsleep(0.1, 0.3) 1497 | for i in range(0,random.randint(3,4)): 1498 | clickd(830, 514, 917, 544) 1499 | randsleep(0.1, 0.3) 1500 | break 1501 | print("OK") 1502 | print("Touch Boss", end="....") 1503 | while 1: # touch Boss 1504 | randsleep(0.15, 0.3) 1505 | scr_img = background_screenshot(bluestackhw, 960, 572) 1506 | clickhere = pyautogui.locate(img_2roundsay2, scr_img, confidence=0.8) 1507 | if clickhere is not None: 1508 | randsleep(0.1, 0.3) 1509 | for i in range(0,random.randint(3,4)): 1510 | clickd(562, 319, 582, 330) 1511 | randsleep(0.1, 0.3) 1512 | break 1513 | print("OK") 1514 | print("-Battle phase 2-") 1515 | # battle phase 2 1516 | stagefine() 1517 | # # battel phase 2 ended 1518 | # print("Touch yellow ok", end="....") 1519 | # while 1: # touch yellow ok 1520 | # randsleep(0.15, 0.3) 1521 | # scr_img = background_screenshot(bluestackhw, 960, 572) 1522 | # clickhere = pyautogui.locate(img_missionok, scr_img, confidence=0.8) 1523 | # if clickhere is not None: 1524 | # randsleep(0.7, 1) 1525 | # randsleep(0.7, 1) 1526 | # for i in range(0,random.randint(3,4)): 1527 | # click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 1528 | # randsleep(0.1, 0.3) 1529 | # break 1530 | # print("OK") 1531 | print("Touch robihe", end="....") 1532 | while 1: # touch robi he 1533 | randsleep(0.1, 0.3) 1534 | scr_img = background_screenshot(bluestackhw, 960, 572) 1535 | clickhere = pyautogui.locate(img_robihe, scr_img, confidence=0.8) 1536 | clickd(687, 446, 869, 517) 1537 | if clickhere is not None: 1538 | randsleep(0.5, 0.7) 1539 | for i in range(0,random.randint(5,7)): 1540 | clickd(342, 510, 442, 539) 1541 | randsleep(0.1, 0.3) 1542 | break 1543 | print("OK") 1544 | print("Wait append table", end="....") 1545 | # append table 1546 | while 1: 1547 | randsleep(0.15, 0.3) 1548 | scr_img = background_screenshot(bluestackhw, 960, 572) 1549 | clickhere = pyautogui.locate(img_append, scr_img, confidence=0.8) 1550 | if clickhere is not None: 1551 | break 1552 | print("OK") 1553 | # print("Close notice", end="....") 1554 | # while 1: 1555 | # randsleep(0.1, 0.3) 1556 | # scr_img = background_screenshot(bluestackhw, 960, 572) 1557 | # clickhere = pyautogui.locate(img_news, scr_img, confidence=0.8) 1558 | # clickd(840, 100, 856, 116) 1559 | # if clickhere is not None: 1560 | # randsleep(0.3, 0.5) 1561 | # clickd(840, 100, 856, 116) 1562 | # break 1563 | # print("OK") 1564 | print("Touch momotalk", end="....") 1565 | randsleep(0.5, 0.7) 1566 | while 1: # touch momotalk 1567 | randsleep(0.1, 0.3) 1568 | scr_img = background_screenshot(bluestackhw, 960, 572) 1569 | clickhere = pyautogui.locate(img_momotalk, scr_img, confidence=0.8) 1570 | clickd(119, 114, 134, 154) 1571 | if clickhere is not None: 1572 | randsleep(0.1, 0.3) 1573 | clickd(119, 114, 134, 154) 1574 | randsleep(0.1, 0.3) 1575 | clickd(119, 114, 134, 154) 1576 | randsleep(0.1, 0.3) 1577 | break 1578 | print("OK") 1579 | print("Touch momotalk close", end="....") 1580 | while 1: # touch momotalk close 1581 | randsleep(0.1, 0.3) 1582 | scr_img = background_screenshot(bluestackhw, 960, 572) 1583 | clickhere = pyautogui.locate(img_momotalkclose, scr_img, confidence=0.8) 1584 | clickd(110, 223, 141, 246) 1585 | if clickhere is not None: 1586 | randsleep(0.1, 0.3) 1587 | clickd(110, 223, 141, 246) 1588 | randsleep(0.1, 0.3) 1589 | clickd(110, 223, 141, 246) 1590 | randsleep(0.1, 0.3) 1591 | clickd(824, 110, 842, 129) 1592 | randsleep(0.1, 0.3) 1593 | break 1594 | print("OK") 1595 | print("Touch mailbox", end="....") 1596 | while 1: # touch mailbox 1597 | randsleep(0.15, 0.3) 1598 | scr_img = background_screenshot(bluestackhw, 960, 572) 1599 | clickhere = pyautogui.locate(img_mainchar, scr_img, confidence=0.8) 1600 | if clickhere is not None: 1601 | randsleep(0.1, 0.3) 1602 | clickd(836, 54, 866, 69) 1603 | randsleep(0.1, 0.3) 1604 | print("OK") 1605 | break # touch mail box 1606 | print("OK") 1607 | print("Touch allreciv", end="....") 1608 | while 1: # touch guest 1609 | randsleep(0.15, 0.3) 1610 | scr_img = background_screenshot(bluestackhw, 960, 572) 1611 | clickhere = pyautogui.locate(img_allreciv, scr_img, confidence=0.8) 1612 | if clickhere is not None: 1613 | randsleep(0.5, 0.7) 1614 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 1615 | randsleep(0.1, 0.3) 1616 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 1617 | randsleep(0.1, 0.3) 1618 | print("OK") 1619 | break 1620 | print("OK") 1621 | print("Go home", end="....") 1622 | while 1: # touch go home 1623 | randsleep(0.15, 0.3) 1624 | scr_img = background_screenshot(bluestackhw, 960, 572) 1625 | clickhere = pyautogui.locate(img_allrecivfine, scr_img, confidence=0.8) 1626 | clickd(621, 115, 827, 444) 1627 | if clickhere is not None: 1628 | randsleep(0.4, 0.65) 1629 | clickd(902, 39, 930, 60) 1630 | randsleep(0.1, 0.2) 1631 | clickd(902, 39, 930, 60) 1632 | randsleep(0.1, 0.2) 1633 | clickd(902, 39, 930, 60) 1634 | randsleep(0.1, 0.2) 1635 | break 1636 | print("OK") 1637 | print("Touch Student", end="....") 1638 | while 1: 1639 | randsleep(0.1, 0.3) 1640 | scr_img = background_screenshot(bluestackhw, 960, 572) 1641 | clickhere = pyautogui.locate(img_instudent, scr_img, confidence=0.8) 1642 | clickd(241, 501, 269, 534) 1643 | if clickhere is not None: 1644 | randsleep(0.1, 0.2) 1645 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 1646 | randsleep(0.1, 0.2) 1647 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 1648 | randsleep(0.1, 0.2) 1649 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 1650 | randsleep(0.1, 0.2) 1651 | click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 1652 | break 1653 | 1654 | print("Touch Home", end="....") 1655 | while 1: 1656 | randsleep(0.07, 0.15) 1657 | scr_img = background_screenshot(bluestackhw, 960, 572) 1658 | clickhere = pyautogui.locate(img_darkmain, scr_img, confidence=0.8) 1659 | clickd(902, 39, 930, 60) 1660 | if clickhere is not None: 1661 | break 1662 | 1663 | print("Touch account", end="....") 1664 | while 1: 1665 | randsleep(0.1, 0.3) 1666 | scr_img = background_screenshot(bluestackhw, 960, 572) 1667 | clickhere = pyautogui.locate(img_account, scr_img, confidence=0.8) 1668 | clickd(890, 50, 920, 70) 1669 | if clickhere is not None: 1670 | randsleep(0.1, 0.3) 1671 | clickd(495, 270, 634,301) 1672 | randsleep(0.1, 0.3) 1673 | break 1674 | print("OK") 1675 | # print("Touch mission", end="....") 1676 | # while 1: # touch mission 1677 | # randsleep(0.1, 0.2) 1678 | # scr_img = background_screenshot(bluestackhw, 960, 572) 1679 | # clickhere = pyautogui.locate(img_mainchar, scr_img, confidence=0.8) 1680 | # clickd(35, 192, 56, 225) 1681 | # if clickhere is not None: 1682 | # randsleep(0.1, 0.2) 1683 | # clickd(35, 192, 56, 225) 1684 | # randsleep(0.1, 0.3) 1685 | # print("OK") 1686 | # break 1687 | # print("OK") 1688 | # print("Touch allreciv", end="....") 1689 | # while 1: # touch allreciv 1690 | # randsleep(0.15, 0.3) 1691 | # scr_img = background_screenshot(bluestackhw, 960, 572) 1692 | # clickhere = pyautogui.locate(img_allreciv, scr_img, confidence=0.8) 1693 | # if clickhere is not None: 1694 | # randsleep(0.5, 0.7) 1695 | # click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 1696 | # randsleep(0.1, 0.3) 1697 | # click(clickhere[0], clickhere[1], clickhere[2], clickhere[3]) 1698 | # randsleep(0.1, 0.3) 1699 | # print("OK") 1700 | # break 1701 | print("Touch gacha", end="....") 1702 | while 1: # touch gacha 1703 | randsleep(0.15, 0.3) 1704 | clickd(902, 39, 930, 60) 1705 | scr_img = background_screenshot(bluestackhw, 960, 572) 1706 | clickhere = pyautogui.locate(img_mainchar, scr_img, confidence=0.8) 1707 | if clickhere is not None: 1708 | clickd(902, 39, 930, 60) 1709 | randsleep(0.3, 0.6) 1710 | clickd(688, 500, 710, 532) 1711 | randsleep(0.1, 0.3) 1712 | clickd(688, 500, 710, 532) 1713 | randsleep(0.1, 0.3) 1714 | break 1715 | while 1: # touch gacha 1716 | randsleep(0.15, 0.2) 1717 | clickd(688, 500, 710, 532) 1718 | scr_img = background_screenshot(bluestackhw, 960, 572) 1719 | clickhere = pyautogui.locate(img_pointfront, scr_img, confidence=0.8) 1720 | if clickhere is not None: 1721 | break 1722 | gacha(tm, gacha_result) 1723 | print("Touch Home", end="....") 1724 | while 1: 1725 | randsleep(0.07, 0.15) 1726 | scr_img = background_screenshot(bluestackhw, 960, 572) 1727 | clickhere = pyautogui.locate(img_mainchar, scr_img, confidence=0.8) 1728 | clickd(902, 39, 930, 60) 1729 | if clickhere is not None: 1730 | print("-ended-") 1731 | break 1732 | 1733 | if __name__ == "__main__": 1734 | cycle = cycle + 1 1735 | print("###############################") 1736 | print("# 대상 디바이스 번호 : " + sys.argv[2]) 1737 | print("# 리세 횟수 : " + str(cycle)) 1738 | print("###############################") 1739 | resetmara1st() 1740 | print("계속하시겠습니까? (y / n) : ") 1741 | a = input() 1742 | if a != 'y': 1743 | exit() 1744 | while 1: 1745 | print("###############################") 1746 | print("# 대상 디바이스 번호 : " + sys.argv[2]) 1747 | print("# 리세 횟수 : " + str(cycle)) 1748 | print("###############################") 1749 | cycle = cycle + 1 1750 | resetmara() 1751 | while 1: 1752 | print("계속하시겠습니까? (y / n) : ") 1753 | a = input() 1754 | if a == 'y': 1755 | break 1756 | else: 1757 | continue --------------------------------------------------------------------------------