0

我正在用 AutoHotKey 编写脚本,但我偶然发现了一个僵局。现在我有一个包含复选框和下拉列表的工作 GUI。该程序是一个用于游戏的宏脚本——用户检查他想在后台运行哪些宏,提交他的选项,程序不断评估各种条件并根据这些条件是否满足来执行命令。每个宏的模板是这样的:

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

我不想让多个不同的循环一个接一个地运行,因为它太慢了,我不想对所有可能的“if”排列做一个巨大的分支。有人知道该怎么做吗?

4

1 回答 1

0

而且我不想做所有可能的“如果”排列的一个巨大的分支

The problem my friend is that that is the only solution. You have to check the status of each checkbox, so there is no jumping that part. If I could see your code I could send you an amendment for it, but you cannot paste the full code here. Try autohotkey.net/paste, and I will hopefully be able to help you.

于 2010-07-24T22:03:55.477 回答