Что нового

Не работает скрипт, что не так написано

Serega1383

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

Код:
HotKeySet("{ESC}", "_Exit")

Global $iColor1 = 0x000000

   Global $array_x[5]
$array_x[0] = Random(757, 767, 1)
$array_x[1] = Random(786, 797, 1)
$array_x[2] = Random(817, 827, 1)
$array_x[3] = Random(847, 856, 1)
$array_x[4] = Random(875, 886, 1)

$aX = $array_x[Random(0, 5, 1)]

$y1 = Random(516, 523, 1)
$y2 = Random(485, 495, 1)

While 1
 MouseClick("left", 568, 667)
 Sleep(500)
MouseClick("left", $aX, $y1)
Sleep(500)

If IsArray(PixelSearch($aX, $y1, $iColor1)) Then
ExitLoop

If Not IsArray(PixelSearch($aX, $y1, $iColor1)) Then
MouseClick("left", $aX, $y2)
EndIf

If IsArray(PixelSearch($aX, $y2, $iColor1)) Then
   ExitLoop

If Not IsArray(PixelSearch($aX, $y2, $iColor1)) Then
MouseClick("left", 958, 489)
WEnd

Func _Exit()
    Exit
EndFunc   ;==>_Exit
 

hedji

Продвинутый
Сообщения
409
Репутация
94
Используйте проверку синтаксиса в редакторе Ctrl+F5
1) Не хватает EndIf после каждого If
2) Не хватает скобок между Not и IsArray
3) Неверное количество аргументов в
Код:
PixelSearch


Координаты вы уже знаете, лучше не искать пиксель нужного цвета через PixelSearch, а проверить цвет пикселя через
Код:
PixelGetColor
 
Автор
S

Serega1383

Новичок
Сообщения
25
Репутация
0
Переписал так, но не выполняет, то что мне требуется.
Нужно чтобы скрипт кликал в определенную область по рандомным кординатам в - х и у. Если после нажатия там появиться черный цвет, то он начал сначала. Если черного цвета нету, то чтобы перешел в другие кординаты - х и у2 и там после нажатия тоже проверил. Если появился черный пиксель то начал сначала, если нет то кликнул в определенную область экрана.

Код:
HotKeySet("{ESC}", "_Exit")

Global $iColor1 = 0x000000

   Global $array_x[5]
$array_x[0] = Random(757, 767, 1)
$array_x[1] = Random(786, 797, 1)
$array_x[2] = Random(817, 827, 1)
$array_x[3] = Random(847, 856, 1)
$array_x[4] = Random(875, 886, 1)

While 1
   $aX = $array_x[Random(0, 5, 1)]
   $y1 = Random(457, 467, 1)
   $y2 = Random(430, 440, 1)

 MouseClick("left", 568, 613)
 Sleep(500)
MouseClick("left", $aX, $y1)
Sleep(500)

 If IsArray(PixelGetColor($aX, $y1)=$iColor1) Then
MouseClick("left", 614, 613)
EndIf

If Not IsArray(PixelGetColor($aX, $y1)=$iColor1) Then
  MouseClick("left", $aX, $y2)
EndIf

If IsArray(PixelGetColor($aX, $y2)=$iColor1) Then
MouseClick("left", 967, 431)
EndIf
WEnd

Func _Exit()
    Exit
EndFunc   ;==>_Exit
 

hedji

Продвинутый
Сообщения
409
Репутация
94
Код:
If PixelGetColor($aX, $y1)=$iColor1 Then
MouseClick("left", 614, 613)
EndIf

If PixelGetColor($aX, $y1)<>$iColor1 Then
  MouseClick("left", $aX, $y2)
EndIf

If PixelGetColor($aX, $y2)=$iColor1 Then
MouseClick("left", 967, 431)
EndIf


Дополнительно проверьте какой цвет находит
Код:
If PixelGetColor($aX, $y1)=$iColor1 Then
MouseClick("left", 614, 613)
EndIf
$color2 = PixelGetColor($aX, $y1)
MsgBox(0, "", "Найден цвет " & $color2 & " искомый цвет " & $iColor1)

If PixelGetColor($aX, $y1)<>$iColor1 Then
  MouseClick("left", $aX, $y2)
EndIf
 
Верх