Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Как найти переливающейся цвет?

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

1. Martin - 11 Марта, 2023 - 18:18:33 - перейти к сообщению
Нужно отправить сообщение как появиться объект на экране, самостоятельно не получается, видео с объектом загрузил. Помогите разобраться как его найти, появляется он на пол секунды на экране.
(для просмотра ссылки Вам необходимо авторизоваться)
CODE:

int R__HP=17;
int xf2[99],yf2[99];
int ld[20]={3394560,16711680,3342540,6684825,13421823,3342540,65433,8388607};
ff:
while(getkeystate(192)==0)sleep(10);

loop()
{


sleep(10);
for (int a=0; a<8; a++)
{
int k2=findcolor(40, #xf2[0],#yf2[0], 0, 0,1920, 1080, ld[a],R__HP,R__HP,R__HP,R__HP,R__HP,R__HP, -1);
if(k2>11){messagebox(k2);goto ff;}
}
//messagebox(k2);

}


мои попытки найти объект но он его не всегда находит и есть ложные срабатывания на экран с другими объектами.
2. Zireael - 12 Марта, 2023 - 03:38:57 - перейти к сообщению
CODE:
int color[99]={3394560,16711680,3342540,6684825,13421823,3342540,65433,8388607}; // цвета
int all_color = 8; // сколько цветов указано в массиве color
int count_color = 999; // сколько пикселей должно совпасть
int coord[4]={0, 0, 1920, 1080}; // координаты
int size_object[2] = {50, 50}; //размер объекта
int r=15; // отклонение в цвете
int x, y; // перменные для координат

int kol[99];
initialarray(#kol[0], count_color);


loop()
{
int result = findheapcolor(1, #color[0], #kol[0], all_color, 1, #x, #y,
size_object[0], size_object[1], size_object[0], size_object[1],
coord[0], coord[1], coord[2], coord[3], r,r,r,r,r,r, -1);
if(result>0)
{
mousemove(coord[0]+x, coord[1]+y);
messagebox("Найдено");
break;
}
sleep(1);
}
3. Martin - 12 Марта, 2023 - 07:31:45 - перейти к сообщению
Zireael , Спасибо, но по цветам всё равно ерунда какая то, нужно все цвета поймать которые переливаются?
4. Zireael - 12 Марта, 2023 - 07:39:38 - перейти к сообщению
 Цитата:
нужно все цвета поймать которые переливаются?

Да. Можно увеличить отклонение в цвете, если цветов много, тогда не придётся все указывать.
Ещё можно по динамике искать.
5. Kibor - 12 Марта, 2023 - 07:50:15 - перейти к сообщению
Непонятно что обьект.
На видео просто набор цветов.
6. Martin - 12 Марта, 2023 - 14:19:05 - перейти к сообщению
Kibor , Это и есть объект, который нужно найти на экране, если скачать видео и запустить его он таким и будет появляться на экране, такого же размера. (для просмотра ссылки Вам необходимо авторизоваться)
 Zireael пишет:
Ещё можно по динамике искать.
Тут я совсем ничего разобрать не могу.
7. Zireael - 12 Марта, 2023 - 14:34:25 - перейти к сообщению
 Цитата:
Ещё можно по динамике искать.
Тут я совсем ничего разобрать не могу.

CODE:
int coord[4] = {0, 0, 1920, 1080}; // область поиска
int size_object[4] = {50, 50, 50, 50}; // размеры и объём объекта
int x, y; // переменные для координат найденного объекта

loop()
{
int found = 0;
finddynamic(0, #x, #y, 0, 0, 0, 0, coord[0], coord[1], coord[2], coord[3], -1);
loop()
{
int result = finddynamic(1, #x, #y, size_object[0], size_object[1], size_object[2], size_object[3], coord[0], coord[1], coord[2], coord[3], -1);
if(result)
{
found = 1;
break;
}
sleep(1);
}
if(found)break;
sleep(1);
}
mousemove(x+size_object[0], y-size_object[1]);
messagebox("Найдено");

Powered by ExBB FM 1.0 Final