Что нового

Бот для прокачки умений в Aion

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Собственно, передо мною встала задача, написать мини - бота для Aion. Все что от него требуется:
1. Потыкать кнопки выбора цели, до момента нахождения нужного названия(В нашем случае "Логи")
2. Взять задание.
3. Подойти обратно к столу
4. Выбрать что изготавливать
5. Ждать окончания.
Повтор всего, до момента окончания ресурсов :smile:

Сделать это все мне не подвластно, т.к. с ботами впервые, и еще толком не знаком с Pixel_ функциями.
Прошу помощи :smile:

Скрины приложены.






P,S, Да, я читал темы по написанию ботов, но просто мне нужно срочно, и коды перелопачивать не очень хочется...
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Лучше бы ты приложил 10 скринов залитых на имидж хостинг или еще куда и отображаемых через img тэг, нежели щас архив качать v_v
Будет достаточно проблемотично распознать само слово Логи ибо оно за собой не имеет фона стабильного и в конце концов может получиться так что фон будет практически одного цвета со словом этим. В случае твоем разумно было бы в памяти покапаться и пакеты анализировать, но не шарю я в этом и посоветовать что-то либо кроме поверхностных методов работы с памятью не могу поэтому.
 
Автор
Medic84

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Сори, я скрины сделал по быстрому, и без потери качества(сейчас исправлю). Есть другой вариант подхода к Логи. Есть такая штука как макрос, и он там оооочень обширный. Проблема подхода к Логи решена. Составлю код, распишу как я все сделал.
А вот проблема ожидания так и остается.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Можно отслеживать изменение цвета кнопки с текущего на какой-либо другой тем самым определяя ее текущий статус:
Код:
$x = 0
$y = 0
$color = PixelGetColor($x, $y)
While PixelSearch($x, $y, $x, $y, $color, 10) <> @error
	Sleep(100)
WEnd
MsgBox(0,"","Кнопка изменила свое состояние")


Можно заранее задать один из заданных цветов и в логике присвоить ему заранее известное состояние:
Код:
$x = 0
$y = 0
$color = 0 ;Цвет неактивной кнопки
PixelSearch($x, $y, $x, $y, $color, 10)
If @error Then
	MsgBox(0,"","Кнопка активна")
;~ 	ToolTip("Кнопка активна", 0, 0)
Else
	MsgBox(0,"","Кнопка НЕ активна")
;~ 	ToolTip("Кнопка НЕ активна", 0, 0)
EndIf


Можно перестраховаться и вбить два желаемых состояния и возврат в случае не соответствия получаемому статусу кнопки к одному из описанных заранее:
Код:
$x = 0
$y = 0
$color1 = 0 ;Цвет неактивной кнопки
$color2 = 0 ;Цвет активной кнопки

While 1
	ToolTip(GetButtonStatus(), 0, 0)
WEnd

Func GetButtonStatus()
	PixelSearch($x, $y, $x, $y, $color1, 10)
	If Not @error Then Return "Кнопка не активна"
		
	PixelSearch($x, $y, $x, $y, $color2, 10)
	If Not @error Then Return "Кнопка активна"
		
	Return "Не могу определить текущий статус кнопки"
EndFunc
 
Верх