World of Gothic - Forum

Full Version: Inserarea unui npc
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Acesta este un tutorial simplu realizat de Raducu' (pentru Gothic 1) si de Stuart (pentru Gothic2) care va va arata cum puteti insera un NPC in joc.


Gothic 1


Va trebuie gothic_mod_developmentkit si gothic1_playerkit-1.08k
Intrati in gothic_mod_developmentkit si ve-ti vedea un fisier cu numele gothic continutul acestui fisier va trebuie sa il puneti in Gothic 1 si iar gothic1_playerkit-1.08k il dezarhivati undeva iar fisierul system il puneti in fisierul cu gothic.
Sa incepem:
Intrati in gothic/_work/DATA/scripts/content/story/npc si deschideti un script de acolo cu Notepad.
Eu am ales scriptul -BAU_900_Ricelord.
Code:
instance [color=red]BAU_900_Ricelord[/color] (Npc_Default)
{
    //-------- primary data --------
    
    name         =    [color=red]"The Rice Lord"; // Pentru inceput dati numele personajului. In loc de The Rice Lord dati orice alt nume care nu mai exista in Gothic 1.
    npctype     =    NPCTYPE_GUARD; //Aici trebuie sa va alegeti modul de comportament al NPC-ului, cum sa se comporte cum sa stea etc.    
    guild         =    GIL_BAU; //Aici trebuie sa  puneti guildul NPC-ului, de exemplu pentru guard GRD (uitati-va prin celelalte scripturi daca vreti sa mai vedeti cum se zice si la alte gulde)    
    level         =    10;         //Aici scrieti ce lvl sa aiba personajul[/color]
    voice         =    12; //Aici vocea personajului daca nu vreti sa o modificati o lasati asa
    id             =    900; //aici trebuie sa-i dati un numar personajului, un numar pe care nu-l mai are nimeni ca de exemplu 999(daca numarul il mai are cineva va va da eroare)

    //-------- abilities --------//Abilitatile personajului
    attribute[ATR_STRENGTH]     = 50; //Cata forta sa aiba
    attribute[ATR_DEXTERITY]     = 10; //Cata dexteritate sa aiba
    attribute[ATR_MANA_MAX]     = 0;
    attribute[ATR_MANA]         = 0;
    attribute[ATR_HITPOINTS_MAX]= 170;
    attribute[ATR_HITPOINTS]     = 170;

    //-------- visuals --------
    //                 animations
    Mdl_SetVisual        (self,"HUMANS.MDS");
    Mdl_ApplyOverlayMds    (self,"Humans_Arrogance.mds");
    //            body mesh     ,bdytex,skin,head mesh     ,headtex,teethtex,ruestung    
    Mdl_SetVisualBody (self,"Hum_Body_CookSmith",1,1,"Hum_Head_FatBald",91 ,  0,-1);
    
    B_Scale (self);
    Mdl_SetModelFatness(self,2);
    
    fight_tactic    =    FAI_HUMAN_STRONG;

    //-------- Talente --------                                    
    Npc_SetTalentSkill    (self,NPC_TALENT_1H,1);    //de aici va puteti alege ce talente sa aiba acest personaj, sa fie maestru Two Handed sau orice alte talente pentru inceput nu e obligatoriu sa alegeti;    

    //-------- inventory --------//de aici pueti alege sa sa aiba NPC-ul in inventatory;                                    
        
        CreateInvItems (self, ItFoRice,10);
        CreateInvItem (self, ItFoWine);
        CreateInvItems(self, ItMiNugget,40);
        EquipItem  (self, Heerscherstab);         
        CreateInvItem (self, ItMi_Alchemy_Moleratlubric_01);
        //CreateInvItem (self,ItKey_RB_01);
        
        EquipItem (self, Ring_des_Lebens);
            
    //-------------Daily Routine-------------

//coordonatele NPC-ului

    daily_routine = Rtn_start_900;
    
};

FUNC VOID Rtn_start_900 ()
{
    TA_Boss            (07,00,20,00,"NC_RICELORD");
    TA_SitAround    (20,00,24,00,"NC_RICELORD_SIT");
    TA_Sleep        (24,00,07,00,"NC_RICEBUNKER_10");
};
Code:
Lucrurile principale care trebuie schimbate la acest npc sunt:
name         =    "Legend";
id         =    999;
//Si nu uitati sa schimbati de jos de la Daily Routine acele 2 numere in loc de 900 sa puneti numarul vostru de la id si anume in cazul meu 999 de exemplu:
//ATENTIE daca dupmneavoastra completati acest script ca mine trebuie sa dati save as si sa il salvati sub numele asta
BAU_999_Legend
------------Daily Routine-------------
    daily_routine = Rtn_start_999;
    
};

