65 lines
3.2 KiB
Markdown
65 lines
3.2 KiB
Markdown
# 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`.
|