Я решил переписать свой старый урок.Так же добавить информацию насчёт компилятора.
Создание НПС.
То, что потребуется для создания НПС и его вставки в игру:
1.GothicSourcer (компилятор любой версии).
2.Исправленный скрипты от Акелы.
Для начала давайте разберёмся с работой компилятора.
После того, как вы скачали его и установили на свой компьютер, заходим в эту программу. После этого создайте, к примеру, на рабочем столе папку и распакуйте туда скрипты от Акелы. Далее возвращаемся к нашей программе. Заходим в
Файл -> Новое Решение. Далее производим такие настройки:
В строке “
Имя решения” пишем любое подходящие вам имя. Этим именем будет назван ваш проект.
В поле “
Размещение” у вас уже должен быть указан путь.
В поле “
Платформа” ставим Готика 2.
Далее выбираем “
Проект для Компиляции” и указываем там путь к
Gothic.src.Он у нас находится в нашей папке, которую мы создали и поместили туда скрипты, а точнее:
Новая папка\_decompiled\gothic.src . И жмём “
OK”.
Далее ждём пока программа сделает своё дело. После этого жмём
Действие - > Компилировать, и наблюдаем за окошком, где происходит процесс. После того, как вы увидите надпись 0 ошибок, вы можете приступать к работе. При дальнейшем заходе в программу вы уже не создаёте Новое решение, а открывание уже созданное.Проектов может быть много. Для чего? Например, для каждого мода, которые вы делаете, чтобы был свой проект. На этом мы закончим вводную часть по этой программе, остальное вы сможете прочитать в файлах, которые приложены к программе.
Теперь приступим собственно к созданию самого НПС.
Для этого идём в Story / NPC , жмём по папке NPC правой кнопкой мыши и выбираем “
Новый файл Скрипты”. В название, например, вводим
VLK_777_Oscar, где
VLK – Гильдия НПС (в нашем случаи гражданин).
777 – Порядковый номер НПС (он уникален и не должен совпадать с другими номерами).
Oscar – Имя НПС.
После того, как ввели, откроется окошка, где нам нужно прописать нашего НПС.Его можно прописать в любой области где прописаны, другие НПС.Например находим строчку:
Story\NPC\Bau_912_Pepe.d и после него прописываем
Story\NPC\ VLK_777_Oscar.d Дальше в папке NPC находим нашего
VLK_777_Oscar и заходим в его файл. Там прописываем примерно следующее:
instance VLK_777_OSCAR(Npc_Default)
{
name[0] = "Оскар"; //
Имя Нпс.
guild = GIL_VLK; //
Гильдия к которой будет принадлежать НПС.
id = 777; //
Порядковый номер.
voice = 8; //
Голос НПС.
flags = 0; //
Флаг НПС.
npcType = NpcType_Friend; //
Отношение к Главному Герою.
attribute[ATR_STRENGTH] = 200; //
200 Силы.
attribute[ATR_DEXTERITY] = 130; //
130 Ловкости.
attribute[ATR_MANA_MAX] = 110; //
110 максимальной Маны.
attribute[ATR_MANA] = 110; //
110 текущей Маны.
attribute[ATR_HITPOINTS_MAX] = 600; //
600 максимального Здоровья.
attribute[ATR_HITPOINTS] = 600; //
600 текущего Здоровье.
fight_tactic = FAI_HUMAN_MASTER; //
Владение оружием.
EquipItem(self,ItMw_2h_Sld_Sword); //
Каким оружием дерётся НПС.
B_CreateAmbientInv(self); //
Инвентарь НПС.
B_SetNpcVisual(self,MALE,"Hum_Head_FatBald",Face_N_Normal14,BodyTex_N,ITAR_VLK_M); //
Об этом чуть ниже.
Mdl_SetModelFatness(self,2); //
Как выглядит НПС.
Mdl_ApplyOverlayMds(self,"Humans_Relaxed.mds");
HitChance [NPC_TALENT_2H] = 90; //
90% владения двуручным оружием.
CreateInvItems(self,ITAR_BAU_L,2); //
Помимо основного инвентаря,у НПС ещё есть 2 доспеха Крестьян.
B_GiveNpcTalents(self); //
Таланты НПС,которые прописаны в другом файле.
B_SetFightSkills(self,30); //
Скилы НПС( в данном случае всё по 30%).
daily_routine = Rtn_Start_777; //
Распорядок дня.};
func void Rtn_Start_777()
{
TA_STANW_WP (2,0,18,0,"NW_FARM1_OUT_01"); //
c 2,0 до 18,0 стоит на веппоинте.
TA_Smoke_Joint (18,0,23,0,"NW_FARM1_OUT_01"); //
с 18,0 до 23,0 курит болотник.
TA_Practice_Sword(23,0,2,0,"NW_FARM1_OUT_01"); //
с 23,0 до 2,0 тренируется мечом.
};
Теперь давайте разберём некоторые моменты. Например вот эту строчку:
B_SetNpcVisual(self,MALE,"Hum_Head_FatBald",Face_N_Normal14,BodyTex_N,ITAR_VLK_M);
Итак:
Male - мужской пол(Female - Женский).
Hum_Head_FatBald - Вид Головы.
Face_N_Normal14 - Лицо НПС.
BodyTex_N - Текстура Лица.
ITAR_VLK_M - Доспех,одетый на НПС.
С этой строчкой разобрались.Поехали дальше.
Флаг НПС может быть трёх видов:
0 - смертный.
Npc_Flag_Immortal - бесмертный.
Npc_Flag_Ghost - призрак(например как Радамес из Яркендара).
Теперь остаётся последний пункт перед компиляцией,прописать НПС в Startup.d
Ищем к примеру строчку
Wld_InsertNpc(BAU_950_Lobart,"NW_FARM1_OUT_01"); и после этой строчки вставляем свою:
Wld_InsertNpc(VLK_777_OSCAR,"NW_FARM1_OUT_01"); Эта строчка вызывает НПС на соответствующий веппоинт,который мы прописали.Теперь разберём почему мы прописали именно после этой строчки,а не после какой-нибудь другой.Локация Хоринес,как и другие Миры Готики разделены как бы на части,и вот в каждой этой части прописаны НПС,Животные и.т.д Вот и Мы нашли зону,где мы выбрали веппоинт(т.е возле Лобарта).Остался последний пункт - это компиляция.Нажимаем
Действие -> Компилировать и ждём пока программы закончит компиляцию.Если всё прошло успешно,то заходим в
GothicSourcer V3.14\Gothic Projects\SolGlobal(название моего проекта)\PrjGothic Там мы видим 2 новый файла - это:
Gothic.dat и
Ou.bin. Теперь чтобы посмотреть наши наработки в игре,эти файлы нужно положить в нужные места,а именно:
Gothic.dat положить в Gothic II\_work\Data\Scripts\_compiled
Ou.bin положить в Gothic II\_work\Data\Scripts\Content\Cutscene
Потом заходим в игру,причём игру,если мы вносили какие-то изменения,всегда начинаем сначала и смотрим на вставленного НПС.
Или если хотите создайте свой mod файл и зайдите в изменнёную игру,через мод.
Так же предлагаю вашему вниманию списки,которые могут пригодиться(дабы не искать коды по скриптам):
Список распорядка дня НПС:
TA_Announce_Herold – Объявления Герольда
TA_Circle – Ритуал в Круге солнца
TA_Concert – Концерт InExtremo в аддоне
TA_Cook_Cauldron – Приготовление пищи в котле
TA_Cook_Pan – Приготовление пищи на сковороде
TA_Cook_Stove – Приготовление пищи в печи
TA_Dance – Танцы НПС
TA_FleeToWp – НПС убегает на свою точку
TA_Follow_Player – НПС следует за ГГ
TA_Ghost – Поведение призраков
TA_GhostWusel – Поведение Радемеса
TA_Guard_Hammer – Охрана Святого молота
TA_Guard_Passage – Охрана прохода
TA_Guide_Player – ГГ следует за НПС
TA_Pee – НПС справляет малую нужду
TA_Pick_FP – НПС бродит по PICK фрипоинтам (что-то ищет или собирает)
TA_Pick_Ore – Добыча руды
TA_Play_Lute – Игра на лютне
TA_Potion_Alchemy – Приготовление алхимических напитков
TA_Practice_Magic – Тренировка магии (не используется)
TA_Practice_Sword – Упражнения с мечом
TA_Pray_Innos – Молитва статуям Инноса
TA_Pray_Innos_FP – Молитва Инносу на заданной точке PRAY
TA_Pray_Sleeper – Молитва статуям Белиара (не используется)
TA_Pray_Sleeper_FP – Молитва Белиару на заданной точке PRAY (не используется)
TA_Preach_Vatras – Проповедь Ватраса
TA_Rake_FP – Работа в поле
TA_Read_Bookstand – Чтение книг
TA_RangerMeeting – Собрание “Кольца Воды” у Орлана
TA_Repair_Hut – Ремонт хижины
TA_Roast_Scavenger – Барбекю из Падальщика
TA_RunToWP – НПС бежит на охраняемую точку
TA_Saw – Распиловка древесины
TA_Sit_Bench – Сидеть на скамье
TA_Sit_Campfire – Сидеть у костра
TA_Sit_Chair – Сидеть на стуле
TA_Sit_Throne – Сидеть на троне
TA_Sleep – Спать на кровати
TA_Sleep_Deep – Очень крепко спать на кровати (не используется)
TA_Smalltalk – Мини диалог между НПС
TA_Smith_Anvil – Использование наковальни (ковка оружия)
TA_Smith_Cool – Закалка заготовки оружия
TA_Smith_Fire – Разогрев заготовки оружия в горне
TA_Smith_Sharp – Заточка оружия
TA_Smoke_Joint – Курение болотника
TA_Smoke_Waterpipe – Курение кальяна
TA_Spit_Fire – Игра с факелами (не используется)
TA_Stand_ArmsCrossed – Стоять скрестив руки
TA_Stand_Dementor – Состояние ожидания Черных магов (Ищущие)
TA_Stand_Drinking – Пить самогон стоя
TA_Stand_Eating – Употреблять пищу стоя
TA_Stand_Guarding – Охрана территории
TA_Stand_Sweeping – Уборка территории
TA_Stand_WP – Стоять на вайпоинте
TA_Stomp_Herb – Толочь траву
TA_Study_WP – Заниматься науками (передача листа бумаги (записки) ГГ)
TA_Sweep_FP – Работа щеткой
TA_Wash_FP – Умываться (не используется)
Есть ещё одна функция распорядка дня (не оформлена через ТА)
ZS_Bandit – Поведение бандита
Полный список гильдий:
NONE – нейтрал, без гильдии.
BAU – крестьянин;
BDT – бандит;
KDW – маг воды;
MIL – милиция;
PIR – пират;
VLK – горожанин;
DJG – охотник на драконов;
KDF – маг огня;
NOV – послушник;
PAL – паладин;
SLD – наёмник;
Список доспехов:
ITAR_MIL_L,Легкие доспехи стражника
ITAR_MIL_M,Тяжелые доспехи стражника
ITAR_PAL_M,Доспехи рыцаря
ITAR_PAL_H,Доспехи паладина
ITAR_SLD_L,Легкие доспехи наемника
ITAR_SLD_M,Средние доспехи наемника
ITAR_SLD_H,Тяжелые доспехи наемника
ITAR_DJG_Crawler,Доспехи из панцирей ползунов
ITAR_DJG_L,Легкие доспехи ОнД
ITAR_DJG_M,Средние доспехи ОнД
ITAR_DJG_H,Тяжелые доспехи ОнД
ITAR_DJG_BABE,Кольчуга охотницы за драконами
ITAR_NOV_L,Ряса послушника
ITAR_KDF_L,Мантия Мага Огня
ITAR_KDF_H,Тяжелая мантия Мага Огня
ITAR_Leather_L,Кожаные доспехи
ITAR_BDT_M,Средняя бандитская кольчуга
ITAR_BDT_H,Тяжелая бандитская кольчуга
ITAR_RANGER_Addon,Кольчуга ‘Кольца Воды’
ITAR_Fake_RANGER,Разорванная кольчуга
ITAR_KDW_L_Addon,Легкая мантия Магов Воды
ITAR_KDW_H,Мантия Мага Воды
ITAR_PIR_L_Addon,Одежда пирата
ITAR_PIR_M_Addon,Доспехи пирата
ITAR_PIR_H_Addon,Одежда капитана
ITAR_VLK_L,Одежда горожанина
ITAR_VLK_M,Одежда горожанина
ITAR_VLK_H,Одежда горожанина
ITAR_VlkBabe_L,Одежда горожанки 1
ITAR_VlkBabe_M,Одежда горожанки 2
ITAR_VlkBabe_H,Одежда горожанки 3
ITAR_BAU_L,Одежда крестьянина 1
ITAR_BAU_M,Одежда крестьянина 2
ITAR_BauBabe_L,Одежда крестьянки 1
ITAR_BauBabe_M,Одежда крестьянки 2
ITAR_Bloodwyn_Addon,Кольчуга Бладвина
ITAR_FireArmor_Addon,Магическая кольчуга
ITAR_MayaZombie_Addon,Древняя кольчуга
ITAR_OreBaron_Addon,Броня барона
ITAR_Raven_Addon,Кольчуга Равена
ITAR_Thorus_Addon,Тяжелая кольчуга гардиста
ITAR_BARKEEPER,Одежда трактирщика
ITAR_CorAngar,Кольчуга Кор Ангара
ITAR_Dementor,Темная накидка
ITAR_Diego,Кольчуга Диего
ITAR_Governor,Накидка гор. советника
ITAR_JUDGE,Одежда судьи
ITAR_LESTER,Роба Лестера
ITAR_SMITH,Одежда кузнеца
ITAR_XARDAS,Мантия Темных Искусств
ITAR_Prisoner,Одежда заключенного
ITAR_PAL_SKEL,Древняя кольчуга
NO_ARMOR,Нет доспех
Если хотите сами посмотреть,где находятся вещи,то зайдите в папку Items,там находятся все вещи из игры,каждые виды разделены по папкам.Надеюсь я хоть немного вам помог.Удачного скриптинга ;)
С Уважением Денис.