Что нового

WoW. Fishing bot. Пишем своими руками.

FiReDoGGi

Новичок
Сообщения
42
Репутация
2
Belfigor сказал(а):
Наводимся на попловок во время рыбалки
И так уважаемые есть такой вопрос!

Как при нахождении нужного объекта остановить курсор мыши и сдвинуть его вниз.
Так происходит поиск объекта:

;Поиск объекта
MouseMove($pos[0]+85,$pos[1]+350,20);Начальная точка
MouseMove($pos[0]+715,$pos[1]+350,20);Вправо
MouseMove($pos[0]+715,$pos[1]+400,20);Вниз
MouseMove($pos[0]+85,$pos[1]+400,20);Влево
MouseMove($pos[0]+85,$pos[1]+450,20);Вниз
MouseMove($pos[0]+715,$pos[1]+450,20);Вправо
MouseMove($pos[0]+715,$pos[1]+475,20);Вниз
MouseMove($pos[0]+85,$pos[1]+475,20);Влево

Когда курсор проезжает по объекту он меняется с палочки на мяч.
Как это можно реализовать. :(

Описание как создать своего бота находится тут:
http://autoit-script.ru/index.php/topic,116.msg924.html#msg924
 

Belfigor

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

Для того чтобы дать более расширенный ответ хотелось бы знать:
1) Название игры
2) Ссылку на игру
3) Скрин тех моментов с которыми ты хочешь работать
 

Belfigor

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

Если мне не изменяет память, в той локации скрин которой ты предоставил синий цвет (ручка отверки в ящике), является чуть ли не уникальным цветом на ландшафте. Рекомендую для начала отодвинуть идею с поиском по средством мышки подальше, и попробовать PixelSearch на цвет ручки отвертки с диапазоном цветов примерно в 20-40. А далее как с PixelSearch'ем разберешься я смогу примерно сказать тебе как опираясь исключительно на входящие графические данные, развернуться и добежать до цели через WASD, хотя можно переключить режим передвижения на управление мышкой, тогда будет еще проще.
 
Автор
F

FiReDoGGi

Новичок
Сообщения
42
Репутация
2
Re: Работа с курсором

А можно поподробнее?
Я просто отнюдь не продвинутый человек в данной области.
Желательно примерный код.
Как вообще сам цикл оформить?
Чтоб мышь ездила а пиксели проверять..Никак не воткну...
 

Belfigor

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

Тогда давай большой скрин, хотябы 500х500 с ящиком от инструментов (желательно хотябы с двух сторон),
Так же укажи точное название локации в которой выполняется квест + Название квеста.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Re: Работа с курсором

FiReDoGGi
Вопрос смутноват. Как скрипт будет определять что достигнут нужный объект? отследить изменение курсора можно, но не так уж и просто, и тем более если речь про игровой интерфейс, где могут быть задействованы собственные обработчики курсора.

P.S
В следующий раз лучше попросить модераторов перенести тему (кнопка «Сообщить модератору»), дубли создавать не нужно.
 

Belfigor

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

CreatoR сказал(а):
FiReDoGGi
Вопрос смутноват. Как скрипт будет определять что достигнут нужный объект? отследить изменение курсора можно, но не так уж и просто, и тем более если речь про игровой интерфейс, где могут быть задействованы собственные обработчики курсора.

P.S
В следующий раз лучше попросить модераторов перенести тему (кнопка «Сообщить модератору»), дубли создавать не нужно.
Ок, в след раз сообщим.
Вопрос не столько смутноват сколько ориентирован на узкую публику имеющую опыт в подобных делах. Скажем так мне в полне понятна задача, подбежать к ящику и забрать квест итем, и я примерно знаю как это сделать, хоть для ВоВ из ботов только БГ Фармеров писал :smile:
 
Автор
F

FiReDoGGi

Новичок
Сообщения
42
Репутация
2
Re: Работа с курсором

Это не квест. Это просто Ловля рыбы фактически.
Могу сделать видюшку того что надо.

ЗЫ. Сори.
 

Belfigor

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

Делай видео и лей на ютуб.
 
Автор
F

FiReDoGGi

Новичок
Сообщения
42
Репутация
2
Re: Работа с курсором

Ютуб не юзаю. Сливай.
http://79.120.41.152:64682/%D0%92%D0%B8%D0%B4%D0%B5%D0%BE.rar
 

Belfigor

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

Ах, это не ящик, это попловок.
Открывай утилиту Au3Info (идет в комплекте с автоитом), запускай, с помощью нее определи левый верхний и правый нижний углы области поиска (для начала сделай маленькую, например 50х50 пикселей, далее та же утилита возвращает цвет под курсором. Далее используй этот код и подставь туда свои значения:
Код:
$m = PixelSearch(ХВерхнегоЛевогоУгла,УВерхнегоЛевогоУгла,ХНижнегоПравогоУгла, УНижнегоПравогоУгла, Цвет который будем искать в формате 0х000000, шейдер (укажи 30))
	If Not @error Then
		MsgBox(0,'','Found попловок')
		MouseMove($m[0], $m[1], 10)
	Else
		MsgBox(0,'','Not Found попловок')
	EndIf
 
Автор
F

FiReDoGGi

Новичок
Сообщения
42
Репутация
2
Re: Работа с курсором

АААА!!!!!111одын!
ОНО РАБОТАЕТ! Супер!
 

Belfigor

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

Ну тогда если проблема решена, я четко опишу поставленную задачу в первом посте отредактировав его и изменив название темы :smile:
Репо кнопка тут
V
70.gif
 
Автор
F

FiReDoGGi

Новичок
Сообщения
42
Репутация
2
Re: Работа с курсором

Еще пара вопросов. Как зациклить процесс? И сделать кнопку паузы и выхода из скрипта

Зацикливать процесс:
-----
1
2
3
------
ПС надо + на репе тыкать? =)

И как можно повысить точность определения?
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: WoW. Fishing bot. Наводимся на попловок.

Да, тыкать надо +
117.GIF


Код:
HotKeySet("{F1}", "_Exit")

While 1
	;То что хочешь зациклить
WEnd

Func _Exit()
	MsgBox(0,"","Работа завершена")
	Exit
EndFunc


Нажмешь F1 и скрипт завершит работу.

В случае обнаружения нужного цвета в переменную $m возвращается x и y найденного пикселя ($m[0] = x, $m[1] = y).
Тоесть тебе все что остается это вручную задать поправку, например чтобы мышка подвинулась на 10 пикселей правее и на 15 ниже найденного пикселя используй
Код:
MouseMove($m[0]+10, $m[1]+15, 10)


В смысле повысить точность?
 
Автор
F

FiReDoGGi

Новичок
Сообщения
42
Репутация
2
Re: WoW. Fishing bot. Наводимся на попловок.

С точностью разобрался. + поставил! Ты его реально заслужил.
И послед вопрос. Как сделать реакцию на цвет?
Т.Е. если цвет "00000000" то "что то".
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: WoW. Fishing bot. Наводимся на попловок.

Про реакцию на цвет:
Команда PixelGetColor(x,y) возвращает текущее цветовое значение пикселя
Код:
$col = Hex(PixelGetColo(x,y), 6))
If $col = 0x000000 Or $col = 0x111111 Or $col = 0x222222 Then
	MsgBox(0,'','Цвет подходит под один из заданных')
Else
	MsgBox(0,'','Проверка по цвету не прошла')
EndIf

Другое дело, я на 95% уверен что у тебя цвет будет гулять влево в право на пару тройку значений, хотябы потому что освещение меняется (день, ночь и тд). По этой причине я бы опять же использовал пиксельсерчи на нужные мне места чтобы определить есть ли там нужный мне цвет или же нет. Пиксельгеткалор скажем так применяем только там где ты уверен что цвет не поползет, или же если знаешь что цвет поползет и знаешь как с этим бороться.
 
Автор
F

FiReDoGGi

Новичок
Сообщения
42
Репутация
2
Re: WoW. Fishing bot. Наводимся на попловок.

Чото он туда седа дергается.
А мне как бы надо чтоб после того как он вниз отъехал дождался появления цвета 00000000
а затем поднялся на 10пх вверх и кликнул.

;Повтроряющийся заброс, поиск,ждем поклевки,подсекаем
While 1
$m = PixelSearch($pos[0]+175,$pos[1]+350,$pos[0]+709,$pos[1]+478, 000000, 20)
If Not @error Then
MouseMove($m[0], $m[1], 10)
MouseMove($m[0], $m[1]+51, 10)
Else
MsgBox(0,'','Not Found попловок')
EndIf

$col = Hex(PixelGetColor($m[0],$m[1]), 6)
If $col = 000000 Then
MouseClick("right",$m[0], $m[1]+40)
MsgBox(0,'','Цвет подходит под один из заданных')
Else
MsgBox(0,'','Проверка по цвету не прошла')
EndIf

WEnd
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: WoW. Fishing bot. Наводимся на попловок.

Код:
While 1
	$m = PixelSearch($pos[0]+175,$pos[1]+350,$pos[0]+709,$pos[1]+478, 0000000, 20)
	If Not @error Then
		MouseMove($m[0], $m[1], 10)
		MouseMove($m[0], $m[1]+51, 10)
	Else
		MsgBox(0,'','Not Found попловок')
	EndIf
	
	While 1
	$col = Hex(PixelGetColor($m[0],$m[1]), 6)
	If $col = 00000000 Then
		MouseClick("left",$m[0], $m[1]+40)
		ExitLoop
	EndIf
	WEnd
WEnd


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