я так понимаю квадрат всегда в одном месте, тогда если он абсолютно монотонный, в область поиска просто задаем ту область где он находится, потом берем десятичное значение цвета этого квадрата, отнимаем единичку, прибавляем единичку и переводим эти значения в RGB, в зависимости от того какой канал меняется пишем диапазон цветов в findcolor, их придется использовать два. Вот пример на красном квадрате
Код
--lua
while 1 do
local a = findcolor (603, 171, 739, 306, "(R(0-236)+G(0-255)+B(0-255))", '%ar', 2, 1, 0)
if a ~= nil then
move (ar[1][1], ar[1][2])
break
end
local b = findcolor (603, 171, 739, 306, "(R(238-255)+G(0-255)+B(0-255))", '%br', 2, 1, 0)
if b ~= nil then
move (br[1][1], br[1][2])
break
end
end
как видите в красном канале отсутствует число 237, это исключает из поиска цвет квадрата. Может я че-то начудил, но у меня в пэинте вроде работает.