konctantin777 |
Отправлено: 21 Октября, 2017 - 08:55:14
|
Эксперт
Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017
Откуда: Архангельск
Репутация: 6
|
Не работает код- уже второй день бьюсь- помогите ?
1й- поиск изображения по xr и yr и, при нахождении, записывает координаты в xd, yd. Если не нашел- замыкается на блок кода. 2й поиск ищет по xd, yd то чего точно нет и идёт в блок кода в котором увеличивается yr на 40. И в начало. Использую блокнот и и цифра 2 в столбик. Встаёт на 1м изображении и хоть ты тресни (
CODE:
int xr=10, yr=10, xd=10, yd=10;
int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int Image_0_KIB[11][12];
int Image_1_KIB[7][16];
start_();
m_KIB1: findimage_(#Image_0_KIB[0][0], 1000, 0, 0, 10, 0, 0, 2000, -1, 0, 100, 1, xr+30, yr+30, ex_KIB, ey_KIB, #sum_KIB, #xd, #yd);
if (findimage_(#Image_1_KIB[0][0], 1000, 0, 0, 10, 0, 0, 2000, -1, 0, 100, 1, xd-10, yd+30, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB4;
else goto m_KIB3;
m_KIB4: yr=yr+40 goto m_KIB1;
m_KIB3: goto m_KIB4;
function start_()
{
getdisplay(col_KIB, ex_KIB, ey_KIB);
load_image_();
pause(1000);
}
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:\Хроники хаоса\2.bmp");
loadimage (#Image_1_KIB[0][0], "C:\Хроники хаоса\камп дробь.bmp");
}
|
|
|
konctantin777 |
Отправлено: 21 Октября, 2017 - 09:40:00
|
Эксперт
Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017
Откуда: Архангельск
Репутация: 6
|
Забыл.. Это помогло- спасибо. Вернул вместо блока кода клик мыши по координатам xd yd. Теперь всё ищет по очереди, но кликает всегда на 158-16..
CODE:
int xr=10, yr=10, xd=10, yd=10;
int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int Image_0_KIB[11][12];
int Image_1_KIB[7][16];
start_();
m_KIB1: findimage_(#Image_0_KIB[0][0], 1000, 0, 0, 10, 0, 0, 2000, -1, 0, 100, 1, xr+30, yr+30, ex_KIB, ey_KIB, #sum_KIB, #xd, #yd);
if (findimage_(#Image_1_KIB[0][0], 1000, 0, 0, 10, 0, 0, 2000, -1, 0, 100, 1, xd-10, yd+30, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB4;
else goto m_KIB3;
m_KIB4: yr=yr+40; goto m_KIB1;
m_KIB3: mouse_(0, 10, xd, yd, 1000); goto m_KIB4;
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:\Õðîíèêè õàîñà\2.bmp");
loadimage (#Image_1_KIB[0][0], "C:\Õðîíèêè õàîñà\êàìï äðîáü.bmp");
}
|
|
|
Kibor |
Отправлено: 22 Октября, 2017 - 08:20:18
|
Эксперт
Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
CODE:mouse_(0, 10, xd, yd, 1000);
надо смещать.
при поиске координаты получаются от левого верхнего угла поиска.
xr+30, yr+30 это левый вехний..
получаем что кликать надо
CODE:mouse_(0, 10, xr+30+xd, yr+30+yd, 1000); |
|
|
|