Для начала хочу поблагодарить автора за замечательную программу. Я не профи программер, но у меня ушли считанные часы чтобы во всем более-менее разобраться. Очень порадовали подробные примеры и функции работы с графикой.
Теперь к сути. Как известно, игра Архейдж сейчас на гребне популярности. Вчера писал бота, все очень даже неплохо выходит, мобов определяет на экране (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 Сумбурно написал, но, думаю понятно. Если бы я мог каким-то образом сохранить название лота (причем лучше картинкой), и потом его сравнить в дальнейшем, я бы мог определить, тот это лот, или нет. Можно подобное как-то реализовать?
Ну и плюс ко всему прочему, программа ведь поддерживает запись в тхт файл, это значит, что можно собирать статистику по товарам и анализировать цену.
1. obm - 13 Января, 2014 - 00:29:20 - перейти к сообщению
2. rev41k - 13 Января, 2014 - 04:28:15 - перейти к сообщению
Вот мне интерестно название лота (сам текст) находится на меняющемся фоне или фон остается неизменным !? Если остается неизменным , тогда проблем нет режте и ставьте распознание через findimage. Вот только я еще одно не понял - сколько строк лотов сразу можно отобразить ,3???
(Добавление)
Желательно приведите скрин.
(Добавление)
Желательно приведите скрин.
3. Kibor - 13 Января, 2014 - 04:58:00 - перейти к сообщению
obm пишет:
Если бы я мог каким-то образом сохранить название лота (причем лучше картинкой), и потом его сравнить в дальнейшем, я бы мог определить, тот это лот, или нет. Можно подобное как-то реализовать?
Да. Смотрите функцию screen
С помощью этой функции можете сохранить в памяти участок изображения экрана (интересующий лот или первый). Потом этот участок искать с помощью findimage и если его координаты изменились или не нашли, значит лот сдвинулся. Если я правильно понял......
obm пишет:
finddynamic плохо с игрой работает, ибо окружение не статично
Так finddynamic и предназначено для работы с нестатичным изображением..
Если надо использовать findimage с частично нестатичными изображениями, то надо применять ее расширенную вариацию - поиск по неполному совпадению.
4. obm - 13 Января, 2014 - 05:56:39 - перейти к сообщению
Kibor пишет:
Да. Смотрите функцию screen
С помощью этой функции можете сохранить в памяти участок изображения экрана (интересующий лот или первый). Потом этот участок искать с помощью findimage и если его координаты изменились или не нашли, значит лот сдвинулся. Если я правильно понял......
Да, по-моему то, что нужно, круто! Сегодня проверю.С помощью этой функции можете сохранить в памяти участок изображения экрана (интересующий лот или первый). Потом этот участок искать с помощью findimage и если его координаты изменились или не нашли, значит лот сдвинулся. Если я правильно понял......
Kibor пишет:
Так finddynamic и предназначено для работы с нестатичным изображением..
Если надо использовать findimage с частично нестатичными изображениями, то надо применять ее расширенную вариацию - поиск по неполному совпадению.
Если надо использовать findimage с частично нестатичными изображениями, то надо применять ее расширенную вариацию - поиск по неполному совпадению.
Это не прокатит, т.к. колебания слишком сильны (например, колышется трава, туман и т.п. В АА вообще мало статики). Но я сделал через поиск банальной рамки моба, все работает четко!
(Добавление)
rev41k пишет:
Вот мне интерестно название лота (сам текст) находится на меняющемся фоне или фон остается неизменным !? Если остается неизменным , тогда проблем нет режте и ставьте распознание через findimage. Вот только я еще одно не понял - сколько строк лотов сразу можно отобразить ,3???
Нет, фон статичен. Но лот появляется в момент исполнения макроса, его нельзя нарезать заранее по ряду причин (он разный в зависимости от условий), но Кибор ниже посоветовал подходящую функцию.
Вообще отображается и больше (по-моему до 10), но меня обычно интересуют верхние, т.к. по ним время торгов ближе.
5. obm - 13 Января, 2014 - 08:11:48 - перейти к сообщению
Вот я и уперся в вопрос №1
При попытке кликать в окно игры (причем на определенные кнопки) игра блокирует клик.
Антиантикликкер не смог заставить работать.
При попытке кликать в окно игры (причем на определенные кнопки) игра блокирует клик.
Антиантикликкер не смог заставить работать.
6. Kibor - 13 Января, 2014 - 10:24:14 - перейти к сообщению
Для анти антикликера нужны ps2 мышь и клавиатура. Или ноутбук. Там девайсы ps2.....
7. obm - 13 Января, 2014 - 11:25:14 - перейти к сообщению
Kibor пишет:
и антикликера нужны ps2 мышь и клавиатура. Или
Да, спасибо. Я уже в курсе
Сегодня весь вечер танцевал с бубнами. И эмуляторы искал и пытался анрут защиты сделать и т.п., все бестолку. kernel explorer на вин64 не пашет, им можно защиту заткнуть. Эмуляторов пс/2 не нашел, бился 3 часа. Знакомый сисадмин сказал, что виртуалкой тоже не сделать их.
Завтра старый системник подниму, там есть пс2.
8. Kibor - 13 Января, 2014 - 11:38:04 - перейти к сообщению
obm пишет:
Знакомый сисадмин сказал, что виртуалкой тоже не сделать их
Прекрасно работает на виртуалке если там PS2.
Я делал на VMware Workstation. Только не помню как уже.
Правда у меня был контроллер ps2 (порты). Не было просто подключены девайсы...
9. obm - 13 Января, 2014 - 12:51:35 - перейти к сообщению
Kibor пишет:
Правда у меня был контроллер ps2 (порты). Не было просто подключены девайсы...
видимо в этом дело, у меня пишет, что раз нет такого девайса, то и на виртуалке создать его не может, хотя порт один пс2 на матери есть
10. Kibor - 13 Января, 2014 - 13:05:09 - перейти к сообщению
obm пишет:
хотя порт один пс2 на матери есть
Значит контроллер есть... если порт рабочий.
Подключите к нему мышь или клаву и проверьте запрограммировать его на клик или нажатие.
Программировать только тот девайс который подключен.