Я пытаюсь сделать автозагрузчик для измельчения, но он просто останавливается посередине, и я не понимаю, почему. Вот что у меня есть до сих пор:Функция, не возвращающая переменную для определения autohotkey
^!n:: ;Ctr+Alt+n
FindColour(0x4447FB, 338, 491) ; Enter Building
Sleep 1500
FindColour(0x4145F1, 387, 420) ; Left Attack
Battle(1,1,1,1,0)
Sleep 1500
FindColour(0x4447FB, 602, 335) ; Far Attack
; Do Attack
Sleep 1500
FindColour(0x4447FC, 555, 527) ; Bottom Attack
; Do Attack
Sleep 1500
FindColour(0x4347FB, 338, 537) ; Leave Building
Sleep 1500
FindColour(0xF9F9F5, 239, 561) ; Reset Point
Sleep 1500
Return
FindColour(Colour, x, y){ ; Wait until the correct colour appears before clicking
Col = 0x000000
MouseMove, %x%, %y%
Loop
{
PixelGetColor, Col, %x%, %y%
If Col = %Colour%
{
Click %x% %y%
Return
}
Sleep 10
}
Return
}
Battle(a, b, c, d, e){ ; e isn't needed yet
x = 488
y := FindStart()
Col = 0x3F18D0
MsgBox %y%
Loop %a%
{
FindColour(%Col%, %x%, %y%)
Sleep 100
Click 606 276
}
Loop %b%
{
FindColour(%Col%, %x%, %y%)
Sleep 100
Click 547 371
}
Loop %c%
{
FindColour(%Col%, %x%, %y%)
Sleep 100
Click 676 491
}
Loop %d%
{
FindColour(%Col%, %x%, %y%)
Sleep 100
Click 774 309
}
; End
Return
}
FindStart(){
x = 488
y = 200
Loop 300
{
MouseMove, %x%, %y%
Sleep 20
PixelGetColor, Col, %x%, %y%
If Col = 0x3D00FF
{
y += 23
Return %y%
}
Else
{
y += 1
}
}
MsgBox Start not found
}
Все в порядке, пока не запустится FindStart(). Я наблюдаю, как курсор медленно продвигается по экрану до правильного пикселя (который перемещает каждое сражение, таким образом, функцию), после чего он останавливается. Я поместил строку «MsgBox% y%» после вызова FindStart(), чтобы проверить, что что-либо происходит после вызова функции, но msgbox никогда не появляется.
Что мне не хватает?
Узнайте, где именно остановиться. Двойной щелчок на значке вашего лотка скрипта покажет вам самые последние выполненные строки. – MCL