Kodhjälp med loop och subrutin
Så jag har en kod i Autohotkey, och jag försöker göra så när i>40 så ska den sluta köra subrutinen (gosub watch). Problemet är att "i" variabeln finns bara i subrutinen "watch" och det är just när den går in i "else if (i>40)" som den är klar (det har gått 40 sec utan att hända något), och då vill jag att koden ska fortsätta, eg. efter continiue.
Problemet är att jag lyckas bara att komma på att starta en ny subrutin utan att gå ur den första subrutinen, som man inte bör göra. Jag är inte en van programmera (som kanske syns), men är det någon som kan komma på ett bra sätt att komma vidare?
start:
color=0xFFFF00
while (//något bra att ha här)
{
gosub watch //kör koden tills inget har hänt i 40 sec
}
WinClose all
click 0, 0
continiue: //koden fortsätter efter den är klar med watch rutinen
//fors av kod
//subrutiner
watch:
click 925, 340
i=0
MouseGetPos, MouseX, MouseY
PixelGetColor, color2, %MouseX%, %MouseY%
while (color!=color2)
{
i++
sleep 1000 //vänta 1sec
PixelGetColor, color2, %MouseX%, %MouseY%
if (color==color2) //kollar ingen så att den inte ändras efter 2sec
{
sleep 2000
PixelGetColor, color2, %MouseX%, %MouseY%
}
else if (i>40) //Inget har hänt i 40sec, antag att det är klart och sluta köra watch subrutinen
{
WinClose all
click 0, 0
gosub continiue //starta ny subrutin utan att gå ur den vi är i nu och skapa problem senare
}
}
return