Doc77x
|
Дата: Вторник, 07 Февраля 2012, 16:36 | Сообщение # 1
|
Lvl 5
Я: Пользователь
XP: 7
Репутация: 0
Статус: Оффлайн
|
Для работы используем программы: Navicat - работа с базой L2FileEdit - 1.0.0.31 или более поздней версии с подержкой русского языка.
Чтоб создать движение НПС по локации нам нужно задать ему координаты движешия в самой базе. Начнем все по попорядку. Сначало нам нужен сам НПС, его можно создать или использовать уже готового в игре. Я буду использовать уже имеющегося, таким образом я преукрашу сервер неким движением по карте НПС, а также сделаю выкрик НПСа в чат. Заходим в игру и находим НПЦ жертву :) . Для информации НПСа, жмем по нему, нажатием Shift + пр.кнопка мыши. Смотрим информацию, нас интересует его ID. Переписываем ID на листочек или запоминаем и заходим в базу через Navicat или другую (Вашу) программу. Чтоб создать движение НПС по локации нам нужно задать ему координаты движешия в самой базе. Начнем все по попорядку. Сначало нам нужен сам НПС, его можно создать или использовать уже готового в игре. Я буду использовать уже имеющегося, таким образом я преукрашу сервер неким движением по карте НПС, а также сделаю выкрик НПСа в чат. Заходим в игру и находим НПЦ жертву :) . Для информации НПСа, жмем по нему, нажатием Shift + пр.кнопка мыши. Смотрим информацию, нас интересует его ID. Переписываем ID на листочек или запоминаем и заходим в базу через Navicat. Нас интересуют файлы: "npc", "walker_routes" Создадим свою строку в базе "npc". Откываем фаил "npc", находим наш ID записанный заранее. Меняем на наш номер в колонке 'id'. Нажимаем по маленькой черной стрелочке слева в колонке, чтоб выделить всю строку. Кнопками ctrl+C скопируем в буфер обмена. Теперь вернем строке родной ID. Находим в рабочем окне знак "+" добавить строку, и опять по маленькой черной стрелочке мышкой, и жмем ctrl+V - вставить, строка готова.
Разберем строку: Code 'id' - персональный идентификатор объекта. 'idTemplate' - вторичный идентификатор объекта (позволяет использовать соседние ID объектов) 'name' - имя объекта. 'serverSideName' - имя объекта для номера сервера (если используете только для определенного сервера, указать его номер, для всех "0") 'title' - описание. 'serverSideTitle' - описание объекта для номера сервера (если используете только для определенного сервера, указать его номер, для всех "0") 'class' - класс объекта (для нас, он будет как информативный характер). 'collision_radius' - облать выделения объекта. 'collision_height - высота объекта над областью. 'level' - уровень объекта. 'sex' - пол объекта "male"мужской, "female"женский . 'attackrange' - дальность атаки. 'hp' - количество жизни. 'mp' - количество маны. 'hpreg' - скорость восстановления жизни. 'mpreg' - скорость восстановления маны. 'str','con','dex','int','wit','exp','sp' - понятно и так. 'patk' - пикавая атака. 'pdef' - пикавая защита. 'mdef' - магическая защита. 'atkspd' - скорость атаки объекта. 'aggro' - агрессивность объекта (определяет шанс нападения объекта). 'matkspd' - скорость магической атаки. 'rhand''lhand' сила рук, правая, левая. 'armor' - защита объекта. 'walkspd' - скорость передвижения объекта. 'runspd' - скорость бега объекта. 'faction_id' - группа объекта. 'faction_range' - облать группы. 'isUndead' - тип объекта, "1" нежить. 'absorb_type' - абсорбционная способность. 'ss''bss''ss_rate' - использование сосок и процент использования. 'AI' - искуственный интелект (балансировка). 'drop_herbs' - вываливаются ли банки. Нам нужно указать тип НПС в колонке'type', "L2NpcWalker".
Переходим к файлу walker_routes, давайте разберем его. Code route_id - номер маршрута npc_id - номер нашего НПС move_point - номер перемещения действия. chatText - слова выкрикивающим НПС на точке маршрута. move_x, move_y, move_z - место положения по осям x,y,z. delay - задержка по времени выполнения следующего цикла. running - движение, если '0' ходить, '1' бегать. Теперь вернемся в игру. Подбераем место где будет рассполагаться наш НПС (первый маршрут при рестарте сервера). Делаем макрос "/loc", чтоб облегчить нам работу (это думаю все умеют). Веделив себя и нажав на макрос смотрим координаты место положения. В базе walker_routes также через "+" создаем строку и заполняем координаты, каждая сторока - цикл выполнения передвижения, поэтому будьте внимательны в назначение координат. Также можно прописать в "chatText" текст выкрикивания НПС. Он будет отображатся в чате игры во время затрагиваня точки маршрута. Теперь нам нужно задать имя НПС. Запускаем L2FileEdit и открываем фаил "npcname-e.dat". Копируем понравившеюся строчку и вставляем вниз списка, заменим ей ID на свою. Не забываем в конце списка оставлять пустую строку!
Разберем строку из "npcname-e.dat": 2 a, a, 9C E8 A9 -1 Code 'id' - номер объекта (должен соответствовать с номером в базе) 'name' - имя объекта 'description' - описание, отображаемое выше над именем 'rgb[0],rgb[1],rgb[2]' - цвет описания, задается в цветовом коде (красный,зеленый,синий) 'reserved1' - резервирования, по умолчанию ставить '-1' У меня получилось так: Code 2 u,Черный рынок u,Контрабандист 9C E8 A9 -1 Если вы пишете русским шрифтом, то перед текстом нужно изменить (a,) на (u,). Теперь осталось зайти в игру и установить НПСа.
В некоторых объектах в игре, нет анимации передвижения. Небольшой список нормальных НПС. 31356,31357,31358,31359,31360,31361,31362,31363,31364,31365,31370,31372. также можно использовать мобов.
Erorr: Если у Вас отказывается читать с НПСа 'name' и 'description', а читает с другой строки. Заметил на этой сборке, возможно только у меня. Прийдется еще чуток поработать, создадим новую группу НПС. Запускаем "L2FileEdit", откроем фаил "npcgrp.dat", скопируем строчки с того НПС с которых брали 'ID', теперь в строке изменим ID НПСа на наш. Сохраняем. Далее зайдем в базу и в 'npc' изменим 'idTemplate' на тот который стоит в 'ID'. Erorr: Не хочет сохраняеть фаил "npcgrp.dat" или "npcname-e.dat" Проверьте, возможно нарушили табуляцию в строке файла. Не оставили пустую строку внизу списка. Erorr: При установке, объект не отображается на экране. Неправильно указан в базе 'idTemplate'. Нечитаемая текстура Неправильно сделана строка в "npcgrp.dat".
|
|
|
|