L2J_CE

Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.
L2J_CE

L2J_CE Server


Участников: 2

    <mul> <add> и все такое)

    goshabty
    goshabty


    Сообщения : 24
    Дата регистрации : 2010-05-14

    <mul> <add> и все такое) Empty <mul> <add> и все такое)

    Сообщение  goshabty Вт Июл 06, 2010 8:28 pm

    Пытался разобратся с мулом... но получилось не все...)
    Кто знает, вставьте нужные числа плиз:
    Код:
    <mul val='???' order='???' stat='pAtkSpd'/>  =========> 5% атак спид
    <mul val='???' order='???' stat='pAtkSpd'/>  =========> 10% атак спид
    <mul val='???' order='???' stat='pAtkSpd'/>  =========> 15% атак спид
    <mul val='???' order='???' stat='pAtkSpd'/>  =========> 20% атак спид
    <mul val='???' order='???' stat='pAtkSpd'/>  =========> 25% атак спид
    <mul val='???' order='???' stat='pAtkSpd'/>  =========> 30% атак спид
    а дальше я сам разберусь)

    Все разобрался:
    Код:
    <mul order='0x30'  stat='pAtkSpd' val='1.05'/> 5%
    <mul order='0x30'  stat='pAtkSpd' val='1.10'/> 10%
    <mul order='0x30'  stat='pAtkSpd' val='1.15'/> 15%
    <mul order='0x30'  stat='pAtkSpd' val='1.20'/> 20%
    <mul order='0x30'  stat='pAtkSpd' val='1.25'/> 25%




    Последний раз редактировалось: goshabty (Вт Июл 06, 2010 11:12 pm), всего редактировалось 2 раз(а)
    neonv1
    neonv1


    Сообщения : 126
    Дата регистрации : 2010-04-26

    <mul> <add> и все такое) Empty Re: <mul> <add> и все такое)

    Сообщение  neonv1 Вт Июл 06, 2010 10:03 pm

    Код:
    XML и XML в Lineage 2
    Часть 1. Введение:

    Начнем с того, что же такое XML? Это текстовый формат, предназначенный для хранения структурированных данных, для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML), иногда называемых словарями.
    Первая строка XML-документа называется объявлением XML — это необязательная строка, указывающая версию стандарта XML (обычно это 1.0 => Пример:), также здесь может быть указана кодировка символов и внешние зависимости. Пример: UTF-8" standalone="yes"?>
    Спецификация требует, чтобы процессоры XML обязательно поддерживали Юникод-кодировки UTF-8 и UTF-16. Признаются допустимыми, поддерживаются и широко используются и другие кодировки.
    Так же в XML есть возможность добавления комментария. Комментарий может быть размещен в любом месте дерева. XML комментарии размещаются внутри пары тегов. Два знака дефис (--) Пример: <!-- это комментарий --> не могут быть применены ни в какой части внутри комментария.
    XML в Lineage 2

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

    Часть 2.Изменение статов вещей.

    Все XML файлы со статами, скилами лежат, в сборках Lineage 2, тут: \gameserver\data\stats

     Для наглядного примера возьмем Item(вещь) Shirt(Находится по такому пути: gameserver\data\stats\armor\0000-0099.xml). Это неприметная НГ вещь мира Lineage 2. На ее примере я поясню что, где и когда нужно изменять. Вот фрагмент XML кода:
    <item id='21' name="shirt">

    <for>
    <cond><player race="Human"/></cond>
    <add stat='pDef' order='0x10' val='36'>
    <target kind="skeleton">
    </add>
    </for>
    </item>

    Первая строчка нужна только для самого языка XML, пропустите её.

    Вторая строка указывает ID вещи и её название (они должны совпадать с такими же в БД).

    Затем есть некоторые условия (condition) для принятия вещью изменений для статов (когда оружие одето или снято).
    Таких условий может быть от ноль, один, два, или более. Условие заключено в тэг <for>.

    Тэг условия состоит из самого условия которое следует проверить на игроке и эффекта на статы игрока. В вышенаписанном примере условие добавление эффекта - это расса людей (если не хуман - эффект не включится). Условие заключено в тэг <cond>, и оно не обязательно. Если условия не указаны - все игроки (которые одевают эту броню\оружие) будут получать эффект от него.

    Эффект - это добавление или умножение статов игрока на заданное количество. В примере стат 'pDef' (power defence) и его значение 36. Это означает, что к power defence игрока будет добавлено значение 36. Я опишу 'order' ниже.

    В конце, даже если функцию подключена к игроку, необходимо чтобы было условие когда оно будет работать. В нашем примере условие таково: pDef будет увеличен только тогда, когда цель игрока - атака skeleton.

    И снова: может быть множество условий <for>, они могут иметь условие присоединенное к игроку <cond>, и каждый из них может влиять на один или несколько статов игрока ( <add>, <sub>, <mul>, <div> ), и каждый стат будет добавлен только в том случае когда условие будет выполнено.

    Конечно, всё это не обязательно. Для большинства предметов брони и оружия вы будете иметь что-то простое похожее на это:
    Код :

    <item id='21' name="shirt">
    <for>
    <add stat='pDef' order='0x10' val='36'/>
    </for>
    </item>
    Что всего лишь добавляет 36 пунктов к power defence для каждого игрока который оденет её, без каких-либо условий.
    Тег <add />означает прибавление и является переменной. На его месте могут так же быть, например, <sub />, <set />, <mul />, <enchant />

    И так. Что же означают эти значения?

    <add /> – прибавление статов. То есть если вы оденете вещь, ваши статы увеличатся. Значение order будет 0?10. <add val='100? order=»0?10? stat='pDef'/>

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


    2. <sub /> –вычитание статов.То есть если вы оденете вещь, ваши статы уменьшатся. order так же – 0?10. <sub val='100? order=»0?10? stat='mDef'/>.
    Данный код значит что при одевании вещи у вас отнимется 100 единиц стата (в данном случае M. Def).

    3.<set /> – назначает вам строгое значение стата. То есть если вы оденете вещь со значением 20, то тот стат, но который это значение влияет будет равен 20. Order 0?08. <set val='100? order=»0?08? stat='pDef'/>. Данный код значит что при одевании вещи у вас станет 100 единиц стата (в данном случае P. Def)


    4.  <mul /> - умножение статов. То есть если вы оденете вещь, ваши статы умножатся. Order 0x30.

    <mul val='100' order="0x10" stat='mDef'/>

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

    5.  <enchant />  - показывает, на сколько увеличится стат при заточке еще на +1. Order 0x0C.

    <enchant val='100' order="0x0C" stat='pDef'/>

    Данный код значит что при заточке вещи еще на 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
    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

    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. Зоны в Lineage 2:

    <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 используются для избежания прохождения через текстуры, провалов под них и т.д.
    Зоне можно задать имя:

    Так же внутри тегов используется описание точек "респавна" чара в них.
    Приведем пример : Смотрите файл zone.xml в своей сборке, для примера.

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

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


    Сообщения : 24
    Дата регистрации : 2010-05-14

    <mul> <add> и все такое) Empty Re: <mul> <add> и все такое)

    Сообщение  goshabty Вт Июл 06, 2010 10:28 pm

    neonv1 пишет:Учимся сами, не раз пригодится.
    прочитал, в итоге так и не понял...

    "4. <mul /> - умножение статов. То есть если вы оденете вещь, ваши статы умножатся. Order 0x30.
    <mul val='100' order="0x10" stat='mDef'/> (Красные числа разные О.о)
    Данный код значит что при одевании вещи значение стата умножится на 100 (в данном случае M. Def)."

    если я поставлю
    <mul val='15' order="0x10" stat='mDef'/>
    то это будет м деф +15%?
    neonv1
    neonv1


    Сообщения : 126
    Дата регистрации : 2010-04-26

    <mul> <add> и все такое) Empty Re: <mul> <add> и все такое)

    Сообщение  neonv1 Ср Июл 07, 2010 3:57 am

    goshabty пишет:
    <mul val='15' order="0x10" stat='mDef'/>
    то это будет м деф +15%?
    Получается так.
    Но я придерживаюсь этого:
    <mul order="0x30" stat="mDef" val="1.15"/> 15%

      Текущее время Ср Ноя 20, 2024 10:55 pm