obm |
Отправлено: 13 Января, 2014 - 08:29:20
|
Наблюдатель
Покинул форум
Сообщений всего: 47
Дата рег-ции: Янв. 2014
Репутация: 1
|
Для начала хочу поблагодарить автора за замечательную программу. Я не профи программер, но у меня ушли считанные часы чтобы во всем более-менее разобраться. Очень порадовали подробные примеры и функции работы с графикой.
Теперь к сути. Как известно, игра Архейдж сейчас на гребне популярности. Вчера писал бота, все очень даже неплохо выходит, мобов определяет на экране (finddynamic плохо с игрой работает, ибо окружение не статично, но и без него все супер). Кликать и отправлять нажатия клавиш пока не пробовал, есть подозрения, что hackshield это дело отловит и забанит, в его описании на англоязычном форуме нашел, что он очень хорошо ловит автокликеры. Пока не рискую.
Вопрос№1
Читал про антиантикликкер, что нужно ps2, у меня таких девайсов нет. Можно ли их как-то эмулировать их, либо решить вопрос защиты от антикликера по другому? У меня xp64. Может и через апи будет работать? Кстати, в описании программы написано, что она отправляет команды на уровне железа.
(Добавление)
Вопрос №2
Решил в Архейдж писать бота для аукциона. Столкнулся со следующей проблемой:
Есть список из нескольких позиций с полями: цена, время до окончания торгов по позиции, кол-во, ставка(моя ли ставка сейчас лидирует), иконка и название лота.
Я могу распознать цену, могу распознать время. Специфика аукциона такова, что когда времени до конца более минуты, он пишет "1 мин", когда менее 1 мин, "менее 1 мин". Моя задача обновлять список и отловить момент перехода с "1 мин" на "менее 1 мин" (есть сортировка по времени убывания), и сделать ставку через 55 секунд после этого, чтобы оказаться победителем с наибольшей вероятностью, это я могу легко сделать. Но вот что я не могу сделать - дак это отслеживать сам лот, его позицию, ведь распознавать название лота - дурдом. Допустим я определил, что в определенную секунду по позициям 1,2,3 осталось 20, 40, 50 сек соответственно. Тогда в момент, когда позиция 1 снимется с торгов бот может начать тупить, т.к. у 4 позиции может подойти момент, когда по ней останется менее 1 мин и она сольется с 3 первыми позициями. Не будет понятно, то ли ушла 1ая позиция, то ли не ушла, то ли ушла 1ая, но добавилась новая 4, которая будет 3 Сумбурно написал, но, думаю понятно. Если бы я мог каким-то образом сохранить название лота (причем лучше картинкой), и потом его сравнить в дальнейшем, я бы мог определить, тот это лот, или нет. Можно подобное как-то реализовать?
Ну и плюс ко всему прочему, программа ведь поддерживает запись в тхт файл, это значит, что можно собирать статистику по товарам и анализировать цену. |
|
|
Kibor |
Отправлено: 13 Января, 2014 - 12:58:00
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
obm пишет: Если бы я мог каким-то образом сохранить название лота (причем лучше картинкой), и потом его сравнить в дальнейшем, я бы мог определить, тот это лот, или нет. Можно подобное как-то реализовать?
Да. Смотрите функцию screen
С помощью этой функции можете сохранить в памяти участок изображения экрана (интересующий лот или первый). Потом этот участок искать с помощью findimage и если его координаты изменились или не нашли, значит лот сдвинулся. Если я правильно понял......
obm пишет: finddynamic плохо с игрой работает, ибо окружение не статично
Так finddynamic и предназначено для работы с нестатичным изображением..
Если надо использовать findimage с частично нестатичными изображениями, то надо применять ее расширенную вариацию - поиск по неполному совпадению. |
|
|
obm |
Отправлено: 13 Января, 2014 - 13:56:39
|
Наблюдатель
Покинул форум
Сообщений всего: 47
Дата рег-ции: Янв. 2014
Репутация: 1
|
Kibor пишет: Да. Смотрите функцию screen
С помощью этой функции можете сохранить в памяти участок изображения экрана (интересующий лот или первый). Потом этот участок искать с помощью findimage и если его координаты изменились или не нашли, значит лот сдвинулся. Если я правильно понял...... Да, по-моему то, что нужно, круто! Сегодня проверю.
Kibor пишет: Так finddynamic и предназначено для работы с нестатичным изображением..
Если надо использовать findimage с частично нестатичными изображениями, то надо применять ее расширенную вариацию - поиск по неполному совпадению.
Это не прокатит, т.к. колебания слишком сильны (например, колышется трава, туман и т.п. В АА вообще мало статики). Но я сделал через поиск банальной рамки моба, все работает четко!
(Добавление)
rev41k пишет: Вот мне интерестно название лота (сам текст) находится на меняющемся фоне или фон остается неизменным !? Если остается неизменным , тогда проблем нет режте и ставьте распознание через findimage. Вот только я еще одно не понял - сколько строк лотов сразу можно отобразить ,3???
Нет, фон статичен. Но лот появляется в момент исполнения макроса, его нельзя нарезать заранее по ряду причин (он разный в зависимости от условий), но Кибор ниже посоветовал подходящую функцию.
Вообще отображается и больше (по-моему до 10), но меня обычно интересуют верхние, т.к. по ним время торгов ближе. |
|
|
|