Главная Описание Скриншоты Команда Обучение Файлы Форум


          Вставка НПС

 

instance PAL_9991_Toreodore (Npc_Default) // - Стандартная переменная для всех НПС

{

// ------ NSC ------ // - просто разделение, чтоб не запутаться. В готовом датнике его нет/

name = "Toreodore"; // - имя

guild = GIL_PAL; // - гильдия (см. в …\_work\Data\Scripts\Content\AI\Human\guilds.d)

) id = 9991; // тот самый ID ,берётся из PAL_***9991***_Toreodore, влияет на определение НПС игрой.

voice = 14; // голос НПС, в нашем случае без разницы какой голос ))

flags = NPC_FLAG_IMMORTAL; // NPC_FLAG_IMMORTAL - НПС бессмертный, ещё есть значение (flags = 0) - НПС смертен.

level = 21; // - уравень НПС

npctype = NPCTYPE_MAIN; // - нужность НПС т.е. друг ,враг, нейтрал, главный (NpcType_Friend, NpcType_Ambient, NpcType_Bl_Main и NpcType_Ocambient , т.е. нужны для миссий)

 

 

// ------ Attribute ------ // - аттрибуты НПС

attribute[ATR_STRENGTH] = 40; // - сила НПС

attribute[ATR_DEXTERITY] = 30; // - ловкость НПС

attribute[ATR_MANA_MAX] = 100; // - Максимальная мана

attribute[ATR_MANA] = 10; // - мана на данный момент

attribute[ATR_HITPOINTS_MAX] = 100; // - максимальная жизнь

attribute[ATR_HITPOINTS] = 46; // - жизнь на данный момент

 

 

// ------ Kampf-Taktik ------ // - Далее описана Характеристика Атаки

fight_tactic = FAI_HUMAN_STRONG; // -(STRONG) характеристика атаки--> МАСТЕР/БОЕЦ/НОВИЧОК--->MASTER / STRONG / COWARD

 

 

// ------ Equippte Waffen ------ // - Вооружение НПС

EquipItem (self, ItMw_1h_Bau_Mace); // - оружие которым вооружён НПС ( в нашем случае **Простой посох**)

EquipItem (self, ItRw_Mil_Crossbow); // -(см.в …\_work\Data\Scripts\Content\Items)

 

 

// ------ Inventory ------ ** - Инвентарь НПС

CreateInvItems (self, ItRw_SLD_Bow); // - оружие в инвентаре НПС ( в данном случае **Салдатский лук**, в основном у НПС здесь лежат деньги, драгоценности и ценные вещи

 

 

// ------ visuals ------ // - Визуализация НПС

B_SetNpcVisual (self, MALE,// - (Мужик, Female-женщина) "Hum_Head_FatBald",//- (текстура головы НПС) Face_N_OldBald_Jeremiah,// - (лицо НПС) BodyTex_N,// - (текстура тела НПС) ITAR_Vlk_H);// - Броня одетая на НПС

Mdl_SetModelFatness (self, 2); // - жироность НПС )

Mdl_ApplyOverlayMds (self, "Humans_Arrogance.mds"); //- может вместо **Arrogance** быть--> Tired / Militia / Mage / Arrogance / Relaxed это походка НПС- КрутоЙ, уставший пьяный и тд.

 

 

 

// ------ NSC-relevante Talente vergeben ------ // - Таланты НПС

Npc_SetTalentSkill (self, NPC_TALENT_PICKLOCK, 1); // - НПС обучен взлому замков ( Обучен = 1; Не обучен = 0)

 

 

// ------ Kampf-Talente ------ // - Возможности НПС

B_AddFightSkill (self, NPC_TALENT_1H, 30); // - талант владения одноручем

B_AddFightSkill (self, NPC_TALENT_2H, 30); // - талант владения двуручем

B_AddFightSkill (self, NPC_TALENT_BOW, 50); // - талант владения луком

B_AddFightSkill (self, NPC_TALENT_CROSSBOW, 50); // - талант владения арболетом

 

 

// ------ TA anmelden ------ Рассписание дня

daily_routine = Rtn_Start_9991; // - рассписание дня НПС (само рассписани следует НИЖЕ ===\___/===)

};

 

