Покинул форум
Сообщений всего: 88
Дата рег-ции: Сент. 2013
Репутация: 3
незнаю может я чтото недопонял но примерно так
(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]- а как это понять?
Покинул форум
Сообщений всего: 88
Дата рег-ции: Сент. 2013
Репутация: 3
вот и набросал примерно что нужно, поправьте и растолкуйте пожалуйсто, заранее благодарен
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;
//++++++++++++++++++++++++++++++++++++++++++++++
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;
}
//++++++++++++++++++++++++++++++++++++++++++++++
//////////////////////////////////////
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(); пока не написана)
Kibor
Отправлено: 14 Октября, 2013 - 00:32:12
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013 Откуда: Одесса
Репутация: 357
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;
goto, по английски идти.
По нашему когда программа дойдет до goto, она воспримет это как (да пошел ты... к метке которая после goto)
Вот код по поводу if else
int a=5;
if (a==5)messagebox("A");
else goto j;
messagebox("--");
j:;
Экспериментируйте с a и поймете. Уберите в процессе экспериментов else goto j;
Kote_UA
Отправлено: 16 Октября, 2013 - 08:26:59
Прохожий
Покинул форум
Сообщений всего: 18
Дата рег-ции: Окт. 2013
Репутация: 0
перечитывал справку, форум, но так и не смог понять что делает return;
капец я нуб) пару дней эксперементировал с кодами, но...
барабашка ты понял? роскажи на языке новичка))) (Добавление)
уважаемый кибор обьясните пожалуйста как то доходчевее)
вот кусок кода
CODE:
k: if (poisk()==1)
{
if (kill()==1)
{
if (vokry()==1)goto k;
goto r;
}
}
r: dalee();
goto k;
, и все же не понимаю зачем return 0;? я так понимаю если return 0; то значит
CODE:
k: if (poisk()==1)
не выполнился и он равен не ==1 а ==0, и выполняется
CODE:
r: dalee();
верно?
я эксперементировал но ничего не добился, видать коряво код писал... помогите розобраться пожалуйста
Kibor
Отправлено: 16 Октября, 2013 - 12:34:48
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013 Откуда: Одесса
Репутация: 357
Чуть позже все объясню подробно.
Barabachka
Отправлено: 16 Октября, 2013 - 19:27:37
Участник
Покинул форум
Сообщений всего: 88
Дата рег-ции: Сент. 2013
Репутация: 3
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;}
В переменных уже обьявлен массив, массив как на окна так и на ячейки 1 строки. Мне в коде нужно будет все 4 строки быстрого доступа да еще и на 3х окнах. Я пока знаю про массив "Fk_X[12][1]" такого типа. Как можно дать массив еще и на окна?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.