FUNC VOID Rtn_start_999()
{
    TA_Boss            (07,00,20,00,"NC_RICELORD");
    TA_SitAround    (20,00,24,00,"NC_RICELORD_SIT");
    TA_Sleep        (24,00,07,00,"NC_RICEBUNKER_10");
};
//Am terminat cu scriptul personajului acum intrati in startup gothic\_work_data\scripts\contetnt\story/StartUp deschideti-l cu un editor si dati bara in jos usor pana ajungeti la
//----------------Bauern--------------------------------- (akolo sunt in randuri toate personajele din NewCamp) Dati ENTER dupa
Code:
Wld_InsertNpc                (BAU_900_Ricelord,"NC_DAM"); //Im Ricebunker
si adaugati
Code:
Wld_InsertNpc                (BAU_999_Legend,"NC_DAM"); //Im Ricebunker
//Acum intrati in GothicStarted click pe Reparse All Scripts si va duceti langa Rice Lord si ar trebuie sa va apara perosnajul daca ati completat totul cum e aici.






Gothic 2


Pentru gothic 2 faci aproape la fel ca la gothic 2....Salvezi scriptu in \Gothic Gothic2\_work\Data\Scripts\Content\Story\NPC

Un exemplu de script din gothic 2 :
Code:
instance Pal_200_Hagen (Npc_Default)
{
    // ------ NSC ------
    name         = "Lord Hagen";
    guild         = GIL_PAL;
    id             = 200;
    voice         = 4;
    flags       = NPC_FLAG_IMMORTAL;    //Joly: NPC_FLAG_IMMORTAL                                                                
    npctype        = NPCTYPE_MAIN;
    
    // ------ AIVARS ------
    aivar[AIV_ToughGuy]             = TRUE;
    aivar[AIV_ToughGuyNewsOverride] = TRUE;
    aivar[AIV_IGNORE_Murder]        = TRUE;
    aivar[AIV_IGNORE_Theft]         = TRUE;
    aivar[AIV_IGNORE_Sheepkiller]     = TRUE;
    
    // ------ Attribute ------
    B_SetAttributesToChapter (self, 6);                                                                    
        
    // ------ Kampf-Taktik ------
    fight_tactic        = FAI_HUMAN_MASTER;    
    
    // ------ Equippte Waffen ------                                                                    
    EquipItem            (self, ItMw_2h_Pal_Sword);
    
    // ------ Inventory ------
    B_CreateAmbientInv     (self);

        
    // ------ visuals ------                                                                            
    B_SetNpcVisual         (self, MALE, "Hum_Head_Fighter", Face_N_Tough_Okyl, BodyTex_N, ITAR_PAL_H);    
    Mdl_SetModelFatness    (self, 1.5);
    Mdl_ApplyOverlayMds    (self, "Humans_Militia.mds");

    // ------ NSC-relevante Talente vergeben ------
    B_GiveNpcTalents (self);
    
    // ------ Kampf-Talente ------                                                                        
    B_SetFightSkills (self, 80);

    // ------ TA anmelden ------
    daily_routine         = Rtn_Start_200;
};
FUNC VOID Rtn_Start_200 ()
{    
    TA_Stand_ArmsCrossed    (08,00,20,00,"NW_CITY_HAGEN");
    TA_Stand_ArmsCrossed    (20,00,08,00,"NW_CITY_HAGEN");
};
FUNC VOID Rtn_ShipFree_200 ()
{
    TA_Stand_Guarding    (08,00,23,00,"NW_CITY_UPTOWNPARADE_HAGEN");
    TA_Stand_Guarding    (23,00,08,00,"NW_CITY_UPTOWNPARADE_HAGEN");    
};
BAU_000_Ricelord..
Schimba acel 000 in alt numar, pune 100..
In eroare, iti apare acel (line 1), si indica linia care e gresita in fisierul npc-ului sau in startup.d, pentru ca e doar inserat npc-ul.
De fapt e 900 da nu se vede...
Imi incarci undeva fiserul.d sa ma uit putin pe el?Grin
Gata am reusit...ms mult...[Image: 357omth.jpg]
(05-10-2013, 09:21 PM)dorelys Wrote: [ -> ]Gata am reusit...ms mult...

Congrats!
Nu prea vad cum te-am ajutat dar e bine ca ai reusit in finalSmile.
Pai aveai dreptate prima linie de la npc-ul pe care il inserasem era gresita...
(05-10-2013, 09:31 PM)dorelys Wrote: [ -> ]Pai aveai dreptate prima linie de la npc-ul pe care il inserasem era gresita...

Ok, bafta in continuare, ma bucur ca te-am putut ajutaGrin.
Eu nu pot. Nu am folder-ul Ncp! Joc Gothic 2, va rog ajutor. Daca creez folder si pun: Script, acesta nu are niciun efect asupra jocului! Sad
Prima data trebuie sa instalezi modkit-ul si ce programe mai zice in primul post. Dupa ce instalezi modkit-ul o sa ti se dezarhiveze fisierele jocului, ca sa zic asa, si o sa iti apara si folderul NPC.