So, heute mal ein Tutorial zu der Basisgestaltung von Quests.
Dazu gebe ich nun erstmal einen Überblich über Quets, Trigger und Conversations.
Quests:
Definiert werden Quests in der Quest.lst im "Conversations"-Dir. Der Syntax ist folgender:
Die Questbeschreibung ist das, was nachher im Spiel im Aufgabenbuch auftaucht, der Name dient nur dazu das ganze ins Spiel zu integrieren.
Die Scriptsyntax um einen Quest zum Questlog hinzuzufügen oder zu Entfernen ist folgende:
Trigger (Title):
Trigger sind die eigendlich wichtigen Elemente beim Questen. Mit ihnen ist es möglich Abhängigkeiten und Bedingungen zu schaffen. So ist es bspw. möglich Dialogoptionen erst dann verfügbar zu machen, wenn ein anderer Dialog zuvohr geführt wurde. Auch entscheidungen in verschiedene richtung (á la Gut/Böse) lassen sich so realisieren.
Die Anzahl der Trigger ist unbegrenzt. Sie müssen auch nicht in irgendeiner Datei definiert werden wie es bei den Quests der fall ist. Trigger funktionieren wie Boolsche operatoren. Es gibt nur True und False, oder in diesem Falle: Es gibt den Trigger oder es gibt ihne nicht.
Trigger werden wie folgt definiert:
Das entfernen klappt leider in der Praxis in meinen Versuchen nicht.
Abhängigkeiten:
Abhängigkeiten sind jetzt der Wer trigger zu benutzen. Sie funktionieren wie if-operatoren. Die Syntax ist folgende:
Das ! bedeutet das für die Bedingung der Trigger nicht vorhanden sein darf. Ohne ! heißt es das der Trigger für die Bedingung vorhanden sein muss.
CNVEditor
Der Editor ist ein mächtiges Werkzeug, wenn es um das bearbeiten von CNV's geht. Zu beginn fragt es euch, nach der Position der Items.db und nach dem Conversations Ordner. Dann geht es los.
Unten links findet ihr eine Liste aller CNV die sich in eurem Conversations Ordner befinden. So sieht das dann aus:
[Blocked Image: http://img264.imageshack.us/img264/8297/cnv1kv6.th.jpg]
Hier wird der Dialog dargestellt, wie er stattfinden würde.
[Blocked Image: http://img230.imageshack.us/img230/2500/cnv2yj3.th.jpg]
Hier könnt ihr euer Script debuggen. Es werden alle If-Abfragen dargestellt, wie das ergebnis war und was es bewirkt hat.
Die nächsten 3 Karteikarten sind weniger interessant. Sie zeigen wann ein Quest, Trigger etc. Eingefügt oder entfernt wird.
[Blocked Image: http://img299.imageshack.us/img299/3716/cnv6vd6.th.jpg]
Das hier ist hingegen schon interessanter. CNVEdit simuliert einen Spieler. Das heißt, wenn ihr in CNV Edit durch eine Dialogoption einen Trigger aktiviert habt oder ein Item erhalten habt, so wird es hier gespeichert und wirkt sich entsprechend auf alle anderen Dialogoptionen aus. Das ermöglicht es, im CNVEditor Dialoge komplett durchzugehen ohne das Spiel auch nur einmal starten zu müssen.
[Blocked Image: http://img150.imageshack.us/img150/7190/cnv7ap0.th.jpg]
Die letzte Seite ist der eigentliche CNVEditor. Er besitzt einen Syntax Check (2. Symbol oben von rechts) und hebt einzelne Elemente farblich hervor. Wenn man seine CNV hier speichert wird auch automatisch der Dateiheader aktualisiert.
-------------------------------------------------------------
Mit dem Triggern und CNVEdit erstellen wir nun einen Simplen Trigger in einer CNV:
[FileID]
Author=
Coding=
Approved=
version=1
[CharacterID]
Name=
GUID=
[Titles]
Set=
Checked=
Removed=
[Quest]
Added=
Removed=
[Items]
Given=
Taken=
Checked=
Added=
[SyntaxCheck]
[Problems]
1=
[Questions]
1=
[root]
Count=3
Else=
Default=
say1=All(ttl(!love,!hate));
goto1=Test
say2=All(ttl(love));
goto2=Love
say3=All(ttl(hate));
goto3=Hate
[Test]
Say=Magst du mich?
RspDflt=none
RspTxt1=Klar mag ich dich!
script1=player.addtitle(love);
NxtLn1=Danke
RspTxt2=Nee, kann dich nicht leiden.
script2=player.addtitle(hate);
NxtLn=Danke
[Danke]
Say=Danke für die Auskunft.
RspDflt=Nicht zu danken.
[Love]
Say=Du magst mich, ich dich auch!
RspDflt=Das ist schön.
[Hate]
Say=Du magst mich nicht, ich dich auch nicht.
RspDflt=Das ist nicht schön.
Display More
Was passiert: Wir sprechen den NCP an, er fragt und ob wir ihn mögen oder nicht. Wenn wir ihn das nächste mal ansprechen reagiert er abhängig von unserer antwort.
Das ist die Basis um Quests zu bauen. Eine aneinanderreihung von triggern. Überprüfen kann man das alles anhand des CNVEditors.
Und nun wünsche ich viel spaß.
Ahja, abhängigkeiten lassen sich auch mit Gegenständen machen, dazu vllt später mal was ![]()