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

Урок. Как создать бота в Кибор.

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

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

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

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

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

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

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

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

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

В основе этого урока лежит создание бота для Lineage 2 в программе Кибор.

Надеюсь что перед чтением этой статьи Вы пролистали хоть поверхностно справку по программе?

Часть первая. Подготовка графического материала и расчет координат.

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

Мы видим на экране окно с игрой, видим в окне мобов, их положение на экране. Если мы не видим мобов, то у нас есть радар по которому мы можем найти направление и узнать куда надо идти что бы прийти к новой стае. Если есть мобы в непосредственной близости от нас мы можем просто брать их таргет с помощью специальной функции любезно предоставленной нам разработчиками линейки. Во время боя мы атакуем имеющимися скилами и видим табличку с XP моба и можем по ней определить ход боя. После слива моба мы собираем лут.

Теперь наша задача заставить это все видеть и выполнять бота.

Для начала дадим боту возможность видеть и укажем куда надо смотреть для контроля того либо иного действия. Для этого определимся что бот должен видеть.

Первое - само окно с игрой, его позицию на экране и само игровое поле в окне. Для этого найдем в окне игры какой либо участок интерфейса, который был бы постоянным в любой ситуации, заставим бота при запуске скрипта найти этот участок и расчитаем координаты игрового поля.

Для определения не меняющихся частей интерфейса воспользуемся встроенным графическим редактором Кибор. Открываем панель Графика (прочитать про графический редактор Кибор), активируем окно с игрой и жмем CTRL+SHIFT+S. В Кибор появляется рисунок окна с игрой. Затем жмем CTRL+SHIFT+A (запустим фильтр динамики) и немного побегаем и покрутим камерой. Останавливаем фильтр динамики нажав опять на CTRL+SHIFT+A. Смотрим на рисунок в редакторе и видим примерно такую картину:

Автокликер

Все что подсветилось красным нам не подходит, так как меняется во время игры. Для выбора рисунка для привязки к окну надо найти объект на экране который не будет сдвинут во время игры. В нашем случае подходит кнопка настройки чата. Выделяем ее и нажав правую кнопку мыши сохраняем выделенное в виде .bmp файла. Его потом при запуске бот найдет на экране и расчитает координаты игрового поля в котором ему предстоит играть. Так же нам надо указать позицию таблички с XP моба для того что бы бот мог проверять ее наличие на экране и узнавать XP моба, и радара для последующего поиска на нем мобов и расчет их положений относительно центра радара (перса).

Во время поиска мобов на экране бот будет перебирать с помощью finddynamic все потенциальные участки на экране где может быть моб и будет ориентироваться на появление кружочков над мобом если на него навели мышь (ознакомиться с finddynamic) (как работает finddynamic). Наводим мышь на моба, жмем CTRL+SHIFT+S и сохраняем центр кружочка в .bmp.

Собственно это тот минимум который необходимо контролировать для успешного фарма. Определение собственного XP я думаю вы сможете сделать сами. На этом рисунке выделены все объекты которые использовались в прилагаемом скрипте бота. Табличка с XP моба сохранялась по трем позициям выделенных толстыми красными рамками. Сами рисунки смотрите в папке со скриптом:

Автокликер

Красными толстыми прямоугольниками показаны все сохраненные рисунки.
Табличка с XP моба сохранена по трем участкам.

Белыми линиями показаны расчитываемые координаты которые найдены с помощью соответствующего рисунка.

Большая рамка в окне игры ограничивает область поиска мобов функцией finddynamic и расчитывается исходя из найденной позиции рисунка кнопки настройки чата (1).

Координаты рамки поиска на радаре и его центр (положение перса) расчитываются исходя из найденого рисунка кнопки показа карты (3).

Координаты первого красного пикселя полосы XP моба расчитываются исходя из позиции таблички моба в таргете (2).

Область поиска кружочка над мобом (6) когда на него навели мышь расчитывается исходя их положения мыши над мобом.

Все наши подготовленные рисунки ищутся функцией findimage (пример применения findimage) и (еще пример), которая позволяет найти на экране изображение подобное загруженному с .bmp файла с помощью функции loadimage (ознакомиться с loadimage) и возвращает координаты левого верхнего угла найденного изображения.

Пример программирования загрузки рисунка кнопки настройки чата и расчет координат рамки ограничевающей поиск мобов:

int PrivyazkaXY[14][14];//Переменная в котрую будет загружен рисунок кнопки настройки чата
int P_X[1], P_Y[1];//Переменные в который будут записаны найденные координаты левого верхнего угла этого изображения

loadimage (#PrivyazkaXY[0][0], "C:\L2_online\PrivyazkaXY.bmp");//Загрузка изображения
findimage(1, #PrivyazkaXY[0][0], 0, #P_X[0], #P_Y[0], 0, 0, xe, ye, w);//Поиск одного экземпляра изображения кнопки и запись координат в P_X и P_Y.

Поясняю откуда взялись xe, ye и w:

xe и ye - разрешение экрана. Узнается с помощью функции getdisplay (подробнее о getdisplay)
w - указатель на окно. В нашем случае мы работаем со всем экраном, поэтому получаем указатель на рабочий стол с помощью window (подробнее о window)

Теперь можно расчитать координаты рамки (5). Наводим мышь на окно игры в позицию (7). Жмем CTRL+SHIFT+S. Переходим на вкладку Код (подробнее о шпионе) в Кибор. В окне Координаты мыши экранные видим координаты этой точки. Записываем их. Наводим мышь на левый верхний угол рисунка кнопки настройки чата. Жмем CTRL+SHIFT+S. Так же само записываем. Теперь расчитываем:

int S_X,S_Y,F_X,F_Y;//Переменные левого верхнего и правого нижнего угла рамки
S_X=P_X[0]; S_Y=P_Y[0]-625;//Левый верхний угол
F_X=P_X[0]+1010; F_Y=P_Y[0]-160;//Правый нижний угол

625, 1010, 160 мы получили узнав разницу между полученными координатами с помощью CTRL+SHIFT+S.

Таким же образом узнаем и записываем в переменные все остальные координаты которые будет использовать бот.

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

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