import pymem
import pymem.process
import ctypes
import time
# Статичный оффсет (зелёный адрес)
OFFSET_ON_GROUND = 0x122E2D4 # hw.dll + 0x122E2D4 (1 на земле, 0 в воздухе)
OFFSET_FORCE_JUMP = 0x131434 # client.dll + 0x131434 (5 = прыжок, 4 = отпустить)
def main():
print("=== CS 1.6 Bunny Hop ===")
print("Rutube: https://rutube.ru/channel/43805541")
print("Telegram: hackeriks")
print()
try:
pm = pymem.Pymem("hl.exe")
print("[+] hl.exe найден")
except:
print("[-] CS 1.6 не запущена")
return
# Получаем базы модулей
engine = pymem.process.module_from_name(pm.process_handle, "hw.dll")
client = pymem.process.module_from_name(pm.process_handle, "client.dll")
engine_base = engine.lpBaseOfDll
client_base = client.lpBaseOfDll
on_ground_addr = engine_base + OFFSET_ON_GROUND
force_jump_addr = client_base + OFFSET_FORCE_JUMP
print(f"[+] OnGround адрес: {hex(on_ground_addr)}")
print(f"[+] ForceJump адрес: {hex(force_jump_addr)}")
print()
print("[*] Зажмите ПРОБЕЛ для автоматического прыжка")
print("[*] F1 - вкл/выкл, END - выход")
enabled = True
was_on_ground = False
while True:
# Выход по END
if ctypes.windll.user32.GetAsyncKeyState(0x23) & 1:
break
# Вкл/выкл по F1
if ctypes.windll.user32.GetAsyncKeyState(0x70) & 1:
enabled = not enabled
print(f"Bunny Hop: {'ON' if enabled else 'OFF'}")
time.sleep(0.2)
if not enabled:
time.sleep(0.05)
continue
# Проверка пробела
space_pressed = ctypes.windll.user32.GetAsyncKeyState(0x20) & 0x8000
if space_pressed:
on_ground = pm.read_int(on_ground_addr)
if on_ground == 1 and not was_on_ground:
pm.write_int(force_jump_addr, 5)
time.sleep(0.01)
pm.write_int(force_jump_addr, 4)
was_on_ground = True
elif on_ground == 0:
was_on_ground = False
time.sleep(0.005)
print("[*] Выход")
if __name__ == "__main__":
main()