Перейти к содержанию
Авторизация  

Xml И Lineage


Описание

Узнаем как правильно разобраться в XML

Часть 1) чтобы быть в курсе:

Начнем с того, что же такое XML? Это текстовый формат, предназначенный для хранения структурированных данных, для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML), иногда называемых словарями.

Первая строка XML-документа называется объявлением XML — это необязательная строка, указывающая версию стандарта XML (обычно это 1.0), также здесь может быть указана кодировка символов и внешние зависимости.

<?xml version="1.0" encoding="UTF-8"?>

Спецификация требует, чтобы процессоры XML обязательно поддерживали Юникод-кодировки UTF-8 и UTF-16. Признаются допустимыми, поддерживаются и широко используются и другие кодировки.

Так же в XML есть возможность добавления комментария. Комментарий может быть размещен в любом месте дерева. XML комментарии размещаются внутри пары тегов <!-- и -->. Два знака дефис (--) не могут быть применены ни в какой части внутри комментария. Вот пример комментария:

<!-- Текст -->

Но мы не будем углубляться во все особенности XML, нас интересует только часть, которая касается Lineage 2 XML в сервере Lineage применяется для описания статов оружия, брони, скилов и т.д. Для оружия это например параметры физ. и маг. атаки, для брони - защиты, для скилов - продолжительность действия, сила, эффект и т.д. А например в файле "servername.xml" хранятся имена серверов по умолчанию. Эти имена могут быть легко изменены. Но помимо изменений на серверной части необходимы и изменения со стороны клиента (со стороны клиента необходимо изменить файл "servername-e.dat". Изменяться *.dat файлы клиента могут с помощью специальных программ - L2Dat_EncDec и L2 FileEdit. В следующей части я научу вас изменять статы вещей.

Часть 2) Меняем статы вещей.

Возьмем итем Shirt. Это неприметная НГ шмотка. На ее примере я поясню что, где и когда. Вот фрагмент XML кода:

<item id='21' name="Shirt">
<for>
<add val='36' order='0x10' stat='pDef'/>
</for>
</item>

Для измения ее статов тут нам нужна только одна строчка:

<add val='36' order='0x10' stat='pDef'/>

Что бы было понятнее расшифрую:

<add val="значение" order="место в формуле" stat="что собственно прибавлять, в нашем случае физ. защиту" />

Тег <add />означает прибавление и является переменной. На его месте могут так же быть, например, <sub />, <set />, <mul />, <enchant /> . И так. Что же означают эти значения?

1.

<add /> - прибавление статов. То есть если вы оденете вещь, ваши статы увеличатся. Значение order будет 0x10.
[color="#0000FF"]<add val='100' order="0x10" stat='pDef'/>[/color]

Данный код значит что при одевании вещи вам прибавится 100 единиц стата (в данном случае P. Def).

 

2.

<sub /> - вычитание статов. То есть если вы оденете вещь, ваши статы уменьшатся. order так же - 0x10.
[color="#0000FF"]<sub val='100' order="0x10" stat='mDef'/>[/color]

Данный код значит что при одевании вещи у вас отнимется 100 единиц стата (в данном случае M. Def).

 

3.

<set /> - назначает вам строгое значение стата. То есть если вы оденете вещь со значением 20, то тот стат, но который это значение влияет будет равен 20. Order 0x08.
[color="#0000FF"]<set val='100' order="0x08" stat='pDef'/>[/color]

Данный код значит что при одевании вещи у вас станет 100 единиц стата (в данном случае P. Def).

 

4.

<mul /> - умножение статов. То есть если вы оденете вещь, ваши статы умножатся. Order 0x30.
[color="#0000FF"]<mul val='100' order="0x10" stat='mDef'/>[/color]

Данный код значит что при одевании вещи значение стата умножится на 100 (в данном случае M. Def).

 

5.

<enchant /> - показывает, на сколько увеличится стат при заточке еще на +1. Order 0x0C.
[color="#0000FF"]<enchant val='100' order="0x0C" stat='pDef'/>[/color]

Данный код значит что при заточке вещи еще на 1 ваши статы (в данном случае P. Def) увеличатся на 100.

 

Ниже приведена таблица значений "order":

0x08 - set

