You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

main.py 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. import cv2
  2. import time
  3. import pyautogui
  4. from datetime import datetime, date
  5. eol = int(0)
  6. def find(image, coef=None):
  7. template = cv2.imread("assets/{}".format(image), 0)
  8. width, height = template.shape[::-1]
  9. screen = cv2.imread("screenshot.png", 0)
  10. width2, height2 = screen.shape[::-1]
  11. match = cv2.matchTemplate(screen, template, cv2.TM_CCOEFF_NORMED)
  12. value, location = cv2.minMaxLoc(match)[1], cv2.minMaxLoc(match)[3]
  13. if (value >= 0.85):
  14. return (location[0], location[1], width, height, value)
  15. else:
  16. return None
  17. def autoduelloop(eol):
  18. while True:
  19. time.sleep(1)
  20. pyautogui.screenshot("screenshot.png")
  21. # OK Button
  22. okbutton = find("ok.png")
  23. if okbutton != None:
  24. pyautogui.click((okbutton[0], okbutton[1]))
  25. break
  26. # Next
  27. nextbutton = find("next.png")
  28. if nextbutton != None:
  29. pyautogui.click((nextbutton[0], nextbutton[1]))
  30. break
  31. # Rescue Complete
  32. rescom = find("mark.png")
  33. if rescom != None:
  34. pyautogui.click((rescom[0], rescom[1]))
  35. break
  36. # Level Up
  37. levelup = find("lvlup.png")
  38. if levelup != None:
  39. pyautogui.click((levelup[0], levelup[1]))
  40. break
  41. # Dialog
  42. dialog = find("rndclick.png")
  43. if dialog != None:
  44. pyautogui.click((dialog[0], dialog[1]))
  45. break
  46. # Auto-Duel
  47. autoduel = find("autoduel.png")
  48. if autoduel != None:
  49. pyautogui.click((autoduel[0], autoduel[1]))
  50. break
  51. # Close
  52. close = find("close.png")
  53. if close != None:
  54. pyautogui.click((close[0], close[1]))
  55. break
  56. # Assist Duel
  57. trsbox = find("trsbox.png")
  58. if trsbox != None:
  59. pyautogui.scroll(-4000, pause=1)
  60. pyautogui.scroll(-4000, pause=1)
  61. time.sleep(1)
  62. pyautogui.screenshot("screenshot.png")
  63. assist = find("assistduel.png")
  64. if assist != None:
  65. pyautogui.click((assist[0], assist[1]))
  66. break
  67. # Active Duel
  68. duellog = find("duellog.png")
  69. if duellog != None:
  70. time.sleep(5)
  71. break
  72. # Reboot
  73. reboot = find("reboot.png")
  74. if reboot != None:
  75. pyautogui.click((reboot[0], reboot[1]))
  76. break
  77. # Initiate Link
  78. initiate = find("Initiatelink.png")
  79. if initiate != None:
  80. pyautogui.click((initiate[0], initiate[1]))
  81. break
  82. # Main Menu
  83. mainmenu = find("mainmenu.png")
  84. if mainmenu != None:
  85. pyautogui.click((950, 280))
  86. break
  87. # End of the Loop
  88. print(f"End of the Loop | EOL: {eol}")
  89. time.sleep(3)
  90. if eol >= 5:
  91. # Arrow
  92. arrow = find("arrow.png")
  93. if arrow != None:
  94. pyautogui.click((arrow[0], arrow[1]))
  95. break
  96. break
  97. while True:
  98. autoduelloop(eol)
  99. eol += 1
  100. if eol == 10:
  101. pyautogui.click((950, 280))
  102. elif eol >= 15:
  103. time.sleep(1)
  104. eol = int(0)
  105. pyautogui.screenshot(f"error/error-{datetime.now().strftime('%Y-%m-%d-%H-%M')}.png")