1

Тема: AHK: function recursion limit exceeded

Всем привет, получаю вот такую ошибку в казалось бы простеньком визуал боте. Покурил форум, вижу что в похожих случаях рекомендуют добавлять Loop или SetTimer для разрыва потока и что-то там еще, но я не вижу, куда бы я мог вставить их в свой скрипт. Подскажите как выйти из ситуации, по-возможности готовым примером.


SetKeyDelay, 100, 100

 HalfX := 512
 HalfY := 384

F5::

ChekFood:

	Send {Alt Down}{R}{Alt Up}
	sleep 1000
	ImageSearch X, Y, 0, 0, 1024, 768, ChekFood.bmp
	if ErrorLevel
		Gosub ChekMob
	else
		{
			ImageSearch, X1, Y1, 0, 0, 1024, 768, *TransFF0000 Feed.bmp
			if ErrorLevel = 0
				{
					MouseClick, L, X1+20, Y1+10
					sleep 1000
					ImageSearch, X2, Y2, 0, 0, 1024, 768, *TransFF0000 OK.bmp
					if ErrorLevel = 0
						{
							MouseClick, L, X2+10, Y2+5
							sleep 1000
							Gosub ChekFood
						}
				}
		}
	return

ChekMob:

	PixelSearch, Px, Py, HalfX - 230, HalfY - 230, HalfX + 230, HalfY + 230, 0xFF18CE, 5, Fast RGB
	if ErrorLevel = 0
		{
			Send {Alt Down}
			MouseClick, R, Px+20, Py+20, 2
			Send {Alt Up}
			sleep 3000
			Gosub ChekMob
		}
	else
		sleep 1000
		Gosub ChekLoot
	return
	
ChekLoot:

	PixelSearch, Px, Py, HalfX - 230, HalfY - 230, HalfX + 230, HalfY + 230, 0x0000FF, 5, Fast RGB
	if ErrorLevel = 0
		{
			MouseClick, L, Px+20, Py+20
			sleep 3000
			Gosub ChekLoot
		}
	else
		Send {F1}
		sleep 1000
		Gosub ChekFood
	return
	
F6::
Pause

Ошибка: https://i.ibb.co/XznjGz0/ErrorAHK.jpg

2

Re: AHK: function recursion limit exceeded

Для начала попробуйте в тех местах, где метка вызывает саму себя, использовать GoTo вместо GoSub.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: function recursion limit exceeded

teadrinker Благодарю за помощь, проблема решена. Более того, благодаря Вашему совету почитал справку о работе "Gosub", был весьма удивлен. Использовал его просто потому что в других скриптах люди так делали, для перехода к меткам. В моем случае заменил абсолютно все Gosub на Goto, ошибки больше не возникает.