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

Страниц (13): « 1 [2] 3 4 5 6 7 8 9 ... » В конец
 

11. Barabachka - 30 Сентября, 2013 - 08:19:00 - перейти к сообщению
Соскринил я свою табличку
моя табличка
Ваша табличка
Смотрю что там есть динимическое изображение и название мобов. Решил что нужно залить это, и залил в паинте черным, оставил только то что у вас на изображении.
В игре не прокатило, пишет что не найден в игре рисунок.
Заменил на Ваше изображение и сразу все пошло.
Ваш секрет приготовления изображения?
Рисунки не коректны, забыл что добавляет изображение сайт, но разница Вам будет понятна
12. Kibor - 30 Сентября, 2013 - 08:52:56 - перейти к сообщению
Не пошло потому что в скрипте выделено памяти под рисунок 166 39. int Tab_Vid[166][39];
Ваш рисунок больше. Ошибка. Смотрим тему эту.

Рисунки все делаются через встроенный редактор, а не паинт. так проще и надежнее.

Выделили моба в игре, перешли на вкладку Графика в Кибор, мышь на игру и нажали Ctrl+Shift+S, свернули Кибор.
Нажали Ctrl+Shift+A (запустить фильтр динамики.) Побегали. Нажали Ctrl+Shift+A (остановить фильтр динамики.)
Развернуть Кибор. Видим все пикселя что динамичные красные.
Теперь аналогично этому видео выделяем некоторые участки таблички, которые не имеют красный цвет. Полоску хп не стоит выделять. Нажимаем правую кнопку мыши и сохраняем рисунок. Фоновый цвет сам зальет все не выделенное.
Автоматически получаем функцию загрузки изображения и поиска.
13. Barabachka - 30 Сентября, 2013 - 09:11:34 - перейти к сообщению
 Kibor пишет:
Не пошло потому что в скрипте выделено памяти под рисунок 166 39. int Tab_Vid[166][39];

Вот про размер я не забыл, а редактором наверно криво воспользовался Закатив глазки
(Добавление)
Да вы кудесник товарищ Kibor!
У меня просто куча идей появилась. Только когда их реализовывать хз.
14. Barabachka - 30 Сентября, 2013 - 11:40:37 - перейти к сообщению
Халп! Что-то с кодом. Прошу вас глянуть, этот момент он пролетает
CODE:
function Ataka()//Бой моба когда он в таргете. Заодно проверяется или это моб и есть ли у него XP
{
if (getcolor(P_T_X[0]+18, P_T_Y[0]+22)==1251183 && getcolor(P_T_X[0], P_T_Y[0]+37)==11057346 && getcolor(P_T_X[0]+1, P_T_Y[0]+37)==7637144 && getcolor(P_T_X[0]+1, P_T_Y[0]+38)==11649225 && getcolor(P_T_X[0]+165, P_T_Y[0]+22)==1251183);//Если моб в таргете не убит и нет по нему дамага.
{
Clic_Mouse(Fk_X[1], Fk_Y[1]);//Жмем F1 атака
sleep(50);
ypor=0;//Обнулить счетчик циклов за которые моб должен быть убит
b: if (getcolor(P_T_X[0]+18, P_T_Y[0]+22)==1251183 && getcolor(P_T_X[0], P_T_Y[0]+37)==11057346 && getcolor(P_T_X[0]+1, P_T_Y[0]+37)==7637144 && getcolor(P_T_X[0]+1, P_T_Y[0]+38)==11649225);//Если моб в таргете и не убит
{
ypor++;//Увеличиваем счетчик циклов боя моба
if (ypor>4)==(getcolor(P_T_X[0]+18, P_T_Y[0]+22)==1251183 && getcolor(P_T_X[0], P_T_Y[0]+37)==11057346 && getcolor(P_T_X[0]+1, P_T_Y[0]+37)==7637144 && getcolor(P_T_X[0]+1, P_T_Y[0]+38)==11649225 && getcolor(P_T_X[0]+165, P_T_Y[0]+22)==1251183);//Если моб не убит более чем за 4 цикла и небыло дамага по нему.
{
Clic_Mouse(Zak_T_X, Zak_T_Y);//Снимаем таргет
ypor=0;
return 2;//Возвращием 2. Поиск дальше другим алгоритмом. Выход с перебора
}
Clic_Mouse(Fk_X[1], Fk_Y[1]); //Жмем F1 атака
sleep(rand(1300, 1400));//Ждем
goto b;//Идем назад проверять наличие тиблички моба в таргете с первым красным пикселем его XP.
}
return 1;//Возвращием 1. Удачно выполненная функция. Программа перейдет в начало.
}
return 0;//Возвращием 0. Признак провала. Будем перебирать дальше.
}

