Тема: AHK: Как прервать цикл по достижении заданного условия в другом цикле?
Неделю пытался разобраться сам, чтобы не надоедать нубскими ворпросами. Однако, еще немного и у меня начнется психоз на этой почве. Выход из положения я нашел и скрипт стабильно работает. Однако, хотелось бы на будущее понять, как можно прервать выполнение цикла именно в тот момент, когда будет достигнуто условие заданное в другом цикле.
Не буду приводить свои варианты, так как их уже было очень много. И ни один не работает так, как хотелось бы. Либо цикл вообще не прерывается, либо прерывается, но не на середине выполнения, а только по окончании всего цикла.
Есть 2 цикла. Один проверяет конкретный пиксель на соответствие нужному цвету:
Loop
{
PixelGetColor, MobHP, 590, 75, BGR
If MobHP = 0x141416
Break
else
{
If MobHP <> 0x141416
Return
}
}
Другой цикл, просто набор нажатий клавишь:
Loop
{
SendInput, 3
Sleep, 1000
SendInput, q
Sleep, 2000
SendInput, 2
Sleep, 4500
SendInput, w
Sleep, 4500
SendInput, 2
Sleep, 4200
SendInput, 3
Sleep, 1000
SendInput, e
Sleep, 4000
SendInput, 2
Sleep, 3500
SendInput, q
Sleep, 5500
SendInput, 2
}
Gosub, Block3
И вот как их состыковать я уже голову сломал. Нужно, чтобы второй цикл прерывался и переходил к следующему блоку скрипта по достижению условия в первом цикле, то есть, как только цвет пикселя станет соответствовать заданному цвету.
Чего я только не вставлял для этого во второй цикл. Результата только два. Либо второй цикл вообще не прерывается, либо прерывается, но не в середине, когда условие в первом цикле уже достигнуто, а только когда дойдет до конца.
Не могу сказать, что перелопатил весь форум, но честно пытался найти схожую тему. Не нашел. Поэтому и обращаюсь с просьбой помочь понять, как это можно сделать.