AutoKachalka/README.md

65 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`.