1

Тема: AHK: ImageSearch и ErrorLevel 1

+ открыть спойлер
F1::
Loop
{
	ImageSearch, VarX, VarY, 19, 12, 890, 420, %A_ScriptDir%\Image1.png
	if ErrorLevel = 0
	{
		Sleep, 300
		SendInput, {E}
	}
	if ErrorLevel = 1
	{
		PixelGetColor, color, 242, 829, alt
		if color = 0xd4b465
		{
			Sleep, 1500
			SendInput, {F}
		}
	}
}
return

Все вроде работает, но, когда картинка не найдена, то идет поиск пикселя, этот пиксель остается еще несколько секунд после нажатия на 'F', а картинка появляется сразу после нажатия и почемуто PixelGetColor все еще работает, картинка же уже найдена, ErrorLevel 1 не должен работать, как я понимаю.
Нажимать на 'E' скрипт пытается, но из-за Sleep, 1500 это происходит вообще не так как надо, скрипт все еще пытается нажать на 'F', пока пиксель не исчезнет, а он исчезает около 5 секунд.
Вообще вся проблема тут изза Sleep, 1500, Sleep останавливает весь скрипт, но без этого никак не получается.

Я чтото делаю не так?
Может можно както сделать чтобы 'F' нажималась только один раз и далее игнорируя несколько секунд PixelGetColor либо Sleep, 1500


Вроде нормально описал проблему, если что-то не понятно, пишите

2 (изменено: __Михаил__, 2021-03-03 23:48:33)

Re: AHK: ImageSearch и ErrorLevel 1

Если игра в полноэкранном режиме - картинка может визуально сменилась но скрипт этого не заметит.
Как вариант проверки - организовать постоянные тесты смены пикселя в одном месте с отображением информации о цвете.

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101