Автокликер

Программирование поиска 3Д и анимированных моделей.

Автокликеры и боты
Автокликер AvtoK
Программируемый автокликер Кибор
Визуальное создание ботов
Распознавание текста в Кибор

Заказать Бот на форуме

Бот для Dark Orbit
Бот для Рулетки. Универсальный
Бот для Warspear Online

Как обойти Frost и т.д.

Учебные скрипты Кибор
Бот для Lineage 2. Обход Фроста
Бот для RF Online
Бот для пасьяна Косынка
Бот для На рыбалку в вк
Бот для Три В Ряд

Графический редактор в Кибор

Форум программ AvtoK и Кибор

Поиск мобов в 3Д играх и анимированных изображений.

Поиск 2Д статических изображений решается довольно легко, так как в этом случае можно заранее подготовить изображние искомого объекта и сохранить его в файле. Во время работы скрипта оно загружается в память и сравнивается на совпадение с участком изображения на экране.

С 3Д и анимированными объектами все обстоит сложнее, поскольку предугадать их точный вид не возможно. Для поиска таких объектов на экране Кибор имеет функцию finddynamic. Синтаксис и использование этой функции смотрите в статье поиск 3Д моделей.

Ниже приводится пример кода, демонстрирующего использование функции finddynamic на примере прилагаемого анимированного изображения участка игрового мира и мобов с игры RF Online.

Анимированные мобы

Для демонстрации развернуть браузер на весь экран. Прилагаемое анимированное изображение должно быть в пределах видимости на экране. Других анимированных объектов на экране не должно быть.

Запустить прилагаемый код. Он просканирует экран и мышкой укажет все найденные анимированные изображения.
Данное изображение является анимированным .gif изображением и отличается от реального вывода на экран изображения игры. Поэтому пауза между вызовами finddynamic увеличина. Так же указана пауза в секунду между перемещениями мыши для видимости ее перемещения.

Посмотреть работу бота в 3Д игре RF Online можно тут: Бот для RF Online

int color, xe, ye;//переменные в которые запишутся данные о цвености и разрешение экрана
getdisplay(color, xe, ye);//Узнать разрешение экрана

sleep(1000);//Подождать секунду

//Заменить этот указатель на свой. Получить - навести на окно браузера и нажать CTRL+SHIFT+S
win
w=window ("Поиск мобов в 3Д играх и анимированных изображений. - Mozilla Firefox", "MozillaWindowClass", -1);//Указатель на окно.

int x[20], y[20];//переменные для принятия найденных координат.
povtor: finddynamic(0, #x[0], #y[0], 0, 0, 0, 0, 0, 0, xe, ye, w);//Получить изображение экрана
sleep(500);//Пауза между сравнением для поиска изменений
int k=finddynamic(20, #x[0], #y[0], 3, 3, 50, 100, 0, 0, xe, ye, w);//Получить изображение экрана и сравнить с прошлым. Получить координаты динамичных очагов.

if (k>19)goto povtor;//если найдено более 19 координат. много шума попало. повторить поиск.
if (k<4)goto povtor;//если найдено менее 4. повторить поиск. только для данного примера

int n=0;
ck: if (n<k)//Цикл перебора очагов динамики
{
mousemove(x[n]+5, y[n]+5);//Переместить мышь на найденный объект.
sleep(1000);//Ждать секунду
/*Тут может быть код проверки типа курсора или какой либо другой.
Зависит от того как клиен игры реагирует на наведение мыши на искомый анимированный объект, в данном случае моба.*/

n++;
goto ck;
}

Вышеприведенный анимированный рисунок функция finddynamic видит таким образом. Много шума получилось в процессе создания .gif файла. В реальной игре мобы выделяются четче и  выше приведенный скрипт работал бы точнее.
Поиск динамики 

При копировании материалов с сайта, ссылка на источник kibor-bot.com обязательна.     Обратная связь