Benutzer-Werkzeuge

Webseiten-Werkzeuge


Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
quickstart:skripte:npc [2015/08/18 22:15]
127.0.0.1 Externe Bearbeitung
quickstart:skripte:npc [2016/02/07 14:49] (aktuell)
milgo
Zeile 1: Zeile 1:
-==  Ein neuer NPC erwacht zum Leben ==+===== Ein neuer NPC erwacht zum Leben =====
  
 Wichtig: Dieser Script ist für Gothic 2, unten steht der für Gothic 1! Wichtig: Dieser Script ist für Gothic 2, unten steht der für Gothic 1!
-Zuerst einmal : Alles was hinter // steht, wird nicht mitgeparst. Dort könnte also auch "​Gothic ist toll" stehen, und es hätte keinerlei Bedeutung.+Zuerst einmal : Alles was hinter ​%%//%% steht, wird nicht mitgeparst. Dort könnte also auch "​Gothic ist toll" stehen, und es hätte keinerlei Bedeutung.
 Zuerst poste ich einen kompletten von mir erstellten NPC - Script, und dann werde ich ihn erklären. Zuerst poste ich einen kompletten von mir erstellten NPC - Script, und dann werde ich ihn erklären.
  
---------+---- 
 + 
 +<code C>
  ​INSTANCE PAL_555_Reiner (Npc_Default) ​  ​INSTANCE PAL_555_Reiner (Npc_Default) ​
  ​{ ​  ​{ ​
Zeile 53: Zeile 55:
  TA_Stand_WP(09,​00,​18,​00,"​NW_FARM1_PATH_CITY_SHEEP_09"​);​  TA_Stand_WP(09,​00,​18,​00,"​NW_FARM1_PATH_CITY_SHEEP_09"​);​
 }; };
 +</​code>​
  
