Bedingungen und Werte steuern den Zustand deines Spiels. Mit ihnen speicherst du beispielsweise, ob ein Ereignis bereits stattgefunden hat, wie viele Items gesammelt wurden oder welche Dialogoption verfügbar ist. In Abfragen legst du anschließend fest, welche Aktionen abhängig von diesen Zuständen ausgeführt wird.
Bedingungen und Werte kannst du an vielen Stellen im Editor anlegen; fast überall gibt es die Registerkarten „Conditions“ und „Values“. Für die Engine ist egal, wo sie stehen, denn sie sind überall verfügbar. Für den Überblick über deine Spiellogik legst du sie aber am besten dort an, wo sie hingehören. Brauchst du eine Bedingung „key_taken“, die die Sichtbarkeit eines Schlüssels steuert, gehört sie zum Schlüsselobjekt oder zur passenden Szene, nicht etwa zu einem Charakter, der ganz woanders vorkommt. Verknüpfen kannst du sie aber von überall.
Bedingungen
Bedingungen sind Wahrheitswerte und haben entweder den Wert „true“ oder „false“. Es gibt zwei Arten:
- Variable: Eine einzelne Bedingung mit dem Wert „true“ oder „false“. Beim Anlegen legst du den Anfangswert fest; im Spiel änderst du ihn jederzeit mit dem Aktionsteil „Bedingung ändern“.
- Kombiniert: Verknüpft mehrere Bedingungen, Werte und Lua-Abfragen über logische Operatoren („und“, „oder“, „negieren“). Den Wert einer kombinierten Bedingung kannst du nicht direkt setzen; er ergibt sich aus ihren Bestandteilen.
Fragst du Bedingungen per Lua ab, brauchst du für kombinierte Bedingungen die Funktion system.getCondition:
-- works for single conditions only
if Conditions["door_closed"].Value then
-- do something
end
-- works for all conditions, including combined conditions
if system.getCondition(Conditions["door_closed"]) then
-- do something
end
Werte
Zahlenwerte
Werte sind in erster Linie ganze Zahlen. Beim Anlegen gibst du einen Anfangswert an, fest oder als Zufallszahl aus einem Bereich. Im Spiel änderst du ihn mit dem Aktionsteil „Wert setzen“: direkt setzen (=), addieren (+), subtrahieren (-), multiplizieren (*) oder dividieren (/). Du kannst auch einen anderen Wert verknüpfen und dessen Zahl übernehmen. Mit dem Aktionsteil „Zufallswert setzen“ setzt du eine Zufallszahl.
Textwerte
Ein Wert kann statt einer Zahl auch einen Text enthalten. Den Anfangstext legst du beim Anlegen fest. Ändern kannst du ihn aber weder mit „Wert setzen“ noch mit einem anderen Aktionsteil, und du kannst ihn weder in Wenn/Sonst-Abfragen von Aktionsteilen nutzen noch mit einem Objekt verknüpfen. Für Textwerte brauchst du Lua:
-- example of handling string type values with lua
local val = Values["add_value_name_here"] -- store value into a variable
local str = val.String -- store linked value's "string" value into a variable
val.String = "add new string value here" -- create a new string value
-- quick if query example
if str == "hello world" then
return true
else
return false
end
Werte anzeigen
Du kannst Werte in einem Text ausgeben, sowohl Zahlen als auch Texte. So schreibst du das:
- Zahlen: <v=value_name>
- Texte: <vs=value_name>
Beispiele findest du auf der Seite Texte.
Wenn/Sonst-Abfragen bauen
Bedingungen und Werte nutzt du vor allem für die Spiellogik mit Wenn/Sonst-Abfragen: Ist eine Bedingung wahr, passiert das eine, sonst etwas anderes. Oder: Ist ein Wert größer als 5, passiert das eine; ist er kleiner als 5, aber größer als 0, etwas zweites; ist er kleiner als 0, etwas drittes.
Dafür gibt es die Aktionsteile „Wenn Bedingung“ und „Wenn Wert“. Weitere „Wenn“-Aktionsteile fragen andere Dinge ab, etwa „Wenn Charakter Item besitzt“, „Wenn Charakter in Szene ist“ oder „Wenn Sprache die aktuelle Sprache ist“.
Objekte deaktivieren/aktivieren
Außerdem verknüpfst du Bedingungen und Werte direkt mit Objekten und Buttons, und zwar auf deren Registerkarte „Eigenschaften“. So legst du schnell fest, ob ein Objekt aktiv (angezeigt) oder deaktiviert (ausgeblendet) ist. Ein deaktiviertes Objekt zeigt keine Bilder und Animationen mehr, seine Aktionen sind ebenfalls abgeschaltet, und der Cursor erkennt es nicht mehr. So veränderst du Szenen ganz schnell, egal ob spielbare Kulisse, Zwischensequenz oder Menü.
Neben Objekten und Buttons kannst du auch Dialogteile über eine verknüpfte Bedingung oder einen Wert ein- und ausschalten.
Bedingungen und Werte schnell verknüpfen
Zum Verknüpfen einer Bedingung oder eines Werts klickst du normalerweise auf die Verknüpfungsschaltfläche und suchst die Variable im Dialog. Schneller geht es so: Zieh eine Verbindung direkt aus der Verknüpfungsschaltfläche (siehe Bild) und lass sie auf der Bedingung oder dem Wert los. Das klappt nicht nur mit Bedingungen und Werten, sondern auch mit anderen Elementen wie Objekten. Schaltfläche und Ziel müssen dafür aber gleichzeitig im Editor sichtbar sein, deshalb erreichst du so nicht alles.
Wie du Bedingungen und Werte in größeren Projekten ordnest, steht auf der Seite Spielzustände strukturieren.




