Четверг, 18.12.2025, 22:21
Приветствую Вас Гость | RSS

Lineage ][ Energy

Посмотри!

Главная » 2008 » Октябрь » 18 » Как изменить предмет? на ява сервере!
Как изменить предмет? на ява сервере!
16:36
Оружие, броня, параметры скиллов сохранены в XML файлах и в базе данных. В скором времени
использование базы данных для скиллов будет удалено. В XML файлах сохранено описание как вещи и скиллы должны
влиять на статы (которые используются для подсчета повреждений, шансов и т.д.).

Вот пример XML файла для оружия и брони:
Код HTML:
Первая строчка нужна только для самого языка XML, пропустите её.

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

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

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

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

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

И снова: может быть множество условий , они могут иметь условие присоединенное к игроку , и каждый из них
может влиять на один или несколько статов игрока ( , , ,
), и каждый стат будет добавлен только в том
случае когда условие будет выполнено.

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






которое всего лишь добавляет 36 пунктов к power defence для каждого игрока который оденет её, без каких-либо условий.

Скиллы описаны практически так же, но с одним дополнением - у скиллов есть уровни. По-этому значение для
увеличения\уменьшения стата будет зависеть от уровня скилла. Для этих целей мы имеем таблицы:
Код HTML:


200 400








В строке вы выборочно указываете количество уровней. Затем вы провозглашаете таблицу (вы можете провозгласить
много *04 ), каждый из них будет иметь 'level' значения отделенные друг от друга пробелами. Название таблицы может быть
любым, но должно начинаться с символа #. В значениях вы указываете название вашей таблицы.

Сейчас я опишу "order" параметр. "Order" это порядок проведения расчетов. Давайте представим что мы имеем base power
defence игрока: basePDef
защита одетого доспеха: armourPDef
level modifier of the player: lvl
passive skill of power defence которое надо добавить: skillPDef1
buff of power defence которое надо умножить: skillPDef2

Получаем такую формулу:
((basePDef + armorPDef)*lvl + skillPDef1)*skillPDef2

Знаки умножение\суммы в этой формуле указаны 'order'ом расчета. Получается:
basePDef будеть иметь order 0x10
armorPDef будеть иметь order 0x10
lvl будеть иметь order 0x30
skillPDef1 будеть иметь order 0x40
skillPDef2 будеть иметь order 0x50

Значения с одинаковыми 'order'ами расчета будут рассчитаны в не предсказуемом порядке. По-этому, никогда не указывай
одинаковый order параметрам add/substiture и multiplay/divide.

Немного больше о условиях. Вы можете указывать логические операции , , :
Код HTML:
















Условиями являются:
Код HTML:
<!-- проверяет рассу игрока -->
<!-- проверяет является ли уровень игрока таким, или выше указанного здесь -->
<!-- Делает проверку игрока на выполнение действий: sit, walk, run, swim, etc -->
<!-- проверяет является ли уровень цели таким, или выше указанного здесь -->
<!-- игроков одета броня указанного типа, или оружие указанного вида.
Броня бывает Light, Heavy, Magic,
оружие: Shield, Sword, Blunt, Dagger, Bow, Pole, Etc, Fist, Dual Sword, Dual Fist -
список типа разделен запятыми -->

Операциями над значениями являются:
Код HTML:
<!-- add a value -->
<!-- значение подстановки -->
<!-- умножить на значение -->
<!-- разделить на значение -->

Операция для "случайных" чисел и корней и других математический функций возможно будут добавлены позже, в случае
необходимости.

Вы должны указать значение не как константу, а как выражение:
Код HTML:


10

0.2












Такое выражение начинает расчитывать со значение 0, и для примера вверху мы имеем уровень игрока умноженный на
значение с таблицы, и это значение будет использовано для для расчета повреждений манны для каждого периода эффекта.
Итого, в результате мы имеем - повышеную точность (accuracy) в бою плюс отнимание за это манны (МР).
Возможные значения для рассчетов:
Код HTML:
$player_level
$target_level
$player_max_hp
$player_max_mp

Продолжительными эффектами скиллов являются:
Код HTML:
<!-- buff/debuff, для debuff исользуйте отрицательные значения -->
<!-- единоразовое отнятие HP -->
<!-- единоразовое отнятие MP -->
<!-- единоразовое увеличение HP -->
<!-- "заряжает" игрока, подготавливает его для использования другого скилла -->
<!-- relaxing skill -->

--------------------------------------------------------------------------
Статья взята с
--------------------------------------------------------------------------

Добавлено через 1 минуту
Вот некоторые статы для редактирования.
Код HTML:
'rEvas'
'cAtk'
'pAtkSpd'
'mAtkSpd'
'maxНp'
'maxMp'
'pAtk'
'mAtk'
'regMp'
'mDef'
'pDef'
'runSpd'
'reflectDam'
'sleepRes'
'rootRes'
'stunRes'
'poisonRes'
'bleedRes'

Это не все, это всего лишь часть статов, которые мне пришли в голову, но могут вам быть полезными для редактирование
шмота и т.д.

--------------------------------------------------------------------------
Статья взята с
--------------------------------------------------------------------------

Добавлено через 4 минуты
Теперь рассмотрим как сделать какой-либо шмот уникальным.

И так, выбираем шмотик который хотим усовершенствовать: я для себя выбрал:
Код HTML:







Открываем data\stats\armor\0600-0699.xml, находим строчку с нашим "плащом магии".

Так как он плащ магии, неплохо было бы сделать его для магов. А что надо магам? Правильно МР, реген МР, скорость
каста, сила каста. Но давать всё это сразу - слишком много, по-этому сделаем какие-нибудь три изменения, например
увеличим интеллект на +1, regMp, ну и скорость каста (mAtkSpd).

Хм, с бонусами вроде определились, теперь надо определится в количестве этого бонуса, будет ли оно просто добавлять
какое-то заданное число (константу) либо проценты от уже имеющегося стата (тобишь был mdef 100, добавили 10% - получили
110).

Для себя я выбираю так:
INTу добавляю 1.
Регенерацию МР - повышаю на 20%.
Скорость каста на 25%.

Теперь что касается соответсвующего кода:

Так как мы добавляем (знак +) INT, то используем тэг :
Код HTML:


С интом разобрались, теперь что касающееся regMp (знак *, умножение):
Код HTML:


Обратите внимание на order!
Теперь скорость каста на 25%:
Код HTML:


В итоге наш плащ будет иметь такой вид:
Код HTML:









Здесь Вы можете взять ссылки на скачивание и пароль на архивы.Но данная информация не предоставляется не зарегестрированным пользователям!
Просмотров: 1976 | Добавил: nrg | Рейтинг: 0.0/0 |
Всего комментариев: 0
Меню сайта
Форма входа
Календарь
«  Октябрь 2008  »
Пн Вт Ср Чт Пт Сб Вс
  12345
6789101112
13141516171819
20212223242526
2728293031
Поиск
Друзья сайта
Lineage2 - База знаний. Будь лучшим! Lineage2 - База знаний. Будь лучшим!
Наш опрос
Какое оружие S Grade вам больше нравится?
Всего ответов: 1097
Copyright MyCorp © 2025
Сайт управляется системой uCoz