--------- +----
  
 Um zu skripten, wird ein Texteditor benötigt, für den Anfang reicht erst mal der Standard Windows - Editor (bitte kein Word benutzen!). Um zu skripten, wird ein Texteditor benötigt, für den Anfang reicht erst mal der Standard Windows - Editor (bitte kein Word benutzen!).
 Wir erstellen also ein neues Dokument, nun kann es also losgehen. Wir erstellen also ein neues Dokument, nun kann es also losgehen.
  
 +<code C>
  ​INSTANCE PAL_555_Reiner (Npc_Default)  ​INSTANCE PAL_555_Reiner (Npc_Default)
  {  {
 +</​code>​
  
 +Zunächst definiert man die sogenannte Instanz des Npcs. Als Instanz bezeichnet man eine abgeschlossene Einheit mit einer bestimmten Funktion, stellt es euch einfach als Npc-Objekt vor. Deswegen das INSTANCE.
 +Das was nun folgt, ist der eindeutige Name der Instanz. Im Prinzip kann man jeden beliebigen Namen nehmen, dieser muss aber eindeutig sein und darf nur einmal bei allen NPCs vorkommen. Piranha Bytes hat die Namensgebung wie folgt geregelt: Zuerst die Gilde ("​PAL"​ - für Paladin in diesem Fall) dann die ID (eine eindeutige Nummer, aber dazu später) und nun der Name des NPCs . 
 +Das (Npc_Default) kommt hinter den Instanznamen eines jeden NPCs.
 + In die   ​{ ​    kommt nun was die Instanz beinhaltet.
  
 +----
  
-Ein Npc gehört zu der Klasse Instanz. Als Instanz bezeichnet man eine abgeschlossene Einheit mit einer bestimmten Funktion. Deswegen das INSTANCE. +<code C>  
-Das was nun folgt, ist der eindeutige Name der Instanz. Im Prinzip kann man jeden beliebigen Namen nehmen, dieser muss aber eindeutig sein und darf nur einmal bei allen NPCs vorkommen. Piranha Bytes hat es so geregelt : Zuerst die Gilde ("​PAL"​ - für Paladin in diesem Fall) dann die ID (eine eindeutige Nummer, aber dazu später) und nun der Name des NPCs .  +
-Das (Npc_Default) kommt hinter den Instanznamen eines jeden NPCs. +
- In die   ​{ ​    kommt nun was die Instanz beinhaltet. +
--------- +
-  +
  // ​ NSC   // ​ NSC 
  name = "​Reiner";​  name = "​Reiner";​
Zeile 80: Zeile 83:
  voice = 4;  voice = 4;
  ​npctype = NPCTYPE_MAIN;​  ​npctype = NPCTYPE_MAIN;​
 +</​code>​
  
 Sieht schwer aus, ist es aber gar nicht. ​ Sieht schwer aus, ist es aber gar nicht. ​
-Bei name=...” kommt der Name hin, der im Fokus angezeigt wird.+Bei ''​name=...'' ​kommt der Name hin, der im Fokus angezeigt wird.
 Das nächste bestimmt die Gilde, in diesem Fall Paladin. Es gibt verschiedene Gilden und anfangs solltet ihr, falls der NPC später eine andere Gilde haben soll, in den anderen Skripten gucken, wie die Kürzel der anderen Gilden ist. Das nächste bestimmt die Gilde, in diesem Fall Paladin. Es gibt verschiedene Gilden und anfangs solltet ihr, falls der NPC später eine andere Gilde haben soll, in den anderen Skripten gucken, wie die Kürzel der anderen Gilden ist.
 Was nun kommt ist die ID. Sie ist eine eindeutige Nummer zur Identifizierung eines NPCs. Nur 1 NPC darf diese Nummer innehaben. Was nun kommt ist die ID. Sie ist eine eindeutige Nummer zur Identifizierung eines NPCs. Nur 1 NPC darf diese Nummer innehaben.
-Level dürfte klar sein+Das Level des Npcs bestimmt dessen Stufe und soll seiner Kampfstärke entsprechen. Das Level entscheidet,​ wieviel Erfahrung der Spieler bekommt, wenn er diesen Npc besiegt
-Flags = Da gibt es nur zwei Typen, nämlich FLAG_IMMORTAL bzw. FLAG_GHOST, für uns nicht relevant. Weil unser NPC vorerst ganz normal ist, kommt dort eine 0 hin. +''​Flags ='' ​Da gibt es nur zwei Typen, nämlich ​''​FLAG_IMMORTAL''​ (unsterblich) ​bzw. ''​FLAG_GHOST''​, für uns nicht relevant. Weil unser NPC vorerst ganz normal ist, kommt dort eine 0 hin. 
-Voice= es gibt 17 verschiedene ​voices, für die Sachen die NPC´s nebenbei sagen, z.B. bei Smalltalk und wenn sie ein Monster gekillt haben. Hier kann man sie angeben. +''​Voice='' ​es gibt 17 verschiedene ​Stimmen, für die Sachen die NPC´s nebenbei sagen, z.B. bei Smalltalk und wenn sie ein Monster gekillt haben. Hier kann man sie angeben. Stimme 16 und 17 sind weibliche Stimmen, Stimme 15 gehört dem Spielercharakter
-Npctype= Es gibt verschiedene Npc-Typen. So kann man hier beispielsweise auch NPC_AMBIENT einfügen, damit der Charakter die Standard-Ambientdialoge von sich gibt (z.B. wie man sich in Khorinis zurechtfinden kann). NPC_MAIN ist eigentlich immer eine gute Wahl. :)+''​Npctype='' ​Es gibt verschiedene Npc-Typen. So kann man hier beispielsweise auch ''​NPC_AMBIENT'' ​einfügen, damit der Charakter die Standard-Ambientdialoge von sich gibt (z.B. wie man sich in Khorinis zurechtfinden kann). ​''​NPC_MAIN'' ​ist eigentlich immer eine gute Wahl. :) Ein ''​NPC_AMBIENT''​ erhält z.B. vorgefertigte Standard-Antworten die man von Standard-Npcs in Khorinis kennt.
  
 +----
  
--------- +<code C>
  // Attribute ​  // Attribute ​
  ​attribute[ATR_STRENGTH] ​ =200;  ​attribute[ATR_STRENGTH] ​ =200;
Zeile 101: Zeile 104:
  ​attribute[ATR_HITPOINTS_MAX]=300;​  ​attribute[ATR_HITPOINTS_MAX]=300;​
  ​attribute[ATR_HITPOINTS]=300;​  ​attribute[ATR_HITPOINTS]=300;​
 +</​code>​
  
- +Hier die Attribute des NPCs, bedarf eigentlich keiner Erklärung.
-Hier die Attribute des NPC´s, bedarf eigentlich keiner Erklärung.+
 Strength ist Stärke, Dexterity Geschicklichkeit,​ Mana ist Mana und Hitpoints ist die Lebensenergie. Strength ist Stärke, Dexterity Geschicklichkeit,​ Mana ist Mana und Hitpoints ist die Lebensenergie.
 Wenn ein MAX angehängt ist, ist es das was der NPC maximal haben kann. Also nur für angeschlagene NPC´s etc. interessant. Wenn ein MAX angehängt ist, ist es das was der NPC maximal haben kann. Also nur für angeschlagene NPC´s etc. interessant.
----------+ 
 +---- 
 Hier kann man auch einfach ​ Hier kann man auch einfach ​
-B_SetAttributesToChapter (self, x);+''​B_SetAttributesToChapter (self, x);''​
 hinschreiben. Das x steht für eine Zahl 1 bis 6, also von Kapitel 1 bis Kapitel 6. hinschreiben. Das x steht für eine Zahl 1 bis 6, also von Kapitel 1 bis Kapitel 6.
 Damit muss man nicht jedes Attribut einzeln aufschreiben. Damit muss man nicht jedes Attribut einzeln aufschreiben.
-Die Attribute für die einzelnen Zahlen sind in _work/​data/​Scripts/​Content/​Story/​NPC_Scripts definiert. +Die Attribute für die einzelnen Zahlen sind in ''​_work/​data/​Scripts/​Content/​Story/​NPC_Scripts'' ​definiert.
----------+
  
 +----
 +
 +<code C>
  // ​ NSC relevante Talente vergeben ​  // ​ NSC relevante Talente vergeben ​
  ​B_GiveNpcTalents (self);  ​B_GiveNpcTalents (self);
Zeile 125: Zeile 132:
  // ​ Inventory ​  // ​ Inventory ​
  ​B_CreateAmbientInv (self);  ​B_CreateAmbientInv (self);
 +</​code>​
  
- +''​B_GiveNpcTalents (self);'' ​gibt einem NPC die relevanten Talente. Die relevanten Talente sind Schleichen, Schlösserknacken etc. Macht man bei jedem NPC. 
- +Es gibt 3 Kampftaktiken: ''​FAI_HUMAN_COWARD''​''​FAI_HUMAN_STRONG'' ​und ''​FAI_HUMAN_MASTER''​ 
-B_GiveNpcTalents (self); gibt einem NPC die relevanten Talente. Die relevanten Talente sind Schleichen, Schlösserknacken etc. Macht man bei jedem NPC. +Das erste ist die schlechteste Kampftaktik,​ die letzte die Beste. Hier kann man also angeben, wie gut der NPC kämpft. (allerdings nicht von den Waffenwerten her, nur vom Verhalten!) 
-Es gibt 3 KampftaktikenFAI_HUMAN_COWARD,​ FAI_HUMAN_STRONG und FAI_HUMAN_MASTER. Das erste ist die schlechteste Kampftaktik,​ die letzte die Beste. Hier kann man also angeben, wie gut der NPC kämpft. (allerdings nicht von den Waffenwerten her, nur vom Verhalten!) +''​EquipItem (self, ItMw_Drachenschneide);​'' ​ist der Befehl zum Drachenschneide equippen. Also ''​EquipItem (self,und der hier der Instanzname der equippten Waffe);''​
-EquipItem (self, ItMw_Drachenschneide);​ ist der Befehl zum Drachenschneide equippen. Also EquipItem (self,und der hier der Instanzname der equippten Waffe);+
 Das Ambient Inventory sollte bei jedem NPC equipped werden, damit der Spieler auch den NPC ausbeuten kann, wer er ihn mal niedergeschlagen hat.  Das Ambient Inventory sollte bei jedem NPC equipped werden, damit der Spieler auch den NPC ausbeuten kann, wer er ihn mal niedergeschlagen hat. 
-  
--------- 
  
 +----
 +
 +<code C>
  // visuals ​  // visuals ​
  ​B_SetNpcVisual (self, MALE, "​Hum_Head_FatBald",​ Face_P_Gilbert,​ BodyTex_P, ​ ITAR_VLK_M);​  ​B_SetNpcVisual (self, MALE, "​Hum_Head_FatBald",​ Face_P_Gilbert,​ BodyTex_P, ​ ITAR_VLK_M);​
  ​Mdl_SetModelFatness (self, 0);  ​Mdl_SetModelFatness (self, 0);
  ​Mdl_ApplyOverlayMds (self, "​Humans_Militia.mds"​);​  ​Mdl_ApplyOverlayMds (self, "​Humans_Militia.mds"​);​
 +</​code>​
  
- +Das ist nun das Aussehen: ​''​Hum_Head_FatBald'' ​ist die Kopfform, ​''​Face_P_Gilbert'' ​ist die Gesichtstextur, ​''​BodyTex_P'' ​ist die Körpertextur (mehr davon findet ihr in der ''​AI_Constants.d''​) ​und ''​ITAR_VLK_M'' ​ist die Rüstung. 
- +''​Mdl_SetModelFatness (self, 0);'' ​ist auf gut Deutsch das Fett des NPCs. Hier kann man statt der 0 "​-3"​ bis "​2"​ eintragen. 
-Das ist nun das Aussehen: ​"Hum_Head_FatBald" ​ist die Kopfform, Face_P_Gilbert ist die Gesichtstextur,​ BodyTex_P ist der körper ​und ITAR_VLK_M ist die Rüstung. +Und das letzte, ​''​Humans_Militia.mds'' ​ist die Bewegungsanimation (bei ''​Humans_Militia.mds'' ​bewegt sich der NPC wie ein Milizsoldat).
-Mdl_SetModelFatness (self, 0); ist auf gut Deutsch das Fett des NPCs. Hier kann man statt der 0 "​-3"​ bis "​2"​ eintragen. +
-Und das letzte, ​"Humans_Militia.mds” ist die Bewegungsanimation(bei "Humans_Militia.mds" ​bewegt sich der NPC wie ein Milizsoldat)+
  
 Grundsätzlich gilt: Um herauszufinden welche Rüstungen wie heißen, wie die Bewegngsanimation heißt etc.  Grundsätzlich gilt: Um herauszufinden welche Rüstungen wie heißen, wie die Bewegngsanimation heißt etc. 
 Immer in einem NPC Script nachschauen von dem man sicher weiß, dass er die Rüstung hat/sich so bewegt. Immer in einem NPC Script nachschauen von dem man sicher weiß, dass er die Rüstung hat/sich so bewegt.
  
---------+----
  
 +<code C>
  //​Kampf-Talente  //​Kampf-Talente
  ​B_SetFightSkills (self, 100);  ​B_SetFightSkills (self, 100);
 +</​code>​
  
 +Das sind alle Kampftalente (Einhänder,​ Zweihänder,​ Bogen, Armbrust), je nach dem, wie gut der NPC sein soll. Hier bekommt der Npc maximales Talent für jeden Kampfstil.
  
-Das sind alle Kampftalente (Einhänder,​ Zweihänder,​ Bogen, Armbrust), je nach dem, wie gut der NPC sein soll. +----
- +
---------+
  
 +<code C>
  //TA  //TA
  ​daily_routine= Rtn_Start_555;​  ​daily_routine= Rtn_Start_555;​
Zeile 168: Zeile 177:
       TA_Stand_WP(09,​00,​18,​00,"​NW_FARM1_PATH_CITY_SHEEP_09"​);​       TA_Stand_WP(09,​00,​18,​00,"​NW_FARM1_PATH_CITY_SHEEP_09"​);​
  };  };
 +</​code>​
  
 Das gehört zum Tagesablauf,​ der im nächsten Kapitel erklärt wird. Das gehört zum Tagesablauf,​ der im nächsten Kapitel erklärt wird.
