30.09.2009, 20:24 | #1 |
Пользователь
|
Урок 2. Основы XML разработки в сфере l2 сервера.
Здесь предоставлен урок по детальному изучению и освоению "XML" для работы с датапаком сервера l2 ява.
Как вы уже поняли, речь пойдет о датапаке, а именно о его части - xml документах. Для начала, приведу вам мое понимание "xml". XML в сборках ява серверов l2, это набор каких либо заранее установленых переменных, с введением в них ограничений и ряда правил выполнения. Тоесть, xml файлы не описывают процесс, а лиш придают ему численные значения, такие как стоимость(шмот), время, сила, ефект, радиус, скорость и так далее(скилы), координаты и ограничения(зоны) и прочие. Глава 1. Распространенность файлов в датапаке (xml) Итак, рассмотрим архитектуру, где же мы можем встретить .xml файлы и за что они отвечают. 1. Мультиселлы. Место расположения - /data/multisell. Файлы, имеют формат .xml. Основное предназначение - листы магазинов(покупка/обмен). Зачастую приминимы в так называемых "гм шопах" и прочих шалостях. 2. Статы - файлы, распологаются в папке /data/stats, здесь можно выделить несколько типов "статов" : a) Статы арморов(/data/stats/armor) - предназначены для обозначения параметров того или иного армора (брони в мире lineage2), к примеру - p-def , m-def, и прочие. b) Статы оружия(/data/stats/weapon) - предназначены для обозначения параметров Weapons(оружия) в мире Lineage2 и ява эмулятора, к примеру - p-atack, m-atack и другие. c) Статы скилов (/data/stats/skill) - предназначены для описания скилов, придают им совокупность каких то свойств под каким то "id" (номером), к примеру - m-damage, m-def, critical rate, effect. d) Аугментации (/data/stats/augmentation) - используется для описания лайф стонов и их действия когда находятся "в рабочем состоянии" (тоесть какой скилл или стат юзать). 3. Зоны. Место расположения - /data/zones/ , используются для работы с различными квадратами мира Lineage2, точек возрождения и прочих. Активно сотрудничают с базой данных(аналогичная таблица). Зачастую, помогают при отсутсвии гео-даты (ограничивают зону - по координатам Y к примеру, это удобно). 4. Прочие файлы. Это файлы, одиночно встречающиеся в датапаке ява эмулятора. Вот вам некоторые из них (не все) : /data/ тут файлы : servername.xml (отвечает за имена серверов при их регистрации), recipes.xml(отвечает за рецепты - что заберет и что получим), dimentionalrift.xml (обеспечивает респавн мобов с промежутком в ремени в комнатах дименшин рифта), а так же другие файлы (найти можно руками и подумать над их назначением). Глава 2. Основные теги и их использование. В xml, как и в хтмл - есть как контейнерные теги, так и одиночные. Напомню вам, контейнерные теги, это те теги, которые имеют сначала открывающий тег : <тег1> а после окончания его описания - закрывающий тег </тег1>. Пример : Код:
<мой_тег параметр1="значение1" параметр2="значение2"> </мой_тег> Код:
<мой_тег параметр1="значение1" параметр2="значение2" /> Код:
<мой тег параметр="значение"> Код:
<?xml version="1.0" encoding="UTF-8"?> Вроде бы это просто, останавливатся не будем. В каждом документе, обязательно будет "основной контейнерный тег", который обозначит начало документа(открытый тег) и конец документа (закрытый тег). Вот вам пример документа, думаю с выше поясненым вы поймете его : Код:
<?xml version="1.0" encoding="UTF-8"?> <начало_документа> содержимое документа значения переменные </начало_документа> Код:
содержимое документа значения переменные Итак, приступим к описанию по разделам документов. Глава 3. Описание общепринятых значений в мультиселлах. Как мы уже выяснили с вами, мультиселы находятся в папке /data/multisell. Цель использования - листы итемов в магазинах (их покупка, цены и т д). Рассмотрим употребляемые здесь теги. 1. Тег начала документа : Код:
<list> содержание </list> 2. Тег описания итема : Код:
<item id="порядковый номер"> описание </item> Как правило, нумеруются порядково. Тоесть цифрами, 1, 2, 3, и так далее. Приведу пример : Код:
<item id="1"> содержание </item> <item id="2"> содержание </item> ................... <item id="100"> содержание </item> а) тег который показывает - что мы отдадим за тот или иной итем : Код:
<ingredient id="ид_предмета" count="кол-во_которое_заберет" /> id="ид_предмета" - это предмет, который у вас заберет. Пример : id="57" - значит заберет адену. count="кол-во_которое_заберет" - ну тут все понятно, кол-во забраных предметов. К примеру при count="100" - заберет 100 штук id=".." б) тег который показывает, что мы получим за тот или иной итем : Код:
<production id="ид_предмета" count="кол-во" /> Только учитываем - здесь, описывается то что мы ПОЛУЧИМ. Id="ид_предмета" - показывает, какой предмет мы получим, count="кол-во" - показывает сколько мы получим количественно того или иного предмета. Пример : id="57" - получаем адену, count="500" - получаем 500 штук id="..". Теперь, обьединим наши знания одним примером : Код:
<?xml version="1.0" encoding="UTF-8"?> <list> <item id="1"> <ingredient id="57" count="500" /> <production id="4037" count="1" /> </item> <item id="2"> <ingredient id="4037" count="1" /> <production id="57" count="500" /> </item> </list> Во втором случае - наоборот, мы отдадим магазину 1 итем с id 4037 и получим 500 аден. Так же, можете эксперементировать с шмотками, банками да всем чем угодно. Глава 4. Описание общепринятых значений в статах armor и weapon. Как мы с вами уже выяснили, статы могут быть как у weapon, так и у armor. Начнем расматривать некоторые значения и как с ними работать. Код:
<item id="ид_предмета" name="название_предмета> содержимое </item> Тег, обязательно должен быть контейнерным - начало <item> и конец </item> В id - принято указывать "id" предмета. Как мы с вами знаем, все ID фиксируются в базе данных. Так что "от фары" ставить не получится. Рассмотрим самые распространёные описания итемов. а) <add ... > - данный тег, означает прибавление того или иного параметра(несет действие "+" в расчетах). Приведем пример : Код:
<add val="значение" order="место_в_формуле" stat="что_Добавлять"/> val="значение" - указывает, сколько же нужно добавть. К примеру, если мы поставим "100" - то получим в формуле "+100 единиц". order="место_в_формуле" - это место расположения данного параметра в формуле расчета. Для параметра "ADD" приняты 2 значения "order" : -0x10 -0x08(почти не используется) -0x40(для производных значений - к примеру "regHP", "rootRes" и прочие) Небуду вам морочить голову этими формулами, приведу лиш небольшой пример расчета функционала того или иного значения. Припустим, у нашего итема несколько "add" и есть и другие значения "mul" , "sub" и прочие. В какое место машына должна пихнуть их? Всё очень просто. Это, как арифметика - сначала сложение, потом - умножение / деление. Здесь - аналогично. Вот наглядный пример : Код:
((val_1 + val_2) * val3) / val4 = checksum_val stat="что_добавлять" - здесь всё просто. Как вы наверно догадались - здесь должен быть указан тот или иной параметр который будет "увеличен"(+) при использовании данного значения. Тоесть по простому, здесь должен быть укажен "стат". Примеры : "pDef", "mDef", "evesion", "shield_rate", "pDam", "mDam" и так далее. Более подробно эти значения - можете найти в ДП вашего кода. Пример готового значения : Код:
<add val="150" order="0x10" stat="pDef"/> Дальше - ваша фантазия. б) <sub .... > - параметр, обозначающий "вычитание" значений. Принцип работы - аналогично выше изложеному (про добавление) - только работает в обратную сторону - вычитает статы. Вот небольшой пример и принцип его работы : Код:
<sub val="8" order="0x10" stat="pDef"/> Описывать не буду, работает как выше изложеное, order - аналогично будет 0x10, так как действие обратно "сложению". в) <set... > - тег, который "назначает" кол-во того или иного стата. Он - исполняется в формуле до "+" или "-", и поэтому - имеет первое место. Это, как бы назначение того или иного стата для дальнейшей работы. Пример : Код:
<set val="значение" order="место_в_формуле" stat="стат"/> Order используется "0x08" (то о чем я говорил в "add"). г) <mul ...> - тег, используемый для "умножения" того или иного значения. Приведем пример : Код:
<mul val="значение" order="место_в_формуле" stat="стат" /> Возможные order : -0x30 Приведем пример : Код:
<mul val="3.5" order="0x30" stat="pDef" /> Если использовать грамотно, можно реализовывать и деление, к примеру : Код:
<mul val="0.5" order="0x30" stat="pDef" /> г) <enchant ...> - тег, показывающий, на сколько при заточке на уровень выше (при каждом +1) будет увеличен тот или иной стат. Пример : Код:
<enchant val="значение" order="место_в_формуле" stat="стат"/> Глава 5. Описание общепринятых значений в скиллах (skill). Данную главу - считаем найболее важной. Здесь не будут описаны те или иные значения, которые употреблялись выше (мы же не попугаи повторять нескол Последний раз редактировалось Александр; 07.12.2009 в 23:47. |
24.10.2009, 02:29 | #2 |
Новичок
|
Урок 2 Основы XML разработки в сфере l2 сервера
при статическом ip выделеным провайдером, можно сменить ip или нет работая через перечисленные выше прокси сервера?
|
24.10.2009, 03:35 | #3 |
Администратор
|
Попытаюсь ответить за автора статьи...
Со статическим ИП весьма несложно сделать себе проксик... для этого есть масса программ и ресурсов, например тот же... no-ip.com .. хотя он больше нужен наоборот тем, у кого динамика, анужна статика
__________________
ICQ 9-013-612 Skype Urchika Сборка L2-scripts Helios, Сборка L2-scripts Classic 1.5, Сборка L2-scripts Classic 1.0, Сборка L2-scripts Underground, Сборка L2-scripts High Five VIP , L2-scripts Guard , Личный кабинет , Проект под ключ , Ивенты. |
07.12.2009, 01:25 | #4 |
Новичок
|
а написать что автор статьи Zenn тяжело было?
|
07.12.2009, 23:44 | #5 |
Пользователь
|
|