Меню

Поиск по сайту

Загрузка

Реклама

Категории

Статистика

Рейтинг@Mail.ru


Онлайн всего: 53
Гостей: 48
Пользователей: 5
Rank1, Djoshi, Anri, ХитрыйХохол, la2Vip

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


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

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

Начнем с самого главного:

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

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

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

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

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

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

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

LABEL(Go)
JMP(Go)

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

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

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

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

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

Выглядит это так:

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,<=,0)
{
SET(FIGHTSTOP)
DELAY(5000)
GOHOME()
DELAY(10000)
JMP(START)
}
CharSt atus(LV,>=,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,<=,0)
{
SET(FIGHTSTOP)
DELAY(5000)
GOHOME()
DELAY(10000)
JMP(START)
}
CharSt atus(LV,>=,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)
}

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

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

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

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

Ну успехов.
-------------------------------------------------------------------------------------------
НИЖЕ описаны ТУПО КОМАНДЫ
-------------------------------------------------------------------------------------------
LABEL(*****)
//Обозначает метку для перехода по командам JMP(*****) и CALL(*****).

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=#],<,1)
{
скрипт
}
//Подсчитывает количество указанных предметов с условиями
>= больше или равно
> больше
== равно
!= неравно
< меньше
<= меньше или равно
и выполняет скрипт в фигурных скобках.
Если невыполняется подсчет то скрипт из фигурных скобок невыполняется

USEITEM(Название предмета[ID=**])
//Использует предмет.

