2017-07-26 250 views
2

我正尝试使用imagesearch从游戏中的某个商品店购买某些物品。有8个插槽,因此我需要循环8次。如果他们出现,我需要购买4-5种不同的物品。Autohotkey如何使用函数参数来执行多个imageSearches

这是我用做购买功能:

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 
} 

但是我不喜欢它的外观,它感觉太硬code-y。

任何帮助将appriciated。

+0

我忘记提及实际问题了。当我运行它时,它使用我的函数方法时找不到图像。但是,当我使用下面的例子它可以正常工作。所以我假设我设置了函数参数错误。 –

回答

0

没有想到它的工作。

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 

    } 
}