Russla2 ™
 
у нас есть форум
 
 
На главную
Web (обвязка, шаблоны)
Salmaonchik.ru
Сборки серверов[Java]
Дополнения к серверам
Мануалы
L2 File Edit
Как создать сервер
Защита для сервера
Геодата
Новости Lineage
Обои Lineage
Анекдоты
Аватары Lineage 2
Lineage 2 mp3
Rus патчи
Эвенты
Общие квесты
Квест на смену профессии
L2Calculator
 
Дистрибутивы
Установка Apache
Установка PHP
Установка MySQL
 
Расшифровка пакетов
Различные боты
скрипт для L2Walker
 
 

Для покупки рекламнова места напишите в гостевую или на E-mail адменистратора Salamonchik1@yandex.ru


скрипт

В етом мануале не будет предоставлено каких либо ролных скриптов для полного кача или для споила и тому подобного. Здесь будут только команды и маленькие примеры их использования Мы вас предупреждаем что за ипользование бота можна получить БАН Начнем с самого главного: команда 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), и опять проверка ХП, тобиш в этом месте скрипт зацикливается на проверке ХП пока бот в это вемя мочит мобов повыщая уровень.

 



Для покупки рекламнова места напишите в гостевую или на E-mail адменистратора Salamonchik1@yandex.ru



Сайт хентая Shaman Anime

Hosted by uCoz
 
 
 
   
Hosted by uCoz