Quest (AOQML): Unterschied zwischen den Versionen
(finished, failed und aborted sind veraltet) |
Tommek (Diskussion | Beiträge) (→"rejected") |
||
(11 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | + | <quest> setzt den Status der Quest und gibt damit die weitere Bearbeitung vor. Zu jeder Quest ist genau ein Tagebucheintrag möglich. Dieser sollte bei Status ''ended'' oder ''pending'' vorgenommen werden. | |
− | + | ==Syntax== | |
+ | <code xml n> | ||
+ | <quest status="" [frequency="oft|selten|rar|nie"] [withhold=""] [note=""] [target=""] /> | ||
+ | </code> | ||
+ | |||
+ | *'''status''': Mögliche Status sind: 'running' (ist bei jeder Quest zu Beginn auszuführen), 'pending' (wenn Quest weiter läuft), 'ended' (wenn Quest beendet), 'rejected' (wenn Quest nicht gestartet werden soll), 'continue' (wenn in dieser Szene nichts weiter ausgeführt werden soll) | ||
+ | *'''frequency''': Gibt an, mit welcher Wahrscheinlichkeit die Quest erneut starten darf. Erlaubte Angaben sind: 'oft', 'selten', 'rar', 'nie'. | ||
+ | *'''withhold''': Es kann angegeben werden, ab wann die Quest wieder erneut starten darf, z.B. erst erneut nach 30 Tagen. Siehe Beispiele weiter unten. | ||
+ | *'''note''': Hier kann man einen Tagebuchtext angeben. Dieser Text wird so ins Heldentagebuch übernommen. | ||
+ | *'''target''': Wenn der Status ''pending'' vergeben wurde, kann hier eine andere Szene angegeben werden, die beim nächsten Seiten-Reload ausgeführt werden soll. | ||
==status="xyz"== | ==status="xyz"== | ||
− | An Stelle von "xyz" wird einer der | + | An Stelle von "xyz" wird einer der folgenden Status angegeben: |
==="rejected"=== | ==="rejected"=== | ||
− | Hiermit wird dem Helden das Quest verwehrt, z.B. weil er bestimmte Anforderungen | + | Hiermit wird dem Helden das Quest verwehrt, z.B. weil er bestimmte Anforderungen nicht erfüllt. Dieser Status darf nur in der Startszene gesetzt werden. Die Szene wird dann gar nicht erst angezeigt. Nicht alle Bedingungen müssen über [[AOQML]] gelöst werden, manche Dinge lassen sich auch bei der [[Implementierung (Spielinhalte)|Implementierung]] direkt einstellen. |
− | nicht erfüllt. Dieser Status darf nur in der Startszene gesetzt werden. Die Szene | + | |
− | wird dann gar nicht erst angezeigt. | + | Kann auch am Anfang von Zufallsbegegnungen benutzt werden, dann wird eine andere ZB angezeigt. |
==="running"=== | ==="running"=== | ||
Zeile 21: | Zeile 30: | ||
Damit wird das Quest temporär unterbrochen und beim nächsten Laden der Hauptseite an dieser Stelle fortgesetzt. In der Regel prüft man Bedingungen bevor ein Quest pausiert wird, damit es nur bei deren Erfüllung fortgesetzt wird. Das quest-Tag verfügt über das optionale Attribut target. Nur im Status pending wird das Attribut target ausgewertet. Es gibt an, mit welcher Szene das Quest fortgesetzt werden soll. | Damit wird das Quest temporär unterbrochen und beim nächsten Laden der Hauptseite an dieser Stelle fortgesetzt. In der Regel prüft man Bedingungen bevor ein Quest pausiert wird, damit es nur bei deren Erfüllung fortgesetzt wird. Das quest-Tag verfügt über das optionale Attribut target. Nur im Status pending wird das Attribut target ausgewertet. Es gibt an, mit welcher Szene das Quest fortgesetzt werden soll. | ||
− | + | ==== ACHTUNG Stolperfallen: ==== | |
+ | |||
+ | * Sobald eine Szene mit pending abgeschlossen wird, darf der Benutzer wieder alle normalen Spielfunktionen ausüben. | ||
+ | |||
+ | :* So könnte sich z.B. eine Reisegruppe unterwegs auflösen. Deshalb sollte das Attribut '[[Held_Attribute#Auf_Reisen|anzahl_gruppenmitglieder]]' auf 0 geprüft, und entsprechend reagiert werden. | ||
+ | |||
+ | * Weiterhin wird die Szene jedesmal wieder aktiv ausgewertet, um auf veränderte Bedingungen reagieren zu können. Damit wird die Szene bei einem Neuladen nicht aus dem Cache geladen sondern immer wieder neu ausgeführt. Deshalb sollte man es in einer pending-Szene tunlichst '''vermeiden, Items oder EPs zu verteilen!''' | ||
+ | |||
+ | * Sobald "pending" gesetzt ist bricht die weitere Auswertung der Szene ab. Wenn man Dinge wie "site" prüft, sollte die Quest erst unterbrochen werden, wenn ein Hinweis für den Spieler angezeigt wurde. "Du bist noch nicht in XYZ" -> pending | ||
==="ended"=== | ==="ended"=== | ||
Zeile 29: | Zeile 46: | ||
==="continue"=== | ==="continue"=== | ||
− | Bricht den Rest der Seitenausgabe ab und fährt mit dem Quest fort. | + | Bricht den Rest der Seitenausgabe ab und fährt mit dem Quest fort. Alle Befehle, die nach der continue-Angabe kommen werden ignoriert. |
===""=== | ===""=== | ||
Zeile 35: | Zeile 52: | ||
reserviert. Am Ende einer ZB wird dieser Status automatisch gesetzt. | reserviert. Am Ende einer ZB wird dieser Status automatisch gesetzt. | ||
Alle Quest-Variablen und der Quest-Status werden dabei gelöscht. | Alle Quest-Variablen und der Quest-Status werden dabei gelöscht. | ||
− | |||
− | |||
− | |||
==frequency="oft|selten|rar|nie"== | ==frequency="oft|selten|rar|nie"== | ||
Dieses Attribut bestimmt die Wahrscheinlichkeit einer Questwiederholung. Es sollte bei jedem Questende (status=ended) mit angegeben werden, falls es nicht angegeben wurde, entspricht das der Häufigkeit oft. | Dieses Attribut bestimmt die Wahrscheinlichkeit einer Questwiederholung. Es sollte bei jedem Questende (status=ended) mit angegeben werden, falls es nicht angegeben wurde, entspricht das der Häufigkeit oft. | ||
+ | |||
+ | *oft: Quest kann oftmals auftreten (selbe Wahrscheinlichkeit wie vor dem ersten Questaufruf des Helden) | ||
+ | *selten: Quest tritt nur noch selten wieder auf | ||
+ | *rar: Quest tritt nur noch sehr selten wieder auf | ||
+ | *nie: Quest tritt nie wieder auf -> für den Helden nicht wieder zugänglich | ||
+ | |||
+ | ==withhold== | ||
+ | Dieses Attribut gibt an, ab wann die Quest erst wieder erneut starten darf. | ||
+ | Beispiele: | ||
+ | <code xml n> | ||
+ | <quest status="ended" withhold="20d" /><!-- Beachte die Kleinschreibung des d bei 20d --> | ||
+ | </code> | ||
+ | bedeutet, dass die Quest frühestens wieder nach 20 Ingametagen gestartet werden darf. Da kein frequency angegeben, hätte sie auch wieder die ursprüngliche Auftreten-Wahrscheinlichkeit. | ||
+ | |||
+ | |||
+ | <code xml n> | ||
+ | <quest status="ended" withhold="20D" /><!-- Beachte die Großschreibung vom D bei 20D --> | ||
+ | </code> | ||
+ | bedeutet, dass die Quest erst wieder nach 20 Echtzeit-Tagen starten darf. | ||
+ | |||
+ | |||
+ | <code xml n> | ||
+ | <quest status="ended" withhold="12H" frequency="rar" /> | ||
+ | </code> | ||
+ | bedeutet, dass die Quest erst wieder nach 12 Echtzeit-Stunden starten darf, aber mit geringerer Wahrscheinlichkeit als zuvor, da zusätzlich frequency="rar" angegeben ist. | ||
+ | |||
+ | |||
+ | ==note="TEXT"== | ||
+ | Der Inhalt von note bestimmt den zur Quest dazugehörigen Tagebucheintrag im Heldentagebuch. Er sollte aus dem Blickwinkel des Spielcharakters verfasst sein. Erneutes Setzen eines Eintrages überschreibt den vorherigen Eintrag. | ||
+ | |||
==target="Szenenname"== | ==target="Szenenname"== | ||
Dieses Attribut ist optional. | Dieses Attribut ist optional. | ||
− | Nur im Status pending wird es ausgewertet. Es gibt an, mit welcher Szene das Quest fortgesetzt werden soll. Wird es nicht angegeben, wird das pausierte Quest mit der Szene, in der es pausiert wurde, fortgesetzt. | + | Nur im Status ''pending'' wird es ausgewertet. Es gibt an, mit welcher Szene das Quest fortgesetzt werden soll. Wird es nicht angegeben, wird das pausierte Quest mit der Szene, in der es pausiert wurde, fortgesetzt. |
[[Kategorie:AOQML-Tags]] | [[Kategorie:AOQML-Tags]] | ||
− |
Aktuelle Version vom 28. Januar 2021, 21:42 Uhr
<quest> setzt den Status der Quest und gibt damit die weitere Bearbeitung vor. Zu jeder Quest ist genau ein Tagebucheintrag möglich. Dieser sollte bei Status ended oder pending vorgenommen werden.
Inhaltsverzeichnis
Syntax
<quest status="" [frequency="oft|selten|rar|nie"] [withhold=""] [note=""] [target=""] />
- status: Mögliche Status sind: 'running' (ist bei jeder Quest zu Beginn auszuführen), 'pending' (wenn Quest weiter läuft), 'ended' (wenn Quest beendet), 'rejected' (wenn Quest nicht gestartet werden soll), 'continue' (wenn in dieser Szene nichts weiter ausgeführt werden soll)
- frequency: Gibt an, mit welcher Wahrscheinlichkeit die Quest erneut starten darf. Erlaubte Angaben sind: 'oft', 'selten', 'rar', 'nie'.
- withhold: Es kann angegeben werden, ab wann die Quest wieder erneut starten darf, z.B. erst erneut nach 30 Tagen. Siehe Beispiele weiter unten.
- note: Hier kann man einen Tagebuchtext angeben. Dieser Text wird so ins Heldentagebuch übernommen.
- target: Wenn der Status pending vergeben wurde, kann hier eine andere Szene angegeben werden, die beim nächsten Seiten-Reload ausgeführt werden soll.
status="xyz"
An Stelle von "xyz" wird einer der folgenden Status angegeben:
"rejected"
Hiermit wird dem Helden das Quest verwehrt, z.B. weil er bestimmte Anforderungen nicht erfüllt. Dieser Status darf nur in der Startszene gesetzt werden. Die Szene wird dann gar nicht erst angezeigt. Nicht alle Bedingungen müssen über AOQML gelöst werden, manche Dinge lassen sich auch bei der Implementierung direkt einstellen.
Kann auch am Anfang von Zufallsbegegnungen benutzt werden, dann wird eine andere ZB angezeigt.
"running"
Hiermit wird ein Quest gestartet. Praktisch wird ein persistenter Speicherbereich für die szenenübergreifenden Variablen des Quests angelegt. Während ein Quest im Status "running" ist, kann man auch nicht außerhalb des Quests den Ort wechseln, keine Arbeit annehmen etc. Dieser Status wird üblicherweise ganz am Anfang der Startszene gesetzt.
"pending"
Damit wird das Quest temporär unterbrochen und beim nächsten Laden der Hauptseite an dieser Stelle fortgesetzt. In der Regel prüft man Bedingungen bevor ein Quest pausiert wird, damit es nur bei deren Erfüllung fortgesetzt wird. Das quest-Tag verfügt über das optionale Attribut target. Nur im Status pending wird das Attribut target ausgewertet. Es gibt an, mit welcher Szene das Quest fortgesetzt werden soll.
ACHTUNG Stolperfallen:
- Sobald eine Szene mit pending abgeschlossen wird, darf der Benutzer wieder alle normalen Spielfunktionen ausüben.
- So könnte sich z.B. eine Reisegruppe unterwegs auflösen. Deshalb sollte das Attribut 'anzahl_gruppenmitglieder' auf 0 geprüft, und entsprechend reagiert werden.
- Weiterhin wird die Szene jedesmal wieder aktiv ausgewertet, um auf veränderte Bedingungen reagieren zu können. Damit wird die Szene bei einem Neuladen nicht aus dem Cache geladen sondern immer wieder neu ausgeführt. Deshalb sollte man es in einer pending-Szene tunlichst vermeiden, Items oder EPs zu verteilen!
- Sobald "pending" gesetzt ist bricht die weitere Auswertung der Szene ab. Wenn man Dinge wie "site" prüft, sollte die Quest erst unterbrochen werden, wenn ein Hinweis für den Spieler angezeigt wurde. "Du bist noch nicht in XYZ" -> pending
"ended"
Dieser Status wird gesetzt, wenn das Quest beendet wurde und wiederholbar sein soll. Dabei ist es egal, ob es erfolgreich oder erfolglos beendet wurde. Alle Quest-Variablen werden dabei gelöscht.
"continue"
Bricht den Rest der Seitenausgabe ab und fährt mit dem Quest fort. Alle Befehle, die nach der continue-Angabe kommen werden ignoriert.
""
Dieser Status wird ausschließlich intern verwendet und ist für Zufallsbegegnungen reserviert. Am Ende einer ZB wird dieser Status automatisch gesetzt. Alle Quest-Variablen und der Quest-Status werden dabei gelöscht.
frequency="oft|selten|rar|nie"
Dieses Attribut bestimmt die Wahrscheinlichkeit einer Questwiederholung. Es sollte bei jedem Questende (status=ended) mit angegeben werden, falls es nicht angegeben wurde, entspricht das der Häufigkeit oft.
- oft: Quest kann oftmals auftreten (selbe Wahrscheinlichkeit wie vor dem ersten Questaufruf des Helden)
- selten: Quest tritt nur noch selten wieder auf
- rar: Quest tritt nur noch sehr selten wieder auf
- nie: Quest tritt nie wieder auf -> für den Helden nicht wieder zugänglich
withhold
Dieses Attribut gibt an, ab wann die Quest erst wieder erneut starten darf. Beispiele:
<quest status="ended" withhold="20d" /><!-- Beachte die Kleinschreibung des d bei 20d -->
bedeutet, dass die Quest frühestens wieder nach 20 Ingametagen gestartet werden darf. Da kein frequency angegeben, hätte sie auch wieder die ursprüngliche Auftreten-Wahrscheinlichkeit.
<quest status="ended" withhold="20D" /><!-- Beachte die Großschreibung vom D bei 20D -->
bedeutet, dass die Quest erst wieder nach 20 Echtzeit-Tagen starten darf.
<quest status="ended" withhold="12H" frequency="rar" />
bedeutet, dass die Quest erst wieder nach 12 Echtzeit-Stunden starten darf, aber mit geringerer Wahrscheinlichkeit als zuvor, da zusätzlich frequency="rar" angegeben ist.
note="TEXT"
Der Inhalt von note bestimmt den zur Quest dazugehörigen Tagebucheintrag im Heldentagebuch. Er sollte aus dem Blickwinkel des Spielcharakters verfasst sein. Erneutes Setzen eines Eintrages überschreibt den vorherigen Eintrag.
target="Szenenname"
Dieses Attribut ist optional. Nur im Status pending wird es ausgewertet. Es gibt an, mit welcher Szene das Quest fortgesetzt werden soll. Wird es nicht angegeben, wird das pausierte Quest mit der Szene, in der es pausiert wurde, fortgesetzt.