1

Тема: Скрипт на рыбалку, ARK

Добрый день!
В игре присутствует рыбалка, алгоритм - закинули удочку, ждем 2мин, при поклевке включается таймер на 20сек и на экране в определенном месте появляются картинки с изображением клавиш, на которые необходимо нажать. Всего клавиш 9(zxcasdqwe), Чем лучше рыба, тем длиннее сочетание клавиш неоходимо нажать.
Имеющийся скрипт успевает прожимать от 20 до 24 клавиш за 20 сек. Мне необходимо довести это значение до 32-36.
Между отдельными нажатиями происходят произвольные паузы, связанные, я так понимаю, с тем, что скрипт последовательно перебирает картинки с буквами, и если следующим нажатием идет предыдущая в списке подбора буква, то скрипт не нажмет букву пока не переберет последующие 8 вариантов, из за этого возникают задержки более 1 сек между нажатиями.
Прощу Вашей помощи в решении задачи.
Возможно ли в одном скрипте осуществить параллельную проверку картинок?
Или лучше сделать 3 скрипта, каждому отдать по 3 буквы и параллельно запустить, не будет ли конфликтов в работе скриптов?
Может кто-нибудь свежим взглядом посмотрит на скрипт и предложит варианты по улучшению алгоритма.
Всем спасибо за внимание.

;;F6 = остановка скрипта
F6::
vari:=1
return

;;F5 = старт скрипта
F5::

;;D:\AutoFishingFiles\ = папка с картинками букв, azeqsdwxc
folder = D:\AutoFishingFiles\

vari:=0
fishingbuttonlist = azeqsdwxc
letternumber := 1

while %vari%=0
{
	
	
	;;Сканирование экрана
	
			letter := SubStr(fishingbuttonlist, letternumber, 1)
			imagesearch, xloc, yloc, 1140, 850, 1320, 1000, *15 *TransBlack %folder%\%letter%.png
            If !ErrorLevel
            {
			WinActivate, ARK: Survival Evolved

            Send, %letter%
            }
			letternumber := letternumber + 1
			
			If letternumber >= 10
			{
				letternumber := 1
			}
	
	;;Поиск сообщения об успешном улове, закидывание удочки
	PixelSearch, xloc, yloc, 0, 0, A_ScreenWidth/4, A_ScreenHeight/4, 0x7FFD03, 20, Fast ;
            If !ErrorLevel
            {
			WinActivate, ARK: Survival Evolved
            Sleep, 2000
            Click
            }	            
}
return 

2 (изменено: Masteronny, 2017-01-14 13:08:38)

Re: Скрипт на рыбалку, ARK

Спасибо за ответ.
Это не вся игра, а просто мини игра на рыбалку.
Область на минимуме, с учетом разброса уникальных фрагментов букв.
Сделал 2 скрипта, по 4 и 5 букв соответственно. Удалось добиться 30 нажатий за 20 сек. Сперва сделал по 1 букве на скрипт, но imagesearch неплохо кушает ресурсы.
Появилась проблема в согласовании скриптов.
С АНК я практически не знаком, раньше пользовался простейшими Clickemann u UO-pilot.
Вы предложили - "а к сочетаниям клавиш добавьте ~, чтобы они не блокировались и их смогли получить все скрипты."
Можете привести пример?

;;F6 = остановка скрипта
F6::
vari:=1
return

;;F5 = старт скрипта
F5::

;;D:\AutoFishingFiles\ = папка с картинками букв, azeqsdwxc
folder = D:\AutoFishingFiles\

vari:=0
fishingbuttonlist = azeq
letternumber := 1

while %vari%=0
{
	
	
	;;Сканирование экрана
	
			letter := SubStr(fishingbuttonlist, letternumber, 1)
			imagesearch, xloc, yloc, 1140, 850, 1320, 1000, *15 *TransBlack %folder%\%letter%.png
            If !ErrorLevel
            {
			WinActivate, ARK: Survival Evolved

            Send, %letter%
            }
			letternumber := letternumber + 1
			
			If letternumber >= 5
			{
				letternumber := 1
			}	            
}
return  

;;F6 = остановка скрипта
F6::
vari:=1
return

;;F5 = старт скрипта
F5::

;;D:\AutoFishingFiles\ = папка с картинками букв, azeqsdwxc
folder = D:\AutoFishingFiles\

vari:=0
fishingbuttonlist = sdwxc
letternumber := 1

while %vari%=0
{
	
	
	;;Сканирование экрана
	
			letter := SubStr(fishingbuttonlist, letternumber, 1)
			imagesearch, xloc, yloc, 1140, 850, 1320, 1000, *15 *TransBlack %folder%\%letter%.png
            If !ErrorLevel
            {
			WinActivate, ARK: Survival Evolved

            Send, %letter%
            }
			letternumber := letternumber + 1
			
			If letternumber >= 6
			{
				letternumber := 1
			}	            
}
return     

Иногда при запуске обоих скриптов все работает, иногда работает только один. Как можно их согласовать?