World of Gothic Archiv > Editing
Zwei kleine Probleme.
Seite 1 von 1  1 
04.02.2004, 19:13 #1
Black Daemon
Beiträge: 218
Zwei kleine Probleme.
Sorry das ich schon wieder hier Fragen muss aber geht leider nid anders :(.

Problem Nr1:
Also ich habe ne neue kleine Welt erstellt. Zum üben habe ich jetzt nen NPC gescriptet und ihm TAs auf der Insel gegeben. Mein Problem liegt jetzt aber darin, dass ich den NPC nid automatisch gestartet bekomme.
Zuerst habe ich einfach nen neuen Abschnitt in die Startup.d eingefügt.
quote:

func VOID STARTUP_SUB_Eigeneinsel ()
{
Wld_InsertNpc (None_999_Gunther,"INSELWAY2");
};



Als dann bei starten nix kam habe ich im Wiki gesucht und das gefunden:

quote:

NSCs werden mit Hilfe der Skripte in die Welt eingefügt. Hierzu werden beim Start eines Spieles oder beim Betreten eines neuen Levels automatisch Skriptmethoden aufgerufen, in denen dann die NSCs eingefügt werden sollten.
Die erste dieser Skriptfunktion ist die Startup-Funktion. Sie wird einmal beim Spielstart, bzw. beim erstmaligen Betreten eines Levels ausgeführt. Hier werden dann die in diesem Level vorkommenden NSCs an einem Waypoint eingefügt. Sollte der NSC einen Tagesablauf haben, so kann er aber von Gothic (bzw. von der Tagesablaufvorausberechnung) an eine andere Stelle, entsprechend dem Tagesablauf, eingefügt werden.
Der Name dieser Skriptfunktion setzt sich aus dem vorangestellen "STARTUP_" und dem Namen des entspechenden Level-Zen-Files zusammen



Gut dann habe ich also den Scriptteil von oben in eine startup_eigeneinsel.d gepackt. Beim nächsten Start kan auch nix.
Habs mit eintragen in die gothic.src probiert. Nix.
Habt ihr ne Ahnung woran das liegt? Sorry wenn ich noch bissel verplant bin.



Problem2:
Ich habe meinem NPC dann noch einen kleine Testdialog verpasst. Im Spiel kann ich ihn ausführen, also funktionier er. Das Problem dabei ist, dass er beim Updaten der ou.bin über den Spacer nicht erkannt wird und ich somit keinen Untertitel bekomme was einen Dialog sinnlos macht.



So danke schonmal für Antworten, ich weiß ja
04.02.2004, 20:11 #2
QireX
Beiträge: 204

Mach vieleicht mal ne Aufgabe denn sonst braucht der NPC ja garnicht da zu sein

Aber erlich gesagt war das jetzt


Darfste mich net fragen
...
Naja hasste ja auch nicht
04.02.2004, 20:39 #3
AlexVornam
Beiträge: 1.727

Du musst in der StartUp.d noch

code\:

func VOID STARTUP_Eigeneinsel ()
{
STARTUP_SUB_Eigeneinsel ();
};



einfügen, dann müsste es klappen.
04.02.2004, 20:52 #4
GülleMüller
Beiträge: 472

quote:
dass er beim Updaten der ou.bin über den Spacer nicht erkannt wird

Einfach mal OU.* löschen und beim erneuten "refreshen" auf doppelte Einträge achten, sonst wird die OU.Bin mal unnötig groß. (Dann natürlich "saven" ;))

cu
GüMü
04.02.2004, 21:22 #5
HornOx
Beiträge: 1.458

Oder direkt:
code\:
func VOID STARTUP_Eigeneinsel ()
{
Wld_InsertNpc (None_999_Gunther,"INSELWAY2");
};
Außerdem solltest du bei der Gelegenheit auch noch eine passende Init_ Funktion erstellen damit die Gildenwerte(oder wars was anderes?) richtig gesetzt werden und dich feindliche NPCs auch brav angreifen.

Die Scripte mußt du mit dem Spacer parsen (also nicht per -zreparse), nur dann wird eine neue OUINFO.INF erstellt die der Spacer beim klick auf "Update" benützt um eine neue OU.csl und ou.bin zu erstellen.

hmm, http://wiki.devmode.de/Diverses/Unt...d+Sprachausgabe sollte ich auch mal weiterschreiben...
04.02.2004, 22:09 #6
Black Daemon
Beiträge: 218

:) Wunderbar ich wusste doch auf euer geballtes Fachwissen ist Verlass. Beide Probleme gelöst und wieder um nein nicht eine, sondern um sogar zwei Erfahrungen reicher. Danke nochmal bis zur nächsten dummen Frage ^^

mfg Black Daemon
05.02.2004, 17:51 #7
Black Daemon
Beiträge: 218

quote:

Außerdem solltest du bei der Gelegenheit auch noch eine passende Init_ Funktion erstellen damit die Gildenwerte(oder wars was anderes?) richtig gesetzt werden und dich feindliche NPCs auch brav angreifen.



Meinst du damit sowas wie ind der guilds.d steht?
Übernimmt der die einstellungen nicht, bis ich andere mach einfach aus der Datei?
06.02.2004, 09:40 #8
HornOx
Beiträge: 1.458

code\:
FUNC VOID INIT_Eigeneinsel ()
//wird bei jedem Levelwechsel, Neustart
//und neugeladenen Spiel ausgeführt
{
//-------- Objekt-TAs --------
//Wld_SetMobRoutine (00,00, "", 1);
//-------- Attitüden initialisieren --------
B_InitMonsterAttitudes ();
B_InitGuildAttitudes();
};
06.02.2004, 11:32 #9
Black Daemon
Beiträge: 218

Aso danke, das heist also, dass ich die alten gilden einstellungen damit nur starten muss. Gut. Ich denke das sind dann die einstellungen die in der guilds.d in der ersten tabelle gemacht sind.

Zu:
quote:
FUNC VOID Wld_SetObjectRoutine (var INT hour1, VAR INT min1, VAR STRING objName, VAR INT state) { };
// _Ein_ Objekt mit diesem _Vobnamen_ wird getriggert
FUNC VOID Wld_SetMobRoutine (var INT hour1, VAR INT min1, VAR STRING objName, VAR INT state) { };
// _Alle_ Mobs mit diesem _Schemanamen_ werden getriggert.



Kurz ne Verständnisfrage:
Wld_SetObjectRoutine: Damit gibts man den Objekten z.b. Licht oder Feuer nen Tagesalblauf und bestimmt wann sie an (VAR INT state = 1)
bzw. aus (VAR INT state = 0) sind, richtig?

Wld_SetMobRoutine: Das ist der Tagesablauf für Mobs (z.b. ne Bank oder nen Sessel oder so) damit wird eigestellt ob sie benutzbar sind oder nicht, richtig?

"// _Alle_ Mobs mit diesem _Schemanamen_ werden getriggert."
Was genau ist ein Schemaname? In der Startup.d ist es immer "FIREPLACE". Nur was besagt er?
Seite 1 von 1  1