Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Описание: Продолжение
Kibor
Отправлено: 04 Ноября, 2014 - 00:04:08
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8091
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Продолжение темы "Бот для Lineage 2. Обход фроста.".

Данный скрипт выложен для ознакомительных и учебных целей к программе Кибор.
С 17 сентября вопросы типа "почему не работает", "не находит картинки" и т.д. будут игнорироваться, так как эта тема имеет всю необходимую информацию для запуска бота.
Помощь будет оказываться только техническая, когда надо будет помочь разобраться с кодом.


Самый универсальный скрипт. Выложен 25 января 14. Смотрите видео как настроить. Читайте комментарии к нему.
Сам скрипт:
 Цитата:
//Бот для LIneage 2. Сделан в Кибор -(для просмотра ссылки Вам необходимо авторизоваться) //Обязательно смотреть прилагаемое видео настроек (для просмотра ссылки Вам необходимо авторизоваться)
int mob[3];//фки макросов
mob[0]=118; mob[1]=119; mob[2]=120;//фки макросов

int baf[3];//фки бафов
baf[0]=121; baf[1]=122; baf[2]=123;//фки бафов

int baf_time[3];//тут находится время бафов
baf_time[0]=120000; baf_time[1]=1200000; baf_time[2]=1200000;//тут находится время бафов

int baf_t[3];//тут находится счетчик время бафов
baf_t[0]; baf_t[1]; baf_t[2];//тут находится счетчик время бафов

int col_pix, X_pix, Y_pix;//Координаты и цвет первого пикселя в хп моба

int col_pix1, X_pix1, Y_pix1;//Координаты и цвет последнего пикселя в хп моба

int col_pix2, X_pix2, Y_pix2;//Координаты и цвет своего хп в месте если его будет мало

int k_mob=0, k_baf=0; //Счетчик
int N=0;//Счетчит мобов которые слили.

int error_tim=15000;//Это время давать на то что бы ударил по мобу от взятия в таргет - превысил - застрял (снять таргет)
int k_error_tim;//Это счетчик времени если перс за определенное время не добежал и не ударил (застрял)

int col, xek, yek;//цвет экрана и разрешение


nastroit();//Настройки определения точки пикселя начала хп моба
baf_start();//Бафы в начале

//Основной цикл бота //////////////////////////////////////////////////////////////////////////////
cikl: malo_xp();//Проверить или хп мало и банки пить

key(F4); //Ближенего моба в таргет взять
pause(rand(500, 1000)); //Пауза которую выдержать (раном от пол секунды до сек)

if (getcolor(X_pix, Y_pix)!=col_pix) //Если нет моба в таргете
{
cikl1: key(mob[k_mob]);//Нажать на макрос выбора моба по нику
k_mob++;//Увеличить номер макроса в котором /target ник-моба находится
if (k_mob==3)k_mob=0;//Если это третий номер макроса ника моба - перейти к первому
pause(rand(1000, 2000)); //Пауза которую выдержать (раном от секунды до двух)
}


if (getcolor(X_pix, Y_pix)==col_pix) //Если моб в таргете
{
malo_xp();//Проверить или хп мало и банки пить

bit1: k_error_tim=gettime();//Записать время текущее
bit: if (getcolor(X_pix, Y_pix)==col_pix) //Если моб в таргете
{

if (gettime()-k_error_tim>error_tim)//Если превысил время (застрял или долгий бой)
{
if (getcolor(X_pix1, Y_pix1)==col_pix1)//Усли моб целый (красный конец хп) значит застрял
{
key(ESCAPE);//Нажать Es (таргет снять)
pause(rand(200, 500));
goto cikl1;// топать на cikl1 (на этой метке строка которая берет другого моба - с другим ником)
}
}

malo_xp();//Проверить или хп мало и банки пить

key(F1); // атака моба
pause(rand(500, 1500));
key(F2); // атака моба скилом 1
pause(rand(500, 1500));
key(F3); // атака моба скилом 2
goto bit; //Идти на проверку или хп моба есть еще
}

pause(rand(100, 300));

malo_xp();//Проверить или хп мало и банки пить

if (getcolor(X_pix, Y_pix)==col_pix) goto bit1;//Если моб в таргете (он напал) - бить а не собирать лут

key(ESCAPE);//Нажать Es
pause(rand(100, 300));

keydown(F5);// собирать лут когда моб слит
pause(rand(2000, 3500));
keyup(F5);

N++;//Увеличить счетчик мобов
textout(0, X_pix, Y_pix+20, "Мобов слито "+format (N), 0);//Изменить счетчик мобов которые слились
}
bafi();//Бафы


goto cikl;//Цикл змкнем. идти на начало
////////////////////////////////////////////////////////////////////////////////////



function malo_xp()//Проверить или хп мало и банки пить
{
if (getcolor(X_pix2, Y_pix2)!=col_pix2)//Если надо банку выпить - хп мало
{
key(F6);
sleep(500);
}
}
////////////////////////////////////////////////////////////////////////////


function bafi()//Бафы в цикле
{
//Бафы
if (gettime()-baf_time[0]>baf_t[0])//Если время для этого бафа вышло
{
key(baf[0]);//F10
pause(rand(4000, 5000));//Пауза которую выдержать (рандом от 4 секунд до 5 секунд)
baf_t[0]=gettime();//Записываем текущее время
malo_xp();//Проверить или хп мало и банки пить
}

if (gettime()-baf_time[1]>baf_t[1])//Если время для этого бафа вышло
{
key(baf[1]);//F11
pause(rand(4000, 5000));//Пауза которую выдержать (рандом от 4 секунд до 5 секунд)
baf_t[1]=gettime();//Записываем текущее время
malo_xp();//Проверить или хп мало и банки пить
}

if (gettime()-baf_time[2]>baf_t[2])//Если время для этого бафа вышло
{
key(baf[2]);//F12
pause(rand(4000, 5000));//Пауза которую выдержать (рандом от 4 секунд до 5 секунд)
baf_t[2]=gettime();//Записываем текущее время
malo_xp();//Проверить или хп мало и банки пить
}
}
////////////////////////////////////////////////////////////////////////////


function baf_start()//Бафы в начале
{
//Бафаем
key(baf[0]);//F10
pause (rand(4000, 5000));//Пауза которую выдержать (рандом от 4 секунд до 5 секунд)
baf_t[0]=gettime();//Записываем текущее время

key(baf[1]);//F11
pause (rand(4000, 5000));//Пауза которую выдержать (рандом от 4 секунд до 5 секунд)
baf_t[1]=gettime();//Записываем текущее время

key(baf[2]);//F12
pause (rand(4000, 5000));//Пауза которую выдержать (рандом от 4 секунд до 5 секунд)
baf_t[2]=gettime();//Записываем текущее время
}
////////////////////////////////////////////////////////////////////////////////////


function nastroit()//Настройки определения точки пикселя начала хп моба
{
getdisplay(col, xek, yek);//Определить какое разрешение
xek=xek/2-200; yek=yek/2;//Вывод текста по эти координатам. центр

textbkcolor (0,255);//Установка цвета текста
textout(0, xek, yek, "Возьмите моба в таргет. Наведите курсор на начало полосы хп моба и нажмите Ё", 0);
e: if (getkeystate(192)==0) {sleep(50); goto e;}//если не нажат Ё идти опять на проверку
getmouse(X_pix, Y_pix);//Записать в эти переменные координаты пикселя под курсором
q: if (getcolor(X_pix, Y_pix)==getcolor(X_pix-1, Y_pix)) {X_pix--; goto q;}//Самый левый найти
col_pix=getcolor(X_pix, Y_pix);//Узнать по этим координатам цвет хп моба..
pause (1000);//Пауза что бы успел отпустить кнопку

textbkcolor (0,65280);//Установка цвета текста
textout(0, xek, yek, "Наведите курсор на конец полосы хп моба и нажмите Ё", 0);
e1: if (getkeystate(192)==0) {sleep(50); goto e1;}//если не нажат Ё идти опять на проверку
getmouse(X_pix1, Y_pix1);//Записать в эти переменные координаты пикселя под курсором
q1: if (getcolor(X_pix1, Y_pix1)==getcolor(X_pix1+1, Y_pix1)) {X_pix1++; goto q1;}//Самый правый найти
col_pix1=getcolor(X_pix1, Y_pix1);//Узнать по этим координатам цвет хп моба..
pause (1000);//Пауза что бы успел отпустить кнопку

textbkcolor (0,8454143);//Установка цвета текста
textout(0, xek, yek, "Наведите курсор на свое хп на котором надо пить банку и нажмите Ё", 0);
e2: if (getkeystate(192)==0) {sleep(50); goto e2;}//если не нажат Ё идти опять на проверку
getmouse(X_pix2, Y_pix2);//Записать в эти переменные координаты пикселя под курсором
col_pix2=getcolor(X_pix2, Y_pix2);//Узнать по этим координатам цвет хп моба..

textout(0, xek, yek, "", 2);
resettextout(1);
textbkcolor (0,65280);//Установка цвета текста
}



Данный скрипт является полноценным ботом для Lineage 2. Работоспособность бота сохраняется на 4game. Фрост не помеха. Для работы под фростом использовалась функкция Анти Антикликер. Подробнее о Анти Антикликере.

