konctantin777 |
Отправлено: 20 Октября, 2017 - 21:56:58
|
Эксперт
Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017
Откуда: Архангельск
Репутация: 6
|
Простенький код- в визуальном редакторе максимум 5 блоков- постоянно программа закрывается с ошибкой или ошибка памяти (и гиг начальной не помогает- в компе больше 8и гигов стоит)
CODE:
int xr, yr, xd, yd;
int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int Image_0_KIB[11][12];
start_();
m_KIB1: findimage_(#Image_0_KIB[0][0], 1000, 0, 0, 10, 0, 0, 0, -1, 0, 100, 1, xr+30, yr+30, ex_KIB, ey_KIB, #sum_KIB, #xd, #yd);
findimage_(#Image_0_KIB[0][0], 1000, 0, 0, 10, 0, 0, 0, -1, 0, 100, 1, xd+30, yd+30, ex_KIB, ey_KIB, #sum_KIB, #xr, #yr); goto m_KIB1;
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");
}
(Добавление)
Если добавить блок, чтобы прибавлял к переменной число, вот такая картинка
[img]
C:\Users\1\Desktop
[/img] |
|
|
konctantin777 |
Отправлено: 20 Октября, 2017 - 23:49:46
|
Эксперт
Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017
Откуда: Архангельск
Репутация: 6
|
Вот добавил в самом начале присвоение переменным числа. Сейчас это два поиска изображения. 1й поиск ищет и записывает найденные координаты в xd yd. Второй поиск ищет начиная с координат xd yd и записывает в xr yr и так по кругу. Не силён в коде это виз. редактор выдал.
Сейчас это в блокноте цифры "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];
start_();
m_KIB1: findimage_(#Image_0_KIB[0][0], 1000, 0, 0, 10, 0, 0, 0, -1, 0, 100, 1, xr, yr+30, ex_KIB, ey_KIB, #sum_KIB, #xd, #yd);
findimage_(#Image_0_KIB[0][0], 1000, 0, 0, 10, 0, 0, 0, -1, 0, 100, 1, xd, yd+30, ex_KIB, ey_KIB, #sum_KIB, #xr, #yr); goto m_KIB1;
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");
}
|
|
|
konctantin777 |
Отправлено: 20 Октября, 2017 - 23:57:47
|
Эксперт
Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017
Откуда: Архангельск
Репутация: 6
|
Kibor пишет: Теперь программа не вылетает?
Потому что переменным присвоено значение.
Почему застревает я не знаю. Это не ошибка в программе Кибор, а не верно составленный алгоритм.
А можно из вирт редактора только часть схемы в код перевести. Когда её добавил- всё стало ломаться. Просто всё посылать очень много....
(Добавление)
Kibor пишет: Теперь программа не вылетает?
Потому что переменным присвоено значение.
Почему застревает я не знаю. Это не ошибка в программе Кибор, а не верно составленный алгоритм.
Алгоритм состоит из 2х квадратиков поиск изображения которые друг на друга переходят и по одному блоку кода каждой чтобы переходили при "неправде"....
|
|
|
|