我的autohotkey脚本总是崩溃,因为每隔3-5分钟,我不知道为什么没有错误信息或为什么会崩溃?递归可能吗?任何人都可以建议我如何回到顶部 main并继续脚本而不像递归一样调用自己? 我对这种语言有点新意,希望你帮助我
继承我的代码
home::
main()
{
loot1()
}
loot1()
{
ImageSearch,violetX, violetY, 266, 141, 579, 527, C:\image\loot.png
If ErrorLevel
mobs1()
else
mousemove(%violetX%, %violetY%)
MouseClick, left
main()
}
mobs1()
{
PixelSearch, X, Y, 22, 216, 776, 607, 0x00FF00, 0, fast
If ErrorLevel
mobs2()
else
mousemove(%X%, %Y%)
MouseClick, left
main()
}
mobs2()
{
ImageSearch,mobs2x, mobs2y, 243, 76, 776, 607, C:\image\green.png
If ErrorLevel
tele()
else
mousemove(%mobs2x%, %mobs2y%)
MouseClick, left
main()
}
tele()
{
ImageSearch,walkX, walkY, 394, 347, 413, 414, C:\image\walk.png
If ErrorLevel
tele2()
else
MouseClick, left, 200, 300
main()
}
tele2()
{
Send {F9}
sleep, 2000
main()
}
return
编辑2 heres到目前为止,但它没有返回主循环
home::
Loop
{
loot1()
}
return
loot1()
{
ImageSearch,violetX, violetY, 266, 141, 579, 527, C:\image\loot.png
If ErrorLevel
mobs1()
else
mousemove(%violetX%, %violetY%)
MouseClick, left
}
mobs1()
{
PixelSearch, X, Y, 22, 216, 776, 607, 0x00FF00, 0, fast
If ErrorLevel
mobs2()
else
mousemove(%X%, %Y%)
MouseClick, left
}
mobs2()
{
ImageSearch,mobs2x, mobs2y, 243, 76, 776, 607, C:\image\green.png
If ErrorLevel
tele()
else
mousemove(%mobs2x%, %mobs2y%)
MouseClick, left
}
tele()
{
ImageSearch,walkX, walkY, 394, 347, 413, 414, C:\image\walk.png
If ErrorLevel
tele2()
else
MouseClick, left, 200, 300 ;-- walk
}
tele2()
{
Send {F9}
sleep, 2000
}
return
答案 0 :(得分:0)
调用自身几乎就是递归意味着所以我不认为“在没有递归的情况下调用自己”是可能的。
如果您想重复拨打loot1()
,则需要从其他功能中删除main()
功能及其所有来电,并将其替换为:
home::
Loop {
loot1()
}
loot1()
{
; the rest of your code the same