Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """Бот для рыбалки WOW 3.3.5"""
- import time
- from PIL import ImageGrab
- import cv2
- import numpy as np
- import pyautogui
- template = cv2.imread(f'Float_cv/float_1.png', 0)
- # Берем ширину и высоту шаблона
- w, h = template.shape[::-1]
- average = [0]
- for _ in range(3):
- time.sleep(4)
- pyautogui.press('1')
- time.sleep(1)
- # for i in range(1, 13):
- # # Цикл 12 раз так-как 12 шаблонов для поиска
- # # Загрузка шаблонов поплавков
- # template = cv2.imread(f'Float_cv/float_{i}.png', 0)
- # # Берем ширину и высоту шаблона
- # w, h = template.shape[::-1]
- #
- # # Делаем скриншот
- # screen_screenshot = ImageGrab.grab()
- # screen_screenshot.save("screenshot.png")
- #
- # # Загружаем ранее сделанный скриншот
- # scrn_rgb = cv2.imread("screenshot.png")
- # scrn_gray = cv2.cvtColor(scrn_rgb, cv2.COLOR_BGR2GRAY)
- #
- # # магия OpenCV, которая и находит наш темплейт на картинке
- # res = cv2.matchTemplate(scrn_gray, template, cv2.TM_CCOEFF_NORMED)
- #
- # # numpy фильтрует наши результаты по порогу
- # loc = np.where(res >= 0.6)
- # Делаем скриншот
- screen_screenshot = ImageGrab.grab()
- screen_screenshot.save("screenshot.png")
- # Загружаем ранее сделанный скриншот и переводими в нужный CV формат
- scrn_rgb = cv2.imread("screenshot.png")
- scrn_gray = cv2.cvtColor(scrn_rgb, cv2.COLOR_BGR2GRAY)
- # магия OpenCV, которая и находит наш темплейт на картинке
- res = cv2.matchTemplate(scrn_gray, template, cv2.TM_CCOEFF_NORMED)
- # numpy фильтрует наши результаты по порогу
- loc = np.where(res >= 0.6)
- for _ in range(40):
- try:
- # получаем скриншот по местоположению поплавка
- new_screenshot = ImageGrab.grab(bbox=(x, y, x + w, y + h))
- mean = np.mean(new_screenshot)
- diff = average[-1] - mean
- print(average[-1] - mean)
- if diff >= 4:
- pyautogui.moveTo(x, y)
- print('Курсор навелся на поплвок')
- pyautogui.click(button='right') # клик правой кнопкой мыши по поплавку
- break
- average.append(mean)
- except:
- # ищем позицию поплавка
- for pt in zip(*loc[::-1]):
- x = int(pt[0])
- y = int(pt[1])
- time.sleep(0.2)
- try:
- del(x)
- del(y)
- except:
- pass
- average = [0]
- time.sleep(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement