im new to autoit coding and having problem with my coding, it works fine just that i need it to run indefinitely without giving me a recursion error. If possible i hope you could help me solve my problem.
AutoIt
HotKeySet("{F1}", "Start") HotKeySet("{F2}", "BoxCheck") HotKeySet("{ESC}", "End") Local $Repetition = 1 Local $AvoidError = 0 While 1 Sleep(100) WEnd Func End() Exit 0 EndFunc ;==>End Func BoxCheck() While 1 PixelSearch (12,9,12,9, 0x6F2A00) If @Error Then Call ("Check") ExitLoop ContinueLoop EndIf PixelSearch (17,9,17,9, 0xC84C00) If @Error Then Call ("Check") ExitLoop ContinueLoop EndIf PixelSearch (11,15,11,15, 0xB44400) If @Error Then Call ("Check") ExitLoop ContinueLoop EndIf PixelSearch (12,18,12,18, 0xA48A30) If @Error Then Call ("Check") ExitLoop ContinueLoop EndIf PixelSearch (18,17,18,17, 0x9C8858) If @Error Then Call ("Check") ExitLoop ContinueLoop EndIf MsgBox (0,"NoErrorDetect", "No Error") ExitLoop WEND EndFunc Func Check() MsgBox (0,"","Error Detect") Endfunc Func Start() $leftspawn = PixelSearch(21, 173, 21, 173, 0xFFFF00) If IsArray($leftspawn) = True Then Send("{LEFT up}") $AvoidError = 0 Sleep(1000) Send("{DOWN down}") Send("{SPACE}") Sleep(1000) Send("{DOWN up}") Call("BottomWalkRight") ElseIf IsArray($leftspawn) = False Then Send("{LEFT down}") Call("AvoidErrorStart") EndIf EndFunc ;==>Start Func AvoidErrorStart() If $AvoidError > 200 Then Call("AvoidError") Else Sleep(100) $AvoidError = $AvoidError + 1 TrayTip($AvoidError, "MAXIMUM VALUE: 200", 1, 1) Call("Start") EndIf EndFunc ;==>AvoidErrorStart Func Startv2() $leftspawn = PixelSearch(21, 173, 21, 173, 0xFFFF00) If IsArray($leftspawn) = True Then Send("{LEFT up}") $AvoidError = 0 Sleep(1000) Call("BottomWalkRight") ElseIf IsArray($leftspawn) = False Then Send("{LEFT down}") Call("AvoidErrorStartv2") EndIf EndFunc ;==>Startv2 Func AvoidErrorStartv2() If $AvoidError > 200 Then Call("AvoidError") Else Sleep(100) $AvoidError = $AvoidError + 1 TrayTip($AvoidError, "MAXIMUM VALUE: 200", 1, 1) Call("Startv2") EndIf EndFunc ;==>AvoidErrorStartv2 Func BottomWalkRight() $rightspawnrope = PixelSearch(382, 212, 382, 212, 0x00FFFF) If IsArray($rightspawnrope) = True Then Send("{RIGHT down}") Call("AvoidErrorBottomWalkRight") ElseIf IsArray($rightspawnrope) = False Then Send("{RIGHT up}") $AvoidError = 0 Sleep(1000) Send("{UP down}") Send("{SPACE}") Sleep(1000) Send("{UP up}") Call("SecondFloorWalkLeft") EndIf EndFunc ;==>BottomWalkRight Func AvoidErrorBottomWalkRight() If $AvoidError > 200 Then Call("AvoidError") Else Sleep(100) $AvoidError = $AvoidError + 1 TrayTip($AvoidError, "MAXIMUM VALUE: 200", 1, 1) Call("BottomWalkRight") EndIf EndFunc ;==>AvoidErrorBottomWalkRight Func SecondFloorWalkLeft() $rightspawnsecondspawn = PixelSearch(314, 155, 314, 155, 0x00FFFF) If IsArray($rightspawnsecondspawn) = True Then Send("{LEFT down}") Call("AvoidErrorSecondFloorWalkLeft") ElseIf IsArray($rightspawnsecondspawn) = False Then Send("{LEFT up}") $AvoidError = 0 Sleep(1000) Send("{UP down}") Send("{SPACE}") Sleep(1000) Send("{UP up}") Call("Repeat") EndIf EndFunc ;==>SecondFloorWalkLeft Func AvoidErrorSecondFloorWalkLeft() If $AvoidError > 200 Then Call("AvoidError") Else Sleep(50) $AvoidError = $AvoidError + 1 TrayTip($AvoidError, "MAXIMUM VALUE: 200", 1, 1) Call("SecondFloorWalkLeft") EndIf EndFunc ;==>AvoidErrorSecondFloorWalkLeft Func Repeat() If $Repetition = 0 Then $Repetition = $Repetition + 1 Call("Start") ElseIf $Repetition = 1 Then $Repetition = $Repetition - 1 Call("Startv2") EndIf EndFunc ;==>Repeat Func AvoidError() $AvoidError = 0 Send("{UP up}") Send("{DOWN up}") Send("{LEFT up}") Send("{RIGHT up}") Sleep(100) Send("{LEFT down}") Sleep(15000) Send("{LEFT up}") Sleep(1000) Send("{DOWN down}") Send("{SPACE}") Sleep(400) Send("{SPACE}") Sleep(400) Send("{SPACE}") Sleep(400) Send("{SPACE}") Sleep(400) Send("{SPACE}") Sleep(400) Send("{DOWN up}") Call("BottomWalkRight") EndFunc ;==>AvoidError
this is my error: