Almighty |
Отправлено: 27 Июня, 2018 - 23:25:40
|
Участник
Покинул форум
Сообщений всего: 64
Дата рег-ции: Июнь 2018
Откуда: Kyiv
Репутация: 2
|
Возникла проблема, при сборке exe файла бот или не распознает картинку или не нажимает на нее.
На компке, на котором создавался бот при запуске бота через сам Кибор - все работает стабильно. Как только запускаю exe файл, которій собрал - так сразу или наводит курсор на изображение и не нажимает или не находит изображение.
На втором пк вовсе не находит изображение.
Пишу бота для игры на эмуляторе Android.
В качестве эмулятора использую Nox, а так же MemuPlay (У обоих разширение стоит 800*600).
Пробивал с привязкой к MemuPlay -такая же проблема, то находит то нет изображение.
Nox - привязку не делал, так как черный экран на скрине при Контр+шифт+S.
Пробовал создавать/запускать без привязки, такая же проблема или не нажимает или не видит(При включенном Кибор, на котором создавался бот все ок, если запускать через код, который мы берем в визуально редокторе.
RESOURCE - при создании файла добавляю, в визуально редакторе так же их добавляю.
Задержка после нахождения изображения стоит 1сек.
Пробовал уже и уменьшать зону поиска изображения(если ищем на всем экране) - ничего не помогло.
Подскажите, как решить эту проблему?
Во втором сообщении пишу код, так как по размеру сообщения форум не разрешает больше
(Добавление)
Код (Отобразить)int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int Image_0_KIB[20][19];
int Image_1_KIB[52][36];
int Image_2_KIB[26][26];
int Image_3_KIB[11][10];
int Image_4_KIB[94][19];
int Image_5_KIB[30][19];
int Image_6_KIB[86][21];
int Image_7_KIB[106][24];
int Image_8_KIB[32][22];
int Image_9_KIB[27][16];
int Image_10_KIB[40][34];
int Image_11_KIB[36][25];
int Image_12_KIB[37][17];
int Image_13_KIB[30][29];
int Image_14_KIB[74][23];
int Image_15_KIB[83][25];
int Image_16_KIB[34][25];
int Image_17_KIB[32][23];
int Image_18_KIB[33][23];
int Image_19_KIB[140][27];
int Image_20_KIB[32][22];
int Image_21_KIB[78][23];
start_();
m_KIB3: enablerealmouse(10, 15, 0, 0);
findimage_(#Image_2_KIB[0][0], 5000, 1000, 1000, 1, 10, 10, 200, -1, 0, 80, 1, 123, 257, 177, 312, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_6_KIB[0][0], 10000, 3000, 1000, 1, 10, 0, 200, -1, 0, 80, 1, 592, 588, 763, 635, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_1_KIB[0][0], 10000, 3000, 1000, 1, 0, 10, 200, -1, 0, 80, 1, 6, 353, 77, 409, #sum_KIB, #x_KIB, #y_KIB);
if (findimage_(#Image_4_KIB[0][0], 5000, 1000, 1000, 1, 0, 10, 200, -1, 0, 80, 1, 118, 379, 261, 421, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB12;
else goto m_KIB9;
m_KIB12: findimage_(#Image_7_KIB[0][0], 5000, 1000, 1000, 1, 0, 10, 200, -1, 0, 80, 1, 337, 594, 475, 630, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_8_KIB[0][0], 5000, 1000, 1000, 1, 0, 10, 200, -1, 0, 80, 1, 503, 377, 570, 411, #sum_KIB, #x_KIB, #y_KIB);
m_KIB14: findimage_(#Image_0_KIB[0][0], 8000, 1000, 500, 1, 10, 0, 500, -1, 0, 80, 1, 574, 593, 617, 628, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_9_KIB[0][0], 180000, 40000, 500, 1, 0, 10, 200, -1, 0, 80, 1, 679, 542, 786, 622, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_10_KIB[0][0], 10000, 3000, 500, 1, 0, 10, 200, -1, 0, 80, 1, 663, 532, 769, 607, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_11_KIB[0][0], 180000, 50000, 500, 1, 0, 10, 200, -1, 0, 80, 1, 666, 532, 799, 632, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_12_KIB[0][0], 6000, 2000, 500, 1, 10, 0, 200, -1, 0, 100, 1, 666, 532, 799, 632, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_13_KIB[0][0], 6000, 2000, 500, 1, 10, 0, 200, -1, 0, 80, 1, 692, 535, 744, 588, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_14_KIB[0][0], 6000, 3000, 500, 1, 10, 0, 200, -1, 0, 80, 1, 349, 594, 461, 627, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_14_KIB[0][0], 6000, 3000, 500, 1, 3, 0, 200, -1, 0, 80, 1, 349, 594, 461, 627, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_15_KIB[0][0], 6000, 3000, 200, 1, 10, 0, 200, -1, 0, 80, 1, 349, 594, 461, 627, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_15_KIB[0][0], 6000, 3000, 200, 1, 10, 0, 200, -1, 0, 80, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_14_KIB[0][0], 6000, 2000, 500, 1, 10, 0, 200, -1, 0, 80, 1, 349, 594, 461, 627, #sum_KIB, #x_KIB, #y_KIB);
if (findimage_(#Image_17_KIB[0][0], 6000, 2000, 500, 1, 10, 0, 3000, -1, 0, 80, 1, 376, 490, 428, 521, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB32;
else goto m_KIB3;
m_KIB32: if (findimage_(#Image_18_KIB[0][0], 6000, 3000, 500, 1, 0, 10, 3000, -1, 0, 80, 1, 379, 466, 427, 500, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB33;
else goto m_KIB30;
m_KIB33: findimage_(#Image_19_KIB[0][0], 6000, 3000, 500, 1, 0, 10, 3000, -1, 0, 80, 1, 323, 592, 491, 632, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_19_KIB[0][0], 6000, 2000, 500, 1, 0, 10, 3000, -1, 0, 80, 1, 504, 462, 555, 501, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_20_KIB[0][0], 6000, 5000, 500, 1, 0, 10, 3000, -1, 0, 80, 1, 382, 450, 432, 485, #sum_KIB, #x_KIB, #y_KIB);
m_KIB36: findimage_(#Image_21_KIB[0][0], 6000, 3000, 500, 1, 0, 10, 3000, -1, 0, 80, 1, 345, 590, 463, 632, #sum_KIB, #x_KIB, #y_KIB); goto m_KIB37;
m_KIB4: enablerealmouse(10, 15, 0, 0);
goto m_KIB7;
m_KIB15: mouse_(3000, 1, 655, 483, 0);
mouse_(3000, 1, 406, 396, 0);
mouse_(4000, 1, 720, 143, 0); goto m_KIB14;
m_KIB16: findimage_(#Image_0_KIB[0][0], 8000, 1000, 500, 1, 10, 0, 500, -1, 0, 80, 1, 574, 593, 617, 628, #sum_KIB, #x_KIB, #y_KIB); goto exit_KIB;
m_KIB30: if (findimage_(#Image_16_KIB[0][0], 4000, 3000, 200, 1, 10, 0, 200, -1, 0, 90, 1, 376, 377, 439, 410, #sum_KIB, #x_KIB, #y_KIB)>0) goto exit_KIB;
else goto m_KIB3;
m_KIB9: findimage_(#Image_5_KIB[0][0], 5000, 2000, 1000, 1, 10, 10, 200, -1, 0, 80, 1, 377, 377, 431, 417, #sum_KIB, #x_KIB, #y_KIB);
mouse_(3000, 1, 34, 195, 0); goto m_KIB15;
m_KIB1: mouse_(0, 1, 987, 39, 2000); goto exit_KIB;
m_KIB11: findimage_(#Image_6_KIB[0][0], 10000, 3000, 200, 1, 10, 0, 200, -1, 0, 80, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB); goto m_KIB16;
m_KIB0: findimage_(#Image_0_KIB[0][0], 5000, 1000, 500, 0, 0, 0, 200, -1, 0, 80, 1, 561, 685, 759, 983, #sum_KIB, #x_KIB, #y_KIB); goto m_KIB1;
m_KIB7: findimage_(#Image_3_KIB[0][0], 5000, 1000, 0, 1, 10, 10, 200, -1, 0, 80, 1, 124, 233, 165, 269, #sum_KIB, #x_KIB, #y_KIB); goto m_KIB11;
m_KIB37: if (findimage_(#Image_21_KIB[0][0], 6000, 4000, 500, 1, 0, 10, 3000, -1, 0, 80, 1, 350, 593, 458, 629, #sum_KIB, #x_KIB, #y_KIB)>0) goto exit_KIB;
else goto m_KIB36;
exit_KIB:;
(Добавление)
Продолжение кода (Отобразить)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_()
{
string temp_fold=tempfolder();
unpack("D:\pesbot\разыграть.bmp", temp_fold+"разыграть.bmp", 1);
loadimage (#Image_0_KIB[0][0], temp_fold+"разыграть.bmp" ;
unpack("D:\pesbot\состав.bmp", temp_fold+"состав.bmp", 1);
loadimage (#Image_1_KIB[0][0], temp_fold+"состав.bmp" ;
unpack("D:\pesbot\мячикстарт.bmp", temp_fold+"мячикстарт.bmp", 1);
loadimage (#Image_2_KIB[0][0], temp_fold+"мячикстарт.bmp" ;
unpack("D:\pesbot\мячикстартмему.bmp", temp_fold+"мячикстартмему.bmp", 1);
loadimage (#Image_3_KIB[0][0], temp_fold+"мячикстартмему.bmp" ;
unpack("D:\pesbot\загрузить.bmp", temp_fold+"загрузить.bmp", 1);
loadimage (#Image_4_KIB[0][0], temp_fold+"загрузить.bmp" ;
unpack("D:\pesbot\октравма.bmp", temp_fold+"октравма.bmp", 1);
loadimage (#Image_5_KIB[0][0], temp_fold+"октравма.bmp" ;
unpack("D:\pesbot\наматч.bmp", temp_fold+"наматч.bmp", 1);
loadimage (#Image_6_KIB[0][0], temp_fold+"наматч.bmp" ;
unpack("D:\pesbot\загрузитьсостав.bmp", temp_fold+"загрузитьсостав.bmp", 1);
loadimage (#Image_7_KIB[0][0], temp_fold+"загрузитьсостав.bmp" ;
unpack("D:\pesbot\дазагрузитьсостав.bmp", temp_fold+"дазагрузитьсостав.bmp", 1);
loadimage (#Image_8_KIB[0][0], temp_fold+"дазагрузитьсостав.bmp" ;
unpack("D:\pesbot\вперед после первого тайма.bmp", temp_fold+"вперед после первого тайма.bmp", 1);
loadimage (#Image_9_KIB[0][0], temp_fold+"вперед после первого тайма.bmp" ;
unpack("D:\pesbot\2 тайм.bmp", temp_fold+"2 тайм.bmp", 1);
loadimage (#Image_10_KIB[0][0], temp_fold+"2 тайм.bmp" ;
unpack("D:\pesbot\тайм в перед.bmp", temp_fold+"тайм в перед.bmp", 1);
loadimage (#Image_11_KIB[0][0], temp_fold+"тайм в перед.bmp" ;
unpack("D:\pesbot\стрелка.bmp", temp_fold+"стрелка.bmp", 1);
loadimage (#Image_12_KIB[0][0], temp_fold+"стрелка.bmp" ;
unpack("D:\pesbot\полноевремя.bmp", temp_fold+"полноевремя.bmp", 1);
loadimage (#Image_13_KIB[0][0], temp_fold+"полноевремя.bmp" ;
unpack("D:\pesbot\далее после матча.bmp", temp_fold+"далее после матча.bmp", 1);
loadimage (#Image_14_KIB[0][0], temp_fold+"далее после матча.bmp" ;
unpack("D:\pesbot\вперед.bmp", temp_fold+"вперед.bmp", 1);
loadimage (#Image_15_KIB[0][0], temp_fold+"вперед.bmp" ;
unpack("D:\pesbot\ок не прошли отбор.bmp", temp_fold+"ок не прошли отбор.bmp", 1);
loadimage (#Image_16_KIB[0][0], temp_fold+"ок не прошли отбор.bmp" ;
unpack("D:\pesbot\ok.bmp", temp_fold+"ok.bmp", 1);
loadimage (#Image_17_KIB[0][0], temp_fold+"ok.bmp" ;
unpack("D:\pesbot\ок вызов нацсборных.bmp", temp_fold+"ок вызов нацсборных.bmp", 1);
loadimage (#Image_18_KIB[0][0], temp_fold+"ок вызов нацсборных.bmp" ;
unpack("D:\pesbot\подтвердить.bmp", temp_fold+"подтвердить.bmp", 1);
loadimage (#Image_19_KIB[0][0], temp_fold+"подтвердить.bmp" ;
unpack("D:\pesbot\окнацсборныевернулись.bmp", temp_fold+"окнацсборныевернулись.bmp", 1);
loadimage (#Image_20_KIB[0][0], temp_fold+"окнацсборныевернулись.bmp" ;
unpack("D:\pesbot\впереднацсборные.bmp", temp_fold+"впереднацсборные.bmp", 1);
loadimage (#Image_21_KIB[0][0], temp_fold+"впереднацсборные.bmp" ;
}
RESOURCE
{
"D:\pesbot\разыграть.bmp";
"D:\pesbot\состав.bmp";
"D:\pesbot\мячикстарт.bmp";
"D:\pesbot\мячикстартмему.bmp";
"D:\pesbot\загрузить.bmp";
"D:\pesbot\октравма.bmp";
"D:\pesbot\наматч.bmp";
"D:\pesbot\загрузитьсостав.bmp";
"D:\pesbot\дазагрузитьсостав.bmp";
"D:\pesbot\вперед после первого тайма.bmp";
"D:\pesbot\2 тайм.bmp";
"D:\pesbot\тайм в перед.bmp";
"D:\pesbot\стрелка.bmp";
"D:\pesbot\полноевремя.bmp";
"D:\pesbot\далее после матча.bmp";
"D:\pesbot\вперед.bmp";
"D:\pesbot\ок не прошли отбор.bmp";
"D:\pesbot\ok.bmp";
"D:\pesbot\ок вызов нацсборных.bmp";
"D:\pesbot\подтвердить.bmp";
"D:\pesbot\окнацсборныевернулись.bmp";
"D:\pesbot\впереднацсборные.bmp"; |
|
|
Zireael |
Отправлено: 28 Июня, 2018 - 01:39:27
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
exe от админа запускается?
Цитата: или наводит курсор на изображение и не нажимает или не находит изображение.
Добавьте сообщение нашлась картинка или нет, тогда хоть понятно будет не находится или не нажимает.
Цитата: На втором пк вовсе не находит изображение.
На разных пк изображения могут отличаться. Добавьте разбежность. |
|
|
Almighty |
Отправлено: 28 Июня, 2018 - 07:54:25
|
Участник
Покинул форум
Сообщений всего: 64
Дата рег-ции: Июнь 2018
Откуда: Kyiv
Репутация: 2
|
Zireael пишет: exe от админа запускается?
Цитата: или наводит курсор на изображение и не нажимает или не находит изображение.
Добавьте сообщение нашлась картинка или нет, тогда хоть понятно будет не находится или не нажимает.
Цитата: На втором пк вовсе не находит изображение.
На разных пк изображения могут отличаться. Добавьте разбежность.
Да, от админа запускаю.
Не точность/разбежность изображения стоит 70%.
На пк, на котором создается вин 10.
На вин 7 - на втором пк находит изображение и не нажимает(курсор передвигает на само изображение)-на третьем пк(вин 7) не находит даже,так как курсор не передвигается(это третий пк).
На всех пк стоит разрещения экрана одинаковое 1366*768 |
|
|
Zireael |
Отправлено: 28 Июня, 2018 - 10:58:55
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Не точность/разбежность изображения стоит 70%.
В приведённом коде разбежность 0, точность 80.
Цитата: findimage_(#Image_2_KIB[0][0], 5000, 1000, 1000, 1, 10, 10, 200, -1, 0, 80, 1, 123, 257, 177, 312, #sum_KIB, #x_KIB, #y_KIB); |
|
|
Almighty |
Отправлено: 28 Июня, 2018 - 11:41:57
|
Участник
Покинул форум
Сообщений всего: 64
Дата рег-ции: Июнь 2018
Откуда: Kyiv
Репутация: 2
|
Zireael пишет: Цитата: Не точность/разбежность изображения стоит 70%.
В приведённом коде разбежность 0, точность 80.
Цитата: findimage_(#Image_2_KIB[0][0], 5000, 1000, 1000, 1, 10, 10, 200, -1, 0, 80, 1, 123, 257, 177, 312, #sum_KIB, #x_KIB, #y_KIB);
Подскажите, как через визуальный редактор это сделать?
Я новенький, видите спутал, два разных понятия в программе. |
|
|
Almighty |
Отправлено: 28 Июня, 2018 - 14:09:18
|
Участник
Покинул форум
Сообщений всего: 64
Дата рег-ции: Июнь 2018
Откуда: Kyiv
Репутация: 2
|
Zireael пишет: Цитата: Подскажите, как через визуальный редактор это сделать?
Галка: Искать по неполному совпадению.
Разбежность цвета (0-255) - это отклонение по цвету, поставьте для начала 10-20. Если не будет находить, то укажите больше.
Лучше увеличивать разбежность, чем уменьшать процент соппадения.
Спасибо, помогло.
На всех пк находит изображение. 20 отклонение по цвету помогло.
Осталась еще одна проблема, не всегда нажимает на изображение.
Курсор наводит, нажатие не срабатывает.
Привету пример, есть в задаче последовательные изображения, на первое изображение нажимает, на второе нажимает, на третье не нажимает. При повторном запуске может не нажимать на первое(курсор наводит,дальше я сам нажимаю), на второе и третье программа сама нажимает.
То есть нажатия на изображения срабатывают через раз. |
|
|
Almighty |
Отправлено: 28 Июня, 2018 - 17:33:36
|
Участник
Покинул форум
Сообщений всего: 64
Дата рег-ции: Июнь 2018
Откуда: Kyiv
Репутация: 2
|
Zireael пишет: Цитата: То есть нажатия на изображения срабатывают через раз.
В обоих эмуляторах не всегда срабатывает?
Можно попробовать делать двойной клик или зажимать и отпускать кнопку мыши.
Да на обоих.
Что является странным, если я запускаю код через сам Кибор - все ок, работает, как только собираю в запуской файл,как сразу работает через раз.
К сожалению такой функции, как двойной клик нету при стандартном поиске изображения. |
|
|
Zireael |
Отправлено: 29 Июня, 2018 - 02:18:03
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: К сожалению такой функции, как двойной клик нету при стандартном поиске изображения.
Цитата: if (m==1){mouse(LEFT, xs+xKIB+xm, ys+yKIB+ym);
Заменить на:
Цитата: if (m==1){mousedbl(LEFT, xs+xKIB+xm, ys+yKIB+ym);
(Добавление)
Ещё можно активировать окно перед кликом.
В начало скрипта:
Цитата: win w=window ("MEmu", "Qt5QWindowIcon", -1); // указатель на окно
Перед кликом добавить активацию окна:
Цитата: activate(w); mouse(LEFT, xs+xKIB+xm, ys+yKIB+ym); |
|
|
|