Как я могу найти проблему в сценарии, который я написал в AHK - PullRequest
0 голосов
/ 20 апреля 2020

Я делаю макрос игры, и я попробовал другую вещь, и теперь она, похоже, не работает. Я добавил if Lf := 1 и if Rg := 1, которые являются переменными для представления радиоиндикатора. Вот код:

F9::
toggle :=!Toggle
if (toggle)
{
    SetTimer, Repeat, 100
    Repeat()
}
else
    SetTimer, Repeat, Off
return

Repeat()
{
    Click, 920, 885
    Sleep, 200
    if (Lf := 1)
    {
        Click, 755, 530
        Sleep, 200
        Click, 550, 530
    }
    else if (Rg := 1)
    {
        Click, 1165, 530
        Sleep, 200
        Click, 1370, 530
    }
    Sleep, 200
    Send, {Space Down}
    Sleep, %MilSecOne%
    Sleep, %MilSecOne%
    Send, {Space Up}
    Sleep, 200
}

Это не работает, как я ожидал.

1 Ответ

0 голосов
/ 20 апреля 2020

Оператор := используется для присвоения значения (которое будет результатом выражения) переменной.
Итак, сейчас вы присваиваете номер 1 к вашим переменным, а затем с помощью оператора if проверяет, оценивается ли значение этой переменной как true.
(И это всегда будет, ненулевые числа оцениваются как true)

Вы ищете оператор =.
В выражении (которое является вашим if ( ) -условием) оно сравнивает значения, а не присваивает текст переменной, которая это то, что он делает в устаревшем утверждении.

Итак, измените
if (Lf := 1)
else if (Rg := 1)
на
if (Lf = 1)
else if (Rg = 1)


Редактировать:
Я также заметил, что переменные Lf и Rg, кажется, не существуют?
По крайней мере, не в области действия этой функции.
Я надеюсь, что они ' определяется как суперглобальный где-то еще.
В противном случае код не будет работать.

...