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