Кибор » Кибор - Интегрированная среда разработки ботов » Готовые скрипты » Демонстрация поиска мобов в 3Д игре с помощью findheapcolor

Страниц (1): [1]
 

1. Kibor - 22 Января, 2014 - 07:24:13 - перейти к сообщению
Данный скрипт демонстрирует поиск объектов на экране, которые не возможно найти по готовому изображению, по конкретным пикселям и (при условие что они будут неподвижные) по динамике.
Для примера выбрана 3Д игра RF Online в которой ищутся мобы. Применена функция findheapcolor - подробнее о ней
Данную функцию можно применять в разных ситуациях. На видео демонстрируется работа этого скрипта в игре. Посмотреть видео в поиска мобов в игре.
Данный скрипт производит поиск мобов и для видимости на их месте выводит их номер на экран поверх игры.
CODE:
int r=7;//Допускаемое отклонение цвета пикселя
int color[3], kol[3];//Массивы для трех цветов
color[0]=2899273; color[1]=2899273; color[2]=791579;//Тут три цвета которые будем искать в куче
kol[0]=3; kol[1]=3; kol[2]=3;//Тут сколько должно совпасть пикселей для каждого цвета
int x[50], y[50];//Тут координаты найденные
int Xx, Yy, k=0, k1=0, n;//Вспомогательные
textbkcolor (8454143,255);//Установка цвета текста

win w=window ("RF Online", "D3D Window", -1);//Указательна окно с игрой
e: k=findheapcolor(50, #color[0], #kol[0], 3, 3, #x[0], #y[0], 10, 10, 100, 100, 0, 80, w.widthclient, w.heightclient-200, r, r, r, r, r, r, w);

for (n=0; n<k; n++)//Перебор в цикле координат мобов и вывод на них их номер
{
Xx=x[n]+w.leftclient;
Yy=y[n]+w.topclient+80;
textout(n, Xx, Yy, "", 0);
textout(n, Xx, Yy , format(n), 0);
}

n=k;s1:if (n<k1){textout(n, x[n]+w.leftclient, y[n]+w.topclient+80 , "", 0);n++;goto s1;}k1=k;
goto e;
2. Vayy - 15 Марта, 2014 - 04:14:44 - перейти к сообщению
Увы, в игре ArcheAge данный метод не подходит - если выбрать 3 темных цвета, то весь экран прыгает в цифрах, если подобрать более менее яркие, относящиеся к боту, то не ищет вообще. Пробовал ставить искать по 1 пикселю - результат не улучшился. Посоветуете что-нибудь?
3. Kibor - 15 Марта, 2014 - 06:02:09 - перейти к сообщению
Ну тут все индивидуально. Это не панацея. Каждая функция для своего анализа экрана. Пробуйте findynamic.
4. serdg3amec - 18 Марта, 2014 - 08:12:00 - перейти к сообщению
 Kibor пишет:
Пробуйте findynamic.
да, в АА эта функция работает на ура. findheapcolor там тяжело использовать (нужно под каждый конкретный случай разбег цветов выставлять. это лишняя, ненужная запара)
5. barok2 - 03 Октября, 2014 - 10:26:41 - перейти к сообщению
 serdg3amec пишет:
(нужно под каждый конкретный случай разбег цветов выставлять. это лишняя, ненужная запара)

А как бы этот процесс упростить.... т.е. надо выбрать место на мобе с однородным окрасом, выделить его прямоугольником, затем найти цвета точек, которые в нем часто повторяются. И их диапазон разброса цветов такой, чтобы было меньше ложных срабатываний, и быстрее считалось. т.е выбрать мало точек, но таких чтобы их на скрине не встречалось вообще.
Сложновато!

Powered by ExBB FM 1.0 Final