Что нового

[Ошибки] Как исправить ошибку "Recursion level has been exceeded"

vindizel

Новичок
Сообщения
15
Репутация
0
Доброго времени суток! Подскажите пожалуйста можно ли как-нибудь избавиться от ошибки "Recursion level has been exceeded - Autoit will to prevent stack owerflov"не переписывая весь скрипт?
Если все же переписывать придется то покажите пожалуйста на моем скрипте как реализовать его без рекурсии?
Сам скрипт:
Код:
#include <ImageSearch2.au3>

$x = 0
$y = 0

HotKeySet("{ESC}", "Close")
HotKeySet("{F1}", "Start")
HotKeySet("{F2}", "Pause")
HotKeySet("{F3}", "Citadel")
_Startup()

Func _Startup()
   ToolTip("Скрипт запущен",0,0)
   While 1
	  Sleep(100)
   WEnd
EndFunc

Func Close()
   Exit
EndFunc

Func Pause()
   ToolTip("Пауза",0,0)
   While 1
	  Sleep(100)
   WEnd
EndFunc

Func Start()
   ToolTip("Запуск",0,0)
   While 1
	  $i=0
   While $i < 1500
	  $i = $i+1
	  $mobila = _ImageSearch("mobil.png",1,$x,$y,0)
	  If $mobila = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Knkad()
	  Else
			$prolistat = _ImageSearch("prolistat.png",1,$x,$y,0)
			If $prolistat = 1 Then
			   MouseClick("left",$x,$y,2,10)
			   MouseMove(260, 120, 10)
			   Sleep(100)
			EndIf
		 EndIf
		 WEnd
	  MsgBox(4096,"Условие","Сработало",25)
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
	 WEnd
EndFunc
;======
Func Knkad()
   ToolTip("Кнопка ",0,0)
   While 1
	  $i=0
   While $i < 1500
	  $i = $i+1
	  $knkad = _ImageSearch("knkad.png",1,$x,$y,0)
	  If $knkad = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Vkad()
		 EndIf
	  WEnd
	  MsgBox(4096,"Условие","Сработало",10)
	  $perez = _ImageSearch("perez.png",1,$x,$y,0)
	  If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
   EndFunc
;============
Func Vkad()
   ToolTip("Поиск",0,0)
   While 1
	  $i=0
   While $i < 1500
	  $i = $i+1
	  $vkad = _ImageSearch("vkad.png",1,$x,$y,0)
	  If $vkad = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Napast()
	  Else
		 $sled = _ImageSearch("sled.png",1,$x,$y,0)
		 If $sled = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(1000)
		 Vkad2()
		 EndIf
	  EndIf
	   WEnd
   MsgBox(4096,"Условие","Сработало",25)
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
EndFunc

Func Vkad2()
   ToolTip("Поиск ",0,0)
   While 1
	  $i=0
   While $i < 1500
	  $i = $i+1
	  $vkad = _ImageSearch("vkad.png",1,$x,$y,0)
	  If $vkad = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Napast()
	  Else
		 $sled = _ImageSearch("sled.png",1,$x,$y,0)
		 If $sled = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(1000)
		 Vkad()
		 EndIf
	  EndIf
	   WEnd
   MsgBox(4096,"Условие","Сработало",25)
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
EndFunc
;===============
Func Napast()
   ToolTip("Напасть",0,0)
While 1
   $i=0
   While $i < 1500
	  $i = $i+1
   $napast = _ImageSearch("napast.png",1,$x,$y,0)
	  If $napast = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Noviboi()
	  EndIf
	   WEnd
   MsgBox(4096,"Условие","Сработало",25)
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
EndFunc
;========Кнопка ========
Func Noviboi()
   ToolTip("Новый",0,0)
While 1
   $i=0
   While $i < 1500
	  $i = $i+1
   $noviboi = _ImageSearch("noviboi.png",1,$x,$y,0)
	  If $noviboi = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Avakad()
	  EndIf
   WEnd
   MsgBox(4096,"Условие","Сработало",25)
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
	  WEnd
EndFunc
;=================
Func Avakad()
   ToolTip("Бой",0,0)
While 1
    $i=0
   While $i < 5000
	  $i = $i+1
	  $mertv1 = _ImageSearch("mertv1.png",1,$x,$y,0)
	  $mertv = _ImageSearch("mertv.png",1,$x,$y,0)
	  If $mertv = 1 or $mertv1 = 1 Then
		 Sleep(100)
		 Krpob()
	  Else
		 $avakad2 = _ImageSearch("avakad2.png",1,$x,$y,0)
		 If $avakad2 = 1 Then
			MouseClick("left",$x,$y,1,10)
			MouseMove($x,$y, 10)
			Sleep(1500)
			Avakad2()
		 EndIf
	  EndIf
	  WEnd
	  MsgBox(4096,"Условие","Сработало",25)
	  $perez = _ImageSearch("perez.png",1,$x,$y,0)
	  If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
EndFunc

Func Avakad2()
   ToolTip("Бой",0,0)
