Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Nächste Überarbeitung | Vorherige Überarbeitung | ||
|
quickstart:skripte:startup [2015/08/18 20:15] 127.0.0.1 Externe Bearbeitung |
quickstart:skripte:startup [2017/04/28 17:55] (aktuell) 178.10.179.172 |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | == Spawnen eines NPCs == | + | ===== Spawnen eines NPCs ===== |
| [[Quickstart: | [[Quickstart: | ||
| - | Jeder normale NPC wird beim Betreten der Welt in die Welt eingefügt. Das geschieht über eine Datei namens Startup.d. Diese findet man in [Gothic II-Verzeichnis]\\_work\\Data\\Scripts\\Content\\Story. | + | Jeder normale NPC wird beim Betreten der Welt in die Welt eingefügt. Das geschieht über eine Datei namens Startup.d. Diese findet man in '' |
| Bevor wird uns einen Teil der Startup.d ansehen und ich den erkläre, noch ein bisschen zur Theorie: Die orginalen Gothic-Welten bestehen alle aus mehreren Teilen, weil sie zu groß sind, als dass man sie alleine laden könnte, das wird von dem Spacer nicht unterstützt. Also teilt man sie in mehrere, kleinere Teile und fügt diese nachher, über Macros, wieder zusammen. Das Ärgernis für den Skripter ist hierbei, dass man herausfinden muss, in welchem Teil der Welten ein Waypoint steht. Denn alle NPCs werden an Way- oder Freepoints gespawnt. | Bevor wird uns einen Teil der Startup.d ansehen und ich den erkläre, noch ein bisschen zur Theorie: Die orginalen Gothic-Welten bestehen alle aus mehreren Teilen, weil sie zu groß sind, als dass man sie alleine laden könnte, das wird von dem Spacer nicht unterstützt. Also teilt man sie in mehrere, kleinere Teile und fügt diese nachher, über Macros, wieder zusammen. Das Ärgernis für den Skripter ist hierbei, dass man herausfinden muss, in welchem Teil der Welten ein Waypoint steht. Denn alle NPCs werden an Way- oder Freepoints gespawnt. | ||
| Zeile 9: | Zeile 9: | ||
| So, nun mal einen Ausschnitt aus der Startup.d : | So, nun mal einen Ausschnitt aus der Startup.d : | ||
| - | -------- | + | <code C> |
| func void STARTUP_ADDON_PART_GOLDMINE_01 () | func void STARTUP_ADDON_PART_GOLDMINE_01 () | ||
| { | { | ||
| Zeile 36: | Zeile 35: | ||
| INIT_SUB_ADDON_PART_GOLDMINE_01(); | INIT_SUB_ADDON_PART_GOLDMINE_01(); | ||
| }; | }; | ||
| + | </ | ||
| -------- | -------- | ||
| + | <code C> | ||
| func void STARTUP_ADDON_PART_GOLDMINE_01 () | func void STARTUP_ADDON_PART_GOLDMINE_01 () | ||
| + | </ | ||
| - | func void und () müssen hier, wie eigentlich überall anders auch stehen. STARTUP_ADDON_PART_GOLDMINE_01 ist ein Name, der nicht willkürlich geändert werden kann... Alle Startup-Funktionen müssen, damit sie auch wirklich ausgeführt werden, mit STARTUP_ anfangen und danach den Namen des Weltenteils tragen. Dieser ist in diesem Falle ADDON_PART_GOLDMINE_01. | + | '' |
| + | Diese Startup-Funktion wird also nur aufgerufen, wenn eine Welt mit dem Namen '' | ||
| -------- | -------- | ||
| - | Wld_InsertNpc (STRF_1118_Addon_Patrick, | + | <code C> |
| - | Wld_InsertNpc (STRF_1119_Addon_Monty, | + | Wld_InsertNpc (STRF_1118_Addon_Patrick, |
| - | Wld_InsertNpc (STRF_1120_Addon_Tonak, | + | Wld_InsertNpc (STRF_1119_Addon_Monty, |
| - | Wld_InsertNpc (STRF_1121_Addon_Telbor, | + | Wld_InsertNpc (STRF_1120_Addon_Tonak, |
| - | Wld_InsertNpc (STRF_1122_Addon_Pardos, | + | Wld_InsertNpc (STRF_1121_Addon_Telbor, |
| + | Wld_InsertNpc (STRF_1122_Addon_Pardos, | ||
| + | </ | ||
| - | Hier befindet sich nur ein neuer Befehl. Dieser lautet Wld_InsertNpc. Dieser Befehl zeigt dem Spiel nachher, dass ein NPC (übrigens sind auch Monster NPCs) eingefügt werden soll. Der Befehl fordert noch zwei weitere Informationen. Im ersten Teil der Klammer, die nach Wld_InsertNpc kommen muss, steht die Instanz des NPCs, der eingefügt werden soll. Hier ist es z.B. STRF_1118_Addon_Patrick, | + | Hier befindet sich nur ein neuer Befehl. Dieser lautet Wld_InsertNpc. Dieser Befehl zeigt dem Spiel nachher, dass ein NPC (übrigens sind auch Monster NPCs) eingefügt werden soll. Der Befehl fordert noch zwei weitere Informationen. Im ersten Teil der Klammer, die nach Wld_InsertNpc kommen muss, steht die Instanz des NPCs, der eingefügt werden soll. Hier ist es z.B. STRF_1118_Addon_Patrick, |
| -------- | -------- | ||
| + | <code C> | ||
| func void INIT_SUB_ADDON_PART_GOLDMINE_01 () | func void INIT_SUB_ADDON_PART_GOLDMINE_01 () | ||
| { | { | ||
| Zeile 68: | Zeile 73: | ||
| INIT_SUB_ADDON_PART_GOLDMINE_01(); | INIT_SUB_ADDON_PART_GOLDMINE_01(); | ||
| }; | }; | ||
| + | </ | ||
| - | Immer, wenn eine Funktion, mit dem Namen STARTUP_WELTTEILNAME ausgeführt wird, sucht Gothic direkt danach, nach einer Datei, die den Namen INIT_WELTTEILNAME hat. In dieser stehen meist nur vier Befehle. Die ersten drei (B_InitMonsterAttitudes ();, B_InitGuildAttitudes();, | + | Immer, wenn eine Funktion, mit dem Namen '' |
| - | Und das wars eigentlich schon! Mit diesem Wissen solltet die gesamte Startup.d verstehen (bis auf die INIT_SUB_WELTTEILNAME). | + | Und das wars eigentlich schon! Mit diesem Wissen solltet die gesamte Startup.d verstehen (bis auf die '' |
| Ihr könnt übrigens herausfinden, | Ihr könnt übrigens herausfinden, | ||
| In dem Sinne, an die Arbeit. ;) | In dem Sinne, an die Arbeit. ;) | ||
| - | |||
| - | Bei Kritik, Verbesserungsvorschläge usw, bitte bei [http:// | ||