Тема: AHK: Не работает loop после первого выполнения команды
Здравствуйте. Я написал скрипт, где есть элементы pixelsearch и loop.
vk14::
If isKeyPressed := !isKeyPressed
SetTimer, SendA, 40
Else
{
SetTimer, SendA, Off
Send {d Up}{r Up}
}
Loop
{
PixelSearch, Px, Py, 387, 257, 551, 275, 0x2A2A2A, 1, Fast
if (Errorlevel = 0)
{
Sleep 6000
Click 448,348
Sleep 5000
Click 279,153
Sleep 1000
Click 302, 479
Sleep 7000
Click right
Sleep 5000
Click 399,167
Sleep 7000
Click right
Send {space down}
Sleep 50
Send {space up}
Sleep 50
Send {space down}
Sleep 50
Send {space up}
Sleep 5000
Send {r down}
Sleep 1000
Send {r up}
break
}
sleep 30000
return
}
Loop
{ ; loops until found:
PixelSearch, Px, Py, 690, 235, 759, 309, 0x173952, 1, Fast
if (Errorlevel = 0)
{
Sleep 1000
Send {Numpad9 down}
Sleep 300
Send {Numpad9 up}
Sleep 1000
Click right
Sleep 2000
Click 400,310
Sleep 3000
Click 435,204
Sleep 5000
Send {Numpad1 down}
Sleep 300
Send {Numpad1 up}
Sleep 300
Send {space down}
Sleep 50
Send {space up}
Sleep 50
Send {space down}
Sleep 50
Send {space up}
Sleep 5000
Send {r down}
Sleep 1000
Send {r up}
break
}
sleep 30000
return
}
KeyWait vk14
return
SendA:
Send {d Down}{r Down}
return
Проблема здесь:
Loop
{
PixelSearch, Px, Py, 387, 257, 551, 275, 0x2A2A2A, 1, Fast
if (Errorlevel = 0)
{
Sleep 6000
Click 448,348
Sleep 5000
Click 279,153
Sleep 1000
Click 302, 479
Sleep 7000
Click right
Sleep 5000
Click 399,167
Sleep 7000
Click right
Send {space down}
Sleep 50
Send {space up}
Sleep 50
Send {space down}
Sleep 50
Send {space up}
Sleep 5000
Send {r down}
Sleep 1000
Send {r up}
break
}
sleep 30000
return
}
И здесь:
Loop
{ ; loops until found:
PixelSearch, Px, Py, 690, 235, 759, 309, 0x173952, 1, Fast
if (Errorlevel = 0)
{
Sleep 1000
Send {Numpad9 down}
Sleep 300
Send {Numpad9 up}
Sleep 1000
Click right
Sleep 2000
Click 400,310
Sleep 3000
Click 435,204
Sleep 5000
Send {Numpad1 down}
Sleep 300
Send {Numpad1 up}
Sleep 300
Send {space down}
Sleep 50
Send {space up}
Sleep 50
Send {space down}
Sleep 50
Send {space up}
Sleep 5000
Send {r down}
Sleep 1000
Send {r up}
break
}
sleep 30000
return
}
KeyWait vk14
return
Задумка такова: в обоих кодах выполняется loop до тех пор, пока не будет найден пиксель, чтобы начать выполнять заданные действия. Если пиксель не найден, loop ждёт 30 секунд и начинает искать дальше (если пиксель не находится, loop будет работать исправно и не прервётся). Когда я запускаю скрипт и нужный пиксель находится, код без проблем начинает работать, выполняя все мои заданные действия. После первого выполнения команд, команда loop перестаёт работать и, соответственно, pixel search тоже прекращает свою работу.
Я только учусь писать коды и не понимаю, как решить эту проблему. Помогите с кодом, пожалуйста.