Added lang + findAndClick Function
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import time
|
||||
from threading import Thread
|
||||
from screeninfo import get_monitors
|
||||
from inspect import isfunction
|
||||
import pyautogui
|
||||
import numpy as np
|
||||
import cv2 as cv
|
||||
@@ -77,6 +78,21 @@ class Monitor:
|
||||
pyautogui.moveTo(point[0], point[1])
|
||||
time.sleep(0.15)
|
||||
|
||||
def findMatchAndClickIfAvailable(self, template, onSuccess = None, onNotFound = None):
|
||||
res = self.findMatchAndMoveToPosition(template)
|
||||
|
||||
if (res == -1):
|
||||
time.sleep(0.3)
|
||||
if isfunction(onNotFound) is True:
|
||||
return onNotFound(res)
|
||||
else:
|
||||
time.sleep(0.1)
|
||||
pyautogui.click()
|
||||
time.sleep(0.15)
|
||||
if (isfunction(onSuccess) is True):
|
||||
return onSuccess(res)
|
||||
|
||||
|
||||
def stopScreenCaptureThread(self):
|
||||
if (self.screenThread):
|
||||
self.screenThread.terminate()
|
||||
|
||||
+14
-11
@@ -15,25 +15,28 @@ class Player:
|
||||
self.config = json.load(jsonFile)
|
||||
self.isConnected = None
|
||||
self.idleThread = None
|
||||
self.enterWorldButton = cv.imread("assets/menus/EnterWorldButton.jpg", cv.IMREAD_GRAYSCALE)
|
||||
self.logger = Logger("Player Agent")
|
||||
self.state = PLAYER_STATE.IDLE
|
||||
self.monitor = monitor
|
||||
self.playerClass = self.config["class"]
|
||||
self.playerName = self.config["name"]
|
||||
self.antiAfk = self.config["antiAfk"]
|
||||
self.lang = self.config["lang"]
|
||||
self.enterWorldButton = cv.imread("assets/" + self.lang + "/menus/EnterWorldButton.jpg", cv.IMREAD_GRAYSCALE)
|
||||
self.reconnectButton = cv.imread("assets/" + self.lang + "/menus/Reconnect.jpg", cv.IMREAD_GRAYSCALE)
|
||||
self.logger.log("Connected with " + self.playerName + " (" + self.playerClass + ")")
|
||||
|
||||
def connectButtonFound(self):
|
||||
self.isConnected = CONNECT_STATUS.DISCONNECTED
|
||||
self.logger.log("Player not connected attempting to connect...")
|
||||
time.sleep(30)
|
||||
|
||||
def connectButtonNotFound(self):
|
||||
self.isConnected = CONNECT_STATUS.CONNECTED
|
||||
|
||||
def checkConnection(self):
|
||||
res = self.monitor.findMatch(self.enterWorldButton)
|
||||
if (res == -1):
|
||||
self.isConnected = CONNECT_STATUS.CONNECTED
|
||||
else:
|
||||
self.isConnected = CONNECT_STATUS.DISCONNECTED
|
||||
self.logger.log("Player not connected attempting to connect...")
|
||||
pyautogui.move(res[0], res[1])
|
||||
time.sleep(0.4)
|
||||
pyautogui.click()
|
||||
time.sleep(5)
|
||||
self.monitor.findMatchAndClickIfAvailable(self.enterWorldButton, self.connectButtonFound, self.connectButtonNotFound)
|
||||
self.monitor.findMatchAndClickIfAvailable(self.reconnectButton, self.connectButtonFound, self.connectButtonNotFound)
|
||||
|
||||
def changeState(self, newState):
|
||||
self.state = newState
|
||||
Reference in New Issue
Block a user