Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

FAQ по скриптописанию!!!

-

Боты, скрипты и прочий софт для Lineage 2

- Весь софт по Lineage 2 и все, что связано с ботоводством, скриптописанием и брутом - в этом разделе

Ответ
 
Опции темы
Старый 10.07.2010, 08:47   #1
 Пехотинец
Аватар для obey177
 
obey177 скоро будет известенobey177 скоро будет известенobey177 скоро будет известен
Регистрация: 09.06.2010
Сообщений: 64
Популярность: 245
Сказал(а) спасибо: 23
Поблагодарили 74 раз(а) в 34 сообщениях
 
Thumbs up FAQ по скриптописанию!!!

И так начнем с команд...

Основные команды:


Цитата:
GOHOME()

\\Команда возврата в город после сметри.


Цитата:
SAY()

\\Писать что-либо в окне чата.


Цитата:
JMP()

\\Переход к метке LABEL(Текст) где текст в кавычках такой же.


Цитата:
CALL()

\\Вызов подпрограммы. Переход к LABEL() где текст в кавычках такой же.


Цитата:
LABEL()

\\Обозначает метку для перехода по CALL() или JMP().


Цитата:
DELAY(x)

\\Приостановка скрипта, x = милисекунды.


Цитата:
Pause(x)

\\Пауза, x = милисекунды.


Цитата:
RETURN()

\\Выход из подпрограммы.


Цитата:
EXIT()

\\Выход из скрипта.
Перемещение:



Цитата:
MOVETO(x,y,z)

\\Идти в точку с координатами x,y,z .
Предметы:


