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

Страниц (13): В начало « ... 4 5 6 7 [8] 9 10 11 12 ... » В конец
 

71. Barabachka - 13 Октября, 2013 - 04:01:20 - перейти к сообщению
незнаю может я чтото недопонял но примерно так
(kompot()==1);
if (find()==1){drink(); sleep(); return 1;}
else
{(vLarek()==1);}
если чесно както криво получаетсо, нехватает условий и вапще не ясно что нужно делать
В такой ситуации ясно что думает Kibor когда смотрит на очередной вопрос пользователя
(Добавление)
В скриптах можно использовать масивы переменных. Объявляются они так:
int per[99999], per1[50][100];
Это из учебника
per[99999]- это колличество переменных? вместо 99999 переменных 1 ?
per1[50][100]- а как это понять?
72. Barabachka - 13 Октября, 2013 - 07:20:07 - перейти к сообщению
вот и набросал примерно что нужно, поправьте и растолкуйте пожалуйсто, заранее благодарен
CODE:
//тут впринципе все нужные примеры что нужны будут для написания бота

win w=window ("Program Manager", "Progman", -1);//рабочий стол
int Image_0[9][9];//размер картинки
int Akt_Okn_1[89, 124];//нашол с помощью Кибора ctrl+shift+s-координаты экранные на углу рамки 1-вого окна
int Akt_Okn_2[208, 125];//нашол с помощью Кибора ctrl+shift+s-координаты экранные на углу рамки 2-вого окна
int PosX_0[2], PosY_0[2];//так мне показалось нужно обьявить переменную координат рисунка
int Px[2], Py[2];//координата нажатия мышки даблклик
int Pozicion_Image[2]//мне показалось как-то так(вабще не знаю зачем это написал)

sleep(1000);
//++++++++++++++++++++++++++++++++++++++++++++++++++++
//Загрузка рисунков
if (Load_Image()==-1){messagebox("Не найдены рисунки в C:\L2 online."); goto error;}
if (Pozicion_Image()==-1) goto error;//Расчет координат используемых объектов
sleep(1000);


loop:
activate(w);
//хотел написать чтоб активировалось окно 1 и сделал 2-ной клик в координатах Px[1], Py[1]
//после активировать 2е окно и сделать 2ной клик в тех-же координатах но во втором окне

goto loop;

error:;



