Меню Рубрики

Как написать бота для lineage 2

Lineage 2 бот своими руками (Часть 1)

Боты на l2

Всем привет, хочу поддержать проект для «умных игроков» L2Diary и открыть блог «Софт», в котором будут публиковаться материалы для реально прошаренных геймеров.

Сразу скажу, использование пилотов, радаров и других средств для помощи в пвп есть очень плохо, должно осуждаться сообществом игроков и с этим Иннова должна серьезно бороться.

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

Постановка задачи

В боте, в нашем случае правильней сказать пилоте, выбирается окно, клавиша и интервал, через который она будет нажиматься. Затем тыкаем на «Старт» и запускаем нажатие клавиши. По нажатию кнопки «Стоп» — пилот останавливается.

Пример: вам надо поставить автоассист по MA («master assist») в пати. В линейке вы создаете макрос из трех строк

В пилоте выставляете правило, что необходимо нажимать в окне с вашим персонажем на этот макрос каждые 4 секунды и запускаете нажатие клавишы.

— Visual Studio (ставьте самую последнюю версию, что найдете)
— начальные знания программирования
— умение думать, т. е. моск 😉

Не зная изначально как решать задачу, сократим ее до минимума и будет разбираться по шагам. Поставим задачу: запуск нажатия клавиши F1 раз в 5 секунд в нужном нам окне.

Поищем в MSDN (справочник по Windows-кодингу) как же нам эмулировать нажатие клавиш: http://social.msdn.microsoft.com/Search/en. Keyboard+Events. Первая ссылка — то что надо! Особенно радует подробный пример как посылать клавишы в окно калькулятора.

Проба пера

Попробуем для начала пример из статьи. Создаем проект C#, на форму ставим кнопку, по нажатию на которую будет посылаться нажатие клавиш в окно калькулятора.

Два раза тыкаем на кнопку, вставляем код из примера:

// Если у вас виста — CalcFrame замените на SciCalc
IntPtr calculatorHandle = FindWindow(«CalcFrame»,»Calculator»);

if (calculatorHandle == IntPtr.Zero)
<
MessageBox.Show(«Calculator is not running.»);
return;
>

SendKeys.SendWait(«111»);
SendKeys.SendWait(«*»);
SendKeys.SendWait(«11»);
SendKeys.SendWait(«=»);

Функции, которые мы используем тут:

FindWindow — возвращает дескриптор окна по названию класса или заголовку окна.
SetForegroundWindow — устанавливаем активное окно.
SendKeys.SendWait — посылает в активное окно нажатие клавиш, заданное строкой в первом параметре.

Выше строчки private void button1_Click(object sender, EventArgs e) вставляем:

[DllImport(«USER32.DLL», CharSet = CharSet.Unicode)]
public static extern IntPtr FindWindow(string lpClassName,
string lpWindowName);

[DllImport(«USER32.DLL»)]
public static extern bool SetForegroundWindow(IntPtr hWnd);

Запускаем проект по Ctrl + F5, запускаем калькулятор и нажимаем на кнопку. Если в калькуляторе прошла операция умножения — значит все работает.

Теперь нам надо просто поменять окно калькулятора на окно линейки, посылать нажатие F1 вместо единичек, знака умножения и что там еще посылается в примере и будет нам радость 😉

Но все далеко не так просто, и об этом — в следующей статье.

Источник статьи: http://pvpru.com/board/showthread.php?t=15032

Бот для MMORPG Lineage 2

Хочу написать программу бот/радар для MMO RPG Lineage 2. Подскажите куда копать, с чего начать, на какие библиотеки обратить внимание. На сколько я понимаю, нужно смотреть в сторону анализа сетевого трафика.

Простой бот для MMORPG
Всем доброго времени суток. Я только недавно начал изучения программирования и по этому прошу вашей.

Бот для онлайн игры (Wow, lineage, RF Online и т.д.)
Всем привет! Подскажите можно ли написать бота для онлайн игры в VB Net? Если да то можно ссылку.

Бот для MMORPG на C++
Доброго времени суток! Уже некоторое время хочу написать бота для одной игры, но мне нужны пара.

Бот в игре Lineage 2 Interlude
Добрый день. Товарищи тема не совсем по игре, но всё же. Помогите пожалуйста. Есть некий файл.

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

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

А дальше уже занимайтесь рисованием.

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

Добавлено через 50 минут
Увы модератор. правило 4.6 некак не запрещает просто общатся между человеком на интересующую тему. В теме вродбы по правилам можно создавать вопросы а не вести чат переписку с кучей флуда.

Источник статьи: http://www.cyberforum.ru/csharp-api/thread1354766.html

Как написать скрипт для L2Walker

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

Мы вас предупреждаем что за ипользование бота можна получить БАН

