import keyboard import mouse import math class HumanActions: def __init__(self, mouseDiscount: float = 10, screenW: int = 1920, screenH: int = 1080): def multiPressed(): pass keyboard.add_hotkey("w+a", multiPressed) keyboard.add_hotkey("w+d", multiPressed) keyboard.add_hotkey("s+a", multiPressed) keyboard.add_hotkey("s+d", multiPressed) self.screenW = screenW self.screenH = screenH self.MOUSEDISCOUNT = mouseDiscount self.mouseSmooth = 5 self.mouseMax = 10 def getHumanActions(self): x, _ = mouse.get_position() xMovement = (x - self.screenW / 2) / self.MOUSEDISCOUNT xMovement = self.smoothMouseMovement(xMovement) ws = 0 ad = 0 click = 0 if keyboard.is_pressed("w"): ws = 1 elif keyboard.is_pressed("s"): ws = 2 if keyboard.is_pressed("d"): ad = 1 elif keyboard.is_pressed("a"): ad = 2 if keyboard.is_pressed("w+d"): ws = 1 ad = 1 elif keyboard.is_pressed("w+a"): ws = 1 ad = 2 elif keyboard.is_pressed("s+d"): ws = 2 ad = 1 elif keyboard.is_pressed("s+a"): ws = 2 ad = 2 if keyboard.is_pressed("0"): click = 1 actions = [ws, ad, click, xMovement] mouse.move(self.screenW / 2, self.screenH / 2) return actions def smoothMouseMovement(self, x: float): out = (1 / (1 + math.exp(-x / self.mouseSmooth)) - 1 / 2) * self.mouseMax * 2 return out