Autohotkey 函数中的图像搜索限制?

Autohotkey 函数中的图像搜索限制?,autohotkey,Autohotkey,我一直在制作一个复杂的机器人,在尝试使用imagesearch添加任何新功能时遇到了麻烦,大多数搜索都需要定位(或不定位)图像。但现在,我尝试添加的每个函数都变得疯狂,有时它只是在循环中运行,找不到图像,有时它会移动到778194,然后继续单击,就像每个搜索都应该在778194处单击一样。我确信这是一件过于简单的事情,我只是一次又一次地盲目阅读这些片段。 源代码: demand() { global img_battle global img_battle2 global img_demand

我一直在制作一个复杂的机器人,在尝试使用imagesearch添加任何新功能时遇到了麻烦,大多数搜索都需要定位(或不定位)图像。但现在,我尝试添加的每个函数都变得疯狂,有时它只是在循环中运行,找不到图像,有时它会移动到778194,然后继续单击,就像每个搜索都应该在778194处单击一样。我确信这是一件过于简单的事情,我只是一次又一次地盲目阅读这些片段。 源代码:

demand()
{
global img_battle
global img_battle2
global img_demand
global img_lolcheck
global img_lolmarket
global img_demandcontrol
global img_demandlower
global img_demandhigher
global img_demand2

ImageSearch, myszX, myszY, 1, 1, windowSizeX, windowSizeY, *10 %img_demand%
8:
if (ErrorLevel = 0) {
  4:
  MouseMove, 778, 194
  Sleep, 500
  ImageSearch, myszX, myszY, 1, 1, windowSizeX, windowSizeY, *10 %img_lolmarket%
  if (ErrorLevel = 0){
    MouseMove, myszX + 15, myszY + 2
    sleep, 500
    MouseClick, Left, 
    sleep, 500
    ImageSearch, myszX, myszY, 1, 1, windowSizeX, windowSizeY, *10 %img_lolcheck%
    if (ErrorLevel = 0) {
      sleep, 500
      5:
      ImageSearch, myszX, myszY, 1, 1, windowSizeX, windowSizeY, *10 %img_demandcontrol%
      if (ErrorLevel = 0) {
        MouseMove, myszX + 15, myszY + 2
        sleep, 500
        MouseClick, Left, 
        Sleep, 500
        ImageSearch, myszX, myszY, 1, 1, windowSizeX, windowSizeY, *10 %img_demandlower%
        if (ErrorLevel = 0) {
          MouseMove, myszX + 15, myszY + 2
          sleep, 500
          MouseClick, Left
          Sleep, 500
          6:
          MouseMove, 716, 197
          Sleep, 500
          ImageSearch, myszX, myszY, 1, 1, windowSizeX, windowSizeY, *10 %img_battle%
          if (ErrorLevel = 0){
            MouseMove, myszX +15, myszY +2
            Sleep, 500
            MouseClick,
            Sleep, 500
            ImageSearch, myszX, myszY, 1, 1, windowSizeX, windowSizeY, *10 %img_battle2%
            if (ErrorLevel = 1){
              goto, 6
                               }
                             }
                           }
      else{
        goto, 5
      }
                         }
                       }
      else {
        goto, 4
      }
                     }
                   }
else{
  ImageSearch, myszX, myszY, 1, 1, windowSizeX, windowSizeY, *10 %img_demand2%
  if (ErrorLevel = 1) {
    goto, 8
  }
}
}

我想你需要命令
CoordMode
该命令将各种命令(包括
ImageSearch
MouseMove
命令)的坐标模式设置为相对于活动窗口或屏幕。 将这两行添加到文件开头(函数调用之前):


第一行将设置
ImageSearch
命令的坐标模式,第二行将设置
MouseMove
命令相对于屏幕的坐标模式。

在使用标签
4
下的
ImageSearch
后,您似乎没有检查
ErrorLevel
。此外,如果您清理代码的缩进/间距,人们更愿意提供帮助。现在它几乎不可读。@ElliotDeno如果我不是,它可能发生在错误测试的几个小时内,但是,现在它又回到了找不到图像的状态。我整理了一下我的代码,这样好吗?如果没有,请具体说明格式。而且这可能没有用,但这是我的
demand()
函数
137:demand()的日志285:ImageSearch,myszX,myszY,1,1,windowSizeX,windowSizeY,*10%img_需求%287:if(ErrorLevel=0)339:ImageSearch,myszX,myszY,1,1,windowSizeX,windowSizeY,*10%img_需求2%340:if(ErrorLevel=1)343:}
CoordMode, Pixel, Screen
CoordMode, Mouse, Screen