команда LABEL() первоначально ставиться в начало скрипта, ( говорю упрощённо что бы все было вполне понятно)

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

координаты думаю всем извесно как добывать MOVETO(x,y,z)

Далее команда CHARSTATUS() Служит для определённых проверок, таких как лвл, сп, мп, лоад, и прочее. (см. тему Основные команды)

Далее: Команда POSINRANGE() Служит для проверки местоположения. Ставиться для того что бы бот не терялся на месности.

Подробнее о LABEL() Служит как начало скрипта, или под скрипта, работает до команды JMP() после которой скрипт начнеться с той метки, которая будет указанна в скобках JMP()

Команда JMP() делает прыжок на метку LABEL() Где текст в скобках совпадает с JMP()

Залог успеха в написании крупно габаритных скриптов, делаеться так. вы должны помнить что основного скрипта будет всего лишь несколько строчек, а всё остальное будут сплошные под программы. такие как магазины. длвлы, телепорты, ВХ, смена разных мест, и многое другое.

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

Под основным скриптом, я подразумеваю серию проверок, и начальные метки. подробнее на примерах.

Далее: Что бы успешно продавать вещи в магазин,( зы: не в ВХ, с ним отдельный разговор.)

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

ITEMCOUNT(Gloves[ID=49],>,0)// значёк >, и далее следующая цифра»0″ показывают условие проверки итема «Больше или равно 0» и сразу же выполняеться скрипт из фигурных скобок, <> следующий за каждой проверкой.

ITEMCOUNT Служит для проверки необходимого предмета.

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

ну в общем так выглядит проверка и продажа.

