![]() |
Изменение параметров вещей.
Оружие, броня, параметры скиллов сохранены в XML файлах и в базе данных. В скором времени использование базы данных для скиллов будет удалено. В XML файлах сохранено описание как вещи и скиллы должны влиять на статы (которые используются для подсчета повреждений, шансов и т.д.).
Вот пример XML файла для оружия и брони: Код HTML:
<?xml version='1.0' encoding='utf-8'?> Вторая строка указывает ID вещи и её название (они должны совпадать с такими же в БД). Затем есть некоторые условия (condition) для принятия вещью изменений для статов (когда оружие одето или снято). Таких условий может быть от ноль, один, два, или более. Условие заключено в тэг <for>. Тэг условия состоит из самого условия которое следует проверить на игроке и эффекта на статы игрока. В вышенаписанном примере условие добавление эффекта - это расса людей (если не хуман - эффект не включится). Условие заключено в тэг <cond>, и оно не обязательно. Если условия не указаны - все игроки (которые одевают эту броню\оружие) будут получать эффект от него. Эффект - это добавление или умножение статов игрока на заданное количество. В примере стат 'pDef' (power defence) и его значение 36. Это означает, что к power defence игрока будет добавлено значение 36. Я опишу 'order' ниже. В конце, даже если функцию подключена к игроку, необходимо чтобы было условие когда оно будет работать. В нашем примере условие таково: pDef будет увеличен только тогда, когда цель игрока - атака skeleton. И снова: может быть множество условий <for>, они могут иметь условие присоединенное к игроку <cond>, и каждый из них может влиять на один или несколько статов игрока ( <add>, <sub>, <mul>, <div> ), и каждый стат будет добавлен только в том случае когда условие будет выполнено. Конечно, всё это не обязательно. Для большинства предметов брони и оружия вы будете иметь что-то простое похожее на это: Код HTML:
<?xml version='1.0' encoding='utf-8'?> Скиллы описаны практически так же, но с одним дополнением - у скиллов есть уровни. По-этому значение для увеличения\уменьшения стата будет зависеть от уровня скилла. Для этих целей мы имеем таблицы: Код HTML:
<?xml version='1.0' encoding='utf-8'?> Сейчас я опишу "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. Немного больше о условиях. Вы можете указывать логические операции <and>, <or>, <not>: Код HTML:
<and><player race="Human"/><player level="11"/></and> Код HTML:
<player race="..."/> <!-- проверяет рассу игрока --> Код HTML:
<add stat='...' val='...'/> <!-- add a value --> Вы должны указать значение не как константу, а как выражение: Код HTML:
<?xml version='1.0' encoding='utf-8'?> Возможные значения для рассчетов: Код HTML:
$player_level Код HTML:
<effect name="Buff"> <!-- buff/debuff, для debuff исользуйте отрицательные значения --> Код HTML:
'rEvas' Теперь рассмотрим как сделать какой-либо шмот уникальным. И так, выбираем шмотик который хотим усовершенствовать: я для себя выбрал: Код HTML:
<item id='616' name="cloak_of_magic"> Так как он плащ магии, неплохо было бы сделать его для магов. А что надо магам? Правильно МР, реген МР, скорость каста, сила каста. Но давать всё это сразу - слишком много, по-этому сделаем какие-нибудь три изменения, например увеличим интеллект на +1, regMp, ну и скорость каста (mAtkSpd). Хм, с бонусами вроде определились, теперь надо определится в количестве этого бонуса, будет ли оно просто добавлять какое-то заданное число (константу) либо проценты от уже имеющегося стата (тобишь был mdef 100, добавили 10% - получили 110). Для себя я выбираю так: INTу добавляю 1. Регенерацию МР - повышаю на 20%. Скорость каста на 25%. Теперь что касается соответсвующего кода: Так как мы добавляем (знак +) INT, то используем тэг <add>: Код HTML:
<add val='1' order='0x10' stat='INT'/> Код HTML:
<mul val='1.20' order='0x20' stat='regMp'/> Теперь скорость каста на 25%: Код HTML:
<mul val='1.20' order='0x20' stat='mAtkSpd'/> Код HTML:
<item id='616' name="cloak_of_magic"> |
Ответ: Создание мега вещей.
А после создания этих вещей при обновлении сервера надо будет их переносить дополнительно или они как то пропишутся ?
|
Ответ: Создание мега вещей.
Если датапак полностью обновлять то придётся прописывать заново.
|
Ответ: Создание мега вещей.
а как можно добавить новый ресурс (к примеру Quest Item с новым названием)
пробую по методики добавления нового персонажа таблица etcitem капирую строку в базе данных заменяю Item_ID и Name захожу в игру... при ввоже Item_ID придмет не дабавляется в инвентарь что я не так делаю и как это можно реализавать? |
Ответ: Создание мега вещей.
Цитата:
Возможно косвенно определить "наличие предмета", добавить итему ВЕС и поглядеть на изменение в рюкзаке. п.с. Что за "методика добавления нового персонажа"? |
Ответ: Создание мега вещей.
Цитата:
методика добавления новых персонажей NPС лезим в Navicat открываем там таблицу NPC копируем строку одного из NPC меняем: ID - новый номер для добавления спаун точки Name - имя персонажа ServerSideName - подленнасть имяни если 0 настоящие имя, 1 то имя которое вы ему дали ServerSideTitle - подленнасть титула если 0 настоящие имя, 1 то титул которое вы ему дали если хотите научить говорить его с вами, создайте HTM фаил с номером его нового ID в папке характерной его типу в таблице (type => L2Merchant - htm/merchant/) в нём уже по примеру соседних *.HTM файлов пишим деалог вот такая вот наука .... ЗЫ: когда окончательно прощупую всю систему добавление новых рецептов и тп напишу FAQ =) |
Ответ: Создание мега вещей.
ясненько =) я думал "персонаж" в смысле игрок, меня интересует как можно добавить новый "класс" в игре, но это немного другая тема, наверное стоит создать отдельную..
|
Ответ: Изменение параметров вещей.
А подскажите пожалуйста как сделать чтобы мою новую вещь мог одеть скажем только гном
(как рапира у камаэль) в каких файлах и какие значения менять. не могу найти |
Ответ: Изменение параметров вещей.
Цитата:
<cond><player race="Human"/></cond> Если только для гнома, то вместо Human - Dwarf. Если я в чём то неправ - поправьте. |
Ответ: Изменение параметров вещей.
Большое Спасибо.
За столь замечательное описание. Очень понравилось. +интересно. +заинтересовало. |
Текущее время: 05:25. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2023, Jelsoft Enterprises Ltd. Перевод: zCarot