首页 > 解决方案 > 如何在我用 AHK 编写的脚本中找到问题

问题描述

我正在制作游戏的宏,我尝试了不同的东西,现在它似乎不起作用。我添加了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
}

它不像我预期的那样工作。

标签: autohotkey

解决方案


运算符用于将:=值(将是表达式的结果)分配给变量。
因此,现在您正在做的是将数字分配1给您的变量,然后使用 if 语句检查该变量的值是否为true.
(而且它总是会,非零数字评估为true

您正在寻找=运营商。
在表达式(这是您的if ( )-statement 是什么)中,它比较值,而不是将文本分配给变量,这是它在旧语句中所做的。

所以,
if (Lf := 1)
else if (Rg := 1)
改为
if (Lf = 1)
else if (Rg = 1)


编辑:
我也注意到变量LfRg似乎不存在?
至少不在该功能的范围内。
我希望它们在其他地方被定义为超级全球。
否则,代码将无法正常工作。


推荐阅读