如果在PixelSearch中找不到颜色,请发送(LEFT)直到找到颜色? | AutoIt的

时间:2015-03-08 19:16:44

标签: autoit

我正在尝试在某个窗口框架中搜索某个指定的像素颜色,我希望脚本向左发送命令箭头键,直到找到颜色,然后继续“攻击”。这是我的代码。

   Func getColor()
   $point = MouseGetPos()
   $color = PixelGetColor($point[0], $point[1])
   MsgBox(0, "Color Set", "The color has been set to " & $color)
EndFunc

Func attackLoop()
   MsgBox(0, "Attacking", "Starting to attack")
   While 1
          $point = PixelSearch(60, 157, 1772, 759, $color)
          if IsArray($point) Then
                 MouseClick("left", $point[0], $point[1])
                 Sleep($interval)
          EndIf
          Sleep(50)
   WEnd
EndFunc

While 1
   sleep(250)
WEnd

为了获得我的头衔,我需要添加什么?

1 个答案:

答案 0 :(得分:0)

首先,您的示例应该包含更多" full"一组函数,通过在我们的任何系统上测试您的代码$color$interval将返回错误,因为变量尚未设置。

其次,而不是使用"而1"在你的攻击循环中,最好做一个while循环,如:

$point = PixelSearch(60, 157, 1772, 759, $color)
While IsArray($point)
    $point = PixelSearch(60, 157, 1772, 759, $color)
    MouseClick("left", $point[0], $point[1])
    Sleep($interval)
WEnd

OR

While PixelSearch(60, 157, 1772, 759, $color)
    $point = PixelSearch(60, 157, 1772, 759, $color)
    MouseClick("left", $point[0], $point[1])
    Sleep($interval)
WEnd