Цитата:
ITEMCOUNT(Название предмета[ID=#],<,1)
{
}

\\Подсчитывает количество указанных предметов с условиями <, >, = и выполняет скрипт в фигурных скобках.


Цитата:
USEITEM(Название предмета[ID=#])

\\Использует предмет.


Цитата:
BuyItem(Название предмета[ID=#],#)

\\Покупает предме.


Цитата:
BuyItem(Название предмета[ID=#],#;Название предмета[ID=#],#)

\\Покупает за раз более одного предмета (можно указать много предметов через точку с запятой).


Цитата:
SavelItem(Название предмета[ID=#],#)

\\Помещает предмет в хранилище (Warehouse).


Цитата:
SavelItem(Название предмета[ID=#],#;Название предмета[ID=#],#)

\\Помещает несколько предметов в хранилище (Warehouse).


Цитата:
LoadItem(Название предмета[ID=#],#)

\\Забрать предмет из хранилища.


Цитата:
LoadItem(Название предмета[ID=#],#;Название предмета[ID=#],#)

\\Забрать несколько предметов из хранилища. # - само собой количество.
NPC's:



Цитата:
NPCSEL(Имя NPC[ID=#])

\\Выбрать NPC.


Цитата:
NPCDLG(Имя NPC[ID=#])

\\Открыть диалог с NPC.


Цитата:
DLGSEL(Диалог)

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


Цитата:
StrInDlg(Диалог)
{
}

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




Цитата:
ChangeWaitType(x)

\\Сменить состояние с "сидеть" на "стоять" и наоборот
x = 0 Сесть
x = 1 Встать.


Цитата:
CharStatus([CHP|CMP|HP|MP|WEIGHT|LV|SP|RACE|STAND]
,[>=|>|==|!=|<|<=],число)
{
}

\\CHP = Здоровье персонажа
CMP = Мана персонажа
HP = Здоровье (%)
MP = Мана (%)
WEIGHT = Загрузка (%)
LV = Уровень (вожможно)
SP = Хрен знает что такое
RACE = Это еще менее понятно
STAND = Проверка сидишь или стоишь
...,==,0) Сидишь
...,==,1) Стоишь (может быть 0 и 1 надо поменять местами).


Цитата:
PosInRange(x,y,z,дистанция)
{
}


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


Цитата:
PosOutRange(x,y,z,дистанция)
{
}


\\То же самое, но условие верно, если точка все досягаемости.


Цитата:
SET(FIGHTSTART)

\\Начинает бой.


Цитата:
SET(FIGHTSTOP)

\\Останавливает бой.

Щяс я покажу вам пример написания такого скрипта....
FAQ:

Скрипты чаще всего пишутся в всем известной программе "Блокнот" . Можно ингеймом , но блокнот всервно придется использовать . Так что рекомендую для файлов с расширением .SEC выставить опцию открывать их с помощью Блокнота .

Вот напишем маленький скрипт на перемещение . Очень часто такие скрипты нужны , когда вы многократно бегаете по одному и тому же маршруту .

Для перемещений испоьзуется команда - MOVETO
Вначале снимаем точки . Это можно сделать с помощью команды /loc . Но это конечно неудобно . Удобней всего это сделать с помощью Ингейма . Есть там раздел в опциях Маке Скрипт и нажав Рек вы запомните команды и действия . Получаем набор команд , например

MOVETO(14936,16005,-4411)
MOVETO(16364,15760,-4364)
MOVETO(16741,15466,-4276)
MOVETO(16785,15046,-4163)
MOVETO(16109,146 79,-3954)
MOVETO(15971,14338,-3815)
MOVETO(16115,14037,-3755)
MOVETO(16510,13572,-3751)
MOVETO(20963,11700,-3748)
MOVETO(22828,10811,-3 745)
MOVETO(24107,10053,-3654)
MOVETO(25744,9219,-3694)
MOVETO(27702,7609,-3752)

Теперь очень важный момент ! Сохраняем скрипт блокнотом например с названием rewty6854.txt . Только надо обязательно сохранять в кодировке Юникод !!!! Иначе скрипт не будет работать . После того как вы сохранили , меняем расширешие файла с .txt на .SEC . Потом скрипт надо поместить в папку script Волкера или Ингейма .

Небольшой полезный совет .
У вас будет много скриптов и вы рано или поздно начнете в них путаться . Скрипты улучшаются , переделываются и прочее . Так для того , чтобы не путаться в начале скрипта полезно писать комментарии . Для этого в самом начале строки пишется // , например

//-------------------------------------------------
//
// скрипт на перемещение
// из А в Б
// версия 0.01 от 07.01.2006
//
//--------------------------------------------------

Когда у скрипта будет такая шапка , то вы уже не запутаетесь . Полезно и комментарии внутри скрипта писать , для себя , чтобы легче было , когда вы будете улучшать скрипт .
Теперь напишем скрипт посложнее , например на крафт ССД.
Чтобы скрафтить соску нужна команда USEITEM .
Тоесть мы использем предмет , в данном случае - рецепт .
Вот и пишем так

USEITEM(Recipe: Soulshot: D Grade[ID=1804])

Но этого мало . После этой команды отроется рецепт , но чтобы соска скрафтилась , надо дать команку - Креате

DLGSEL([Create])

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

USEITEM(Recipe: Soulshot: D Grade[ID=1804])
DELAY(500)
DLGSEL([Create])
DELAY(500)

Вот уже есть скрипт . Но по нему будет скрафчена одна соска и он выключится . Надо заставить скрипт повторяться , зациклить его так сказать . Для этого в начале скрипта пишем метку , например - LABEL(metka005) . Тогда по команде
JMP(metka005) скрипт вернется вна эту метку и снова будут повторяться действия

LABEL(metka005)
USEITEM(Recipe: Soulshot: D Grade[ID=1804])
DELAY(500)
DLGSEL([Create])
DELAY(500)
JMP(metka005)

Вот уже готовый рабочий скрипт . С его помощью уже можно крафтить Но ...
Надо его немного улучшить , об этом будет немного дальше .

А пока немного о другом .
Названия предметов и их ИД для разных серверов могут быть РАЗНЫЕ !!! Разными могут быть и фразы в диалогах , например как в даноом случае - [Create]
Правильные для вашего сервера можно узнать , раскодировав файлы клиента , где все это есть . Но это конечно очень нудный путь . Можно сделать гораздо проще . Испльзуйте Ингейм , в разделе Маке Скрипт есть возможность снять названия и ИД предметов и НПСей . Также можно запомнить и сохранить команды с диалогами , которые вы потом можете вставить в скрипт . Только если в командах/названиях корейский язык , надо включить в Виндовсе поддержку корейского языка , иначе не будут правильно выполняться скрипты .

Будем улучшать скрипт
.
Вначале надо решить что еще нужно , а потом собрать до кучи .

Делаем шапку , для чего , я уже выше обьяснял

//-----------------------
//
// крафт ССД
//
//-------------------------

При крафте сосок расходуется мана . поэтому крафтить надо сидя , быстрее мана регенерится . Пишем команду

CharStatus(STAND,==,1)
{
ChangeWaitType(0)
DELAY(1500)
}

Что она делает . Проверяет условие , сидит или стоит чар . Если стоит , то будут выполняться команды в скобках . Иначе эти команды будут пропущены . Вот чара посадили .

Теперь в процессе крафта расходуется мана . Надо иметь 30 и больше маны для крафта ССД . Поэтому напишу такое условие

LABEL(metka010)
CHARSTATUS(CMP,<,31)
{
DELAY(1000)
JMP(metka010)
}

Что будет происходить . Если маны меньше 31 , то скрипт подождет секунду и снова возратится на проверку этого условия . И только когда маны достаточно он будет работать дальше .

В процессе крафта расходуются кристаллы и соул оре . Поэтому добавлю такую поверку

ITEMCOUNT(Crystal: D Grade[ID=1458],==,0)
{
EXIT()
}
ITEMCOUNT(Soul Ore[ID=1785],==,0)
{
EXIT()
}

Эти проверки если нету кристалов или соулов , то они выключают скрипт командой EXIT()

Ну почти все , но добавлю еще одну проверку . Бекпак не резиновый . Рано или поздно может переполниться . Вот добавлю такую проверку . Допустим этот скрипт будет у крафтера , который и крафтит и продает одновременно . Если веса больше чем 79% то скрипт тоже зациклится и будет ждать , пока купят соски

LABEL(metka015)
CHARSTATUS(WEIGHT,>=,79)
{
DELAY(5000)
JMP(metka015)
}

А теперь соберу все до кучи )))
Вот готовый скрипт на крафт сосок ССД
Хоть и сырой но своими руками деланый)С уважением ваш Obey177
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 13.07.2010, 16:49   #2
 Разведчик
Аватар для БрутальныйЧел
 
БрутальныйЧел никому не известный тип
Регистрация: 12.07.2010
Сообщений: 12
Популярность: 10
Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: FAQ по скриптописанию!!!

SP - Хрен знает что такое
RACE = Это еще менее понятно (с) автор

хоть я и не шарю в этом,но осмелюсь предположить,что это скорее всего Skill Points (очки опыта) которые за убийства мобов дают

Race - раса игрока,скорее всего.
________________
С огромной радостью приму помощь в шмоте\бруте l2.overworld.su!x)
  Ответить с цитированием
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ по скриптописанию Razzor Скрипты и перехват пакетов 23 26.03.2011 18:57

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 09:35.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net