Benutzer-Werkzeuge

Webseiten-Werkzeuge


Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
daedalus:nuetzliches [2016/02/06 12:54]
milgo
daedalus:nuetzliches [2026/08/12 20:16] (aktuell)
216.73.216.43 alte Version wiederhergestellt (2015/08/18 20:15)
Zeile 1: Zeile 1:
-===  Taschendiebstahl-Dialoge für alle ===+== Inhalt: =
 +*[[Daedalus:nuetzliches|Taschendiebstahl-Dialoge für alle NPCs]] 
 +*[[Daedalus:nuetzliches|Mehr Gilden einfügen]] 
 +*[[Daedalus:nuetzliches| Zufallsfunktion mit passenderer statistischer Verteilung ]] 
 +*[[Daedalus:nuetzliches|[für Fortgeschritene] Zufällige Attribute für Npcs]] 
 +*[[Daedalus:nuetzliches|Automatische Übertragung von Gegenständen von Opfer nach Hero]] 
 +*[[Daedalus:nuetzliches|Kill-Counter erstellen]] 
 + 
 + 
 +==  Taschendiebstahl-Dialoge für alle ==
  
-<code C> 
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // //
Zeile 125: Zeile 133:
   
 }; };
-</code> 
  
-===  Mehr Gilden einfügen ===+==  Mehr Gilden einfügen ==
  
 Constans.d-Auszug Constans.d-Auszug
-<code C> 
 // ****************** // ******************
 //         Gilden //         Gilden
Zeile 172: Zeile 178:
  
 const int GIL_HERO                    = 9; const int GIL_HERO                    = 9;
-</code> 
  
 Ich habe hier ein paar Beispiel Gilden zusammen gefügt. Ich habe hier ein paar Beispiel Gilden zusammen gefügt.
Zeile 178: Zeile 183:
 Die Magier genießen hier als Beispiel einen besonderen Stand. Die Magier genießen hier als Beispiel einen besonderen Stand.
 Es gibt noch ein paar Nebengilden und eine Gilde namens Hero, Es gibt noch ein paar Nebengilden und eine Gilde namens Hero,
-damit sich alle Farben bekriegen "können", aber den Spieler-Charakter nich angreifen.+damit sich alle Farben bekriegen "können", aber den Sc nich angreifen.
  
-<code C> 
 //Alte gilden bekommen 1 //Alte gilden bekommen 1
 const int GIL_OLD = 1; const int GIL_OLD = 1;
Zeile 215: Zeile 219:
  
 //FixMeHoshi Fokus und Spellnamen abgleichen. (auch    im B_TEachTalentRunes!!) //FixMeHoshi Fokus und Spellnamen abgleichen. (auch    im B_TEachTalentRunes!!)
-</code> 
  
 Und hier noch zwei sachen: Und hier noch zwei sachen:
 Npc_Globals.d: Npc_Globals.d:
-<code C>+
 SetGuild_Text(); SetGuild_Text();
      // **********************      // **********************
Zeile 252: Zeile 255:
     TXT_GUILDS[65] = "Z"            ;     TXT_GUILDS[65] = "Z"            ;
 }; };
-</code> 
  
 und hier ein Auszug aus einer Npc_Datei: und hier ein Auszug aus einer Npc_Datei:
  
-<code C>+
 // - - - - - - NSC - - - - - - // - - - - - - NSC - - - - - -
     name         = "Nodrog";     name         = "Nodrog";
Zeile 267: Zeile 269:
     aivar[ AIV_MagicUser] = MAGIC_ALWAYS;     aivar[ AIV_MagicUser] = MAGIC_ALWAYS;
     aivar[ AIV_GuildStufe] = GIL_STUFE_MAGIER;     aivar[ AIV_GuildStufe] = GIL_STUFE_MAGIER;
-</code> 
  
 Hier ergeben sich selbst verständlich viele Nachteile, da alle Mitglieder der einzelnen Gruppen alle der gleichen Gilde angehöhren, aber man kann die Gildennamen für die Story ändern (in den Dialogen zum Beispiel), wenn der Held befördert wird. Gleichzeitig kann man immer abfragen welchen Stand ein Npc oder Sc genießt. Hier ergeben sich selbst verständlich viele Nachteile, da alle Mitglieder der einzelnen Gruppen alle der gleichen Gilde angehöhren, aber man kann die Gildennamen für die Story ändern (in den Dialogen zum Beispiel), wenn der Held befördert wird. Gleichzeitig kann man immer abfragen welchen Stand ein Npc oder Sc genießt.
