Są 4 pola i co chwilę zapala się i znika kolor na jednym z nich. Napisałem program, który klika w zapalające się pole z wykorzystaniem PixelSearch. Niestety, klika w zapalające się pole wiele razy, a ma tylko raz zanim przejdzie do innego zapalającego się pola, które też ma kliknąć tylko raz itd. Dodałem do tego Sleep i program działa już lepiej, ale niestety szybkość zapalających się pól przyspiesza i po kilkunastu poprawnych ruchach pola zapalają się zbyt szybko i trzeba wymyślić coś innego. Najlepiej funkcję, która będzie klikała tylko raz w każdy zapalony kolor zanim przejdzie dalej. Napisałem coś takiego jak poniżej i klika raz jak chciałem, ale niestety po tym jednym kliknięciu program już dalej w ogóle nie klika. Co można dopisać albo zmienić w tym kodzie, żeby to działało?


Global $done = False

HotKeySet ("p", "Start")

Func Start()

While 1

$red = PixelSearch(36, 220, 970, 450, 0xE23838)
$blue = PixelSearch(36, 220, 970, 450, 0x0170BF, 15)
$green = PixelSearch(36, 220, 970, 450, 0x00BE21)
$yellow = PixelSearch(36, 220, 970, 450, 0xDCDE3F)

If IsArray($red) = 1 Then
    If Not $done Then
    MouseClick("left", $red[0], $red[1], 1, 1)
    $done = Not $done
EndIf
EndIf

If IsArray($blue) = 1 Then
    If Not $done Then
    MouseClick("left", $blue[0], $blue[1], 1, 1)
    $done = Not $done
EndIf
EndIf

If IsArray($green) = 1 Then
    If Not $done Then
    MouseClick("left", $green[0], $green[1], 1, 1)
    $done = Not $done
EndIf
EndIf

If IsArray($yellow) = 1 Then
    If Not $done Then
    MouseClick("left", $yellow[0], $yellow[1], 1, 1)
    $done = Not $done
EndIf
EndIf

Sleep(10)
WEnd

EndFunc

While 1
    Sleep(10)
WEnd