LABEL(sell)
ITEMCOUNT(Gloves[ID=49],>,0)
<
SELLITEM(Gloves[ID=49],#)
MSG(вещь продана)
JMP(sell)
>

И тд, и тп, по скольку вещей и хлама продавать нужно много разных типов, то и проверки на каждый итем ставить придеться в скрипт, одну за другой.

LABEL(sell)
ITEMCOUNT(Brandish Blade[ID=2010],>,0)
<
SELLITEM(Brandish Blade[ID=2010],#)
MSG(вещь продана)
JMP(sell)
>
ITEMCOUNT(Gloves[ID=49],>,0)
<
SELLITEM(Gloves[ID=49],#)
MSG(вещь продана)
JMP(sell)
>
ITEMCOUNT(Animal Bone[ID=1872],>,0)
<
SELLITEM(Animal Bone[ID=1872],#)
MSG(вещь продана)
JMP(sell)
>

SELLITEM() Диалог с НПС обратите внимание на символ # Ставиться для того что бы бот продавал все вещи указанного типа.

зы: Заострите на этом внимание. Уверен, кто то напутает всё равно

так же заострите внимание на перевод диалогов с НПС, если диалог русский то писать у НПС следует на русском DLGSEL(Продать) или на английском DLGSEL(sell) Зависет от перевода сервера.

MSG() В скобках у неё вы пишите напоминание или то что скрипт делает, делаеться для того что бы вы знали что часть скрипта успешно сработала.

DLGSEL() Открывает диалог с НПС, указанный в его скобках.

SET(FIGHTSTOP) Необходим для остановки боя, в случае если бот помер или использует в скрипте ГК или переходит куда то. Но только по сценарию скрипта, то бишь самим тыркать бегин комбат не нужно

CharStatus(STAND,==,0) Проверка бота «сидит, или стоит» если сидит то кусок скрипта из фигурных скобок после проверки.

ChangeWaitType(1) Команда для бота «Встать» не смотря на выставленные настройки в самом боте.

CharStatus(WEIGHT,>=,30.00%) Проверка вашей сумки, если допустим 30.00% то выполняеться кусок скрипта из фигурных скобок, следующий после этой проверки.

зы: Загрузку сумки писать строго в %

DELAY() Время в мили-секундах в промежутках в скриптах. 1000 равна одной секунде.

GOHOME() Возвратиться в город.

USEITEM() применить указанный итем в скобках.

зы: Может быть что угодно, от банки до соул-бов-а

зы: Для каждого применения выставляеться отдельная команда. То бишь что бы не писать все действия в одну строчку. (работать не будет тогда)

теперь определяем основной скрипт:

Получилось следующее. Проверка лвл-а и сумки при старте скрипта. далее если лвл такой то, то переходим на метку такую то. Аналогично с магазином.

LABEL(START)
SET(FIGHTSTOP)
CharStatus(STAND,==,0)
<
DELAY(10000)
ChangeWaitType(1)
DELAY(2000)
JMP(START)
>
CharStat us(WEIGHT,>=,30.00%)
<
CALL(sell)
>
LABEL(LVL)
CharStatus(LV,>=,21)
<
CALL(Go21)
>
CharStatus(LV,>=,18)
<
CALL(Go18)
>
LABEL(Go 18)
POSINRANGE(11052,16907,-4688,4000)
<
MOVETO(11147,16936,-4688)
MOVETO(10803,17014,-4641)
MOVETO(10316,17121,-4610)
MOVETO(9613,172 67,-4610)//Может быть сколько угодно, смотря куда вы идете, так же можно вставить не только координаты. Допустим использовать ГК или еще чего то.
MOVETO(8777,17419,-4610)
MOVETO(7906,17632,-4438)
MOVETO(1149,22549,-3413)
>
MSG(На место кача пришел)
SET(FIGHTSTART)
LABEL(Check1)
CHARSTATUS(CHP, =,21)
<
USEITEM(Scroll of Escape)
DELAY(20000)
JMP(START)
>
CharStatus(WEIGHT,>=,30.00%)
<
USEITEM(Scroll of Escape)
DELAY(20000)
JMP(START)
>
JMP(Check1)
LABEL(Go21)
POSINRANGE(11052,16907,-4688,4000)
<
MOVETO(11147,16936,-4688)
MOVETO(108 03,17014,-4641)
MOVETO(1149,22549,-3413)
>
MSG(На место кача пришел)
SET(FIGHTSTART)
LABEL(Check2)
CHARSTATUS(CHP, =,22)
<
USEITEM(Scroll of Escape)
DELAY(20000)
JMP(START)
>
CharStatus(WEIGHT,>=,30.00%)
<
USEITEM(Scroll of Escape)
DELAY(20000)
JMP(START)
>
JMP(Check2)
LABEL(sell)
MOVETO(11902,15751,-4581)
LABEL(sel)// Обратите внимание что sell и sel у меня совершенно разные команды.
NPCSEL(Vollodos[ID=7137])
DELAY(500)
NPCDLG(Vollodos[ID=7137])
DELAY(500)
DLGSEL(Продать)
ITEMCOUNT(Short Leather Gloves[ID=1119],>,0)
<
SELLITEM(Short Leather Gloves[ID=1119],#)
MSG(вещь продана)
JMP(START)
>

Итак, вот вам небольшой пример автоматического скрипта, Всё предельно просто.

В этом скрипте мы разобрали с вами как собираеться, и работает скрипт различных действий. В нашем случае смена мест кача и использование магазина.

Пишите здесь если вам что либо не ясно.

ЗЫ: Некопируйте ничего с этой темы, всё здесь представлено чисто как ознакомление.

JMP(*****)
//Переход к LABEL(*****) где текст в скобках такой же.

CALL(*****)
//Вызов подпрограммы. Переход к LABEL(*****) где текст в скобках такой же.

RETURN()
//Возврат из подпрограммы на CALL(*****).

DELAY(x)
x = милисекунды
//Приостановка скрипта.

Pause(x)
x = милисекунды
//Видимо тоже что и DELAY(x), я непробывал т.к. пользуюсь DELAY(x)

EXIT()
//Остановка скрипта или выход из скрипта.

MOVETO(x,y,z)
//Идти в точку с координатами x,y,z

ITEMCOUNT(Название предмета[ID=#], = больше или равно
> больше
== равно
!= неравно
=|>|==|!=|

Источник статьи: http://l2ua.ru/news/2009-01-10-204

Как написать бота для lineage 2

Описание: L2.NET — довольно функциональный бот и выглядит красивее того-же самого l2walker очень красивый и приятный дизайн , бот прост в настройке и сейчас вы это узнаете. Настроен под сервер Lineyka.uz
Разработчик: L2.NET
Поддерживаемые Хроники: Все

Новость отредактировал: Online — 2-06-2016, 00:56
Причина: Сcылка На Скачивание Обновлена

Новость отредактировал: Blayzer — 2-02-2019, 17:23
Причина: файл перезалит и обновлён

Новость отредактировал: Online — 16-07-2018, 03:17
Причина: Ссылка На Скачивание Обновлено

Новость отредактировал: Online — 12-01-2015, 18:42
Причина: Добавлена Внешняя Ссылка

Описание: Auto Potions
Хроники: Interlude
Размер: 1.06 МБ
Залито на: Dump.uz

Новость отредактировал: Online — 16-07-2018, 03:14
Причина: Ссылка На Скачивание Обновлено

Описание: L2walker
Хроники: Все
Размер: 9.46 MB
Залито на: dump.uz

Новость отредактировал: Online — 12-01-2015, 18:33
Причина: Ссылка На Скачивание Обновлено

Новость отредактировал: Online — 29-09-2017, 16:47
Причина: Ссылка На Скачивание Обновлено

Новость отредактировал: Online — 5-08-2019, 18:48
Причина: Ссылка на скачивание обновлена

Источник статьи: http://blayzer.uz/for-player/l2walker/


0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии