1 (изменено: Drizzy, 2017-02-12 16:52:42)

Тема: AHK: Ошибка приложения

Всем привет, подскажите из-за чего может закрываться ahk в процессе выполнения скрипта? (ошибка приложения)


Numpad2::
MyVar10 = 0
MyVar = 0

Block1:
	ImageSearch, X, Y, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, C:\dk\und.PNG 
	if ErrorLevel = 0
	{
		ControlClick, % "x" X " y" Y, A
	}
	else
	{
		Gosub, Block1
	}
	Sleep 500
	Gosub, Block2

Block2:
	if(MyVar10>3)
	{
		ImageSearch, X, Y, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, C:\dk\nextfl.PNG 
		if ErrorLevel = 0
		{
			ControlClick, % "x" X-200 " y" Y+50, A	
			Sleep 500	  
			MyVar10=0
		}   
	}
	ImageSearch, X, Y, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, C:\dk\fight.PNG 
	if ErrorLevel = 0
	{
		ControlClick, % "x" X " y" Y+75, A	
		Sleep 500	  
		Gosub, Block3
	}
	else
	{
		ImageSearch, X, Y, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, C:\dk\next.PNG
		if ErrorLevel = 0
		{
			ControlClick, % "x" X " y" Y, A
			MyVar10++
			Sleep 500
			Gosub, Block2
		}		
	}

Block3:   
	ImageSearch, X, Y, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, C:\dk\afk.PNG 
	if ErrorLevel = 0
	{
		ControlClick, % "x" X " y" Y, A
		Sleep 1000
		MyVar=0
		Gosub, Block4
	}

Block4:
	loop
	{
		ImageSearch, X, Y, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, C:\dk\rew.PNG 
		if ErrorLevel = 0
		{
			if(MyVar<=3)
			{
				ControlClick, % "x" X " y" Y, A
				Sleep 500
				MyVar++
				if(MyVar>=3)
				{
					Sleep 2000
					Gosub, Block1
				}
			}
		}
	}

2

Re: AHK: Ошибка приложения

Drizzy, если вы хотите понимать, что у вас в скрипте происходит, никогда не используйте команду Gosub.

3

Re: AHK: Ошибка приложения

Drizzy, у Вас команда Gosub перенаправляет на ту же подпрограмму, в которой она находится.
При перескакивании в подпрограмму скрипт запоминает, откуда он пришёл. Но у Вас таких прыжков набирается очень много, скрипт "попадает в петлю". У него "заканчивается бумага" для записи маршрута.

4 (изменено: Malcev, 2017-02-11 14:44:20)

Re: AHK: Ошибка приложения

Замените GoSub на GoTo.
Ну а для читаемости всётаки лучше переписать скрипт.

5

Re: AHK: Ошибка приложения

Всем спасибо, переделал GoSub на функции. Так выглядит лучше и работает.