(Добавление)
А здесь зависает на F6
CODE:
function Poisk_Target()//Искать мобов next, перебор макросов.
{
sleep(200);
Clic_Mouse(Fk_X[7], Fk_Y[7]);//Пытаемся взять в таргет ближнего
sleep(rand(300, 400));
if (getcolor(P_T_X[0]+18, P_T_Y[0]+22)==1251183 && getcolor(P_T_X[0], P_T_Y[0]+37)==11057346 && getcolor(P_T_X[0]+1, P_T_Y[0]+37)==7637144 && getcolor(P_T_X[0]+1, P_T_Y[0]+38)==11649225)==Clic_Mouse(Fk_X[7], Fk_Y[7]);
{
if (Ataka()==1){sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]); sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]); sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]);); return 1;}//Если взяли , атаковали и убили
else
{
Clic_Mouse(Fk_X[5], Fk_Y[5];//Пытаемся взять в таргет макрос
sleep(rand(300, 400));
if (Ataka()==1){sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]); sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]); sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]);); return 1;}//Если взяли , атаковали и убили
}
}
else
{
Clic_Mouse(Fk_X[6], Fk_Y[6];//Пытаемся взять в таргет макрос
sleep(rand(300, 400));
if (Ataka()==1){sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]); sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]); sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]);); return 1;}//Если взяли , атаковали и убили
}
else
{
Clic_Mouse(Fk_X[8], Fk_Y[8];//Пытаемся взять в таргет макрос
sleep(rand(300, 400));
if (Ataka()==1){sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]); sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]); sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]);); return 1;}//Если взяли , атаковали и убили
}
else
{
Clic_Mouse(Fk_X[9], Fk_Y[9];//Пытаемся взять в таргет макрос
sleep(rand(300, 400));
if (Ataka()==1){sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]); sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]); sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]);); return 1;}//Если взяли , атаковали и убили
}
return 0;
}
15. Kibor - 30 Сентября, 2013 - 12:07:03 - перейти к сообщению
 Barabachka пишет:
