# PerfectKachalka ## Установка ```bash python -m venv venv .venv\Scripts\python.exe -m pip install -r requirements.txt cp .env.example .env ``` ## Запуск бота ``` .venv\Scripts\python.exe bot.py ``` - В консоли появится строка `Захват экрана: bettercam` (или `mss`, если bettercam не сработал - тогда эксклюзивный фуллскрин может не захватываться). - Переключитесь в игру. - **F6** - включить/выключить бота. При включении он один раз сканирует экран на наличие шкалы (повторяет попытку раз в секунду, если шкала пока не видна). - **Ctrl+C** в консоли - полностью завершить программу. ## Проверка детекции (опционально) ``` .venv\Scripts\python.exe debug_snapshot.py ``` - Скрипт ждёт 5 секунд - успейте переключиться в игру так, чтобы шкала мини-игры была видна на экране. - После снимка он напечатает найденные координаты шкалы/зоны/курсора и сохранит `debug_snapshot.png` с нарисованными рамками: синяя рамка - шкала, красная - узкая (целевая) зона, пурпурная линия - курсор. - Если что-то не нашлось, скрипт сохранит `debug_full.png` (полный кадр без рамок) - по нему можно подправить пороги в `config.py`. ## Если игра запущена с правами администратора `pydirectinput` может не достучаться до окна игры из-за защиты Windows (UIPI), если игра имеет более высокие привилегии, чем консоль. В этом случае запускайте терминал/`bot.py` от имени администратора. ## Подстройка таймингов При каждом нажатии E в консоли печатается строка вида: ``` [Bot] E нажата | cursor_x=... predicted_x=... zone=(...,...) | задержка цикла=... мс ``` - Если E срабатывает **позже**, чем курсор визуально входит в узкую зону - увеличьте `CURSOR_LEAD_TIME` в `config.py`, шаг ~0.02-0.03. - Если E срабатывает **раньше** входа в зону - уменьшите его. - Если "задержка цикла" заметно больше ~16 мс - система не успевает за 60 FPS, это тоже добавляет задержку. - Если в одном проходе курсора через зону E срабатывает несколько раз - потребуется сглаживание скорости курсора (сообщите, чтобы добавить). Изменения в `config.py` применяются после перезапуска `bot.py`.