Zeile 274: Zeile 275:
 ==  Zufallsfunktion mit passenderer statistischer Verteilung == ==  Zufallsfunktion mit passenderer statistischer Verteilung ==
  
-<code C> 
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // //
Zeile 322: Zeile 322:
  start8 = Hlp_Random(4263);  start8 = Hlp_Random(4263);
 }; };
-</code> 
  
 ==  [für Fortgeschritene] Zufällige Attribute für Npcs == ==  [für Fortgeschritene] Zufällige Attribute für Npcs ==
  
-<code C> 
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // //
Zeile 338: Zeile 336:
  
 /*  /* 
- Zur Erinnerung - Auszug AI_Constants.d:+ Zur Errinerung - Auszug AI_Constants.d:
  
  Stärkeklassen für die Zufalls-Attribute  Stärkeklassen für die Zufalls-Attribute
Zeile 725: Zeile 723:
  };  };
 }; };
-</code> 
  
 ==  Automatische Übertragung von Gegenständen von Opfer nach Hero == ==  Automatische Übertragung von Gegenständen von Opfer nach Hero ==
Zeile 735: Zeile 732:
 D.h. Ihr könnt durch Hinzufügen von Abfragen zB einen Questerfolg auslösen. Das ist dann schon fast wie in G3, jedoch musste man auch dort manuell plündern. D.h. Ihr könnt durch Hinzufügen von Abfragen zB einen Questerfolg auslösen. Das ist dann schon fast wie in G3, jedoch musste man auch dort manuell plündern.
  
-<code C>+Hier dir URL zu dem Script als Datei: 
 +http://nodrog.no.funpic.de/Sekte/B_GiveDeathInv.d 
 // ************************** // **************************
 // B_GiveDeathInv // B_GiveDeathInv
Zeile 1116: Zeile 1115:
  self.aivar[AIV_DeathInvGiven] = TRUE;  self.aivar[AIV_DeathInvGiven] = TRUE;
 }; };
-</code> 
  
 ==  Kill-Counter erstellen == ==  Kill-Counter erstellen ==
Zeile 1122: Zeile 1120:
 So, da das auch nicht so einfach ist, gebe ich hier mal ein Beispiel für einen Kill-Counter mit folgender Attributssteigerung. So, da das auch nicht so einfach ist, gebe ich hier mal ein Beispiel für einen Kill-Counter mit folgender Attributssteigerung.
  
-Erstmal müssen wir die ZS_Dead überarbeiten. Diese befindet sich im Verzeichnis "[GOTHIC 2]\_work\data\Scripts\Content\AI\Human\ZS_Human". Dort tragen wir bei dem Abschnitt unter dem Titel XP folgendermaßen:+Erstmal müssen wir die ZS_Dead überarbeiten. Diese befindet sich im Verzeichnis "[GOTHIC 2]\\_work\\data\\Scripts\\Content\\AI\\Human\\ZS_Human". Dort tragen wir bei dem Abschnitt unter dem Titel XP folgendermaßen:
  
-<code C> + // ------ XP ------ 
-// ------ XP ------ + if ( Npc_IsPlayer(other) || (other.aivar[AIV_PARTYMEMBER]==TRUE) ) 
-if ( Npc_IsPlayer(other) || (other.aivar[AIV_PARTYMEMBER]==TRUE) ) + && (self.aivar[AIV_VictoryXPGiven] == FALSE)  
-&& (self.aivar[AIV_VictoryXPGiven] == FALSE)  +
-+ B_GivePlayerXP (self.level * XP_PER_VICTORY);  
- B_GivePlayerXP (self.level * XP_PER_VICTORY);  + B_Counter (); 
- B_Counter (); + self.aivar[AIV_VictoryXPGiven] = TRUE; 
- self.aivar[AIV_VictoryXPGiven] = TRUE; + };
-}; +
-</code>+
  
-Wir tragen nach der B_GivePlayerXP noch ''B_Counter();'' ein. Das ruft dann unseren Counter auf, den wir im folgenden erstellen. +Wir tragen nach der B_GivePlayerXP noch B_Counter(); ein. Das ruft dann unseren Counter auf, den wir im folgenden erstellen. 
-Hierzu erstellen wir eine Datei mit dem Namen "B_Counter.d" im Verzeichnis "[GOTHIC 2]\work\data\Scripts\Content\Story\B_Story".+Hierzu erstellen wir eine Datei mit dem Namen "B_Counter.d" im Verzeichnis "[GOTHIC 2]\\work\\data\\Scripts\\Content\\Story\\B_Story".
  
-<code C> 
 // ******************************************** // ********************************************
 // B_Counter  // B_Counter
Zeile 1149: Zeile 1144:
  kill_counter += 1;// Plus einen Kill  kill_counter += 1;// Plus einen Kill
 }; };
-</code> 
  
 Diese Funktion zählt jetzt eine Variable +1, da man einen NPC getötet hat. Nun müssen wir die Variable in die Story_Globals.d eintragen. Das kann ganz oben sein, ganz unten oder in der Mitte, ganz egal. Wir erstellen jetzt einfach einen neuen Abschnitt ganz oben in der Story_Globals.d: Diese Funktion zählt jetzt eine Variable +1, da man einen NPC getötet hat. Nun müssen wir die Variable in die Story_Globals.d eintragen. Das kann ganz oben sein, ganz unten oder in der Mitte, ganz egal. Wir erstellen jetzt einfach einen neuen Abschnitt ganz oben in der Story_Globals.d:
  
-<code C> 
 // ************************* // *************************
 // Globalvariablen für Story // Globalvariablen für Story
Zeile 1160: Zeile 1153:
 // ------ NEU ------ // ------ NEU ------
 var int kill_counter = 0; var int kill_counter = 0;
-</code>+
 Danach folgt wieder der normale Rest der Datei. Danach folgt wieder der normale Rest der Datei.
  
-Nun müssen wir im Weiteren noch die B_Counter.d in der Gothic.src eintragen, die wir mit dem normalen Text-Editor öffnen können, so wie die Skripte (Verzeichnis der Gothic.src: "[GOTHIC 2]\_work\data\Scripts\Content"):+Nun müssen wir im Weiteren noch die B_Counter.d in der Gothic.src eintragen, die wir mit dem normalen Text-Editor öffnen können, so wie die Skripte (Verzeichnis der Gothic.src: "[GOTHIC 2]\\_work\\data\\Scripts\\Content"):
  
-<code C> +STORY\\Log_Entries\\Log_Constants_*.d 
-STORY\Log_Entries\Log_Constants_*.d +STORY\\XP_Constants.d 
-STORY\XP_Constants.d +STORY\\Story_Globals.d 
-STORY\Story_Globals.d +STORY\\NPC_Globals.d 
-STORY\NPC_Globals.d +STORY\\svm.d 
-STORY\svm.d +STORY\\Text.d 
-STORY\Text.d +STORY\\B_STORY\\B_Counter.d
-STORY\B_STORY\B_Counter.d +
-</code>+
  
 Das ist jetzt nur der wichtigste Ausschnitt aus der Gothic.src. Die B_Counter darf NICHT über der Story_Globals .d stehen, da dann die Variable in der B_Counter nicht erkannt wird. Das ist jetzt nur der wichtigste Ausschnitt aus der Gothic.src. Die B_Counter darf NICHT über der Story_Globals .d stehen, da dann die Variable in der B_Counter nicht erkannt wird.
Zeile 1181: Zeile 1172:
 Hierzu öffnen wr nochmals die B_Counter.d und verändern sie wie folgt: Hierzu öffnen wr nochmals die B_Counter.d und verändern sie wie folgt:
  
-<code C> 
 func void B_Counter () func void B_Counter ()
 { {
Zeile 1199: Zeile 1189:
 // ***************************************************************************************** // *****************************************************************************************
 const string PRINT_STEIGERUNG = "Die Stärke wurde um 5 gesteigert"; const string PRINT_STEIGERUNG = "Die Stärke wurde um 5 gesteigert";
-</code> 
  
 Nun folgt noch der Rest des Skripts, so wie es vorher auch war. Nun folgt noch der Rest des Skripts, so wie es vorher auch war.
 +
  
 Das war's, nun noch Skripte parsen und fertig ist euer Kill-Counter mit Learning by Doing-System. Das war's, nun noch Skripte parsen und fertig ist euer Kill-Counter mit Learning by Doing-System.
 +Bei Fragen einfach per PN an Mantragon wenden. ;)
 +
 +MfG
 +Mantragon
daedalus/nuetzliches.1454763297.txt.gz · Zuletzt geändert: 2016/02/06 12:54 von milgo