Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| 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: | ||
| + | *[[Daedalus: | ||
| + | *[[Daedalus: | ||
| + | *[[Daedalus: | ||
| + | *[[Daedalus: | ||
| + | *[[Daedalus: | ||
| + | |||
| + | |||
| + | == Taschendiebstahl-Dialoge für alle == | ||
| - | <code C> | ||
| /////////////////////////////////////////////////////////////////////////////////////////////////////////////// | /////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| // | // | ||
| Zeile 125: | Zeile 133: | ||
| }; | }; | ||
| - | </ | ||
| - | === Mehr Gilden einfügen | + | == Mehr Gilden einfügen == |
| Constans.d-Auszug | Constans.d-Auszug | ||
| - | <code C> | ||
| // ****************** | // ****************** | ||
| // | // | ||
| Zeile 172: | Zeile 178: | ||
| const int GIL_HERO | const int GIL_HERO | ||
| - | </ | ||
| 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 " | + | damit sich alle Farben bekriegen " |
| - | <code C> | ||
| //Alte gilden bekommen 1 | //Alte gilden bekommen 1 | ||
| const int GIL_OLD = 1; | const int GIL_OLD = 1; | ||
| Zeile 215: | Zeile 219: | ||
| // | // | ||
| - | </ | ||
| 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] = " | TXT_GUILDS[65] = " | ||
| }; | }; | ||
| - | </ | ||
| und hier ein Auszug aus einer Npc_Datei: | und hier ein Auszug aus einer Npc_Datei: | ||
| - | <code C> | + | |
| // - - - - - - NSC - - - - - - | // - - - - - - NSC - - - - - - | ||
| name = " | name = " | ||
| 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; | ||
| - | </ | ||
| Hier ergeben sich selbst verständlich viele Nachteile, da alle Mitglieder der einzelnen Gruppen alle der gleichen Gilde angehöhren, | Hier ergeben sich selbst verständlich viele Nachteile, da alle Mitglieder der einzelnen Gruppen alle der gleichen Gilde angehöhren, | ||
| 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); | ||
| }; | }; | ||
| - | </ | ||
| == [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 | + | Zur Errinerung |
| Stärkeklassen für die Zufalls-Attribute | Stärkeklassen für die Zufalls-Attribute | ||
| Zeile 725: | Zeile 723: | ||
| }; | }; | ||
| }; | }; | ||
| - | </ | ||
| == 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:// | ||
| // ************************** | // ************************** | ||
| // B_GiveDeathInv | // B_GiveDeathInv | ||
| Zeile 1116: | Zeile 1115: | ||
| self.aivar[AIV_DeathInvGiven] = TRUE; | self.aivar[AIV_DeathInvGiven] = TRUE; | ||
| }; | }; | ||
| - | </ | ||
| == 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 " | + | Erstmal müssen wir die ZS_Dead überarbeiten. Diese befindet sich im Verzeichnis " |
| - | <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; | + | }; |
| - | }; | + | |
| - | </ | + | |
| - | Wir tragen nach der B_GivePlayerXP noch '' | + | Wir tragen nach der B_GivePlayerXP noch B_Counter(); |
| - | Hierzu erstellen wir eine Datei mit dem Namen " | + | Hierzu erstellen wir eine Datei mit dem Namen " |
| - | <code C> | ||
| // ******************************************** | // ******************************************** | ||
| // | // | ||
| Zeile 1149: | Zeile 1144: | ||
| kill_counter += 1;// Plus einen Kill | kill_counter += 1;// Plus einen Kill | ||
| }; | }; | ||
| - | </ | ||
| 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; | ||
| - | </ | + | |
| 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: " | + | 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: " |
| - | <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 | + | |
| - | </ | + | |
| 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"; | ||
| - | </ | ||
| 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 | ||