0x10 - add/sub (оружие, броня, бижутерия) и (STR, CON, DEX, INT, WIT ,MEN)

0x20 - не нужно

0x30 - mul/div (masteries, buffs, debuffs, SA (специальные возможности оружия), бонусы брони)

0x40 - add/sub (masteries, buffs, debuffs, SA (специальные возможности оружия))

0x50,0x60 - не нужно

0x0C - enchant

 

Часть 3) Меняем скилы:

Самая большая часть моей статьи Начну со значений, ибо вы должны знать что изменяете:

 

Изменение максимального количества HP - maxHp

Изменение максимального количества CP - maxCp

Изменение максимального количества MP - maxMp

Регенерация НР - regHp

Регенерация СР - regCp

Регенерация МР - regMp

Эффективность хила - gainHp

Умение хила - giveHp

Бонус хила - bonusHp

Физическая защита - pDef

Магическая защита - mDef

Физическая атака - pAtk

Магическая атака - mAtk

Скорость физической атаки - pAtkSpd

Скорость магической атаки - mAtkSpd

Скорость отката - mReuse

Защита щитом- sDef

Угол защиты щитом - shieldDefAngle

Критический удар - cAtk

Прибавка к критическому удару - cAtkAdd

Физ. урон в пвп (например для Duel Might) - pvpPhysDmg

Маг. урон - pvpMagicalDmg

Урон скилом - pvpPhysSkillsDmg

Уворот - rEvas

Уворот от скилов- pSkillEvas

Шанс блокировки щитом - rShld

Шанс крита - rCrit

Шанс Blow - blowRate

Шанс Lethal - lethalRate

