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