Kibor |
Отправлено: 24 Сентября, 2014 - 10:29:59
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Вообще используйте скрипт этот(для просмотра ссылки Вам необходимо авторизоваться)
CODE://Бот для LIneage 2. Сделан в Кибор - http://kibor-bot.com
//Обязательно смотреть прилагаемое видео настроек http://youtu.be/yaKTWaArQgk
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);//Установка цвета текста
} |
|
|
Kibor |
Отправлено: 13 Октября, 2014 - 07:46:22
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Это доработанный скрипт выложенный admiralmj13
CODE:/*
F1 - скилл атаки
F2 - обычная атака
F3 - дебаф
F4 - подбор
F5 - некст таргет
F6 - 1 макрос на моба
F7 - 2 макрос на моба
F8 - 3 макрос на моба
F9 - 1 денс
F10 - 2 денс
F12 - банка (хилка);
*/
int mob[3];
mob[0]=117; mob[1]=118; mob[2]=119;
int baf_time[1];
baf_time[0]=90000;
int baf_t[1];
baf_t[0];
int col_pix, X_pix, Y_pix;// первый пиксель хп моба
int col_pix1, X_pix1, Y_pix1;//второй пиксель хп моба
int col_pix2, X_pix2, Y_pix2;//хп бд для отхила
int col_pix3, X_pix3, Y_pix3;//порог мп (для того что бы мп от активных скилов не уходило в ноль и всегда оставалось для баф или денсов)
int N=0;
int k_mob;
int k_error_tim;
int col, xek, yek;
int error_tim=15000;
nastroit();
baf_bd_dens_start();
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////ОСНОВНОЙ ЦИКЛ///////////////////////////////////////
cikl:;
if (getcolor(X_pix, Y_pix)!=col_pix){keydown(F5);pause(rand(100, 200));keyup(F5);pause(rand(500, 550));}
assist();
if (getcolor(X_pix, Y_pix)!=col_pix)goto cikl;
keydown(F3);pause(rand(100, 200));keyup(F3);//дебаф
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)
{
keydown(ESCAPE);pause(rand(100, 200));keyup(ESCAPE);goto cikl;
}
}
xp_bd();
if (getcolor(X_pix3, Y_pix3)==col_pix3){keydown(F1);pause(rand(100, 200));keyup(F1);}
keydown(F2);pause(rand(100, 200));keyup(F2);goto bit;
}
N++;
textout(0, X_pix, Y_pix+20, "Мобов слито "+format (N), 0);
podbor();
baf_bd_dens();
goto cikl;
/////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////ФУНКЦИИ///////////////////////////////////////////
function podbor()
{
keydown(F4);pause(rand(450, 500));keyup(F4);keydown(F4);pause(rand(450, 500));keyup(F4);
keydown(F4);pause(rand(450, 500));keyup(F4);keydown(F4);pause(rand(450, 500));keyup(F4);
keydown(F4);pause(rand(450, 500));keyup(F4);keydown(F4);pause(rand(450, 500));keyup(F4);
keydown(F4);pause(rand(450, 500));keyup(F4);keydown(ESCAPE);pause(rand(100, 200));keyup(ESCAPE);
}
function assist()
{
if (getcolor(X_pix, Y_pix)!=col_pix)
{
keydown(mob[k_mob]);pause(rand(100, 200));keyup(mob[k_mob]);
k_mob++;
if (k_mob==3)k_mob=0;
pause(rand(1000, 1100));
}
}
//////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////ТАНЦЫ/////////////////////////////////////////////
function baf_bd_dens_start()
{
keydown(F9);pause(rand(100, 200));keyup(F9);pause(rand(1500, 1600));
keydown(F10);pause(rand(100, 200));keyup(F10);baf_t[0]=gettime();
}
function baf_bd_dens()
{
if (gettime()-baf_time[0]>baf_t[0])
{
keydown(F9);pause(rand(100, 200));keyup(F9);pause(rand(2000, 2500));
keydown(F10);pause(rand(100, 200));keyup(F10);pause(rand(2000, 2500));
baf_t[0]=gettime();
}
}
//////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////ХИЛКИ/////////////////////////////////////////////
function xp_bd()
{
if (getcolor(X_pix2, Y_pix2)!=col_pix2)
{
keydown(F12);pause(rand(100, 200));keyup(F12);pause(rand(100, 200));
}
}
//////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////НАСТРОЙКА//////////////////////////////////////////
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(500);
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);
keydown(ESCAPE);pause(rand(100, 200));keyup(ESCAPE);
pause (500);
textbkcolor (0,65280);
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);
pause (500);
textbkcolor (0,65280);
textout(0, xek, yek, "Порог Мп", 0);
e3: if (getkeystate(192)==0) {sleep(50); goto e3;}
getmouse(X_pix3, Y_pix3);
col_pix3=getcolor(X_pix3, Y_pix3);
pause (500);
textbkcolor (0,65280);
textout(0, xek, yek, "Поехали???", 0);
e7: if (getkeystate(192)==0) {sleep(50); goto e7;}
pause (500);
textout(0, xek, yek, "", 2);
resettextout(1);
textbkcolor (0,65280);
} |
|
|
Botovodik |
Отправлено: 29 Октября, 2014 - 21:07:56
|
Прохожий
Покинул форум
Сообщений всего: 4
Дата рег-ции: Окт. 2014
Репутация: 0
|
Погонял кибором на с4 хрониках, вродь норм но есть 2 момента требующих решения.
1. После 40 лвл кач соло без окон просто нереален, как не крути (если нету второго компа)
без оконного бафера бот на Киборе непригоден. Тут нужен либо отдельный бот работающий
в неактивное окно, либо один но работающий и в активное и в неактивное, а там уже подстраивать эфками на какую че вешать.
2. В скрипте бота допущена оплошность - после убийства моба он СРАЗУ собирает дроп.
Все бы ничего если речь идет об одиночном мобе, но в катакомбах и прочих комнатах
мобы агряца пачками, и здесь важно бить их непрерывно чтобы отхиливаться вампом,
ибо банки не спасут. За те несколько сек. которые уходят на сбор дропа мобы прилично
сносят ХР особенно на малых левлах. Причем нередки моменты когда бот пытается подобрать отлетевший лут в окружении мобов и не может этого сделать. Резонно изменить
схему поведения бота - нету в радиусе таргета мобов - собирай лут, есть - бей,потом собирай. И хотелось бы более активной реакции когда моб рядом, а то перса уже молотят вовсю а бот еще думает. |
|
|
|