APEX_AIMBOT/schema/settings.py
2024-12-10 23:54:57 -05:00

83 lines
2.8 KiB
Python

from pydantic import BaseModel, Field, validator
import win32con
KEY_MAP = {
"F1": win32con.VK_F1,
"F2": win32con.VK_F2,
"F3": win32con.VK_F3,
"F4": win32con.VK_F4,
"F5": win32con.VK_F5,
"F6": win32con.VK_F6,
"F7": win32con.VK_F7,
"F8": win32con.VK_F8,
"F9": win32con.VK_F9,
"F10": win32con.VK_F10,
"F11": win32con.VK_F11,
"F12": win32con.VK_F12,
"Escape": win32con.VK_ESCAPE,
"Tab": win32con.VK_TAB,
"CapsLock": win32con.VK_CAPITAL,
"LeftShift": win32con.VK_LSHIFT,
"Shift": win32con.VK_LSHIFT,
"RightShift": win32con.VK_RSHIFT,
"LeftControl": win32con.VK_LCONTROL,
"Control": win32con.VK_LCONTROL,
"RightControl": win32con.VK_RCONTROL,
"LeftAlt": win32con.VK_LMENU,
"Alt": win32con.VK_LMENU,
"RightAlt": win32con.VK_RMENU,
"Enter": win32con.VK_RETURN,
"Backspace": win32con.VK_BACK,
"Delete": win32con.VK_DELETE,
"Insert": win32con.VK_INSERT,
"Home": win32con.VK_HOME,
"End": win32con.VK_END,
"PageUp": win32con.VK_PRIOR,
"PageDown": win32con.VK_NEXT,
"LeftMouseButtonDown": win32con.VK_LBUTTON,
"RightMouseButtonDown": win32con.VK_RBUTTON,
"MiddleMouseButtonDown": win32con.VK_MBUTTON,
}
class Settings(BaseModel):
movementAmp: float = Field(default=0.3)
useMask: bool = Field(default=False)
maskLeft: bool = Field(default=True)
maskWidth: int = Field(default=80)
maskHeight: int = Field(default=200)
quitKey: int = Field(default=ord("Q"))
screenShotHeight: int = Field(default=320)
screenShotWidth: int = Field(default=320)
confidence: float = Field(default=0.5)
headshotMode: bool = Field(default=True)
headshotDistanceModifier: float = Field(default=0.38)
displayCPS: bool = Field(default=True)
visuals: bool = Field(default=False)
centerOfScreen: bool = Field(default=True)
activationKey: int = Field(default=win32con.VK_CAPITAL)
autoFire: bool = Field(default=False)
autoFireActivationDistance: int = Field(default=50)
onnxChoice: int = Field(default=2)
fovCircle: bool = Field(default=False)
fovCircleRadius: int = Field(default=160)
fovCircleRadiusDetectionModifier: float = Field(default=1.0)
aimShakey: bool = Field(default=False)
aimShakeyStrength: int = Field(default=10)
toggleable: bool = Field(default=True)
gameTitle: str = Field(default=None)
@validator('activationKey', 'quitKey', pre=True)
def mapKey(cls, key):
if len(key) == 1:
try:
return ord(key.upper())
except Exception as e:
print("Invalid activation key")
print("Defaulting to CapsLock")
return KEY_MAP["CapsLock"]
return KEY_MAP[key]
class Config:
extra = "allow"