#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)
}