-Bei FUNC VOID Rtn_Start_555() in die geschweiften Klammern ({ und };) gehört, was der NPC in seinem Tagesablauf tut. Wird gleich erklärt.+Bei ''​FUNC VOID Rtn_Start_555()'' ​in die geschweiften Klammern (''​{'' ​und ''​};''​) gehört, was der NPC in seinem Tagesablauf tut. Wird gleich erklärt.
  
 Wer gut aufgepasst hat, wird bemerkt haben, dass die 555 schon die ID unseres NPCs ist. Diese muss hier dementsprechend mitgeändert werden. Wer gut aufgepasst hat, wird bemerkt haben, dass die 555 schon die ID unseres NPCs ist. Diese muss hier dementsprechend mitgeändert werden.
  
---------+----
  
- +==== Der Tagesablauf ​====
-== Der Tagesablauf ==+
  
 Der Tagesablauf,​ kurz TA, gibt an, was die NPC´s den lieben langen tag so machen. Deswegen schauen wir uns jetzt einmal den Tagesablauf meines oben gescripteten Reiners an. Der Tagesablauf,​ kurz TA, gibt an, was die NPC´s den lieben langen tag so machen. Deswegen schauen wir uns jetzt einmal den Tagesablauf meines oben gescripteten Reiners an.