FUNC VOID Rtn_Start_9991 ()

 

{

TA_Sit_Throne (09,00,21,00,"МестО1"); // - Нпс сидит но стуле находящийся около вейпоинта Место1

 

TA_Sleep (21,00,09,00,"МестО2"); // - НПС спит на кровати, находящийся у вейпоинта Место2

};

 

 

1) - (Место1;Место2) - это вейпоинты. создаются в Спайсере, около них должно быть то, на что направлено действие (стул, кровать, дверь)

2) - Потом дописываешь в файле ***NPC_Globals**** (C:\Program Files\Gothic II\_work\data\Scripts\Content\Story\NPC_Globals) строчку (var C_NPC Toreodore; - в начале и

Toreodore = Hlp_GetNpc(PAL_9991_Toreodore); - ,ближе к концу

 

3)Полный состав (ТА_*****) ( TA_Sleep и т.д.) можно посмотреть в (C:\Program Files\Gothic II\_work\data\Scripts\Content\AI\Human) в разделе ***TA***

4)полный спиок лиц

// Для мужчин и женщин (по 4 штуки)

BodyTex_P = 0; //Бледнокожий

BodyTex_N = 1; //Европеец

BodyTex_L = 2; //Латиноамериканец

BodyTex_B = 3; //Негр

BodyTexBabe_P = 4; //Бледнокожая

BodyTexBabe_N = 5; //Европейка

BodyTexBabe_L = 6; //Латиноамериканка

BodyTexBabe_B = 7; //Негритянка

BodyTex_Player = 8; //ГГ

 

const int BodyTex_T = 10; //Татуированный мужик

const int BodyTexBabe_F = 11; //Татуированная женщина

const int BodyTexBabe_S = 12; //Чернокожий ребенок

 

const int NO_ARMOR = -1; //Без доспехов

 

// Лица мужчин

Face_N_Gomez = 0;

Face_N_Scar = 1;

Face_N_Raven = 2;

Face_N_Bullit = 3;

Face_B_Thorus = 4;

Face_N_Corristo = 5;

Face_N_Milten = 6;

Face_N_Bloodwyn = 7;

Face_L_Scatty = 8;

Face_N_YBerion = 9;

Face_N_CoolPock = 10;

Face_B_CorAngar = 11;

Face_B_Saturas = 12;

Face_N_Xardas = 13;

Face_N_Lares = 14;

Face_L_Ratford = 15;

Face_N_Drax = 16;

Face_B_Gorn = 17;

Face_N_Player = 18;

Face_P_Lester = 19;

Face_N_Lee = 20;

Face_N_Torlof = 21;

Face_N_Mud = 22;

Face_N_Ricelord = 23;

Face_N_Horatio = 24;

Face_N_Richter = 25;

Face_N_Cipher_neu = 26;

Face_B_Cavalorn = 28;

Face_L_Ian = 29;

Face_N_MadPsi = 31;

Face_N_Bartholo = 32;

Face_N_Snaf = 33;

Face_N_Mordrag = 34;

Face_N_Lefty = 35;

Face_N_Wolf = 36;

Face_N_Fingers = 37;

Face_N_Whistler = 38;

Face_P_Gilbert = 39;

Face_L_Jackal = 40;

 

// Бледнолицые

Face_P_ToughBald = 41;

Face_P_Tough_Drago = 42;

Face_P_Tough_Torrez = 43;

Face_P_Tough_Rodriguez = 44;

Face_P_ToughBald_Nek = 45;

Face_P_NormalBald = 46;

Face_P_Normal01 = 47;

Face_P_Normal02 = 48;

Face_P_Normal_Fletcher = 49;

Face_P_Normal03 = 50;

