Что нового

Помогите настроить скрипт основаный на PixelSearch

forfrends

Новичок
Сообщения
176
Репутация
3
Суть скрита:
после клика мышки ищет определенный цвет в точке, после нахождения ждет пока цвет не изменится и кликает мышкой.
Сам скрипт:
Код:
For $i = 1 to 26
	MouseClick("left", 516, 308)
	sleep(3000)
	$coord = PixelSearch( 494,270, 538, 306, 0xFF5B53, 75) ; ищем цвет 
	If Not @error Then
		$x = $coord[0]
		$y = $coord[1]
	EndIf
	While 1
		$coord2 = PixelSearch($x, $y, $x, $y, 0xFF5B53, 75) ; ждем пока цвет не изменится
		If @error Then ExitLoop
	WEnd
	sleep(1000)
	MouseClick("left", $x, $y + 16)
Next


Первый цикл проходит без проблем, но при втором выкидывает ошибку:
(6) : ==> Subscript used with non-Array variable.:
$x = $coord[0]
$x = $coord^ ERROR

Помогите понять в чем ошибка
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
1. цвет ищется не в точке, а в области
2.
Код:
$coord2 = PixelSearch($x, $y, $x, $y, 0xFF5B53, 75) ; ждем пока цвет не изменится

ничего там не ожидается. посмотри в справке синтаксис команды. у тебя размер области 0х0. цикл прерывается после первой же проверки.
по поводу ошибки, попробуй вот так
Код:
For $i = 1 to 26
	MouseClick("left", 516, 308)
	sleep(3000)
	$coord = PixelSearch( 494,270, 538, 306, 0xFF5B53, 75) ; ищем цвет
	If Not @error Then
		$x = $coord[0]
		$y = $coord[1]
		While 1
			$coord2 = PixelSearch($x - 1, $y - 1, $x + 1, $y + 1, 0xFF5B53, 75) ; ждем пока цвет не изменится
			If @error Then ExitLoop
		WEnd
		sleep(1000)
		MouseClick("left", $x, $y + 16)
	EndIf
Next
 
Верх