Я пишу скрипт в AutoHotKey и наткнулся на тупик. Прямо сейчас у меня есть рабочий графический интерфейс, который включает в себя флажки и раскрывающиеся списки. Программа представляет собой макрос-скрипт для игр - пользователь проверяет, какие макросы он хочет запустить в фоновом режиме, отправляет свои параметры, и программа постоянно оценивает различные условия и выполняет команды в зависимости от того, выполнены ли эти условия.
Шаблон каждого из макросов таков:
Loop:
PixelGetColor, color, 488, 778 ;gets pixel color of specific coordinate
if thecolor = 0x000000 ; if the color is black
{
SendInput {Raw}f ;sends the f command to use item
}
else sleep 20
goto, Loop
Таким образом, макрос зацикливается, оценивая пиксель каждые 2 милисекунды и отправляя входные данные, если выполняется оператор if.
Вот проблема:
Для каждого из макросов, которые пользователь может проверить для запуска в фоновом режиме, существует определенный цвет пикселя, разные отправленные входные данные и разные координаты для оценки. Как я могу сделать всеобъемлющий цикл, который учитывает выбор флажков пользователей?
Например, если checkBox = 1 (выбрано), я мог бы выглядеть так:
if(%Box1%=1)
{
Run above code
}
Но если пользователь проверит 1 и 2, мне придется оценить и другие координаты. Вроде так:
if(%Box1%=1 & %Box2%=2)
{
Run above code
+
PixelGetColor, color2, 510, 778
if thecolor = 0x000000
{
Send 1
Sleep 20000
goto, start
}
else, sleep 20
Я не хочу, чтобы несколько разных циклов работали один за другим, потому что это было бы слишком медленно, и я не хочу делать огромную ветвь из всех возможных перестановок «если».
Кто-нибудь знает, что делать?