Function 自动热键如何使用函数参数执行多个图像搜索
我正在尝试使用imagesearch在游戏中从物品商店购买某些物品。有8个插槽,因此我需要循环8次。如果它们出现,我需要购买4-5种不同的物品 这是我用来购买的功能:Function 自动热键如何使用函数参数执行多个图像搜索,function,scripting,autohotkey,Function,Scripting,Autohotkey,我正在尝试使用imagesearch在游戏中从物品商店购买某些物品。有8个插槽,因此我需要循环8次。如果它们出现,我需要购买4-5种不同的物品 这是我用来购买的功能: marketFunc(item) { Loop, 8 { ImageSearch, OutputVarX, OutputVarY, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, item if !ErrorLevel {
marketFunc(item)
{
Loop, 8
{
ImageSearch, OutputVarX, OutputVarY, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, item
if !ErrorLevel
{
outY = %OutputVarY%
outY += 119
MouseMove, %OutputVarX%, %OutY%
Sleep, 250
Click
Sleep, 750
MouseClick, left, 797, 456
Sleep, 750
MouseClick, left, 687, 473
Sleep, 100
}
Sleep, 250
}
}
然后我一直在这样调用函数:
marketfunc(chip.png)
sleep, 500
marketfunc(ticket.png)
sleep, 500
marketfunc(scroll.png)
sleep, 500
marketfunc(masterScroll.png)
sleep, 500
marketfunc(otherItemHere.png)
Loop, 8
{
ImageSearch, OutputVarX, OutputVarY, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, ticket.png
if !ErrorLevel
{
outY = %OutputVarY%
outY += 119
MouseMove, %OutputVarX%, %OutY%
Sleep, 250
Click
Sleep, 750
MouseClick, left, 797, 456
Sleep, 750
MouseClick, left, 687, 473
Sleep, 100
}
Sleep, 250
ImageSearch, OutputVarX, OutputVarY, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, chip.png
if !ErrorLevel
{
outY = %OutputVarY%
outY += 119
MouseMove, %OutputVarX%, %OutY%
Sleep, 250
Click
Sleep, 750
MouseClick, left, 797, 456
Sleep, 750
MouseClick, left, 687, 473
Sleep, 100
}
Sleep, 250
ImageSearch, OutputVarX, OutputVarY, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, scroll.png
if !ErrorLevel
{
outY = %OutputVarY%
outY += 119
MouseMove, %OutputVarX%, %OutY%
Sleep, 250
Click
Sleep, 750
MouseClick, left, 797, 456
Sleep, 750
MouseClick, left, 687, 473
Sleep, 100
}
Sleep, 250
ImageSearch, OutputVarX, OutputVarY, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, masterScroll.png
if !ErrorLevel
{
outY = %OutputVarY%
outY += 119
MouseMove, %OutputVarX%, %OutY%
Sleep, 250
Click
Sleep, 750
MouseClick, left, 797, 456
Sleep, 750
MouseClick, left, 687, 473
Sleep, 100
}
Sleep, 250
ImageSearch, OutputVarX, OutputVarY, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, otherItemHere.png
if !ErrorLevel
{
outY = %OutputVarY%
outY += 119
MouseMove, %OutputVarX%, %OutY%
Sleep, 250
Click
Sleep, 750
MouseClick, left, 797, 456
Sleep, 750
MouseClick, left, 687, 473
Sleep, 100
}
Sleep, 250
}
我知道我可以不使用这样的功能:
marketfunc(chip.png)
sleep, 500
marketfunc(ticket.png)
sleep, 500
marketfunc(scroll.png)
sleep, 500
marketfunc(masterScroll.png)
sleep, 500
marketfunc(otherItemHere.png)
Loop, 8
{
ImageSearch, OutputVarX, OutputVarY, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, ticket.png
if !ErrorLevel
{
outY = %OutputVarY%
outY += 119
MouseMove, %OutputVarX%, %OutY%
Sleep, 250
Click
Sleep, 750
MouseClick, left, 797, 456
Sleep, 750
MouseClick, left, 687, 473
Sleep, 100
}
Sleep, 250
ImageSearch, OutputVarX, OutputVarY, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, chip.png
if !ErrorLevel
{
outY = %OutputVarY%
outY += 119
MouseMove, %OutputVarX%, %OutY%
Sleep, 250
Click
Sleep, 750
MouseClick, left, 797, 456
Sleep, 750
MouseClick, left, 687, 473
Sleep, 100
}
Sleep, 250
ImageSearch, OutputVarX, OutputVarY, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, scroll.png
if !ErrorLevel
{
outY = %OutputVarY%
outY += 119
MouseMove, %OutputVarX%, %OutY%
Sleep, 250
Click
Sleep, 750
MouseClick, left, 797, 456
Sleep, 750
MouseClick, left, 687, 473
Sleep, 100
}
Sleep, 250
ImageSearch, OutputVarX, OutputVarY, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, masterScroll.png
if !ErrorLevel
{
outY = %OutputVarY%
outY += 119
MouseMove, %OutputVarX%, %OutY%
Sleep, 250
Click
Sleep, 750
MouseClick, left, 797, 456
Sleep, 750
MouseClick, left, 687, 473
Sleep, 100
}
Sleep, 250
ImageSearch, OutputVarX, OutputVarY, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, otherItemHere.png
if !ErrorLevel
{
outY = %OutputVarY%
outY += 119
MouseMove, %OutputVarX%, %OutY%
Sleep, 250
Click
Sleep, 750
MouseClick, left, 797, 456
Sleep, 750
MouseClick, left, 687, 473
Sleep, 100
}
Sleep, 250
}
但我不喜欢它的外观,感觉太难编码了
任何帮助都会得到感谢。无论怎样,都不会让它起作用
marketFunc("chip.png")
marketFunc("ticket.png")
marketFunc("basicScroll.png")
marketFunc("heroicScroll.png")
marketFunc(item)
{
Loop, 8
{
ImageSearch, OutputVarX, OutputVarY, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, %item%
if !ErrorLevel
{
outY = %OutputVarY%
outY += 119
MouseMove, %OutputVarX%, %OutY%
Sleep, 250
; Click
Sleep, 750
; MouseClick, left, 797, 456
Sleep, 750
; MouseClick, left, 687, 473
Sleep, 100
}
Sleep, 250
}
}
您还可以为此使用数组:
Array := [Item1, Item2, ..., ItemN]
还是你的情况
Images := ["chip.png", "ticket.png", "basicScroll.png", "heroicScroll.png"]
然后您可以循环该数组,并使用索引处的值。我忘了提到实际问题是什么。当我运行它时,当我使用我的函数方法时,它找不到图像。但是,当我使用下面的示例进行操作时,效果很好。所以我假设我把函数参数设置错了。