No description
Find a file
2026-06-14 13:00:35 +03:00
.idea Init 2026-06-13 12:19:38 +03:00
.env.example feat: add switch sound + update README.md + add env 2026-06-14 13:00:35 +03:00
bot.py feat: add switch sound + update README.md + add env 2026-06-14 13:00:35 +03:00
capture.py Init 2026-06-13 12:19:38 +03:00
config.py feat: add switch sound + update README.md + add env 2026-06-14 13:00:35 +03:00
debug_snapshot.py Init 2026-06-13 12:19:38 +03:00
input_sender.py Init 2026-06-13 12:19:38 +03:00
README.md feat: add switch sound + update README.md + add env 2026-06-14 13:00:35 +03:00
requirements.txt feat: add switch sound + update README.md + add env 2026-06-14 13:00:35 +03:00
vision.py Init 2026-06-13 12:19:38 +03:00

PerfectKachalka

Установка

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.