Боты для онлайн игр

Проектирование программы. Оптимальная структура.

Форум программ AvtoK и Кибор
Kibor Forum English

Автокликеры и боты
Автокликер AvtoK
Программируемый автокликер Кибор
Визуальное создание ботов

Распознавание текста в Кибор

Распознавание простой капчи

Заказать Бот на форуме

Бот для Dark Orbit
Бот для Рулетки. Универсальный
Бот для Warspear Online

Как обойти Frost и т.д.

Бот для Lineage 2. Обход Фроста
Бот для RF Online
Бот для пасьяна Косынка
Бот для На рыбалку в вк
Бот для Три В Ряд

Графический редактор в Кибор

Структура программы

Часть вторая. Проектирование программы.

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

Объявление переменных.
Тело программы.
Как правило разбивается на функции (что такое функция).
Вызываемые функции (подпрограммы).

Переменные добавляются по ходу написания программы, тут мы расмотрим тело программы.
Что такое программа? Это набор инструкций для достижения поставленной цели. Наша цель перебить как можно мобов. Исходя из предоставленных нам возможностей программа будет состоять из таких инструкций выполняемых по порядку:

Подготовка бота к работе:
Загрузка рисунков.
Расчет координат.

Основное тело бота работающее в зацикливание:

loop:;
Взятие ближних мобов в таргет и их слив.
Поиск мобов в пределах видимости в рамках области поиска (5).
См. рис. урок 1.
Сканирование радара, поиск на нем мобов, вычисление направления и передвижение к ним бота.
goto loop;

Это основные функции. Они в свою очередь могут быть разбиты на более мелке части.

Реализация структуры программы:

//Объявление переменных

int PrivyazkaXY[14][14];//Переменная для загрузки рисунка
int Vid_Mob[9][9];
int Tab_Vid[166][39];
int Privyazka_Radar[15][20];
int P_X[1], P_Y[1];//Переменные для принятия координат рисунки
int S_X, S_Y, F_X, F_Y;//Координаты левого верхнего и правого нижнего угла области поиска мобов на экране

//....................................

//Начало программы

if (Load_Image()==-1)//Загрузка рисунков
{
messagebox("Не найдены рисунки в C:\L2_online.");
goto error;
}
if (Pozicion_Image()==-1) goto error;//Расчет координат

loop:; //Основное тело программы. Крутится по кругу
Poisk_Target();//Поиск ближних мобов взятием в таргет
Poisk();//Поиск мобов на экране
Poisk_Radar();//Поиск на радаре
goto loop;//Зацикливаем тело программы

error:;//Если функция вернула ошибку идем к этой метке. Выходим с программы.

//Тут идет непосредственно код вызываемых функций:

    function Load_Image()//Загрузка рисунков
    {
if (loadimage (#PrivyazkaXY[0][0], "C:\L2_online\PrivyazkaXY.bmp")==-1)return -1; //При неудачной загрузке выходим из функции и вернем -1
if (loadimage (#Vid_Mob[0][0], "C:\L2_online\Vid_Mob.bmp")==-1)return -1;
if (loadimage (#Tab_Vid[0][0], "C:\L2_online\Tab_Vid.bmp")==-1)return -1;
if (loadimage (#Privyazka_Radar[0][0], "C:\L2_online\Privyazka_Radar.bmp")==-1)return -1;
return 0;
    }

    function Pozicion_Image()//Расчет координат
   {
int xe, ye, color;//Переменные который используются в теле функции можно объявить тут. Их больше нигде не видно. Могут иметь одинаковые имена.
getdisplay(color, xe,ye);//Узнать разрешение экрана
if (findimage(1, #PrivyazkaXY[0][0], 0, #P_X[0], #P_Y[0], 0, 0, xe, ye, w)==0){messagebox("Не найден в игре рисугок кнопки настройки чата."); return -1;}
S_X=P_X[0]; S_Y=P_Y[0]-625;//Левый верхний угол области поиска (5)
F_X=P_X[0]+1010; F_Y=P_Y[0]-160;//Правый нажний угол области поиска (5)
return 0;
    }

   function Poisk_Target()//Поиск ближних мобов взятием в таргет
    {
key(F5);//Нажать на F5 или другую кнопку. На ней лежит функция авто взятия в таргет в игре
sleep(500);//Ждем пол секунды
if (Ataka()==1)//Тут идет вызов еще одной функции. Она проверяет есть ли моб в таргете и если есть льет его. Возвращает 1 если моб был и убит
{
sleep(rand(150, 250));//Ждем от 150 до 250 мсек. (Защита от анти автокликеров. Рандом).
key(F4);//Нажать на F4 (взять лут если есть)
sleep(rand(150, 250));
key(F4);
return 1;//Выход с функции и вернуть 1.
}
return 0;//Выход с функции и вернуть 0.
    }

    function Poisk()//Поиск мобов на экране
    {
//....................
    }

    function Poisk_Radar()//Поиск на радаре
    {
//....................
    }

    function Ataka()//Проверка есть ли моб в таргете и его бой
    {
//....................
    }

Если программа небольшая можно обойтись и без функций.

Предыдущий урок       Следующий урок

При копировании материалов с сайта, ссылка на источник kibor-bot.com обязательна.     Обратная связь