Загрузка данных


import mss
import numpy as np
import time
import random
import interception

# ========== ИНИЦИАЛИЗАЦИЯ ДРАЙВЕРА ==========
interception.auto_capture_devices()

# Ищем мышь
mouse = None
for device in interception.devices:
    if interception.is_mouse(device):
        mouse = device
        break

if mouse is None:
    print("[ОШИБКА] Мышь не найдена. Проверь установку драйвера Interception.")
    exit()

print(f"[OK] Драйвер готов. Мышь: {interception.get_hardware_id(mouse)}")

# ========== ФУНКЦИЯ КЛИКА ЧЕРЕЗ ДРАЙВЕР ==========
def hardware_click():
    """Клик левой кнопкой через драйвер (система видит как настоящий)"""
    # Нажать левую кнопку (код 0x01)
    stroke_down = interception.MouseStroke()
    stroke_down.flags = interception.MouseFlag.LEFT_BUTTON_DOWN
    stroke_down.rolling = 0
    stroke_down.information = 0
    
    # Отпустить левую кнопку
    stroke_up = interception.MouseStroke()
    stroke_up.flags = interception.MouseFlag.LEFT_BUTTON_UP
    stroke_up.rolling = 0
    stroke_up.information = 0
    
    # Отправляем с микро-задержкой между нажатием и отпусканием
    interception.send(mouse, stroke_down)
    time.sleep(random.uniform(0.005, 0.015))  # Длительность клика (5-15мс)
    interception.send(mouse, stroke_up)

def micro_move():
    """Сдвинуть мышь на 1-2 пикселя для анти-AFK"""
    stroke = interception.MouseStroke()
    stroke.flags = interception.MouseFlag.MOVE
    stroke.x = random.randint(-2, 2)
    stroke.y = random.randint(-2, 2)
    stroke.rolling = 0
    stroke.information = 0
    interception.send(mouse, stroke)

# ========== НАСТРОЙКИ (ПОДСТРОЙ ПОД СЕБЯ) ==========
TRIGGER_ZONE = {
    "left": 955,    # Поменяй под своё разрешение!
    "top": 535,
    "width": 8,
    "height": 8
}

# Цвет врага (красная обводка). Подстрой пипеткой из Paint!
R_MIN = 170
G_MAX = 100
B_MAX = 100

# Анти-робот
MIN_DELAY = 0.010   # Мин. задержка (сек)
MAX_DELAY = 0.035   # Макс. задержка
CHANCE = 0.87       # Шанс выстрела (87%)

# Анти-AFK
AFK_TIME = 55       # Секунд между микро-движениями

# ========== ГЛАВНЫЙ ЦИКЛ ==========
last_move = time.time()

print("[ПОИСК] Ожидаю врага в прицеле...")

with mss.mss() as sct:
    while True:
        img = np.array(sct.grab(TRIGGER_ZONE))
        
        r = img[:, :, 2].mean()
        g = img[:, :, 1].mean()
        b = img[:, :, 0].mean()
        
        # Проверка: красный (враг) есть, зелёного/синего (союзник) нет
        if r > R_MIN and g < G_MAX and b < B_MAX:
            if random.random() < CHANCE:
                time.sleep(random.uniform(MIN_DELAY, MAX_DELAY))
                hardware_click()
                time.sleep(0.07)  # Кулдаун от спама
        
        # Анти-AFK дёрганье
        if time.time() - last_move > AFK_TIME:
            micro_move()
            last_move = time.time()
        
        time.sleep(0.001)