код (Отобразить)
CODE:
int size_key_char_KIB=-1;
int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int Image_0_KIB[61][53];
int Image_1_KIB[58][54];
int Image_2_KIB[58][54];
int Image_3_KIB[55][53];
start_();
m_KIB1: if (findimage_(#Image_0_KIB[0][0], 300, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, -1, 0, 100, 1, 700, 836, 1216, 899, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB0;
else goto m_KIB2;
m_KIB8: //верх
key_(38, 1, "", 0, 100, 100); goto exit_KIB;
m_KIB3: //низ
key_(40, 1, "", 0, 100, 100); goto exit_KIB;
m_KIB2: if (findimage_(#Image_1_KIB[0][0], 300, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, -1, 0, 100, 1, 700, 836, 1216, 899, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB3;
else goto m_KIB5;
m_KIB5: if (findimage_(#Image_2_KIB[0][0], 300, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, -1, 0, 100, 1, 700, 836, 1216, 899, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB6;
else goto m_KIB7;
m_KIB6: //право
key_(39, 1, "", 0, 0, 100); goto exit_KIB;
m_KIB7: if (findimage_(#Image_3_KIB[0][0], 300, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, -1, 0, 100, 1, 700, 836, 1216, 899, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB8;
else goto m_KIB1;
m_KIB0: //лево
key_(37, 1, "", 0, 100, 100);
exit_KIB:;
function start_()
{
getdisplay(col_KIB, ex_KIB, ey_KIB);
load_image_();
pause(1000);
}
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)
{
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], "D:\kibor2\temp\str-l.bmp");
loadimage (#Image_1_KIB[0][0], "D:\kibor2\temp\str-n.bmp");
loadimage (#Image_2_KIB[0][0], "D:\kibor2\temp\str-p.bmp");
loadimage (#Image_3_KIB[0][0], "D:\kibor2\temp\str-v.bmp");
}
int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int Image_0_KIB[61][53];
int Image_1_KIB[58][54];
int Image_2_KIB[58][54];
int Image_3_KIB[55][53];
start_();
m_KIB1: if (findimage_(#Image_0_KIB[0][0], 300, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, -1, 0, 100, 1, 700, 836, 1216, 899, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB0;
else goto m_KIB2;
m_KIB8: //верх
key_(38, 1, "", 0, 100, 100); goto exit_KIB;
m_KIB3: //низ
key_(40, 1, "", 0, 100, 100); goto exit_KIB;
m_KIB2: if (findimage_(#Image_1_KIB[0][0], 300, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, -1, 0, 100, 1, 700, 836, 1216, 899, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB3;
else goto m_KIB5;
m_KIB5: if (findimage_(#Image_2_KIB[0][0], 300, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, -1, 0, 100, 1, 700, 836, 1216, 899, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB6;
else goto m_KIB7;
m_KIB6: //право
key_(39, 1, "", 0, 0, 100); goto exit_KIB;
m_KIB7: if (findimage_(#Image_3_KIB[0][0], 300, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, -1, 0, 100, 1, 700, 836, 1216, 899, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB8;
else goto m_KIB1;
m_KIB0: //лево
key_(37, 1, "", 0, 100, 100);
exit_KIB:;
function start_()
{
getdisplay(col_KIB, ex_KIB, ey_KIB);
load_image_();
pause(1000);
}
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)
{
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], "D:\kibor2\temp\str-l.bmp");
loadimage (#Image_1_KIB[0][0], "D:\kibor2\temp\str-n.bmp");
loadimage (#Image_2_KIB[0][0], "D:\kibor2\temp\str-p.bmp");
loadimage (#Image_3_KIB[0][0], "D:\kibor2\temp\str-v.bmp");
}
(Добавление)
видео посмотрел, вроде всё так же сделал
(Добавление)
Так как мне сделать чтоб бот по порядку нажимал нужные кнопки с помощью распознавания?К
Каким блоком? [img](для просмотра ссылки Вам необходимо авторизоваться) /img]
(Добавление)
А то он вроде распознает но ничего не происходит дальше
(Добавление)
Ладно, похоже сам я не смогу написать.
Вот есть код
код (Отобразить)
CODE:
int color_text_KIB_5[1]={16777215} // цвет текста
int coord[4]={750, 787, 1171, 839} // зона поиска
int deltaX=46; // расстояние между стрелками
int pause_=50; // пауза между поиском стрелок
loadsymbolbase("C:\Users\Limbaugh\Desktop\Arrows.sib"); // база для readtext
int color_red=2302945; // цвет красной стрелки
int color_red_min=80; // сколько нужно минимум пикселей найти
int r=10; // разбежность
int fcolorX[999], fcolorY[999]; // массивы для findcolor
int script=0, i, posX;
char text_KIB; // сюда распознаётся текст, 1 символ
enabletimer(0);
loop()
{
textbkcolor (65280, 255);
textout(0, 300, 300, "Запуск/остановка скрипта Ctrl+Z", 1);
while(script)
{
textbkcolor (255, 65280);
textout(0, 300, 300, "Скрипт работает", 1);
// ожидание появления стрелок
loop()
{
if(readtext(RU, #text_KIB, 8, 1, -1, -1, -1, #color_text_KIB_5[0], 1, 5, -1, coord[0], coord[1], coord[2], coord[3], -1))
{
if(symbolcorrect(0)>0.7)
{
posX=coord[0]+symbolxpos(0); break;
}
}
sleep(10);
}
/////////
i=0;
while(posX < coord[2]) // пока не проверили все стрелки
{
mousemove(posX, coord[1]); // можно убрать
sleep(pause_); // можно убрать
mousemove(posX+deltaX, coord[3]); // можно убрать
if(readtext(RU, #text_KIB, 8, 1, -1, -1, -1, #color_text_KIB_5[0], 1, 5, -1, posX, coord[1], posX+deltaX, coord[3], -1))
{
func(text_KIB, i); // вызов функции, которая проверяет корректность символа и нажимает клавиши
posX=posX+deltaX; i++; // смещаем область поиска для readtext
sleep(pause_);
}
else break; // если все стрелки нажаты
}
posX=coord[0];
sleep(10);
}
sleep(10);
}
function func(char c, int number)
{
if(symbolcorrect(0)>0.7) // если корректность символа больше 0.7
{
// поиск красных пикселей
int count_red=findcolor(sizearray(fcolorX), #fcolorX[0],#fcolorY[0], posX, coord[1], posX+deltaX, coord[3], color_red, r,r,r,r,r,r, -1);
if(count_red>color_red_min) // если найдено нужное количество красных пикселей
{
textbkcolor (65280, 255);
textout(9, 300, 380, "Красная стрелка", 1);
textbkcolor (255, 65279);
if(c=='п'){textout(10, 300, 400, format(number)+" Влево", 1); key(37); return;}
if(c=='л'){textout(10, 300, 400, format(number)+" Вправо", 1); key(39); return;}
if(c=='н'){textout(10, 300, 400, format(number)+" Вверх", 1); key(38); return;}
if(c=='в'){textout(10, 300, 400, format(number)+" Вниз", 1); key(40); return;}
}
else
{
textbkcolor (255, 16000000);
textout(9, 300, 380, "Синяя стрелка", 1);
textbkcolor (255, 65279);
if(c=='п'){textout(10, 300, 400, format(number)+" Вправо", 1); key(39); return;}
if(c=='л'){textout(10, 300, 400, format(number)+" Влево", 1); key(37); return;}
if(c=='н'){textout(10, 300, 400, format(number)+" Вниз", 1); key(40); return;}
if(c=='в'){textout(10, 300, 400, format(number)+" Вверх", 1); key(38); return;}
}
}
else
{
textbkcolor (255, 0);
textout(9, 300, 380, "Символ не распознан или некорректен", 1);
}
}
CREATE_TIMER(0, 30)
{
if(getkeystate(CONTROL) && getkeystate(90)) // Ctrl+Z включает/выключает
{
while(getkeystate(CONTROL) && getkeystate(90))sleep(10);
if(script)script=0;
else script=1;
}
}
int coord[4]={750, 787, 1171, 839} // зона поиска
int deltaX=46; // расстояние между стрелками
int pause_=50; // пауза между поиском стрелок
loadsymbolbase("C:\Users\Limbaugh\Desktop\Arrows.sib"); // база для readtext
int color_red=2302945; // цвет красной стрелки
int color_red_min=80; // сколько нужно минимум пикселей найти
int r=10; // разбежность
int fcolorX[999], fcolorY[999]; // массивы для findcolor
int script=0, i, posX;
char text_KIB; // сюда распознаётся текст, 1 символ
enabletimer(0);
loop()
{
textbkcolor (65280, 255);
textout(0, 300, 300, "Запуск/остановка скрипта Ctrl+Z", 1);
while(script)
{
textbkcolor (255, 65280);
textout(0, 300, 300, "Скрипт работает", 1);
// ожидание появления стрелок
loop()
{
if(readtext(RU, #text_KIB, 8, 1, -1, -1, -1, #color_text_KIB_5[0], 1, 5, -1, coord[0], coord[1], coord[2], coord[3], -1))
{
if(symbolcorrect(0)>0.7)
{
posX=coord[0]+symbolxpos(0); break;
}
}
sleep(10);
}
/////////
i=0;
while(posX < coord[2]) // пока не проверили все стрелки
{
mousemove(posX, coord[1]); // можно убрать
sleep(pause_); // можно убрать
mousemove(posX+deltaX, coord[3]); // можно убрать
if(readtext(RU, #text_KIB, 8, 1, -1, -1, -1, #color_text_KIB_5[0], 1, 5, -1, posX, coord[1], posX+deltaX, coord[3], -1))
{
func(text_KIB, i); // вызов функции, которая проверяет корректность символа и нажимает клавиши
posX=posX+deltaX; i++; // смещаем область поиска для readtext
sleep(pause_);
}
else break; // если все стрелки нажаты
}
posX=coord[0];
sleep(10);
}
sleep(10);
}
function func(char c, int number)
{
if(symbolcorrect(0)>0.7) // если корректность символа больше 0.7
{
// поиск красных пикселей
int count_red=findcolor(sizearray(fcolorX), #fcolorX[0],#fcolorY[0], posX, coord[1], posX+deltaX, coord[3], color_red, r,r,r,r,r,r, -1);
if(count_red>color_red_min) // если найдено нужное количество красных пикселей
{
textbkcolor (65280, 255);
textout(9, 300, 380, "Красная стрелка", 1);
textbkcolor (255, 65279);
if(c=='п'){textout(10, 300, 400, format(number)+" Влево", 1); key(37); return;}
if(c=='л'){textout(10, 300, 400, format(number)+" Вправо", 1); key(39); return;}
if(c=='н'){textout(10, 300, 400, format(number)+" Вверх", 1); key(38); return;}
if(c=='в'){textout(10, 300, 400, format(number)+" Вниз", 1); key(40); return;}
}
else
{
textbkcolor (255, 16000000);
textout(9, 300, 380, "Синяя стрелка", 1);
textbkcolor (255, 65279);
if(c=='п'){textout(10, 300, 400, format(number)+" Вправо", 1); key(39); return;}
if(c=='л'){textout(10, 300, 400, format(number)+" Влево", 1); key(37); return;}
if(c=='н'){textout(10, 300, 400, format(number)+" Вниз", 1); key(40); return;}
if(c=='в'){textout(10, 300, 400, format(number)+" Вверх", 1); key(38); return;}
}
}
else
{
textbkcolor (255, 0);
textout(9, 300, 380, "Символ не распознан или некорректен", 1);
}
}
CREATE_TIMER(0, 30)
{
if(getkeystate(CONTROL) && getkeystate(90)) // Ctrl+Z включает/выключает
{
while(getkeystate(CONTROL) && getkeystate(90))sleep(10);
if(script)script=0;
else script=1;
}
}
Там из файлов нужен только распознаватель стрелок, он у меня есть но почему-то не работает скрипт, что с ним то не так?