Zeile 194: Zeile 203:
  
  
-==  Den NPC im Spiel benutzen ==+==== Den NPC im Spiel benutzen ​====
  
-Um den NPC auch während des Spieles benutzen zu können, müsst ihr ihn als Skriptdatei abspeichern. Dazu ist zuerst einmal die Installation des Modkits (insbesondere der Skripte) vorrausgesetzt. Ihr habt anfangs den NPC ja in euren Editor eingegeben. Nun müsst ihr "​Speichern unter..."​ machen und geht in folgenden Ordner: [Gothic II-Verzeichnis]\\_work\\Data\\Scripts\\Content\\Story\\NPC . Normalerweise ist das Gothic II-Verzeichnis C:\\Programme\\Jowood\\Gothic II. Nun musst ihr noch den Dateinamen eingeben (die Instanz PAL_555_Reiner eignet sich dafür sehr gut) und dahinter ein .d (also PAL_555_Reiner.d). Falls ihr den Standarteditor ​von Windows benutzt, müsst ihr noch den Dateityp (unter Dateiname) von "Textdateien (*.txt)" ​zu "Alle Dateien" ​umändern. Dann könnt ihr den NPC endlich speichern.+Um den NPC auch während des Spieles benutzen zu können, müsst ihr ihn als Skriptdatei abspeichern. Dazu ist zuerst einmal die Installation des Modkits (insbesondere der Skripte) vorrausgesetzt. Ihr habt anfangs den NPC ja in euren Editor eingegeben. Nun müsst ihr "​Speichern unter..."​ machen und geht in folgenden Ordner: ​''​[Gothic II-Verzeichnis]\_work\Data\Scripts\Content\Story\NPC''​. Normalerweise ist das Gothic II-Verzeichnis ​''​C:​\Programme\Jowood\Gothic II''​. Nun musst ihr noch den Dateinamen eingeben (die Instanz ​''​PAL_555_Reiner'' ​eignet sich dafür sehr gut) und dahinter ein .d (also ''​PAL_555_Reiner.d''​). Falls ihr den Standardeditor ​von Windows benutzt, müsst ihr noch den Dateityp (unter Dateiname) von ''​Textdateien (*.txt)'' ​zu ''​Alle Dateien'' ​umändern. Dann könnt ihr den NPC endlich speichern.
  
