53 lines
No EOL
4.1 KiB
Python
53 lines
No EOL
4.1 KiB
Python
# Горячая клавиша вкл/выкл бота
|
||
TOGGLE_HOTKEY = "f6"
|
||
|
||
# Клавиша, которую бот нажимает при попадании курсора в узкую (целевую) зону
|
||
ACTION_KEY = "e"
|
||
KEY_PRESS_DELAY = 0.03 # длительность удержания клавиши, сек
|
||
|
||
# HSV-диапазон (OpenCV: H 0-179) для "синего" - им окрашены и сама шкала, и курсор.
|
||
# Панель полупрозрачная, поэтому яркость/насыщенность шкалы заметно меняются
|
||
# в зависимости от того, что видно позади неё (тёмная сцена против яркой) -
|
||
# пороги намеренно ослаблены, чтобы захватывать оба случая.
|
||
BLUE_HUE_MIN = 85
|
||
BLUE_HUE_MAX = 135
|
||
BLUE_SAT_MIN = 100
|
||
BLUE_VAL_MIN = 100
|
||
|
||
# Критерии формы шкалы (вытянутый синий прямоугольник)
|
||
BAR_MIN_WIDTH_RATIO = 0.06 # минимальная ширина шкалы относительно ширины экрана
|
||
BAR_MAX_HEIGHT_RATIO = 0.08 # максимальная высота шкалы относительно высоты экрана
|
||
BAR_MIN_ASPECT_RATIO = 4.0 # ширина / высота
|
||
BAR_COLUMN_MERGE_GAP_RATIO = 0.05 # макс. разрыв между фрагментами шкалы (из-за зон), относительно ширины экрана
|
||
BAR_MIN_FILL_RATIO = 0.6 # доля синих пикселей внутри прямоугольника шкалы (она почти сплошная)
|
||
|
||
# Критерии курсора (отдельное синее пятно под шкалой)
|
||
CURSOR_MAX_WIDTH_RATIO = 0.5 # относительно ширины шкалы
|
||
CURSOR_SEARCH_HEIGHT_RATIO = 2.0 # во сколько раз зона поиска курсора выше шкалы
|
||
|
||
# Зоны (узкая/широкая) - яркие цветные пятна внутри шкалы, не считая синего
|
||
# фона самой шкалы. В разных мини-играх насыщенность зон отличается заметно
|
||
# (вплоть до ~45 у блёклой кремовой широкой зоны), поэтому порог занижен -
|
||
# от ложных срабатываний защищает исключение синего оттенка (_blue_hue_mask).
|
||
ZONE_SAT_MIN = 40
|
||
ZONE_VAL_MIN = 100
|
||
ZONE_MIN_AREA = 30 # минимальный размер пятна-зоны, в пикселях
|
||
ZONE_MIN_HEIGHT_RATIO = 0.5 # пятно должно покрывать минимум половину высоты шкалы
|
||
|
||
# Интервал повторных попыток найти шкалу, когда она не видна на экране (сек)
|
||
LOCATE_RETRY_INTERVAL = 1
|
||
|
||
# После скольких подряд неудачных кадров считать, что шкала исчезла, и искать заново
|
||
MAX_TRACK_MISSES = 30
|
||
|
||
# Целевая частота опроса в режиме отслеживания курсора (кадров/сек)
|
||
TRACK_FPS = 60
|
||
|
||
# На сколько секунд вперёд предсказывать положение курсора при проверке
|
||
# попадания в зону - компенсирует суммарную задержку (захват кадра + обработка
|
||
# + время до того, как нажатие клавиши подействует в игре). Курсор может
|
||
# проскочить узкую зону за время этой задержки, поэтому решение о нажатии
|
||
# принимается по предсказанной позиции = текущая + скорость * это время.
|
||
# Увеличивайте, если нажатие происходит позже, чем нужно; уменьшайте/обнулите,
|
||
# если нажатие происходит раньше входа в зону.
|
||
CURSOR_LEAD_TIME = 0.10 |