60 lines
1.4 KiB
Python
60 lines
1.4 KiB
Python
import sys
|
|
import pyMeow as pm
|
|
from pynput import keyboard
|
|
|
|
|
|
class Pointer:
|
|
local_player = 0x17E0A8
|
|
entity_list = 0x18AC04
|
|
player_count = 0x18AC0C
|
|
view_matrix = 0x17DFD0
|
|
|
|
|
|
class ProcessManager:
|
|
"""프로세스 및 모듈 초기화 관리"""
|
|
proc = None
|
|
base = None
|
|
|
|
@classmethod
|
|
def initialize(cls):
|
|
"""AssaultCube 프로세스 초기화"""
|
|
try:
|
|
cls.proc = pm.open_process("ac_client.exe")
|
|
cls.base = pm.get_module(cls.proc, "ac_client.exe")["base"]
|
|
print("Process and base initialized successfully.")
|
|
except Exception as e:
|
|
print(f"Error initializing process: {e}")
|
|
sys.exit(1)
|
|
|
|
@classmethod
|
|
def get_proc(cls):
|
|
return cls.proc
|
|
|
|
@classmethod
|
|
def get_base(cls):
|
|
return cls.base
|
|
|
|
|
|
class KeyboardManager:
|
|
"""키보드 입력 관리"""
|
|
left_shift_pressed = False
|
|
|
|
@classmethod
|
|
def setup(cls):
|
|
"""키보드 리스너 시작"""
|
|
listener = keyboard.Listener(on_press=cls._on_press, on_release=cls._on_release)
|
|
listener.start()
|
|
|
|
@classmethod
|
|
def _on_press(cls, key):
|
|
if key == keyboard.Key.shift_l:
|
|
cls.left_shift_pressed = True
|
|
|
|
@classmethod
|
|
def _on_release(cls, key):
|
|
if key == keyboard.Key.shift_l:
|
|
cls.left_shift_pressed = False
|
|
|
|
@classmethod
|
|
def is_left_shift_pressed(cls):
|
|
return cls.left_shift_pressed
|