function Ataka()//Бой моба когда он в таргете. Заодно проверяется или это моб и есть ли у него XP
{
if (getcolor(P_T_X[0]+18, P_T_Y[0]+22)==1251183 && getcolor(P_T_X[0], P_T_Y[0]+37)==11057346 && getcolor(P_T_X[0]+1, P_T_Y[0]+37)==7637144 && getcolor(P_T_X[0]+1, P_T_Y[0]+38)==11649225 && getcolor(P_T_X[0]+165, P_T_Y[0]+22)==1251183);//Если моб в таргете не убит и нет по нему дамага.
{
Clic_Mouse(Fk_X[1], Fk_Y[1]);//Жмем F1 атака
sleep(50);
ypor=0;//Обнулить счетчик циклов за которые моб должен быть убит
b: if (getcolor(P_T_X[0]+18, P_T_Y[0]+22)==1251183 && getcolor(P_T_X[0], P_T_Y[0]+37)==11057346 && getcolor(P_T_X[0]+1, P_T_Y[0]+37)==7637144 && getcolor(P_T_X[0]+1, P_T_Y[0]+38)==11649225);//Если моб в таргете и не убит
{
ypor++;//Увеличиваем счетчик циклов боя моба
if (ypor>4)==(getcolor(P_T_X[0]+18, P_T_Y[0]+22)==1251183 && getcolor(P_T_X[0], P_T_Y[0]+37)==11057346 && getcolor(P_T_X[0]+1, P_T_Y[0]+37)==7637144 && getcolor(P_T_X[0]+1, P_T_Y[0]+38)==11649225 && getcolor(P_T_X[0]+165, P_T_Y[0]+22)==1251183);//Если моб не убит более чем за 4 цикла и небыло дамага по нему.
{
Clic_Mouse(Zak_T_X, Zak_T_Y);//Снимаем таргет
ypor=0;
return 2;//Возвращием 2. Поиск дальше другим алгоритмом. Выход с перебора
}
Clic_Mouse(Fk_X[1], Fk_Y[1]); //Жмем F1 атака
sleep(rand(1300, 1400));//Ждем
goto b;//Идем назад проверять наличие тиблички моба в таргете с первым красным пикселем его XP.
}
return 1;//Возвращием 1. Удачно выполненная функция. Программа перейдет в начало.
}
return 0;//Возвращием 0. Признак провала. Будем перебирать дальше.
}




 Barabachka пишет:
function Poisk_Target()//Искать мобов next, перебор макросов.
{
sleep(200);
Clic_Mouse(Fk_X[7], Fk_Y[7]);//Пытаемся взять в таргет ближнего
sleep(rand(300, 400));
if (getcolor(P_T_X[0]+18, P_T_Y[0]+22)==1251183 && getcolor(P_T_X[0], P_T_Y[0]+37)==11057346 && getcolor(P_T_X[0]+1, P_T_Y[0]+37)==7637144 && getcolor(P_T_X[0]+1, P_T_Y[0]+38)==11649225)==Clic_Mouse(Fk_X[7], Fk_Y[7]);
{
if (Ataka()==1){sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]); sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]); sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]);); return 1;}//Если взяли , атаковали и убили
else
{
Clic_Mouse(Fk_X[5], Fk_Y[5];//Пытаемся взять в таргет макрос
sleep(rand(300, 400));
if (Ataka()==1){sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]); sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]); sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]);); return 1;}//Если взяли , атаковали и убили
}
}
else
{
Clic_Mouse(Fk_X[6], Fk_Y[6]нет скобки;//Пытаемся взять в таргет макрос
sleep(rand(300, 400));
if (Ataka()==1){sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]); sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]); sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]);); return 1;}//Если взяли , атаковали и убили
}
else
{
Clic_Mouse(Fk_X[8], Fk_Y[8];//Пытаемся взять в таргет макрос
sleep(rand(300, 400));
if (Ataka()==1){sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]); sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]); sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]);); return 1;}//Если взяли , атаковали и убили
}
else
{
Clic_Mouse(Fk_X[9], Fk_Y[9]скобки нет;//Пытаемся взять в таргет макрос
sleep(rand(300, 400));
if (Ataka()==1){sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]); sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]); sleep(rand(350, 450)); Clic_Mouse(Fk_X[4], Fk_Y[4]);); return 1;}//Если взяли , атаковали и убили
}
return 0;
}


