59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
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
|