Improvement on fishbot + config + idling bot

This commit is contained in:
2024-09-12 01:58:36 -04:00
parent 446e584b66
commit db5b3a521c
12 changed files with 133 additions and 12 deletions
+17 -10
View File
@@ -5,16 +5,23 @@ import time
import cv2 as cv
import pyautogui
from core.Logger import Logger
from core.Player import PLAYER_STATE
class FishingAgent:
def __init__(self, monitor) -> None:
self.logger = Logger("Fishing Agent")
self.retry = 0
self.monitor = monitor
self.lureLoc = None
def __init__(self, monitor, player) -> None:
self.fishingBobberImg = cv.imread("assets/fishing/Bobber.jpg", cv.IMREAD_GRAYSCALE)
self.fishingIconImg = cv.imread("assets/fishing/FishIcon.jpg", cv.IMREAD_GRAYSCALE)
self.fishingThread = None
self.logger = Logger("Fishing Agent")
self.monitor = monitor
self.lureLoc = None
self.player = player
self.retry = 0
def startFishing(self):
self.player.changeState(PLAYER_STATE.FISHING)
while self.player.state is PLAYER_STATE.FISHING:
self.castLure()
def castLure(self):
self.retry = 0
@@ -35,7 +42,7 @@ class FishingAgent:
if (res == -1):
if (self.retry > 4):
self.logger.log("Took too to find lure long, retrying fishing from the beginning")
self.castLure()
return
else:
self.logger.log("Trying again in 1 second...")
self.retry += 1
@@ -57,9 +64,9 @@ class FishingAgent:
if (res != -1 and abs(res[1] - self.lureLoc[1]) > 20):
pyautogui.click()
time.sleep(0.5)
self.castLure()
return
elif (self.retry > 200):
self.castLure()
return
def run(self):
self.logger.log("Starting fishing thread in 3 seconds...")
@@ -70,8 +77,8 @@ class FishingAgent:
time.sleep(1)
self.fishingThread = Thread(
target=self.castLure,
target=self.startFishing,
args=(),
name="fishing thread",
daemon=True)
daemon=True)
self.fishingThread.start()
+31
View File
@@ -0,0 +1,31 @@
import time
import pyautogui
from threading import Thread
from core.Logger import Logger
from core.Player import PLAYER_STATE
class IdlingAgent:
def __init__(self, playerAgent) -> None:
self.logger = Logger("Idling Agent")
self.idleTime = time.time()
self.idleThread = None
self.player = playerAgent
def checkIdleTime(self):
while self.player.state is PLAYER_STATE.IDLE:
elapsedTime = time.time() - self.idleTime
if (elapsedTime > 10):
self.logger.log("Jumping to avoid being afk...")
pyautogui.press("space")
self.idleTime = time.time()
time.sleep(0.5)
def run(self):
self.logger.log("Starting Idle Thread...")
self.idleThread = Thread(
target=self.checkIdleTime,
args=(),
name="idling thread",
daemon=True)
self.idleThread.start()