Сегодня мы научимся добавлять нпс-игрока в игру Корсары.
Справка:
NPC(Non-Player Character) - неигровой персонаж, управляемый программой. Неигровые персонажи служат как инструмент создания игровой атмосферы ( мирные жители в городах), и для сюжетных целей (квестах).
Требуется: 1) Блокнот ( любой, с подсветкой синтаксиса, могу посоветовать Notepad++, т.к. в нем сам работаю);
2) GMViewer - программа для просмотра 3d моделей игры, файлов с расширением ".GM" и конвертирования их в формат ".OBJ", для дальнейшего редактирования в программах 3dsMax и Maya. Предвидя некоторые вопросы, дам ответы сразу. Сама программа не умеет редактировать файлы. На некоторых моделях видео-карт серии Radeon могут не отображаться текстуры.
3) Проигрыватель wav формата.
Ход работы:
Сегодня мы задействуем PROGRAM\characters (хранятся скрипты) и RESOURCE\MODELS\Characters (находятся модели персонажей)
В каталоге PROGRAM\characters\init хранятся файлы, где прописаны нпс-игроки. Добавлять можно в любой, большой разницы нет. Главное чтобы знали, где искать потом его)
ch.name – имя ch.lastname – фамилия ch.id - уникальный id персонажа ch.model – название модели, модели хранятся в каталоге RESOURCE\MODELS\Characters, для просмотра используют программу GM Viewer .
Скриншот программы GMViewer. Пояснения в работе с программой GM Viewer.
ch.model.animation – анимация нпс, может быть: man, woman, towngirl, man2 и т.д. ch.sex – пол героя, man или woman ch.location – id локации, где будет находится НПС. ch.location.group - групп локаторов немного, goto, sit, rld, Merchant, barmen, soldiers, patrol, quest и другие… ch.location.locator – локатор, чаще всего это имя группы локатора и цифра, например , goto2, sit5 и т.п.
Как включить видимость локаторов?
Существует несколько способов, можно с помощью диалога Мысли в слух. Но рассмотрим другой простой способ: Включаем в файле _LSC_on_off.h режим бета-теста. Появилась возможность вызвать меню F11. Там переходим в настройки. В Установках ставим галочку напротив LocatorShow. Все видимость локаторов включена, будет как на картинках выше.
ch.Dialog.Filename - путь к файлу диалога персонажа
ch.nation – нация НПС ch.rank – ранг ch.reputation – репутация SetSelfSkill(ch, 10, 10, 10, 20, 20); - расставить личные скиллы, идут по порядку как в меню F2 SetShipSkill(ch, 20, 90, 10, 10, 10, 20, 10, 10, 50); - расставить корабельные скиллы, идут по порядку как в меню F2 LAi_NoRebirthDisable(ch); - воскресить при убиении LAi_SetCitizenType(ch); - анимация передвижений НПС ---------------------------- Примеры других видов типов НПС
Необходимо выбрать один из вариантов LAi_SetPoorType(ch); //Сидит(бродяга) LAi_SetCitizenType(ch); //Ходит как горожанин LAi_SetMerchantType(ch); //Уличный торговец LAi_SetPatrolType(ch); //Патруль LAi_SetGuardianType(ch); //Патруль у дверей LAi_SetPriestType(ch); //Священник LAi_SetSitType(ch); //Сидит на стуле и т.п. LAi_SetWaitressType(ch); //Официантка LAi_SetBarmanType(ch); //Бармен
----------------------------------------
LAi_SetLoginTime(ch, 0.0, 24.0); - время нахождения нпс, в данном случаи НПС будет весь день находится. LAi_SetHP(ch, 200.0, 200.0); - жизнь(HP) НПС LAi_SetImmortal(ch, true); - бессмертие(true) , false – выключить, если строчку не писать, то false
ch.greeting = "Gr_Fisherman"; - озвучка нпс прописывать в файле RESOURCE\INI\aliases\russian\Greetings_alias.ini
------------------------------- О файле Greetings_alias.ini
Итак, урок окончен. Вы разобрались, как добавить НПС-игрока в игру. В дальнейших уроках научимся писать для него диалоги, добавлять локации(на основе существующих моделей) и многое другое.
С вами был korsar, специально для сайта korsary4.ucoz.ru. Семь футов под килем, дорогие пираты!
а где сам патч 1.2 можно скачать? ну и 1.1 раз он тоже нужен, тоже.
Добавлено (30.03.2010, 19:53) --------------------------------------------- Помогите, пожалуйста, сделать НПЦ, который, при разговоре , допустим дал бы какой-нибудь предмет. Например денег. На взгляд просто, но , лично мне , трудно было понять по этим урокам. Расскажите, поподробнее. С Уважением, Заранее Спасибо.
Ещё помогите пожалуйста исправить ошибку при разговоре с нпц "Не удается открыть файл диалога FindItemQuest_dialog.c, назначенный этому персонажу". Вроде делал так, как и в уроке. В файл "PROGRAM\characters\init\LaVega.c" добавил код :
какой путь диалога у твоего нпс указан? ( ch.Dialog.Filename) Quest\MainLine\Fergus_Bolter.c? Он существует, этот файл? Единственное, что можно сказать об удаче с уверенностью — она изменит. --------
korsary4, да - "ch.Dialog.Filename = "Quest\MainLine\Fergus_Bolter.c"; " он лежит в "PROGRAM\dialogs\russian\Fergus_Bolter.c". Может быть я криво добавил нпц...потому что :