Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Помогите написать код

Страниц (2): [1] 2 »
 

1. anarchy - 23 Ноября, 2013 - 12:53:21 - перейти к сообщению
Я хочу написать простой бот к одной игре. Тут есть квест со сдачей бутылок. Есть 2 строки в диалоге, которые меняются местами в случайном порядке. Мне надо чтобы кликер нажимал именно на Вот бутыль. Нужно написать код, я в программировании полный ноль. Спасибо всем кто готов помочь.(для просмотра ссылки Вам необходимо авторизоваться) картинка тут
2. Kibor - 23 Ноября, 2013 - 17:40:20 - перейти к сообщению
Делается примерно такой рисунок:


Пишется примерно такой код:
CODE:
int Image_0[63][7];
loadimage (#Image_0[0][0], "C:\Image_0.bmp");

int PosX_0, PosY_0;

a: if (findimage(1, #Image_0[0][0], 0, #PosX_0, #PosY_0, 0, 0, 1366, 768, -1)==1)
{
mouse(LEFT, PosX_0+20, PosY_0+2);
sleep(1000);
goto a;
}
sleep(100);
goto a;


Все примерно, так как надо узнать какие части надписи не являются динамичными, то есть не зависят от фона. Так же по этому скрину нельзя сделать рисунок...
3. rev41k - 25 Ноября, 2013 - 17:17:22 - перейти к сообщению
а как сделать так, чтобы поиск шёл по близжайшей точки от цента экрана. Т.е. задаем центр экрана , задаем координаты окна и чтобы поиск нашей заданной картинки совершался от центра экрана к краям (а то мне кажется , что по умолчанию поиск осуществляется от левого верхнего угла).
Заранее спасибо!
4. Kibor - 25 Ноября, 2013 - 17:49:38 - перейти к сообщению
Ага. Поиск с левого верхнего угла идет.
Но есть функция сортировки найденных координат, которые упорядочивают массив координат от ближайших к дальним относительно нужной координаты.

CODE:
int Image_0[63][25];
loadimage (#Image_0[0][0], "C:\Image_0.bmp");

int PosX_0[512], PosY_0[512];

int k=if (findimage(-1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 1366, 768, -1);

sort(600, 370, #PosX_0[0], #PosY_0[0], k);


0, 0, 1366, 768 - координаты поиска
600, 370 - относительно этих координат будут упорядочены массивы координат

в PosX_0[0] PosY_0[0] ближайшие будут
в PosX_0[1] PosY_0[1] следующий по растоянию
и т.д.
5. rev41k - 25 Ноября, 2013 - 18:15:55 - перейти к сообщению
Извините за наглость голова совсем уже не варит... я не так силен в программировании и если бы вам не было сложно объединить 1-ый и 2-ой ваши примеры в теме!?
Т.е. чтобы искалась картинка к примеру от центра экрана к краям и после первого нахождения сразу же кликала по ней.

Вопрос , а возможно сделать так, чтобы после того как бот найдет мою картинку_0 и кликнет по ней , то чтобы искал другую картинку и пока не найдет её(картинку_1) не кликнет по вновь по карнтинке_0. или это можно реализовать только через goto !?
Заранее спасибо за ответ и за скрипт!!! Буду очень вам признателен.
6. Kibor - 25 Ноября, 2013 - 18:44:24 - перейти к сообщению
Код я то приведу... Но прийдется хелп почитать...

Вот код 1:
CODE:
int Image_0[63][25];
loadimage (#Image_0[0][0], "C:\Image_0.bmp");
int PosX_0[512], PosY_0[512];

int Image_1[55][22];
loadimage (#Image_1[0][0], "C:\Image_1.bmp");
int Xx, Yy;

int k;

a: k=findimage(-1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 1366, 768, -1);
if (k>0)
{
sort(600, 370, #PosX_0[0], #PosY_0[0], k);
mouse(LEFT, PosX_0[0], PosY_0[0]);
sleep(500);

z: if (findimage(1, #Image_1[0][0], 0, #Xx, #Yy, 0, 0, 1366, 768, -1)==0){sleep(50); goto z;}

mouse(LEFT, Xx, Yy);
sleep(500);
}
goto a;



Вот код второй, в котором делается то же, но с правильной структурой программы. Так как это пример простой и в первом случае можно потом запутаться, а с этой структурой ясно все...
CODE:
int Image_0[63][25];
loadimage (#Image_0[0][0], "C:\Image_0.bmp");
int PosX_0[512], PosY_0[512];

int Image_1[55][22];
loadimage (#Image_1[0][0], "C:\Image_1.bmp");
int Xx, Yy;

a: if (poisk_Image_0()==1)
{
poisk_Image_1();
}
goto a;


function poisk_Image_0()
{
int k=findimage(-1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 1366, 768, -1);
if (k>0)
{
sort(600, 370, #PosX_0[0], #PosY_0[0], k);
mouse(LEFT, PosX_0[0], PosY_0[0]);
sleep(500);
return 1;
}
return 0;
}



function poisk_Image_1()
{
z: if (findimage(1, #Image_1[0][0], 0, #Xx, #Yy, 0, 0, 1366, 768, -1)==0){sleep(50); goto z;}
mouse(LEFT, Xx, Yy);
sleep(500);
}


Не тестировал но вроде нет описок...
7. rev41k - 25 Ноября, 2013 - 19:28:06 - перейти к сообщению
1-ый пример не рабочий.
2-ой в sort удалил переменную "k" и заработал, только поиск 1-ой картинки - вторую не хочет находить...
И скрипт так и не ищет близжайшую картинку от заданных координат в sort(600, 370, #PosX_0[0], #PosY_0[0]);
8. Kibor - 25 Ноября, 2013 - 20:09:18 - перейти к сообщению
Все таки были описки...
В первом:
 Цитата:
a: k=if (findimage(-1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 1366, 768, -1);


Во втором вместо:
 Цитата:
if (findimage(-1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 1366, 768, -1)>0)
{
sort(600, 370, #PosX_0[0], #PosY_0[0], k);


надо

 Цитата:
int k=findimage(-1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 1366, 768, -1);
if (k>0)
{
sort(600, 370, #PosX_0[0], #PosY_0[0], k);


Исправил.

 rev41k пишет:
в sort удалил переменную "k"

A это зря... sort
9. rev41k - 25 Ноября, 2013 - 20:17:25 - перейти к сообщению
Спасибо большое!!! Завтра посмотрю, игра пока закрыта на профилактические работы ...


rev41k пишет:
в sort удалил переменную "k"

A это зря... sort

я в программировании дуб дубом ... просто посмотрел , что переменная не была объявлена или что-нибудь ей присвоено и поэтому решил найти легчайший путь!
СПАСИБО!!!
10. rev41k - 26 Ноября, 2013 - 05:10:26 - перейти к сообщению
не работают скрипты...
первый с изменениями находит только вторую картинку , а второй скрипт только первую (((
(Добавление)
 rev41k пишет:
не работают скрипты...
первый с изменениями находит только вторую картинку , а второй скрипт только первую (((


Прошу прощенья первый находит по одному разу картинки кликает по ним и перестает дальше работать... нужно чтобы он определил есть ли 1-я картинка если да -> клик по ней и начинается поиск второй картинки. По второй кликаем столько раз пока картинка есть на экране... если ей уже нету снова ищем первую картинку находим один раз и снова всё по кругу....

По поводу второго скрипта я не понимаю в чём там проблема... он так и находит только первое изображение, второе не пытается даже искать.

Powered by ExBB FM 1.0 Final