Показать сообщение отдельно
  #6  
Старый 26.07.2015, 13:21
Stratego Stratego вне форума
Прохожий
 
Регистрация: 10.10.2014
Сообщения: 16
Версия Delphi: C++ 5
Репутация: 10
По умолчанию

Несколько примеров скриптов и видео работы ботов..

Реализация бота игры Три В Ряд (Анализ экрана. Кликер)
Скачать там рисунки надо..

Видео работы https://youtu.be/9PkE5rO6ZUM

Скрипт
Код:
int r=55, p=70, r1=10, p1=90;
int start_game[14][8], fishki[8][25][25], screen_game[182][182];
int X, Y, col, xe, ye, stx, sty, fx, fy, rx, ry;;
int Xk[7][7], Yk[7][7], Nk[7][7], KL[7][7], Xf[49], Yf[49];
if (load_image()==-1){messagebox ("Ошибка загрузки рисунка."); goto er;}

getdisplay(col, xe, ye);
sleep(500);
if (findimage(1, #start_game[0][0], 0, #X, #Y, 0, 0, xe, ye, r1, r1, r1, r1, r1, r1, p1, 1, -1)!=1){messagebox ("Не нашли игру."); goto er;}
stx=X+68; sty=Y+3; fx=X+237; fy=Y+173;
rx=fx-stx; ry=fy-sty;

Xk[0][0]=14; Yk[0][0]=14;//24
mouse (LEFT, X-50, Y+50);

for (int nx=0; nx<7; nx++)
{
for (int ny=0; ny<7; ny++)
{
Xk[nx][ny]=Xk[0][0]+nx*24;
Yk[nx][ny]=Yk[0][0]+ny*24;
}
}

loop:
if (find()==-1) goto er;
hod();
sleep (100);
mouse (LEFT, X-50, Y+50);
jh: finddynamic(0, #Xf[0], #Yf[0], 0, 0, 0, 0, stx, sty, fx, fy, -1);
sleep(150);
if (finddynamic(1, #Xf[0], #Yf[0], 1, 1, 5, 5, stx, sty, fx, fy, -1)==1){sleep(50); goto jh;}
goto loop;


er:;

function find()
{
int kol=0, k, k1;
ss: screen (#screen_game[0][0], stx, sty, fx, fy, -1);
k=0; k1=0;
for (int n=0; n<8; n++)
{
k=findimage(-1, #fishki[n][0][0], -1, #Xf[0], #Yf[0], 0, 0, rx, ry, r, r, r, r, r, r, p, 1, #screen_game[0][0]);
k1=k1+k;
for (int a=0; a<k; a++)
{
for (int nx=0; nx<7; nx++)
{
for (int ny=0; ny<7; ny++)
{
if (Xk[nx][ny]-(Xf[a]+10)<10 && (Xf[a]+10)-Xk[nx][ny]<10 && Yk[nx][ny]-(Yf[a]+10)<10 && (Yf[a]+10)-Yk[nx][ny]<10)
{
Nk[nx][ny]=n;
goto df;
}
}
}
df:;
}
}
if (k1!=49)
{
sleep(100);
kol++;
if (kol<5)goto ss;
else return -1;
}
/*
finddynamic(0, #Xf[0], #Yf[0], 0, 0, 0, 0, stx, sty, fx, fy, -1);
sleep(300);
if (finddynamic(1, #Xf[0], #Yf[0], 1, 1, 5, 5, stx, sty, fx, fy, -1)==0)return 1;
else goto ss;
*/
return 1;
}


function hod()
{
for (nx=0; nx<5; nx++)
{
//for (ny=0; ny<6; ny++)
for (ny=5; ny>-1; ny--)
{
if (Nk[nx][ny+1]==Nk[nx+1][ny] && Nk[nx][ny+1]==Nk[nx+2][ny])
{
mouse_hod (stx+Xk[nx][ny], sty+Yk[nx][ny], stx+Xk[nx][ny+1], sty+Yk[nx][ny+1]);
return;
}
/////
if (Nk[nx][ny]==Nk[nx+1][ny+1] && Nk[nx][ny]==Nk[nx+2][ny])
{
mouse_hod (stx+Xk[nx+1][ny], sty+Yk[nx+1][ny], stx+Xk[nx+1][ny+1], sty+Yk[nx+1][ny+1]);
return;
}
/////
if (Nk[nx][ny]==Nk[nx+1][ny] && Nk[nx][ny]==Nk[nx+2][ny+1])
{
mouse_hod (stx+Xk[nx+2][ny+1], sty+Yk[nx+2][ny+1], stx+Xk[nx+2][ny], sty+Yk[nx+2][ny]);
return;
}
}
}
/////////////////////

for (nx=0; nx<5; nx++)
{
//for (ny=1; ny<7; ny++)
for (ny=6; ny>0; ny--)
{
if (Nk[nx][ny-1]==Nk[nx+1][ny] && Nk[nx][ny-1]==Nk[nx+2][ny])
{
mouse_hod (stx+Xk[nx][ny], sty+Yk[nx][ny], stx+Xk[nx][ny-1], sty+Yk[nx][ny-1]);
return;
}
///////
if (Nk[nx][ny]==Nk[nx+1][ny-1] && Nk[nx][ny]==Nk[nx+2][ny])
{
mouse_hod (stx+Xk[nx+1][ny], sty+Yk[nx+1][ny], stx+Xk[nx+1][ny-1], sty+Yk[nx+1][ny-1]);
return;
}
///////
if (Nk[nx][ny]==Nk[nx+1][ny] && Nk[nx][ny]==Nk[nx+2][ny-1])
{
mouse_hod (stx+Xk[nx+2][ny-1], sty+Yk[nx+2][ny-1], stx+Xk[nx+2][ny], sty+Yk[nx+2][ny]);
return;
}
///////
}
}
/////////////////////

for (nx=0; nx<4; nx++)
{
//for (ny=0; ny<7; ny++)
for (ny=6; ny>-1; ny--)
{
if (Nk[nx][ny]==Nk[nx+2][ny] && Nk[nx][ny]==Nk[nx+3][ny])
{
mouse_hod (stx+Xk[nx+1][ny], sty+Yk[nx+1][ny], stx+Xk[nx][ny], sty+Yk[nx][ny]);
return;
}
///////
if (Nk[nx][ny]==Nk[nx+1][ny] && Nk[nx][ny]==Nk[nx+3][ny])
{
mouse_hod (stx+Xk[nx+2][ny], sty+Yk[nx+2][ny], stx+Xk[nx+3][ny], sty+Yk[nx+3][ny]);
return;
}
}
}
/////////////////////

////////////////??????????????????????????????
for (nx=0; nx<6; nx++)
{
//for (ny=0; ny<5; ny++)
for (ny=4; ny>-1; ny--)
{
if (Nk[nx+1][ny]==Nk[nx][ny+1] && Nk[nx+1][ny]==Nk[nx][ny+2])
{
mouse_hod (stx+Xk[nx][ny], sty+Yk[nx][ny], stx+Xk[nx+1][ny], sty+Yk[nx+1][ny]);
return;
}
///////
if (Nk[nx][ny]==Nk[nx+1][ny+1] && Nk[nx][ny]==Nk[nx][ny+2])
{
mouse_hod (stx+Xk[nx][ny+1], sty+Yk[nx][ny+1], stx+Xk[nx+1][ny+1], sty+Yk[nx+1][ny+1]);
return;
}
///////
if (Nk[nx][ny]==Nk[nx][ny+1] && Nk[nx][ny]==Nk[nx+1][ny+2])
{
mouse_hod (stx+Xk[nx][ny+2], sty+Yk[nx][ny+2], stx+Xk[nx+1][ny+2], sty+Yk[nx+1][ny+2]);
return;
}
///////
}
}
/////////////////////

////////////////??????????????????????????????

for (nx=1; nx<7; nx++)
{
//for (ny=0; ny<5; ny++)
for (ny=4; ny>-1; ny--)
{
if (Nk[nx-1][ny]==Nk[nx][ny+1] && Nk[nx-1][ny]==Nk[nx][ny+2])
{
mouse_hod (stx+Xk[nx][ny], sty+Yk[nx][ny], stx+Xk[nx-1][ny], sty+Yk[nx-1][ny]);
return;
}
///////
if (Nk[nx][ny]==Nk[nx-1][ny+1] && Nk[nx][ny]==Nk[nx][ny+2])
{
mouse_hod (stx+Xk[nx][ny+1], sty+Yk[nx][ny+1], stx+Xk[nx-1][ny+1], sty+Yk[nx-1][ny+1]);
return;
}
///////
if (Nk[nx][ny]==Nk[nx][ny+1] && Nk[nx][ny]==Nk[nx-1][ny+2])
{
mouse_hod (stx+Xk[nx][ny+2], sty+Yk[nx][ny+2], stx+Xk[nx-1][ny+2], sty+Yk[nx-1][ny+2]);
return;
}
///////
}
}
/////////////////////

//////////////>
for (nx=0; nx<7; nx++)
{
//for (ny=0; ny<4; ny++)
for (ny=3; ny>-1; ny--)
{
if (Nk[nx][ny]==Nk[nx][ny+2] && Nk[nx][ny]==Nk[nx][ny+3])
{
mouse_hod (stx+Xk[nx][ny+1], sty+Yk[nx][ny+1], stx+Xk[nx][ny], sty+Yk[nx][ny]);
return;
}
///////
if (Nk[nx][ny]==Nk[nx][ny+1] && Nk[nx][ny]==Nk[nx][ny+3])
{
mouse_hod(stx+Xk[nx][ny+2], sty+Yk[nx][ny+2], stx+Xk[nx][ny+3], sty+Yk[nx][ny+3]);
return;
}
}
}
//////////////

}

function mouse_hod(int x1, int y1, int x2, int y2)
{
mouse (LEFT, x1, y1);
sleep(500);
mouse (LEFT, x2, y2);
}



function load_image()
{
if (loadimage (#start_game[0][0], "C:\3_v_ryad\start_game.bmp")<1) return -1;
for (int n=0; n<8; n++)
{
if (loadimage (#fishki[n][0][0], "C:\3_v_ryad\"+format(n)+".bmp")<1) return -1;
}
return 1;
}

============================================

Бот для На рыбалку в вк (Анализ экрана. Кликер)
Скачать там рисунки надо..

Видео работы https://youtu.be/u4WYst6_rvA

Скрипт
Код:
win w;

int zabros[95][19];
int tyanut[60][18];
int zakrit[17][17];
int zakrit2[15][17];
int zakrit3[13][14];
int polosa[50][5];
int ok[31][20];

int x, y;
int xt, yt;
int r=10, p=90;
int zona_x1, zona_y1, zona_x2, zona_y2;

w=window ("На рыбалку - Mozilla Firefox");//изменить на свой указатель
if (w==0){messagebox ("не найденуказатель на браузер"); goto error;}

zona_x1=0; zona_y1=0; zona_x2=w.widthclient; zona_y2=w.heightclient;//установка зоны поиска весь браузер

if (load()==-1){messagebox ("не найдены рис в C:\fishing"); goto error;}//загрузка рис
pause(2000);


enabletimer(0);//включить таймер

//тут строим петлю работыц бота. с готовых функций.
//чем меньше тут кода тем понятнее логика
loop: if (zabrosit()==1)//заброс если есть кнопка такая
{
lov();//тянуть рыб
}
sleep(25);
goto loop;// идем на начало петли работы бота


error:;


//тут реализация функций с которых состоит сам бот
function zabrosit()//заброс если есть кнопка такая
{
if (findimage(1, #zabros[0][0], 0, #x, #y, 0, 0, w.widthclient, w.heightclient, w)==1)// если есть Забростиь жмем на нее и идем в цикл ловли
{
zona_x1=x-315; zona_y1=y-420; zona_x2=x+380; zona_y2=y+50;//установка зоны поиска только игра
mouse (LEFT, x, y, 0, w);
sleep(500);
return 1;//вернем 1 заброс был
}
return 0;//вернем 0 заброса не было
}


function lov()//тянуть рыб
{
lp: if (findimage(1, #tyanut[0][0], 0, #xt, #yt, zona_x1, zona_y1, zona_x2, zona_y2, w)==1)// если есть кнопка Тянуть продолжаем цикл ловли
{
disabletimer(0);//отключить таймер
if (findimage(1, #polosa[0][0], 0, #x, #y, zona_x1, zona_y1, zona_x2, zona_y2, w)==0)mousedown (LEFT, zona_x1+xt, zona_y1+yt, 0, w);//если середина полосы не окрашена жмем кнопку Тянуть
else mouseup (LEFT, zona_x1+xt, zona_y1+yt, 0, w);//если середина полосы окрашена отпускаем кнопку Тянуть
enabletimer(0);//включить таймер
}
goto lp;//идем на начало цикла ловли
}


function load()//загрузка рис
{
if (loadimage (#zabros[0][0], "C:\fishing\zabros.bmp")<1) return -1;//если не удача загрузки
if (loadimage (#tyanut[0][0], "C:\fishing\tyanut.bmp")<1) return -1;
if (loadimage (#zakrit[0][0], "C:\fishing\zakrit.bmp")<1) return -1;
if (loadimage (#zakrit2[0][0], "C:\fishing\zakrit2.bmp")<1) return -1;
if (loadimage (#zakrit3[0][0], "C:\fishing\zakrit3.bmp")<1) return -1;
if (loadimage (#polosa[0][0], "C:\fishing\polosa.bmp")<1) return -1;
if (loadimage (#ok[0][0], "C:\fishing\ok.bmp")<1) return -1;
return 1;//норм загрузка
}

CREATE_TIMER(0, 1000)//таймер каждую сек. проверка и закрытие табличек
{
//Добавление кода выполняемого по таймеру ......
if (findimage(1, #zakrit[0][0], 0, #x, #y, zona_x1, zona_y1, zona_x2, zona_y2, r, r, r, r, r, r, p, 1, w)==1)
{
mouse (LEFT, zona_x1+x+10, zona_y1+y+10, 0, w);
sleep(500);
goto loop;//если закрыли какое то окно лов закончен. идем на начало
}
if (findimage(1, #zakrit2[0][0], 0, #x, #y, zona_x1, zona_y1, zona_x2, zona_y2, r, r, r, r, r, r, p, 1, w)==1)
{
mouse (LEFT, zona_x1+x+10, zona_y1+y+10, 0, w);
sleep(500);
goto loop;//если закрыли какое то окно лов закончен. идем на начало
}
if (findimage(1, #zakrit3[0][0], 0, #x, #y, zona_x1, zona_y1, zona_x2, zona_y2, r, r, r, r, r, r, p, 1, w)==1)
{
mouse (LEFT, zona_x1+x+10, zona_y1+y+10, 0, w);
sleep(500);
goto loop;//если закрыли какое то окно лов закончен. идем на начало
}
if (findimage(1, #ok[0][0], 0, #x, #y, zona_x1, zona_y1, zona_x2, zona_y2, w)==1)
{
mouse (LEFT, zona_x1+x+10, zona_y1+y+10, 0, w);
sleep(500);
goto loop;//если закрыли какое то окно лов закончен. идем на начало
}
}
Ответить с цитированием