Как добавить новый предмет, НПС или скилл?

Материал из AdvExt64
Перейти к: навигация, поиск

English (en)

Данный материал не ставит перед собой задачу научить тонкостям работы с клиентскими или серверными файлами, которые необходимы для достижения поставленной задачи. Эта статья познакомит с азами и укажет направление для дальнейшего, более глубокого изучения технологии. Из предыдущей статьи мы уже знаем, что существующий контент отражается как с серверной стороны (настройки логики) и клиентской (настройки визуализации) и связь осуществляется по уникальному ID. Так:

Тип Клиент Сервер
Предмет armorgrp.dat, etcitemgrp.dat, itemname-e.dat, weapongrp.dat itemdata.txt, item_pch.txt
NPC npcgrp.dat, npcname-e.dat npcdata.txt, npc_pch.txt
Скилл skillgrp.dat, skillname-e.dat skilldata.txt, skill_pch.txt, skill_pch2.txt

Серверная часть

Для работы с серверными скриптами подойдет любой текстовый редактор, способный обрабатывать большие файлы и способный понимать форматирование и кодировку файлов. Например, Notepad ++.
Для создания новой позиции ей нужно выделить свободный, еще не занятый ID. Мы советуем выбрать некий диапазон ID под уникальные для вашего проекта позиции. Это удобно для тех случаев, если проект, например, будет переходить на следующие хроники и ID дефолтных предметов могут начать конфликтовать с кастомными.
Создадим новый предмет, например, меч для хроники Gracia Final. На этапе обучения лучше всего использовать шаблоны уже существующих предметов и затем менять их параметры под свои нужды. Пусть это будет спайка самураев (ID 2626), которую и находим своим редактором в itemdata.txt, копируем всю строку и переносим в секцию, где будут лежать кастомизации.
В itemdata.txt видим, что максимальный ID = 22172, поэтому свои кастомные предметы можно начинать с 22173, но, как говорилось выше, лучше делать некий запас, поэтому для новой спайки зададим, например, 25000.
Значения большинства параметров очевидны из названия, поэтому поставить вес, базовые значения атак/защит, грейд и т.д. не составит особого труда.
В этом примере мы сделали новую S84 спайку с ID 25000, весом 2500 и слегка завышенными параметрами атаки.

Клиентская часть

Теперь научимся добавлять наш контент в клиентскую часть. В Интернете можно найти ряд утилит для работы с клиентскими файлами Lineage2. Мы разработали собственную утилиту, которая поддерживает работу со всем версиями нашего экстендера.
Для того, чтобы добавить наш меч, нам необходимо добавить его визуальное отображение, т.е. ссылку на модель и текстуру в weapongrp.dat и название в itemname-e.dat.
При помощи утилиты декодируем weapongrp.dat, в результате чего получаем weapongrp.txt. Открываем его и находим шаблонный меч с ID 2626.
Создаем копию строки в той части файла, где планируется держать уникальные для своего проекта предметы, в конце файла, например.
Меняем ID c 2626 на 25000, crystal_type=s, weight=2500, physical_damage=500, attack_speed=500, magical_damage=250.
Если есть желание поменять иконку предмета, задается это в параметре icon, где указывается имя файла_пакета_текстур(находится в SysTextures с расширением utx).имя_текстуры.
Теперь надо назвать наш меч. Декодируем itemname-e.dat, получая при этом itemname-e.txt. Открываем его и ищем предмет с ID 2626.
Заменяем название и описание на желаемые и сохраняем изменения.
При помощи той же утилиты кодируем оба файла обратно в *.dat и возвращаем обратно в папку System своей игры. Если все сделано правильно, то после применения изменений на сервере этот меч станет доступным в игровом мире.