Что нового

Скрипт для действия при появлении объекта в области

Leniva9Mraz

Новичок
Сообщения
1
Репутация
0
Всем привет, нужен скрипт для нажатия клавиш (wad) при появлении объекта в определенных (3) местах, пробовал переписать скрипт, который ищет цвет, не вышло: на маленький диапазон цвета не срабатывал, на 255 просто постоянно долбил одну клавишу.
 

chery

Новичок
Сообщения
5
Репутация
0
Создание скрипта, который будет нажимать клавиши (WAD) при появлении объекта в определенных местах, возможно с помощью AutoHotkey. Сначала определим координаты точек, где скрипт должен искать объект. Затем скрипт будет периодически проверять пиксели на экране и сравнивать их цвет с заданным цветом объекта. Если цвет совпадает, скрипт будет нажимать соответствующую клавишу.

Код:
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%

; Замените 'objectColor' на цвет объекта в формате 'RRGGBB' (например, 'FF0000' для красного)
objectColor := "FF0000"

; Задайте допустимый диапазон цвета (от 0 до 255)
tolerance := 20

; Задайте координаты точек для проверки
points := [{x: 100, y: 200, key: "W"}
          , {x: 300, y: 200, key: "A"}
          , {x: 500, y: 200, key: "D"}]

Loop
{
    for index, point in points
    {
        ; Получаем цвет пикселя на экране
        PixelGetColor, currentColor, point.x, point.y
        
        ; Сравниваем цвета с учетом допустимого диапазона
        if (ColorInRange(currentColor, objectColor, tolerance))
        {
            ; Нажимаем соответствующую клавишу
            SendInput, % point.key
        }
    }
    
    ; Задержка между проверками (в миллисекундах)
    Sleep, 100
}
return

ColorInRange(currentColor, targetColor, tolerance)
{
    r1 := "0x" . SubStr(currentColor, 2, 2)
    g1 := "0x" . SubStr(currentColor, 4, 2)
    b1 := "0x" . SubStr(currentColor, 6, 2)
    
    r2 := "0x" . SubStr(targetColor, 2, 2)
    g2 := "0x" . SubStr(targetColor, 4, 2)
    b2 := "0x" . SubStr(targetColor, 6, 2)
    
    return (Abs(r1 - r2) <= tolerance) && (Abs(g1 - g2) <= tolerance) && (Abs(b1 - b2) <= tolerance)
}


  1. Замените objectColor на цвет объекта, который вы хотите обнаружить, и задайте значение допустимого диапазона для цвета в переменной tolerance. Замените координаты точек и соответствующие клавиши в массиве points. Если вам необходимо проверять больше точек, добавьте их в массив.
  1. Запустите скрипт, дважды кликнув на файле ".ahk". Теперь скрипт будет периодически проверять указанные точки на экране и сравнивать их цвет с заданным цветом объекта. Если цвет совпадает, скрипт будет нажимать соответствующую клавишу.
Обратите внимание, что частая проверка цвета пикселей может привести к повышению нагрузки на ваш компьютер. Вы можете увеличить значение задержки между проверками (в миллисекундах) в строке Sleep, 100 для снижения нагрузки.
Также учтите, что данный скрипт будет работать только в случае, если объект имеет однородный цвет. Если объект имеет градиент или разнообразные цвета, скрипт может не сработать корректно. В таком случае потребуется более сложный подход, например, использование программ для распознавания изображений.
 
Верх