Красным синтаксические ошибки.
Пишите по строчке одной, будет легче отследить. Потом как отладите код можно в одну записать.
16. Barabachka - 01 Октября, 2013 - 13:09:27 - перейти к сообщению
Появился такой вопросик.
Прочел вот это Ваше пособие
Нашол в вашем скрипте вот такое
CODE:
function Ataka()//Бой моба когда он в таргете. Заодно проверяется или это моб и есть ли у него XP
{
if (getcolor(P_T_X[0]+18, P_T_Y[0]+22)==1251183 && getcolor(P_T_X[0], P_T_Y[0]+37)==11057346 && getcolor(P_T_X[0]+1, P_T_Y[0]+37)==7637144 && getcolor(P_T_X[0]+1, P_T_Y[0]+38)==11649225)//Если моб в таргете и не убит
{
Clic_Mouse(Fk_X[1], Fk_Y[1]);//Жмем F1 атака
sleep(50);
ypor=0;//Обнулить счетчик циклов за которые моб должен быть убит
b: if (getcolor(P_T_X[0]+18, P_T_Y[0]+22)==1251183 && getcolor(P_T_X[0], P_T_Y[0]+37)==11057346 && getcolor(P_T_X[0]+1, P_T_Y[0]+37)==7637144 && getcolor(P_T_X[0]+1, P_T_Y[0]+38)==11649225)//Если моб в таргете и не убит
{
ypor++;//Увеличиваем счетчик циклов боя моба
if (ypor>10)//Если моб не убит более чем за 15 сек.
{
Clic_Mouse(Zak_T_X, Zak_T_Y);//Снимаем таргет
ypor=0;
Cikl();// Пытаемся выйти со ступора сдвигом
return 2;//Возвращием 2. Поиск дальше другим алгоритмом. Выход с перебора
}
Clic_Mouse(Fk_X[1], Fk_Y[1]); //Жмем F1 атака
sleep(rand(2000, 2100));//Ждем
goto b;//Идем назад проверять наличие тиблички моба в таргете с первым красным пикселем его XP.
}
return 1;//Возвращием 1. Удачно выполненная функция. Программа перейдет в начало.
}
return 0;//Возвращием 0. Признак провала. Будем перебирать дальше.
}

Вот эта строка не до конца мне понятна
CODE:
return 2;//Возвращием 2. Поиск дальше другим алгоритмом. Выход с перебора

return 2;// это выход полностью с "function Ataka()" и переход на дальнейшую функцию зацикленую в теле программы?
Или может переход в дальнейшую строку функции в которой использовалась "function Ataka()" ?
(Добавление)
Да, это с скрипта бота La2 для Windows 7 64.
17. Kibor - 01 Октября, 2013 - 14:15:56 - перейти к сообщению
Просто return - выход из функции и переход на следующую строку.
Если после return стоит возвращаемое значение - выход из функции назад в строку которая вызывала функцию. Только вместо вызываемой функции становится то что она возвращает после return.

Пояснение:
Если return возвращает что то:
CODE:
int a=5;
int b=7;

int c=summa();
messagebox (c);

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

function summa()
{
return a+b;
}


то после возврата код будет выполняться с этой строи и будет иметь такой вид:

CODE:
int c=a+b;
messagebox (c);


А если не возвращает (после return нет ничего), то сразу выполнится строка:
CODE:
messagebox (c);
18. Barabachka - 01 Октября, 2013 - 15:47:25 - перейти к сообщению
Упёрся в стенку принцип вроде как ясен но не пойму как работает в моем случае Упёрся в стенку
19. Kibor - 01 Октября, 2013 - 18:57:34 - перейти к сообщению
Тут я не знаю. Скажу только что в чужом коде сложно разобраться, особенно если не все понятно. Лучше понять принцип работы Кибор и его языка и построить свой код.
20. Nikolo12 - 02 Октября, 2013 - 01:32:09 - перейти к сообщению
Поясните по данному скрипту
 Цитата:
if (getcolor(P_T_X[0]+18, P_T_Y[0]+22)==1251183 && getcolor(P_T_X[0], P_T_Y[0]+37)==11057346 && getcolor(P_T_X[0]+1, P_T_Y[0]+37)==7637144 && getcolor(P_T_X[0]+1, P_T_Y[0]+38)==11649225)//Если моб в таргете и не убит

идет проверка цвета полосы НР моба в нескольких точках одновременно?
 Цитата:
Clic_Mouse(Fk_X[1], Fk_Y[1]);//Жмем F1 атака

Вызов процедуры Clic_Mouse(); ?
А если просто key(F1); ?

Powered by ExBB FM 1.0 Final