Added lang + findAndClick Function

This commit is contained in:
2024-09-22 13:41:23 -04:00
parent cdcc70d7de
commit 29f9ce5140
15 changed files with 50 additions and 43 deletions
+16
View File
@@ -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
View File
@@ -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