незнаю может я чтото недопонял но примерно так
(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]- а как это понять?
71. Barabachka - 13 Октября, 2013 - 04:01:20 - перейти к сообщению
72. Barabachka - 13 Октября, 2013 - 07:20:07 - перейти к сообщению
вот и набросал примерно что нужно, поправьте и растолкуйте пожалуйсто, заранее благодарен
бот будет писаться под мышку на руоф, ла2
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;
}
//++++++++++++++++++++++++++++++++++++++++++++++
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
kill();
vokry();
когда доходит до dalee() (на следуйщую страницу) выполняеться, но если страницы нет кликает в верхний левый угол браузера,
и ще просто иногда жмет в верхний левый угол.
как заставить бота сначала убить всех мобов потом если нет мобов перейти на страницу далее, если нет далее выполнить другую функцию vgorod(); пока не написана)
CODE:
kibor прошу помощи, код и видео прилагаються, по идеи бот должен убить всех мобов на странице, если нет мобов нажать далее(след.страницу) но так как я второй день розбираюсь в сравнениях не могу понять как сделать это, из кода выполняеться poisk();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();}
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();}
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");
}
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 - перейти к сообщению
немного осенило но,
goto r; работает как else? то есть елсе не обезательно ставить?
и все таки не пойму как работает return 0; ((
CODE:
{
if (vokry()==1)goto k;
goto r;
}
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;
капец я нуб) пару дней эксперементировал с кодами, но...
барабашка ты понял? роскажи на языке новичка)))
(Добавление)
уважаемый кибор обьясните пожалуйста как то доходчевее)
вот кусок кода
1) в теле функции poisk() есть return 1; доходя до него возврат идет к
или к
я эксперементировал но ничего не добился, видать коряво код писал... помогите розобраться пожалуйста
капец я нуб) пару дней эксперементировал с кодами, но...
барабашка ты понял? роскажи на языке новичка)))
(Добавление)
уважаемый кибор обьясните пожалуйста как то доходчевее)
вот кусок кода
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;
}
{
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:
, и все же не понимаю зачем return 0;? я так понимаю если return 0; то значит k: if (poisk()==1)
CODE:
не выполнился и он равен не ==1 а ==0, и выполняется k: if (poisk()==1)
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;
}
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]" такого типа. Как можно дать массив еще и на окна?