| Agid |
Отправлено: 05 Сентября, 2013 - 22:07:57
|


Прохожий

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

|
Играю в мобильную браузерную игру. думаю практически всем известно что там что бы качнуть лвл нужно жать всего одну кнопку)) Пытался реализовать это через автокликер- до определенного момента все хорошо, но потом появляется дроп, и клавиша на атаку моба немного смещается. Думал попробовать написать скрипт, но я мало того что не опытный в этом языке, но и даже не знаю по какому принципу делать бот к такой игре! Прошу, кто может, напишите скрипт который бил бы первого в списке моба, вовремя перезаряжался, и после того как закончится энергия, выходил в меню и ждал 5 минут. Вот сама игра-zomvir.ru
заранее спасибо тому кто моможет)  |
| |
|
| Kibor |
Отправлено: 06 Сентября, 2013 - 00:25:10
|


Эксперт

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

|
Вот скачать скрипт и нужные рисунки: скрипт и рисунки для zomvir.ru На С распаковать
Для мозилы! Вот к примеру в хроме на находит рисунки... надо делать другие.
Запускать когда игра идет на улице.
Если не играет - не находит рисунки. Сделать со своего экрана аналогично прилагаемым.
Перед этим почитать это и это
Вот текст этого скрипта:
CODE:int PosX, PosY;
int time;
int Image_0[49][11];loadimage (#Image_0[0][0], "C:\zomvir-ru\zabrat.bmp");//Кнопка забрать
int Image_1[89][11];loadimage (#Image_1[0][0], "C:\zomvir-ru\ataka.bmp");//Кнопка атака
int Image_2[110][10];loadimage (#Image_2[0][0], "C:\zomvir-ru\zdorovie.bmp");//Надпись маленького здоровья
int Image_3[40][9];loadimage (#Image_3[0][0], "C:\zomvir-ru\menu.bmp");//Меню кнопка
int Image_4[42][9];loadimage (#Image_4[0][0], "C:\zomvir-ru\ylica.bmp");//Улица кнопка
int Image_5[89][12];loadimage (#Image_5[0][0], "C:\zomvir-ru\perezaryadit.bmp");
int col, x, y;
getdisplay(col, x, y);
l:;
if (findimage(1, #Image_2[0][0], 0, #PosX, #PosY, 0, 0, x, y, -1)==1)// появилась надпись маленького здоровья
{
a: if (findimage(1, #Image_3[0][0], 0, #PosX, #PosY, 0, 0, x, y, -1)==0)//если не нашли меню кнопку
{
key(NEXT);sleep(200);//прокрутка вниз страницы
goto a;
}
mouse(LEFT, PosX+10, PosY+5);//на кнопку меню жать
sleep(50);mousemove(10, y/2);sleep(200);//Убрать мышку с поля, что бы не подсвечивать кнопки
time=gettime();
q: if (gettime()-time<300000){sleep(100); goto q;}//5 мин ожидать
a1: if (findimage(1, #Image_4[0][0], 0, #PosX, #PosY, 0, 0, x, y, -1)==0)//если не нашли улица кнопку
{
key(NEXT);sleep(200);//прокрутка вниз страницы
goto a1;
}
mouse(LEFT, PosX+10, PosY+5);//на кнопку улица жать
sleep(50);mousemove(10, y/2);sleep(200);//Убрать мышку с поля, что бы не подсвечивать кнопки
}
if (findimage(1, #Image_0[0][0], 0, #PosX, #PosY, 0, 0, x, y, -1)==1)//Появилась надпась лута и кнопка забрать
{
mouse(LEFT, PosX+10, PosY+5);// нажать
sleep(50);mousemove(10, y/2);sleep(200);//Убрать мышку с поля, что бы не подсвечивать кнопки
}
if (findimage(1, #Image_5[0][0], 0, #PosX, #PosY, 0, 0, x, y, -1)==1)//Появилась кнопка перезарядить
{
mouse(LEFT, PosX+10, PosY+5);// нажать
sleep(50);mousemove(10, y/2);sleep(200);//Убрать мышку с поля, что бы не подсвечивать кнопки
}
if (findimage(1, #Image_1[0][0], 0, #PosX, #PosY, 0, 0, x, y, -1)==1)//Найти атака кнопка.
{
mouse(LEFT, PosX+10, PosY+5);// нажать
sleep(50);mousemove(10, y/2);sleep(200);//Убрать мышку с поля, что бы не подсвечивать кнопки
}
sleep(500);//Указать между щелчками паузу
goto l; |
| |
|
| Agid |
Отправлено: 06 Сентября, 2013 - 13:58:30
|


Прохожий

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

|
(для просмотра ссылки Вам необходимо авторизоваться)
(Добавление)
Kibor пишет: Kibor пишет: Выложите архив с рисунками.
Туда же скрин экрана с игрой (все страницы). Формат bmp без сжатия.
По рисунку и так вижу что он больше прилагаемого мной. Это не допустимо, так как память выделена на меньший:
int Image_2[110][10];
почитать это и это
понял, сейчас попробую
(Добавление)
Есть! Спасибо, подправил размеры, теперь нормально. Но появился другой вопрос- как сделать так чтобы бот делал паузу в 2 секунды после удара? А то он бьет первых двух мобов слишком часто(не успевает перезарядится) а там после каждого удара(даже неудачного) мобы подходят на шаг
(Добавление)
Cпасибо уже нашел как |
| |
|
| Kibor |
Отправлено: 06 Сентября, 2013 - 14:57:55
|


Эксперт

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

|
Agid пишет: как сделать так чтобы бот делал паузу в 2 секунды после удара
Kibor пишет: sleep(500);//Указать между щелчками паузу
Читайте коментарии в скрипте |
| |
|
| Kibor |
Отправлено: 16 Сентября, 2013 - 10:43:55
|


Эксперт

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

|
Суть игры в данном случае и есть правильная последовательность действий, со всякими временными ожиданиями регенерации и т.п.
Вот собственно этот нехитрый скрипт: архив с рисунками, эмулятором, игрой и скриптом.
В архиве все вместе. Распаковать на С.
Эмулятор и игра выложены так как именно этот эмулятор и игру использовать. Настройки эмуля - стандартные.
Стартовать скрипт в такой позиции
Скрипт настроен на Крыс.
Добавить код который позволит бить ударами разными я оставляю вам.
Сам скрипт
CODE:win w=window ("KEmulator Lite v0.9.8", "SWT_Window0", -1);
int t;
int ojidat=50000; //Время которое ждем после восрешение
int ojidat1=20000; //Время которое ждем после боя и победы
int X, Y;
int bestisrii[61][9];
int zagryzka[18][18];
int kris[28][9];
int xod[23][11];
int porajenie[67][9];
int xram[30][9];
int pobeda[44][9];
int voskresli[81][9];
activate(w);
sleep(1000);
loadimage (#bestisrii[0][0], "C:\eldor\bestisrii.bmp");
loadimage (#zagryzka[0][0], "C:\eldor\zagryzka.bmp");
loadimage (#kris[0][0], "C:\eldor\kris.bmp");
loadimage (#xod[0][0], "C:\eldor\xod.bmp");
loadimage (#porajenie[0][0], "C:\eldor\porajenie.bmp");
loadimage (#xram[0][0], "C:\eldor\xram.bmp");
loadimage (#pobeda[0][0], "C:\eldor\pobeda.bmp");
loadimage (#voskresli[0][0], "C:\eldor\voskresli.bmp");
l: keydown(DOWN);sleep(500);keyup(DOWN);//жмем вниз
//////////////////////////////////////////////////////////////
find_bestisrii();//Ищем вход в бестиарий;
find_kris();//Ищем крыс списке;
boi();// бой
//////////////////////////////////////////////////////////////////////
goto l;
function find_bestisrii()
{
if (findimage(1, #bestisrii[0][0], 0, #X, #Y, 0, 0, 240, 320, w)==1)//нашелся бестиарий
{
keydown(F2);sleep(500);keyup(F2);
sleep(1000);
keydown(RETURN);sleep(500);keyup(RETURN);
sleep(1000);
a: if (findimage(1, #zagryzka[0][0], 0, #X, #Y, 0, 0, 240, 320, w)==1){sleep(100); goto a;}//ждать загрузку
}
}
function find_kris()
{
if (findimage(1, #kris[0][0], 0, #X, #Y, 0, 0, 240, 320, w)==1)//нашелся крыс
{
keydown(F2);sleep(500);keyup(F2);
sleep(1000);
keydown(RETURN);sleep(500);keyup(RETURN);
sleep(1000);
a: if (findimage(1, #zagryzka[0][0], 0, #X, #Y, 0, 0, 240, 320, w)==1){sleep(100); goto a;}//ждать загрузку
}
}
function boi()
{
b: if (findimage(1, #xod[0][0], 0, #X, #Y, 0, 0, 240, 320, w)==1)//нашелся ход
{
//Тут должен быть код нажатий разных ударов
keydown(F2);sleep(500);keyup(F2);
sleep(2000);
if (findimage(1, #porajenie[0][0], 0, #X, #Y, 0, 0, 240, 320, w)==1)//поражение
{
keydown(RETURN);sleep(500);keyup(RETURN);
sleep(1000);
a: if (findimage(1, #zagryzka[0][0], 0, #X, #Y, 0, 0, 240, 320, w)==1){sleep(100); goto a;}//ждать загрузку
l1: keydown(DOWN);sleep(500);keyup(DOWN);//жмем вниз
if (find_xram()==1)return;
goto l1;
}
if (findimage(1, #pobeda[0][0], 0, #X, #Y, 0, 0, 240, 320, w)==1)//победа
{
keydown(RETURN);sleep(500);keyup(RETURN);
sleep(1000);
a1: if (findimage(1, #zagryzka[0][0], 0, #X, #Y, 0, 0, 240, 320, w)==1){sleep(100); goto a1;}//ждать загрузку
t=gettime();
ay: if (gettime()-t<ojidat1){sleep(50);goto ay;}
return;
}
goto b;
}
}
function find_xram()
{
if (findimage(1, #xram[0][0], 0, #X, #Y, 0, 0, 240, 320, w)==1)//нашелся храм
{
keydown(F2);sleep(500);keyup(F2);
sleep(1000);
keydown(RETURN);sleep(500);keyup(RETURN);
sleep(1000);
a: if (findimage(1, #zagryzka[0][0], 0, #X, #Y, 0, 0, 240, 320, w)==1){sleep(100); goto a;}//ждать загрузку
j: if (findimage(1, #voskresli[0][0], 0, #X, #Y, 0, 0, 240, 320, w)==1)
{
sleep(500);
keydown(F1);sleep(500);keyup(F1);
a5: if (findimage(1, #zagryzka[0][0], 0, #X, #Y, 0, 0, 240, 320, w)==1){sleep(100); goto a5;}//ждать загрузку
keydown(UP);sleep(7000);keyup(UP);
t=gettime();
ay: if (gettime()-t>ojidat) return 1;//Воскресли
sleep(50);
goto ay;
}
sleep(100);
goto j;
}
return 0;
}
|
| |
|
|