Face_P_NormalBart01 = 51;

Face_P_NormalBart_Cronos = 52;

Face_P_NormalBart_Nefarius= 53;

Face_P_NormalBart_Riordian= 54;

Face_P_OldMan_Gravo = 55;

Face_P_Weak_Cutter = 56;

Face_P_Weak_Ulf_Wohlers = 57;

 

// Европейцы

Face_N_Important_Arto = 58;

Face_N_ImportantGrey = 59;

Face_N_ImportantOld = 60;

Face_N_Tough_Lee_дhnlich = 61;

Face_N_Tough_Skip = 62;

Face_N_ToughBart01 = 63;

Face_N_Tough_Okyl = 64;

Face_N_Normal01 = 65;

Face_N_Normal_Cord = 66;

Face_N_Normal_Olli_Kahn = 67;

Face_N_Normal02 = 68;

Face_N_Normal_Spassvogel = 69;

Face_N_Normal03 = 70;

Face_N_Normal04 = 71;

Face_N_Normal05 = 72;

Face_N_Normal_Stone = 73;

Face_N_Normal06 = 74;

Face_N_Normal_Erpresser = 75;

Face_N_Normal07 = 76;

Face_N_Normal_Blade = 77;

Face_N_Normal08 = 78;

Face_N_Normal14 = 79;

Face_N_Normal_Sly = 80;

Face_N_Normal16 = 81;

Face_N_Normal17 = 82;

Face_N_Normal18 = 83;

Face_N_Normal19 = 84;

Face_N_Normal20 = 85;

Face_N_NormalBart01 = 86;

Face_N_NormalBart02 = 87;

Face_N_NormalBart03 = 88;

Face_N_NormalBart04 = 89;

Face_N_NormalBart05 = 90;

Face_N_NormalBart06 = 91;

Face_N_NormalBart_Senyan = 92;

Face_N_NormalBart08 = 93;

Face_N_NormalBart09 = 94;

Face_N_NormalBart10 = 95;

Face_N_NormalBart11 = 96;

Face_N_NormalBart12 = 97;

Face_N_NormalBart_Dexter = 98;

Face_N_NormalBart_Graham = 99;

Face_N_NormalBart_Dusty = 100;

Face_N_NormalBart16 = 101;

Face_N_NormalBart17 = 102;

Face_N_NormalBart_Huno = 103;

Face_N_NormalBart_Grim = 104;

Face_N_NormalBart20 = 105;

Face_N_NormalBart21 = 106;

Face_N_NormalBart22 = 107;

Face_N_OldBald_Jeremiah = 108;

Face_N_Weak_Ulbert = 109;

Face_N_Weak_BaalNetbek = 110;

Face_N_Weak_Herek = 111;

Face_N_Weak04 = 112;

Face_N_Weak05 = 113;

Face_N_Weak_Orry = 114;

Face_N_Weak_Asghan = 115;

Face_N_Weak_Markus_Kark = 116;

Face_N_Weak_Cipher_alt = 117;

Face_N_NormalBart_Swiney = 118;

Face_N_Weak12 = 119;

 

// Латиноамериканцы

Face_L_ToughBald01 = 120;

Face_L_Tough01 = 121;

Face_L_Tough02 = 122;

Face_L_Tough_Santino = 123;

Face_L_ToughBart_Quentin = 124;

Face_L_Normal_GorNaBar = 125;

Face_L_NormalBart01 = 126;

Face_L_NormalBart02 = 127;

Face_L_NormalBart_Rufus = 128;

 

// Негры

Face_B_ToughBald = 129;

Face_B_Tough_Pacho = 130;

Face_B_Tough_Silas = 131;

Face_B_Normal01 = 132;

Face_B_Normal_Kirgo = 133;

Face_B_Normal_Sharky = 134;

Face_B_Normal_Orik = 135;

Face_B_Normal_Kharim = 136;

 

// Лица женщин

FaceBabe_N_BlackHair = 137;

