Autohotkey ahk脚本如何在没有递归的情况下调用自身?
我的自动热键脚本总是每隔3-5分钟崩溃一次我不知道为什么没有错误消息或者为什么会崩溃?可能是递归?有人能给我一些如何回到顶端的建议吗 继续脚本而不像递归一样调用自己?? 我对这门语言有点陌生,希望你能帮助我 这是我的密码Autohotkey ahk脚本如何在没有递归的情况下调用自身?,autohotkey,Autohotkey,我的自动热键脚本总是每隔3-5分钟崩溃一次我不知道为什么没有错误消息或者为什么会崩溃?可能是递归?有人能给我一些如何回到顶端的建议吗 继续脚本而不像递归一样调用自己?? 我对这门语言有点陌生,希望你能帮助我 这是我的密码 home:: main() { loot1() } loot1() { ImageSearch,violetX, violetY, 266, 141, 579, 527, C:\image\loot.png
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到目前为止,但它没有返回到主循环
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
调用它自己就是递归的意思,所以我认为“不使用递归调用它自己”是不可能的 如果要重复调用
loot1()
,则需要删除main()
函数以及其他函数对它的所有调用,并将其替换为:
home::
Loop {
loot1()
}
loot1()
{
; the rest of your code the same
它似乎不起作用,它跳过了图像搜索。它只是一直在传送。。如何返回主循环?loot1(){ImageSearch,violetX,violetY,266141579527,C:\image\loot.png如果ErrorLevel mobs1()else mousemove(%violetX%,%violetY%)MouseClick,left main();----如何返回主循环?}删除对main的调用,它将再次执行
loot1()
@ArillleNahisi删除了对main()的调用,但它不是imagesearching。它一直在传送,请检查我的编辑2@ArillleNahis什么传送到哪里?自动热键无法传送。。。你怎么知道这不是图像搜索?@ArillleNahis不可能,它是从mobs2()
调用的,而这是从mobs1()
调用的。。。等