Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Поиск изображения

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

1. Nathgul - 14 Июня, 2018 - 01:18:44 - перейти к сообщению
Доброго дня... помогите разораться что делаю не так... на экране есть 3 одинаковых изображения... кибор определяет все и записывает их координаты... при попытке попрыгать по этим рисункам мышью столкнулся с проблемой.

При такой схеме и коде курсор каждые 400мс прыгает в левый верхний угол экрана
(для просмотра ссылки Вам необходимо авторизоваться)
int k, x[10], y[10], n;
int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int Image_0_KIB[6][9];

start_();

sleep(5000);

m_KIB2: findimage_(#Image_0_KIB[0][0], 0, 0, 0, 0, 0, 0, 0, -1, 30, 100, -1, 0, 0, ex_KIB, ey_KIB, #k, #x[0], #y[0]);
n==0;

m_KIB3: mouse_(200, 10, x[n]+20, y[n]+5, 200);
n++;
if (n==k)goto F:;
goto m_KIB3;
m_KIB0: F:;
goto m_KIB2;



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) mousemove(xm, ym);
pause(p2);
}


function findimage_(int #Image, int t, int p1, int p2, int m, int xm, int ym, int p3, 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;
pause(p1);
sumKIB=0;
if (t!=1) 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); pause(p3);}
if (m==2){mouse(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==3){mouse(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==4){mousedown(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==5){mousedown(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==6){mousedown(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==7){mouseup(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==8){mouseup(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==9){mouseup(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==10){mousemove(xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
return sumKIB;
}




function load_image_()
{
loadimage (#Image_0_KIB[0][0], "C:\aster_target_noactive.bmp"Подмигивание;
}


А при такой схеме и коде все работает как часы
(для просмотра ссылки Вам необходимо авторизоваться)

int k, x[10], y[10], n;
int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int Image_0_KIB[16][9];

start_();

sleep(5000);

m_KIB2: findimage_(#Image_0_KIB[0][0], 1000, 0, 0, 0, 0, 0, 0, -1, 30, 100, -1, 0, 0, ex_KIB, ey_KIB, #k, #x[0], #y[0]);
n==0;

m_KIB3: mouse_(200, 10, x[0]+20, y[0]+5, 200);
mouse_(200, 10, x[1]+20, y[1]+5, 200);
mouse_(200, 10, x[2]+20, y[2]+5, 200); goto m_KIB3;
m_KIB0: F:;
goto m_KIB2;



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) mousemove(xm, ym);
pause(p2);
}


function findimage_(int #Image, int t, int p1, int p2, int m, int xm, int ym, int p3, 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;
pause(p1);
sumKIB=0;
if (t!=1) 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); pause(p3);}
if (m==2){mouse(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==3){mouse(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==4){mousedown(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==5){mousedown(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==6){mousedown(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==7){mouseup(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==8){mouseup(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==9){mouseup(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==10){mousemove(xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
return sumKIB;
}




function load_image_()
{
loadimage (#Image_0_KIB[0][0], "C:\1.bmp"Подмигивание;
}

что не так делаю в первом варианте? заранее спасибо)
2. Kibor - 14 Июня, 2018 - 02:49:14 - перейти к сообщению
n==0;

n=0;
3. Nathgul - 14 Июня, 2018 - 02:52:46 - перейти к сообщению
 Kibor пишет:
n==0;

n=0;



идиотус хромосомос) спасибо в очередной раз)

Powered by ExBB FM 1.0 Final