777J0KeR777 |
Отправлено: 11 Мая, 2015 - 01:27:23
|
Наблюдатель
Покинул форум
Сообщений всего: 42
Дата рег-ции: Июнь 2014
Репутация: 0
|
Всем привет. Пытался написать скрипт к одной игрухе, состоящий всего то из 3х функций. Поиск одного изображения и "протыкивания" определённых координат. Затем поиск другого изображения и проделывания того же "протыкивания". Ну и всё то же обстоит с 3им.
Написал такую вот кашу:
CODE:win w=window ("Forge of Empires - Mozilla Firefox", "MozillaWindowClass", -1);
int goto;
int a;
int b;
int Image_0[19][22];
int Image_1[15][20];
int Image_2[18][13];
loadimage (#Image_1[0][0], "J:\kibor\Новая папка\молотки.bmp");
loadimage (#Image_0[0][0], "J:\kibor\Новая папка\денюжки.bmp");
loadimage (#Image_2[0][0], "J:\kibor\Новая папка\спит.bmp");
int PosX_0[512];int PosY_0[512];
int PosX_1[512];int PosY_1[512];
int PosX_2[512];int PosY_2[512];
a:
if(findimage(1, #Image_0[0][0], 255, #PosX_0[0], #PosY_0[0], 0, 0, 1280, 992, w)==1)
{
mouse (LEFT, 835, 663);
pause (500);
mouse (LEFT, 919, 631);
pause (500);
mouse (LEFT, 865, 585);
pause (500);
mouse (LEFT, 799, 559);
pause (500);
mouse (LEFT, 735, 529);
pause (500);
mouse (LEFT, 685, 501);
pause (500);
mouse (LEFT, 745, 465);
pause (500);
mouse (LEFT, 793, 489);
pause (500);
mouse (LEFT, 857, 517);
pause (500);
mouse (LEFT, 911, 549);
pause (500);
mouse (LEFT, 1005, 599);
pause (500);
mouse (LEFT, 1091, 537);
pause (500);
mouse (LEFT, 1011, 505);
pause (500);
mouse (LEFT, 963, 477);
pause (500);
mouse (LEFT, 899, 449);
pause (500);
mouse (LEFT, 837, 421);
pause (500);
}
sleep (1000);
if(findimage(1, #Image_1[0][0], 255, #PosX_1[0], #PosY_1[0], 0, 0, 1280, 992, w)==1)
{
mouse (LEFT, 249, 511);
pause (500);
mouse (LEFT, 387, 465);
pause (500);
mouse (LEFT, 523, 513);
pause (500);
mouse (LEFT, 401, 571);
pause (500);
mouse (LEFT, 479, 613);
pause (500);
}
sleep(10000);
if(findimage(1, #Image_2[0][0], 255, #PosX_2[0], #PosY_2[0], 0, 0, 1280, 992, w)==1)
{
mouse (LEFT, 271, 525);
pause (1200);
mouse (LEFT, 381, 521);
pause (1200);
mouse (LEFT, 395, 471);
pause (1200);
mouse (LEFT, 409, 517);
pause (1200);
mouse (LEFT, 405, 575);
pause (1200);
mouse (LEFT, 431, 519);
pause (1200);
mouse (LEFT, 535, 521);
pause (1200);
mouse (LEFT, 487, 523);
pause (1200);
mouse (LEFT, 487, 625);
pause (1200);
mouse (LEFT, 455, 515);
pause (1200);
}
sleep (3000000);
goto a;
Ну и столкнулся со следующей проблемой: скрипту на "if(findimage..." вообще наплевать. он выполняет только первый массив, тобишь "протыкивает" первые координаты, а когда заканчивает, их тыкать, то он спокойно начинает тыкать снова те же координаты из первого массива.
Там дело обстоит вот в чём. Стоят домики, с одних надо золото собрать, а с других молотки + запустить в них производство вышеупомянутых молотков.
Помогите, пожалуйста, решить данную проблему. У меня мозгов и знаний не хватает... |
|
|
Kibor |
Отправлено: 11 Мая, 2015 - 09:51:22
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
777J0KeR777 пишет: win w=window ("Forge of Empires - Mozilla Firefox", "MozillaWindowClass", -1);
int goto;
int a;
а не нашлося другого имени?? это оператор. его нельзя юзать как имя.
нельзя использовать для меток и перем енных одни названия.
777J0KeR777 пишет: win w=window ("Forge of Empires - Mozilla Firefox", "MozillaWindowClass", -1);
int goto;
int a;
int b;
int Image_0[19][22];
int Image_1[15][20];
int Image_2[18][13];
loadimage (#Image_1[0][0], "J:\kibor\Новая папка\молотки.bmp");
loadimage (#Image_0[0][0], "J:\kibor\Новая папка\денюжки.bmp");
loadimage (#Image_2[0][0], "J:\kibor\Новая папка\спит.bmp");
int PosX_0[512];int PosY_0[512];
int PosX_1[512];int PosY_1[512];
int PosX_2[512];int PosY_2[512];
a:
if(findimage(1, #Image_0[0][0], 255, #PosX_0[0], #PosY_0[0], 0, 0, 1280, 992, w)==1)
{
mouse (LEFT, 835, 663);
pause (500);
mouse (LEFT, 919, 631);
pause (500);
mouse (LEFT, 865, 585);
pause (500);
mouse (LEFT, 799, 559);
pause (500);
mouse (LEFT, 735, 529);
pause (500);
mouse (LEFT, 685, 501);
pause (500);
mouse (LEFT, 745, 465);
pause (500);
mouse (LEFT, 793, 489);
pause (500);
mouse (LEFT, 857, 517);
pause (500);
mouse (LEFT, 911, 549);
pause (500);
mouse (LEFT, 1005, 599);
pause (500);
mouse (LEFT, 1091, 537);
pause (500);
mouse (LEFT, 1011, 505);
pause (500);
mouse (LEFT, 963, 477);
pause (500);
mouse (LEFT, 899, 449);
pause (500);
mouse (LEFT, 837, 421);
pause (500);
}
sleep (1000);
if(findimage(1, #Image_1[0][0], 255, #PosX_1[0], #PosY_1[0], 0, 0, 1280, 992, w)==1)
{
mouse (LEFT, 249, 511);
pause (500);
mouse (LEFT, 387, 465);
pause (500);
mouse (LEFT, 523, 513);
pause (500);
mouse (LEFT, 401, 571);
pause (500);
mouse (LEFT, 479, 613);
pause (500);
}
sleep(10000);
if(findimage(1, #Image_2[0][0], 255, #PosX_2[0], #PosY_2[0], 0, 0, 1280, 992, w)==1)
{
mouse (LEFT, 271, 525);
pause (1200);
mouse (LEFT, 381, 521);
pause (1200);
mouse (LEFT, 395, 471);
pause (1200);
mouse (LEFT, 409, 517);
pause (1200);
mouse (LEFT, 405, 575);
pause (1200);
mouse (LEFT, 431, 519);
pause (1200);
mouse (LEFT, 535, 521);
pause (1200);
mouse (LEFT, 487, 523);
pause (1200);
mouse (LEFT, 487, 625);
pause (1200);
mouse (LEFT, 455, 515);
pause (1200);
}
sleep (3000000);
goto a ;
примерный рабочий
CODE:win w=window ("Forge of Empires - Mozilla Firefox", "MozillaWindowClass", -1);
int Image_0[19][22];
int Image_1[15][20];
int Image_2[18][13];
loadimage (#Image_1[0][0], "J:\kibor\Новая папка\молотки.bmp");
loadimage (#Image_0[0][0], "J:\kibor\Новая папка\денюжки.bmp");
loadimage (#Image_2[0][0], "J:\kibor\Новая папка\спит.bmp");
int PosX;int PosY;
tt:
if(findimage(1, #Image_0[0][0], 255, #PosX, #PosY, 0, 0, 1280, 992, w)==1)
{
mouse (LEFT, 835, 663);
pause (500);
mouse (LEFT, 919, 631);
pause (500);
mouse (LEFT, 865, 585);
pause (500);
mouse (LEFT, 799, 559);
pause (500);
mouse (LEFT, 735, 529);
pause (500);
mouse (LEFT, 685, 501);
pause (500);
mouse (LEFT, 745, 465);
pause (500);
mouse (LEFT, 793, 489);
pause (500);
mouse (LEFT, 857, 517);
pause (500);
mouse (LEFT, 911, 549);
pause (500);
mouse (LEFT, 1005, 599);
pause (500);
mouse (LEFT, 1091, 537);
pause (500);
mouse (LEFT, 1011, 505);
pause (500);
mouse (LEFT, 963, 477);
pause (500);
mouse (LEFT, 899, 449);
pause (500);
mouse (LEFT, 837, 421);
pause (500);
}
pause (1000);
if(findimage(1, #Image_1[0][0], 255, #PosX, #PosY, 0, 0, 1280, 992, w)==1)
{
mouse (LEFT, 249, 511);
pause (500);
mouse (LEFT, 387, 465);
pause (500);
mouse (LEFT, 523, 513);
pause (500);
mouse (LEFT, 401, 571);
pause (500);
mouse (LEFT, 479, 613);
pause (500);
}
pause(10000);
if(findimage(1, #Image_2[0][0], 255, #PosX, #PosY, 0, 0, 1280, 992, w)==1)
{
mouse (LEFT, 271, 525);
pause (1200);
mouse (LEFT, 381, 521);
pause (1200);
mouse (LEFT, 395, 471);
pause (1200);
mouse (LEFT, 409, 517);
pause (1200);
mouse (LEFT, 405, 575);
pause (1200);
mouse (LEFT, 431, 519);
pause (1200);
mouse (LEFT, 535, 521);
pause (1200);
mouse (LEFT, 487, 523);
pause (1200);
mouse (LEFT, 487, 625);
pause (1200);
mouse (LEFT, 455, 515);
pause (1200);
}
pause (3000000);
goto tt; |
|
|
777J0KeR777 |
Отправлено: 11 Мая, 2015 - 12:38:49
|
Наблюдатель
Покинул форум
Сообщений всего: 42
Дата рег-ции: Июнь 2014
Репутация: 0
|
Спасибо, некоторые задачи решены . Теперь строю тело скрипта таким вот образом:
CODE:win w=window ("Forge of Empires - Mozilla Firefox", "MozillaWindowClass", -1);
int Image_0[19][22];
int Image_1[15][20];
int Image_2[18][13];
int Image_0[45][45];
loadimage (#Image_0[0][0], "J:\kibor\Íîâàÿ ïàïêà\åñòü ÷òî ñîáðàòü.bmp.bmp");
int PosX;int PosY;
tt:
if(findimage(-1, #Image_0[0][0], 255, #PosX_0[0], #PosY_0[0], 0, 0, 1280, 1024, w)==1)
{
mouse (LEFT, 1191, 560);
pause (500);
mouse (LEFT, 1125, 544);
pause (500);
mouse (LEFT, 1043, 502);
pause (500);
mouse (LEFT, 985, 468);
pause (500);
mouse (LEFT, 917, 426);
pause (500);
mouse (LEFT, 859, 404);
pause (500);
mouse (LEFT, 797, 364);
pause (500);
mouse (LEFT, 711, 424);
pause (500);
mouse (LEFT, 763, 448);
pause (500);
mouse (LEFT, 841, 478);
pause (500);
mouse (LEFT, 899, 512);
pause (500);
mouse (LEFT, 949, 536);
pause (500);
mouse (LEFT, 1009, 570);
pause (500);
mouse (LEFT, 1071, 600);
pause (500);
mouse (LEFT, 1023, 636);
pause (500);
mouse (LEFT, 965, 620);
pause (500);
mouse (LEFT, 889, 586);
pause (500);
mouse (LEFT, 837, 548);
pause (500);
mouse (LEFT, 769, 518);
pause (500);
mouse (LEFT, 715, 484);
pause (500);
mouse (LEFT, 671, 458);
pause (500);
pause (1000);
mouse (LEFT, 537, 634);
pause (500);
mouse (LEFT, 483, 602);
pause (500);
mouse (LEFT, 367, 552);
pause (500);
mouse (LEFT, 479, 496);
pause (500);
mouse (LEFT, 385, 424);
pause (500);
}
pause(10000);
else
{
mouse (LEFT, 539, 650);
pause (500);
mouse (LEFT, 463, 480);
pause (1200);
mouse (LEFT, 461, 592);
pause (500);
mouse (LEFT, 447, 454);
pause (1200);
mouse (LEFT, 381, 546);
pause (500);
mouse (LEFT, 413, 460);
pause (1200);
mouse (LEFT, 479, 478);
pause (500);
mouse (LEFT, 457, 444);
pause (1200);
mouse (LEFT, 371, 416);
pause (500);
mouse (LEFT, 371, 414);
pause (1200);
}
goto tt;
Пишет ошибка в "else".
Далее, как научить скрипт тыкать не по заранее заданным координатам, а в точки, чуть пониже искомых рисунков? на 15 пикселей ниже? Вот допустим у меня стоит 15 домиков, одни уже сделали деньги, а другие ещё нет. Надо чтобы он протыкал именно по тем, которые сделали. Просто я частенько двигаю карту города как мне вздумается и домики естественно оказываются не в тех координатах, которые я им задавал изначально...
Прошу прощения за глупые вопросы, но наглядно понятней...перечитал соответствующие темы, но если бы было видео с "рассусоливаниями" для таких как я, мне было бы легче...
Заранее спасибо за ваш труд |
|
|
Kibor |
Отправлено: 11 Мая, 2015 - 15:54:10
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Цитата: if ()
{
}
else
{
}
Цитата: if ()
{
}
pause
else
{
} |
|
|
777J0KeR777 |
Отправлено: 11 Мая, 2015 - 17:55:46
|
Наблюдатель
Покинул форум
Сообщений всего: 42
Дата рег-ции: Июнь 2014
Репутация: 0
|
Такс, попробовал сделать чтобы скрипт сам нажимал на нужные домики, т.е. находил картинку (деньги над домами), спускался ниже и нажимал на дом. Выдаёт ошибку(
CODE:win w=window ("Forge of Empires - Mozilla Firefox", "MozillaWindowClass", -1);
int Image_0[19][22];
loadimage (#Image_0[0][0], "J:\kibor\Новая папка\денюжки.bmp");
int PosX;int PosY;
tt:
if (findimage (1, #Image_0[0][0], -1, #PosX, #PosY, 0, 0, 1280, 992, -1)>=1)
{
mouse(LEFT, x[0]+loadimage(#Image[0][0])/2, y[0]+loadimage(#Image[0][0])/2-50, 0, -1);
}
goto tt;
В чём мои ошибки? |
|
|
Kibor |
Отправлено: 11 Мая, 2015 - 19:24:00
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
777J0KeR777 пишет: win w=window ("Forge of Empires - Mozilla Firefox", "MozillaWindowClass", -1);
int Image_0[19][22];
loadimage (#Image_0[0][0], "J:\kibor\Новая папка\денюжки.bmp");
int PosX;int PosY;
tt:
if (findimage (1, #Image_0[0][0], -1, #PosX, #PosY, 0, 0, 1280, 992, -1)>=1)
{
mouse(LEFT, x[0]+loadimage(#Image[0][0])/2, y[0]+loadimage(#Image[0][0])/2-50, 0, -1);
}
goto tt;
????????????????????????????????.............????????? |
|
|
Kibor |
Отправлено: 11 Мая, 2015 - 20:00:15
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
777J0KeR777 пишет: Ну надеюсь так будет понятней:
да и так понятно что хотелось. только не понятно чего вместо imagewidth imageheight вписано loadimage. что и выделил обратив на них внимание. ну и x[0] y[0] не понятно.
Цитата: win w=window ("Forge of Empires - Mozilla Firefox", "MozillaWindowClass", -1);
int Image_0[19][22];
loadimage (#Image_0[0][0], "J:\kibor\Новая папка\денюжки.bmp");
int PosX;int PosY;
tt:
if (findimage (1, #Image_0[0][0], -1, #PosX, #PosY, 0, 0, 1280, 992, -1)>=1)
{
mouse(LEFT, PosX+imagewidth(#Image[0][0])/2, PosY+imageheight(#Image[0][0])/2, 0, -1);
sleep(500);
}
sleep(10);
goto tt; |
|
|
Kibor |
Отправлено: 11 Мая, 2015 - 20:26:23
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
777J0KeR777 пишет: win w=window ("Forge of Empires - Mozilla Firefox", "MozillaWindowClass", -1);
int Image_0[19][22];
loadimage (#Image_0[0][0], "J:\kibor\Новая папка\денюжки.bmp");
int PosX;int PosY;
tt:
if (findimage (1, #Image_0[0][0], -1, #PosX, #PosY, 0, 0, 1280, 992, -1)>=1)
{
mouse(LEFT, PosX+imagewidth(#Image??????????[0][0])/2, PosY+imageheight(#Image????????[0][0])/2, 0, -1);
sleep(500);
}
sleep(10);
goto tt;
невнимательность это |
|
|
|