Xml И Lineage
Описание
Часть 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 координата"/>
Эти координаты показывают где будет спауниться игрок находящийся в зоне.
Спасибо за внимание
- 1
Рекомендуемые комментарии
Комментариев нет