-Um den NPC dann auch wirklich in Gothic sehen zu können, müsst ihr nun (per Arbeitsplatz) zu folgendem Ordner gehen: [Gothic II-Verzeichnis]\\System. Dort gibt es eine Datei, die den Namen GothicStarter_mod(.exe) trägt. Da ihr das für jede Skriptänderung braucht, solltet ihr einen Rechtsklick auf die Datei machen, auf "​Senden an ->" gehen und dann "​Desktop (Verknüpfung erstellen)"​ auswählen. Dann könnt ihr immer direkt diesen besonderen GothicStarter öffnen. Auf jeden Fall startet ihr diesen erstmal durch Doppelklick.+Um den NPC dann auch wirklich in Gothic sehen zu können, müsst ihr nun (per Arbeitsplatz) zu folgendem Ordner gehen: ​''​[Gothic II-Verzeichnis]\System''​. Dort gibt es eine Datei, die den Namen GothicStarter_mod(.exe) trägt. Da ihr das für jede Skriptänderung braucht, solltet ihr einen Rechtsklick auf die Datei machen, auf "​Senden an ->" gehen und dann "​Desktop (Verknüpfung erstellen)"​ auswählen. Dann könnt ihr immer direkt diesen besonderen GothicStarter öffnen. Auf jeden Fall startet ihr diesen erstmal durch Doppelklick.
  