BuyItem(Название предмета[ID=**],#)
//Покупает предмет
BuyItem(Название предмета[ID=**],#;Название предмета[ID=**],#)
//Покупает за раз более одного предмета
(можно указать много предметов через точку с запятой).

SellItem(Название предмета[ID=**],#)
//Продает предмет
SellItem(Название предмета[ID=**],#;Название предмета[ID=**],#)
//Продает за раз более одного предмета
(можно указать много предметов через точку с запятой).
SellItem(*)
//Продает все предметы которые отмеченны в настройках бота как Sell.

SaveItem(Название предмета[ID=**],#)
//Помещает предмет в хранилище (Warehouse).
SaveItem(Название предмета[ID=**],#;Название предмета[ID=**],#)
//Помещает несколько предметов в хранилище (Warehouse).
SaveItem(*)
//Помещает в хранилище (Warehouse) все предметы которые отмеченны в настройках бота как Store.

LoadItem(Название предмета[ID=**],#)
//Забрать предмет из хранилища.
LoadItem(Название предмета[ID=**],#;Название предмета[ID=**],#)
//Забрать несколько предметов из хранилища.

NPC:

NPCSEL(Имя NPC[ID=**])
//Выбрать NPC.

NPCDLG(Имя NPC[ID=**])
//Открыть диалог с NPC.

DLGSEL(Текст)
//Выьрать пункт диалога [пример: DLGSEL(Buy)]

StrInDlg(Диалог)
{
Скрипт
}
//Проверяет присутствует ли фраза в диалоге. (например, Thank You!)
Если присутствует, то испольняесяа скрипт в фигурных скобках.

StrNotInDlg(Текст)
//Проверяет отсутствует ли фраза в диалоге. (например, Thank You!)
Если отсутствует, то испольняесяа скрипт в фигурных скобках.

Параметры персонажа:

ChangeWaitType(x)
//сменить положение
ChangeWaitType(0) // сесть.
ChangeWaitType(1) // встать.

CharStatus([CHP|CMP|HP|MP|WEIGHT|LV|SP|RACE|STAND],[>=|>|==|!=|<|<=],число)
{
Скрипт
}
CHP = Здоровье персонажа в единицах
CMP = Мана персонажа в единицах
HP = Здоровье в (%)
MP = Мана в (%)
WEIGHT = Загрузка рюкзака в (%)
LV = Уровень вашего перса
SP = SP вашего перса
RACE = проверяет рассу (human=0, Demon=1,Dark Elf=2, Elf=3, Dwarf=4)
для чего проверять рассу мне непонятно
STAND = Проверка сидишь или стоишь
CharStatus(STAND,==,0) Сидишь
CharStatus([STAND,==,1) Стоишь

Ориентация на местности:

PosInRange(x,y,z,дистанция)
{
Скрипт
}
//Проверка находится ли заданная точка в пределах досягаемости. Если да, то выполняется кусок скрипта в фигурных скобках {}.

PosOutRange(x,y,z,дистанция)
{
Скрипт
}
//Проверка находится ли заданная точка все досягаемости. Если да, то выполняется кусок скрипта в фигурных скобках {}.

SET(FIGHTSTART)
//Начать бой.

SET(FIGHTSTOP)
//Останавить бой.

GOHOME()
//если чар умер то возвратиться в ближайщий город

SAY(Сообщение)
//написать в общий чат

MSG(Текст)
//написать Текст в поле SYS
очень удобно при тестировании скрипта
================================================== =
З.Ы. ПАРУ ПРИМЕРОВ
================================================== =
Вот несколько примеров использования команд в скрипте:
скрипт на быстрый запуск СОЕ (это чтобы неискать его в рюкзаке когда там много всего )

Цитата:
LABEL(start) // ставим метку начала скрипта
USEITEM(Scroll of Escape[ID=736]) //использовать Scroll of Escape
MSG(СОЕ использовал) // выдаст надпись в поле SYS "СОЕ использовал"
EXIT() // выход из скрипта

скрипт на путь на место кача с последующим возвратом (ну это если помер)

Цитата:
LABEL(start) // начало скрипта

Цитата:
CharStatus(STAND,==,0) // проверка сидит перс или стоит
{
MSG(Хоре сидеть) // ну это так от себя
ChangeWaitType(1) // команда бота ВСТАТЬ
DELAY(1500) // ожидание пока бот встанет
JMP(Go) // перепригиваем на метку LABEL(Go)
}

это надо на случай если после смерти у бота было мало ХП и в настройках бота стоит содиться. Просто если бот сидит то он побежать несможет
работает так: проверяем на сидит-ли бот, если сидит то выполняем скрипт в фигурных скобках, если несидит перепрыгиваем на метку LABEL(Go)

Цитата:
MSG(НЕ СИЖУ!) // а это чтобы знать что скрипт сработал и бот несидел
LABEL(Go) // начало пути на место кача
MSG(Побежал) // ну и так понятно
MOVETO(x,y,z)
MOVETO(x,y,z) // может быть сколько угодно в зависимости как далеко бежим
MOVETO(x,y,z)
MSG(На место кача пришел) // ну сказать что бот на месте кача
SET(FIGHTSTART) // аналог нажатия в боте BeginCombat

Цитата:
LABEL(Death_Check) // ставим метку для проверки то что бот жив или уже несовсем
CHARSTATUS(CHP,<=,0) // проверка ХП
{
SET(FIGHTSTOP) // останавливем бой (аналог нажатия в боте EndCombat)
DELAY(5000) // 5-и секундная задежка, ну так чобы было
GOHOME() // вернутсья в город (аналог нажатия в игре To Nearest Village)
DELAY(10000) // задержка 10 сек для того чтобы небыло палева, просто когда играешь из клиента то пока прогрюзятся текстуры и место положение то проходит некоторое время
JMP(start) // переходим на метку LABEL(start) тобиш в начало скрипта, и бот начинает опять бежать на качь
}
JMP(Death_Check)

тут проверяем ХП бота, если ХП меньше нуля (а это и есть смерть) то выполняется скрипт из фигурных скобок, если бот жыв то сразу идет команда JMP(Death_Check), и опять проверка ХП, тобиш в этом месте скрипт зацикливается на проверке ХП пока бот в это вемя мочит мобов повыщая уровень.

Категория: Боты, Читы, Баги | Просмотров: 9159 | автор: l2
Всего комментариев: 121 2 »
0  
12 slaery   (19.07.2009 19:31)
из скачанных папок бота если перетаскивал папку SCRIPT по похожему пути
С:\...\LineageII\system\SCRIPT как найдешь эту папку в папке system игры
примерно такой путь к тому или иному скрипту С:\...\LineageII\system\SCRIPT\...
.SEC можно в текстовом файле ... .txt написать скрипт или скопировать его из
оригинала и заменить .TXT на расширение .SEC
главное чтоб, к примеру, наш скрипт с любым названием, допустим скрипт1.sec
был в папке SCRIPT , только она сама в папке system игры lineage2.

обычно в Windows XP делают так (это уже давно стало обычным):
ЧТОБЫ ВИДЕТЬ РАСШИРЕНИЯ ФАЙЛОВ ЖМУТ В ЛЮБОЙ ПАПКЕ Сервис и Свойства
папки, затем в Свойствах папки выбирают вкладку Вид ,прокручивают вниз,
там внизу находят "Скрывать расширения для зарегистрированных типов файлов"
и отжимают флажок (недолжно стоять галочки). после чего проверьте, создайте
текстовый файл обычный , ну блокнот, чтоб расширение было попроще, типа
скрипт1.txt, затем смените имя файла просто на скрипт1.SEC когда будет готов
текст - это и есть скрипт для бота. если наш скрипт1.SEC написано правильно
для бота, то в папку SCRIPT в игровой папке system перетаскиваем .

Вызов бота при условии что он правильно настроен - вручную. Если вы как и я
нумеете как следует пользоваться, то нажмите на кнопку Home -эта команда вам в
помощь , нажатие на Home с персонажа в игре должно свернуть этой клавишей окно
и будет менюшка , там также ищите внизу менюшки пункт SCRIPT чтоб Script Run
выбрать и посмотрите что там за скрипты обнаружены, лучше нажмите правый клик,
правой клавишей - Flash List зажмите, чтоб обновить на списке скриптов этом
то что обнаружено ботом из папки С:\...\LineageII\system\SCRIPT\...

еще Ctrl + Alt + Del вам в помощь и переход на игру,
Insert и End тренируйтесь нажимать также когда в игре, чтоб бот
не тормозил если что. или если остановить надо экстренно но не перезаходить чтоб.
переход от авто к ручнику, грубо говоря... бой\действие\приостановить

Home возвращает в меню ботика, мануал типа, сворачивает окошко заодно wacko


0  
11 qazwsx1   (27.03.2009 18:47)
Sergey есть проблемка по скриптописанию: когда выполняется команда телепорта в город, после кача, бывает (часто) что мобы атакуют чара и збивают телепор. бсое исп. дороговато. подскажи что делать

Заранее благодарен

бота опять порезали : angry angry angry


0  
10 jevlll   (19.02.2009 01:16)
а все разобралсо /loc biggrin biggrin biggrin

0  
9 jevlll   (19.02.2009 00:57)
Sergey спс за скриптики! поясни плиз откуда брать кординаты при написании скрипта в такие как moveto и POSINRANGE?сори если вопрос покажется глупым я просто 1 раз шпилю и ботом пользуюсь тоже в первые biggrin

0  
8 pol   (20.01.2009 16:23)
Все решилось, сам не знаю как smile

0  
7 pol   (19.01.2009 14:08)
У мкня та же проблема, что была у Ytko, но папка правильно називаеться и скрипты по английски називал и цифрани... Не видет волкер скриптов, я жму срипт-ран, но не вижу ниодного. sad

0  
6 l2   (14.01.2009 23:12)
Я заметил, что все кричат что у них не получаеться...
а потом все елементарно решаеться smile
Но некоторые еше и матом кроют smile
Удачного ботоводства, если хоч скачай готовый скрипты я 10 штук выложил, подгоняй под себя, скоро еше выложу штук так 40

0  
5 Skandal   (14.01.2009 22:25)
забыл написать что разобрался)))) вообщем проблема была в том что у папки Script было S на конце, из-за этого прога не видела что существует папка в которой лежат скрипты))))

0  
4 l2   (14.01.2009 22:18)
Странно у меня все работает бот я сюда кидал свой, то есть рабочий у всех все было нормально. Попробуй сохрани текствой файл в кодировке UTF - 8 возможно там не утф стоит

0  
3 Skandal   (14.01.2009 20:31)
папка одна, скрипты в нужно формате, даже тот который сразу лежит там на соил на английский название перевёл на английский, тоже его нету в Script run, там пусто

1 2 »
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

 

    Наш сайт - l2ua.ru. Мы знаем свое дело. Мы всегда добиваемся того, чего хотим. И поможем вам добиться того, чего хотите Вы.

    Наш сайт носит информационно-поучительный характер. Мы не обещаем вам золотых гор, но грудочку золота дадим - однозначно

    © 2010 L2ua.ru

    Хостинг от uCoz