Quest (AOQML): Unterschied zwischen den Versionen

Aus AntamarWiki
Wechseln zu: Navigation, Suche
("rejected")
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 17: Zeile 17:
 
==="rejected"===
 
==="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 (Spielinhalte)|Implementierung]] direkt einstellen.
 
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.
 +
 +
Kann auch am Anfang von Zufallsbegegnungen benutzt werden, dann wird eine andere ZB angezeigt.
  
 
==="running"===
 
==="running"===
Zeile 35: Zeile 37:
  
 
* 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!'''
 
* 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"===

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.

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.