While 1
    $i=0
   While $i < 5000
	  $i = $i+1
	  $mertv1 = _ImageSearch("mertv1.png",1,$x,$y,0)
	  $mertv = _ImageSearch("mertv.png",1,$x,$y,0)
	  If $mertv = 1 or $mertv1 = 1 Then
		 Sleep(100)
		 Krpob()
	  Else
		 $avakad2 = _ImageSearch("avakad2.png",1,$x,$y,0)
		 If $avakad2 = 1 Then
			MouseClick("left",$x,$y,1,10)
			MouseMove($x,$y, 10)
			Sleep(1500)
			Avakad()
		 EndIf
	  EndIf
	  WEnd
	  MsgBox(4096,"Условие","Сработало",25)
	  $perez = _ImageSearch("perez.png",1,$x,$y,0)
	  If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
EndFunc
;=============
Func Krpob()
   ToolTip("Окно победы",0,0)
   While 1
	  $i=0
   While $i < 1500
	  $i = $i+1
 	  $krpob = _ImageSearch("krpob.png",1,$x,$y,0)
	  $krpob1 = _ImageSearch("krpob1.png",1,$x,$y,0)
	  If $krpob = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Mobil()
	  Else
		 $krpob1 = _ImageSearch("krpob1.png",1,$x,$y,0)
		 If $krpob1 = 1 Then
			MouseClick("left",$x,$y,1,10)
			MouseMove(260, 120, 10)
			Sleep(100)
			Mobil()
		 EndIf
	  EndIf
	  WEnd
   MsgBox(4096,"Условие","Сработало",25)
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
   EndIf
  WEnd
EndFunc
;======Поиск=====
Func Mobil()
ToolTip("Открытие",0,0)
While 1
$i=0
   While $i < 1500
	  $i = $i+1
	  $mobila = _ImageSearch("mobil.png",1,$x,$y,0)
	  If $mobila = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Knkad()
	  Else
		 $krmob = _ImageSearch("krmob.png",1,$x,$y,0)
		 If $krmob = 1 Then
			MouseClick("left",$x,$y,1,10)
			MouseMove(260, 120, 10)
			Sleep(100)
			Mobil2()
			EndIf
	  EndIf
   WEnd
   MsgBox(4096,"Условие","Сработало",25)
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
   EndIf
WEnd
EndFunc

Func Mobil2()
ToolTip("Открытие",0,0)
While 1
$i=0
   While $i < 1500
	  $i = $i+1
	  $mobila = _ImageSearch("mobil.png",1,$x,$y,0)
	  If $mobila = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Knkad()
	  Else
		 $krmob = _ImageSearch("krmob.png",1,$x,$y,0)
		 If $krmob = 1 Then
			MouseClick("left",$x,$y,1,10)
			MouseMove(260, 120, 10)
			Sleep(100)
			Mobil()
			EndIf
	  EndIf
   WEnd
   MsgBox(4096,"Условие","Сработало",25)
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
   EndIf
WEnd
EndFunc
;=====Если нету=====
Func Yskor()
   ToolTip("Ускорение",0,0)
   While 1
	  $i = 0
	  While $i < 1500
		 $i = $i+1
	  $yskor = _ImageSearch("yskor.png",1,$x,$y,0)
	  If $yskor = 1 Then
		 Sleep(100)
		 Yskorz()
	  Else
		 Sleep(100)
	  EndIf
   WEnd
   MsgBox(4096,"Условие","Сработало",25)
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor2()
	  EndIf
   WEnd
EndFunc

Func Yskor2()
   ToolTip("Ускорение",0,0)
   While 1
	  $i = 0
	  While $i < 1500
		 $i = $i+1
	  $yskor = _ImageSearch("yskor.png",1,$x,$y,0)
	  If $yskor = 1 Then
		 Sleep(100)
		 Yskorz()
	  Else
		 Sleep(100)
	  EndIf
   WEnd
   MsgBox(4096,"Условие","Сработало",25)
   $perez = _ImageSearch("perez.png",1,$x,$y,0)
   If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
	  EndIf
   WEnd
EndFunc
;======Если есть=====
Func Yskorz()
   ToolTip("Ускорение 2",0,0)
   While 1
	  $i = 0
	  While $i < 1500
		 $i = $i+1
	  $yskor = _ImageSearch("yskor.png",1,$x,$y,0)
	  If $yskor = 1 Then
		 Sleep(100)
		 Mobil()
	  Else
		 Sleep(100)
	  EndIf
	   MsgBox(4096,"Условие","Сработало",25)
	  $perez = _ImageSearch("perez.png",1,$x,$y,0)
	  If $perez = 1 Then
		 MouseClick("left",$x,$y,1,10)
		 MouseMove(260, 120, 10)
		 Sleep(100)
		 Yskor()
		 EndIf
   WEnd
   WEnd
EndFunc
Можно ли как то исправить ошибку не переписывая весь скрипт?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: [Ошибки] Recursion level has been exceeded - Autoit will to prevent stack owerflov

vindizel,
Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[Ошибки] Recursion level has been exceeded - Autoit will to prevent stack owerflov" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Глобальный модератор.
 
Верх