01.08.2024, 10:37
Für jede Quest brauchst du immer mindestens zwei Conditions: eine zum Öffnen der Quest und eine zum Schließen der Quest.
Wie Conditions beim Dialog verwendet werden, hängt vom jeweiligen Dialog ab. Dein Dialog hatte nur eine einzige Zeile, in der durch das Statement die Quest aktiviert wurde. Wenn man den Dachs ein zweites Mal anspricht, wird der Counter wieder auf 1 gesetzt. Da er diesen Wert schon hatte, passiert also absolut nichts. Es geht einfach nicht weiter. Diese Zeile wird also nur dafür benötigt die Quest zu aktivieren. Damit diese Zeile nicht nochmal kommt, habe ich dort eine Condition eingesetzt, die abfragt, ob der Counter kleiner als (less) 1 ist und das ist er nur, wenn die Quest noch nicht aktiv ist.
Die zweite Dialogzeile hat weder eine Condtion noch ein Statement. Sie wird nur benötigt, damit man mit dem Dachs erneut reden kann.
In der dritten Dialogzeile, wird abgefragt, ob der Held die Einbeeren im Gepäck hat. Hat er keine, erscheint sie erst gar nicht, da die Bedingung ja nicht erfüllt ist. Hat der Held die Einbeeren, werden in dem Statement die Einbeeren aus dem Gepäck entfernt und an den Dachs übergeben und der Counter auf 2 gesetzt und die Quest damit geschlossen.
Die TransferEntity Anweisung kannst übrigens löschen, diese wird nicht benötigt und ist nur versehentlich im Code geblieben. Deshalb fehlt auch der von mir angelegt EntryPoint. Mit Items funktioniert diese Anweisung nicht. Wenn du möchtest, dass die Einbeeren erst erscheinen, nachdem die Quest angenommen würde, musst du die Einbeeren als StateObject anlegen. Ein EntryPoint wird dafür natürlich ebenfalls benötigt, damit das Spiel weiß, wo die Einbeeren erscheinen sollen.
Wie Conditions beim Dialog verwendet werden, hängt vom jeweiligen Dialog ab. Dein Dialog hatte nur eine einzige Zeile, in der durch das Statement die Quest aktiviert wurde. Wenn man den Dachs ein zweites Mal anspricht, wird der Counter wieder auf 1 gesetzt. Da er diesen Wert schon hatte, passiert also absolut nichts. Es geht einfach nicht weiter. Diese Zeile wird also nur dafür benötigt die Quest zu aktivieren. Damit diese Zeile nicht nochmal kommt, habe ich dort eine Condition eingesetzt, die abfragt, ob der Counter kleiner als (less) 1 ist und das ist er nur, wenn die Quest noch nicht aktiv ist.
Die zweite Dialogzeile hat weder eine Condtion noch ein Statement. Sie wird nur benötigt, damit man mit dem Dachs erneut reden kann.
In der dritten Dialogzeile, wird abgefragt, ob der Held die Einbeeren im Gepäck hat. Hat er keine, erscheint sie erst gar nicht, da die Bedingung ja nicht erfüllt ist. Hat der Held die Einbeeren, werden in dem Statement die Einbeeren aus dem Gepäck entfernt und an den Dachs übergeben und der Counter auf 2 gesetzt und die Quest damit geschlossen.
Die TransferEntity Anweisung kannst übrigens löschen, diese wird nicht benötigt und ist nur versehentlich im Code geblieben. Deshalb fehlt auch der von mir angelegt EntryPoint. Mit Items funktioniert diese Anweisung nicht. Wenn du möchtest, dass die Einbeeren erst erscheinen, nachdem die Quest angenommen würde, musst du die Einbeeren als StateObject anlegen. Ein EntryPoint wird dafür natürlich ebenfalls benötigt, damit das Spiel weiß, wo die Einbeeren erscheinen sollen.