««†KENVOOD†»» 12 Опубликовано 19 апреля, 2010 Часть 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 координата"/> Эти координаты показывают где будет спауниться игрок находящийся в зоне. Спасибо за внимание) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Cem 0 Опубликовано 15 января, 2012 а как будет обозначать в xml вампирик? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты