заранее спасибо тому кто моможет)
1. Agid - 05 Сентября, 2013 - 14:07:57 - перейти к сообщению
Играю в мобильную браузерную игру. думаю практически всем известно что там что бы качнуть лвл нужно жать всего одну кнопку)) Пытался реализовать это через автокликер- до определенного момента все хорошо, но потом появляется дроп, и клавиша на атаку моба немного смещается. Думал попробовать написать скрипт, но я мало того что не опытный в этом языке, но и даже не знаю по какому принципу делать бот к такой игре! Прошу, кто может, напишите скрипт который бил бы первого в списке моба, вовремя перезаряжался, и после того как закончится энергия, выходил в меню и ждал 5 минут. Вот сама игра-zomvir.ru
заранее спасибо тому кто моможет)
заранее спасибо тому кто моможет)
2. Kibor - 05 Сентября, 2013 - 16:25:10 - перейти к сообщению
Вот скачать скрипт и нужные рисунки: скрипт и рисунки для 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;
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;
3. Agid - 06 Сентября, 2013 - 04:48:18 - перейти к сообщению
Kibor пишет:
Вот скачать скрипт и нужные рисунки;[/code]
Не работает
4. Kibor - 06 Сентября, 2013 - 05:36:27 - перейти к сообщению
Agid пишет:
Не работает
Понятия не имею. У меня несколько часов без сбоев работал пока не остановил.
Выложите архив с рисунками.
Туда же скрин экрана с игрой (все страницы). Формат bmp без сжатия.
Если скрипт корректировался - его в архив.
5. Agid - 06 Сентября, 2013 - 05:49:01 - перейти к сообщению
а вот до
и после запуска бота
6. Kibor - 06 Сентября, 2013 - 05:53:19 - перейти к сообщению
7. Agid - 06 Сентября, 2013 - 05:58:30 - перейти к сообщению
(для просмотра ссылки Вам необходимо авторизоваться)
(Добавление)
По рисунку и так вижу что он больше прилагаемого мной. Это не допустимо, так как память выделена на меньший:
int Image_2[110][10];
почитать это и это
понял, сейчас попробую
(Добавление)
Есть! Спасибо, подправил размеры, теперь нормально. Но появился другой вопрос- как сделать так чтобы бот делал паузу в 2 секунды после удара? А то он бьет первых двух мобов слишком часто(не успевает перезарядится) а там после каждого удара(даже неудачного) мобы подходят на шаг
(Добавление)
Cпасибо уже нашел как
(Добавление)
Kibor пишет:
Kibor пишет:
Выложите архив с рисунками.
Туда же скрин экрана с игрой (все страницы). Формат bmp без сжатия.
Туда же скрин экрана с игрой (все страницы). Формат bmp без сжатия.
По рисунку и так вижу что он больше прилагаемого мной. Это не допустимо, так как память выделена на меньший:
int Image_2[110][10];
почитать это и это
понял, сейчас попробую
(Добавление)
Есть! Спасибо, подправил размеры, теперь нормально. Но появился другой вопрос- как сделать так чтобы бот делал паузу в 2 секунды после удара? А то он бьет первых двух мобов слишком часто(не успевает перезарядится) а там после каждого удара(даже неудачного) мобы подходят на шаг
(Добавление)
Cпасибо уже нашел как
8. Kibor - 06 Сентября, 2013 - 06:57:55 - перейти к сообщению
Agid пишет:
как сделать так чтобы бот делал паузу в 2 секунды после удара
Kibor пишет:
sleep(500);//Указать между щелчками паузу
Читайте коментарии в скрипте
9. MasterLamaster - 15 Сентября, 2013 - 14:18:23 - перейти к сообщению
Вы говорили что вам нужно понять суть самой игры, но думаю можно обойтись и без этого) Собственно я об "Элдоре". Что мне собственно нужно:
Что бы бот заходил в "Бестиарий" выбирал нужного мне моба, бил его в нужной мне последовательности, и убивал его, после чего ждал нужное количество времени, и повторял данные действия. Если же его убиваю, то просто заходил в храм ждал до окончания регенерации, и повторял выше перечисленное. На сколько я понимаю все действия можно привязать к картинкам. И сделать не большие паузы между действиями так как иногда игра прогружаеться. Вот собственно и все что мне нужно от данного бота)
Что бы бот заходил в "Бестиарий" выбирал нужного мне моба, бил его в нужной мне последовательности, и убивал его, после чего ждал нужное количество времени, и повторял данные действия. Если же его убиваю, то просто заходил в храм ждал до окончания регенерации, и повторял выше перечисленное. На сколько я понимаю все действия можно привязать к картинкам. И сделать не большие паузы между действиями так как иногда игра прогружаеться. Вот собственно и все что мне нужно от данного бота)
10. Kibor - 16 Сентября, 2013 - 02:43:55 - перейти к сообщению
Суть игры в данном случае и есть правильная последовательность действий, со всякими временными ожиданиями регенерации и т.п.
Вот собственно этот нехитрый скрипт: архив с рисунками, эмулятором, игрой и скриптом.
В архиве все вместе. Распаковать на С.
Эмулятор и игра выложены так как именно этот эмулятор и игру использовать. Настройки эмуля - стандартные.
Стартовать скрипт в такой позиции
Скрипт настроен на Крыс.
Добавить код который позволит бить ударами разными я оставляю вам.
Сам скрипт
Вот собственно этот нехитрый скрипт: архив с рисунками, эмулятором, игрой и скриптом.
В архиве все вместе. Распаковать на С.
Эмулятор и игра выложены так как именно этот эмулятор и игру использовать. Настройки эмуля - стандартные.
Стартовать скрипт в такой позиции
Скрипт настроен на Крыс.
Добавить код который позволит бить ударами разными я оставляю вам.
Сам скрипт
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;
}
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;
}