FaceBabe_N_Blondie = 138;

FaceBabe_N_BlondTattoo = 139;

FaceBabe_N_PinkHair = 140;

FaceBabe_L_Charlotte = 141;

FaceBabe_B_RedLocks = 142;

FaceBabe_N_HairAndCloth = 143;

FaceBabe_N_WhiteCloth = 144;

FaceBabe_N_GreyCloth = 145;

FaceBabe_N_Brown = 146;

FaceBabe_N_VlkBlonde = 147;

FaceBabe_N_BauBlonde = 148;

FaceBabe_N_YoungBlonde = 149;

FaceBabe_N_OldBlonde = 150;

FaceBabe_P_MidBlonde = 151;

FaceBabe_N_MidBauBlonde = 152;

FaceBabe_N_OldBrown = 153;

FaceBabe_N_Lilo = 154;

FaceBabe_N_Hure = 155;

FaceBabe_N_Anne = 156;

FaceBabe_B_RedLocks2 = 157;

FaceBabe_L_Charlotte2 = 158;

 

// Лицо Фортуно

Face_N_Fortuno = 159;

 

// Лица пиратов

Face_P_Greg = 160;

Face_N_Pirat01 = 161;

Face_N_ZombieMud = 162;

5) - Советую поставить!G2MDK(63метра) (без него никуда)!

 

 

 

Теперь о том, как вставить этот самый НПС в игру:

 

ШАГ 1-ый

 

Копируем наш *.d файл в папку со всеми неписями у Gothic II\_work\Data\Scripts\Content\Story\NPC

 

ШАГ 2-ой

 

В файле Gothic II\_work\data\Scripts\Content\Story\NPC_Globals.d находим строчку var C_NPC Lester; и дописываем под ней var C_NPC Vendigo;(имя вашего НПС). Теперь в этом же файле находим Lester = Hlp_GetNpc(PC_Psionic); и дописываем ниже Vendigo = Hlp_GetNpc(PAL_9991_Toreodore); где PAL_9991_Toreodore название файла Вашего непися.

Почему именно под этой строчкой. Важно не под какой строчкой, а в каком разделе файла, в какой функции. Лестер, так же как и наш новенький непись попадает в в функцию, которая вставляет персов в окрестностях башни ксардаса. А так как нашего перса мы вставляем именно у его башни, то соответственно прописывать нужно именно здесь.(вместо строчки МестО1/2 нужно написать NW_XARDAS_PATH_FARM1_08 или любой другой вуапоинт,их можно посмтреть,открым zen файл в спайсере.)

 

ШАГ 3-ий

 

Открываем файл Gothic II\_work\Data\Scripts\Content\Story\StartUp.d Находим в нём строку Wld_InsertNpc (PC_Psionic, "NW_XARDAS_TOWER_PATH_01"); И дописываем ниже Wld_InsertNpc (PAL_9991_Toreodore, ""NW_XARDAS_PATH_FARM1_08");

 

ШАГ 4-ый

 

Открываем Spacer, прогу, поставляющуюся из Девелопменкита или вместе с игрой. Экзешник в папке System. Нажимаем World\Repare Script(Мир – заменить скрипты), выбираем Gothic.scr и нажимаем открыть. После чего начнётся компиляция скриптов. Продолжаться она может достаточно долго. В идиале не должно выскочить ни одной ошибки. Если они всё-таки повыскакивали, не отчаивайтесь, персонаж и с ними может вставиться. Конец компиляции выдаст окно Аутпут-Юнитс, которе заменится на окно Материалз.

 

ШАГ 5-ый

 

Теперь заходим в игру и начинаем новую (обязательно! не загружаем!). Проверяем, стоит ли персонаж на месте. Если же персонажа на указанном вайпоинте не оказалось, детально, по строчечке проверте правильность ваших скриптов (везде ли стоят ‘;’ и "{", нету ли описок в словах и т.д.).

Hosted by uCoz