Advertisement
stalin_bro

Untitled

May 2nd, 2022
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.99 KB | None | 0 0
  1. """Бот для рыбалки WOW 3.3.5"""
  2. import time
  3.  
  4. from PIL import ImageGrab
  5. import cv2
  6. import numpy as np
  7. import pyautogui
  8.  
  9.  
  10. template = cv2.imread(f'Float_cv/float_1.png', 0)
  11. # Берем ширину и высоту шаблона
  12. w, h = template.shape[::-1]
  13. average = [0]
  14.  
  15. for _ in range(3):
  16.     time.sleep(4)
  17.     pyautogui.press('1')
  18.     time.sleep(1)
  19.     # for i in range(1, 13):
  20.     #     # Цикл 12 раз так-как 12 шаблонов для поиска
  21.     #     # Загрузка шаблонов поплавков
  22.     #     template = cv2.imread(f'Float_cv/float_{i}.png', 0)
  23.     #     # Берем ширину и высоту шаблона
  24.     #     w, h = template.shape[::-1]
  25.     #
  26.     #     # Делаем скриншот
  27.     #     screen_screenshot = ImageGrab.grab()
  28.     #     screen_screenshot.save("screenshot.png")
  29.     #
  30.     #     # Загружаем ранее сделанный скриншот
  31.     #     scrn_rgb = cv2.imread("screenshot.png")
  32.     #     scrn_gray = cv2.cvtColor(scrn_rgb, cv2.COLOR_BGR2GRAY)
  33.     #
  34.     #     # магия OpenCV, которая и находит наш темплейт на картинке
  35.     #     res = cv2.matchTemplate(scrn_gray, template, cv2.TM_CCOEFF_NORMED)
  36.     #
  37.     #     # numpy фильтрует наши результаты по порогу
  38.     #     loc = np.where(res >= 0.6)
  39.  
  40.     # Делаем скриншот
  41.     screen_screenshot = ImageGrab.grab()
  42.     screen_screenshot.save("screenshot.png")
  43.  
  44.     # Загружаем ранее сделанный скриншот и переводими в нужный CV формат
  45.     scrn_rgb = cv2.imread("screenshot.png")
  46.     scrn_gray = cv2.cvtColor(scrn_rgb, cv2.COLOR_BGR2GRAY)
  47.  
  48.     # магия OpenCV, которая и находит наш темплейт на картинке
  49.     res = cv2.matchTemplate(scrn_gray, template, cv2.TM_CCOEFF_NORMED)
  50.  
  51.     # numpy фильтрует наши результаты по порогу
  52.     loc = np.where(res >= 0.6)
  53.  
  54.     for _ in range(40):
  55.         try:
  56.             # получаем скриншот по местоположению поплавка
  57.             new_screenshot = ImageGrab.grab(bbox=(x, y, x + w, y + h))
  58.             mean = np.mean(new_screenshot)
  59.             diff = average[-1] - mean
  60.             print(average[-1] - mean)
  61.             if diff >= 4:
  62.                 pyautogui.moveTo(x, y)
  63.                 print('Курсор навелся на поплвок')
  64.                 pyautogui.click(button='right') # клик правой кнопкой мыши по поплавку
  65.                 break
  66.             average.append(mean)
  67.         except:
  68.             # ищем позицию поплавка
  69.             for pt in zip(*loc[::-1]):
  70.                 x = int(pt[0])
  71.                 y = int(pt[1])
  72.             time.sleep(0.2)
  73.  
  74.         try:
  75.             del(x)
  76.             del(y)
  77.  
  78.         except:
  79.             pass
  80.         average = [0]
  81.         time.sleep(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement