Видео работы скрипта:
Видео работы автонаводки и боя в Танки онлайн
Скрипт можно использовать как в игре управляя танком, так и поставив танк где то в углу и наблюдать со стороны..
Настроен на бои красные синие...
В скрипте надо настроить область поиска так , что бы не попал чат боя (тот что справа)в поиск. Чат сообщений отключить. Все отключить...
Область поиска настраивается так:
findimage(-1, #color_vrag[0][0], 0, #v_X[0], #v_Y[0], 0, 118, ex-280, ey-150......
0-так оставить
118 - координата у верхнего левого угла. указать ниже панелей в игре
ex-280 - 280 это ширина чата боя..
ey-150 - 150 это высота на которую надо поднять нижнюю часть области поиска (что б не попала панель задач и браузер)
Область правого чата боя слепая... там не видит...
Может позже выложу полноценного бота, который будет сам крутить башкой...
Пока ищется только в пределах видимости..
Красным что можно подстраивать
Настроен на экран 1366 768
Цитата:
int col, ex, ey;
getdisplay(col, ex, ey);
int C_ex=ex/2, C_ey=ey/2;
int v_X[5000], v_Y[5000];
int k;
int rast;
int color_vrag[1][1];
color_vrag[0][0]=13597755;//я красн //Можно подобрать цвет синего ника оптимальнее с помощью редактора Кибор
//color_vrag[0][0]=1389551;//я синий//Можно подобрать цвет красного ника оптимальнее с помощью редактора Кибор
int коэфициент_поворота=2;//От этого зависит скорость наводки, но так же и инерция проскакивания.
int точность_чистовой_наводки=10;//Эту точность держит при стрельбе
int точность_наводки=50;//Это точность при наводке
int точность_наводки_бить=100;//Это точность при которой начинает бить.
int задействовать_при_наводке_корпус=0;//0-не задействовать 1-задействовать с башней
int min_max=15;//Разбежность цвета. Точность определения (уменьшать пока нормально наводит на врага)
int razn;
int rast1;
int pr;
int bp=0;
sleep(1000);
key('z');
key('x');
key(SPACE);
lo:;
key('c');
if (bp==1) {bp=0; keyup(SPACE);}
k=findimage(-1, #color_vrag[0][0], 0, #v_X[0], #v_Y[0], 0, 118, ex-280, ey-150, min_max, min_max, min_max, min_max, min_max, min_max, 100, 1, -1);
if (k>0)
{
sort(C_ex, C_ey, #v_X[0], #v_Y[0], k);
rast=C_ex-v_X[0];
if (rast>точность_наводки)Pov_z();
if (rast<-точность_наводки)Pov_x();
rast1=rast;
if (rast1<0)rast1=-rast1;
if (rast1<точность_наводки_бить)
{
bp=1; keydown(SPACE);
if (rast>точность_чистовой_наводки){keydown('z');sleep(100);keyup('z');}
if (rast<-точность_чистовой_наводки){keydown('x');sleep(100);keyup('x');}
bit();
}
if (bp==1) {bp=0; keyup(SPACE);}
}
goto lo;
/////////////////////////////////////////
function Pov_z()
{
r: rast1=rast;
if (rast1<0)rast1=-rast1;
razn=rast1*коэфициент_поворота;
keydown('z');
if (задействовать_при_наводке_корпус==1)keydown(LEFT);
sleep(razn);
if (задействовать_при_наводке_корпус==1)keyup(LEFT);
keyup('z');
sleep(100);
k=findimage(-1, #color_vrag[0][0], 0, #v_X[0], #v_Y[0], 0, 118, C_ex, ey-150, min_max, min_max, min_max, min_max, min_max, min_max, 100, 1, -1);
if (k>0)
{
sort(C_ex, C_ey-188, #v_X[0], #v_Y[0], k);
rast=C_ex-v_X[0];
if (rast>razn/2)goto r;
if (rast1<точность_наводки_бить){bp=1; keydown(SPACE);}
sleep(100);
k=findimage(-1, #color_vrag[0][0], 0, #v_X[0], #v_Y[0], 0, 118, C_ex, ey-150, min_max, min_max, min_max, min_max, min_max, min_max, 100, 1, -1);
if (k>0){sort(C_ex, C_ey, #v_X[0], #v_Y[0], k);rast=C_ex-v_X[0];}
return;
}
if (rast1<точность_наводки_бить){bp=1; keydown(SPACE);}
sleep(100);
k=findimage(-1, #color_vrag[0][0], 0, #v_X[0], #v_Y[0], 0, 118, C_ex, ey-150, min_max, min_max, min_max, min_max, min_max, min_max, 100, 1, -1);
if (k>0){sort(C_ex, C_ey, #v_X[0], #v_Y[0], k);rast=C_ex-v_X[0];}
}
function Pov_x()
{
r: rast1=rast;
if (rast1<0)rast1=-rast1;
razn=rast1*коэфициент_поворота;
keydown('x');
if (задействовать_при_наводке_корпус==1)keydown(RIGHT);
sleep(razn);
if (задействовать_при_наводке_корпус==1)keyup(RIGHT);
keyup('x');
sleep(100);
k=findimage(-1, #color_vrag[0][0], 0, #v_X[0], #v_Y[0], C_ex, 118, ex-280, ey-150, min_max, min_max, min_max, min_max, min_max, min_max, 100, 1, -1);
if (k>0)
{
sort(0, C_ey, #v_X[0], #v_Y[0], k);
rast=v_X[0];
if (rast<-(razn/2))goto r;
if (rast1<точность_наводки_бить){bp=1; keydown(SPACE);}
sleep(100);
k=findimage(-1, #color_vrag[0][0], 0, #v_X[0], #v_Y[0], C_ex, 118, ex-280, ey-150, min_max, min_max, min_max, min_max, min_max, min_max, 100, 1, -1);
if (k>0){sort(0, C_ey, #v_X[0], #v_Y[0], k);rast=v_X[0];}
return;
}
if (rast1<точность_наводки_бить){bp=1; keydown(SPACE);}
sleep(100);
k=findimage(-1, #color_vrag[0][0], 0, #v_X[0], #v_Y[0], C_ex, 118, ex-280, ey-150, min_max, min_max, min_max, min_max, min_max, min_max, 100, 1, -1);
if (k>0){sort(0, C_ey, #v_X[0], #v_Y[0], k);rast=v_X[0];}
}
function bit()
{
pr=0;
q: k=findimage(-1, #color_vrag[0][0], 0, #v_X[0], #v_Y[0], 0, 118, ex-280, ey-150, min_max, min_max, min_max, min_max, min_max, min_max, 100, 1, -1);
if (k>0)
{
sort(C_ex, C_ey, #v_X[0], #v_Y[0], k);
rast=C_ex-v_X[0];
if (rast>точность_наводки)Pov_z();
if (rast<-точность_наводки)Pov_x();
if (rast>точность_чистовой_наводки){keydown('z');sleep(100);keyup('z');}
if (rast<-точность_чистовой_наводки){keydown('x');sleep(100);keyup('x');}
rast1=rast;
if (rast1<0)rast1=-rast1;
if (rast1<точность_наводки_бить)
{
pr=0;
sleep(20);
goto q;
}
}
if (pr<20)
{
pr++;
sleep(5);
goto q;
}
}
getdisplay(col, ex, ey);
int C_ex=ex/2, C_ey=ey/2;
int v_X[5000], v_Y[5000];
int k;
int rast;
int color_vrag[1][1];
color_vrag[0][0]=13597755;//я красн //Можно подобрать цвет синего ника оптимальнее с помощью редактора Кибор
//color_vrag[0][0]=1389551;//я синий//Можно подобрать цвет красного ника оптимальнее с помощью редактора Кибор
int коэфициент_поворота=2;//От этого зависит скорость наводки, но так же и инерция проскакивания.
int точность_чистовой_наводки=10;//Эту точность держит при стрельбе
int точность_наводки=50;//Это точность при наводке
int точность_наводки_бить=100;//Это точность при которой начинает бить.
int задействовать_при_наводке_корпус=0;//0-не задействовать 1-задействовать с башней
int min_max=15;//Разбежность цвета. Точность определения (уменьшать пока нормально наводит на врага)
int razn;
int rast1;
int pr;
int bp=0;
sleep(1000);
key('z');
key('x');
key(SPACE);
lo:;
key('c');
if (bp==1) {bp=0; keyup(SPACE);}
k=findimage(-1, #color_vrag[0][0], 0, #v_X[0], #v_Y[0], 0, 118, ex-280, ey-150, min_max, min_max, min_max, min_max, min_max, min_max, 100, 1, -1);
if (k>0)
{
sort(C_ex, C_ey, #v_X[0], #v_Y[0], k);
rast=C_ex-v_X[0];
if (rast>точность_наводки)Pov_z();
if (rast<-точность_наводки)Pov_x();
rast1=rast;
if (rast1<0)rast1=-rast1;
if (rast1<точность_наводки_бить)
{
bp=1; keydown(SPACE);
if (rast>точность_чистовой_наводки){keydown('z');sleep(100);keyup('z');}
if (rast<-точность_чистовой_наводки){keydown('x');sleep(100);keyup('x');}
bit();
}
if (bp==1) {bp=0; keyup(SPACE);}
}
goto lo;
/////////////////////////////////////////
function Pov_z()
{
r: rast1=rast;
if (rast1<0)rast1=-rast1;
razn=rast1*коэфициент_поворота;
keydown('z');
if (задействовать_при_наводке_корпус==1)keydown(LEFT);
sleep(razn);
if (задействовать_при_наводке_корпус==1)keyup(LEFT);
keyup('z');
sleep(100);
k=findimage(-1, #color_vrag[0][0], 0, #v_X[0], #v_Y[0], 0, 118, C_ex, ey-150, min_max, min_max, min_max, min_max, min_max, min_max, 100, 1, -1);
if (k>0)
{
sort(C_ex, C_ey-188, #v_X[0], #v_Y[0], k);
rast=C_ex-v_X[0];
if (rast>razn/2)goto r;
if (rast1<точность_наводки_бить){bp=1; keydown(SPACE);}
sleep(100);
k=findimage(-1, #color_vrag[0][0], 0, #v_X[0], #v_Y[0], 0, 118, C_ex, ey-150, min_max, min_max, min_max, min_max, min_max, min_max, 100, 1, -1);
if (k>0){sort(C_ex, C_ey, #v_X[0], #v_Y[0], k);rast=C_ex-v_X[0];}
return;
}
if (rast1<точность_наводки_бить){bp=1; keydown(SPACE);}
sleep(100);
k=findimage(-1, #color_vrag[0][0], 0, #v_X[0], #v_Y[0], 0, 118, C_ex, ey-150, min_max, min_max, min_max, min_max, min_max, min_max, 100, 1, -1);
if (k>0){sort(C_ex, C_ey, #v_X[0], #v_Y[0], k);rast=C_ex-v_X[0];}
}
function Pov_x()
{
r: rast1=rast;
if (rast1<0)rast1=-rast1;
razn=rast1*коэфициент_поворота;
keydown('x');
if (задействовать_при_наводке_корпус==1)keydown(RIGHT);
sleep(razn);
if (задействовать_при_наводке_корпус==1)keyup(RIGHT);
keyup('x');
sleep(100);
k=findimage(-1, #color_vrag[0][0], 0, #v_X[0], #v_Y[0], C_ex, 118, ex-280, ey-150, min_max, min_max, min_max, min_max, min_max, min_max, 100, 1, -1);
if (k>0)
{
sort(0, C_ey, #v_X[0], #v_Y[0], k);
rast=v_X[0];
if (rast<-(razn/2))goto r;
if (rast1<точность_наводки_бить){bp=1; keydown(SPACE);}
sleep(100);
k=findimage(-1, #color_vrag[0][0], 0, #v_X[0], #v_Y[0], C_ex, 118, ex-280, ey-150, min_max, min_max, min_max, min_max, min_max, min_max, 100, 1, -1);
if (k>0){sort(0, C_ey, #v_X[0], #v_Y[0], k);rast=v_X[0];}
return;
}
if (rast1<точность_наводки_бить){bp=1; keydown(SPACE);}
sleep(100);
k=findimage(-1, #color_vrag[0][0], 0, #v_X[0], #v_Y[0], C_ex, 118, ex-280, ey-150, min_max, min_max, min_max, min_max, min_max, min_max, 100, 1, -1);
if (k>0){sort(0, C_ey, #v_X[0], #v_Y[0], k);rast=v_X[0];}
}
function bit()
{
pr=0;
q: k=findimage(-1, #color_vrag[0][0], 0, #v_X[0], #v_Y[0], 0, 118, ex-280, ey-150, min_max, min_max, min_max, min_max, min_max, min_max, 100, 1, -1);
if (k>0)
{
sort(C_ex, C_ey, #v_X[0], #v_Y[0], k);
rast=C_ex-v_X[0];
if (rast>точность_наводки)Pov_z();
if (rast<-точность_наводки)Pov_x();
if (rast>точность_чистовой_наводки){keydown('z');sleep(100);keyup('z');}
if (rast<-точность_чистовой_наводки){keydown('x');sleep(100);keyup('x');}
rast1=rast;
if (rast1<0)rast1=-rast1;
if (rast1<точность_наводки_бить)
{
pr=0;
sleep(20);
goto q;
}
}
if (pr<20)
{
pr++;
sleep(5);
goto q;
}
}