Маг. крит. шанс - mCritRate (mCrit doesn't work!!)

EXP,SP шанс - rExp

Cancel - cancel

Точность - accCombat

Зона покрытия физ. атаки - pAtkRange (for fighters)

Зона покрытия маг. атаки- mAtkRange (for mages)

Угол атаки (только для воинов) - pAtkAngle

Количество атакуемых - atkCountMax

Откат физ. скилов - atkReuse

Скорость бега - runSpd

Скорость ходьбы - walkSpd

STR - STR

DEX - DEX

WIT - WIT

INT - INT

MEN - MEN

 

Уязвимости:

 

Агрессия - aggressionVuln

Кровотечение - bleedVuln

Яд - poisonVuln

Стан - stunVuln

Парализация - paralyzeVuln

Удерживающие заклинания - rootVuln

Сон - sleepVuln

"Перекидывание" таргета -confusionVuln

Движение - movementVuln

Огонь - fireVuln

Ветер - windVuln

Вода - waterVuln

Земля - earthVuln

Святые атаки - holyVuln

Темные атаки - darkVuln

Резист к cancel - cancelVuln

Дебаффы - debuffVuln

Резист к криту - critVuln

 

Резисты простив оружия (тут думаю описание не нужно)

 

noneWpnVuln

swordWpnVuln

bluntWpnVuln

daggerWpnVuln

bowWpnVuln

crossbowWpnVuln

poleWpnVuln

etcWpnVuln

fistWpnVuln

dualWpnVuln

dualFistWpnVuln

bigSwordWpnVuln

 

Отражение:

 

Процент отражаемого урона - reflectDam (pay attention! not reflectDmg!! reflectDam)

Процент рассеиваемого урона - absorbDam

Процент переносимого урона- transDam

Отражение маг. скилов - reflectSkillMagic

Отражение физ. скилов - reflectSkillPhysic

 

Другое (для примера):

 

Атака на гигантов - pAtk-giants

Защита на нежить - pDef-undead

Атака на животных - pAtk-animals

Защита на монстрах - pDef-monsters

Лимит инвентаря - inventoryLimit

Лимит ВХ - whLimit

Freight лимит - FreightLimit

Лимит продажи. - PrivateSellLimit

Лимит покупки - PrivateBuyLimit

Лимит гномьего крафта - DwarfRecipeLimit

Лимит common крафта - CommonRecipeLimit

Потребление МР физ. скилами - PhysicalMpConsumeRate

Потребление МР маг. скилами - MagicalMpConsumeRate

Потребление МР дансами - DanceMpConsumeRate

Потребление НР - HpConsumeRate

Потребление МР - MpConsume

Потребление соулшотов - soulShotCount

Skill Мastery - skillMastery

Время пребывания под водой - breath

 

Вроде все Любой скилл начинается с открывающего тега и заканчивается закрывающим тегом . В скилах есть 3 обязательных тега, без которых он не будет работать - это target, skilltype и operatetype. Давайте разберемся что это такое вообще

 

1. target - тег, который показывает на кого будет браться таргет, что видно из названия. Принимает следующие значения:

 

TARGET_SELF - обозначает, что скилл будет использоватся исключительно на его владельца (селф бафф типа Battle Roar или War Cry)

TARGET_NONE - цель неопределена

TARGET_ONE- обозначает, что цель вашего скилла - тот кто в таргете.

TARGET_AREA - обозначает, что скилл будет массовым

TARGET_AGGREMENT - обозначает, что целью будет тот, кто вас атакует

 

2. skilltype - тег, указывающий на тип скилла (бафф, дебафф)

Принимает следующие значения:

BUFF - бафф (оказывает положительное воздействие)

DEBUFF - дебафф (оказывает негативное воздействие)

 

3. operatetype - этот тег служит для определения типа скилла (активный либо пассивный)

OP_ACTIVE - активный скилл, может быть использован игроком

OP_PASSIVE - пассивный скилл, скилл с таким operateType не может быть использован (действует всегда)

Это были обязательные переменные, используемые в скилах. Теперь перейдем к остальным:

-power - сила скилла

-hitTime - скорость. Для баффа это скорость чтения заклинания, для физ. скилла - скорость атаки

-reuseDelay - откат скилла

-hpconsume , mpconsume - потребление МР, НР

-castRange - это дальность использования того или иного скилла (дистанция)

-isMagic, isDebuff, isBuff - это наводящие теги, могут иметь значение "true" и "false". К примеру, isBuff = true (это значит что скилл является баффом)

-effectRange - радиус действия (для массовых скиллов)

-agro - что такое агр, и что такое сила агра думаю объяснять не нужно.

Это основное что вам понадобится. Теперь расскажу вам о значении тега в скиллах.

Тег в скиллах Lineage 2 встречается очень часто. Обычно данный тег используется для "добавления сложных действий" к скиллу. Если скилл имеет сложный вариант реализации то обычно в тег добавляют некоторые отдельные значения, которые реализованы в ядре ява сервера Lineage. Самый важный тег для использования здесь - это .

Приведем пример использования тега и тега :

<for>
<effect name="тип" val="значение" time="время действия" stackOrder="переменная" stackType="переменная ядра">
</effect>
</for>
</skill>

 

Что сие значит:

 

name - Это тип эффекта

val - Значение эффекта. Для дебаффов - шанс прохождения, для боевых скилов - сила.

time - время действия эффекта

StackOrder и stackType - это значения уже описаные в данном скиле. order и тип или же значения и переменные с ядра сервера.По скилам все вроде)

 

Часть 4) Изменение зон:

 

Для начала описания зон используется тег:

<zone id="ID зоны" type="тип" shape="вид" minZ="минимальная Z координата" maxZ="максимальная Z координата">
<!--Комментарий-->
</zone>

 

Пройдемся по значениям:

 

id - идентификатор зоны.

type - тип зоны (town, arena, jailzone). Например:

Town - мирная зона (город)

Arena - боевая зона (PVP)

JailZone - зона. Просто зона (извините за аллегорию ). По другому - тюрьма. В ней запрещены разговор и телепорт.

shape - это форма или вид зоны. Может быть двух типов :

-nPoly

-Cupoid.

minZ - это минимально допустимая координата высоты (z) в данной зоне .

maxZ- это максимально допустимая координата высоты (z) в зоне.

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

Зоне можно задать имя:

Так же внутри тегов используется описание точек "респавна" чара в них.

Приведем пример :

<stat name="spawnX" val="X координата"/>
<stat name="spawnY" val="Y координата"/>
<stat name="spawnZ" val="Z координата"/>

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

 

Спасибо за внимание

  • Like 1


Рекомендуемые комментарии

Комментариев нет

×
×
  • Создать...