Скачать программу Кибор с сайта.
 
 Top
Kibor
Отправлено: 04 Ноября, 2014 - 00:04:23
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8091
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




каких блоков?? между функциями??

можно поставить в проверку хп. в функцию.
 
 Top
Bubblegum
Отправлено: 11 Ноября, 2014 - 20:16:29
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 17
Дата рег-ции: Окт. 2014  
Репутация: 0




Приветствую!
Продолжаем совершенствовать бота потихоньку.

Рассчитал область поиска изменяющихся изображений на экране. После сканирования экрана функцией finddynamic получаем массив с координатами центров активности на экране.

Вопрос: где-либо на форуме уже обсуждался/упоминался алгоритм сортировки данных координат с целью нахождения координат активности, ближайших к центру области поиска? Вроде бы в скрипте-примере данной функциональности нет. Я так понимаю это чистой воды математика, перебор, но вдруг было, чтобы не искать и разбираться с нуля.

Если кто подскажет - спасибо, ну а если нет, то как сам разберусь - запилю код или логику сортировки сюда.

(Отредактировано автором: 11 Ноября, 2014 - 20:21:06)

 
 Top
Bubblegum
Отправлено: 11 Ноября, 2014 - 22:26:17
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 17
Дата рег-ции: Окт. 2014  
Репутация: 0




 Bubblegum пишет:
сам разберусь - запилю код или логику сортировки сюда.


Сам спросил, сам разобрался)

Вопрос решает специально созданная замечательная функция sort(). Смотреть синтаксис тут, нужен второй вариант использования этой функции в описании:
(для просмотра ссылки Вам необходимо авторизоваться) (Добавление)
Вопрос по первым двум параметрам в расширенной версии sort().
Из описания:
 Цитата:
Первый и второй параметры координаты XY относительно которых будет сортировка массивов координат x[0] y[0] по расстоянию.


Эти значения являются координатами верхнего левого угла поиска в finddynamic? Или чтобы он мне весь массив отсортировал все же надо приравнять эти координаты [0,0] когда я вызываю sort()?
(Добавление)
 Цитата:
Эти значения являются координатами верхнего левого угла поиска в finddynamic? Или чтобы он мне весь массив отсортировал все же надо приравнять эти координаты [0,0] когда я вызываю sort()?


Пардон, вопрос снимается, спросил ерунду)
 
 Top
Kibor
Отправлено: 11 Ноября, 2014 - 22:53:06
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8091
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




не успел)
 
 Top
Bubblegum
Отправлено: 11 Ноября, 2014 - 22:57:48
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 17
Дата рег-ции: Окт. 2014  
Репутация: 0




 Kibor пишет:
не успел)


))) бывает, под вечер читаешь одно, видишь другое, думаешь о третьем, а спрашиваешь вообще туши свет)
 
 Top
sunlf
Отправлено: 13 Ноября, 2014 - 16:25:41
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 1
Дата рег-ции: Июнь 2014  
Репутация: 0




То есть скрипт через поиск изображения (finddynamic) под фростом работать не будет?
 
 Top
Grey77
Отправлено: 13 Ноября, 2014 - 22:25:06
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 2
Дата рег-ции: Нояб. 2014  
Репутация: 0




Ребята, помогите, у меня уже истерика. Два компьютера c непересекающимся железом и периферией, 3 разные инсталляции Windows (включая две поставленные с нуля). Дэфолтовые настройки в БИОСе. PS/2 клавиатуры. Что угодно.

Обход Фроста через эмулятор PS/2 клавиатуры в виде драйвера,
называемый еще "анти античит". Включение этого режима намертво вешает PS/2 клавиатуру (пробовал разные, и родные PS/2, и USB через переходник), естественно, эмуляция не работает.

При этом на ноутбуках и даже на том же компьютере но в виртуальной машине все работает...
Есть идеи?
 
 Top
Grey77
Отправлено: 14 Ноября, 2014 - 13:22:33
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 2
Дата рег-ции: Нояб. 2014  
Репутация: 0




Cама посылка через PS/2 порты идет в окно LA2 сквозь Фрост. Но вот функция "анти античит" в сабжевой программе очень избирательна. Недовольство, огорчение
 
 Top
morph1us
Отправлено: 30 Ноября, 2014 - 17:55:39
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 2
Дата рег-ции: Нояб. 2014  
Репутация: 0




скажите пожалуйста
1) в скрипте можно указать маршрут движения по координатам (типа moveto(1,2,3) ) и
2) можно задать самобаф у НПЦ по истечению времени
 
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Готовые скрипты »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by