Что нового

PixelSearch неправильно определяет пиксель"

firstoxe

Новичок
Сообщения
14
Репутация
0
Начал писать элементарного бота для онлайн игры атлантика.
Бот спокойно находится в зоне тбс с агромобами, дерется на автобое, после боя проверяет умер ли кто то из мерков, если да то воскрешает его.
После боя начинаю выбирать каждого мерка и проверять по цвету пикселя жив он или нет, с помощью
Код:
PixelSearch.

Почему то скрипт начинает работать некорректно, если первый наёмник мертв, то он и всех остальных после него считает мёртвыми.
Если все живы, то после проверки 6 мерк всегда почему то мёртв и причём остальных мерков идущих после него, он считает что они живы.... Не могу понять в чём косяк?

Код:
#Include <winapi.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 453, 327, 192, 124)
$Merk2 = GUICtrlCreateInput("Мёртв", 16, 24, 121, 21)
$Merk3 = GUICtrlCreateInput("Мёртв", 16, 56, 121, 21)
$Merk4 = GUICtrlCreateInput("Мёртв", 16, 88, 121, 21)
$Merk5 = GUICtrlCreateInput("Мёртв", 16, 128, 121, 21)
$Merk6 = GUICtrlCreateInput("Мёртв", 16, 160, 121, 21)
$Merk7 = GUICtrlCreateInput("Мёртв", 16, 192, 121, 21)
$Merk8 = GUICtrlCreateInput("Мёртв", 16, 224, 121, 21)
$Merk9 = GUICtrlCreateInput("Мёртв", 16, 256, 121, 21)

$CheckMerk = GUICtrlCreateButton("Check Merk", 312, 64, 75, 25)
GUISetState(@SW_SHOW)

$hWnd = WinGetHandle("Атлантика Онлайн")

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		 Case $GUI_EVENT_CLOSE 
			Exit
		  Case $CheckMerk
			CheckMerk()
	EndSwitch
WEnd

Func CheckMerk()
   ControlSend($hWnd, "", "", "2")
   sleep(600)
			$MerkDie = PixelSearch(0,0,771,753,0x371B3A,1,0,$hWnd)
			If Not @error Then
			   GUICtrlsetdata($Merk2,"Мёртв")
			Else
			   GUICtrlsetdata($Merk2,"Жив")
			EndIf
   ControlSend($hWnd, "", "", "3")
   sleep(600)
			$MerkDie = PixelSearch(0,0,815,753,0x371B3A,1,0,$hWnd)
			If Not @error Then
			   GUICtrlsetdata($Merk3,"Мёртв")
			Else
			   GUICtrlsetdata($Merk3,"Жив")
			EndIf			
			
   ControlSend($hWnd, "", "", "4")
   sleep(600)
			$MerkDie = PixelSearch(0,0,859,753,0x371B3A,1,0,$hWnd)
			If Not @error Then
			   GUICtrlsetdata($Merk4,"Мёртв")
			Else
			   GUICtrlsetdata($Merk4,"Жив")
			EndIf
 ControlSend($hWnd, "", "", "5")
   sleep(600)
			$MerkDie = PixelSearch(0,0,903,753,0x371B3A,1,0,$hWnd)
			If Not @error Then
			   GUICtrlsetdata($Merk5,"Мёртв")
			Else
			   GUICtrlsetdata($Merk5,"Жив")
			EndIf
			
	ControlSend($hWnd, "", "", "6")
	sleep(600)
			$MerkDie = PixelSearch(0,0,945,754,0x371B3A,1,0,$hWnd)
			Sleep(100)
			If Not @error Then
			   GUICtrlsetdata($Merk6,"Мёртв")
			Else
			   GUICtrlsetdata($Merk6,"Жив")
			EndIf
			
   ControlSend($hWnd, "", "", "7")
	sleep(600)
			$MerkDie = PixelSearch(0,0,987,753,0x371B3A,1,0,$hWnd)
			If Not @error Then
			   GUICtrlsetdata($Merk7,"Мёртв")
			Else
			   GUICtrlsetdata($Merk7,"Жив")		
			EndIf
	ControlSend($hWnd, "", "", "8")
	sleep(600)
			$MerkDie = PixelSearch(0,0,1030,753,0x371B3A,1,0,$hWnd)
			If Not @error Then
			   GUICtrlsetdata($Merk8,"Мёртв")
			Else
			   GUICtrlsetdata($Merk8,"Жив")		   
			EndIf
	ControlSend($hWnd, "", "", "9")
	sleep(600)
			$MerkDie = PixelSearch(0,0,1073,753,0x371B3A,1,0,$hWnd)
			If Not @error Then
			   GUICtrlsetdata($Merk9,"Мёртв")
			Else
			   GUICtrlsetdata($Merk9,"Жив")		  
			EndIf
EndFunc
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: Бот для онлайн игры Атлантика проблема с PixelSearch

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


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

"Бот для онлайн игры Атлантика проблема с PixelSearch" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Модератор.









Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Модератор.
 

nowost

Знающий
Сообщения
178
Репутация
17
Re: Бот для онлайн игры Атлантика проблема с PixelSearch

ТС, выполни требования модератора и приложи хоть скрины какие нибудь ) а то не понятно что ты ищешь.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: Бот для онлайн игры Атлантика PixelSearch некорректно работает

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


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

"Бот для онлайн игры Атлантика PixelSearch некорректно работает " - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Модератор.
 
Верх