F1nansist |
Отправлено: 14 Января, 2020 - 21:59:55
|
Прохожий
Покинул форум
Сообщений всего: 21
Дата рег-ции: Окт. 2019
Репутация: 0
|
Ломается программа когда необходимо по найденным координатам нажать правую мышь. Привязка по указателю, эта ошибку ловил при отладке
Как только необходимо кликнуть мышью по координатам найденной картинки, то она падает с "Out of memory" и потом вылетают ошибки, скрины которые я прикрепил внизу
В коде я пометил комментарием, где предположительно код падает
Код:
string text_KIB;
loadsymbolbase("C:\Users\79185\Desktop\5.0\data.sib"
int size_key_char_KIB=-1;
win w_KIB;
int ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB, y_ORANGE, y_FLOAT;
int sx_KIB, sy_KIB;
int Image_0_KIB[10][13];
int Image_1_KIB[7][4];
int Image_2_KIB[5][13];
int Image_3_KIB[13][13];
int Image_4_KIB[3][22];
sleep(2000);
start_();
goto m_KIB1;
m_KIB2:
goto exit_KIB;
m_KIB1: loop(){
net();
uda();
}
exit_KIB:;
function start_()
{
load_image_();
pause(1000);
w_KIB=window (-1, "EFLaunchUnrealUWindowsClient", -1);
ex_KIB=w_KIB.widthclient; ey_KIB=w_KIB.heightclient;
sx_KIB=w_KIB.leftclient; sy_KIB=w_KIB.topclient;
}
function key_(int k, int m, string text, int pc, int p1, int p2)
{
pause(p1);
if (m==-1)
{
if (size_key_char_KIB==-1)
{
size_key_char_KIB=100;
new char key_char_KIB[size_key_char_KIB+1];
}
int size_key=size(text);
if (size_key_char_KIB<size_key)
{
delete key_char_KIB;
size_key_char_KIB=size_key;
new char key_char_KIB[size_key_char_KIB+1];
}
strcpy(#key_char_KIB[0], text);
for (int n=0; n<size_key; n++){key(key_char_KIB[n]); sleep(pc);}
}
else
{
if (m==1) key(k);
if (m==2) keydown(k);
if (m==3) keyup(k);
}
pause(p2);
}
function mouse_(int p1, int m, int xm, int ym, int p2)
{
xm=xm+sx_KIB; ym=ym+sy_KIB;
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)
{
xs=xs+sx_KIB; ys=ys+sy_KIB; xf=xf+sx_KIB; yf=yf+sy_KIB;
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\79185\Desktop\5.0\net.bmp"
loadimage (#Image_1_KIB[0][0], "C:\Users\79185\Desktop\5.0\float.bmp"
loadimage (#Image_2_KIB[0][0], "C:\Users\79185\Desktop\5.0\orange.bmp"
loadimage (#Image_3_KIB[0][0], "C:\Users\79185\Desktop\5.0\rod.bmp"
loadimage (#Image_4_KIB[0][0], "C:\Users\79185\Desktop\5.0\sign.bmp"
}
function helpfull(int y_orange)
{
int temp_orange = y_ORANGE+9;
m_KIB2: if (findimage_(#Image_1_KIB[0][0], 3000, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, -1, 20, 90, 1, 344, 83, 361, 363, #sum_KIB, #x_KIB, #y_FLOAT)>0) goto m_KIB3;
else goto m_KIB4;
m_KIB3: int temp_float = y_FLOAT;
if (temp_orange < temp_float)
carry();
goto m_KIB2;
m_KIB4: sleep(2500);
goto exit_KIB;
exit_KIB:;
}
function net()
{
if (findimage_(#Image_0_KIB[0][0], 500, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, -1, 40, 90, 1, 603, 387, 657, 438, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB3;
else goto m_KIB1;
m_KIB3: key_(81, 1, "", 0, 0, 5500);
findimage_(#Image_2_KIB[0][0], 3000, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, -1, 40, 90, 1, 327, 77, 347, 349, #sum_KIB, #x_KIB, #y_ORANGE); goto m_KIB5;
m_KIB1:
goto exit_KIB;
m_KIB5: helpfull();
goto exit_KIB;
exit_KIB:;
}
function uda()
{
key_(87, 1, "", 0, 1000, 0);
sleep(500);
readtext(RU, #text_KIB, 18, 1, -1, -1, -1, -1, -1, 0, -1, sx_KIB+16, sy_KIB+617, sx_KIB+52, sy_KIB+634, -1);
if (text_KIB == "Необ" goto m_KIB3;
else goto m_KIB8;
m_KIB3: key_(73, 1, "", 0, 500, 0);
findimage_(#Image_3_KIB[0][0], 20000, 500, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, -1, 0, 100, 1, 52, 634, 1270, 594, #sum_KIB, #x_KIB, #y_KIB);
mouse_(500, 3, x_KIB, y_KIB, 0); goto m_KIB7; //вот на этом моменте вылетает
m_KIB10:
goto exit_KIB;
m_KIB8: if (findimage_(#Image_4_KIB[0][0], 25000, 1500, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, -1, 40, 90, 1, 621, 292, 655, 353, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB9;
else goto m_KIB10;
m_KIB9: key_(87, 1, "", 0, 0, 5000); goto exit_KIB;
m_KIB7: key_(73, 1, "", 0, 500, 0);
exit_KIB:;
}
function carry()
{
key_(32, 1, "", 0, 0, 150);
}
(для просмотра ссылки Вам необходимо авторизоваться) (для просмотра ссылки Вам необходимо авторизоваться) (для просмотра ссылки Вам необходимо авторизоваться) (Добавление)
P.S. провел пару тестов, в общем он не может сделать клик по координатам, на которых была найдена картинка. Из-за чего беда? Передаю вроде обыденно(Отредактировано автором: 14 Января, 2020 - 22:16:27) |
|
|
Zireael |
Отправлено: 15 Января, 2020 - 01:51:31
|
Эксперт
Покинул форум
Сообщений всего: 4466
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: findimage_(#Image_3_KIB[0][0], 20000, 500, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, -1, 0, 100, 1, 52, 634, 1270, 594, #sum_KIB, #x_KIB, #y_KIB );
Начальная координата больше конечной. |
|
|
F1nansist |
Отправлено: 15 Января, 2020 - 14:39:23
|
Прохожий
Покинул форум
Сообщений всего: 21
Дата рег-ции: Окт. 2019
Репутация: 0
|
Крч эта проблема разрешилась, и возможно да, проблема в области поиска. Теперь новая проблема. После нахождения изображения (делаю через визуальный редактор) мне надо кликнуть правой мышью по найденному изоюражению. Клик я делаю в окне настройки поиска изображения. Она наводится корректно, но клика не происходит. Не клика, не зажима, ничего. Анти-антикликер включен, приватный
string text_KIB;
loadsymbolbase("C:\Users\79185\Desktop\5.0\data_test.sib"
int size_key_char_KIB=-1;
win w_KIB;
int ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int sx_KIB, sy_KIB;
int Image_0_KIB[13][13];
sleep(2000);
start_();
key_(87, 1, "", 0, 0, 0);
test();
function start_()
{
load_image_();
pause(1000);
w_KIB=window (-1, "EFLaunchUnrealUWindowsClient", -1);
ex_KIB=w_KIB.widthclient; ey_KIB=w_KIB.heightclient;
sx_KIB=w_KIB.leftclient; sy_KIB=w_KIB.topclient;
}
function key_(int k, int m, string text, int pc, int p1, int p2)
{
pause(p1);
if (m==-1)
{
if (size_key_char_KIB==-1)
{
size_key_char_KIB=100;
new char key_char_KIB[size_key_char_KIB+1];
}
int size_key=size(text);
if (size_key_char_KIB<size_key)
{
delete key_char_KIB;
size_key_char_KIB=size_key;
new char key_char_KIB[size_key_char_KIB+1];
}
strcpy(#key_char_KIB[0], text);
for (int n=0; n<size_key; n++){key(key_char_KIB[n]); sleep(pc);}
}
else
{
if (m==1) key(k);
if (m==2) keydown(k);
if (m==3) keyup(k);
}
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)
{
xs=xs+sx_KIB; ys=ys+sy_KIB; xf=xf+sx_KIB; yf=yf+sy_KIB;
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\79185\Desktop\5.0\rod.bmp"
}
function test()
{
sleep(300);
readtext(RU, #text_KIB, 18, 1, -1, -1, -1, -1, -1, 0, -1, sx_KIB+16, sy_KIB+617, sx_KIB+52, sy_KIB+634, -1);
if (text_KIB == "Необ" goto m_KIB3;
else goto m_KIB4;
m_KIB3: key_(73, 1, "", 0, 0, 0);
findimage_(#Image_0_KIB[0][0], 10000, 500, 1000, 6, 10, 10, -1, 0, 0, 0, -1, -1, -1, 20, 80, 1, 33, 33, 1242, 633, #sum_KIB, #x_KIB, #y_KIB); goto m_KIB6;
m_KIB4: messagebox("Ошибка"
goto exit_KIB;
m_KIB6: key_(73, 1, "", 0, 1000, 0);
exit_KIB:;
}(Отредактировано автором: 15 Января, 2020 - 14:39:55) |
|
|
|