Я пишу бота для игры star conflict.
Бот должен выполнять функции:
1) Найти изображение (в бой) и кликнуть левой кнопкой мыши
2) Найти изображение (миссии) и кликнуть левой кнопкой мыши
3) Найти изображение (случайная) и кликнуть левой кнопкой мыши
4) Найти изображение (начало боя)
5) Найти изображение (врага) и кликнуть левой кнопкой мышь
6) Найти изображение (врага) и кликнуть левой кнопкой мышь
5 и 6 пункт закольцованы.
Суть проблемы - в игре собственный прицел, как я понял именно из за него бот не кликает, но когда включаешь режим чата и появляется мышь бот начинает исправно выполнять 5 и 6 пункт. Подскажите пожалуйста, что делать.
Код:
int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int Image_0_KIB[84][27];
int Image_1_KIB[70][16];
int Image_2_KIB[182][31];
int Image_3_KIB[4][4];
int Image_4_KIB[4][3];
start_();
findimage_(#Image_0_KIB[0][0], 3000, 0, 0, 1, 50, 20, -1, 0, 0, 500, -1, -1, -1, 50, 95, 1, 422, 0, 1195, 118, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_1_KIB[0][0], 3000, 0, 0, 1, 40, 0, -1, 0, 0, 500, -1, -1, -1, 50, 95, 1, 702, 484, 918, 593, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_2_KIB[0][0], 3000, 0, 0, 1, 80, 0, -1, 0, 0, 500, -1, -1, -1, 50, 95, 1, 623, 254, 944, 354, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_3_KIB[0][0], 3000, 0, 0, 0, 0, 0, -1, 0, 0, 500, -1, -1, -1, 50, 95, 1, 1045, 557, 1061, 572, #sum_KIB, #x_KIB, #y_KIB);
m_KIB5: findimage_(#Image_4_KIB[0][0], 0, 0, 0, 1, 0, 0, -1, 0, 0, 500, -1, -1, -1, 50, 95, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_4_KIB[0][0], 3000, 0, 0, 1, 0, 0, -1, 0, 0, 500, -1, -1, -1, 50, 95, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB); goto m_KIB5;
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 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\Ярослав\Desktop\Кибор\В бой.bmp"
loadimage (#Image_1_KIB[0][0], "C:\Users\Ярослав\Desktop\Кибор\Миссии.bmp"
loadimage (#Image_2_KIB[0][0], "C:\Users\Ярослав\Desktop\Кибор\Случайная.bmp"
loadimage (#Image_3_KIB[0][0], "C:\Users\Ярослав\Desktop\Кибор\Начало боя.bmp"
loadimage (#Image_4_KIB[0][0], "C:\Users\Ярослав\Desktop\Кибор\Атака.bmp"
}
Скриншот прицела в игре:
ссылка [img]https://www.google.ru/search?q=стар+конфликт&newwindow=1&client=opera&source=lnms&tbm=isch&sa=X&sqi=2&ved=0ahUKEwii08XjtZzgAhXvposKHdoXCKAQ_AUIDygC&biw=1560&bih=791#imgrc=HZC7ozt9f_njtM:[/img]
Подскажите пожалуйста, что можно сделать, что бы бот исправно выполнял 5 и 6 пункт (имеется виду водил прицелом)
1. ma3aoioakep - 02 Февраля, 2019 - 00:32:02 - перейти к сообщению
2. Dantes3000 - 02 Февраля, 2019 - 03:36:42 - перейти к сообщению
Я делал бота для Battlestar Galactica Online, там суть игры точно такая же, интерфейс похожий.
Я на врага наводился зажатием правой клавиши мыши. При этом камера поворачивается в точку, где располагается мышь.
Но если это не поможет, то
остается включать чат и кликать
Я на врага наводился зажатием правой клавиши мыши. При этом камера поворачивается в точку, где располагается мышь.
Но если это не поможет, то
Цитата:
когда включаешь режим чата и появляется мышь бот начинает исправно выполнять 5 и 6 пункт
остается включать чат и кликать