Benutzer-Werkzeuge

Webseiten-Werkzeuge


bert:editing:charaktere:dialoge

<- Hauptseite

Dialoge

Dieser Artikel beschreibt die Funktionsweise von Dialogen, sowie die Vorgehensweise zum Anlegen dieser.

Definition

Dialoge bestehen aus mehreren einzelnen Dialogblöcken. Die Syntax dieser Dialogblöcke ist wie folgt aufgebaut:

<key>
{
 name=<Charaktername>
 print=<Dialogtext>
 short=<Dialogtext>
 sound=<Sounddatei>
 next=<key>
 forb_item=<Itemname>
 req_item=<Itemname>
 take=<Itemname>
 give=<Itemname> <Textur>
 quest=<Questname>
 req_quest=<Questname>
 forb_quest=<Questname>
 level_min=<Levelnummer>
 level_max=<Levelnummer>
 levelup
}

Keine Angst vor den vielen Einträgen, zum Funktionieren benötigt man lediglich key, print und name. Der Rest steht für zusätzliche Informationen und Bedingungen.

Die Keys dienen der Benennung der einzelnen Dialogblöcke. Ein Key mit Namen begin definiert den Start-Dialogblock, welcher zu erst abgearbeitet wird. Die geschweiften Klammern definieren Anfang und Ende des Dialogblocks. name= weist dem Charakter den Namen zu, print= seinen Text, den er sprechen soll. sound= gibt die Sound-Datei an, die abgespielt werden soll. next= gibt den Key des Dialogblocks an, der als nächstes abgearbeitet werden soll. Lässt man next= weg, so ist der Dialog im aktuellen Dialogblock zu ende.

Sound

Der Sound-Eintrag ist, wie bereits beschrieben, optional. Ist er vorhanden, so wird erst nach Abspielen des Sounds zum nächsten Dialog gewechselt. Ist er nicht vorhanden, so wird eine bestimmte Zeit (abhängig von der Länge des Dialoges) gewartet, so dass der Dialog zu ende gelesen werden kann. Die einzelnen Sound-Dateien befinden sich standardmäßig im Verzeichnis sound/dialog/.

Beispiel:

sound=blarg_name.ogg

Formate

Die folgenden Formate werden unterstützt: WAVE, AIFF, RIFF, OGG, VOC. Empfohlen wird Ogg Vorbis, mono, 22050 Hz, 64 kbps (zu erstellen beispielsweise mit oggenc: oggenc --downmix -b 64 -q -1 datei.wav). OGG Vorbis ist frei, besitzt eine geringe Dateigröße und bietet selbst bei diesen Einstellungen eine ausreichende Klangqualität. Ausnahmen bestätigen mein schlechtes Gehör.

Bedingungen

Dialoge können verschiedene Bedingungen enthalten, welche darüber entscheiden, ob der entsprechende Dialogabschnitt angezeigt wird oder nicht.

Items

Das Tragen von bestimmten Items kann sowohl vorausgesetzt wie auch untersagt werden. Zum Spezifizieren von mehreren Items wird das entsprechende Schlüsselwort einfach mehrfach angegeben. Auch ist es möglich, dem Spieler bestimmte Items zu geben (give), oder zu nehmen (take).

Beispiel:

req_item=Nugget
req_item=Knochen
forb_item=Black Hand

Hier werden die Items Nugget und Knochen benötigt, Black Hand darf jedoch nicht im Inventar vorhanden sein.

benötigt

Mit dem Schlüsselwort req_item ist es möglich, Itemnamen anzugeben, die der Spieler zum Anzeigen des Dialogs bei sich tragen muss.

untersagt

fob_item gibt den Namen eines Items an, welches der Spieler nicht besitzen darf.

geben

Zum Geben muss man den Namen des Items angeben, sowie durch ein Leerzeichen getrennt den Pfad zur Textur.

give=Knochenrest items/bone.png

nehmen

Hier gibt man einfach den Namen des Items an, welches dem Spieler genommen werden soll.

take=Black Hand

Quests

Die Schlüsselwörter der Quests funktionieren genauso wie die der Items. Mit dem Schlüssel quest weist man einem Dialogabschnitt den Namen eines Quests zu. req_quest gibt den Namen eines Quests an, das bereits abgeschlossen sein muss. forb_quest gibt ein Quest an, welches noch nicht erfüllt sein darf.

Beispiel:

alphas_quest
{
 name=Alpha
 print=Hallo Choerbaert!
 quest=Finde_meinen_Klappspaten
 quest_req=Kaufe_mir_ein_Eis
 quest_forb=Alternatives_Quest
}

Sobald diese Stelle des Dialoges aufgerufen wird, ist das Quest Finde_meinen_Klappspaten erfüllt. Jedoch kommt man nur an diese Stelle, wenn bereits Kaufe_mir_ein_Eis erfüllt, jedoch Alternatives_Quest noch nicht erledigt ist.

Level

Das Level des Spielers kann eine weitere Bedingung für das Anzeigen eines Dialoges sein. Hierfür gibt es die Schlüsselwörter level_min und level_max. Levelaufstiege erfolgen durch das Setzen des Schlüssels levelup.

Beispiel:

{
 ...
 level_max=0
 levelup
}

Bei Aufruf dieses Dialogabschnitts wird das Level des Spielers um eins erhöht. Man sollte jedoch immer eine Bedingung mit einführen (hier: das Level des Spielers darf nicht größer 0 sein), da dieser Teil sonst mehrfach aufgerufen werden kann.

Verzweigung

Dialoge können verzweigt werden. Dazu gibt man einfach mehrere next=-Zeilen an:

<key>
{
 name=<Charaktername>
 print=<Dialogtext>
 next=<key>
 next=<key>
}

Für jeden next-Key überprüft das Programm, ob der referenzierte Dialog Bedingungen enthält und diese erfüllt sind. Andernfalls wird der next-Key einfach ignoriert, beispielsweise wenn ein benötigtes Item nicht vorhanden ist.

Das darauf erscheinende Auswahlmenü zeigt den Text an, der bei den next-Keys mittels print gesetzt wird. Möchte man einen alternativen oder verkürzten Text zur Auswahl anzeigen lassen, so nutzt man das Schlüsselwort short im referenzierten Dialog. Zur besseren Verständlichkeit soll das folgende Beispiel dienen.

Beispiel

begin
{
 name=Alpha
 print=Hallo Choerbaert!
 sound=alpha_hallo_bert.ogg
 next=bert_response
}
 
bert_response
{
 name=Bert
 print=Was? Wer bist du denn? Kennen wir uns etwa?
 next=alpha_response
}
 
alpha_response
{
 name=Alpha
 print=Sag bloss du kennst mich nicht mehr?
 next=bert_choice_yes
 next=bert_choice_no
}
 
bert_choice_yes
{
 name=Bert
 print=Ach, Alpha! Na klar kennen wir uns.
 short=Doch.
}
 
bert_choice_no
{
 name=Bert
 print=Dich kennen? Nein. Woher denn?
 short=Noe.
}

In der Dialogauswahl, welche bei Teilabschnitt alpha_response angezeigt wird, stehen nun die Optionen „Doch.“ und „Noe.“ zur Auswahl, definiert durch das Schlüsselwort short. Ohne dieses würde der ganze Text des referenzierten Dialoges angezeigt werden (zB „Ach, Alpha! Na klar kennen wir uns.“ statt „Doch.“).

<- Hauptseite

bert/editing/charaktere/dialoge.txt · Zuletzt geändert: 2014/03/01 17:13 (Externe Bearbeitung)