Thread Rating:
  • 2 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Inserarea unui npc in Gothic 1
#1
Acesta este un tutorial simplu care va va arata cum puteti insera un NPC in joc.
Va trebuie gothic_mod_developmentkit si gothic1_playerkit-1.08k acestea le puteti lua de aici
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.






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");    
};
....dar poate te ajuta un program....vezi aici programu se numeste NSCScriptGenerator.zip
#2
Fii atent:

Prima data avem nevoie de un waypoint: de exemplu, WP_01.
Dupa cum ai citit din tutorialul lui Raducu' ai observat ca el a adaugat ceva de genu': "Wld_InsertNpc(....);". Tu in schimb, in paranteza trebuie sa scrii:
"YScavenger,"WP_01";
Nu stiu daca Raducu' a scris in tutorial si restul, dar daca a scris, nu mai are rost sa mai repet si eu. Verific maine si daca nu, scriu eu.
----------------Worldofgothic----------------
---------PLAY
#3
OK,multam mult Pepe,esti un domn,astept sa verifici tu ca esti mai in domeniu.Numai bine.
Scuze de dublu post,nu am mai putut edita.Am observat la inceputul tutorialului facut de Raducu ca spunea ceva si de un gothic1_playerkit-1.08k.Dar pentru Gothic 2 NotR ce player trtebuie?
Apropos: nici playerul si nici gothic_mod_developmentkit nu se mai pot descarca.Poate cineva sa mai urce odata aceste chestii si daca sar putea un playerkit pt.G2NotR ?
Multam mult.
Dumnezeu este singurul meu STĂPÂN, iar familia mea singura mea COMOARĂ !
#4
Pentru Gothic 2 notr iti trebuie Gothic 2 MDK care il poti lua de aici http://www.worldofgothic.com/dl/?catid=17 .
#5
Ooo,multam fain Raducu.Si developmentkit-ul de unde il pot lua ? mii de multumiri.
Dumnezeu este singurul meu STĂPÂN, iar familia mea singura mea COMOARĂ !
#6
http://www.worldofgothic.com/dl/?go=dlfile&fileid=87
#7
@ Raducu,zici in primul post ca trebuie bagat id-ul nostru si dai exemplu ca al tau e 999.De unde se vede id-ul?
Si de ex cu scripturile astea se poate crea un nou personaj sau o noua bestie? Nu de alta dar juniorul imi cere sa ma bag si in asa ceva,Doamne-ajuta! Sa nu ii stric ceva prin Gothic.Ce bine mi-ar prinde un exemplu de script de orc si unul de vreo bestie de prin G2.
Dumnezeu este singurul meu STĂPÂN, iar familia mea singura mea COMOARĂ !
#8
Deci, id-ul este "cnp-ul" npc-ului si a monstrului, care trebuie sa fie UNIC. De obicei numerele mari cum ar fi 999, 1021, 10000, etc sunt "cnp-uri" unice pe care nu le are nici-un npc din joc. Daca daca un id/cnp il au doua personaje vei intampina o eroare la compilarea scriptului.
Cat despre exemplu ti-as da cu mare drag dar nu am Gothic 2 pe pc si cu facultatea asta nu prea mai am timp sa fac nimic. Oricum daca nu ma insel scripturile monstrilor ar trebui sa fie in folderul .../AI.

Din cate vad si pepe se pricepe... poate are el cum sa te ajuteSmile.
#9
Multam mult Raducu de ajutor.Nu am mai lucrat cu scripturi,dar stiu ca totul se poate invata,mai ales ca multe le-am invatat singur,sunt un autodidact desavarsit pot spune.Am invatat sa lucrez in multe programe care daca acum cativa ai mi-ai fi zis ca o sa lucrez in ele ,ti-as fi spus ca zici ca vorbesti prostii.Asa ca pt juniorul meu sunt in stare sa invat si asa ceva.Spui ca scripturile pt bestii sunt pe undeva prin joc.OK,dar eu sau mai bine zis juniorul meu vrea sa creem altele.Se creeaza pe platforma vreunui script din joc? Sau care e procedura ca sa zic asa,ca la munca doar de proceduri aud.Smile
Dumnezeu este singurul meu STĂPÂN, iar familia mea singura mea COMOARĂ !
#10
In primul rand trebuie sa ma anunti daca ai cunostinte minime de c++. Pentru a face ceva cu Npc-ul iti trebuie cunostinte mai vaste, insa pentru a insera un Npc, nu.

1. Ai nevoie de Gothic Mod Devlopment Kit si de un editor: Notepad ++, UltraEdit, pana la visual c++ etc......

Pe scurt trebuie adaugi clasei C_NPC o noua instanta (adica detalii care sa defineasca "abilitatile" noului NPC). Ti-am explicat in postul anterior ce trebuie sa schimbi ca sa fie un animal pe post pe npc. Instanta se va creea intr-un fisier text, in folderul NPC din work_/ .....

Raducu' in primul post a scris ce trebuie sa contina o instanta.

2. Instanta va fi folosita cand se vor citi scripturile daca salvezi instanta uite asa: "NUMENPCCREAT.d".

3. Apoi pentru ca jocul sa 'updateze' clasele, trebuie sa intrii in GothicStarter si sa dai pe "Reparse all scripts". Si voila, ai npc-ul creat in jocul original.

Cam asta a scris si Raducu' in primul post.

Quote:Se creeaza pe platforma vreunui script din joc?

Tot ce trebuie sa faci este ce am spus mai sus, nu trebuie sa editezi vreun script, jocul 'integreaza' singur instanta clasei.
----------------Worldofgothic----------------
---------PLAY


Possibly Related Threads…
Thread Author Replies Views Last Post
  Gothic Multiplayer Moderation 1 2,140 07-13-2014, 10:22 AM
Last Post: Szekemri
  Proiect:Seria Gothic in romana ajerk 3 2,655 06-29-2014, 12:52 PM
Last Post: Szekemri
  Gothic 3 Unknown Land Cryssalis 22 10,228 02-05-2014, 04:12 PM
Last Post: Cryssalis
  Gothic Multiplayer Video/Pics BeoWulf 30 14,264 09-08-2013, 01:27 PM
Last Post: Edd
  Project Destiny Gothic Multiplayer daniels 11 6,995 08-28-2013, 04:28 PM
Last Post: cornel
  Gothic 2 night of the raven returning mod english sleeperoldman 1 2,711 08-13-2013, 07:39 PM
Last Post: Szekemri
  Gothic 3 english version Deneky 5 3,699 06-11-2013, 01:34 AM
Last Post: Deneky
  Gothic Multiplayer: Intrebari & Raspunsuri HeRoNaMeLeSs 52 21,780 05-30-2013, 04:22 PM
Last Post: Edd
  Ai mai juca Gothic daca... ? Edg 758 264,554 05-27-2013, 07:08 PM
Last Post: Bogdan
Wink Maxima-Gothic.RO HeRoNaMeLeSs 13 6,615 05-07-2013, 03:56 PM
Last Post: HeRoNaMeLeSs

Forum Jump:


Users browsing this thread: 2 Guest(s)