Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Скрипт бота для FGH (Flash Guitar Hero) в Вконтакте(для просмотра ссылки Вам необходимо авторизоваться) Требователен к железу. Лучше запускать на перегруженном компе...
На чистом языке написать - результат был бы лучше...
Набивает на эксперте от 95 до 99.8 процентов совпадений. Индикатор попаданий зашкаливает за зеленое. На видео тормозит бот из за программы записи видео.
Видео работы. Уровень эксперт - демо работы бота
Из за программы захвата изображения с экрана в видео была нагрузка на компьютер и результат намного ниже обычного...
Может требоваться настройка скрипта под свой комп и сложность игры, то есть если настроен на эксперта, то на простом уровне может много пропускать - раньше жать.
Запустить поверх окна браузера с игрой. Потом перейти на саму игру путем выбора нужной игры.
Скрипт:
CODE:int xj, yj;
getmouse(xj, yj);// Узнаем координаты мыши
win w=getwindow (0, xj, yj);
int color0[1][1], color1[1][1], color2[1][1], color3[1][1], color4[1][1];//Искомые цвета на каждую полосу
color0[0][0]=3338798; color1[0][0]=4874739; color2[0][0]=5373688; color3[0][0]=15971374; color4[0][0]=4965108;//Цвета для каждой полосы
int im[5][5];//Рисунок идентификации координат в окне игры
//для того что бы не таскать его с собой заполняем просто массив цветами
im[0][0]=8293773; im[1][0]=8886424; im[2][0]=10532276; im[3][0]=11388354; im[4][0]=13362914;
im[0][1]=6323322; im[1][1]=4810083; im[2][1]=4020824; im[3][1]=3627091; im[4][1]=9022117;
im[0][2]=6259070; im[1][2]=2377797; im[2][2]=1719867; im[3][2]=2444358; im[4][2]=6325632;
im[0][3]=10009785; im[1][3]=6522756; im[2][3]=1654587; im[3][3]=272676; im[4][3]=2180673;
im[0][4]=11719889; im[1][4]=9088169; im[2][4]=3364178; im[3][4]=1126957; im[4][4]=468257;
int zona_X[5][2], zona_Y[5][2];//Координаты зон происков
int kX[1], kY[1];//Координаты рисунка метки (левый верхний угол рамки в игре (там где очки слева внизу))
int kn[5];//Флаг найдени иль не найден цвет фишки на подходе к финишу
int f[5];//флаг нажата иль не нажата кнопка
int z=87;//Число на которое допускается осветление искомого цвета (повышать пока кнопки не начнут нажиматься без фишки на подходе)
int z1=20;//Число на которое допускается затемнение (понижать пока кнопки не начнут нажиматься без фишки на подходе)
int tx[1], ty[1];
sssss: if (findimage(1, #im[0][0], -1, #kX[0], #kY[0], 0, 0, w.widthclient, w.heightclient, w)==1)//Если нашли рамку в игре, мы в игре
{
sleep(1000);
/*Расчет координат зон поисков. прямоугольники над фишками 10 на 8
Через них пролетают фишки когда на подходе и мы в этих зонах ищем цвет этих фишек. если есть - жмем нужную кнопку*/
zona_X[0][0]=kX[0]+235; zona_X[0][1]=kX[0]+245;
zona_Y[0][0]=kY[0]+93; zona_Y[0][1]=kY[0]+105;
zona_X[1][0]=kX[0]+313; zona_X[1][1]=kX[0]+323;
zona_Y[1][0]=kY[0]+93; zona_Y[1][1]=kY[0]+105;
zona_X[2][0]=kX[0]+347; zona_X[2][1]=kX[0]+357;
zona_Y[2][0]=kY[0]+93; zona_Y[2][1]=kY[0]+105;
zona_X[3][0]=kX[0]+424; zona_X[3][1]=kX[0]+434;
zona_Y[3][0]=kY[0]+93; zona_Y[3][1]=kY[0]+105;
zona_X[4][0]=kX[0]+505; zona_X[4][1]=kX[0]+515;
zona_Y[4][0]=kY[0]+93; zona_Y[4][1]=kY[0]+105;
key('z');key('x');key('c');key('v');key('b');//тест. сброс режимов кнопок к исходному состоянию
f[0]=0; f[1]=0; f[2]=0; f[3]=0; f[4]=0;//Обнулить флаг нажатых кнопок
l:;
//Тут ищем в цикле цвета фишек в прямоугольниках над финишными кнопками.
// Ищется с помощью findimage расширенной изображения размером 1 на 1 (пиксель)
kn[0]=findimage(1, #color0[0][0], -1, #tx[0], #ty[0], zona_X[0][0], zona_Y[0][0], zona_X[0][1], zona_Y[0][1], z, z1, z, z1, z, z1, 100, 0, w);
if (kn[0]==1){if (f[0]==0){f[0]=1; keydown('z');}}//Обнаружена фишка . жмем
if (kn[0]==0){if (f[0]==1){f[0]=0; keyup('z');}}//нет фишки и полосы продления . отпускаем
//???????????
kn[1]=findimage(1, #color1[0][0], -1, #tx[0], #ty[0], zona_X[1][0], zona_Y[1][0], zona_X[1][1], zona_Y[1][1], z, z1, z, z1, z, z1, 100, 0, w);
if (kn[1]==1){if (f[1]==0){f[1]=1; keydown('x');}}
if (kn[1]==0){if (f[1]==1){f[1]=0; keyup('x');}}
//???????????
kn[2]=findimage(1, #color2[0][0], -1, #tx[0], #ty[0], zona_X[2][0], zona_Y[2][0], zona_X[2][1], zona_Y[2][1], z, z1, z, z1, z, z1, 100, 0, w);
if (kn[2]==1){if (f[2]==0){f[2]=1; keydown('c');}}
if (kn[2]==0){if (f[2]==1){f[2]=0; keyup('c');}}
//???????????
kn[3]=findimage(1, #color3[0][0], -1, #tx[0], #ty[0], zona_X[3][0], zona_Y[3][0], zona_X[3][1], zona_Y[3][1], z, z1, z, z1, z, z1, 100, 0, w);
if (kn[3]==1){if (f[3]==0){f[3]=1; keydown('v');}}
if (kn[3]==0){if (f[3]==1){f[3]=0; keyup('v');}}
//???????????
kn[4]=findimage(1, #color4[0][0], -1, #tx[0], #ty[0], zona_X[4][0], zona_Y[4][0], zona_X[4][1], zona_Y[4][1], z, z1, z, z1, z, z1, 100, 0, w);
if (kn[4]==1){if (f[4]==0){f[4]=1; keydown('b');}}
if (kn[4]==0){if (f[4]==1){f[4]=0; keyup('b');}}
goto l;
}
goto sssss; |