Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Динамичный фон и статичные объекты

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

1. lezzir - 09 Октября, 2020 - 15:35:15 - перейти к сообщению
Всем добрый вечер! Есть динамичный фон на котором в определенной области появляются статичные объекты, логика была такой: шаблон куска фона с разбегом совпадения 10 (то есть на динамику фона он не реагировал),зона поиска (меньше чем нужный мне объект), как только появляется объект тем самым перекрыв фон зоны поиска, скрипт идет дальше но он не видит что фон перекрыт объектом и бездействует. [vkvideo=Фон](для просмотра ссылки Вам необходимо авторизоваться) /vkvideo]
[vkvideo=На фоне появился объект](для просмотра ссылки Вам необходимо авторизоваться) /vkvideo]
(Добавление)
[img=логика](для просмотра ссылки Вам необходимо авторизоваться) /img]
PHP:
int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int Image_0_KIB[19][15];

start_();

m_KIB1: if (findimage_(#Image_0_KIB[0][0], 0, 0, 0, 0, 0, 0, -1, 0, 0, 500, -1, -1, -1, 100, 100, 1, 818, 481, 823, 487, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB4;
else goto m_KIB3;
m_KIB4: mouse_(5000, 10, 446, 422, 0); goto m_KIB1;
m_KIB3: mouse_(0, 1, 1035, 485, 500);
mouse_(0, 1, 571, 609, 500); goto m_KIB1;
m_KIB2: findimage_(#Image_0_KIB[0][0], 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, -1, 100, 100, 1, 818, 481, 823, 487, #sum_KIB, #x_KIB, #y_KIB); goto m_KIB1;



function start_()
{
getdisplay(col_KIB, ex_KIB, ey_KIB);
load_image_();
pause(1000);
}


function mouse_(int p1, int m, int xm, int ym, int p2)
{
pause(p1);
if (m==1) mouse(LEFT, xm, ym);
if (m==2) mouse(MIDDLE, xm, ym);
if (m==3) mouse(RIGHT, xm, ym);
if (m==4) mousedown(LEFT, xm, ym);
if (m==5) mousedown(MIDDLE, xm, ym);
if (m==6) mousedown(RIGHT, xm, ym);
if (m==7) mouseup(LEFT, xm, ym);
if (m==8) mouseup(MIDDLE, xm, ym);
if (m==9) mouseup(RIGHT, xm, ym);
if (m==10) mousedbl(LEFT, xm, ym);
if (m==11) mousedbl(MIDDLE, xm, ym);
if (m==12) mousedbl(RIGHT, xm, ym);
if (m==13) mousemove(xm, ym);
pause(p2);
}


function findimage_(int #Image, int t, int p1, int p2, int m, int xm, int ym, int mov_m, int mov_x, int mov_y, int p3, int wait, int cycle, int fon, int r, int p, int k, int xs, int ys, int xf, int yf, int#sum, int#x, int#y)
{
int timKIB, sumKIB, xKIB, yKIB, tx, ty, tcycle=0;
sty: pause(p1);
sumKIB=0;
if (t!=0) timKIB=gettime();
a: if (r==0 && p==100){sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, -1); if (sum>0) goto e;}
else {sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, r, r, r, r, r, r, p, 1, -1); if (sum>0) goto e;}
if (t==0) return 0;
if (gettime()-timKIB<t){sleep(20); goto a;}
return 0;
e: sumKIB=sum; xKIB=x[0]; yKIB=y[0];
pause(p2);
if (m==1){mouse(LEFT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==2){mouse(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==3){mouse(RIGHT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==4){mousedown(LEFT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==5){mousedown(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==6){mousedown(RIGHT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==7){mouseup(LEFT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==8){mouseup(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==9){mouseup(RIGHT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==10){mousedbl(LEFT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==11){mousedbl(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==12){mousedbl(RIGHT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==13)mousemove(xs+xKIB+xm, ys+yKIB+ym);
hy: if (mov_m==1)mousemove(mov_x, mov_y);
if (m>0 && m<14)pause(p3);
if (wait!=-1)
{
for (int ttim=gettime(); gettime()-ttim<wait; sleep(20))
{
if (r==0 && p==100){if (findimage(1, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, -1)==0)return sumKIB;}
else {if (findimage(1, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, r, r, r, r, r, r, p, 1, -1)==0)return sumKIB;}
}
if (tcycle<cycle){tcycle++; goto sty;}
return 0;
}
return sumKIB;
}




function load_image_()
{
loadimage (#Image_0_KIB[0][0], "C:\Users\amd20\Desktop\áîò\ÔÎÍ1.bmp");
}

2. Zireael - 09 Октября, 2020 - 18:39:45 - перейти к сообщению
 Цитата:
Есть динамичный фон

Если фон динамичный, то findimage такую картинку не найдет.
 Цитата:
логика

Ошибка в логике. От блока поиска изображения ФОН1 идут 2 перехода при правда (такого быть не может), один к блоку поиска изображения (зачем это вообще надо), а второй переход к блоку клик мыши. И что должен бот делать? То ли снова искать картинку, то ли клик делать...
3. Remyc - 10 Октября, 2020 - 08:11:06 - перейти к сообщению
А объектов много? Не проще искать именно статичный объект?
4. lezzir - 11 Октября, 2020 - 02:55:08 - перейти к сообщению
 Zireael пишет:
 Цитата:
Есть динамичный фон

Если фон динамичный, то findimage такую картинку не найдет.
 Цитата:
логика

Ошибка в логике. От блока поиска изображения ФОН1 идут 2 перехода при правда (такого быть не может), один к блоку поиска изображения (зачем это вообще надо), а второй переход к блоку клик мыши. И что должен бот делать? То ли снова искать картинку, то ли клик делать...


Исправил логику но тем не менее изменение на фоне он не видит. Важна скорость отклика бота, если я сделаю 60 разных по форме, цвету и +- размеру, шаблонов объекта но всегда появляющихся в одном и том же месте, на сколько быстро будет происходить анализ появления объекта?
(Добавление)
 Remyc пишет:
А объектов много? Не проще искать именно статичный объект?


60 разных по форме, цвету и +- размеру, объектов. Думаю сделать поиск по шаблону, но важна скорость нахождения
5. Zireael - 11 Октября, 2020 - 03:37:25 - перейти к сообщению
Надо использовать finddynamic, а не findimage.
 Цитата:
на сколько быстро будет происходить анализ появления объекта?

Зависит от размера области поиска, размера искомой картинки, параметров поиска, процессора.
6. lezzir - 11 Октября, 2020 - 11:02:19 - перейти к сообщению
Zireael , Можете пожалуйста помочь с логикой [img](для просмотра ссылки Вам необходимо авторизоваться) /img]
Сделал через findheapcolor видет фон и резкое изменение на нем но как построить правильную логику не могу понять и нужно зациклить

Powered by ExBB FM 1.0 Final