21.03.2004, 15:39
Alecron
Вопрос достаточно емкий. Выскажу мои предположения....
Персонаж, именно персонаж, отличается от другого объекта в моб-файле только NID кодом. А так же, у персонажа есть собственное уникальное имя в базе данных локализации: texts.resPers *, (c предиктором Pers), а у не персонажей - простых юнитов, имя одно общее для всей группы прототипа и в базе локализации эти юниты имеют предиктор: Unit *. Вообще, персонажи можно динамически добавлять на бриффинг зону. Для этого существует команда: AddUnitToServer (добавляет именно персонажи!), или можно припасать юнит в мобе, но нужно знать NID и правильно прописать код. Чтобы персонаж был персонажем на брифинг зоне, имя персонажа ID_OBJNAME должно соответствовать NID коду. Именно по этому коду установлен фильтр принадлежности юнита к персонажам и по этому коду будет доступ к разговору на брифинг зоне с персонажем. Текст локализованного имени будет выводиться на экран, если соответствует NID код имени в texts.resPers*.
Функция получение NID кода из имени не сложная, думаю, ты сам её сделаешь….
Так же нужно понимать механизм обработки диалогов. Для большего понимания происходящего я покажу пример:
Создай текстовый файл с именем «1.txt», положи его в директорию игры и вставь в него следующие строки:
Зайди на брифинг зону Поселка в одиночной игре и из консоли набери команду: exec 1.txt
Поговорить можно с любой из Наложниц, и со Свиньей в том числе. Во время наведения курсора мыши на каждую из наложниц будет изменяться курсор и на одной из них будет текст: «Наложница», но сколько бы Зак не "знакомился" с Бабуром, ни у одной из Наложниц, в том числе и у Свиньи, переменная не будет проинициализирована на значение "2". Это происходит из-за того, что в блоке обработки диалогов «Script #OnBriefingComplete» для Наложниц нет соответствия имени юнита к имени диалога. Связь соответствия Персонажа диалогу можно посмотреть в ID_VSS_BS_CHEK в виде составной переменной: b.[NameUnit_NID].[NameDialog]. Но! Блок ID_VSS_BS_CHEK, в структуре моб-файла, предназначен не для игры, а для конструктора!
IDoL
К слову сказать. Вся графика ловушек в игре присутствует, но не используется. Так же в игре присутствуют всевозможные отмычки, и ключи, которые можно разбирать и создавать из прототипов наподобие жезлов, и видимо с магией…
Вопрос достаточно емкий. Выскажу мои предположения....
Персонаж, именно персонаж, отличается от другого объекта в моб-файле только NID кодом. А так же, у персонажа есть собственное уникальное имя в базе данных локализации: texts.resPers *, (c предиктором Pers), а у не персонажей - простых юнитов, имя одно общее для всей группы прототипа и в базе локализации эти юниты имеют предиктор: Unit *. Вообще, персонажи можно динамически добавлять на бриффинг зону. Для этого существует команда: AddUnitToServer (добавляет именно персонажи!), или можно припасать юнит в мобе, но нужно знать NID и правильно прописать код. Чтобы персонаж был персонажем на брифинг зоне, имя персонажа ID_OBJNAME должно соответствовать NID коду. Именно по этому коду установлен фильтр принадлежности юнита к персонажам и по этому коду будет доступ к разговору на брифинг зоне с персонажем. Текст локализованного имени будет выводиться на экран, если соответствует NID код имени в texts.resPers*.
Функция получение NID кода из имени не сложная, думаю, ты сам её сделаешь….
Так же нужно понимать механизм обработки диалогов. Для большего понимания происходящего я покажу пример:
Создай текстовый файл с именем «1.txt», положи его в директорию игры и вставь в него следующие строки:
Код:
thingamabob
@AddUnitToServer( "Nalo","Human Hadagan Pretty","",GetX(GetLeader()), GetY(GetLeader()),0)
@AddUnitToServer( "Nalo1","Human Hadagan Pretty","Nalo",GetX(GetLeader()), GetY(GetLeader()),0)
@GSSetVar(0,"b.Nalo.m0",1)
@GSSetVar(0,"b.Nalo1.m0",1)
@GSSetVar(0,"b. Pig.m0",1)
@AddUnitToServer( "Nalo","Human Hadagan Pretty","",GetX(GetLeader()), GetY(GetLeader()),0)
Поговорить можно с любой из Наложниц, и со Свиньей в том числе. Во время наведения курсора мыши на каждую из наложниц будет изменяться курсор и на одной из них будет текст: «Наложница», но сколько бы Зак не "знакомился" с Бабуром, ни у одной из Наложниц, в том числе и у Свиньи, переменная не будет проинициализирована на значение "2". Это происходит из-за того, что в блоке обработки диалогов «Script #OnBriefingComplete» для Наложниц нет соответствия имени юнита к имени диалога. Связь соответствия Персонажа диалогу можно посмотреть в ID_VSS_BS_CHEK в виде составной переменной: b.[NameUnit_NID].[NameDialog]. Но! Блок ID_VSS_BS_CHEK, в структуре моб-файла, предназначен не для игры, а для конструктора!
IDoL
К слову сказать. Вся графика ловушек в игре присутствует, но не используется. Так же в игре присутствуют всевозможные отмычки, и ключи, которые можно разбирать и создавать из прототипов наподобие жезлов, и видимо с магией…