Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Без описания
Zews
Отправлено: 12 Октября, 2018 - 15:53:30
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 4
Дата рег-ции: Окт. 2018  
Репутация: 0




Здравствуйте, решил попробовать написать бот для игры Улётный клев: Рыбалка в 3D.

Использую эмулятор Nox версии 6.2.3.1. В настройках игры включен гиростаб.

Научился забрасывать удочку в перфект и тянуть рыбу. Но есть беда, в конце, когда появляется надпись "Истощение" нужно как то подсекнуть рыбу нажатием клавиши А на клавиатуре.

Вот собственно сам графический редактор выглядит так:(для просмотра ссылки Вам необходимо авторизоваться)
Помогите пожалуйста разобраться.

Ну и собственно сам код:
CODE:
int size_key_char_KIB=-1;
int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int Image_0_KIB[34][16];
int Image_1_KIB[46][14];
int Image_2_KIB[228][7];

start_();

findimage_(#Image_0_KIB[0][0], 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, -1, -1, -1, 0, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB);
key_(87, 1, "", 0, 500, 0);
m_KIB3: findimage_(#Image_1_KIB[0][0], 30000, 0, 0, 4, 0, 0, -1, 0, 0, 0, -1, -1, -1, 50, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_2_KIB[0][0], 9999999, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, -1, 50, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB);
mouse_(0, 7, 0, 0, 0); goto m_KIB3;



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 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) 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)
{
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\zews\Desktop\Bot\img\Start.bmp");
loadimage (#Image_1_KIB[0][0], "C:\Users\zews\Desktop\Bot\img\Fish.bmp");
loadimage (#Image_2_KIB[0][0], "C:\Users\zews\Desktop\Bot\img\HI.bmp");
}

 
 Top
Kibor
Отправлено: 12 Октября, 2018 - 17:43:41
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8095
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




А в чем проблема вставить в цепочку блок нахождения этой надписи и если нашлось, то ветвить логику в сторону где и нажимать A?
 
 Top
Zews
Отправлено: 12 Октября, 2018 - 17:59:48
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 4
Дата рег-ции: Окт. 2018  
Репутация: 0




 Kibor пишет:
А в чем проблема вставить в цепочку блок нахождения этой надписи и если нашлось, то ветвить логику в сторону где и нажимать A?


Проблема в том что в момент когда нужно нажать на клаве кнопку А, на экране не к чему привязаться.

(для просмотра ссылки Вам необходимо авторизоваться)
К этой надписи у меня не получилось привязаться. Я хотел найти сперва эту надпись "Истощение", а потом просто зацыклить нажатие клавиши A.
(для просмотра ссылки Вам необходимо авторизоваться) Вот в этот момент нужно нажать A. Но как это пояснить боту?

(Отредактировано автором: 12 Октября, 2018 - 18:11:16)

 
 Top
Kibor
Отправлено: 12 Октября, 2018 - 18:22:10
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8095
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Я делал бот для этой игры.
Там я привязывался к появлению красной стрелки.
Но не проблема привязаться к чему угодно. Я легко отлавливал стрелки когда надо дергать, страйки и прочую ерунду в реальном времени вместе с удерживанием индикатора на грани срыва в конце..
Вырезайте часть изображения которое не меняется. Остальное заливайте фоновым цветом и указывайте этот цвет в игнорируемом. Если надо укажите разбежность. Так же укажите малую зону для поиска.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by