-Wenn ihr schon einmal Gothic II-Mods gespielt habt, ist euch die Auswahlliste wahrscheinlich vertraut, bis auf die Schriftzüge rechts. Für uns ist erstmal nur "​Skripte parsen"​ und "Spiel starten"​ wichtig. Vor "​Skripte parsen"​ müsst ihr nämlich ein Häckchen machen und dann auf "Spiel starten"​ klicken. Wenn beim Starten des Spieles eine Fehlermeldung auftritt, ist das nicht der Weltuntergang! Wirklich jedem Programmierer passieren Fehler, gute Programmierer erkennen nur direkt, wo sie sind und wie man sie beheben kann, Neulinge haben damit meist ein Problem. Hier kann man beruhigt im [http://​forum.worldofplayers.de/​forum/​forumdisplay.php?​f=104 Editing-Forum] vorbeischauen und euer Problem schildern, dort wird sich sicherlich jemand kümmern. Damit man euch übrigens am besten helfen kann, solltet ihr euer gesamtes Skript posten!+Wenn ihr schon einmal Gothic II-Mods gespielt habt, ist euch die Auswahlliste wahrscheinlich vertraut, bis auf die Schriftzüge rechts. Für uns ist erstmal nur "​Skripte parsen"​ und "Spiel starten"​ wichtig. Vor "​Skripte parsen"​ müsst ihr nämlich ein Häckchen machen und dann auf "Spiel starten"​ klicken. Wenn beim Starten des Spieles eine Fehlermeldung auftritt, ist das nicht der Weltuntergang! Wirklich jedem Programmierer passieren Fehler, gute Programmierer erkennen nur direkt, wo sie sind und wie man sie beheben kann, Neulinge haben damit meist ein Problem. Hier kann man beruhigt im [[http://​forum.worldofplayers.de/​forum/​forumdisplay.php?​f=104|Editing-Forum]] vorbeischauen und euer Problem schildern, dort wird sich sicherlich jemand kümmern. Damit man euch übrigens am besten helfen kann, solltet ihr euer gesamtes Skript posten!
  
 Nun wird Gothic II gestartet und ihr solltet ein neues Spiel beginnen (mit Laden könnt ihr euren NPC nicht einfügen!). Nachdem ihr euch durch das Gespräch mit Xardas geklickt habt, solltet ihr am besten zu Maleth bei Lobarts Hof gehen (weil dort der Waypoint für unseren NPC ist). Dort könnt ihr den Marvin-Mode öffnen (tippe blind "b marvin b"), dann drückt ihr F2 und tippt Insert PAL_555_Reiner. Dann noch Enter und wenn alles richtig geklappt hat, sollte nun Reiner erscheinen. Nun wird Gothic II gestartet und ihr solltet ein neues Spiel beginnen (mit Laden könnt ihr euren NPC nicht einfügen!). Nachdem ihr euch durch das Gespräch mit Xardas geklickt habt, solltet ihr am besten zu Maleth bei Lobarts Hof gehen (weil dort der Waypoint für unseren NPC ist). Dort könnt ihr den Marvin-Mode öffnen (tippe blind "b marvin b"), dann drückt ihr F2 und tippt Insert PAL_555_Reiner. Dann noch Enter und wenn alles richtig geklappt hat, sollte nun Reiner erscheinen.
  
  
- +Somit ist das erste Kapitel abgeschlossen.
- +
- +
- +
-Somit ist das erste Kapitel abgeschlossen. Bei Fragen, Anregungen, Kritik entweder PM im WoG an mich, oder per ICQ 309-139-139.+
 Ich hoffe ihr kamt damit zurecht. Ich hoffe ihr kamt damit zurecht.
-Ich gebe euch noch mit auf den Weg - Fragen kostet nichts. Außer Zeit. Und die braucht ihr für erfolgreiches Modding. ​ +Ich gebe euch noch mit auf den Weg - Fragen kostet nichts. Außer Zeit. Und die braucht ihr für erfolgreiches Modding.
- +
-Freundliche Grüße,  +
-Talvar +
- +
-Bearbeitet von Milgo+
  
  
- ==  NPC Script für Gothic 1 ==+====  NPC Script für Gothic 1 ====
 Der oben genannte Script funktioniert nur in Gothic 2, deshalb schreibe ich hier einmal einen Script für Gothic 1 auf. Der wesentliche Unterschied zwischen den beiden Scripten ist die Visual Zeile: Der oben genannte Script funktioniert nur in Gothic 2, deshalb schreibe ich hier einmal einen Script für Gothic 1 auf. Der wesentliche Unterschied zwischen den beiden Scripten ist die Visual Zeile:
  
 +<code C>
 Mdl_SetVisualBody (self,"​hum_body_Naked0",​ 0, 3, "​Hum_Head_FatBald",​ 2, 1, GRD_ARMOR_L);​ Mdl_SetVisualBody (self,"​hum_body_Naked0",​ 0, 3, "​Hum_Head_FatBald",​ 2, 1, GRD_ARMOR_L);​
 +</​code>​
 +
 +''​self,''​ bedeutet dass das Aussehen dem NPC selbst zugeordnet wird.
 +''"​hum_body_Naked0",''​ ist der Körper, also menschlicher_körper_nackt0 auf Deutsch. D.h. der Körper ohne Rüstung
 +''​0,​ 3,''​ ist die Version der Textur (0) und die Hautfarbe (3), also heißt die Textur für den Körperabschnitt "​hum_body_Naked0",​ 0, 3, Hum_Body_Naked_V0-C3 (V=Version und C=Skinton)
 +''"​Hum_Head_FatBald",''​ ist die Form des Kopfes (auch Mesh genannt)
 +''​2,​ 1,''​ bedeuten die Textur des Kopfes (Die Hautfarbe wurde ja schon vorher erwähnt) und die Zahntextur (Sieht man im Spiel so gut wie nicht...). Hier wäre also die Kopftextur Hum_Head_V2-C3. Wer aufpast dem fällt auf das das FatBald nicht in  der Textur steht. Muss es auch nicht, da die selbe Textur auf die verschiedenen Kopfformen gelegt werden kann.
 +''​Grd_Armor_M''​ ist die Rüstung die die Person anhat. ''​Grd''​ ist das Kürzel von Gardisten, ''​Armor''​ bedeutet Rüstung und ''​M''​ bedeutet Mittel.
 +
 +----
  
-------- 
-(self, 
-bedeutet dass das visual mir selbst zugeordnet wird. 
-------- 
-"​hum_body_Naked0",​ 
-ist der Körper, also menschlicher_körper_nackt0 auf Deutsch. Dh. der Körper ohne Rüstung 
--------- 
-0, 3, 
-ist die Version der Textur (0) und die Hautfarbe (3), also heißt die Textur für den Körperabschnitt "​hum_body_Naked0",​ 0, 3, Hum_Body_Naked_V0-C3 (V=Version und C=Skinton) 
--------- 
-"​Hum_Head_FatBald", ​ 
-ist die Form des Kopfes (auch Mesh genannt) 
--------- 
-2, 1,  
-bedeuten die Textur des Kopfes (Die Hautfarbe wurde ja schon vorher erwähnt) und die Zahntextur (Sieht man im Spiel so gut wie nicht...). Hier wäre also die Kopftextur Hum_Head_V2-C3. Wer aufpast dem fällt auf das das FatBald nicht in  der Textur steht. Muss es auch nicht, da die selbe Textur auf die verschiedenen Kopfformen gelegt werden kann. 
--------- 
-Grd_Armor_M ​ 
-ist die Rüstung die die Person anhat. Grd ist das Kürzel von Gardisten, Armor bedeutet Rüstung und m bedeutet Mittel. 
--------- 
 Und hier mal der Vollständige Script für G1: Und hier mal der Vollständige Script für G1:
  
 +<code C>
 instance GRD_1900_Gardist (Npc_Default) instance GRD_1900_Gardist (Npc_Default)
 { {
Zeile 292: Zeile 285:
 TA_Guard (06,​00,​21,​00,"​WP_INTRO_WI06"​);​  TA_Guard (06,​00,​21,​00,"​WP_INTRO_WI06"​);​
 }; };
- +</​code>​
--------- +
-MfG Gottfried+
quickstart/skripte/npc.1439928953.txt.gz · Zuletzt geändert: 2016/02/07 14:49 (Externe Bearbeitung)