Четверг, 28.11.2024, 03:35Приветствую Вас Юнга | RSS
Главная | | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
АДДОНмейкер: Добавление НПС в игру и в свой файл описание НПС
AnubisДата: Четверг, 26.06.2014, 12:48 | Сообщение # 1
Адмирал флота
Группа: Завсегдатаи
Сообщений: 88
Репутация: 7
Статус: Offline
Добавление НПС в игру и в свой файл описание НПС

Для начала, добавим свой собственный файл, в котором будут прописаны все ваши НПС. Это удобно, по тому лишь, что они не будут путаться с НПС игры, и вы не будете искать их в бесконечном перечислении. Откроем любой текстовой редактор и сохраним файл MyCharacters.c в папку init (путь program\characters\init) . Вы можете назвать файл, по любому, сути это не меняет, главное, все названия пишутся латиницей. Далее приписываем в файле:

Код
int CreateMyCharacters (int n)
{
ref ch;
// здесь будем писать код описания НПС
return n;
}


Шаблон файла для НПС готов. Переходим к интеграции файла в игру, чтобы она его видела, узнавала и воспринимала ваших НПС. Открываем файл characters.с (путь program\characters), находим следующую строчку с выражением LoadSegment, например:

Код
LoadSegment("characters\init\Usurers.c");    ReloadProgressUpdate();


Копируем строчку в этот же столбец и переименовываем путь на свой, так чтобы появилась строка такого вида:

Код
LoadSegment("characters\init\ MyCharacters.c ");    ReloadProgressUpdate();


В том же файле, далее ищем строку с выражением UnloadSegment, копируем строку, например:

Код
UnloadSegment("characters\init\Usurers.c");


И меняем ее так, чтобы получилось:

Код
UnloadSegment("characters\init\ MyCharacters.c ");


Далее, открываем файл characters_init.с (путь program\characters ) и находим следующую строку:

Код
///////////////////////////////////////////////////
/// ОСТАЛЬНЫЕ ПЕРСОНАЖИ
///////////////////////////////////////////////////

ReloadProgressUpdate();

n = 3;
n = CreateAntiguaCharacters(n);
ReloadProgressUpdate();
//Trace("Antigua: " + n);


Копируем выражение и изменяем его так, чтобы получилось:

Код
n = CreateMyCharacters (n);
ReloadProgressUpdate();
//Trace("Story: " + n)
;

Теперь ваш файл MyCharacters.c интегрирован в игру и пришло время прописывать в нем код НПС. Допустим, ваш НПС мужчина, определенной нации и с файлом диалога, то есть, имеет возможность диалога с ГГ. Для начала, с помощью программы GM Viewer (файл запуска gm_view), определяемся с моделью НПС. Допустим нас, устраивает модель huber_spa.gm, значит, model НПС будет huber_spa. Рассмотрим самый простой код НПС:

Код
makeref(ch,Characters[n]);  
ch.id = "My_Hero";
ch.name = "Джон";
ch.lastname = "Блайк";
ch.rank = 5;
ch.model = "huber_spa";
ch.location    = "StMartin_Tavern";  
ch.location.group = "sit";
ch.location.locator = "sit3";
ch.Dialog.Filename = " My_Hero_dialog.c ";
ch.nation = PIRATE;
ch.sex = "man";
ch.greeting = " pirat_guard_1";
LAi_NPC_Equip(ch, ch.rank, true, true);  
Lai_SetStayType(ch);  
LAi_SetImmortal(ch, true);
n = n + 1;


ch.id = "My_Hero"; - id НПС прописываемое в case квестов
ch.name = "Джон"; - имя НПС
ch.lastname = "Блайк"; - фамилия НПС
ch.rank = 5; - уровень НПС
ch.model = "huber_spa"; - название модели используемой для НПС
ch.location = "StMartin_Tavern"; - локация в которой находится НПС, в нашем случае таверна на Св. Мартине
ch.location.group = "sit"; - группа локатора
ch.location.locator = "sit3"; - место локатора
ch.Dialog.Filename = "My_Hero_dialog.c"; - файл диалога НПС
ch.nation = PIRATE; - к какой нации относится НПС
ch.sex = "man"; - пол НПС
ch.greeting = " pirat_guard_1"; - файл звукового приветствия НПС (находится в папке RESOURCE\Sounds\Voice\Russian)
LAi_NPC_Equip(ch, ch.rank, true, true); - сабля, пистолет, труба у НПС ответствуют уровню, подбираются автоматически игрой.
Lai_SetSitType(ch); - тип поведения НПС, в нашем случае сидит (все типы поведения описаны в файле LAi_types.с путь: program\loc_ai, внимательно следите, что бы не было разногласия между Lai_SetSitType(ch); и ch.location.group)
LAi_SetImmortal(ch, true); - НПС бессмертен

В окончательном варианте, код НПС в файле MyCharacters.c, будет выглядеть следующим образом:

Код
int CreateMyCharacters (int n)
{
ref ch;

makeref(ch,Characters[n]);  
ch.id = "My_Hero";
ch.name = "Джон";
ch.lastname = "Блайк";
ch.rank = 5;
ch.model = "huber_spa";
ch.location    = "StMartin_Tavern";  
ch.location.group = "sit";
ch.location.locator = "sit3";
ch.Dialog.Filename = " My_Hero_dialog.c ";
ch.nation = PIRATE;
ch.sex = "man";
ch.greeting = " pirat_guard_1";
LAi_NPC_Equip(ch, ch.rank, true, true);  
Lai_SetStayType(ch);  
LAi_SetImmortal(ch, true);
n = n + 1;

return n;
}


Если возникнут вопросы, то задавайте их в этой теме.
 
  • Страница 1 из 1
  • 1
Поиск:

Design by Mark © 2024 , Redesign by Anubis © 2024
Сделать бесплатный сайт с uCoz
Яндекс.Метрика