//+++++++++++++++++++++++++++++++++++++++++++++=======
function Load_Image()//Грузятся рисунки
{
if (loadimage (#Image_0[0][0], "C:\L2_online_win_7_64\Image_0.bmp")==-1) return -1;

return 0;
}
//++++++++++++++++++++++++++++++++++++++++++++++

//++++++++++++++++++++++++++++++++++++++++++++++
function Pozicion_Image(int Pozicion_Image[2])//толком даже непойму как назвать это
{
//тут непойму как сделать код просчета координат для 2х окон
int xe, ye, color;
getdisplay(color, xe,ye);//Знать разрешение экрана
if (findimage(1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 1920, 1080, -1)==0){messagebox("не найден рисунок"); return -1;}
Px=PosX_0[0]+4; Py=PosY_0[0]+4;
return 0;
}
//++++++++++++++++++++++++++++++++++++++++++++++

бот будет писаться под мышку на руоф, ла2
73. Kibor - 13 Октября, 2013 - 10:56:54 - перейти к сообщению
Завтра наверно растолкую подробно с кодом..
74. Kote_UA - 13 Октября, 2013 - 15:56:12 - перейти к сообщению
movee



CODE:
win w=window (-1, "Chrome_RenderWidgetHostHWND", window ("Kote-UA .: Lineage II :. - Google Chrome", "Chrome_WidgetWin_1", -1));
activate w;


k: poisk();
kill();
vokry();
if(dalee()==0)goto k;
goto k;




//////////////////////////////////////
function time {sleep(3000)}



function poisk(int n){int mob[49][7];loadimage (#mob[0][0], "D:\L2\mob.bmp");
int x1[10];int y1[10];findimage(-1, #mob[0][0], 0, #x1[0], #y1[0], 0, 0, 1366, 643, -1);
mouse(LEFT,x1[0], y1[0]);time();}

function kill(){int ataka[14][14];loadimage (#ataka[0][0], "D:\L2\ataka.bmp");
int x2[10];int y2[10];findimage(-1, #ataka[0][0], 0, #x2[0], #y2[0], 0, 0, 1366, 643, -1);
mouse(LEFT,x2[0]+5, y2[0]+5);time();}

function vokry(){int prod[50][5];loadimage (#prod[0][0], "D:\L2\prod.bmp");
int x3[10];int y3[10];findimage(-1, #prod[0][0], 0, #x3[0], #y3[0], 0, 0, 1366, 643, -1);
mouse(LEFT,x3[0], y3[0]);time();}

function dalee(){int slstr[26][4];loadimage (#slstr[0][0], "D:\L2\slstr.bmp");
int xslstr[1];int yslstr[1];findimage(-1, #slstr[0][0], 0, #xslstr[0], #yslstr[0], 0, 0, 1366, 643, -1);
mouse(LEFT,xslstr[0], yslstr[0]);time();}



kibor прошу помощи, код и видео прилагаються, по идеи бот должен убить всех мобов на странице, если нет мобов нажать далее(след.страницу) но так как я второй день розбираюсь в сравнениях не могу понять как сделать это, из кода выполняеться poisk();
kill();
vokry();

когда доходит до dalee() (на следуйщую страницу) выполняеться, но если страницы нет кликает в верхний левый угол браузера,

и ще просто иногда жмет в верхний левый угол.

как заставить бота сначала убить всех мобов потом если нет мобов перейти на страницу далее, если нет далее выполнить другую функцию vgorod(); пока не написана)
75. Kibor - 13 Октября, 2013 - 16:32:12 - перейти к сообщению
Kote_UA ,
Комментировать код не буду... Так как уж очень много комментировать...
Лучше просто поправлю... То есть перепишу...
Не тестировал. Просто собрал логичный код из выше стоящего...

CODE:
int mob[49][7];
int ataka[14][14];
int prod[50][5];
int slstr[26][4];

int x1, y1;
int x2, y2;
int x3, y3;
int xslstr, yslstr;

win w=window (-1, "Chrome_RenderWidgetHostHWND", window ("Kote-UA .: Lineage II :. - Google Chrome", "Chrome_WidgetWin_1", -1));
activate (w);

load_Image();

k: if (poisk()==1)
{
if (kill()==1)
{
if (vokry()==1)goto k;
goto r;
}
}
r: dalee();
goto k;






//////////////////////////////////////



function poisk()
{
if (findimage(1, #mob[0][0], 0, #x1, #y1, 0, 0, 1366, 643, -1)==1)
{
mouse(LEFT,x1, y1);
sleep(3000);
return 1;
}
return 0;
}

function kill()
{
if (findimage(1, #ataka[0][0], 0, #x2, #y2, 0, 0, 1366, 643, -1)==1)
{
mouse(LEFT,x2+5, y2+5);
sleep(3000);
return 1;
}
return 0;
}

function vokry()
{
if (findimage(1, #prod[0][0], 0, #x3, #y3, 0, 0, 1366, 643, -1)==1)
{
mouse(LEFT,x3, y3);
sleep(3000);
return 1;
}
return 0;
}


function dalee()
{
if (findimage(1, #slstr[0][0], 0, #xslstr, #yslstr, 0, 0, 1366, 643, -1)==1)
{
mouse(LEFT,xslstr, yslstr);
sleep(3000);
}
}






function load_Image()
{
loadimage (#mob[0][0], "D:\L2\mob.bmp");
loadimage (#ataka[0][0], "D:\L2\ataka.bmp");
loadimage (#prod[0][0], "D:\L2\prod.bmp");
loadimage (#slstr[0][0], "D:\L2\slstr.bmp");
}
76. Kote_UA - 13 Октября, 2013 - 17:32:31 - перейти к сообщению
немного осенило но,
CODE:
{
if (vokry()==1)goto k;
goto r;
}


goto r; работает как else? то есть елсе не обезательно ставить?

и все таки не пойму как работает return 0; ((
77. Kibor - 13 Октября, 2013 - 23:30:07 - перейти к сообщению
 Kote_UA пишет:
е пойму как работает return 0; ((

http://kibor-bot.com/forum/topic...13124#1380813124
http://kibor-bot.com/forum/topic...54956#1380654956

goto, по английски идти.
По нашему когда программа дойдет до goto, она воспримет это как (да пошел ты... к метке которая после goto)

Вот код по поводу if else


int a=5;
if (a==5)messagebox("A");
else goto j;
messagebox("--");
j:;

Экспериментируйте с a и поймете. Уберите в процессе экспериментов else goto j;
78. Kote_UA - 16 Октября, 2013 - 00:26:59 - перейти к сообщению
перечитывал справку, форум, но так и не смог понять что делает return;
капец я нуб) пару дней эксперементировал с кодами, но...
барабашка ты понял? роскажи на языке новичка)))
(Добавление)
уважаемый кибор обьясните пожалуйста как то доходчевее)

вот кусок кода
CODE:
k: if (poisk()==1)
{
if (kill()==1)
{
if (vokry()==1)goto k;
goto r;
}
}
r: dalee();
goto k;






//////////////////////////////////////



function poisk()
{if (findimage(1, #mob[0][0], 0, #x1, #y1, 0, 0, 1366, 643, -1)==1)
{
mouse(LEFT,x1, y1);
t();
return 1;
}
return 0;
}



1) в теле функции poisk() есть return 1; доходя до него возврат идет к
CODE:
if (findimage(1, #mob[0][0], 0, #x1, #y1, 0, 0, 1366, 643, -1)==1)

или к
CODE:
k: if (poisk()==1)
, и все же не понимаю зачем return 0;? я так понимаю если return 0; то значит
CODE:
k: if (poisk()==1)
не выполнился и он равен не ==1 а ==0, и выполняется
CODE:
r: dalee();
верно?

я эксперементировал но ничего не добился, видать коряво код писал... помогите розобраться пожалуйста
79. Kibor - 16 Октября, 2013 - 04:34:48 - перейти к сообщению
Чуть позже все объясню подробно.
80. Barabachka - 16 Октября, 2013 - 11:27:37 - перейти к сообщению
CODE:
int Panel_kn[24][14];//Рисунок панели быстрого доступа
int Panel_kn_X[2], Panel_kn_Y[2];//Координаты панели быстрого доступа
int Fk_X[13], Fk_Y[13];//Массив координат 1й строки

//=========================================================
function Pozicion_Image()//Узнать позиции рисунков на экране для обозначения координат окна игры и необходимых элементов для работы бота
{

if (findimage(2, #Panel_kn[0][0], 0, #Panel_kn_X[0], #Panel_kn_Y[0], 0, 0, 1920, 1080, -1)==0){messagebox("Не найден в игре рисунок панели быстрого доступа."); return -1;}

//Координаты кнопок панели быстрого доступа
Fk_X[1]=Panel_kn_X[0]+45; Fk_Y[1]=Panel_kn_Y[0]+24;
Fk_X[2]=Panel_kn_X[0]+84; Fk_Y[2]=Panel_kn_Y[0]+24;
Fk_X[3]=Panel_kn_X[0]+122; Fk_Y[3]=Panel_kn_Y[0]+24;
Fk_X[4]=Panel_kn_X[0]+158; Fk_Y[4]=Panel_kn_Y[0]+24;
Fk_X[5]=Panel_kn_X[0]+200; Fk_Y[5]=Panel_kn_Y[0]+24;
Fk_X[6]=Panel_kn_X[0]+240; Fk_Y[6]=Panel_kn_Y[0]+24;
Fk_X[7]=Panel_kn_X[0]+280; Fk_Y[7]=Panel_kn_Y[0]+24;
Fk_X[8]=Panel_kn_X[0]+313; Fk_Y[8]=Panel_kn_Y[0]+24;
Fk_X[9]=Panel_kn_X[0]+356; Fk_Y[9]=Panel_kn_Y[0]+24;
Fk_X[10]=Panel_kn_X[0]+395; Fk_Y[10]=Panel_kn_Y[0]+24;
Fk_X[11]=Panel_kn_X[0]+428; Fk_Y[11]=Panel_kn_Y[0]+24;
Fk_X[12]=Panel_kn_X[0]+467; Fk_Y[12]=Panel_kn_Y[0]+24;

return 0;
}

В переменных уже обьявлен массив, массив как на окна так и на ячейки 1 строки. Мне в коде нужно будет все 4 строки быстрого доступа да еще и на 3х окнах. Я пока знаю про массив "Fk_X[12][1]" такого типа. Как можно дать массив еще и на окна?

Powered by ExBB FM 1.0 Final